@keetanetwork/anchor 0.0.48 → 0.0.49
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/resolver.js +33 -33
- package/npm-shrinkwrap.json +2 -2
- package/package.json +1 -1
- package/services/asset-movement/common.d.ts +2 -2
- package/services/asset-movement/common.d.ts.map +1 -1
- package/services/asset-movement/common.js +3366 -1707
- package/services/asset-movement/common.js.map +1 -1
- package/services/asset-movement/lib/data/addresses/bank-account/fps.d.ts +4 -0
- package/services/asset-movement/lib/data/addresses/bank-account/fps.d.ts.map +1 -0
- package/services/asset-movement/lib/data/addresses/bank-account/fps.js +34 -0
- package/services/asset-movement/lib/data/addresses/bank-account/fps.js.map +1 -0
- package/services/asset-movement/lib/data/addresses/bank-account/index.generated.d.ts +2 -0
- package/services/asset-movement/lib/data/addresses/bank-account/index.generated.d.ts.map +1 -1
- package/services/asset-movement/lib/data/addresses/bank-account/index.generated.js +2 -0
- package/services/asset-movement/lib/data/addresses/bank-account/index.generated.js.map +1 -1
- package/services/asset-movement/lib/data/addresses/types.generated.d.ts +99 -2
- package/services/asset-movement/lib/data/addresses/types.generated.d.ts.map +1 -1
- package/services/asset-movement/lib/data/addresses/types.generated.js +99 -0
- package/services/asset-movement/lib/data/addresses/types.generated.js.map +1 -1
- package/services/asset-movement/lib/location.generated.js +3 -3
- package/services/storage/client.d.ts +8 -0
- package/services/storage/client.d.ts.map +1 -1
- package/services/storage/client.js +11 -0
- package/services/storage/client.js.map +1 -1
- package/services/storage/clients/contacts.d.ts +14 -5
- package/services/storage/clients/contacts.d.ts.map +1 -1
- package/services/storage/clients/contacts.generated.js +363 -196
- package/services/storage/clients/contacts.generated.js.map +1 -1
- package/services/storage/clients/contacts.js +23 -8
- package/services/storage/clients/contacts.js.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/services/asset-movement/common.ts"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAA2F,CAAC;AAC3I,MAAM,CAAC,MAAM,+DAA+D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAA2J,CAAC;AACxO,MAAM,CAAC,MAAM,gEAAgE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAmK,CAAC;AACjP,MAAM,CAAC,MAAM,qDAAqD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAuI,CAAC;AAC1M,MAAM,CAAC,MAAM,sDAAsD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAA+I,CAAC;AACnN,MAAM,CAAC,MAAM,sDAAsD;;;;;;;;;;;;;;;;;;;;;OAAyI,CAAC;AAC7M,MAAM,CAAC,MAAM,uDAAuD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAiJ,CAAC;AACtN,MAAM,CAAC,MAAM,qDAAqD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAuI,CAAC;AAC1M,MAAM,CAAC,MAAM,6DAA6D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAuJ,CAAC;AAClO,MAAM,CAAC,MAAM,8DAA8D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAA+J,CAAC;AAC3O,MAAM,CAAC,MAAM,0EAA0E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAuL,CAAC;AAC/Q,MAAM,CAAC,MAAM,8EAA8E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAyL,CAAC;AACrR,MAAM,CAAC,MAAM,kEAAkE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAiK,CAAC;AACjP,MAAM,CAAC,MAAM,mEAAmE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAyK,CAAC;AAC1P,MAAM,CAAC,MAAM,+EAA+E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAiM,CAAC;AAC9R,MAAM,CAAC,MAAM,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAiG,CAAC;AACjJ,MAAM,CAAC,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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","sourcesContent":["import type { ServiceMetadata } from '../../lib/resolver.ts';\nimport type * as CurrencyInfo from '@keetanetwork/currency-info';\nimport type { AccountKeyAlgorithm, IdentifierKeyAlgorithm, TokenPublicKeyString } from '@keetanetwork/keetanet-client/lib/account.js';\nimport { createAssert, createAssertEquals, createIs } from 'typia';\nimport type { ToJSONSerializable } from '@keetanetwork/keetanet-client/lib/utils/conversion.js';\nimport type { HTTPSignedField } from '../../lib/http-server/common.js';\nimport type { Signable } from '../../lib/utils/signing.js';\nimport type { SharableCertificateAttributes } from '../../lib/certificates.js';\nimport * as KeetaNet from '@keetanetwork/keetanet-client';\nimport { KeetaAnchorUserError } from '../../lib/error.js';\nimport type { AssetLocationLike, AssetLocationString, AssetLocationInput, AssetLocationCanonical } from './lib/location.js';\nimport { convertAssetLocationInputToCanonical } from './lib/location.js';\nimport type { BankAccountAddressObfuscated, BankAccountAddressResolved, MobileWalletAddressObfuscated, MobileWalletAddressResolved, MonthYearDateInput, PhysicalAddress } from './lib/data/addresses/types.generated.js';\nimport type { HexString, KeetaNetAccount, MovableAsset, MovableAssetSearchCanonical, CurrencySearchCanonical } from '../../lib/asset.js';\nimport { convertAssetSearchInputToCanonical } from '../../lib/asset.js';\n\nexport * from './lib/data/addresses/types.generated.js';\n\nexport * from './lib/location.js';\n\nexport type {\n\tHexString,\n\tKeetaNetAccount,\n\tKeetaNetTokenPublicKeyString,\n\tEVMAsset,\n\tTronAsset,\n\tSolanaAsset,\n\tChainAssetString,\n\tMovableAssetSearchInput,\n\tMovableAssetSearchCanonical,\n\tMovableAsset,\n\tCurrencySearchCanonical,\n\tCurrencySearchInput,\n\tTokenSearchInput,\n\tTokenSearchCanonical\n} from '../../lib/asset.js';\n\nexport {\n\ttoEVMAsset,\n\tparseEVMAsset,\n\tisEVMAsset,\n\ttoTronAsset,\n\tparseTronAsset,\n\tisTronAsset,\n\ttoSolanaAsset,\n\tparseSolanaAsset,\n\tisSolanaAsset,\n\tconvertAssetSearchInputToCanonical\n} from '../../lib/asset.js';\n\nexport type ISOCountryCode = CurrencyInfo.ISOCountryCode;\n\ntype RailOrRails = Rail | Rail[];\n\n/**\n * Search criteria for filtering asset movement rails when searching for supported rails for a given transfer.\n * This can be either a single rail or an array of rails, and can be specified for inbound, outbound or common rails.\n *\n * If a single rail or array of rails is provided, it will be applied to both inbound and outbound rails.\n * If separate inbound and outbound rails are provided, they will be applied to their respective directions.\n *\n * For both methods, this will look for providers that support at least one of the specified rails in the respective direction(s).\n * For example, if { inbound: ['ACH', 'WIRE'] } is provided, it will match providers that support either ACH or WIRE inbound rails.\n */\nexport type AssetMovementRailSearchInput = RailOrRails | ({ inbound: RailOrRails; outbound?: RailOrRails } | { inbound?: RailOrRails; outbound: RailOrRails });\n\nexport type ProviderSearchInput = {\n\tasset?: MovableAsset | AssetPair;\n\tfrom?: AssetLocationInput;\n\tto?: AssetLocationInput;\n\trail?: AssetMovementRailSearchInput;\n}\n\n// A given asset should have a location and ID for the contract or public key for that asset\nexport interface Asset {\n\tlocation?: AssetLocationString;\n\t/**\n\t * Keeta token public key string, evm contract address, or a currency code\n\t */\n\tid: string;\n}\n\ntype FiatRails = 'ACH' | 'ACH_DEBIT' | 'WIRE' | 'PIX_PUSH' | 'SPEI_PUSH' | 'WIRE_INTL_PUSH' | 'SEPA_PUSH' | 'MOBILE_WALLET';\ntype CryptoRails = 'KEETA_SEND' | 'EVM_SEND' | 'EVM_CALL' | 'SOLANA_SEND' | 'BITCOIN_SEND' | 'TRON_SEND';\nexport type Rail = FiatRails | CryptoRails;\n\n// Rails can be inbound, outbound or common (inbound and outbound)\nexport interface AssetWithRails extends Asset {\n\trails: (({\n\t\tinbound: RailOrRailWithExtendedDetails[];\n\t\toutbound?: RailOrRailWithExtendedDetails[];\n\t} | {\n\t\tinbound?: RailOrRailWithExtendedDetails[];\n\t\toutbound: RailOrRailWithExtendedDetails[];\n\t} | {\n\t\tinbound?: never;\n\t\toutbound?: never;\n\t}) & {\n\t\tcommon?: RailOrRailWithExtendedDetails[];\n\t});\n};\n\n// A given asset path should consist of exactly one tuple of locations\nexport interface AssetPath {\n\t/**\n\t * The asset or asset pair for this path, with from and to locations supporting the assets in the pair\n\t */\n\tpair: [ AssetWithRails, AssetWithRails ];\n\n\t/**\n\t * KYC providers which this Asset Movement Provider\n\t * supports (DN) -- if not specified,\n\t * then it does not require KYC.\n\t */\n\tkycProviders?: string[];\n};\n\nexport type AssetMetadataTargetValue = TokenPublicKeyString | CurrencySearchCanonical | `$${string}`;\nexport interface SupportedAssetsMetadata {\n\tasset: AssetMetadataTargetValue | [ AssetMetadataTargetValue, AssetMetadataTargetValue ];\n\tpaths: AssetPath[];\n}\n\n/**\n * This is the type of content that can be rendered directly in a client application.\n *\n * There is no guarantee on if/how this content will be displayed, so it should not be used for critical information, rather as a way to provide the user additional context about a transfer.\n */\nexport type ClientRenderableContent = { type: 'markdown' | 'plaintext'; content: string; };\n\nexport interface RailWithExtendedDetails {\n\trail: Rail;\n\n\t/**\n\t * An estimate of the time it will take for a transfer using this rail to complete, in milliseconds. This can be a single number or a tuple representing an estimated range [min, max].\n\t */\n\testimatedTransferTimeMs?: number | [ minEstimateMs: number, maxEstimateMs: number ];\n\n\t/**\n\t * Minimum/Maximum transfer value details for this rail, if applicable.\n\t */\n\testimatedTransferValueRange?: {\n\t\t/**\n\t\t * Min/max transfer value range, as a string in the asset's smallest unit (e.g. cents for USD, or 1/(10**6) for USDC).\n\t\t */\n\t\tvalue: [ string | undefined, string | undefined ];\n\n\t\t/**\n\t\t * The asset in which the min transfer value is denominated. If omitted, it is assumed to be the same as the source asset being transferred.\n\t\t */\n\t\tasset?: MovableAssetSearchCanonical;\n\t}\n\n\t/**\n\t * Fee estimate details for this rail, if applicable.\n\t */\n\testimatedFee?: {\n\t\tfixedFee?: {\n\t\t\t/**\n\t\t\t * Transfer fixed fee, as a string in the asset's smallest unit (e.g. cents for USD, or 1/(10**6) for USDC).\n\t\t\t */\n\t\t\tvalue: string;\n\n\t\t\t/**\n\t\t\t * The asset in which the fixed fee is denominated. If omitted, it is assumed to be the same as the source asset being transferred.\n\t\t\t */\n\t\t\tasset?: MovableAssetSearchCanonical;\n\t\t}\n\n\t\t/**\n\t\t * Estimated transfer variable fee in basis points (bps). 1 bps = 0.01%\n\t\t */\n\t\tvariableFeeBps?: number;\n\t}\n\n\t/**\n\t * Supported operations for this rail\n\t */\n\tsupportedOperations?: {\n\t\t/**\n\t\t * Whether this rail supports creating persistent forwarding addresses for (unmanaged) transfers\n\t\t */\n\t\tcreatePersistentForwarding?: boolean;\n\n\t\t/**\n\t\t * Whether this rail supports initiating (managed) transfers\n\t\t */\n\t\tinitiateTransfer?: boolean;\n\t}\n}\n\nexport type RailOrRailWithExtendedDetails = Rail | RailWithExtendedDetails;\n\n\nexport function commonJSONStringify(input: unknown): string {\n\treturn(JSON.stringify(input, function(_, value: unknown) {\n\t\tif (typeof value === 'bigint') {\n\t\t\treturn(String(value));\n\t\t} else if (KeetaNet.lib.Account.isInstance(value)) {\n\t\t\treturn(value.publicKeyString.get());\n\t\t}\n\n\t\treturn(value);\n\t}));\n}\n\ntype SignableObjectInput =\n\t// PhysicalAddress/MonthYearDateInput/RecipientResolved should not be needed here, but due to a TypeScript issue we need to reference it directly because it cannot satisfy the index signature otherwise.\n\tPhysicalAddress | MonthYearDateInput | RecipientResolved |\n\t{ [key: string | number | symbol]: SignableObjectInput } |\n\tSignableObjectInput[] |\n\tSignable[number] |\n\tundefined |\n\tnull |\n\tboolean;\n\n/**\n * The maximum queue length for the commonToSignable function to prevent DoS attacks\n */\nconst TO_SIGNABLE_MAX_QUEUE_LENGTH = 250;\n\nfunction commonToSignable(item: SignableObjectInput): Signable {\n\tconst queue: [ string, SignableObjectInput ][] = [[ '', item ]];\n\tconst result: [ string, Signable[number] ][] = [];\n\n\twhile (queue.length > 0) {\n\t\tconst next = queue.shift();\n\n\t\tif (!next) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst [ prefix, current ] = next;\n\t\tif (current === null || current === undefined) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (typeof current === 'boolean') {\n\t\t\tresult.push([ prefix, current ? 1 : 0 ]);\n\t\t} else if (Array.isArray(current)) {\n\t\t\tfor (let i = 0; i < current.length; i++) {\n\t\t\t\tqueue.push([ `${prefix}[${i}]`, current[i] ]);\n\t\t\t}\n\t\t} else if (typeof current === 'object') {\n\t\t\tfor (const [ key, value ] of Object.entries(current)) {\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n\t\t\t\tqueue.push([ prefix ? `${prefix}.${key}` : key, value as SignableObjectInput ]);\n\t\t\t}\n\t\t} else {\n\t\t\tresult.push([ prefix, current ]);\n\t\t}\n\n\t\tif (queue.length > TO_SIGNABLE_MAX_QUEUE_LENGTH) {\n\t\t\tthrow(new KeetaAnchorUserError('Too much data to sign in commonToSignable'));\n\t\t}\n\t}\n\n\tresult.sort((a, b) => {\n\t\treturn(a[0].localeCompare(b[0], 'en-US', {\n\t\t\tusage: 'sort',\n\t\t\tnumeric: true,\n\t\t\tsensitivity: 'case',\n\t\t\tignorePunctuation: false\n\t\t}));\n\t});\n\n\treturn(result.map(item => item[1]));\n}\n\nexport type AssetPair<From extends MovableAsset = MovableAsset, To extends MovableAsset = MovableAsset> = { from: From; to: To; };\nexport type AssetOrPair = MovableAsset | AssetPair;\n\nexport type AssetPairCanonical<From extends MovableAssetSearchCanonical = MovableAssetSearchCanonical, To extends MovableAssetSearchCanonical = MovableAssetSearchCanonical> = { from: From; to: To; };\nexport type AssetOrPairCanonical = MovableAssetSearchCanonical | AssetPairCanonical;\n\nfunction isAssetPairLike(input: unknown): input is AssetPair {\n\treturn(typeof input === 'object' && input !== null && 'from' in input && 'to' in input);\n}\n\nexport function toAssetPair(input: AssetOrPair): AssetPair {\n\tif (isAssetPairLike(input)) {\n\t\treturn(input);\n\t}\n\n\treturn({ from: input, to: input });\n}\n\n\nexport function convertAssetOrPairSearchInputToCanonical(input: MovableAsset): MovableAssetSearchCanonical;\nexport function convertAssetOrPairSearchInputToCanonical(input: AssetPair): AssetPairCanonical;\nexport function convertAssetOrPairSearchInputToCanonical(input: AssetOrPair): AssetOrPairCanonical;\nexport function convertAssetOrPairSearchInputToCanonical(input: AssetOrPair): AssetOrPairCanonical {\n\tif (isAssetPairLike(input)) {\n\t\treturn({\n\t\t\tfrom: convertAssetSearchInputToCanonical(input.from),\n\t\t\tto: convertAssetSearchInputToCanonical(input.to)\n\t\t});\n\t} else {\n\t\treturn(convertAssetSearchInputToCanonical(input));\n\t}\n}\n\n\nexport type Operations = NonNullable<ServiceMetadata['services']['assetMovement']>[string]['operations'];\nexport type OperationNames = keyof Operations;\n\nexport type RecipientResolved = AddressResolved | { type: 'persistent-address'; persistentAddressId: string; };\n\n\ntype ConvertToExternalRequest<\n\tInternal extends object,\n\tOverrides extends object,\n\tSigned = { signed?: HTTPSignedField | undefined }\n> =\n\tToJSONSerializable<Omit<Internal, keyof Overrides>> &\n\tOverrides &\n\tSigned;\n\n/**\n * The client-side request type for initiating an asset transfer via the Keeta Asset Movement Anchor service\n */\nexport type KeetaAssetMovementAnchorInitiateTransferClientRequest = {\n\t/**\n\t * Optional KeetaNet account to use for signing the request\n\t */\n\taccount?: KeetaNetAccount | undefined;\n\n\t/**\n\t * The asset or asset pair to transfer, if a pair is given the from and to locations must support both assets in the pair\n\t */\n\tasset: AssetOrPair;\n\n\t/**\n\t * The source location for the asset transfer\n\t */\n\tfrom: { location: AssetLocationLike; };\n\n\t/**\n\t * The destination location and recipient for the asset transfer\n\t */\n\tto: { location: AssetLocationLike; recipient: RecipientResolved; };\n\n\t/**\n\t * The amount of the asset to transfer, as a string in the asset's smallest unit (e.g. cents for USD).\n\t */\n\tvalue: string | bigint;\n\n\t/**\n\t * Optional list of allowed rails for the transfer, the service should throw an error if none of the allowed rails are available\n\t */\n\tallowedRails?: Rail[];\n}\n\n/**\n * The serialized HTTP Body for the {@link KeetaAssetMovementAnchorInitiateTransferClientRequest} request\n */\nexport type KeetaAssetMovementAnchorInitiateTransferRequest = ConvertToExternalRequest<KeetaAssetMovementAnchorInitiateTransferClientRequest, {\n\tasset: AssetOrPairCanonical;\n\tfrom: { location: AssetLocationCanonical; };\n\tto: { location: AssetLocationCanonical; recipient: RecipientResolved; };\n}>;\n\nexport function getKeetaAssetMovementAnchorInitiateTransferRequestSigningData(input: KeetaAssetMovementAnchorInitiateTransferClientRequest | KeetaAssetMovementAnchorInitiateTransferRequest): Signable {\n\treturn(commonToSignable({\n\t\tasset: convertAssetOrPairSearchInputToCanonical(input.asset),\n\t\tfrom: { location: convertAssetLocationInputToCanonical(input.from.location) },\n\t\tto: { location: convertAssetLocationInputToCanonical(input.to.location), recipient: input.to.recipient },\n\t\tvalue: String(input.value)\n\t}));\n}\n\n/**\n * Fee line item type in an asset transfer fee breakdown, showing the purpose of each fee line item.\n */\nexport type AssetFeeLineItemType = 'RAIL' | 'NETWORK' | 'PROVIDER' | 'VALUE_VARIABLE' | 'OTHER';\n\n/**\n * Breakdown of fees for an asset transfer, including line items and total amounts.\n */\nexport type AssetFeeBreakdown = {\n\tlineItems: {\n\t\t/**\n\t\t * The amount of the fee line item, as a string in the asset's smallest unit (e.g. cents for USD).\n\t\t */\n\t\tvalue: string;\n\n\t\t/**\n\t\t * The purpose of the fee line item. @see AssetFeeLineItemType\n\t\t */\n\t\tpurpose: AssetFeeLineItemType;\n\n\t\t/**\n\t\t * The asset in which the fee line item is denominated. If omitted, it is assumed to be the same as the asset being transferred.\n\t\t */\n\t\tasset?: MovableAssetSearchCanonical;\n\t}[];\n\t/**\n\t * The total fee amount priced in a canonical asset. If omitted, the total is assumed to be in the asset being transferred.\n\t */\n\ttotalPricedIn?: MovableAssetSearchCanonical;\n\n\t/**\n\t * The total fee amount, as a string in the asset's smallest unit (e.g. cents for USD).\n\t */\n\ttotal: string;\n};\n\n/**\n * An instruction on how to complete a transfer, ex: where to send tokens, or where to wire USD.\n */\nexport type AssetTransferInstructions = ({\n\ttype: 'KEETA_SEND';\n\n\t/**\n\t * The location from which to send the asset for this instruction, this will only be a keeta chain location.\n\t */\n\tlocation: AssetLocationLike;\n\n\t/**\n\t * The keeta public key address to send to\n\t */\n\tsendToAddress: string;\n\n\t/**\n\t * Amount to send, as a string in the asset's smallest unit.\n\t */\n\tvalue: string;\n\n\t/**\n\t * The token address to send.\n\t */\n\ttokenAddress: string;\n\n\t/**\n\t * If provided, the value to put in the external keeta transfer.\n\t */\n\texternal?: string;\n} | {\n\ttype: 'EVM_SEND';\n\t/**\n\t * The EVM location from which to send the asset for this instruction.\n\t */\n\tlocation: AssetLocationLike;\n\n\t/**\n\t * EVM address to send to\n\t */\n\tsendToAddress: HexString;\n\n\t/**\n\t * Amount to send, as a string in the asset's smallest unit.\n\t */\n\tvalue: string;\n\n\t/**\n\t * The EVM token contract address to send.\n\t */\n\ttokenAddress: HexString;\n} | {\n\t/**\n\t * An EVM contract call instruction, used for assets that require contract interaction to transfer (ex: ERC20 contract deposit() method).\n\t */\n\ttype: 'EVM_CALL';\n\n\t/**\n\t * The EVM location on which the contract call should be made.\n\t */\n\tlocation: AssetLocationLike;\n\n\t/**\n\t * The EVM contract address to call.\n\t */\n\tcontractAddress: HexString;\n\n\t/**\n\t * The method name to call on the contract. Should be either the full method signature (ex: deposit(uint256 value)), or the hashed method ID.\n\t */\n\tcontractMethodName: string;\n\n\t/**\n\t * The arguments to pass to the contract method, as an array of strings.\n\t */\n\tcontractMethodArgs: string[];\n} | {\n\ttype: FiatRails;\n\n\t/**\n\t * The resolved bank account address details to send funds to\n\t */\n\taccount: BankAccountAddressResolved;\n\n\t/**\n\t * Optional deposit message to include with the transfer, ex: for wire this is a reference note.\n\t */\n\tdepositMessage?: string;\n\n\t/**\n\t * Amount to send, as a string in the asset's smallest unit (e.g. cents for USD).\n\t */\n\tvalue: string;\n} | {\n\ttype: 'TRON_SEND';\n\tlocation: AssetLocationLike;\n\n\t/**\n\t * Tron address to send to\n\t */\n\tsendToAddress: string;\n\n\t/**\n\t * Amount to send, as a string in the asset's smallest unit (e.g. SUN for TRX).\n\t */\n\tvalue: string;\n\n\t/**\n\t * TRC20 token contract address if non-TRX.\n\t * Omitting will indicate native TRX.\n\t */\n\ttokenAddress?: string;\n} | {\n\ttype: 'BITCOIN_SEND';\n\tlocation: AssetLocationLike;\n\n\t/**\n\t * Bitcoin address to send to\n\t */\n\tsendToAddress: string;\n\n\t/**\n\t * Amount in sats to send, as a string\n\t */\n\tvalue: string;\n} | {\n\ttype: 'SOLANA_SEND';\n\tlocation: AssetLocationLike;\n\n\t/**\n\t * Solana recipient address (base58 pubkey).\n\t */\n\tsendToAddress: string;\n\n\t/**\n\t * Amount to send, as a string (e.g. in lamports or\n\t * normalized units, depending on your convention).\n\t */\n\tvalue: string;\n\n\t/**\n\t * SPL token mint address if non-native SOL.\n\t * Omitting will indicate native SOL.\n\t */\n\ttokenMintAddress?: string;\n}) & ({\n\t/**\n\t * assetFee is an advisory fee estimate for the fee that will be incurred when the instruction is executed.\n\t * This can be a total value or a breakdown of line items for the executed transfer.\n\t */\n\tassetFee: string | AssetFeeBreakdown;\n\n\t/**\n\t * If provided, this is the total amount the recipient should expect to receive after fees are deducted, formatted in the destination asset's smallest unit.\n\t */\n\ttotalReceiveAmount?: string;\n\n\t/**\n\t * If provided, this is the ID of a persistent address created/used for this transfer instruction.\n\t */\n\tpersistentAddressId?: string;\n});\n\nexport type KeetaAssetMovementAnchorInitiateTransferResponse = ({\n\tok: true;\n\tid: string;\n\tinstructionChoices: AssetTransferInstructions[];\n}) | ({\n\tok: false;\n\terror: string;\n})\n\nexport interface KeetaAssetMovementAnchorGetTransferStatusClientRequest {\n\taccount?: KeetaNetAccount;\n\tid: string;\n}\n\nexport interface KeetaAssetMovementAnchorGetTransferStatusRequest {\n\tid: string;\n}\n\nexport function getKeetaAssetMovementAnchorGetTransferStatusRequestSigningData(input: KeetaAssetMovementAnchorGetTransferStatusRequest): Signable {\n\treturn([ 'get-transaction', input.id ]);\n}\n\ntype TransactionStatus = string;\n\nexport type TransactionId = {\n\tid: string;\n\tnonce: string;\n};\n\ntype TransactionIds<T extends string> = {\n\t[type in T]: TransactionId | null;\n};\n\n/**\n * Representation of an asset movement transaction in the Asset Movement Anchor's system.\n */\nexport type KeetaAssetMovementTransaction = {\n\t/**\n\t * The unique (per anchor) identifier for the asset movement transaction.\n\t *\n\t * This ID is opaque and has no meaning outside of a specific anchor's system.\n\t */\n\tid: string;\n\n\t/**\n\t * The current status of the asset movement transaction.\n\t */\n\tstatus: TransactionStatus;\n\n\t/**\n\t * The asset being moved in the transaction.\n\t */\n\tasset: AssetOrPair;\n\n\t/**\n\t * Information about the source of the asset movement.\n\t */\n\tfrom: {\n\t\t/**\n\t\t * The location of the source of the movement.\n\t\t */\n\t\tlocation: AssetLocationString;\n\n\t\t/**\n\t\t * The value that was sent/to be sent on the source.\n\t\t */\n\t\tvalue: string;\n\n\t\t/**\n\t\t * A list of transaction IDs related to the source chain.\n\t\t */\n\t\ttransactions: TransactionIds<'persistentForwarding' | 'deposit' | 'finalization'>;\n\t};\n\n\t/**\n\t * Information about the destination of the asset movement.\n\t */\n\tto: {\n\t\t/**\n\t\t * The location of the destination of the movement.\n\t\t */\n\t\tlocation: AssetLocationString;\n\n\t\t/**\n\t\t * The value that was received/to be received on the destination.\n\t\t */\n\t\tvalue: string;\n\n\t\t/**\n\t\t * A list of transaction IDs related to the destination chain.\n\t\t */\n\t\ttransactions: TransactionIds<'withdraw'>;\n\t};\n\n\t/**\n\t * Information related to the fee charged for the asset movement.\n\t */\n\tfee: {\n\t\tasset: MovableAsset;\n\t\tvalue: string;\n\t} | null;\n\n\t/**\n\t * Additional details about this rail that (optionally) can be rendered in the client application.\n\t *\n\t * Ex: If there is a proprietary block explorer for a chain involved in the transfer, this field could contain a URL to view the transaction on that explorer.\n\t */\n\tadditionalTransferDetails?: ClientRenderableContent;\n\n\t/**\n\t * Timestamp for when the transaction was created\n\t */\n\tcreatedAt: string;\n\n\t/**\n\t * Timestamp for when the transaction was last updated\n\t */\n\tupdatedAt: string;\n}\n\nexport type KeetaAssetMovementAnchorGetTransferStatusResponse = ({\n\tok: true;\n\ttransaction: KeetaAssetMovementTransaction;\n} | {\n\tok: false;\n\terror: string;\n});\n\ntype CryptoAddress = string;\ntype AddressResolved = BankAccountAddressResolved | MobileWalletAddressResolved | CryptoAddress;\ntype AddressObfuscated = BankAccountAddressObfuscated | MobileWalletAddressObfuscated | CryptoAddress;\n\nexport type PersistentAddressTemplateData = {\n\tid: string;\n\tlocation: AssetLocationLike;\n\tasset: MovableAsset;\n\taddress: AddressObfuscated;\n}\n\nexport type KeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateClientRequest = {\n\taccount?: KeetaNetAccount;\n\tasset: MovableAsset;\n\tlocation: AssetLocationLike;\n\taddress: AddressResolved;\n}\n\n\nexport type KeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateRequest = ConvertToExternalRequest<KeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateClientRequest, {\n\tasset: AssetOrPairCanonical;\n\tlocation: AssetLocationCanonical;\n\taddress: AddressResolved;\n}>;\n\nexport function getKeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateRequestSigningData(input: KeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateClientRequest | KeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateRequest): Signable {\n\tconst pair = toAssetPair(input.asset);\n\treturn(commonToSignable({\n\t\tasset: { from: convertAssetSearchInputToCanonical(pair.from), to: convertAssetSearchInputToCanonical(pair.to) },\n\t\tlocation: convertAssetLocationInputToCanonical(input.location),\n\t\taddress: input.address\n\t}));\n}\n\n\nexport type KeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateResponse = (({\n\tok: true;\n} & PersistentAddressTemplateData) | {\n\tok: false;\n\terror: string;\n});\n\nexport type KeetaAssetMovementAnchorListForwardingAddressTemplateClientRequest = {\n\taccount?: KeetaNetAccount;\n\tasset?: MovableAsset[];\n\tlocation?: AssetLocationLike[];\n\tpagination?: PaginationQuery;\n}\n\nexport type KeetaAssetMovementAnchorListForwardingAddressTemplateRequest = ToJSONSerializable<Pick<KeetaAssetMovementAnchorListForwardingAddressTemplateClientRequest, 'account' | 'pagination'>> & {\n\tasset?: MovableAssetSearchCanonical[] | undefined;\n\tlocation?: AssetLocationCanonical[] | undefined;\n\tsigned?: HTTPSignedField;\n}\n\nexport function getKeetaAssetMovementAnchorListForwardingAddressTemplateRequestSigningData(_ignore_input: KeetaAssetMovementAnchorListForwardingAddressTemplateClientRequest | KeetaAssetMovementAnchorListForwardingAddressTemplateRequest): Signable {\n\treturn([ 'list-templates' ]);\n}\n\n\nexport type KeetaAssetMovementAnchorListForwardingAddressTemplateResponse = (({\n\tok: true;\n\ttemplates: PersistentAddressTemplateData[];\n} & PaginationResponseInformation) | {\n\tok: false;\n\terror: string;\n});\n\n\nexport type KeetaPersistentForwardingAddressDetails = {\n\tid?: string;\n\taddress: AddressObfuscated | AddressResolved;\n\tasset?: AssetOrPair;\n\tsourceLocation?: AssetLocationLike;\n\tdestinationLocation?: AssetLocationLike;\n\tdestinationAddress?: AddressResolved | AddressObfuscated;\n\toutgoingRail?: Rail;\n\tincomingRail?: Rail[];\n}\n\nexport type KeetaAssetMovementAnchorCreatePersistentForwardingClientRequest = {\n\taccount?: KeetaNetAccount;\n\tsourceLocation: AssetLocationLike;\n\tasset: AssetOrPair;\n\toutgoingRail?: Rail;\n} & ({\n\tdestinationLocation: AssetLocationLike;\n\tdestinationAddress: AddressResolved;\n} | {\n\tpersistentAddressTemplateId: string;\n});\n\nexport type KeetaAssetMovementAnchorCreatePersistentForwardingRequest = {\n\taccount?: ToJSONSerializable<KeetaNetAccount> | undefined;\n\tsigned?: HTTPSignedField;\n\tsourceLocation: AssetLocationCanonical;\n\tasset: AssetOrPairCanonical;\n\toutgoingRail?: Rail | undefined;\n} & ({\n\tdestinationLocation: AssetLocationCanonical;\n\tdestinationAddress: AddressResolved;\n} | {\n\tpersistentAddressTemplateId: string;\n});\n\nexport function getKeetaAssetMovementAnchorCreatePersistentForwardingRequestSigningData(input: KeetaAssetMovementAnchorCreatePersistentForwardingClientRequest | KeetaAssetMovementAnchorCreatePersistentForwardingRequest): Signable {\n\treturn(commonToSignable({\n\t\tsourceLocation: convertAssetLocationInputToCanonical(input.sourceLocation),\n\t\tasset: convertAssetOrPairSearchInputToCanonical(input.asset),\n\t\toutgoingRail: input.outgoingRail,\n\t\t...('destinationLocation' in input ? {\n\t\t\tdestinationLocation: convertAssetLocationInputToCanonical(input.destinationLocation),\n\t\t\tdestinationAddress: input.destinationAddress\n\t\t} : {\n\t\t\tpersistentAddressTemplateId: input.persistentAddressTemplateId\n\t\t})\n\t}))\n}\n\nexport type KeetaAssetMovementAnchorCreatePersistentForwardingResponse = (({\n\tok: true;\n} & KeetaPersistentForwardingAddressDetails) | {\n\tok: false;\n\terror: string;\n});\n\nexport type KeetaAssetMovementAnchorListPersistentForwardingClientRequest = {\n\taccount?: KeetaNetAccount;\n\tsigned?: HTTPSignedField | undefined;\n\tsearch?: {\n\t\tsourceLocation?: AssetLocationLike;\n\t\tdestinationLocation?: AssetLocationLike;\n\t\tasset?: MovableAsset;\n\t\tdestinationAddress?: string;\n\t\tpersistentAddressTemplateId?: string;\n\t}[];\n\tpagination?: PaginationQuery;\n}\n\nexport type KeetaAssetMovementAnchorListPersistentForwardingRequest = {\n\taccount?: ToJSONSerializable<KeetaNetAccount> | undefined;\n\tsigned?: HTTPSignedField | undefined;\n\tsearch?: {\n\t\tsourceLocation?: AssetLocationCanonical | undefined;\n\t\tdestinationLocation?: AssetLocationCanonical | undefined;\n\t\tasset?: MovableAssetSearchCanonical | undefined;\n\t\tdestinationAddress?: string | undefined;\n\t\tpersistentAddressTemplateId?: string | undefined;\n\t}[] | undefined;\n\tpagination?: PaginationQuery | undefined;\n}\n\nexport type KeetaAssetMovementAnchorListPersistentForwardingResponse = (({\n\tok: true;\n\taddresses: KeetaPersistentForwardingAddressDetails[];\n} & PaginationResponseInformation) | {\n\tok: false;\n\terror: string;\n});\n\nexport function getKeetaAssetMovementAnchorListPersistentForwardingRequestSigningData(_ignore_input: KeetaAssetMovementAnchorListPersistentForwardingClientRequest | KeetaAssetMovementAnchorListPersistentForwardingRequest): Signable {\n\treturn([ 'list-persistent-forwarding-addresses' ]);\n}\n\ntype PaginationQuery = {\n\tlimit?: number;\n\toffset?: number;\n}\n\ntype PaginationResponseInformation = {\n\ttotal: string;\n}\n\nexport type KeetaAssetMovementAnchorlistTransactionsClientRequest = {\n\taccount?: KeetaNetAccount;\n\tpersistentAddresses?: ({ location: AssetLocationLike; } & ({ persistentAddress?: string; persistentAddressTemplate: string; } | { persistentAddress: string; persistentAddressTemplate?: string; }))[];\n\tfrom?: { location: AssetLocationLike; userAddress?: string; asset?: MovableAsset; };\n\tto?: { location: AssetLocationLike; userAddress?: string; asset?: MovableAsset; };\n\ttransactions?: { location: AssetLocationLike; transaction: Partial<TransactionId>; }[] | undefined;\n\tpagination?: PaginationQuery;\n}\n\nexport type KeetaAssetMovementAnchorlistTransactionsRequest = {\n\taccount?: ToJSONSerializable<KeetaNetAccount> | undefined;\n\tsigned?: HTTPSignedField | undefined;\n\tpersistentAddresses?: ({ location: AssetLocationCanonical; } & ({ persistentAddress?: string | undefined; persistentAddressTemplate: string; } | { persistentAddress: string; persistentAddressTemplate?: string | undefined; }))[] | undefined;\n\tfrom?: { location: AssetLocationCanonical; userAddress?: string | undefined; asset?: MovableAsset | undefined; } | undefined;\n\tto?: { location: AssetLocationCanonical; userAddress?: string | undefined; asset?: MovableAsset | undefined; } | undefined;\n\ttransactions?: { location: AssetLocationCanonical; transaction: Partial<TransactionId>; }[] | undefined;\n\tpagination?: PaginationQuery | undefined;\n}\n\nexport function getKeetaAssetMovementAnchorlistTransactionsRequestSigningData(_ignore_input: KeetaAssetMovementAnchorlistTransactionsClientRequest | KeetaAssetMovementAnchorlistTransactionsRequest): Signable {\n\treturn([ 'list-transactions' ]);\n}\n\nexport type KeetaAssetMovementAnchorlistPersistentForwardingTransactionsResponse = (({\n\tok: true;\n\ttransactions: KeetaAssetMovementTransaction[];\n} & PaginationResponseInformation) | {\n\tok: false;\n\terror: string;\n});\n\nexport type KeetaAssetMovementAnchorShareKYCClientRequest = {\n\taccount: KeetaNetAccount;\n\tattributes: string | SharableCertificateAttributes;\n\ttosAgreement?: { id: string; };\n}\n\nexport type KeetaAssetMovementAnchorShareKYCRequest = ConvertToExternalRequest<KeetaAssetMovementAnchorShareKYCClientRequest, {\n\tattributes: string;\n}, { signed: HTTPSignedField }>;\n\nexport function getKeetaAssetMovementAnchorShareKYCRequestSigningData(_ignore_input: KeetaAssetMovementAnchorShareKYCClientRequest | KeetaAssetMovementAnchorShareKYCRequest): Signable {\n\treturn([ 'share-kyc' ]);\n}\n\nexport type KeetaAssetMovementAnchorShareKYCResponse = (({\n\tok: true;\n} & ({\n\tisPending?: false;\n} | {\n\tisPending: true;\n\tpromiseURL?: string;\n})) | {\n\tok: false;\n\terror: string;\n});\n\nexport const assertKeetaSupportedAssetsMetadata: (input: unknown) => SupportedAssetsMetadata[] = createAssert<SupportedAssetsMetadata[]>();\nexport const assertKeetaAssetMovementAnchorCreatePersistentForwardingRequest: (input: unknown) => KeetaAssetMovementAnchorCreatePersistentForwardingRequest = createAssert<KeetaAssetMovementAnchorCreatePersistentForwardingRequest>();\nexport const assertKeetaAssetMovementAnchorCreatePersistentForwardingResponse: (input: unknown) => KeetaAssetMovementAnchorCreatePersistentForwardingResponse = createAssertEquals<KeetaAssetMovementAnchorCreatePersistentForwardingResponse>();\nexport const assertKeetaAssetMovementAnchorInitiateTransferRequest: (input: unknown) => KeetaAssetMovementAnchorInitiateTransferRequest = createAssert<KeetaAssetMovementAnchorInitiateTransferRequest>();\nexport const assertKeetaAssetMovementAnchorInitiateTransferResponse: (input: unknown) => KeetaAssetMovementAnchorInitiateTransferResponse = createAssertEquals<KeetaAssetMovementAnchorInitiateTransferResponse>();\nexport const assertKeetaAssetMovementAnchorGetTransferStatusRequest: (input: unknown) => KeetaAssetMovementAnchorGetTransferStatusRequest = createAssert<KeetaAssetMovementAnchorGetTransferStatusRequest>();\nexport const assertKeetaAssetMovementAnchorGetTransferStatusResponse: (input: unknown) => KeetaAssetMovementAnchorGetTransferStatusResponse = createAssertEquals<KeetaAssetMovementAnchorGetTransferStatusResponse>();\nexport const assertKeetaAssetMovementAnchorlistTransactionsRequest: (input: unknown) => KeetaAssetMovementAnchorlistTransactionsRequest = createAssert<KeetaAssetMovementAnchorlistTransactionsRequest>();\nexport const assertKeetaAssetMovementAnchorListPersistentForwardingRequest: (input: unknown) => KeetaAssetMovementAnchorListPersistentForwardingRequest = createAssert<KeetaAssetMovementAnchorListPersistentForwardingRequest>();\nexport const assertKeetaAssetMovementAnchorListPersistentForwardingResponse: (input: unknown) => KeetaAssetMovementAnchorListPersistentForwardingResponse = createAssertEquals<KeetaAssetMovementAnchorListPersistentForwardingResponse>();\nexport const assertKeetaAssetMovementAnchorlistPersistentForwardingTransactionsResponse: (input: unknown) => KeetaAssetMovementAnchorlistPersistentForwardingTransactionsResponse = createAssertEquals<KeetaAssetMovementAnchorlistPersistentForwardingTransactionsResponse>();\nexport const assertKeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateRequest: (input: unknown) => KeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateRequest = createAssert<KeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateRequest>();\nexport const assertKeetaAssetMovementAnchorListForwardingAddressTemplateRequest: (input: unknown) => KeetaAssetMovementAnchorListForwardingAddressTemplateRequest = createAssert<KeetaAssetMovementAnchorListForwardingAddressTemplateRequest>();\nexport const assertKeetaAssetMovementAnchorListForwardingAddressTemplateResponse: (input: unknown) => KeetaAssetMovementAnchorListForwardingAddressTemplateResponse = createAssertEquals<KeetaAssetMovementAnchorListForwardingAddressTemplateResponse>();\nexport const assertKeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateResponse: (input: unknown) => KeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateResponse = createAssertEquals<KeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateResponse>();\nexport const assertBankAccountAddressObfuscated: (input: unknown) => BankAccountAddressObfuscated = createAssert<BankAccountAddressObfuscated>();\nexport const assertBankAccountAddressResolved: (input: unknown) => BankAccountAddressResolved = createAssert<BankAccountAddressResolved>();\nexport const assertKeetaAssetMovementAnchorShareKYCRequest: (input: unknown) => KeetaAssetMovementAnchorShareKYCRequest = createAssert<KeetaAssetMovementAnchorShareKYCRequest>();\nexport const assertKeetaAssetMovementAnchorShareKYCResponse: (input: unknown) => KeetaAssetMovementAnchorShareKYCResponse = createAssertEquals<KeetaAssetMovementAnchorShareKYCResponse>();\n\nexport const isKeetaAssetMovementAnchorInitiateTransferRequest: (input: unknown) => input is KeetaAssetMovementAnchorInitiateTransferRequest = createIs<KeetaAssetMovementAnchorInitiateTransferRequest>();\nexport const isKeetaAssetMovementAnchorGetTransferStatusRequest: (input: unknown) => input is KeetaAssetMovementAnchorGetTransferStatusRequest = createIs<KeetaAssetMovementAnchorGetTransferStatusRequest>();\nexport const isKeetaAssetMovementAnchorListForwardingAddressTemplateRequest: (input: unknown) => input is KeetaAssetMovementAnchorListForwardingAddressTemplateRequest = createIs<KeetaAssetMovementAnchorListForwardingAddressTemplateRequest>();\nexport const isKeetaAssetMovementAnchorListForwardingAddressTemplateResponse: (input: unknown) => input is KeetaAssetMovementAnchorListForwardingAddressTemplateResponse = createIs<KeetaAssetMovementAnchorListForwardingAddressTemplateResponse>();\nexport const isKeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateResponse: (input: unknown) => input is KeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateResponse = createIs<KeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateResponse>();\nexport const isKeetaAssetMovementAnchorCreatePersistentForwardingResponse: (input: unknown) => input is KeetaAssetMovementAnchorCreatePersistentForwardingResponse = createIs<KeetaAssetMovementAnchorCreatePersistentForwardingResponse>();\nexport const isKeetaAssetMovementAnchorInitiateTransferResponse: (input: unknown) => input is KeetaAssetMovementAnchorInitiateTransferResponse = createIs<KeetaAssetMovementAnchorInitiateTransferResponse>();\nexport const isKeetaAssetMovementAnchorGetExchangeStatusResponse: (input: unknown) => input is KeetaAssetMovementAnchorGetTransferStatusResponse = createIs<KeetaAssetMovementAnchorGetTransferStatusResponse>();\nexport const isKeetaAssetMovementAnchorlistPersistentForwardingTransactionsResponse: (input: unknown) => input is KeetaAssetMovementAnchorlistPersistentForwardingTransactionsResponse = createIs<KeetaAssetMovementAnchorlistPersistentForwardingTransactionsResponse>();\nexport const isKeetaAssetMovementAnchorShareKYCResponse: (input: unknown) => input is KeetaAssetMovementAnchorShareKYCResponse = createIs<KeetaAssetMovementAnchorShareKYCResponse>();\nexport const isKeetaAssetMovementAnchorListPersistentForwardingResponse: (input: unknown) => input is KeetaAssetMovementAnchorListPersistentForwardingResponse = createIs<KeetaAssetMovementAnchorListPersistentForwardingResponse>();\n\ntype Account = InstanceType<typeof KeetaNet.lib.Account<Exclude<AccountKeyAlgorithm, IdentifierKeyAlgorithm>>>;\n\ntype KeetaAssetMovementAnchorKYCExternalURLFlow = {\n\ttype: 'url-flow';\n\turl: string;\n}\n\nexport interface KeetaAssetMovementAnchorKYCShareNeededErrorJSONProperties {\n\ttosFlow: KeetaAssetMovementAnchorKYCExternalURLFlow | undefined;\n\tneededAttributes: string[] | undefined;\n\tshareWithPrincipals: ReturnType<Account['publicKeyString']['get']>[];\n\tacceptedIssuers: { name: string; value: string; }[][];\n}\n\nexport const assertKeetaAssetMovementAnchorKYCShareNeededErrorJSONProperties: (input: unknown) => KeetaAssetMovementAnchorKYCShareNeededErrorJSONProperties = createAssertEquals<KeetaAssetMovementAnchorKYCShareNeededErrorJSONProperties>();\n\ntype KeetaAssetMovementAnchorKYCShareNeededErrorJSON = ReturnType<KeetaAnchorUserError['toJSON']> & KeetaAssetMovementAnchorKYCShareNeededErrorJSONProperties;\n\nclass KeetaAssetMovementAnchorKYCShareNeededError extends KeetaAnchorUserError {\n\tstatic override readonly name: string = 'KeetaAssetMovementAnchorKYCShareNeededError';\n\tprivate readonly KeetaAssetMovementAnchorKYCShareNeededErrorObjectTypeID!: string;\n\tprivate static readonly KeetaAssetMovementAnchorKYCShareNeededErrorObjectTypeID = '3f4d6acd-8915-40de-94fa-4c6c48c01623';\n\n\treadonly shareWithPrincipals: Account[];\n\treadonly neededAttributes: string[] | undefined;\n\treadonly tosFlow: KeetaAssetMovementAnchorKYCExternalURLFlow | undefined;\n\treadonly acceptedIssuers: { name: string; value: string; }[][];\n\n\tconstructor(args: {\n\t\tneededAttributes?: string[] | undefined;\n\t\tshareWithPrincipals: Account[];\n\t\ttosFlow?: KeetaAssetMovementAnchorKYCExternalURLFlow | undefined;\n\t\tacceptedIssuers: { name: string; value: string; }[][];\n\t}, message?: string) {\n\t\tsuper(message ?? 'User Not Onboarded to Asset Movement Service');\n\t\tthis.statusCode = 403;\n\n\t\tObject.defineProperty(this, 'KeetaAssetMovementAnchorKYCShareNeededErrorObjectTypeID', {\n\t\t\tvalue: KeetaAssetMovementAnchorKYCShareNeededError.KeetaAssetMovementAnchorKYCShareNeededErrorObjectTypeID,\n\t\t\tenumerable: false\n\t\t});\n\n\t\tthis.neededAttributes = args.neededAttributes;\n\t\tthis.tosFlow = args.tosFlow;\n\t\tthis.shareWithPrincipals = args.shareWithPrincipals;\n\t\tthis.acceptedIssuers = args.acceptedIssuers;\n\t}\n\n\tstatic isInstance(input: unknown): input is KeetaAssetMovementAnchorKYCShareNeededError {\n\t\treturn(this.hasPropWithValue(input, 'KeetaAssetMovementAnchorKYCShareNeededErrorObjectTypeID', KeetaAssetMovementAnchorKYCShareNeededError.KeetaAssetMovementAnchorKYCShareNeededErrorObjectTypeID));\n\t}\n\n\n\tasErrorResponse(contentType: 'text/plain' | 'application/json'): { error: string; statusCode: number; contentType: string } {\n\t\tconst { tosFlow, neededAttributes, shareWithPrincipals, acceptedIssuers } = this.toJSON();\n\n\t\tlet message = this.message;\n\t\tif (contentType === 'application/json') {\n\t\t\tmessage = JSON.stringify({\n\t\t\t\tok: false,\n\t\t\t\tname: this.name,\n\t\t\t\tcode: 'KEETA_ANCHOR_ASSET_MOVEMENT_KYC_SHARE_NEEDED',\n\t\t\t\tdata: { tosFlow, neededAttributes, shareWithPrincipals, acceptedIssuers },\n\t\t\t\terror: this.message\n\t\t\t});\n\t\t}\n\n\t\treturn({\n\t\t\terror: message,\n\t\t\tstatusCode: this.statusCode,\n\t\t\tcontentType: contentType\n\t\t});\n\t}\n\n\ttoJSON(): KeetaAssetMovementAnchorKYCShareNeededErrorJSON {\n\t\treturn({\n\t\t\t...super.toJSON(),\n\t\t\ttosFlow: this.tosFlow,\n\t\t\tneededAttributes: this.neededAttributes,\n\t\t\tshareWithPrincipals: this.shareWithPrincipals.map(function(account) {\n\t\t\t\treturn(account.publicKeyString.get());\n\t\t\t}),\n\t\t\tacceptedIssuers: this.acceptedIssuers\n\t\t});\n\t}\n\n\tstatic async fromJSON(input: unknown): Promise<KeetaAssetMovementAnchorKYCShareNeededError> {\n\t\tconst { message, other } = this.extractErrorProperties(input, this);\n\n\t\tif (!('data' in other)) {\n\t\t\tthrow(new Error('Invalid KeetaAssetMovementAnchorKYCShareNeededError JSON: missing data property'));\n\t\t}\n\n\t\tconst parsed = assertKeetaAssetMovementAnchorKYCShareNeededErrorJSONProperties(other.data);\n\n\t\tconst error = new this(\n\t\t\t{\n\t\t\t\tshareWithPrincipals: parsed.shareWithPrincipals.map(function(pubKeyString) {\n\t\t\t\t\treturn(KeetaNet.lib.Account.fromPublicKeyString(pubKeyString).assertAccount());\n\t\t\t\t}),\n\t\t\t\tneededAttributes: parsed.neededAttributes,\n\t\t\t\ttosFlow: parsed.tosFlow,\n\t\t\t\tacceptedIssuers: parsed.acceptedIssuers\n\t\t\t},\n\t\t\tmessage\n\t\t);\n\n\t\terror.restoreFromJSON(other);\n\t\treturn(error);\n\t}\n}\n\nexport interface KeetaAssetMovementAnchorAdditionalKYCNeededErrorJSONProperties {\n\ttoCompleteFlow: KeetaAssetMovementAnchorKYCExternalURLFlow | undefined;\n}\n\nexport const assertKeetaAssetMovementAnchorAdditionalKYCNeededErrorJSONProperties: (input: unknown) => KeetaAssetMovementAnchorAdditionalKYCNeededErrorJSONProperties = createAssertEquals<KeetaAssetMovementAnchorAdditionalKYCNeededErrorJSONProperties>();\n\ntype KeetaAssetMovementAnchorAdditionalKYCNeededErrorJSON = ReturnType<KeetaAnchorUserError['toJSON']> & KeetaAssetMovementAnchorAdditionalKYCNeededErrorJSONProperties;\n\nclass KeetaAssetMovementAnchorAdditionalKYCNeededError extends KeetaAnchorUserError {\n\tstatic override readonly name: string = 'KeetaAssetMovementAnchorAdditionalKYCNeededError';\n\tprivate readonly KeetaAssetMovementAnchorAdditionalKYCNeededErrorObjectTypeID!: string;\n\tprivate static readonly KeetaAssetMovementAnchorAdditionalKYCNeededErrorObjectTypeID = '3f4d6acd-8915-40de-94fa-4c6c48c01623';\n\n\treadonly toCompleteFlow: KeetaAssetMovementAnchorKYCExternalURLFlow | undefined;\n\n\tconstructor(args: KeetaAssetMovementAnchorAdditionalKYCNeededErrorJSONProperties, message?: string) {\n\t\tsuper(message ?? 'User requires additional KYC to proceed with asset movement');\n\t\tthis.statusCode = 403;\n\n\t\tObject.defineProperty(this, 'KeetaAssetMovementAnchorAdditionalKYCNeededErrorObjectTypeID', {\n\t\t\tvalue: KeetaAssetMovementAnchorAdditionalKYCNeededError.KeetaAssetMovementAnchorAdditionalKYCNeededErrorObjectTypeID,\n\t\t\tenumerable: false\n\t\t});\n\n\t\tthis.toCompleteFlow = args.toCompleteFlow;\n\t}\n\n\tstatic isInstance(input: unknown): input is KeetaAssetMovementAnchorAdditionalKYCNeededError {\n\t\treturn(this.hasPropWithValue(input, 'KeetaAssetMovementAnchorAdditionalKYCNeededErrorObjectTypeID', KeetaAssetMovementAnchorAdditionalKYCNeededError.KeetaAssetMovementAnchorAdditionalKYCNeededErrorObjectTypeID));\n\t}\n\n\n\tasErrorResponse(contentType: 'text/plain' | 'application/json'): { error: string; statusCode: number; contentType: string } {\n\t\tconst { toCompleteFlow } = this.toJSON();\n\n\t\tlet message = this.message;\n\t\tif (contentType === 'application/json') {\n\t\t\tmessage = JSON.stringify({\n\t\t\t\tok: false,\n\t\t\t\tname: this.name,\n\t\t\t\tcode: 'KEETA_ANCHOR_ASSET_MOVEMENT_ADDITIONAL_KYC_NEEDED',\n\t\t\t\tdata: { toCompleteFlow },\n\t\t\t\terror: this.message\n\t\t\t});\n\t\t}\n\n\t\treturn({\n\t\t\terror: message,\n\t\t\tstatusCode: this.statusCode,\n\t\t\tcontentType: contentType\n\t\t});\n\t}\n\n\ttoJSON(): KeetaAssetMovementAnchorAdditionalKYCNeededErrorJSON {\n\t\treturn({\n\t\t\t...super.toJSON(),\n\t\t\ttoCompleteFlow: this.toCompleteFlow\n\t\t});\n\t}\n\n\tstatic async fromJSON(input: unknown): Promise<KeetaAssetMovementAnchorAdditionalKYCNeededError> {\n\t\tconst { message, other } = this.extractErrorProperties(input, this);\n\n\t\tif (!('data' in other)) {\n\t\t\tthrow(new Error('Invalid KeetaAssetMovementAnchorAdditionalKYCNeededError JSON: missing data property'));\n\t\t}\n\n\t\tconst parsed = assertKeetaAssetMovementAnchorAdditionalKYCNeededErrorJSONProperties(other.data);\n\n\t\tconst error = new this(\n\t\t\t{\n\t\t\t\ttoCompleteFlow: parsed.toCompleteFlow\n\t\t\t},\n\t\t\tmessage\n\t\t);\n\n\t\terror.restoreFromJSON(other);\n\t\treturn(error);\n\t}\n}\n\n\nexport interface KeetaAssetMovementAnchorOperationNotSupportedErrorJSONProperties {\n\tforAsset?: AssetOrPair | undefined;\n\tforRail?: Rail | undefined;\n}\n\nexport const assertKeetaAssetMovementAnchorOperationNotSupportedErrorJSONProperties: (input: unknown) => KeetaAssetMovementAnchorOperationNotSupportedErrorJSONProperties = createAssertEquals<KeetaAssetMovementAnchorOperationNotSupportedErrorJSONProperties>();\n\ntype KeetaAssetMovementAnchorOperationNotSupportedErrorJSON = ReturnType<KeetaAnchorUserError['toJSON']> & KeetaAssetMovementAnchorOperationNotSupportedErrorJSONProperties;\n\nclass KeetaAssetMovementAnchorOperationNotSupportedError extends KeetaAnchorUserError implements KeetaAssetMovementAnchorOperationNotSupportedErrorJSONProperties {\n\tstatic override readonly name: string = 'KeetaAssetMovementAnchorOperationNotSupportedError';\n\tprivate readonly KeetaAssetMovementAnchorOperationNotSupportedErrorObjectTypeID!: string;\n\tprivate static readonly KeetaAssetMovementAnchorOperationNotSupportedErrorObjectTypeID = 'b613cd80-57ac-4be5-ad4a-bb8644d50de6';\n\n\treadonly forAsset: AssetOrPair | undefined;\n\treadonly forRail: Rail | undefined;\n\n\tconstructor(args: KeetaAssetMovementAnchorOperationNotSupportedErrorJSONProperties, message?: string) {\n\t\tsuper(message ?? `Operation not supported`);\n\t\tthis.statusCode = 400;\n\n\t\tObject.defineProperty(this, 'KeetaAssetMovementAnchorOperationNotSupportedErrorObjectTypeID', {\n\t\t\tvalue: KeetaAssetMovementAnchorOperationNotSupportedError.KeetaAssetMovementAnchorOperationNotSupportedErrorObjectTypeID,\n\t\t\tenumerable: false\n\t\t});\n\n\t\tthis.forAsset = args.forAsset;\n\t\tthis.forRail = args.forRail;\n\t}\n\n\tstatic isInstance(input: unknown): input is KeetaAssetMovementAnchorOperationNotSupportedError {\n\t\treturn(this.hasPropWithValue(input, 'KeetaAssetMovementAnchorOperationNotSupportedErrorObjectTypeID', KeetaAssetMovementAnchorOperationNotSupportedError.KeetaAssetMovementAnchorOperationNotSupportedErrorObjectTypeID));\n\t}\n\n\tasErrorResponse(contentType: 'text/plain' | 'application/json'): { error: string; statusCode: number; contentType: string } {\n\t\tconst { forAsset, forRail } = this.toJSON();\n\n\t\tlet message = this.message;\n\t\tif (contentType === 'application/json') {\n\t\t\tmessage = JSON.stringify({\n\t\t\t\tok: false,\n\t\t\t\tname: this.name,\n\t\t\t\tcode: 'KEETA_ANCHOR_ASSET_MOVEMENT_OPERATION_NOT_SUPPORTED',\n\t\t\t\tdata: { forAsset, forRail },\n\t\t\t\terror: this.message\n\t\t\t});\n\t\t}\n\n\t\treturn({\n\t\t\terror: message,\n\t\t\tstatusCode: this.statusCode,\n\t\t\tcontentType: contentType\n\t\t});\n\t}\n\n\ttoJSON(): KeetaAssetMovementAnchorOperationNotSupportedErrorJSON {\n\t\treturn({\n\t\t\t...super.toJSON(),\n\t\t\tforRail: this.forRail,\n\t\t\tforAsset: this.forAsset ? convertAssetOrPairSearchInputToCanonical(this.forAsset) : undefined\n\t\t});\n\t}\n\n\tstatic async fromJSON(input: unknown): Promise<KeetaAssetMovementAnchorOperationNotSupportedError> {\n\t\tconst { message, other } = this.extractErrorProperties(input, this);\n\n\t\tif (!('data' in other)) {\n\t\t\tthrow(new Error('Invalid KeetaAssetMovementAnchorOperationNotSupportedError JSON: missing data property'));\n\t\t}\n\n\t\tconst parsed = assertKeetaAssetMovementAnchorOperationNotSupportedErrorJSONProperties(other.data);\n\n\t\tconst error = new this(\n\t\t\t{\n\t\t\t\tforAsset: parsed.forAsset,\n\t\t\t\tforRail: parsed.forRail\n\t\t\t},\n\t\t\tmessage\n\t\t);\n\n\t\terror.restoreFromJSON(other);\n\t\treturn(error);\n\t}\n}\n\nexport const Errors: {\n\tKYCShareNeeded: typeof KeetaAssetMovementAnchorKYCShareNeededError;\n\tAdditionalKYCNeeded: typeof KeetaAssetMovementAnchorAdditionalKYCNeededError;\n\tOperationNotSupported: typeof KeetaAssetMovementAnchorOperationNotSupportedError;\n} = {\n\t/**\n\t * The user is required to share KYC details\n\t */\n\tKYCShareNeeded: KeetaAssetMovementAnchorKYCShareNeededError,\n\n\t/**\n\t * The user is required to complete additional KYC steps\n\t */\n\tAdditionalKYCNeeded: KeetaAssetMovementAnchorAdditionalKYCNeededError,\n\n\t/**\n\t * The requested operation is not supported\n\t */\n\tOperationNotSupported: KeetaAssetMovementAnchorOperationNotSupportedError\n};\n"]}
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/services/asset-movement/common.ts"],"names":[],"mappings":";;AAGA,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAKnE,OAAO,KAAK,QAAQ,MAAM,+BAA+B,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE1D,OAAO,EAAE,oCAAoC,EAAE,MAAM,mBAAmB,CAAC;AAGzE,OAAO,EAAE,kCAAkC,EAAE,MAAM,oBAAoB,CAAC;AAExE,cAAc,yCAAyC,CAAC;AAExD,cAAc,mBAAmB,CAAC;AAmBlC,OAAO,EACN,UAAU,EACV,aAAa,EACb,UAAU,EACV,WAAW,EACX,cAAc,EACd,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,kCAAkC,EAClC,MAAM,oBAAoB,CAAC;AAoD3B,CAAC;AAeD,CAAC;AA+EF,MAAM,UAAU,mBAAmB,CAAC,KAAc;IACjD,OAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,UAAS,CAAC,EAAE,KAAc;QACtD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC/B,OAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACvB,CAAC;aAAM,IAAI,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YACnD,OAAM,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,EAAE,CAAC,CAAC;QACrC,CAAC;QAED,OAAM,CAAC,KAAK,CAAC,CAAC;IACf,CAAC,CAAC,CAAC,CAAC;AACL,CAAC;AAYD;;GAEG;AACH,MAAM,4BAA4B,GAAG,GAAG,CAAC;AAEzC,SAAS,gBAAgB,CAAC,IAAyB;IAClD,MAAM,KAAK,GAAsC,CAAC,CAAE,EAAE,EAAE,IAAI,CAAE,CAAC,CAAC;IAChE,MAAM,MAAM,GAAmC,EAAE,CAAC;IAElD,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;QAE3B,IAAI,CAAC,IAAI,EAAE,CAAC;YACX,SAAS;QACV,CAAC;QAED,MAAM,CAAE,MAAM,EAAE,OAAO,CAAE,GAAG,IAAI,CAAC;QACjC,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC/C,SAAS;QACV,CAAC;QAED,IAAI,OAAO,OAAO,KAAK,SAAS,EAAE,CAAC;YAClC,MAAM,CAAC,IAAI,CAAC,CAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC;QAC1C,CAAC;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACzC,KAAK,CAAC,IAAI,CAAC,CAAE,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC;YAC/C,CAAC;QACF,CAAC;aAAM,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YACxC,KAAK,MAAM,CAAE,GAAG,EAAE,KAAK,CAAE,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBACtD,yEAAyE;gBACzE,KAAK,CAAC,IAAI,CAAC,CAAE,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,KAA4B,CAAE,CAAC,CAAC;YACjF,CAAC;QACF,CAAC;aAAM,CAAC;YACP,MAAM,CAAC,IAAI,CAAC,CAAE,MAAM,EAAE,OAAO,CAAE,CAAC,CAAC;QAClC,CAAC;QAED,IAAI,KAAK,CAAC,MAAM,GAAG,4BAA4B,EAAE,CAAC;YACjD,MAAK,CAAC,IAAI,oBAAoB,CAAC,2CAA2C,CAAC,CAAC,CAAC;QAC9E,CAAC;IACF,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACpB,OAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE;YACxC,KAAK,EAAE,MAAM;YACb,OAAO,EAAE,IAAI;YACb,WAAW,EAAE,MAAM;YACnB,iBAAiB,EAAE,KAAK;SACxB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACrC,CAAC;AAQD,SAAS,eAAe,CAAC,KAAc;IACtC,OAAM,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,CAAC;AACzF,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAkB;IAC7C,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAM,CAAC,KAAK,CAAC,CAAC;IACf,CAAC;IAED,OAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;AACpC,CAAC;AAMD,MAAM,UAAU,wCAAwC,CAAC,KAAkB;IAC1E,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAM,CAAC;YACN,IAAI,EAAE,kCAAkC,CAAC,KAAK,CAAC,IAAI,CAAC;YACpD,EAAE,EAAE,kCAAkC,CAAC,KAAK,CAAC,EAAE,CAAC;SAChD,CAAC,CAAC;IACJ,CAAC;SAAM,CAAC;QACP,OAAM,CAAC,kCAAkC,CAAC,KAAK,CAAC,CAAC,CAAC;IACnD,CAAC;AACF,CAAC;AA8DD,MAAM,UAAU,6DAA6D,CAAC,KAA8G;IAC3L,OAAM,CAAC,gBAAgB,CAAC;QACvB,KAAK,EAAE,wCAAwC,CAAC,KAAK,CAAC,KAAK,CAAC;QAC5D,IAAI,EAAE,EAAE,QAAQ,EAAE,oCAAoC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;QAC7E,EAAE,EAAE,EAAE,QAAQ,EAAE,oCAAoC,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,EAAE;QACxG,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;KAC1B,CAAC,CAAC,CAAC;AACL,CAAC;AA2ND,MAAM,UAAU,8DAA8D,CAAC,KAAuD;IACrI,OAAM,CAAC,CAAE,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAE,CAAC,CAAC;AACzC,CAAC;AAqID,MAAM,UAAU,sFAAsF,CAAC,KAAgK;IACtQ,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACtC,OAAM,CAAC,gBAAgB,CAAC;QACvB,KAAK,EAAE,EAAE,IAAI,EAAE,kCAAkC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,kCAAkC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;QAC/G,QAAQ,EAAE,oCAAoC,CAAC,KAAK,CAAC,QAAQ,CAAC;QAC9D,OAAO,EAAE,KAAK,CAAC,OAAO;KACtB,CAAC,CAAC,CAAC;AACL,CAAC;AAuBD,MAAM,UAAU,0EAA0E,CAAC,aAAgJ;IAC1O,OAAM,CAAC,CAAE,gBAAgB,CAAE,CAAC,CAAC;AAC9B,CAAC;AAgDD,MAAM,UAAU,uEAAuE,CAAC,KAAkI;IACzN,OAAM,CAAC,gBAAgB,CAAC;QACvB,cAAc,EAAE,oCAAoC,CAAC,KAAK,CAAC,cAAc,CAAC;QAC1E,KAAK,EAAE,wCAAwC,CAAC,KAAK,CAAC,KAAK,CAAC;QAC5D,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,GAAG,CAAC,qBAAqB,IAAI,KAAK,CAAC,CAAC,CAAC;YACpC,mBAAmB,EAAE,oCAAoC,CAAC,KAAK,CAAC,mBAAmB,CAAC;YACpF,kBAAkB,EAAE,KAAK,CAAC,kBAAkB;SAC5C,CAAC,CAAC,CAAC;YACH,2BAA2B,EAAE,KAAK,CAAC,2BAA2B;SAC9D,CAAC;KACF,CAAC,CAAC,CAAA;AACJ,CAAC;AA2CD,MAAM,UAAU,qEAAqE,CAAC,aAAsI;IAC3N,OAAM,CAAC,CAAE,sCAAsC,CAAE,CAAC,CAAC;AACpD,CAAC;AA8BD,MAAM,UAAU,6DAA6D,CAAC,aAAsH;IACnM,OAAM,CAAC,CAAE,mBAAmB,CAAE,CAAC,CAAC;AACjC,CAAC;AAoBD,MAAM,UAAU,qDAAqD,CAAC,aAAsG;IAC3K,OAAM,CAAC,CAAE,WAAW,CAAE,CAAC,CAAC;AACzB,CAAC;AAcD,MAAM,CAAC,MAAM,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAA2F,CAAC;AAC3I,MAAM,CAAC,MAAM,+DAA+D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAA2J,CAAC;AACxO,MAAM,CAAC,MAAM,gEAAgE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAmK,CAAC;AACjP,MAAM,CAAC,MAAM,qDAAqD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAuI,CAAC;AAC1M,MAAM,CAAC,MAAM,sDAAsD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAA+I,CAAC;AACnN,MAAM,CAAC,MAAM,sDAAsD;;;;;;;;;;;;;;;;;;;;;OAAyI,CAAC;AAC7M,MAAM,CAAC,MAAM,uDAAuD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAiJ,CAAC;AACtN,MAAM,CAAC,MAAM,qDAAqD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAuI,CAAC;AAC1M,MAAM,CAAC,MAAM,6DAA6D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAuJ,CAAC;AAClO,MAAM,CAAC,MAAM,8DAA8D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAA+J,CAAC;AAC3O,MAAM,CAAC,MAAM,0EAA0E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAuL,CAAC;AAC/Q,MAAM,CAAC,MAAM,8EAA8E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAyL,CAAC;AACrR,MAAM,CAAC,MAAM,kEAAkE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAiK,CAAC;AACjP,MAAM,CAAC,MAAM,mEAAmE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAyK,CAAC;AAC1P,MAAM,CAAC,MAAM,+EAA+E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAiM,CAAC;AAC9R,MAAM,CAAC,MAAM,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAiG,CAAC;AACjJ,MAAM,CAAC,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAA6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","sourcesContent":["import type { ServiceMetadata } from '../../lib/resolver.ts';\nimport type * as CurrencyInfo from '@keetanetwork/currency-info';\nimport type { AccountKeyAlgorithm, IdentifierKeyAlgorithm, TokenPublicKeyString } from '@keetanetwork/keetanet-client/lib/account.js';\nimport { createAssert, createAssertEquals, createIs } from 'typia';\nimport type { ToJSONSerializable } from '@keetanetwork/keetanet-client/lib/utils/conversion.js';\nimport type { HTTPSignedField } from '../../lib/http-server/common.js';\nimport type { Signable } from '../../lib/utils/signing.js';\nimport type { SharableCertificateAttributes } from '../../lib/certificates.js';\nimport * as KeetaNet from '@keetanetwork/keetanet-client';\nimport { KeetaAnchorUserError } from '../../lib/error.js';\nimport type { AssetLocationLike, AssetLocationString, AssetLocationInput, AssetLocationCanonical } from './lib/location.js';\nimport { convertAssetLocationInputToCanonical } from './lib/location.js';\nimport type { BankAccountAddressObfuscated, BankAccountAddressResolved, MobileWalletAddressObfuscated, MobileWalletAddressResolved, MonthYearDateInput, PhysicalAddress } from './lib/data/addresses/types.generated.js';\nimport type { HexString, KeetaNetAccount, MovableAsset, MovableAssetSearchCanonical, CurrencySearchCanonical } from '../../lib/asset.js';\nimport { convertAssetSearchInputToCanonical } from '../../lib/asset.js';\n\nexport * from './lib/data/addresses/types.generated.js';\n\nexport * from './lib/location.js';\n\nexport type {\n\tHexString,\n\tKeetaNetAccount,\n\tKeetaNetTokenPublicKeyString,\n\tEVMAsset,\n\tTronAsset,\n\tSolanaAsset,\n\tChainAssetString,\n\tMovableAssetSearchInput,\n\tMovableAssetSearchCanonical,\n\tMovableAsset,\n\tCurrencySearchCanonical,\n\tCurrencySearchInput,\n\tTokenSearchInput,\n\tTokenSearchCanonical\n} from '../../lib/asset.js';\n\nexport {\n\ttoEVMAsset,\n\tparseEVMAsset,\n\tisEVMAsset,\n\ttoTronAsset,\n\tparseTronAsset,\n\tisTronAsset,\n\ttoSolanaAsset,\n\tparseSolanaAsset,\n\tisSolanaAsset,\n\tconvertAssetSearchInputToCanonical\n} from '../../lib/asset.js';\n\nexport type ISOCountryCode = CurrencyInfo.ISOCountryCode;\n\ntype RailOrRails = Rail | Rail[];\n\n/**\n * Search criteria for filtering asset movement rails when searching for supported rails for a given transfer.\n * This can be either a single rail or an array of rails, and can be specified for inbound, outbound or common rails.\n *\n * If a single rail or array of rails is provided, it will be applied to both inbound and outbound rails.\n * If separate inbound and outbound rails are provided, they will be applied to their respective directions.\n *\n * For both methods, this will look for providers that support at least one of the specified rails in the respective direction(s).\n * For example, if { inbound: ['ACH', 'WIRE'] } is provided, it will match providers that support either ACH or WIRE inbound rails.\n */\nexport type AssetMovementRailSearchInput = RailOrRails | ({ inbound: RailOrRails; outbound?: RailOrRails } | { inbound?: RailOrRails; outbound: RailOrRails });\n\nexport type ProviderSearchInput = {\n\tasset?: MovableAsset | AssetPair;\n\tfrom?: AssetLocationInput;\n\tto?: AssetLocationInput;\n\trail?: AssetMovementRailSearchInput;\n}\n\n// A given asset should have a location and ID for the contract or public key for that asset\nexport interface Asset {\n\tlocation?: AssetLocationString;\n\t/**\n\t * Keeta token public key string, evm contract address, or a currency code\n\t */\n\tid: string;\n}\n\nexport type FiatRails = 'ACH' | 'ACH_DEBIT' | 'WIRE' | 'PIX_PUSH' | 'SPEI_PUSH' | 'WIRE_INTL_PUSH' | 'SEPA_PUSH' | 'MOBILE_WALLET' | 'INTERAC_PUSH' | 'FPS_PUSH' | 'CARD_PUSH' | 'CARD_PULL';\nexport type CryptoRails = 'KEETA_SEND' | 'EVM_SEND' | 'EVM_CALL' | 'SOLANA_SEND' | 'BITCOIN_SEND' | 'TRON_SEND';\nexport type Rail = FiatRails | CryptoRails;\n\n// Rails can be inbound, outbound or common (inbound and outbound)\nexport interface AssetWithRails extends Asset {\n\trails: (({\n\t\tinbound: RailOrRailWithExtendedDetails[];\n\t\toutbound?: RailOrRailWithExtendedDetails[];\n\t} | {\n\t\tinbound?: RailOrRailWithExtendedDetails[];\n\t\toutbound: RailOrRailWithExtendedDetails[];\n\t} | {\n\t\tinbound?: never;\n\t\toutbound?: never;\n\t}) & {\n\t\tcommon?: RailOrRailWithExtendedDetails[];\n\t});\n};\n\n// A given asset path should consist of exactly one tuple of locations\nexport interface AssetPath {\n\t/**\n\t * The asset or asset pair for this path, with from and to locations supporting the assets in the pair\n\t */\n\tpair: [ AssetWithRails, AssetWithRails ];\n\n\t/**\n\t * KYC providers which this Asset Movement Provider\n\t * supports (DN) -- if not specified,\n\t * then it does not require KYC.\n\t */\n\tkycProviders?: string[];\n};\n\nexport type AssetMetadataTargetValue = TokenPublicKeyString | CurrencySearchCanonical | `$${string}`;\nexport interface SupportedAssetsMetadata {\n\tasset: AssetMetadataTargetValue | [ AssetMetadataTargetValue, AssetMetadataTargetValue ];\n\tpaths: AssetPath[];\n}\n\n/**\n * This is the type of content that can be rendered directly in a client application.\n *\n * There is no guarantee on if/how this content will be displayed, so it should not be used for critical information, rather as a way to provide the user additional context about a transfer.\n */\nexport type ClientRenderableContent = { type: 'markdown' | 'plaintext'; content: string; };\n\nexport interface RailWithExtendedDetails {\n\trail: Rail;\n\n\t/**\n\t * An estimate of the time it will take for a transfer using this rail to complete, in milliseconds. This can be a single number or a tuple representing an estimated range [min, max].\n\t */\n\testimatedTransferTimeMs?: number | [ minEstimateMs: number, maxEstimateMs: number ];\n\n\t/**\n\t * Minimum/Maximum transfer value details for this rail, if applicable.\n\t */\n\testimatedTransferValueRange?: {\n\t\t/**\n\t\t * Min/max transfer value range, as a string in the asset's smallest unit (e.g. cents for USD, or 1/(10**6) for USDC).\n\t\t */\n\t\tvalue: [ string | undefined, string | undefined ];\n\n\t\t/**\n\t\t * The asset in which the min transfer value is denominated. If omitted, it is assumed to be the same as the source asset being transferred.\n\t\t */\n\t\tasset?: MovableAssetSearchCanonical;\n\t}\n\n\t/**\n\t * Fee estimate details for this rail, if applicable.\n\t */\n\testimatedFee?: {\n\t\tfixedFee?: {\n\t\t\t/**\n\t\t\t * Transfer fixed fee, as a string in the asset's smallest unit (e.g. cents for USD, or 1/(10**6) for USDC).\n\t\t\t */\n\t\t\tvalue: string;\n\n\t\t\t/**\n\t\t\t * The asset in which the fixed fee is denominated. If omitted, it is assumed to be the same as the source asset being transferred.\n\t\t\t */\n\t\t\tasset?: MovableAssetSearchCanonical;\n\t\t}\n\n\t\t/**\n\t\t * Estimated transfer variable fee in basis points (bps). 1 bps = 0.01%\n\t\t */\n\t\tvariableFeeBps?: number;\n\t}\n\n\t/**\n\t * Supported operations for this rail\n\t */\n\tsupportedOperations?: {\n\t\t/**\n\t\t * Whether this rail supports creating persistent forwarding addresses for (unmanaged) transfers\n\t\t */\n\t\tcreatePersistentForwarding?: boolean;\n\n\t\t/**\n\t\t * Whether this rail supports initiating (managed) transfers\n\t\t */\n\t\tinitiateTransfer?: boolean;\n\t}\n}\n\nexport type RailOrRailWithExtendedDetails = Rail | RailWithExtendedDetails;\n\n\nexport function commonJSONStringify(input: unknown): string {\n\treturn(JSON.stringify(input, function(_, value: unknown) {\n\t\tif (typeof value === 'bigint') {\n\t\t\treturn(String(value));\n\t\t} else if (KeetaNet.lib.Account.isInstance(value)) {\n\t\t\treturn(value.publicKeyString.get());\n\t\t}\n\n\t\treturn(value);\n\t}));\n}\n\ntype SignableObjectInput =\n\t// PhysicalAddress/MonthYearDateInput/RecipientResolved should not be needed here, but due to a TypeScript issue we need to reference it directly because it cannot satisfy the index signature otherwise.\n\tPhysicalAddress | MonthYearDateInput | RecipientResolved |\n\t{ [key: string | number | symbol]: SignableObjectInput } |\n\tSignableObjectInput[] |\n\tSignable[number] |\n\tundefined |\n\tnull |\n\tboolean;\n\n/**\n * The maximum queue length for the commonToSignable function to prevent DoS attacks\n */\nconst TO_SIGNABLE_MAX_QUEUE_LENGTH = 250;\n\nfunction commonToSignable(item: SignableObjectInput): Signable {\n\tconst queue: [ string, SignableObjectInput ][] = [[ '', item ]];\n\tconst result: [ string, Signable[number] ][] = [];\n\n\twhile (queue.length > 0) {\n\t\tconst next = queue.shift();\n\n\t\tif (!next) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst [ prefix, current ] = next;\n\t\tif (current === null || current === undefined) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (typeof current === 'boolean') {\n\t\t\tresult.push([ prefix, current ? 1 : 0 ]);\n\t\t} else if (Array.isArray(current)) {\n\t\t\tfor (let i = 0; i < current.length; i++) {\n\t\t\t\tqueue.push([ `${prefix}[${i}]`, current[i] ]);\n\t\t\t}\n\t\t} else if (typeof current === 'object') {\n\t\t\tfor (const [ key, value ] of Object.entries(current)) {\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n\t\t\t\tqueue.push([ prefix ? `${prefix}.${key}` : key, value as SignableObjectInput ]);\n\t\t\t}\n\t\t} else {\n\t\t\tresult.push([ prefix, current ]);\n\t\t}\n\n\t\tif (queue.length > TO_SIGNABLE_MAX_QUEUE_LENGTH) {\n\t\t\tthrow(new KeetaAnchorUserError('Too much data to sign in commonToSignable'));\n\t\t}\n\t}\n\n\tresult.sort((a, b) => {\n\t\treturn(a[0].localeCompare(b[0], 'en-US', {\n\t\t\tusage: 'sort',\n\t\t\tnumeric: true,\n\t\t\tsensitivity: 'case',\n\t\t\tignorePunctuation: false\n\t\t}));\n\t});\n\n\treturn(result.map(item => item[1]));\n}\n\nexport type AssetPair<From extends MovableAsset = MovableAsset, To extends MovableAsset = MovableAsset> = { from: From; to: To; };\nexport type AssetOrPair = MovableAsset | AssetPair;\n\nexport type AssetPairCanonical<From extends MovableAssetSearchCanonical = MovableAssetSearchCanonical, To extends MovableAssetSearchCanonical = MovableAssetSearchCanonical> = { from: From; to: To; };\nexport type AssetOrPairCanonical = MovableAssetSearchCanonical | AssetPairCanonical;\n\nfunction isAssetPairLike(input: unknown): input is AssetPair {\n\treturn(typeof input === 'object' && input !== null && 'from' in input && 'to' in input);\n}\n\nexport function toAssetPair(input: AssetOrPair): AssetPair {\n\tif (isAssetPairLike(input)) {\n\t\treturn(input);\n\t}\n\n\treturn({ from: input, to: input });\n}\n\n\nexport function convertAssetOrPairSearchInputToCanonical(input: MovableAsset): MovableAssetSearchCanonical;\nexport function convertAssetOrPairSearchInputToCanonical(input: AssetPair): AssetPairCanonical;\nexport function convertAssetOrPairSearchInputToCanonical(input: AssetOrPair): AssetOrPairCanonical;\nexport function convertAssetOrPairSearchInputToCanonical(input: AssetOrPair): AssetOrPairCanonical {\n\tif (isAssetPairLike(input)) {\n\t\treturn({\n\t\t\tfrom: convertAssetSearchInputToCanonical(input.from),\n\t\t\tto: convertAssetSearchInputToCanonical(input.to)\n\t\t});\n\t} else {\n\t\treturn(convertAssetSearchInputToCanonical(input));\n\t}\n}\n\n\nexport type Operations = NonNullable<ServiceMetadata['services']['assetMovement']>[string]['operations'];\nexport type OperationNames = keyof Operations;\n\nexport type RecipientResolved = AddressResolved | { type: 'persistent-address'; persistentAddressId: string; };\n\n\ntype ConvertToExternalRequest<\n\tInternal extends object,\n\tOverrides extends object,\n\tSigned = { signed?: HTTPSignedField | undefined }\n> =\n\tToJSONSerializable<Omit<Internal, keyof Overrides>> &\n\tOverrides &\n\tSigned;\n\n/**\n * The client-side request type for initiating an asset transfer via the Keeta Asset Movement Anchor service\n */\nexport type KeetaAssetMovementAnchorInitiateTransferClientRequest = {\n\t/**\n\t * Optional KeetaNet account to use for signing the request\n\t */\n\taccount?: KeetaNetAccount | undefined;\n\n\t/**\n\t * The asset or asset pair to transfer, if a pair is given the from and to locations must support both assets in the pair\n\t */\n\tasset: AssetOrPair;\n\n\t/**\n\t * The source location for the asset transfer\n\t */\n\tfrom: { location: AssetLocationLike; };\n\n\t/**\n\t * The destination location and recipient for the asset transfer\n\t */\n\tto: { location: AssetLocationLike; recipient: RecipientResolved; };\n\n\t/**\n\t * The amount of the asset to transfer, as a string in the asset's smallest unit (e.g. cents for USD).\n\t */\n\tvalue: string | bigint;\n\n\t/**\n\t * Optional list of allowed rails for the transfer, the service should throw an error if none of the allowed rails are available\n\t */\n\tallowedRails?: Rail[];\n}\n\n/**\n * The serialized HTTP Body for the {@link KeetaAssetMovementAnchorInitiateTransferClientRequest} request\n */\nexport type KeetaAssetMovementAnchorInitiateTransferRequest = ConvertToExternalRequest<KeetaAssetMovementAnchorInitiateTransferClientRequest, {\n\tasset: AssetOrPairCanonical;\n\tfrom: { location: AssetLocationCanonical; };\n\tto: { location: AssetLocationCanonical; recipient: RecipientResolved; };\n}>;\n\nexport function getKeetaAssetMovementAnchorInitiateTransferRequestSigningData(input: KeetaAssetMovementAnchorInitiateTransferClientRequest | KeetaAssetMovementAnchorInitiateTransferRequest): Signable {\n\treturn(commonToSignable({\n\t\tasset: convertAssetOrPairSearchInputToCanonical(input.asset),\n\t\tfrom: { location: convertAssetLocationInputToCanonical(input.from.location) },\n\t\tto: { location: convertAssetLocationInputToCanonical(input.to.location), recipient: input.to.recipient },\n\t\tvalue: String(input.value)\n\t}));\n}\n\n/**\n * Fee line item type in an asset transfer fee breakdown, showing the purpose of each fee line item.\n */\nexport type AssetFeeLineItemType = 'RAIL' | 'NETWORK' | 'PROVIDER' | 'VALUE_VARIABLE' | 'OTHER';\n\n/**\n * Breakdown of fees for an asset transfer, including line items and total amounts.\n */\nexport type AssetFeeBreakdown = {\n\tlineItems: {\n\t\t/**\n\t\t * The amount of the fee line item, as a string in the asset's smallest unit (e.g. cents for USD).\n\t\t */\n\t\tvalue: string;\n\n\t\t/**\n\t\t * The purpose of the fee line item. @see AssetFeeLineItemType\n\t\t */\n\t\tpurpose: AssetFeeLineItemType;\n\n\t\t/**\n\t\t * The asset in which the fee line item is denominated. If omitted, it is assumed to be the same as the asset being transferred.\n\t\t */\n\t\tasset?: MovableAssetSearchCanonical;\n\t}[];\n\t/**\n\t * The total fee amount priced in a canonical asset. If omitted, the total is assumed to be in the asset being transferred.\n\t */\n\ttotalPricedIn?: MovableAssetSearchCanonical;\n\n\t/**\n\t * The total fee amount, as a string in the asset's smallest unit (e.g. cents for USD).\n\t */\n\ttotal: string;\n};\n\n/**\n * An instruction on how to complete a transfer, ex: where to send tokens, or where to wire USD.\n */\nexport type AssetTransferInstructions = ({\n\ttype: 'KEETA_SEND';\n\n\t/**\n\t * The location from which to send the asset for this instruction, this will only be a keeta chain location.\n\t */\n\tlocation: AssetLocationLike;\n\n\t/**\n\t * The keeta public key address to send to\n\t */\n\tsendToAddress: string;\n\n\t/**\n\t * Amount to send, as a string in the asset's smallest unit.\n\t */\n\tvalue: string;\n\n\t/**\n\t * The token address to send.\n\t */\n\ttokenAddress: string;\n\n\t/**\n\t * If provided, the value to put in the external keeta transfer.\n\t */\n\texternal?: string;\n} | {\n\ttype: 'EVM_SEND';\n\t/**\n\t * The EVM location from which to send the asset for this instruction.\n\t */\n\tlocation: AssetLocationLike;\n\n\t/**\n\t * EVM address to send to\n\t */\n\tsendToAddress: HexString;\n\n\t/**\n\t * Amount to send, as a string in the asset's smallest unit.\n\t */\n\tvalue: string;\n\n\t/**\n\t * The EVM token contract address to send.\n\t */\n\ttokenAddress: HexString;\n} | {\n\t/**\n\t * An EVM contract call instruction, used for assets that require contract interaction to transfer (ex: ERC20 contract deposit() method).\n\t */\n\ttype: 'EVM_CALL';\n\n\t/**\n\t * The EVM location on which the contract call should be made.\n\t */\n\tlocation: AssetLocationLike;\n\n\t/**\n\t * The EVM contract address to call.\n\t */\n\tcontractAddress: HexString;\n\n\t/**\n\t * The method name to call on the contract. Should be either the full method signature (ex: deposit(uint256 value)), or the hashed method ID.\n\t */\n\tcontractMethodName: string;\n\n\t/**\n\t * The arguments to pass to the contract method, as an array of strings.\n\t */\n\tcontractMethodArgs: string[];\n} | {\n\ttype: FiatRails;\n\n\t/**\n\t * The resolved bank account address details to send funds to\n\t */\n\taccount: BankAccountAddressResolved;\n\n\t/**\n\t * Optional deposit message to include with the transfer, ex: for wire this is a reference note.\n\t */\n\tdepositMessage?: string;\n\n\t/**\n\t * Amount to send, as a string in the asset's smallest unit (e.g. cents for USD).\n\t */\n\tvalue: string;\n} | {\n\ttype: 'TRON_SEND';\n\tlocation: AssetLocationLike;\n\n\t/**\n\t * Tron address to send to\n\t */\n\tsendToAddress: string;\n\n\t/**\n\t * Amount to send, as a string in the asset's smallest unit (e.g. SUN for TRX).\n\t */\n\tvalue: string;\n\n\t/**\n\t * TRC20 token contract address if non-TRX.\n\t * Omitting will indicate native TRX.\n\t */\n\ttokenAddress?: string;\n} | {\n\ttype: 'BITCOIN_SEND';\n\tlocation: AssetLocationLike;\n\n\t/**\n\t * Bitcoin address to send to\n\t */\n\tsendToAddress: string;\n\n\t/**\n\t * Amount in sats to send, as a string\n\t */\n\tvalue: string;\n} | {\n\ttype: 'SOLANA_SEND';\n\tlocation: AssetLocationLike;\n\n\t/**\n\t * Solana recipient address (base58 pubkey).\n\t */\n\tsendToAddress: string;\n\n\t/**\n\t * Amount to send, as a string (e.g. in lamports or\n\t * normalized units, depending on your convention).\n\t */\n\tvalue: string;\n\n\t/**\n\t * SPL token mint address if non-native SOL.\n\t * Omitting will indicate native SOL.\n\t */\n\ttokenMintAddress?: string;\n}) & ({\n\t/**\n\t * assetFee is an advisory fee estimate for the fee that will be incurred when the instruction is executed.\n\t * This can be a total value or a breakdown of line items for the executed transfer.\n\t */\n\tassetFee: string | AssetFeeBreakdown;\n\n\t/**\n\t * If provided, this is the total amount the recipient should expect to receive after fees are deducted, formatted in the destination asset's smallest unit.\n\t */\n\ttotalReceiveAmount?: string;\n\n\t/**\n\t * If provided, this is the ID of a persistent address created/used for this transfer instruction.\n\t */\n\tpersistentAddressId?: string;\n});\n\nexport type KeetaAssetMovementAnchorInitiateTransferResponse = ({\n\tok: true;\n\tid: string;\n\tinstructionChoices: AssetTransferInstructions[];\n}) | ({\n\tok: false;\n\terror: string;\n})\n\nexport interface KeetaAssetMovementAnchorGetTransferStatusClientRequest {\n\taccount?: KeetaNetAccount;\n\tid: string;\n}\n\nexport interface KeetaAssetMovementAnchorGetTransferStatusRequest {\n\tid: string;\n}\n\nexport function getKeetaAssetMovementAnchorGetTransferStatusRequestSigningData(input: KeetaAssetMovementAnchorGetTransferStatusRequest): Signable {\n\treturn([ 'get-transaction', input.id ]);\n}\n\ntype TransactionStatus = string;\n\nexport type TransactionId = {\n\tid: string;\n\tnonce: string;\n};\n\ntype TransactionIds<T extends string> = {\n\t[type in T]: TransactionId | null;\n};\n\n/**\n * Representation of an asset movement transaction in the Asset Movement Anchor's system.\n */\nexport type KeetaAssetMovementTransaction = {\n\t/**\n\t * The unique (per anchor) identifier for the asset movement transaction.\n\t *\n\t * This ID is opaque and has no meaning outside of a specific anchor's system.\n\t */\n\tid: string;\n\n\t/**\n\t * The current status of the asset movement transaction.\n\t */\n\tstatus: TransactionStatus;\n\n\t/**\n\t * The asset being moved in the transaction.\n\t */\n\tasset: AssetOrPair;\n\n\t/**\n\t * Information about the source of the asset movement.\n\t */\n\tfrom: {\n\t\t/**\n\t\t * The location of the source of the movement.\n\t\t */\n\t\tlocation: AssetLocationString;\n\n\t\t/**\n\t\t * The value that was sent/to be sent on the source.\n\t\t */\n\t\tvalue: string;\n\n\t\t/**\n\t\t * A list of transaction IDs related to the source chain.\n\t\t */\n\t\ttransactions: TransactionIds<'persistentForwarding' | 'deposit' | 'finalization'>;\n\t};\n\n\t/**\n\t * Information about the destination of the asset movement.\n\t */\n\tto: {\n\t\t/**\n\t\t * The location of the destination of the movement.\n\t\t */\n\t\tlocation: AssetLocationString;\n\n\t\t/**\n\t\t * The value that was received/to be received on the destination.\n\t\t */\n\t\tvalue: string;\n\n\t\t/**\n\t\t * A list of transaction IDs related to the destination chain.\n\t\t */\n\t\ttransactions: TransactionIds<'withdraw'>;\n\t};\n\n\t/**\n\t * Information related to the fee charged for the asset movement.\n\t */\n\tfee: {\n\t\tasset: MovableAsset;\n\t\tvalue: string;\n\t} | null;\n\n\t/**\n\t * Additional details about this rail that (optionally) can be rendered in the client application.\n\t *\n\t * Ex: If there is a proprietary block explorer for a chain involved in the transfer, this field could contain a URL to view the transaction on that explorer.\n\t */\n\tadditionalTransferDetails?: ClientRenderableContent;\n\n\t/**\n\t * Timestamp for when the transaction was created\n\t */\n\tcreatedAt: string;\n\n\t/**\n\t * Timestamp for when the transaction was last updated\n\t */\n\tupdatedAt: string;\n}\n\nexport type KeetaAssetMovementAnchorGetTransferStatusResponse = ({\n\tok: true;\n\ttransaction: KeetaAssetMovementTransaction;\n} | {\n\tok: false;\n\terror: string;\n});\n\ntype CryptoAddress = string;\ntype AddressResolved = BankAccountAddressResolved | MobileWalletAddressResolved | CryptoAddress;\ntype AddressObfuscated = BankAccountAddressObfuscated | MobileWalletAddressObfuscated | CryptoAddress;\n\nexport type PersistentAddressTemplateData = {\n\tid: string;\n\tlocation: AssetLocationLike;\n\tasset: MovableAsset;\n\taddress: AddressObfuscated;\n}\n\nexport type KeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateClientRequest = {\n\taccount?: KeetaNetAccount;\n\tasset: MovableAsset;\n\tlocation: AssetLocationLike;\n\taddress: AddressResolved;\n}\n\n\nexport type KeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateRequest = ConvertToExternalRequest<KeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateClientRequest, {\n\tasset: AssetOrPairCanonical;\n\tlocation: AssetLocationCanonical;\n\taddress: AddressResolved;\n}>;\n\nexport function getKeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateRequestSigningData(input: KeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateClientRequest | KeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateRequest): Signable {\n\tconst pair = toAssetPair(input.asset);\n\treturn(commonToSignable({\n\t\tasset: { from: convertAssetSearchInputToCanonical(pair.from), to: convertAssetSearchInputToCanonical(pair.to) },\n\t\tlocation: convertAssetLocationInputToCanonical(input.location),\n\t\taddress: input.address\n\t}));\n}\n\n\nexport type KeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateResponse = (({\n\tok: true;\n} & PersistentAddressTemplateData) | {\n\tok: false;\n\terror: string;\n});\n\nexport type KeetaAssetMovementAnchorListForwardingAddressTemplateClientRequest = {\n\taccount?: KeetaNetAccount;\n\tasset?: MovableAsset[];\n\tlocation?: AssetLocationLike[];\n\tpagination?: PaginationQuery;\n}\n\nexport type KeetaAssetMovementAnchorListForwardingAddressTemplateRequest = ToJSONSerializable<Pick<KeetaAssetMovementAnchorListForwardingAddressTemplateClientRequest, 'account' | 'pagination'>> & {\n\tasset?: MovableAssetSearchCanonical[] | undefined;\n\tlocation?: AssetLocationCanonical[] | undefined;\n\tsigned?: HTTPSignedField;\n}\n\nexport function getKeetaAssetMovementAnchorListForwardingAddressTemplateRequestSigningData(_ignore_input: KeetaAssetMovementAnchorListForwardingAddressTemplateClientRequest | KeetaAssetMovementAnchorListForwardingAddressTemplateRequest): Signable {\n\treturn([ 'list-templates' ]);\n}\n\n\nexport type KeetaAssetMovementAnchorListForwardingAddressTemplateResponse = (({\n\tok: true;\n\ttemplates: PersistentAddressTemplateData[];\n} & PaginationResponseInformation) | {\n\tok: false;\n\terror: string;\n});\n\n\nexport type KeetaPersistentForwardingAddressDetails = {\n\tid?: string;\n\taddress: AddressObfuscated | AddressResolved;\n\tasset?: AssetOrPair;\n\tsourceLocation?: AssetLocationLike;\n\tdestinationLocation?: AssetLocationLike;\n\tdestinationAddress?: AddressResolved | AddressObfuscated;\n\toutgoingRail?: Rail;\n\tincomingRail?: Rail[];\n}\n\nexport type KeetaAssetMovementAnchorCreatePersistentForwardingClientRequest = {\n\taccount?: KeetaNetAccount;\n\tsourceLocation: AssetLocationLike;\n\tasset: AssetOrPair;\n\toutgoingRail?: Rail;\n} & ({\n\tdestinationLocation: AssetLocationLike;\n\tdestinationAddress: AddressResolved;\n} | {\n\tpersistentAddressTemplateId: string;\n});\n\nexport type KeetaAssetMovementAnchorCreatePersistentForwardingRequest = {\n\taccount?: ToJSONSerializable<KeetaNetAccount> | undefined;\n\tsigned?: HTTPSignedField;\n\tsourceLocation: AssetLocationCanonical;\n\tasset: AssetOrPairCanonical;\n\toutgoingRail?: Rail | undefined;\n} & ({\n\tdestinationLocation: AssetLocationCanonical;\n\tdestinationAddress: AddressResolved;\n} | {\n\tpersistentAddressTemplateId: string;\n});\n\nexport function getKeetaAssetMovementAnchorCreatePersistentForwardingRequestSigningData(input: KeetaAssetMovementAnchorCreatePersistentForwardingClientRequest | KeetaAssetMovementAnchorCreatePersistentForwardingRequest): Signable {\n\treturn(commonToSignable({\n\t\tsourceLocation: convertAssetLocationInputToCanonical(input.sourceLocation),\n\t\tasset: convertAssetOrPairSearchInputToCanonical(input.asset),\n\t\toutgoingRail: input.outgoingRail,\n\t\t...('destinationLocation' in input ? {\n\t\t\tdestinationLocation: convertAssetLocationInputToCanonical(input.destinationLocation),\n\t\t\tdestinationAddress: input.destinationAddress\n\t\t} : {\n\t\t\tpersistentAddressTemplateId: input.persistentAddressTemplateId\n\t\t})\n\t}))\n}\n\nexport type KeetaAssetMovementAnchorCreatePersistentForwardingResponse = (({\n\tok: true;\n} & KeetaPersistentForwardingAddressDetails) | {\n\tok: false;\n\terror: string;\n});\n\nexport type KeetaAssetMovementAnchorListPersistentForwardingClientRequest = {\n\taccount?: KeetaNetAccount;\n\tsigned?: HTTPSignedField | undefined;\n\tsearch?: {\n\t\tsourceLocation?: AssetLocationLike;\n\t\tdestinationLocation?: AssetLocationLike;\n\t\tasset?: MovableAsset;\n\t\tdestinationAddress?: string;\n\t\tpersistentAddressTemplateId?: string;\n\t}[];\n\tpagination?: PaginationQuery;\n}\n\nexport type KeetaAssetMovementAnchorListPersistentForwardingRequest = {\n\taccount?: ToJSONSerializable<KeetaNetAccount> | undefined;\n\tsigned?: HTTPSignedField | undefined;\n\tsearch?: {\n\t\tsourceLocation?: AssetLocationCanonical | undefined;\n\t\tdestinationLocation?: AssetLocationCanonical | undefined;\n\t\tasset?: MovableAssetSearchCanonical | undefined;\n\t\tdestinationAddress?: string | undefined;\n\t\tpersistentAddressTemplateId?: string | undefined;\n\t}[] | undefined;\n\tpagination?: PaginationQuery | undefined;\n}\n\nexport type KeetaAssetMovementAnchorListPersistentForwardingResponse = (({\n\tok: true;\n\taddresses: KeetaPersistentForwardingAddressDetails[];\n} & PaginationResponseInformation) | {\n\tok: false;\n\terror: string;\n});\n\nexport function getKeetaAssetMovementAnchorListPersistentForwardingRequestSigningData(_ignore_input: KeetaAssetMovementAnchorListPersistentForwardingClientRequest | KeetaAssetMovementAnchorListPersistentForwardingRequest): Signable {\n\treturn([ 'list-persistent-forwarding-addresses' ]);\n}\n\ntype PaginationQuery = {\n\tlimit?: number;\n\toffset?: number;\n}\n\ntype PaginationResponseInformation = {\n\ttotal: string;\n}\n\nexport type KeetaAssetMovementAnchorlistTransactionsClientRequest = {\n\taccount?: KeetaNetAccount;\n\tpersistentAddresses?: ({ location: AssetLocationLike; } & ({ persistentAddress?: string; persistentAddressTemplate: string; } | { persistentAddress: string; persistentAddressTemplate?: string; }))[];\n\tfrom?: { location: AssetLocationLike; userAddress?: string; asset?: MovableAsset; };\n\tto?: { location: AssetLocationLike; userAddress?: string; asset?: MovableAsset; };\n\ttransactions?: { location: AssetLocationLike; transaction: Partial<TransactionId>; }[] | undefined;\n\tpagination?: PaginationQuery;\n}\n\nexport type KeetaAssetMovementAnchorlistTransactionsRequest = {\n\taccount?: ToJSONSerializable<KeetaNetAccount> | undefined;\n\tsigned?: HTTPSignedField | undefined;\n\tpersistentAddresses?: ({ location: AssetLocationCanonical; } & ({ persistentAddress?: string | undefined; persistentAddressTemplate: string; } | { persistentAddress: string; persistentAddressTemplate?: string | undefined; }))[] | undefined;\n\tfrom?: { location: AssetLocationCanonical; userAddress?: string | undefined; asset?: MovableAsset | undefined; } | undefined;\n\tto?: { location: AssetLocationCanonical; userAddress?: string | undefined; asset?: MovableAsset | undefined; } | undefined;\n\ttransactions?: { location: AssetLocationCanonical; transaction: Partial<TransactionId>; }[] | undefined;\n\tpagination?: PaginationQuery | undefined;\n}\n\nexport function getKeetaAssetMovementAnchorlistTransactionsRequestSigningData(_ignore_input: KeetaAssetMovementAnchorlistTransactionsClientRequest | KeetaAssetMovementAnchorlistTransactionsRequest): Signable {\n\treturn([ 'list-transactions' ]);\n}\n\nexport type KeetaAssetMovementAnchorlistPersistentForwardingTransactionsResponse = (({\n\tok: true;\n\ttransactions: KeetaAssetMovementTransaction[];\n} & PaginationResponseInformation) | {\n\tok: false;\n\terror: string;\n});\n\nexport type KeetaAssetMovementAnchorShareKYCClientRequest = {\n\taccount: KeetaNetAccount;\n\tattributes: string | SharableCertificateAttributes;\n\ttosAgreement?: { id: string; };\n}\n\nexport type KeetaAssetMovementAnchorShareKYCRequest = ConvertToExternalRequest<KeetaAssetMovementAnchorShareKYCClientRequest, {\n\tattributes: string;\n}, { signed: HTTPSignedField }>;\n\nexport function getKeetaAssetMovementAnchorShareKYCRequestSigningData(_ignore_input: KeetaAssetMovementAnchorShareKYCClientRequest | KeetaAssetMovementAnchorShareKYCRequest): Signable {\n\treturn([ 'share-kyc' ]);\n}\n\nexport type KeetaAssetMovementAnchorShareKYCResponse = (({\n\tok: true;\n} & ({\n\tisPending?: false;\n} | {\n\tisPending: true;\n\tpromiseURL?: string;\n})) | {\n\tok: false;\n\terror: string;\n});\n\nexport const assertKeetaSupportedAssetsMetadata: (input: unknown) => SupportedAssetsMetadata[] = createAssert<SupportedAssetsMetadata[]>();\nexport const assertKeetaAssetMovementAnchorCreatePersistentForwardingRequest: (input: unknown) => KeetaAssetMovementAnchorCreatePersistentForwardingRequest = createAssert<KeetaAssetMovementAnchorCreatePersistentForwardingRequest>();\nexport const assertKeetaAssetMovementAnchorCreatePersistentForwardingResponse: (input: unknown) => KeetaAssetMovementAnchorCreatePersistentForwardingResponse = createAssertEquals<KeetaAssetMovementAnchorCreatePersistentForwardingResponse>();\nexport const assertKeetaAssetMovementAnchorInitiateTransferRequest: (input: unknown) => KeetaAssetMovementAnchorInitiateTransferRequest = createAssert<KeetaAssetMovementAnchorInitiateTransferRequest>();\nexport const assertKeetaAssetMovementAnchorInitiateTransferResponse: (input: unknown) => KeetaAssetMovementAnchorInitiateTransferResponse = createAssertEquals<KeetaAssetMovementAnchorInitiateTransferResponse>();\nexport const assertKeetaAssetMovementAnchorGetTransferStatusRequest: (input: unknown) => KeetaAssetMovementAnchorGetTransferStatusRequest = createAssert<KeetaAssetMovementAnchorGetTransferStatusRequest>();\nexport const assertKeetaAssetMovementAnchorGetTransferStatusResponse: (input: unknown) => KeetaAssetMovementAnchorGetTransferStatusResponse = createAssertEquals<KeetaAssetMovementAnchorGetTransferStatusResponse>();\nexport const assertKeetaAssetMovementAnchorlistTransactionsRequest: (input: unknown) => KeetaAssetMovementAnchorlistTransactionsRequest = createAssert<KeetaAssetMovementAnchorlistTransactionsRequest>();\nexport const assertKeetaAssetMovementAnchorListPersistentForwardingRequest: (input: unknown) => KeetaAssetMovementAnchorListPersistentForwardingRequest = createAssert<KeetaAssetMovementAnchorListPersistentForwardingRequest>();\nexport const assertKeetaAssetMovementAnchorListPersistentForwardingResponse: (input: unknown) => KeetaAssetMovementAnchorListPersistentForwardingResponse = createAssertEquals<KeetaAssetMovementAnchorListPersistentForwardingResponse>();\nexport const assertKeetaAssetMovementAnchorlistPersistentForwardingTransactionsResponse: (input: unknown) => KeetaAssetMovementAnchorlistPersistentForwardingTransactionsResponse = createAssertEquals<KeetaAssetMovementAnchorlistPersistentForwardingTransactionsResponse>();\nexport const assertKeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateRequest: (input: unknown) => KeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateRequest = createAssert<KeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateRequest>();\nexport const assertKeetaAssetMovementAnchorListForwardingAddressTemplateRequest: (input: unknown) => KeetaAssetMovementAnchorListForwardingAddressTemplateRequest = createAssert<KeetaAssetMovementAnchorListForwardingAddressTemplateRequest>();\nexport const assertKeetaAssetMovementAnchorListForwardingAddressTemplateResponse: (input: unknown) => KeetaAssetMovementAnchorListForwardingAddressTemplateResponse = createAssertEquals<KeetaAssetMovementAnchorListForwardingAddressTemplateResponse>();\nexport const assertKeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateResponse: (input: unknown) => KeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateResponse = createAssertEquals<KeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateResponse>();\nexport const assertBankAccountAddressObfuscated: (input: unknown) => BankAccountAddressObfuscated = createAssert<BankAccountAddressObfuscated>();\nexport const assertBankAccountAddressResolved: (input: unknown) => BankAccountAddressResolved = createAssert<BankAccountAddressResolved>();\nexport const assertKeetaAssetMovementAnchorShareKYCRequest: (input: unknown) => KeetaAssetMovementAnchorShareKYCRequest = createAssert<KeetaAssetMovementAnchorShareKYCRequest>();\nexport const assertKeetaAssetMovementAnchorShareKYCResponse: (input: unknown) => KeetaAssetMovementAnchorShareKYCResponse = createAssertEquals<KeetaAssetMovementAnchorShareKYCResponse>();\n\nexport const isKeetaAssetMovementAnchorInitiateTransferRequest: (input: unknown) => input is KeetaAssetMovementAnchorInitiateTransferRequest = createIs<KeetaAssetMovementAnchorInitiateTransferRequest>();\nexport const isKeetaAssetMovementAnchorGetTransferStatusRequest: (input: unknown) => input is KeetaAssetMovementAnchorGetTransferStatusRequest = createIs<KeetaAssetMovementAnchorGetTransferStatusRequest>();\nexport const isKeetaAssetMovementAnchorListForwardingAddressTemplateRequest: (input: unknown) => input is KeetaAssetMovementAnchorListForwardingAddressTemplateRequest = createIs<KeetaAssetMovementAnchorListForwardingAddressTemplateRequest>();\nexport const isKeetaAssetMovementAnchorListForwardingAddressTemplateResponse: (input: unknown) => input is KeetaAssetMovementAnchorListForwardingAddressTemplateResponse = createIs<KeetaAssetMovementAnchorListForwardingAddressTemplateResponse>();\nexport const isKeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateResponse: (input: unknown) => input is KeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateResponse = createIs<KeetaAssetMovementAnchorCreatePersistentForwardingAddressTemplateResponse>();\nexport const isKeetaAssetMovementAnchorCreatePersistentForwardingResponse: (input: unknown) => input is KeetaAssetMovementAnchorCreatePersistentForwardingResponse = createIs<KeetaAssetMovementAnchorCreatePersistentForwardingResponse>();\nexport const isKeetaAssetMovementAnchorInitiateTransferResponse: (input: unknown) => input is KeetaAssetMovementAnchorInitiateTransferResponse = createIs<KeetaAssetMovementAnchorInitiateTransferResponse>();\nexport const isKeetaAssetMovementAnchorGetExchangeStatusResponse: (input: unknown) => input is KeetaAssetMovementAnchorGetTransferStatusResponse = createIs<KeetaAssetMovementAnchorGetTransferStatusResponse>();\nexport const isKeetaAssetMovementAnchorlistPersistentForwardingTransactionsResponse: (input: unknown) => input is KeetaAssetMovementAnchorlistPersistentForwardingTransactionsResponse = createIs<KeetaAssetMovementAnchorlistPersistentForwardingTransactionsResponse>();\nexport const isKeetaAssetMovementAnchorShareKYCResponse: (input: unknown) => input is KeetaAssetMovementAnchorShareKYCResponse = createIs<KeetaAssetMovementAnchorShareKYCResponse>();\nexport const isKeetaAssetMovementAnchorListPersistentForwardingResponse: (input: unknown) => input is KeetaAssetMovementAnchorListPersistentForwardingResponse = createIs<KeetaAssetMovementAnchorListPersistentForwardingResponse>();\n\ntype Account = InstanceType<typeof KeetaNet.lib.Account<Exclude<AccountKeyAlgorithm, IdentifierKeyAlgorithm>>>;\n\ntype KeetaAssetMovementAnchorKYCExternalURLFlow = {\n\ttype: 'url-flow';\n\turl: string;\n}\n\nexport interface KeetaAssetMovementAnchorKYCShareNeededErrorJSONProperties {\n\ttosFlow: KeetaAssetMovementAnchorKYCExternalURLFlow | undefined;\n\tneededAttributes: string[] | undefined;\n\tshareWithPrincipals: ReturnType<Account['publicKeyString']['get']>[];\n\tacceptedIssuers: { name: string; value: string; }[][];\n}\n\nexport const assertKeetaAssetMovementAnchorKYCShareNeededErrorJSONProperties: (input: unknown) => KeetaAssetMovementAnchorKYCShareNeededErrorJSONProperties = createAssertEquals<KeetaAssetMovementAnchorKYCShareNeededErrorJSONProperties>();\n\ntype KeetaAssetMovementAnchorKYCShareNeededErrorJSON = ReturnType<KeetaAnchorUserError['toJSON']> & KeetaAssetMovementAnchorKYCShareNeededErrorJSONProperties;\n\nclass KeetaAssetMovementAnchorKYCShareNeededError extends KeetaAnchorUserError {\n\tstatic override readonly name: string = 'KeetaAssetMovementAnchorKYCShareNeededError';\n\tprivate readonly KeetaAssetMovementAnchorKYCShareNeededErrorObjectTypeID!: string;\n\tprivate static readonly KeetaAssetMovementAnchorKYCShareNeededErrorObjectTypeID = '3f4d6acd-8915-40de-94fa-4c6c48c01623';\n\n\treadonly shareWithPrincipals: Account[];\n\treadonly neededAttributes: string[] | undefined;\n\treadonly tosFlow: KeetaAssetMovementAnchorKYCExternalURLFlow | undefined;\n\treadonly acceptedIssuers: { name: string; value: string; }[][];\n\n\tconstructor(args: {\n\t\tneededAttributes?: string[] | undefined;\n\t\tshareWithPrincipals: Account[];\n\t\ttosFlow?: KeetaAssetMovementAnchorKYCExternalURLFlow | undefined;\n\t\tacceptedIssuers: { name: string; value: string; }[][];\n\t}, message?: string) {\n\t\tsuper(message ?? 'User Not Onboarded to Asset Movement Service');\n\t\tthis.statusCode = 403;\n\n\t\tObject.defineProperty(this, 'KeetaAssetMovementAnchorKYCShareNeededErrorObjectTypeID', {\n\t\t\tvalue: KeetaAssetMovementAnchorKYCShareNeededError.KeetaAssetMovementAnchorKYCShareNeededErrorObjectTypeID,\n\t\t\tenumerable: false\n\t\t});\n\n\t\tthis.neededAttributes = args.neededAttributes;\n\t\tthis.tosFlow = args.tosFlow;\n\t\tthis.shareWithPrincipals = args.shareWithPrincipals;\n\t\tthis.acceptedIssuers = args.acceptedIssuers;\n\t}\n\n\tstatic isInstance(input: unknown): input is KeetaAssetMovementAnchorKYCShareNeededError {\n\t\treturn(this.hasPropWithValue(input, 'KeetaAssetMovementAnchorKYCShareNeededErrorObjectTypeID', KeetaAssetMovementAnchorKYCShareNeededError.KeetaAssetMovementAnchorKYCShareNeededErrorObjectTypeID));\n\t}\n\n\n\tasErrorResponse(contentType: 'text/plain' | 'application/json'): { error: string; statusCode: number; contentType: string } {\n\t\tconst { tosFlow, neededAttributes, shareWithPrincipals, acceptedIssuers } = this.toJSON();\n\n\t\tlet message = this.message;\n\t\tif (contentType === 'application/json') {\n\t\t\tmessage = JSON.stringify({\n\t\t\t\tok: false,\n\t\t\t\tname: this.name,\n\t\t\t\tcode: 'KEETA_ANCHOR_ASSET_MOVEMENT_KYC_SHARE_NEEDED',\n\t\t\t\tdata: { tosFlow, neededAttributes, shareWithPrincipals, acceptedIssuers },\n\t\t\t\terror: this.message\n\t\t\t});\n\t\t}\n\n\t\treturn({\n\t\t\terror: message,\n\t\t\tstatusCode: this.statusCode,\n\t\t\tcontentType: contentType\n\t\t});\n\t}\n\n\ttoJSON(): KeetaAssetMovementAnchorKYCShareNeededErrorJSON {\n\t\treturn({\n\t\t\t...super.toJSON(),\n\t\t\ttosFlow: this.tosFlow,\n\t\t\tneededAttributes: this.neededAttributes,\n\t\t\tshareWithPrincipals: this.shareWithPrincipals.map(function(account) {\n\t\t\t\treturn(account.publicKeyString.get());\n\t\t\t}),\n\t\t\tacceptedIssuers: this.acceptedIssuers\n\t\t});\n\t}\n\n\tstatic async fromJSON(input: unknown): Promise<KeetaAssetMovementAnchorKYCShareNeededError> {\n\t\tconst { message, other } = this.extractErrorProperties(input, this);\n\n\t\tif (!('data' in other)) {\n\t\t\tthrow(new Error('Invalid KeetaAssetMovementAnchorKYCShareNeededError JSON: missing data property'));\n\t\t}\n\n\t\tconst parsed = assertKeetaAssetMovementAnchorKYCShareNeededErrorJSONProperties(other.data);\n\n\t\tconst error = new this(\n\t\t\t{\n\t\t\t\tshareWithPrincipals: parsed.shareWithPrincipals.map(function(pubKeyString) {\n\t\t\t\t\treturn(KeetaNet.lib.Account.fromPublicKeyString(pubKeyString).assertAccount());\n\t\t\t\t}),\n\t\t\t\tneededAttributes: parsed.neededAttributes,\n\t\t\t\ttosFlow: parsed.tosFlow,\n\t\t\t\tacceptedIssuers: parsed.acceptedIssuers\n\t\t\t},\n\t\t\tmessage\n\t\t);\n\n\t\terror.restoreFromJSON(other);\n\t\treturn(error);\n\t}\n}\n\nexport interface KeetaAssetMovementAnchorAdditionalKYCNeededErrorJSONProperties {\n\ttoCompleteFlow: KeetaAssetMovementAnchorKYCExternalURLFlow | undefined;\n}\n\nexport const assertKeetaAssetMovementAnchorAdditionalKYCNeededErrorJSONProperties: (input: unknown) => KeetaAssetMovementAnchorAdditionalKYCNeededErrorJSONProperties = createAssertEquals<KeetaAssetMovementAnchorAdditionalKYCNeededErrorJSONProperties>();\n\ntype KeetaAssetMovementAnchorAdditionalKYCNeededErrorJSON = ReturnType<KeetaAnchorUserError['toJSON']> & KeetaAssetMovementAnchorAdditionalKYCNeededErrorJSONProperties;\n\nclass KeetaAssetMovementAnchorAdditionalKYCNeededError extends KeetaAnchorUserError {\n\tstatic override readonly name: string = 'KeetaAssetMovementAnchorAdditionalKYCNeededError';\n\tprivate readonly KeetaAssetMovementAnchorAdditionalKYCNeededErrorObjectTypeID!: string;\n\tprivate static readonly KeetaAssetMovementAnchorAdditionalKYCNeededErrorObjectTypeID = '3f4d6acd-8915-40de-94fa-4c6c48c01623';\n\n\treadonly toCompleteFlow: KeetaAssetMovementAnchorKYCExternalURLFlow | undefined;\n\n\tconstructor(args: KeetaAssetMovementAnchorAdditionalKYCNeededErrorJSONProperties, message?: string) {\n\t\tsuper(message ?? 'User requires additional KYC to proceed with asset movement');\n\t\tthis.statusCode = 403;\n\n\t\tObject.defineProperty(this, 'KeetaAssetMovementAnchorAdditionalKYCNeededErrorObjectTypeID', {\n\t\t\tvalue: KeetaAssetMovementAnchorAdditionalKYCNeededError.KeetaAssetMovementAnchorAdditionalKYCNeededErrorObjectTypeID,\n\t\t\tenumerable: false\n\t\t});\n\n\t\tthis.toCompleteFlow = args.toCompleteFlow;\n\t}\n\n\tstatic isInstance(input: unknown): input is KeetaAssetMovementAnchorAdditionalKYCNeededError {\n\t\treturn(this.hasPropWithValue(input, 'KeetaAssetMovementAnchorAdditionalKYCNeededErrorObjectTypeID', KeetaAssetMovementAnchorAdditionalKYCNeededError.KeetaAssetMovementAnchorAdditionalKYCNeededErrorObjectTypeID));\n\t}\n\n\n\tasErrorResponse(contentType: 'text/plain' | 'application/json'): { error: string; statusCode: number; contentType: string } {\n\t\tconst { toCompleteFlow } = this.toJSON();\n\n\t\tlet message = this.message;\n\t\tif (contentType === 'application/json') {\n\t\t\tmessage = JSON.stringify({\n\t\t\t\tok: false,\n\t\t\t\tname: this.name,\n\t\t\t\tcode: 'KEETA_ANCHOR_ASSET_MOVEMENT_ADDITIONAL_KYC_NEEDED',\n\t\t\t\tdata: { toCompleteFlow },\n\t\t\t\terror: this.message\n\t\t\t});\n\t\t}\n\n\t\treturn({\n\t\t\terror: message,\n\t\t\tstatusCode: this.statusCode,\n\t\t\tcontentType: contentType\n\t\t});\n\t}\n\n\ttoJSON(): KeetaAssetMovementAnchorAdditionalKYCNeededErrorJSON {\n\t\treturn({\n\t\t\t...super.toJSON(),\n\t\t\ttoCompleteFlow: this.toCompleteFlow\n\t\t});\n\t}\n\n\tstatic async fromJSON(input: unknown): Promise<KeetaAssetMovementAnchorAdditionalKYCNeededError> {\n\t\tconst { message, other } = this.extractErrorProperties(input, this);\n\n\t\tif (!('data' in other)) {\n\t\t\tthrow(new Error('Invalid KeetaAssetMovementAnchorAdditionalKYCNeededError JSON: missing data property'));\n\t\t}\n\n\t\tconst parsed = assertKeetaAssetMovementAnchorAdditionalKYCNeededErrorJSONProperties(other.data);\n\n\t\tconst error = new this(\n\t\t\t{\n\t\t\t\ttoCompleteFlow: parsed.toCompleteFlow\n\t\t\t},\n\t\t\tmessage\n\t\t);\n\n\t\terror.restoreFromJSON(other);\n\t\treturn(error);\n\t}\n}\n\n\nexport interface KeetaAssetMovementAnchorOperationNotSupportedErrorJSONProperties {\n\tforAsset?: AssetOrPair | undefined;\n\tforRail?: Rail | undefined;\n}\n\nexport const assertKeetaAssetMovementAnchorOperationNotSupportedErrorJSONProperties: (input: unknown) => KeetaAssetMovementAnchorOperationNotSupportedErrorJSONProperties = createAssertEquals<KeetaAssetMovementAnchorOperationNotSupportedErrorJSONProperties>();\n\ntype KeetaAssetMovementAnchorOperationNotSupportedErrorJSON = ReturnType<KeetaAnchorUserError['toJSON']> & KeetaAssetMovementAnchorOperationNotSupportedErrorJSONProperties;\n\nclass KeetaAssetMovementAnchorOperationNotSupportedError extends KeetaAnchorUserError implements KeetaAssetMovementAnchorOperationNotSupportedErrorJSONProperties {\n\tstatic override readonly name: string = 'KeetaAssetMovementAnchorOperationNotSupportedError';\n\tprivate readonly KeetaAssetMovementAnchorOperationNotSupportedErrorObjectTypeID!: string;\n\tprivate static readonly KeetaAssetMovementAnchorOperationNotSupportedErrorObjectTypeID = 'b613cd80-57ac-4be5-ad4a-bb8644d50de6';\n\n\treadonly forAsset: AssetOrPair | undefined;\n\treadonly forRail: Rail | undefined;\n\n\tconstructor(args: KeetaAssetMovementAnchorOperationNotSupportedErrorJSONProperties, message?: string) {\n\t\tsuper(message ?? `Operation not supported`);\n\t\tthis.statusCode = 400;\n\n\t\tObject.defineProperty(this, 'KeetaAssetMovementAnchorOperationNotSupportedErrorObjectTypeID', {\n\t\t\tvalue: KeetaAssetMovementAnchorOperationNotSupportedError.KeetaAssetMovementAnchorOperationNotSupportedErrorObjectTypeID,\n\t\t\tenumerable: false\n\t\t});\n\n\t\tthis.forAsset = args.forAsset;\n\t\tthis.forRail = args.forRail;\n\t}\n\n\tstatic isInstance(input: unknown): input is KeetaAssetMovementAnchorOperationNotSupportedError {\n\t\treturn(this.hasPropWithValue(input, 'KeetaAssetMovementAnchorOperationNotSupportedErrorObjectTypeID', KeetaAssetMovementAnchorOperationNotSupportedError.KeetaAssetMovementAnchorOperationNotSupportedErrorObjectTypeID));\n\t}\n\n\tasErrorResponse(contentType: 'text/plain' | 'application/json'): { error: string; statusCode: number; contentType: string } {\n\t\tconst { forAsset, forRail } = this.toJSON();\n\n\t\tlet message = this.message;\n\t\tif (contentType === 'application/json') {\n\t\t\tmessage = JSON.stringify({\n\t\t\t\tok: false,\n\t\t\t\tname: this.name,\n\t\t\t\tcode: 'KEETA_ANCHOR_ASSET_MOVEMENT_OPERATION_NOT_SUPPORTED',\n\t\t\t\tdata: { forAsset, forRail },\n\t\t\t\terror: this.message\n\t\t\t});\n\t\t}\n\n\t\treturn({\n\t\t\terror: message,\n\t\t\tstatusCode: this.statusCode,\n\t\t\tcontentType: contentType\n\t\t});\n\t}\n\n\ttoJSON(): KeetaAssetMovementAnchorOperationNotSupportedErrorJSON {\n\t\treturn({\n\t\t\t...super.toJSON(),\n\t\t\tforRail: this.forRail,\n\t\t\tforAsset: this.forAsset ? convertAssetOrPairSearchInputToCanonical(this.forAsset) : undefined\n\t\t});\n\t}\n\n\tstatic async fromJSON(input: unknown): Promise<KeetaAssetMovementAnchorOperationNotSupportedError> {\n\t\tconst { message, other } = this.extractErrorProperties(input, this);\n\n\t\tif (!('data' in other)) {\n\t\t\tthrow(new Error('Invalid KeetaAssetMovementAnchorOperationNotSupportedError JSON: missing data property'));\n\t\t}\n\n\t\tconst parsed = assertKeetaAssetMovementAnchorOperationNotSupportedErrorJSONProperties(other.data);\n\n\t\tconst error = new this(\n\t\t\t{\n\t\t\t\tforAsset: parsed.forAsset,\n\t\t\t\tforRail: parsed.forRail\n\t\t\t},\n\t\t\tmessage\n\t\t);\n\n\t\terror.restoreFromJSON(other);\n\t\treturn(error);\n\t}\n}\n\nexport const Errors: {\n\tKYCShareNeeded: typeof KeetaAssetMovementAnchorKYCShareNeededError;\n\tAdditionalKYCNeeded: typeof KeetaAssetMovementAnchorAdditionalKYCNeededError;\n\tOperationNotSupported: typeof KeetaAssetMovementAnchorOperationNotSupportedError;\n} = {\n\t/**\n\t * The user is required to share KYC details\n\t */\n\tKYCShareNeeded: KeetaAssetMovementAnchorKYCShareNeededError,\n\n\t/**\n\t * The user is required to complete additional KYC steps\n\t */\n\tAdditionalKYCNeeded: KeetaAssetMovementAnchorAdditionalKYCNeededError,\n\n\t/**\n\t * The requested operation is not supported\n\t */\n\tOperationNotSupported: KeetaAssetMovementAnchorOperationNotSupportedError\n};\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fps.d.ts","sourceRoot":"","sources":["../../../../../../../src/services/asset-movement/lib/data/addresses/bank-account/fps.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,KAAK,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAGnF,QAAA,MAAM,SAAS,EAAE,oBA+BhB,CAAA;AAED,eAAe,SAAS,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { sharedSchemaReferences } from "../../types.js";
|
|
2
|
+
// UK Faster payments schema
|
|
3
|
+
const fpsSchema = {
|
|
4
|
+
type: 'bank-account',
|
|
5
|
+
includeFields: {
|
|
6
|
+
accountOwner: true,
|
|
7
|
+
accountNumberEnding: true
|
|
8
|
+
},
|
|
9
|
+
additionalProperties: {
|
|
10
|
+
resolved: {
|
|
11
|
+
type: "object",
|
|
12
|
+
properties: {
|
|
13
|
+
accountAddress: sharedSchemaReferences.PhysicalAddress,
|
|
14
|
+
accountNumber: { type: "string", pattern: "^[a-zA-Z0-9]{2,80}$" },
|
|
15
|
+
sortCode: { type: "string" }
|
|
16
|
+
},
|
|
17
|
+
required: []
|
|
18
|
+
},
|
|
19
|
+
obfuscated: {
|
|
20
|
+
type: "object",
|
|
21
|
+
properties: {
|
|
22
|
+
sortCode: { type: "string" },
|
|
23
|
+
accountAddress: {
|
|
24
|
+
oneOf: [
|
|
25
|
+
{ type: 'string' },
|
|
26
|
+
sharedSchemaReferences.PhysicalAddress
|
|
27
|
+
]
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
export default fpsSchema;
|
|
34
|
+
//# sourceMappingURL=fps.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fps.js","sourceRoot":"","sources":["../../../../../../../src/services/asset-movement/lib/data/addresses/bank-account/fps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAA6B,MAAM,gBAAgB,CAAC;AAEnF,4BAA4B;AAC5B,MAAM,SAAS,GAAyB;IACvC,IAAI,EAAE,cAAc;IAEpB,aAAa,EAAE;QACd,YAAY,EAAE,IAAI;QAClB,mBAAmB,EAAE,IAAI;KACzB;IAED,oBAAoB,EAAE;QACrB,QAAQ,EAAE;YACT,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACX,cAAc,EAAE,sBAAsB,CAAC,eAAe;gBACtD,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,qBAAqB,EAAE;gBACjE,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;aAC5B;YACD,QAAQ,EAAE,EAAE;SACZ;QACD,UAAU,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACX,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC5B,cAAc,EAAE;oBACf,KAAK,EAAE;wBACN,EAAE,IAAI,EAAE,QAAQ,EAAE;wBAClB,sBAAsB,CAAC,eAAe;qBACtC;iBACD;aACD;SACD;KACD;CACD,CAAA;AAED,eAAe,SAAS,CAAC","sourcesContent":["import { sharedSchemaReferences, type AccountAddressSchema } from \"../../types.js\";\n\n// UK Faster payments schema\nconst fpsSchema: AccountAddressSchema = {\n\ttype: 'bank-account',\n\n\tincludeFields: {\n\t\taccountOwner: true,\n\t\taccountNumberEnding: true\n\t},\n\n\tadditionalProperties: {\n\t\tresolved: {\n\t\t\ttype: \"object\",\n\t\t\tproperties: {\n\t\t\t\taccountAddress: sharedSchemaReferences.PhysicalAddress,\n\t\t\t\taccountNumber: { type: \"string\", pattern: \"^[a-zA-Z0-9]{2,80}$\" },\n\t\t\t\tsortCode: { type: \"string\" }\n\t\t\t},\n\t\t\trequired: []\n\t\t},\n\t\tobfuscated: {\n\t\t\ttype: \"object\",\n\t\t\tproperties: {\n\t\t\t\tsortCode: { type: \"string\" },\n\t\t\t\taccountAddress: {\n\t\t\t\t\toneOf: [\n\t\t\t\t\t\t{ type: 'string' },\n\t\t\t\t\t\tsharedSchemaReferences.PhysicalAddress\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport default fpsSchema;\n"]}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import card from "./card.js";
|
|
2
2
|
import clabe from "./clabe.js";
|
|
3
|
+
import fps from "./fps.js";
|
|
3
4
|
import iban_swift from "./iban-swift.js";
|
|
4
5
|
import interac from "./interac.js";
|
|
5
6
|
import pix from "./pix.js";
|
|
@@ -7,6 +8,7 @@ import us from "./us.js";
|
|
|
7
8
|
export declare const definitions: {
|
|
8
9
|
'card': typeof card;
|
|
9
10
|
'clabe': typeof clabe;
|
|
11
|
+
'fps': typeof fps;
|
|
10
12
|
'iban-swift': typeof iban_swift;
|
|
11
13
|
'interac': typeof interac;
|
|
12
14
|
'pix': typeof pix;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.generated.d.ts","sourceRoot":"","sources":["../../../../../../../src/services/asset-movement/lib/data/addresses/bank-account/index.generated.ts"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,OAAO,UAAU,MAAM,iBAAiB,CAAC;AACzC,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,GAAG,MAAM,UAAU,CAAC;AAC3B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,eAAO,MAAM,WAAW,EAAE;IACzB,MAAM,EAAE,OAAO,IAAI,CAAC;IACpB,OAAO,EAAE,OAAO,KAAK,CAAC;IACtB,YAAY,EAAE,OAAO,UAAU,CAAC;IAChC,SAAS,EAAE,OAAO,OAAO,CAAC;IAC1B,KAAK,EAAE,OAAO,GAAG,CAAC;IAClB,IAAI,EAAE,OAAO,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"index.generated.d.ts","sourceRoot":"","sources":["../../../../../../../src/services/asset-movement/lib/data/addresses/bank-account/index.generated.ts"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,OAAO,GAAG,MAAM,UAAU,CAAC;AAC3B,OAAO,UAAU,MAAM,iBAAiB,CAAC;AACzC,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,GAAG,MAAM,UAAU,CAAC;AAC3B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,eAAO,MAAM,WAAW,EAAE;IACzB,MAAM,EAAE,OAAO,IAAI,CAAC;IACpB,OAAO,EAAE,OAAO,KAAK,CAAC;IACtB,KAAK,EAAE,OAAO,GAAG,CAAC;IAClB,YAAY,EAAE,OAAO,UAAU,CAAC;IAChC,SAAS,EAAE,OAAO,OAAO,CAAC;IAC1B,KAAK,EAAE,OAAO,GAAG,CAAC;IAClB,IAAI,EAAE,OAAO,EAAE,CAAC;CAShB,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// Auto-generated snippet derived from generate-index.sh
|
|
2
2
|
import card from "./card.js";
|
|
3
3
|
import clabe from "./clabe.js";
|
|
4
|
+
import fps from "./fps.js";
|
|
4
5
|
import iban_swift from "./iban-swift.js";
|
|
5
6
|
import interac from "./interac.js";
|
|
6
7
|
import pix from "./pix.js";
|
|
@@ -8,6 +9,7 @@ import us from "./us.js";
|
|
|
8
9
|
export const definitions = {
|
|
9
10
|
'card': card,
|
|
10
11
|
'clabe': clabe,
|
|
12
|
+
'fps': fps,
|
|
11
13
|
'iban-swift': iban_swift,
|
|
12
14
|
'interac': interac,
|
|
13
15
|
'pix': pix,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.generated.js","sourceRoot":"","sources":["../../../../../../../src/services/asset-movement/lib/data/addresses/bank-account/index.generated.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,OAAO,UAAU,MAAM,iBAAiB,CAAC;AACzC,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,GAAG,MAAM,UAAU,CAAC;AAC3B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,MAAM,CAAC,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"index.generated.js","sourceRoot":"","sources":["../../../../../../../src/services/asset-movement/lib/data/addresses/bank-account/index.generated.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,OAAO,GAAG,MAAM,UAAU,CAAC;AAC3B,OAAO,UAAU,MAAM,iBAAiB,CAAC;AACzC,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,GAAG,MAAM,UAAU,CAAC;AAC3B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,MAAM,CAAC,MAAM,WAAW,GAQpB;IACH,MAAM,EAAE,IAAI;IACZ,OAAO,EAAE,KAAK;IACd,KAAK,EAAE,GAAG;IACV,YAAY,EAAE,UAAU;IACxB,SAAS,EAAE,OAAO;IAClB,KAAK,EAAE,GAAG;IACV,IAAI,EAAE,EAAE;CACR,CAAC","sourcesContent":["// Auto-generated snippet derived from generate-index.sh\nimport card from \"./card.js\";\nimport clabe from \"./clabe.js\";\nimport fps from \"./fps.js\";\nimport iban_swift from \"./iban-swift.js\";\nimport interac from \"./interac.js\";\nimport pix from \"./pix.js\";\nimport us from \"./us.js\";\nexport const definitions: {\n\t'card': typeof card;\n\t'clabe': typeof clabe;\n\t'fps': typeof fps;\n\t'iban-swift': typeof iban_swift;\n\t'interac': typeof interac;\n\t'pix': typeof pix;\n\t'us': typeof us;\n} = {\n\t'card': card,\n\t'clabe': clabe,\n\t'fps': fps,\n\t'iban-swift': iban_swift,\n\t'interac': interac,\n\t'pix': pix,\n\t'us': us\n};\n"]}
|