@swapkit/helpers 4.5.8 → 4.5.9

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.
@@ -15,7 +15,7 @@
15
15
  "import { Chain, CosmosChains, EVMChains, type StagenetChain, StagenetChains, UTXOChains } from \"@swapkit/types\";\nimport { match } from \"ts-pattern\";\nimport { SKConfig } from \"../modules/swapKitConfig\";\nimport { SwapKitError } from \"../modules/swapKitError\";\nimport { warnOnce } from \"./others\";\n\nfunction getRpcBody(chain: Chain | StagenetChain) {\n return match(chain)\n .with(...EVMChains, () => ({ id: 1, jsonrpc: \"2.0\", method: \"eth_blockNumber\", params: [] }))\n .with(...UTXOChains, () => ({ id: \"test\", jsonrpc: \"1.0\", method: \"getblockchaininfo\", params: [] }))\n .with(...CosmosChains, ...StagenetChains, () => ({ id: 1, jsonrpc: \"2.0\", method: \"status\", params: {} }))\n .with(Chain.Polkadot, Chain.Chainflip, () => ({ id: 1, jsonrpc: \"2.0\", method: \"system_health\", params: [] }))\n .with(Chain.Solana, () => ({ id: 1, jsonrpc: \"2.0\", method: \"getHealth\" }))\n .with(Chain.Sui, () => ({ id: 1, jsonrpc: \"2.0\", method: \"sui_getSystemState\", params: [] }))\n .with(Chain.Ton, () => ({ id: 1, jsonrpc: \"2.0\", method: \"getAddressInformation\", params: { address: \"\" } }))\n .with(Chain.Tron, Chain.Radix, () => \"\")\n .with(Chain.Near, () => ({ id: \"dontcare\", jsonrpc: \"2.0\", method: \"status\", params: [] }))\n .with(Chain.Ripple, () => ({ id: 1, jsonrpc: \"2.0\", method: \"ping\", params: [{}] }))\n .otherwise(() => {\n throw new SwapKitError(\"helpers_chain_not_supported\", { chain });\n });\n}\n\nfunction getChainStatusEndpoint(chain: Chain | StagenetChain) {\n return match(chain)\n .with(Chain.Radix, () => \"/status/network-configuration\")\n .with(Chain.Tron, () => \"/wallet/getnowblock\")\n .otherwise(() => \"\");\n}\n\nasync function testRPCConnection(chain: Chain | StagenetChain, url: string) {\n try {\n const endpoint = url.startsWith(\"wss\") ? url.replace(\"wss\", \"https\") : url;\n const response = await fetch(`${endpoint}${getChainStatusEndpoint(chain)}`, {\n body: JSON.stringify(getRpcBody(chain)),\n headers: { \"Content-Type\": \"application/json\" },\n method: \"POST\",\n signal: AbortSignal.timeout(3000),\n });\n\n return response.ok;\n } catch {\n return false;\n }\n}\n\nconst rpcCache = new Map<Chain | StagenetChain, { timestamp: number; url: string }>();\nconst rpcCacheTTL = 1000 * 60 * 2; // 2 minutes\n\nexport async function getRPCUrl(chain: Chain | StagenetChain) {\n const { isStagenet } = SKConfig.get(\"envs\");\n const [rpcUrl = \"\", ...fallbackUrls] = SKConfig.get(\"rpcUrls\")[chain];\n\n if (!rpcUrl) {\n warnOnce({\n condition: true,\n id: \"helpers_chain_no_public_or_set_rpc_url\",\n warning: `No public or set RPC URL found for chain. Please ensure you configured rpcUrls for ${chain}.`,\n });\n throw new SwapKitError(\"helpers_chain_no_public_or_set_rpc_url\", { chain });\n }\n\n if (isStagenet) return rpcUrl;\n\n const cached = rpcCache.get(chain);\n if (cached && Date.now() - cached.timestamp < rpcCacheTTL) {\n return cached.url;\n }\n\n const primaryIsWorking = await testRPCConnection(chain, rpcUrl);\n\n if (!primaryIsWorking) {\n for (const fallbackUrl of fallbackUrls) {\n const fallbackIsWorking = await testRPCConnection(chain, fallbackUrl);\n\n if (fallbackIsWorking) {\n rpcCache.set(chain, { timestamp: Date.now(), url: fallbackUrl });\n return fallbackUrl;\n }\n }\n }\n\n rpcCache.set(chain, { timestamp: Date.now(), url: rpcUrl });\n return rpcUrl;\n}\n\n/**\n * @deprecated\n * RPC URLs are now managed dynamically via SKConfig.\n * Please use static { rpcUrls, fallbackRpcUrls } SwapKit init config or dynamic SKConfig.setRpcUrl/setFallbackRpcUrl to configure RPC endpoints.\n * This function is obsolete and will be removed in a future release.\n */\nexport function initializeRPCUrlsWithFallback(_chains: never) {\n warnOnce({\n condition: true,\n id: \"initializeRPCUrlsWithFallback\",\n warning:\n \"initializeRPCUrlsWithFallback is deprecated. Use static { rpcUrls, fallbackRpcUrls } SwapKit init config or dynamic SKConfig.setRpcUrl/setFallbackRpcUrl to configure RPC endpoints.\",\n });\n}\n",
16
16
  "import { Chain } from \"@swapkit/types\";\nimport { type ErrorKeys, SwapKitError } from \"../modules/swapKitError\";\n\n// 10 rune for register, 1 rune per year\n// MINIMUM_REGISTRATION_FEE = 11\nexport function getTHORNameCost(numberOfYears: number) {\n if (numberOfYears < 0)\n throw new SwapKitError({ errorKey: \"helpers_invalid_number_of_years\", info: { numberOfYears } });\n return 10 + numberOfYears;\n}\n\n// 10 CACAO for register\n// 1.0512 CACAO per year\nexport function getMAYANameCost(numberOfYears: number) {\n if (numberOfYears < 0)\n throw new SwapKitError({ errorKey: \"helpers_invalid_number_of_years\", info: { numberOfYears } });\n // round to max 10 decimals\n return Math.round((10 + numberOfYears * 1.0512) * 1e10) / 1e10;\n}\n\nexport function wrapWithThrow<T>(fn: () => T, errorKey?: ErrorKeys) {\n try {\n return fn();\n } catch (error) {\n if (errorKey) {\n throw new SwapKitError(errorKey, error);\n }\n\n return;\n }\n}\n\nexport function getChainIdentifier<T extends Chain>(chain: T) {\n switch (chain) {\n case Chain.THORChain:\n return `${chain}.RUNE`;\n\n case Chain.Cosmos:\n return `${chain}.ATOM`;\n\n case Chain.BinanceSmartChain:\n return `${chain}`;\n\n default:\n return `${chain}.${chain}`;\n }\n}\n\nconst warnings = new Set();\nexport function warnOnce({ condition, id, warning }: { condition: boolean; id: string; warning: string }) {\n if (condition) {\n if (warnings.has(id)) {\n return;\n }\n\n if (process.env.NODE_ENV !== \"test\") {\n console.warn(warning);\n }\n\n warnings.add(id);\n }\n}\n",
17
17
  "import type { Chain } from \"@swapkit/types\";\nimport { SKConfig } from \"../modules/swapKitConfig\";\nimport { SwapKitError } from \"../modules/swapKitError\";\n\n// Backward compatibility\nconst supportedChains = [\"TERRA\", ...SKConfig.get(\"chains\")];\n\nexport function validateIdentifier(identifier = \"\") {\n const uppercasedIdentifier = identifier.toUpperCase();\n\n const [chain] = uppercasedIdentifier.split(\".\") as [Chain, string];\n if (supportedChains.includes(chain)) return true;\n\n const [synthChain] = uppercasedIdentifier.split(\"/\") as [Chain, string];\n if (supportedChains.includes(synthChain)) return true;\n\n throw new SwapKitError({\n errorKey: \"helpers_invalid_identifier\",\n info: {\n identifier,\n message: `Invalid identifier: ${identifier}. Expected format: <Chain>.<Ticker> or <Chain>.<Ticker>-<ContractAddress>`,\n },\n });\n}\n\nexport function validateTNS(name: string) {\n if (name.length > 30) return false;\n\n const regex = /^[a-zA-Z0-9+_-]+$/g;\n\n return !!name.match(regex);\n}\n",
18
- "import { match } from \"ts-pattern\";\nimport type { SwapKitNumber } from \"./swapKitNumber\";\n\ntype NumberPrimitivesType = { bigint: bigint; number: number; string: string };\nexport type NumberPrimitives = bigint | number | string;\ntype InitialisationValueType = NumberPrimitives | BigIntArithmetics | SwapKitNumber;\n\ntype SKBigIntParams = InitialisationValueType | { decimal?: number; value: number | string };\ntype AllowedNumberTypes = \"bigint\" | \"number\" | \"string\";\n\nconst DEFAULT_DECIMAL = 8;\nconst PRECISION_BUFFER = 10;\n\nexport function formatBigIntToSafeValue({\n value,\n bigIntDecimal = DEFAULT_DECIMAL,\n decimal = DEFAULT_DECIMAL,\n}: {\n value: bigint;\n bigIntDecimal?: number;\n decimal?: number;\n}) {\n if (decimal === 0) return value.toString();\n\n const isNegative = value < 0n;\n let valueString = value.toString().substring(isNegative ? 1 : 0);\n const padLength = decimal - (valueString.length - 1);\n\n if (padLength > 0) {\n valueString = \"0\".repeat(padLength) + valueString;\n }\n\n const decimalIndex = valueString.length - decimal;\n let decimalString = valueString.slice(-decimal);\n\n const roundDigit = Number.parseInt(decimalString[bigIntDecimal] || \"0\", 10);\n if (roundDigit >= 5) {\n const lastDigit = Number.parseInt(decimalString[bigIntDecimal - 1] || \"0\", 10);\n decimalString = `${decimalString.substring(0, bigIntDecimal - 1)}${lastDigit + 1}`;\n } else {\n decimalString = decimalString.substring(0, bigIntDecimal);\n }\n\n return `${isNegative ? \"-\" : \"\"}${valueString.slice(0, decimalIndex)}.${decimalString}`.replace(/\\.?0*$/, \"\");\n}\n\nexport class BigIntArithmetics {\n decimalMultiplier: bigint = 10n ** 8n;\n bigIntValue = 0n;\n decimal?: number;\n\n static fromBigInt(value: bigint, decimal?: number) {\n return new BigIntArithmetics({\n decimal,\n value: formatBigIntToSafeValue({ bigIntDecimal: decimal, decimal, value }),\n });\n }\n\n static shiftDecimals({ value, from, to }: { value: InstanceType<typeof SwapKitNumber>; from: number; to: number }) {\n return BigIntArithmetics.fromBigInt((value.getBaseValue(\"bigint\") * toMultiplier(to)) / toMultiplier(from), to);\n }\n\n constructor(params: SKBigIntParams) {\n const value = getStringValue(params);\n const isComplex = typeof params === \"object\";\n this.decimal = isComplex ? params.decimal : undefined;\n\n this.decimalMultiplier =\n isComplex && \"decimalMultiplier\" in params\n ? params.decimalMultiplier\n : toMultiplier(Math.max(getFloatDecimals(toSafeValue(value)), this.decimal || 0));\n\n this.#setValue(value);\n }\n\n set(value: SKBigIntParams): this {\n return new (this.constructor as any)({\n decimal: this.decimal,\n identifier: (this as any).toString?.({ includeSynthProtocol: true }),\n value,\n });\n }\n\n add(...args: InitialisationValueType[]) {\n return this.#arithmetics(\"add\", ...args);\n }\n\n sub(...args: InitialisationValueType[]) {\n return this.#arithmetics(\"sub\", ...args);\n }\n\n mul(...args: InitialisationValueType[]) {\n return this.#arithmetics(\"mul\", ...args);\n }\n\n div(...args: InitialisationValueType[]) {\n return this.#arithmetics(\"div\", ...args);\n }\n\n gt(value: InitialisationValueType) {\n return this.#comparison(\"gt\", value);\n }\n\n gte(value: InitialisationValueType) {\n return this.#comparison(\"gte\", value);\n }\n\n lt(value: InitialisationValueType) {\n return this.#comparison(\"lt\", value);\n }\n\n lte(value: InitialisationValueType) {\n return this.#comparison(\"lte\", value);\n }\n\n eqValue(value: InitialisationValueType) {\n return this.#comparison(\"eqValue\", value);\n }\n\n getValue<T extends AllowedNumberTypes>(type: T, decimal?: number): NumberPrimitivesType[T] {\n const currentDecimal = decimalFromMultiplier(this.decimalMultiplier);\n const requestedDecimal = decimal !== undefined ? decimal : this.decimal;\n\n let outputDecimal = requestedDecimal !== undefined ? requestedDecimal : currentDecimal;\n\n if (requestedDecimal !== undefined && requestedDecimal < currentDecimal) {\n const testValue = this.formatBigIntToSafeValue(this.bigIntValue, requestedDecimal);\n if (testValue === \"0\" && this.bigIntValue !== 0n) {\n outputDecimal = currentDecimal;\n }\n }\n\n const value = this.formatBigIntToSafeValue(this.bigIntValue, outputDecimal);\n\n return match(type as AllowedNumberTypes)\n .with(\"number\", () => Number(value) as NumberPrimitivesType[T])\n .with(\"string\", () => value as NumberPrimitivesType[T])\n .with(\"bigint\", () => {\n const scaledValue = (this.bigIntValue * 10n ** BigInt(this.decimal || 8n)) / this.decimalMultiplier;\n return scaledValue as NumberPrimitivesType[T];\n })\n .otherwise(() => value as NumberPrimitivesType[T]);\n }\n\n getBaseValue<T extends AllowedNumberTypes>(type: T, decimal?: number): NumberPrimitivesType[T] {\n const divisor = this.decimalMultiplier / toMultiplier(decimal || this.decimal || DEFAULT_DECIMAL);\n const baseValue = divideBigIntWithRounding(this.bigIntValue, divisor);\n\n return match(type as AllowedNumberTypes)\n .with(\"number\", () => Number(baseValue) as NumberPrimitivesType[T])\n .with(\"string\", () => baseValue.toString() as NumberPrimitivesType[T])\n .otherwise(() => baseValue as NumberPrimitivesType[T]);\n }\n\n getBigIntValue(value: InitialisationValueType, decimal?: number) {\n if (!decimal && typeof value === \"object\") return value.bigIntValue;\n\n const stringValue = getStringValue(value);\n const safeValue = toSafeValue(stringValue);\n\n if (safeValue === \"0\" || safeValue === \"undefined\") return 0n;\n return this.#toBigInt(safeValue, decimal);\n }\n\n toSignificant(significantDigits = 6) {\n const valueStr = this.getValue(\"string\");\n const [int = \"\", dec = \"\"] = valueStr.split(\".\");\n const hasInteger = Number.parseInt(int, 10) > 0;\n const totalLength = hasInteger ? int.length + dec.length : dec.length;\n\n if (totalLength <= significantDigits) return valueStr;\n if (int.length >= significantDigits) return int.slice(0, significantDigits).padEnd(int.length, \"0\");\n if (hasInteger) return `${int}.${dec.slice(0, significantDigits - int.length)}`;\n\n const trimmed = Number.parseInt(dec, 10).toString();\n const sliced = trimmed.slice(0, significantDigits);\n const leadingZeros = dec.length - trimmed.length;\n\n return `0.${sliced.padStart(leadingZeros + sliced.length, \"0\")}`;\n }\n\n toFixed(fixedDigits = 6) {\n const valueStr = this.getValue(\"string\");\n const isNegative = valueStr.startsWith(\"-\");\n const [int = \"0\", dec = \"\"] = (isNegative ? valueStr.slice(1) : valueStr).split(\".\");\n const sign = isNegative ? \"-\" : \"\";\n\n if (fixedDigits === 0) {\n if (int === \"0\" && !dec) return \"0\";\n const shouldRound = dec && Number.parseInt(dec[0] || \"0\", 10) >= 5;\n return shouldRound ? `${sign}${BigInt(int) + 1n}.0` : `${sign}${int}.0`;\n }\n\n if (!dec) return `${sign}${int}.${\"0\".repeat(fixedDigits)}`;\n\n const nextDigit = dec[fixedDigits];\n const shouldRound = nextDigit && Number.parseInt(nextDigit, 10) >= 5;\n\n if (!shouldRound) return `${sign}${int}.${dec.slice(0, fixedDigits).padEnd(fixedDigits, \"0\")}`;\n\n const decimalValue = BigInt(dec.slice(0, fixedDigits).padEnd(fixedDigits, \"0\")) + 1n;\n const multiplier = 10n ** BigInt(fixedDigits);\n\n if (decimalValue >= multiplier) return `${sign}${BigInt(int) + 1n}.${\"0\".repeat(fixedDigits)}`;\n\n return `${sign}${int}.${decimalValue.toString().padStart(fixedDigits, \"0\")}`;\n }\n\n toAbbreviation(digits = 2) {\n const valueStr = this.getValue(\"string\");\n const value = Number(valueStr);\n const abbreviations = [\"\", \"K\", \"M\", \"B\", \"T\", \"Q\", \"Qi\", \"S\"] as const;\n const tier = Math.floor(Math.log10(Math.abs(value)) / 3);\n\n if (tier === 0 || !abbreviations[tier]) return valueStr;\n\n return `${(value / 10 ** (tier * 3)).toFixed(digits)}${abbreviations[tier]}`;\n }\n\n toCurrency(\n currency = \"$\",\n { currencyPosition = \"start\", decimal = 2, decimalSeparator = \".\", thousandSeparator = \",\" } = {},\n ) {\n const valueStr = this.getValue(\"string\");\n const isNegative = valueStr.startsWith(\"-\");\n const absValueStr = isNegative ? valueStr.slice(1) : valueStr;\n const [int = \"0\", dec = \"\"] = absValueStr.split(\".\");\n const sign = isNegative ? \"-\" : \"\";\n\n if (int === \"0\" && dec) {\n const trimmedDec = dec.replace(/0+$/, \"\");\n const formatted = trimmedDec ? `${sign}0${decimalSeparator}${trimmedDec}` : \"0\";\n\n return match(currencyPosition)\n .with(\"start\", () => `${currency}${formatted}`)\n .with(\"end\", () => `${formatted}${currency}`)\n .otherwise(() => `${currency}${formatted}`);\n }\n\n const roundedStr = this.toFixed(decimal);\n const [roundedInt = \"0\", roundedDec = \"\"] = roundedStr.split(\".\");\n const formattedInt = roundedInt.replace(/\\B(?=(\\d{3})+(?!\\d))/g, thousandSeparator);\n const hasDecimals = roundedDec && Number.parseInt(roundedDec, 10) > 0;\n const value = hasDecimals ? `${formattedInt}${decimalSeparator}${roundedDec}` : formattedInt;\n\n return match(currencyPosition)\n .with(\"start\", () => `${currency}${value}`)\n .with(\"end\", () => `${value}${currency}`)\n .otherwise(() => `${currency}${value}`);\n }\n\n formatBigIntToSafeValue(value: bigint, decimal?: number) {\n const bigIntDecimal = decimal || this.decimal || DEFAULT_DECIMAL;\n const decimalToUseForConversion = Math.max(bigIntDecimal, decimalFromMultiplier(this.decimalMultiplier));\n\n return formatBigIntToSafeValue({ bigIntDecimal, decimal: decimalToUseForConversion, value });\n }\n\n #arithmetics(method: \"add\" | \"sub\" | \"mul\" | \"div\", ...args: InitialisationValueType[]): this {\n const precisionDecimal = this.#retrievePrecisionDecimal(this, ...args);\n const currentDecimal = decimalFromMultiplier(this.decimalMultiplier);\n const targetDecimal = Math.max(precisionDecimal, currentDecimal);\n const internalDecimal = targetDecimal + PRECISION_BUFFER;\n const internalMultiplier = toMultiplier(internalDecimal);\n\n const result = args.reduce(\n (acc: bigint, arg) => {\n const value = this.getBigIntValue(arg, internalDecimal);\n\n return match(method)\n .with(\"add\", () => acc + value)\n .with(\"sub\", () => acc - value)\n .with(\"mul\", () => (acc * value) / internalMultiplier)\n .with(\"div\", () => {\n if (value === 0n) throw new RangeError(\"Division by zero\");\n return (acc * internalMultiplier) / value;\n })\n .otherwise(() => acc);\n },\n (this.bigIntValue * internalMultiplier) / this.decimalMultiplier,\n );\n\n const value = formatBigIntToSafeValue({ bigIntDecimal: internalDecimal, decimal: internalDecimal, value: result });\n\n // @ts-expect-error False positive\n return new this.constructor({\n decimal: this.decimal,\n decimalMultiplier: toMultiplier(internalDecimal),\n identifier: this.toString(),\n value,\n });\n }\n\n #comparison(method: \"gt\" | \"gte\" | \"lt\" | \"lte\" | \"eqValue\", ...args: InitialisationValueType[]) {\n const decimal = this.#retrievePrecisionDecimal(this, ...args);\n const value = this.getBigIntValue(args[0] || \"0\", decimal);\n const compareToValue = this.getBigIntValue(this, decimal);\n\n return match(method)\n .with(\"gt\", () => compareToValue > value)\n .with(\"gte\", () => compareToValue >= value)\n .with(\"lt\", () => compareToValue < value)\n .with(\"lte\", () => compareToValue <= value)\n .with(\"eqValue\", () => compareToValue === value)\n .otherwise(() => false);\n }\n\n #setValue(value: InitialisationValueType) {\n const safeValue = toSafeValue(value) || \"0\";\n this.bigIntValue = this.#toBigInt(safeValue);\n }\n\n #retrievePrecisionDecimal(...args: InitialisationValueType[]) {\n const decimals = args\n .map((arg) => {\n const isObject = typeof arg === \"object\";\n const value = isObject\n ? arg.decimal || decimalFromMultiplier(arg.decimalMultiplier)\n : getFloatDecimals(toSafeValue(arg));\n\n return value;\n })\n .filter(Boolean) as number[];\n\n return Math.max(...decimals, DEFAULT_DECIMAL);\n }\n\n #toBigInt(value: string, decimal?: number) {\n const multiplier = decimal ? toMultiplier(decimal) : this.decimalMultiplier;\n const padDecimal = decimalFromMultiplier(multiplier);\n const [integerPart = \"\", decimalPart = \"\"] = value.split(\".\");\n\n return BigInt(`${integerPart}${decimalPart.padEnd(padDecimal, \"0\")}`);\n }\n}\n\nconst numberFormatter = Intl.NumberFormat(\"fullwide\", { maximumFractionDigits: 20, useGrouping: false });\n\nfunction toSafeValue(value: InitialisationValueType) {\n const parsedValue = typeof value === \"number\" ? numberFormatter.format(value) : getStringValue(value);\n const splitValue = `${parsedValue}`.replaceAll(\",\", \".\").split(\".\");\n\n return splitValue.length > 1 ? `${splitValue.slice(0, -1).join(\"\")}.${splitValue.at(-1)}` : splitValue[0] || \"0\";\n}\n\nfunction getFloatDecimals(value: string) {\n const decimals = value.split(\".\")[1]?.length || 0;\n return Math.max(decimals, DEFAULT_DECIMAL);\n}\n\nfunction getStringValue(param: SKBigIntParams) {\n return typeof param === \"object\" ? (\"getValue\" in param ? param.getValue(\"string\") : param.value) : param;\n}\n\nfunction divideBigIntWithRounding(n: bigint, d: bigint) {\n if (d === 0n) throw new Error(\"Cannot divide by zero\");\n\n const half = d / 2n;\n return (n >= 0n && d >= 0n) || (n < 0n && d < 0n) ? (n + half) / d : (n - half) / d;\n}\n\nfunction toMultiplier(decimal: number) {\n return 10n ** BigInt(decimal);\n}\n\nfunction decimalFromMultiplier(multiplier: bigint) {\n return Math.log10(Number.parseFloat(multiplier.toString()));\n}\n",
18
+ "import { match } from \"ts-pattern\";\nimport type { SwapKitNumber } from \"./swapKitNumber\";\n\ntype NumberPrimitivesType = { bigint: bigint; number: number; string: string };\nexport type NumberPrimitives = bigint | number | string;\ntype InitialisationValueType = NumberPrimitives | BigIntArithmetics | SwapKitNumber;\n\ntype SKBigIntParams = InitialisationValueType | { decimal?: number; value: number | string };\ntype AllowedNumberTypes = \"bigint\" | \"number\" | \"string\";\n\nconst DEFAULT_DECIMAL = 8;\nconst PRECISION_BUFFER = 10;\n\nexport function formatBigIntToSafeValue({\n value,\n bigIntDecimal = DEFAULT_DECIMAL,\n decimal = DEFAULT_DECIMAL,\n}: {\n value: bigint;\n bigIntDecimal?: number;\n decimal?: number;\n}) {\n if (decimal === 0) return value.toString();\n\n const isNegative = value < 0n;\n let valueString = value.toString().substring(isNegative ? 1 : 0);\n const padLength = decimal - (valueString.length - 1);\n\n if (padLength > 0) {\n valueString = \"0\".repeat(padLength) + valueString;\n }\n\n const decimalIndex = valueString.length - decimal;\n let decimalString = valueString.slice(-decimal);\n\n const roundDigit = Number.parseInt(decimalString[bigIntDecimal] || \"0\", 10);\n if (roundDigit >= 5) {\n const lastDigit = Number.parseInt(decimalString[bigIntDecimal - 1] || \"0\", 10);\n decimalString = `${decimalString.substring(0, bigIntDecimal - 1)}${lastDigit + 1}`;\n } else {\n decimalString = decimalString.substring(0, bigIntDecimal);\n }\n\n return `${isNegative ? \"-\" : \"\"}${valueString.slice(0, decimalIndex)}.${decimalString}`.replace(/\\.?0*$/, \"\");\n}\n\nexport class BigIntArithmetics {\n decimalMultiplier: bigint = 10n ** 8n;\n bigIntValue = 0n;\n decimal?: number;\n\n static fromBigInt(value: bigint, decimal?: number) {\n return new BigIntArithmetics({\n decimal,\n value: formatBigIntToSafeValue({ bigIntDecimal: decimal, decimal, value }),\n });\n }\n\n static shiftDecimals({ value, from, to }: { value: InstanceType<typeof SwapKitNumber>; from: number; to: number }) {\n return BigIntArithmetics.fromBigInt((value.getBaseValue(\"bigint\") * toMultiplier(to)) / toMultiplier(from), to);\n }\n\n constructor(params: SKBigIntParams) {\n const value = getStringValue(params);\n const isComplex = typeof params === \"object\";\n this.decimal = isComplex ? params.decimal : undefined;\n\n this.decimalMultiplier =\n isComplex && \"decimalMultiplier\" in params\n ? params.decimalMultiplier\n : toMultiplier(Math.max(getFloatDecimals(toSafeValue(value)), this.decimal || 0));\n\n this.#setValue(value);\n }\n\n set(value: SKBigIntParams): this {\n return new (this.constructor as any)({\n decimal: this.decimal,\n identifier: (this as any).toString?.({ includeSynthProtocol: true }),\n value,\n });\n }\n\n add(...args: InitialisationValueType[]) {\n return this.#arithmetics(\"add\", ...args);\n }\n\n sub(...args: InitialisationValueType[]) {\n return this.#arithmetics(\"sub\", ...args);\n }\n\n mul(...args: InitialisationValueType[]) {\n return this.#arithmetics(\"mul\", ...args);\n }\n\n div(...args: InitialisationValueType[]) {\n return this.#arithmetics(\"div\", ...args);\n }\n\n gt(value: InitialisationValueType) {\n return this.#comparison(\"gt\", value);\n }\n\n gte(value: InitialisationValueType) {\n return this.#comparison(\"gte\", value);\n }\n\n lt(value: InitialisationValueType) {\n return this.#comparison(\"lt\", value);\n }\n\n lte(value: InitialisationValueType) {\n return this.#comparison(\"lte\", value);\n }\n\n eqValue(value: InitialisationValueType) {\n return this.#comparison(\"eqValue\", value);\n }\n\n getValue<T extends AllowedNumberTypes>(type: T, decimal?: number): NumberPrimitivesType[T] {\n const currentDecimal = decimalFromMultiplier(this.decimalMultiplier);\n const requestedDecimal = decimal !== undefined ? decimal : this.decimal;\n\n let outputDecimal = requestedDecimal !== undefined ? requestedDecimal : currentDecimal;\n\n if (requestedDecimal !== undefined && requestedDecimal < currentDecimal) {\n const testValue = this.formatBigIntToSafeValue(this.bigIntValue, requestedDecimal);\n if (testValue === \"0\" && this.bigIntValue !== 0n) {\n outputDecimal = currentDecimal;\n }\n }\n\n const value = this.formatBigIntToSafeValue(this.bigIntValue, outputDecimal);\n\n return match(type as AllowedNumberTypes)\n .with(\"number\", () => Number(value) as NumberPrimitivesType[T])\n .with(\"string\", () => value as NumberPrimitivesType[T])\n .with(\"bigint\", () => {\n const scaledValue = (this.bigIntValue * 10n ** BigInt(this.decimal || 8n)) / this.decimalMultiplier;\n return scaledValue as NumberPrimitivesType[T];\n })\n .otherwise(() => value as NumberPrimitivesType[T]);\n }\n\n getBaseValue<T extends AllowedNumberTypes>(type: T, decimal?: number): NumberPrimitivesType[T] {\n const divisor = this.decimalMultiplier / toMultiplier(decimal || this.decimal || DEFAULT_DECIMAL);\n const baseValue = divideBigIntWithRounding(this.bigIntValue, divisor);\n\n return match(type as AllowedNumberTypes)\n .with(\"number\", () => Number(baseValue) as NumberPrimitivesType[T])\n .with(\"string\", () => baseValue.toString() as NumberPrimitivesType[T])\n .otherwise(() => baseValue as NumberPrimitivesType[T]);\n }\n\n getBigIntValue(value: InitialisationValueType, decimal?: number) {\n if (!decimal && typeof value === \"object\") return value.bigIntValue;\n\n const stringValue = getStringValue(value);\n const safeValue = toSafeValue(stringValue);\n\n if (safeValue === \"0\" || safeValue === \"undefined\") return 0n;\n return this.#toBigInt(safeValue, decimal);\n }\n\n toSignificant(significantDigits = 6) {\n const valueStr = this.getValue(\"string\");\n const [int = \"\", dec = \"\"] = valueStr.split(\".\");\n const hasInteger = Number.parseInt(int, 10) > 0;\n const totalLength = hasInteger ? int.length + dec.length : dec.length;\n\n if (totalLength <= significantDigits) return valueStr;\n if (int.length >= significantDigits) return int.slice(0, significantDigits).padEnd(int.length, \"0\");\n if (hasInteger) return `${int}.${dec.slice(0, significantDigits - int.length)}`;\n\n const trimmed = Number.parseInt(dec, 10).toString();\n const sliced = trimmed.slice(0, significantDigits);\n const leadingZeros = dec.length - trimmed.length;\n\n return `0.${sliced.padStart(leadingZeros + sliced.length, \"0\")}`;\n }\n\n toFixed(fixedDigits = 6) {\n const valueStr = this.getValue(\"string\");\n const isNegative = valueStr.startsWith(\"-\");\n const [int = \"0\", dec = \"\"] = (isNegative ? valueStr.slice(1) : valueStr).split(\".\");\n const valueRoundsToZero = int === \"0\" && Number.parseInt(dec.slice(0, fixedDigits), 10) === 0;\n const sign = isNegative && !valueRoundsToZero ? \"-\" : \"\";\n\n if (fixedDigits === 0) {\n if (int === \"0\" && !dec) return \"0\";\n const shouldRound = dec && Number.parseInt(dec[0] || \"0\", 10) >= 5;\n return shouldRound ? `${sign}${BigInt(int) + 1n}.0` : `${sign}${int}.0`;\n }\n\n if (!dec) return `${sign}${int}.${\"0\".repeat(fixedDigits)}`;\n\n const nextDigit = dec[fixedDigits];\n const shouldRound = nextDigit && Number.parseInt(nextDigit, 10) >= 5;\n\n if (!shouldRound) return `${sign}${int}.${dec.slice(0, fixedDigits).padEnd(fixedDigits, \"0\")}`;\n\n const decimalValue = BigInt(dec.slice(0, fixedDigits).padEnd(fixedDigits, \"0\")) + 1n;\n const multiplier = 10n ** BigInt(fixedDigits);\n\n if (decimalValue >= multiplier) return `${sign}${BigInt(int) + 1n}.${\"0\".repeat(fixedDigits)}`;\n\n return `${sign}${int}.${decimalValue.toString().padStart(fixedDigits, \"0\")}`;\n }\n\n toAbbreviation(digits = 2) {\n const valueStr = this.getValue(\"string\");\n const value = Number(valueStr);\n const abbreviations = [\"\", \"K\", \"M\", \"B\", \"T\", \"Q\", \"Qi\", \"S\"] as const;\n const tier = Math.floor(Math.log10(Math.abs(value)) / 3);\n\n if (tier === 0 || !abbreviations[tier]) return valueStr;\n\n return `${(value / 10 ** (tier * 3)).toFixed(digits)}${abbreviations[tier]}`;\n }\n\n toCurrency(\n currency = \"$\",\n {\n currencyPosition = \"start\",\n decimal = 2,\n decimalSeparator = \".\",\n thousandSeparator = \",\",\n trimTrailingZeros = true,\n } = {},\n ) {\n const fixedValue = this.toFixed(decimal);\n const isCurrencyAtEnd = currencyPosition === \"end\";\n const [int = \"0\", dec = \"\"] = fixedValue.split(\".\");\n\n const formattedInt = int.replace(/\\B(?=(\\d{3})+(?!\\d))/g, thousandSeparator);\n const hasDecimals = dec && Number.parseInt(dec, 10) > 0;\n const formattedValue = hasDecimals ? `${formattedInt}${decimalSeparator}${dec}` : formattedInt;\n\n // Prevent regex from taking too long for large values\n const canTrimTrailingZeros = formattedValue.length < 100 && trimTrailingZeros && hasDecimals;\n const value = canTrimTrailingZeros ? formattedValue.replace(/\\.?0*$/, \"\") : formattedValue;\n\n return isCurrencyAtEnd ? `${value}${currency}` : `${currency}${value}`;\n }\n\n formatBigIntToSafeValue(value: bigint, decimal?: number) {\n const bigIntDecimal = decimal || this.decimal || DEFAULT_DECIMAL;\n const decimalToUseForConversion = Math.max(bigIntDecimal, decimalFromMultiplier(this.decimalMultiplier));\n\n return formatBigIntToSafeValue({ bigIntDecimal, decimal: decimalToUseForConversion, value });\n }\n\n #arithmetics(method: \"add\" | \"sub\" | \"mul\" | \"div\", ...args: InitialisationValueType[]): this {\n const precisionDecimal = this.#retrievePrecisionDecimal(this, ...args);\n const currentDecimal = decimalFromMultiplier(this.decimalMultiplier);\n const targetDecimal = Math.max(precisionDecimal, currentDecimal);\n const internalDecimal = targetDecimal + PRECISION_BUFFER;\n const internalMultiplier = toMultiplier(internalDecimal);\n\n const result = args.reduce(\n (acc: bigint, arg) => {\n const value = this.getBigIntValue(arg, internalDecimal);\n\n return match(method)\n .with(\"add\", () => acc + value)\n .with(\"sub\", () => acc - value)\n .with(\"mul\", () => (acc * value) / internalMultiplier)\n .with(\"div\", () => {\n if (value === 0n) throw new RangeError(\"Division by zero\");\n return (acc * internalMultiplier) / value;\n })\n .otherwise(() => acc);\n },\n (this.bigIntValue * internalMultiplier) / this.decimalMultiplier,\n );\n\n const value = formatBigIntToSafeValue({ bigIntDecimal: internalDecimal, decimal: internalDecimal, value: result });\n\n // @ts-expect-error False positive\n return new this.constructor({\n decimal: this.decimal,\n decimalMultiplier: toMultiplier(internalDecimal),\n identifier: this.toString(),\n value,\n });\n }\n\n #comparison(method: \"gt\" | \"gte\" | \"lt\" | \"lte\" | \"eqValue\", ...args: InitialisationValueType[]) {\n const decimal = this.#retrievePrecisionDecimal(this, ...args);\n const value = this.getBigIntValue(args[0] || \"0\", decimal);\n const compareToValue = this.getBigIntValue(this, decimal);\n\n return match(method)\n .with(\"gt\", () => compareToValue > value)\n .with(\"gte\", () => compareToValue >= value)\n .with(\"lt\", () => compareToValue < value)\n .with(\"lte\", () => compareToValue <= value)\n .with(\"eqValue\", () => compareToValue === value)\n .otherwise(() => false);\n }\n\n #setValue(value: InitialisationValueType) {\n const safeValue = toSafeValue(value) || \"0\";\n this.bigIntValue = this.#toBigInt(safeValue);\n }\n\n #retrievePrecisionDecimal(...args: InitialisationValueType[]) {\n const decimals = args\n .map((arg) => {\n const isObject = typeof arg === \"object\";\n const value = isObject\n ? arg.decimal || decimalFromMultiplier(arg.decimalMultiplier)\n : getFloatDecimals(toSafeValue(arg));\n\n return value;\n })\n .filter(Boolean) as number[];\n\n return Math.max(...decimals, DEFAULT_DECIMAL);\n }\n\n #toBigInt(value: string, decimal?: number) {\n const multiplier = decimal ? toMultiplier(decimal) : this.decimalMultiplier;\n const padDecimal = decimalFromMultiplier(multiplier);\n const [integerPart = \"\", decimalPart = \"\"] = value.split(\".\");\n\n return BigInt(`${integerPart}${decimalPart.padEnd(padDecimal, \"0\")}`);\n }\n}\n\nconst numberFormatter = Intl.NumberFormat(\"fullwide\", { maximumFractionDigits: 20, useGrouping: false });\n\nfunction toSafeValue(value: InitialisationValueType) {\n const parsedValue = typeof value === \"number\" ? numberFormatter.format(value) : getStringValue(value);\n const splitValue = `${parsedValue}`.replaceAll(\",\", \".\").split(\".\");\n\n return splitValue.length > 1 ? `${splitValue.slice(0, -1).join(\"\")}.${splitValue.at(-1)}` : splitValue[0] || \"0\";\n}\n\nfunction getFloatDecimals(value: string) {\n const decimals = value.split(\".\")[1]?.length || 0;\n return Math.max(decimals, DEFAULT_DECIMAL);\n}\n\nfunction getStringValue(param: SKBigIntParams) {\n return typeof param === \"object\" ? (\"getValue\" in param ? param.getValue(\"string\") : param.value) : param;\n}\n\nfunction divideBigIntWithRounding(n: bigint, d: bigint) {\n if (d === 0n) throw new Error(\"Cannot divide by zero\");\n\n const half = d / 2n;\n return (n >= 0n && d >= 0n) || (n < 0n && d < 0n) ? (n + half) / d : (n - half) / d;\n}\n\nfunction toMultiplier(decimal: number) {\n return 10n ** BigInt(decimal);\n}\n\nfunction decimalFromMultiplier(multiplier: bigint) {\n return Math.log10(Number.parseFloat(multiplier.toString()));\n}\n",
19
19
  "import { FeeOption } from \"../types\";\nimport { SKConfig } from \"./swapKitConfig\";\n\nexport interface FeeMultiplierConfig {\n [FeeOption.Average]: number;\n [FeeOption.Fast]: number;\n [FeeOption.Fastest]: number;\n}\n\nconst DEFAULT_FEE_MULTIPLIERS: FeeMultiplierConfig = {\n [FeeOption.Average]: 1.0,\n [FeeOption.Fast]: 1.5,\n [FeeOption.Fastest]: 2.0,\n};\n\n/**\n * Get fee multiplier for the given fee option.\n * Checks SKConfig for custom multipliers first, then falls back to defaults.\n *\n * @param feeOption - The fee option (Average, Fast, Fastest)\n * @returns The fee multiplier as a number\n */\nexport function getFeeMultiplier(feeOption: FeeOption = FeeOption.Average): number {\n const customMultipliers = SKConfig.get(\"feeMultipliers\");\n\n if (customMultipliers && customMultipliers[feeOption] !== undefined) {\n return customMultipliers[feeOption];\n }\n\n return DEFAULT_FEE_MULTIPLIERS[feeOption];\n}\n\n/**\n * Get fee multiplier as BigInt for EVM calculations.\n * Returns numerator and denominator for precise BigInt arithmetic.\n *\n * @param feeOption - The fee option (Average, Fast, Fastest)\n * @returns Object with numerator and denominator for BigInt calculations\n */\nexport function getFeeMultiplierAsBigInt(feeOption: FeeOption = FeeOption.Average): {\n numerator: bigint;\n denominator: bigint;\n} {\n const multiplier = getFeeMultiplier(feeOption);\n\n // Convert decimal multiplier to fraction for precise BigInt arithmetic\n // e.g., 1.5 -> 15/10, 2.0 -> 20/10\n const denominator = 10n;\n const numerator = BigInt(Math.round(multiplier * 10));\n\n return { denominator, numerator };\n}\n\n/**\n * Apply fee multiplier to a BigInt value (for EVM chains).\n *\n * @param value - The base fee value as BigInt\n * @param feeOption - The fee option (Average, Fast, Fastest)\n * @returns The multiplied fee value as BigInt\n */\nexport function applyFeeMultiplierToBigInt(value: bigint, feeOption: FeeOption = FeeOption.Average) {\n const { numerator, denominator } = getFeeMultiplierAsBigInt(feeOption);\n return (value * numerator) / denominator;\n}\n\n/**\n * Apply fee multiplier to a number value (for non-EVM chains).\n *\n * @param value - The base fee value as number\n * @param feeOption - The fee option (Average, Fast, Fastest)\n * @param floor - Whether to floor the result (default: false)\n * @returns The multiplied fee value as number\n */\nexport function applyFeeMultiplier(value: number, feeOption: FeeOption = FeeOption.Average, floor = false): number {\n const multiplier = getFeeMultiplier(feeOption);\n const result = value * multiplier;\n return floor ? Math.floor(result) : result;\n}\n\nexport { DEFAULT_FEE_MULTIPLIERS };\n",
20
20
  "import { BigIntArithmetics, formatBigIntToSafeValue } from \"./bigIntArithmetics\";\n\nexport type SwapKitValueType = BigIntArithmetics | string | number;\n\nexport class SwapKitNumber extends BigIntArithmetics {\n eq(value: SwapKitValueType) {\n return this.eqValue(value);\n }\n\n static fromBigInt(value: bigint, decimal?: number) {\n return new SwapKitNumber({ decimal, value: formatBigIntToSafeValue({ bigIntDecimal: decimal, decimal, value }) });\n }\n}\n",
21
21
  "import { Chain, type EVMChain, EVMChains } from \"@swapkit/types\";\nimport { type DerivationPathArray, NetworkDerivationPath } from \"../types\";\n\ntype Params = {\n chain: Chain;\n index: number;\n addressIndex?: number;\n type?: \"legacy\" | \"ledgerLive\" | \"nativeSegwitMiddleAccount\" | \"segwit\" | \"account\";\n};\n\nexport function updateDerivationPath(\n path: DerivationPathArray,\n params: { index: number } | { account: number } | { change: number },\n) {\n if (\"index\" in params) {\n const newPath = [...path.slice(0, path.length - 1), params.index];\n return newPath as DerivationPathArray;\n }\n\n if (\"change\" in params) {\n const [network, chainId, account, , index] = path;\n return [network, chainId, account, params.change, index] as DerivationPathArray;\n }\n\n if (\"account\" in params) {\n const [network, chainId, , change, index] = path;\n return [network, chainId, params.account, change, index] as DerivationPathArray;\n }\n\n return path;\n}\n\nexport function derivationPathToString([network, chainId, account, change, index]:\n | [number, number, number, number?, number?]\n | [number, number, number, number, number?]\n | DerivationPathArray) {\n const shortPath = typeof index !== \"number\";\n const accountPath = typeof change !== \"number\";\n\n if (accountPath) {\n return `m/${network}'/${chainId}'/${account}'`;\n }\n\n return `m/${network}'/${chainId}'/${account}'/${change}${shortPath ? \"\" : `/${index}`}`;\n}\n\n// TODO @towan - sort this out and make it more readable\nexport function getDerivationPathFor({ chain, index, addressIndex = 0, type }: Params) {\n if (EVMChains.includes(chain as EVMChain)) {\n if (type && [\"legacy\", \"account\"].includes(type)) {\n return [44, 60, 0, index];\n }\n\n if (type === \"ledgerLive\") {\n return [44, 60, index, 0, addressIndex] as DerivationPathArray;\n }\n\n return updateDerivationPath(NetworkDerivationPath[chain], { index });\n }\n\n if (chain === Chain.Solana) {\n if (type === \"account\") return [44, 501, 0, index];\n return updateDerivationPath(NetworkDerivationPath[chain], { index });\n }\n\n const chainId = chain === Chain.Litecoin ? 2 : 0;\n\n switch (type) {\n case \"nativeSegwitMiddleAccount\":\n return [84, chainId, index, 0, addressIndex];\n case \"segwit\":\n return [49, chainId, 0, 0, index];\n case \"legacy\":\n return [44, chainId, 0, 0, index];\n default:\n return updateDerivationPath(NetworkDerivationPath[chain], { index });\n }\n}\n\nexport function getWalletFormatFor(path: string) {\n const [_, purpose, chainId] = path.split(\"/\").map((p) => Number.parseInt(p, 10));\n\n if (chainId === 145) \"cashaddr\";\n\n switch (purpose) {\n case 44:\n return \"legacy\";\n case 49:\n return \"p2sh\";\n default:\n return \"bech32\";\n }\n}\n\nexport const DerivationPath: Record<Chain, string> = Object.keys(NetworkDerivationPath).reduce(\n (acc, key) => {\n acc[key as Chain] = derivationPathToString(NetworkDerivationPath[key as Chain]);\n return acc;\n },\n {} as Record<Chain, string>,\n);\n",
@@ -24,7 +24,7 @@
24
24
  "import { Chain } from \"@swapkit/types\";\nimport { match } from \"ts-pattern\";\nimport { MemoType } from \"../types/sdk\";\n\nexport function getMemoForLeaveAndBond({ type, address }: BondOrLeaveParams) {\n return `${type}:${address}`;\n}\n\nexport function getMemoForUnbond({ address, unbondAmount }: UnbondParams) {\n return `${MemoType.UNBOND}:${address}:${unbondAmount}`;\n}\n\n/**\n * Deposit\n */\nexport function getMemoForRunePoolDeposit(affiliate?: WithAffiliate<{}>) {\n return addAffiliate(MemoType.RUNEPOOL_DEPOSIT, affiliate);\n}\n\nexport function getMemoForDeposit({\n chain,\n symbol,\n address,\n ...affiliate\n}: WithAffiliate<{ chain: Chain; symbol: string; address?: string }>) {\n const poolIdentifier = getPoolIdentifier({ chain, symbol });\n const addressPart = address ? `:${address}:` : \":\";\n\n return addAffiliate(`${MemoType.DEPOSIT}:${poolIdentifier}${addressPart}`, affiliate);\n}\n\n/**\n * Withdraw\n */\nexport function getMemoForWithdraw({ chain, symbol, ticker, basisPoints, targetAsset }: WithdrawParams) {\n const shortenedSymbol = chain === \"ETH\" && ticker !== \"ETH\" ? `${ticker}-${symbol.slice(-3)}` : symbol;\n const targetPart = targetAsset ? `:${targetAsset}` : \"\";\n\n return `${MemoType.WITHDRAW}:${chain}.${shortenedSymbol}:${basisPoints}${targetPart}`;\n}\n\nexport function getMemoForRunePoolWithdraw({ basisPoints, ...affiliate }: WithAffiliate<{ basisPoints: number }>) {\n return addAffiliate(`${MemoType.RUNEPOOL_WITHDRAW}:${basisPoints}`, affiliate);\n}\n\n/**\n * TNS\n */\nexport function getMemoForNameRegister({ name, chain, address, owner }: NameRegisterParams) {\n const baseMemo = `${MemoType.NAME_REGISTER}:${name}:${chain}:${address}`;\n const ownerAssignmentOrChangePart = owner ? `:${owner}` : \"\";\n\n return `${baseMemo}${ownerAssignmentOrChangePart}`;\n}\n\nexport function getMemoForNamePreferredAssetRegister({\n name,\n chain,\n asset,\n payout,\n owner,\n}: PreferredAssetRegisterParams) {\n return `${MemoType.NAME_REGISTER}:${name}:${chain}:${payout}:${owner}:${asset}`;\n}\n\nexport function getMemoForTcyClaim(memoType: MemoType.CLAIM_TCY, { address }: WithAffiliate<{ address: string }>) {\n return `${memoType}:${address}`;\n}\n\nexport function getMemoForTcyStake(\n memoType: MemoType.STAKE_TCY | MemoType.UNSTAKE_TCY,\n { unstakeBps, ...affiliate }: WithAffiliate<{ unstakeBps?: number }>,\n) {\n const bps = unstakeBps ? `:${unstakeBps}` : \"\";\n const baseMemo = `${memoType}${bps}`;\n\n return addAffiliate(`${baseMemo}`, affiliate);\n}\n\n/**\n * Internal helpers\n */\nfunction addAffiliate(memo: string, { affiliateAddress, affiliateBasisPoints }: WithAffiliate<{}> = {}) {\n const affiliatedMemo = `${memo}${affiliateAddress ? `:${affiliateAddress}:${affiliateBasisPoints || 0}` : \"\"}`;\n\n return affiliatedMemo.endsWith(\":\") ? affiliatedMemo.slice(0, -1) : affiliatedMemo;\n}\n\nfunction getPoolIdentifier({ chain, symbol }: { chain: Chain; symbol: string }) {\n return match(chain)\n .with(Chain.Bitcoin, Chain.Dogecoin, Chain.Litecoin, () => chain.slice(0, 1).toLowerCase())\n .with(Chain.BitcoinCash, () => \"c\")\n .otherwise(() => `${chain}.${symbol}`);\n}\n\ntype WithAffiliate<T extends {}> = T & { affiliateAddress?: string; affiliateBasisPoints?: number };\n\ntype BondOrLeaveParams = { type: MemoType.BOND | MemoType.LEAVE; address: string };\ntype UnbondParams = { address: string; unbondAmount: number };\ntype NameRegisterParams = { name: string; chain: string; address: string; owner?: string };\ntype PreferredAssetRegisterParams = { name: string; chain: Chain; asset: string; payout: string; owner: string };\ntype WithdrawParams = { chain: Chain; symbol: string; ticker: string; basisPoints: number; targetAsset?: string };\n",
25
25
  "import { type Chain, getChainConfig } from \"@swapkit/types\";\nimport type { BrowserProvider, JsonRpcProvider } from \"ethers\";\nimport { SwapKitError } from \"../modules/swapKitError\";\nimport {\n type EIP6963AnnounceProviderEvent,\n type EIP6963Provider,\n type EthereumWindowProvider,\n type NetworkParams,\n WalletOption,\n} from \"../types\";\nimport { warnOnce } from \"./others\";\n\ndeclare const window: {\n ethereum: EthereumWindowProvider;\n trustwallet: EthereumWindowProvider;\n coinbaseWalletExtension: EthereumWindowProvider;\n braveSolana: any;\n bitkeep?: { ethereum: EthereumWindowProvider };\n ctrl?: { ethereum: EthereumWindowProvider };\n $onekey?: { ethereum: EthereumWindowProvider };\n vultisig?: { ethereum: EthereumWindowProvider };\n} & Window;\n\nexport function isWeb3Detected() {\n return typeof window.ethereum !== \"undefined\";\n}\n\nexport function isDetected(walletOption: WalletOption) {\n return listWeb3EVMWallets().includes(walletOption);\n}\n\nexport function listWeb3EVMWallets() {\n const metamaskEnabled = window?.ethereum && !window.ethereum?.isBraveWallet;\n const ctrlEnabled = window?.ctrl || window?.ethereum?.__XDEFI;\n const vultisigEnabled = window?.vultisig;\n const braveEnabled = window?.ethereum?.isBraveWallet;\n const trustEnabled = window?.ethereum?.isTrust || window?.trustwallet;\n const coinbaseEnabled =\n (window?.ethereum?.overrideIsMetaMask && window?.ethereum?.selectedProvider?.isCoinbaseWallet) ||\n window?.coinbaseWalletExtension;\n const bitgetEnabled = window?.bitkeep?.ethereum;\n const onekeyEnabled = window?.$onekey?.ethereum;\n\n const wallets = [];\n if (metamaskEnabled) wallets.push(WalletOption.METAMASK);\n if (ctrlEnabled) wallets.push(WalletOption.CTRL);\n if (vultisigEnabled) wallets.push(WalletOption.VULTISIG);\n if (braveEnabled) wallets.push(WalletOption.BRAVE);\n if (trustEnabled) wallets.push(WalletOption.TRUSTWALLET_WEB);\n if (coinbaseEnabled) wallets.push(WalletOption.COINBASE_WEB);\n if (okxMobileEnabled()) wallets.push(WalletOption.OKX_MOBILE);\n if (bitgetEnabled) wallets.push(WalletOption.BITGET);\n if (onekeyEnabled) wallets.push(WalletOption.ONEKEY);\n\n return wallets;\n}\n\nexport async function switchEVMWalletNetwork(provider: BrowserProvider, chain: Chain, networkParams?: NetworkParams) {\n const chainConfig = getChainConfig(chain);\n\n try {\n await providerRequest({\n method: \"wallet_switchEthereumChain\",\n params: [{ chainId: chainConfig.chainIdHex }],\n provider,\n });\n } catch (error) {\n if (!networkParams) {\n throw new SwapKitError(\"helpers_failed_to_switch_network\", {\n error: error,\n reason: \"networkParams not provided\",\n });\n }\n await addEVMWalletNetwork(provider, networkParams);\n }\n}\n\nexport function filterSupportedChains<T extends string[]>({\n chains,\n supportedChains,\n walletType,\n}: {\n chains: Chain[];\n supportedChains: T;\n walletType?: WalletOption;\n}) {\n const supported = chains.filter((chain) => !chain || supportedChains.includes(chain));\n\n if (supported.length === 0) {\n throw new SwapKitError(\"wallet_chain_not_supported\", { chain: chains.join(\", \"), wallet: walletType });\n }\n\n const unsupported = chains.filter((chain) => !supportedChains.includes(chain));\n\n warnOnce({\n condition: unsupported.length > 0,\n id: `wallet_chain_not_supported_${walletType}`,\n warning: `${walletType} wallet does not support the following chains: ${unsupported.join(\n \", \",\n )}. These chains will be ignored.`,\n });\n\n return supported as T;\n}\n\nexport function wrapMethodWithNetworkSwitch<T extends (...args: any[]) => any>(\n func: T,\n provider: BrowserProvider,\n chain: Chain,\n) {\n return (async (...args: any[]) => {\n const { chainIdHex } = getChainConfig(chain);\n if ((await provider.getNetwork()).chainId.toString() === chainIdHex) {\n return func(...args);\n }\n try {\n await switchEVMWalletNetwork(provider, chain);\n } catch (error) {\n throw new SwapKitError({ errorKey: \"helpers_failed_to_switch_network\", info: { error } });\n }\n return func(...args);\n }) as unknown as T;\n}\n\nexport function prepareNetworkSwitch<T extends Record<string, unknown>, M extends keyof T>({\n toolbox,\n chain,\n provider = window.ethereum,\n methodNames = [],\n}: {\n toolbox: T;\n chain: Chain;\n provider?: BrowserProvider | JsonRpcProvider;\n methodNames?: M[];\n}) {\n const methodsToWrap = [\n ...methodNames,\n \"approve\",\n \"approvedAmount\",\n \"call\",\n \"sendTransaction\",\n \"transfer\",\n \"isApproved\",\n \"approvedAmount\",\n \"EIP1193SendTransaction\",\n \"getFeeData\",\n \"broadcastTransaction\",\n \"estimateCall\",\n \"estimateGasLimit\",\n \"estimateGasPrices\",\n \"createContractTxObject\",\n ] as M[];\n const wrappedMethods = methodsToWrap.reduce((object, methodName) => {\n if (!toolbox[methodName]) return object;\n\n const method = toolbox[methodName];\n\n if (typeof method !== \"function\") return object;\n\n // @ts-expect-error\n const wrappedMethod = wrapMethodWithNetworkSwitch(method, provider, chain);\n\n // biome-ignore lint/performance/noAccumulatingSpread: valid use case\n return { ...object, [methodName]: wrappedMethod };\n }, {});\n\n return { ...toolbox, ...wrappedMethods };\n}\n\nexport function addEVMWalletNetwork(provider: BrowserProvider, networkParams: NetworkParams) {\n return providerRequest({ method: \"wallet_addEthereumChain\", params: [networkParams], provider });\n}\n\nexport function addAccountsChangedCallback(callback: () => void) {\n window.ethereum?.on(\"accountsChanged\", () => callback());\n window.ctrl?.ethereum.on(\"accountsChanged\", () => callback());\n}\n\nexport function getETHDefaultWallet() {\n const { isTrust, isBraveWallet, __XDEFI, overrideIsMetaMask, selectedProvider } = window?.ethereum || {};\n if (isTrust) return WalletOption.TRUSTWALLET_WEB;\n if (isBraveWallet) return WalletOption.BRAVE;\n if (overrideIsMetaMask && selectedProvider?.isCoinbaseWallet) return WalletOption.COINBASE_WEB;\n if (__XDEFI) return WalletOption.CTRL;\n if (window?.$onekey?.ethereum) return WalletOption.ONEKEY;\n return WalletOption.METAMASK;\n}\n\nexport function getEIP6963Wallets() {\n const providers: EIP6963Provider[] = [];\n\n function onAnnouncement(event: EIP6963AnnounceProviderEvent) {\n if (providers.map((p) => p.info.uuid).includes(event.detail.info.uuid)) return;\n providers.push(event.detail);\n }\n\n window.addEventListener(\"eip6963:announceProvider\", onAnnouncement);\n window.dispatchEvent(new Event(\"eip6963:requestProvider\"));\n\n function removeEIP6963EventListener() {\n window.removeEventListener(\"eip6963:announceProvider\", onAnnouncement);\n }\n\n return { providers, removeEIP6963EventListener };\n}\n\nexport function okxMobileEnabled() {\n const ua = navigator.userAgent;\n const isIOS = /iphone|ipad|ipod|ios/i.test(ua);\n const isAndroid = /android|XiaoMi|MiuiBrowser/i.test(ua);\n const isMobile = isIOS || isAndroid;\n const isOKApp = /OKApp/i.test(ua);\n\n return isMobile && isOKApp;\n}\n\nexport function providerRequest({\n provider,\n params,\n method,\n}: {\n provider?: BrowserProvider;\n params?: any;\n method:\n | \"wallet_addEthereumChain\"\n | \"wallet_switchEthereumChain\"\n | \"eth_requestAccounts\"\n | \"eth_sendTransaction\"\n | \"eth_signTransaction\";\n}) {\n if (!provider?.send) {\n throw new SwapKitError(\"helpers_not_found_provider\");\n }\n\n const providerParams = params ? (Array.isArray(params) ? params : [params]) : [];\n return provider.send(method, providerParams);\n}\n"
26
26
  ],
27
- "mappings": "ggEAAA,+CACA,4GCAyF,IAAzF,4BACA,qBACA,mMCF4E,IAA5E,4BACA,8ICKO,IAPP,4BAQA,sBACA,yPCTsD,IAAtD,6BAIa,EAAwB,aAAU,OAC7C,CAAC,EAAK,IAAU,CAEd,OADA,EAAI,GAAS,kBAAe,CAAK,EAAE,sBAC5B,GAET,CAAC,CACH,ECVO,IAAK,IAAL,CAAK,IAAL,CACL,eAAe,eACf,aAAa,aACb,uBAAuB,uBACvB,sBAAsB,sBACtB,4BAA4B,4BAC5B,0BAA0B,0BAC1B,gBAAgB,gBAChB,wBAAwB,wBACxB,eAAe,eACf,kBAAkB,kBAClB,6BAA6B,6BAC7B,0BAA0B,0BAC1B,wBAAwB,wBACxB,uBAAuB,uBACvB,oBAAoB,oBACpB,qBAAqB,qBACrB,eAAe,eACf,gBAAgB,gBAChB,YAAY,YACZ,mBAAmB,mBACnB,mBAAmB,mBACnB,yBAAyB,yBACzB,0BAA0B,0BAC1B,eAAe,eACf,qBAAqB,qBACrB,wCAAwC,wCACxC,wCAAwC,wCACxC,8BAA8B,8BAC9B,uCAAuC,uCACvC,kBAAkB,kBAClB,kBAAkB,kBAClB,iBAAiB,iBACjB,cAAc,cACd,aAAa,aACb,oBAAoB,oBACpB,iBAAiB,iBACjB,qBAAqB,qBACrB,gBAAgB,gBAChB,kBAAkB,kBAClB,cAAc,cACd,sBAAsB,sBACtB,uBAAuB,uBACvB,kBAAkB,kBAClB,oBAAoB,oBACpB,mBAAmB,mBACnB,mBAAmB,mBACnB,yBAAyB,yBACzB,sBAAsB,sBACtB,yBAAyB,yBACzB,0BAA0B,0BAC1B,uBAAuB,uBACvB,4BAA4B,4BAC5B,+BAA+B,+BAC/B,oCAAoC,oCACpC,iBAAiB,iBACjB,qBAAqB,qBACrB,wBAAwB,wBACxB,oBAAoB,oBACpB,sBAAsB,sBACtB,yBAAyB,yBACzB,qBAAqB,qBACrB,oBAAoB,oBACpB,sBAAsB,sBACtB,+BAA+B,+BAC/B,yBAAyB,yBACzB,oBAAoB,oBACpB,gBAAgB,gBAChB,qBAAqB,qBACrB,2BAA2B,2BAC3B,qBAAqB,qBACrB,mBAAmB,mBACnB,2BAA2B,2BAC3B,qBAAqB,qBACrB,uBAAuB,uBACvB,yBAAyB,yBACzB,2BAA2B,2BAC3B,wBAAwB,wBACxB,qBAAqB,oBACrB,0BAA0B,0BAC1B,gCAAgC,gCAChC,oBAAoB,oBACpB,iBAAiB,iBACjB,mBAAmB,mBACnB,gBAAgB,gBAChB,gBAAgB,gBAChB,gBAAgB,gBAChB,mBAAmB,mBACnB,qBAAqB,qBACrB,wBAAwB,wBACxB,kBAAkB,kBAClB,gCAAgC,gCAChC,iBAAiB,iBACjB,uBAAuB,uBACvB,2BAA2B,2BAC3B,0BAA0B,0BAC1B,yBAAyB,yBACzB,mBAAmB,mBACnB,oBAAoB,oBACpB,mBAAmB,oBACnB,gBAAgB,kBAChB,iBAAiB,mBACjB,gBAAgB,gBAChB,oBAAoB,oBACpB,4BAA4B,4BAC5B,wBAAwB,wBACxB,uBAAuB,uBACvB,eAAe,eACf,2BAA2B,2BAC3B,mBAAmB,mBACnB,iBAAiB,iBACjB,wBAAwB,wBACxB,uBAAuB,uBACvB,eAAe,eACf,qBAAqB,qBACrB,gCAAgC,gCAChC,qBAAqB,qBACrB,gBAAgB,gBAChB,uBAAuB,uBACvB,gBAAgB,gBAChB,eAAe,eACf,qBAAqB,qBACrB,6BAA6B,6BAC7B,qBAAqB,qBACrB,uBAAuB,uBACvB,0BAA0B,0BAC1B,0BAA0B,0BAC1B,yBAAyB,yBACzB,eAAe,eACf,oBAAoB,oBACpB,0BAA0B,0BAC1B,oBAAoB,oBACpB,wBAAwB,0BApId,SAuIL,IAAK,IAAL,CAAK,IAAL,CACL,eAAe,eACf,kBAAkB,oBAFR,SAKL,IAAK,IAAL,CAAK,IAAL,CACL,YAAY,YACZ,aAAa,aACb,YAAY,YACZ,sBAAsB,sBACtB,UAAU,UACV,YAAY,YACZ,sBAAsB,sBACtB,aAAa,aACb,UAAU,UACV,eAAe,eACf,cAAc,cACd,cAAc,cACd,eAAe,eACf,YAAY,YACZ,sBAAsB,sBACtB,eAAe,eACf,aAAa,aACb,aAAa,aACb,OAAO,OACP,SAAS,SACT,MAAM,QArBI,SAwBL,IAAK,IAAL,CAAK,IAAL,CACL,YAAY,YACZ,UAAU,UACV,UAAU,UACV,WAAW,WACX,YAAY,YACZ,MAAM,MACN,WAAW,WACX,UAAU,YARA,SCxJL,IAAK,IAAL,CAAK,IAAL,CACL,UAAU,UACV,OAAO,OACP,UAAU,YAHA,SAML,IAAK,IAAL,CAAK,IAAL,CACL,UAAU,UACV,YAAY,cAFF,SAOL,IAAK,IAAL,CAAK,IAAL,CACL,gBAAgB,IAChB,OAAO,OACP,UAAU,IACV,QAAQ,QACR,SAAS,SACT,WAAW,IACX,mBAAmB,QACnB,oBAAoB,QACpB,YAAY,MACZ,YAAY,OACZ,cAAc,SAXJ,SCUL,IAAK,GAAL,CAAK,IAAL,CACL,SAAS,SACT,QAAQ,QACR,kBAAkB,kBAClB,eAAe,eACf,eAAe,eACf,OAAO,OACP,UAAU,UAIV,SAAS,SACT,UAAU,UACV,cAAc,cACd,QAAQ,QACR,WAAW,WACX,OAAO,OACP,SAAS,SACT,cAAc,cACd,WAAW,WACX,MAAM,MACN,aAAa,aACb,SAAS,SACT,WAAW,WACX,UAAU,UACV,cAAc,cACd,eAAe,eACf,WAAW,WACX,SAAS,SACT,WAAW,WACX,kBAAkB,kBAClB,WAAW,WACX,gBAAgB,gBAChB,kBAAkB,kBAClB,QAAQ,UAlCE,QAqCL,IAAK,IAAL,CAAK,IAAL,CACL,YAAU,OAAV,UACA,iBAAe,OAAf,eACA,gBAAc,OAAd,gBAHU,SJ5BZ,IAAM,GAAU,YAAU,OACxB,CAAC,EAAK,IAAU,CACd,GAAI,CAAC,EAAI,cACP,EAAI,gBAAc,MAAQ,qBAAmB,QAC7C,EAAI,gBAAc,WAAa,qBAAmB,QAIpD,OADA,EAAI,GAAS,iBAAe,CAAK,EAAE,QAC5B,GAET,CAAC,CACH,EAEM,GAAe,CACnB,QAAS,CAAE,WAAY,GAAI,QAAS,GAAI,SAAU,GAAI,QAAS,GAAI,uBAAwB,GAAI,MAAO,EAAG,EACzG,OAAQ,YACR,UAAW,CAAC,EACZ,KAAM,CACJ,OAAQ,0BACR,UAAW,8BACX,oBAAqB,KACrB,yBAA0B,KAC1B,wBAAyB,KACzB,MAAO,GACP,WAAY,EACd,EACA,eAAgB,OAChB,aAAc,CACZ,MAAO,CACL,gBAAiB,qBACjB,mBAAoB,QACpB,sBAAuB,qEACvB,QAAS,CAAE,cAAe,iCAAkC,UAAW,EAAG,YAAa,SAAU,CACnG,CACF,EAEA,eAAgB,CAAE,MAAO,CAAE,kBAAmB,EAAG,UAAW,IAAK,SAAU,KAAM,WAAY,CAAE,EAAG,UAAW,KAAM,EACnH,WACA,QAAS,OAAO,OAAO,CAAY,CACrC,EA4Ba,EAAkB,UAA2B,CAAC,KAAS,IAC/D,GAEH,UAAW,CAAC,EAAK,IAAW,EAAI,CAAC,KAAO,CAAE,QAAS,IAAK,EAAE,SAAU,GAAM,CAAO,CAAE,EAAE,EACrF,UAAW,CAAC,IACV,EAAI,CAAC,KAAO,CACV,QAAS,IAAK,EAAE,WAAY,GAAQ,OAAQ,EAC5C,OAAQ,EAAE,OAAO,OAAO,GAAQ,QAAU,CAAC,CAAC,EAC5C,UAAW,IAAK,EAAE,aAAc,GAAQ,SAAU,EAClD,KAAM,IAAK,EAAE,QAAS,GAAQ,IAAK,EACnC,eAAgB,GAAQ,gBAAkB,EAAE,eAC5C,aAAc,IAAK,EAAE,gBAAiB,GAAQ,YAAa,EAC3D,QAAS,IAAK,EAAE,WAAY,GAAQ,OAAQ,EAC5C,QAAS,EAAE,QAAQ,OAAO,GAAQ,SAAW,CAAC,CAAC,CACjD,EAAE,EACJ,YAAa,CAAC,EAAK,IAAa,EAAI,CAAC,KAAO,CAAE,UAAW,IAAK,EAAE,WAAY,GAAM,CAAS,CAAE,EAAE,EAC/F,OAAQ,CAAC,EAAK,IAAU,EAAI,CAAC,KAAO,CAAE,KAAM,IAAK,EAAE,MAAO,GAAM,CAAM,CAAE,EAAE,EAC1E,kBAAmB,CAAC,IAAgB,EAAI,KAAO,CAAE,eAAgB,CAAY,EAAE,EAC/E,qBAAsB,CAAC,EAAa,IAClC,EAAI,CAAC,KAAO,CAAE,aAAc,IAAK,EAAE,cAAe,GAAc,CAAO,CAAE,EAAE,EAC7E,kBAAmB,CAAC,IAClB,EAAI,CAAC,KAAO,CACV,eAAgB,CACd,MAAO,IAAK,EAAE,eAAe,SAAU,EAAQ,KAAM,EACrD,UAAW,EAAQ,WAAa,EAAE,eAAe,SACnD,CACF,EAAE,EACJ,UAAW,CAAC,EAAO,IAAQ,EAAI,CAAC,KAAO,CAAE,QAAS,IAAK,EAAE,SAAU,GAAQ,CAAI,CAAE,EAAE,CACrF,EAAE,EAEW,GAAmB,IAC9B,EACE,cAAW,CAAC,KAAW,CACrB,QAAS,GAAO,QAChB,OAAQ,GAAO,OACf,UAAW,GAAO,UAClB,KAAM,GAAO,KACb,eAAgB,GAAO,eACvB,aAAc,GAAO,aACrB,QAAS,GAAO,QAChB,QAAS,GAAO,OAClB,EAAE,CACJ,EAEW,EAAW,CACtB,IAAK,CAA0B,IAAW,EAAgB,SAAS,EAAE,GACrE,SAAU,EAAgB,SAC1B,aAAc,IAAM,EAAgB,SAAS,EAAY,EACzD,IAAK,CAA0B,IAAc,EAAgB,SAAS,EAAE,UAAU,CAAM,EAExF,UAAW,CAAqC,EAAQ,IACtD,EAAgB,SAAS,EAAE,UAAU,EAAK,CAAM,EAClD,YAAa,CAAqC,EAAQ,IACxD,EAAgB,SAAS,EAAE,YAAY,EAAK,CAAQ,EACtD,OAAQ,CAAkC,EAAQ,IAChD,EAAgB,SAAS,EAAE,OAAO,EAAK,CAAK,EAC9C,kBAAmB,CAAC,IAAqC,EAAgB,SAAS,EAAE,kBAAkB,CAAW,EACjH,qBAAsB,CAA0C,EAAgB,IAC9E,EAAgB,SAAS,EAAE,qBAAqB,EAAa,CAAM,EACrE,kBAAmB,CAAC,IAAuC,EAAgB,SAAS,EAAE,kBAAkB,CAAO,EAC/G,UAAW,CAAqC,EAAU,IACxD,EAAgB,SAAS,EAAE,UAAU,EAAO,CAAI,CACpD,uCK5KA,IAAM,GAAa,CAIjB,iDAAkD,MAClD,kBAAmB,MACnB,4BAA6B,MAC7B,6CAA8C,MAC9C,sBAAuB,MACvB,2BAA4B,MAC5B,kCAAmC,MACnC,gCAAiC,MACjC,kCAAmC,MACnC,kBAAmB,MAInB,iCAAkC,MAClC,+BAAgC,MAChC,oCAAqC,MACrC,wCAAyC,MACzC,mCAAoC,MACpC,iCAAkC,MAClC,iCAAkC,MAClC,gCAAiC,MACjC,8BAA+B,MAC/B,kCAAmC,MACnC,mCAAoC,MACpC,+BAAgC,MAChC,uCAAwC,MACxC,8BAA+B,MAC/B,iCAAkC,MAIlC,yBAA0B,MAC1B,6BAA8B,MAC9B,+BAAgC,MAChC,6BAA8B,MAC9B,sCAAuC,MACvC,iCAAkC,MAClC,4BAA6B,MAC7B,mCAAoC,MAIpC,+BAAgC,MAChC,6CAA8C,MAC9C,8CAA+C,MAC/C,iDAAkD,MAClD,8CAA+C,MAC/C,4CAA6C,MAC7C,0CAA2C,MAC3C,2CAA4C,MAC5C,gCAAiC,MACjC,uCAAwC,MACxC,kDAAmD,MACnD,mCAAoC,MACpC,wCAAyC,MACzC,sCAAuC,MACvC,+BAAgC,MAChC,wBAAyB,MACzB,2CAA4C,MAI5C,mCAAoC,MACpC,uBAAwB,MACxB,2BAA4B,MAC5B,sBAAuB,MACvB,0BAA2B,MAC3B,uCAAwC,MAIxC,+BAAgC,MAChC,iCAAkC,MAClC,gCAAiC,MACjC,+BAAgC,MAChC,4BAA6B,MAC7B,8BAA+B,MAC/B,+BAAgC,MAChC,oCAAqC,MACrC,4BAA6B,MAC7B,2BAA4B,MAC5B,+BAAgC,MAChC,mCAAoC,MACpC,6BAA8B,MAC9B,gCAAiC,MACjC,0BAA2B,MAC3B,+BAAgC,MAChC,oCAAqC,MACrC,mCAAoC,MACpC,kCAAmC,MACnC,4BAA6B,MAC7B,8BAA+B,MAC/B,gCAAiC,MACjC,oCAAqC,MACrC,mCAAoC,MAIpC,yBAA0B,MAI1B,sBAAuB,MACvB,wCAAyC,MACzC,0CAA2C,MAC3C,8BAA+B,MAI/B,8CAA+C,MAC/C,gDAAiD,MACjD,6CAA8C,MAC9C,yCAA0C,MAC1C,oCAAqC,MACrC,0CAA2C,MAI3C,yCAA0C,MAC1C,4CAA6C,MAC7C,oCAAqC,MACrC,8BAA+B,MAC/B,mCAAoC,MAIpC,4BAA6B,MAC7B,0BAA2B,MAI3B,0BAA2B,MAI3B,uBAAwB,MACxB,gCAAiC,MACjC,8BAA+B,MAC/B,kCAAmC,MACnC,wBAAyB,MAIzB,yBAA0B,MAC1B,iCAAkC,MAClC,6CAA8C,MAC9C,2CAA4C,MAC5C,qCAAsC,MACtC,6BAA8B,MAC9B,+BAAgC,MAChC,iCAAkC,MAClC,gCAAiC,MACjC,mCAAoC,MACpC,gCAAiC,MACjC,2BAA4B,MAC5B,oCAAqC,MACrC,8BAA+B,MAC/B,gCAAiC,MACjC,2BAA4B,MAC5B,iCAAkC,MAIlC,yBAA0B,MAC1B,wCAAyC,MACzC,2BAA4B,MAI5B,uCAAwC,MACxC,0BAA2B,MAC3B,2BAA4B,MAC5B,iCAAkC,MAClC,mCAAoC,MACpC,yCAA0C,MAC1C,oCAAqC,MACrC,iCAAkC,MAIlC,wBAAyB,MACzB,qCAAsC,MAItC,qBAAsB,MACtB,+BAAgC,MAChC,oCAAqC,MACrC,uBAAwB,MAIxB,uBAAwB,MACxB,iCAAkC,MAClC,8BAA+B,MAC/B,yBAA0B,MAI1B,8BAA+B,MAC/B,wCAAyC,MACzC,2CAA4C,MAC5C,6CAA8C,MAC9C,gCAAiC,MACjC,oCAAqC,MACrC,mCAAoC,MACpC,qCAAsC,MAQtC,0BAA2B,MAC3B,oCAAqC,MACrC,qCAAsC,MACtC,4BAA6B,MAI7B,+CAAgD,MAChD,kCAAmC,MACnC,gCAAiC,MAIjC,iCAAkC,MAClC,oCAAqC,MAIrC,gDAAiD,MACjD,mCAAoC,MACpC,iCAAkC,MAClC,iCAAkC,MAIlC,0BAA2B,MAC3B,8CAA+C,MAC/C,kCAAmC,MACnC,4CAA6C,MAK7C,4BAA6B,MAC7B,2BAA4B,MAC5B,yBAA0B,MAC1B,+BAAgC,MAChC,gCAAiC,MACjC,+BAAgC,MAIhC,wCAAyC,MACzC,uBAAwB,MAKxB,wBAAyB,MACzB,wBAAyB,MAIzB,gCAAiC,MACjC,iCAAkC,MAClC,0BAA2B,MAC3B,0BAA2B,MAC3B,0BAA2B,MAC3B,0CAA2C,MAC3C,sCAAuC,MAIvC,uBAAwB,MACxB,yBAA0B,MAC1B,2BAA4B,MAI5B,iCAAkC,MAClC,gCAAiC,MACjC,+BAAgC,MAChC,gCAAiC,MACjC,0CAA2C,MAI3C,iCAAkC,MAClC,2BAA4B,MAC5B,8BAA+B,MAC/B,yBAA0B,MAC1B,6BAA8B,MAC9B,kCAAmC,MACnC,iDAAkD,MAClD,0CAA2C,MAI3C,uCAAwC,MACxC,sCAAuC,MACvC,iCAAkC,MAClC,sCAAuC,MACvC,2BAA4B,MAC5B,gCAAiC,MACjC,4BAA6B,MAC7B,gCAAiC,MACjC,wBAAyB,MACzB,4BAA6B,MAC7B,yBAA0B,MAC1B,8BAA+B,MAC/B,sBAAuB,MACvB,0BAA2B,MAC3B,0BAA2B,MAC3B,4CAA6C,MAI7C,uBAAwB,MACxB,8BAA+B,MAC/B,kCAAmC,MACnC,6BAA8B,MAC9B,4BAA6B,MAC7B,iCAAkC,MAClC,uBAAwB,MACxB,2BAA4B,MAI5B,yBAA0B,MAC1B,qCAAsC,MAItC,gCAAiC,MACjC,iCAAkC,MAIlC,mCAAoC,MAIpC,iCAAkC,MAClC,kCAAmC,MACnC,gCAAiC,MACjC,mCAAoC,MACpC,+BAAgC,MAIhC,uBAAwB,MACxB,sCAAuC,MACvC,mCAAoC,MACpC,yCAA0C,MAC1C,mCAAoC,MACpC,gCAAiC,MACjC,4BAA6B,MAC7B,oCAAqC,MACrC,oCAAqC,MAIrC,uBAAwB,MACxB,6BAA8B,MAC9B,4BAA6B,MAC7B,6BAA8B,MAC9B,8BAA+B,MAC/B,wBAAyB,MACzB,yBAA0B,MAC1B,4BAA6B,MAC7B,0BAA2B,MAC3B,sCAAuC,MACvC,wBAAyB,MACzB,gCAAiC,MACjC,iCAAkC,MAIlC,6BAA8B,MAC9B,6BAA8B,MAC9B,0BAA2B,MAC3B,uCAAwC,MACxC,0BAA2B,MAC3B,4BAA6B,MAC7B,sBAAuB,MACvB,sBAAuB,MAIvB,sBAAuB,MAIvB,yBAA0B,MAC1B,0BAA2B,MAC3B,6BAA8B,MAC9B,gCAAiC,MACjC,4BAA6B,MAI7B,2BAA4B,MAI5B,wBAAyB,MACzB,oBAAqB,MACrB,+BAAgC,MAIhC,0CAA2C,MAC3C,gCAAiC,MACjC,2BAA4B,MAC5B,0BAA2B,MAC3B,iCAAkC,MAClC,0BAA2B,MAC3B,iCAAkC,MAClC,2BAA4B,MAC5B,4BAA6B,MAC7B,uBAAwB,MACxB,yBAA0B,MAC1B,uCAAwC,MAIxC,gBAAiB,KACnB,EAIO,MAAM,UAAqB,KAAM,OAC/B,WAAY,GAEnB,WAAW,CACT,EACA,EACA,CACA,IAAM,EAAgB,OAAO,IAAoB,SAC3C,EAAW,EAAgB,EAAkB,EAAgB,SAC7D,EAAO,EAAgB,OAAY,EAAgB,KACnD,EAAU,GAAG,IAAW,EAAO,KAAK,KAAK,UAAU,CAAI,IAAM,KAEnE,MAAM,CAAO,EAOb,GANA,OAAO,eAAe,KAAM,EAAa,SAAS,EAElD,KAAK,KAAO,eACZ,KAAK,MAAQ,EAGT,EAAmB,CACrB,IAAM,EACJ,aAA6B,MACzB,GAAG,EAAkB,UAAU,EAAkB,MAAQ,KAAK,EAAkB,SAAW,KAC3F,KAAK,UAAU,CAAiB,EACtC,QAAQ,MAAM,iBAAiB,OAAc,GAAU,EAClD,QAAI,EACT,QAAQ,MAAM,iBAAiB,OAAc,KAAK,UAAU,CAAI,GAAG,EAGzE,CCjcA,IAAM,GAAQ,CAAC,IAAe,IAAI,QAAQ,CAAC,IAAY,WAAW,EAAS,CAAE,CAAC,EACxE,GAAiB,CAAC,GAAmB,YAAW,oBAAmB,cACvE,KAAK,IAAI,EAAY,GAAqB,EAAS,CAAQ,EAEvD,GAAc,MAAO,EAAa,IAAwB,CAC9D,IAAM,EAAW,MAAM,MAAM,EAAK,CAAM,EAExC,GAAI,CAAC,EAAS,GAAI,CAChB,IAAM,EAAY,CAAE,OAAQ,EAAS,OAAQ,WAAY,EAAS,UAAW,EAC7E,MAAM,IAAI,EAAa,CAAE,SAAU,2BAA4B,KAAM,CAAU,EAAG,CAAS,EAE7F,OAAO,EAAS,KAAK,GAGvB,SAAS,EAAe,CAAC,EAAwB,EAAyB,CAAC,EAAG,CAC5E,OAAO,cAAuC,CAAC,EAAa,EAAmB,CAAC,EAAe,CAC7F,IACE,eACA,OACA,OACA,UACA,gBACA,QACA,YACA,kBACA,UACA,YACA,qBACG,GACD,IAAK,KAAkB,CAAQ,EAC7B,EAAiB,EAAS,IAAI,gBAAgB,EAE9C,EAAc,IAAK,EAAe,SAAU,CAAM,EAClD,EAAS,CAAC,CAAC,GAAQ,EAAI,SAAS,OAAO,EACvC,GAAa,GAAS,EAAK,CAAY,EACvC,EAAiB,GAAa,EAAQ,IAAK,KAAY,IAAgB,CAAE,CAAC,EAC1E,GAAc,EAAS,KAAK,UAAU,CAAI,EAAI,EAEhD,EAEJ,QAAS,GAAU,EAAG,IAAW,EAAY,WAAY,KAAW,CAClE,IAAM,GAAa,GAAmB,IAAI,gBACpC,GAAY,WAAW,IAAM,GAAW,MAAM,EAAG,GAAa,EAAe,SAAS,EAE5F,GAAI,CACF,IAAM,EAAS,MAAM,GAAY,GAAY,IACxC,EACH,KAAM,GACN,QAAS,EACT,SACA,OAAQ,GAAW,MACrB,CAAC,EAGD,OADA,aAAa,EAAS,EACf,IAAY,CAAM,GAAK,IAAkB,CAAM,GAAK,EAC3D,MAAO,EAAO,CAId,GAHA,aAAa,EAAS,EACtB,EAAY,EAER,IAAW,EAAY,WACzB,OAAO,EAAU,EAAQ,CAAK,EAAI,QAAQ,OAAO,CAAK,EAGxD,MAAM,GAAM,GAAe,GAAS,CAAW,CAAC,GAIpD,OAAO,EAAU,EAAQ,CAAS,EAAI,QAAQ,OAAO,CAAS,GAIlE,SAAS,EAAY,CAAC,EAAiB,EAAuB,CAC5D,MAAO,IAAK,KAAa,GAAU,CAAE,eAAgB,kBAAmB,CAAG,EAG7E,SAAS,EAAQ,CAAC,EAAa,EAAuC,CACpE,IAAM,EAAc,IAAI,IAAI,CAAG,EAC/B,GAAI,EAAc,EAAY,OAAS,IAAI,gBAAgB,CAAY,EAAE,SAAS,EAClF,OAAO,EAAY,SAAS,EAGvB,IAAM,EAAgB,CAC3B,OAAQ,CAAC,KAA4B,CACnC,OAAQ,CAAC,IAAwB,EAAc,OAAO,IAAK,KAAkB,CAAW,CAAC,EACzF,IAAK,GAAgB,MAAO,CAAa,EACzC,KAAM,GAAgB,OAAQ,CAAa,CAC7C,GACA,IAAK,GAAgB,KAAK,EAC1B,KAAM,GAAgB,MAAM,CAC9B,yEC7G+F,IAA/F,4BACA,uJCDsB,IAAtB,6BAKO,SAAS,EAAe,CAAC,EAAuB,CACrD,GAAI,EAAgB,EAClB,MAAM,IAAI,EAAa,CAAE,SAAU,kCAAmC,KAAM,CAAE,eAAc,CAAE,CAAC,EACjG,MAAO,IAAK,EAKP,SAAS,EAAe,CAAC,EAAuB,CACrD,GAAI,EAAgB,EAClB,MAAM,IAAI,EAAa,CAAE,SAAU,kCAAmC,KAAM,CAAE,eAAc,CAAE,CAAC,EAEjG,OAAO,KAAK,OAAO,GAAK,EAAgB,QAAU,WAAI,EAAI,YAGrD,SAAS,EAAgB,CAAC,EAAa,EAAsB,CAClE,GAAI,CACF,OAAO,EAAG,EACV,MAAO,EAAO,CACd,GAAI,EACF,MAAM,IAAI,EAAa,EAAU,CAAK,EAGxC,QAIG,SAAS,EAAmC,CAAC,EAAU,CAC5D,OAAQ,QACD,SAAM,UACT,MAAO,GAAG,cAEP,SAAM,OACT,MAAO,GAAG,cAEP,SAAM,kBACT,MAAO,GAAG,YAGV,MAAO,GAAG,KAAS,KAIzB,IAAM,GAAW,IAAI,IACd,SAAS,CAAQ,EAAG,YAAW,KAAI,WAAgE,CACxG,GAAI,EAAW,CACb,GAAI,GAAS,IAAI,CAAE,EACjB,OAIA,QAAQ,KAAK,CAAO,EAGtB,GAAS,IAAI,CAAE,GDrDnB,SAAS,EAAU,CAAC,EAA8B,CAChD,OAAO,SAAM,CAAK,EACf,KAAK,GAAG,YAAW,KAAO,CAAE,GAAI,EAAG,QAAS,MAAO,OAAQ,kBAAmB,OAAQ,CAAC,CAAE,EAAE,EAC3F,KAAK,GAAG,aAAY,KAAO,CAAE,GAAI,OAAQ,QAAS,MAAO,OAAQ,oBAAqB,OAAQ,CAAC,CAAE,EAAE,EACnG,KAAK,GAAG,eAAc,GAAG,iBAAgB,KAAO,CAAE,GAAI,EAAG,QAAS,MAAO,OAAQ,SAAU,OAAQ,CAAC,CAAE,EAAE,EACxG,KAAK,QAAM,SAAU,QAAM,UAAW,KAAO,CAAE,GAAI,EAAG,QAAS,MAAO,OAAQ,gBAAiB,OAAQ,CAAC,CAAE,EAAE,EAC5G,KAAK,QAAM,OAAQ,KAAO,CAAE,GAAI,EAAG,QAAS,MAAO,OAAQ,WAAY,EAAE,EACzE,KAAK,QAAM,IAAK,KAAO,CAAE,GAAI,EAAG,QAAS,MAAO,OAAQ,qBAAsB,OAAQ,CAAC,CAAE,EAAE,EAC3F,KAAK,QAAM,IAAK,KAAO,CAAE,GAAI,EAAG,QAAS,MAAO,OAAQ,wBAAyB,OAAQ,CAAE,QAAS,EAAG,CAAE,EAAE,EAC3G,KAAK,QAAM,KAAM,QAAM,MAAO,IAAM,EAAE,EACtC,KAAK,QAAM,KAAM,KAAO,CAAE,GAAI,WAAY,QAAS,MAAO,OAAQ,SAAU,OAAQ,CAAC,CAAE,EAAE,EACzF,KAAK,QAAM,OAAQ,KAAO,CAAE,GAAI,EAAG,QAAS,MAAO,OAAQ,OAAQ,OAAQ,CAAC,CAAC,CAAC,CAAE,EAAE,EAClF,UAAU,IAAM,CACf,MAAM,IAAI,EAAa,8BAA+B,CAAE,OAAM,CAAC,EAChE,EAGL,SAAS,EAAsB,CAAC,EAA8B,CAC5D,OAAO,SAAM,CAAK,EACf,KAAK,QAAM,MAAO,IAAM,+BAA+B,EACvD,KAAK,QAAM,KAAM,IAAM,qBAAqB,EAC5C,UAAU,IAAM,EAAE,EAGvB,eAAe,EAAiB,CAAC,EAA8B,EAAa,CAC1E,GAAI,CACF,IAAM,EAAW,EAAI,WAAW,KAAK,EAAI,EAAI,QAAQ,MAAO,OAAO,EAAI,EAQvE,OAPiB,MAAM,MAAM,GAAG,IAAW,GAAuB,CAAK,IAAK,CAC1E,KAAM,KAAK,UAAU,GAAW,CAAK,CAAC,EACtC,QAAS,CAAE,eAAgB,kBAAmB,EAC9C,OAAQ,OACR,OAAQ,YAAY,QAAQ,IAAI,CAClC,CAAC,GAEe,GAChB,KAAM,CACN,MAAO,IAIX,IAAM,GAAW,IAAI,IACf,GAAc,OAEpB,eAAsB,CAAS,CAAC,EAA8B,CAC5D,IAAQ,cAAe,EAAS,IAAI,MAAM,GACnC,EAAS,MAAO,GAAgB,EAAS,IAAI,SAAS,EAAE,GAE/D,GAAI,CAAC,EAMH,MALA,EAAS,CACP,UAAW,GACX,GAAI,yCACJ,QAAS,sFAAsF,IACjG,CAAC,EACK,IAAI,EAAa,yCAA0C,CAAE,OAAM,CAAC,EAG5E,GAAI,EAAY,OAAO,EAEvB,IAAM,EAAS,GAAS,IAAI,CAAK,EACjC,GAAI,GAAU,KAAK,IAAI,EAAI,EAAO,UAAY,GAC5C,OAAO,EAAO,IAKhB,GAAI,CAFqB,MAAM,GAAkB,EAAO,CAAM,GAG5D,QAAW,KAAe,EAGxB,GAF0B,MAAM,GAAkB,EAAO,CAAW,EAIlE,OADA,GAAS,IAAI,EAAO,CAAE,UAAW,KAAK,IAAI,EAAG,IAAK,CAAY,CAAC,EACxD,EAMb,OADA,GAAS,IAAI,EAAO,CAAE,UAAW,KAAK,IAAI,EAAG,IAAK,CAAO,CAAC,EACnD,EASF,SAAS,EAA6B,CAAC,EAAgB,CAC5D,EAAS,CACP,UAAW,GACX,GAAI,gCACJ,QACE,sLACJ,CAAC,ERvFI,IAAM,GAAqB,CAChC,GAAG,QAAM,YACT,GAAG,QAAM,aACT,GAAG,QAAM,gBACT,GAAG,QAAM,iBACT,GAAG,QAAM,aACT,GAAG,QAAM,gBACT,GAAG,QAAM,WACX,EAUM,GAAe,CAAC,QAAM,SAAU,QAAM,OAAQ,QAAM,KAAM,QAAM,SAAU,QAAM,QAAQ,EAE9F,eAAe,EAAqB,CAAC,EAAiB,CACpD,IAAQ,eAAgB,iBAAe,QAAM,KAAK,EAElD,GAAI,CACF,IAAM,EAAS,MAAM,EAAU,QAAM,KAAK,GAElC,WAAY,MAAM,EAAc,KAA4B,GAAG,mBAAyB,CAC9F,KAAM,KAAK,UAAU,CAAE,QAAS,UAAW,iBAAkB,CAAQ,CAAC,EACtE,QAAS,CAAE,OAAQ,MAAO,eAAgB,kBAAmB,CAC/D,CAAC,EAED,OAAO,GAAS,cAAc,OAAO,aACrC,MAAO,EAAO,CACd,IAAM,EAAe,aAAiB,MAAQ,EAAM,QAAU,OAAO,CAAK,EAE1E,OADA,QAAQ,KAAK,4CAA4C,MAAY,GAAc,EAC5E,GAIX,eAAe,EAAmB,CAAC,EAAiB,CAClD,GAAI,CACF,IAAM,EAAS,MAAM,EAAU,QAAM,KAAK,EAa1C,OAXiB,MAAM,EAAc,KAKlC,GAAG,yBAA+B,CACnC,KAAM,KAAK,UAAU,CAAE,UAAW,CAAC,CAAO,EAAG,QAAS,CAAE,kBAAmB,CAAC,QAAQ,CAAE,CAAE,CAAC,EACzF,QAAS,CAAE,OAAQ,MAAO,eAAgB,kBAAmB,CAC/D,CAAC,GAE+B,MAAM,IAAI,mBAAmB,MAAM,KAAK,CAAC,IAAS,EAAK,MAAQ,QAAQ,GAChF,MAAM,MAAM,OAAS,OAC5C,MAAO,EAAO,CACd,IAAM,EAAe,aAAiB,MAAQ,EAAM,QAAU,OAAO,CAAK,EAE1E,OADA,QAAQ,KAAK,0CAA0C,MAAY,GAAc,EAC1E,IAIX,eAAe,EAAe,EAC5B,QACA,UACA,YACA,MAMC,CACD,IAAM,EAAS,MAAM,EAAU,CAAK,EACpC,OAAO,EAAc,KAAyB,EAAQ,CACpD,KAAM,KAAK,UAAU,CACnB,KACA,QAAS,MACT,OAAQ,WACR,OAAQ,CAAC,CAAE,KAAM,EAAW,GAAI,EAAQ,YAAY,CAAE,EAAG,QAAQ,CACnE,CAAC,EACD,QAAS,CAAE,OAAQ,MAAO,gBAAiB,WAAY,eAAgB,kBAAmB,CAC5F,CAAC,EAGH,eAAe,EAAe,CAAC,EAAmB,CAChD,GAAI,CAAC,GAAa,IAAc,KAAM,MAAO,UAE7C,GAAI,CACF,IAAQ,YAAa,KAAa,kBAGlC,OAFiB,EAAS,gBAAgB,EACjB,OAAO,CAAC,QAAQ,EAAG,CAAS,EACtC,GAAG,KAAK,EACvB,MAAO,EAAO,CAEd,OADA,QAAQ,KAAK,oCAAoC,MAAc,GAAO,EAC/D,WAIX,SAAS,EAAc,CAAC,EAAmB,EAAkB,CAC3D,GAAI,CAAC,GAAa,IAAc,KAAM,OAAO,EAE7C,GAAI,CACF,OAAO,OAAO,CAAS,EACvB,MAAO,EAAO,CAEd,OADA,QAAQ,KAAK,mCAAmC,MAAc,GAAO,EAC9D,GAIX,eAAe,EAAmB,EAAG,QAAO,WAAiD,CAC3F,IAAQ,eAAgB,iBAAe,CAAK,EAEtC,EAAmB,EAAQ,YAAY,EAE7C,GAAI,IAAY,IAAM,CAAC,EAAiB,WAAW,IAAI,EAAG,OAAO,EAEjE,IAAM,EAAkB,MAAM,GAAgB,CAAE,UAAS,QAAO,GAAI,EAAG,UAAW,YAAa,CAAC,EAAE,MAChG,CAAC,IAAiB,CAEhB,OADA,QAAQ,KAAK,gCAAgC,QAAc,MAAU,EAAM,SAAS,EAC7E,CAAE,OAAQ,EAAG,EAExB,EAGA,OADiB,GAAe,EAAgB,OAAQ,CAAW,EAIrE,eAAe,EAAiB,EAAG,QAAO,WAAiD,CACzF,IAAM,EAAmB,EAAQ,YAAY,EAE7C,GAAI,IAAqB,IAAM,CAAC,EAAiB,WAAW,IAAI,EAAG,OAEnE,IAAM,EAAiB,MAAM,GAAgB,CAAE,UAAS,QAAO,GAAI,EAAG,UAAW,YAAa,CAAC,EAAE,MAC/F,CAAC,IAAiB,CAEhB,OADA,QAAQ,KAAK,8BAA8B,QAAc,MAAU,EAAM,SAAS,EAC3E,CAAE,OAAQ,EAAG,EAExB,EAIA,OAFe,MAAM,GAAgB,EAAe,MAAM,EAKrD,SAAS,EAAc,EAAG,QAAO,WAA8C,CACpF,IAAQ,eAAgB,iBAAe,CAAK,EACtC,EAAgB,CAAE,SAAU,EAAa,OAAQ,MAAU,EAEjE,OAAO,SAAM,CAAK,EACf,KAAK,GAAG,YAAW,SAAY,CAC9B,GAAI,CACF,IAAQ,YAAW,cAAe,KAAa,kBAE/C,GAAI,CAAC,EAAU,EAAW,EAAQ,QAAQ,MAAO,IAAI,CAAC,CAAC,EAAG,OAAO,EAEjE,IAAO,EAAQ,GAAY,MAAM,QAAQ,IAAI,CAC3C,GAAkB,CAAE,UAAS,MAAO,CAAkB,CAAC,EACvD,GAAoB,CAAE,UAAS,MAAO,CAAkB,CAAC,CAC3D,CAAC,EAED,MAAO,CAAE,WAAU,QAAO,EAC1B,MAAO,EAAY,CAEnB,OADA,QAAQ,KAAK,kCAAkC,QAAc,MAAU,GAAO,QAAQ,GAAO,SAAS,EAC/F,GAEV,EACA,KAAK,QAAM,OAAQ,SAAY,CAC9B,GAAI,CAAC,EAAS,OAAO,EAErB,GAAI,CACF,IAAM,EAAW,MAAM,MAAM,kDAAkD,GAAS,EACxF,GAAI,EAAS,GAAI,CACf,IAAM,EAAO,MAAM,EAAS,KAAK,EAC3B,EAAQ,MAAM,QAAQ,CAAI,EAAI,EAAK,GAAK,EAC9C,GAAI,EACF,MAAO,CAAE,SAAU,EAAM,UAAY,EAAa,OAAQ,EAAM,QAAU,MAAU,GAGxF,MAAO,EAAY,CACnB,QAAQ,KAAK,yCAAyC,MAAY,GAAO,QAAQ,GAAO,SAAS,EAEnG,OAAO,EACR,EACA,KAAK,QAAM,KAAM,SAAY,CAC5B,GAAI,CAAC,EAAS,OAAO,EAErB,GAAI,CACF,IAAM,EAAK,KAAa,mBAClB,EAAU,EAAG,SAAW,EAAG,SAAS,QACpC,EAAS,MAAM,EAAU,QAAM,IAAI,EAOnC,EAAW,MAND,IAAI,EAAQ,CAC1B,SAAU,EAEV,WAAY,kEACd,CAAC,EAE8B,SAAS,EAAE,GAAG,CAAO,GAE7C,EAAc,GAAkB,MAAM,QAAQ,IAAI,CACvD,EACG,OAAO,EACP,KAAK,EACL,MAAM,CAAC,IAAiB,CACvB,QAAQ,KAAK,8BAA8B,aAAoB,CAAK,EACpE,OACD,EACH,EACG,SAAS,EACT,KAAK,EACL,MAAM,CAAC,IAAiB,CAEvB,OADA,QAAQ,KAAK,gCAAgC,aAAoB,CAAK,EAC/D,EACR,CACL,CAAC,EAED,MAAO,CACL,SAAU,OAAO,IAAmB,SAAW,EAAiB,OAAO,GAAkB,CAAW,EACpG,OAAQ,GAAgB,MAC1B,EACA,MAAO,EAAO,CACd,IAAM,EAAe,aAAiB,MAAQ,EAAM,QAAU,OAAO,CAAK,EAE1E,OADA,QAAQ,KAAK,uCAAuC,MAAY,GAAc,EACvE,GAEV,EACA,KAAK,QAAM,KAAM,SAAY,CAC5B,GAAI,CAAC,EAAS,OAAO,EAErB,GAAI,CACF,IAAQ,mBAAoB,KAAa,8BACnC,EAAS,MAAM,EAAU,QAAM,IAAI,EAGnC,EAAW,MAFA,IAAI,EAAgB,CAAE,IAAK,CAAO,CAAC,EAEpB,MAAM,CACpC,WAAY,EACZ,YAAa,OAAO,KAAK,IAAI,EAAE,SAAS,QAAQ,EAChD,SAAU,QACV,YAAa,cACb,aAAc,eAChB,CAAC,EAEK,EAAS,KAAK,MAAM,OAAO,KAAM,EAAiB,MAAM,EAAE,SAAS,CAAC,EAE1E,MAAO,CAAE,SAAU,GAAQ,UAAY,EAAa,OAAQ,GAAQ,MAAO,EAC3E,MAAO,EAAO,CACd,IAAM,EAAe,aAAiB,MAAQ,EAAM,QAAU,OAAO,CAAK,EAE1E,OADA,QAAQ,KAAK,uCAAuC,MAAY,GAAc,EACvE,GAEV,EACA,KAAK,QAAM,MAAO,SAAY,CAC7B,GAAI,CAAC,EAAS,OAAO,EAErB,GAAI,CACF,IAAO,EAAQ,GAAY,MAAM,QAAQ,IAAI,CAAC,GAAoB,CAAO,EAAG,GAAsB,CAAO,CAAC,CAAC,EAE3G,MAAO,CAAE,WAAU,QAAO,EAC1B,MAAO,EAAO,CACd,IAAM,EAAe,aAAiB,MAAQ,EAAM,QAAU,OAAO,CAAK,EAE1E,OADA,QAAQ,KAAK,wCAAwC,MAAY,GAAc,EACxE,GAEV,EACA,UAAU,SAAY,CAAa,EAGjC,SAAS,EAAU,EAAG,QAAO,UAA4C,CAC9E,OAAO,SAAM,CAAK,EACf,KAAK,GAAG,GAAc,IAAM,IAAW,KAAK,EAC5C,KAAK,QAAM,UAAW,IAAM,IAAW,MAAM,EAC7C,KAAK,QAAM,UAAW,IAAM,IAAW,MAAM,EAC7C,KAAK,QAAM,kBAAmB,IAAM,IAAW,KAAK,EACpD,KAAK,QAAM,OAAQ,IAAM,IAAW,QAAU,IAAW,MAAM,EAC/D,KAAK,QAAM,MAAO,IAAM,IAAW,KAAK,EACxC,KAAK,QAAM,OAAQ,IAAM,IAAW,KAAK,EACzC,KAAK,QAAM,KAAM,IAAM,IAAW,OAAO,EACzC,KAAK,QAAM,OAAQ,IAAM,IAAW,MAAM,EAC1C,KAAK,QAAM,UAAW,IAAM,IAAW,MAAM,EAC7C,KAAK,QAAM,KAAM,IAAM,IAAW,KAAK,EACvC,KAAK,QAAM,MAAO,IAAM,GAAG,KAAS,MAAa,EAAmB,CAAK,EAAE,UAAU,EACrF,UAAU,IAAM,IAAW,CAAK,EAG9B,IAAM,EAAqB,CAAC,IAAmC,CACpE,IAAQ,YAAa,GAAY,iBAAe,CAAoB,EA4CpE,OA1CwB,SAAM,EAAY,YAAY,CAAC,EACpD,KAAK,GAAG,GAAc,CAAC,KAAW,CAAE,UAAS,WAAY,GAAG,OAAY,EAAE,EAC1E,KAAK,QAAM,UAAW,CAAC,KAAW,CAAE,UAAS,WAAY,GAAG,QAAa,EAAE,EAC3E,KAAK,QAAM,OAAQ,CAAC,KAAW,CAAE,UAAS,WAAY,GAAG,QAAa,EAAE,EACxE,KAAK,QAAM,KAAM,CAAC,KAAW,CAAE,QAAS,GAAI,WAAY,GAAG,SAAc,EAAE,EAC3E,KAAK,QAAM,kBAAmB,CAAC,KAAW,CAAE,UAAS,WAAY,GAAG,OAAY,EAAE,EAClF,KAAK,QAAM,MAAO,CAAC,KAAW,CAAE,UAAS,WAAY,GAAG,OAAY,EAAE,EACtE,KAAK,QAAM,UAAW,CAAC,KAAW,CAAE,UAAS,WAAY,GAAG,QAAa,EAAE,EAC3E,KAAK,QAAM,OAAQ,CAAC,KAAW,CAAE,UAAS,WAAY,GAAG,QAAa,EAAE,EACxE,KAAK,QAAM,OAAQ,CAAC,KAAW,CAAE,UAAS,WAAY,GAAG,OAAY,EAAE,EACvE,KAAK,QAAM,UAAW,CAAC,KAAW,CAAE,UAAS,WAAY,GAAG,QAAa,EAAE,EAC3E,KAAK,QAAM,KAAM,CAAC,KAAW,CAAE,UAAS,WAAY,GAAG,OAAY,EAAE,EACrE,KACC,QAAM,OACN,QAAM,UACN,QAAM,OACN,QAAM,OACN,QAAM,SACN,QAAM,KACN,GAAG,aACH,CAAC,KAAW,CAAE,UAAS,WAAY,GAAG,KAAS,GAAQ,EACzD,EACC,KAAK,QAAM,MAAO,UAAW,KAAO,CAAE,UAAS,WAAY,SAAU,EAAE,EACvE,KAAK,QAAM,QAAS,UAAW,KAAO,CAAE,UAAS,WAAY,SAAU,EAAE,EACzE,KAAK,WAAY,CAAC,KAAW,CAAE,QAAS,EAAG,WAAY,CAAM,EAAE,EAC/D,KAAK,WAAY,KAAO,CACvB,QAAS,iBAAe,QAAM,QAAQ,EAAE,YACxC,WAAY,qDACd,EAAE,EACD,KAAK,WAAY,KAAO,CACvB,QAAS,iBAAe,QAAM,QAAQ,EAAE,YACxC,WAAY,qDACd,EAAE,EACD,KAAK,YAAa,KAAO,CACxB,QAAS,iBAAe,QAAM,QAAQ,EAAE,YACxC,WAAY,sDACd,EAAE,EACD,KAAK,aAAc,CAAC,KAAgB,CAAE,QAAS,GAAI,YAAW,EAAE,EAChE,KAAK,YAAa,CAAC,KAAgB,CAAE,QAAS,EAAG,YAAW,EAAE,EAE9D,UAAU,KAAO,CAAE,UAAS,WAAY,CAAY,EAAE,GAKpD,SAAS,EAAY,EAAG,QAAO,UAA4C,CAChF,GAAI,EAAO,SAAS,GAAG,EAAG,MAAO,QACjC,GAAI,EAAO,SAAS,GAAG,EAAG,MAAO,QAcjC,OAZiB,SAAM,CAAK,EACzB,KAAK,QAAM,MAAO,IAAM,IAAW,QAAM,OAAS,GAAG,KAAS,MAAa,EAAmB,CAAK,EAAE,UAAU,EAC/G,KAAK,QAAM,SAAU,QAAM,SAAU,QAAM,KAAM,QAAM,OAAQ,IAAM,IAAW,QAAM,QAAQ,EAC9F,KAAK,QAAM,OAAQ,IAAM,IAAW,MAAM,EAC1C,KAAK,QAAM,kBAAmB,IAAM,IAAW,KAAK,EACpD,KAAK,QAAM,KAAM,IAAM,IAAW,OAAO,EACzC,KAAK,QAAM,MAAO,IAAM,IAAW,KAAK,EACxC,KAAK,QAAM,UAAW,IAAM,IAAW,MAAM,EAC7C,KAAK,QAAM,KAAM,IAAM,IAAW,KAAK,EACvC,KAAK,QAAM,OAAQ,IAAM,IAAW,KAAK,EACzC,UAAU,IAAM,IAAW,CAAK,EAEjB,SAAW,EAGxB,IAAM,EAAkB,CAAC,IAAwB,CACtD,IAAO,KAAU,GAAe,EAAY,MAAM,GAAG,EAC/C,EAAQ,EAAY,SAAS,GAAG,EAChC,EAAS,EAAY,KAAK,GAAG,EAC7B,EAAc,GAAQ,MAAM,GAAG,EAC/B,EAAS,GAAa,OACxB,EAAY,SAAW,EACrB,EAAY,GACZ,EAAY,MAAM,EAAG,EAAE,EAAE,KAAK,GAAG,EACnC,OAEJ,MAAO,CAAE,QAAO,SAAQ,QAAO,QAAO,GAGxC,eAAsB,EAAW,CAAC,EAAmF,CACnH,IAAQ,kBAAmB,KAAa,wBAClC,EAAa,MAAM,EAAe,EAExC,QAAW,KAAa,OAAO,OAAO,CAAU,EAC9C,QAAa,aAAY,MAAO,KAAe,KAAU,EAAU,OAAQ,CACzE,GAAI,eAAgB,GAAU,IAAe,EAAO,WAClD,OAAO,EAGT,GACE,YAAa,GACb,UAAW,GACX,IAAe,EAAO,OACtB,EAAK,SACL,EAAK,QAAQ,YAAY,IAAM,EAAO,SAAS,YAAY,EAE3D,OAAO,EAIb,sEUxYF,IAAM,GAAkB,CAAC,QAAS,GAAG,EAAS,IAAI,QAAQ,CAAC,EAEpD,SAAS,EAAkB,CAAC,EAAa,GAAI,CAClD,IAAM,EAAuB,EAAW,YAAY,GAE7C,GAAS,EAAqB,MAAM,GAAG,EAC9C,GAAI,GAAgB,SAAS,CAAK,EAAG,MAAO,GAE5C,IAAO,GAAc,EAAqB,MAAM,GAAG,EACnD,GAAI,GAAgB,SAAS,CAAU,EAAG,MAAO,GAEjD,MAAM,IAAI,EAAa,CACrB,SAAU,6BACV,KAAM,CACJ,aACA,QAAS,uBAAuB,4EAClC,CACF,CAAC,EAGI,SAAS,EAAW,CAAC,EAAc,CACxC,GAAI,EAAK,OAAS,GAAI,MAAO,GAE7B,IAAM,EAAQ,qBAEd,MAAO,CAAC,CAAC,EAAK,MAAM,CAAK,0EC9BL,IAAtB,wBAUM,EAAkB,EAClB,GAAmB,GAElB,SAAS,CAAuB,EACrC,QACA,gBAAgB,EAChB,UAAU,GAKT,CACD,GAAI,IAAY,EAAG,OAAO,EAAM,SAAS,EAEzC,IAAM,EAAa,EAAQ,GACvB,EAAc,EAAM,SAAS,EAAE,UAAU,EAAa,EAAI,CAAC,EACzD,EAAY,GAAW,EAAY,OAAS,GAElD,GAAI,EAAY,EACd,EAAc,IAAI,OAAO,CAAS,EAAI,EAGxC,IAAM,EAAe,EAAY,OAAS,EACtC,EAAgB,EAAY,MAAM,CAAC,CAAO,EAG9C,GADmB,OAAO,SAAS,EAAc,IAAkB,IAAK,EAAE,GACxD,EAAG,CACnB,IAAM,EAAY,OAAO,SAAS,EAAc,EAAgB,IAAM,IAAK,EAAE,EAC7E,EAAgB,GAAG,EAAc,UAAU,EAAG,EAAgB,CAAC,IAAI,EAAY,IAE/E,OAAgB,EAAc,UAAU,EAAG,CAAa,EAG1D,MAAO,GAAG,EAAa,IAAM,KAAK,EAAY,MAAM,EAAG,CAAY,KAAK,IAAgB,QAAQ,SAAU,EAAE,EAGvG,MAAM,CAAkB,CAC7B,kBAA4B,KAAO,GACnC,YAAc,GACd,cAEO,WAAU,CAAC,EAAe,EAAkB,CACjD,OAAO,IAAI,EAAkB,CAC3B,UACA,MAAO,EAAwB,CAAE,cAAe,EAAS,UAAS,OAAM,CAAC,CAC3E,CAAC,QAGI,cAAa,EAAG,QAAO,OAAM,MAA+E,CACjH,OAAO,EAAkB,WAAY,EAAM,aAAa,QAAQ,EAAI,EAAa,CAAE,EAAK,EAAa,CAAI,EAAG,CAAE,EAGhH,WAAW,CAAC,EAAwB,CAClC,IAAM,EAAQ,GAAe,CAAM,EAC7B,EAAY,OAAO,IAAW,SACpC,KAAK,QAAU,EAAY,EAAO,QAAU,OAE5C,KAAK,kBACH,GAAa,sBAAuB,EAChC,EAAO,kBACP,EAAa,KAAK,IAAI,GAAiB,GAAY,CAAK,CAAC,EAAG,KAAK,SAAW,CAAC,CAAC,EAEpF,KAAK,GAAU,CAAK,EAGtB,GAAG,CAAC,EAA6B,CAC/B,OAAO,IAAK,KAAK,YAAoB,CACnC,QAAS,KAAK,QACd,WAAa,KAAa,WAAW,CAAE,qBAAsB,EAAK,CAAC,EACnE,OACF,CAAC,EAGH,GAAG,IAAI,EAAiC,CACtC,OAAO,KAAK,GAAa,MAAO,GAAG,CAAI,EAGzC,GAAG,IAAI,EAAiC,CACtC,OAAO,KAAK,GAAa,MAAO,GAAG,CAAI,EAGzC,GAAG,IAAI,EAAiC,CACtC,OAAO,KAAK,GAAa,MAAO,GAAG,CAAI,EAGzC,GAAG,IAAI,EAAiC,CACtC,OAAO,KAAK,GAAa,MAAO,GAAG,CAAI,EAGzC,EAAE,CAAC,EAAgC,CACjC,OAAO,KAAK,GAAY,KAAM,CAAK,EAGrC,GAAG,CAAC,EAAgC,CAClC,OAAO,KAAK,GAAY,MAAO,CAAK,EAGtC,EAAE,CAAC,EAAgC,CACjC,OAAO,KAAK,GAAY,KAAM,CAAK,EAGrC,GAAG,CAAC,EAAgC,CAClC,OAAO,KAAK,GAAY,MAAO,CAAK,EAGtC,OAAO,CAAC,EAAgC,CACtC,OAAO,KAAK,GAAY,UAAW,CAAK,EAG1C,QAAsC,CAAC,EAAS,EAA2C,CACzF,IAAM,EAAiB,GAAsB,KAAK,iBAAiB,EAC7D,EAAmB,IAAY,OAAY,EAAU,KAAK,QAE5D,EAAgB,IAAqB,OAAY,EAAmB,EAExE,GAAI,IAAqB,QAAa,EAAmB,GAEvD,GADkB,KAAK,wBAAwB,KAAK,YAAa,CAAgB,IAC/D,KAAO,KAAK,cAAgB,GAC5C,EAAgB,EAIpB,IAAM,EAAQ,KAAK,wBAAwB,KAAK,YAAa,CAAa,EAE1E,OAAO,QAAM,CAA0B,EACpC,KAAK,SAAU,IAAM,OAAO,CAAK,CAA4B,EAC7D,KAAK,SAAU,IAAM,CAAgC,EACrD,KAAK,SAAU,IAAM,CAEpB,OADqB,KAAK,YAAc,KAAO,OAAO,KAAK,SAAW,EAAE,EAAK,KAAK,kBAEnF,EACA,UAAU,IAAM,CAAgC,EAGrD,YAA0C,CAAC,EAAS,EAA2C,CAC7F,IAAM,EAAU,KAAK,kBAAoB,EAAa,GAAW,KAAK,SAAW,CAAe,EAC1F,EAAY,GAAyB,KAAK,YAAa,CAAO,EAEpE,OAAO,QAAM,CAA0B,EACpC,KAAK,SAAU,IAAM,OAAO,CAAS,CAA4B,EACjE,KAAK,SAAU,IAAM,EAAU,SAAS,CAA4B,EACpE,UAAU,IAAM,CAAoC,EAGzD,cAAc,CAAC,EAAgC,EAAkB,CAC/D,GAAI,CAAC,GAAW,OAAO,IAAU,SAAU,OAAO,EAAM,YAExD,IAAM,EAAc,GAAe,CAAK,EAClC,EAAY,GAAY,CAAW,EAEzC,GAAI,IAAc,KAAO,IAAc,YAAa,OAAO,GAC3D,OAAO,KAAK,GAAU,EAAW,CAAO,EAG1C,aAAa,CAAC,EAAoB,EAAG,CACnC,IAAM,EAAW,KAAK,SAAS,QAAQ,GAChC,EAAM,GAAI,EAAM,IAAM,EAAS,MAAM,GAAG,EACzC,EAAa,OAAO,SAAS,EAAK,EAAE,EAAI,EAG9C,IAFoB,EAAa,EAAI,OAAS,EAAI,OAAS,EAAI,SAE5C,EAAmB,OAAO,EAC7C,GAAI,EAAI,QAAU,EAAmB,OAAO,EAAI,MAAM,EAAG,CAAiB,EAAE,OAAO,EAAI,OAAQ,GAAG,EAClG,GAAI,EAAY,MAAO,GAAG,KAAO,EAAI,MAAM,EAAG,EAAoB,EAAI,MAAM,IAE5E,IAAM,EAAU,OAAO,SAAS,EAAK,EAAE,EAAE,SAAS,EAC5C,EAAS,EAAQ,MAAM,EAAG,CAAiB,EAC3C,EAAe,EAAI,OAAS,EAAQ,OAE1C,MAAO,KAAK,EAAO,SAAS,EAAe,EAAO,OAAQ,GAAG,IAG/D,OAAO,CAAC,EAAc,EAAG,CACvB,IAAM,EAAW,KAAK,SAAS,QAAQ,EACjC,EAAa,EAAS,WAAW,GAAG,GACnC,EAAM,IAAK,EAAM,KAAO,EAAa,EAAS,MAAM,CAAC,EAAI,GAAU,MAAM,GAAG,EAC7E,EAAO,EAAa,IAAM,GAEhC,GAAI,IAAgB,EAAG,CACrB,GAAI,IAAQ,KAAO,CAAC,EAAK,MAAO,IAEhC,OADoB,GAAO,OAAO,SAAS,EAAI,IAAM,IAAK,EAAE,GAAK,EAC5C,GAAG,IAAO,OAAO,CAAG,EAAI,OAAS,GAAG,IAAO,MAGlE,GAAI,CAAC,EAAK,MAAO,GAAG,IAAO,KAAO,IAAI,OAAO,CAAW,IAExD,IAAM,EAAY,EAAI,GAGtB,GAAI,EAFgB,GAAa,OAAO,SAAS,EAAW,EAAE,GAAK,GAEjD,MAAO,GAAG,IAAO,KAAO,EAAI,MAAM,EAAG,CAAW,EAAE,OAAO,EAAa,GAAG,IAE3F,IAAM,EAAe,OAAO,EAAI,MAAM,EAAG,CAAW,EAAE,OAAO,EAAa,GAAG,CAAC,EAAI,GAC5E,EAAa,KAAO,OAAO,CAAW,EAE5C,GAAI,GAAgB,EAAY,MAAO,GAAG,IAAO,OAAO,CAAG,EAAI,MAAM,IAAI,OAAO,CAAW,IAE3F,MAAO,GAAG,IAAO,KAAO,EAAa,SAAS,EAAE,SAAS,EAAa,GAAG,IAG3E,cAAc,CAAC,EAAS,EAAG,CACzB,IAAM,EAAW,KAAK,SAAS,QAAQ,EACjC,EAAQ,OAAO,CAAQ,EACvB,EAAgB,CAAC,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,GAAG,EACvD,EAAO,KAAK,MAAM,KAAK,MAAM,KAAK,IAAI,CAAK,CAAC,EAAI,CAAC,EAEvD,GAAI,IAAS,GAAK,CAAC,EAAc,GAAO,OAAO,EAE/C,MAAO,IAAI,EAAQ,KAAO,EAAO,IAAI,QAAQ,CAAM,IAAI,EAAc,KAGvE,UAAU,CACR,EAAW,KACT,mBAAmB,QAAS,UAAU,EAAG,mBAAmB,IAAK,oBAAoB,KAAQ,CAAC,EAChG,CACA,IAAM,EAAW,KAAK,SAAS,QAAQ,EACjC,EAAa,EAAS,WAAW,GAAG,EACpC,EAAc,EAAa,EAAS,MAAM,CAAC,EAAI,GAC9C,EAAM,IAAK,EAAM,IAAM,EAAY,MAAM,GAAG,EAC7C,EAAO,EAAa,IAAM,GAEhC,GAAI,IAAQ,KAAO,EAAK,CACtB,IAAM,EAAa,EAAI,QAAQ,MAAO,EAAE,EAClC,EAAY,EAAa,GAAG,KAAQ,IAAmB,IAAe,IAE5E,OAAO,QAAM,CAAgB,EAC1B,KAAK,QAAS,IAAM,GAAG,IAAW,GAAW,EAC7C,KAAK,MAAO,IAAM,GAAG,IAAY,GAAU,EAC3C,UAAU,IAAM,GAAG,IAAW,GAAW,EAG9C,IAAM,EAAa,KAAK,QAAQ,CAAO,GAChC,EAAa,IAAK,EAAa,IAAM,EAAW,MAAM,GAAG,EAC1D,EAAe,EAAW,QAAQ,wBAAyB,CAAiB,EAE5E,EADc,GAAc,OAAO,SAAS,EAAY,EAAE,EAAI,EACxC,GAAG,IAAe,IAAmB,IAAe,EAEhF,OAAO,QAAM,CAAgB,EAC1B,KAAK,QAAS,IAAM,GAAG,IAAW,GAAO,EACzC,KAAK,MAAO,IAAM,GAAG,IAAQ,GAAU,EACvC,UAAU,IAAM,GAAG,IAAW,GAAO,EAG1C,uBAAuB,CAAC,EAAe,EAAkB,CACvD,IAAM,EAAgB,GAAW,KAAK,SAAW,EAC3C,EAA4B,KAAK,IAAI,EAAe,GAAsB,KAAK,iBAAiB,CAAC,EAEvG,OAAO,EAAwB,CAAE,gBAAe,QAAS,EAA2B,OAAM,CAAC,EAG7F,EAAY,CAAC,KAA0C,EAAuC,CAC5F,IAAM,EAAmB,KAAK,GAA0B,KAAM,GAAG,CAAI,EAC/D,EAAiB,GAAsB,KAAK,iBAAiB,EAE7D,EADgB,KAAK,IAAI,EAAkB,CAAc,EACvB,GAClC,EAAqB,EAAa,CAAe,EAEjD,EAAS,EAAK,OAClB,CAAC,EAAa,IAAQ,CACpB,IAAM,EAAQ,KAAK,eAAe,EAAK,CAAe,EAEtD,OAAO,QAAM,CAAM,EAChB,KAAK,MAAO,IAAM,EAAM,CAAK,EAC7B,KAAK,MAAO,IAAM,EAAM,CAAK,EAC7B,KAAK,MAAO,IAAO,EAAM,EAAS,CAAkB,EACpD,KAAK,MAAO,IAAM,CACjB,GAAI,IAAU,GAAI,MAAU,WAAW,kBAAkB,EACzD,OAAQ,EAAM,EAAsB,EACrC,EACA,UAAU,IAAM,CAAG,GAEvB,KAAK,YAAc,EAAsB,KAAK,iBACjD,EAEM,EAAQ,EAAwB,CAAE,cAAe,EAAiB,QAAS,EAAiB,MAAO,CAAO,CAAC,EAGjH,OAAO,IAAI,KAAK,YAAY,CAC1B,QAAS,KAAK,QACd,kBAAmB,EAAa,CAAe,EAC/C,WAAY,KAAK,SAAS,EAC1B,OACF,CAAC,EAGH,EAAW,CAAC,KAAoD,EAAiC,CAC/F,IAAM,EAAU,KAAK,GAA0B,KAAM,GAAG,CAAI,EACtD,EAAQ,KAAK,eAAe,EAAK,IAAM,IAAK,CAAO,EACnD,EAAiB,KAAK,eAAe,KAAM,CAAO,EAExD,OAAO,QAAM,CAAM,EAChB,KAAK,KAAM,IAAM,EAAiB,CAAK,EACvC,KAAK,MAAO,IAAM,GAAkB,CAAK,EACzC,KAAK,KAAM,IAAM,EAAiB,CAAK,EACvC,KAAK,MAAO,IAAM,GAAkB,CAAK,EACzC,KAAK,UAAW,IAAM,IAAmB,CAAK,EAC9C,UAAU,IAAM,EAAK,EAG1B,EAAS,CAAC,EAAgC,CACxC,IAAM,EAAY,GAAY,CAAK,GAAK,IACxC,KAAK,YAAc,KAAK,GAAU,CAAS,EAG7C,EAAyB,IAAI,EAAiC,CAC5D,IAAM,EAAW,EACd,IAAI,CAAC,IAAQ,CAMZ,OALiB,OAAO,IAAQ,SAE5B,EAAI,SAAW,GAAsB,EAAI,iBAAiB,EAC1D,GAAiB,GAAY,CAAG,CAAC,EAGtC,EACA,OAAO,OAAO,EAEjB,OAAO,KAAK,IAAI,GAAG,EAAU,CAAe,EAG9C,EAAS,CAAC,EAAe,EAAkB,CACzC,IAAM,EAAa,EAAU,EAAa,CAAO,EAAI,KAAK,kBACpD,EAAa,GAAsB,CAAU,GAC5C,EAAc,GAAI,EAAc,IAAM,EAAM,MAAM,GAAG,EAE5D,OAAO,OAAO,GAAG,IAAc,EAAY,OAAO,EAAY,GAAG,GAAG,EAExE,CAEA,IAAM,GAAkB,KAAK,aAAa,WAAY,CAAE,sBAAuB,GAAI,YAAa,EAAM,CAAC,EAEvG,SAAS,EAAW,CAAC,EAAgC,CAEnD,IAAM,EAAa,GADC,OAAO,IAAU,SAAW,GAAgB,OAAO,CAAK,EAAI,GAAe,CAAK,IAChE,WAAW,IAAK,GAAG,EAAE,MAAM,GAAG,EAElE,OAAO,EAAW,OAAS,EAAI,GAAG,EAAW,MAAM,EAAG,EAAE,EAAE,KAAK,EAAE,KAAK,EAAW,GAAG,EAAE,IAAM,EAAW,IAAM,IAG/G,SAAS,EAAgB,CAAC,EAAe,CACvC,IAAM,EAAW,EAAM,MAAM,GAAG,EAAE,IAAI,QAAU,EAChD,OAAO,KAAK,IAAI,EAAU,CAAe,EAG3C,SAAS,EAAc,CAAC,EAAuB,CAC7C,OAAO,OAAO,IAAU,SAAY,aAAc,EAAQ,EAAM,SAAS,QAAQ,EAAI,EAAM,MAAS,EAGtG,SAAS,EAAwB,CAAC,EAAW,EAAW,CACtD,GAAI,IAAM,GAAI,MAAU,MAAM,uBAAuB,EAErD,IAAM,EAAO,EAAI,GACjB,OAAQ,GAAK,IAAM,GAAK,IAAQ,EAAI,IAAM,EAAI,IAAO,EAAI,GAAQ,GAAK,EAAI,GAAQ,EAGpF,SAAS,CAAY,CAAC,EAAiB,CACrC,OAAO,KAAO,OAAO,CAAO,EAG9B,SAAS,EAAqB,CAAC,EAAoB,CACjD,OAAO,KAAK,MAAM,OAAO,WAAW,EAAW,SAAS,CAAC,CAAC,EZ1V5D,IAAM,EAAiC,CAAC,QAAM,OAAQ,QAAM,KAAM,QAAM,KAAM,QAAM,GAAG,EACjF,GAAqB,CAAC,QAAM,UAAW,QAAM,IAAI,EAEjD,EAAkB,IAAI,IAKtB,GAA4B,IAAI,IAEhC,GAAkB,IAAI,IACtB,GAAY,QAElB,SAAS,EAAkB,CAAC,EAAa,CACvC,IAAM,EAAS,GAAgB,IAAI,CAAG,EAEtC,GAAI,GAAQ,WAAa,KAAK,IAAI,EAAI,EAAO,UAAY,GAAW,CAClE,GAAgB,OAAO,CAAG,EAC1B,OAGF,OAAO,EAGT,SAAS,EAAkB,CAAC,EAAa,EAAgD,CACvF,GAAI,GAAgB,KAAO,KAAM,CAC/B,IAAM,EAAW,GAAgB,KAAK,EAAE,KAAK,EAAE,MAC/C,GAAI,EAAU,GAAgB,OAAO,CAAQ,EAG/C,GAAgB,IAAI,EAAK,IAAK,EAAM,UAAW,KAAK,IAAI,CAAE,CAAC,EAkBtD,MAAM,UAAmB,CAAkB,CAChD,QACA,MACA,WAAa,GACb,YAAc,GACd,aAAe,GACf,OACA,IACA,OACA,KACA,QAEA,WAAW,EACT,QACA,UACA,MACA,QACA,SACA,cAIC,CACD,MAAM,OAAO,IAAU,SAAW,EAAQ,CAAE,UAAS,OAAM,CAAC,EAE5D,IAAM,EAAY,GAAa,GAAc,GAAG,KAAS,GAAQ,EAEjE,KAAK,KAAO,GAAa,CAAS,EAClC,KAAK,IAAM,EACX,KAAK,MAAQ,EAAU,MACvB,KAAK,OAAS,EAAU,OACxB,KAAK,OAAS,EAAU,OACxB,KAAK,QAAU,EAAU,QACzB,KAAK,YAAc,EAAU,YAC7B,KAAK,aAAe,EAAU,aAC9B,KAAK,WAAa,EAAU,WAC5B,KAAK,QAAU,iBAAe,EAAU,KAAK,EAAE,QAGjD,QAAQ,EAAG,wBAA6D,CAAC,EAAG,CAC1E,OAAQ,KAAK,aAAe,KAAK,eAAiB,CAAC,EAC/C,KAAK,OACL,GAAG,KAAK,SAAS,KAAK,SAG5B,KAAK,EAAG,CACN,GAAI,KAAK,YACP,MAAO,GAAG,KAAK,SAAS,KAAK,OAAO,QAAQ,MAAO,GAAG,IAGxD,GAAI,KAAK,aACP,MAAO,GAAG,KAAK,SAAS,KAAK,OAAO,QAAQ,KAAM,IAAI,IAGxD,IAAM,EAAgB,KAAK,OAAO,QAAQ,MAAO,IAAI,EACrD,MAAO,GAAG,KAAK,SAAS,IAG1B,UAAU,EAAG,CAEX,OADc,EAAgB,IAAI,KAAK,SAAS,CAAC,GACnC,QAGhB,OAAO,EAAG,QAAO,UAA4C,CAC3D,OAAO,KAAK,QAAU,GAAS,KAAK,SAAW,EAGjD,EAAE,CAAC,EAAwB,CACzB,OAAO,KAAK,QAAQ,CAAU,GAAK,KAAK,QAAQ,CAAU,QAGrD,QAAO,CAAC,EAAkB,EAA0B,EAAG,CAC5D,IAAM,EAAgB,EAAS,QAAQ,GAAG,EAE1C,GAAI,IAAkB,GACpB,MAAM,IAAI,EAAa,CAAE,SAAU,4BAA6B,KAAM,CAAE,UAAS,CAAE,CAAC,EAGtF,IAAM,EAAQ,EAAS,MAAM,EAAG,CAAa,EACvC,EAAO,EAAS,MAAM,EAAgB,CAAC,EAEvC,EAAQ,SAAM,CAAE,MAAO,EAAgB,MAAK,CAAC,EAChD,KACC,EAAG,UAAW,EAAK,SAAS,IAAI,EAChC,EAAG,QAAO,UAAW,GAAG,KAAS,EAAK,QAAQ,QAAS,GAAG,GAC5D,EACC,KACC,EAAG,QAAO,UAAW,GAAU,SAAS,CAAK,GAAK,EAAK,SAAS,GAAG,EACnE,EAAG,QAAO,UAAW,GAAG,KAAS,EAAK,QAAQ,MAAO,GAAG,GAC1D,EACC,UAAU,EAAG,QAAO,UAAW,GAAG,KAAS,EAAK,QAAQ,MAAO,GAAG,GAAG,EAExE,OAAO,EAAW,KAAK,CAAE,QAAO,OAAM,CAAC,QAGlC,KAAkB,EACvB,QAAQ,EACR,kBACA,sBACG,GACwD,CAC3D,IAAM,EAAc,aAAiB,EAAoB,EAAM,SAAS,QAAQ,EAAI,EAC9E,EAAe,GAAe,CAAgB,EAE9C,EAAsB,CAAC,EAAa,WAAW,QAAM,GAAG,GAAK,EAAa,SAAS,GAAG,EAE5F,GAAI,GAAoB,EAAqB,CAC3C,IAAO,GAAO,GAAW,EAAa,MAAM,GAAG,EAE/C,OAAO,GAAsB,CAAE,UAAS,SAAO,kBAAiB,aAAY,CAAC,EAG/E,IAAM,EAAqB,EAAsB,EAAa,MAAM,GAAG,EAAE,KAAK,WAAW,EAAI,GAErF,WAAY,EAAkB,QAAS,GAAuB,EACpE,CACF,GAEQ,QAAO,cAAa,eAAc,WAAY,GAAa,CAAgB,GAC3E,eAAgB,iBAAe,CAAK,EAEtC,EAAQ,EAAgB,IAC5B,EAAsB,SAAS,CAAK,EAC/B,EACA,EAAiB,YAAY,CACpC,EAEA,GAAI,CAAC,GAAS,GAAoB,CAAC,GAAe,CAAC,EACjD,OAAQ,SAAY,CAClB,IAAQ,WAAW,EAAgB,CAAgB,EAC7C,EAAY,MAAM,GAAe,CAAE,UAAS,QAAO,SAAO,CAAC,EACjE,OAAO,GAAiB,CACtB,QAAS,EAAU,SACnB,WAAY,EAAU,WACtB,MAAO,EAAkB,GAAU,OAAO,CAAW,EAAG,CAAe,EAAI,CAC7E,CAAC,IACA,EAGL,IAAM,EAAe,GAAO,SAAW,EAEvC,EAAS,CACP,UAAW,CAAC,GAAgB,CAAC,EAC7B,GAAI,uCAAuC,IAC3C,QAAS,0DAA0D,oBAAwB;AAAA;AAAA;AAAA,4GAI7F,CAAC,EAED,IAAQ,UAAS,aAAY,OAAQ,GAAS,CAC5C,QAAS,GAAgB,EACzB,WAAY,CACd,EAEM,GAAgB,EAClB,GAAU,OAAO,CAAW,EAAG,CAAe,EAC9C,GAAU,EAAa,CAAO,EAOlC,OAJE,GAAe,EACX,GAA0B,EAAY,EAAa,EACnD,GAAiB,CAAE,UAAS,aAAY,MAAK,MAAO,EAAc,CAAC,cAK9D,iBAAgB,CAAC,EAA6B,CACzD,IAAQ,kBAAmB,KAAa,2BAClC,EAAQ,MAAM,EAAe,CAAS,EAE5C,QAAa,YAAY,OAAO,OAAO,CAAK,EAC1C,QAAa,aAAY,WAAU,KAAU,EAAQ,CACnD,IAAM,EAAc,iBAAe,CAAc,EAE3C,EACJ,EAAsB,SAAS,EAAY,KAAK,EAAI,EAAa,EAAW,YAAY,EAIpF,EAAY,CAChB,QAHmB,aAAc,EAAO,EAAK,SAAW,EAAY,YAIpE,aACA,QAAS,YAAa,EAAQ,EAAK,QAAqB,OACxD,IAAK,QAAS,EAAQ,EAAK,IAAmB,MAChD,EAKA,GAHA,EAAgB,IAAI,EAAU,CAAS,EAGnC,YAAa,GAAQ,EAAK,QAAS,CACrC,IAAM,EAAY,EAAsB,SAAS,EAAY,KAAK,EAC9D,GAAG,EAAY,SAAS,EAAK,UAC7B,GAAG,EAAY,SAAS,EAAK,QAAQ,YAAY,IACrD,GAA0B,IAAI,EAAW,CAAU,GAKzD,MAAO,SAGF,gBAAe,CACpB,EAOA,CACA,EAAgB,MAAM,EACtB,GAA0B,MAAM,EAEhC,QAAY,EAAK,KAAU,EAAS,QAAQ,EAAG,CAC7C,IAAM,EACJ,EAAsB,SAAS,EAAM,KAAK,EAAI,EAAM,WAAa,EAAM,WAAW,YAAY,EAE1F,EAAe,aAAc,EAAQ,EAAM,SAAW,EAAM,QAC5D,EAAY,IAAK,EAAO,QAAS,EAAc,WAAY,CAAS,EAI1E,GAFA,EAAgB,IAAI,EAAK,CAAS,EAE9B,EAAM,QAAS,CACjB,IAAM,EAAY,EAAsB,SAAS,EAAM,KAAK,EACxD,GAAG,EAAM,SAAS,EAAM,UACxB,GAAG,EAAM,SAAS,EAAM,QAAQ,YAAY,IAChD,GAA0B,IAAI,EAAW,EAAM,UAAU,GAG7D,MAAO,aAGE,aAAY,EAAG,CACxB,OAAO,EAEX,CAEO,SAAS,EAAmB,CAAC,EAAc,CAChD,IAAM,EAAQ,EAAW,KAAK,CAAE,OAAM,CAAC,EAEvC,OAAO,SAAM,CAAK,EACf,KAAK,QAAM,QAAS,QAAM,SAAU,QAAM,YAAa,QAAM,KAAM,IAAM,EAAM,IAAI,UAAU,CAAC,EAC9F,KAAK,QAAM,SAAU,IAAM,EAAM,IAAI,UAAU,CAAC,EAChD,KAAK,QAAM,UAAW,QAAM,SAAU,QAAM,SAAU,QAAM,kBAAmB,IAAM,EAAM,IAAI,UAAU,CAAC,EAC1G,KAAK,QAAM,UAAW,QAAM,KAAM,IAAM,EAAM,IAAI,CAAC,CAAC,EACpD,KAAK,QAAM,OAAQ,QAAM,OAAQ,IAAM,EAAM,IAAI,QAAQ,CAAC,EAC1D,UAAU,IAAM,EAAM,IAAI,UAAU,CAAC,EAG1C,eAAe,EAAc,EAAG,QAAO,UAAS,UAA+D,CAG7G,IAAM,EAFuB,EAAsB,SAAS,CAAK,EAG7D,GAAG,KAAS,GAAW,IACvB,GAAG,KAAS,GAAW,IAAS,YAAY,EAE1C,EAAS,GAAmB,CAAQ,EAC1C,GAAI,EACF,OAAO,EAGT,GAAI,CAAC,EAAS,CACZ,IAAQ,eAAgB,iBAAe,CAAK,EAC5C,MAAO,CAAE,SAAU,EAAa,WAAY,GAAG,KAAS,GAAU,WAAY,EAGhF,IAAM,EAAY,MAAM,GAAe,CAAE,UAAS,OAAM,CAAC,EAEnD,EAAa,GAAG,KAAS,EAAU,QAAU,GAAU,aAAa,IAW1E,OATA,EAAS,CACP,UAAW,CAAC,EAAE,CAAC,EAAU,QAAU,GACnC,GAAI,6BAA6B,KAAS,IAC1C,QAAS,sCAAsC,KAAS,6CAAmD,wBAA6B,EAAU,YACpJ,CAAC,EAGD,EAAU,QAAU,GAAmB,EAAU,CAAE,SAAU,EAAU,SAAU,YAAW,CAAC,EAEtF,CAAE,SAAU,EAAU,SAAU,YAAW,EAGpD,SAAS,EAAgB,EACvB,aACA,UACA,QACA,OAMC,CAED,OADA,GAAmB,CAAU,EACtB,IAAI,EAAW,CAAE,UAAS,aAAY,MAAK,MAAO,GAAU,EAAO,CAAO,CAAE,CAAC,EAGtF,SAAS,EAAyB,CAAC,EAAoB,EAA0B,EAAG,CAClF,IAAM,EAAQ,EAAW,SAAS,GAAG,EAAK,EAAW,MAAM,GAAG,IAAI,IAAI,YAAY,EAAc,OAC1F,EAAe,EAAQ,GAAU,SAAS,CAAK,EAAI,GAEnD,EAAiB,EAAW,MAAM,EAAG,EAAE,EAAE,SAAS,GAAG,EAAI,IAAM,KAE9D,EAAY,GAAU,EACzB,EAAW,MAAM,GAAG,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,CAAc,EAC1D,EAAW,MAAM,CAAc,EAEnC,GAAI,EAAE,GAAc,GAClB,MAAM,IAAI,EAAa,CAAE,SAAU,mCAAoC,KAAM,CAAE,YAAW,CAAE,CAAC,EAG/F,OAAO,IAAI,EAAW,CACpB,QAAS,EACT,WAAY,GAAG,GAAS,QAAM,aAAa,IAAa,IAAiB,IACzE,MAAO,GAAU,EAAO,CAAC,CAC3B,CAAC,EAGH,eAAe,EAAqB,EAClC,UACA,QACA,kBACA,eAMsB,CACtB,IAAQ,WAAU,cAAe,MAAM,GAAe,CAAE,UAAS,OAAM,CAAC,EAClE,EAAQ,EAAkB,GAAU,OAAO,CAAW,EAAG,CAAe,EAAI,EAClF,OAAO,GAAiB,CAAE,QAAS,EAAU,aAAY,OAAM,CAAC,EAGlE,SAAS,EAAS,CAAC,EAAyB,EAAiB,CAC3D,OAAO,OAAO,IAAU,SAAW,EAAwB,CAAE,cAAe,EAAS,UAAS,OAAM,CAAC,EAAI,EAG3G,SAAS,EAAkB,CAAC,EAA+B,CACzD,IAAM,EAAQ,SAAM,CAAY,EAC7B,KACC,CAAC,KAA6B,UAAW,IAAK,EAAE,QAAU,OAC1D,EAAG,WAAY,CACjB,EACC,UAAU,CAAC,IAAM,CAChB,IAAM,EAAY,EAAiB,EAAwB,KAAK,EAChE,OAAO,EAAU,MAAQ,QAAM,UAAY,EAAU,MACtD,EAGH,GAAI,CAAC,YAAU,SAAS,EAAM,YAAY,CAAU,EAClD,MAAM,IAAI,EAAa,CACrB,SAAU,mCACV,KAAM,CAAE,QAAS,8DAA+D,CAClF,CAAC,EAIL,SAAS,EAAc,CAAC,EAA+B,CAGrD,GAFA,GAAmB,CAAY,EAE3B,UAAW,EAAc,CAC3B,IAAQ,QAAO,WAAY,EAE3B,GAAI,EAAS,CACX,IAAM,EAAY,EAAsB,SAAS,CAAc,EAC3D,GAAG,KAAS,IACZ,GAAG,KAAS,EAAQ,YAAY,IAC9B,EAAa,GAA0B,IAAI,CAAS,EAC1D,GAAI,EAAY,OAAO,EACvB,OAAO,EAGT,OAAO,EAGT,IAAQ,QAAO,UAAW,EAAgB,EAAa,KAAK,EAG5D,OAFsB,GAAa,CAAE,QAAO,QAAO,CAAC,IAAM,SAEnC,EAAQ,EAAa,MAG9C,SAAS,EAA4B,CAAC,EAAoB,EAAsB,EAAuB,CACrG,IAAM,EAAkB,EAAW,MAAM,GAAG,EACtC,EAAkB,EAAgB,IAAI,YAAY,EAClD,EAAe,GAAU,SAAS,CAAe,EAEjD,EAAiB,EAAe,IAAM,KAErC,EAAY,EAAc,IAAM,EACnC,EAAgB,MAAM,CAAC,EAAE,KAAK,GAAG,EAAE,MAAM,CAAc,EACvD,EAAW,MAAM,CAAc,EAEnC,GAAI,EAAE,GAAc,GAClB,MAAM,IAAI,EAAa,CAAE,SAAU,mCAAoC,KAAM,CAAE,YAAW,CAAE,CAAC,EAI/F,IAAQ,SAAQ,WAAY,GAAiB,CAAE,MAAO,EAAqB,OAAQ,CAAY,CAAC,EAC1F,EAAc,GAAG,IAAa,IAAiB,IAErD,MAAO,CAAE,UAAS,MAAO,EAAiB,WAAY,GAAO,cAAa,eAAc,OAAQ,EAAa,QAAO,EAGtH,SAAS,EAAkB,CAAC,EAAoB,CAC9C,IAAM,EAAgB,EAAW,QAAQ,GAAG,EACtC,GAAS,IAAkB,GAAK,EAAa,EAAW,MAAM,EAAG,CAAa,GAAG,YAAY,EAC7F,EAAc,IAAkB,GAAK,EAAa,EAAW,MAAM,EAAgB,CAAC,GAElF,UAAS,UAAW,GAAiB,CAAE,QAAO,OAAQ,CAAY,CAAC,EAEvE,EACJ,GAAI,CACF,EACE,GAAW,YAAU,SAAS,CAAiB,GAAK,cAAW,CAAO,EAAI,cAAW,CAAO,EAAI,EAClG,KAAM,CACN,EAAmB,EAGrB,IAAM,EAAc,EAAmB,GAAG,KAAU,IAAqB,EAEzE,MAAO,CACL,QAAS,EACT,QACA,WAAY,GAAW,CAAE,QAAO,OAAQ,CAAY,CAAC,EACrD,YAAa,GACb,aAAc,GACd,OAAQ,EACR,QACF,EAGF,SAAS,EAAY,CAAC,EAAoB,CACxC,IAAM,EAAkB,EAAW,MAAM,EAAG,EAAE,EACxC,EAAc,EAAgB,SAAS,GAAG,EAC1C,EAAe,EAAgB,SAAS,GAAG,EAEjD,GAAI,GAAe,EACjB,OAAO,GAA6B,EAAY,EAAa,CAAY,EAG3E,OAAO,GAAmB,CAAU,EAGtC,SAAS,EAAwB,CAAC,EAAgB,EAAW,GAAO,CAClE,IAAM,EAAY,EAAW,EAAO,QAAQ,GAAG,EAAI,EAAO,YAAY,GAAG,EAEzE,GAAI,IAAc,GAChB,MAAO,CAAE,QAAS,OAAW,OAAQ,CAAO,EAG9C,IAAM,EAAS,EAAO,MAAM,EAAG,CAAS,EAExC,MAAO,CAAE,QADO,EAAO,MAAM,EAAY,CAAC,EACxB,QAAO,EAG3B,SAAS,EAAgB,EAAG,SAAQ,SAA2C,CAC7E,IAAQ,SAAQ,WAAY,GAAyB,EAAQ,IAAU,QAAM,IAAI,EAIjF,MAAO,CAAE,QAFY,GAAW,CAAC,EAAsB,SAAS,CAAK,EAAI,EAAQ,YAAY,EAAI,EAEjE,QAAO,uKazgBzC,IAAM,GAA+C,CAClD,QAAoB,EACpB,KAAiB,IACjB,QAAoB,CACvB,EASO,SAAS,EAAgB,CAAC,YAAkD,CACjF,IAAM,EAAoB,EAAS,IAAI,gBAAgB,EAEvD,GAAI,GAAqB,EAAkB,KAAe,OACxD,OAAO,EAAkB,GAG3B,OAAO,GAAwB,GAU1B,SAAS,EAAwB,CAAC,YAGvC,CACA,IAAM,EAAa,GAAiB,CAAS,EAIvC,EAAc,IACd,EAAY,OAAO,KAAK,MAAM,EAAa,EAAE,CAAC,EAEpD,MAAO,CAAE,cAAa,WAAU,EAU3B,SAAS,EAA0B,CAAC,EAAe,YAA0C,CAClG,IAAQ,YAAW,eAAgB,GAAyB,CAAS,EACrE,OAAQ,EAAQ,EAAa,EAWxB,SAAS,EAAkB,CAAC,EAAe,YAA0C,EAAQ,GAAe,CACjH,IAAM,EAAa,GAAiB,CAAS,EACvC,EAAS,EAAQ,EACvB,OAAO,EAAQ,KAAK,MAAM,CAAM,EAAI,wCCxE/B,MAAM,UAAsB,CAAkB,CACnD,EAAE,CAAC,EAAyB,CAC1B,OAAO,KAAK,QAAQ,CAAK,QAGpB,WAAU,CAAC,EAAe,EAAkB,CACjD,OAAO,IAAI,EAAc,CAAE,UAAS,MAAO,EAAwB,CAAE,cAAe,EAAS,UAAS,OAAM,CAAC,CAAE,CAAC,EAEpH,yJCZgD,IAAhD,6BAUO,SAAS,EAAoB,CAClC,EACA,EACA,CACA,GAAI,UAAW,EAEb,MADgB,CAAC,GAAG,EAAK,MAAM,EAAG,EAAK,OAAS,CAAC,EAAG,EAAO,KAAK,EAIlE,GAAI,WAAY,EAAQ,CACtB,IAAO,EAAS,EAAS,GAAW,GAAS,EAC7C,MAAO,CAAC,EAAS,EAAS,EAAS,EAAO,OAAQ,CAAK,EAGzD,GAAI,YAAa,EAAQ,CACvB,IAAO,EAAS,GAAW,EAAQ,GAAS,EAC5C,MAAO,CAAC,EAAS,EAAS,EAAO,QAAS,EAAQ,CAAK,EAGzD,OAAO,EAGF,SAAS,EAAsB,EAAE,EAAS,EAAS,EAAS,EAAQ,GAGlD,CACvB,IAAM,EAAY,OAAO,IAAU,SAGnC,GAFoB,OAAO,IAAW,SAGpC,MAAO,KAAK,MAAY,MAAY,KAGtC,MAAO,KAAK,MAAY,MAAY,MAAY,IAAS,EAAY,GAAK,IAAI,MAIzE,SAAS,EAAoB,EAAG,QAAO,QAAO,eAAe,EAAG,QAAgB,CACrF,GAAI,aAAU,SAAS,CAAiB,EAAG,CACzC,GAAI,GAAQ,CAAC,SAAU,SAAS,EAAE,SAAS,CAAI,EAC7C,MAAO,CAAC,GAAI,GAAI,EAAG,CAAK,EAG1B,GAAI,IAAS,aACX,MAAO,CAAC,GAAI,GAAI,EAAO,EAAG,CAAY,EAGxC,OAAO,GAAqB,EAAsB,GAAQ,CAAE,OAAM,CAAC,EAGrE,GAAI,IAAU,SAAM,OAAQ,CAC1B,GAAI,IAAS,UAAW,MAAO,CAAC,GAAI,IAAK,EAAG,CAAK,EACjD,OAAO,GAAqB,EAAsB,GAAQ,CAAE,OAAM,CAAC,EAGrE,IAAM,EAAU,IAAU,SAAM,SAAW,EAAI,EAE/C,OAAQ,OACD,4BACH,MAAO,CAAC,GAAI,EAAS,EAAO,EAAG,CAAY,MACxC,SACH,MAAO,CAAC,GAAI,EAAS,EAAG,EAAG,CAAK,MAC7B,SACH,MAAO,CAAC,GAAI,EAAS,EAAG,EAAG,CAAK,UAEhC,OAAO,GAAqB,EAAsB,GAAQ,CAAE,OAAM,CAAC,GAIlE,SAAS,EAAkB,CAAC,EAAc,CAC/C,IAAO,EAAG,EAAS,GAAW,EAAK,MAAM,GAAG,EAAE,IAAI,CAAC,IAAM,OAAO,SAAS,EAAG,EAAE,CAAC,EAI/E,OAAQ,OACD,IACH,MAAO,aACJ,IACH,MAAO,eAEP,MAAO,UAIN,IAAM,GAAwC,OAAO,KAAK,CAAqB,EAAE,OACtF,CAAC,EAAK,IAAQ,CAEZ,OADA,EAAI,GAAgB,GAAuB,EAAsB,EAAa,EACvE,GAET,CAAC,CACH,yECpG4F,IAA5F,4BACA,yBAEO,SAAS,EAAgB,EAAG,QAAO,UAA4C,CACpF,IAAQ,eAAgB,iBAAe,CAAK,EAE5C,OAAO,SAAM,CAAK,EACf,KACC,GAAG,eACH,QAAM,OACN,IAAM,GAAG,QAAkB,EAAO,WAAW,IAAI,EAAI,EAAO,MAAM,CAAC,EAAI,GACzE,EACC,KACC,GAAG,YACH,GAAG,kBACH,IAAM,GAAG,QAAkB,EAAO,WAAW,IAAI,EAAI,EAAS,KAAK,KACrE,EACC,KAAK,GAAG,aAAY,QAAM,MAAO,QAAM,KAAM,IAAM,GAAG,iBAA2B,EAAO,YAAY,GAAG,EACvG,KAAK,QAAM,KAAM,IAAM,GAAG,UAAoB,GAAQ,EACtD,KAAK,QAAM,OAAQ,IAAM,GAAG,kBAA4B,GAAQ,EAChE,KAAK,QAAM,IAAK,IAAM,GAAG,aAAuB,GAAQ,EACxD,KAAK,QAAM,QAAS,QAAM,IAAK,IAAM,GAAG,QAAkB,GAAQ,EAClE,UAAU,IAAM,EAAE,EAGhB,SAAS,EAAqB,EAAG,QAAO,WAA8C,CAC3F,IAAQ,eAAgB,iBAAe,CAAK,EAE5C,OAAO,SAAM,CAAK,EACf,KAAK,QAAM,OAAQ,QAAM,IAAK,QAAM,MAAO,IAAM,GAAG,aAAuB,GAAS,EACpF,UAAU,IAAM,GAAG,aAAuB,GAAS,kRC9BlB,IAAtC,6BAkBO,SAAS,EAAsB,EAAG,iBAAgB,YAAW,aAAiD,CACnH,IAAM,EAAI,EAAkB,CAAc,EACpC,EAAI,EAAkB,CAAS,EAC/B,EAAI,EAAkB,CAAS,EAE/B,EAAQ,EAAE,IAAI,CAAC,EACf,EAAQ,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EACtB,EAAQ,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EACtB,EAAQ,EAAE,IAAI,CAAC,EACf,EAAQ,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAI5B,OAFkB,EAAM,IAAI,EAAM,IAAI,CAAK,EAAE,IAAI,CAAK,CAAC,EAEtC,IAAI,CAAK,EAGrB,SAAS,EAAuB,EACrC,iBACA,YACA,cACsC,CACtC,IAAM,EAAI,EAAkB,CAAc,EACpC,EAAI,EAAkB,CAAS,EAC/B,EAAI,EAAkB,CAAU,EAEhC,EAAQ,EAAE,IAAI,CAAC,EACf,EAAQ,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EACtB,EAAQ,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EACtB,EAAQ,EAAE,IAAI,CAAC,EACf,EAAY,EAAM,IAAI,EAAM,IAAI,CAAK,EAAE,IAAI,CAAK,CAAC,EACjD,EAAQ,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAE5B,OAAO,EAAU,IAAI,CAAK,EAGrB,SAAS,EAA+B,EAC7C,UACA,YACA,iBACA,aACsD,CACtD,OAAO,GAAuB,CAAE,iBAAgB,YAAW,WAAU,CAAC,EAAE,IAAI,CAAO,EAG9E,SAAS,EAAgC,EAC9C,UACA,aACA,iBACA,aACuD,CACvD,OAAO,GAAwB,CAAE,aAAY,iBAAgB,WAAU,CAAC,EAAE,IAAI,CAAO,EAGvF,SAAS,CAAiB,CAAC,EAAe,CACxC,OAAO,EAAc,WAAW,OAAO,CAAK,EAAG,kBAAe,SAAM,SAAS,EAAE,WAAW,EAGrF,SAAS,EAAqB,EACnC,iBACA,YACA,YACA,cACyD,CACzD,MAAO,CACL,YAAa,EAAkB,CAAU,EAAE,IAAI,CAAc,EAAE,IAAI,CAAS,EAC5E,WAAY,EAAkB,CAAS,EAAE,IAAI,CAAc,EAAE,IAAI,CAAS,CAC5E,EAGK,SAAS,EAAoB,EAClC,iBACA,YACA,YACA,aACA,WAC0E,CAC1E,OAAO,OAAO,YACZ,OAAO,QAAQ,GAAsB,CAAE,aAAY,iBAAgB,YAAW,WAAU,CAAC,CAAC,EAAE,IAAI,EAAE,EAAM,KAAW,CACjH,EACA,EAAM,IAAI,CAAO,CACnB,CAAC,CACH,EAGK,SAAS,EAAqB,EACnC,YACA,YACA,aACA,iBACA,aACA,eACkG,CAClG,IAAM,EAAI,IAAI,EAAc,CAAE,QAAS,EAAG,MAAO,CAAU,CAAC,EACtD,EAAI,IAAI,EAAc,CAAE,QAAS,EAAG,MAAO,CAAW,CAAC,EACvD,EAAI,IAAI,EAAc,CAAE,QAAS,EAAG,MAAO,CAAU,CAAC,EACtD,EAAgB,IAAI,EAAc,CAAE,QAAS,EAAG,MAAO,CAAW,CAAC,EACnE,EAAiB,IAAI,EAAc,CAAE,QAAS,EAAG,MAAO,CAAY,CAAC,EAGrE,EAAK,EAAc,IAAI,CAAC,EACxB,EAAK,EAAe,IAAI,CAAC,EACzB,EAAK,EAAc,IAAI,CAAc,EACrC,EAAK,EAAE,IAAI,CAAC,EACZ,EAAY,EAAE,IAAI,EAAG,IAAI,EAAG,IAAI,EAAG,IAAI,CAAC,CAAC,CAAC,CAAC,EAC3C,EAAc,EAAG,IAAI,EAAG,IAAI,EAAG,IAAI,CAAC,CAAC,CAAC,EACtC,EAAyB,EAAU,IAAI,CAAW,EAClD,EAA0B,EAAkB,CAAc,EAAE,IAAI,CAAsB,EAE5F,GAAI,EAAuB,aAAa,QAAQ,IAAM,EACpD,OAAO,EAAwB,IAAI,CAAC,EAAE,aAAa,QAAQ,EAI7D,IAAM,EAAe,EAAE,IAAI,CAAuB,EAElD,OAAO,EAAwB,IAAI,CAAY,EAAE,aAAa,QAAQ,EAGjE,SAAS,EAAoB,EAAG,aAAY,cAAa,YAAW,cAA0B,CACnG,GAAI,IAAe,KAAO,IAAgB,KAAO,IAAc,KAAO,IAAe,IAAK,MAAO,GAEjG,IAAM,EAAI,EAAkB,CAAS,EAC/B,EAAI,EAAkB,CAAU,EAChC,EAAiB,EAAkB,CAAW,EAC9C,EAAgB,EAAkB,CAAU,EAE5C,EAAY,EAAe,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAa,CAAC,EAC1D,EAAc,EAAE,IAAI,CAAa,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,EAGrD,OAAO,KAAK,IAAI,EAAU,IAAI,CAAW,EAAE,aAAa,QAAQ,CAAC,8TCpJ7C,IAAtB,6BACA,yBAGO,SAAS,EAAsB,EAAG,OAAM,WAA8B,CAC3E,MAAO,GAAG,KAAQ,IAGb,SAAS,EAAgB,EAAG,UAAS,gBAA8B,CACxE,MAAO,eAAsB,KAAW,IAMnC,SAAS,EAAyB,CAAC,EAA+B,CACvE,OAAO,WAAwC,CAAS,EAGnD,SAAS,EAAiB,EAC/B,QACA,SACA,aACG,GACiE,CACpE,IAAM,EAAiB,GAAkB,CAAE,QAAO,QAAO,CAAC,EACpD,EAAc,EAAU,IAAI,KAAa,IAE/C,OAAO,GAAa,UAAuB,IAAiB,IAAe,CAAS,EAM/E,SAAS,EAAkB,EAAG,QAAO,SAAQ,SAAQ,cAAa,eAA+B,CACtG,IAAM,EAAkB,IAAU,OAAS,IAAW,MAAQ,GAAG,KAAU,EAAO,MAAM,EAAE,IAAM,EAC1F,EAAa,EAAc,IAAI,IAAgB,GAErD,MAAO,UAAwB,KAAS,KAAmB,IAAc,IAGpE,SAAS,EAA0B,EAAG,iBAAgB,GAAqD,CAChH,OAAO,GAAa,cAAiC,IAAe,CAAS,EAMxE,SAAS,EAAsB,EAAG,OAAM,QAAO,UAAS,SAA6B,CAC1F,IAAM,EAAW,UAA6B,KAAQ,KAAS,IACzD,EAA8B,EAAQ,IAAI,IAAU,GAE1D,MAAO,GAAG,IAAW,IAGhB,SAAS,EAAoC,EAClD,OACA,QACA,QACA,SACA,SAC+B,CAC/B,MAAO,UAA6B,KAAQ,KAAS,KAAU,KAAS,IAGnE,SAAS,EAAkB,CAAC,GAAgC,WAA+C,CAChH,MAAO,GAAG,KAAY,IAGjB,SAAS,EAAkB,CAChC,GACE,gBAAe,GACjB,CACA,IAAM,EAAM,EAAa,IAAI,IAAe,GACtC,EAAW,GAAG,IAAW,IAE/B,OAAO,GAAa,GAAG,IAAY,CAAS,EAM9C,SAAS,EAAY,CAAC,GAAgB,mBAAkB,wBAA4C,CAAC,EAAG,CACtG,IAAM,EAAiB,GAAG,IAAO,EAAmB,IAAI,KAAoB,GAAwB,IAAM,KAE1G,OAAO,EAAe,SAAS,GAAG,EAAI,EAAe,MAAM,EAAG,EAAE,EAAI,EAGtE,SAAS,EAAiB,EAAG,QAAO,UAA4C,CAC9E,OAAO,SAAM,CAAK,EACf,KAAK,SAAM,QAAS,SAAM,SAAU,SAAM,SAAU,IAAM,EAAM,MAAM,EAAG,CAAC,EAAE,YAAY,CAAC,EACzF,KAAK,SAAM,YAAa,IAAM,GAAG,EACjC,UAAU,IAAM,GAAG,KAAS,GAAQ,gXC5FE,IAA3C,6BAuBO,SAAS,EAAc,EAAG,CAC/B,OAAO,OAAO,OAAO,SAAa,IAG7B,SAAS,EAAU,CAAC,EAA4B,CACrD,OAAO,GAAmB,EAAE,SAAS,CAAY,EAG5C,SAAS,EAAkB,EAAG,CACnC,IAAM,EAAkB,QAAQ,UAAY,CAAC,OAAO,UAAU,cACxD,EAAc,QAAQ,MAAQ,QAAQ,UAAU,QAChD,EAAkB,QAAQ,SAC1B,EAAe,QAAQ,UAAU,cACjC,EAAe,QAAQ,UAAU,SAAW,QAAQ,YACpD,EACH,QAAQ,UAAU,oBAAsB,QAAQ,UAAU,kBAAkB,kBAC7E,QAAQ,wBACJ,EAAgB,QAAQ,SAAS,SACjC,EAAgB,QAAQ,SAAS,SAEjC,EAAU,CAAC,EACjB,GAAI,EAAiB,EAAQ,eAA0B,EACvD,GAAI,EAAa,EAAQ,WAAsB,EAC/C,GAAI,EAAiB,EAAQ,eAA0B,EACvD,GAAI,EAAc,EAAQ,YAAuB,EACjD,GAAI,EAAc,EAAQ,sBAAiC,EAC3D,GAAI,EAAiB,EAAQ,mBAA8B,EAC3D,GAAI,GAAiB,EAAG,EAAQ,iBAA4B,EAC5D,GAAI,EAAe,EAAQ,aAAwB,EACnD,GAAI,EAAe,EAAQ,aAAwB,EAEnD,OAAO,EAGT,eAAsB,EAAsB,CAAC,EAA2B,EAAc,EAA+B,CACnH,IAAM,EAAc,kBAAe,CAAK,EAExC,GAAI,CACF,MAAM,GAAgB,CACpB,OAAQ,6BACR,OAAQ,CAAC,CAAE,QAAS,EAAY,UAAW,CAAC,EAC5C,UACF,CAAC,EACD,MAAO,EAAO,CACd,GAAI,CAAC,EACH,MAAM,IAAI,EAAa,mCAAoC,CACzD,MAAO,EACP,OAAQ,4BACV,CAAC,EAEH,MAAM,GAAoB,EAAU,CAAa,GAI9C,SAAS,EAAyC,EACvD,SACA,kBACA,cAKC,CACD,IAAM,EAAY,EAAO,OAAO,CAAC,IAAU,CAAC,GAAS,EAAgB,SAAS,CAAK,CAAC,EAEpF,GAAI,EAAU,SAAW,EACvB,MAAM,IAAI,EAAa,6BAA8B,CAAE,MAAO,EAAO,KAAK,IAAI,EAAG,OAAQ,CAAW,CAAC,EAGvG,IAAM,EAAc,EAAO,OAAO,CAAC,IAAU,CAAC,EAAgB,SAAS,CAAK,CAAC,EAU7E,OARA,EAAS,CACP,UAAW,EAAY,OAAS,EAChC,GAAI,8BAA8B,IAClC,QAAS,GAAG,mDAA4D,EAAY,KAClF,IACF,kCACF,CAAC,EAEM,EAGF,SAAS,EAA8D,CAC5E,EACA,EACA,EACA,CACA,MAAQ,UAAU,IAAgB,CAChC,IAAQ,cAAe,kBAAe,CAAK,EAC3C,IAAK,MAAM,EAAS,WAAW,GAAG,QAAQ,SAAS,IAAM,EACvD,OAAO,EAAK,GAAG,CAAI,EAErB,GAAI,CACF,MAAM,GAAuB,EAAU,CAAK,EAC5C,MAAO,EAAO,CACd,MAAM,IAAI,EAAa,CAAE,SAAU,mCAAoC,KAAM,CAAE,OAAM,CAAE,CAAC,EAE1F,OAAO,EAAK,GAAG,CAAI,GAIhB,SAAS,EAA0E,EACxF,UACA,QACA,WAAW,OAAO,SAClB,cAAc,CAAC,GAMd,CAkBD,IAAM,EAjBgB,CACpB,GAAG,EACH,UACA,iBACA,OACA,kBACA,WACA,aACA,iBACA,yBACA,aACA,uBACA,eACA,mBACA,oBACA,wBACF,EACqC,OAAO,CAAC,EAAQ,IAAe,CAClE,GAAI,CAAC,EAAQ,GAAa,OAAO,EAEjC,IAAM,EAAS,EAAQ,GAEvB,GAAI,OAAO,IAAW,WAAY,OAAO,EAGzC,IAAM,EAAgB,GAA4B,EAAQ,EAAU,CAAK,EAGzE,MAAO,IAAK,GAAS,GAAa,CAAc,GAC/C,CAAC,CAAC,EAEL,MAAO,IAAK,KAAY,CAAe,EAGlC,SAAS,EAAmB,CAAC,EAA2B,EAA8B,CAC3F,OAAO,GAAgB,CAAE,OAAQ,0BAA2B,OAAQ,CAAC,CAAa,EAAG,UAAS,CAAC,EAG1F,SAAS,EAA0B,CAAC,EAAsB,CAC/D,OAAO,UAAU,GAAG,kBAAmB,IAAM,EAAS,CAAC,EACvD,OAAO,MAAM,SAAS,GAAG,kBAAmB,IAAM,EAAS,CAAC,EAGvD,SAAS,EAAmB,EAAG,CACpC,IAAQ,UAAS,gBAAe,UAAS,qBAAoB,oBAAqB,QAAQ,UAAY,CAAC,EACvG,GAAI,EAAS,wBACb,GAAI,EAAe,cACnB,GAAI,GAAsB,GAAkB,iBAAkB,qBAC9D,GAAI,EAAS,aACb,GAAI,QAAQ,SAAS,SAAU,eAC/B,iBAGK,SAAS,EAAiB,EAAG,CAClC,IAAM,EAA+B,CAAC,EAEtC,SAAS,CAAc,CAAC,EAAqC,CAC3D,GAAI,EAAU,IAAI,CAAC,IAAM,EAAE,KAAK,IAAI,EAAE,SAAS,EAAM,OAAO,KAAK,IAAI,EAAG,OACxE,EAAU,KAAK,EAAM,MAAM,EAG7B,OAAO,iBAAiB,2BAA4B,CAAc,EAClE,OAAO,cAAc,IAAI,MAAM,yBAAyB,CAAC,EAEzD,SAAS,CAA0B,EAAG,CACpC,OAAO,oBAAoB,2BAA4B,CAAc,EAGvE,MAAO,CAAE,YAAW,4BAA2B,EAG1C,SAAS,EAAgB,EAAG,CACjC,IAAM,EAAK,UAAU,UACf,EAAQ,wBAAwB,KAAK,CAAE,EACvC,EAAY,8BAA8B,KAAK,CAAE,EACjD,EAAW,GAAS,EACpB,EAAU,SAAS,KAAK,CAAE,EAEhC,OAAO,GAAY,EAGd,SAAS,EAAe,EAC7B,WACA,SACA,UAUC,CACD,GAAI,CAAC,GAAU,KACb,MAAM,IAAI,EAAa,4BAA4B,EAGrD,IAAM,EAAiB,EAAU,MAAM,QAAQ,CAAM,EAAI,EAAS,CAAC,CAAM,EAAK,CAAC,EAC/E,OAAO,EAAS,KAAK,EAAQ,CAAc",
28
- "debugId": "2799ED91CBCBBF1864756E2164756E21",
27
+ "mappings": "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",
28
+ "debugId": "DFC11C4C04063E7664756E2164756E21",
29
29
  "names": []
30
30
  }