@opexa/portal-sdk 0.59.49 → 0.59.51

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/sdk/object-type.ts","../src/utils/clone-date.ts","../src/utils/add-minutes.ts","../src/utils/is-after.ts","../src/utils/cache.ts","../src/utils/clamp.ts","../src/utils/sha256.ts","../src/utils/add-days.ts","../src/utils/sub-minutes.ts","../src/sdk/ad-manager.ts","../src/utils/add-hours.ts","../src/sdk/utils.ts","../src/sdk/cellexpert-manager.ts","../src/sdk/logger.ts","../src/utils/sleep.ts","../src/utils/pollable.ts","../src/sdk/session-manager.ts","../src/sdk/session-manager-cookie.ts","../src/utils/compact.ts","../src/utils/invariant.ts","../src/utils/parse-decimal.ts","../src/sdk/transformer.ts","../src/sdk/sdk.ts"],"names":["now","res","o","res0"],"mappings":"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","file":"index.js","sourcesContent":["/*\r\n * ref: https://github.com/HighOutputVentures/opexa/blob/main/libs/shared/src/libs/object-type.ts\r\n */\r\n\r\nexport const ObjectType = {\r\n\tAccount: 8,\r\n\tDeposit: 9,\r\n\tWithdrawal: 14,\r\n\tVerification: 15,\r\n\tFile: 16,\r\n\tGame: 203,\r\n\tGameSession: 204,\r\n\tMayaSession: 230,\r\n};\r\n","export function cloneDate(date: Date) {\r\n\treturn new Date(date.getTime());\r\n}\r\n","import { cloneDate } from './clone-date.js';\r\n\r\nexport function addMinutes(date: Date, minutes: number): Date {\r\n\tconst result = cloneDate(date);\r\n\tresult.setMinutes(result.getMinutes() + minutes);\r\n\treturn result;\r\n}\r\n","/**\r\n * is `date1` after `date2`?\r\n */\r\nexport function isAfter(date1: Date, date2: Date) {\r\n\treturn date1.getTime() > date2.getTime();\r\n}\r\n","import { addMinutes } from './add-minutes.js';\r\nimport { isAfter } from './is-after.js';\r\n\r\ninterface CacheValue<T> {\r\n\tvalue: T;\r\n\tvalidUntil: Date;\r\n}\r\n\r\ninterface CacheConfig {\r\n\t/**\r\n\t * @description The number in minutes the cache is valid\r\n\t * @default 5\r\n\t */\r\n\tcacheTime: number;\r\n}\r\n\r\nexport class Cache<T = unknown> {\r\n\tprivate config: CacheConfig;\r\n\tprivate cache: Record<string, CacheValue<T>>;\r\n\r\n\tconstructor(config?: CacheConfig) {\r\n\t\tthis.cache = {};\r\n\t\tthis.config = {\r\n\t\t\tcacheTime: 5,\r\n\t\t\t...config,\r\n\t\t};\r\n\t}\r\n\r\n\tset(key: string, value: T) {\r\n\t\tconst validUntil = addMinutes(new Date(), this.config.cacheTime);\r\n\r\n\t\tthis.cache[key] = {\r\n\t\t\tvalue,\r\n\t\t\tvalidUntil,\r\n\t\t};\r\n\t}\r\n\r\n\tget<V = never>(key: string): [V] extends [never] ? T | null : V | null {\r\n\t\tconst o = this.cache[key];\r\n\t\tif (!o) return null;\r\n\t\tif (isAfter(new Date(), o.validUntil)) return null;\r\n\t\treturn o.value as any;\r\n\t}\r\n}\r\n","export function clamp(value: number, min: number, max: number) {\r\n\tif (value < min) return min;\r\n\tif (value > max) return max;\r\n\treturn value;\r\n}\r\n","export async function sha256(input: string) {\r\n\tconst msgUint8 = new TextEncoder().encode(input);\r\n\tconst hashBuffer = await crypto.subtle.digest('SHA-256', msgUint8);\r\n\tconst hashArray = Array.from(new Uint8Array(hashBuffer));\r\n\tconst hashHex = hashArray\r\n\t\t.map((b) => b.toString(16).padStart(2, '0'))\r\n\t\t.join('');\r\n\treturn hashHex;\r\n}\r\n","import { cloneDate } from './clone-date.js';\r\n\r\nexport function addDays(date: Date, days: number) {\r\n\tconst result = cloneDate(date);\r\n\tresult.setDate(result.getDate() + days);\r\n\treturn result;\r\n}\r\n","import { cloneDate } from './clone-date.js';\r\n\r\nexport function subMinutes(date: Date, minutes: number) {\r\n\tconst result = cloneDate(date);\r\n\tresult.setMinutes(result.getMinutes() - minutes);\r\n\treturn result;\r\n}\r\n","import { addDays } from '../utils/add-days.js';\r\nimport { isAfter } from '../utils/is-after.js';\r\nimport { subMinutes } from '../utils/sub-minutes.js';\r\nimport type { Logger } from './logger.js';\r\n\r\nconst AD_CLICK_ID_STORAGE_KEY = 'sdk/ad-click-id';\r\nconst FBP_STORAGE_KEY = 'sdk/fbp';\r\n\r\ninterface AdManagerConfig {\r\n\tlogger: Logger;\r\n}\r\n\r\nexport class AdManager {\r\n\tprivate logger: Logger;\r\n\r\n\tconstructor(config: AdManagerConfig) {\r\n\t\tthis.logger = config.logger;\r\n\t}\r\n\r\n\tset clickId(value: string | null) {\r\n\t\tif (this.isServer) {\r\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (value === null) {\r\n\t\t\tlocalStorage.removeItem(AD_CLICK_ID_STORAGE_KEY);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst n = new Date();\r\n\t\tconst o = JSON.stringify({\r\n\t\t\tvalue,\r\n\t\t\texpiresAt: subMinutes(addDays(n, 90), 2).getTime(),\r\n\t\t});\r\n\r\n\t\tlocalStorage.setItem(AD_CLICK_ID_STORAGE_KEY, o);\r\n\t}\r\n\r\n\tget clickId(): string | null {\r\n\t\tif (this.isServer) {\r\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\tconst v = localStorage.getItem(AD_CLICK_ID_STORAGE_KEY);\r\n\r\n\t\tif (!v) return null;\r\n\r\n\t\ttry {\r\n\t\t\tconst o = JSON.parse(v);\r\n\r\n\t\t\tif (!o.value) return null;\r\n\t\t\tif (!o.expiresAt) return null;\r\n\r\n\t\t\tconst d = new Date(o.expiresAt);\r\n\t\t\tconst n = new Date();\r\n\r\n\t\t\tif (isAfter(n, d)) {\r\n\t\t\t\tlocalStorage.removeItem(AD_CLICK_ID_STORAGE_KEY);\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\r\n\t\t\treturn o.value;\r\n\t\t} catch {\r\n\t\t\tlocalStorage.removeItem(AD_CLICK_ID_STORAGE_KEY);\r\n\t\t\treturn null;\r\n\t\t}\r\n\t}\r\n\r\n\tset fbp(value: string | null) {\r\n\t\tif (this.isServer) {\r\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (value === null) {\r\n\t\t\tlocalStorage.removeItem(FBP_STORAGE_KEY);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst n = new Date();\r\n\t\tconst o = JSON.stringify({\r\n\t\t\tvalue,\r\n\t\t\texpiresAt: subMinutes(addDays(n, 90), 2).getTime(),\r\n\t\t});\r\n\r\n\t\tlocalStorage.setItem(FBP_STORAGE_KEY, o);\r\n\t}\r\n\r\n\tget fbp(): string | null {\r\n\t\tif (this.isServer) {\r\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\tconst v = localStorage.getItem(FBP_STORAGE_KEY);\r\n\r\n\t\tif (!v) return null;\r\n\r\n\t\ttry {\r\n\t\t\tconst o = JSON.parse(v);\r\n\r\n\t\t\tif (!o.value) return null;\r\n\t\t\tif (!o.expiresAt) return null;\r\n\r\n\t\t\tconst d = new Date(o.expiresAt);\r\n\t\t\tconst n = new Date();\r\n\r\n\t\t\tif (isAfter(n, d)) {\r\n\t\t\t\tlocalStorage.removeItem(FBP_STORAGE_KEY);\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\r\n\t\t\treturn o.value;\r\n\t\t} catch {\r\n\t\t\tlocalStorage.removeItem(FBP_STORAGE_KEY);\r\n\t\t\treturn null;\r\n\t\t}\r\n\t}\r\n\r\n\tprivate get isServer() {\r\n\t\treturn typeof window === 'undefined';\r\n\t}\r\n}\r\n","import { cloneDate } from './clone-date.js';\r\n\r\nexport function addHours(date: Date, hours: number): Date {\r\n\tconst result = cloneDate(date);\r\n\tresult.setHours(result.getHours() + hours);\r\n\treturn result;\r\n}\r\n","import { Thumbmark } from '@thumbmarkjs/thumbmarkjs';\r\nimport type { Currency, Environment, Locale } from './types.js';\r\n\r\nexport function getLocaleByCurrency(currency: Currency): Locale {\r\n\tif (currency === 'INR') return 'en-IN';\r\n\tif (currency === 'MYR') return 'en-MY';\r\n\tif (currency === 'IDR') return 'en-ID';\r\n\tif (currency === 'USD') return 'en-US';\r\n\treturn 'en-PH';\r\n}\r\n\r\n/*\r\n * +63 (Philippines)\r\n * +91 (India)\r\n * +60 (Malaysia)\r\n * +62 (Indonesia)\r\n * +1 (UnitedStates)\r\n */\r\nexport function getAreaCodeByLocale(locale: Locale) {\r\n\tif (locale === 'en-IN') return '+91';\r\n\tif (locale === 'en-MY') return '+60';\r\n\tif (locale === 'en-ID') return '+62';\r\n\tif (locale === 'en-US') return '+1';\r\n\treturn '+63';\r\n}\r\n\r\n/**\r\n * @description Ensures mobile number has complete area code\r\n * @example\r\n * ```ts\r\n * addAreaCode('9190010001', 'en-PH'); // +639190010001\r\n * addAreaCode('09190010001', 'en-PH'); // +639190010001\r\n * addAreaCode('639190010001', 'en-PH'); // +639190010001\r\n * addAreaCode('+639190010001', 'en-PH'); // +639190010001\r\n * ```\r\n */\r\nexport function addAreaCode(mobileNumber: string, locale: Locale) {\r\n\tconst areaCode = getAreaCodeByLocale(locale);\r\n\r\n\t/* starts with area code */\r\n\tif (mobileNumber.startsWith(areaCode)) return mobileNumber;\r\n\t/* starts with area code without \"+\" */\r\n\tif (mobileNumber.startsWith(areaCode.substring(1))) return `+${mobileNumber}`;\r\n\t/* starts with zero */\r\n\tif (mobileNumber.startsWith('0'))\r\n\t\treturn `${areaCode}${mobileNumber.substring(1)}`;\r\n\r\n\treturn `${areaCode}${mobileNumber}`;\r\n}\r\n\r\nexport function parseFbCxd(input: string) {\r\n\tconst fbMatch = input.match(/(\\d+_\\d+).*fb\\./);\r\n\tif (!fbMatch) return null;\r\n\r\n\tconst cxd = fbMatch[1];\r\n\tconst fbAdditionalCxd = input.split(cxd)[1].slice(1); // remove the first char after cxd if separator exists\r\n\r\n\treturn { cxd, fbAdditionalCxd };\r\n}\r\n\r\nlet thumbmark_instance: Thumbmark;\r\n\r\nexport async function getFingerprint(environment: Environment) {\r\n\tif (typeof window === 'undefined') return null;\r\n\r\n\tif (!thumbmark_instance) {\r\n\t\tthumbmark_instance = new Thumbmark({\r\n\t\t\tapi_key:\r\n\t\t\t\tenvironment === 'production'\r\n\t\t\t\t\t? '8294c227c5194f96e4deb022e8e76293'\r\n\t\t\t\t\t: undefined,\r\n\t\t\tlogging: false,\r\n\t\t\ttimeout: 30000,\r\n\t\t\tcache_lifetime_in_ms: 1 * 60 * 60 * 1000 /* 1h */,\r\n\t\t});\r\n\t}\r\n\r\n\ttry {\r\n\t\tconst cached = sessionStorage.getItem('fingerprint');\r\n\t\tif (cached) return cached;\r\n\t\tconst result = await thumbmark_instance.get();\r\n\t\tsessionStorage.setItem('fingerprint', result.thumbmark);\r\n\t\treturn result.thumbmark;\r\n\t} catch {\r\n\t\treturn null;\r\n\t}\r\n}\r\n\r\nexport function getCookie(name: string): string | null {\r\n\tif (typeof document === 'undefined') return null;\r\n\r\n\tconst nameLenPlus = name.length + 1;\r\n\treturn (\r\n\t\tdocument.cookie\r\n\t\t\t.split(';')\r\n\t\t\t.map((c) => c.trim())\r\n\t\t\t.filter((cookie) => {\r\n\t\t\t\treturn cookie.substring(0, nameLenPlus) === `${name}=`;\r\n\t\t\t})\r\n\t\t\t.map((cookie) => {\r\n\t\t\t\treturn decodeURIComponent(cookie.substring(nameLenPlus));\r\n\t\t\t})[0] || null\r\n\t);\r\n}\r\n","import { addHours } from '../utils/add-hours.js';\r\nimport { isAfter } from '../utils/is-after.js';\r\nimport { subMinutes } from '../utils/sub-minutes.js';\r\nimport type { Logger } from './logger.js';\r\nimport { parseFbCxd } from './utils.js';\r\n\r\nconst CXD_STORAGE_KEY = 'sdk/cxd';\r\n\r\ninterface CellexpertConfig {\r\n\tlogger: Logger;\r\n}\r\n\r\nexport class CellexpertManager {\r\n\tprivate logger: Logger;\r\n\r\n\tconstructor(config: CellexpertConfig) {\r\n\t\tthis.logger = config.logger;\r\n\t}\r\n\r\n\tset cxd(value: string | null) {\r\n\t\tif (this.isServer) {\r\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (value === null) {\r\n\t\t\tlocalStorage.removeItem(CXD_STORAGE_KEY);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst oldValue = localStorage.getItem(CXD_STORAGE_KEY) ?? '';\r\n\r\n\t\tif (value === oldValue) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst n = new Date();\r\n\t\tconst o = JSON.stringify({\r\n\t\t\tvalue: parseFbCxd(value)?.cxd ?? value,\r\n\t\t\texpiresAt: subMinutes(addHours(n, 6), 2).getTime(),\r\n\t\t});\r\n\r\n\t\tlocalStorage.setItem(CXD_STORAGE_KEY, o);\r\n\t}\r\n\r\n\tget cxd(): string | null {\r\n\t\tif (this.isServer) {\r\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\tconst v = localStorage.getItem(CXD_STORAGE_KEY);\r\n\r\n\t\tif (!v) return null;\r\n\r\n\t\ttry {\r\n\t\t\tconst o = JSON.parse(v);\r\n\r\n\t\t\tif (!o.value) return null;\r\n\t\t\tif (!o.expiresAt) return null;\r\n\r\n\t\t\tconst d = new Date(o.expiresAt);\r\n\t\t\tconst n = new Date();\r\n\r\n\t\t\tif (isAfter(n, d)) {\r\n\t\t\t\tlocalStorage.removeItem(CXD_STORAGE_KEY);\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\r\n\t\t\treturn o.value;\r\n\t\t} catch {\r\n\t\t\tlocalStorage.removeItem(CXD_STORAGE_KEY);\r\n\t\t\treturn null;\r\n\t\t}\r\n\t}\r\n\r\n\tprivate get isServer() {\r\n\t\treturn typeof window === 'undefined';\r\n\t}\r\n}\r\n","interface LoggerConfig {\r\n\t/**\r\n\t * @default true\r\n\t */\r\n\tenabled?: boolean;\r\n}\r\n\r\nexport class Logger {\r\n\tprivate enabled: boolean;\r\n\r\n\tconstructor(config?: LoggerConfig) {\r\n\t\tthis.enabled = config?.enabled ?? true;\r\n\t}\r\n\r\n\tinfo(message: string) {\r\n\t\tif (this.enabled) console.log(`\\x1b[34m[info] ${message}`);\r\n\t}\r\n\r\n\twarn(message: string) {\r\n\t\tif (this.enabled) console.log(`\\x1b[33m[warn] ${message}`);\r\n\t}\r\n\r\n\terror(message: string) {\r\n\t\tif (this.enabled) console.log(`\\x1b[31m[error] ${message}`);\r\n\t}\r\n\r\n\tsuccess(message: string) {\r\n\t\tif (this.enabled) console.log(`\\x1b[32m[success] ${message}`);\r\n\t}\r\n}\r\n","export function sleep(ms: number) {\r\n\treturn new Promise<void>((resolve) => {\r\n\t\tsetTimeout(resolve, ms);\r\n\t});\r\n}\r\n","import { sleep } from './sleep.js';\r\n\r\ninterface Config<T> {\r\n\tuntil(response: T): boolean;\r\n\t/**\r\n\t * @default 1000\r\n\t */\r\n\tinterval?: number;\r\n\t/**\r\n\t * @default 3\r\n\t */\r\n\tmaxAttempt?: number;\r\n}\r\n\r\n/**\r\n * @example\r\n * ```ts\r\n * const poll = pollable(\r\n * fn,\r\n * {\r\n * until: (r) => r.ok,\r\n * interval: 1000,\r\n * maxAttempt: 5,\r\n * }\r\n * );\r\n *\r\n * poll()\r\n * ```\r\n */\r\nexport function pollable<Return, Args = never>(\r\n\tfunc: (...args: Args[]) => Promise<Return>,\r\n\tconfig: Config<Return>,\r\n) {\r\n\tconst {\r\n\t\tuntil,\r\n\t\tinterval = 1000,\r\n\t\tmaxAttempt = 3,\r\n\t\t/**/\r\n\t} = config;\r\n\r\n\tasync function repeater(args: Args[], max?: number) {\r\n\t\tconst m = max ?? maxAttempt;\r\n\t\tconst r = await func(...args);\r\n\t\tconst k = until(r);\r\n\r\n\t\tif (k) return r;\r\n\r\n\t\tif (m > 1) {\r\n\t\t\tawait sleep(interval * ((maxAttempt - m) / 2));\r\n\t\t\treturn repeater(args, m - 1);\r\n\t\t}\r\n\r\n\t\treturn r;\r\n\t}\r\n\r\n\treturn async (...args: Args[]): Promise<Return> => {\r\n\t\treturn await repeater(args);\r\n\t};\r\n}\r\n","import type { AuthService, WalletService } from '../services/index.js';\r\nimport type { OperationResult } from '../types/index.js';\r\nimport { addDays } from '../utils/add-days.js';\r\nimport { addMinutes } from '../utils/add-minutes.js';\r\nimport { isAfter } from '../utils/is-after.js';\r\nimport { pollable } from '../utils/pollable.js';\r\nimport { sleep } from '../utils/sleep.js';\r\nimport { subMinutes } from '../utils/sub-minutes.js';\r\nimport type { Logger } from './logger.js';\r\nimport type {\r\n\tAuthenticateError,\r\n\tAuthenticateInput,\r\n\tAuthenticator,\r\n\tRefreshSessionError,\r\n\tSession,\r\n\tSignInError,\r\n\tSignInInput,\r\n} from './types.js';\r\n\r\ninterface Data {\r\n\tsession: Session;\r\n\taccessToken: string;\r\n\taccessTokenExpiresAt: number;\r\n\trefreshToken: string;\r\n\trefreshTokenExpiresAt: number;\r\n}\r\n\r\ninterface SessionManagerConfig {\r\n\tlogger: Logger;\r\n\tauthService: AuthService;\r\n\twalletService: WalletService;\r\n\tsessionPrefix?: string;\r\n}\r\n\r\nexport class SessionManager {\r\n\tprivate logger: Logger;\r\n\tprivate storageKey = 'session';\r\n\tprivate platformStorageKey = 'session/platform';\r\n\tprivate authService: AuthService;\r\n\tprivate walletService: WalletService;\r\n\tprivate _refreshing = false;\r\n\r\n\tconstructor(config: SessionManagerConfig) {\r\n\t\tthis.authService = config.authService;\r\n\t\tthis.walletService = config.walletService;\r\n\t\tthis.logger = config.logger;\r\n\t\tif (config.sessionPrefix) {\r\n\t\t\tthis.storageKey = `${config.sessionPrefix}/${this.storageKey}`;\r\n\t\t\tthis.platformStorageKey = `${config.sessionPrefix}/${this.platformStorageKey}`;\r\n\t\t}\r\n\t}\r\n\r\n\tget refreshing() {\r\n\t\treturn this._refreshing;\r\n\t}\r\n\r\n\tset refreshing(value: boolean) {\r\n\t\tthis._refreshing = value;\r\n\t}\r\n\r\n\tasync create(\r\n\t\tinput: SignInInput,\r\n\t): Promise<\r\n\t\tOperationResult<SignInError, { authenticator: Authenticator } | null>\r\n\t> {\r\n\t\tif (this.isServer) {\r\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\r\n\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: {\r\n\t\t\t\t\tname: 'UnknownError',\r\n\t\t\t\t\tmessage: 'Server sign in is not supported.',\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\t/*\r\n\t\t * Maya Sign In\r\n\t\t */\r\n\t\tif (input.type === 'MAYA') {\r\n\t\t\tlocalStorage.setItem(this.platformStorageKey, 'MAYA');\r\n\r\n\t\t\tconst f0 = () => this.walletService.mayaSession({ id: input.sessionId });\r\n\t\t\tconst r0 = await pollable(f0, {\r\n\t\t\t\tuntil: (r) => r.ok && r.data?.member != null,\r\n\t\t\t\tinterval: 1000,\r\n\t\t\t\tmaxAttempt: 5,\r\n\t\t\t})();\r\n\r\n\t\t\tif (!r0.ok) return r0;\r\n\t\t\tif (!r0.data?.member) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: false,\r\n\t\t\t\t\terror: {\r\n\t\t\t\t\t\tname: 'HttpForbidden',\r\n\t\t\t\t\t\tmessage: 'Forbidden',\r\n\t\t\t\t\t},\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\tconst f1 = () => this.authService.createSession(input);\r\n\t\t\tconst r1 = await pollable(f1, {\r\n\t\t\t\tuntil: (r) => r.ok,\r\n\t\t\t\tinterval: 1000,\r\n\t\t\t\tmaxAttempt: 5,\r\n\t\t\t})();\r\n\r\n\t\t\tif (!r1.ok) return r1;\r\n\r\n\t\t\tconst now = new Date();\r\n\r\n\t\t\tlocalStorage.setItem(\r\n\t\t\t\tthis.storageKey,\r\n\t\t\t\tJSON.stringify({\r\n\t\t\t\t\t...r1.data,\r\n\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\r\n\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t\t}),\r\n\t\t\t);\r\n\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: null,\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\t/*\r\n\t\t * Mobile Number Sign In\r\n\t\t */\r\n\t\tif (input.type === 'MOBILE_NUMBER') {\r\n\t\t\tconst res = await this.authService.createSession(input);\r\n\r\n\t\t\tif (res.ok) {\r\n\t\t\t\tconst now = new Date();\r\n\r\n\t\t\t\tlocalStorage.setItem(\r\n\t\t\t\t\tthis.storageKey,\r\n\t\t\t\t\tJSON.stringify({\r\n\t\t\t\t\t\t...res.data,\r\n\t\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\r\n\t\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t\t\t}),\r\n\t\t\t\t);\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: true,\r\n\t\t\t\t\tdata: null,\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\treturn res;\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Token sign up (for 3rd party sign in)\r\n\t\t */\r\n\t\tif (input.type === 'SOCIALS' || input.type === 'TOKEN') {\r\n\t\t\tconst res = await this.authService.createSession({\r\n\t\t\t\ttype: 'SOCIALS',\r\n\t\t\t\ttoken: input.token,\r\n\t\t\t\tchannel: input.channel,\r\n\t\t\t});\r\n\r\n\t\t\tif (res.ok) {\r\n\t\t\t\tconst now = new Date();\r\n\r\n\t\t\t\tlocalStorage.setItem(\r\n\t\t\t\t\tthis.storageKey,\r\n\t\t\t\t\tJSON.stringify({\r\n\t\t\t\t\t\t...res.data,\r\n\t\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\r\n\t\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t\t\t}),\r\n\t\t\t\t);\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: true,\r\n\t\t\t\t\tdata: null,\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\treturn res;\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Cabinet sign in\r\n\t\t */\r\n\t\tif (input.type === 'CABINET') {\r\n\t\t\tlocalStorage.setItem(this.platformStorageKey, 'CABINET');\r\n\r\n\t\t\tconst res = await this.authService.createSession(input);\r\n\r\n\t\t\tif (res.ok) {\r\n\t\t\t\tconst now = new Date();\r\n\r\n\t\t\t\tlocalStorage.setItem(\r\n\t\t\t\t\tthis.storageKey,\r\n\t\t\t\t\tJSON.stringify({\r\n\t\t\t\t\t\t...res.data,\r\n\t\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\r\n\t\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t\t\t}),\r\n\t\t\t\t);\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: true,\r\n\t\t\t\t\tdata: null,\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\treturn res;\r\n\t\t}\r\n\r\n\t\t/*\r\n\t\t * Name and Password Sign In\r\n\t\t */\r\n\t\tconst res = await this.authService.createSession(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\t/*\r\n\t\t * 2FA enabled\r\n\t\t */\r\n\t\tif (res.data.authenticator) {\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: {\r\n\t\t\t\t\tauthenticator: res.data.authenticator,\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tconst now = new Date();\r\n\r\n\t\tlocalStorage.setItem(\r\n\t\t\tthis.storageKey,\r\n\t\t\tJSON.stringify({\r\n\t\t\t\t...res.data,\r\n\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\r\n\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t}),\r\n\t\t);\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: null,\r\n\t\t};\r\n\t}\r\n\r\n\tasync createFromAuthenticator(\r\n\t\tinput: AuthenticateInput,\r\n\t): Promise<OperationResult<AuthenticateError>> {\r\n\t\tconst res = await this.authService.authenticate(input);\r\n\r\n\t\tif (res.ok) {\r\n\t\t\tconst now = new Date();\r\n\r\n\t\t\tif (this.isServer) {\r\n\t\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\r\n\t\t\t} else {\r\n\t\t\t\tlocalStorage.setItem(\r\n\t\t\t\t\tthis.storageKey,\r\n\t\t\t\t\tJSON.stringify({\r\n\t\t\t\t\t\t...res.data,\r\n\t\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\r\n\t\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t\t\t}),\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t\treturn { ok: true };\r\n\t\t} else {\r\n\t\t\treturn res;\r\n\t\t}\r\n\t}\r\n\r\n\tasync get(): Promise<OperationResult<RefreshSessionError, Data | null>> {\r\n\t\tif (this.isServer) {\r\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\r\n\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: null,\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tif (this.refreshing) {\r\n\t\t\tawait sleep(1000);\r\n\t\t\treturn await this.get();\r\n\t\t}\r\n\r\n\t\tconst val = localStorage.getItem(this.storageKey);\r\n\r\n\t\tif (!val) {\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: null,\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\tlet obj: {\r\n\t\t\t\tsession: Session;\r\n\t\t\t\taccessToken: string;\r\n\t\t\t\taccessTokenExpiresAt: number;\r\n\t\t\t\trefreshToken: string;\r\n\t\t\t\trefreshTokenExpiresAt: number;\r\n\t\t\t} = JSON.parse(val);\r\n\r\n\t\t\tlet now = new Date();\r\n\r\n\t\t\tconst accessTokenExpiresAt = new Date(obj.accessTokenExpiresAt);\r\n\t\t\tconst refreshTokenExpiresAt = new Date(obj.refreshTokenExpiresAt);\r\n\r\n\t\t\t/* is refresh token expired? */\r\n\t\t\tif (isAfter(now, refreshTokenExpiresAt)) {\r\n\t\t\t\tthis.logger.warn('Session expired. Logging out..');\r\n\r\n\t\t\t\tlocalStorage.removeItem(this.storageKey);\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: false,\r\n\t\t\t\t\terror: {\r\n\t\t\t\t\t\tname: 'SessionExpiredError',\r\n\t\t\t\t\t\tmessage: 'Session expired.',\r\n\t\t\t\t\t},\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\t/* is access token expired? */\r\n\t\t\tif (isAfter(now, accessTokenExpiresAt)) {\r\n\t\t\t\tthis.logger.info('Refreshing session...');\r\n\r\n\t\t\t\tthis.refreshing = true;\r\n\r\n\t\t\t\tconst res = await this.authService.refreshSession(obj.refreshToken);\r\n\r\n\t\t\t\tthis.refreshing = false;\r\n\r\n\t\t\t\tif (!res.ok) {\r\n\t\t\t\t\tthis.logger.error(`Failed to refresh session: ${res.error.message}`);\r\n\r\n\t\t\t\t\t/*\r\n\t\t\t\t\t * return previous session for all errors except \"InvalidTokenError\" and \"AccountBlacklistedError\"\r\n\t\t\t\t\t */\r\n\t\t\t\t\tif (\r\n\t\t\t\t\t\tres.error.name === 'InvalidTokenError' ||\r\n\t\t\t\t\t\tres.error.name === 'AccountBlacklistedError' ||\r\n\t\t\t\t\t\tres.error.name === 'VerificationLockedError'\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tlocalStorage.removeItem(this.storageKey);\r\n\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\tok: false,\r\n\t\t\t\t\t\t\terror: res.error,\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthis.logger.warn('Old session returned.');\r\n\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\tok: true,\r\n\t\t\t\t\t\t\tdata: obj,\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.logger.success('Session refreshed!');\r\n\r\n\t\t\t\tnow = new Date();\r\n\t\t\t\tobj = {\r\n\t\t\t\t\t...obj,\r\n\t\t\t\t\t...res.data,\r\n\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\r\n\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t\t};\r\n\r\n\t\t\t\tlocalStorage.setItem(this.storageKey, JSON.stringify(obj));\r\n\t\t\t}\r\n\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: obj,\r\n\t\t\t};\r\n\t\t} catch {\r\n\t\t\t/* Did they modify session in localStorage? */\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: {\r\n\t\t\t\t\tname: 'UnknownError',\r\n\t\t\t\t\tmessage: 'Something went wrong.',\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\t}\r\n\r\n\tasync refresh(): Promise<OperationResult<RefreshSessionError, Data | null>> {\r\n\t\tif (this.isServer) {\r\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\r\n\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: null,\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tconst val = localStorage.getItem(this.storageKey);\r\n\r\n\t\tif (!val) {\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: null,\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\tlet obj: {\r\n\t\t\t\tsession: Session;\r\n\t\t\t\taccessToken: string;\r\n\t\t\t\taccessTokenExpiresAt: number;\r\n\t\t\t\trefreshToken: string;\r\n\t\t\t\trefreshTokenExpiresAt: number;\r\n\t\t\t} = JSON.parse(val);\r\n\r\n\t\t\tlet now = new Date();\r\n\r\n\t\t\tthis.logger.info('Refreshing session...');\r\n\r\n\t\t\tthis.refreshing = true;\r\n\r\n\t\t\tconst res = await this.authService.refreshSession(obj.refreshToken);\r\n\r\n\t\t\tthis.refreshing = false;\r\n\r\n\t\t\tif (!res.ok) {\r\n\t\t\t\tthis.logger.error(`Failed to refresh session: ${res.error.message}`);\r\n\r\n\t\t\t\t/*\r\n\t\t\t\t\t* return previous session for all errors except \"InvalidTokenError\" and \"AccountBlacklistedError\"\r\n\t\t\t\t\t*/\r\n\t\t\t\tif (\r\n\t\t\t\t\tres.error.name === 'InvalidTokenError' ||\r\n\t\t\t\t\tres.error.name === 'AccountBlacklistedError' ||\r\n\t\t\t\t\tres.error.name === 'VerificationLockedError'\r\n\t\t\t\t) {\r\n\t\t\t\t\tlocalStorage.removeItem(this.storageKey);\r\n\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tok: false,\r\n\t\t\t\t\t\terror: res.error,\r\n\t\t\t\t\t};\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.logger.warn('Old session returned.');\r\n\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tok: true,\r\n\t\t\t\t\t\tdata: obj,\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tthis.logger.success('Session refreshed!');\r\n\r\n\t\t\tnow = new Date();\r\n\t\t\tobj = {\r\n\t\t\t\t...obj,\r\n\t\t\t\t...res.data,\r\n\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\r\n\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t};\r\n\r\n\t\t\tlocalStorage.setItem(this.storageKey, JSON.stringify(obj));\r\n\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: obj,\r\n\t\t\t};\r\n\t\t} catch {\r\n\t\t\t/* Did they modify session in localStorage? */\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: {\r\n\t\t\t\t\tname: 'UnknownError',\r\n\t\t\t\t\tmessage: 'Something went wrong.',\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\t}\r\n\r\n\tasync destroy() {\r\n\t\tif (this.isServer) {\r\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst res = await this.get();\r\n\r\n\t\tif (res.data?.accessToken) {\r\n\t\t\tawait this.authService.destroySession(res.data.accessToken);\r\n\t\t}\r\n\r\n\t\tlocalStorage.removeItem(this.storageKey);\r\n\t}\r\n\r\n\tasync verify(): Promise<boolean> {\r\n\t\tif (this.isServer) {\r\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\tconst s = await this.get();\r\n\r\n\t\tif (s.error?.name === 'InvalidTokenError') return false;\r\n\t\tif (s.error?.name === 'SessionExpiredError') return false;\r\n\t\tif (s.error?.name === 'AccountBlacklistedError') return false;\r\n\r\n\t\t/* Not logged in or session is not expired */\r\n\t\tif (!s.data) return true;\r\n\r\n\t\tconst v = await this.authService.verifySession(s.data.accessToken);\r\n\r\n\t\t/* log out if session is no longer valid */\r\n\t\tif (!v) {\r\n\t\t\tlocalStorage.removeItem(this.storageKey);\r\n\t\t}\r\n\r\n\t\treturn v;\r\n\t}\r\n\r\n\tget onMaya() {\r\n\t\tif (this.isServer) {\r\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\treturn localStorage.getItem(this.platformStorageKey) === 'MAYA';\r\n\t}\r\n\r\n\tget onCabinet() {\r\n\t\tif (this.isServer) {\r\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\treturn localStorage.getItem(this.platformStorageKey) === 'CABINET';\r\n\t}\r\n\r\n\tprivate get isServer() {\r\n\t\treturn typeof window === 'undefined';\r\n\t}\r\n}\r\n","import cookies from 'js-cookie';\r\nimport type { AuthService, WalletService } from '../services/index.js';\r\nimport type { OperationResult } from '../types/index.js';\r\nimport { addDays } from '../utils/add-days.js';\r\nimport { addMinutes } from '../utils/add-minutes.js';\r\nimport { isAfter } from '../utils/is-after.js';\r\nimport { pollable } from '../utils/pollable.js';\r\nimport { sleep } from '../utils/sleep.js';\r\nimport { subMinutes } from '../utils/sub-minutes.js';\r\nimport type { Logger } from './logger.js';\r\nimport type {\r\n\tAuthenticateError,\r\n\tAuthenticateInput,\r\n\tAuthenticator,\r\n\tRefreshSessionError,\r\n\tSession,\r\n\tSignInError,\r\n\tSignInInput,\r\n} from './types.js';\r\n\r\ninterface Data {\r\n\tsession: Session;\r\n\taccessToken: string;\r\n\taccessTokenExpiresAt: number;\r\n\trefreshToken: string;\r\n\trefreshTokenExpiresAt: number;\r\n}\r\n\r\ninterface SessionManagerConfig {\r\n\tlogger: Logger;\r\n\tauthService: AuthService;\r\n\twalletService: WalletService;\r\n}\r\n\r\nexport class SessionManagerCookie {\r\n\tprivate logger: Logger;\r\n\tprivate storageKey = 'session';\r\n\tprivate platformStorageKey = 'session/platform';\r\n\tprivate authService: AuthService;\r\n\tprivate walletService: WalletService;\r\n\tprivate _refreshing = false;\r\n\r\n\tconstructor(config: SessionManagerConfig) {\r\n\t\tthis.authService = config.authService;\r\n\t\tthis.walletService = config.walletService;\r\n\t\tthis.logger = config.logger;\r\n\t}\r\n\r\n\tget refreshing() {\r\n\t\treturn this._refreshing;\r\n\t}\r\n\r\n\tset refreshing(value: boolean) {\r\n\t\tthis._refreshing = value;\r\n\t}\r\n\r\n\tasync create(\r\n\t\tinput: SignInInput,\r\n\t): Promise<\r\n\t\tOperationResult<SignInError, { authenticator: Authenticator } | null>\r\n\t> {\r\n\t\t/*\r\n\t\t * Maya Sign In\r\n\t\t */\r\n\t\tif (input.type === 'MAYA') {\r\n\t\t\tlocalStorage.setItem(this.platformStorageKey, 'MAYA');\r\n\r\n\t\t\tconst f0 = () => this.walletService.mayaSession({ id: input.sessionId });\r\n\t\t\tconst r0 = await pollable(f0, {\r\n\t\t\t\tuntil: (r) => r.ok && r.data?.member != null,\r\n\t\t\t\tinterval: 1000,\r\n\t\t\t\tmaxAttempt: 5,\r\n\t\t\t})();\r\n\r\n\t\t\tif (!r0.ok) return r0;\r\n\t\t\tif (!r0.data?.member) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: false,\r\n\t\t\t\t\terror: {\r\n\t\t\t\t\t\tname: 'HttpForbidden',\r\n\t\t\t\t\t\tmessage: 'Forbidden',\r\n\t\t\t\t\t},\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\tconst f1 = () => this.authService.createSession(input);\r\n\t\t\tconst r1 = await pollable(f1, {\r\n\t\t\t\tuntil: (r) => r.ok,\r\n\t\t\t\tinterval: 1000,\r\n\t\t\t\tmaxAttempt: 5,\r\n\t\t\t})();\r\n\r\n\t\t\tif (!r1.ok) return r1;\r\n\r\n\t\t\tconst now = new Date();\r\n\r\n\t\t\tcookies.set(\r\n\t\t\t\tthis.storageKey,\r\n\t\t\t\tJSON.stringify({\r\n\t\t\t\t\t...r1.data,\r\n\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\r\n\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t\t}),\r\n\t\t\t\t{ expires: subMinutes(addDays(now, 30), 2).getTime() },\r\n\t\t\t);\r\n\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: null,\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\t/*\r\n\t\t * Mobile Number Sign In\r\n\t\t */\r\n\t\tif (input.type === 'MOBILE_NUMBER') {\r\n\t\t\tconst res = await this.authService.createSession(input);\r\n\r\n\t\t\tif (res.ok) {\r\n\t\t\t\tconst now = new Date();\r\n\r\n\t\t\t\tcookies.set(\r\n\t\t\t\t\tthis.storageKey,\r\n\t\t\t\t\tJSON.stringify({\r\n\t\t\t\t\t\t...res.data,\r\n\t\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\r\n\t\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t\t\t}),\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\texpires: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t\t\t},\r\n\t\t\t\t);\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: true,\r\n\t\t\t\t\tdata: null,\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\treturn res;\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Token sign up (for 3rd party sign in)\r\n\t\t */\r\n\t\tif (input.type === 'SOCIALS' || input.type === 'TOKEN') {\r\n\t\t\tconst res = await this.authService.createSession({\r\n\t\t\t\ttype: 'SOCIALS',\r\n\t\t\t\ttoken: input.token,\r\n\t\t\t});\r\n\r\n\t\t\tif (res.ok) {\r\n\t\t\t\tconst now = new Date();\r\n\r\n\t\t\t\tcookies.set(\r\n\t\t\t\t\tthis.storageKey,\r\n\t\t\t\t\tJSON.stringify({\r\n\t\t\t\t\t\t...res.data,\r\n\t\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\r\n\t\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t\t\t}),\r\n\t\t\t\t\t{ expires: subMinutes(addDays(now, 30), 2).getTime() },\r\n\t\t\t\t);\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: true,\r\n\t\t\t\t\tdata: null,\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\treturn res;\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Cabinet sign in\r\n\t\t */\r\n\t\tif (input.type === 'CABINET') {\r\n\t\t\tlocalStorage.setItem(this.platformStorageKey, 'CABINET');\r\n\r\n\t\t\tconst res = await this.authService.createSession(input);\r\n\r\n\t\t\tif (res.ok) {\r\n\t\t\t\tconst now = new Date();\r\n\r\n\t\t\t\tcookies.set(\r\n\t\t\t\t\tthis.storageKey,\r\n\t\t\t\t\tJSON.stringify({\r\n\t\t\t\t\t\t...res.data,\r\n\t\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\r\n\t\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t\t\t}),\r\n\t\t\t\t\t{ expires: subMinutes(addDays(now, 30), 2).getTime() },\r\n\t\t\t\t);\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: true,\r\n\t\t\t\t\tdata: null,\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\treturn res;\r\n\t\t}\r\n\r\n\t\t/*\r\n\t\t * Name and Password Sign In\r\n\t\t */\r\n\t\tconst res = await this.authService.createSession(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\t/*\r\n\t\t * 2FA enabled\r\n\t\t */\r\n\t\tif (res.data.authenticator) {\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: {\r\n\t\t\t\t\tauthenticator: res.data.authenticator,\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tconst now = new Date();\r\n\r\n\t\tcookies.set(\r\n\t\t\tthis.storageKey,\r\n\t\t\tJSON.stringify({\r\n\t\t\t\t...res.data,\r\n\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\r\n\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t}),\r\n\t\t\t{},\r\n\t\t);\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: null,\r\n\t\t};\r\n\t}\r\n\r\n\tasync createFromAuthenticator(\r\n\t\tinput: AuthenticateInput,\r\n\t): Promise<OperationResult<AuthenticateError>> {\r\n\t\tconst res = await this.authService.authenticate(input);\r\n\r\n\t\tif (res.ok) {\r\n\t\t\tconst now = new Date();\r\n\r\n\t\t\tif (this.isServer) {\r\n\t\t\t\tthis.logger.warn(\"'client cookies' is not available on the server.\");\r\n\t\t\t} else {\r\n\t\t\t\tcookies.set(\r\n\t\t\t\t\tthis.storageKey,\r\n\t\t\t\t\tJSON.stringify({\r\n\t\t\t\t\t\t...res.data,\r\n\t\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\r\n\t\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t\t\t}),\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\texpires: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t\t\t},\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t\treturn { ok: true };\r\n\t\t} else {\r\n\t\t\treturn res;\r\n\t\t}\r\n\t}\r\n\r\n\tasync get(): Promise<OperationResult<RefreshSessionError, Data | null>> {\r\n\t\tif (this.isServer) {\r\n\t\t\tthis.logger.warn(\"'client cookies' is not available on the server.\");\r\n\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: null,\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tif (this.refreshing) {\r\n\t\t\tawait sleep(1000);\r\n\t\t\treturn await this.get();\r\n\t\t}\r\n\r\n\t\tconst val = cookies.get(this.storageKey);\r\n\r\n\t\tif (!val) {\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: null,\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\tlet obj: {\r\n\t\t\t\tsession: Session;\r\n\t\t\t\taccessToken: string;\r\n\t\t\t\taccessTokenExpiresAt: number;\r\n\t\t\t\trefreshToken: string;\r\n\t\t\t\trefreshTokenExpiresAt: number;\r\n\t\t\t} = JSON.parse(val);\r\n\r\n\t\t\tlet now = new Date();\r\n\r\n\t\t\tconst accessTokenExpiresAt = new Date(obj.accessTokenExpiresAt);\r\n\t\t\tconst refreshTokenExpiresAt = new Date(obj.refreshTokenExpiresAt);\r\n\r\n\t\t\t/* is refresh token expired? */\r\n\t\t\tif (isAfter(now, refreshTokenExpiresAt)) {\r\n\t\t\t\tthis.logger.warn('Session expired. Logging out..');\r\n\r\n\t\t\t\tcookies.remove(this.storageKey);\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: false,\r\n\t\t\t\t\terror: {\r\n\t\t\t\t\t\tname: 'SessionExpiredError',\r\n\t\t\t\t\t\tmessage: 'Session expired.',\r\n\t\t\t\t\t},\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\t/* is access token expired? */\r\n\t\t\tif (isAfter(now, accessTokenExpiresAt)) {\r\n\t\t\t\tthis.logger.info('Refreshing session...');\r\n\r\n\t\t\t\tthis.refreshing = true;\r\n\r\n\t\t\t\tconst res = await this.authService.refreshSession(obj.refreshToken);\r\n\r\n\t\t\t\tthis.refreshing = false;\r\n\r\n\t\t\t\tif (!res.ok) {\r\n\t\t\t\t\tthis.logger.error(`Failed to refresh session: ${res.error.message}`);\r\n\r\n\t\t\t\t\t/*\r\n\t\t\t\t\t * return previous session for all errors except \"InvalidTokenError\" and \"AccountBlacklistedError\"\r\n\t\t\t\t\t */\r\n\t\t\t\t\tif (\r\n\t\t\t\t\t\tres.error.name === 'InvalidTokenError' ||\r\n\t\t\t\t\t\tres.error.name === 'AccountBlacklistedError' ||\r\n\t\t\t\t\t\tres.error.name === 'VerificationLockedError'\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tcookies.remove(this.storageKey);\r\n\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\tok: false,\r\n\t\t\t\t\t\t\terror: res.error,\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthis.logger.warn('Old session returned.');\r\n\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\tok: true,\r\n\t\t\t\t\t\t\tdata: obj,\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.logger.success('Session refreshed!');\r\n\r\n\t\t\t\tnow = new Date();\r\n\t\t\t\tobj = {\r\n\t\t\t\t\t...obj,\r\n\t\t\t\t\t...res.data,\r\n\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\r\n\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t\t};\r\n\r\n\t\t\t\tcookies.set(this.storageKey, JSON.stringify(obj), {\r\n\t\t\t\t\texpires: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: obj,\r\n\t\t\t};\r\n\t\t} catch {\r\n\t\t\t/* Did they modify session in cookies? */\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: {\r\n\t\t\t\t\tname: 'UnknownError',\r\n\t\t\t\t\tmessage: 'Something went wrong.',\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\t}\r\n\r\n\tasync refresh(): Promise<OperationResult<RefreshSessionError, Data | null>> {\r\n\t\tif (this.isServer) {\r\n\t\t\tthis.logger.warn(\"'client cookies' is not available on the server.\");\r\n\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: null,\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tconst val = cookies.get(this.storageKey);\r\n\r\n\t\tif (!val) {\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: null,\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\tlet obj: {\r\n\t\t\t\tsession: Session;\r\n\t\t\t\taccessToken: string;\r\n\t\t\t\taccessTokenExpiresAt: number;\r\n\t\t\t\trefreshToken: string;\r\n\t\t\t\trefreshTokenExpiresAt: number;\r\n\t\t\t} = JSON.parse(val);\r\n\r\n\t\t\tlet now = new Date();\r\n\r\n\t\t\tthis.logger.info('Refreshing session...');\r\n\r\n\t\t\tthis.refreshing = true;\r\n\r\n\t\t\tconst res = await this.authService.refreshSession(obj.refreshToken);\r\n\r\n\t\t\tthis.refreshing = false;\r\n\r\n\t\t\tif (!res.ok) {\r\n\t\t\t\tthis.logger.error(`Failed to refresh session: ${res.error.message}`);\r\n\r\n\t\t\t\t/*\r\n\t\t\t\t\t* return previous session for all errors except \"InvalidTokenError\" and \"AccountBlacklistedError\"\r\n\t\t\t\t\t*/\r\n\t\t\t\tif (\r\n\t\t\t\t\tres.error.name === 'InvalidTokenError' ||\r\n\t\t\t\t\tres.error.name === 'AccountBlacklistedError' ||\r\n\t\t\t\t\tres.error.name === 'VerificationLockedError'\r\n\t\t\t\t) {\r\n\t\t\t\t\tcookies.remove(this.storageKey);\r\n\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tok: false,\r\n\t\t\t\t\t\terror: res.error,\r\n\t\t\t\t\t};\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.logger.warn('Old session returned.');\r\n\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tok: true,\r\n\t\t\t\t\t\tdata: obj,\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tthis.logger.success('Session refreshed!');\r\n\r\n\t\t\tnow = new Date();\r\n\t\t\tobj = {\r\n\t\t\t\t...obj,\r\n\t\t\t\t...res.data,\r\n\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\r\n\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t};\r\n\r\n\t\t\tcookies.set(this.storageKey, JSON.stringify(obj), {\r\n\t\t\t\texpires: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t});\r\n\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: obj,\r\n\t\t\t};\r\n\t\t} catch {\r\n\t\t\t/* Did they modify session in cookies? */\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: {\r\n\t\t\t\t\tname: 'UnknownError',\r\n\t\t\t\t\tmessage: 'Something went wrong.',\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\t}\r\n\r\n\tasync destroy() {\r\n\t\tif (this.isServer) {\r\n\t\t\tthis.logger.warn(\"'client cookies' is not available on the server.\");\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst res = await this.get();\r\n\r\n\t\tif (res.data?.accessToken) {\r\n\t\t\tawait this.authService.destroySession(res.data.accessToken);\r\n\t\t}\r\n\r\n\t\tcookies.remove(this.storageKey);\r\n\t}\r\n\r\n\tasync verify(): Promise<boolean> {\r\n\t\tif (this.isServer) {\r\n\t\t\tthis.logger.warn(\"'client cookies' is not available on the server.\");\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\tconst s = await this.get();\r\n\r\n\t\tif (s.error?.name === 'InvalidTokenError') return false;\r\n\t\tif (s.error?.name === 'SessionExpiredError') return false;\r\n\t\tif (s.error?.name === 'AccountBlacklistedError') return false;\r\n\r\n\t\t/* Not logged in or session is not expired */\r\n\t\tif (!s.data) return true;\r\n\r\n\t\tconst v = await this.authService.verifySession(s.data.accessToken);\r\n\r\n\t\t/* log out if session is no longer valid */\r\n\t\tif (!v) {\r\n\t\t\tcookies.remove(this.storageKey);\r\n\t\t}\r\n\r\n\t\treturn v;\r\n\t}\r\n\r\n\tget onMaya() {\r\n\t\tif (this.isServer) {\r\n\t\t\tthis.logger.warn(\"'client cookies' is not available on the server.\");\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\treturn localStorage.getItem(this.platformStorageKey) === 'MAYA';\r\n\t}\r\n\r\n\tget onCabinet() {\r\n\t\tif (this.isServer) {\r\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\treturn localStorage.getItem(this.platformStorageKey) === 'CABINET';\r\n\t}\r\n\r\n\tprivate get isServer() {\r\n\t\treturn typeof window === 'undefined';\r\n\t}\r\n}\r\n","import { isPlainObject } from './is-plain-object.js';\r\n\r\nexport function compact<T>(obj: Record<string, any>) {\r\n\tconst output: Record<string, any> = {};\r\n\r\n\tfor (const k in obj) {\r\n\t\tconst v = obj[k];\r\n\r\n\t\tif (v === null) continue;\r\n\t\tif (v === undefined) continue;\r\n\r\n\t\tif (isPlainObject(v)) {\r\n\t\t\toutput[k] = compact(v);\r\n\t\t\tcontinue;\r\n\t\t}\r\n\r\n\t\tif (Array.isArray(v)) {\r\n\t\t\toutput[k] = v.map((i) => {\r\n\t\t\t\tif (isPlainObject(i)) {\r\n\t\t\t\t\treturn compact(i);\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn i;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tcontinue;\r\n\t\t}\r\n\r\n\t\toutput[k] = v;\r\n\t}\r\n\r\n\treturn output as T;\r\n}\r\n","export function invariant(\r\n\tcondition: unknown,\r\n\tmessage?: string,\r\n): asserts condition {\r\n\tif (!condition) {\r\n\t\tconst error = new Error();\r\n\t\terror.name = 'Invariant Violation';\r\n\t\terror.message = message ?? 'Invariant failed';\r\n\t\tError.captureStackTrace?.(error, invariant);\r\n\t\tthrow error;\r\n\t}\r\n}\r\n","type MaybeNumber = number | string | undefined | null;\r\n\r\nexport function parseDecimal(value: MaybeNumber): number | undefined;\r\nexport function parseDecimal(value: MaybeNumber, fallback: number): number;\r\nexport function parseDecimal(value: MaybeNumber, fallback?: number) {\r\n\tif (typeof value === 'number') {\r\n\t\tif (!Number.isNaN(value)) return value;\r\n\t}\r\n\r\n\tif (typeof value === 'string') {\r\n\t\tconst parsed = Number.parseFloat(value);\r\n\r\n\t\tif (!Number.isNaN(parsed)) {\r\n\t\t\treturn parsed;\r\n\t\t}\r\n\t}\r\n\r\n\treturn fallback;\r\n}\r\n","import type * as Internal from '../services/index.js';\r\nimport type { Assign } from '../types/index.js';\r\nimport { compact } from '../utils/compact.js';\r\nimport { invariant } from '../utils/invariant.js';\r\nimport { parseDecimal } from '../utils/parse-decimal.js';\r\nimport type * as External from './types.js';\r\nimport { getLocaleByCurrency } from './utils.js';\r\n\r\nconst IMAGE_CACHE_ID = '5'.padStart(8, '0');\r\n\r\nexport class Transformer {\r\n\tget transform() {\r\n\t\treturn {\r\n\t\t\tsite: this.site.bind(this),\r\n\t\t\tplatform: this.platform.bind(this),\r\n\t\t\taccount: this.account.bind(this),\r\n\t\t\twallet: this.wallet.bind(this),\r\n\t\t\tverificationDetails: this.verificationDetails.bind(this),\r\n\t\t\tprofileCompletion: this.profileCompletion.bind(this),\r\n\t\t\tannouncement: this.announcement.bind(this),\r\n\t\t\twithdrawalRecord: this.withdrawalRecord.bind(this),\r\n\t\t\tdeposit: this.deposit.bind(this),\r\n\t\t\tcabinetWithdrawal: this.cabinetWithdrawal.bind(this),\r\n\t\t\tdepositRecord: this.depositRecord.bind(this),\r\n\t\t\tbetRecord: this.betRecord.bind(this),\r\n\t\t\tlatestBetRecord: this.latestBetRecord.bind(this),\r\n\t\t\ttransactionRecord: this.transactionRecord.bind(this),\r\n\t\t\tgame: this.game.bind(this),\r\n\t\t\tgameSession: this.gameSession.bind(this),\r\n\t\t\tpromo: this.promo.bind(this),\r\n\t\t\tcashback: this.cashback.bind(this),\r\n\t\t\tbonus: this.bonus.bind(this),\r\n\t\t\tcashbackBonus: this.cashbackBonus.bind(this),\r\n\t\t\tmemberCabinetSiteMachine: this.memberCabinetSiteMachine.bind(this),\r\n\t\t\tfile: this.file.bind(this),\r\n\t\t\tpointsWallet: this.pointsWallet.bind(this),\r\n\t\t\tpointsWalletTransaction: this.pointsWalletTransaction.bind(this),\r\n\t\t\trebate: this.rebate.bind(this),\r\n\t\t\tmemberRebateContribution: this.memberRebateContribution.bind(this),\r\n\t\t\tactivityRecord: this.activityRecord.bind(this),\r\n\t\t\treferral: this.referral.bind(this),\r\n\t\t\treferralCommission: this.referralCommission.bind(this),\r\n\t\t\tplatform__next: this.platform__next.bind(this),\r\n\t\t\tpointsClubSettings: this.pointsClubSettings.bind(this),\r\n\t\t\tpaymentSettings: this.paymentSettings.bind(this),\r\n\t\t\tmessage: this.message.bind(this),\r\n\t\t\tinstapayBank: this.instapayBank.bind(this),\r\n\t\t\tpromoByCode: this.promoByCode.bind(this),\r\n\t\t\tquest: this.quest.bind(this),\r\n\t\t\ttopWin: this.topWin.bind(this),\r\n\t\t\tjackpots: this.jackpots.bind(this),\r\n\t\t\tjackpotPayouts: this.jackpotPayouts.bind(this),\r\n\t\t\ttournaments: this.tournaments.bind(this),\r\n\t\t\tmemberLevelSettings: this.memberLevelSettings.bind(this),\r\n\t\t\tachievementSettings: this.achievementSettings.bind(this),\r\n\t\t\tachievementPointsHistoryRecord:\r\n\t\t\t\tthis.achievementPointsHistoryRecord.bind(this),\r\n\t\t\tmemberAchievements: this.memberAchievements.bind(this),\r\n\t\t\tmemberVerificationRequest: this.memberVerificationRequest.bind(this),\r\n\t\t\tfreeBetDrops: this.freeBetDrops.bind(this),\r\n\t\t\tmemberFreeBetDrops: this.memberFreeBetDrops.bind(this),\r\n\t\t\tmemberWalletAccount: this.walletAccount.bind(this),\r\n\t\t};\r\n\t}\r\n\r\n\tprivate site(data: Internal.Site): External.Site {\r\n\t\tconst o: External.Site = {\r\n\t\t\tid: data.id,\r\n\t\t\tname: data.name,\r\n\t\t\tlogo: data.logo ?? undefined,\r\n\t\t\tfields: data.config.fields,\r\n\t\t};\r\n\r\n\t\treturn compact(o);\r\n\t}\r\n\r\n\t/** @deprecated */\r\n\tprivate platform(data: Internal.Platform): External.Platform {\r\n\t\treturn {\r\n\t\t\ttimezone: data.timezone,\r\n\t\t\tcurrency: data.currency,\r\n\t\t\tpaymentSettings: {\r\n\t\t\t\tminimumFirstDepositAmount: parseDecimal(data.minimumFirstDepositAmount),\r\n\t\t\t\trestrictWithdrawalsToVerifiedMembers:\r\n\t\t\t\t\tdata.restrictWithdrawalsToVerifiedMembers,\r\n\t\t\t\tdepositGateway: {\r\n\t\t\t\t\tbank: {\r\n\t\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\t\tdata.bankDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled: data.bankDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled: data.bankDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\t\tdata.bankDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.bankDepositGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.bankDepositGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tgcash: {\r\n\t\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\t\tdata.gcashDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled: data.gcashDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled: data.gcashDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\t\tdata.gcashDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.gcashDepositGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.gcashDepositGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tgcashWebpay: {\r\n\t\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\t\tdata.gcashWebpayDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled:\r\n\t\t\t\t\t\t\tdata.gcashWebpayDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled:\r\n\t\t\t\t\t\t\tdata.gcashWebpayDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\t\tdata.gcashWebpayDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.gcashWebpayDepositGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.gcashWebpayDepositGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t},\r\n\t\t\t\t\taioGcash: {\r\n\t\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\t\tdata.aioGcashDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled:\r\n\t\t\t\t\t\t\tdata.aioGcashDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled:\r\n\t\t\t\t\t\t\tdata.aioGcashDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\t\tdata.aioGcashDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.aioGcashDepositGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.aioGcashDepositGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t},\r\n\t\t\t\t\taioPayMaya: {\r\n\t\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\t\tdata.aioPayMayaDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled:\r\n\t\t\t\t\t\t\tdata.aioPayMayaDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled:\r\n\t\t\t\t\t\t\tdata.aioPayMayaDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\t\tdata.aioPayMayaDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.aioPayMayaDepositGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.aioPayMayaDepositGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t},\r\n\t\t\t\t\taioGrabPay: {\r\n\t\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\t\tdata.aioGrabPayDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled:\r\n\t\t\t\t\t\t\tdata.aioGrabPayDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled:\r\n\t\t\t\t\t\t\tdata.aioGrabPayDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\t\tdata.aioGrabPayDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.aioGrabPayDepositGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.aioGrabPayDepositGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t},\r\n\t\t\t\t\taioPalawanPay: {\r\n\t\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\t\tdata.aioPalawanPayDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled:\r\n\t\t\t\t\t\t\tdata.aioPalawanPayDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled:\r\n\t\t\t\t\t\t\tdata.aioPalawanPayDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\t\tdata.aioPalawanPayDepositGatewaySettings?.mobileWebEnabled ??\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.aioPalawanPayDepositGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.aioPalawanPayDepositGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmaya: {\r\n\t\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\t\tdata.mayaDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled: data.mayaDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled: data.mayaDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\t\tdata.mayaDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.mayaDepositGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.mayaDepositGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmayaApp: {\r\n\t\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\t\tdata.mayaAppDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled: data.mayaAppDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled: data.mayaAppDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\t\tdata.mayaAppDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.mayaAppDepositGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.mayaAppDepositGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmayaWebpay: {\r\n\t\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\t\tdata.mayaWebpayDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled:\r\n\t\t\t\t\t\t\tdata.mayaWebpayDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled:\r\n\t\t\t\t\t\t\tdata.mayaWebpayDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\t\tdata.mayaWebpayDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.mayaWebpayDepositGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.mayaWebpayDepositGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tonlineBank: {\r\n\t\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\t\tdata.onlineBankDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled:\r\n\t\t\t\t\t\t\tdata.onlineBankDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled:\r\n\t\t\t\t\t\t\tdata.onlineBankDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\t\tdata.onlineBankDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.onlineBankDepositGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.onlineBankDepositGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tqrph: {\r\n\t\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\t\tdata.qrphDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled: data.qrphDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled: data.qrphDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\t\tdata.qrphDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.qrphDepositGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.qrphDepositGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmanualBank: {\r\n\t\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\t\tdata.manualBankDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled:\r\n\t\t\t\t\t\t\tdata.manualBankDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled:\r\n\t\t\t\t\t\t\tdata.manualBankDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\t\tdata.manualBankDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.manualBankDepositGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.manualBankDepositGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t\tbankAccountName:\r\n\t\t\t\t\t\t\tdata.manualBankDepositGatewaySettings?.bankAccountName,\r\n\t\t\t\t\t\tbankAccountNumber:\r\n\t\t\t\t\t\t\tdata.manualBankDepositGatewaySettings?.bankAccountNumber,\r\n\t\t\t\t\t\tbankIFSCCode: data.manualBankDepositGatewaySettings?.bankIFSCCode,\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmanualUPI: {\r\n\t\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\t\tdata.manualUPIDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled:\r\n\t\t\t\t\t\t\tdata.manualUPIDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled:\r\n\t\t\t\t\t\t\tdata.manualUPIDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\t\tdata.manualUPIDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.manualUPIDepositGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.manualUPIDepositGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t\tupiId: data.manualUPIDepositGatewaySettings?.upiId,\r\n\t\t\t\t\t\tupiQRCode: !data.manualUPIDepositGatewaySettings?.upiQRCode\r\n\t\t\t\t\t\t\t? null\r\n\t\t\t\t\t\t\t: (this.file(\r\n\t\t\t\t\t\t\t\t\tdata.manualUPIDepositGatewaySettings.upiQRCode,\r\n\t\t\t\t\t\t\t\t) as Extract<External.File, { status: 'READY' }>),\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t\twithdrawalGateway: {\r\n\t\t\t\t\tbank: {\r\n\t\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\t\tdata.bankWithdrawalGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled: data.bankWithdrawalGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled: data.bankWithdrawalGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\t\tdata.bankWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.bankWithdrawalGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.bankWithdrawalGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tgcash: {\r\n\t\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\t\tdata.gcashWithdrawalGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled:\r\n\t\t\t\t\t\t\tdata.gcashWithdrawalGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled:\r\n\t\t\t\t\t\t\tdata.gcashWithdrawalGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\t\tdata.gcashWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.gcashWithdrawalGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.gcashWithdrawalGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t\t1000000,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tgcashStandardCashIn: {\r\n\t\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\t\tdata.gcashStandardCashInWithdrawalGatewaySettings\r\n\t\t\t\t\t\t\t\t?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled:\r\n\t\t\t\t\t\t\tdata.gcashStandardCashInWithdrawalGatewaySettings?.iosEnabled ??\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\twebEnabled:\r\n\t\t\t\t\t\t\tdata.gcashStandardCashInWithdrawalGatewaySettings?.webEnabled ??\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\t\tdata.gcashStandardCashInWithdrawalGatewaySettings\r\n\t\t\t\t\t\t\t\t?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.gcashStandardCashInWithdrawalGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.gcashStandardCashInWithdrawalGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t\t1000000,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmaya: {\r\n\t\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\t\tdata.mayaWithdrawalGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled: data.mayaWithdrawalGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled: data.mayaWithdrawalGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\t\tdata.mayaWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.mayaWithdrawalGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.mayaWithdrawalGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmayaApp: {\r\n\t\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\t\tdata.mayaAppWithdrawalGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled:\r\n\t\t\t\t\t\t\tdata.mayaAppWithdrawalGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled:\r\n\t\t\t\t\t\t\tdata.mayaAppWithdrawalGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\t\tdata.mayaAppWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.mayaAppWithdrawalGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.mayaAppWithdrawalGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t\t1000000,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tinstapay: {\r\n\t\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\t\tdata.instapayWithdrawalGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled:\r\n\t\t\t\t\t\t\tdata.instapayWithdrawalGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled:\r\n\t\t\t\t\t\t\tdata.instapayWithdrawalGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\t\tdata.instapayWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.instapayWithdrawalGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.instapayWithdrawalGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t\t1000000,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmanualBank: {\r\n\t\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\t\tdata.manualBankWithdrawalGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled:\r\n\t\t\t\t\t\t\tdata.manualBankWithdrawalGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled:\r\n\t\t\t\t\t\t\tdata.manualBankWithdrawalGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\t\tdata.manualBankWithdrawalGatewaySettings?.mobileWebEnabled ??\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.manualBankWithdrawalGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.manualBankWithdrawalGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t\t1000000,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmanualUPI: {\r\n\t\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\t\tdata.manualUPIWithdrawalGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled:\r\n\t\t\t\t\t\t\tdata.manualUPIWithdrawalGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled:\r\n\t\t\t\t\t\t\tdata.manualUPIWithdrawalGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\t\tdata.manualUPIWithdrawalGatewaySettings?.mobileWebEnabled ??\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.manualUPIWithdrawalGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.manualUPIWithdrawalGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t\t1000000,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\tpointsClubSettings: {\r\n\t\t\t\tmultiplier: parseDecimal(data.pointsClubSettings?.multiplier, 0),\r\n\t\t\t},\r\n\t\t};\r\n\t}\r\n\r\n\tprivate platform__next(\r\n\t\tdata: Internal.Platform__Next,\r\n\t): External.Platform__Next {\r\n\t\treturn {\r\n\t\t\tcurrency: data.currency,\r\n\t\t\ttimezone: data.timezone,\r\n\t\t\tlocale: getLocaleByCurrency(data.currency),\r\n\t\t};\r\n\t}\r\n\r\n\tprivate memberLevelSettings(\r\n\t\tdata: Internal.MemberLevelSettings,\r\n\t): External.MemberLevelSettings {\r\n\t\treturn {\r\n\t\t\tmemberLevelSettings__1: {\r\n\t\t\t\tenabled: data.memberLevelSettings__1.enabled ?? false,\r\n\t\t\t\tachievementPointsRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__1?.achievementPointsRequirement ?? 0,\r\n\t\t\t\tturnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__1?.turnoverRequirement ?? 0,\r\n\t\t\t\tbonusTurnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__1?.bonusTurnoverRequirement ?? 0,\r\n\t\t\t\tname: data.memberLevelSettings__1?.name ?? '',\r\n\t\t\t\tbonusAmount: data.memberLevelSettings__1?.bonusAmount ?? 0,\r\n\t\t\t},\r\n\t\t\tmemberLevelSettings__2: {\r\n\t\t\t\tenabled: data.memberLevelSettings__2.enabled ?? false,\r\n\t\t\t\tachievementPointsRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__2?.achievementPointsRequirement ?? 0,\r\n\t\t\t\tturnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__2?.turnoverRequirement ?? 0,\r\n\t\t\t\tbonusTurnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__2?.bonusTurnoverRequirement ?? 0,\r\n\t\t\t\tname: data.memberLevelSettings__2?.name ?? '',\r\n\t\t\t\tbonusAmount: data.memberLevelSettings__2?.bonusAmount ?? 0,\r\n\t\t\t},\r\n\t\t\tmemberLevelSettings__3: {\r\n\t\t\t\tenabled: data.memberLevelSettings__3.enabled ?? false,\r\n\t\t\t\tachievementPointsRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__3?.achievementPointsRequirement ?? 0,\r\n\t\t\t\tturnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__3?.turnoverRequirement ?? 0,\r\n\t\t\t\tbonusTurnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__3?.bonusTurnoverRequirement ?? 0,\r\n\t\t\t\tname: data.memberLevelSettings__3?.name ?? '',\r\n\t\t\t\tbonusAmount: data.memberLevelSettings__3?.bonusAmount ?? 0,\r\n\t\t\t},\r\n\t\t\tmemberLevelSettings__4: {\r\n\t\t\t\tenabled: data.memberLevelSettings__4.enabled ?? false,\r\n\t\t\t\tachievementPointsRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__4?.achievementPointsRequirement ?? 0,\r\n\t\t\t\tturnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__4?.turnoverRequirement ?? 0,\r\n\t\t\t\tbonusTurnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__4?.bonusTurnoverRequirement ?? 0,\r\n\t\t\t\tname: data.memberLevelSettings__4?.name ?? '',\r\n\t\t\t\tbonusAmount: data.memberLevelSettings__4?.bonusAmount ?? 0,\r\n\t\t\t},\r\n\t\t\tmemberLevelSettings__5: {\r\n\t\t\t\tenabled: data.memberLevelSettings__5.enabled ?? false,\r\n\t\t\t\tachievementPointsRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__5?.achievementPointsRequirement ?? 0,\r\n\t\t\t\tturnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__5?.turnoverRequirement ?? 0,\r\n\t\t\t\tbonusTurnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__5?.bonusTurnoverRequirement ?? 0,\r\n\t\t\t\tname: data.memberLevelSettings__5?.name ?? '',\r\n\t\t\t\tbonusAmount: data.memberLevelSettings__5?.bonusAmount ?? 0,\r\n\t\t\t},\r\n\t\t\tmemberLevelSettings__6: {\r\n\t\t\t\tenabled: data.memberLevelSettings__6.enabled ?? false,\r\n\t\t\t\tachievementPointsRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__6?.achievementPointsRequirement ?? 0,\r\n\t\t\t\tturnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__6?.turnoverRequirement ?? 0,\r\n\t\t\t\tbonusTurnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__6?.bonusTurnoverRequirement ?? 0,\r\n\t\t\t\tname: data.memberLevelSettings__6?.name ?? '',\r\n\t\t\t\tbonusAmount: data.memberLevelSettings__6?.bonusAmount ?? 0,\r\n\t\t\t},\r\n\t\t\tmemberLevelSettings__7: {\r\n\t\t\t\tenabled: data.memberLevelSettings__7.enabled ?? false,\r\n\t\t\t\tachievementPointsRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__7?.achievementPointsRequirement ?? 0,\r\n\t\t\t\tturnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__7?.turnoverRequirement ?? 0,\r\n\t\t\t\tbonusTurnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__7?.bonusTurnoverRequirement ?? 0,\r\n\t\t\t\tname: data.memberLevelSettings__7?.name ?? '',\r\n\t\t\t\tbonusAmount: data.memberLevelSettings__7?.bonusAmount ?? 0,\r\n\t\t\t},\r\n\t\t\tmemberLevelSettings__8: {\r\n\t\t\t\tenabled: data.memberLevelSettings__8.enabled ?? false,\r\n\t\t\t\tachievementPointsRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__8?.achievementPointsRequirement ?? 0,\r\n\t\t\t\tturnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__8?.turnoverRequirement ?? 0,\r\n\t\t\t\tbonusTurnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__8?.bonusTurnoverRequirement ?? 0,\r\n\t\t\t\tname: data.memberLevelSettings__8?.name ?? '',\r\n\t\t\t\tbonusAmount: data.memberLevelSettings__8?.bonusAmount ?? 0,\r\n\t\t\t},\r\n\t\t\tmemberLevelSettings__9: {\r\n\t\t\t\tenabled: data.memberLevelSettings__9.enabled ?? false,\r\n\t\t\t\tachievementPointsRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__9?.achievementPointsRequirement ?? 0,\r\n\t\t\t\tturnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__9?.turnoverRequirement ?? 0,\r\n\t\t\t\tbonusTurnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__9?.bonusTurnoverRequirement ?? 0,\r\n\t\t\t\tname: data.memberLevelSettings__9?.name ?? '',\r\n\t\t\t\tbonusAmount: data.memberLevelSettings__9?.bonusAmount ?? 0,\r\n\t\t\t},\r\n\t\t\tmemberLevelSettings__10: {\r\n\t\t\t\tenabled: data.memberLevelSettings__10.enabled ?? false,\r\n\t\t\t\tachievementPointsRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__10?.achievementPointsRequirement ?? 0,\r\n\t\t\t\tturnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__10?.turnoverRequirement ?? 0,\r\n\t\t\t\tbonusTurnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__10?.bonusTurnoverRequirement ?? 0,\r\n\t\t\t\tname: data.memberLevelSettings__10?.name ?? '',\r\n\t\t\t\tbonusAmount: data.memberLevelSettings__10?.bonusAmount ?? 0,\r\n\t\t\t},\r\n\t\t\tmemberLevelSettings__11: {\r\n\t\t\t\tenabled: data.memberLevelSettings__11.enabled ?? false,\r\n\t\t\t\tachievementPointsRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__11?.achievementPointsRequirement ?? 0,\r\n\t\t\t\tturnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__11?.turnoverRequirement ?? 0,\r\n\t\t\t\tbonusTurnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__11?.bonusTurnoverRequirement ?? 0,\r\n\t\t\t\tname: data.memberLevelSettings__11?.name ?? '',\r\n\t\t\t\tbonusAmount: data.memberLevelSettings__11?.bonusAmount ?? 0,\r\n\t\t\t},\r\n\t\t\tmemberLevelSettings__12: {\r\n\t\t\t\tenabled: data.memberLevelSettings__12.enabled ?? false,\r\n\t\t\t\tachievementPointsRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__12?.achievementPointsRequirement ?? 0,\r\n\t\t\t\tturnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__12?.turnoverRequirement ?? 0,\r\n\t\t\t\tbonusTurnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__12?.bonusTurnoverRequirement ?? 0,\r\n\t\t\t\tname: data.memberLevelSettings__12?.name ?? '',\r\n\t\t\t\tbonusAmount: data.memberLevelSettings__12?.bonusAmount ?? 0,\r\n\t\t\t},\r\n\t\t\tmemberLevelSettings__13: {\r\n\t\t\t\tenabled: data.memberLevelSettings__13.enabled ?? false,\r\n\t\t\t\tachievementPointsRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__13?.achievementPointsRequirement ?? 0,\r\n\t\t\t\tturnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__13?.turnoverRequirement ?? 0,\r\n\t\t\t\tbonusTurnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__13?.bonusTurnoverRequirement ?? 0,\r\n\t\t\t\tname: data.memberLevelSettings__13?.name ?? '',\r\n\t\t\t\tbonusAmount: data.memberLevelSettings__13?.bonusAmount ?? 0,\r\n\t\t\t},\r\n\t\t\tmemberLevelSettings__14: {\r\n\t\t\t\tenabled: data.memberLevelSettings__14.enabled ?? false,\r\n\t\t\t\tachievementPointsRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__14?.achievementPointsRequirement ?? 0,\r\n\t\t\t\tturnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__14?.turnoverRequirement ?? 0,\r\n\t\t\t\tbonusTurnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__14?.bonusTurnoverRequirement ?? 0,\r\n\t\t\t\tname: data.memberLevelSettings__14?.name ?? '',\r\n\t\t\t\tbonusAmount: data.memberLevelSettings__14?.bonusAmount ?? 0,\r\n\t\t\t},\r\n\t\t\tmemberLevelSettings__15: {\r\n\t\t\t\tenabled: data.memberLevelSettings__15.enabled ?? false,\r\n\t\t\t\tachievementPointsRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__15?.achievementPointsRequirement ?? 0,\r\n\t\t\t\tturnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__15?.turnoverRequirement ?? 0,\r\n\t\t\t\tbonusTurnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__15?.bonusTurnoverRequirement ?? 0,\r\n\t\t\t\tname: data.memberLevelSettings__15?.name ?? '',\r\n\t\t\t\tbonusAmount: data.memberLevelSettings__15?.bonusAmount ?? 0,\r\n\t\t\t},\r\n\t\t\tmemberLevelSettings__16: {\r\n\t\t\t\tenabled: data.memberLevelSettings__16.enabled ?? false,\r\n\t\t\t\tachievementPointsRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__16?.achievementPointsRequirement ?? 0,\r\n\t\t\t\tturnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__16?.turnoverRequirement ?? 0,\r\n\t\t\t\tbonusTurnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__16?.bonusTurnoverRequirement ?? 0,\r\n\t\t\t\tname: data.memberLevelSettings__16?.name ?? '',\r\n\t\t\t\tbonusAmount: data.memberLevelSettings__16?.bonusAmount ?? 0,\r\n\t\t\t},\r\n\t\t\tmemberLevelSettings__17: {\r\n\t\t\t\tenabled: data.memberLevelSettings__17.enabled ?? false,\r\n\t\t\t\tachievementPointsRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__17?.achievementPointsRequirement ?? 0,\r\n\t\t\t\tturnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__17?.turnoverRequirement ?? 0,\r\n\t\t\t\tbonusTurnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__17?.bonusTurnoverRequirement ?? 0,\r\n\t\t\t\tname: data.memberLevelSettings__17?.name ?? '',\r\n\t\t\t\tbonusAmount: data.memberLevelSettings__17?.bonusAmount ?? 0,\r\n\t\t\t},\r\n\t\t\tmemberLevelSettings__18: {\r\n\t\t\t\tenabled: data.memberLevelSettings__18.enabled ?? false,\r\n\t\t\t\tachievementPointsRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__18?.achievementPointsRequirement ?? 0,\r\n\t\t\t\tturnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__18?.turnoverRequirement ?? 0,\r\n\t\t\t\tbonusTurnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__18?.bonusTurnoverRequirement ?? 0,\r\n\t\t\t\tname: data.memberLevelSettings__18?.name ?? '',\r\n\t\t\t\tbonusAmount: data.memberLevelSettings__18?.bonusAmount ?? 0,\r\n\t\t\t},\r\n\t\t\tmemberLevelSettings__19: {\r\n\t\t\t\tenabled: data.memberLevelSettings__19.enabled ?? false,\r\n\t\t\t\tachievementPointsRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__19?.achievementPointsRequirement ?? 0,\r\n\t\t\t\tturnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__19?.turnoverRequirement ?? 0,\r\n\t\t\t\tbonusTurnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__19?.bonusTurnoverRequirement ?? 0,\r\n\t\t\t\tname: data.memberLevelSettings__19?.name ?? '',\r\n\t\t\t\tbonusAmount: data.memberLevelSettings__19?.bonusAmount ?? 0,\r\n\t\t\t},\r\n\t\t\tmemberLevelSettings__20: {\r\n\t\t\t\tenabled: data.memberLevelSettings__20.enabled ?? false,\r\n\t\t\t\tachievementPointsRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__20?.achievementPointsRequirement ?? 0,\r\n\t\t\t\tturnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__20?.turnoverRequirement ?? 0,\r\n\t\t\t\tbonusTurnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__20?.bonusTurnoverRequirement ?? 0,\r\n\t\t\t\tname: data.memberLevelSettings__20?.name ?? '',\r\n\t\t\t\tbonusAmount: data.memberLevelSettings__20?.bonusAmount ?? 0,\r\n\t\t\t},\r\n\t\t};\r\n\t}\r\n\r\n\tprivate achievementSettings(\r\n\t\tdata: Internal.AchievementSettingsResponse,\r\n\t): External.AchievementSettingsResponse {\r\n\t\treturn {\r\n\t\t\tdiverseDebut: {\r\n\t\t\t\tenabled: data.diverseDebut.enabled ?? false,\r\n\t\t\t\tpoints: data.diverseDebut.points ?? 0,\r\n\t\t\t\tuniqueGamesCount: data.diverseDebut.uniqueGamesCount ?? 0,\r\n\t\t\t\tnewGamesCount: data.diverseDebut.newGamesCount ?? 0,\r\n\t\t\t\tbetsCount: data.diverseDebut.betsCount ?? 0,\r\n\t\t\t\tactiveDaysCount: data.diverseDebut.activeDaysCount ?? 0,\r\n\t\t\t},\r\n\t\t\tvarietyVirtuoso: {\r\n\t\t\t\tenabled: data.varietyVirtuoso.enabled ?? false,\r\n\t\t\t\tpoints: data.varietyVirtuoso.points ?? 0,\r\n\t\t\t\tuniqueGamesCount: data.varietyVirtuoso.uniqueGamesCount ?? 0,\r\n\t\t\t\tnewGamesCount: data.varietyVirtuoso.newGamesCount ?? 0,\r\n\t\t\t\tbetsCount: data.varietyVirtuoso.betsCount ?? 0,\r\n\t\t\t\tactiveDaysCount: data.varietyVirtuoso.activeDaysCount ?? 0,\r\n\t\t\t},\r\n\t\t\tmasterOfDiversity: {\r\n\t\t\t\tenabled: data.masterOfDiversity.enabled ?? false,\r\n\t\t\t\tpoints: data.masterOfDiversity.points ?? 0,\r\n\t\t\t\tuniqueGamesCount: data.masterOfDiversity.uniqueGamesCount ?? 0,\r\n\t\t\t\tnewGamesCount: data.masterOfDiversity.newGamesCount ?? 0,\r\n\t\t\t\tbetsCount: data.masterOfDiversity.betsCount ?? 0,\r\n\t\t\t\tactiveDaysCount: data.masterOfDiversity.activeDaysCount ?? 0,\r\n\t\t\t},\r\n\t\t\tcuriousNewcomer: {\r\n\t\t\t\tenabled: data.curiousNewcomer.enabled ?? false,\r\n\t\t\t\tpoints: data.curiousNewcomer.points ?? 0,\r\n\t\t\t\tuniqueGamesCount: data.curiousNewcomer.uniqueGamesCount ?? 0,\r\n\t\t\t\tnewGamesCount: data.curiousNewcomer.newGamesCount ?? 0,\r\n\t\t\t\tbetsCount: data.curiousNewcomer.betsCount ?? 0,\r\n\t\t\t\tactiveDaysCount: data.curiousNewcomer.activeDaysCount ?? 0,\r\n\t\t\t},\r\n\t\t\ttrailblazer: {\r\n\t\t\t\tenabled: data.trailblazer.enabled ?? false,\r\n\t\t\t\tpoints: data.trailblazer.points ?? 0,\r\n\t\t\t\tuniqueGamesCount: data.trailblazer.uniqueGamesCount ?? 0,\r\n\t\t\t\tnewGamesCount: data.trailblazer.newGamesCount ?? 0,\r\n\t\t\t\tbetsCount: data.trailblazer.betsCount ?? 0,\r\n\t\t\t\tactiveDaysCount: data.trailblazer.activeDaysCount ?? 0,\r\n\t\t\t},\r\n\t\t\tinnovationIcon: {\r\n\t\t\t\tenabled: data.innovationIcon.enabled ?? false,\r\n\t\t\t\tpoints: data.innovationIcon.points ?? 0,\r\n\t\t\t\tuniqueGamesCount: data.innovationIcon.uniqueGamesCount ?? 0,\r\n\t\t\t\tnewGamesCount: data.innovationIcon.newGamesCount ?? 0,\r\n\t\t\t\tbetsCount: data.innovationIcon.betsCount ?? 0,\r\n\t\t\t\tactiveDaysCount: data.innovationIcon.activeDaysCount ?? 0,\r\n\t\t\t},\r\n\t\t\trapidRoller: {\r\n\t\t\t\tenabled: data.rapidRoller.enabled ?? false,\r\n\t\t\t\tpoints: data.rapidRoller.points ?? 0,\r\n\t\t\t\tuniqueGamesCount: data.rapidRoller.uniqueGamesCount ?? 0,\r\n\t\t\t\tnewGamesCount: data.rapidRoller.newGamesCount ?? 0,\r\n\t\t\t\tbetsCount: data.rapidRoller.betsCount ?? 0,\r\n\t\t\t\tactiveDaysCount: data.rapidRoller.activeDaysCount ?? 0,\r\n\t\t\t},\r\n\t\t\twhirlwindWagerer: {\r\n\t\t\t\tenabled: data.whirlwindWagerer.enabled ?? false,\r\n\t\t\t\tpoints: data.whirlwindWagerer.points ?? 0,\r\n\t\t\t\tuniqueGamesCount: data.whirlwindWagerer.uniqueGamesCount ?? 0,\r\n\t\t\t\tnewGamesCount: data.whirlwindWagerer.newGamesCount ?? 0,\r\n\t\t\t\tbetsCount: data.whirlwindWagerer.betsCount ?? 0,\r\n\t\t\t\tactiveDaysCount: data.whirlwindWagerer.activeDaysCount ?? 0,\r\n\t\t\t},\r\n\t\t\tbettingBonanza: {\r\n\t\t\t\tenabled: data.bettingBonanza.enabled ?? false,\r\n\t\t\t\tpoints: data.bettingBonanza.points ?? 0,\r\n\t\t\t\tuniqueGamesCount: data.bettingBonanza.uniqueGamesCount ?? 0,\r\n\t\t\t\tnewGamesCount: data.bettingBonanza.newGamesCount ?? 0,\r\n\t\t\t\tbetsCount: data.bettingBonanza.betsCount ?? 0,\r\n\t\t\t\tactiveDaysCount: data.bettingBonanza.activeDaysCount ?? 0,\r\n\t\t\t},\r\n\t\t\tsteadyStrategist: {\r\n\t\t\t\tenabled: data.steadyStrategist.enabled ?? false,\r\n\t\t\t\tpoints: data.steadyStrategist.points ?? 0,\r\n\t\t\t\tuniqueGamesCount: data.steadyStrategist.uniqueGamesCount ?? 0,\r\n\t\t\t\tnewGamesCount: data.steadyStrategist.newGamesCount ?? 0,\r\n\t\t\t\tbetsCount: data.steadyStrategist.betsCount ?? 0,\r\n\t\t\t\tactiveDaysCount: data.steadyStrategist.activeDaysCount ?? 0,\r\n\t\t\t},\r\n\t\t\tconsistentContender: {\r\n\t\t\t\tenabled: data.consistentContender.enabled ?? false,\r\n\t\t\t\tpoints: data.consistentContender.points ?? 0,\r\n\t\t\t\tuniqueGamesCount: data.consistentContender.uniqueGamesCount ?? 0,\r\n\t\t\t\tnewGamesCount: data.consistentContender.newGamesCount ?? 0,\r\n\t\t\t\tbetsCount: data.consistentContender.betsCount ?? 0,\r\n\t\t\t\tactiveDaysCount: data.consistentContender.activeDaysCount ?? 0,\r\n\t\t\t},\r\n\t\t\tlegendaryLoyalist: {\r\n\t\t\t\tenabled: data.legendaryLoyalist.enabled ?? false,\r\n\t\t\t\tpoints: data.legendaryLoyalist.points ?? 0,\r\n\t\t\t\tuniqueGamesCount: data.legendaryLoyalist.uniqueGamesCount ?? 0,\r\n\t\t\t\tnewGamesCount: data.legendaryLoyalist.newGamesCount ?? 0,\r\n\t\t\t\tbetsCount: data.legendaryLoyalist.betsCount ?? 0,\r\n\t\t\t\tactiveDaysCount: data.legendaryLoyalist.activeDaysCount ?? 0,\r\n\t\t\t},\r\n\t\t};\r\n\t}\r\n\r\n\tprivate pointsClubSettings(\r\n\t\tdata: Internal.PointsClubSettings,\r\n\t): External.PointsClubSettings {\r\n\t\treturn {\r\n\t\t\tmultiplier: parseDecimal(data.multiplier, 0),\r\n\t\t};\r\n\t}\r\n\r\n\tprivate paymentSettings(\r\n\t\tdata: Internal.PaymentSettings,\r\n\t): External.PaymentSettings {\r\n\t\treturn {\r\n\t\t\tminimumFirstDepositAmount: parseDecimal(data.minimumFirstDepositAmount),\r\n\t\t\trestrictWithdrawalsToVerifiedMembers:\r\n\t\t\t\tdata.restrictWithdrawalsToVerifiedMembers,\r\n\t\t\tdepositGateway: {\r\n\t\t\t\tbank: {\r\n\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\tdata.bankDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled: data.bankDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled: data.bankDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\tdata.bankDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.bankDepositGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.bankDepositGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t),\r\n\t\t\t\t},\r\n\t\t\t\tgcash: {\r\n\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\tdata.gcashDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled: data.gcashDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled: data.gcashDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\tdata.gcashDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.gcashDepositGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.gcashDepositGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t),\r\n\t\t\t\t},\r\n\t\t\t\tgcashWebpay: {\r\n\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\tdata.gcashWebpayDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled:\r\n\t\t\t\t\t\tdata.gcashWebpayDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled:\r\n\t\t\t\t\t\tdata.gcashWebpayDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\tdata.gcashWebpayDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.gcashWebpayDepositGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.gcashWebpayDepositGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t),\r\n\t\t\t\t},\r\n\t\t\t\taioGcash: {\r\n\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\tdata.aioGcashDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled: data.aioGcashDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled: data.aioGcashDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\tdata.aioGcashDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.aioGcashDepositGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.aioGcashDepositGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t),\r\n\t\t\t\t},\r\n\t\t\t\taioPayMaya: {\r\n\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\tdata.aioPayMayaDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled:\r\n\t\t\t\t\t\tdata.aioPayMayaDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled:\r\n\t\t\t\t\t\tdata.aioPayMayaDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\tdata.aioPayMayaDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.aioPayMayaDepositGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.aioPayMayaDepositGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t),\r\n\t\t\t\t},\r\n\t\t\t\taioGrabPay: {\r\n\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\tdata.aioGrabPayDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled:\r\n\t\t\t\t\t\tdata.aioGrabPayDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled:\r\n\t\t\t\t\t\tdata.aioGrabPayDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\tdata.aioGrabPayDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.aioGrabPayDepositGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.aioGrabPayDepositGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t),\r\n\t\t\t\t},\r\n\t\t\t\taioPalawanPay: {\r\n\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\tdata.aioPalawanPayDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled:\r\n\t\t\t\t\t\tdata.aioPalawanPayDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled:\r\n\t\t\t\t\t\tdata.aioPalawanPayDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\tdata.aioPalawanPayDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.aioPalawanPayDepositGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.aioPalawanPayDepositGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t),\r\n\t\t\t\t},\r\n\t\t\t\tmaya: {\r\n\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\tdata.mayaDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled: data.mayaDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled: data.mayaDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\tdata.mayaDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.mayaDepositGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.mayaDepositGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t),\r\n\t\t\t\t},\r\n\t\t\t\tmayaApp: {\r\n\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\tdata.mayaAppDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled: data.mayaAppDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled: data.mayaAppDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\tdata.mayaAppDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.mayaAppDepositGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.mayaAppDepositGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t),\r\n\t\t\t\t},\r\n\t\t\t\tmayaWebpay: {\r\n\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\tdata.mayaWebpayDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled:\r\n\t\t\t\t\t\tdata.mayaWebpayDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled:\r\n\t\t\t\t\t\tdata.mayaWebpayDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\tdata.mayaWebpayDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.mayaWebpayDepositGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.mayaWebpayDepositGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t),\r\n\t\t\t\t},\r\n\t\t\t\tonlineBank: {\r\n\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\tdata.onlineBankDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled:\r\n\t\t\t\t\t\tdata.onlineBankDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled:\r\n\t\t\t\t\t\tdata.onlineBankDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\tdata.onlineBankDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.onlineBankDepositGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.onlineBankDepositGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t),\r\n\t\t\t\t},\r\n\t\t\t\tqrph: {\r\n\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\tdata.qrphDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled: data.qrphDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled: data.qrphDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\tdata.qrphDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.qrphDepositGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.qrphDepositGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t),\r\n\t\t\t\t},\r\n\t\t\t\tmanualBank: {\r\n\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\tdata.manualBankDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled:\r\n\t\t\t\t\t\tdata.manualBankDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled:\r\n\t\t\t\t\t\tdata.manualBankDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\tdata.manualBankDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.manualBankDepositGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.manualBankDepositGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t),\r\n\t\t\t\t\tbankAccountName:\r\n\t\t\t\t\t\tdata.manualBankDepositGatewaySettings?.bankAccountName,\r\n\t\t\t\t\tbankAccountNumber:\r\n\t\t\t\t\t\tdata.manualBankDepositGatewaySettings?.bankAccountNumber,\r\n\t\t\t\t\tbankIFSCCode: data.manualBankDepositGatewaySettings?.bankIFSCCode,\r\n\t\t\t\t},\r\n\t\t\t\tmanualUPI: {\r\n\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\tdata.manualUPIDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled: data.manualUPIDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled: data.manualUPIDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\tdata.manualUPIDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.manualUPIDepositGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.manualUPIDepositGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t),\r\n\t\t\t\t\tupiId: data.manualUPIDepositGatewaySettings?.upiId,\r\n\t\t\t\t\tupiQRCode: !data.manualUPIDepositGatewaySettings?.upiQRCode\r\n\t\t\t\t\t\t? null\r\n\t\t\t\t\t\t: (this.file(\r\n\t\t\t\t\t\t\t\tdata.manualUPIDepositGatewaySettings.upiQRCode,\r\n\t\t\t\t\t\t\t) as Extract<External.File, { status: 'READY' }>),\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\twithdrawalGateway: {\r\n\t\t\t\tbank: {\r\n\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\tdata.bankWithdrawalGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled: data.bankWithdrawalGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled: data.bankWithdrawalGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\tdata.bankWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.bankWithdrawalGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.bankWithdrawalGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t),\r\n\t\t\t\t},\r\n\t\t\t\tgcash: {\r\n\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\tdata.gcashWithdrawalGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled: data.gcashWithdrawalGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled: data.gcashWithdrawalGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\tdata.gcashWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.gcashWithdrawalGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.gcashWithdrawalGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t1000000,\r\n\t\t\t\t\t),\r\n\t\t\t\t},\r\n\t\t\t\tgcashStandardCashIn: {\r\n\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\tdata.gcashStandardCashInWithdrawalGatewaySettings?.androidEnabled ??\r\n\t\t\t\t\t\tfalse,\r\n\t\t\t\t\tiosEnabled:\r\n\t\t\t\t\t\tdata.gcashStandardCashInWithdrawalGatewaySettings?.iosEnabled ??\r\n\t\t\t\t\t\tfalse,\r\n\t\t\t\t\twebEnabled:\r\n\t\t\t\t\t\tdata.gcashStandardCashInWithdrawalGatewaySettings?.webEnabled ??\r\n\t\t\t\t\t\tfalse,\r\n\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\tdata.gcashStandardCashInWithdrawalGatewaySettings\r\n\t\t\t\t\t\t\t?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.gcashStandardCashInWithdrawalGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.gcashStandardCashInWithdrawalGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t1000000,\r\n\t\t\t\t\t),\r\n\t\t\t\t},\r\n\t\t\t\tmaya: {\r\n\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\tdata.mayaWithdrawalGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled: data.mayaWithdrawalGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled: data.mayaWithdrawalGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\tdata.mayaWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.mayaWithdrawalGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.mayaWithdrawalGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t),\r\n\t\t\t\t},\r\n\t\t\t\tmayaApp: {\r\n\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\tdata.mayaAppWithdrawalGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled:\r\n\t\t\t\t\t\tdata.mayaAppWithdrawalGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled:\r\n\t\t\t\t\t\tdata.mayaAppWithdrawalGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\tdata.mayaAppWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.mayaAppWithdrawalGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.mayaAppWithdrawalGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t1000000,\r\n\t\t\t\t\t),\r\n\t\t\t\t},\r\n\t\t\t\tinstapay: {\r\n\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\tdata.instapayWithdrawalGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled:\r\n\t\t\t\t\t\tdata.instapayWithdrawalGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled:\r\n\t\t\t\t\t\tdata.instapayWithdrawalGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\tdata.instapayWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.instapayWithdrawalGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.instapayWithdrawalGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t1000000,\r\n\t\t\t\t\t),\r\n\t\t\t\t},\r\n\t\t\t\tmanualBank: {\r\n\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\tdata.manualBankWithdrawalGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled:\r\n\t\t\t\t\t\tdata.manualBankWithdrawalGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled:\r\n\t\t\t\t\t\tdata.manualBankWithdrawalGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\tdata.manualBankWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.manualBankWithdrawalGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.manualBankWithdrawalGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t1000000,\r\n\t\t\t\t\t),\r\n\t\t\t\t},\r\n\t\t\t\tmanualUPI: {\r\n\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\tdata.manualUPIWithdrawalGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled:\r\n\t\t\t\t\t\tdata.manualUPIWithdrawalGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled:\r\n\t\t\t\t\t\tdata.manualUPIWithdrawalGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\tdata.manualUPIWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.manualUPIWithdrawalGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.manualUPIWithdrawalGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t1000000,\r\n\t\t\t\t\t),\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t};\r\n\t}\r\n\r\n\tprivate account(\r\n\t\tdata: Internal.MemberAccount & Internal.Member,\r\n\t): External.Account {\r\n\t\tconst o: External.Account = {\r\n\t\t\tid: data.id,\r\n\t\t\tname: data.name,\r\n\t\t\tstatus: data.status,\r\n\t\t\tverified: data.verified,\r\n\t\t\tnickName: data.nickName ?? undefined,\r\n\t\t\trealName: data.realName ?? undefined,\r\n\t\t\tdateOfBirth: data.birthDay ? new Date(data.birthDay) : undefined,\r\n\t\t\temailAddress: data.emailAddress ?? undefined,\r\n\t\t\tmobileNumber: data.mobileNumber ?? undefined,\r\n\t\t\tmobileNumberVerified: data.mobileNumberVerified ?? false,\r\n\t\t\tmobileNumberVerificationRequired:\r\n\t\t\t\tdata.mobileNumberVerificationRequired ?? false,\r\n\t\t\tvalidId: data.validId || undefined,\r\n\t\t\tverificationStatus: data.verificationStatus,\r\n\t\t\ttransactionPassword: data.transactionPassword,\r\n\t\t\tsecretAnswerSubmitted: data.secretAnswerSubmitted ?? false,\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\r\n\t\t\tcurrentActiveDaysCount: data.currentActiveDaysCount,\r\n\t\t\tcurrentBetsCount: data.currentBetsCount,\r\n\t\t\tcurrentNewGamesCount: data.currentNewGamesCount,\r\n\t\t\tcurrentAchievements: data.currentAchievements,\r\n\t\t\tcurrentUniqueGamesCount: data.currentUniqueGamesCount,\r\n\t\t\tdateTimeLastLeveledUp: new Date(data.dateTimeLastLeveledUp),\r\n\t\t\tcurrentMonthlyAchievementPoints: data.currentMonthlyAchievementPoints,\r\n\t\t\tachievementPointsLevelUpProgressPercentage:\r\n\t\t\t\tdata.achievementPointsLevelUpProgressPercentage,\r\n\t\t\tcurrentMonthlyTurnover: data.currentMonthlyTurnover,\r\n\t\t\tturnoverLevelUpProgressPercentage: data.turnoverLevelUpProgressPercentage,\r\n\t\t\tgoogleId: data.googleId,\r\n\t\t\tdomain: data.domain ?? null,\r\n\t\t\tbranchCode: data.branchCode ?? undefined,\r\n\t\t\tagent: data.agent ?? null,\r\n\t\t\tlevel: data.level ?? 0,\r\n\t\t\tdateTimeLastActive: data.dateTimeLastActive\r\n\t\t\t\t? new Date(data.dateTimeLastActive)\r\n\t\t\t\t: undefined,\r\n\t\t\tpartition: data.partition,\r\n\t\t\tgigRewardsQuestDetails: data.gigRewardsQuestDetails ?? undefined,\r\n\t\t\tbonusBlocked: data.bonusBlocked ?? false,\r\n\t\t\tdailyBetLimit: parseDecimal(data.dailyBetLimit),\r\n\t\t\tmonthlyBetLimit: parseDecimal(data.monthlyBetLimit),\r\n\t\t\tdailyDepositLimit: parseDecimal(data.dailyDepositLimit),\r\n\t\t\tmonthlyDepositLimit: parseDecimal(data.monthlyDepositLimit),\r\n\t\t\tnewDailyBetLimit: parseDecimal(data.newDailyBetLimit),\r\n\t\t\tnewMonthlyBetLimit: parseDecimal(data.newMonthlyBetLimit),\r\n\t\t\tnewDailyDepositLimit: parseDecimal(data.newDailyDepositLimit),\r\n\t\t\tnewMonthlyDepositLimit: parseDecimal(data.newMonthlyDepositLimit),\r\n\t\t\tcellxpertDetails: data.cellxpertDetails ?? null,\r\n\t\t};\r\n\r\n\t\treturn compact(o);\r\n\t}\r\n\r\n\tprivate wallet(data: Internal.Wallet): External.Wallet {\r\n\t\tconst o: External.Wallet = {\r\n\t\t\tid: data.id,\r\n\t\t\tbalance: parseDecimal(data.balance, 0),\r\n\t\t\tturnoverRequirement: parseDecimal(data.turnoverRequirement),\r\n\t\t};\r\n\r\n\t\treturn o;\r\n\t}\r\n\r\n\tprivate walletAccount(\r\n\t\tdata: Internal.MemberWalletAccount,\r\n\t): External.MemberWalletAccount {\r\n\t\tconst o: External.MemberWalletAccount = {\r\n\t\t\tid: data.id,\r\n\t\t\tdailyTotalBet: parseDecimal(data.dailyTotalBet, 0),\r\n\t\t\tmonthlyTotalBet: parseDecimal(data.monthlyTotalBet, 0),\r\n\t\t\tdailyTotalDeposit: parseDecimal(data.dailyTotalDeposit, 0),\r\n\t\t\tmonthlyTotalDeposit: parseDecimal(data.monthlyTotalDeposit, 0),\r\n\t\t};\r\n\r\n\t\treturn o;\r\n\t}\r\n\r\n\tprivate verificationDetails(\r\n\t\tdata: Internal.MemberVerification,\r\n\t): External.VerificationDetails {\r\n\t\tconst o: External.VerificationDetails = {\r\n\t\t\tid: data.id,\r\n\t\t\tstatus: data.status,\r\n\t\t\taddress: data.address,\r\n\t\t\tpermanentAddress: data.permanentAddress,\r\n\t\t\tnationality: data.nationality,\r\n\t\t\tnatureOfWork: data.natureOfWork,\r\n\t\t\tplaceOfBirth: data.placeOfBirth,\r\n\t\t\tsourceOfIncome: data.sourceOfIncome,\r\n\t\t\tselfieImage: data?.selfieImage\r\n\t\t\t\t? (this.file(data?.selfieImage) as External.File)\r\n\t\t\t\t: null,\r\n\t\t\tidFrontImage: data?.idFrontImage\r\n\t\t\t\t? (this.file(data?.idFrontImage) as External.File)\r\n\t\t\t\t: null,\r\n\t\t};\r\n\r\n\t\treturn o;\r\n\t}\r\n\r\n\tprivate profileCompletion(\r\n\t\tdata: Internal.ProfileCompletion,\r\n\t): External.ProfileCompletion {\r\n\t\tconst o: External.ProfileCompletion = {\r\n\t\t\taccountPassword: data.accountPassword ?? false,\r\n\t\t\taccountVerification: data.accountVerification ?? false,\r\n\t\t\tmobileNumberVerification: data.mobileNumberVerification ?? false,\r\n\t\t\tpersonalInformation: data.personalInformation ?? false,\r\n\t\t\ttransactionPassword: data.transactionPassword ?? false,\r\n\t\t\tcompletionPercentage: parseDecimal(data.completionPercentage, 0),\r\n\t\t};\r\n\r\n\t\treturn o;\r\n\t}\r\n\r\n\tprivate announcement(data: Internal.Announcement): External.Announcement {\r\n\t\tconst o: External.Announcement = {\r\n\t\t\tid: data.id,\r\n\t\t\ttype: data.type,\r\n\t\t\ttitle: data.title,\r\n\t\t\tstatus: data.status,\r\n\t\t\tmessage: data.message,\r\n\t\t\tactivationEndDateTime: new Date(data.activationEndDateTime),\r\n\t\t\tactivationStartDateTime: new Date(data.activationStartDateTime),\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\r\n\t\t};\r\n\r\n\t\treturn o;\r\n\t}\r\n\r\n\tprivate withdrawalRecord(\r\n\t\tdata: Internal.WithdrawalRecord,\r\n\t): External.WithdrawalRecord {\r\n\t\tconst o = {\r\n\t\t\tid: data.id,\r\n\t\t\ttype: data.type,\r\n\t\t\tbank: data.bank!,\r\n\t\t\tbankName: data.bankName ?? undefined,\r\n\t\t\tstatus: data.status,\r\n\t\t\tamount: parseDecimal(data.amount, 0),\r\n\t\t\tnetAmount: parseDecimal(data.netAmount, 0),\r\n\t\t\tfee: parseDecimal(data.fee, 0),\r\n\t\t\treference: data.reference ?? undefined,\r\n\t\t\taccountName: data.accountName ?? undefined,\r\n\t\t\terror: data.error ?? undefined,\r\n\t\t\twithdrawalNumber: data.withdrawalNumber,\r\n\t\t\tserialCode: data.serialCode,\r\n\t\t\trecipientMobileNumber: data.recipientMobileNumber ?? undefined,\r\n\t\t\tdateTimeConfirmed: data.dateTimeConfirmed\r\n\t\t\t\t? new Date(data.dateTimeConfirmed)\r\n\t\t\t\t: undefined,\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\r\n\t\t} as External.WithdrawalRecord;\r\n\r\n\t\treturn compact(o);\r\n\t}\r\n\r\n\tprivate deposit(data: Internal.Deposit): External.Deposit {\r\n\t\tconst o: External.Deposit = {\r\n\t\t\tid: data.id,\r\n\t\t\ttype: data.type,\r\n\t\t\tstatus: data.status,\r\n\t\t\tvca: data.vca ?? undefined,\r\n\t\t\tqrCode: data.qrCode ?? undefined,\r\n\t\t\tcheckoutUrl: data.checkoutUrl ?? undefined,\r\n\t\t\terror: data.error ?? undefined,\r\n\t\t} as External.Deposit;\r\n\r\n\t\treturn compact(o);\r\n\t}\r\n\r\n\tprivate depositRecord(data: Internal.DepositRecord): External.DepositRecord {\r\n\t\tconst o: External.DepositRecord = {\r\n\t\t\tid: data.id,\r\n\t\t\ttype: data.type,\r\n\t\t\tstatus: data.status,\r\n\t\t\tamount: parseDecimal(data.amount, 0),\r\n\t\t\tfee: parseDecimal(data.fee, 0),\r\n\t\t\tnetAmount: parseDecimal(data.netAmount, 0),\r\n\t\t\treference: data.reference ?? undefined,\r\n\t\t\tdeposit: data.deposit,\r\n\t\t\tdepositNumber: data.depositNumber,\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\r\n\t\t\terror: data.error ?? undefined,\r\n\t\t};\r\n\r\n\t\treturn compact(o);\r\n\t}\r\n\r\n\tprivate betRecord(\r\n\t\tdata: Assign<Internal.BetRecord, { game?: Internal.Game }>,\r\n\t): External.BetRecord {\r\n\t\tconst o: External.BetRecord = {\r\n\t\t\tid: data.id,\r\n\t\t\tbet: parseDecimal(data.bet, 0),\r\n\t\t\tpayout: parseDecimal(data.payout, 0),\r\n\t\t\todds: data.odds,\r\n\t\t\tstatus: data.status,\r\n\t\t\tjackpotContribution: parseDecimal(data.jackpotContribution, 0),\r\n\t\t\tjackpotPayout: parseDecimal(data.jackpotPayout, 0),\r\n\t\t\twinloss: parseDecimal(data.winloss),\r\n\t\t\tvalidBet: parseDecimal(data.validBet, 0),\r\n\t\t\tvendorRoundId: data.vendorRoundId ?? undefined,\r\n\t\t\tgame: data.game ? this.game(data.game) : undefined,\r\n\t\t\tserialCode: data.serialCode,\r\n\t\t\tdateTimeSettled: data.dateTimeSettled\r\n\t\t\t\t? new Date(data.dateTimeSettled)\r\n\t\t\t\t: undefined,\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\r\n\t\t\tbetContent: data.betContent ?? undefined,\r\n\t\t\tcontestName: data.contestName ?? undefined,\r\n\t\t\texternalCategory: data.externalCategory ?? undefined,\r\n\t\t\tfreeBetPayout: parseDecimal(data.freeBetPayout, 0),\r\n\t\t\tfreeBetDrop: data.freeBetDrop\r\n\t\t\t\t? this.freeBetDrops(data.freeBetDrop)\r\n\t\t\t\t: undefined,\r\n\t\t\tmetadata: {\r\n\t\t\t\todds: data.metadata?.odds ?? undefined,\r\n\t\t\t},\r\n\t\t};\r\n\r\n\t\treturn compact(o);\r\n\t}\r\n\r\n\tprivate freeBetDrops(data: Internal.FreeBetDrop): External.FreeBetDrop {\r\n\t\tconst o: External.FreeBetDrop = {\r\n\t\t\tid: data.id,\r\n\t\t\tbets: parseDecimal(data.bets, 0),\r\n\t\t\tpayout: data.payout,\r\n\t\t\tactivationDateTime: new Date(data.activationDateTime),\r\n\t\t\texpirationDateTime: new Date(data.expirationDateTime),\r\n\t\t\tbetValue: data.betValue,\r\n\t\t\tremainingBets: parseDecimal(data.remainingBets, 0),\r\n\t\t\tname: data.name,\r\n\t\t\tdescription: data.description,\r\n\t\t\tgames: data.games,\r\n\t\t\tstatus: data.status,\r\n\t\t\tgameProvider: data.gameProvider,\r\n\t\t\tdateTimeCompleted: data.dateTimeCompleted\r\n\t\t\t\t? new Date(data.dateTimeCompleted)\r\n\t\t\t\t: undefined,\r\n\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\r\n\t\t};\r\n\t\treturn compact(o);\r\n\t}\r\n\r\n\tprivate memberFreeBetDrops(\r\n\t\tdata: Internal.MemberFreeBetDrop,\r\n\t): External.MemberFreeBetDrop {\r\n\t\tconst o: External.MemberFreeBetDrop = {\r\n\t\t\tid: data.id,\r\n\t\t\tbets: parseDecimal(data.bets, 0),\r\n\t\t\tpayout: data.payout,\r\n\t\t\tactivationDateTime: new Date(data.activationDateTime),\r\n\t\t\texpirationDateTime: new Date(data.expirationDateTime),\r\n\t\t\tbetValue: data.betValue,\r\n\t\t\tremainingBets: parseDecimal(data.remainingBets, 0),\r\n\t\t\tname: data.name,\r\n\t\t\tgameProvider: data.gameProvider,\r\n\t\t\tdescription: data.description,\r\n\t\t\tgames: data.games,\r\n\t\t\tstatus: data.status,\r\n\r\n\t\t\tdateTimeCompleted: data.dateTimeCompleted\r\n\t\t\t\t? new Date(data.dateTimeCompleted)\r\n\t\t\t\t: undefined,\r\n\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\r\n\t\t\tserialCode: data.serialCode,\r\n\t\t};\r\n\t\treturn compact(o);\r\n\t}\r\n\r\n\tprivate latestBetRecord(\r\n\t\tdata: Assign<Internal.LatestBetRecord, { game?: Internal.Game }>,\r\n\t): External.LatestBetRecord {\r\n\t\tconst o: External.LatestBetRecord = {\r\n\t\t\tid: data.id,\r\n\t\t\tmember: data.member,\r\n\t\t\tgame: data.game ? this.game(data.game) : undefined,\r\n\t\t\tbet: parseDecimal(data.bet, 0),\r\n\t\t\tpayout: parseDecimal(data.payout, 0),\r\n\t\t\tvalidBet: parseDecimal(data.validBet, 0),\r\n\t\t\tdateTimeSettled: new Date(data.dateTimeSettled),\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t};\r\n\r\n\t\treturn o;\r\n\t}\r\n\r\n\tprivate transactionRecord(\r\n\t\tdata: Internal.TransactionRecord,\r\n\t): External.TransactionRecord {\r\n\t\tconst o: External.TransactionRecord = {\r\n\t\t\tid: data.id,\r\n\t\t\ttype: data.type,\r\n\t\t\tamount: parseDecimal(data.amount, 0),\r\n\t\t\tcontent: data.content ?? undefined,\r\n\t\t\tcurrentBalance: parseDecimal(data.currentBalance, 0),\r\n\t\t\tcurrentBonusBalance: parseDecimal(data.currentBonusBalance, 0),\r\n\t\t\treferenceNumber: data.referenceNumber,\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t};\r\n\r\n\t\treturn compact(o);\r\n\t}\r\n\r\n\tprivate game(data: Internal.Game): External.Game {\r\n\t\tconst images = [data.customImage, data.image].filter(Boolean).map((url) => {\r\n\t\t\tinvariant(url);\r\n\r\n\t\t\treturn url.includes('?')\r\n\t\t\t\t? `${url}&cache_id=${IMAGE_CACHE_ID}`\r\n\t\t\t\t: `${url}?cache_id=${IMAGE_CACHE_ID}`;\r\n\t\t});\r\n\r\n\t\tconst o: External.Game = {\r\n\t\t\tid: data.id,\r\n\t\t\ttype: data.type,\r\n\t\t\ttags: data.tags ?? [],\r\n\t\t\tname: data.name,\r\n\t\t\timages,\r\n\t\t\tprovider: data.provider,\r\n\t\t\treference: data.reference,\r\n\t\t\tfavorite: data.favorite,\r\n\t\t};\r\n\r\n\t\treturn o;\r\n\t}\r\n\r\n\tprivate gameSession(data: Internal.GameSession): External.GameSession {\r\n\t\tconst o = {\r\n\t\t\tid: data.id,\r\n\t\t\tstatus: data.status,\r\n\t\t\tlaunchUrl: data.launchUrl ?? undefined,\r\n\t\t\tlaunchOptions: data?.launchOptions ?? undefined,\r\n\t\t} as External.GameSession;\r\n\r\n\t\treturn compact(o);\r\n\t}\r\n\r\n\tprivate promo(data: Internal.Promo): External.Promo {\r\n\t\treturn {\r\n\t\t\tid: data.id,\r\n\t\t\ttype: data.type,\r\n\t\t\tname: data.name,\r\n\t\t\tstatus: data.status,\r\n\t\t\tdescription: data.description,\r\n\t\t\tbanner: !data.banner\r\n\t\t\t\t? null\r\n\t\t\t\t: (this.file(data.banner) as Extract<\r\n\t\t\t\t\t\tExternal.File,\r\n\t\t\t\t\t\t{ status: 'READY' }\r\n\t\t\t\t\t>),\r\n\t\t\tmaximumBonusAmount: parseDecimal(data.maximumBonusAmount),\r\n\t\t\tminimumBonusAmount: parseDecimal(data.minimumBonusAmount),\r\n\t\t\tmaximumDepositAmount: parseDecimal(data.maximumDepositAmount),\r\n\t\t\tminimumDepositAmount: parseDecimal(data.minimumDepositAmount),\r\n\t\t\tdepositBonusAmountPercentage: parseDecimal(\r\n\t\t\t\tdata.depositBonusAmountPercentage,\r\n\t\t\t),\r\n\t\t\tturnoverRequirementContributionPercentagePerGameProvider:\r\n\t\t\t\tdata.turnoverRequirementContributionPercentagePerGameProvider,\r\n\t\t\tactivationEndDateTime: new Date(data.activationEndDateTime),\r\n\t\t\tactivationStartDateTime: new Date(data.activationStartDateTime),\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\r\n\t\t};\r\n\t}\r\n\r\n\tprivate cashback(data: Internal.Cashback): External.Cashback {\r\n\t\tconst o: External.Cashback = {\r\n\t\t\tid: data.id,\r\n\t\t\tname: data.name,\r\n\t\t\tdescription: data.description,\r\n\t\t\tstatus: data.status,\r\n\t\t\tminimumCashback: parseDecimal(data.minimumCashback, 0),\r\n\t\t\tmaximumMonthlyCashback: parseDecimal(data.maximumMonthlyCashback),\r\n\t\t\tbanner: !data.banner\r\n\t\t\t\t? null\r\n\t\t\t\t: (this.file(data.banner) as Extract<\r\n\t\t\t\t\t\tExternal.File,\r\n\t\t\t\t\t\t{ status: 'READY' }\r\n\t\t\t\t\t>),\r\n\t\t\tactivationEndDateTime: new Date(data.activationEndDateTime),\r\n\t\t\tactivationStartDateTime: new Date(data.activationStartDateTime),\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\r\n\t\t\tturnoverContributionPercentagePerGameProvider: Object.entries(\r\n\t\t\t\tdata.turnoverContributionPercentagePerGameProvider,\r\n\t\t\t).reduce<Partial<Record<External.GameProvider, number>>>((o, [k, v]) => {\r\n\t\t\t\to[k as External.GameProvider] = parseDecimal(v, 0);\r\n\t\t\t\treturn o;\r\n\t\t\t}, {}),\r\n\t\t};\r\n\r\n\t\treturn o;\r\n\t}\r\n\r\n\tprivate bonus(data: Internal.Bonus): External.Bonus {\r\n\t\tconst o: External.Bonus = {\r\n\t\t\tid: data.id,\r\n\t\t\tpromo: this.promo(data.promo),\r\n\t\t\tdeposit: !data.deposit\r\n\t\t\t\t? undefined\r\n\t\t\t\t: {\r\n\t\t\t\t\t\ttype: data.deposit.type,\r\n\t\t\t\t\t\tstatus: data.deposit.status,\r\n\t\t\t\t\t\tfee: parseDecimal(data.deposit.fee, 0),\r\n\t\t\t\t\t\tamount: parseDecimal(data.deposit.amount, 0),\r\n\t\t\t\t\t\tnetAmount: parseDecimal(data.deposit.netAmount, 0),\r\n\t\t\t\t\t\treference: data.deposit.reference ?? undefined,\r\n\t\t\t\t\t\tdateTimeCreated: new Date(data.deposit.dateTimeCreated),\r\n\t\t\t\t\t\tdateTimeLastUpdated: new Date(data.deposit.dateTimeLastUpdated),\r\n\t\t\t\t\t},\r\n\t\t\tbalance: parseDecimal(data.balance, 0),\r\n\t\t\tamount: parseDecimal(data.amount, 0),\r\n\t\t\texpiration: new Date(data.expiration),\r\n\t\t\tturnoverRequirement: parseDecimal(data.turnoverRequirement, 0),\r\n\t\t\tcurrentTurnoverRequirementContribution: parseDecimal(\r\n\t\t\t\tdata.currentTurnoverRequirementContribution,\r\n\t\t\t\t0,\r\n\t\t\t),\r\n\t\t\tcurrentTurnoverRequirementContributionPercentage: parseDecimal(\r\n\t\t\t\tdata.currentTurnoverRequirementContributionPercentage,\r\n\t\t\t\t0,\r\n\t\t\t),\r\n\t\t\t// @ts-expect-error \"\"\r\n\t\t\tturnoverRequirementContributionPercentagePerGameProvider:\r\n\t\t\t\tdata.turnoverRequirementContributionPercentagePerGameProvider,\r\n\t\t\tenabledGameProviders: data.enabledGameProviders,\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\r\n\t\t};\r\n\r\n\t\treturn compact(o);\r\n\t}\r\n\r\n\tprivate cashbackBonus(data: Internal.CashbackBonus): External.CashbackBonus {\r\n\t\tconst o: External.CashbackBonus = {\r\n\t\t\tid: data.id,\r\n\t\t\ttotal: parseDecimal(data.total, 0),\r\n\t\t\tbalance: parseDecimal(data.balance, 0),\r\n\t\t\tcashback: this.cashback(data.cashback),\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\r\n\t\t};\r\n\r\n\t\treturn o;\r\n\t}\r\n\r\n\tprivate memberCabinetSiteMachine(\r\n\t\tdata: Internal.CabinetSiteMachine,\r\n\t): External.CabinetSiteMachine {\r\n\t\tconst o: External.CabinetSiteMachine = {\r\n\t\t\tid: data.id,\r\n\t\t\tname: data.name,\r\n\t\t\tfingerprint: data.fingerprint,\r\n\t\t\tstatus: data.status,\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t};\r\n\r\n\t\treturn o;\r\n\t}\r\n\r\n\tprivate file(data: Internal.File): External.File {\r\n\t\tconst o = {\r\n\t\t\tid: data.id,\r\n\t\t\turl: data.url ?? undefined,\r\n\t\t\tstatus: data.status,\r\n\t\t} as External.File;\r\n\r\n\t\treturn compact(o);\r\n\t}\r\n\r\n\tprivate pointsWallet(data: Internal.PointsWallet): External.PointsWallet {\r\n\t\tconst o: External.PointsWallet = {\r\n\t\t\tid: data.id,\r\n\t\t\tpoints: parseDecimal(data.points, 0),\r\n\t\t\taccount: data.account,\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t};\r\n\r\n\t\treturn o;\r\n\t}\r\n\r\n\tprivate pointsWalletTransaction(\r\n\t\tdata: Internal.PointsWalletTransaction,\r\n\t): External.PointsWalletTransaction {\r\n\t\tconst o: External.PointsWalletTransaction = {\r\n\t\t\tid: data.id,\r\n\t\t\ttype: data.type,\r\n\t\t\tamount: parseDecimal(data.amount, 0),\r\n\t\t\tbalance: parseDecimal(data.balance, 0),\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t};\r\n\r\n\t\treturn o;\r\n\t}\r\n\r\n\tprivate rebate(data: Internal.Rebate): External.Rebate {\r\n\t\tconst o: External.Rebate = {\r\n\t\t\tid: data.id,\r\n\t\t\trebateProgram: {\r\n\t\t\t\tid: data.rebateProgram.id,\r\n\t\t\t\tbanner: data.rebateProgram.banner\r\n\t\t\t\t\t? {\r\n\t\t\t\t\t\t\tid: data.rebateProgram.banner.id,\r\n\t\t\t\t\t\t\turl: data.rebateProgram.banner.url ?? undefined,\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t: undefined,\r\n\t\t\t\tdescription: data.rebateProgram.description,\r\n\t\t\t\tname: data.rebateProgram.name,\r\n\t\t\t\trebatePercentage: parseDecimal(data.rebateProgram.rebatePercentage),\r\n\t\t\t\trebateSettingsPerMemberLevel:\r\n\t\t\t\t\tdata.rebateProgram.rebateSettingsPerMemberLevel?.map((settings) => ({\r\n\t\t\t\t\t\tlevel: settings.level,\r\n\t\t\t\t\t\tpercentage: parseDecimal(settings.percentage, 0),\r\n\t\t\t\t\t})),\r\n\t\t\t\ttype: data.rebateProgram.type,\r\n\t\t\t\tdateTimeCreated: data.rebateProgram.dateTimeCreated\r\n\t\t\t\t\t? new Date(data.rebateProgram.dateTimeCreated)\r\n\t\t\t\t\t: undefined,\r\n\t\t\t},\r\n\t\t\tamount: parseDecimal(data.amount, 0),\r\n\t\t\tpercentage: parseDecimal(data.percentage),\r\n\t\t\tstatus: data.status,\r\n\t\t\texpirationDateTime: data.expirationDateTime\r\n\t\t\t\t? new Date(data.expirationDateTime)\r\n\t\t\t\t: undefined,\r\n\t\t\tdateTimeClaimed: data.dateTimeClaimed\r\n\t\t\t\t? new Date(data.dateTimeClaimed)\r\n\t\t\t\t: undefined,\r\n\t\t\tdateTimeExpired: data.dateTimeExpired\r\n\t\t\t\t? new Date(data.dateTimeExpired)\r\n\t\t\t\t: undefined,\r\n\t\t\tendDateTime: data.endDateTime ? new Date(data.endDateTime) : undefined,\r\n\t\t\tstartDateTime: data.startDateTime\r\n\t\t\t\t? new Date(data.startDateTime)\r\n\t\t\t\t: undefined,\r\n\r\n\t\t\tdateTimeCreated: data.dateTimeCreated\r\n\t\t\t\t? new Date(data.dateTimeCreated)\r\n\t\t\t\t: undefined,\r\n\t\t};\r\n\r\n\t\treturn compact(o);\r\n\t}\r\n\r\n\tprivate achievementPointsHistoryRecord(\r\n\t\tdata: Internal.AchievementPointsHistoryRecord,\r\n\t): External.AchievementPointsHistoryRecord {\r\n\t\tconst o: External.AchievementPointsHistoryRecord = {\r\n\t\t\tid: data.id,\r\n\t\t\ttype: data.type,\r\n\t\t\tpoints: parseDecimal(data.points, 0),\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t};\r\n\r\n\t\treturn o;\r\n\t}\r\n\r\n\tprivate activityRecord(\r\n\t\tdata: Internal.ActivityRecord,\r\n\t): External.ActivityRecord {\r\n\t\tconst o: External.ActivityRecord = {\r\n\t\t\tid: data.id,\r\n\t\t\ttype: data.type,\r\n\t\t\tamount: data.amount ? parseDecimal(data.amount, 0) : undefined,\r\n\t\t\tdomain: data.domain ?? undefined,\r\n\t\t\tdetails: data.details,\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t};\r\n\r\n\t\treturn compact(o);\r\n\t}\r\n\r\n\tprivate referral(data: Internal.Referral): External.Referral {\r\n\t\tconst o: External.Referral = {\r\n\t\t\tid: data.id,\r\n\t\t\tlevel: data.level,\r\n\t\t\tupline: data.upline,\r\n\t\t\tdownline: data.downline,\r\n\t\t\tturnover: parseDecimal(data.turnover, 0),\r\n\t\t\tcommission: parseDecimal(data.commission, 0),\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t\tqualified: data.qualified,\r\n\t\t};\r\n\r\n\t\treturn o;\r\n\t}\r\n\r\n\tprivate referralCommission(\r\n\t\tdata: Internal.ReferralCommission,\r\n\t): External.ReferralCommission {\r\n\t\tconst o: External.ReferralCommission = {\r\n\t\t\tid: data.id,\r\n\t\t\tcommission: parseDecimal(data.commission, 0),\r\n\t\t\tlevel1Commission: parseDecimal(data.level1Commission, 0),\r\n\t\t\tlevel2Commission: parseDecimal(data.level2Commission, 0),\r\n\t\t\tlevel3Commission: parseDecimal(data.level3Commission, 0),\r\n\t\t\treferralsCount: data.referralsCount,\r\n\t\t\tlevel1ReferralsCount: data.level1ReferralsCount,\r\n\t\t\tlevel2ReferralsCount: data.level2ReferralsCount,\r\n\t\t\tlevel3ReferralsCount: data.level3ReferralsCount,\r\n\t\t\treferralCode: data.referralCode,\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\r\n\t\t};\r\n\r\n\t\treturn o;\r\n\t}\r\n\r\n\tprivate message(data: Internal.Message): External.Message {\r\n\t\treturn {\r\n\t\t\tid: data.id,\r\n\t\t\ticon: data.icon,\r\n\t\t\tlogo: data.logo,\r\n\t\t\timage: data.image,\r\n\t\t\ttitle: data.title,\r\n\t\t\tpopup: data.popup,\r\n\t\t\tforce: data.force,\r\n\t\t\tcontent: data.content,\r\n\t\t\tactions: data.actions,\r\n\t\t\tmarkedAsRead: data.markedAsRead,\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t\ttype: data.type,\r\n\t\t\tmetadata: !data.metadata\r\n\t\t\t\t? null\r\n\t\t\t\t: {\r\n\t\t\t\t\t\ttournament: data.metadata.tournament,\r\n\t\t\t\t\t\tpayout: {\r\n\t\t\t\t\t\t\tid: data.metadata.payout.id,\r\n\t\t\t\t\t\t\tamount: parseDecimal(data.metadata.payout.amount, 0),\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t},\r\n\t\t};\r\n\t}\r\n\r\n\tprivate instapayBank(data: Internal.InstapayBank): External.InstapayBank {\r\n\t\treturn data;\r\n\t}\r\n\r\n\tprivate promoByCode(data: Internal.SpotBonusPromo): External.SpotBonusPromo {\r\n\t\treturn {\r\n\t\t\tactiveBonusesCount: data.activeBonusesCount,\r\n\t\t\tbonusesCount: data.bonusesCount,\r\n\t\t\tcancelledBonusesCount: data.cancelledBonusesCount,\r\n\t\t\tclearedBonusesCount: data.clearedBonusesCount,\r\n\t\t\tclosedBonusesCount: data.closedBonusesCount,\r\n\t\t\tclosedBonusesCountPercentage: parseDecimal(\r\n\t\t\t\tdata.closedBonusesCountPercentage,\r\n\t\t\t\t0,\r\n\t\t\t),\r\n\t\t\tcode: data.code,\r\n\t\t\tdaysToClear: data.daysToClear,\r\n\t\t\tenabledGameProviders: data.enabledGameProviders,\r\n\t\t\tid: data.id,\r\n\t\t\texpiredBonusesCount: data.expiredBonusesCount,\r\n\t\t\tmaximumBonusesCountLimit: data.maximumBonusesCountLimit,\r\n\t\t\tname: data.name,\r\n\t\t\tstatus: data.status,\r\n\t\t\ttotalBet: parseDecimal(data.totalBet, 0),\r\n\t\t\ttotalBonus: parseDecimal(data.totalBonus, 0),\r\n\t\t\ttotalBonusBalance: parseDecimal(data.totalBonusBalance, 0),\r\n\t\t\ttotalBonusCashedOut: parseDecimal(data.totalBonusCashedOut, 0),\r\n\t\t\ttotalDeposit: parseDecimal(data.totalDeposit, 0),\r\n\t\t\tturnoverRequirementMultiplier: parseDecimal(\r\n\t\t\t\tdata.turnoverRequirementMultiplier,\r\n\t\t\t\t0,\r\n\t\t\t),\r\n\t\t\ttype: data.type,\r\n\t\t\tzeroedOutBonusesCount: data.zeroedOutBonusesCount,\r\n\t\t\tzeroOutThreshold: parseDecimal(data.zeroOutThreshold, 0),\r\n\t\t\tbonusAmount: parseDecimal(data.bonusAmount, 0),\r\n\t\t\tdescription: data.description,\r\n\t\t\tturnoverRequirementType: data.turnoverRequirementType,\r\n\t\t\tactivationEndDateTime: data.activationEndDateTime\r\n\t\t\t\t? new Date(data.activationEndDateTime)\r\n\t\t\t\t: undefined,\r\n\t\t\tactivationStartDateTime: data.activationStartDateTime\r\n\t\t\t\t? new Date(data.activationStartDateTime)\r\n\t\t\t\t: undefined,\r\n\t\t\tdateTimeClosed: data.dateTimeClosed\r\n\t\t\t\t? new Date(data.dateTimeClosed)\r\n\t\t\t\t: undefined,\r\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t\tturnoverRequirementContributionPercentagePerGameProvider: Object.entries(\r\n\t\t\t\tdata.turnoverRequirementContributionPercentagePerGameProvider,\r\n\t\t\t).reduce<Partial<Record<External.GameProvider, number>>>((o, [k, v]) => {\r\n\t\t\t\to[k as External.GameProvider] = parseDecimal(v, 0);\r\n\t\t\t\treturn o;\r\n\t\t\t}, {}),\r\n\t\t\tminimumTicketOddFactorPerSportsGameProvider: Object.entries(\r\n\t\t\t\tdata.minimumTicketOddFactorPerSportsGameProvider,\r\n\t\t\t).reduce<Partial<Record<External.GameProvider, number>>>((o, [k, v]) => {\r\n\t\t\t\to[k as External.GameProvider] = parseDecimal(v, 0);\r\n\t\t\t\treturn o;\r\n\t\t\t}, {}),\r\n\t\t\tbanner: data.banner,\r\n\t\t};\r\n\t}\r\n\r\n\tprivate quest(data: Internal.Quest): External.Quest {\r\n\t\treturn {\r\n\t\t\tid: data.id,\r\n\t\t\tname: data.name,\r\n\t\t\tdescription: data.description,\r\n\t\t\tstatus: data.status,\r\n\t\t\tbonus: parseDecimal(data.bonus, 0),\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t\tendDateTime: new Date(data.endDateTime),\r\n\t\t\tprogram: {\r\n\t\t\t\ttype: data.program.type,\r\n\t\t\t\tname: data.program.name,\r\n\t\t\t\tdescription: data.program.description,\r\n\t\t\t\tstatus: data.program.status,\r\n\t\t\t\tstages:\r\n\t\t\t\t\tdata.program.stages?.map((stage) => ({\r\n\t\t\t\t\t\ttargetTurnover: parseDecimal(stage.targetTurnover, 0),\r\n\t\t\t\t\t\tbonusTurnoverRequirementMultiplier: parseDecimal(\r\n\t\t\t\t\t\t\tstage.bonusTurnoverRequirementMultiplier,\r\n\t\t\t\t\t\t\t0,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t\tbonusAmount: parseDecimal(stage.bonusAmount, 0),\r\n\t\t\t\t\t})) ?? [],\r\n\t\t\t},\r\n\t\t\tprogressPercentage: parseDecimal(data.progressPercentage, 0),\r\n\t\t\tturnover: parseDecimal(data.turnover, 0),\r\n\t\t\ttargetTurnover: data?.targetTurnover\r\n\t\t\t\t? parseDecimal(data.targetTurnover, 0)\r\n\t\t\t\t: undefined,\r\n\t\t\tcheckInStreak: data?.checkInStreak ?? undefined,\r\n\t\t\tlastCheckInDate: data?.lastCheckInDate\r\n\t\t\t\t? new Date(data.lastCheckInDate)\r\n\t\t\t\t: undefined,\r\n\t\t\tstartDateTime: data?.startDateTime\r\n\t\t\t\t? new Date(data.startDateTime)\r\n\t\t\t\t: undefined,\r\n\t\t\ttype: data.type,\r\n\t\t\tdateTimeCompleted: data.dateTimeCompleted\r\n\t\t\t\t? new Date(data.dateTimeCompleted)\r\n\t\t\t\t: undefined,\r\n\t\t\t...(data.type === 'WAGERING' && {\r\n\t\t\t\tstage: data.stage,\r\n\t\t\t\tturnoverRequirementContributionPercentagePerGameProvider:\r\n\t\t\t\t\tdata.turnoverRequirementContributionPercentagePerGameProvider,\r\n\t\t\t}),\r\n\t\t\t...(data.type === 'DAILY_CHECKIN' && {\r\n\t\t\t\tseventhDayBonusAmount: parseDecimal(data.seventhDayBonusAmount, 0),\r\n\t\t\t\tsixthDayBonusAmount: parseDecimal(data.sixthDayBonusAmount, 0),\r\n\t\t\t\tthirdDayBonusAmount: parseDecimal(data.thirdDayBonusAmount, 0),\r\n\t\t\t}),\r\n\r\n\t\t\t...(data.type === 'ONBOARDING' && {\r\n\t\t\t\tfirstDepositCompleted: data.firstDepositCompleted,\r\n\t\t\t\taccountVerificationCompleted: data.accountVerificationCompleted,\r\n\t\t\t}),\r\n\r\n\t\t\t...(data.type === 'JOURNEY' && {\r\n\t\t\t\tmilestones: data.milestones?.map((milestone) => ({\r\n\t\t\t\t\tid: milestone.id,\r\n\t\t\t\t\ttype: milestone.type,\r\n\t\t\t\t\tname: milestone.name,\r\n\t\t\t\t\tbonusAmount: parseDecimal(milestone.bonusAmount, 0),\r\n\t\t\t\t\tcleared: milestone.cleared ?? false,\r\n\t\t\t\t\tdescription: milestone?.description ?? undefined,\r\n\t\t\t\t\tlink: milestone?.link ?? undefined,\r\n\t\t\t\t})),\r\n\t\t\t}),\r\n\t\t};\r\n\t}\r\n\r\n\tprivate topWin(\r\n\t\tdata: Assign<Internal.TopWin, { game?: Internal.Game }>,\r\n\t): External.TopWin {\r\n\t\treturn {\r\n\t\t\tid: data.id,\r\n\t\t\tgame: data.game ? this.game(data.game) : undefined,\r\n\t\t\tmember: {\r\n\t\t\t\tid: data.member.id,\r\n\t\t\t\tname: data.member.name,\r\n\t\t\t},\r\n\t\t\tmultiplier: parseDecimal(data.multiplier, 0),\r\n\t\t\tpayout: parseDecimal(data.payout, 0),\r\n\t\t};\r\n\t}\r\n\r\n\tprivate jackpots(data: Internal.Jackpot): External.Jackpot {\r\n\t\treturn {\r\n\t\t\tid: data.id,\r\n\t\t\tname: data.name,\r\n\t\t\tdescription: data.description,\r\n\t\t\tpool: parseDecimal(data.pool, 0),\r\n\t\t\tstatus: data.status,\r\n\t\t\tminimumJackpotPoolDrawingLimit: parseDecimal(\r\n\t\t\t\tdata.minimumJackpotPoolDrawingLimit,\r\n\t\t\t\t0,\r\n\t\t\t),\r\n\t\t\tmaximumJackpotPoolLimit: parseDecimal(data.maximumJackpotPoolLimit, 0),\r\n\t\t\tdrawing: data.drawing,\r\n\t\t\tminimumMultiplier: parseDecimal(data.minimumMultiplier, 0),\r\n\t\t\tminimumBet: parseDecimal(data.minimumBet, 0),\r\n\t\t\tjackpotPayoutPercentage: parseDecimal(data.jackpotPayoutPercentage, 0),\r\n\t\t\tjackpotTurnoverContributionPercentagePerGameProvider: Object.entries(\r\n\t\t\t\tdata.jackpotTurnoverContributionPercentagePerGameProvider ?? {},\r\n\t\t\t).reduce<Partial<Record<External.GameProvider, number>>>((o, [k, v]) => {\r\n\t\t\t\to[k as External.GameProvider] = parseDecimal(v, 0);\r\n\t\t\t\treturn o;\r\n\t\t\t}, {}),\r\n\t\t\ttotalPayout: parseDecimal(data.totalPayout, 0),\r\n\t\t};\r\n\t}\r\n\r\n\tprivate jackpotPayouts(data: Internal.JackpotPayout): External.JackpotPayout {\r\n\t\treturn {\r\n\t\t\tid: data.id,\r\n\t\t\tmember: {\r\n\t\t\t\tid: data.member.id,\r\n\t\t\t\tname: data.member.name,\r\n\t\t\t},\r\n\t\t\tjackpot: {\r\n\t\t\t\tid: data.jackpot.id,\r\n\t\t\t\tname: data.jackpot.name,\r\n\t\t\t},\r\n\t\t\tmultiplier: parseDecimal(data.multiplier, 0),\r\n\t\t\tbet: parseDecimal(data.bet, 0),\r\n\t\t\tamount: parseDecimal(data.amount, 0),\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t\tgame: {\r\n\t\t\t\tprovider: data?.game?.provider,\r\n\t\t\t},\r\n\t\t};\r\n\t}\r\n\r\n\tprivate tournamentsLeaderboard(\r\n\t\tdata: Internal.TournamentLeaderboard,\r\n\t): External.TournamentLeaderboard {\r\n\t\treturn {\r\n\t\t\tid: data.id,\r\n\t\t\tusername: data.username,\r\n\t\t\tmultiplier: parseDecimal(data.multiplier, 0),\r\n\t\t\tdateTimeCreated: data.dateTimeCreated,\r\n\t\t\tgame: data.game,\r\n\t\t\tprize: data.prize,\r\n\t\t};\r\n\t}\r\n\r\n\tprivate tournaments(data: Internal.Tournament): External.Tournament {\r\n\t\treturn {\r\n\t\t\tid: data.id,\r\n\t\t\ttype: data.type,\r\n\t\t\tname: data.name,\r\n\t\t\tdescription: data.description,\r\n\t\t\twinnersCount: parseDecimal(data.winnersCount, 0),\r\n\t\t\tstatus: data.status,\r\n\t\t\tactivationEndDateTime: new Date(data.activationEndDateTime),\r\n\t\t\tactivationStartDateTime: new Date(data.activationStartDateTime),\r\n\t\t\ttopPayouts: data.topPayouts.map((payout) => ({\r\n\t\t\t\t...payout,\r\n\t\t\t\tamount: parseDecimal(payout.amount, 0),\r\n\t\t\t})),\r\n\t\t\tenabledGameProviders: data.enabledGameProviders,\r\n\t\t\tfrequency: data.frequency,\r\n\t\t\tmode: data.mode,\r\n\t\t\tmobileBanner: {\r\n\t\t\t\tid: data.mobileBanner?.id,\r\n\t\t\t\turl: data.mobileBanner?.url,\r\n\t\t\t\tmimeType: data.mobileBanner?.mimeType,\r\n\t\t\t},\r\n\t\t\twebBanner: {\r\n\t\t\t\tid: data.webBanner?.id,\r\n\t\t\t\turl: data.webBanner?.url,\r\n\t\t\t\tmimeType: data.webBanner?.mimeType,\r\n\t\t\t},\r\n\r\n\t\t\trewardSettings: data.rewardSettings,\r\n\r\n\t\t\tcurrentLeaderboard: {\r\n\t\t\t\tcurrentLeaderboard: data.currentLeaderboard?.edges.map(\r\n\t\t\t\t\t({ cursor, node }) => ({\r\n\t\t\t\t\t\tcursor,\r\n\t\t\t\t\t\t...this.tournamentsLeaderboard(node),\r\n\t\t\t\t\t}),\r\n\t\t\t\t),\r\n\t\t\t\ttotalCount: data.currentLeaderboard.totalCount,\r\n\t\t\t\thasNextPage: data.currentLeaderboard.pageInfo?.hasNextPage as never,\r\n\t\t\t\tendCursor: data.currentLeaderboard.pageInfo?.endCursor ?? undefined,\r\n\t\t\t},\r\n\t\t\tpreviousLeaderboard: {\r\n\t\t\t\tpreviousLeaderboard: data.previousLeaderboard.edges.map(\r\n\t\t\t\t\t({ cursor, node }) => ({\r\n\t\t\t\t\t\tcursor,\r\n\t\t\t\t\t\t...this.tournamentsLeaderboard(node),\r\n\t\t\t\t\t}),\r\n\t\t\t\t),\r\n\t\t\t\ttotalCount: data.previousLeaderboard.totalCount,\r\n\t\t\t\thasNextPage: data.previousLeaderboard.pageInfo?.hasNextPage as never,\r\n\t\t\t\tendCursor: data.previousLeaderboard.pageInfo?.endCursor ?? undefined,\r\n\t\t\t},\r\n\t\t};\r\n\t}\r\n\r\n\tprivate memberAchievements(\r\n\t\tdata: Internal.MemberAchievement,\r\n\t): External.MemberAchievement {\r\n\t\treturn {\r\n\t\t\tmember: {\r\n\t\t\t\tachievements: data.member.achievements,\r\n\t\t\t\tlevel: data.member.level,\r\n\t\t\t},\r\n\t\t};\r\n\t}\r\n\r\n\tprivate memberRebateContribution(\r\n\t\tdata: Internal.MemberRebateContribution,\r\n\t): External.MemberRebateContribution {\r\n\t\treturn {\r\n\t\t\tid: data.id,\r\n\t\t\trebatesPerGameCategory: data.rebatesPerGameCategory.map((item) => ({\r\n\t\t\t\tgameProvider: item.gameProvider,\r\n\t\t\t\tgameType: item.gameType,\r\n\t\t\t\tpercentage: parseDecimal(item.percentage, 0),\r\n\t\t\t\tloss: parseDecimal(item.loss),\r\n\t\t\t\tturnover: parseDecimal(item.turnover),\r\n\t\t\t\trebate: parseDecimal(item.rebate, 0),\r\n\t\t\t})),\r\n\t\t\trebatesPerGame: data.rebatesPerGame.map((item) =>\r\n\t\t\t\tcompact({\r\n\t\t\t\t\tgame: item.game,\r\n\t\t\t\t\tpercentage: parseDecimal(item.percentage, 0),\r\n\t\t\t\t\tloss: parseDecimal(item.loss),\r\n\t\t\t\t\tturnover: parseDecimal(item.turnover),\r\n\t\t\t\t\trebate: parseDecimal(item.rebate, 0),\r\n\t\t\t\t}),\r\n\t\t\t),\r\n\t\t} as External.MemberRebateContribution;\r\n\t}\r\n\r\n\tprivate cabinetWithdrawal(\r\n\t\tdata: Internal.CabinetWithdrawal,\r\n\t): External.CabinetWithdrawalRecord {\r\n\t\tconst o: External.Deposit = {\r\n\t\t\tid: data.id,\r\n\t\t\ttype: data.type,\r\n\t\t\tstatus: data.status,\r\n\t\t\tamount: data.amount,\r\n\t\t\treference: data.reference,\r\n\t\t\taccountName: data.accountName,\r\n\t\t\tdateTimeCreated: data.dateTimeCreated,\r\n\t\t\terror: data.error ?? undefined,\r\n\t\t} as External.Deposit;\r\n\r\n\t\treturn compact(o);\r\n\t}\r\n\r\n\tprivate memberVerificationRequest(\r\n\t\tdata: Internal.MemberVerificationRequest,\r\n\t): External.MemberVerificationRequest {\r\n\t\treturn {\r\n\t\t\tid: data.id,\r\n\t\t\tfirstName: data.firstName ?? undefined,\r\n\t\t\tlastName: data.lastName ?? undefined,\r\n\t\t\tdateOfBirth: data.dateOfBirth ? new Date(data.dateOfBirth) : undefined,\r\n\t\t\tidFrontImage: data.idFrontImage ?? undefined,\r\n\t\t\tselfieImage: data.selfieImage ?? undefined,\r\n\t\t\tpermanentAddress: data.permanentAddress ?? undefined,\r\n\t\t\tcurrentAddress: data.currentAddress ?? undefined,\r\n\t\t\tsourceOfIncome: data.sourceOfIncome ?? undefined,\r\n\t\t\tnatureOfWork: data.natureOfWork ?? undefined,\r\n\t\t\tnationality: data.nationality ?? undefined,\r\n\t\t\tplaceOfBirth: data.placeOfBirth ?? undefined,\r\n\t\t\tstatus: data.status,\r\n\t\t\tbasicDetailsSubmitted: data.basicDetailsSubmitted,\r\n\t\t\tbasicDetailsVerified: data.basicDetailsVerified,\r\n\t\t\timageDetailsSubmitted: data.imageDetailsSubmitted,\r\n\t\t\tpendingManualImageDetailsVerification:\r\n\t\t\t\tdata.pendingManualImageDetailsVerification,\r\n\t\t\timageDetailsVerified: data.imageDetailsVerified,\r\n\t\t\tpersonalDetailsSubmitted: data.personalDetailsSubmitted,\r\n\t\t\tremarks: data.remarks ?? undefined,\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\r\n\t\t\tdateTimeApproved: data.dateTimeApproved\r\n\t\t\t\t? new Date(data.dateTimeApproved)\r\n\t\t\t\t: undefined,\r\n\t\t\tdateTimeRejected: data.dateTimeRejected\r\n\t\t\t\t? new Date(data.dateTimeRejected)\r\n\t\t\t\t: undefined,\r\n\t\t};\r\n\t}\r\n}\r\n","import { Capacitor } from '@capacitor/core';\r\nimport {\r\n\tAccountService,\r\n\tAuthService,\r\n\tCmsPortalService,\r\n\tExtensionService,\r\n\tFileService,\r\n\tGameService,\r\n\tPortalService,\r\n\tReportService,\r\n\tTriggerService,\r\n\tWalletService,\r\n} from '../services/index.js';\r\nimport type { Decimal } from '../services/types.js';\r\nimport { Cache } from '../utils/cache.js';\r\nimport { clamp } from '../utils/clamp.js';\r\nimport {\r\n\tGraphQLClient,\r\n\ttype GraphQLClientConfig,\r\n\ttype GraphQLClientMiddleware,\r\n} from '../utils/graphql-client.js';\r\nimport { sha256 } from '../utils/sha256.js';\r\nimport { AdManager } from './ad-manager.js';\r\nimport { CellexpertManager } from './cellexpert-manager.js';\r\nimport { Logger } from './logger.js';\r\nimport { ObjectId } from './object-id.js';\r\nimport { ObjectType } from './object-type.js';\r\nimport { SessionManager } from './session-manager.js';\r\nimport { SessionManagerCookie } from './session-manager-cookie.js';\r\nimport { Transformer } from './transformer.js';\r\nimport type {\r\n\t_JackpotsInput,\r\n\t_JackpotsReturn,\r\n\tAccountReturn,\r\n\tAchievementPointsHistoryRecordInput,\r\n\tAchievementPointsHistoryRecordReturn,\r\n\tAchievementSettingsReturn,\r\n\tActivityRecordsInput,\r\n\tActivityRecordsReturn,\r\n\tAnnouncementsInput,\r\n\tAnnouncementsReturn,\r\n\tAuthenticateInput,\r\n\tAuthenticateReturn,\r\n\tAvailablePromosReturn,\r\n\tAvailableQuestsReturn,\r\n\tBetRecordsInput,\r\n\tBetRecordsReturn,\r\n\tBonusesReturn,\r\n\tBonusReturn,\r\n\tCabinetSignInInput,\r\n\tCabinetSignInReturn,\r\n\tCabinetSiteMachineReturn,\r\n\tCabinetWithdrawalReturn,\r\n\tCancelFreeBetDropInput,\r\n\tCancelFreeBetDropReturn,\r\n\tCashbackBonusReturn,\r\n\tCashbacksReturn,\r\n\tCheckInDailyQuestReturn,\r\n\tClaimCashbackBonusReturn,\r\n\tClaimRebateReturn,\r\n\tClaimRewardReturn,\r\n\tClaimSpotBonusReturn,\r\n\tCompleteOnboardingInput,\r\n\tCompleteOnboardingReturn,\r\n\tCreateAccountInput,\r\n\tCreateAccountInput__Next,\r\n\tCreateAccountReturn,\r\n\tCreateDepositInput,\r\n\tCreateDepositReturn,\r\n\tCreateGameSessionInput,\r\n\tCreateGameSessionReturn,\r\n\tCreateSingleUseTokenReturn,\r\n\tCreateWithdrawalInput,\r\n\tCreateWithdrawalReturn,\r\n\tDeleteAccountReturn,\r\n\tDepositRecordsInput,\r\n\tDepositRecordsReturn,\r\n\tDepositReturn,\r\n\tDepositsCountReturn,\r\n\tDownlinesByNameInput,\r\n\tDownlinesByNameReturn,\r\n\tEndGameSessionReturn,\r\n\tEnvironment,\r\n\tFavoriteGamesReturn,\r\n\tFileReturn,\r\n\tFreeBetDropsInput,\r\n\tFreeBetDropsReturn,\r\n\tGameProvider,\r\n\tGameReturn,\r\n\tGameSessionReturn,\r\n\tGamesInput,\r\n\tGamesInput__Next,\r\n\tGamesReturn,\r\n\tGeneralMemberLevelSettingsReturn,\r\n\tGoogleClientIdReturn,\r\n\tInstapayBankListReturn,\r\n\tJackpotPayoutsInput,\r\n\tJackpotPayoutsReturn,\r\n\tJackpotsIdsInput,\r\n\tJackpotsIdsReturn,\r\n\tJackpotsInput,\r\n\tJackpotsReturn,\r\n\tLatestBetRecordsReturn,\r\n\tLinkFirebaseCloudMessagingDeviceInput,\r\n\tLinkFirebaseCloudMessagingDeviceReturn,\r\n\tLocale,\r\n\tMarkAllMessagesAsReadReturn,\r\n\tMarkGameAsFavoriteInput,\r\n\tMarkGameAsFavoriteReturn,\r\n\tMarkMessageAsReadReturn,\r\n\tMayaSignInInput,\r\n\tMayaSignInReturn,\r\n\tMemberAchievementReturn,\r\n\tMemberFreeBetDropsInput,\r\n\tMemberFreeBetDropsReturn,\r\n\tMemberLevelSettingsReturn,\r\n\tMemberRebateContributionInput,\r\n\tMemberRebateContributionReturn,\r\n\tMemberRebatesInput,\r\n\tMemberRebatesReturn,\r\n\tMemberVerificationRequestAutomaticApprovalEnabledReturn,\r\n\tMemberVerificationRequestReturn,\r\n\tMemberWalletAccountReturn,\r\n\tMessagesInput,\r\n\tMessagesReturn,\r\n\tMobileNumberSignInInput,\r\n\tMobileNumberSignInReturn,\r\n\tNameAndPasswordSignInInput,\r\n\tNameAndPasswordSignInReturn,\r\n\tOnboardingStatusReturn,\r\n\tPaymentSettingsReturn,\r\n\tPlatformGamesInput,\r\n\tPlatformGamesReturn,\r\n\tPlatformReturn,\r\n\tPlatformReturn__Next,\r\n\tPointsClubSettingsReturn,\r\n\tPointsWalletReturn,\r\n\tPointsWalletTransactionsInput,\r\n\tPointsWalletTransactionsReturn,\r\n\tProfileCompletionReturn,\r\n\tPromoByCodeReturn,\r\n\tPromoFilterInput,\r\n\tPromosAndCashbacksReturn,\r\n\tPromosReturn,\r\n\tRecommendedGamesInput,\r\n\tRecommendedGamesReturn,\r\n\tRedeemPointsInput,\r\n\tRedeemPointsReturn,\r\n\tRedeemVoucherInput,\r\n\tRedeemVoucherReturn,\r\n\tReferralCodeReturn,\r\n\tReferralCommissionReturn,\r\n\tReferralsInput,\r\n\tReferralsReturn,\r\n\tRegisterAgentAccountInput,\r\n\tRegisterAgentAccountReturn,\r\n\tRegisterFCMDeviceInput,\r\n\tRegisterFCMDeviceReturn,\r\n\tRegisterMayaAccountInput,\r\n\tRegisterMayaAccountReturn,\r\n\tRemainingDailyWithdrawalsCountReturn,\r\n\tRequireFirstDepositReturn,\r\n\tResetPasswordInput,\r\n\tResetPasswordReturn,\r\n\tSendVerificationCodeInput__Next,\r\n\tSendVerificationCodeReturn,\r\n\tSendVerificationCodeReturn__Next,\r\n\tSessionReturn,\r\n\tSignInInput,\r\n\tSignInReturn,\r\n\tSingleUseTokenSignInInput,\r\n\tSingleUseTokenSignInReturn,\r\n\tSiteReturn,\r\n\tSkipOnboardingReturn,\r\n\tSocialsSignInInput,\r\n\tSocialsSignInReturn,\r\n\tSubmitMemberVerificationRequestBasicDetailsInput,\r\n\tSubmitMemberVerificationRequestBasicDetailsReturn,\r\n\tSubmitMemberVerificationRequestImageDetailsInput,\r\n\tSubmitMemberVerificationRequestImageDetailsReturn,\r\n\tSubmitMemberVerificationRequestPersonalDetailsInput,\r\n\tSubmitMemberVerificationRequestPersonalDetailsReturn,\r\n\tSubmitMemberVerificationReturn,\r\n\tSubmitVerificationDetailsInput,\r\n\tSubmitVerificationDetailsInputNext,\r\n\tSubmitVerificationDetailsReturn,\r\n\tTokenSignInInput,\r\n\tTokenSignInReturn,\r\n\tTopWinsReturn,\r\n\tTouchDepositInput,\r\n\tTouchDepositReturn,\r\n\tTournamentsIdsInput,\r\n\tTournamentsIdsReturn,\r\n\tTournamentsInput,\r\n\tTournamentsReturn,\r\n\tTransactionRecordsInput,\r\n\tTransactionRecordsReturn,\r\n\tUnlinkFirebaseCloudMessagingDeviceInput,\r\n\tUnlinkFirebaseCloudMessagingDeviceReturn,\r\n\tUnmarkGameAsFavoriteInput,\r\n\tUnmarkGameAsFavoriteReturn,\r\n\tUnreadMessagesCountInput,\r\n\tUnreadMessagesCountReturn,\r\n\tUnregisterFCMDeviceInput,\r\n\tUnregisterFCMDeviceReturn,\r\n\tUpdateAccountInput,\r\n\tUpdateAccountLimitReturn,\r\n\tUpdateAccountReturn,\r\n\tUpdateDailyBetLimitInput,\r\n\tUpdateDailyDepositLimitInput,\r\n\tUpdateMonthlyBetLimitInput,\r\n\tUpdateMonthlyDepositLimitInput,\r\n\tUpdateReferralCodeInput,\r\n\tUpdateReferralCodeReturn,\r\n\tUpdateVerificationDetailsInput,\r\n\tUpdateVerificationDetailsReturn,\r\n\tUplinesByNameInput,\r\n\tUplinesByNameReturn,\r\n\tUploadImageFileInput,\r\n\tUploadImageFileReturn,\r\n\tValidateMayaSessionReturn,\r\n\tVerificationDetailsReturn,\r\n\tVerifyMobileNumberReturn,\r\n\tWalletGameInput,\r\n\tWalletGamesReturn,\r\n\tWalletReturn,\r\n\tWatchSessionInput,\r\n\tWithdrawalRecordsInput,\r\n\tWithdrawalRecordsReturn,\r\n} from './types.js';\r\nimport { addAreaCode, getCookie, getFingerprint } from './utils.js';\r\n\r\nfunction toDecimalVariable(value: number): Decimal {\r\n\tif (!Number.isFinite(value)) {\r\n\t\tthrow new TypeError('Account limit must be a finite number.');\r\n\t}\r\n\r\n\treturn value as unknown as Decimal;\r\n}\r\n\r\nexport interface SdkConfig {\r\n\t/**\r\n\t * @default 'development'\r\n\t */\r\n\tenvironment?: Environment;\r\n\tsite: string;\r\n\tsitePlatform: string;\r\n\tplatform: string;\r\n\tlogs?: boolean;\r\n\tsessionStorage?: 'cookie' | 'localStorage';\r\n\tmiddleware?: GraphQLClientMiddleware;\r\n\tfetch?: typeof globalThis.fetch;\r\n}\r\n\r\nconst defaultConfig = {\r\n\tenvironment: 'development' as Environment,\r\n\tlogs: false,\r\n};\r\n\r\nexport class Sdk {\r\n\t/**\r\n\t * Initializes the SDK by fetching and assigning the member domain.\r\n\t */\r\n\tasync init(): Promise<void> {\r\n\t\tconst res = await this.accountService.memberAccount();\r\n\r\n\t\tif (res.ok) {\r\n\t\t\tconst accountData = this.transformer.transform.account({\r\n\t\t\t\t...res.data,\r\n\t\t\t\tlevel: 0,\r\n\t\t\t});\r\n\r\n\t\t\tthis.memberDomain = accountData?.domain ?? null;\r\n\t\t}\r\n\t}\r\n\r\n\tprivate cmsPortalService: CmsPortalService;\r\n\tprivate authService: AuthService;\r\n\tprivate gameService: GameService;\r\n\tprivate fileService: FileService;\r\n\tprivate walletService: WalletService;\r\n\tprivate extensionService: ExtensionService;\r\n\tprivate accountService: AccountService;\r\n\tprivate reportService: ReportService;\r\n\tprivate portalService: PortalService;\r\n\tprivate triggerService: TriggerService;\r\n\tprivate sessionManager: SessionManager | SessionManagerCookie;\r\n\tprivate adManager: AdManager;\r\n\tprivate cellexpertManager: CellexpertManager;\r\n\tprivate transformer: Transformer;\r\n\tprivate logger: Logger;\r\n\tprivate cache: Cache;\r\n\tprivate config: SdkConfig;\r\n\r\n\t/**\r\n\t * Stores the member domain for use in future mutations/queries\r\n\t */\r\n\tpublic memberDomain: string | null = null;\r\n\r\n\tconstructor(config: SdkConfig) {\r\n\t\tconst {\r\n\t\t\t/**/\r\n\t\t\tsite,\r\n\t\t\tsitePlatform,\r\n\t\t\tplatform,\r\n\t\t\tenvironment,\r\n\t\t\tlogs,\r\n\t\t} = Object.assign(defaultConfig, config);\r\n\r\n\t\tconst production = environment === 'production';\r\n\r\n\t\tconst logger = new Logger({\r\n\t\t\tenabled: logs,\r\n\t\t});\r\n\r\n\t\tconst adManager = new AdManager({ logger });\r\n\t\tconst cellexpertManager = new CellexpertManager({ logger });\r\n\r\n\t\tconst transformer = new Transformer();\r\n\r\n\t\tconst authUrl = ENDPOINTS[environment].auth;\r\n\t\tconst walletUrl = ENDPOINTS[environment].wallet;\r\n\t\tconst extensionUrl = ENDPOINTS[environment].extension;\r\n\t\tconst reportUrl = ENDPOINTS[environment].report;\r\n\t\tconst accountUrl = ENDPOINTS[environment].account;\r\n\t\tconst portalUrl = ENDPOINTS[environment].portal;\r\n\t\tconst fileUrl = ENDPOINTS[environment].file;\r\n\t\tconst gameUrl = ENDPOINTS[environment].game;\r\n\t\tconst triggerUrl = ENDPOINTS[environment].trigger;\r\n\t\tconst cmsPortalUrl = ENDPOINTS[environment].cmsPortal;\r\n\r\n\t\tconst cmsPortalService = new CmsPortalService(() => ({\r\n\t\t\turl: cmsPortalUrl,\r\n\t\t\tsite,\r\n\t\t\tplatform: sitePlatform,\r\n\t\t\tfetch: this.getFetch(),\r\n\t\t}));\r\n\r\n\t\tthis._fetch = config.fetch ?? null;\r\n\t\tthis._middleware = config.middleware ?? ((req) => req);\r\n\r\n\t\tconst graphqlClientConfig = () =>\r\n\t\t\t({\r\n\t\t\t\tmiddlewares: [\r\n\t\t\t\t\t/**/\r\n\t\t\t\t\tthis.authMiddleware,\r\n\t\t\t\t\tthis.fingerprintMiddleware,\r\n\t\t\t\t\tthis.miscMiddleware,\r\n\t\t\t\t\tthis.middleware,\r\n\t\t\t\t],\r\n\t\t\t\tfetch: this.getFetch(),\r\n\t\t\t\tfetchOptions: {\r\n\t\t\t\t\theaders: {\r\n\t\t\t\t\t\tRole: 'MEMBER',\r\n\t\t\t\t\t\t'Platform-Code': platform,\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t}) satisfies GraphQLClientConfig;\r\n\r\n\t\tconst gameService = new GameService(\r\n\t\t\tnew GraphQLClient(gameUrl, graphqlClientConfig),\r\n\t\t);\r\n\t\tconst extensionService = new ExtensionService(\r\n\t\t\tnew GraphQLClient(extensionUrl, graphqlClientConfig),\r\n\t\t);\r\n\t\tconst fileService = new FileService(\r\n\t\t\tnew GraphQLClient(fileUrl, graphqlClientConfig),\r\n\t\t);\r\n\t\tconst walletService = new WalletService(\r\n\t\t\tnew GraphQLClient(walletUrl, graphqlClientConfig),\r\n\t\t);\r\n\t\tconst accountService = new AccountService(\r\n\t\t\tnew GraphQLClient(accountUrl, graphqlClientConfig),\r\n\t\t\tenvironment,\r\n\t\t);\r\n\t\tconst reportService = new ReportService(\r\n\t\t\tnew GraphQLClient(reportUrl, graphqlClientConfig),\r\n\t\t);\r\n\t\tconst portalService = new PortalService(\r\n\t\t\tnew GraphQLClient(portalUrl, graphqlClientConfig),\r\n\t\t);\r\n\t\tconst triggerService = new TriggerService(\r\n\t\t\tnew GraphQLClient(triggerUrl, graphqlClientConfig),\r\n\t\t);\r\n\r\n\t\tconst authService = new AuthService({\r\n\t\t\turl: authUrl,\r\n\t\t\tfetchOptions: {\r\n\t\t\t\theaders: {\r\n\t\t\t\t\tRole: 'MEMBER',\r\n\t\t\t\t\t'Platform-Code': platform,\r\n\r\n\t\t\t\t\t...(!production && {\r\n\t\t\t\t\t\t'Test-Pass': '',\r\n\t\t\t\t\t}),\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tconst sessionManager =\r\n\t\t\tconfig.sessionStorage === 'cookie'\r\n\t\t\t\t? new SessionManagerCookie({\r\n\t\t\t\t\t\tlogger,\r\n\t\t\t\t\t\tauthService,\r\n\t\t\t\t\t\twalletService,\r\n\t\t\t\t\t})\r\n\t\t\t\t: new SessionManager({\r\n\t\t\t\t\t\tlogger,\r\n\t\t\t\t\t\tauthService,\r\n\t\t\t\t\t\twalletService,\r\n\t\t\t\t\t});\r\n\r\n\t\tthis.logger = logger;\r\n\t\tthis.adManager = adManager;\r\n\t\tthis.cellexpertManager = cellexpertManager;\r\n\t\tthis.transformer = transformer;\r\n\t\tthis.authService = authService;\r\n\t\tthis.gameService = gameService;\r\n\t\tthis.extensionService = extensionService;\r\n\t\tthis.fileService = fileService;\r\n\t\tthis.walletService = walletService;\r\n\t\tthis.accountService = accountService;\r\n\t\tthis.reportService = reportService;\r\n\t\tthis.portalService = portalService;\r\n\t\tthis.triggerService = triggerService;\r\n\t\tthis.sessionManager = sessionManager;\r\n\t\tthis.cmsPortalService = cmsPortalService;\r\n\t\tthis.cache = new Cache();\r\n\t\tthis.config = {\r\n\t\t\tenvironment,\r\n\t\t\tsite,\r\n\t\t\tplatform,\r\n\t\t\tsitePlatform,\r\n\t\t\tlogs,\r\n\t\t};\r\n\r\n\t\tthis.collectMetaDetails();\r\n\t\tthis.initMarketDomain();\r\n\t}\r\n\r\n\tprivate _fetch: typeof globalThis.fetch | null = null;\r\n\tprivate _middleware: GraphQLClientMiddleware;\r\n\r\n\t/**\r\n\t * @deprecated use `setFetch` instead\r\n\t */\r\n\tset fetch(value: typeof globalThis.fetch | null) {\r\n\t\tthis._fetch = value;\r\n\t}\r\n\r\n\t/**\r\n\t * @deprecated use `getFetch` instead\r\n\t */\r\n\tget fetch() {\r\n\t\treturn this._fetch;\r\n\t}\r\n\r\n\tasync setFetch(value: typeof globalThis.fetch | null) {\r\n\t\treturn new Promise<void>((resolve) => {\r\n\t\t\tthis._fetch = value;\r\n\t\t\tsetTimeout(() => resolve(), 1);\r\n\t\t});\r\n\t}\r\n\r\n\tgetFetch() {\r\n\t\treturn this._fetch;\r\n\t}\r\n\r\n\tset middleware(value: GraphQLClientMiddleware) {\r\n\t\tthis._middleware = value;\r\n\t}\r\n\r\n\tget middleware() {\r\n\t\treturn this._middleware;\r\n\t}\r\n\r\n\tinitMarketDomain(): void {\r\n\t\tif (typeof window === 'undefined') return;\r\n\r\n\t\tconst searchParams = new URLSearchParams(window.location.search);\r\n\t\tconst hostname = window.location.hostname;\r\n\t\tconst market = searchParams.get('market');\r\n\t\tconst adClickId = this.adManager.clickId;\r\n\r\n\t\tif (Capacitor.isNativePlatform()) {\r\n\t\t\tconst platform = Capacitor.getPlatform();\r\n\r\n\t\t\tif (platform === 'ios') {\r\n\t\t\t\tsessionStorage.setItem('domain', `${hostname}/ios`);\r\n\t\t\t} else {\r\n\t\t\t\tsessionStorage.setItem('domain', `${hostname}/android`);\r\n\t\t\t}\r\n\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst currentDomain = sessionStorage.getItem('domain');\r\n\r\n\t\tif (market) {\r\n\t\t\tsessionStorage.setItem('domain', `${hostname}/${market}`);\r\n\t\t} else if (adClickId && !currentDomain) {\r\n\t\t\tsessionStorage.setItem('domain', `${hostname}/meta-ads`);\r\n\t\t} else if (!currentDomain) {\r\n\t\t\tsessionStorage.setItem('domain', hostname);\r\n\t\t}\r\n\r\n\t\tif (market) {\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\tconst url = new URL(window.location.href);\r\n\t\t\t\turl.searchParams.delete('market');\r\n\t\t\t\twindow.history.replaceState({}, '', url.toString());\r\n\t\t\t}, 1);\r\n\t\t}\r\n\t}\r\n\r\n\tset marketDomain(value: string | null) {\r\n\t\tif (typeof window === 'undefined') return;\r\n\r\n\t\tif (Capacitor.isNativePlatform()) {\r\n\t\t\tif (value) {\r\n\t\t\t\tlocalStorage.setItem('domain', value);\r\n\t\t\t} else {\r\n\t\t\t\tlocalStorage.removeItem('domain');\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tif (value) {\r\n\t\t\t\tsessionStorage.setItem('domain', value);\r\n\t\t\t} else {\r\n\t\t\t\tsessionStorage.removeItem('domain');\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tget marketDomain(): string | null {\r\n\t\tif (typeof window === 'undefined') return null;\r\n\r\n\t\tif (Capacitor.isNativePlatform()) {\r\n\t\t\treturn localStorage.getItem('domain');\r\n\t\t}\r\n\r\n\t\treturn sessionStorage.getItem('domain');\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tADS\r\n\t *=============================================\r\n\t */\r\n\r\n\tset adClickId(value: string | null) {\r\n\t\tthis.adManager.clickId = value;\r\n\t}\r\n\r\n\tget adClickId() {\r\n\t\treturn this.adManager.clickId;\r\n\t}\r\n\r\n\tset fbp(value: string | null) {\r\n\t\tthis.adManager.fbp = value;\r\n\t}\r\n\r\n\tget fbp() {\r\n\t\treturn this.adManager.fbp;\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tCXD\r\n\t *=============================================\r\n\t */\r\n\r\n\tset cxd(value: string | null) {\r\n\t\tthis.cellexpertManager.cxd = value;\r\n\t}\r\n\r\n\tget cxd() {\r\n\t\treturn this.cellexpertManager.cxd;\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tLOCALE\r\n\t *=============================================\r\n\t */\r\n\r\n\tprivate get locale() {\r\n\t\treturn new Promise<Locale>((resolve) => {\r\n\t\t\tconst cacheKey = 'locale';\r\n\t\t\tconst cacheValue = this.cache.get<Locale>(cacheKey);\r\n\r\n\t\t\tif (cacheValue) return resolve(cacheValue);\r\n\r\n\t\t\tthis.platform__next().then((res) => {\r\n\t\t\t\tif (res.ok) {\r\n\t\t\t\t\tthis.cache.set(cacheKey, res.data.locale);\r\n\t\t\t\t\tresolve(res.data.locale);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.logger.warn(\"Failed to fetch currency. Using 'PH' as fallback\");\r\n\t\t\t\t\tresolve('en-PH');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tAUTH MIDDLEWARE\r\n\t *=============================================\r\n\t */\r\n\r\n\tprivate get authMiddleware(): GraphQLClientMiddleware {\r\n\t\treturn async (request) => {\r\n\t\t\tthis.logger.info('Checking for session');\r\n\r\n\t\t\tconst res = await this.sessionManager.get();\r\n\r\n\t\t\tif (res.data) {\r\n\t\t\t\trequest.headers.set('Authorization', `Bearer ${res.data.accessToken}`);\r\n\t\t\t\tthis.logger.info('Session found');\r\n\t\t\t\tthis.logger.success(\"Added 'Authorization' header\");\r\n\t\t\t} else {\r\n\t\t\t\tthis.logger.info('No session found');\r\n\t\t\t}\r\n\r\n\t\t\treturn request;\r\n\t\t};\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tFINGERPRINT MIDDLEWARE\r\n\t *=============================================\r\n\t */\r\n\r\n\tprivate get fingerprintMiddleware(): GraphQLClientMiddleware {\r\n\t\treturn async (request) => {\r\n\t\t\tconst fingerprint = await this.fingerprint();\r\n\r\n\t\t\tif (fingerprint && !request.headers.has('Fingerprint')) {\r\n\t\t\t\trequest.headers.set('Fingerprint', fingerprint);\r\n\t\t\t}\r\n\r\n\t\t\treturn request;\r\n\t\t};\r\n\t}\r\n\r\n\tasync fingerprint() {\r\n\t\treturn await getFingerprint(this.config.environment ?? 'development');\r\n\t}\r\n\r\n\tprivate get miscMiddleware(): GraphQLClientMiddleware {\r\n\t\treturn async (request) => {\r\n\t\t\tconst adClickId = this.adManager.clickId;\r\n\t\t\tif (adClickId) request.headers.set('Ad-Click-Id', adClickId);\r\n\r\n\t\t\tconst fbp = this.adManager.fbp;\r\n\t\t\tif (fbp) request.headers.set('fbp', fbp);\r\n\r\n\t\t\treturn request;\r\n\t\t};\r\n\t}\r\n\r\n\tcollectMetaDetails(): void {\r\n\t\tif (typeof window === 'undefined') return;\r\n\r\n\t\tconst searchParams = new URLSearchParams(window.location.search);\r\n\t\tconst fbclid = searchParams.get('fbclid');\r\n\t\tconst fbc = getCookie('_fbc');\r\n\t\tconst fbp = getCookie('_fbp');\r\n\r\n\t\tif (fbclid) {\r\n\t\t\tthis.adClickId = fbclid;\r\n\t\t} else if (fbc) {\r\n\t\t\tthis.adClickId = fbc.includes('.') ? fbc.split('.').pop() || fbc : fbc;\r\n\t\t}\r\n\r\n\t\tif (fbp) {\r\n\t\t\tthis.fbp = fbp;\r\n\t\t}\r\n\t}\r\n\r\n\tasync signIn(\r\n\t\tinput: NameAndPasswordSignInInput,\r\n\t): Promise<NameAndPasswordSignInReturn>;\r\n\tasync signIn(\r\n\t\tinput: MobileNumberSignInInput,\r\n\t): Promise<MobileNumberSignInReturn>;\r\n\tasync signIn(input: MayaSignInInput): Promise<MayaSignInReturn>;\r\n\tasync signIn(input: TokenSignInInput): Promise<TokenSignInReturn>;\r\n\tasync signIn(input: SocialsSignInInput): Promise<SocialsSignInReturn>;\r\n\tasync signIn(input: CabinetSignInInput): Promise<CabinetSignInReturn>;\r\n\tasync signIn(\r\n\t\tinput: SingleUseTokenSignInInput,\r\n\t): Promise<SingleUseTokenSignInReturn>;\r\n\tasync signIn(input: SignInInput): Promise<SignInReturn> {\r\n\t\tif (input.type === 'TOKEN') {\r\n\t\t\tconsole.warn(\r\n\t\t\t\t\"'TOKEN (signIn)' is deprecated. Please use 'SOCIALS' instead.\",\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\tswitch (input.type) {\r\n\t\t\tcase 'NAME_AND_PASSWORD': {\r\n\t\t\t\tconst res = await this.sessionManager.create({\r\n\t\t\t\t\t...input,\r\n\t\t\t\t\tpassword: await sha256(input.password),\r\n\t\t\t\t});\r\n\r\n\t\t\t\tif (!res.ok) return res;\r\n\t\t\t\tif (res.data) {\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tok: true,\r\n\t\t\t\t\t\tdata: {\r\n\t\t\t\t\t\t\t'2FAEnabled': true,\r\n\t\t\t\t\t\t\tauthenticator: res.data.authenticator,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: true,\r\n\t\t\t\t\tdata: {\r\n\t\t\t\t\t\t'2FAEnabled': false,\r\n\t\t\t\t\t},\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\tcase 'SOCIALS':\r\n\t\t\tcase 'TOKEN': {\r\n\t\t\t\tconst res = await this.sessionManager.create({\r\n\t\t\t\t\ttype: 'SOCIALS',\r\n\t\t\t\t\ttoken: input.token,\r\n\t\t\t\t\tchannel: input.channel,\r\n\t\t\t\t});\r\n\r\n\t\t\t\treturn res.ok ? { ok: true } : res;\r\n\t\t\t}\r\n\r\n\t\t\tcase 'CABINET': {\r\n\t\t\t\tconst res = await this.sessionManager.create({\r\n\t\t\t\t\ttype: 'CABINET',\r\n\t\t\t\t\ttoken: input.token,\r\n\t\t\t\t\tchannel: input.channel,\r\n\t\t\t\t});\r\n\r\n\t\t\t\treturn res.ok ? { ok: true } : res;\r\n\t\t\t}\r\n\r\n\t\t\tcase 'MOBILE_NUMBER': {\r\n\t\t\t\tconst res = await this.sessionManager.create({\r\n\t\t\t\t\ttype: 'MOBILE_NUMBER',\r\n\t\t\t\t\tmobileNumber: addAreaCode(input.mobileNumber, await this.locale),\r\n\t\t\t\t\tverificationCode: input.verificationCode,\r\n\t\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t\t\ttestPass: input.testPass,\r\n\t\t\t\t\tchannel: input.channel,\r\n\t\t\t\t});\r\n\r\n\t\t\t\treturn res.ok ? { ok: true } : res;\r\n\t\t\t}\r\n\r\n\t\t\tcase 'SINGLE_USE_TOKEN': {\r\n\t\t\t\tconst res = await this.sessionManager.create({\r\n\t\t\t\t\ttype: 'SINGLE_USE_TOKEN',\r\n\t\t\t\t\ttoken: input.token,\r\n\t\t\t\t\tchannel: input.channel,\r\n\t\t\t\t});\r\n\r\n\t\t\t\treturn res.ok ? { ok: true } : res;\r\n\t\t\t}\r\n\r\n\t\t\tdefault: {\r\n\t\t\t\tconst res = await this.sessionManager.create(input);\r\n\r\n\t\t\t\treturn res.ok ? { ok: true } : res;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tasync authenticate(input: AuthenticateInput): Promise<AuthenticateReturn> {\r\n\t\tswitch (input.type) {\r\n\t\t\tcase 'SECURITY_QUESTION': {\r\n\t\t\t\treturn await this.sessionManager.createFromAuthenticator({\r\n\t\t\t\t\ttype: 'SECURITY_QUESTION',\r\n\t\t\t\t\ttoken: input.token,\r\n\t\t\t\t\tchannel: input.channel,\r\n\t\t\t\t\tsecretAnswer: await sha256(input.secretAnswer),\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tdefault: {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: false,\r\n\t\t\t\t\terror: {\r\n\t\t\t\t\t\tname: 'HttpBadRequest',\r\n\t\t\t\t\t\tmessage: \"Invalid input 'type'\",\r\n\t\t\t\t\t},\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tasync signOut() {\r\n\t\tawait this.sessionManager.destroy();\r\n\t}\r\n\r\n\twatchSession(input: WatchSessionInput) {\r\n\t\tconst interval = clamp(input.interval ?? 30000, 30000, 60000);\r\n\r\n\t\tlet timeout: NodeJS.Timeout | null = null;\r\n\r\n\t\tconst assignTimeout = () => {\r\n\t\t\treturn setTimeout(async () => {\r\n\t\t\t\tconst v = await this.sessionManager.verify();\r\n\r\n\t\t\t\tif (!v) {\r\n\t\t\t\t\tawait input.onInvalid();\r\n\t\t\t\t}\r\n\r\n\t\t\t\ttimeout = assignTimeout();\r\n\t\t\t}, interval);\r\n\t\t};\r\n\r\n\t\ttimeout = assignTimeout();\r\n\r\n\t\treturn function unsubscribe() {\r\n\t\t\tif (timeout) {\r\n\t\t\t\tclearTimeout(timeout);\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n\r\n\tasync session(): Promise<SessionReturn> {\r\n\t\tconst res = await this.sessionManager.get();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data\r\n\t\t\t\t? {\r\n\t\t\t\t\t\tid: res.data.session.id,\r\n\t\t\t\t\t\tmaya: this.sessionManager.onMaya,\r\n\t\t\t\t\t\tcabinet: this.sessionManager.onCabinet,\r\n\t\t\t\t\t\taccessToken: res.data.accessToken,\r\n\t\t\t\t\t\trefreshToken: res.data.refreshToken,\r\n\t\t\t\t\t\tdateTimeCreated: new Date(res.data.session.dateTimeCreated),\r\n\t\t\t\t\t}\r\n\t\t\t\t: null,\r\n\t\t};\r\n\t}\r\n\r\n\tasync refreshSession(): Promise<SessionReturn> {\r\n\t\tconst res = await this.sessionManager.refresh();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data\r\n\t\t\t\t? {\r\n\t\t\t\t\t\tid: res.data.session.id,\r\n\t\t\t\t\t\tmaya: this.sessionManager.onMaya,\r\n\t\t\t\t\t\tcabinet: this.sessionManager.onCabinet,\r\n\t\t\t\t\t\taccessToken: res.data.accessToken,\r\n\t\t\t\t\t\trefreshToken: res.data.refreshToken,\r\n\t\t\t\t\t\tdateTimeCreated: new Date(res.data.session.dateTimeCreated),\r\n\t\t\t\t\t}\r\n\t\t\t\t: null,\r\n\t\t};\r\n\t}\r\n\r\n\tasync validateMayaSession(): Promise<ValidateMayaSessionReturn> {\r\n\t\treturn await this.walletService.validateMayaSession();\r\n\t}\r\n\r\n\tasync createSingleUseToken(): Promise<CreateSingleUseTokenReturn> {\r\n\t\tconst res0 = await this.sessionManager.get();\r\n\r\n\t\tif (!res0.ok || !res0.data) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: {\r\n\t\t\t\t\tname: 'UnknownError',\r\n\t\t\t\t\tmessage: 'Something went wrong',\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tconst res1 = await this.authService.createSingleUseToken(\r\n\t\t\tres0.data.accessToken,\r\n\t\t);\r\n\r\n\t\tif (!res1.ok) return res1;\r\n\r\n\t\treturn { ok: true, data: res1.data.token };\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tSITE\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync site(): Promise<SiteReturn> {\r\n\t\tconst res = await this.cmsPortalService.self();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: this.transformer.transform.site(res.data),\r\n\t\t};\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tEXTENSION\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync memberCabinetSiteMachine(): Promise<CabinetSiteMachineReturn> {\r\n\t\tconst res = await this.extensionService.memberCabinetSiteMachine();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data\r\n\t\t\t\t? this.transformer.transform.memberCabinetSiteMachine(res.data)\r\n\t\t\t\t: null,\r\n\t\t};\r\n\t}\r\n\r\n\tasync cabinetWithdrawalRecord(id: string): Promise<CabinetWithdrawalReturn> {\r\n\t\tconst res = await this.walletService.cabinetWithdrawal({ id });\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data\r\n\t\t\t\t? this.transformer.transform.cabinetWithdrawal(res.data)\r\n\t\t\t\t: null,\r\n\t\t};\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tPLATFORM\r\n\t *=============================================\r\n\t */\r\n\r\n\t/** @deprecated */\r\n\tasync platform(): Promise<PlatformReturn> {\r\n\t\tconsole.warn(\r\n\t\t\t\"'platform' is deprecated. Please use 'platform__next' instead.\",\r\n\t\t);\r\n\r\n\t\tconst res = await this.accountService.platform();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: this.transformer.transform.platform(res.data),\r\n\t\t};\r\n\t}\r\n\r\n\tasync platform__next(): Promise<PlatformReturn__Next> {\r\n\t\tconst res = await this.portalService.platform();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: this.transformer.transform.platform__next(res.data),\r\n\t\t};\r\n\t}\r\n\r\n\tasync paymentSettings(): Promise<PaymentSettingsReturn> {\r\n\t\tconst res = await this.accountService.paymentSettings();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: this.transformer.transform.paymentSettings(res.data),\r\n\t\t};\r\n\t}\r\n\r\n\tasync memberLevelSettings(): Promise<MemberLevelSettingsReturn> {\r\n\t\tconst res = await this.accountService.memberLevelSettings();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: this.transformer.transform.memberLevelSettings(res.data),\r\n\t\t};\r\n\t}\r\n\r\n\tasync generalMemberLevelSettings(): Promise<GeneralMemberLevelSettingsReturn> {\r\n\t\tconst res = await this.accountService.generalMemberLevelSettings();\r\n\r\n\t\tif (!res.ok) return res;\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.generalMemberLevelSettings,\r\n\t\t};\r\n\t}\r\n\tasync achievementSettings(): Promise<AchievementSettingsReturn> {\r\n\t\tconst res = await this.accountService.achievementSettings();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: this.transformer.transform.achievementSettings(res.data),\r\n\t\t};\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tACCOUNT\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync account(): Promise<AccountReturn> {\r\n\t\tconst [a, b] = await Promise.all([\r\n\t\t\tthis.accountService.memberAccount(),\r\n\t\t\tthis.reportService.member(),\r\n\t\t]);\r\n\r\n\t\tif (!a.ok) return a;\r\n\r\n\t\tconst c = b.ok ? b.data : { level: 0 };\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: this.transformer.transform.account({ ...a.data, ...c }),\r\n\t\t};\r\n\t}\r\n\r\n\t/**\r\n\t * @deprecated use `createAccount__next`\r\n\t */\r\n\tasync createAccount(input: CreateAccountInput): Promise<CreateAccountReturn> {\r\n\t\tconsole.warn(\r\n\t\t\t\"'createAccount' is deprecated. Please use 'createAccount__next' instead.\",\r\n\t\t);\r\n\r\n\t\tconst id = input.id ?? ObjectId.generate(ObjectType.Account).toString();\r\n\r\n\t\tconst res = await this.accountService.registerMemberAccount({\r\n\t\t\tinput: {\r\n\t\t\t\tid,\r\n\t\t\t\tbtag: input.btag,\r\n\t\t\t\tname: input.name,\r\n\t\t\t\tdomain: input.domain,\r\n\t\t\t\tbirthDay:\r\n\t\t\t\t\ttypeof input.dateOfBirth === 'string'\r\n\t\t\t\t\t\t? input.dateOfBirth\r\n\t\t\t\t\t\t: this.formatYmd(input.dateOfBirth),\r\n\t\t\t\tpassword: await sha256(input.password),\r\n\t\t\t\tmobileNumber: addAreaCode(input.mobileNumber, await this.locale),\r\n\t\t\t\tgigRewardsQuestDetails: input.gigRewardsQuestDetails,\r\n\t\t\t},\r\n\t\t\treferralCode: input.referralCode,\r\n\t\t\tverificationCode: input.verificationCode,\r\n\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t...(this.marketDomain && {\r\n\t\t\t\tdomain: this.marketDomain,\r\n\t\t\t}),\r\n\t\t});\r\n\r\n\t\treturn res.ok ? { ok: true, data: { id } } : res;\r\n\t}\r\n\r\n\tasync createAccount__next(\r\n\t\tinput: CreateAccountInput__Next,\r\n\t): Promise<CreateAccountReturn> {\r\n\t\tconst id = input.id ?? ObjectId.generate(ObjectType.Account).toString();\r\n\r\n\t\tif (input.type === 'MOBILE_NUMBER') {\r\n\t\t\tconst res = await this.accountService.registerMemberAccountViaMobile({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tbtag: input.btag,\r\n\t\t\t\t\tdomain: input.domain,\r\n\t\t\t\t\tmobileNumber: addAreaCode(input.mobileNumber, await this.locale),\r\n\t\t\t\t\trealName: input.realName,\r\n\t\t\t\t\tbirthDay: input.dateOfBirth,\r\n\t\t\t\t\tbranchCode: input.branchCode,\r\n\t\t\t\t\tagentCode: input.agentCode,\r\n\t\t\t\t\t...(this.cxd && {\r\n\t\t\t\t\t\tcellxpertCxd: this.cxd,\r\n\t\t\t\t\t}),\r\n\t\t\t\t\tgigRewardsQuestDetails: input.gigRewardsQuestDetails,\r\n\t\t\t\t},\r\n\t\t\t\treferralCode: input.referralCode,\r\n\t\t\t\tverificationCode: input.verificationCode,\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t\ttestPass: input.testPass,\r\n\t\t\t\t...(this.marketDomain && {\r\n\t\t\t\t\tdomain: this.marketDomain,\r\n\t\t\t\t}),\r\n\t\t\t});\r\n\r\n\t\t\treturn res.ok ? { ok: true, data: { id } } : res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'MOBILE_NUMBER_INR') {\r\n\t\t\tconst res = await this.accountService.registerMemberAccountByMobileNumber(\r\n\t\t\t\t{\r\n\t\t\t\t\tinput: {\r\n\t\t\t\t\t\tid,\r\n\t\t\t\t\t\tpassword: await sha256(input.password),\r\n\t\t\t\t\t\trealName: input.realName,\r\n\t\t\t\t\t\tmobileNumber: addAreaCode(input.mobileNumber, await this.locale),\r\n\t\t\t\t\t\tgigRewardsQuestDetails: input.gigRewardsQuestDetails,\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmobileNumberVerificationCode: input.mobileVerificationCode,\r\n\t\t\t\t\ttestPass: input.testPass,\r\n\t\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t\t\t...(this.marketDomain && {\r\n\t\t\t\t\t\tdomain: this.marketDomain,\r\n\t\t\t\t\t}),\r\n\t\t\t\t},\r\n\t\t\t);\r\n\r\n\t\t\treturn res.ok ? { ok: true, data: { id } } : res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'NAME_AND_PASSWORD') {\r\n\t\t\tconst res = await this.accountService.registerMemberAccount__next({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tname: input.name,\r\n\t\t\t\t\tbtag: input.btag,\r\n\t\t\t\t\tdomain: input.domain,\r\n\t\t\t\t\tpassword: await sha256(input.password),\r\n\t\t\t\t\tmobileNumber: input.mobileNumber\r\n\t\t\t\t\t\t? addAreaCode(input.mobileNumber, await this.locale)\r\n\t\t\t\t\t\t: undefined,\r\n\t\t\t\t\tgigRewardsQuestDetails: input.gigRewardsQuestDetails,\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t\t...(this.marketDomain && {\r\n\t\t\t\t\tdomain: this.marketDomain,\r\n\t\t\t\t}),\r\n\t\t\t});\r\n\r\n\t\t\treturn res.ok ? { ok: true, data: { id } } : res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'MOBILE_NUMBER[NEXT]') {\r\n\t\t\tconst res =\r\n\t\t\t\tawait this.accountService.registerMemberAccountByMobileNumber__next({\r\n\t\t\t\t\tinput: {\r\n\t\t\t\t\t\tid,\r\n\t\t\t\t\t\tmobileNumber: addAreaCode(input.mobileNumber, await this.locale),\r\n\t\t\t\t\t\tmobileNumberVerificationCode: input.mobileNumberVerificationCode,\r\n\t\t\t\t\t\temailAddress: input.emailAddress,\r\n\t\t\t\t\t\tbranchCode: input.branchCode,\r\n\t\t\t\t\t\tagentCode: input.agentCode,\r\n\t\t\t\t\t\tgigRewardsQuestDetails: input.gigRewardsQuestDetails,\r\n\t\t\t\t\t\t...(this.cxd && {\r\n\t\t\t\t\t\t\tcellxpertCxd: this.cxd,\r\n\t\t\t\t\t\t}),\r\n\t\t\t\t\t},\r\n\t\t\t\t\ttestPass: input.testPass,\r\n\t\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t\t\t...(this.marketDomain && {\r\n\t\t\t\t\t\tdomain: this.marketDomain,\r\n\t\t\t\t\t}),\r\n\t\t\t\t\t...(input.fingerprint && {\r\n\t\t\t\t\t\tfingerprint: input.fingerprint,\r\n\t\t\t\t\t}),\r\n\t\t\t\t\t...(input.referralCode && {\r\n\t\t\t\t\t\treferralCode: input.referralCode,\r\n\t\t\t\t\t}),\r\n\t\t\t\t});\r\n\r\n\t\t\treturn res.ok ? { ok: true, data: { id } } : res;\r\n\t\t}\r\n\r\n\t\tconst res = await this.accountService.registerMemberAccountByName({\r\n\t\t\tinput: {\r\n\t\t\t\tid,\r\n\t\t\t\tname: input.name,\r\n\t\t\t\tpassword: await sha256(input.password),\r\n\t\t\t\tgigRewardsQuestDetails: input.gigRewardsQuestDetails,\r\n\t\t\t},\r\n\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t...(this.marketDomain && {\r\n\t\t\t\tdomain: this.marketDomain,\r\n\t\t\t}),\r\n\t\t});\r\n\r\n\t\treturn res.ok ? { ok: true, data: { id } } : res;\r\n\t}\r\n\r\n\tasync registerMayaAccount(\r\n\t\tinput: RegisterMayaAccountInput,\r\n\t): Promise<RegisterMayaAccountReturn> {\r\n\t\treturn await this.accountService.registerMayaMemberAccount({\r\n\t\t\tinput: {\r\n\t\t\t\tname: input.name,\r\n\t\t\t\tpassword: await sha256(input.password),\r\n\t\t\t\tdomain: input.domain,\r\n\t\t\t},\r\n\t\t\t...(this.marketDomain && {\r\n\t\t\t\tdomain: this.marketDomain,\r\n\t\t\t}),\r\n\t\t});\r\n\t}\r\n\r\n\tasync registerAgentAccount(\r\n\t\tinput: RegisterAgentAccountInput,\r\n\t\tcode?: string,\r\n\t): Promise<RegisterAgentAccountReturn> {\r\n\t\treturn await this.accountService.registerAgentAccount({\r\n\t\t\tinput: {\r\n\t\t\t\tname: input.name,\r\n\t\t\t\tfirstName: input.firstName,\r\n\t\t\t\tlastName: input.lastName,\r\n\t\t\t\tmobileNumber: input.mobileNumber,\r\n\t\t\t\temailAddress: input.emailAddress,\r\n\t\t\t\tcustomProperties: input.customProperties,\r\n\t\t\t},\r\n\t\t\t...(code && { code }),\r\n\t\t\t...(this.marketDomain && {\r\n\t\t\t\tdomain: this.marketDomain,\r\n\t\t\t}),\r\n\t\t});\r\n\t}\r\n\r\n\tasync updateAccount(\r\n\t\tid: string,\r\n\t\tinput: UpdateAccountInput,\r\n\t): Promise<UpdateAccountReturn> {\r\n\t\tconst {\r\n\t\t\t/**/\r\n\t\t\tpassword,\r\n\t\t\tdateOfBirth,\r\n\t\t\tmobileNumber,\r\n\t\t\tsecretAnswer,\r\n\t\t\ttransactionPassword,\r\n\t\t\tgigRewardsQuestDetails,\r\n\t\t\t...others\r\n\t\t} = input;\r\n\r\n\t\treturn await this.accountService.updateMemberAccount({\r\n\t\t\tinput: {\r\n\t\t\t\tid,\r\n\t\t\t\tdata: {\r\n\t\t\t\t\t...others,\r\n\t\t\t\t\tpassword: password ? await sha256(password) : undefined,\r\n\t\t\t\t\ttransactionPassword: transactionPassword\r\n\t\t\t\t\t\t? await sha256(transactionPassword)\r\n\t\t\t\t\t\t: undefined,\r\n\t\t\t\t\tmobileNumber: mobileNumber\r\n\t\t\t\t\t\t? addAreaCode(mobileNumber, await this.locale)\r\n\t\t\t\t\t\t: undefined,\r\n\t\t\t\t\tsecretAnswer: secretAnswer ? await sha256(secretAnswer) : undefined,\r\n\t\t\t\t\tbirthDay: dateOfBirth\r\n\t\t\t\t\t\t? typeof dateOfBirth === 'string'\r\n\t\t\t\t\t\t\t? dateOfBirth\r\n\t\t\t\t\t\t\t: this.formatYmd(dateOfBirth)\r\n\t\t\t\t\t\t: undefined,\r\n\t\t\t\t\tgigRewardsQuestDetails,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t});\r\n\t}\r\n\r\n\tasync deleteAccount(id: string): Promise<DeleteAccountReturn> {\r\n\t\treturn await this.accountService.deleteMemberAccount({\r\n\t\t\tinput: {\r\n\t\t\t\tid,\r\n\t\t\t},\r\n\t\t});\r\n\t}\r\n\r\n\tasync updateDailyBetLimit(\r\n\t\tinput: UpdateDailyBetLimitInput,\r\n\t): Promise<UpdateAccountLimitReturn> {\r\n\t\treturn await this.accountService.updateDailyBetLimit({\r\n\t\t\tinput: {\r\n\t\t\t\tdailyBetLimit: toDecimalVariable(input.dailyBetLimit),\r\n\t\t\t},\r\n\t\t});\r\n\t}\r\n\r\n\tasync updateMonthlyBetLimit(\r\n\t\tinput: UpdateMonthlyBetLimitInput,\r\n\t): Promise<UpdateAccountLimitReturn> {\r\n\t\treturn await this.accountService.updateMonthlyBetLimit({\r\n\t\t\tinput: {\r\n\t\t\t\tmonthlyBetLimit: toDecimalVariable(input.monthlyBetLimit),\r\n\t\t\t},\r\n\t\t});\r\n\t}\r\n\r\n\tasync updateDailyDepositLimit(\r\n\t\tinput: UpdateDailyDepositLimitInput,\r\n\t): Promise<UpdateAccountLimitReturn> {\r\n\t\treturn await this.accountService.updateDailyDepositLimit({\r\n\t\t\tinput: {\r\n\t\t\t\tdailyDepositLimit: toDecimalVariable(input.dailyDepositLimit),\r\n\t\t\t},\r\n\t\t});\r\n\t}\r\n\r\n\tasync updateMonthlyDepositLimit(\r\n\t\tinput: UpdateMonthlyDepositLimitInput,\r\n\t): Promise<UpdateAccountLimitReturn> {\r\n\t\treturn await this.accountService.updateMonthlyDepositLimit({\r\n\t\t\tinput: {\r\n\t\t\t\tmonthlyDepositLimit: toDecimalVariable(input.monthlyDepositLimit),\r\n\t\t\t},\r\n\t\t});\r\n\t}\r\n\r\n\tasync unlinkGoogle(id: string): Promise<DeleteAccountReturn> {\r\n\t\treturn await this.accountService.unlinkGoogle({\r\n\t\t\tinput: {\r\n\t\t\t\tid,\r\n\t\t\t},\r\n\t\t});\r\n\t}\r\n\tasync verificationDetails(): Promise<VerificationDetailsReturn> {\r\n\t\tconst res = await this.accountService.memberVerification();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data\r\n\t\t\t\t? this.transformer.transform.verificationDetails(res.data)\r\n\t\t\t\t: null,\r\n\t\t};\r\n\t}\r\n\r\n\tasync submitVerificationDetails(\r\n\t\tinput: SubmitVerificationDetailsInput,\r\n\t): Promise<SubmitVerificationDetailsReturn> {\r\n\t\tconst id =\r\n\t\t\tinput.id ?? ObjectId.generate(ObjectType.Verification).toString();\r\n\r\n\t\tconst res = await this.accountService.createMemberVerification({\r\n\t\t\tinput: {\r\n\t\t\t\tid,\r\n\t\t\t\t...input,\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\treturn res.ok ? { ok: true, data: { id } } : res;\r\n\t}\r\n\r\n\tasync submitVerificationDetails_Next(\r\n\t\tinput: SubmitVerificationDetailsInputNext,\r\n\t): Promise<SubmitVerificationDetailsReturn> {\r\n\t\tconst id =\r\n\t\t\tinput.id ?? ObjectId.generate(ObjectType.Verification).toString();\r\n\r\n\t\tconst res = await this.accountService.createMemberVerification_Next({\r\n\t\t\tinput: {\r\n\t\t\t\tid,\r\n\t\t\t\t...input,\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\treturn res.ok ? { ok: true, data: { id } } : res;\r\n\t}\r\n\r\n\tasync updateVerificationDetails(\r\n\t\tid: string,\r\n\t\tinput: UpdateVerificationDetailsInput,\r\n\t): Promise<UpdateVerificationDetailsReturn> {\r\n\t\treturn await this.accountService.updateMemberVerification({\r\n\t\t\tinput: {\r\n\t\t\t\tid,\r\n\t\t\t\tdata: {\r\n\t\t\t\t\t...input,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t});\r\n\t}\r\n\r\n\tasync updateVerificationDetails_Next(\r\n\t\tid: string,\r\n\t\tinput: UpdateVerificationDetailsInput,\r\n\t): Promise<UpdateVerificationDetailsReturn> {\r\n\t\treturn await this.accountService.updateMemberVerification_Next({\r\n\t\t\tinput: {\r\n\t\t\t\tid,\r\n\t\t\t\tdata: {\r\n\t\t\t\t\t...input,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t});\r\n\t}\r\n\r\n\tasync submitMemberVerification(\r\n\t\tid: string,\r\n\t): Promise<SubmitMemberVerificationReturn> {\r\n\t\tconst res = await this.accountService.submitMemberVerification({\r\n\t\t\tinput: {\r\n\t\t\t\tid,\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\treturn res.ok ? { ok: true, data: { id } } : res;\r\n\t}\r\n\r\n\tasync resetPassword(input: ResetPasswordInput): Promise<ResetPasswordReturn> {\r\n\t\treturn await this.accountService.resetPassword({\r\n\t\t\tinput: {\r\n\t\t\t\tmobileNumber: addAreaCode(input.mobileNumber, await this.locale),\r\n\t\t\t\tnewPassword: await sha256(input.newPassword),\r\n\t\t\t},\r\n\t\t\tverificationCode: input.verificationCode,\r\n\t\t});\r\n\t}\r\n\r\n\tasync verifyMobileNumber(\r\n\t\tverificationCode: string,\r\n\t): Promise<VerifyMobileNumberReturn> {\r\n\t\treturn await this.accountService.verifyMobileNumber({\r\n\t\t\tinput: {\r\n\t\t\t\tverificationCode,\r\n\t\t\t},\r\n\t\t});\r\n\t}\r\n\r\n\tasync profileCompletion(): Promise<ProfileCompletionReturn> {\r\n\t\tconst res = await this.accountService.profileCompletion();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: this.transformer.transform.profileCompletion(res.data),\r\n\t\t};\r\n\t}\r\n\r\n\t/**\r\n\t * @deprecated use `sendVerificationCode__next`\r\n\t */\r\n\tasync sendVerificationCode(\r\n\t\tmobileNumber: string,\r\n\t): Promise<SendVerificationCodeReturn> {\r\n\t\tconsole.warn(\r\n\t\t\t\"'sendVerificationCode' is deprecated. Please use 'sendVerificationCode__next' instead.\",\r\n\t\t);\r\n\r\n\t\treturn await this.accountService.sendVerificationCode({\r\n\t\t\tinput: {\r\n\t\t\t\tchannel: 'SMS',\r\n\t\t\t\trecipient: addAreaCode(mobileNumber, await this.locale),\r\n\t\t\t},\r\n\t\t});\r\n\t}\r\n\r\n\tasync sendVerificationCode__next(\r\n\t\tinput: SendVerificationCodeInput__Next,\r\n\t): Promise<SendVerificationCodeReturn__Next> {\r\n\t\tif (input.type === 'SMS') {\r\n\t\t\treturn this.authService.sendVerificationCode({\r\n\t\t\t\tchannel: 'SMS',\r\n\t\t\t\trecipient: addAreaCode(input.mobileNumber, await this.locale),\r\n\t\t\t\t...(input.strict && {\r\n\t\t\t\t\tverificationType: 'MEMBER',\r\n\t\t\t\t}),\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tthrow new Error(\"'Email' verification code is not yet supported\");\r\n\t}\r\n\r\n\tasync wallet(): Promise<WalletReturn> {\r\n\t\tconst res = await this.walletService.wallet();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data ? this.transformer.transform.wallet(res.data) : null,\r\n\t\t};\r\n\t}\r\n\tasync memberWalletAccount(): Promise<MemberWalletAccountReturn> {\r\n\t\tconst res = await this.walletService.memberWalletAccount();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data\r\n\t\t\t\t? this.transformer.transform.memberWalletAccount(res.data)\r\n\t\t\t\t: null,\r\n\t\t};\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tANNOUNCEMENT\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync announcements(\r\n\t\tinput?: AnnouncementsInput,\r\n\t): Promise<AnnouncementsReturn> {\r\n\t\tconst res = await this.accountService.announcements({\r\n\t\t\t...input,\r\n\t\t\tfilter: {\r\n\t\t\t\t...input?.filter,\r\n\t\t\t\tvisibility: {\r\n\t\t\t\t\tin: ['MEMBER', 'GLOBAL'],\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\tannouncements: res.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.announcement(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t},\r\n\t\t} as AnnouncementsReturn;\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tWITHDRAWAL\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync createWithdrawal(\r\n\t\tinput: CreateWithdrawalInput,\r\n\t): Promise<CreateWithdrawalReturn> {\r\n\t\tconst id = input.id ?? ObjectId.generate(ObjectType.Withdrawal).toString();\r\n\r\n\t\tif (input.type === 'BANK') {\r\n\t\t\tconst res = await this.walletService.createBankWithdrawal({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\ttransactionPassword: await sha256(input.transactionPassword),\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t\t...(this.marketDomain && {\r\n\t\t\t\t\tdomain: this.marketDomain,\r\n\t\t\t\t}),\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'CABINET') {\r\n\t\t\tconst res = await this.extensionService.createCabinetWithdrawal({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t},\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'GCASH') {\r\n\t\t\tconst res = await this.walletService.createGCashWithdrawal({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\ttransactionPassword: await sha256(input.transactionPassword),\r\n\t\t\t\t\trecipientMobileNumber: addAreaCode(\r\n\t\t\t\t\t\tinput.recipientMobileNumber,\r\n\t\t\t\t\t\tawait this.locale,\r\n\t\t\t\t\t),\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t\t...(this.marketDomain && {\r\n\t\t\t\t\tdomain: this.marketDomain,\r\n\t\t\t\t}),\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'GCASH_STANDARD_CASHIN') {\r\n\t\t\tconst res = await this.walletService.createGCashStandardCashInWithdrawal({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\ttransactionPassword: await sha256(input.transactionPassword),\r\n\t\t\t\t\trecipientMobileNumber: addAreaCode(\r\n\t\t\t\t\t\tinput.recipientMobileNumber,\r\n\t\t\t\t\t\tawait this.locale,\r\n\t\t\t\t\t),\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t\t...(this.marketDomain && {\r\n\t\t\t\t\tdomain: this.marketDomain,\r\n\t\t\t\t}),\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'MAYA') {\r\n\t\t\tconst res = await this.walletService.createMayaWithdrawal({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\taccountNumber: addAreaCode(input.accountNumber, await this.locale),\r\n\t\t\t\t},\r\n\t\t\t\ttransactionPassword: await sha256(input.transactionPassword),\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t\t...(this.marketDomain && {\r\n\t\t\t\t\tdomain: this.marketDomain,\r\n\t\t\t\t}),\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'MAYA_APP') {\r\n\t\t\tconst res = await this.walletService.createMayaAppWithdrawal({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\ttransactionPassword: await sha256(input.transactionPassword),\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t\t...(this.marketDomain && {\r\n\t\t\t\t\tdomain: this.marketDomain,\r\n\t\t\t\t}),\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'AIO_INSTAPAY') {\r\n\t\t\tconst res = await this.walletService.createAIOInstapayWithdrawal({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\tbankCode: input.bankCode,\r\n\t\t\t\t\taccountNumber: input.accountNumber,\r\n\t\t\t\t\taccountName: input.accountName,\r\n\t\t\t\t\ttransactionPassword: await sha256(input.transactionPassword),\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t\t...(this.marketDomain && {\r\n\t\t\t\t\tdomain: this.marketDomain,\r\n\t\t\t\t}),\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\t\tif (input.type === 'AIO_INSTAPAY_NEXT') {\r\n\t\t\tconst res = await this.walletService.createAIOInstapayWithdrawal_next({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\tbankCode: input.bankCode,\r\n\t\t\t\t\taccountNumber: input.accountNumber,\r\n\t\t\t\t\ttransactionPassword: await sha256(input.transactionPassword),\r\n\t\t\t\t\taccountName: input.accountName,\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t\t...(this.marketDomain && {\r\n\t\t\t\t\tdomain: this.marketDomain,\r\n\t\t\t\t}),\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'MANUAL_UPI') {\r\n\t\t\tconst res = await this.walletService.createManualUpiWithdrawal({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\tupiId: input.upiId,\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t\t...(this.marketDomain && {\r\n\t\t\t\t\tdomain: this.marketDomain,\r\n\t\t\t\t}),\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'MANUAL_BANK') {\r\n\t\t\tconst res = await this.walletService.createManualBankWithdrawal({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\tbankAccountName: input.bankAccountName,\r\n\t\t\t\t\tbankAccountNumber: input.bankAccountNumber,\r\n\t\t\t\t\tbankIFSCCode: input.bankIFSCCode,\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t\t...(this.marketDomain && {\r\n\t\t\t\t\tdomain: this.marketDomain,\r\n\t\t\t\t}),\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\treturn { ok: true, data: { id } };\r\n\t}\r\n\r\n\tasync withdrawalRecords(\r\n\t\tinput?: WithdrawalRecordsInput,\r\n\t): Promise<WithdrawalRecordsReturn> {\r\n\t\tconst res = await this.reportService.withdrawalRecords(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\twithdrawalRecords: res.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.withdrawalRecord(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t},\r\n\t\t} as WithdrawalRecordsReturn;\r\n\t}\r\n\r\n\tasync remainingDailyWithdrawalsCount(): Promise<RemainingDailyWithdrawalsCountReturn> {\r\n\t\treturn await this.walletService.remainingDailyWithdrawalsCount();\r\n\t}\r\n\r\n\tasync instapayBankList(): Promise<InstapayBankListReturn> {\r\n\t\tconst res = await this.walletService.instapayBankList();\r\n\t\tif (!res.ok) return res;\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.map(this.transformer.transform.instapayBank),\r\n\t\t};\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tDEPOSIT\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync createDeposit(input: CreateDepositInput): Promise<CreateDepositReturn> {\r\n\t\tconst id = input.id ?? ObjectId.generate(ObjectType.Deposit).toString();\r\n\r\n\t\tconst environment = this.config.environment ?? 'development';\r\n\t\tif (input.type === 'TEST') {\r\n\t\t\tconst res = await this.walletService.createTestDeposit({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\tpromo: input.promo,\r\n\t\t\t\t},\r\n\t\t\t\t...(this.marketDomain && {\r\n\t\t\t\t\tdomain: this.marketDomain,\r\n\t\t\t\t}),\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\t\tif (input.type === 'MAYA') {\r\n\t\t\tconst res = await this.walletService.createMayaDeposit({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\tpromo: input.promo,\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t\t...(this.marketDomain && {\r\n\t\t\t\t\tdomain: this.marketDomain,\r\n\t\t\t\t}),\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'MAYA_APP') {\r\n\t\t\tconst res = await this.walletService.createMayaAppDeposit({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\tpromo: input.promo,\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t\t...(this.marketDomain && {\r\n\t\t\t\t\tdomain: this.marketDomain,\r\n\t\t\t\t}),\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'GCASH') {\r\n\t\t\tconst res = await this.walletService.createGCashDeposit({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\tpromo: input.promo,\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t\t...(this.marketDomain && {\r\n\t\t\t\t\tdomain: this.marketDomain,\r\n\t\t\t\t}),\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'AIO_GCASH') {\r\n\t\t\tconst res = await this.walletService.createAiOGCashDeposit({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\tpromo: input.promo,\r\n\t\t\t\t\tredirectUrl: `${ENDPOINTS[environment].opexapay}/aio/success?redirectUrl=${input.redirectUrl}?deposit=${id}`,\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t\t...(this.marketDomain && {\r\n\t\t\t\t\tdomain: this.marketDomain,\r\n\t\t\t\t}),\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\t\tif (input.type === 'AIO_PAY_MAYA') {\r\n\t\t\tconst res = await this.walletService.createAiOPayMayaDeposit({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\tpromo: input.promo,\r\n\t\t\t\t\tredirectUrl: `${ENDPOINTS[environment].opexapay}/aio/success?redirectUrl=${input.redirectUrl}?deposit=${id}`,\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t\t...(this.marketDomain && {\r\n\t\t\t\t\tdomain: this.marketDomain,\r\n\t\t\t\t}),\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'AIO_GRAB_PAY') {\r\n\t\t\tconst res = await this.walletService.createAiOGrabPayDeposit({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\tpromo: input.promo,\r\n\t\t\t\t\tredirectUrl: `${ENDPOINTS[environment].opexapay}/aio/success?redirectUrl=${input.redirectUrl}?deposit=${id}`,\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t\t...(this.marketDomain && {\r\n\t\t\t\t\tdomain: this.marketDomain,\r\n\t\t\t\t}),\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'AIO_PALAWAN_PAY') {\r\n\t\t\tconst res = await this.walletService.createAiOPalawanPayDeposit({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\tpromo: input.promo,\r\n\t\t\t\t\tredirectUrl: `${ENDPOINTS[environment].opexapay}/aio/success?redirectUrl=${input.redirectUrl}?deposit=${id}`,\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t\t...(this.marketDomain && {\r\n\t\t\t\t\tdomain: this.marketDomain,\r\n\t\t\t\t}),\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'AIO_ONLINE_BANK') {\r\n\t\t\tconst res = await this.walletService.createAIOOnlineBankDeposit({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\tpromo: input.promo,\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t\t...(this.marketDomain && {\r\n\t\t\t\t\tdomain: this.marketDomain,\r\n\t\t\t\t}),\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'AIO_QRPH') {\r\n\t\t\tconst res = await this.walletService.createAIOQRPHDeposit({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\tpromo: input.promo,\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t\t...(this.marketDomain && {\r\n\t\t\t\t\tdomain: this.marketDomain,\r\n\t\t\t\t}),\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\t\tif (input.type === 'MANUAL_UPI') {\r\n\t\t\tconst res = await this.walletService.createManualUPIDeposit({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\treference: input.reference,\r\n\t\t\t\t\treferenceImage: input.referenceImage,\r\n\t\t\t\t\tpromo: input.promo,\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t\t...(this.marketDomain && {\r\n\t\t\t\t\tdomain: this.marketDomain,\r\n\t\t\t\t}),\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'MANUAL_BANK') {\r\n\t\t\tconst res = await this.walletService.createManualBankDeposit({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\treferenceImage: input.referenceId,\r\n\t\t\t\t\tpromo: input.promo,\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t\t...(this.marketDomain && {\r\n\t\t\t\t\tdomain: this.marketDomain,\r\n\t\t\t\t}),\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'GCASH_WEBPAY') {\r\n\t\t\tconst res = await this.walletService.createGCashWebpayDeposit({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\tpromo: input.promo,\r\n\t\t\t\t\tcancelRedirectionUrl: input.cancelRedirectionUrl,\r\n\t\t\t\t\tsuccessRedirectionUrl: input.successRedirectionUrl,\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t\t...(this.marketDomain && {\r\n\t\t\t\t\tdomain: this.marketDomain,\r\n\t\t\t\t}),\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'MAYA_WEBPAY') {\r\n\t\t\tconst res = await this.walletService.createMayaWebpayDeposit({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\tpromo: input.promo,\r\n\t\t\t\t\tredirectUrl: input.redirectUrl,\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t\t...(this.marketDomain && {\r\n\t\t\t\t\tdomain: this.marketDomain,\r\n\t\t\t\t}),\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\treturn { ok: true, data: { id } };\r\n\t}\r\n\r\n\tasync deposit(id: string): Promise<DepositReturn> {\r\n\t\tconst res = await this.walletService.deposit({ id });\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data ? this.transformer.transform.deposit(res.data) : null,\r\n\t\t};\r\n\t}\r\n\r\n\tasync depositRecords(\r\n\t\tinput?: DepositRecordsInput,\r\n\t): Promise<DepositRecordsReturn> {\r\n\t\tconst res = await this.reportService.depositRecords(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\tdepositRecords: res.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.depositRecord(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t},\r\n\t\t} as DepositRecordsReturn;\r\n\t}\r\n\r\n\tasync depositsCount(): Promise<DepositsCountReturn> {\r\n\t\treturn await this.reportService.depositsCount();\r\n\t}\r\n\r\n\tasync touchDeposit(input: TouchDepositInput): Promise<TouchDepositReturn> {\r\n\t\tswitch (input.type) {\r\n\t\t\tcase 'GCASH':\r\n\t\t\t\treturn await this.walletService.touchGCashDeposit({\r\n\t\t\t\t\tinput: { id: input.id },\r\n\t\t\t\t});\r\n\t\t\tcase 'QR_PH':\r\n\t\t\t\treturn await this.walletService.touchQrphDeposit({\r\n\t\t\t\t\tinput: { id: input.id },\r\n\t\t\t\t});\r\n\t\t\tdefault:\r\n\t\t\t\tthrow new Error(`Unsupported input type: '${input.type}'`);\r\n\t\t}\r\n\t}\r\n\r\n\tasync redeemVoucher(input: RedeemVoucherInput): Promise<RedeemVoucherReturn> {\r\n\t\treturn await this.walletService.redeemVoucher({\r\n\t\t\tinput: {\r\n\t\t\t\ttype: input.type,\r\n\t\t\t\tcode: input.code,\r\n\t\t\t},\r\n\t\t});\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tBET RECORD\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync betRecords(input?: BetRecordsInput): Promise<BetRecordsReturn> {\r\n\t\tconst res0 = await this.reportService.betRecords({\r\n\t\t\t...input,\r\n\t\t\t...(input?.filter && {\r\n\t\t\t\tfilter: {\r\n\t\t\t\t\t...(input.filter.status && {\r\n\t\t\t\t\t\tstatus: input.filter.status,\r\n\t\t\t\t\t}),\r\n\t\t\t\t\t...(input.filter.serialCode && {\r\n\t\t\t\t\t\tserialCode: input.filter.serialCode,\r\n\t\t\t\t\t}),\r\n\t\t\t\t\t...(input.filter.vendorRoundId && {\r\n\t\t\t\t\t\tvendorRoundId: input.filter.vendorRoundId,\r\n\t\t\t\t\t}),\r\n\t\t\t\t\t...(input.filter.gameType && {\r\n\t\t\t\t\t\tgame__type: input.filter.gameType,\r\n\t\t\t\t\t}),\r\n\t\t\t\t\t...(input.filter.gameProvider && {\r\n\t\t\t\t\t\tgame__provider: input.filter.gameProvider,\r\n\t\t\t\t\t}),\r\n\t\t\t\t\t...(input.filter.dateTimeCreated && {\r\n\t\t\t\t\t\tdateTimeCreated: input.filter.dateTimeCreated,\r\n\t\t\t\t\t}),\r\n\t\t\t\t\t...(input.filter.freeBetDrop && {\r\n\t\t\t\t\t\tfreeBetDrop: input.filter.freeBetDrop,\r\n\t\t\t\t\t}),\r\n\t\t\t\t},\r\n\t\t\t}),\r\n\t\t});\r\n\r\n\t\tif (!res0.ok) return res0;\r\n\r\n\t\tconst ids = [...new Set(res0.data.edges.map((e) => e.node.game.id))];\r\n\r\n\t\tif (ids.length <= 0) {\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: {\r\n\t\t\t\t\tbetRecords: [],\r\n\t\t\t\t\ttotalCount: 0,\r\n\t\t\t\t\tendCursor: undefined,\r\n\t\t\t\t\thasNextPage: false,\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tconst res1 = await this.cmsPortalService.games({\r\n\t\t\tfilter: {\r\n\t\t\t\treference: {\r\n\t\t\t\t\tin: ids,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res1.ok) return res1;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\tbetRecords: res0.data.edges.map(({ cursor, node }) => {\r\n\t\t\t\t\tconst game = res1.data.edges.find(\r\n\t\t\t\t\t\t(e) => node.game.id === e.node.reference,\r\n\t\t\t\t\t)?.node;\r\n\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\t...this.transformer.transform.betRecord({\r\n\t\t\t\t\t\t\t...node,\r\n\t\t\t\t\t\t\tgame,\r\n\t\t\t\t\t\t}),\r\n\t\t\t\t\t\tcursor,\r\n\t\t\t\t\t};\r\n\t\t\t\t}),\r\n\t\t\t\ttotalCount: res0.data.totalCount,\r\n\t\t\t\tendCursor: res0.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t\thasNextPage: res0.data.pageInfo.hasNextPage,\r\n\t\t\t},\r\n\t\t} as BetRecordsReturn;\r\n\t}\r\n\r\n\tasync latestBetRecords(): Promise<LatestBetRecordsReturn> {\r\n\t\tconst res0 = await this.portalService.latestBetRecords();\r\n\r\n\t\tif (!res0.ok) return res0;\r\n\r\n\t\tconst ids = [...new Set(res0.data.map((o) => o.game.id))];\r\n\r\n\t\tif (ids.length <= 0) {\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: [],\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tconst res1 = await this.cmsPortalService.games({\r\n\t\t\tfilter: {\r\n\t\t\t\treference: {\r\n\t\t\t\t\tin: ids,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res1.ok) return res1;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res0.data.map((o) => {\r\n\t\t\t\tconst game = res1.data.edges.find(\r\n\t\t\t\t\t(e) => e.node.reference === o.game.id,\r\n\t\t\t\t)?.node;\r\n\r\n\t\t\t\treturn this.transformer.transform.latestBetRecord({\r\n\t\t\t\t\t...o,\r\n\t\t\t\t\tgame,\r\n\t\t\t\t});\r\n\t\t\t}),\r\n\t\t};\r\n\t}\r\n\tasync freeBetDrops(input?: FreeBetDropsInput): Promise<FreeBetDropsReturn> {\r\n\t\tconst res = await this.reportService.freeBetDrops(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\tfreeBetDrops: res.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.freeBetDrops(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t},\r\n\t\t} as FreeBetDropsReturn;\r\n\t}\r\n\tasync memberFreeBetDrops(\r\n\t\tinput?: MemberFreeBetDropsInput,\r\n\t): Promise<MemberFreeBetDropsReturn> {\r\n\t\tconst res = await this.reportService.memberFreeBetDrops(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\tfreeBetDrops: res.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.memberFreeBetDrops(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t},\r\n\t\t} as MemberFreeBetDropsReturn;\r\n\t}\r\n\r\n\tasync cancelFreeBetDrop(\r\n\t\tinput: CancelFreeBetDropInput,\r\n\t): Promise<CancelFreeBetDropReturn> {\r\n\t\treturn await this.walletService.cancelFreeBetDrop(input);\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tTRANSACTION\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync transactionRecords(\r\n\t\tinput?: TransactionRecordsInput,\r\n\t): Promise<TransactionRecordsReturn> {\r\n\t\tconst res = await this.reportService.transactionRecords(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\ttransactionRecords: res.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.transactionRecord(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t},\r\n\t\t} as TransactionRecordsReturn;\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tPROMO\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync promos(): Promise<PromosReturn> {\r\n\t\tconst res = await this.walletService.promos();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.map(this.transformer.transform.promo),\r\n\t\t};\r\n\t}\r\n\r\n\tasync availablePromos(\r\n\t\tinput?: PromoFilterInput,\r\n\t): Promise<AvailablePromosReturn> {\r\n\t\tconst res = await this.walletService.availablePromos(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.map(this.transformer.transform.promo),\r\n\t\t};\r\n\t}\r\n\r\n\tasync cashbacks(): Promise<CashbacksReturn> {\r\n\t\tconst res = await this.walletService.cashbacks();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.map(this.transformer.transform.cashback),\r\n\t\t};\r\n\t}\r\n\r\n\tasync promosAndCashbacks(): Promise<PromosAndCashbacksReturn> {\r\n\t\tconst res = await this.walletService.promosAndCashbacks();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\tpromos: res.data.promos.map(this.transformer.transform.promo),\r\n\t\t\t\tcashbacks: res.data.cashbacks.map(this.transformer.transform.cashback),\r\n\t\t\t},\r\n\t\t};\r\n\t}\r\n\r\n\t/** @deprecated */\r\n\tasync bonus(): Promise<BonusReturn> {\r\n\t\tconsole.warn(\"'bonus' is deprecated. Please use 'bonuses' instead.\");\r\n\r\n\t\tconst res = await this.walletService.bonus();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data ? this.transformer.transform.bonus(res.data) : null,\r\n\t\t};\r\n\t}\r\n\r\n\tasync bonuses(): Promise<BonusesReturn> {\r\n\t\tconst res = await this.walletService.bonuses();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.map(this.transformer.transform.bonus),\r\n\t\t};\r\n\t}\r\n\r\n\tasync cashbackBonuses(): Promise<CashbackBonusReturn> {\r\n\t\tconst res = await this.walletService.cashbackBonuses();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.map(this.transformer.transform.cashbackBonus),\r\n\t\t};\r\n\t}\r\n\r\n\tasync claimCashbackBonus(id: string): Promise<ClaimCashbackBonusReturn> {\r\n\t\treturn await this.walletService.claimCashbackBonus({ input: { id } });\r\n\t}\r\n\r\n\tasync claimRebate(id: string): Promise<ClaimRebateReturn> {\r\n\t\treturn await this.walletService.claimRebate({ input: { id } });\r\n\t}\r\n\r\n\tasync claimSpotBonus(code: string): Promise<ClaimSpotBonusReturn> {\r\n\t\treturn await this.walletService.claimSpotBonus({ code: code });\r\n\t}\r\n\r\n\tasync promoByCode(code: string): Promise<PromoByCodeReturn> {\r\n\t\tconst res = await this.reportService.promoByCode({ code: code });\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: this.transformer.transform.promoByCode(res.data),\r\n\t\t};\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tGAME\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync game(id: string): Promise<GameReturn> {\r\n\t\tconst res = await this.cmsPortalService.game(id);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data ? this.transformer.transform.game(res.data) : null,\r\n\t\t};\r\n\t}\r\n\r\n\t/** @deprecated */\r\n\tasync games(input?: GamesInput): Promise<GamesReturn> {\r\n\t\tconsole.warn(\"'games' is deprecated. Please use 'games__next' instead.\");\r\n\r\n\t\tconst res = await this.cmsPortalService.games(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\tgames: res.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.game(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t},\r\n\t\t} as GamesReturn;\r\n\t}\r\n\r\n\tasync walletGames(input?: WalletGameInput): Promise<WalletGamesReturn> {\r\n\t\tconsole.warn(\r\n\t\t\t\"'walletGames games' is deprecated. This is for testing purpose only.\",\r\n\t\t);\r\n\r\n\t\tconst res = await this.walletService.walletGames(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\tgames: res.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...node,\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t},\r\n\t\t} as WalletGamesReturn;\r\n\t}\r\n\r\n\tasync platformGames(\r\n\t\tinput?: PlatformGamesInput,\r\n\t): Promise<PlatformGamesReturn> {\r\n\t\tconst res = await this.walletService.platformGames(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\tplatformGames: res.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...node,\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t},\r\n\t\t} as PlatformGamesReturn;\r\n\t}\r\n\r\n\tasync games__next(input?: GamesInput__Next): Promise<GamesReturn> {\r\n\t\tconst res = await this.cmsPortalService.games__next(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\tgames: res.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.game(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t},\r\n\t\t} as GamesReturn;\r\n\t}\r\n\r\n\tasync recommendedGames(\r\n\t\tinput?: RecommendedGamesInput,\r\n\t): Promise<RecommendedGamesReturn> {\r\n\t\tconst res0 = await this.portalService.recommendedGames();\r\n\r\n\t\tif (!res0.ok) return res0;\r\n\r\n\t\tconst ids = [...new Set(res0.data.map((o) => o.id))];\r\n\r\n\t\tif (ids.length <= 0) {\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: {\r\n\t\t\t\t\tgames: [],\r\n\t\t\t\t\ttotalCount: 0,\r\n\t\t\t\t\thasNextPage: false,\r\n\t\t\t\t\tendCursor: undefined,\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tconst res1 = await this.cmsPortalService.games({\r\n\t\t\tfirst: input?.first,\r\n\t\t\tafter: input?.after,\r\n\t\t\tfilter: {\r\n\t\t\t\treference: {\r\n\t\t\t\t\tin: ids,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res1.ok) return res1;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\tgames: res1.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.game(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: res1.data.totalCount,\r\n\t\t\t\thasNextPage: res1.data.pageInfo.hasNextPage,\r\n\t\t\t\tendCursor: res1.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t},\r\n\t\t} as RecommendedGamesReturn;\r\n\t}\r\n\r\n\tasync gameSession(\r\n\t\tid: string,\r\n\t\tgameProvider?: GameProvider,\r\n\t): Promise<GameSessionReturn> {\r\n\t\tif (gameProvider) {\r\n\t\t\tconst res = NEW_GAME_PROVIDERS.includes(gameProvider)\r\n\t\t\t\t? await this.walletService.gameSession({ id })\r\n\t\t\t\t: await this.gameService.gameSession({ id });\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: res.data\r\n\t\t\t\t\t? this.transformer.transform.gameSession(res.data)\r\n\t\t\t\t\t: null,\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tconst res0 = await this.walletService.gameSession({ id });\r\n\r\n\t\tif (!res0.ok) return res0;\r\n\r\n\t\tif (res0.data) {\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: this.transformer.transform.gameSession(res0.data),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tconst res1 = await this.gameService.gameSession({ id });\r\n\r\n\t\tif (!res1.ok) return res1;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res1.data\r\n\t\t\t\t? this.transformer.transform.gameSession(res1.data)\r\n\t\t\t\t: null,\r\n\t\t};\r\n\t}\r\n\r\n\tasync createGameSession(\r\n\t\tinput: CreateGameSessionInput,\r\n\t): Promise<CreateGameSessionReturn> {\r\n\t\tconst id = input.id ?? ObjectId.generate(ObjectType.GameSession).toString();\r\n\r\n\t\tif (input.provider) {\r\n\t\t\tconst res = NEW_GAME_PROVIDERS.includes(input.provider)\r\n\t\t\t\t? await this.walletService.createGameSession({\r\n\t\t\t\t\t\tinput: {\r\n\t\t\t\t\t\t\tid,\r\n\t\t\t\t\t\t\tgame: input.reference,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t...(this.marketDomain && {\r\n\t\t\t\t\t\t\tdomain: this.marketDomain,\r\n\t\t\t\t\t\t}),\r\n\t\t\t\t\t})\r\n\t\t\t\t: await this.gameService.createGameSession({\r\n\t\t\t\t\t\tinput: {\r\n\t\t\t\t\t\t\tid,\r\n\t\t\t\t\t\t\tgame: input.reference,\r\n\t\t\t\t\t\t\thomepageUrl:\r\n\t\t\t\t\t\t\t\ttypeof window === 'undefined' ? undefined : input.homepageUrl,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t...(this.marketDomain && {\r\n\t\t\t\t\t\t\tdomain: this.marketDomain,\r\n\t\t\t\t\t\t}),\r\n\t\t\t\t\t});\r\n\r\n\t\t\treturn res.ok ? { ok: true, data: { id } } : res;\r\n\t\t}\r\n\r\n\t\tconst isSports = input.game.startsWith('SPORTS:');\r\n\r\n\t\tif (isSports) {\r\n\t\t\tconst game = await ObjectId.generateFromKey(\r\n\t\t\t\tObjectType.Game,\r\n\t\t\t\tinput.game,\r\n\t\t\t).then((generatedId) => {\r\n\t\t\t\treturn generatedId.toString();\r\n\t\t\t});\r\n\r\n\t\t\tconst res0 = await this.gameService.createGameSession({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tgame,\r\n\t\t\t\t},\r\n\t\t\t});\r\n\r\n\t\t\treturn res0.ok ? { ok: true, data: { id } } : res0;\r\n\t\t}\r\n\r\n\t\tconst res0 = await this.game(input.game);\r\n\r\n\t\tif (!res0.data) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: {\r\n\t\t\t\t\tname: res0.error?.name ?? 'GameDoesNotExistError',\r\n\t\t\t\t\tmessage: res0.error?.message ?? 'Game does not exist',\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tconst { provider, reference } = res0.data;\r\n\r\n\t\tconst res1 = NEW_GAME_PROVIDERS.includes(provider)\r\n\t\t\t? await this.walletService.createGameSession({\r\n\t\t\t\t\tinput: { id, game: reference },\r\n\t\t\t\t\t...(this.marketDomain && {\r\n\t\t\t\t\t\tdomain: this.marketDomain,\r\n\t\t\t\t\t}),\r\n\t\t\t\t})\r\n\t\t\t: await this.gameService.createGameSession({\r\n\t\t\t\t\tinput: {\r\n\t\t\t\t\t\tid,\r\n\t\t\t\t\t\tgame: reference,\r\n\t\t\t\t\t\thomepageUrl:\r\n\t\t\t\t\t\t\ttypeof window === 'undefined' ? undefined : input.homepageUrl,\r\n\t\t\t\t\t},\r\n\t\t\t\t\t...(this.marketDomain && {\r\n\t\t\t\t\t\tdomain: this.marketDomain,\r\n\t\t\t\t\t}),\r\n\t\t\t\t});\r\n\r\n\t\treturn res1.ok ? { ok: true, data: { id } } : res1;\r\n\t}\r\n\r\n\tasync endGameSession(\r\n\t\tid: string,\r\n\t\tgameProvider?: GameProvider,\r\n\t): Promise<EndGameSessionReturn> {\r\n\t\tif (gameProvider) {\r\n\t\t\treturn NEW_GAME_PROVIDERS.includes(gameProvider)\r\n\t\t\t\t? await this.walletService.endGameSession({ input: { id } })\r\n\t\t\t\t: await this.gameService.endGameSession({ input: { id } });\r\n\t\t}\r\n\r\n\t\tconst res0 = await this.walletService.endGameSession({ input: { id } });\r\n\t\tif (res0.ok) return res0;\r\n\t\tconst res1 = await this.gameService.endGameSession({ input: { id } });\r\n\t\treturn res1;\r\n\t}\r\n\r\n\tasync markGameAsFavorite(\r\n\t\tinput: MarkGameAsFavoriteInput,\r\n\t): Promise<MarkGameAsFavoriteReturn> {\r\n\t\treturn await this.walletService.markGameAsFavorite({ input });\r\n\t}\r\n\r\n\tasync unmarkGameAsFavorite(\r\n\t\tinput: UnmarkGameAsFavoriteInput,\r\n\t): Promise<UnmarkGameAsFavoriteReturn> {\r\n\t\treturn await this.walletService.unmarkGameAsFavorite({ input });\r\n\t}\r\n\r\n\tasync favoriteGames(): Promise<FavoriteGamesReturn> {\r\n\t\tconst res0 = await this.walletService.favoriteGames();\r\n\r\n\t\tconst ids = res0.data?.length\r\n\t\t\t? [...new Set(res0.data.map((e) => e.id))]\r\n\t\t\t: [];\r\n\r\n\t\tif (ids.length <= 0) {\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: [],\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tconst res1 = await this.cmsPortalService.games({\r\n\t\t\tfilter: {\r\n\t\t\t\treference: {\r\n\t\t\t\t\tin: ids,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res1.ok) return res1;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata:\r\n\t\t\t\tres0.data\r\n\t\t\t\t\t?.map(({ id }) => {\r\n\t\t\t\t\t\tconst game = res1.data.edges.find(\r\n\t\t\t\t\t\t\t(e) => id === e.node.reference,\r\n\t\t\t\t\t\t)?.node;\r\n\t\t\t\t\t\treturn game ? this.transformer.transform.game(game) : null;\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.filter(Boolean) ?? [],\r\n\t\t} as FavoriteGamesReturn;\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tFILE\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync file(id: string): Promise<FileReturn> {\r\n\t\tconst res = await this.fileService.file({ id });\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data ? this.transformer.transform.file(res.data) : null,\r\n\t\t};\r\n\t}\r\n\r\n\t/**\r\n\t * Similar to `file` query but uses the account service.\r\n\t */\r\n\tasync _file(id: string): Promise<FileReturn> {\r\n\t\tconst res = await this.accountService.file({ id });\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data ? this.transformer.transform.file(res.data) : null,\r\n\t\t};\r\n\t}\r\n\r\n\tasync uploadImageFile(\r\n\t\tinput: UploadImageFileInput,\r\n\t): Promise<UploadImageFileReturn> {\r\n\t\tconst id = input.id ?? ObjectId.generate(ObjectType.File).toString();\r\n\r\n\t\tconst res = await this.fileService.uploadPrivateImageFile({\r\n\t\t\tinput: {\r\n\t\t\t\tid,\r\n\t\t\t\tfile: input.file,\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\treturn res.ok ? { ok: true, data: { id } } : res;\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tPOINTS\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync pointsWallet(): Promise<PointsWalletReturn> {\r\n\t\tconst res = await this.walletService.pointsWallet();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data ? this.transformer.transform.pointsWallet(res.data) : null,\r\n\t\t};\r\n\t}\r\n\r\n\tasync redeemPoints(input: RedeemPointsInput): Promise<RedeemPointsReturn> {\r\n\t\treturn await this.walletService.redeemPointsToCash({\r\n\t\t\tinput: {\r\n\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t},\r\n\t\t});\r\n\t}\r\n\r\n\tasync pointsWalletTransactions(\r\n\t\tinput?: PointsWalletTransactionsInput,\r\n\t): Promise<PointsWalletTransactionsReturn> {\r\n\t\tconst res = await this.reportService.pointsWalletTransactions(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\tpointsWalletTransactions: res.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.pointsWalletTransaction(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t},\r\n\t\t} as PointsWalletTransactionsReturn;\r\n\t}\r\n\r\n\tasync achievementPointsHistoryRecord(\r\n\t\tinput?: AchievementPointsHistoryRecordInput,\r\n\t): Promise<AchievementPointsHistoryRecordReturn> {\r\n\t\tconst res = await this.reportService.achievementPointsHistoryRecord(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\tachievementPointsHistoryRecords: res.data.edges.map(\r\n\t\t\t\t\t({ cursor, node }) => ({\r\n\t\t\t\t\t\t...this.transformer.transform.achievementPointsHistoryRecord(node),\r\n\t\t\t\t\t\tcursor,\r\n\t\t\t\t\t}),\r\n\t\t\t\t),\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t},\r\n\t\t} as AchievementPointsHistoryRecordReturn;\r\n\t}\r\n\r\n\tasync memberAchievements(): Promise<MemberAchievementReturn> {\r\n\t\tconst res = await this.reportService.memberAchievements();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data\r\n\t\t\t\t? this.transformer.transform.memberAchievements(res.data)\r\n\t\t\t\t: null,\r\n\t\t};\r\n\t}\r\n\r\n\tasync memberRebates(\r\n\t\tinput?: MemberRebatesInput,\r\n\t): Promise<MemberRebatesReturn> {\r\n\t\tconst res = await this.reportService.memberRebates(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\trebates: res.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.rebate(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t},\r\n\t\t} as MemberRebatesReturn;\r\n\t}\r\n\r\n\tasync memberRebateContribution(\r\n\t\tinput?: MemberRebateContributionInput,\r\n\t): Promise<MemberRebateContributionReturn> {\r\n\t\tconst res = await this.reportService.memberRebateContribution(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\trebates: res.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.memberRebateContribution(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t},\r\n\t\t} as MemberRebateContributionReturn;\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tACTIVITY RECORD\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync activityRecords(\r\n\t\tinput?: ActivityRecordsInput,\r\n\t): Promise<ActivityRecordsReturn> {\r\n\t\tconst res = await this.reportService.activityRecords(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\tactivityRecords: res.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.activityRecord(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t},\r\n\t\t} as ActivityRecordsReturn;\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tREFERRAL\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync referralCode(): Promise<ReferralCodeReturn> {\r\n\t\tconst res = await this.accountService.referralCode();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data ?? null,\r\n\t\t};\r\n\t}\r\n\r\n\tasync updateReferralCode(\r\n\t\tinput: UpdateReferralCodeInput,\r\n\t): Promise<UpdateReferralCodeReturn> {\r\n\t\treturn await this.accountService.updateReferralCode({ input });\r\n\t}\r\n\r\n\tasync referrals(input?: ReferralsInput): Promise<ReferralsReturn> {\r\n\t\tconst res = await this.reportService.referrals(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\treferrals: res.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.referral(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t},\r\n\t\t} as ReferralsReturn;\r\n\t}\r\n\r\n\tasync referralCommission(): Promise<ReferralCommissionReturn> {\r\n\t\tconst res = await this.reportService.referralCommission();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data\r\n\t\t\t\t? this.transformer.transform.referralCommission(res.data)\r\n\t\t\t\t: null,\r\n\t\t};\r\n\t}\r\n\r\n\tasync uplinesByName(input: UplinesByNameInput): Promise<UplinesByNameReturn> {\r\n\t\tconst res = await this.reportService.uplinesByName(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.map(this.transformer.transform.referral),\r\n\t\t};\r\n\t}\r\n\r\n\tasync downlinesByName(\r\n\t\tinput: DownlinesByNameInput,\r\n\t): Promise<DownlinesByNameReturn> {\r\n\t\tconst res = await this.reportService.downlinesByName(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.map(this.transformer.transform.referral),\r\n\t\t};\r\n\t}\r\n\r\n\tasync pointsClubSettings(): Promise<PointsClubSettingsReturn> {\r\n\t\tconst res = await this.accountService.pointsClubSettings();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data\r\n\t\t\t\t? this.transformer.transform.pointsClubSettings(res.data)\r\n\t\t\t\t: null,\r\n\t\t};\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tMESSAGES\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync messages(input?: MessagesInput): Promise<MessagesReturn> {\r\n\t\tconst res = await this.triggerService.messages(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\tmessages: res.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.message(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t},\r\n\t\t} as MessagesReturn;\r\n\t}\r\n\r\n\tasync unreadMessagesCount(\r\n\t\tinput?: UnreadMessagesCountInput,\r\n\t): Promise<UnreadMessagesCountReturn> {\r\n\t\treturn await this.triggerService.unreadMessagesCount(input);\r\n\t}\r\n\r\n\tasync markMessageAsRead(id: string): Promise<MarkMessageAsReadReturn> {\r\n\t\treturn await this.triggerService.markMessageAsRead({ id });\r\n\t}\r\n\r\n\t/**\r\n\t * @deprecated\r\n\t */\r\n\tasync markAllMessageAsRead(): Promise<MarkAllMessagesAsReadReturn> {\r\n\t\treturn await this.triggerService.markAllMessageAsRead();\r\n\t}\r\n\r\n\tasync markAllMessagesAsRead(): Promise<MarkAllMessagesAsReadReturn> {\r\n\t\treturn await this.triggerService.markAllMessagesAsRead();\r\n\t}\r\n\r\n\tasync claimReward(id: string): Promise<ClaimRewardReturn> {\r\n\t\treturn await this.triggerService.claimReward({ id });\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tONBOARDING\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync onboardingStatus(): Promise<OnboardingStatusReturn> {\r\n\t\tconst res = await this.portalService.onboardingStatus();\r\n\t\tif (!res.ok) return res;\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data,\r\n\t\t};\r\n\t}\r\n\r\n\tasync completeOnboarding(\r\n\t\tinput: CompleteOnboardingInput,\r\n\t): Promise<CompleteOnboardingReturn> {\r\n\t\treturn await this.portalService.completeOnboarding({\r\n\t\t\tinput: {\r\n\t\t\t\tfavoriteGameTypes: input.favoriteGameTypes,\r\n\t\t\t\tplayerExperience: input.playerExperience,\r\n\t\t\t},\r\n\t\t});\r\n\t}\r\n\r\n\tasync skipOnboarding(): Promise<SkipOnboardingReturn> {\r\n\t\treturn await this.portalService.skipOnboarding();\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tQUEST\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync availableQuests(): Promise<AvailableQuestsReturn> {\r\n\t\tconst res = await this.triggerService.availableQuests();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.map(this.transformer.transform.quest),\r\n\t\t};\r\n\t}\r\n\r\n\tasync checkInDailyQuest(id: string): Promise<CheckInDailyQuestReturn> {\r\n\t\treturn await this.triggerService.checkInDailyQuest({ input: { id } });\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tTOP WINS\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync topWins(): Promise<TopWinsReturn> {\r\n\t\tconst res0 = await this.portalService.topWins();\r\n\r\n\t\tconst ids = res0.data?.length\r\n\t\t\t? [...new Set(res0.data.map((e) => e.game.id))]\r\n\t\t\t: [];\r\n\r\n\t\tif (ids.length <= 0) {\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: [],\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tconst res1 = await this.cmsPortalService.games({\r\n\t\t\tfilter: {\r\n\t\t\t\treference: {\r\n\t\t\t\t\tin: ids,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res1.ok) return res1;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res0?.data?.map((o) => {\r\n\t\t\t\tconst game = res1.data.edges.find(\r\n\t\t\t\t\t(e) => e.node.reference === o.game.id,\r\n\t\t\t\t)?.node;\r\n\r\n\t\t\t\treturn this.transformer.transform.topWin({\r\n\t\t\t\t\t...o,\r\n\t\t\t\t\tgame,\r\n\t\t\t\t});\r\n\t\t\t}),\r\n\t\t} as TopWinsReturn;\r\n\t}\r\n\r\n\tasync topWinsNext(): Promise<TopWinsReturn> {\r\n\t\tconst res0 = await this.portalService.topWinsNext();\r\n\r\n\t\tconst ids = res0.data?.length\r\n\t\t\t? [...new Set(res0.data.map((e) => e.game.id))]\r\n\t\t\t: [];\r\n\r\n\t\tif (ids.length <= 0) {\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: [],\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tconst res1 = await this.cmsPortalService.games({\r\n\t\t\tfilter: {\r\n\t\t\t\treference: {\r\n\t\t\t\t\tin: ids,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res1.ok) return res1;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res0?.data?.map((o) => {\r\n\t\t\t\tconst game = res1.data.edges.find(\r\n\t\t\t\t\t(e) => e.node.reference === o.game.id,\r\n\t\t\t\t)?.node;\r\n\r\n\t\t\t\treturn this.transformer.transform.topWin({\r\n\t\t\t\t\t...o,\r\n\t\t\t\t\tgame,\r\n\t\t\t\t});\r\n\t\t\t}),\r\n\t\t} as TopWinsReturn;\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tJACKPOT\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync jackpots(input?: JackpotsInput): Promise<JackpotsReturn> {\r\n\t\tconst res = await this.reportService.jackpots(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\tjackpots: res.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.jackpots(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t},\r\n\t\t} as JackpotsReturn;\r\n\t}\r\n\r\n\tasync jackpotsIds(input?: JackpotsIdsInput): Promise<JackpotsIdsReturn> {\r\n\t\tconst res = await this.reportService.jackpotsIds(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\tjackpots: res.data.edges.map(({ node }) => node.id),\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t},\r\n\t\t};\r\n\t}\r\n\r\n\tasync _jackpots(input?: _JackpotsInput): Promise<_JackpotsReturn> {\r\n\t\tconst res = await this.reportService._jackpots(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\t_jackpots: res.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.jackpots(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t},\r\n\t\t} as _JackpotsReturn;\r\n\t}\r\n\r\n\tasync jackpotPayouts(\r\n\t\tinput?: JackpotPayoutsInput,\r\n\t): Promise<JackpotPayoutsReturn> {\r\n\t\tconst res = await this.reportService.jackpotPayouts(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\tjackpotPayouts: res.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.jackpotPayouts(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t},\r\n\t\t} as JackpotPayoutsReturn;\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tTOURNAMENTS\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync tournaments(input?: TournamentsInput): Promise<TournamentsReturn> {\r\n\t\tconst res = await this.reportService.tournaments(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\ttournaments: res.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.tournaments(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t},\r\n\t\t} as TournamentsReturn;\r\n\t}\r\n\r\n\tasync tournamentsIds(\r\n\t\tinput?: TournamentsIdsInput,\r\n\t): Promise<TournamentsIdsReturn> {\r\n\t\tconst res = await this.reportService.tournamentsIds(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\ttournaments: res.data.edges.map(({ node }) => node.id),\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t},\r\n\t\t};\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tFCM/FIREBASE\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync registerFCMDevice(\r\n\t\tinput: RegisterFCMDeviceInput,\r\n\t): Promise<RegisterFCMDeviceReturn> {\r\n\t\treturn await this.triggerService.registerFCMDevice({ input });\r\n\t}\r\n\r\n\tasync unregisterFCMDevice(\r\n\t\tinput: UnregisterFCMDeviceInput,\r\n\t): Promise<UnregisterFCMDeviceReturn> {\r\n\t\treturn await this.triggerService.unregisterFCMDevice({ input });\r\n\t}\r\n\r\n\tasync linkFirebaseCloudMessagingDevice(\r\n\t\tinput: LinkFirebaseCloudMessagingDeviceInput,\r\n\t): Promise<LinkFirebaseCloudMessagingDeviceReturn> {\r\n\t\treturn await this.triggerService.linkFirebaseCloudMessagingDevice({\r\n\t\t\tinput,\r\n\t\t});\r\n\t}\r\n\r\n\tasync unlinkFirebaseCloudMessagingDevice(\r\n\t\tinput: UnlinkFirebaseCloudMessagingDeviceInput,\r\n\t): Promise<UnlinkFirebaseCloudMessagingDeviceReturn> {\r\n\t\treturn await this.triggerService.unlinkFirebaseCloudMessagingDevice({\r\n\t\t\tinput,\r\n\t\t});\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tTHIRD PARTY\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync googleClientId(): Promise<GoogleClientIdReturn> {\r\n\t\tconst res = await this.accountService.googleClientId();\r\n\t\tif (!res.ok) return res;\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data ?? null,\r\n\t\t};\r\n\t}\r\n\r\n\tasync requireFirstDeposit(): Promise<RequireFirstDepositReturn> {\r\n\t\tconst res = await this.accountService.requireFirstDeposit();\r\n\t\tif (!res.ok) return res;\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data ?? false,\r\n\t\t};\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tMEMBER VERIFICATION REQUEST\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync memberVerificationRequest(): Promise<MemberVerificationRequestReturn> {\r\n\t\tconst res = await this.accountService.memberVerificationRequest();\r\n\t\tif (!res.ok) return res;\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data\r\n\t\t\t\t? this.transformer.transform.memberVerificationRequest(res.data)\r\n\t\t\t\t: null,\r\n\t\t};\r\n\t}\r\n\r\n\tasync memberVerificationRequestById(\r\n\t\tid: string,\r\n\t): Promise<MemberVerificationRequestReturn> {\r\n\t\tconst res = await this.accountService.memberVerificationRequestById({ id });\r\n\t\tif (!res.ok) return res;\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data\r\n\t\t\t\t? this.transformer.transform.memberVerificationRequest(res.data)\r\n\t\t\t\t: null,\r\n\t\t};\r\n\t}\r\n\r\n\tasync submitMemberVerificationRequestBasicDetails(\r\n\t\tinput: SubmitMemberVerificationRequestBasicDetailsInput,\r\n\t): Promise<SubmitMemberVerificationRequestBasicDetailsReturn> {\r\n\t\treturn await this.accountService.submitMemberVerificationRequestBasicDetails(\r\n\t\t\t{\r\n\t\t\t\tinput: {\r\n\t\t\t\t\t...input,\r\n\t\t\t\t\tdateOfBirth: this.formatYmd(input.dateOfBirth),\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t);\r\n\t}\r\n\r\n\tasync submitMemberVerificationRequestImageDetails(\r\n\t\tinput: SubmitMemberVerificationRequestImageDetailsInput,\r\n\t): Promise<SubmitMemberVerificationRequestImageDetailsReturn> {\r\n\t\treturn await this.accountService.submitMemberVerificationRequestImageDetails(\r\n\t\t\t{ input },\r\n\t\t);\r\n\t}\r\n\r\n\tasync submitMemberVerificationRequestPersonalDetails(\r\n\t\tinput: SubmitMemberVerificationRequestPersonalDetailsInput,\r\n\t): Promise<SubmitMemberVerificationRequestPersonalDetailsReturn> {\r\n\t\treturn await this.accountService.submitMemberVerificationRequestPersonalDetails(\r\n\t\t\t{ input },\r\n\t\t);\r\n\t}\r\n\r\n\tasync memberVerificationRequestAutomaticApprovalEnabled(): Promise<MemberVerificationRequestAutomaticApprovalEnabledReturn> {\r\n\t\treturn await this.accountService.memberVerificationRequestAutomaticApprovalEnabled();\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tUTILS\r\n\t *=============================================\r\n\t */\r\n\r\n\tprivate formatYmd(date: Date | string): string {\r\n\t\tconst date_ = date instanceof Date ? date : new Date(date);\r\n\t\tconst ensure2Digits = (n: number) => n.toString().padStart(2, '0');\r\n\r\n\t\tconst y = date_.getFullYear();\r\n\t\tconst m = ensure2Digits(date_.getMonth() + 1);\r\n\t\tconst d = ensure2Digits(date_.getDate());\r\n\r\n\t\treturn `${y}-${m}-${d}`;\r\n\t}\r\n}\r\n\r\nconst NEW_GAME_PROVIDERS: GameProvider[] = [\r\n\t/**/\r\n\t'RTG',\r\n\t'DARWIN',\r\n\t'DRBINGO',\r\n\t'MEGABALL',\r\n\t'MEGA2SPIN',\r\n\t'EVOLUTION',\r\n\t'DIGITAIN',\r\n\t'EVOLUTION_NETENT',\r\n\t'ETENGJUE',\r\n\t'EVOLUTION_REDTIGER',\r\n\t'EVOLUTION_TAP_A_ROO',\r\n\t'HOLLYWOODTV',\r\n\t'NO_LIMIT_CITY',\r\n\t'BIG_TIME_GAMING',\r\n\t'SAGAMING',\r\n\t'JK8',\r\n\t'TEST',\r\n\t'RUBYPLAY',\r\n\t'ORTIZ',\r\n\t'SIMPLEPLAY',\r\n];\r\n\r\nexport const ENDPOINTS = {\r\n\tdevelopment: {\r\n\t\tauth: 'https://auth.development.opexa.io',\r\n\t\tgame: 'https://game.development.opexa.io/graphql',\r\n\t\textension: 'https://extension.development.opexa.io/graphql',\r\n\t\tfile: 'https://file.development.opexa.io/graphql',\r\n\t\treport: 'https://report.development.opexa.io/graphql',\r\n\t\twallet: 'https://wallet.development.opexa.io/graphql',\r\n\t\taccount: 'https://account.development.opexa.io/graphql',\r\n\t\tportal: 'https://portal.development.opexa.io/graphql',\r\n\t\ttrigger: 'https://trigger.development.opexa.io/graphql',\r\n\t\tstatic: 'https://static.development.opexa.io',\r\n\t\tcmsPortal: 'https://portal-api.opexacms.io',\r\n\t\topexapay: 'https://external.opexapay.development.opexa.io',\r\n\t},\r\n\tproduction: {\r\n\t\tauth: 'https://auth.opexa.io',\r\n\t\tgame: 'https://game.opexa.io/graphql',\r\n\t\textension: 'https://extension.opexa.io/graphql',\r\n\t\tfile: 'https://file.opexa.io/graphql',\r\n\t\treport: 'https://report.opexa.io/graphql',\r\n\t\twallet: 'https://wallet.opexa.io/graphql',\r\n\t\taccount: 'https://account.opexa.io/graphql',\r\n\t\tportal: 'https://portal.opexa.io/graphql',\r\n\t\ttrigger: 'https://trigger.opexa.io/graphql',\r\n\t\tstatic: 'https://static.atalos.io',\r\n\t\tcmsPortal: 'https://portal-api.opexacms.io',\r\n\t\topexapay: 'https://external.opexapay.opexa.io',\r\n\t},\r\n\tstaging: {\r\n\t\tauth: 'https://auth.staging.atalos.io',\r\n\t\tgame: 'https://game.staging.atalos.io/graphql',\r\n\t\textension: 'https://extension.staging.atalos.io/graphql',\r\n\t\tfile: 'https://file.staging.atalos.io/graphql',\r\n\t\treport: 'https://report.staging.atalos.io/graphql',\r\n\t\twallet: 'https://wallet.staging.atalos.io/graphql',\r\n\t\taccount: 'https://account.staging.atalos.io/graphql',\r\n\t\tportal: 'https://portal.staging.atalos.io/graphql',\r\n\t\ttrigger: 'https://trigger.staging.atalos.io/graphql',\r\n\t\tstatic: 'https://static.atalos.io',\r\n\t\tcmsPortal: 'https://portal-api.staging.opexacms.io',\r\n\t\topexapay: 'https://external.opexapay.staging.atalos.io ',\r\n\t},\r\n};\r\n\r\nexport default Sdk;\r\n"]}
1
+ {"version":3,"sources":["../src/sdk/object-type.ts","../src/utils/clone-date.ts","../src/utils/add-minutes.ts","../src/utils/is-after.ts","../src/utils/cache.ts","../src/utils/clamp.ts","../src/utils/sha256.ts","../src/utils/add-days.ts","../src/utils/sub-minutes.ts","../src/sdk/ad-manager.ts","../src/utils/add-hours.ts","../src/sdk/utils.ts","../src/sdk/cellexpert-manager.ts","../src/sdk/logger.ts","../src/utils/sleep.ts","../src/utils/pollable.ts","../src/sdk/session-manager.ts","../src/sdk/session-manager-cookie.ts","../src/utils/compact.ts","../src/utils/invariant.ts","../src/utils/parse-decimal.ts","../src/sdk/transformer.ts","../src/sdk/sdk.ts"],"names":["now","res","o","res0"],"mappings":";;;;;;;;;;AAIO,IAAM,UAAA,GAAa;AAAA,EACzB,OAAA,EAAS,CAAA;AAAA,EACT,OAAA,EAAS,CAAA;AAAA,EACT,UAAA,EAAY,EAAA;AAAA,EACZ,YAAA,EAAc,EAAA;AAAA,EACd,IAAA,EAAM,EAAA;AAAA,EACN,IAAA,EAAM,GAAA;AAAA,EACN,WAAA,EAAa,GAAA;AAAA,EACb,WAAA,EAAa;AACd;;;ACbO,SAAS,UAAU,IAAA,EAAY;AACrC,EAAA,OAAO,IAAI,IAAA,CAAK,IAAA,CAAK,OAAA,EAAS,CAAA;AAC/B;;;ACAO,SAAS,UAAA,CAAW,MAAY,OAAA,EAAuB;AAC7D,EAAA,MAAM,MAAA,GAAS,UAAU,IAAI,CAAA;AAC7B,EAAA,MAAA,CAAO,UAAA,CAAW,MAAA,CAAO,UAAA,EAAW,GAAI,OAAO,CAAA;AAC/C,EAAA,OAAO,MAAA;AACR;;;ACHO,SAAS,OAAA,CAAQ,OAAa,KAAA,EAAa;AACjD,EAAA,OAAO,KAAA,CAAM,OAAA,EAAQ,GAAI,KAAA,CAAM,OAAA,EAAQ;AACxC;;;ACWO,IAAM,QAAN,MAAyB;AAAA,EACvB,MAAA;AAAA,EACA,KAAA;AAAA,EAER,YAAY,MAAA,EAAsB;AACjC,IAAA,IAAA,CAAK,QAAQ,EAAC;AACd,IAAA,IAAA,CAAK,MAAA,GAAS;AAAA,MACb,SAAA,EAAW,CAAA;AAAA,MACX,GAAG;AAAA,KACJ;AAAA,EACD;AAAA,EAEA,GAAA,CAAI,KAAa,KAAA,EAAU;AAC1B,IAAA,MAAM,aAAa,UAAA,iBAAW,IAAI,MAAK,EAAG,IAAA,CAAK,OAAO,SAAS,CAAA;AAE/D,IAAA,IAAA,CAAK,KAAA,CAAM,GAAG,CAAA,GAAI;AAAA,MACjB,KAAA;AAAA,MACA;AAAA,KACD;AAAA,EACD;AAAA,EAEA,IAAe,GAAA,EAAwD;AACtE,IAAA,MAAM,CAAA,GAAI,IAAA,CAAK,KAAA,CAAM,GAAG,CAAA;AACxB,IAAA,IAAI,CAAC,GAAG,OAAO,IAAA;AACf,IAAA,IAAI,wBAAQ,IAAI,IAAA,IAAQ,CAAA,CAAE,UAAU,GAAG,OAAO,IAAA;AAC9C,IAAA,OAAO,CAAA,CAAE,KAAA;AAAA,EACV;AACD,CAAA;;;AC3CO,SAAS,KAAA,CAAM,KAAA,EAAe,GAAA,EAAa,GAAA,EAAa;AAC9D,EAAA,IAAI,KAAA,GAAQ,KAAK,OAAO,GAAA;AACxB,EAAA,IAAI,KAAA,GAAQ,KAAK,OAAO,GAAA;AACxB,EAAA,OAAO,KAAA;AACR;;;ACJA,eAAsB,OAAO,KAAA,EAAe;AAC3C,EAAA,MAAM,QAAA,GAAW,IAAI,WAAA,EAAY,CAAE,OAAO,KAAK,CAAA;AAC/C,EAAA,MAAM,aAAa,MAAM,MAAA,CAAO,MAAA,CAAO,MAAA,CAAO,WAAW,QAAQ,CAAA;AACjE,EAAA,MAAM,YAAY,KAAA,CAAM,IAAA,CAAK,IAAI,UAAA,CAAW,UAAU,CAAC,CAAA;AACvD,EAAA,MAAM,OAAA,GAAU,SAAA,CACd,GAAA,CAAI,CAAC,MAAM,CAAA,CAAE,QAAA,CAAS,EAAE,CAAA,CAAE,SAAS,CAAA,EAAG,GAAG,CAAC,CAAA,CAC1C,KAAK,EAAE,CAAA;AACT,EAAA,OAAO,OAAA;AACR;;;ACNO,SAAS,OAAA,CAAQ,MAAY,IAAA,EAAc;AACjD,EAAA,MAAM,MAAA,GAAS,UAAU,IAAI,CAAA;AAC7B,EAAA,MAAA,CAAO,OAAA,CAAQ,MAAA,CAAO,OAAA,EAAQ,GAAI,IAAI,CAAA;AACtC,EAAA,OAAO,MAAA;AACR;;;ACJO,SAAS,UAAA,CAAW,MAAY,OAAA,EAAiB;AACvD,EAAA,MAAM,MAAA,GAAS,UAAU,IAAI,CAAA;AAC7B,EAAA,MAAA,CAAO,UAAA,CAAW,MAAA,CAAO,UAAA,EAAW,GAAI,OAAO,CAAA;AAC/C,EAAA,OAAO,MAAA;AACR;;;ACDA,IAAM,uBAAA,GAA0B,iBAAA;AAChC,IAAM,eAAA,GAAkB,SAAA;AAMjB,IAAM,YAAN,MAAgB;AAAA,EACd,MAAA;AAAA,EAER,YAAY,MAAA,EAAyB;AACpC,IAAA,IAAA,CAAK,SAAS,MAAA,CAAO,MAAA;AAAA,EACtB;AAAA,EAEA,IAAI,QAAQ,KAAA,EAAsB;AACjC,IAAA,IAAI,KAAK,QAAA,EAAU;AAClB,MAAA,IAAA,CAAK,MAAA,CAAO,KAAK,gDAAgD,CAAA;AACjE,MAAA;AAAA,IACD;AAEA,IAAA,IAAI,UAAU,IAAA,EAAM;AACnB,MAAA,YAAA,CAAa,WAAW,uBAAuB,CAAA;AAC/C,MAAA;AAAA,IACD;AAEA,IAAA,MAAM,CAAA,uBAAQ,IAAA,EAAK;AACnB,IAAA,MAAM,CAAA,GAAI,KAAK,SAAA,CAAU;AAAA,MACxB,KAAA;AAAA,MACA,SAAA,EAAW,WAAW,OAAA,CAAQ,CAAA,EAAG,EAAE,CAAA,EAAG,CAAC,EAAE,OAAA;AAAQ,KACjD,CAAA;AAED,IAAA,YAAA,CAAa,OAAA,CAAQ,yBAAyB,CAAC,CAAA;AAAA,EAChD;AAAA,EAEA,IAAI,OAAA,GAAyB;AAC5B,IAAA,IAAI,KAAK,QAAA,EAAU;AAClB,MAAA,IAAA,CAAK,MAAA,CAAO,KAAK,gDAAgD,CAAA;AACjE,MAAA,OAAO,IAAA;AAAA,IACR;AAEA,IAAA,MAAM,CAAA,GAAI,YAAA,CAAa,OAAA,CAAQ,uBAAuB,CAAA;AAEtD,IAAA,IAAI,CAAC,GAAG,OAAO,IAAA;AAEf,IAAA,IAAI;AACH,MAAA,MAAM,CAAA,GAAI,IAAA,CAAK,KAAA,CAAM,CAAC,CAAA;AAEtB,MAAA,IAAI,CAAC,CAAA,CAAE,KAAA,EAAO,OAAO,IAAA;AACrB,MAAA,IAAI,CAAC,CAAA,CAAE,SAAA,EAAW,OAAO,IAAA;AAEzB,MAAA,MAAM,CAAA,GAAI,IAAI,IAAA,CAAK,CAAA,CAAE,SAAS,CAAA;AAC9B,MAAA,MAAM,CAAA,uBAAQ,IAAA,EAAK;AAEnB,MAAA,IAAI,OAAA,CAAQ,CAAA,EAAG,CAAC,CAAA,EAAG;AAClB,QAAA,YAAA,CAAa,WAAW,uBAAuB,CAAA;AAC/C,QAAA,OAAO,IAAA;AAAA,MACR;AAEA,MAAA,OAAO,CAAA,CAAE,KAAA;AAAA,IACV,CAAA,CAAA,MAAQ;AACP,MAAA,YAAA,CAAa,WAAW,uBAAuB,CAAA;AAC/C,MAAA,OAAO,IAAA;AAAA,IACR;AAAA,EACD;AAAA,EAEA,IAAI,IAAI,KAAA,EAAsB;AAC7B,IAAA,IAAI,KAAK,QAAA,EAAU;AAClB,MAAA,IAAA,CAAK,MAAA,CAAO,KAAK,gDAAgD,CAAA;AACjE,MAAA;AAAA,IACD;AAEA,IAAA,IAAI,UAAU,IAAA,EAAM;AACnB,MAAA,YAAA,CAAa,WAAW,eAAe,CAAA;AACvC,MAAA;AAAA,IACD;AAEA,IAAA,MAAM,CAAA,uBAAQ,IAAA,EAAK;AACnB,IAAA,MAAM,CAAA,GAAI,KAAK,SAAA,CAAU;AAAA,MACxB,KAAA;AAAA,MACA,SAAA,EAAW,WAAW,OAAA,CAAQ,CAAA,EAAG,EAAE,CAAA,EAAG,CAAC,EAAE,OAAA;AAAQ,KACjD,CAAA;AAED,IAAA,YAAA,CAAa,OAAA,CAAQ,iBAAiB,CAAC,CAAA;AAAA,EACxC;AAAA,EAEA,IAAI,GAAA,GAAqB;AACxB,IAAA,IAAI,KAAK,QAAA,EAAU;AAClB,MAAA,IAAA,CAAK,MAAA,CAAO,KAAK,gDAAgD,CAAA;AACjE,MAAA,OAAO,IAAA;AAAA,IACR;AAEA,IAAA,MAAM,CAAA,GAAI,YAAA,CAAa,OAAA,CAAQ,eAAe,CAAA;AAE9C,IAAA,IAAI,CAAC,GAAG,OAAO,IAAA;AAEf,IAAA,IAAI;AACH,MAAA,MAAM,CAAA,GAAI,IAAA,CAAK,KAAA,CAAM,CAAC,CAAA;AAEtB,MAAA,IAAI,CAAC,CAAA,CAAE,KAAA,EAAO,OAAO,IAAA;AACrB,MAAA,IAAI,CAAC,CAAA,CAAE,SAAA,EAAW,OAAO,IAAA;AAEzB,MAAA,MAAM,CAAA,GAAI,IAAI,IAAA,CAAK,CAAA,CAAE,SAAS,CAAA;AAC9B,MAAA,MAAM,CAAA,uBAAQ,IAAA,EAAK;AAEnB,MAAA,IAAI,OAAA,CAAQ,CAAA,EAAG,CAAC,CAAA,EAAG;AAClB,QAAA,YAAA,CAAa,WAAW,eAAe,CAAA;AACvC,QAAA,OAAO,IAAA;AAAA,MACR;AAEA,MAAA,OAAO,CAAA,CAAE,KAAA;AAAA,IACV,CAAA,CAAA,MAAQ;AACP,MAAA,YAAA,CAAa,WAAW,eAAe,CAAA;AACvC,MAAA,OAAO,IAAA;AAAA,IACR;AAAA,EACD;AAAA,EAEA,IAAY,QAAA,GAAW;AACtB,IAAA,OAAO,OAAO,MAAA,KAAW,WAAA;AAAA,EAC1B;AACD,CAAA;;;AC1HO,SAAS,QAAA,CAAS,MAAY,KAAA,EAAqB;AACzD,EAAA,MAAM,MAAA,GAAS,UAAU,IAAI,CAAA;AAC7B,EAAA,MAAA,CAAO,QAAA,CAAS,MAAA,CAAO,QAAA,EAAS,GAAI,KAAK,CAAA;AACzC,EAAA,OAAO,MAAA;AACR;ACHO,SAAS,oBAAoB,QAAA,EAA4B;AAC/D,EAAA,IAAI,QAAA,KAAa,OAAO,OAAO,OAAA;AAC/B,EAAA,IAAI,QAAA,KAAa,OAAO,OAAO,OAAA;AAC/B,EAAA,IAAI,QAAA,KAAa,OAAO,OAAO,OAAA;AAC/B,EAAA,IAAI,QAAA,KAAa,OAAO,OAAO,OAAA;AAC/B,EAAA,OAAO,OAAA;AACR;AASO,SAAS,oBAAoB,MAAA,EAAgB;AACnD,EAAA,IAAI,MAAA,KAAW,SAAS,OAAO,KAAA;AAC/B,EAAA,IAAI,MAAA,KAAW,SAAS,OAAO,KAAA;AAC/B,EAAA,IAAI,MAAA,KAAW,SAAS,OAAO,KAAA;AAC/B,EAAA,IAAI,MAAA,KAAW,SAAS,OAAO,IAAA;AAC/B,EAAA,OAAO,KAAA;AACR;AAYO,SAAS,WAAA,CAAY,cAAsB,MAAA,EAAgB;AACjE,EAAA,MAAM,QAAA,GAAW,oBAAoB,MAAM,CAAA;AAG3C,EAAA,IAAI,YAAA,CAAa,UAAA,CAAW,QAAQ,CAAA,EAAG,OAAO,YAAA;AAE9C,EAAA,IAAI,YAAA,CAAa,WAAW,QAAA,CAAS,SAAA,CAAU,CAAC,CAAC,CAAA,EAAG,OAAO,CAAA,CAAA,EAAI,YAAY,CAAA,CAAA;AAE3E,EAAA,IAAI,YAAA,CAAa,WAAW,GAAG,CAAA;AAC9B,IAAA,OAAO,GAAG,QAAQ,CAAA,EAAG,YAAA,CAAa,SAAA,CAAU,CAAC,CAAC,CAAA,CAAA;AAE/C,EAAA,OAAO,CAAA,EAAG,QAAQ,CAAA,EAAG,YAAY,CAAA,CAAA;AAClC;AAEO,SAAS,WAAW,KAAA,EAAe;AACzC,EAAA,MAAM,OAAA,GAAU,KAAA,CAAM,KAAA,CAAM,iBAAiB,CAAA;AAC7C,EAAA,IAAI,CAAC,SAAS,OAAO,IAAA;AAErB,EAAA,MAAM,GAAA,GAAM,QAAQ,CAAC,CAAA;AACrB,EAAA,MAAM,eAAA,GAAkB,MAAM,KAAA,CAAM,GAAG,EAAE,CAAC,CAAA,CAAE,MAAM,CAAC,CAAA;AAEnD,EAAA,OAAO,EAAE,KAAK,eAAA,EAAgB;AAC/B;AAEA,IAAI,kBAAA;AAEJ,eAAsB,eAAe,WAAA,EAA0B;AAC9D,EAAA,IAAI,OAAO,MAAA,KAAW,WAAA,EAAa,OAAO,IAAA;AAE1C,EAAA,IAAI,CAAC,kBAAA,EAAoB;AACxB,IAAA,kBAAA,GAAqB,IAAI,SAAA,CAAU;AAAA,MAClC,OAAA,EACC,WAAA,KAAgB,YAAA,GACb,kCAAA,GACA,MAAA;AAAA,MACJ,OAAA,EAAS,KAAA;AAAA,MACT,OAAA,EAAS,GAAA;AAAA,MACT,oBAAA,EAAsB,CAAA,GAAI,EAAA,GAAK,EAAA,GAAK;AAAA,KACpC,CAAA;AAAA,EACF;AAEA,EAAA,IAAI;AACH,IAAA,MAAM,MAAA,GAAS,cAAA,CAAe,OAAA,CAAQ,aAAa,CAAA;AACnD,IAAA,IAAI,QAAQ,OAAO,MAAA;AACnB,IAAA,MAAM,MAAA,GAAS,MAAM,kBAAA,CAAmB,GAAA,EAAI;AAC5C,IAAA,cAAA,CAAe,OAAA,CAAQ,aAAA,EAAe,MAAA,CAAO,SAAS,CAAA;AACtD,IAAA,OAAO,MAAA,CAAO,SAAA;AAAA,EACf,CAAA,CAAA,MAAQ;AACP,IAAA,OAAO,IAAA;AAAA,EACR;AACD;AAEO,SAAS,UAAU,IAAA,EAA6B;AACtD,EAAA,IAAI,OAAO,QAAA,KAAa,WAAA,EAAa,OAAO,IAAA;AAE5C,EAAA,MAAM,WAAA,GAAc,KAAK,MAAA,GAAS,CAAA;AAClC,EAAA,OACC,QAAA,CAAS,MAAA,CACP,KAAA,CAAM,GAAG,EACT,GAAA,CAAI,CAAC,CAAA,KAAM,CAAA,CAAE,IAAA,EAAM,CAAA,CACnB,MAAA,CAAO,CAAC,MAAA,KAAW;AACnB,IAAA,OAAO,OAAO,SAAA,CAAU,CAAA,EAAG,WAAW,CAAA,KAAM,GAAG,IAAI,CAAA,CAAA,CAAA;AAAA,EACpD,CAAC,CAAA,CACA,GAAA,CAAI,CAAC,MAAA,KAAW;AAChB,IAAA,OAAO,kBAAA,CAAmB,MAAA,CAAO,SAAA,CAAU,WAAW,CAAC,CAAA;AAAA,EACxD,CAAC,CAAA,CAAE,CAAC,CAAA,IAAK,IAAA;AAEZ;;;ACjGA,IAAM,eAAA,GAAkB,SAAA;AAMjB,IAAM,oBAAN,MAAwB;AAAA,EACtB,MAAA;AAAA,EAER,YAAY,MAAA,EAA0B;AACrC,IAAA,IAAA,CAAK,SAAS,MAAA,CAAO,MAAA;AAAA,EACtB;AAAA,EAEA,IAAI,IAAI,KAAA,EAAsB;AAC7B,IAAA,IAAI,KAAK,QAAA,EAAU;AAClB,MAAA,IAAA,CAAK,MAAA,CAAO,KAAK,gDAAgD,CAAA;AACjE,MAAA;AAAA,IACD;AAEA,IAAA,IAAI,UAAU,IAAA,EAAM;AACnB,MAAA,YAAA,CAAa,WAAW,eAAe,CAAA;AACvC,MAAA;AAAA,IACD;AAEA,IAAA,MAAM,QAAA,GAAW,YAAA,CAAa,OAAA,CAAQ,eAAe,CAAA,IAAK,EAAA;AAE1D,IAAA,IAAI,UAAU,QAAA,EAAU;AACvB,MAAA;AAAA,IACD;AAEA,IAAA,MAAM,CAAA,uBAAQ,IAAA,EAAK;AACnB,IAAA,MAAM,CAAA,GAAI,KAAK,SAAA,CAAU;AAAA,MACxB,KAAA,EAAO,UAAA,CAAW,KAAK,CAAA,EAAG,GAAA,IAAO,KAAA;AAAA,MACjC,SAAA,EAAW,WAAW,QAAA,CAAS,CAAA,EAAG,CAAC,CAAA,EAAG,CAAC,EAAE,OAAA;AAAQ,KACjD,CAAA;AAED,IAAA,YAAA,CAAa,OAAA,CAAQ,iBAAiB,CAAC,CAAA;AAAA,EACxC;AAAA,EAEA,IAAI,GAAA,GAAqB;AACxB,IAAA,IAAI,KAAK,QAAA,EAAU;AAClB,MAAA,IAAA,CAAK,MAAA,CAAO,KAAK,gDAAgD,CAAA;AACjE,MAAA,OAAO,IAAA;AAAA,IACR;AAEA,IAAA,MAAM,CAAA,GAAI,YAAA,CAAa,OAAA,CAAQ,eAAe,CAAA;AAE9C,IAAA,IAAI,CAAC,GAAG,OAAO,IAAA;AAEf,IAAA,IAAI;AACH,MAAA,MAAM,CAAA,GAAI,IAAA,CAAK,KAAA,CAAM,CAAC,CAAA;AAEtB,MAAA,IAAI,CAAC,CAAA,CAAE,KAAA,EAAO,OAAO,IAAA;AACrB,MAAA,IAAI,CAAC,CAAA,CAAE,SAAA,EAAW,OAAO,IAAA;AAEzB,MAAA,MAAM,CAAA,GAAI,IAAI,IAAA,CAAK,CAAA,CAAE,SAAS,CAAA;AAC9B,MAAA,MAAM,CAAA,uBAAQ,IAAA,EAAK;AAEnB,MAAA,IAAI,OAAA,CAAQ,CAAA,EAAG,CAAC,CAAA,EAAG;AAClB,QAAA,YAAA,CAAa,WAAW,eAAe,CAAA;AACvC,QAAA,OAAO,IAAA;AAAA,MACR;AAEA,MAAA,OAAO,CAAA,CAAE,KAAA;AAAA,IACV,CAAA,CAAA,MAAQ;AACP,MAAA,YAAA,CAAa,WAAW,eAAe,CAAA;AACvC,MAAA,OAAO,IAAA;AAAA,IACR;AAAA,EACD;AAAA,EAEA,IAAY,QAAA,GAAW;AACtB,IAAA,OAAO,OAAO,MAAA,KAAW,WAAA;AAAA,EAC1B;AACD,CAAA;;;ACxEO,IAAM,SAAN,MAAa;AAAA,EACX,OAAA;AAAA,EAER,YAAY,MAAA,EAAuB;AAClC,IAAA,IAAA,CAAK,OAAA,GAAU,QAAQ,OAAA,IAAW,IAAA;AAAA,EACnC;AAAA,EAEA,KAAK,OAAA,EAAiB;AACrB,IAAA,IAAI,KAAK,OAAA,EAAS,OAAA,CAAQ,GAAA,CAAI,CAAA,eAAA,EAAkB,OAAO,CAAA,CAAE,CAAA;AAAA,EAC1D;AAAA,EAEA,KAAK,OAAA,EAAiB;AACrB,IAAA,IAAI,KAAK,OAAA,EAAS,OAAA,CAAQ,GAAA,CAAI,CAAA,eAAA,EAAkB,OAAO,CAAA,CAAE,CAAA;AAAA,EAC1D;AAAA,EAEA,MAAM,OAAA,EAAiB;AACtB,IAAA,IAAI,KAAK,OAAA,EAAS,OAAA,CAAQ,GAAA,CAAI,CAAA,gBAAA,EAAmB,OAAO,CAAA,CAAE,CAAA;AAAA,EAC3D;AAAA,EAEA,QAAQ,OAAA,EAAiB;AACxB,IAAA,IAAI,KAAK,OAAA,EAAS,OAAA,CAAQ,GAAA,CAAI,CAAA,kBAAA,EAAqB,OAAO,CAAA,CAAE,CAAA;AAAA,EAC7D;AACD,CAAA;;;AC7BO,SAAS,MAAM,EAAA,EAAY;AACjC,EAAA,OAAO,IAAI,OAAA,CAAc,CAAC,OAAA,KAAY;AACrC,IAAA,UAAA,CAAW,SAAS,EAAE,CAAA;AAAA,EACvB,CAAC,CAAA;AACF;;;ACyBO,SAAS,QAAA,CACf,MACA,MAAA,EACC;AACD,EAAA,MAAM;AAAA,IACL,KAAA;AAAA,IACA,QAAA,GAAW,GAAA;AAAA,IACX,UAAA,GAAa;AAAA;AAAA,GAEd,GAAI,MAAA;AAEJ,EAAA,eAAe,QAAA,CAAS,MAAc,GAAA,EAAc;AACnD,IAAA,MAAM,IAAI,GAAA,IAAO,UAAA;AACjB,IAAA,MAAM,CAAA,GAAI,MAAM,IAAA,CAAK,GAAG,IAAI,CAAA;AAC5B,IAAA,MAAM,CAAA,GAAI,MAAM,CAAC,CAAA;AAEjB,IAAA,IAAI,GAAG,OAAO,CAAA;AAEd,IAAA,IAAI,IAAI,CAAA,EAAG;AACV,MAAA,MAAM,KAAA,CAAM,QAAA,IAAA,CAAa,UAAA,GAAa,CAAA,IAAK,CAAA,CAAE,CAAA;AAC7C,MAAA,OAAO,QAAA,CAAS,IAAA,EAAM,CAAA,GAAI,CAAC,CAAA;AAAA,IAC5B;AAEA,IAAA,OAAO,CAAA;AAAA,EACR;AAEA,EAAA,OAAO,UAAU,IAAA,KAAkC;AAClD,IAAA,OAAO,MAAM,SAAS,IAAI,CAAA;AAAA,EAC3B,CAAA;AACD;;;ACxBO,IAAM,iBAAN,MAAqB;AAAA,EACnB,MAAA;AAAA,EACA,UAAA,GAAa,SAAA;AAAA,EACb,kBAAA,GAAqB,kBAAA;AAAA,EACrB,WAAA;AAAA,EACA,aAAA;AAAA,EACA,WAAA,GAAc,KAAA;AAAA,EAEtB,YAAY,MAAA,EAA8B;AACzC,IAAA,IAAA,CAAK,cAAc,MAAA,CAAO,WAAA;AAC1B,IAAA,IAAA,CAAK,gBAAgB,MAAA,CAAO,aAAA;AAC5B,IAAA,IAAA,CAAK,SAAS,MAAA,CAAO,MAAA;AACrB,IAAA,IAAI,OAAO,aAAA,EAAe;AACzB,MAAA,IAAA,CAAK,aAAa,CAAA,EAAG,MAAA,CAAO,aAAa,CAAA,CAAA,EAAI,KAAK,UAAU,CAAA,CAAA;AAC5D,MAAA,IAAA,CAAK,qBAAqB,CAAA,EAAG,MAAA,CAAO,aAAa,CAAA,CAAA,EAAI,KAAK,kBAAkB,CAAA,CAAA;AAAA,IAC7E;AAAA,EACD;AAAA,EAEA,IAAI,UAAA,GAAa;AAChB,IAAA,OAAO,IAAA,CAAK,WAAA;AAAA,EACb;AAAA,EAEA,IAAI,WAAW,KAAA,EAAgB;AAC9B,IAAA,IAAA,CAAK,WAAA,GAAc,KAAA;AAAA,EACpB;AAAA,EAEA,MAAM,OACL,KAAA,EAGC;AACD,IAAA,IAAI,KAAK,QAAA,EAAU;AAClB,MAAA,IAAA,CAAK,MAAA,CAAO,KAAK,gDAAgD,CAAA;AAEjE,MAAA,OAAO;AAAA,QACN,EAAA,EAAI,KAAA;AAAA,QACJ,KAAA,EAAO;AAAA,UACN,IAAA,EAAM,cAAA;AAAA,UACN,OAAA,EAAS;AAAA;AACV,OACD;AAAA,IACD;AAKA,IAAA,IAAI,KAAA,CAAM,SAAS,MAAA,EAAQ;AAC1B,MAAA,YAAA,CAAa,OAAA,CAAQ,IAAA,CAAK,kBAAA,EAAoB,MAAM,CAAA;AAEpD,MAAA,MAAM,EAAA,GAAK,MAAM,IAAA,CAAK,aAAA,CAAc,YAAY,EAAE,EAAA,EAAI,KAAA,CAAM,SAAA,EAAW,CAAA;AACvE,MAAA,MAAM,EAAA,GAAK,MAAM,QAAA,CAAS,EAAA,EAAI;AAAA,QAC7B,OAAO,CAAC,CAAA,KAAM,EAAE,EAAA,IAAM,CAAA,CAAE,MAAM,MAAA,IAAU,IAAA;AAAA,QACxC,QAAA,EAAU,GAAA;AAAA,QACV,UAAA,EAAY;AAAA,OACZ,CAAA,EAAE;AAEH,MAAA,IAAI,CAAC,EAAA,CAAG,EAAA,EAAI,OAAO,EAAA;AACnB,MAAA,IAAI,CAAC,EAAA,CAAG,IAAA,EAAM,MAAA,EAAQ;AACrB,QAAA,OAAO;AAAA,UACN,EAAA,EAAI,KAAA;AAAA,UACJ,KAAA,EAAO;AAAA,YACN,IAAA,EAAM,eAAA;AAAA,YACN,OAAA,EAAS;AAAA;AACV,SACD;AAAA,MACD;AAEA,MAAA,MAAM,EAAA,GAAK,MAAM,IAAA,CAAK,WAAA,CAAY,cAAc,KAAK,CAAA;AACrD,MAAA,MAAM,EAAA,GAAK,MAAM,QAAA,CAAS,EAAA,EAAI;AAAA,QAC7B,KAAA,EAAO,CAAC,CAAA,KAAM,CAAA,CAAE,EAAA;AAAA,QAChB,QAAA,EAAU,GAAA;AAAA,QACV,UAAA,EAAY;AAAA,OACZ,CAAA,EAAE;AAEH,MAAA,IAAI,CAAC,EAAA,CAAG,EAAA,EAAI,OAAO,EAAA;AAEnB,MAAA,MAAMA,IAAAA,uBAAU,IAAA,EAAK;AAErB,MAAA,YAAA,CAAa,OAAA;AAAA,QACZ,IAAA,CAAK,UAAA;AAAA,QACL,KAAK,SAAA,CAAU;AAAA,UACd,GAAG,EAAA,CAAG,IAAA;AAAA,UACN,oBAAA,EAAsB,UAAA,CAAWA,IAAAA,EAAK,CAAC,EAAE,OAAA,EAAQ;AAAA,UACjD,qBAAA,EAAuB,WAAW,OAAA,CAAQA,IAAAA,EAAK,EAAE,CAAA,EAAG,CAAC,EAAE,OAAA;AAAQ,SAC/D;AAAA,OACF;AAEA,MAAA,OAAO;AAAA,QACN,EAAA,EAAI,IAAA;AAAA,QACJ,IAAA,EAAM;AAAA,OACP;AAAA,IACD;AAKA,IAAA,IAAI,KAAA,CAAM,SAAS,eAAA,EAAiB;AACnC,MAAA,MAAMC,IAAAA,GAAM,MAAM,IAAA,CAAK,WAAA,CAAY,cAAc,KAAK,CAAA;AAEtD,MAAA,IAAIA,KAAI,EAAA,EAAI;AACX,QAAA,MAAMD,IAAAA,uBAAU,IAAA,EAAK;AAErB,QAAA,YAAA,CAAa,OAAA;AAAA,UACZ,IAAA,CAAK,UAAA;AAAA,UACL,KAAK,SAAA,CAAU;AAAA,YACd,GAAGC,IAAAA,CAAI,IAAA;AAAA,YACP,oBAAA,EAAsB,UAAA,CAAWD,IAAAA,EAAK,CAAC,EAAE,OAAA,EAAQ;AAAA,YACjD,qBAAA,EAAuB,WAAW,OAAA,CAAQA,IAAAA,EAAK,EAAE,CAAA,EAAG,CAAC,EAAE,OAAA;AAAQ,WAC/D;AAAA,SACF;AAEA,QAAA,OAAO;AAAA,UACN,EAAA,EAAI,IAAA;AAAA,UACJ,IAAA,EAAM;AAAA,SACP;AAAA,MACD;AAEA,MAAA,OAAOC,IAAAA;AAAA,IACR;AAKA,IAAA,IAAI,KAAA,CAAM,IAAA,KAAS,SAAA,IAAa,KAAA,CAAM,SAAS,OAAA,EAAS;AACvD,MAAA,MAAMA,IAAAA,GAAM,MAAM,IAAA,CAAK,WAAA,CAAY,aAAA,CAAc;AAAA,QAChD,IAAA,EAAM,SAAA;AAAA,QACN,OAAO,KAAA,CAAM,KAAA;AAAA,QACb,SAAS,KAAA,CAAM;AAAA,OACf,CAAA;AAED,MAAA,IAAIA,KAAI,EAAA,EAAI;AACX,QAAA,MAAMD,IAAAA,uBAAU,IAAA,EAAK;AAErB,QAAA,YAAA,CAAa,OAAA;AAAA,UACZ,IAAA,CAAK,UAAA;AAAA,UACL,KAAK,SAAA,CAAU;AAAA,YACd,GAAGC,IAAAA,CAAI,IAAA;AAAA,YACP,oBAAA,EAAsB,UAAA,CAAWD,IAAAA,EAAK,CAAC,EAAE,OAAA,EAAQ;AAAA,YACjD,qBAAA,EAAuB,WAAW,OAAA,CAAQA,IAAAA,EAAK,EAAE,CAAA,EAAG,CAAC,EAAE,OAAA;AAAQ,WAC/D;AAAA,SACF;AAEA,QAAA,OAAO;AAAA,UACN,EAAA,EAAI,IAAA;AAAA,UACJ,IAAA,EAAM;AAAA,SACP;AAAA,MACD;AAEA,MAAA,OAAOC,IAAAA;AAAA,IACR;AAKA,IAAA,IAAI,KAAA,CAAM,SAAS,SAAA,EAAW;AAC7B,MAAA,YAAA,CAAa,OAAA,CAAQ,IAAA,CAAK,kBAAA,EAAoB,SAAS,CAAA;AAEvD,MAAA,MAAMA,IAAAA,GAAM,MAAM,IAAA,CAAK,WAAA,CAAY,cAAc,KAAK,CAAA;AAEtD,MAAA,IAAIA,KAAI,EAAA,EAAI;AACX,QAAA,MAAMD,IAAAA,uBAAU,IAAA,EAAK;AAErB,QAAA,YAAA,CAAa,OAAA;AAAA,UACZ,IAAA,CAAK,UAAA;AAAA,UACL,KAAK,SAAA,CAAU;AAAA,YACd,GAAGC,IAAAA,CAAI,IAAA;AAAA,YACP,oBAAA,EAAsB,UAAA,CAAWD,IAAAA,EAAK,CAAC,EAAE,OAAA,EAAQ;AAAA,YACjD,qBAAA,EAAuB,WAAW,OAAA,CAAQA,IAAAA,EAAK,EAAE,CAAA,EAAG,CAAC,EAAE,OAAA;AAAQ,WAC/D;AAAA,SACF;AAEA,QAAA,OAAO;AAAA,UACN,EAAA,EAAI,IAAA;AAAA,UACJ,IAAA,EAAM;AAAA,SACP;AAAA,MACD;AAEA,MAAA,OAAOC,IAAAA;AAAA,IACR;AAKA,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,WAAA,CAAY,cAAc,KAAK,CAAA;AAEtD,IAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAKpB,IAAA,IAAI,GAAA,CAAI,KAAK,aAAA,EAAe;AAC3B,MAAA,OAAO;AAAA,QACN,EAAA,EAAI,IAAA;AAAA,QACJ,IAAA,EAAM;AAAA,UACL,aAAA,EAAe,IAAI,IAAA,CAAK;AAAA;AACzB,OACD;AAAA,IACD;AAEA,IAAA,MAAM,GAAA,uBAAU,IAAA,EAAK;AAErB,IAAA,YAAA,CAAa,OAAA;AAAA,MACZ,IAAA,CAAK,UAAA;AAAA,MACL,KAAK,SAAA,CAAU;AAAA,QACd,GAAG,GAAA,CAAI,IAAA;AAAA,QACP,oBAAA,EAAsB,UAAA,CAAW,GAAA,EAAK,CAAC,EAAE,OAAA,EAAQ;AAAA,QACjD,qBAAA,EAAuB,WAAW,OAAA,CAAQ,GAAA,EAAK,EAAE,CAAA,EAAG,CAAC,EAAE,OAAA;AAAQ,OAC/D;AAAA,KACF;AAEA,IAAA,OAAO;AAAA,MACN,EAAA,EAAI,IAAA;AAAA,MACJ,IAAA,EAAM;AAAA,KACP;AAAA,EACD;AAAA,EAEA,MAAM,wBACL,KAAA,EAC8C;AAC9C,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,WAAA,CAAY,aAAa,KAAK,CAAA;AAErD,IAAA,IAAI,IAAI,EAAA,EAAI;AACX,MAAA,MAAM,GAAA,uBAAU,IAAA,EAAK;AAErB,MAAA,IAAI,KAAK,QAAA,EAAU;AAClB,QAAA,IAAA,CAAK,MAAA,CAAO,KAAK,gDAAgD,CAAA;AAAA,MAClE,CAAA,MAAO;AACN,QAAA,YAAA,CAAa,OAAA;AAAA,UACZ,IAAA,CAAK,UAAA;AAAA,UACL,KAAK,SAAA,CAAU;AAAA,YACd,GAAG,GAAA,CAAI,IAAA;AAAA,YACP,oBAAA,EAAsB,UAAA,CAAW,GAAA,EAAK,CAAC,EAAE,OAAA,EAAQ;AAAA,YACjD,qBAAA,EAAuB,WAAW,OAAA,CAAQ,GAAA,EAAK,EAAE,CAAA,EAAG,CAAC,EAAE,OAAA;AAAQ,WAC/D;AAAA,SACF;AAAA,MACD;AAEA,MAAA,OAAO,EAAE,IAAI,IAAA,EAAK;AAAA,IACnB,CAAA,MAAO;AACN,MAAA,OAAO,GAAA;AAAA,IACR;AAAA,EACD;AAAA,EAEA,MAAM,GAAA,GAAkE;AACvE,IAAA,IAAI,KAAK,QAAA,EAAU;AAClB,MAAA,IAAA,CAAK,MAAA,CAAO,KAAK,gDAAgD,CAAA;AAEjE,MAAA,OAAO;AAAA,QACN,EAAA,EAAI,IAAA;AAAA,QACJ,IAAA,EAAM;AAAA,OACP;AAAA,IACD;AAEA,IAAA,IAAI,KAAK,UAAA,EAAY;AACpB,MAAA,MAAM,MAAM,GAAI,CAAA;AAChB,MAAA,OAAO,MAAM,KAAK,GAAA,EAAI;AAAA,IACvB;AAEA,IAAA,MAAM,GAAA,GAAM,YAAA,CAAa,OAAA,CAAQ,IAAA,CAAK,UAAU,CAAA;AAEhD,IAAA,IAAI,CAAC,GAAA,EAAK;AACT,MAAA,OAAO;AAAA,QACN,EAAA,EAAI,IAAA;AAAA,QACJ,IAAA,EAAM;AAAA,OACP;AAAA,IACD;AAEA,IAAA,IAAI;AACH,MAAA,IAAI,GAAA,GAMA,IAAA,CAAK,KAAA,CAAM,GAAG,CAAA;AAElB,MAAA,IAAI,GAAA,uBAAU,IAAA,EAAK;AAEnB,MAAA,MAAM,oBAAA,GAAuB,IAAI,IAAA,CAAK,GAAA,CAAI,oBAAoB,CAAA;AAC9D,MAAA,MAAM,qBAAA,GAAwB,IAAI,IAAA,CAAK,GAAA,CAAI,qBAAqB,CAAA;AAGhE,MAAA,IAAI,OAAA,CAAQ,GAAA,EAAK,qBAAqB,CAAA,EAAG;AACxC,QAAA,IAAA,CAAK,MAAA,CAAO,KAAK,gCAAgC,CAAA;AAEjD,QAAA,YAAA,CAAa,UAAA,CAAW,KAAK,UAAU,CAAA;AAEvC,QAAA,OAAO;AAAA,UACN,EAAA,EAAI,KAAA;AAAA,UACJ,KAAA,EAAO;AAAA,YACN,IAAA,EAAM,qBAAA;AAAA,YACN,OAAA,EAAS;AAAA;AACV,SACD;AAAA,MACD;AAGA,MAAA,IAAI,OAAA,CAAQ,GAAA,EAAK,oBAAoB,CAAA,EAAG;AACvC,QAAA,IAAA,CAAK,MAAA,CAAO,KAAK,uBAAuB,CAAA;AAExC,QAAA,IAAA,CAAK,UAAA,GAAa,IAAA;AAElB,QAAA,MAAM,MAAM,MAAM,IAAA,CAAK,WAAA,CAAY,cAAA,CAAe,IAAI,YAAY,CAAA;AAElE,QAAA,IAAA,CAAK,UAAA,GAAa,KAAA;AAElB,QAAA,IAAI,CAAC,IAAI,EAAA,EAAI;AACZ,UAAA,IAAA,CAAK,OAAO,KAAA,CAAM,CAAA,2BAAA,EAA8B,GAAA,CAAI,KAAA,CAAM,OAAO,CAAA,CAAE,CAAA;AAKnE,UAAA,IACC,GAAA,CAAI,KAAA,CAAM,IAAA,KAAS,mBAAA,IACnB,GAAA,CAAI,KAAA,CAAM,IAAA,KAAS,yBAAA,IACnB,GAAA,CAAI,KAAA,CAAM,IAAA,KAAS,yBAAA,EAClB;AACD,YAAA,YAAA,CAAa,UAAA,CAAW,KAAK,UAAU,CAAA;AAEvC,YAAA,OAAO;AAAA,cACN,EAAA,EAAI,KAAA;AAAA,cACJ,OAAO,GAAA,CAAI;AAAA,aACZ;AAAA,UACD,CAAA,MAAO;AACN,YAAA,IAAA,CAAK,MAAA,CAAO,KAAK,uBAAuB,CAAA;AAExC,YAAA,OAAO;AAAA,cACN,EAAA,EAAI,IAAA;AAAA,cACJ,IAAA,EAAM;AAAA,aACP;AAAA,UACD;AAAA,QACD;AAEA,QAAA,IAAA,CAAK,MAAA,CAAO,QAAQ,oBAAoB,CAAA;AAExC,QAAA,GAAA,uBAAU,IAAA,EAAK;AACf,QAAA,GAAA,GAAM;AAAA,UACL,GAAG,GAAA;AAAA,UACH,GAAG,GAAA,CAAI,IAAA;AAAA,UACP,oBAAA,EAAsB,UAAA,CAAW,GAAA,EAAK,CAAC,EAAE,OAAA,EAAQ;AAAA,UACjD,qBAAA,EAAuB,WAAW,OAAA,CAAQ,GAAA,EAAK,EAAE,CAAA,EAAG,CAAC,EAAE,OAAA;AAAQ,SAChE;AAEA,QAAA,YAAA,CAAa,QAAQ,IAAA,CAAK,UAAA,EAAY,IAAA,CAAK,SAAA,CAAU,GAAG,CAAC,CAAA;AAAA,MAC1D;AAEA,MAAA,OAAO;AAAA,QACN,EAAA,EAAI,IAAA;AAAA,QACJ,IAAA,EAAM;AAAA,OACP;AAAA,IACD,CAAA,CAAA,MAAQ;AAEP,MAAA,OAAO;AAAA,QACN,EAAA,EAAI,KAAA;AAAA,QACJ,KAAA,EAAO;AAAA,UACN,IAAA,EAAM,cAAA;AAAA,UACN,OAAA,EAAS;AAAA;AACV,OACD;AAAA,IACD;AAAA,EACD;AAAA,EAEA,MAAM,OAAA,GAAsE;AAC3E,IAAA,IAAI,KAAK,QAAA,EAAU;AAClB,MAAA,IAAA,CAAK,MAAA,CAAO,KAAK,gDAAgD,CAAA;AAEjE,MAAA,OAAO;AAAA,QACN,EAAA,EAAI,IAAA;AAAA,QACJ,IAAA,EAAM;AAAA,OACP;AAAA,IACD;AAEA,IAAA,MAAM,GAAA,GAAM,YAAA,CAAa,OAAA,CAAQ,IAAA,CAAK,UAAU,CAAA;AAEhD,IAAA,IAAI,CAAC,GAAA,EAAK;AACT,MAAA,OAAO;AAAA,QACN,EAAA,EAAI,IAAA;AAAA,QACJ,IAAA,EAAM;AAAA,OACP;AAAA,IACD;AAEA,IAAA,IAAI;AACH,MAAA,IAAI,GAAA,GAMA,IAAA,CAAK,KAAA,CAAM,GAAG,CAAA;AAElB,MAAA,IAAI,GAAA,uBAAU,IAAA,EAAK;AAEnB,MAAA,IAAA,CAAK,MAAA,CAAO,KAAK,uBAAuB,CAAA;AAExC,MAAA,IAAA,CAAK,UAAA,GAAa,IAAA;AAElB,MAAA,MAAM,MAAM,MAAM,IAAA,CAAK,WAAA,CAAY,cAAA,CAAe,IAAI,YAAY,CAAA;AAElE,MAAA,IAAA,CAAK,UAAA,GAAa,KAAA;AAElB,MAAA,IAAI,CAAC,IAAI,EAAA,EAAI;AACZ,QAAA,IAAA,CAAK,OAAO,KAAA,CAAM,CAAA,2BAAA,EAA8B,GAAA,CAAI,KAAA,CAAM,OAAO,CAAA,CAAE,CAAA;AAKnE,QAAA,IACC,GAAA,CAAI,KAAA,CAAM,IAAA,KAAS,mBAAA,IACnB,GAAA,CAAI,KAAA,CAAM,IAAA,KAAS,yBAAA,IACnB,GAAA,CAAI,KAAA,CAAM,IAAA,KAAS,yBAAA,EAClB;AACD,UAAA,YAAA,CAAa,UAAA,CAAW,KAAK,UAAU,CAAA;AAEvC,UAAA,OAAO;AAAA,YACN,EAAA,EAAI,KAAA;AAAA,YACJ,OAAO,GAAA,CAAI;AAAA,WACZ;AAAA,QACD,CAAA,MAAO;AACN,UAAA,IAAA,CAAK,MAAA,CAAO,KAAK,uBAAuB,CAAA;AAExC,UAAA,OAAO;AAAA,YACN,EAAA,EAAI,IAAA;AAAA,YACJ,IAAA,EAAM;AAAA,WACP;AAAA,QACD;AAAA,MACD;AAEA,MAAA,IAAA,CAAK,MAAA,CAAO,QAAQ,oBAAoB,CAAA;AAExC,MAAA,GAAA,uBAAU,IAAA,EAAK;AACf,MAAA,GAAA,GAAM;AAAA,QACL,GAAG,GAAA;AAAA,QACH,GAAG,GAAA,CAAI,IAAA;AAAA,QACP,oBAAA,EAAsB,UAAA,CAAW,GAAA,EAAK,CAAC,EAAE,OAAA,EAAQ;AAAA,QACjD,qBAAA,EAAuB,WAAW,OAAA,CAAQ,GAAA,EAAK,EAAE,CAAA,EAAG,CAAC,EAAE,OAAA;AAAQ,OAChE;AAEA,MAAA,YAAA,CAAa,QAAQ,IAAA,CAAK,UAAA,EAAY,IAAA,CAAK,SAAA,CAAU,GAAG,CAAC,CAAA;AAEzD,MAAA,OAAO;AAAA,QACN,EAAA,EAAI,IAAA;AAAA,QACJ,IAAA,EAAM;AAAA,OACP;AAAA,IACD,CAAA,CAAA,MAAQ;AAEP,MAAA,OAAO;AAAA,QACN,EAAA,EAAI,KAAA;AAAA,QACJ,KAAA,EAAO;AAAA,UACN,IAAA,EAAM,cAAA;AAAA,UACN,OAAA,EAAS;AAAA;AACV,OACD;AAAA,IACD;AAAA,EACD;AAAA,EAEA,MAAM,OAAA,GAAU;AACf,IAAA,IAAI,KAAK,QAAA,EAAU;AAClB,MAAA,IAAA,CAAK,MAAA,CAAO,KAAK,gDAAgD,CAAA;AACjE,MAAA;AAAA,IACD;AAEA,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,GAAA,EAAI;AAE3B,IAAA,IAAI,GAAA,CAAI,MAAM,WAAA,EAAa;AAC1B,MAAA,MAAM,IAAA,CAAK,WAAA,CAAY,cAAA,CAAe,GAAA,CAAI,KAAK,WAAW,CAAA;AAAA,IAC3D;AAEA,IAAA,YAAA,CAAa,UAAA,CAAW,KAAK,UAAU,CAAA;AAAA,EACxC;AAAA,EAEA,MAAM,MAAA,GAA2B;AAChC,IAAA,IAAI,KAAK,QAAA,EAAU;AAClB,MAAA,IAAA,CAAK,MAAA,CAAO,KAAK,gDAAgD,CAAA;AACjE,MAAA,OAAO,IAAA;AAAA,IACR;AAEA,IAAA,MAAM,CAAA,GAAI,MAAM,IAAA,CAAK,GAAA,EAAI;AAEzB,IAAA,IAAI,CAAA,CAAE,KAAA,EAAO,IAAA,KAAS,mBAAA,EAAqB,OAAO,KAAA;AAClD,IAAA,IAAI,CAAA,CAAE,KAAA,EAAO,IAAA,KAAS,qBAAA,EAAuB,OAAO,KAAA;AACpD,IAAA,IAAI,CAAA,CAAE,KAAA,EAAO,IAAA,KAAS,yBAAA,EAA2B,OAAO,KAAA;AAGxD,IAAA,IAAI,CAAC,CAAA,CAAE,IAAA,EAAM,OAAO,IAAA;AAEpB,IAAA,MAAM,IAAI,MAAM,IAAA,CAAK,YAAY,aAAA,CAAc,CAAA,CAAE,KAAK,WAAW,CAAA;AAGjE,IAAA,IAAI,CAAC,CAAA,EAAG;AACP,MAAA,YAAA,CAAa,UAAA,CAAW,KAAK,UAAU,CAAA;AAAA,IACxC;AAEA,IAAA,OAAO,CAAA;AAAA,EACR;AAAA,EAEA,IAAI,MAAA,GAAS;AACZ,IAAA,IAAI,KAAK,QAAA,EAAU;AAClB,MAAA,IAAA,CAAK,MAAA,CAAO,KAAK,gDAAgD,CAAA;AACjE,MAAA,OAAO,KAAA;AAAA,IACR;AAEA,IAAA,OAAO,YAAA,CAAa,OAAA,CAAQ,IAAA,CAAK,kBAAkB,CAAA,KAAM,MAAA;AAAA,EAC1D;AAAA,EAEA,IAAI,SAAA,GAAY;AACf,IAAA,IAAI,KAAK,QAAA,EAAU;AAClB,MAAA,IAAA,CAAK,MAAA,CAAO,KAAK,gDAAgD,CAAA;AACjE,MAAA,OAAO,KAAA;AAAA,IACR;AAEA,IAAA,OAAO,YAAA,CAAa,OAAA,CAAQ,IAAA,CAAK,kBAAkB,CAAA,KAAM,SAAA;AAAA,EAC1D;AAAA,EAEA,IAAY,QAAA,GAAW;AACtB,IAAA,OAAO,OAAO,MAAA,KAAW,WAAA;AAAA,EAC1B;AACD,CAAA;ACpgBO,IAAM,uBAAN,MAA2B;AAAA,EACzB,MAAA;AAAA,EACA,UAAA,GAAa,SAAA;AAAA,EACb,kBAAA,GAAqB,kBAAA;AAAA,EACrB,WAAA;AAAA,EACA,aAAA;AAAA,EACA,WAAA,GAAc,KAAA;AAAA,EAEtB,YAAY,MAAA,EAA8B;AACzC,IAAA,IAAA,CAAK,cAAc,MAAA,CAAO,WAAA;AAC1B,IAAA,IAAA,CAAK,gBAAgB,MAAA,CAAO,aAAA;AAC5B,IAAA,IAAA,CAAK,SAAS,MAAA,CAAO,MAAA;AAAA,EACtB;AAAA,EAEA,IAAI,UAAA,GAAa;AAChB,IAAA,OAAO,IAAA,CAAK,WAAA;AAAA,EACb;AAAA,EAEA,IAAI,WAAW,KAAA,EAAgB;AAC9B,IAAA,IAAA,CAAK,WAAA,GAAc,KAAA;AAAA,EACpB;AAAA,EAEA,MAAM,OACL,KAAA,EAGC;AAID,IAAA,IAAI,KAAA,CAAM,SAAS,MAAA,EAAQ;AAC1B,MAAA,YAAA,CAAa,OAAA,CAAQ,IAAA,CAAK,kBAAA,EAAoB,MAAM,CAAA;AAEpD,MAAA,MAAM,EAAA,GAAK,MAAM,IAAA,CAAK,aAAA,CAAc,YAAY,EAAE,EAAA,EAAI,KAAA,CAAM,SAAA,EAAW,CAAA;AACvE,MAAA,MAAM,EAAA,GAAK,MAAM,QAAA,CAAS,EAAA,EAAI;AAAA,QAC7B,OAAO,CAAC,CAAA,KAAM,EAAE,EAAA,IAAM,CAAA,CAAE,MAAM,MAAA,IAAU,IAAA;AAAA,QACxC,QAAA,EAAU,GAAA;AAAA,QACV,UAAA,EAAY;AAAA,OACZ,CAAA,EAAE;AAEH,MAAA,IAAI,CAAC,EAAA,CAAG,EAAA,EAAI,OAAO,EAAA;AACnB,MAAA,IAAI,CAAC,EAAA,CAAG,IAAA,EAAM,MAAA,EAAQ;AACrB,QAAA,OAAO;AAAA,UACN,EAAA,EAAI,KAAA;AAAA,UACJ,KAAA,EAAO;AAAA,YACN,IAAA,EAAM,eAAA;AAAA,YACN,OAAA,EAAS;AAAA;AACV,SACD;AAAA,MACD;AAEA,MAAA,MAAM,EAAA,GAAK,MAAM,IAAA,CAAK,WAAA,CAAY,cAAc,KAAK,CAAA;AACrD,MAAA,MAAM,EAAA,GAAK,MAAM,QAAA,CAAS,EAAA,EAAI;AAAA,QAC7B,KAAA,EAAO,CAAC,CAAA,KAAM,CAAA,CAAE,EAAA;AAAA,QAChB,QAAA,EAAU,GAAA;AAAA,QACV,UAAA,EAAY;AAAA,OACZ,CAAA,EAAE;AAEH,MAAA,IAAI,CAAC,EAAA,CAAG,EAAA,EAAI,OAAO,EAAA;AAEnB,MAAA,MAAMD,IAAAA,uBAAU,IAAA,EAAK;AAErB,MAAA,OAAA,CAAQ,GAAA;AAAA,QACP,IAAA,CAAK,UAAA;AAAA,QACL,KAAK,SAAA,CAAU;AAAA,UACd,GAAG,EAAA,CAAG,IAAA;AAAA,UACN,oBAAA,EAAsB,UAAA,CAAWA,IAAAA,EAAK,CAAC,EAAE,OAAA,EAAQ;AAAA,UACjD,qBAAA,EAAuB,WAAW,OAAA,CAAQA,IAAAA,EAAK,EAAE,CAAA,EAAG,CAAC,EAAE,OAAA;AAAQ,SAC/D,CAAA;AAAA,QACD,EAAE,OAAA,EAAS,UAAA,CAAW,OAAA,CAAQA,IAAAA,EAAK,EAAE,CAAA,EAAG,CAAC,CAAA,CAAE,OAAA,EAAQ;AAAE,OACtD;AAEA,MAAA,OAAO;AAAA,QACN,EAAA,EAAI,IAAA;AAAA,QACJ,IAAA,EAAM;AAAA,OACP;AAAA,IACD;AAKA,IAAA,IAAI,KAAA,CAAM,SAAS,eAAA,EAAiB;AACnC,MAAA,MAAMC,IAAAA,GAAM,MAAM,IAAA,CAAK,WAAA,CAAY,cAAc,KAAK,CAAA;AAEtD,MAAA,IAAIA,KAAI,EAAA,EAAI;AACX,QAAA,MAAMD,IAAAA,uBAAU,IAAA,EAAK;AAErB,QAAA,OAAA,CAAQ,GAAA;AAAA,UACP,IAAA,CAAK,UAAA;AAAA,UACL,KAAK,SAAA,CAAU;AAAA,YACd,GAAGC,IAAAA,CAAI,IAAA;AAAA,YACP,oBAAA,EAAsB,UAAA,CAAWD,IAAAA,EAAK,CAAC,EAAE,OAAA,EAAQ;AAAA,YACjD,qBAAA,EAAuB,WAAW,OAAA,CAAQA,IAAAA,EAAK,EAAE,CAAA,EAAG,CAAC,EAAE,OAAA;AAAQ,WAC/D,CAAA;AAAA,UACD;AAAA,YACC,OAAA,EAAS,WAAW,OAAA,CAAQA,IAAAA,EAAK,EAAE,CAAA,EAAG,CAAC,EAAE,OAAA;AAAQ;AAClD,SACD;AAEA,QAAA,OAAO;AAAA,UACN,EAAA,EAAI,IAAA;AAAA,UACJ,IAAA,EAAM;AAAA,SACP;AAAA,MACD;AAEA,MAAA,OAAOC,IAAAA;AAAA,IACR;AAKA,IAAA,IAAI,KAAA,CAAM,IAAA,KAAS,SAAA,IAAa,KAAA,CAAM,SAAS,OAAA,EAAS;AACvD,MAAA,MAAMA,IAAAA,GAAM,MAAM,IAAA,CAAK,WAAA,CAAY,aAAA,CAAc;AAAA,QAChD,IAAA,EAAM,SAAA;AAAA,QACN,OAAO,KAAA,CAAM;AAAA,OACb,CAAA;AAED,MAAA,IAAIA,KAAI,EAAA,EAAI;AACX,QAAA,MAAMD,IAAAA,uBAAU,IAAA,EAAK;AAErB,QAAA,OAAA,CAAQ,GAAA;AAAA,UACP,IAAA,CAAK,UAAA;AAAA,UACL,KAAK,SAAA,CAAU;AAAA,YACd,GAAGC,IAAAA,CAAI,IAAA;AAAA,YACP,oBAAA,EAAsB,UAAA,CAAWD,IAAAA,EAAK,CAAC,EAAE,OAAA,EAAQ;AAAA,YACjD,qBAAA,EAAuB,WAAW,OAAA,CAAQA,IAAAA,EAAK,EAAE,CAAA,EAAG,CAAC,EAAE,OAAA;AAAQ,WAC/D,CAAA;AAAA,UACD,EAAE,OAAA,EAAS,UAAA,CAAW,OAAA,CAAQA,IAAAA,EAAK,EAAE,CAAA,EAAG,CAAC,CAAA,CAAE,OAAA,EAAQ;AAAE,SACtD;AAEA,QAAA,OAAO;AAAA,UACN,EAAA,EAAI,IAAA;AAAA,UACJ,IAAA,EAAM;AAAA,SACP;AAAA,MACD;AAEA,MAAA,OAAOC,IAAAA;AAAA,IACR;AAKA,IAAA,IAAI,KAAA,CAAM,SAAS,SAAA,EAAW;AAC7B,MAAA,YAAA,CAAa,OAAA,CAAQ,IAAA,CAAK,kBAAA,EAAoB,SAAS,CAAA;AAEvD,MAAA,MAAMA,IAAAA,GAAM,MAAM,IAAA,CAAK,WAAA,CAAY,cAAc,KAAK,CAAA;AAEtD,MAAA,IAAIA,KAAI,EAAA,EAAI;AACX,QAAA,MAAMD,IAAAA,uBAAU,IAAA,EAAK;AAErB,QAAA,OAAA,CAAQ,GAAA;AAAA,UACP,IAAA,CAAK,UAAA;AAAA,UACL,KAAK,SAAA,CAAU;AAAA,YACd,GAAGC,IAAAA,CAAI,IAAA;AAAA,YACP,oBAAA,EAAsB,UAAA,CAAWD,IAAAA,EAAK,CAAC,EAAE,OAAA,EAAQ;AAAA,YACjD,qBAAA,EAAuB,WAAW,OAAA,CAAQA,IAAAA,EAAK,EAAE,CAAA,EAAG,CAAC,EAAE,OAAA;AAAQ,WAC/D,CAAA;AAAA,UACD,EAAE,OAAA,EAAS,UAAA,CAAW,OAAA,CAAQA,IAAAA,EAAK,EAAE,CAAA,EAAG,CAAC,CAAA,CAAE,OAAA,EAAQ;AAAE,SACtD;AAEA,QAAA,OAAO;AAAA,UACN,EAAA,EAAI,IAAA;AAAA,UACJ,IAAA,EAAM;AAAA,SACP;AAAA,MACD;AAEA,MAAA,OAAOC,IAAAA;AAAA,IACR;AAKA,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,WAAA,CAAY,cAAc,KAAK,CAAA;AAEtD,IAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAKpB,IAAA,IAAI,GAAA,CAAI,KAAK,aAAA,EAAe;AAC3B,MAAA,OAAO;AAAA,QACN,EAAA,EAAI,IAAA;AAAA,QACJ,IAAA,EAAM;AAAA,UACL,aAAA,EAAe,IAAI,IAAA,CAAK;AAAA;AACzB,OACD;AAAA,IACD;AAEA,IAAA,MAAM,GAAA,uBAAU,IAAA,EAAK;AAErB,IAAA,OAAA,CAAQ,GAAA;AAAA,MACP,IAAA,CAAK,UAAA;AAAA,MACL,KAAK,SAAA,CAAU;AAAA,QACd,GAAG,GAAA,CAAI,IAAA;AAAA,QACP,oBAAA,EAAsB,UAAA,CAAW,GAAA,EAAK,CAAC,EAAE,OAAA,EAAQ;AAAA,QACjD,qBAAA,EAAuB,WAAW,OAAA,CAAQ,GAAA,EAAK,EAAE,CAAA,EAAG,CAAC,EAAE,OAAA;AAAQ,OAC/D,CAAA;AAAA,MACD;AAAC,KACF;AAEA,IAAA,OAAO;AAAA,MACN,EAAA,EAAI,IAAA;AAAA,MACJ,IAAA,EAAM;AAAA,KACP;AAAA,EACD;AAAA,EAEA,MAAM,wBACL,KAAA,EAC8C;AAC9C,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,WAAA,CAAY,aAAa,KAAK,CAAA;AAErD,IAAA,IAAI,IAAI,EAAA,EAAI;AACX,MAAA,MAAM,GAAA,uBAAU,IAAA,EAAK;AAErB,MAAA,IAAI,KAAK,QAAA,EAAU;AAClB,QAAA,IAAA,CAAK,MAAA,CAAO,KAAK,kDAAkD,CAAA;AAAA,MACpE,CAAA,MAAO;AACN,QAAA,OAAA,CAAQ,GAAA;AAAA,UACP,IAAA,CAAK,UAAA;AAAA,UACL,KAAK,SAAA,CAAU;AAAA,YACd,GAAG,GAAA,CAAI,IAAA;AAAA,YACP,oBAAA,EAAsB,UAAA,CAAW,GAAA,EAAK,CAAC,EAAE,OAAA,EAAQ;AAAA,YACjD,qBAAA,EAAuB,WAAW,OAAA,CAAQ,GAAA,EAAK,EAAE,CAAA,EAAG,CAAC,EAAE,OAAA;AAAQ,WAC/D,CAAA;AAAA,UACD;AAAA,YACC,OAAA,EAAS,WAAW,OAAA,CAAQ,GAAA,EAAK,EAAE,CAAA,EAAG,CAAC,EAAE,OAAA;AAAQ;AAClD,SACD;AAAA,MACD;AAEA,MAAA,OAAO,EAAE,IAAI,IAAA,EAAK;AAAA,IACnB,CAAA,MAAO;AACN,MAAA,OAAO,GAAA;AAAA,IACR;AAAA,EACD;AAAA,EAEA,MAAM,GAAA,GAAkE;AACvE,IAAA,IAAI,KAAK,QAAA,EAAU;AAClB,MAAA,IAAA,CAAK,MAAA,CAAO,KAAK,kDAAkD,CAAA;AAEnE,MAAA,OAAO;AAAA,QACN,EAAA,EAAI,IAAA;AAAA,QACJ,IAAA,EAAM;AAAA,OACP;AAAA,IACD;AAEA,IAAA,IAAI,KAAK,UAAA,EAAY;AACpB,MAAA,MAAM,MAAM,GAAI,CAAA;AAChB,MAAA,OAAO,MAAM,KAAK,GAAA,EAAI;AAAA,IACvB;AAEA,IAAA,MAAM,GAAA,GAAM,OAAA,CAAQ,GAAA,CAAI,IAAA,CAAK,UAAU,CAAA;AAEvC,IAAA,IAAI,CAAC,GAAA,EAAK;AACT,MAAA,OAAO;AAAA,QACN,EAAA,EAAI,IAAA;AAAA,QACJ,IAAA,EAAM;AAAA,OACP;AAAA,IACD;AAEA,IAAA,IAAI;AACH,MAAA,IAAI,GAAA,GAMA,IAAA,CAAK,KAAA,CAAM,GAAG,CAAA;AAElB,MAAA,IAAI,GAAA,uBAAU,IAAA,EAAK;AAEnB,MAAA,MAAM,oBAAA,GAAuB,IAAI,IAAA,CAAK,GAAA,CAAI,oBAAoB,CAAA;AAC9D,MAAA,MAAM,qBAAA,GAAwB,IAAI,IAAA,CAAK,GAAA,CAAI,qBAAqB,CAAA;AAGhE,MAAA,IAAI,OAAA,CAAQ,GAAA,EAAK,qBAAqB,CAAA,EAAG;AACxC,QAAA,IAAA,CAAK,MAAA,CAAO,KAAK,gCAAgC,CAAA;AAEjD,QAAA,OAAA,CAAQ,MAAA,CAAO,KAAK,UAAU,CAAA;AAE9B,QAAA,OAAO;AAAA,UACN,EAAA,EAAI,KAAA;AAAA,UACJ,KAAA,EAAO;AAAA,YACN,IAAA,EAAM,qBAAA;AAAA,YACN,OAAA,EAAS;AAAA;AACV,SACD;AAAA,MACD;AAGA,MAAA,IAAI,OAAA,CAAQ,GAAA,EAAK,oBAAoB,CAAA,EAAG;AACvC,QAAA,IAAA,CAAK,MAAA,CAAO,KAAK,uBAAuB,CAAA;AAExC,QAAA,IAAA,CAAK,UAAA,GAAa,IAAA;AAElB,QAAA,MAAM,MAAM,MAAM,IAAA,CAAK,WAAA,CAAY,cAAA,CAAe,IAAI,YAAY,CAAA;AAElE,QAAA,IAAA,CAAK,UAAA,GAAa,KAAA;AAElB,QAAA,IAAI,CAAC,IAAI,EAAA,EAAI;AACZ,UAAA,IAAA,CAAK,OAAO,KAAA,CAAM,CAAA,2BAAA,EAA8B,GAAA,CAAI,KAAA,CAAM,OAAO,CAAA,CAAE,CAAA;AAKnE,UAAA,IACC,GAAA,CAAI,KAAA,CAAM,IAAA,KAAS,mBAAA,IACnB,GAAA,CAAI,KAAA,CAAM,IAAA,KAAS,yBAAA,IACnB,GAAA,CAAI,KAAA,CAAM,IAAA,KAAS,yBAAA,EAClB;AACD,YAAA,OAAA,CAAQ,MAAA,CAAO,KAAK,UAAU,CAAA;AAE9B,YAAA,OAAO;AAAA,cACN,EAAA,EAAI,KAAA;AAAA,cACJ,OAAO,GAAA,CAAI;AAAA,aACZ;AAAA,UACD,CAAA,MAAO;AACN,YAAA,IAAA,CAAK,MAAA,CAAO,KAAK,uBAAuB,CAAA;AAExC,YAAA,OAAO;AAAA,cACN,EAAA,EAAI,IAAA;AAAA,cACJ,IAAA,EAAM;AAAA,aACP;AAAA,UACD;AAAA,QACD;AAEA,QAAA,IAAA,CAAK,MAAA,CAAO,QAAQ,oBAAoB,CAAA;AAExC,QAAA,GAAA,uBAAU,IAAA,EAAK;AACf,QAAA,GAAA,GAAM;AAAA,UACL,GAAG,GAAA;AAAA,UACH,GAAG,GAAA,CAAI,IAAA;AAAA,UACP,oBAAA,EAAsB,UAAA,CAAW,GAAA,EAAK,CAAC,EAAE,OAAA,EAAQ;AAAA,UACjD,qBAAA,EAAuB,WAAW,OAAA,CAAQ,GAAA,EAAK,EAAE,CAAA,EAAG,CAAC,EAAE,OAAA;AAAQ,SAChE;AAEA,QAAA,OAAA,CAAQ,IAAI,IAAA,CAAK,UAAA,EAAY,IAAA,CAAK,SAAA,CAAU,GAAG,CAAA,EAAG;AAAA,UACjD,OAAA,EAAS,WAAW,OAAA,CAAQ,GAAA,EAAK,EAAE,CAAA,EAAG,CAAC,EAAE,OAAA;AAAQ,SACjD,CAAA;AAAA,MACF;AAEA,MAAA,OAAO;AAAA,QACN,EAAA,EAAI,IAAA;AAAA,QACJ,IAAA,EAAM;AAAA,OACP;AAAA,IACD,CAAA,CAAA,MAAQ;AAEP,MAAA,OAAO;AAAA,QACN,EAAA,EAAI,KAAA;AAAA,QACJ,KAAA,EAAO;AAAA,UACN,IAAA,EAAM,cAAA;AAAA,UACN,OAAA,EAAS;AAAA;AACV,OACD;AAAA,IACD;AAAA,EACD;AAAA,EAEA,MAAM,OAAA,GAAsE;AAC3E,IAAA,IAAI,KAAK,QAAA,EAAU;AAClB,MAAA,IAAA,CAAK,MAAA,CAAO,KAAK,kDAAkD,CAAA;AAEnE,MAAA,OAAO;AAAA,QACN,EAAA,EAAI,IAAA;AAAA,QACJ,IAAA,EAAM;AAAA,OACP;AAAA,IACD;AAEA,IAAA,MAAM,GAAA,GAAM,OAAA,CAAQ,GAAA,CAAI,IAAA,CAAK,UAAU,CAAA;AAEvC,IAAA,IAAI,CAAC,GAAA,EAAK;AACT,MAAA,OAAO;AAAA,QACN,EAAA,EAAI,IAAA;AAAA,QACJ,IAAA,EAAM;AAAA,OACP;AAAA,IACD;AAEA,IAAA,IAAI;AACH,MAAA,IAAI,GAAA,GAMA,IAAA,CAAK,KAAA,CAAM,GAAG,CAAA;AAElB,MAAA,IAAI,GAAA,uBAAU,IAAA,EAAK;AAEnB,MAAA,IAAA,CAAK,MAAA,CAAO,KAAK,uBAAuB,CAAA;AAExC,MAAA,IAAA,CAAK,UAAA,GAAa,IAAA;AAElB,MAAA,MAAM,MAAM,MAAM,IAAA,CAAK,WAAA,CAAY,cAAA,CAAe,IAAI,YAAY,CAAA;AAElE,MAAA,IAAA,CAAK,UAAA,GAAa,KAAA;AAElB,MAAA,IAAI,CAAC,IAAI,EAAA,EAAI;AACZ,QAAA,IAAA,CAAK,OAAO,KAAA,CAAM,CAAA,2BAAA,EAA8B,GAAA,CAAI,KAAA,CAAM,OAAO,CAAA,CAAE,CAAA;AAKnE,QAAA,IACC,GAAA,CAAI,KAAA,CAAM,IAAA,KAAS,mBAAA,IACnB,GAAA,CAAI,KAAA,CAAM,IAAA,KAAS,yBAAA,IACnB,GAAA,CAAI,KAAA,CAAM,IAAA,KAAS,yBAAA,EAClB;AACD,UAAA,OAAA,CAAQ,MAAA,CAAO,KAAK,UAAU,CAAA;AAE9B,UAAA,OAAO;AAAA,YACN,EAAA,EAAI,KAAA;AAAA,YACJ,OAAO,GAAA,CAAI;AAAA,WACZ;AAAA,QACD,CAAA,MAAO;AACN,UAAA,IAAA,CAAK,MAAA,CAAO,KAAK,uBAAuB,CAAA;AAExC,UAAA,OAAO;AAAA,YACN,EAAA,EAAI,IAAA;AAAA,YACJ,IAAA,EAAM;AAAA,WACP;AAAA,QACD;AAAA,MACD;AAEA,MAAA,IAAA,CAAK,MAAA,CAAO,QAAQ,oBAAoB,CAAA;AAExC,MAAA,GAAA,uBAAU,IAAA,EAAK;AACf,MAAA,GAAA,GAAM;AAAA,QACL,GAAG,GAAA;AAAA,QACH,GAAG,GAAA,CAAI,IAAA;AAAA,QACP,oBAAA,EAAsB,UAAA,CAAW,GAAA,EAAK,CAAC,EAAE,OAAA,EAAQ;AAAA,QACjD,qBAAA,EAAuB,WAAW,OAAA,CAAQ,GAAA,EAAK,EAAE,CAAA,EAAG,CAAC,EAAE,OAAA;AAAQ,OAChE;AAEA,MAAA,OAAA,CAAQ,IAAI,IAAA,CAAK,UAAA,EAAY,IAAA,CAAK,SAAA,CAAU,GAAG,CAAA,EAAG;AAAA,QACjD,OAAA,EAAS,WAAW,OAAA,CAAQ,GAAA,EAAK,EAAE,CAAA,EAAG,CAAC,EAAE,OAAA;AAAQ,OACjD,CAAA;AAED,MAAA,OAAO;AAAA,QACN,EAAA,EAAI,IAAA;AAAA,QACJ,IAAA,EAAM;AAAA,OACP;AAAA,IACD,CAAA,CAAA,MAAQ;AAEP,MAAA,OAAO;AAAA,QACN,EAAA,EAAI,KAAA;AAAA,QACJ,KAAA,EAAO;AAAA,UACN,IAAA,EAAM,cAAA;AAAA,UACN,OAAA,EAAS;AAAA;AACV,OACD;AAAA,IACD;AAAA,EACD;AAAA,EAEA,MAAM,OAAA,GAAU;AACf,IAAA,IAAI,KAAK,QAAA,EAAU;AAClB,MAAA,IAAA,CAAK,MAAA,CAAO,KAAK,kDAAkD,CAAA;AACnE,MAAA;AAAA,IACD;AAEA,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,GAAA,EAAI;AAE3B,IAAA,IAAI,GAAA,CAAI,MAAM,WAAA,EAAa;AAC1B,MAAA,MAAM,IAAA,CAAK,WAAA,CAAY,cAAA,CAAe,GAAA,CAAI,KAAK,WAAW,CAAA;AAAA,IAC3D;AAEA,IAAA,OAAA,CAAQ,MAAA,CAAO,KAAK,UAAU,CAAA;AAAA,EAC/B;AAAA,EAEA,MAAM,MAAA,GAA2B;AAChC,IAAA,IAAI,KAAK,QAAA,EAAU;AAClB,MAAA,IAAA,CAAK,MAAA,CAAO,KAAK,kDAAkD,CAAA;AACnE,MAAA,OAAO,IAAA;AAAA,IACR;AAEA,IAAA,MAAM,CAAA,GAAI,MAAM,IAAA,CAAK,GAAA,EAAI;AAEzB,IAAA,IAAI,CAAA,CAAE,KAAA,EAAO,IAAA,KAAS,mBAAA,EAAqB,OAAO,KAAA;AAClD,IAAA,IAAI,CAAA,CAAE,KAAA,EAAO,IAAA,KAAS,qBAAA,EAAuB,OAAO,KAAA;AACpD,IAAA,IAAI,CAAA,CAAE,KAAA,EAAO,IAAA,KAAS,yBAAA,EAA2B,OAAO,KAAA;AAGxD,IAAA,IAAI,CAAC,CAAA,CAAE,IAAA,EAAM,OAAO,IAAA;AAEpB,IAAA,MAAM,IAAI,MAAM,IAAA,CAAK,YAAY,aAAA,CAAc,CAAA,CAAE,KAAK,WAAW,CAAA;AAGjE,IAAA,IAAI,CAAC,CAAA,EAAG;AACP,MAAA,OAAA,CAAQ,MAAA,CAAO,KAAK,UAAU,CAAA;AAAA,IAC/B;AAEA,IAAA,OAAO,CAAA;AAAA,EACR;AAAA,EAEA,IAAI,MAAA,GAAS;AACZ,IAAA,IAAI,KAAK,QAAA,EAAU;AAClB,MAAA,IAAA,CAAK,MAAA,CAAO,KAAK,kDAAkD,CAAA;AACnE,MAAA,OAAO,KAAA;AAAA,IACR;AAEA,IAAA,OAAO,YAAA,CAAa,OAAA,CAAQ,IAAA,CAAK,kBAAkB,CAAA,KAAM,MAAA;AAAA,EAC1D;AAAA,EAEA,IAAI,SAAA,GAAY;AACf,IAAA,IAAI,KAAK,QAAA,EAAU;AAClB,MAAA,IAAA,CAAK,MAAA,CAAO,KAAK,gDAAgD,CAAA;AACjE,MAAA,OAAO,KAAA;AAAA,IACR;AAEA,IAAA,OAAO,YAAA,CAAa,OAAA,CAAQ,IAAA,CAAK,kBAAkB,CAAA,KAAM,SAAA;AAAA,EAC1D;AAAA,EAEA,IAAY,QAAA,GAAW;AACtB,IAAA,OAAO,OAAO,MAAA,KAAW,WAAA;AAAA,EAC1B;AACD,CAAA;;;ACjiBO,SAAS,QAAW,GAAA,EAA0B;AACpD,EAAA,MAAM,SAA8B,EAAC;AAErC,EAAA,KAAA,MAAW,KAAK,GAAA,EAAK;AACpB,IAAA,MAAM,CAAA,GAAI,IAAI,CAAC,CAAA;AAEf,IAAA,IAAI,MAAM,IAAA,EAAM;AAChB,IAAA,IAAI,MAAM,MAAA,EAAW;AAErB,IAAA,IAAI,aAAA,CAAc,CAAC,CAAA,EAAG;AACrB,MAAA,MAAA,CAAO,CAAC,CAAA,GAAI,OAAA,CAAQ,CAAC,CAAA;AACrB,MAAA;AAAA,IACD;AAEA,IAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,CAAC,CAAA,EAAG;AACrB,MAAA,MAAA,CAAO,CAAC,CAAA,GAAI,CAAA,CAAE,GAAA,CAAI,CAAC,CAAA,KAAM;AACxB,QAAA,IAAI,aAAA,CAAc,CAAC,CAAA,EAAG;AACrB,UAAA,OAAO,QAAQ,CAAC,CAAA;AAAA,QACjB,CAAA,MAAO;AACN,UAAA,OAAO,CAAA;AAAA,QACR;AAAA,MACD,CAAC,CAAA;AAED,MAAA;AAAA,IACD;AAEA,IAAA,MAAA,CAAO,CAAC,CAAA,GAAI,CAAA;AAAA,EACb;AAEA,EAAA,OAAO,MAAA;AACR;;;AChCO,SAAS,SAAA,CACf,WACA,OAAA,EACoB;AACpB,EAAA,IAAI,CAAC,SAAA,EAAW;AACf,IAAA,MAAM,KAAA,GAAQ,IAAI,KAAA,EAAM;AACxB,IAAA,KAAA,CAAM,IAAA,GAAO,qBAAA;AACb,IAAA,KAAA,CAAM,UAAU,OAAA,IAAW,kBAAA;AAC3B,IAAA,KAAA,CAAM,iBAAA,GAAoB,OAAO,SAAS,CAAA;AAC1C,IAAA,MAAM,KAAA;AAAA,EACP;AACD;;;ACPO,SAAS,YAAA,CAAa,OAAoB,QAAA,EAAmB;AACnE,EAAA,IAAI,OAAO,UAAU,QAAA,EAAU;AAC9B,IAAA,IAAI,CAAC,MAAA,CAAO,KAAA,CAAM,KAAK,GAAG,OAAO,KAAA;AAAA,EAClC;AAEA,EAAA,IAAI,OAAO,UAAU,QAAA,EAAU;AAC9B,IAAA,MAAM,MAAA,GAAS,MAAA,CAAO,UAAA,CAAW,KAAK,CAAA;AAEtC,IAAA,IAAI,CAAC,MAAA,CAAO,KAAA,CAAM,MAAM,CAAA,EAAG;AAC1B,MAAA,OAAO,MAAA;AAAA,IACR;AAAA,EACD;AAEA,EAAA,OAAO,QAAA;AACR;;;ACVA,IAAM,cAAA,GAAiB,GAAA,CAAI,QAAA,CAAS,CAAA,EAAG,GAAG,CAAA;AAEnC,IAAM,cAAN,MAAkB;AAAA,EACxB,IAAI,SAAA,GAAY;AACf,IAAA,OAAO;AAAA,MACN,IAAA,EAAM,IAAA,CAAK,IAAA,CAAK,IAAA,CAAK,IAAI,CAAA;AAAA,MACzB,QAAA,EAAU,IAAA,CAAK,QAAA,CAAS,IAAA,CAAK,IAAI,CAAA;AAAA,MACjC,OAAA,EAAS,IAAA,CAAK,OAAA,CAAQ,IAAA,CAAK,IAAI,CAAA;AAAA,MAC/B,MAAA,EAAQ,IAAA,CAAK,MAAA,CAAO,IAAA,CAAK,IAAI,CAAA;AAAA,MAC7B,mBAAA,EAAqB,IAAA,CAAK,mBAAA,CAAoB,IAAA,CAAK,IAAI,CAAA;AAAA,MACvD,iBAAA,EAAmB,IAAA,CAAK,iBAAA,CAAkB,IAAA,CAAK,IAAI,CAAA;AAAA,MACnD,YAAA,EAAc,IAAA,CAAK,YAAA,CAAa,IAAA,CAAK,IAAI,CAAA;AAAA,MACzC,gBAAA,EAAkB,IAAA,CAAK,gBAAA,CAAiB,IAAA,CAAK,IAAI,CAAA;AAAA,MACjD,OAAA,EAAS,IAAA,CAAK,OAAA,CAAQ,IAAA,CAAK,IAAI,CAAA;AAAA,MAC/B,iBAAA,EAAmB,IAAA,CAAK,iBAAA,CAAkB,IAAA,CAAK,IAAI,CAAA;AAAA,MACnD,aAAA,EAAe,IAAA,CAAK,aAAA,CAAc,IAAA,CAAK,IAAI,CAAA;AAAA,MAC3C,SAAA,EAAW,IAAA,CAAK,SAAA,CAAU,IAAA,CAAK,IAAI,CAAA;AAAA,MACnC,eAAA,EAAiB,IAAA,CAAK,eAAA,CAAgB,IAAA,CAAK,IAAI,CAAA;AAAA,MAC/C,iBAAA,EAAmB,IAAA,CAAK,iBAAA,CAAkB,IAAA,CAAK,IAAI,CAAA;AAAA,MACnD,IAAA,EAAM,IAAA,CAAK,IAAA,CAAK,IAAA,CAAK,IAAI,CAAA;AAAA,MACzB,WAAA,EAAa,IAAA,CAAK,WAAA,CAAY,IAAA,CAAK,IAAI,CAAA;AAAA,MACvC,KAAA,EAAO,IAAA,CAAK,KAAA,CAAM,IAAA,CAAK,IAAI,CAAA;AAAA,MAC3B,QAAA,EAAU,IAAA,CAAK,QAAA,CAAS,IAAA,CAAK,IAAI,CAAA;AAAA,MACjC,KAAA,EAAO,IAAA,CAAK,KAAA,CAAM,IAAA,CAAK,IAAI,CAAA;AAAA,MAC3B,aAAA,EAAe,IAAA,CAAK,aAAA,CAAc,IAAA,CAAK,IAAI,CAAA;AAAA,MAC3C,wBAAA,EAA0B,IAAA,CAAK,wBAAA,CAAyB,IAAA,CAAK,IAAI,CAAA;AAAA,MACjE,IAAA,EAAM,IAAA,CAAK,IAAA,CAAK,IAAA,CAAK,IAAI,CAAA;AAAA,MACzB,YAAA,EAAc,IAAA,CAAK,YAAA,CAAa,IAAA,CAAK,IAAI,CAAA;AAAA,MACzC,uBAAA,EAAyB,IAAA,CAAK,uBAAA,CAAwB,IAAA,CAAK,IAAI,CAAA;AAAA,MAC/D,MAAA,EAAQ,IAAA,CAAK,MAAA,CAAO,IAAA,CAAK,IAAI,CAAA;AAAA,MAC7B,wBAAA,EAA0B,IAAA,CAAK,wBAAA,CAAyB,IAAA,CAAK,IAAI,CAAA;AAAA,MACjE,cAAA,EAAgB,IAAA,CAAK,cAAA,CAAe,IAAA,CAAK,IAAI,CAAA;AAAA,MAC7C,QAAA,EAAU,IAAA,CAAK,QAAA,CAAS,IAAA,CAAK,IAAI,CAAA;AAAA,MACjC,kBAAA,EAAoB,IAAA,CAAK,kBAAA,CAAmB,IAAA,CAAK,IAAI,CAAA;AAAA,MACrD,cAAA,EAAgB,IAAA,CAAK,cAAA,CAAe,IAAA,CAAK,IAAI,CAAA;AAAA,MAC7C,kBAAA,EAAoB,IAAA,CAAK,kBAAA,CAAmB,IAAA,CAAK,IAAI,CAAA;AAAA,MACrD,eAAA,EAAiB,IAAA,CAAK,eAAA,CAAgB,IAAA,CAAK,IAAI,CAAA;AAAA,MAC/C,OAAA,EAAS,IAAA,CAAK,OAAA,CAAQ,IAAA,CAAK,IAAI,CAAA;AAAA,MAC/B,YAAA,EAAc,IAAA,CAAK,YAAA,CAAa,IAAA,CAAK,IAAI,CAAA;AAAA,MACzC,WAAA,EAAa,IAAA,CAAK,WAAA,CAAY,IAAA,CAAK,IAAI,CAAA;AAAA,MACvC,KAAA,EAAO,IAAA,CAAK,KAAA,CAAM,IAAA,CAAK,IAAI,CAAA;AAAA,MAC3B,MAAA,EAAQ,IAAA,CAAK,MAAA,CAAO,IAAA,CAAK,IAAI,CAAA;AAAA,MAC7B,QAAA,EAAU,IAAA,CAAK,QAAA,CAAS,IAAA,CAAK,IAAI,CAAA;AAAA,MACjC,cAAA,EAAgB,IAAA,CAAK,cAAA,CAAe,IAAA,CAAK,IAAI,CAAA;AAAA,MAC7C,WAAA,EAAa,IAAA,CAAK,WAAA,CAAY,IAAA,CAAK,IAAI,CAAA;AAAA,MACvC,mBAAA,EAAqB,IAAA,CAAK,mBAAA,CAAoB,IAAA,CAAK,IAAI,CAAA;AAAA,MACvD,mBAAA,EAAqB,IAAA,CAAK,mBAAA,CAAoB,IAAA,CAAK,IAAI,CAAA;AAAA,MACvD,8BAAA,EACC,IAAA,CAAK,8BAAA,CAA+B,IAAA,CAAK,IAAI,CAAA;AAAA,MAC9C,kBAAA,EAAoB,IAAA,CAAK,kBAAA,CAAmB,IAAA,CAAK,IAAI,CAAA;AAAA,MACrD,yBAAA,EAA2B,IAAA,CAAK,yBAAA,CAA0B,IAAA,CAAK,IAAI,CAAA;AAAA,MACnE,YAAA,EAAc,IAAA,CAAK,YAAA,CAAa,IAAA,CAAK,IAAI,CAAA;AAAA,MACzC,kBAAA,EAAoB,IAAA,CAAK,kBAAA,CAAmB,IAAA,CAAK,IAAI,CAAA;AAAA,MACrD,mBAAA,EAAqB,IAAA,CAAK,aAAA,CAAc,IAAA,CAAK,IAAI;AAAA,KAClD;AAAA,EACD;AAAA,EAEQ,KAAK,IAAA,EAAoC;AAChD,IAAA,MAAM,CAAA,GAAmB;AAAA,MACxB,IAAI,IAAA,CAAK,EAAA;AAAA,MACT,MAAM,IAAA,CAAK,IAAA;AAAA,MACX,IAAA,EAAM,KAAK,IAAA,IAAQ,MAAA;AAAA,MACnB,MAAA,EAAQ,KAAK,MAAA,CAAO;AAAA,KACrB;AAEA,IAAA,OAAO,QAAQ,CAAC,CAAA;AAAA,EACjB;AAAA;AAAA,EAGQ,SAAS,IAAA,EAA4C;AAC5D,IAAA,OAAO;AAAA,MACN,UAAU,IAAA,CAAK,QAAA;AAAA,MACf,UAAU,IAAA,CAAK,QAAA;AAAA,MACf,eAAA,EAAiB;AAAA,QAChB,yBAAA,EAA2B,YAAA,CAAa,IAAA,CAAK,yBAAyB,CAAA;AAAA,QACtE,sCACC,IAAA,CAAK,oCAAA;AAAA,QACN,cAAA,EAAgB;AAAA,UACf,IAAA,EAAM;AAAA,YACL,cAAA,EACC,IAAA,CAAK,0BAAA,EAA4B,cAAA,IAAkB,KAAA;AAAA,YACpD,UAAA,EAAY,IAAA,CAAK,0BAAA,EAA4B,UAAA,IAAc,KAAA;AAAA,YAC3D,UAAA,EAAY,IAAA,CAAK,0BAAA,EAA4B,UAAA,IAAc,KAAA;AAAA,YAC3D,gBAAA,EACC,IAAA,CAAK,0BAAA,EAA4B,gBAAA,IAAoB,KAAA;AAAA,YACtD,aAAA,EAAe,YAAA;AAAA,cACd,KAAK,0BAAA,EAA4B;AAAA,aAClC;AAAA,YACA,aAAA,EAAe,YAAA;AAAA,cACd,KAAK,0BAAA,EAA4B;AAAA;AAClC,WACD;AAAA,UACA,KAAA,EAAO;AAAA,YACN,cAAA,EACC,IAAA,CAAK,2BAAA,EAA6B,cAAA,IAAkB,KAAA;AAAA,YACrD,UAAA,EAAY,IAAA,CAAK,2BAAA,EAA6B,UAAA,IAAc,KAAA;AAAA,YAC5D,UAAA,EAAY,IAAA,CAAK,2BAAA,EAA6B,UAAA,IAAc,KAAA;AAAA,YAC5D,gBAAA,EACC,IAAA,CAAK,2BAAA,EAA6B,gBAAA,IAAoB,KAAA;AAAA,YACvD,aAAA,EAAe,YAAA;AAAA,cACd,KAAK,2BAAA,EAA6B;AAAA,aACnC;AAAA,YACA,aAAA,EAAe,YAAA;AAAA,cACd,KAAK,2BAAA,EAA6B;AAAA;AACnC,WACD;AAAA,UACA,WAAA,EAAa;AAAA,YACZ,cAAA,EACC,IAAA,CAAK,iCAAA,EAAmC,cAAA,IAAkB,KAAA;AAAA,YAC3D,UAAA,EACC,IAAA,CAAK,iCAAA,EAAmC,UAAA,IAAc,KAAA;AAAA,YACvD,UAAA,EACC,IAAA,CAAK,iCAAA,EAAmC,UAAA,IAAc,KAAA;AAAA,YACvD,gBAAA,EACC,IAAA,CAAK,iCAAA,EAAmC,gBAAA,IAAoB,KAAA;AAAA,YAC7D,aAAA,EAAe,YAAA;AAAA,cACd,KAAK,iCAAA,EAAmC;AAAA,aACzC;AAAA,YACA,aAAA,EAAe,YAAA;AAAA,cACd,KAAK,iCAAA,EAAmC;AAAA;AACzC,WACD;AAAA,UACA,QAAA,EAAU;AAAA,YACT,cAAA,EACC,IAAA,CAAK,8BAAA,EAAgC,cAAA,IAAkB,KAAA;AAAA,YACxD,UAAA,EACC,IAAA,CAAK,8BAAA,EAAgC,UAAA,IAAc,KAAA;AAAA,YACpD,UAAA,EACC,IAAA,CAAK,8BAAA,EAAgC,UAAA,IAAc,KAAA;AAAA,YACpD,gBAAA,EACC,IAAA,CAAK,8BAAA,EAAgC,gBAAA,IAAoB,KAAA;AAAA,YAC1D,aAAA,EAAe,YAAA;AAAA,cACd,KAAK,8BAAA,EAAgC;AAAA,aACtC;AAAA,YACA,aAAA,EAAe,YAAA;AAAA,cACd,KAAK,8BAAA,EAAgC;AAAA;AACtC,WACD;AAAA,UACA,UAAA,EAAY;AAAA,YACX,cAAA,EACC,IAAA,CAAK,gCAAA,EAAkC,cAAA,IAAkB,KAAA;AAAA,YAC1D,UAAA,EACC,IAAA,CAAK,gCAAA,EAAkC,UAAA,IAAc,KAAA;AAAA,YACtD,UAAA,EACC,IAAA,CAAK,gCAAA,EAAkC,UAAA,IAAc,KAAA;AAAA,YACtD,gBAAA,EACC,IAAA,CAAK,gCAAA,EAAkC,gBAAA,IAAoB,KAAA;AAAA,YAC5D,aAAA,EAAe,YAAA;AAAA,cACd,KAAK,gCAAA,EAAkC;AAAA,aACxC;AAAA,YACA,aAAA,EAAe,YAAA;AAAA,cACd,KAAK,gCAAA,EAAkC;AAAA;AACxC,WACD;AAAA,UACA,UAAA,EAAY;AAAA,YACX,cAAA,EACC,IAAA,CAAK,gCAAA,EAAkC,cAAA,IAAkB,KAAA;AAAA,YAC1D,UAAA,EACC,IAAA,CAAK,gCAAA,EAAkC,UAAA,IAAc,KAAA;AAAA,YACtD,UAAA,EACC,IAAA,CAAK,gCAAA,EAAkC,UAAA,IAAc,KAAA;AAAA,YACtD,gBAAA,EACC,IAAA,CAAK,gCAAA,EAAkC,gBAAA,IAAoB,KAAA;AAAA,YAC5D,aAAA,EAAe,YAAA;AAAA,cACd,KAAK,gCAAA,EAAkC;AAAA,aACxC;AAAA,YACA,aAAA,EAAe,YAAA;AAAA,cACd,KAAK,gCAAA,EAAkC;AAAA;AACxC,WACD;AAAA,UACA,aAAA,EAAe;AAAA,YACd,cAAA,EACC,IAAA,CAAK,mCAAA,EAAqC,cAAA,IAAkB,KAAA;AAAA,YAC7D,UAAA,EACC,IAAA,CAAK,mCAAA,EAAqC,UAAA,IAAc,KAAA;AAAA,YACzD,UAAA,EACC,IAAA,CAAK,mCAAA,EAAqC,UAAA,IAAc,KAAA;AAAA,YACzD,gBAAA,EACC,IAAA,CAAK,mCAAA,EAAqC,gBAAA,IAC1C,KAAA;AAAA,YACD,aAAA,EAAe,YAAA;AAAA,cACd,KAAK,mCAAA,EAAqC;AAAA,aAC3C;AAAA,YACA,aAAA,EAAe,YAAA;AAAA,cACd,KAAK,mCAAA,EAAqC;AAAA;AAC3C,WACD;AAAA,UACA,IAAA,EAAM;AAAA,YACL,cAAA,EACC,IAAA,CAAK,0BAAA,EAA4B,cAAA,IAAkB,KAAA;AAAA,YACpD,UAAA,EAAY,IAAA,CAAK,0BAAA,EAA4B,UAAA,IAAc,KAAA;AAAA,YAC3D,UAAA,EAAY,IAAA,CAAK,0BAAA,EAA4B,UAAA,IAAc,KAAA;AAAA,YAC3D,gBAAA,EACC,IAAA,CAAK,0BAAA,EAA4B,gBAAA,IAAoB,KAAA;AAAA,YACtD,aAAA,EAAe,YAAA;AAAA,cACd,KAAK,0BAAA,EAA4B;AAAA,aAClC;AAAA,YACA,aAAA,EAAe,YAAA;AAAA,cACd,KAAK,0BAAA,EAA4B;AAAA;AAClC,WACD;AAAA,UACA,OAAA,EAAS;AAAA,YACR,cAAA,EACC,IAAA,CAAK,6BAAA,EAA+B,cAAA,IAAkB,KAAA;AAAA,YACvD,UAAA,EAAY,IAAA,CAAK,6BAAA,EAA+B,UAAA,IAAc,KAAA;AAAA,YAC9D,UAAA,EAAY,IAAA,CAAK,6BAAA,EAA+B,UAAA,IAAc,KAAA;AAAA,YAC9D,gBAAA,EACC,IAAA,CAAK,6BAAA,EAA+B,gBAAA,IAAoB,KAAA;AAAA,YACzD,aAAA,EAAe,YAAA;AAAA,cACd,KAAK,6BAAA,EAA+B;AAAA,aACrC;AAAA,YACA,aAAA,EAAe,YAAA;AAAA,cACd,KAAK,6BAAA,EAA+B;AAAA;AACrC,WACD;AAAA,UACA,UAAA,EAAY;AAAA,YACX,cAAA,EACC,IAAA,CAAK,gCAAA,EAAkC,cAAA,IAAkB,KAAA;AAAA,YAC1D,UAAA,EACC,IAAA,CAAK,gCAAA,EAAkC,UAAA,IAAc,KAAA;AAAA,YACtD,UAAA,EACC,IAAA,CAAK,gCAAA,EAAkC,UAAA,IAAc,KAAA;AAAA,YACtD,gBAAA,EACC,IAAA,CAAK,gCAAA,EAAkC,gBAAA,IAAoB,KAAA;AAAA,YAC5D,aAAA,EAAe,YAAA;AAAA,cACd,KAAK,gCAAA,EAAkC;AAAA,aACxC;AAAA,YACA,aAAA,EAAe,YAAA;AAAA,cACd,KAAK,gCAAA,EAAkC;AAAA;AACxC,WACD;AAAA,UACA,UAAA,EAAY;AAAA,YACX,cAAA,EACC,IAAA,CAAK,gCAAA,EAAkC,cAAA,IAAkB,KAAA;AAAA,YAC1D,UAAA,EACC,IAAA,CAAK,gCAAA,EAAkC,UAAA,IAAc,KAAA;AAAA,YACtD,UAAA,EACC,IAAA,CAAK,gCAAA,EAAkC,UAAA,IAAc,KAAA;AAAA,YACtD,gBAAA,EACC,IAAA,CAAK,gCAAA,EAAkC,gBAAA,IAAoB,KAAA;AAAA,YAC5D,aAAA,EAAe,YAAA;AAAA,cACd,KAAK,gCAAA,EAAkC;AAAA,aACxC;AAAA,YACA,aAAA,EAAe,YAAA;AAAA,cACd,KAAK,gCAAA,EAAkC;AAAA;AACxC,WACD;AAAA,UACA,IAAA,EAAM;AAAA,YACL,cAAA,EACC,IAAA,CAAK,0BAAA,EAA4B,cAAA,IAAkB,KAAA;AAAA,YACpD,UAAA,EAAY,IAAA,CAAK,0BAAA,EAA4B,UAAA,IAAc,KAAA;AAAA,YAC3D,UAAA,EAAY,IAAA,CAAK,0BAAA,EAA4B,UAAA,IAAc,KAAA;AAAA,YAC3D,gBAAA,EACC,IAAA,CAAK,0BAAA,EAA4B,gBAAA,IAAoB,KAAA;AAAA,YACtD,aAAA,EAAe,YAAA;AAAA,cACd,KAAK,0BAAA,EAA4B;AAAA,aAClC;AAAA,YACA,aAAA,EAAe,YAAA;AAAA,cACd,KAAK,0BAAA,EAA4B;AAAA;AAClC,WACD;AAAA,UACA,UAAA,EAAY;AAAA,YACX,cAAA,EACC,IAAA,CAAK,gCAAA,EAAkC,cAAA,IAAkB,KAAA;AAAA,YAC1D,UAAA,EACC,IAAA,CAAK,gCAAA,EAAkC,UAAA,IAAc,KAAA;AAAA,YACtD,UAAA,EACC,IAAA,CAAK,gCAAA,EAAkC,UAAA,IAAc,KAAA;AAAA,YACtD,gBAAA,EACC,IAAA,CAAK,gCAAA,EAAkC,gBAAA,IAAoB,KAAA;AAAA,YAC5D,aAAA,EAAe,YAAA;AAAA,cACd,KAAK,gCAAA,EAAkC;AAAA,aACxC;AAAA,YACA,aAAA,EAAe,YAAA;AAAA,cACd,KAAK,gCAAA,EAAkC;AAAA,aACxC;AAAA,YACA,eAAA,EACC,KAAK,gCAAA,EAAkC,eAAA;AAAA,YACxC,iBAAA,EACC,KAAK,gCAAA,EAAkC,iBAAA;AAAA,YACxC,YAAA,EAAc,KAAK,gCAAA,EAAkC;AAAA,WACtD;AAAA,UACA,SAAA,EAAW;AAAA,YACV,cAAA,EACC,IAAA,CAAK,+BAAA,EAAiC,cAAA,IAAkB,KAAA;AAAA,YACzD,UAAA,EACC,IAAA,CAAK,+BAAA,EAAiC,UAAA,IAAc,KAAA;AAAA,YACrD,UAAA,EACC,IAAA,CAAK,+BAAA,EAAiC,UAAA,IAAc,KAAA;AAAA,YACrD,gBAAA,EACC,IAAA,CAAK,+BAAA,EAAiC,gBAAA,IAAoB,KAAA;AAAA,YAC3D,aAAA,EAAe,YAAA;AAAA,cACd,KAAK,+BAAA,EAAiC;AAAA,aACvC;AAAA,YACA,aAAA,EAAe,YAAA;AAAA,cACd,KAAK,+BAAA,EAAiC;AAAA,aACvC;AAAA,YACA,KAAA,EAAO,KAAK,+BAAA,EAAiC,KAAA;AAAA,YAC7C,WAAW,CAAC,IAAA,CAAK,+BAAA,EAAiC,SAAA,GAC/C,OACC,IAAA,CAAK,IAAA;AAAA,cACN,KAAK,+BAAA,CAAgC;AAAA;AACtC;AACH,SACD;AAAA,QACA,iBAAA,EAAmB;AAAA,UAClB,IAAA,EAAM;AAAA,YACL,cAAA,EACC,IAAA,CAAK,6BAAA,EAA+B,cAAA,IAAkB,KAAA;AAAA,YACvD,UAAA,EAAY,IAAA,CAAK,6BAAA,EAA+B,UAAA,IAAc,KAAA;AAAA,YAC9D,UAAA,EAAY,IAAA,CAAK,6BAAA,EAA+B,UAAA,IAAc,KAAA;AAAA,YAC9D,gBAAA,EACC,IAAA,CAAK,6BAAA,EAA+B,gBAAA,IAAoB,KAAA;AAAA,YACzD,aAAA,EAAe,YAAA;AAAA,cACd,KAAK,6BAAA,EAA+B;AAAA,aACrC;AAAA,YACA,aAAA,EAAe,YAAA;AAAA,cACd,KAAK,6BAAA,EAA+B;AAAA;AACrC,WACD;AAAA,UACA,KAAA,EAAO;AAAA,YACN,cAAA,EACC,IAAA,CAAK,8BAAA,EAAgC,cAAA,IAAkB,KAAA;AAAA,YACxD,UAAA,EACC,IAAA,CAAK,8BAAA,EAAgC,UAAA,IAAc,KAAA;AAAA,YACpD,UAAA,EACC,IAAA,CAAK,8BAAA,EAAgC,UAAA,IAAc,KAAA;AAAA,YACpD,gBAAA,EACC,IAAA,CAAK,8BAAA,EAAgC,gBAAA,IAAoB,KAAA;AAAA,YAC1D,aAAA,EAAe,YAAA;AAAA,cACd,KAAK,8BAAA,EAAgC;AAAA,aACtC;AAAA,YACA,aAAA,EAAe,YAAA;AAAA,cACd,KAAK,8BAAA,EAAgC,aAAA;AAAA,cACrC;AAAA;AACD,WACD;AAAA,UACA,mBAAA,EAAqB;AAAA,YACpB,cAAA,EACC,IAAA,CAAK,4CAAA,EACF,cAAA,IAAkB,KAAA;AAAA,YACtB,UAAA,EACC,IAAA,CAAK,4CAAA,EAA8C,UAAA,IACnD,KAAA;AAAA,YACD,UAAA,EACC,IAAA,CAAK,4CAAA,EAA8C,UAAA,IACnD,KAAA;AAAA,YACD,gBAAA,EACC,IAAA,CAAK,4CAAA,EACF,gBAAA,IAAoB,KAAA;AAAA,YACxB,aAAA,EAAe,YAAA;AAAA,cACd,KAAK,4CAAA,EAA8C;AAAA,aACpD;AAAA,YACA,aAAA,EAAe,YAAA;AAAA,cACd,KAAK,4CAAA,EAA8C,aAAA;AAAA,cACnD;AAAA;AACD,WACD;AAAA,UACA,IAAA,EAAM;AAAA,YACL,cAAA,EACC,IAAA,CAAK,6BAAA,EAA+B,cAAA,IAAkB,KAAA;AAAA,YACvD,UAAA,EAAY,IAAA,CAAK,6BAAA,EAA+B,UAAA,IAAc,KAAA;AAAA,YAC9D,UAAA,EAAY,IAAA,CAAK,6BAAA,EAA+B,UAAA,IAAc,KAAA;AAAA,YAC9D,gBAAA,EACC,IAAA,CAAK,6BAAA,EAA+B,gBAAA,IAAoB,KAAA;AAAA,YACzD,aAAA,EAAe,YAAA;AAAA,cACd,KAAK,6BAAA,EAA+B;AAAA,aACrC;AAAA,YACA,aAAA,EAAe,YAAA;AAAA,cACd,KAAK,6BAAA,EAA+B;AAAA;AACrC,WACD;AAAA,UACA,OAAA,EAAS;AAAA,YACR,cAAA,EACC,IAAA,CAAK,gCAAA,EAAkC,cAAA,IAAkB,KAAA;AAAA,YAC1D,UAAA,EACC,IAAA,CAAK,gCAAA,EAAkC,UAAA,IAAc,KAAA;AAAA,YACtD,UAAA,EACC,IAAA,CAAK,gCAAA,EAAkC,UAAA,IAAc,KAAA;AAAA,YACtD,gBAAA,EACC,IAAA,CAAK,gCAAA,EAAkC,gBAAA,IAAoB,KAAA;AAAA,YAC5D,aAAA,EAAe,YAAA;AAAA,cACd,KAAK,gCAAA,EAAkC;AAAA,aACxC;AAAA,YACA,aAAA,EAAe,YAAA;AAAA,cACd,KAAK,gCAAA,EAAkC,aAAA;AAAA,cACvC;AAAA;AACD,WACD;AAAA,UACA,QAAA,EAAU;AAAA,YACT,cAAA,EACC,IAAA,CAAK,iCAAA,EAAmC,cAAA,IAAkB,KAAA;AAAA,YAC3D,UAAA,EACC,IAAA,CAAK,iCAAA,EAAmC,UAAA,IAAc,KAAA;AAAA,YACvD,UAAA,EACC,IAAA,CAAK,iCAAA,EAAmC,UAAA,IAAc,KAAA;AAAA,YACvD,gBAAA,EACC,IAAA,CAAK,iCAAA,EAAmC,gBAAA,IAAoB,KAAA;AAAA,YAC7D,aAAA,EAAe,YAAA;AAAA,cACd,KAAK,iCAAA,EAAmC;AAAA,aACzC;AAAA,YACA,aAAA,EAAe,YAAA;AAAA,cACd,KAAK,iCAAA,EAAmC,aAAA;AAAA,cACxC;AAAA;AACD,WACD;AAAA,UACA,UAAA,EAAY;AAAA,YACX,cAAA,EACC,IAAA,CAAK,mCAAA,EAAqC,cAAA,IAAkB,KAAA;AAAA,YAC7D,UAAA,EACC,IAAA,CAAK,mCAAA,EAAqC,UAAA,IAAc,KAAA;AAAA,YACzD,UAAA,EACC,IAAA,CAAK,mCAAA,EAAqC,UAAA,IAAc,KAAA;AAAA,YACzD,gBAAA,EACC,IAAA,CAAK,mCAAA,EAAqC,gBAAA,IAC1C,KAAA;AAAA,YACD,aAAA,EAAe,YAAA;AAAA,cACd,KAAK,mCAAA,EAAqC;AAAA,aAC3C;AAAA,YACA,aAAA,EAAe,YAAA;AAAA,cACd,KAAK,mCAAA,EAAqC,aAAA;AAAA,cAC1C;AAAA;AACD,WACD;AAAA,UACA,SAAA,EAAW;AAAA,YACV,cAAA,EACC,IAAA,CAAK,kCAAA,EAAoC,cAAA,IAAkB,KAAA;AAAA,YAC5D,UAAA,EACC,IAAA,CAAK,kCAAA,EAAoC,UAAA,IAAc,KAAA;AAAA,YACxD,UAAA,EACC,IAAA,CAAK,kCAAA,EAAoC,UAAA,IAAc,KAAA;AAAA,YACxD,gBAAA,EACC,IAAA,CAAK,kCAAA,EAAoC,gBAAA,IACzC,KAAA;AAAA,YACD,aAAA,EAAe,YAAA;AAAA,cACd,KAAK,kCAAA,EAAoC;AAAA,aAC1C;AAAA,YACA,aAAA,EAAe,YAAA;AAAA,cACd,KAAK,kCAAA,EAAoC,aAAA;AAAA,cACzC;AAAA;AACD;AACD;AACD,OACD;AAAA,MACA,kBAAA,EAAoB;AAAA,QACnB,UAAA,EAAY,YAAA,CAAa,IAAA,CAAK,kBAAA,EAAoB,YAAY,CAAC;AAAA;AAChE,KACD;AAAA,EACD;AAAA,EAEQ,eACP,IAAA,EAC0B;AAC1B,IAAA,OAAO;AAAA,MACN,UAAU,IAAA,CAAK,QAAA;AAAA,MACf,UAAU,IAAA,CAAK,QAAA;AAAA,MACf,MAAA,EAAQ,mBAAA,CAAoB,IAAA,CAAK,QAAQ;AAAA,KAC1C;AAAA,EACD;AAAA,EAEQ,oBACP,IAAA,EAC+B;AAC/B,IAAA,OAAO;AAAA,MACN,sBAAA,EAAwB;AAAA,QACvB,OAAA,EAAS,IAAA,CAAK,sBAAA,CAAuB,OAAA,IAAW,KAAA;AAAA,QAChD,4BAAA,EACC,IAAA,CAAK,sBAAA,EAAwB,4BAAA,IAAgC,CAAA;AAAA,QAC9D,mBAAA,EACC,IAAA,CAAK,sBAAA,EAAwB,mBAAA,IAAuB,CAAA;AAAA,QACrD,wBAAA,EACC,IAAA,CAAK,sBAAA,EAAwB,wBAAA,IAA4B,CAAA;AAAA,QAC1D,IAAA,EAAM,IAAA,CAAK,sBAAA,EAAwB,IAAA,IAAQ,EAAA;AAAA,QAC3C,WAAA,EAAa,IAAA,CAAK,sBAAA,EAAwB,WAAA,IAAe;AAAA,OAC1D;AAAA,MACA,sBAAA,EAAwB;AAAA,QACvB,OAAA,EAAS,IAAA,CAAK,sBAAA,CAAuB,OAAA,IAAW,KAAA;AAAA,QAChD,4BAAA,EACC,IAAA,CAAK,sBAAA,EAAwB,4BAAA,IAAgC,CAAA;AAAA,QAC9D,mBAAA,EACC,IAAA,CAAK,sBAAA,EAAwB,mBAAA,IAAuB,CAAA;AAAA,QACrD,wBAAA,EACC,IAAA,CAAK,sBAAA,EAAwB,wBAAA,IAA4B,CAAA;AAAA,QAC1D,IAAA,EAAM,IAAA,CAAK,sBAAA,EAAwB,IAAA,IAAQ,EAAA;AAAA,QAC3C,WAAA,EAAa,IAAA,CAAK,sBAAA,EAAwB,WAAA,IAAe;AAAA,OAC1D;AAAA,MACA,sBAAA,EAAwB;AAAA,QACvB,OAAA,EAAS,IAAA,CAAK,sBAAA,CAAuB,OAAA,IAAW,KAAA;AAAA,QAChD,4BAAA,EACC,IAAA,CAAK,sBAAA,EAAwB,4BAAA,IAAgC,CAAA;AAAA,QAC9D,mBAAA,EACC,IAAA,CAAK,sBAAA,EAAwB,mBAAA,IAAuB,CAAA;AAAA,QACrD,wBAAA,EACC,IAAA,CAAK,sBAAA,EAAwB,wBAAA,IAA4B,CAAA;AAAA,QAC1D,IAAA,EAAM,IAAA,CAAK,sBAAA,EAAwB,IAAA,IAAQ,EAAA;AAAA,QAC3C,WAAA,EAAa,IAAA,CAAK,sBAAA,EAAwB,WAAA,IAAe;AAAA,OAC1D;AAAA,MACA,sBAAA,EAAwB;AAAA,QACvB,OAAA,EAAS,IAAA,CAAK,sBAAA,CAAuB,OAAA,IAAW,KAAA;AAAA,QAChD,4BAAA,EACC,IAAA,CAAK,sBAAA,EAAwB,4BAAA,IAAgC,CAAA;AAAA,QAC9D,mBAAA,EACC,IAAA,CAAK,sBAAA,EAAwB,mBAAA,IAAuB,CAAA;AAAA,QACrD,wBAAA,EACC,IAAA,CAAK,sBAAA,EAAwB,wBAAA,IAA4B,CAAA;AAAA,QAC1D,IAAA,EAAM,IAAA,CAAK,sBAAA,EAAwB,IAAA,IAAQ,EAAA;AAAA,QAC3C,WAAA,EAAa,IAAA,CAAK,sBAAA,EAAwB,WAAA,IAAe;AAAA,OAC1D;AAAA,MACA,sBAAA,EAAwB;AAAA,QACvB,OAAA,EAAS,IAAA,CAAK,sBAAA,CAAuB,OAAA,IAAW,KAAA;AAAA,QAChD,4BAAA,EACC,IAAA,CAAK,sBAAA,EAAwB,4BAAA,IAAgC,CAAA;AAAA,QAC9D,mBAAA,EACC,IAAA,CAAK,sBAAA,EAAwB,mBAAA,IAAuB,CAAA;AAAA,QACrD,wBAAA,EACC,IAAA,CAAK,sBAAA,EAAwB,wBAAA,IAA4B,CAAA;AAAA,QAC1D,IAAA,EAAM,IAAA,CAAK,sBAAA,EAAwB,IAAA,IAAQ,EAAA;AAAA,QAC3C,WAAA,EAAa,IAAA,CAAK,sBAAA,EAAwB,WAAA,IAAe;AAAA,OAC1D;AAAA,MACA,sBAAA,EAAwB;AAAA,QACvB,OAAA,EAAS,IAAA,CAAK,sBAAA,CAAuB,OAAA,IAAW,KAAA;AAAA,QAChD,4BAAA,EACC,IAAA,CAAK,sBAAA,EAAwB,4BAAA,IAAgC,CAAA;AAAA,QAC9D,mBAAA,EACC,IAAA,CAAK,sBAAA,EAAwB,mBAAA,IAAuB,CAAA;AAAA,QACrD,wBAAA,EACC,IAAA,CAAK,sBAAA,EAAwB,wBAAA,IAA4B,CAAA;AAAA,QAC1D,IAAA,EAAM,IAAA,CAAK,sBAAA,EAAwB,IAAA,IAAQ,EAAA;AAAA,QAC3C,WAAA,EAAa,IAAA,CAAK,sBAAA,EAAwB,WAAA,IAAe;AAAA,OAC1D;AAAA,MACA,sBAAA,EAAwB;AAAA,QACvB,OAAA,EAAS,IAAA,CAAK,sBAAA,CAAuB,OAAA,IAAW,KAAA;AAAA,QAChD,4BAAA,EACC,IAAA,CAAK,sBAAA,EAAwB,4BAAA,IAAgC,CAAA;AAAA,QAC9D,mBAAA,EACC,IAAA,CAAK,sBAAA,EAAwB,mBAAA,IAAuB,CAAA;AAAA,QACrD,wBAAA,EACC,IAAA,CAAK,sBAAA,EAAwB,wBAAA,IAA4B,CAAA;AAAA,QAC1D,IAAA,EAAM,IAAA,CAAK,sBAAA,EAAwB,IAAA,IAAQ,EAAA;AAAA,QAC3C,WAAA,EAAa,IAAA,CAAK,sBAAA,EAAwB,WAAA,IAAe;AAAA,OAC1D;AAAA,MACA,sBAAA,EAAwB;AAAA,QACvB,OAAA,EAAS,IAAA,CAAK,sBAAA,CAAuB,OAAA,IAAW,KAAA;AAAA,QAChD,4BAAA,EACC,IAAA,CAAK,sBAAA,EAAwB,4BAAA,IAAgC,CAAA;AAAA,QAC9D,mBAAA,EACC,IAAA,CAAK,sBAAA,EAAwB,mBAAA,IAAuB,CAAA;AAAA,QACrD,wBAAA,EACC,IAAA,CAAK,sBAAA,EAAwB,wBAAA,IAA4B,CAAA;AAAA,QAC1D,IAAA,EAAM,IAAA,CAAK,sBAAA,EAAwB,IAAA,IAAQ,EAAA;AAAA,QAC3C,WAAA,EAAa,IAAA,CAAK,sBAAA,EAAwB,WAAA,IAAe;AAAA,OAC1D;AAAA,MACA,sBAAA,EAAwB;AAAA,QACvB,OAAA,EAAS,IAAA,CAAK,sBAAA,CAAuB,OAAA,IAAW,KAAA;AAAA,QAChD,4BAAA,EACC,IAAA,CAAK,sBAAA,EAAwB,4BAAA,IAAgC,CAAA;AAAA,QAC9D,mBAAA,EACC,IAAA,CAAK,sBAAA,EAAwB,mBAAA,IAAuB,CAAA;AAAA,QACrD,wBAAA,EACC,IAAA,CAAK,sBAAA,EAAwB,wBAAA,IAA4B,CAAA;AAAA,QAC1D,IAAA,EAAM,IAAA,CAAK,sBAAA,EAAwB,IAAA,IAAQ,EAAA;AAAA,QAC3C,WAAA,EAAa,IAAA,CAAK,sBAAA,EAAwB,WAAA,IAAe;AAAA,OAC1D;AAAA,MACA,uBAAA,EAAyB;AAAA,QACxB,OAAA,EAAS,IAAA,CAAK,uBAAA,CAAwB,OAAA,IAAW,KAAA;AAAA,QACjD,4BAAA,EACC,IAAA,CAAK,uBAAA,EAAyB,4BAAA,IAAgC,CAAA;AAAA,QAC/D,mBAAA,EACC,IAAA,CAAK,uBAAA,EAAyB,mBAAA,IAAuB,CAAA;AAAA,QACtD,wBAAA,EACC,IAAA,CAAK,uBAAA,EAAyB,wBAAA,IAA4B,CAAA;AAAA,QAC3D,IAAA,EAAM,IAAA,CAAK,uBAAA,EAAyB,IAAA,IAAQ,EAAA;AAAA,QAC5C,WAAA,EAAa,IAAA,CAAK,uBAAA,EAAyB,WAAA,IAAe;AAAA,OAC3D;AAAA,MACA,uBAAA,EAAyB;AAAA,QACxB,OAAA,EAAS,IAAA,CAAK,uBAAA,CAAwB,OAAA,IAAW,KAAA;AAAA,QACjD,4BAAA,EACC,IAAA,CAAK,uBAAA,EAAyB,4BAAA,IAAgC,CAAA;AAAA,QAC/D,mBAAA,EACC,IAAA,CAAK,uBAAA,EAAyB,mBAAA,IAAuB,CAAA;AAAA,QACtD,wBAAA,EACC,IAAA,CAAK,uBAAA,EAAyB,wBAAA,IAA4B,CAAA;AAAA,QAC3D,IAAA,EAAM,IAAA,CAAK,uBAAA,EAAyB,IAAA,IAAQ,EAAA;AAAA,QAC5C,WAAA,EAAa,IAAA,CAAK,uBAAA,EAAyB,WAAA,IAAe;AAAA,OAC3D;AAAA,MACA,uBAAA,EAAyB;AAAA,QACxB,OAAA,EAAS,IAAA,CAAK,uBAAA,CAAwB,OAAA,IAAW,KAAA;AAAA,QACjD,4BAAA,EACC,IAAA,CAAK,uBAAA,EAAyB,4BAAA,IAAgC,CAAA;AAAA,QAC/D,mBAAA,EACC,IAAA,CAAK,uBAAA,EAAyB,mBAAA,IAAuB,CAAA;AAAA,QACtD,wBAAA,EACC,IAAA,CAAK,uBAAA,EAAyB,wBAAA,IAA4B,CAAA;AAAA,QAC3D,IAAA,EAAM,IAAA,CAAK,uBAAA,EAAyB,IAAA,IAAQ,EAAA;AAAA,QAC5C,WAAA,EAAa,IAAA,CAAK,uBAAA,EAAyB,WAAA,IAAe;AAAA,OAC3D;AAAA,MACA,uBAAA,EAAyB;AAAA,QACxB,OAAA,EAAS,IAAA,CAAK,uBAAA,CAAwB,OAAA,IAAW,KAAA;AAAA,QACjD,4BAAA,EACC,IAAA,CAAK,uBAAA,EAAyB,4BAAA,IAAgC,CAAA;AAAA,QAC/D,mBAAA,EACC,IAAA,CAAK,uBAAA,EAAyB,mBAAA,IAAuB,CAAA;AAAA,QACtD,wBAAA,EACC,IAAA,CAAK,uBAAA,EAAyB,wBAAA,IAA4B,CAAA;AAAA,QAC3D,IAAA,EAAM,IAAA,CAAK,uBAAA,EAAyB,IAAA,IAAQ,EAAA;AAAA,QAC5C,WAAA,EAAa,IAAA,CAAK,uBAAA,EAAyB,WAAA,IAAe;AAAA,OAC3D;AAAA,MACA,uBAAA,EAAyB;AAAA,QACxB,OAAA,EAAS,IAAA,CAAK,uBAAA,CAAwB,OAAA,IAAW,KAAA;AAAA,QACjD,4BAAA,EACC,IAAA,CAAK,uBAAA,EAAyB,4BAAA,IAAgC,CAAA;AAAA,QAC/D,mBAAA,EACC,IAAA,CAAK,uBAAA,EAAyB,mBAAA,IAAuB,CAAA;AAAA,QACtD,wBAAA,EACC,IAAA,CAAK,uBAAA,EAAyB,wBAAA,IAA4B,CAAA;AAAA,QAC3D,IAAA,EAAM,IAAA,CAAK,uBAAA,EAAyB,IAAA,IAAQ,EAAA;AAAA,QAC5C,WAAA,EAAa,IAAA,CAAK,uBAAA,EAAyB,WAAA,IAAe;AAAA,OAC3D;AAAA,MACA,uBAAA,EAAyB;AAAA,QACxB,OAAA,EAAS,IAAA,CAAK,uBAAA,CAAwB,OAAA,IAAW,KAAA;AAAA,QACjD,4BAAA,EACC,IAAA,CAAK,uBAAA,EAAyB,4BAAA,IAAgC,CAAA;AAAA,QAC/D,mBAAA,EACC,IAAA,CAAK,uBAAA,EAAyB,mBAAA,IAAuB,CAAA;AAAA,QACtD,wBAAA,EACC,IAAA,CAAK,uBAAA,EAAyB,wBAAA,IAA4B,CAAA;AAAA,QAC3D,IAAA,EAAM,IAAA,CAAK,uBAAA,EAAyB,IAAA,IAAQ,EAAA;AAAA,QAC5C,WAAA,EAAa,IAAA,CAAK,uBAAA,EAAyB,WAAA,IAAe;AAAA,OAC3D;AAAA,MACA,uBAAA,EAAyB;AAAA,QACxB,OAAA,EAAS,IAAA,CAAK,uBAAA,CAAwB,OAAA,IAAW,KAAA;AAAA,QACjD,4BAAA,EACC,IAAA,CAAK,uBAAA,EAAyB,4BAAA,IAAgC,CAAA;AAAA,QAC/D,mBAAA,EACC,IAAA,CAAK,uBAAA,EAAyB,mBAAA,IAAuB,CAAA;AAAA,QACtD,wBAAA,EACC,IAAA,CAAK,uBAAA,EAAyB,wBAAA,IAA4B,CAAA;AAAA,QAC3D,IAAA,EAAM,IAAA,CAAK,uBAAA,EAAyB,IAAA,IAAQ,EAAA;AAAA,QAC5C,WAAA,EAAa,IAAA,CAAK,uBAAA,EAAyB,WAAA,IAAe;AAAA,OAC3D;AAAA,MACA,uBAAA,EAAyB;AAAA,QACxB,OAAA,EAAS,IAAA,CAAK,uBAAA,CAAwB,OAAA,IAAW,KAAA;AAAA,QACjD,4BAAA,EACC,IAAA,CAAK,uBAAA,EAAyB,4BAAA,IAAgC,CAAA;AAAA,QAC/D,mBAAA,EACC,IAAA,CAAK,uBAAA,EAAyB,mBAAA,IAAuB,CAAA;AAAA,QACtD,wBAAA,EACC,IAAA,CAAK,uBAAA,EAAyB,wBAAA,IAA4B,CAAA;AAAA,QAC3D,IAAA,EAAM,IAAA,CAAK,uBAAA,EAAyB,IAAA,IAAQ,EAAA;AAAA,QAC5C,WAAA,EAAa,IAAA,CAAK,uBAAA,EAAyB,WAAA,IAAe;AAAA,OAC3D;AAAA,MACA,uBAAA,EAAyB;AAAA,QACxB,OAAA,EAAS,IAAA,CAAK,uBAAA,CAAwB,OAAA,IAAW,KAAA;AAAA,QACjD,4BAAA,EACC,IAAA,CAAK,uBAAA,EAAyB,4BAAA,IAAgC,CAAA;AAAA,QAC/D,mBAAA,EACC,IAAA,CAAK,uBAAA,EAAyB,mBAAA,IAAuB,CAAA;AAAA,QACtD,wBAAA,EACC,IAAA,CAAK,uBAAA,EAAyB,wBAAA,IAA4B,CAAA;AAAA,QAC3D,IAAA,EAAM,IAAA,CAAK,uBAAA,EAAyB,IAAA,IAAQ,EAAA;AAAA,QAC5C,WAAA,EAAa,IAAA,CAAK,uBAAA,EAAyB,WAAA,IAAe;AAAA,OAC3D;AAAA,MACA,uBAAA,EAAyB;AAAA,QACxB,OAAA,EAAS,IAAA,CAAK,uBAAA,CAAwB,OAAA,IAAW,KAAA;AAAA,QACjD,4BAAA,EACC,IAAA,CAAK,uBAAA,EAAyB,4BAAA,IAAgC,CAAA;AAAA,QAC/D,mBAAA,EACC,IAAA,CAAK,uBAAA,EAAyB,mBAAA,IAAuB,CAAA;AAAA,QACtD,wBAAA,EACC,IAAA,CAAK,uBAAA,EAAyB,wBAAA,IAA4B,CAAA;AAAA,QAC3D,IAAA,EAAM,IAAA,CAAK,uBAAA,EAAyB,IAAA,IAAQ,EAAA;AAAA,QAC5C,WAAA,EAAa,IAAA,CAAK,uBAAA,EAAyB,WAAA,IAAe;AAAA,OAC3D;AAAA,MACA,uBAAA,EAAyB;AAAA,QACxB,OAAA,EAAS,IAAA,CAAK,uBAAA,CAAwB,OAAA,IAAW,KAAA;AAAA,QACjD,4BAAA,EACC,IAAA,CAAK,uBAAA,EAAyB,4BAAA,IAAgC,CAAA;AAAA,QAC/D,mBAAA,EACC,IAAA,CAAK,uBAAA,EAAyB,mBAAA,IAAuB,CAAA;AAAA,QACtD,wBAAA,EACC,IAAA,CAAK,uBAAA,EAAyB,wBAAA,IAA4B,CAAA;AAAA,QAC3D,IAAA,EAAM,IAAA,CAAK,uBAAA,EAAyB,IAAA,IAAQ,EAAA;AAAA,QAC5C,WAAA,EAAa,IAAA,CAAK,uBAAA,EAAyB,WAAA,IAAe;AAAA;AAC3D,KACD;AAAA,EACD;AAAA,EAEQ,oBACP,IAAA,EACuC;AACvC,IAAA,OAAO;AAAA,MACN,YAAA,EAAc;AAAA,QACb,OAAA,EAAS,IAAA,CAAK,YAAA,CAAa,OAAA,IAAW,KAAA;AAAA,QACtC,MAAA,EAAQ,IAAA,CAAK,YAAA,CAAa,MAAA,IAAU,CAAA;AAAA,QACpC,gBAAA,EAAkB,IAAA,CAAK,YAAA,CAAa,gBAAA,IAAoB,CAAA;AAAA,QACxD,aAAA,EAAe,IAAA,CAAK,YAAA,CAAa,aAAA,IAAiB,CAAA;AAAA,QAClD,SAAA,EAAW,IAAA,CAAK,YAAA,CAAa,SAAA,IAAa,CAAA;AAAA,QAC1C,eAAA,EAAiB,IAAA,CAAK,YAAA,CAAa,eAAA,IAAmB;AAAA,OACvD;AAAA,MACA,eAAA,EAAiB;AAAA,QAChB,OAAA,EAAS,IAAA,CAAK,eAAA,CAAgB,OAAA,IAAW,KAAA;AAAA,QACzC,MAAA,EAAQ,IAAA,CAAK,eAAA,CAAgB,MAAA,IAAU,CAAA;AAAA,QACvC,gBAAA,EAAkB,IAAA,CAAK,eAAA,CAAgB,gBAAA,IAAoB,CAAA;AAAA,QAC3D,aAAA,EAAe,IAAA,CAAK,eAAA,CAAgB,aAAA,IAAiB,CAAA;AAAA,QACrD,SAAA,EAAW,IAAA,CAAK,eAAA,CAAgB,SAAA,IAAa,CAAA;AAAA,QAC7C,eAAA,EAAiB,IAAA,CAAK,eAAA,CAAgB,eAAA,IAAmB;AAAA,OAC1D;AAAA,MACA,iBAAA,EAAmB;AAAA,QAClB,OAAA,EAAS,IAAA,CAAK,iBAAA,CAAkB,OAAA,IAAW,KAAA;AAAA,QAC3C,MAAA,EAAQ,IAAA,CAAK,iBAAA,CAAkB,MAAA,IAAU,CAAA;AAAA,QACzC,gBAAA,EAAkB,IAAA,CAAK,iBAAA,CAAkB,gBAAA,IAAoB,CAAA;AAAA,QAC7D,aAAA,EAAe,IAAA,CAAK,iBAAA,CAAkB,aAAA,IAAiB,CAAA;AAAA,QACvD,SAAA,EAAW,IAAA,CAAK,iBAAA,CAAkB,SAAA,IAAa,CAAA;AAAA,QAC/C,eAAA,EAAiB,IAAA,CAAK,iBAAA,CAAkB,eAAA,IAAmB;AAAA,OAC5D;AAAA,MACA,eAAA,EAAiB;AAAA,QAChB,OAAA,EAAS,IAAA,CAAK,eAAA,CAAgB,OAAA,IAAW,KAAA;AAAA,QACzC,MAAA,EAAQ,IAAA,CAAK,eAAA,CAAgB,MAAA,IAAU,CAAA;AAAA,QACvC,gBAAA,EAAkB,IAAA,CAAK,eAAA,CAAgB,gBAAA,IAAoB,CAAA;AAAA,QAC3D,aAAA,EAAe,IAAA,CAAK,eAAA,CAAgB,aAAA,IAAiB,CAAA;AAAA,QACrD,SAAA,EAAW,IAAA,CAAK,eAAA,CAAgB,SAAA,IAAa,CAAA;AAAA,QAC7C,eAAA,EAAiB,IAAA,CAAK,eAAA,CAAgB,eAAA,IAAmB;AAAA,OAC1D;AAAA,MACA,WAAA,EAAa;AAAA,QACZ,OAAA,EAAS,IAAA,CAAK,WAAA,CAAY,OAAA,IAAW,KAAA;AAAA,QACrC,MAAA,EAAQ,IAAA,CAAK,WAAA,CAAY,MAAA,IAAU,CAAA;AAAA,QACnC,gBAAA,EAAkB,IAAA,CAAK,WAAA,CAAY,gBAAA,IAAoB,CAAA;AAAA,QACvD,aAAA,EAAe,IAAA,CAAK,WAAA,CAAY,aAAA,IAAiB,CAAA;AAAA,QACjD,SAAA,EAAW,IAAA,CAAK,WAAA,CAAY,SAAA,IAAa,CAAA;AAAA,QACzC,eAAA,EAAiB,IAAA,CAAK,WAAA,CAAY,eAAA,IAAmB;AAAA,OACtD;AAAA,MACA,cAAA,EAAgB;AAAA,QACf,OAAA,EAAS,IAAA,CAAK,cAAA,CAAe,OAAA,IAAW,KAAA;AAAA,QACxC,MAAA,EAAQ,IAAA,CAAK,cAAA,CAAe,MAAA,IAAU,CAAA;AAAA,QACtC,gBAAA,EAAkB,IAAA,CAAK,cAAA,CAAe,gBAAA,IAAoB,CAAA;AAAA,QAC1D,aAAA,EAAe,IAAA,CAAK,cAAA,CAAe,aAAA,IAAiB,CAAA;AAAA,QACpD,SAAA,EAAW,IAAA,CAAK,cAAA,CAAe,SAAA,IAAa,CAAA;AAAA,QAC5C,eAAA,EAAiB,IAAA,CAAK,cAAA,CAAe,eAAA,IAAmB;AAAA,OACzD;AAAA,MACA,WAAA,EAAa;AAAA,QACZ,OAAA,EAAS,IAAA,CAAK,WAAA,CAAY,OAAA,IAAW,KAAA;AAAA,QACrC,MAAA,EAAQ,IAAA,CAAK,WAAA,CAAY,MAAA,IAAU,CAAA;AAAA,QACnC,gBAAA,EAAkB,IAAA,CAAK,WAAA,CAAY,gBAAA,IAAoB,CAAA;AAAA,QACvD,aAAA,EAAe,IAAA,CAAK,WAAA,CAAY,aAAA,IAAiB,CAAA;AAAA,QACjD,SAAA,EAAW,IAAA,CAAK,WAAA,CAAY,SAAA,IAAa,CAAA;AAAA,QACzC,eAAA,EAAiB,IAAA,CAAK,WAAA,CAAY,eAAA,IAAmB;AAAA,OACtD;AAAA,MACA,gBAAA,EAAkB;AAAA,QACjB,OAAA,EAAS,IAAA,CAAK,gBAAA,CAAiB,OAAA,IAAW,KAAA;AAAA,QAC1C,MAAA,EAAQ,IAAA,CAAK,gBAAA,CAAiB,MAAA,IAAU,CAAA;AAAA,QACxC,gBAAA,EAAkB,IAAA,CAAK,gBAAA,CAAiB,gBAAA,IAAoB,CAAA;AAAA,QAC5D,aAAA,EAAe,IAAA,CAAK,gBAAA,CAAiB,aAAA,IAAiB,CAAA;AAAA,QACtD,SAAA,EAAW,IAAA,CAAK,gBAAA,CAAiB,SAAA,IAAa,CAAA;AAAA,QAC9C,eAAA,EAAiB,IAAA,CAAK,gBAAA,CAAiB,eAAA,IAAmB;AAAA,OAC3D;AAAA,MACA,cAAA,EAAgB;AAAA,QACf,OAAA,EAAS,IAAA,CAAK,cAAA,CAAe,OAAA,IAAW,KAAA;AAAA,QACxC,MAAA,EAAQ,IAAA,CAAK,cAAA,CAAe,MAAA,IAAU,CAAA;AAAA,QACtC,gBAAA,EAAkB,IAAA,CAAK,cAAA,CAAe,gBAAA,IAAoB,CAAA;AAAA,QAC1D,aAAA,EAAe,IAAA,CAAK,cAAA,CAAe,aAAA,IAAiB,CAAA;AAAA,QACpD,SAAA,EAAW,IAAA,CAAK,cAAA,CAAe,SAAA,IAAa,CAAA;AAAA,QAC5C,eAAA,EAAiB,IAAA,CAAK,cAAA,CAAe,eAAA,IAAmB;AAAA,OACzD;AAAA,MACA,gBAAA,EAAkB;AAAA,QACjB,OAAA,EAAS,IAAA,CAAK,gBAAA,CAAiB,OAAA,IAAW,KAAA;AAAA,QAC1C,MAAA,EAAQ,IAAA,CAAK,gBAAA,CAAiB,MAAA,IAAU,CAAA;AAAA,QACxC,gBAAA,EAAkB,IAAA,CAAK,gBAAA,CAAiB,gBAAA,IAAoB,CAAA;AAAA,QAC5D,aAAA,EAAe,IAAA,CAAK,gBAAA,CAAiB,aAAA,IAAiB,CAAA;AAAA,QACtD,SAAA,EAAW,IAAA,CAAK,gBAAA,CAAiB,SAAA,IAAa,CAAA;AAAA,QAC9C,eAAA,EAAiB,IAAA,CAAK,gBAAA,CAAiB,eAAA,IAAmB;AAAA,OAC3D;AAAA,MACA,mBAAA,EAAqB;AAAA,QACpB,OAAA,EAAS,IAAA,CAAK,mBAAA,CAAoB,OAAA,IAAW,KAAA;AAAA,QAC7C,MAAA,EAAQ,IAAA,CAAK,mBAAA,CAAoB,MAAA,IAAU,CAAA;AAAA,QAC3C,gBAAA,EAAkB,IAAA,CAAK,mBAAA,CAAoB,gBAAA,IAAoB,CAAA;AAAA,QAC/D,aAAA,EAAe,IAAA,CAAK,mBAAA,CAAoB,aAAA,IAAiB,CAAA;AAAA,QACzD,SAAA,EAAW,IAAA,CAAK,mBAAA,CAAoB,SAAA,IAAa,CAAA;AAAA,QACjD,eAAA,EAAiB,IAAA,CAAK,mBAAA,CAAoB,eAAA,IAAmB;AAAA,OAC9D;AAAA,MACA,iBAAA,EAAmB;AAAA,QAClB,OAAA,EAAS,IAAA,CAAK,iBAAA,CAAkB,OAAA,IAAW,KAAA;AAAA,QAC3C,MAAA,EAAQ,IAAA,CAAK,iBAAA,CAAkB,MAAA,IAAU,CAAA;AAAA,QACzC,gBAAA,EAAkB,IAAA,CAAK,iBAAA,CAAkB,gBAAA,IAAoB,CAAA;AAAA,QAC7D,aAAA,EAAe,IAAA,CAAK,iBAAA,CAAkB,aAAA,IAAiB,CAAA;AAAA,QACvD,SAAA,EAAW,IAAA,CAAK,iBAAA,CAAkB,SAAA,IAAa,CAAA;AAAA,QAC/C,eAAA,EAAiB,IAAA,CAAK,iBAAA,CAAkB,eAAA,IAAmB;AAAA;AAC5D,KACD;AAAA,EACD;AAAA,EAEQ,mBACP,IAAA,EAC8B;AAC9B,IAAA,OAAO;AAAA,MACN,UAAA,EAAY,YAAA,CAAa,IAAA,CAAK,UAAA,EAAY,CAAC;AAAA,KAC5C;AAAA,EACD;AAAA,EAEQ,gBACP,IAAA,EAC2B;AAC3B,IAAA,OAAO;AAAA,MACN,yBAAA,EAA2B,YAAA,CAAa,IAAA,CAAK,yBAAyB,CAAA;AAAA,MACtE,sCACC,IAAA,CAAK,oCAAA;AAAA,MACN,cAAA,EAAgB;AAAA,QACf,IAAA,EAAM;AAAA,UACL,cAAA,EACC,IAAA,CAAK,0BAAA,EAA4B,cAAA,IAAkB,KAAA;AAAA,UACpD,UAAA,EAAY,IAAA,CAAK,0BAAA,EAA4B,UAAA,IAAc,KAAA;AAAA,UAC3D,UAAA,EAAY,IAAA,CAAK,0BAAA,EAA4B,UAAA,IAAc,KAAA;AAAA,UAC3D,gBAAA,EACC,IAAA,CAAK,0BAAA,EAA4B,gBAAA,IAAoB,KAAA;AAAA,UACtD,aAAA,EAAe,YAAA;AAAA,YACd,KAAK,0BAAA,EAA4B;AAAA,WAClC;AAAA,UACA,aAAA,EAAe,YAAA;AAAA,YACd,KAAK,0BAAA,EAA4B;AAAA;AAClC,SACD;AAAA,QACA,KAAA,EAAO;AAAA,UACN,cAAA,EACC,IAAA,CAAK,2BAAA,EAA6B,cAAA,IAAkB,KAAA;AAAA,UACrD,UAAA,EAAY,IAAA,CAAK,2BAAA,EAA6B,UAAA,IAAc,KAAA;AAAA,UAC5D,UAAA,EAAY,IAAA,CAAK,2BAAA,EAA6B,UAAA,IAAc,KAAA;AAAA,UAC5D,gBAAA,EACC,IAAA,CAAK,2BAAA,EAA6B,gBAAA,IAAoB,KAAA;AAAA,UACvD,aAAA,EAAe,YAAA;AAAA,YACd,KAAK,2BAAA,EAA6B;AAAA,WACnC;AAAA,UACA,aAAA,EAAe,YAAA;AAAA,YACd,KAAK,2BAAA,EAA6B;AAAA;AACnC,SACD;AAAA,QACA,WAAA,EAAa;AAAA,UACZ,cAAA,EACC,IAAA,CAAK,iCAAA,EAAmC,cAAA,IAAkB,KAAA;AAAA,UAC3D,UAAA,EACC,IAAA,CAAK,iCAAA,EAAmC,UAAA,IAAc,KAAA;AAAA,UACvD,UAAA,EACC,IAAA,CAAK,iCAAA,EAAmC,UAAA,IAAc,KAAA;AAAA,UACvD,gBAAA,EACC,IAAA,CAAK,iCAAA,EAAmC,gBAAA,IAAoB,KAAA;AAAA,UAC7D,aAAA,EAAe,YAAA;AAAA,YACd,KAAK,iCAAA,EAAmC;AAAA,WACzC;AAAA,UACA,aAAA,EAAe,YAAA;AAAA,YACd,KAAK,iCAAA,EAAmC;AAAA;AACzC,SACD;AAAA,QACA,QAAA,EAAU;AAAA,UACT,cAAA,EACC,IAAA,CAAK,8BAAA,EAAgC,cAAA,IAAkB,KAAA;AAAA,UACxD,UAAA,EAAY,IAAA,CAAK,8BAAA,EAAgC,UAAA,IAAc,KAAA;AAAA,UAC/D,UAAA,EAAY,IAAA,CAAK,8BAAA,EAAgC,UAAA,IAAc,KAAA;AAAA,UAC/D,gBAAA,EACC,IAAA,CAAK,8BAAA,EAAgC,gBAAA,IAAoB,KAAA;AAAA,UAC1D,aAAA,EAAe,YAAA;AAAA,YACd,KAAK,8BAAA,EAAgC;AAAA,WACtC;AAAA,UACA,aAAA,EAAe,YAAA;AAAA,YACd,KAAK,8BAAA,EAAgC;AAAA;AACtC,SACD;AAAA,QACA,UAAA,EAAY;AAAA,UACX,cAAA,EACC,IAAA,CAAK,gCAAA,EAAkC,cAAA,IAAkB,KAAA;AAAA,UAC1D,UAAA,EACC,IAAA,CAAK,gCAAA,EAAkC,UAAA,IAAc,KAAA;AAAA,UACtD,UAAA,EACC,IAAA,CAAK,gCAAA,EAAkC,UAAA,IAAc,KAAA;AAAA,UACtD,gBAAA,EACC,IAAA,CAAK,gCAAA,EAAkC,gBAAA,IAAoB,KAAA;AAAA,UAC5D,aAAA,EAAe,YAAA;AAAA,YACd,KAAK,gCAAA,EAAkC;AAAA,WACxC;AAAA,UACA,aAAA,EAAe,YAAA;AAAA,YACd,KAAK,gCAAA,EAAkC;AAAA;AACxC,SACD;AAAA,QACA,UAAA,EAAY;AAAA,UACX,cAAA,EACC,IAAA,CAAK,gCAAA,EAAkC,cAAA,IAAkB,KAAA;AAAA,UAC1D,UAAA,EACC,IAAA,CAAK,gCAAA,EAAkC,UAAA,IAAc,KAAA;AAAA,UACtD,UAAA,EACC,IAAA,CAAK,gCAAA,EAAkC,UAAA,IAAc,KAAA;AAAA,UACtD,gBAAA,EACC,IAAA,CAAK,gCAAA,EAAkC,gBAAA,IAAoB,KAAA;AAAA,UAC5D,aAAA,EAAe,YAAA;AAAA,YACd,KAAK,gCAAA,EAAkC;AAAA,WACxC;AAAA,UACA,aAAA,EAAe,YAAA;AAAA,YACd,KAAK,gCAAA,EAAkC;AAAA;AACxC,SACD;AAAA,QACA,aAAA,EAAe;AAAA,UACd,cAAA,EACC,IAAA,CAAK,mCAAA,EAAqC,cAAA,IAAkB,KAAA;AAAA,UAC7D,UAAA,EACC,IAAA,CAAK,mCAAA,EAAqC,UAAA,IAAc,KAAA;AAAA,UACzD,UAAA,EACC,IAAA,CAAK,mCAAA,EAAqC,UAAA,IAAc,KAAA;AAAA,UACzD,gBAAA,EACC,IAAA,CAAK,mCAAA,EAAqC,gBAAA,IAAoB,KAAA;AAAA,UAC/D,aAAA,EAAe,YAAA;AAAA,YACd,KAAK,mCAAA,EAAqC;AAAA,WAC3C;AAAA,UACA,aAAA,EAAe,YAAA;AAAA,YACd,KAAK,mCAAA,EAAqC;AAAA;AAC3C,SACD;AAAA,QACA,IAAA,EAAM;AAAA,UACL,cAAA,EACC,IAAA,CAAK,0BAAA,EAA4B,cAAA,IAAkB,KAAA;AAAA,UACpD,UAAA,EAAY,IAAA,CAAK,0BAAA,EAA4B,UAAA,IAAc,KAAA;AAAA,UAC3D,UAAA,EAAY,IAAA,CAAK,0BAAA,EAA4B,UAAA,IAAc,KAAA;AAAA,UAC3D,gBAAA,EACC,IAAA,CAAK,0BAAA,EAA4B,gBAAA,IAAoB,KAAA;AAAA,UACtD,aAAA,EAAe,YAAA;AAAA,YACd,KAAK,0BAAA,EAA4B;AAAA,WAClC;AAAA,UACA,aAAA,EAAe,YAAA;AAAA,YACd,KAAK,0BAAA,EAA4B;AAAA;AAClC,SACD;AAAA,QACA,OAAA,EAAS;AAAA,UACR,cAAA,EACC,IAAA,CAAK,6BAAA,EAA+B,cAAA,IAAkB,KAAA;AAAA,UACvD,UAAA,EAAY,IAAA,CAAK,6BAAA,EAA+B,UAAA,IAAc,KAAA;AAAA,UAC9D,UAAA,EAAY,IAAA,CAAK,6BAAA,EAA+B,UAAA,IAAc,KAAA;AAAA,UAC9D,gBAAA,EACC,IAAA,CAAK,6BAAA,EAA+B,gBAAA,IAAoB,KAAA;AAAA,UACzD,aAAA,EAAe,YAAA;AAAA,YACd,KAAK,6BAAA,EAA+B;AAAA,WACrC;AAAA,UACA,aAAA,EAAe,YAAA;AAAA,YACd,KAAK,6BAAA,EAA+B;AAAA;AACrC,SACD;AAAA,QACA,UAAA,EAAY;AAAA,UACX,cAAA,EACC,IAAA,CAAK,gCAAA,EAAkC,cAAA,IAAkB,KAAA;AAAA,UAC1D,UAAA,EACC,IAAA,CAAK,gCAAA,EAAkC,UAAA,IAAc,KAAA;AAAA,UACtD,UAAA,EACC,IAAA,CAAK,gCAAA,EAAkC,UAAA,IAAc,KAAA;AAAA,UACtD,gBAAA,EACC,IAAA,CAAK,gCAAA,EAAkC,gBAAA,IAAoB,KAAA;AAAA,UAC5D,aAAA,EAAe,YAAA;AAAA,YACd,KAAK,gCAAA,EAAkC;AAAA,WACxC;AAAA,UACA,aAAA,EAAe,YAAA;AAAA,YACd,KAAK,gCAAA,EAAkC;AAAA;AACxC,SACD;AAAA,QACA,UAAA,EAAY;AAAA,UACX,cAAA,EACC,IAAA,CAAK,gCAAA,EAAkC,cAAA,IAAkB,KAAA;AAAA,UAC1D,UAAA,EACC,IAAA,CAAK,gCAAA,EAAkC,UAAA,IAAc,KAAA;AAAA,UACtD,UAAA,EACC,IAAA,CAAK,gCAAA,EAAkC,UAAA,IAAc,KAAA;AAAA,UACtD,gBAAA,EACC,IAAA,CAAK,gCAAA,EAAkC,gBAAA,IAAoB,KAAA;AAAA,UAC5D,aAAA,EAAe,YAAA;AAAA,YACd,KAAK,gCAAA,EAAkC;AAAA,WACxC;AAAA,UACA,aAAA,EAAe,YAAA;AAAA,YACd,KAAK,gCAAA,EAAkC;AAAA;AACxC,SACD;AAAA,QACA,IAAA,EAAM;AAAA,UACL,cAAA,EACC,IAAA,CAAK,0BAAA,EAA4B,cAAA,IAAkB,KAAA;AAAA,UACpD,UAAA,EAAY,IAAA,CAAK,0BAAA,EAA4B,UAAA,IAAc,KAAA;AAAA,UAC3D,UAAA,EAAY,IAAA,CAAK,0BAAA,EAA4B,UAAA,IAAc,KAAA;AAAA,UAC3D,gBAAA,EACC,IAAA,CAAK,0BAAA,EAA4B,gBAAA,IAAoB,KAAA;AAAA,UACtD,aAAA,EAAe,YAAA;AAAA,YACd,KAAK,0BAAA,EAA4B;AAAA,WAClC;AAAA,UACA,aAAA,EAAe,YAAA;AAAA,YACd,KAAK,0BAAA,EAA4B;AAAA;AAClC,SACD;AAAA,QACA,UAAA,EAAY;AAAA,UACX,cAAA,EACC,IAAA,CAAK,gCAAA,EAAkC,cAAA,IAAkB,KAAA;AAAA,UAC1D,UAAA,EACC,IAAA,CAAK,gCAAA,EAAkC,UAAA,IAAc,KAAA;AAAA,UACtD,UAAA,EACC,IAAA,CAAK,gCAAA,EAAkC,UAAA,IAAc,KAAA;AAAA,UACtD,gBAAA,EACC,IAAA,CAAK,gCAAA,EAAkC,gBAAA,IAAoB,KAAA;AAAA,UAC5D,aAAA,EAAe,YAAA;AAAA,YACd,KAAK,gCAAA,EAAkC;AAAA,WACxC;AAAA,UACA,aAAA,EAAe,YAAA;AAAA,YACd,KAAK,gCAAA,EAAkC;AAAA,WACxC;AAAA,UACA,eAAA,EACC,KAAK,gCAAA,EAAkC,eAAA;AAAA,UACxC,iBAAA,EACC,KAAK,gCAAA,EAAkC,iBAAA;AAAA,UACxC,YAAA,EAAc,KAAK,gCAAA,EAAkC;AAAA,SACtD;AAAA,QACA,SAAA,EAAW;AAAA,UACV,cAAA,EACC,IAAA,CAAK,+BAAA,EAAiC,cAAA,IAAkB,KAAA;AAAA,UACzD,UAAA,EAAY,IAAA,CAAK,+BAAA,EAAiC,UAAA,IAAc,KAAA;AAAA,UAChE,UAAA,EAAY,IAAA,CAAK,+BAAA,EAAiC,UAAA,IAAc,KAAA;AAAA,UAChE,gBAAA,EACC,IAAA,CAAK,+BAAA,EAAiC,gBAAA,IAAoB,KAAA;AAAA,UAC3D,aAAA,EAAe,YAAA;AAAA,YACd,KAAK,+BAAA,EAAiC;AAAA,WACvC;AAAA,UACA,aAAA,EAAe,YAAA;AAAA,YACd,KAAK,+BAAA,EAAiC;AAAA,WACvC;AAAA,UACA,KAAA,EAAO,KAAK,+BAAA,EAAiC,KAAA;AAAA,UAC7C,WAAW,CAAC,IAAA,CAAK,+BAAA,EAAiC,SAAA,GAC/C,OACC,IAAA,CAAK,IAAA;AAAA,YACN,KAAK,+BAAA,CAAgC;AAAA;AACtC;AACH,OACD;AAAA,MACA,iBAAA,EAAmB;AAAA,QAClB,IAAA,EAAM;AAAA,UACL,cAAA,EACC,IAAA,CAAK,6BAAA,EAA+B,cAAA,IAAkB,KAAA;AAAA,UACvD,UAAA,EAAY,IAAA,CAAK,6BAAA,EAA+B,UAAA,IAAc,KAAA;AAAA,UAC9D,UAAA,EAAY,IAAA,CAAK,6BAAA,EAA+B,UAAA,IAAc,KAAA;AAAA,UAC9D,gBAAA,EACC,IAAA,CAAK,6BAAA,EAA+B,gBAAA,IAAoB,KAAA;AAAA,UACzD,aAAA,EAAe,YAAA;AAAA,YACd,KAAK,6BAAA,EAA+B;AAAA,WACrC;AAAA,UACA,aAAA,EAAe,YAAA;AAAA,YACd,KAAK,6BAAA,EAA+B;AAAA;AACrC,SACD;AAAA,QACA,KAAA,EAAO;AAAA,UACN,cAAA,EACC,IAAA,CAAK,8BAAA,EAAgC,cAAA,IAAkB,KAAA;AAAA,UACxD,UAAA,EAAY,IAAA,CAAK,8BAAA,EAAgC,UAAA,IAAc,KAAA;AAAA,UAC/D,UAAA,EAAY,IAAA,CAAK,8BAAA,EAAgC,UAAA,IAAc,KAAA;AAAA,UAC/D,gBAAA,EACC,IAAA,CAAK,8BAAA,EAAgC,gBAAA,IAAoB,KAAA;AAAA,UAC1D,aAAA,EAAe,YAAA;AAAA,YACd,KAAK,8BAAA,EAAgC;AAAA,WACtC;AAAA,UACA,aAAA,EAAe,YAAA;AAAA,YACd,KAAK,8BAAA,EAAgC,aAAA;AAAA,YACrC;AAAA;AACD,SACD;AAAA,QACA,mBAAA,EAAqB;AAAA,UACpB,cAAA,EACC,IAAA,CAAK,4CAAA,EAA8C,cAAA,IACnD,KAAA;AAAA,UACD,UAAA,EACC,IAAA,CAAK,4CAAA,EAA8C,UAAA,IACnD,KAAA;AAAA,UACD,UAAA,EACC,IAAA,CAAK,4CAAA,EAA8C,UAAA,IACnD,KAAA;AAAA,UACD,gBAAA,EACC,IAAA,CAAK,4CAAA,EACF,gBAAA,IAAoB,KAAA;AAAA,UACxB,aAAA,EAAe,YAAA;AAAA,YACd,KAAK,4CAAA,EAA8C;AAAA,WACpD;AAAA,UACA,aAAA,EAAe,YAAA;AAAA,YACd,KAAK,4CAAA,EAA8C,aAAA;AAAA,YACnD;AAAA;AACD,SACD;AAAA,QACA,IAAA,EAAM;AAAA,UACL,cAAA,EACC,IAAA,CAAK,6BAAA,EAA+B,cAAA,IAAkB,KAAA;AAAA,UACvD,UAAA,EAAY,IAAA,CAAK,6BAAA,EAA+B,UAAA,IAAc,KAAA;AAAA,UAC9D,UAAA,EAAY,IAAA,CAAK,6BAAA,EAA+B,UAAA,IAAc,KAAA;AAAA,UAC9D,gBAAA,EACC,IAAA,CAAK,6BAAA,EAA+B,gBAAA,IAAoB,KAAA;AAAA,UACzD,aAAA,EAAe,YAAA;AAAA,YACd,KAAK,6BAAA,EAA+B;AAAA,WACrC;AAAA,UACA,aAAA,EAAe,YAAA;AAAA,YACd,KAAK,6BAAA,EAA+B;AAAA;AACrC,SACD;AAAA,QACA,OAAA,EAAS;AAAA,UACR,cAAA,EACC,IAAA,CAAK,gCAAA,EAAkC,cAAA,IAAkB,KAAA;AAAA,UAC1D,UAAA,EACC,IAAA,CAAK,gCAAA,EAAkC,UAAA,IAAc,KAAA;AAAA,UACtD,UAAA,EACC,IAAA,CAAK,gCAAA,EAAkC,UAAA,IAAc,KAAA;AAAA,UACtD,gBAAA,EACC,IAAA,CAAK,gCAAA,EAAkC,gBAAA,IAAoB,KAAA;AAAA,UAC5D,aAAA,EAAe,YAAA;AAAA,YACd,KAAK,gCAAA,EAAkC;AAAA,WACxC;AAAA,UACA,aAAA,EAAe,YAAA;AAAA,YACd,KAAK,gCAAA,EAAkC,aAAA;AAAA,YACvC;AAAA;AACD,SACD;AAAA,QACA,QAAA,EAAU;AAAA,UACT,cAAA,EACC,IAAA,CAAK,iCAAA,EAAmC,cAAA,IAAkB,KAAA;AAAA,UAC3D,UAAA,EACC,IAAA,CAAK,iCAAA,EAAmC,UAAA,IAAc,KAAA;AAAA,UACvD,UAAA,EACC,IAAA,CAAK,iCAAA,EAAmC,UAAA,IAAc,KAAA;AAAA,UACvD,gBAAA,EACC,IAAA,CAAK,iCAAA,EAAmC,gBAAA,IAAoB,KAAA;AAAA,UAC7D,aAAA,EAAe,YAAA;AAAA,YACd,KAAK,iCAAA,EAAmC;AAAA,WACzC;AAAA,UACA,aAAA,EAAe,YAAA;AAAA,YACd,KAAK,iCAAA,EAAmC,aAAA;AAAA,YACxC;AAAA;AACD,SACD;AAAA,QACA,UAAA,EAAY;AAAA,UACX,cAAA,EACC,IAAA,CAAK,mCAAA,EAAqC,cAAA,IAAkB,KAAA;AAAA,UAC7D,UAAA,EACC,IAAA,CAAK,mCAAA,EAAqC,UAAA,IAAc,KAAA;AAAA,UACzD,UAAA,EACC,IAAA,CAAK,mCAAA,EAAqC,UAAA,IAAc,KAAA;AAAA,UACzD,gBAAA,EACC,IAAA,CAAK,mCAAA,EAAqC,gBAAA,IAAoB,KAAA;AAAA,UAC/D,aAAA,EAAe,YAAA;AAAA,YACd,KAAK,mCAAA,EAAqC;AAAA,WAC3C;AAAA,UACA,aAAA,EAAe,YAAA;AAAA,YACd,KAAK,mCAAA,EAAqC,aAAA;AAAA,YAC1C;AAAA;AACD,SACD;AAAA,QACA,SAAA,EAAW;AAAA,UACV,cAAA,EACC,IAAA,CAAK,kCAAA,EAAoC,cAAA,IAAkB,KAAA;AAAA,UAC5D,UAAA,EACC,IAAA,CAAK,kCAAA,EAAoC,UAAA,IAAc,KAAA;AAAA,UACxD,UAAA,EACC,IAAA,CAAK,kCAAA,EAAoC,UAAA,IAAc,KAAA;AAAA,UACxD,gBAAA,EACC,IAAA,CAAK,kCAAA,EAAoC,gBAAA,IAAoB,KAAA;AAAA,UAC9D,aAAA,EAAe,YAAA;AAAA,YACd,KAAK,kCAAA,EAAoC;AAAA,WAC1C;AAAA,UACA,aAAA,EAAe,YAAA;AAAA,YACd,KAAK,kCAAA,EAAoC,aAAA;AAAA,YACzC;AAAA;AACD;AACD;AACD,KACD;AAAA,EACD;AAAA,EAEQ,QACP,IAAA,EACmB;AACnB,IAAA,MAAM,CAAA,GAAsB;AAAA,MAC3B,IAAI,IAAA,CAAK,EAAA;AAAA,MACT,MAAM,IAAA,CAAK,IAAA;AAAA,MACX,QAAQ,IAAA,CAAK,MAAA;AAAA,MACb,UAAU,IAAA,CAAK,QAAA;AAAA,MACf,QAAA,EAAU,KAAK,QAAA,IAAY,MAAA;AAAA,MAC3B,QAAA,EAAU,KAAK,QAAA,IAAY,MAAA;AAAA,MAC3B,aAAa,IAAA,CAAK,QAAA,GAAW,IAAI,IAAA,CAAK,IAAA,CAAK,QAAQ,CAAA,GAAI,MAAA;AAAA,MACvD,YAAA,EAAc,KAAK,YAAA,IAAgB,MAAA;AAAA,MACnC,YAAA,EAAc,KAAK,YAAA,IAAgB,MAAA;AAAA,MACnC,oBAAA,EAAsB,KAAK,oBAAA,IAAwB,KAAA;AAAA,MACnD,gCAAA,EACC,KAAK,gCAAA,IAAoC,KAAA;AAAA,MAC1C,OAAA,EAAS,KAAK,OAAA,IAAW,MAAA;AAAA,MACzB,oBAAoB,IAAA,CAAK,kBAAA;AAAA,MACzB,qBAAqB,IAAA,CAAK,mBAAA;AAAA,MAC1B,qBAAA,EAAuB,KAAK,qBAAA,IAAyB,KAAA;AAAA,MACrD,eAAA,EAAiB,IAAI,IAAA,CAAK,IAAA,CAAK,eAAe,CAAA;AAAA,MAC9C,mBAAA,EAAqB,IAAI,IAAA,CAAK,IAAA,CAAK,mBAAmB,CAAA;AAAA,MACtD,wBAAwB,IAAA,CAAK,sBAAA;AAAA,MAC7B,kBAAkB,IAAA,CAAK,gBAAA;AAAA,MACvB,sBAAsB,IAAA,CAAK,oBAAA;AAAA,MAC3B,qBAAqB,IAAA,CAAK,mBAAA;AAAA,MAC1B,yBAAyB,IAAA,CAAK,uBAAA;AAAA,MAC9B,qBAAA,EAAuB,IAAI,IAAA,CAAK,IAAA,CAAK,qBAAqB,CAAA;AAAA,MAC1D,iCAAiC,IAAA,CAAK,+BAAA;AAAA,MACtC,4CACC,IAAA,CAAK,0CAAA;AAAA,MACN,wBAAwB,IAAA,CAAK,sBAAA;AAAA,MAC7B,mCAAmC,IAAA,CAAK,iCAAA;AAAA,MACxC,UAAU,IAAA,CAAK,QAAA;AAAA,MACf,MAAA,EAAQ,KAAK,MAAA,IAAU,IAAA;AAAA,MACvB,UAAA,EAAY,KAAK,UAAA,IAAc,MAAA;AAAA,MAC/B,KAAA,EAAO,KAAK,KAAA,IAAS,IAAA;AAAA,MACrB,KAAA,EAAO,KAAK,KAAA,IAAS,CAAA;AAAA,MACrB,oBAAoB,IAAA,CAAK,kBAAA,GACtB,IAAI,IAAA,CAAK,IAAA,CAAK,kBAAkB,CAAA,GAChC,MAAA;AAAA,MACH,WAAW,IAAA,CAAK,SAAA;AAAA,MAChB,sBAAA,EAAwB,KAAK,sBAAA,IAA0B,MAAA;AAAA,MACvD,YAAA,EAAc,KAAK,YAAA,IAAgB,KAAA;AAAA,MACnC,aAAA,EAAe,YAAA,CAAa,IAAA,CAAK,aAAa,CAAA;AAAA,MAC9C,eAAA,EAAiB,YAAA,CAAa,IAAA,CAAK,eAAe,CAAA;AAAA,MAClD,iBAAA,EAAmB,YAAA,CAAa,IAAA,CAAK,iBAAiB,CAAA;AAAA,MACtD,mBAAA,EAAqB,YAAA,CAAa,IAAA,CAAK,mBAAmB,CAAA;AAAA,MAC1D,gBAAA,EAAkB,YAAA,CAAa,IAAA,CAAK,gBAAgB,CAAA;AAAA,MACpD,kBAAA,EAAoB,YAAA,CAAa,IAAA,CAAK,kBAAkB,CAAA;AAAA,MACxD,oBAAA,EAAsB,YAAA,CAAa,IAAA,CAAK,oBAAoB,CAAA;AAAA,MAC5D,sBAAA,EAAwB,YAAA,CAAa,IAAA,CAAK,sBAAsB,CAAA;AAAA,MAChE,gBAAA,EAAkB,KAAK,gBAAA,IAAoB;AAAA,KAC5C;AAEA,IAAA,OAAO,QAAQ,CAAC,CAAA;AAAA,EACjB;AAAA,EAEQ,OAAO,IAAA,EAAwC;AACtD,IAAA,MAAM,CAAA,GAAqB;AAAA,MAC1B,IAAI,IAAA,CAAK,EAAA;AAAA,MACT,OAAA,EAAS,YAAA,CAAa,IAAA,CAAK,OAAA,EAAS,CAAC,CAAA;AAAA,MACrC,mBAAA,EAAqB,YAAA,CAAa,IAAA,CAAK,mBAAmB;AAAA,KAC3D;AAEA,IAAA,OAAO,CAAA;AAAA,EACR;AAAA,EAEQ,cACP,IAAA,EAC+B;AAC/B,IAAA,MAAM,CAAA,GAAkC;AAAA,MACvC,IAAI,IAAA,CAAK,EAAA;AAAA,MACT,aAAA,EAAe,YAAA,CAAa,IAAA,CAAK,aAAA,EAAe,CAAC,CAAA;AAAA,MACjD,eAAA,EAAiB,YAAA,CAAa,IAAA,CAAK,eAAA,EAAiB,CAAC,CAAA;AAAA,MACrD,iBAAA,EAAmB,YAAA,CAAa,IAAA,CAAK,iBAAA,EAAmB,CAAC,CAAA;AAAA,MACzD,mBAAA,EAAqB,YAAA,CAAa,IAAA,CAAK,mBAAA,EAAqB,CAAC;AAAA,KAC9D;AAEA,IAAA,OAAO,CAAA;AAAA,EACR;AAAA,EAEQ,oBACP,IAAA,EAC+B;AAC/B,IAAA,MAAM,CAAA,GAAkC;AAAA,MACvC,IAAI,IAAA,CAAK,EAAA;AAAA,MACT,QAAQ,IAAA,CAAK,MAAA;AAAA,MACb,SAAS,IAAA,CAAK,OAAA;AAAA,MACd,kBAAkB,IAAA,CAAK,gBAAA;AAAA,MACvB,aAAa,IAAA,CAAK,WAAA;AAAA,MAClB,cAAc,IAAA,CAAK,YAAA;AAAA,MACnB,cAAc,IAAA,CAAK,YAAA;AAAA,MACnB,gBAAgB,IAAA,CAAK,cAAA;AAAA,MACrB,aAAa,IAAA,EAAM,WAAA,GACf,KAAK,IAAA,CAAK,IAAA,EAAM,WAAW,CAAA,GAC5B,IAAA;AAAA,MACH,cAAc,IAAA,EAAM,YAAA,GAChB,KAAK,IAAA,CAAK,IAAA,EAAM,YAAY,CAAA,GAC7B;AAAA,KACJ;AAEA,IAAA,OAAO,CAAA;AAAA,EACR;AAAA,EAEQ,kBACP,IAAA,EAC6B;AAC7B,IAAA,MAAM,CAAA,GAAgC;AAAA,MACrC,eAAA,EAAiB,KAAK,eAAA,IAAmB,KAAA;AAAA,MACzC,mBAAA,EAAqB,KAAK,mBAAA,IAAuB,KAAA;AAAA,MACjD,wBAAA,EAA0B,KAAK,wBAAA,IAA4B,KAAA;AAAA,MAC3D,mBAAA,EAAqB,KAAK,mBAAA,IAAuB,KAAA;AAAA,MACjD,mBAAA,EAAqB,KAAK,mBAAA,IAAuB,KAAA;AAAA,MACjD,oBAAA,EAAsB,YAAA,CAAa,IAAA,CAAK,oBAAA,EAAsB,CAAC;AAAA,KAChE;AAEA,IAAA,OAAO,CAAA;AAAA,EACR;AAAA,EAEQ,aAAa,IAAA,EAAoD;AACxE,IAAA,MAAM,CAAA,GAA2B;AAAA,MAChC,IAAI,IAAA,CAAK,EAAA;AAAA,MACT,MAAM,IAAA,CAAK,IAAA;AAAA,MACX,OAAO,IAAA,CAAK,KAAA;AAAA,MACZ,QAAQ,IAAA,CAAK,MAAA;AAAA,MACb,SAAS,IAAA,CAAK,OAAA;AAAA,MACd,qBAAA,EAAuB,IAAI,IAAA,CAAK,IAAA,CAAK,qBAAqB,CAAA;AAAA,MAC1D,uBAAA,EAAyB,IAAI,IAAA,CAAK,IAAA,CAAK,uBAAuB,CAAA;AAAA,MAC9D,eAAA,EAAiB,IAAI,IAAA,CAAK,IAAA,CAAK,eAAe,CAAA;AAAA,MAC9C,mBAAA,EAAqB,IAAI,IAAA,CAAK,IAAA,CAAK,mBAAmB;AAAA,KACvD;AAEA,IAAA,OAAO,CAAA;AAAA,EACR;AAAA,EAEQ,iBACP,IAAA,EAC4B;AAC5B,IAAA,MAAM,CAAA,GAAI;AAAA,MACT,IAAI,IAAA,CAAK,EAAA;AAAA,MACT,MAAM,IAAA,CAAK,IAAA;AAAA,MACX,MAAM,IAAA,CAAK,IAAA;AAAA,MACX,QAAA,EAAU,KAAK,QAAA,IAAY,MAAA;AAAA,MAC3B,QAAQ,IAAA,CAAK,MAAA;AAAA,MACb,MAAA,EAAQ,YAAA,CAAa,IAAA,CAAK,MAAA,EAAQ,CAAC,CAAA;AAAA,MACnC,SAAA,EAAW,YAAA,CAAa,IAAA,CAAK,SAAA,EAAW,CAAC,CAAA;AAAA,MACzC,GAAA,EAAK,YAAA,CAAa,IAAA,CAAK,GAAA,EAAK,CAAC,CAAA;AAAA,MAC7B,SAAA,EAAW,KAAK,SAAA,IAAa,MAAA;AAAA,MAC7B,WAAA,EAAa,KAAK,WAAA,IAAe,MAAA;AAAA,MACjC,KAAA,EAAO,KAAK,KAAA,IAAS,MAAA;AAAA,MACrB,kBAAkB,IAAA,CAAK,gBAAA;AAAA,MACvB,YAAY,IAAA,CAAK,UAAA;AAAA,MACjB,qBAAA,EAAuB,KAAK,qBAAA,IAAyB,MAAA;AAAA,MACrD,mBAAmB,IAAA,CAAK,iBAAA,GACrB,IAAI,IAAA,CAAK,IAAA,CAAK,iBAAiB,CAAA,GAC/B,MAAA;AAAA,MACH,eAAA,EAAiB,IAAI,IAAA,CAAK,IAAA,CAAK,eAAe,CAAA;AAAA,MAC9C,mBAAA,EAAqB,IAAI,IAAA,CAAK,IAAA,CAAK,mBAAmB;AAAA,KACvD;AAEA,IAAA,OAAO,QAAQ,CAAC,CAAA;AAAA,EACjB;AAAA,EAEQ,QAAQ,IAAA,EAA0C;AACzD,IAAA,MAAM,CAAA,GAAsB;AAAA,MAC3B,IAAI,IAAA,CAAK,EAAA;AAAA,MACT,MAAM,IAAA,CAAK,IAAA;AAAA,MACX,QAAQ,IAAA,CAAK,MAAA;AAAA,MACb,GAAA,EAAK,KAAK,GAAA,IAAO,MAAA;AAAA,MACjB,MAAA,EAAQ,KAAK,MAAA,IAAU,MAAA;AAAA,MACvB,WAAA,EAAa,KAAK,WAAA,IAAe,MAAA;AAAA,MACjC,KAAA,EAAO,KAAK,KAAA,IAAS;AAAA,KACtB;AAEA,IAAA,OAAO,QAAQ,CAAC,CAAA;AAAA,EACjB;AAAA,EAEQ,cAAc,IAAA,EAAsD;AAC3E,IAAA,MAAM,CAAA,GAA4B;AAAA,MACjC,IAAI,IAAA,CAAK,EAAA;AAAA,MACT,MAAM,IAAA,CAAK,IAAA;AAAA,MACX,QAAQ,IAAA,CAAK,MAAA;AAAA,MACb,MAAA,EAAQ,YAAA,CAAa,IAAA,CAAK,MAAA,EAAQ,CAAC,CAAA;AAAA,MACnC,GAAA,EAAK,YAAA,CAAa,IAAA,CAAK,GAAA,EAAK,CAAC,CAAA;AAAA,MAC7B,SAAA,EAAW,YAAA,CAAa,IAAA,CAAK,SAAA,EAAW,CAAC,CAAA;AAAA,MACzC,SAAA,EAAW,KAAK,SAAA,IAAa,MAAA;AAAA,MAC7B,SAAS,IAAA,CAAK,OAAA;AAAA,MACd,eAAe,IAAA,CAAK,aAAA;AAAA,MACpB,eAAA,EAAiB,IAAI,IAAA,CAAK,IAAA,CAAK,eAAe,CAAA;AAAA,MAC9C,mBAAA,EAAqB,IAAI,IAAA,CAAK,IAAA,CAAK,mBAAmB,CAAA;AAAA,MACtD,KAAA,EAAO,KAAK,KAAA,IAAS;AAAA,KACtB;AAEA,IAAA,OAAO,QAAQ,CAAC,CAAA;AAAA,EACjB;AAAA,EAEQ,UACP,IAAA,EACqB;AACrB,IAAA,MAAM,CAAA,GAAwB;AAAA,MAC7B,IAAI,IAAA,CAAK,EAAA;AAAA,MACT,GAAA,EAAK,YAAA,CAAa,IAAA,CAAK,GAAA,EAAK,CAAC,CAAA;AAAA,MAC7B,MAAA,EAAQ,YAAA,CAAa,IAAA,CAAK,MAAA,EAAQ,CAAC,CAAA;AAAA,MACnC,MAAM,IAAA,CAAK,IAAA;AAAA,MACX,QAAQ,IAAA,CAAK,MAAA;AAAA,MACb,mBAAA,EAAqB,YAAA,CAAa,IAAA,CAAK,mBAAA,EAAqB,CAAC,CAAA;AAAA,MAC7D,aAAA,EAAe,YAAA,CAAa,IAAA,CAAK,aAAA,EAAe,CAAC,CAAA;AAAA,MACjD,OAAA,EAAS,YAAA,CAAa,IAAA,CAAK,OAAO,CAAA;AAAA,MAClC,QAAA,EAAU,YAAA,CAAa,IAAA,CAAK,QAAA,EAAU,CAAC,CAAA;AAAA,MACvC,aAAA,EAAe,KAAK,aAAA,IAAiB,MAAA;AAAA,MACrC,MAAM,IAAA,CAAK,IAAA,GAAO,KAAK,IAAA,CAAK,IAAA,CAAK,IAAI,CAAA,GAAI,MAAA;AAAA,MACzC,YAAY,IAAA,CAAK,UAAA;AAAA,MACjB,iBAAiB,IAAA,CAAK,eAAA,GACnB,IAAI,IAAA,CAAK,IAAA,CAAK,eAAe,CAAA,GAC7B,MAAA;AAAA,MACH,eAAA,EAAiB,IAAI,IAAA,CAAK,IAAA,CAAK,eAAe,CAAA;AAAA,MAC9C,mBAAA,EAAqB,IAAI,IAAA,CAAK,IAAA,CAAK,mBAAmB,CAAA;AAAA,MACtD,UAAA,EAAY,KAAK,UAAA,IAAc,MAAA;AAAA,MAC/B,WAAA,EAAa,KAAK,WAAA,IAAe,MAAA;AAAA,MACjC,gBAAA,EAAkB,KAAK,gBAAA,IAAoB,MAAA;AAAA,MAC3C,aAAA,EAAe,YAAA,CAAa,IAAA,CAAK,aAAA,EAAe,CAAC,CAAA;AAAA,MACjD,aAAa,IAAA,CAAK,WAAA,GACf,KAAK,YAAA,CAAa,IAAA,CAAK,WAAW,CAAA,GAClC,MAAA;AAAA,MACH,QAAA,EAAU;AAAA,QACT,IAAA,EAAM,IAAA,CAAK,QAAA,EAAU,IAAA,IAAQ;AAAA;AAC9B,KACD;AAEA,IAAA,OAAO,QAAQ,CAAC,CAAA;AAAA,EACjB;AAAA,EAEQ,aAAa,IAAA,EAAkD;AACtE,IAAA,MAAM,CAAA,GAA0B;AAAA,MAC/B,IAAI,IAAA,CAAK,EAAA;AAAA,MACT,IAAA,EAAM,YAAA,CAAa,IAAA,CAAK,IAAA,EAAM,CAAC,CAAA;AAAA,MAC/B,QAAQ,IAAA,CAAK,MAAA;AAAA,MACb,kBAAA,EAAoB,IAAI,IAAA,CAAK,IAAA,CAAK,kBAAkB,CAAA;AAAA,MACpD,kBAAA,EAAoB,IAAI,IAAA,CAAK,IAAA,CAAK,kBAAkB,CAAA;AAAA,MACpD,UAAU,IAAA,CAAK,QAAA;AAAA,MACf,aAAA,EAAe,YAAA,CAAa,IAAA,CAAK,aAAA,EAAe,CAAC,CAAA;AAAA,MACjD,MAAM,IAAA,CAAK,IAAA;AAAA,MACX,aAAa,IAAA,CAAK,WAAA;AAAA,MAClB,OAAO,IAAA,CAAK,KAAA;AAAA,MACZ,QAAQ,IAAA,CAAK,MAAA;AAAA,MACb,cAAc,IAAA,CAAK,YAAA;AAAA,MACnB,mBAAmB,IAAA,CAAK,iBAAA,GACrB,IAAI,IAAA,CAAK,IAAA,CAAK,iBAAiB,CAAA,GAC/B,MAAA;AAAA,MAEH,eAAA,EAAiB,IAAI,IAAA,CAAK,IAAA,CAAK,eAAe,CAAA;AAAA,MAC9C,mBAAA,EAAqB,IAAI,IAAA,CAAK,IAAA,CAAK,mBAAmB;AAAA,KACvD;AACA,IAAA,OAAO,QAAQ,CAAC,CAAA;AAAA,EACjB;AAAA,EAEQ,mBACP,IAAA,EAC6B;AAC7B,IAAA,MAAM,CAAA,GAAgC;AAAA,MACrC,IAAI,IAAA,CAAK,EAAA;AAAA,MACT,IAAA,EAAM,YAAA,CAAa,IAAA,CAAK,IAAA,EAAM,CAAC,CAAA;AAAA,MAC/B,QAAQ,IAAA,CAAK,MAAA;AAAA,MACb,kBAAA,EAAoB,IAAI,IAAA,CAAK,IAAA,CAAK,kBAAkB,CAAA;AAAA,MACpD,kBAAA,EAAoB,IAAI,IAAA,CAAK,IAAA,CAAK,kBAAkB,CAAA;AAAA,MACpD,UAAU,IAAA,CAAK,QAAA;AAAA,MACf,aAAA,EAAe,YAAA,CAAa,IAAA,CAAK,aAAA,EAAe,CAAC,CAAA;AAAA,MACjD,MAAM,IAAA,CAAK,IAAA;AAAA,MACX,cAAc,IAAA,CAAK,YAAA;AAAA,MACnB,aAAa,IAAA,CAAK,WAAA;AAAA,MAClB,OAAO,IAAA,CAAK,KAAA;AAAA,MACZ,QAAQ,IAAA,CAAK,MAAA;AAAA,MAEb,mBAAmB,IAAA,CAAK,iBAAA,GACrB,IAAI,IAAA,CAAK,IAAA,CAAK,iBAAiB,CAAA,GAC/B,MAAA;AAAA,MAEH,eAAA,EAAiB,IAAI,IAAA,CAAK,IAAA,CAAK,eAAe,CAAA;AAAA,MAC9C,mBAAA,EAAqB,IAAI,IAAA,CAAK,IAAA,CAAK,mBAAmB,CAAA;AAAA,MACtD,YAAY,IAAA,CAAK;AAAA,KAClB;AACA,IAAA,OAAO,QAAQ,CAAC,CAAA;AAAA,EACjB;AAAA,EAEQ,gBACP,IAAA,EAC2B;AAC3B,IAAA,MAAM,CAAA,GAA8B;AAAA,MACnC,IAAI,IAAA,CAAK,EAAA;AAAA,MACT,QAAQ,IAAA,CAAK,MAAA;AAAA,MACb,MAAM,IAAA,CAAK,IAAA,GAAO,KAAK,IAAA,CAAK,IAAA,CAAK,IAAI,CAAA,GAAI,MAAA;AAAA,MACzC,GAAA,EAAK,YAAA,CAAa,IAAA,CAAK,GAAA,EAAK,CAAC,CAAA;AAAA,MAC7B,MAAA,EAAQ,YAAA,CAAa,IAAA,CAAK,MAAA,EAAQ,CAAC,CAAA;AAAA,MACnC,QAAA,EAAU,YAAA,CAAa,IAAA,CAAK,QAAA,EAAU,CAAC,CAAA;AAAA,MACvC,eAAA,EAAiB,IAAI,IAAA,CAAK,IAAA,CAAK,eAAe,CAAA;AAAA,MAC9C,eAAA,EAAiB,IAAI,IAAA,CAAK,IAAA,CAAK,eAAe;AAAA,KAC/C;AAEA,IAAA,OAAO,CAAA;AAAA,EACR;AAAA,EAEQ,kBACP,IAAA,EAC6B;AAC7B,IAAA,MAAM,CAAA,GAAgC;AAAA,MACrC,IAAI,IAAA,CAAK,EAAA;AAAA,MACT,MAAM,IAAA,CAAK,IAAA;AAAA,MACX,MAAA,EAAQ,YAAA,CAAa,IAAA,CAAK,MAAA,EAAQ,CAAC,CAAA;AAAA,MACnC,OAAA,EAAS,KAAK,OAAA,IAAW,MAAA;AAAA,MACzB,cAAA,EAAgB,YAAA,CAAa,IAAA,CAAK,cAAA,EAAgB,CAAC,CAAA;AAAA,MACnD,mBAAA,EAAqB,YAAA,CAAa,IAAA,CAAK,mBAAA,EAAqB,CAAC,CAAA;AAAA,MAC7D,iBAAiB,IAAA,CAAK,eAAA;AAAA,MACtB,eAAA,EAAiB,IAAI,IAAA,CAAK,IAAA,CAAK,eAAe;AAAA,KAC/C;AAEA,IAAA,OAAO,QAAQ,CAAC,CAAA;AAAA,EACjB;AAAA,EAEQ,KAAK,IAAA,EAAoC;AAChD,IAAA,MAAM,MAAA,GAAS,CAAC,IAAA,CAAK,WAAA,EAAa,IAAA,CAAK,KAAK,CAAA,CAAE,MAAA,CAAO,OAAO,CAAA,CAAE,GAAA,CAAI,CAAC,GAAA,KAAQ;AAC1E,MAAA,SAAA,CAAU,GAAG,CAAA;AAEb,MAAA,OAAO,GAAA,CAAI,QAAA,CAAS,GAAG,CAAA,GACpB,CAAA,EAAG,GAAG,CAAA,UAAA,EAAa,cAAc,CAAA,CAAA,GACjC,CAAA,EAAG,GAAG,CAAA,UAAA,EAAa,cAAc,CAAA,CAAA;AAAA,IACrC,CAAC,CAAA;AAED,IAAA,MAAM,CAAA,GAAmB;AAAA,MACxB,IAAI,IAAA,CAAK,EAAA;AAAA,MACT,MAAM,IAAA,CAAK,IAAA;AAAA,MACX,IAAA,EAAM,IAAA,CAAK,IAAA,IAAQ,EAAC;AAAA,MACpB,MAAM,IAAA,CAAK,IAAA;AAAA,MACX,MAAA;AAAA,MACA,UAAU,IAAA,CAAK,QAAA;AAAA,MACf,WAAW,IAAA,CAAK,SAAA;AAAA,MAChB,UAAU,IAAA,CAAK;AAAA,KAChB;AAEA,IAAA,OAAO,CAAA;AAAA,EACR;AAAA,EAEQ,YAAY,IAAA,EAAkD;AACrE,IAAA,MAAM,CAAA,GAAI;AAAA,MACT,IAAI,IAAA,CAAK,EAAA;AAAA,MACT,QAAQ,IAAA,CAAK,MAAA;AAAA,MACb,SAAA,EAAW,KAAK,SAAA,IAAa,MAAA;AAAA,MAC7B,aAAA,EAAe,MAAM,aAAA,IAAiB;AAAA,KACvC;AAEA,IAAA,OAAO,QAAQ,CAAC,CAAA;AAAA,EACjB;AAAA,EAEQ,MAAM,IAAA,EAAsC;AACnD,IAAA,OAAO;AAAA,MACN,IAAI,IAAA,CAAK,EAAA;AAAA,MACT,MAAM,IAAA,CAAK,IAAA;AAAA,MACX,MAAM,IAAA,CAAK,IAAA;AAAA,MACX,QAAQ,IAAA,CAAK,MAAA;AAAA,MACb,aAAa,IAAA,CAAK,WAAA;AAAA,MAClB,MAAA,EAAQ,CAAC,IAAA,CAAK,MAAA,GACX,OACC,IAAA,CAAK,IAAA,CAAK,KAAK,MAAM,CAAA;AAAA,MAIzB,kBAAA,EAAoB,YAAA,CAAa,IAAA,CAAK,kBAAkB,CAAA;AAAA,MACxD,kBAAA,EAAoB,YAAA,CAAa,IAAA,CAAK,kBAAkB,CAAA;AAAA,MACxD,oBAAA,EAAsB,YAAA,CAAa,IAAA,CAAK,oBAAoB,CAAA;AAAA,MAC5D,oBAAA,EAAsB,YAAA,CAAa,IAAA,CAAK,oBAAoB,CAAA;AAAA,MAC5D,4BAAA,EAA8B,YAAA;AAAA,QAC7B,IAAA,CAAK;AAAA,OACN;AAAA,MACA,0DACC,IAAA,CAAK,wDAAA;AAAA,MACN,qBAAA,EAAuB,IAAI,IAAA,CAAK,IAAA,CAAK,qBAAqB,CAAA;AAAA,MAC1D,uBAAA,EAAyB,IAAI,IAAA,CAAK,IAAA,CAAK,uBAAuB,CAAA;AAAA,MAC9D,eAAA,EAAiB,IAAI,IAAA,CAAK,IAAA,CAAK,eAAe,CAAA;AAAA,MAC9C,mBAAA,EAAqB,IAAI,IAAA,CAAK,IAAA,CAAK,mBAAmB;AAAA,KACvD;AAAA,EACD;AAAA,EAEQ,SAAS,IAAA,EAA4C;AAC5D,IAAA,MAAM,CAAA,GAAuB;AAAA,MAC5B,IAAI,IAAA,CAAK,EAAA;AAAA,MACT,MAAM,IAAA,CAAK,IAAA;AAAA,MACX,aAAa,IAAA,CAAK,WAAA;AAAA,MAClB,QAAQ,IAAA,CAAK,MAAA;AAAA,MACb,eAAA,EAAiB,YAAA,CAAa,IAAA,CAAK,eAAA,EAAiB,CAAC,CAAA;AAAA,MACrD,sBAAA,EAAwB,YAAA,CAAa,IAAA,CAAK,sBAAsB,CAAA;AAAA,MAChE,MAAA,EAAQ,CAAC,IAAA,CAAK,MAAA,GACX,OACC,IAAA,CAAK,IAAA,CAAK,KAAK,MAAM,CAAA;AAAA,MAIzB,qBAAA,EAAuB,IAAI,IAAA,CAAK,IAAA,CAAK,qBAAqB,CAAA;AAAA,MAC1D,uBAAA,EAAyB,IAAI,IAAA,CAAK,IAAA,CAAK,uBAAuB,CAAA;AAAA,MAC9D,eAAA,EAAiB,IAAI,IAAA,CAAK,IAAA,CAAK,eAAe,CAAA;AAAA,MAC9C,mBAAA,EAAqB,IAAI,IAAA,CAAK,IAAA,CAAK,mBAAmB,CAAA;AAAA,MACtD,+CAA+C,MAAA,CAAO,OAAA;AAAA,QACrD,IAAA,CAAK;AAAA,QACJ,MAAA,CAAuD,CAACC,IAAG,CAAC,CAAA,EAAG,CAAC,CAAA,KAAM;AACvE,QAAAA,EAAAA,CAAE,CAA0B,CAAA,GAAI,YAAA,CAAa,GAAG,CAAC,CAAA;AACjD,QAAA,OAAOA,EAAAA;AAAA,MACR,CAAA,EAAG,EAAE;AAAA,KACN;AAEA,IAAA,OAAO,CAAA;AAAA,EACR;AAAA,EAEQ,MAAM,IAAA,EAAsC;AACnD,IAAA,MAAM,CAAA,GAAoB;AAAA,MACzB,IAAI,IAAA,CAAK,EAAA;AAAA,MACT,KAAA,EAAO,IAAA,CAAK,KAAA,CAAM,IAAA,CAAK,KAAK,CAAA;AAAA,MAC5B,OAAA,EAAS,CAAC,IAAA,CAAK,OAAA,GACZ,MAAA,GACA;AAAA,QACA,IAAA,EAAM,KAAK,OAAA,CAAQ,IAAA;AAAA,QACnB,MAAA,EAAQ,KAAK,OAAA,CAAQ,MAAA;AAAA,QACrB,GAAA,EAAK,YAAA,CAAa,IAAA,CAAK,OAAA,CAAQ,KAAK,CAAC,CAAA;AAAA,QACrC,MAAA,EAAQ,YAAA,CAAa,IAAA,CAAK,OAAA,CAAQ,QAAQ,CAAC,CAAA;AAAA,QAC3C,SAAA,EAAW,YAAA,CAAa,IAAA,CAAK,OAAA,CAAQ,WAAW,CAAC,CAAA;AAAA,QACjD,SAAA,EAAW,IAAA,CAAK,OAAA,CAAQ,SAAA,IAAa,MAAA;AAAA,QACrC,eAAA,EAAiB,IAAI,IAAA,CAAK,IAAA,CAAK,QAAQ,eAAe,CAAA;AAAA,QACtD,mBAAA,EAAqB,IAAI,IAAA,CAAK,IAAA,CAAK,QAAQ,mBAAmB;AAAA,OAC/D;AAAA,MACF,OAAA,EAAS,YAAA,CAAa,IAAA,CAAK,OAAA,EAAS,CAAC,CAAA;AAAA,MACrC,MAAA,EAAQ,YAAA,CAAa,IAAA,CAAK,MAAA,EAAQ,CAAC,CAAA;AAAA,MACnC,UAAA,EAAY,IAAI,IAAA,CAAK,IAAA,CAAK,UAAU,CAAA;AAAA,MACpC,mBAAA,EAAqB,YAAA,CAAa,IAAA,CAAK,mBAAA,EAAqB,CAAC,CAAA;AAAA,MAC7D,sCAAA,EAAwC,YAAA;AAAA,QACvC,IAAA,CAAK,sCAAA;AAAA,QACL;AAAA,OACD;AAAA,MACA,gDAAA,EAAkD,YAAA;AAAA,QACjD,IAAA,CAAK,gDAAA;AAAA,QACL;AAAA,OACD;AAAA;AAAA,MAEA,0DACC,IAAA,CAAK,wDAAA;AAAA,MACN,sBAAsB,IAAA,CAAK,oBAAA;AAAA,MAC3B,eAAA,EAAiB,IAAI,IAAA,CAAK,IAAA,CAAK,eAAe,CAAA;AAAA,MAC9C,mBAAA,EAAqB,IAAI,IAAA,CAAK,IAAA,CAAK,mBAAmB;AAAA,KACvD;AAEA,IAAA,OAAO,QAAQ,CAAC,CAAA;AAAA,EACjB;AAAA,EAEQ,cAAc,IAAA,EAAsD;AAC3E,IAAA,MAAM,CAAA,GAA4B;AAAA,MACjC,IAAI,IAAA,CAAK,EAAA;AAAA,MACT,KAAA,EAAO,YAAA,CAAa,IAAA,CAAK,KAAA,EAAO,CAAC,CAAA;AAAA,MACjC,OAAA,EAAS,YAAA,CAAa,IAAA,CAAK,OAAA,EAAS,CAAC,CAAA;AAAA,MACrC,QAAA,EAAU,IAAA,CAAK,QAAA,CAAS,IAAA,CAAK,QAAQ,CAAA;AAAA,MACrC,eAAA,EAAiB,IAAI,IAAA,CAAK,IAAA,CAAK,eAAe,CAAA;AAAA,MAC9C,mBAAA,EAAqB,IAAI,IAAA,CAAK,IAAA,CAAK,mBAAmB;AAAA,KACvD;AAEA,IAAA,OAAO,CAAA;AAAA,EACR;AAAA,EAEQ,yBACP,IAAA,EAC8B;AAC9B,IAAA,MAAM,CAAA,GAAiC;AAAA,MACtC,IAAI,IAAA,CAAK,EAAA;AAAA,MACT,MAAM,IAAA,CAAK,IAAA;AAAA,MACX,aAAa,IAAA,CAAK,WAAA;AAAA,MAClB,QAAQ,IAAA,CAAK,MAAA;AAAA,MACb,eAAA,EAAiB,IAAI,IAAA,CAAK,IAAA,CAAK,eAAe;AAAA,KAC/C;AAEA,IAAA,OAAO,CAAA;AAAA,EACR;AAAA,EAEQ,KAAK,IAAA,EAAoC;AAChD,IAAA,MAAM,CAAA,GAAI;AAAA,MACT,IAAI,IAAA,CAAK,EAAA;AAAA,MACT,GAAA,EAAK,KAAK,GAAA,IAAO,MAAA;AAAA,MACjB,QAAQ,IAAA,CAAK;AAAA,KACd;AAEA,IAAA,OAAO,QAAQ,CAAC,CAAA;AAAA,EACjB;AAAA,EAEQ,aAAa,IAAA,EAAoD;AACxE,IAAA,MAAM,CAAA,GAA2B;AAAA,MAChC,IAAI,IAAA,CAAK,EAAA;AAAA,MACT,MAAA,EAAQ,YAAA,CAAa,IAAA,CAAK,MAAA,EAAQ,CAAC,CAAA;AAAA,MACnC,SAAS,IAAA,CAAK,OAAA;AAAA,MACd,eAAA,EAAiB,IAAI,IAAA,CAAK,IAAA,CAAK,eAAe;AAAA,KAC/C;AAEA,IAAA,OAAO,CAAA;AAAA,EACR;AAAA,EAEQ,wBACP,IAAA,EACmC;AACnC,IAAA,MAAM,CAAA,GAAsC;AAAA,MAC3C,IAAI,IAAA,CAAK,EAAA;AAAA,MACT,MAAM,IAAA,CAAK,IAAA;AAAA,MACX,MAAA,EAAQ,YAAA,CAAa,IAAA,CAAK,MAAA,EAAQ,CAAC,CAAA;AAAA,MACnC,OAAA,EAAS,YAAA,CAAa,IAAA,CAAK,OAAA,EAAS,CAAC,CAAA;AAAA,MACrC,eAAA,EAAiB,IAAI,IAAA,CAAK,IAAA,CAAK,eAAe;AAAA,KAC/C;AAEA,IAAA,OAAO,CAAA;AAAA,EACR;AAAA,EAEQ,OAAO,IAAA,EAAwC;AACtD,IAAA,MAAM,CAAA,GAAqB;AAAA,MAC1B,IAAI,IAAA,CAAK,EAAA;AAAA,MACT,aAAA,EAAe;AAAA,QACd,EAAA,EAAI,KAAK,aAAA,CAAc,EAAA;AAAA,QACvB,MAAA,EAAQ,IAAA,CAAK,aAAA,CAAc,MAAA,GACxB;AAAA,UACA,EAAA,EAAI,IAAA,CAAK,aAAA,CAAc,MAAA,CAAO,EAAA;AAAA,UAC9B,GAAA,EAAK,IAAA,CAAK,aAAA,CAAc,MAAA,CAAO,GAAA,IAAO;AAAA,SACvC,GACC,MAAA;AAAA,QACH,WAAA,EAAa,KAAK,aAAA,CAAc,WAAA;AAAA,QAChC,IAAA,EAAM,KAAK,aAAA,CAAc,IAAA;AAAA,QACzB,gBAAA,EAAkB,YAAA,CAAa,IAAA,CAAK,aAAA,CAAc,gBAAgB,CAAA;AAAA,QAClE,8BACC,IAAA,CAAK,aAAA,CAAc,4BAAA,EAA8B,GAAA,CAAI,CAAC,QAAA,MAAc;AAAA,UACnE,OAAO,QAAA,CAAS,KAAA;AAAA,UAChB,UAAA,EAAY,YAAA,CAAa,QAAA,CAAS,UAAA,EAAY,CAAC;AAAA,SAChD,CAAE,CAAA;AAAA,QACH,IAAA,EAAM,KAAK,aAAA,CAAc,IAAA;AAAA,QACzB,eAAA,EAAiB,KAAK,aAAA,CAAc,eAAA,GACjC,IAAI,IAAA,CAAK,IAAA,CAAK,aAAA,CAAc,eAAe,CAAA,GAC3C;AAAA,OACJ;AAAA,MACA,MAAA,EAAQ,YAAA,CAAa,IAAA,CAAK,MAAA,EAAQ,CAAC,CAAA;AAAA,MACnC,UAAA,EAAY,YAAA,CAAa,IAAA,CAAK,UAAU,CAAA;AAAA,MACxC,QAAQ,IAAA,CAAK,MAAA;AAAA,MACb,oBAAoB,IAAA,CAAK,kBAAA,GACtB,IAAI,IAAA,CAAK,IAAA,CAAK,kBAAkB,CAAA,GAChC,MAAA;AAAA,MACH,iBAAiB,IAAA,CAAK,eAAA,GACnB,IAAI,IAAA,CAAK,IAAA,CAAK,eAAe,CAAA,GAC7B,MAAA;AAAA,MACH,iBAAiB,IAAA,CAAK,eAAA,GACnB,IAAI,IAAA,CAAK,IAAA,CAAK,eAAe,CAAA,GAC7B,MAAA;AAAA,MACH,aAAa,IAAA,CAAK,WAAA,GAAc,IAAI,IAAA,CAAK,IAAA,CAAK,WAAW,CAAA,GAAI,MAAA;AAAA,MAC7D,eAAe,IAAA,CAAK,aAAA,GACjB,IAAI,IAAA,CAAK,IAAA,CAAK,aAAa,CAAA,GAC3B,MAAA;AAAA,MAEH,iBAAiB,IAAA,CAAK,eAAA,GACnB,IAAI,IAAA,CAAK,IAAA,CAAK,eAAe,CAAA,GAC7B;AAAA,KACJ;AAEA,IAAA,OAAO,QAAQ,CAAC,CAAA;AAAA,EACjB;AAAA,EAEQ,+BACP,IAAA,EAC0C;AAC1C,IAAA,MAAM,CAAA,GAA6C;AAAA,MAClD,IAAI,IAAA,CAAK,EAAA;AAAA,MACT,MAAM,IAAA,CAAK,IAAA;AAAA,MACX,MAAA,EAAQ,YAAA,CAAa,IAAA,CAAK,MAAA,EAAQ,CAAC,CAAA;AAAA,MACnC,eAAA,EAAiB,IAAI,IAAA,CAAK,IAAA,CAAK,eAAe;AAAA,KAC/C;AAEA,IAAA,OAAO,CAAA;AAAA,EACR;AAAA,EAEQ,eACP,IAAA,EAC0B;AAC1B,IAAA,MAAM,CAAA,GAA6B;AAAA,MAClC,IAAI,IAAA,CAAK,EAAA;AAAA,MACT,MAAM,IAAA,CAAK,IAAA;AAAA,MACX,QAAQ,IAAA,CAAK,MAAA,GAAS,aAAa,IAAA,CAAK,MAAA,EAAQ,CAAC,CAAA,GAAI,MAAA;AAAA,MACrD,MAAA,EAAQ,KAAK,MAAA,IAAU,MAAA;AAAA,MACvB,SAAS,IAAA,CAAK,OAAA;AAAA,MACd,eAAA,EAAiB,IAAI,IAAA,CAAK,IAAA,CAAK,eAAe;AAAA,KAC/C;AAEA,IAAA,OAAO,QAAQ,CAAC,CAAA;AAAA,EACjB;AAAA,EAEQ,SAAS,IAAA,EAA4C;AAC5D,IAAA,MAAM,CAAA,GAAuB;AAAA,MAC5B,IAAI,IAAA,CAAK,EAAA;AAAA,MACT,OAAO,IAAA,CAAK,KAAA;AAAA,MACZ,QAAQ,IAAA,CAAK,MAAA;AAAA,MACb,UAAU,IAAA,CAAK,QAAA;AAAA,MACf,QAAA,EAAU,YAAA,CAAa,IAAA,CAAK,QAAA,EAAU,CAAC,CAAA;AAAA,MACvC,UAAA,EAAY,YAAA,CAAa,IAAA,CAAK,UAAA,EAAY,CAAC,CAAA;AAAA,MAC3C,eAAA,EAAiB,IAAI,IAAA,CAAK,IAAA,CAAK,eAAe,CAAA;AAAA,MAC9C,WAAW,IAAA,CAAK;AAAA,KACjB;AAEA,IAAA,OAAO,CAAA;AAAA,EACR;AAAA,EAEQ,mBACP,IAAA,EAC8B;AAC9B,IAAA,MAAM,CAAA,GAAiC;AAAA,MACtC,IAAI,IAAA,CAAK,EAAA;AAAA,MACT,UAAA,EAAY,YAAA,CAAa,IAAA,CAAK,UAAA,EAAY,CAAC,CAAA;AAAA,MAC3C,gBAAA,EAAkB,YAAA,CAAa,IAAA,CAAK,gBAAA,EAAkB,CAAC,CAAA;AAAA,MACvD,gBAAA,EAAkB,YAAA,CAAa,IAAA,CAAK,gBAAA,EAAkB,CAAC,CAAA;AAAA,MACvD,gBAAA,EAAkB,YAAA,CAAa,IAAA,CAAK,gBAAA,EAAkB,CAAC,CAAA;AAAA,MACvD,gBAAgB,IAAA,CAAK,cAAA;AAAA,MACrB,sBAAsB,IAAA,CAAK,oBAAA;AAAA,MAC3B,sBAAsB,IAAA,CAAK,oBAAA;AAAA,MAC3B,sBAAsB,IAAA,CAAK,oBAAA;AAAA,MAC3B,cAAc,IAAA,CAAK,YAAA;AAAA,MACnB,eAAA,EAAiB,IAAI,IAAA,CAAK,IAAA,CAAK,eAAe,CAAA;AAAA,MAC9C,mBAAA,EAAqB,IAAI,IAAA,CAAK,IAAA,CAAK,mBAAmB;AAAA,KACvD;AAEA,IAAA,OAAO,CAAA;AAAA,EACR;AAAA,EAEQ,QAAQ,IAAA,EAA0C;AACzD,IAAA,OAAO;AAAA,MACN,IAAI,IAAA,CAAK,EAAA;AAAA,MACT,MAAM,IAAA,CAAK,IAAA;AAAA,MACX,MAAM,IAAA,CAAK,IAAA;AAAA,MACX,OAAO,IAAA,CAAK,KAAA;AAAA,MACZ,OAAO,IAAA,CAAK,KAAA;AAAA,MACZ,OAAO,IAAA,CAAK,KAAA;AAAA,MACZ,OAAO,IAAA,CAAK,KAAA;AAAA,MACZ,SAAS,IAAA,CAAK,OAAA;AAAA,MACd,SAAS,IAAA,CAAK,OAAA;AAAA,MACd,cAAc,IAAA,CAAK,YAAA;AAAA,MACnB,eAAA,EAAiB,IAAI,IAAA,CAAK,IAAA,CAAK,eAAe,CAAA;AAAA,MAC9C,MAAM,IAAA,CAAK,IAAA;AAAA,MACX,QAAA,EAAU,CAAC,IAAA,CAAK,QAAA,GACb,IAAA,GACA;AAAA,QACA,UAAA,EAAY,KAAK,QAAA,CAAS,UAAA;AAAA,QAC1B,MAAA,EAAQ;AAAA,UACP,EAAA,EAAI,IAAA,CAAK,QAAA,CAAS,MAAA,CAAO,EAAA;AAAA,UACzB,QAAQ,YAAA,CAAa,IAAA,CAAK,QAAA,CAAS,MAAA,CAAO,QAAQ,CAAC;AAAA;AACpD;AACD,KACH;AAAA,EACD;AAAA,EAEQ,aAAa,IAAA,EAAoD;AACxE,IAAA,OAAO,IAAA;AAAA,EACR;AAAA,EAEQ,YAAY,IAAA,EAAwD;AAC3E,IAAA,OAAO;AAAA,MACN,oBAAoB,IAAA,CAAK,kBAAA;AAAA,MACzB,cAAc,IAAA,CAAK,YAAA;AAAA,MACnB,uBAAuB,IAAA,CAAK,qBAAA;AAAA,MAC5B,qBAAqB,IAAA,CAAK,mBAAA;AAAA,MAC1B,oBAAoB,IAAA,CAAK,kBAAA;AAAA,MACzB,4BAAA,EAA8B,YAAA;AAAA,QAC7B,IAAA,CAAK,4BAAA;AAAA,QACL;AAAA,OACD;AAAA,MACA,MAAM,IAAA,CAAK,IAAA;AAAA,MACX,aAAa,IAAA,CAAK,WAAA;AAAA,MAClB,sBAAsB,IAAA,CAAK,oBAAA;AAAA,MAC3B,IAAI,IAAA,CAAK,EAAA;AAAA,MACT,qBAAqB,IAAA,CAAK,mBAAA;AAAA,MAC1B,0BAA0B,IAAA,CAAK,wBAAA;AAAA,MAC/B,MAAM,IAAA,CAAK,IAAA;AAAA,MACX,QAAQ,IAAA,CAAK,MAAA;AAAA,MACb,QAAA,EAAU,YAAA,CAAa,IAAA,CAAK,QAAA,EAAU,CAAC,CAAA;AAAA,MACvC,UAAA,EAAY,YAAA,CAAa,IAAA,CAAK,UAAA,EAAY,CAAC,CAAA;AAAA,MAC3C,iBAAA,EAAmB,YAAA,CAAa,IAAA,CAAK,iBAAA,EAAmB,CAAC,CAAA;AAAA,MACzD,mBAAA,EAAqB,YAAA,CAAa,IAAA,CAAK,mBAAA,EAAqB,CAAC,CAAA;AAAA,MAC7D,YAAA,EAAc,YAAA,CAAa,IAAA,CAAK,YAAA,EAAc,CAAC,CAAA;AAAA,MAC/C,6BAAA,EAA+B,YAAA;AAAA,QAC9B,IAAA,CAAK,6BAAA;AAAA,QACL;AAAA,OACD;AAAA,MACA,MAAM,IAAA,CAAK,IAAA;AAAA,MACX,uBAAuB,IAAA,CAAK,qBAAA;AAAA,MAC5B,gBAAA,EAAkB,YAAA,CAAa,IAAA,CAAK,gBAAA,EAAkB,CAAC,CAAA;AAAA,MACvD,WAAA,EAAa,YAAA,CAAa,IAAA,CAAK,WAAA,EAAa,CAAC,CAAA;AAAA,MAC7C,aAAa,IAAA,CAAK,WAAA;AAAA,MAClB,yBAAyB,IAAA,CAAK,uBAAA;AAAA,MAC9B,uBAAuB,IAAA,CAAK,qBAAA,GACzB,IAAI,IAAA,CAAK,IAAA,CAAK,qBAAqB,CAAA,GACnC,MAAA;AAAA,MACH,yBAAyB,IAAA,CAAK,uBAAA,GAC3B,IAAI,IAAA,CAAK,IAAA,CAAK,uBAAuB,CAAA,GACrC,MAAA;AAAA,MACH,gBAAgB,IAAA,CAAK,cAAA,GAClB,IAAI,IAAA,CAAK,IAAA,CAAK,cAAc,CAAA,GAC5B,MAAA;AAAA,MACH,mBAAA,EAAqB,IAAI,IAAA,CAAK,IAAA,CAAK,mBAAmB,CAAA;AAAA,MACtD,eAAA,EAAiB,IAAI,IAAA,CAAK,IAAA,CAAK,eAAe,CAAA;AAAA,MAC9C,0DAA0D,MAAA,CAAO,OAAA;AAAA,QAChE,IAAA,CAAK;AAAA,QACJ,MAAA,CAAuD,CAAC,GAAG,CAAC,CAAA,EAAG,CAAC,CAAA,KAAM;AACvE,QAAA,CAAA,CAAE,CAA0B,CAAA,GAAI,YAAA,CAAa,CAAA,EAAG,CAAC,CAAA;AACjD,QAAA,OAAO,CAAA;AAAA,MACR,CAAA,EAAG,EAAE,CAAA;AAAA,MACL,6CAA6C,MAAA,CAAO,OAAA;AAAA,QACnD,IAAA,CAAK;AAAA,QACJ,MAAA,CAAuD,CAAC,GAAG,CAAC,CAAA,EAAG,CAAC,CAAA,KAAM;AACvE,QAAA,CAAA,CAAE,CAA0B,CAAA,GAAI,YAAA,CAAa,CAAA,EAAG,CAAC,CAAA;AACjD,QAAA,OAAO,CAAA;AAAA,MACR,CAAA,EAAG,EAAE,CAAA;AAAA,MACL,QAAQ,IAAA,CAAK;AAAA,KACd;AAAA,EACD;AAAA,EAEQ,MAAM,IAAA,EAAsC;AACnD,IAAA,OAAO;AAAA,MACN,IAAI,IAAA,CAAK,EAAA;AAAA,MACT,MAAM,IAAA,CAAK,IAAA;AAAA,MACX,aAAa,IAAA,CAAK,WAAA;AAAA,MAClB,QAAQ,IAAA,CAAK,MAAA;AAAA,MACb,KAAA,EAAO,YAAA,CAAa,IAAA,CAAK,KAAA,EAAO,CAAC,CAAA;AAAA,MACjC,eAAA,EAAiB,IAAI,IAAA,CAAK,IAAA,CAAK,eAAe,CAAA;AAAA,MAC9C,WAAA,EAAa,IAAI,IAAA,CAAK,IAAA,CAAK,WAAW,CAAA;AAAA,MACtC,OAAA,EAAS;AAAA,QACR,IAAA,EAAM,KAAK,OAAA,CAAQ,IAAA;AAAA,QACnB,IAAA,EAAM,KAAK,OAAA,CAAQ,IAAA;AAAA,QACnB,WAAA,EAAa,KAAK,OAAA,CAAQ,WAAA;AAAA,QAC1B,MAAA,EAAQ,KAAK,OAAA,CAAQ,MAAA;AAAA,QACrB,QACC,IAAA,CAAK,OAAA,CAAQ,MAAA,EAAQ,GAAA,CAAI,CAAC,KAAA,MAAW;AAAA,UACpC,cAAA,EAAgB,YAAA,CAAa,KAAA,CAAM,cAAA,EAAgB,CAAC,CAAA;AAAA,UACpD,kCAAA,EAAoC,YAAA;AAAA,YACnC,KAAA,CAAM,kCAAA;AAAA,YACN;AAAA,WACD;AAAA,UACA,WAAA,EAAa,YAAA,CAAa,KAAA,CAAM,WAAA,EAAa,CAAC;AAAA,SAC/C,CAAE,KAAK;AAAC,OACV;AAAA,MACA,kBAAA,EAAoB,YAAA,CAAa,IAAA,CAAK,kBAAA,EAAoB,CAAC,CAAA;AAAA,MAC3D,QAAA,EAAU,YAAA,CAAa,IAAA,CAAK,QAAA,EAAU,CAAC,CAAA;AAAA,MACvC,gBAAgB,IAAA,EAAM,cAAA,GACnB,aAAa,IAAA,CAAK,cAAA,EAAgB,CAAC,CAAA,GACnC,MAAA;AAAA,MACH,aAAA,EAAe,MAAM,aAAA,IAAiB,MAAA;AAAA,MACtC,iBAAiB,IAAA,EAAM,eAAA,GACpB,IAAI,IAAA,CAAK,IAAA,CAAK,eAAe,CAAA,GAC7B,MAAA;AAAA,MACH,eAAe,IAAA,EAAM,aAAA,GAClB,IAAI,IAAA,CAAK,IAAA,CAAK,aAAa,CAAA,GAC3B,MAAA;AAAA,MACH,MAAM,IAAA,CAAK,IAAA;AAAA,MACX,mBAAmB,IAAA,CAAK,iBAAA,GACrB,IAAI,IAAA,CAAK,IAAA,CAAK,iBAAiB,CAAA,GAC/B,MAAA;AAAA,MACH,GAAI,IAAA,CAAK,IAAA,KAAS,UAAA,IAAc;AAAA,QAC/B,OAAO,IAAA,CAAK,KAAA;AAAA,QACZ,0DACC,IAAA,CAAK;AAAA,OACP;AAAA,MACA,GAAI,IAAA,CAAK,IAAA,KAAS,eAAA,IAAmB;AAAA,QACpC,qBAAA,EAAuB,YAAA,CAAa,IAAA,CAAK,qBAAA,EAAuB,CAAC,CAAA;AAAA,QACjE,mBAAA,EAAqB,YAAA,CAAa,IAAA,CAAK,mBAAA,EAAqB,CAAC,CAAA;AAAA,QAC7D,mBAAA,EAAqB,YAAA,CAAa,IAAA,CAAK,mBAAA,EAAqB,CAAC;AAAA,OAC9D;AAAA,MAEA,GAAI,IAAA,CAAK,IAAA,KAAS,YAAA,IAAgB;AAAA,QACjC,uBAAuB,IAAA,CAAK,qBAAA;AAAA,QAC5B,8BAA8B,IAAA,CAAK;AAAA,OACpC;AAAA,MAEA,GAAI,IAAA,CAAK,IAAA,KAAS,SAAA,IAAa;AAAA,QAC9B,UAAA,EAAY,IAAA,CAAK,UAAA,EAAY,GAAA,CAAI,CAAC,SAAA,MAAe;AAAA,UAChD,IAAI,SAAA,CAAU,EAAA;AAAA,UACd,MAAM,SAAA,CAAU,IAAA;AAAA,UAChB,MAAM,SAAA,CAAU,IAAA;AAAA,UAChB,WAAA,EAAa,YAAA,CAAa,SAAA,CAAU,WAAA,EAAa,CAAC,CAAA;AAAA,UAClD,OAAA,EAAS,UAAU,OAAA,IAAW,KAAA;AAAA,UAC9B,WAAA,EAAa,WAAW,WAAA,IAAe,MAAA;AAAA,UACvC,IAAA,EAAM,WAAW,IAAA,IAAQ;AAAA,SAC1B,CAAE;AAAA;AACH,KACD;AAAA,EACD;AAAA,EAEQ,OACP,IAAA,EACkB;AAClB,IAAA,OAAO;AAAA,MACN,IAAI,IAAA,CAAK,EAAA;AAAA,MACT,MAAM,IAAA,CAAK,IAAA,GAAO,KAAK,IAAA,CAAK,IAAA,CAAK,IAAI,CAAA,GAAI,MAAA;AAAA,MACzC,MAAA,EAAQ;AAAA,QACP,EAAA,EAAI,KAAK,MAAA,CAAO,EAAA;AAAA,QAChB,IAAA,EAAM,KAAK,MAAA,CAAO;AAAA,OACnB;AAAA,MACA,UAAA,EAAY,YAAA,CAAa,IAAA,CAAK,UAAA,EAAY,CAAC,CAAA;AAAA,MAC3C,MAAA,EAAQ,YAAA,CAAa,IAAA,CAAK,MAAA,EAAQ,CAAC;AAAA,KACpC;AAAA,EACD;AAAA,EAEQ,SAAS,IAAA,EAA0C;AAC1D,IAAA,OAAO;AAAA,MACN,IAAI,IAAA,CAAK,EAAA;AAAA,MACT,MAAM,IAAA,CAAK,IAAA;AAAA,MACX,aAAa,IAAA,CAAK,WAAA;AAAA,MAClB,IAAA,EAAM,YAAA,CAAa,IAAA,CAAK,IAAA,EAAM,CAAC,CAAA;AAAA,MAC/B,QAAQ,IAAA,CAAK,MAAA;AAAA,MACb,8BAAA,EAAgC,YAAA;AAAA,QAC/B,IAAA,CAAK,8BAAA;AAAA,QACL;AAAA,OACD;AAAA,MACA,uBAAA,EAAyB,YAAA,CAAa,IAAA,CAAK,uBAAA,EAAyB,CAAC,CAAA;AAAA,MACrE,SAAS,IAAA,CAAK,OAAA;AAAA,MACd,iBAAA,EAAmB,YAAA,CAAa,IAAA,CAAK,iBAAA,EAAmB,CAAC,CAAA;AAAA,MACzD,UAAA,EAAY,YAAA,CAAa,IAAA,CAAK,UAAA,EAAY,CAAC,CAAA;AAAA,MAC3C,uBAAA,EAAyB,YAAA,CAAa,IAAA,CAAK,uBAAA,EAAyB,CAAC,CAAA;AAAA,MACrE,sDAAsD,MAAA,CAAO,OAAA;AAAA,QAC5D,IAAA,CAAK,wDAAwD;AAAC,QAC7D,MAAA,CAAuD,CAAC,GAAG,CAAC,CAAA,EAAG,CAAC,CAAA,KAAM;AACvE,QAAA,CAAA,CAAE,CAA0B,CAAA,GAAI,YAAA,CAAa,CAAA,EAAG,CAAC,CAAA;AACjD,QAAA,OAAO,CAAA;AAAA,MACR,CAAA,EAAG,EAAE,CAAA;AAAA,MACL,WAAA,EAAa,YAAA,CAAa,IAAA,CAAK,WAAA,EAAa,CAAC;AAAA,KAC9C;AAAA,EACD;AAAA,EAEQ,eAAe,IAAA,EAAsD;AAC5E,IAAA,OAAO;AAAA,MACN,IAAI,IAAA,CAAK,EAAA;AAAA,MACT,MAAA,EAAQ;AAAA,QACP,EAAA,EAAI,KAAK,MAAA,CAAO,EAAA;AAAA,QAChB,IAAA,EAAM,KAAK,MAAA,CAAO;AAAA,OACnB;AAAA,MACA,OAAA,EAAS;AAAA,QACR,EAAA,EAAI,KAAK,OAAA,CAAQ,EAAA;AAAA,QACjB,IAAA,EAAM,KAAK,OAAA,CAAQ;AAAA,OACpB;AAAA,MACA,UAAA,EAAY,YAAA,CAAa,IAAA,CAAK,UAAA,EAAY,CAAC,CAAA;AAAA,MAC3C,GAAA,EAAK,YAAA,CAAa,IAAA,CAAK,GAAA,EAAK,CAAC,CAAA;AAAA,MAC7B,MAAA,EAAQ,YAAA,CAAa,IAAA,CAAK,MAAA,EAAQ,CAAC,CAAA;AAAA,MACnC,eAAA,EAAiB,IAAI,IAAA,CAAK,IAAA,CAAK,eAAe,CAAA;AAAA,MAC9C,IAAA,EAAM;AAAA,QACL,QAAA,EAAU,MAAM,IAAA,EAAM;AAAA;AACvB,KACD;AAAA,EACD;AAAA,EAEQ,uBACP,IAAA,EACiC;AACjC,IAAA,OAAO;AAAA,MACN,IAAI,IAAA,CAAK,EAAA;AAAA,MACT,UAAU,IAAA,CAAK,QAAA;AAAA,MACf,UAAA,EAAY,YAAA,CAAa,IAAA,CAAK,UAAA,EAAY,CAAC,CAAA;AAAA,MAC3C,iBAAiB,IAAA,CAAK,eAAA;AAAA,MACtB,MAAM,IAAA,CAAK,IAAA;AAAA,MACX,OAAO,IAAA,CAAK;AAAA,KACb;AAAA,EACD;AAAA,EAEQ,YAAY,IAAA,EAAgD;AACnE,IAAA,OAAO;AAAA,MACN,IAAI,IAAA,CAAK,EAAA;AAAA,MACT,MAAM,IAAA,CAAK,IAAA;AAAA,MACX,MAAM,IAAA,CAAK,IAAA;AAAA,MACX,aAAa,IAAA,CAAK,WAAA;AAAA,MAClB,YAAA,EAAc,YAAA,CAAa,IAAA,CAAK,YAAA,EAAc,CAAC,CAAA;AAAA,MAC/C,QAAQ,IAAA,CAAK,MAAA;AAAA,MACb,qBAAA,EAAuB,IAAI,IAAA,CAAK,IAAA,CAAK,qBAAqB,CAAA;AAAA,MAC1D,uBAAA,EAAyB,IAAI,IAAA,CAAK,IAAA,CAAK,uBAAuB,CAAA;AAAA,MAC9D,UAAA,EAAY,IAAA,CAAK,UAAA,CAAW,GAAA,CAAI,CAAC,MAAA,MAAY;AAAA,QAC5C,GAAG,MAAA;AAAA,QACH,MAAA,EAAQ,YAAA,CAAa,MAAA,CAAO,MAAA,EAAQ,CAAC;AAAA,OACtC,CAAE,CAAA;AAAA,MACF,sBAAsB,IAAA,CAAK,oBAAA;AAAA,MAC3B,WAAW,IAAA,CAAK,SAAA;AAAA,MAChB,MAAM,IAAA,CAAK,IAAA;AAAA,MACX,YAAA,EAAc;AAAA,QACb,EAAA,EAAI,KAAK,YAAA,EAAc,EAAA;AAAA,QACvB,GAAA,EAAK,KAAK,YAAA,EAAc,GAAA;AAAA,QACxB,QAAA,EAAU,KAAK,YAAA,EAAc;AAAA,OAC9B;AAAA,MACA,SAAA,EAAW;AAAA,QACV,EAAA,EAAI,KAAK,SAAA,EAAW,EAAA;AAAA,QACpB,GAAA,EAAK,KAAK,SAAA,EAAW,GAAA;AAAA,QACrB,QAAA,EAAU,KAAK,SAAA,EAAW;AAAA,OAC3B;AAAA,MAEA,gBAAgB,IAAA,CAAK,cAAA;AAAA,MAErB,kBAAA,EAAoB;AAAA,QACnB,kBAAA,EAAoB,IAAA,CAAK,kBAAA,EAAoB,KAAA,CAAM,GAAA;AAAA,UAClD,CAAC,EAAE,MAAA,EAAQ,IAAA,EAAK,MAAO;AAAA,YACtB,MAAA;AAAA,YACA,GAAG,IAAA,CAAK,sBAAA,CAAuB,IAAI;AAAA,WACpC;AAAA,SACD;AAAA,QACA,UAAA,EAAY,KAAK,kBAAA,CAAmB,UAAA;AAAA,QACpC,WAAA,EAAa,IAAA,CAAK,kBAAA,CAAmB,QAAA,EAAU,WAAA;AAAA,QAC/C,SAAA,EAAW,IAAA,CAAK,kBAAA,CAAmB,QAAA,EAAU,SAAA,IAAa;AAAA,OAC3D;AAAA,MACA,mBAAA,EAAqB;AAAA,QACpB,mBAAA,EAAqB,IAAA,CAAK,mBAAA,CAAoB,KAAA,CAAM,GAAA;AAAA,UACnD,CAAC,EAAE,MAAA,EAAQ,IAAA,EAAK,MAAO;AAAA,YACtB,MAAA;AAAA,YACA,GAAG,IAAA,CAAK,sBAAA,CAAuB,IAAI;AAAA,WACpC;AAAA,SACD;AAAA,QACA,UAAA,EAAY,KAAK,mBAAA,CAAoB,UAAA;AAAA,QACrC,WAAA,EAAa,IAAA,CAAK,mBAAA,CAAoB,QAAA,EAAU,WAAA;AAAA,QAChD,SAAA,EAAW,IAAA,CAAK,mBAAA,CAAoB,QAAA,EAAU,SAAA,IAAa;AAAA;AAC5D,KACD;AAAA,EACD;AAAA,EAEQ,mBACP,IAAA,EAC6B;AAC7B,IAAA,OAAO;AAAA,MACN,MAAA,EAAQ;AAAA,QACP,YAAA,EAAc,KAAK,MAAA,CAAO,YAAA;AAAA,QAC1B,KAAA,EAAO,KAAK,MAAA,CAAO;AAAA;AACpB,KACD;AAAA,EACD;AAAA,EAEQ,yBACP,IAAA,EACoC;AACpC,IAAA,OAAO;AAAA,MACN,IAAI,IAAA,CAAK,EAAA;AAAA,MACT,sBAAA,EAAwB,IAAA,CAAK,sBAAA,CAAuB,GAAA,CAAI,CAAC,IAAA,MAAU;AAAA,QAClE,cAAc,IAAA,CAAK,YAAA;AAAA,QACnB,UAAU,IAAA,CAAK,QAAA;AAAA,QACf,UAAA,EAAY,YAAA,CAAa,IAAA,CAAK,UAAA,EAAY,CAAC,CAAA;AAAA,QAC3C,IAAA,EAAM,YAAA,CAAa,IAAA,CAAK,IAAI,CAAA;AAAA,QAC5B,QAAA,EAAU,YAAA,CAAa,IAAA,CAAK,QAAQ,CAAA;AAAA,QACpC,MAAA,EAAQ,YAAA,CAAa,IAAA,CAAK,MAAA,EAAQ,CAAC;AAAA,OACpC,CAAE,CAAA;AAAA,MACF,cAAA,EAAgB,KAAK,cAAA,CAAe,GAAA;AAAA,QAAI,CAAC,SACxC,OAAA,CAAQ;AAAA,UACP,MAAM,IAAA,CAAK,IAAA;AAAA,UACX,UAAA,EAAY,YAAA,CAAa,IAAA,CAAK,UAAA,EAAY,CAAC,CAAA;AAAA,UAC3C,IAAA,EAAM,YAAA,CAAa,IAAA,CAAK,IAAI,CAAA;AAAA,UAC5B,QAAA,EAAU,YAAA,CAAa,IAAA,CAAK,QAAQ,CAAA;AAAA,UACpC,MAAA,EAAQ,YAAA,CAAa,IAAA,CAAK,MAAA,EAAQ,CAAC;AAAA,SACnC;AAAA;AACF,KACD;AAAA,EACD;AAAA,EAEQ,kBACP,IAAA,EACmC;AACnC,IAAA,MAAM,CAAA,GAAsB;AAAA,MAC3B,IAAI,IAAA,CAAK,EAAA;AAAA,MACT,MAAM,IAAA,CAAK,IAAA;AAAA,MACX,QAAQ,IAAA,CAAK,MAAA;AAAA,MACb,QAAQ,IAAA,CAAK,MAAA;AAAA,MACb,WAAW,IAAA,CAAK,SAAA;AAAA,MAChB,aAAa,IAAA,CAAK,WAAA;AAAA,MAClB,iBAAiB,IAAA,CAAK,eAAA;AAAA,MACtB,KAAA,EAAO,KAAK,KAAA,IAAS;AAAA,KACtB;AAEA,IAAA,OAAO,QAAQ,CAAC,CAAA;AAAA,EACjB;AAAA,EAEQ,0BACP,IAAA,EACqC;AACrC,IAAA,OAAO;AAAA,MACN,IAAI,IAAA,CAAK,EAAA;AAAA,MACT,SAAA,EAAW,KAAK,SAAA,IAAa,MAAA;AAAA,MAC7B,QAAA,EAAU,KAAK,QAAA,IAAY,MAAA;AAAA,MAC3B,aAAa,IAAA,CAAK,WAAA,GAAc,IAAI,IAAA,CAAK,IAAA,CAAK,WAAW,CAAA,GAAI,MAAA;AAAA,MAC7D,YAAA,EAAc,KAAK,YAAA,IAAgB,MAAA;AAAA,MACnC,WAAA,EAAa,KAAK,WAAA,IAAe,MAAA;AAAA,MACjC,gBAAA,EAAkB,KAAK,gBAAA,IAAoB,MAAA;AAAA,MAC3C,cAAA,EAAgB,KAAK,cAAA,IAAkB,MAAA;AAAA,MACvC,cAAA,EAAgB,KAAK,cAAA,IAAkB,MAAA;AAAA,MACvC,YAAA,EAAc,KAAK,YAAA,IAAgB,MAAA;AAAA,MACnC,WAAA,EAAa,KAAK,WAAA,IAAe,MAAA;AAAA,MACjC,YAAA,EAAc,KAAK,YAAA,IAAgB,MAAA;AAAA,MACnC,QAAQ,IAAA,CAAK,MAAA;AAAA,MACb,uBAAuB,IAAA,CAAK,qBAAA;AAAA,MAC5B,sBAAsB,IAAA,CAAK,oBAAA;AAAA,MAC3B,uBAAuB,IAAA,CAAK,qBAAA;AAAA,MAC5B,uCACC,IAAA,CAAK,qCAAA;AAAA,MACN,sBAAsB,IAAA,CAAK,oBAAA;AAAA,MAC3B,0BAA0B,IAAA,CAAK,wBAAA;AAAA,MAC/B,OAAA,EAAS,KAAK,OAAA,IAAW,MAAA;AAAA,MACzB,eAAA,EAAiB,IAAI,IAAA,CAAK,IAAA,CAAK,eAAe,CAAA;AAAA,MAC9C,mBAAA,EAAqB,IAAI,IAAA,CAAK,IAAA,CAAK,mBAAmB,CAAA;AAAA,MACtD,kBAAkB,IAAA,CAAK,gBAAA,GACpB,IAAI,IAAA,CAAK,IAAA,CAAK,gBAAgB,CAAA,GAC9B,MAAA;AAAA,MACH,kBAAkB,IAAA,CAAK,gBAAA,GACpB,IAAI,IAAA,CAAK,IAAA,CAAK,gBAAgB,CAAA,GAC9B;AAAA,KACJ;AAAA,EACD;AACD;;;ACz5DA,SAAS,kBAAkB,KAAA,EAAwB;AAClD,EAAA,IAAI,CAAC,MAAA,CAAO,QAAA,CAAS,KAAK,CAAA,EAAG;AAC5B,IAAA,MAAM,IAAI,UAAU,wCAAwC,CAAA;AAAA,EAC7D;AAEA,EAAA,OAAO,KAAA;AACR;AAgBA,IAAM,aAAA,GAAgB;AAAA,EACrB,WAAA,EAAa,aAAA;AAAA,EACb,IAAA,EAAM;AACP,CAAA;AAEO,IAAM,MAAN,MAAU;AAAA;AAAA;AAAA;AAAA,EAIhB,MAAM,IAAA,GAAsB;AAC3B,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,cAAA,CAAe,aAAA,EAAc;AAEpD,IAAA,IAAI,IAAI,EAAA,EAAI;AACX,MAAA,MAAM,WAAA,GAAc,IAAA,CAAK,WAAA,CAAY,SAAA,CAAU,OAAA,CAAQ;AAAA,QACtD,GAAG,GAAA,CAAI,IAAA;AAAA,QACP,KAAA,EAAO;AAAA,OACP,CAAA;AAED,MAAA,IAAA,CAAK,YAAA,GAAe,aAAa,MAAA,IAAU,IAAA;AAAA,IAC5C;AAAA,EACD;AAAA,EAEQ,gBAAA;AAAA,EACA,WAAA;AAAA,EACA,WAAA;AAAA,EACA,WAAA;AAAA,EACA,aAAA;AAAA,EACA,gBAAA;AAAA,EACA,cAAA;AAAA,EACA,aAAA;AAAA,EACA,aAAA;AAAA,EACA,cAAA;AAAA,EACA,cAAA;AAAA,EACA,SAAA;AAAA,EACA,iBAAA;AAAA,EACA,WAAA;AAAA,EACA,MAAA;AAAA,EACA,KAAA;AAAA,EACA,MAAA;AAAA;AAAA;AAAA;AAAA,EAKD,YAAA,GAA8B,IAAA;AAAA,EAErC,YAAY,MAAA,EAAmB;AAC9B,IAAA,MAAM;AAAA;AAAA,MAEL,IAAA;AAAA,MACA,YAAA;AAAA,MACA,QAAA;AAAA,MACA,WAAA;AAAA,MACA;AAAA,KACD,GAAI,MAAA,CAAO,MAAA,CAAO,aAAA,EAAe,MAAM,CAAA;AAEvC,IAAA,MAAM,aAAa,WAAA,KAAgB,YAAA;AAEnC,IAAA,MAAM,MAAA,GAAS,IAAI,MAAA,CAAO;AAAA,MACzB,OAAA,EAAS;AAAA,KACT,CAAA;AAED,IAAA,MAAM,SAAA,GAAY,IAAI,SAAA,CAAU,EAAE,QAAQ,CAAA;AAC1C,IAAA,MAAM,iBAAA,GAAoB,IAAI,iBAAA,CAAkB,EAAE,QAAQ,CAAA;AAE1D,IAAA,MAAM,WAAA,GAAc,IAAI,WAAA,EAAY;AAEpC,IAAA,MAAM,OAAA,GAAU,SAAA,CAAU,WAAW,CAAA,CAAE,IAAA;AACvC,IAAA,MAAM,SAAA,GAAY,SAAA,CAAU,WAAW,CAAA,CAAE,MAAA;AACzC,IAAA,MAAM,YAAA,GAAe,SAAA,CAAU,WAAW,CAAA,CAAE,SAAA;AAC5C,IAAA,MAAM,SAAA,GAAY,SAAA,CAAU,WAAW,CAAA,CAAE,MAAA;AACzC,IAAA,MAAM,UAAA,GAAa,SAAA,CAAU,WAAW,CAAA,CAAE,OAAA;AAC1C,IAAA,MAAM,SAAA,GAAY,SAAA,CAAU,WAAW,CAAA,CAAE,MAAA;AACzC,IAAA,MAAM,OAAA,GAAU,SAAA,CAAU,WAAW,CAAA,CAAE,IAAA;AACvC,IAAA,MAAM,OAAA,GAAU,SAAA,CAAU,WAAW,CAAA,CAAE,IAAA;AACvC,IAAA,MAAM,UAAA,GAAa,SAAA,CAAU,WAAW,CAAA,CAAE,OAAA;AAC1C,IAAA,MAAM,YAAA,GAAe,SAAA,CAAU,WAAW,CAAA,CAAE,SAAA;AAE5C,IAAA,MAAM,gBAAA,GAAmB,IAAI,gBAAA,CAAiB,OAAO;AAAA,MACpD,GAAA,EAAK,YAAA;AAAA,MACL,IAAA;AAAA,MACA,QAAA,EAAU,YAAA;AAAA,MACV,KAAA,EAAO,KAAK,QAAA;AAAS,KACtB,CAAE,CAAA;AAEF,IAAA,IAAA,CAAK,MAAA,GAAS,OAAO,KAAA,IAAS,IAAA;AAC9B,IAAA,IAAA,CAAK,WAAA,GAAc,MAAA,CAAO,UAAA,KAAe,CAAC,GAAA,KAAQ,GAAA,CAAA;AAElD,IAAA,MAAM,sBAAsB,OAC1B;AAAA,MACA,WAAA,EAAa;AAAA;AAAA,QAEZ,IAAA,CAAK,cAAA;AAAA,QACL,IAAA,CAAK,qBAAA;AAAA,QACL,IAAA,CAAK,cAAA;AAAA,QACL,IAAA,CAAK;AAAA,OACN;AAAA,MACA,KAAA,EAAO,KAAK,QAAA,EAAS;AAAA,MACrB,YAAA,EAAc;AAAA,QACb,OAAA,EAAS;AAAA,UACR,IAAA,EAAM,QAAA;AAAA,UACN,eAAA,EAAiB;AAAA;AAClB;AACD,KACD,CAAA;AAED,IAAA,MAAM,cAAc,IAAI,WAAA;AAAA,MACvB,IAAI,aAAA,CAAc,OAAA,EAAS,mBAAmB;AAAA,KAC/C;AACA,IAAA,MAAM,mBAAmB,IAAI,gBAAA;AAAA,MAC5B,IAAI,aAAA,CAAc,YAAA,EAAc,mBAAmB;AAAA,KACpD;AACA,IAAA,MAAM,cAAc,IAAI,WAAA;AAAA,MACvB,IAAI,aAAA,CAAc,OAAA,EAAS,mBAAmB;AAAA,KAC/C;AACA,IAAA,MAAM,gBAAgB,IAAI,aAAA;AAAA,MACzB,IAAI,aAAA,CAAc,SAAA,EAAW,mBAAmB;AAAA,KACjD;AACA,IAAA,MAAM,iBAAiB,IAAI,cAAA;AAAA,MAC1B,IAAI,aAAA,CAAc,UAAA,EAAY,mBAAmB,CAAA;AAAA,MACjD;AAAA,KACD;AACA,IAAA,MAAM,gBAAgB,IAAI,aAAA;AAAA,MACzB,IAAI,aAAA,CAAc,SAAA,EAAW,mBAAmB;AAAA,KACjD;AACA,IAAA,MAAM,gBAAgB,IAAI,aAAA;AAAA,MACzB,IAAI,aAAA,CAAc,SAAA,EAAW,mBAAmB;AAAA,KACjD;AACA,IAAA,MAAM,iBAAiB,IAAI,cAAA;AAAA,MAC1B,IAAI,aAAA,CAAc,UAAA,EAAY,mBAAmB;AAAA,KAClD;AAEA,IAAA,MAAM,WAAA,GAAc,IAAI,WAAA,CAAY;AAAA,MACnC,GAAA,EAAK,OAAA;AAAA,MACL,YAAA,EAAc;AAAA,QACb,OAAA,EAAS;AAAA,UACR,IAAA,EAAM,QAAA;AAAA,UACN,eAAA,EAAiB,QAAA;AAAA,UAEjB,GAAI,CAAC,UAAA,IAAc;AAAA,YAClB,WAAA,EAAa;AAAA;AACd;AACD;AACD,KACA,CAAA;AAED,IAAA,MAAM,cAAA,GACL,MAAA,CAAO,cAAA,KAAmB,QAAA,GACvB,IAAI,oBAAA,CAAqB;AAAA,MACzB,MAAA;AAAA,MACA,WAAA;AAAA,MACA;AAAA,KACA,CAAA,GACA,IAAI,cAAA,CAAe;AAAA,MACnB,MAAA;AAAA,MACA,WAAA;AAAA,MACA;AAAA,KACA,CAAA;AAEJ,IAAA,IAAA,CAAK,MAAA,GAAS,MAAA;AACd,IAAA,IAAA,CAAK,SAAA,GAAY,SAAA;AACjB,IAAA,IAAA,CAAK,iBAAA,GAAoB,iBAAA;AACzB,IAAA,IAAA,CAAK,WAAA,GAAc,WAAA;AACnB,IAAA,IAAA,CAAK,WAAA,GAAc,WAAA;AACnB,IAAA,IAAA,CAAK,WAAA,GAAc,WAAA;AACnB,IAAA,IAAA,CAAK,gBAAA,GAAmB,gBAAA;AACxB,IAAA,IAAA,CAAK,WAAA,GAAc,WAAA;AACnB,IAAA,IAAA,CAAK,aAAA,GAAgB,aAAA;AACrB,IAAA,IAAA,CAAK,cAAA,GAAiB,cAAA;AACtB,IAAA,IAAA,CAAK,aAAA,GAAgB,aAAA;AACrB,IAAA,IAAA,CAAK,aAAA,GAAgB,aAAA;AACrB,IAAA,IAAA,CAAK,cAAA,GAAiB,cAAA;AACtB,IAAA,IAAA,CAAK,cAAA,GAAiB,cAAA;AACtB,IAAA,IAAA,CAAK,gBAAA,GAAmB,gBAAA;AACxB,IAAA,IAAA,CAAK,KAAA,GAAQ,IAAI,KAAA,EAAM;AACvB,IAAA,IAAA,CAAK,MAAA,GAAS;AAAA,MACb,WAAA;AAAA,MACA,IAAA;AAAA,MACA,QAAA;AAAA,MACA,YAAA;AAAA,MACA;AAAA,KACD;AAEA,IAAA,IAAA,CAAK,kBAAA,EAAmB;AACxB,IAAA,IAAA,CAAK,gBAAA,EAAiB;AAAA,EACvB;AAAA,EAEQ,MAAA,GAAyC,IAAA;AAAA,EACzC,WAAA;AAAA;AAAA;AAAA;AAAA,EAKR,IAAI,MAAM,KAAA,EAAuC;AAChD,IAAA,IAAA,CAAK,MAAA,GAAS,KAAA;AAAA,EACf;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,KAAA,GAAQ;AACX,IAAA,OAAO,IAAA,CAAK,MAAA;AAAA,EACb;AAAA,EAEA,MAAM,SAAS,KAAA,EAAuC;AACrD,IAAA,OAAO,IAAI,OAAA,CAAc,CAAC,OAAA,KAAY;AACrC,MAAA,IAAA,CAAK,MAAA,GAAS,KAAA;AACd,MAAA,UAAA,CAAW,MAAM,OAAA,EAAQ,EAAG,CAAC,CAAA;AAAA,IAC9B,CAAC,CAAA;AAAA,EACF;AAAA,EAEA,QAAA,GAAW;AACV,IAAA,OAAO,IAAA,CAAK,MAAA;AAAA,EACb;AAAA,EAEA,IAAI,WAAW,KAAA,EAAgC;AAC9C,IAAA,IAAA,CAAK,WAAA,GAAc,KAAA;AAAA,EACpB;AAAA,EAEA,IAAI,UAAA,GAAa;AAChB,IAAA,OAAO,IAAA,CAAK,WAAA;AAAA,EACb;AAAA,EAEA,gBAAA,GAAyB;AACxB,IAAA,IAAI,OAAO,WAAW,WAAA,EAAa;AAEnC,IAAA,MAAM,YAAA,GAAe,IAAI,eAAA,CAAgB,MAAA,CAAO,SAAS,MAAM,CAAA;AAC/D,IAAA,MAAM,QAAA,GAAW,OAAO,QAAA,CAAS,QAAA;AACjC,IAAA,MAAM,MAAA,GAAS,YAAA,CAAa,GAAA,CAAI,QAAQ,CAAA;AACxC,IAAA,MAAM,SAAA,GAAY,KAAK,SAAA,CAAU,OAAA;AAEjC,IAAA,IAAI,SAAA,CAAU,kBAAiB,EAAG;AACjC,MAAA,MAAM,QAAA,GAAW,UAAU,WAAA,EAAY;AAEvC,MAAA,IAAI,aAAa,KAAA,EAAO;AACvB,QAAA,cAAA,CAAe,OAAA,CAAQ,QAAA,EAAU,CAAA,EAAG,QAAQ,CAAA,IAAA,CAAM,CAAA;AAAA,MACnD,CAAA,MAAO;AACN,QAAA,cAAA,CAAe,OAAA,CAAQ,QAAA,EAAU,CAAA,EAAG,QAAQ,CAAA,QAAA,CAAU,CAAA;AAAA,MACvD;AAEA,MAAA;AAAA,IACD;AAEA,IAAA,MAAM,aAAA,GAAgB,cAAA,CAAe,OAAA,CAAQ,QAAQ,CAAA;AAErD,IAAA,IAAI,MAAA,EAAQ;AACX,MAAA,cAAA,CAAe,QAAQ,QAAA,EAAU,CAAA,EAAG,QAAQ,CAAA,CAAA,EAAI,MAAM,CAAA,CAAE,CAAA;AAAA,IACzD,CAAA,MAAA,IAAW,SAAA,IAAa,CAAC,aAAA,EAAe;AACvC,MAAA,cAAA,CAAe,OAAA,CAAQ,QAAA,EAAU,CAAA,EAAG,QAAQ,CAAA,SAAA,CAAW,CAAA;AAAA,IACxD,CAAA,MAAA,IAAW,CAAC,aAAA,EAAe;AAC1B,MAAA,cAAA,CAAe,OAAA,CAAQ,UAAU,QAAQ,CAAA;AAAA,IAC1C;AAEA,IAAA,IAAI,MAAA,EAAQ;AACX,MAAA,UAAA,CAAW,MAAM;AAChB,QAAA,MAAM,GAAA,GAAM,IAAI,GAAA,CAAI,MAAA,CAAO,SAAS,IAAI,CAAA;AACxC,QAAA,GAAA,CAAI,YAAA,CAAa,OAAO,QAAQ,CAAA;AAChC,QAAA,MAAA,CAAO,QAAQ,YAAA,CAAa,IAAI,EAAA,EAAI,GAAA,CAAI,UAAU,CAAA;AAAA,MACnD,GAAG,CAAC,CAAA;AAAA,IACL;AAAA,EACD;AAAA,EAEA,IAAI,aAAa,KAAA,EAAsB;AACtC,IAAA,IAAI,OAAO,WAAW,WAAA,EAAa;AAEnC,IAAA,IAAI,SAAA,CAAU,kBAAiB,EAAG;AACjC,MAAA,IAAI,KAAA,EAAO;AACV,QAAA,YAAA,CAAa,OAAA,CAAQ,UAAU,KAAK,CAAA;AAAA,MACrC,CAAA,MAAO;AACN,QAAA,YAAA,CAAa,WAAW,QAAQ,CAAA;AAAA,MACjC;AAAA,IACD,CAAA,MAAO;AACN,MAAA,IAAI,KAAA,EAAO;AACV,QAAA,cAAA,CAAe,OAAA,CAAQ,UAAU,KAAK,CAAA;AAAA,MACvC,CAAA,MAAO;AACN,QAAA,cAAA,CAAe,WAAW,QAAQ,CAAA;AAAA,MACnC;AAAA,IACD;AAAA,EACD;AAAA,EAEA,IAAI,YAAA,GAA8B;AACjC,IAAA,IAAI,OAAO,MAAA,KAAW,WAAA,EAAa,OAAO,IAAA;AAE1C,IAAA,IAAI,SAAA,CAAU,kBAAiB,EAAG;AACjC,MAAA,OAAO,YAAA,CAAa,QAAQ,QAAQ,CAAA;AAAA,IACrC;AAEA,IAAA,OAAO,cAAA,CAAe,QAAQ,QAAQ,CAAA;AAAA,EACvC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,IAAI,UAAU,KAAA,EAAsB;AACnC,IAAA,IAAA,CAAK,UAAU,OAAA,GAAU,KAAA;AAAA,EAC1B;AAAA,EAEA,IAAI,SAAA,GAAY;AACf,IAAA,OAAO,KAAK,SAAA,CAAU,OAAA;AAAA,EACvB;AAAA,EAEA,IAAI,IAAI,KAAA,EAAsB;AAC7B,IAAA,IAAA,CAAK,UAAU,GAAA,GAAM,KAAA;AAAA,EACtB;AAAA,EAEA,IAAI,GAAA,GAAM;AACT,IAAA,OAAO,KAAK,SAAA,CAAU,GAAA;AAAA,EACvB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,IAAI,IAAI,KAAA,EAAsB;AAC7B,IAAA,IAAA,CAAK,kBAAkB,GAAA,GAAM,KAAA;AAAA,EAC9B;AAAA,EAEA,IAAI,GAAA,GAAM;AACT,IAAA,OAAO,KAAK,iBAAA,CAAkB,GAAA;AAAA,EAC/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,IAAY,MAAA,GAAS;AACpB,IAAA,OAAO,IAAI,OAAA,CAAgB,CAAC,OAAA,KAAY;AACvC,MAAA,MAAM,QAAA,GAAW,QAAA;AACjB,MAAA,MAAM,UAAA,GAAa,IAAA,CAAK,KAAA,CAAM,GAAA,CAAY,QAAQ,CAAA;AAElD,MAAA,IAAI,UAAA,EAAY,OAAO,OAAA,CAAQ,UAAU,CAAA;AAEzC,MAAA,IAAA,CAAK,cAAA,EAAe,CAAE,IAAA,CAAK,CAAC,GAAA,KAAQ;AACnC,QAAA,IAAI,IAAI,EAAA,EAAI;AACX,UAAA,IAAA,CAAK,KAAA,CAAM,GAAA,CAAI,QAAA,EAAU,GAAA,CAAI,KAAK,MAAM,CAAA;AACxC,UAAA,OAAA,CAAQ,GAAA,CAAI,KAAK,MAAM,CAAA;AAAA,QACxB,CAAA,MAAO;AACN,UAAA,IAAA,CAAK,MAAA,CAAO,KAAK,kDAAkD,CAAA;AACnE,UAAA,OAAA,CAAQ,OAAO,CAAA;AAAA,QAChB;AAAA,MACD,CAAC,CAAA;AAAA,IACF,CAAC,CAAA;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,IAAY,cAAA,GAA0C;AACrD,IAAA,OAAO,OAAO,OAAA,KAAY;AACzB,MAAA,IAAA,CAAK,MAAA,CAAO,KAAK,sBAAsB,CAAA;AAEvC,MAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,cAAA,CAAe,GAAA,EAAI;AAE1C,MAAA,IAAI,IAAI,IAAA,EAAM;AACb,QAAA,OAAA,CAAQ,QAAQ,GAAA,CAAI,eAAA,EAAiB,UAAU,GAAA,CAAI,IAAA,CAAK,WAAW,CAAA,CAAE,CAAA;AACrE,QAAA,IAAA,CAAK,MAAA,CAAO,KAAK,eAAe,CAAA;AAChC,QAAA,IAAA,CAAK,MAAA,CAAO,QAAQ,8BAA8B,CAAA;AAAA,MACnD,CAAA,MAAO;AACN,QAAA,IAAA,CAAK,MAAA,CAAO,KAAK,kBAAkB,CAAA;AAAA,MACpC;AAEA,MAAA,OAAO,OAAA;AAAA,IACR,CAAA;AAAA,EACD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,IAAY,qBAAA,GAAiD;AAC5D,IAAA,OAAO,OAAO,OAAA,KAAY;AACzB,MAAA,MAAM,WAAA,GAAc,MAAM,IAAA,CAAK,WAAA,EAAY;AAE3C,MAAA,IAAI,eAAe,CAAC,OAAA,CAAQ,OAAA,CAAQ,GAAA,CAAI,aAAa,CAAA,EAAG;AACvD,QAAA,OAAA,CAAQ,OAAA,CAAQ,GAAA,CAAI,aAAA,EAAe,WAAW,CAAA;AAAA,MAC/C;AAEA,MAAA,OAAO,OAAA;AAAA,IACR,CAAA;AAAA,EACD;AAAA,EAEA,MAAM,WAAA,GAAc;AACnB,IAAA,OAAO,MAAM,cAAA,CAAe,IAAA,CAAK,MAAA,CAAO,eAAe,aAAa,CAAA;AAAA,EACrE;AAAA,EAEA,IAAY,cAAA,GAA0C;AACrD,IAAA,OAAO,OAAO,OAAA,KAAY;AACzB,MAAA,MAAM,SAAA,GAAY,KAAK,SAAA,CAAU,OAAA;AACjC,MAAA,IAAI,SAAA,EAAW,OAAA,CAAQ,OAAA,CAAQ,GAAA,CAAI,eAAe,SAAS,CAAA;AAE3D,MAAA,MAAM,GAAA,GAAM,KAAK,SAAA,CAAU,GAAA;AAC3B,MAAA,IAAI,GAAA,EAAK,OAAA,CAAQ,OAAA,CAAQ,GAAA,CAAI,OAAO,GAAG,CAAA;AAEvC,MAAA,OAAO,OAAA;AAAA,IACR,CAAA;AAAA,EACD;AAAA,EAEA,kBAAA,GAA2B;AAC1B,IAAA,IAAI,OAAO,WAAW,WAAA,EAAa;AAEnC,IAAA,MAAM,YAAA,GAAe,IAAI,eAAA,CAAgB,MAAA,CAAO,SAAS,MAAM,CAAA;AAC/D,IAAA,MAAM,MAAA,GAAS,YAAA,CAAa,GAAA,CAAI,QAAQ,CAAA;AACxC,IAAA,MAAM,GAAA,GAAM,UAAU,MAAM,CAAA;AAC5B,IAAA,MAAM,GAAA,GAAM,UAAU,MAAM,CAAA;AAE5B,IAAA,IAAI,MAAA,EAAQ;AACX,MAAA,IAAA,CAAK,SAAA,GAAY,MAAA;AAAA,IAClB,WAAW,GAAA,EAAK;AACf,MAAA,IAAA,CAAK,SAAA,GAAY,GAAA,CAAI,QAAA,CAAS,GAAG,CAAA,GAAI,GAAA,CAAI,KAAA,CAAM,GAAG,CAAA,CAAE,GAAA,EAAI,IAAK,GAAA,GAAM,GAAA;AAAA,IACpE;AAEA,IAAA,IAAI,GAAA,EAAK;AACR,MAAA,IAAA,CAAK,GAAA,GAAM,GAAA;AAAA,IACZ;AAAA,EACD;AAAA,EAeA,MAAM,OAAO,KAAA,EAA2C;AACvD,IAAA,IAAI,KAAA,CAAM,SAAS,OAAA,EAAS;AAC3B,MAAA,OAAA,CAAQ,IAAA;AAAA,QACP;AAAA,OACD;AAAA,IACD;AAEA,IAAA,QAAQ,MAAM,IAAA;AAAM,MACnB,KAAK,mBAAA,EAAqB;AACzB,QAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,cAAA,CAAe,MAAA,CAAO;AAAA,UAC5C,GAAG,KAAA;AAAA,UACH,QAAA,EAAU,MAAM,MAAA,CAAO,KAAA,CAAM,QAAQ;AAAA,SACrC,CAAA;AAED,QAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AACpB,QAAA,IAAI,IAAI,IAAA,EAAM;AACb,UAAA,OAAO;AAAA,YACN,EAAA,EAAI,IAAA;AAAA,YACJ,IAAA,EAAM;AAAA,cACL,YAAA,EAAc,IAAA;AAAA,cACd,aAAA,EAAe,IAAI,IAAA,CAAK;AAAA;AACzB,WACD;AAAA,QACD;AAEA,QAAA,OAAO;AAAA,UACN,EAAA,EAAI,IAAA;AAAA,UACJ,IAAA,EAAM;AAAA,YACL,YAAA,EAAc;AAAA;AACf,SACD;AAAA,MACD;AAAA,MAEA,KAAK,SAAA;AAAA,MACL,KAAK,OAAA,EAAS;AACb,QAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,cAAA,CAAe,MAAA,CAAO;AAAA,UAC5C,IAAA,EAAM,SAAA;AAAA,UACN,OAAO,KAAA,CAAM,KAAA;AAAA,UACb,SAAS,KAAA,CAAM;AAAA,SACf,CAAA;AAED,QAAA,OAAO,GAAA,CAAI,EAAA,GAAK,EAAE,EAAA,EAAI,MAAK,GAAI,GAAA;AAAA,MAChC;AAAA,MAEA,KAAK,SAAA,EAAW;AACf,QAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,cAAA,CAAe,MAAA,CAAO;AAAA,UAC5C,IAAA,EAAM,SAAA;AAAA,UACN,OAAO,KAAA,CAAM,KAAA;AAAA,UACb,SAAS,KAAA,CAAM;AAAA,SACf,CAAA;AAED,QAAA,OAAO,GAAA,CAAI,EAAA,GAAK,EAAE,EAAA,EAAI,MAAK,GAAI,GAAA;AAAA,MAChC;AAAA,MAEA,KAAK,eAAA,EAAiB;AACrB,QAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,cAAA,CAAe,MAAA,CAAO;AAAA,UAC5C,IAAA,EAAM,eAAA;AAAA,UACN,cAAc,WAAA,CAAY,KAAA,CAAM,YAAA,EAAc,MAAM,KAAK,MAAM,CAAA;AAAA,UAC/D,kBAAkB,KAAA,CAAM,gBAAA;AAAA,UACxB,mBAAmB,KAAA,CAAM,iBAAA;AAAA,UACzB,UAAU,KAAA,CAAM,QAAA;AAAA,UAChB,SAAS,KAAA,CAAM;AAAA,SACf,CAAA;AAED,QAAA,OAAO,GAAA,CAAI,EAAA,GAAK,EAAE,EAAA,EAAI,MAAK,GAAI,GAAA;AAAA,MAChC;AAAA,MAEA,KAAK,kBAAA,EAAoB;AACxB,QAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,cAAA,CAAe,MAAA,CAAO;AAAA,UAC5C,IAAA,EAAM,kBAAA;AAAA,UACN,OAAO,KAAA,CAAM,KAAA;AAAA,UACb,SAAS,KAAA,CAAM;AAAA,SACf,CAAA;AAED,QAAA,OAAO,GAAA,CAAI,EAAA,GAAK,EAAE,EAAA,EAAI,MAAK,GAAI,GAAA;AAAA,MAChC;AAAA,MAEA,SAAS;AACR,QAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,cAAA,CAAe,OAAO,KAAK,CAAA;AAElD,QAAA,OAAO,GAAA,CAAI,EAAA,GAAK,EAAE,EAAA,EAAI,MAAK,GAAI,GAAA;AAAA,MAChC;AAAA;AACD,EACD;AAAA,EAEA,MAAM,aAAa,KAAA,EAAuD;AACzE,IAAA,QAAQ,MAAM,IAAA;AAAM,MACnB,KAAK,mBAAA,EAAqB;AACzB,QAAA,OAAO,MAAM,IAAA,CAAK,cAAA,CAAe,uBAAA,CAAwB;AAAA,UACxD,IAAA,EAAM,mBAAA;AAAA,UACN,OAAO,KAAA,CAAM,KAAA;AAAA,UACb,SAAS,KAAA,CAAM,OAAA;AAAA,UACf,YAAA,EAAc,MAAM,MAAA,CAAO,KAAA,CAAM,YAAY;AAAA,SAC7C,CAAA;AAAA,MACF;AAAA,MAEA,SAAS;AACR,QAAA,OAAO;AAAA,UACN,EAAA,EAAI,KAAA;AAAA,UACJ,KAAA,EAAO;AAAA,YACN,IAAA,EAAM,gBAAA;AAAA,YACN,OAAA,EAAS;AAAA;AACV,SACD;AAAA,MACD;AAAA;AACD,EACD;AAAA,EAEA,MAAM,OAAA,GAAU;AACf,IAAA,MAAM,IAAA,CAAK,eAAe,OAAA,EAAQ;AAAA,EACnC;AAAA,EAEA,aAAa,KAAA,EAA0B;AACtC,IAAA,MAAM,WAAW,KAAA,CAAM,KAAA,CAAM,QAAA,IAAY,GAAA,EAAO,KAAO,GAAK,CAAA;AAE5D,IAAA,IAAI,OAAA,GAAiC,IAAA;AAErC,IAAA,MAAM,gBAAgB,MAAM;AAC3B,MAAA,OAAO,WAAW,YAAY;AAC7B,QAAA,MAAM,CAAA,GAAI,MAAM,IAAA,CAAK,cAAA,CAAe,MAAA,EAAO;AAE3C,QAAA,IAAI,CAAC,CAAA,EAAG;AACP,UAAA,MAAM,MAAM,SAAA,EAAU;AAAA,QACvB;AAEA,QAAA,OAAA,GAAU,aAAA,EAAc;AAAA,MACzB,GAAG,QAAQ,CAAA;AAAA,IACZ,CAAA;AAEA,IAAA,OAAA,GAAU,aAAA,EAAc;AAExB,IAAA,OAAO,SAAS,WAAA,GAAc;AAC7B,MAAA,IAAI,OAAA,EAAS;AACZ,QAAA,YAAA,CAAa,OAAO,CAAA;AAAA,MACrB;AAAA,IACD,CAAA;AAAA,EACD;AAAA,EAEA,MAAM,OAAA,GAAkC;AACvC,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,cAAA,CAAe,GAAA,EAAI;AAE1C,IAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAEpB,IAAA,OAAO;AAAA,MACN,EAAA,EAAI,IAAA;AAAA,MACJ,IAAA,EAAM,IAAI,IAAA,GACP;AAAA,QACA,EAAA,EAAI,GAAA,CAAI,IAAA,CAAK,OAAA,CAAQ,EAAA;AAAA,QACrB,IAAA,EAAM,KAAK,cAAA,CAAe,MAAA;AAAA,QAC1B,OAAA,EAAS,KAAK,cAAA,CAAe,SAAA;AAAA,QAC7B,WAAA,EAAa,IAAI,IAAA,CAAK,WAAA;AAAA,QACtB,YAAA,EAAc,IAAI,IAAA,CAAK,YAAA;AAAA,QACvB,iBAAiB,IAAI,IAAA,CAAK,GAAA,CAAI,IAAA,CAAK,QAAQ,eAAe;AAAA,OAC3D,GACC;AAAA,KACJ;AAAA,EACD;AAAA,EAEA,MAAM,cAAA,GAAyC;AAC9C,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,cAAA,CAAe,OAAA,EAAQ;AAE9C,IAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAEpB,IAAA,OAAO;AAAA,MACN,EAAA,EAAI,IAAA;AAAA,MACJ,IAAA,EAAM,IAAI,IAAA,GACP;AAAA,QACA,EAAA,EAAI,GAAA,CAAI,IAAA,CAAK,OAAA,CAAQ,EAAA;AAAA,QACrB,IAAA,EAAM,KAAK,cAAA,CAAe,MAAA;AAAA,QAC1B,OAAA,EAAS,KAAK,cAAA,CAAe,SAAA;AAAA,QAC7B,WAAA,EAAa,IAAI,IAAA,CAAK,WAAA;AAAA,QACtB,YAAA,EAAc,IAAI,IAAA,CAAK,YAAA;AAAA,QACvB,iBAAiB,IAAI,IAAA,CAAK,GAAA,CAAI,IAAA,CAAK,QAAQ,eAAe;AAAA,OAC3D,GACC;AAAA,KACJ;AAAA,EACD;AAAA,EAEA,MAAM,mBAAA,GAA0D;AAC/D,IAAA,OAAO,MAAM,IAAA,CAAK,aAAA,CAAc,mBAAA,EAAoB;AAAA,EACrD;AAAA,EAEA,MAAM,oBAAA,GAA4D;AACjE,IAAA,MAAM,IAAA,GAAO,MAAM,IAAA,CAAK,cAAA,CAAe,GAAA,EAAI;AAE3C,IAAA,IAAI,CAAC,IAAA,CAAK,EAAA,IAAM,CAAC,KAAK,IAAA,EAAM;AAC3B,MAAA,OAAO;AAAA,QACN,EAAA,EAAI,KAAA;AAAA,QACJ,KAAA,EAAO;AAAA,UACN,IAAA,EAAM,cAAA;AAAA,UACN,OAAA,EAAS;AAAA;AACV,OACD;AAAA,IACD;AAEA,IAAA,MAAM,IAAA,GAAO,MAAM,IAAA,CAAK,WAAA,CAAY,oBAAA;AAAA,MACnC,KAAK,IAAA,CAAK;AAAA,KACX;AAEA,IAAA,IAAI,CAAC,IAAA,CAAK,EAAA,EAAI,OAAO,IAAA;AAErB,IAAA,OAAO,EAAE,EAAA,EAAI,IAAA,EAAM,IAAA,EAAM,IAAA,CAAK,KAAK,KAAA,EAAM;AAAA,EAC1C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,MAAM,IAAA,GAA4B;AACjC,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,gBAAA,CAAiB,IAAA,EAAK;AAE7C,IAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAEpB,IAAA,OAAO;AAAA,MACN,EAAA,EAAI,IAAA;AAAA,MACJ,MAAM,IAAA,CAAK,WAAA,CAAY,SAAA,CAAU,IAAA,CAAK,IAAI,IAAI;AAAA,KAC/C;AAAA,EACD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,MAAM,wBAAA,GAA8D;AACnE,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,gBAAA,CAAiB,wBAAA,EAAyB;AAEjE,IAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAEpB,IAAA,OAAO;AAAA,MACN,EAAA,EAAI,IAAA;AAAA,MACJ,IAAA,EAAM,IAAI,IAAA,GACP,IAAA,CAAK,YAAY,SAAA,CAAU,wBAAA,CAAyB,GAAA,CAAI,IAAI,CAAA,GAC5D;AAAA,KACJ;AAAA,EACD;AAAA,EAEA,MAAM,wBAAwB,EAAA,EAA8C;AAC3E,IAAA,MAAM,MAAM,MAAM,IAAA,CAAK,cAAc,iBAAA,CAAkB,EAAE,IAAI,CAAA;AAE7D,IAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAEpB,IAAA,OAAO;AAAA,MACN,EAAA,EAAI,IAAA;AAAA,MACJ,IAAA,EAAM,IAAI,IAAA,GACP,IAAA,CAAK,YAAY,SAAA,CAAU,iBAAA,CAAkB,GAAA,CAAI,IAAI,CAAA,GACrD;AAAA,KACJ;AAAA,EACD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAM,QAAA,GAAoC;AACzC,IAAA,OAAA,CAAQ,IAAA;AAAA,MACP;AAAA,KACD;AAEA,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,cAAA,CAAe,QAAA,EAAS;AAE/C,IAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAEpB,IAAA,OAAO;AAAA,MACN,EAAA,EAAI,IAAA;AAAA,MACJ,MAAM,IAAA,CAAK,WAAA,CAAY,SAAA,CAAU,QAAA,CAAS,IAAI,IAAI;AAAA,KACnD;AAAA,EACD;AAAA,EAEA,MAAM,cAAA,GAAgD;AACrD,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,aAAA,CAAc,QAAA,EAAS;AAE9C,IAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAEpB,IAAA,OAAO;AAAA,MACN,EAAA,EAAI,IAAA;AAAA,MACJ,MAAM,IAAA,CAAK,WAAA,CAAY,SAAA,CAAU,cAAA,CAAe,IAAI,IAAI;AAAA,KACzD;AAAA,EACD;AAAA,EAEA,MAAM,eAAA,GAAkD;AACvD,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,cAAA,CAAe,eAAA,EAAgB;AAEtD,IAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAEpB,IAAA,OAAO;AAAA,MACN,EAAA,EAAI,IAAA;AAAA,MACJ,MAAM,IAAA,CAAK,WAAA,CAAY,SAAA,CAAU,eAAA,CAAgB,IAAI,IAAI;AAAA,KAC1D;AAAA,EACD;AAAA,EAEA,MAAM,mBAAA,GAA0D;AAC/D,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,cAAA,CAAe,mBAAA,EAAoB;AAE1D,IAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAEpB,IAAA,OAAO;AAAA,MACN,EAAA,EAAI,IAAA;AAAA,MACJ,MAAM,IAAA,CAAK,WAAA,CAAY,SAAA,CAAU,mBAAA,CAAoB,IAAI,IAAI;AAAA,KAC9D;AAAA,EACD;AAAA,EAEA,MAAM,0BAAA,GAAwE;AAC7E,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,cAAA,CAAe,0BAAA,EAA2B;AAEjE,IAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AACpB,IAAA,OAAO;AAAA,MACN,EAAA,EAAI,IAAA;AAAA,MACJ,IAAA,EAAM,IAAI,IAAA,CAAK;AAAA,KAChB;AAAA,EACD;AAAA,EACA,MAAM,mBAAA,GAA0D;AAC/D,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,cAAA,CAAe,mBAAA,EAAoB;AAE1D,IAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAEpB,IAAA,OAAO;AAAA,MACN,EAAA,EAAI,IAAA;AAAA,MACJ,MAAM,IAAA,CAAK,WAAA,CAAY,SAAA,CAAU,mBAAA,CAAoB,IAAI,IAAI;AAAA,KAC9D;AAAA,EACD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,MAAM,OAAA,GAAkC;AACvC,IAAA,MAAM,CAAC,CAAA,EAAG,CAAC,CAAA,GAAI,MAAM,QAAQ,GAAA,CAAI;AAAA,MAChC,IAAA,CAAK,eAAe,aAAA,EAAc;AAAA,MAClC,IAAA,CAAK,cAAc,MAAA;AAAO,KAC1B,CAAA;AAED,IAAA,IAAI,CAAC,CAAA,CAAE,EAAA,EAAI,OAAO,CAAA;AAElB,IAAA,MAAM,IAAI,CAAA,CAAE,EAAA,GAAK,EAAE,IAAA,GAAO,EAAE,OAAO,CAAA,EAAE;AAErC,IAAA,OAAO;AAAA,MACN,EAAA,EAAI,IAAA;AAAA,MACJ,IAAA,EAAM,IAAA,CAAK,WAAA,CAAY,SAAA,CAAU,OAAA,CAAQ,EAAE,GAAG,CAAA,CAAE,IAAA,EAAM,GAAG,CAAA,EAAG;AAAA,KAC7D;AAAA,EACD;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,cAAc,KAAA,EAAyD;AAC5E,IAAA,OAAA,CAAQ,IAAA;AAAA,MACP;AAAA,KACD;AAEA,IAAA,MAAM,EAAA,GAAK,MAAM,EAAA,IAAM,QAAA,CAAS,SAAS,UAAA,CAAW,OAAO,EAAE,QAAA,EAAS;AAEtE,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,cAAA,CAAe,qBAAA,CAAsB;AAAA,MAC3D,KAAA,EAAO;AAAA,QACN,EAAA;AAAA,QACA,MAAM,KAAA,CAAM,IAAA;AAAA,QACZ,MAAM,KAAA,CAAM,IAAA;AAAA,QACZ,QAAQ,KAAA,CAAM,MAAA;AAAA,QACd,QAAA,EACC,OAAO,KAAA,CAAM,WAAA,KAAgB,QAAA,GAC1B,MAAM,WAAA,GACN,IAAA,CAAK,SAAA,CAAU,KAAA,CAAM,WAAW,CAAA;AAAA,QACpC,QAAA,EAAU,MAAM,MAAA,CAAO,KAAA,CAAM,QAAQ,CAAA;AAAA,QACrC,cAAc,WAAA,CAAY,KAAA,CAAM,YAAA,EAAc,MAAM,KAAK,MAAM,CAAA;AAAA,QAC/D,wBAAwB,KAAA,CAAM;AAAA,OAC/B;AAAA,MACA,cAAc,KAAA,CAAM,YAAA;AAAA,MACpB,kBAAkB,KAAA,CAAM,gBAAA;AAAA,MACxB,mBAAmB,KAAA,CAAM,iBAAA;AAAA,MACzB,GAAI,KAAK,YAAA,IAAgB;AAAA,QACxB,QAAQ,IAAA,CAAK;AAAA;AACd,KACA,CAAA;AAED,IAAA,OAAO,GAAA,CAAI,KAAK,EAAE,EAAA,EAAI,MAAM,IAAA,EAAM,EAAE,EAAA,EAAG,EAAE,GAAI,GAAA;AAAA,EAC9C;AAAA,EAEA,MAAM,oBACL,KAAA,EAC+B;AAC/B,IAAA,MAAM,EAAA,GAAK,MAAM,EAAA,IAAM,QAAA,CAAS,SAAS,UAAA,CAAW,OAAO,EAAE,QAAA,EAAS;AAEtE,IAAA,IAAI,KAAA,CAAM,SAAS,eAAA,EAAiB;AACnC,MAAA,MAAMD,IAAAA,GAAM,MAAM,IAAA,CAAK,cAAA,CAAe,8BAAA,CAA+B;AAAA,QACpE,KAAA,EAAO;AAAA,UACN,EAAA;AAAA,UACA,MAAM,KAAA,CAAM,IAAA;AAAA,UACZ,QAAQ,KAAA,CAAM,MAAA;AAAA,UACd,cAAc,WAAA,CAAY,KAAA,CAAM,YAAA,EAAc,MAAM,KAAK,MAAM,CAAA;AAAA,UAC/D,UAAU,KAAA,CAAM,QAAA;AAAA,UAChB,UAAU,KAAA,CAAM,WAAA;AAAA,UAChB,YAAY,KAAA,CAAM,UAAA;AAAA,UAClB,WAAW,KAAA,CAAM,SAAA;AAAA,UACjB,GAAI,KAAK,GAAA,IAAO;AAAA,YACf,cAAc,IAAA,CAAK;AAAA,WACpB;AAAA,UACA,wBAAwB,KAAA,CAAM;AAAA,SAC/B;AAAA,QACA,cAAc,KAAA,CAAM,YAAA;AAAA,QACpB,kBAAkB,KAAA,CAAM,gBAAA;AAAA,QACxB,mBAAmB,KAAA,CAAM,iBAAA;AAAA,QACzB,UAAU,KAAA,CAAM,QAAA;AAAA,QAChB,GAAI,KAAK,YAAA,IAAgB;AAAA,UACxB,QAAQ,IAAA,CAAK;AAAA;AACd,OACA,CAAA;AAED,MAAA,OAAOA,IAAAA,CAAI,KAAK,EAAE,EAAA,EAAI,MAAM,IAAA,EAAM,EAAE,EAAA,EAAG,EAAE,GAAIA,IAAAA;AAAA,IAC9C;AAEA,IAAA,IAAI,KAAA,CAAM,SAAS,mBAAA,EAAqB;AACvC,MAAA,MAAMA,IAAAA,GAAM,MAAM,IAAA,CAAK,cAAA,CAAe,mCAAA;AAAA,QACrC;AAAA,UACC,KAAA,EAAO;AAAA,YACN,EAAA;AAAA,YACA,QAAA,EAAU,MAAM,MAAA,CAAO,KAAA,CAAM,QAAQ,CAAA;AAAA,YACrC,UAAU,KAAA,CAAM,QAAA;AAAA,YAChB,cAAc,WAAA,CAAY,KAAA,CAAM,YAAA,EAAc,MAAM,KAAK,MAAM,CAAA;AAAA,YAC/D,wBAAwB,KAAA,CAAM;AAAA,WAC/B;AAAA,UACA,8BAA8B,KAAA,CAAM,sBAAA;AAAA,UACpC,UAAU,KAAA,CAAM,QAAA;AAAA,UAChB,mBAAmB,KAAA,CAAM,iBAAA;AAAA,UACzB,GAAI,KAAK,YAAA,IAAgB;AAAA,YACxB,QAAQ,IAAA,CAAK;AAAA;AACd;AACD,OACD;AAEA,MAAA,OAAOA,IAAAA,CAAI,KAAK,EAAE,EAAA,EAAI,MAAM,IAAA,EAAM,EAAE,EAAA,EAAG,EAAE,GAAIA,IAAAA;AAAA,IAC9C;AAEA,IAAA,IAAI,KAAA,CAAM,SAAS,mBAAA,EAAqB;AACvC,MAAA,MAAMA,IAAAA,GAAM,MAAM,IAAA,CAAK,cAAA,CAAe,2BAAA,CAA4B;AAAA,QACjE,KAAA,EAAO;AAAA,UACN,EAAA;AAAA,UACA,MAAM,KAAA,CAAM,IAAA;AAAA,UACZ,MAAM,KAAA,CAAM,IAAA;AAAA,UACZ,QAAQ,KAAA,CAAM,MAAA;AAAA,UACd,QAAA,EAAU,MAAM,MAAA,CAAO,KAAA,CAAM,QAAQ,CAAA;AAAA,UACrC,YAAA,EAAc,MAAM,YAAA,GACjB,WAAA,CAAY,MAAM,YAAA,EAAc,MAAM,IAAA,CAAK,MAAM,CAAA,GACjD,MAAA;AAAA,UACH,wBAAwB,KAAA,CAAM;AAAA,SAC/B;AAAA,QACA,mBAAmB,KAAA,CAAM,iBAAA;AAAA,QACzB,GAAI,KAAK,YAAA,IAAgB;AAAA,UACxB,QAAQ,IAAA,CAAK;AAAA;AACd,OACA,CAAA;AAED,MAAA,OAAOA,IAAAA,CAAI,KAAK,EAAE,EAAA,EAAI,MAAM,IAAA,EAAM,EAAE,EAAA,EAAG,EAAE,GAAIA,IAAAA;AAAA,IAC9C;AAEA,IAAA,IAAI,KAAA,CAAM,SAAS,qBAAA,EAAuB;AACzC,MAAA,MAAMA,IAAAA,GACL,MAAM,IAAA,CAAK,cAAA,CAAe,yCAAA,CAA0C;AAAA,QACnE,KAAA,EAAO;AAAA,UACN,EAAA;AAAA,UACA,cAAc,WAAA,CAAY,KAAA,CAAM,YAAA,EAAc,MAAM,KAAK,MAAM,CAAA;AAAA,UAC/D,8BAA8B,KAAA,CAAM,4BAAA;AAAA,UACpC,cAAc,KAAA,CAAM,YAAA;AAAA,UACpB,YAAY,KAAA,CAAM,UAAA;AAAA,UAClB,WAAW,KAAA,CAAM,SAAA;AAAA,UACjB,wBAAwB,KAAA,CAAM,sBAAA;AAAA,UAC9B,GAAI,KAAK,GAAA,IAAO;AAAA,YACf,cAAc,IAAA,CAAK;AAAA;AACpB,SACD;AAAA,QACA,UAAU,KAAA,CAAM,QAAA;AAAA,QAChB,mBAAmB,KAAA,CAAM,iBAAA;AAAA,QACzB,GAAI,KAAK,YAAA,IAAgB;AAAA,UACxB,QAAQ,IAAA,CAAK;AAAA,SACd;AAAA,QACA,GAAI,MAAM,WAAA,IAAe;AAAA,UACxB,aAAa,KAAA,CAAM;AAAA,SACpB;AAAA,QACA,GAAI,MAAM,YAAA,IAAgB;AAAA,UACzB,cAAc,KAAA,CAAM;AAAA;AACrB,OACA,CAAA;AAEF,MAAA,OAAOA,IAAAA,CAAI,KAAK,EAAE,EAAA,EAAI,MAAM,IAAA,EAAM,EAAE,EAAA,EAAG,EAAE,GAAIA,IAAAA;AAAA,IAC9C;AAEA,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,cAAA,CAAe,2BAAA,CAA4B;AAAA,MACjE,KAAA,EAAO;AAAA,QACN,EAAA;AAAA,QACA,MAAM,KAAA,CAAM,IAAA;AAAA,QACZ,QAAA,EAAU,MAAM,MAAA,CAAO,KAAA,CAAM,QAAQ,CAAA;AAAA,QACrC,wBAAwB,KAAA,CAAM;AAAA,OAC/B;AAAA,MACA,mBAAmB,KAAA,CAAM,iBAAA;AAAA,MACzB,GAAI,KAAK,YAAA,IAAgB;AAAA,QACxB,QAAQ,IAAA,CAAK;AAAA;AACd,KACA,CAAA;AAED,IAAA,OAAO,GAAA,CAAI,KAAK,EAAE,EAAA,EAAI,MAAM,IAAA,EAAM,EAAE,EAAA,EAAG,EAAE,GAAI,GAAA;AAAA,EAC9C;AAAA,EAEA,MAAM,oBACL,KAAA,EACqC;AACrC,IAAA,OAAO,MAAM,IAAA,CAAK,cAAA,CAAe,yBAAA,CAA0B;AAAA,MAC1D,KAAA,EAAO;AAAA,QACN,MAAM,KAAA,CAAM,IAAA;AAAA,QACZ,QAAA,EAAU,MAAM,MAAA,CAAO,KAAA,CAAM,QAAQ,CAAA;AAAA,QACrC,QAAQ,KAAA,CAAM;AAAA,OACf;AAAA,MACA,GAAI,KAAK,YAAA,IAAgB;AAAA,QACxB,QAAQ,IAAA,CAAK;AAAA;AACd,KACA,CAAA;AAAA,EACF;AAAA,EAEA,MAAM,oBAAA,CACL,KAAA,EACA,IAAA,EACsC;AACtC,IAAA,OAAO,MAAM,IAAA,CAAK,cAAA,CAAe,oBAAA,CAAqB;AAAA,MACrD,KAAA,EAAO;AAAA,QACN,MAAM,KAAA,CAAM,IAAA;AAAA,QACZ,WAAW,KAAA,CAAM,SAAA;AAAA,QACjB,UAAU,KAAA,CAAM,QAAA;AAAA,QAChB,cAAc,KAAA,CAAM,YAAA;AAAA,QACpB,cAAc,KAAA,CAAM,YAAA;AAAA,QACpB,kBAAkB,KAAA,CAAM;AAAA,OACzB;AAAA,MACA,GAAI,IAAA,IAAQ,EAAE,IAAA,EAAK;AAAA,MACnB,GAAI,KAAK,YAAA,IAAgB;AAAA,QACxB,QAAQ,IAAA,CAAK;AAAA;AACd,KACA,CAAA;AAAA,EACF;AAAA,EAEA,MAAM,aAAA,CACL,EAAA,EACA,KAAA,EAC+B;AAC/B,IAAA,MAAM;AAAA;AAAA,MAEL,QAAA;AAAA,MACA,WAAA;AAAA,MACA,YAAA;AAAA,MACA,YAAA;AAAA,MACA,mBAAA;AAAA,MACA,sBAAA;AAAA,MACA,GAAG;AAAA,KACJ,GAAI,KAAA;AAEJ,IAAA,OAAO,MAAM,IAAA,CAAK,cAAA,CAAe,mBAAA,CAAoB;AAAA,MACpD,KAAA,EAAO;AAAA,QACN,EAAA;AAAA,QACA,IAAA,EAAM;AAAA,UACL,GAAG,MAAA;AAAA,UACH,QAAA,EAAU,QAAA,GAAW,MAAM,MAAA,CAAO,QAAQ,CAAA,GAAI,MAAA;AAAA,UAC9C,mBAAA,EAAqB,mBAAA,GAClB,MAAM,MAAA,CAAO,mBAAmB,CAAA,GAChC,MAAA;AAAA,UACH,cAAc,YAAA,GACX,WAAA,CAAY,cAAc,MAAM,IAAA,CAAK,MAAM,CAAA,GAC3C,MAAA;AAAA,UACH,YAAA,EAAc,YAAA,GAAe,MAAM,MAAA,CAAO,YAAY,CAAA,GAAI,MAAA;AAAA,UAC1D,QAAA,EAAU,cACP,OAAO,WAAA,KAAgB,WACtB,WAAA,GACA,IAAA,CAAK,SAAA,CAAU,WAAW,CAAA,GAC3B,MAAA;AAAA,UACH;AAAA;AACD;AACD,KACA,CAAA;AAAA,EACF;AAAA,EAEA,MAAM,cAAc,EAAA,EAA0C;AAC7D,IAAA,OAAO,MAAM,IAAA,CAAK,cAAA,CAAe,mBAAA,CAAoB;AAAA,MACpD,KAAA,EAAO;AAAA,QACN;AAAA;AACD,KACA,CAAA;AAAA,EACF;AAAA,EAEA,MAAM,oBACL,KAAA,EACoC;AACpC,IAAA,OAAO,MAAM,IAAA,CAAK,cAAA,CAAe,mBAAA,CAAoB;AAAA,MACpD,KAAA,EAAO;AAAA,QACN,aAAA,EAAe,iBAAA,CAAkB,KAAA,CAAM,aAAa;AAAA;AACrD,KACA,CAAA;AAAA,EACF;AAAA,EAEA,MAAM,sBACL,KAAA,EACoC;AACpC,IAAA,OAAO,MAAM,IAAA,CAAK,cAAA,CAAe,qBAAA,CAAsB;AAAA,MACtD,KAAA,EAAO;AAAA,QACN,eAAA,EAAiB,iBAAA,CAAkB,KAAA,CAAM,eAAe;AAAA;AACzD,KACA,CAAA;AAAA,EACF;AAAA,EAEA,MAAM,wBACL,KAAA,EACoC;AACpC,IAAA,OAAO,MAAM,IAAA,CAAK,cAAA,CAAe,uBAAA,CAAwB;AAAA,MACxD,KAAA,EAAO;AAAA,QACN,iBAAA,EAAmB,iBAAA,CAAkB,KAAA,CAAM,iBAAiB;AAAA;AAC7D,KACA,CAAA;AAAA,EACF;AAAA,EAEA,MAAM,0BACL,KAAA,EACoC;AACpC,IAAA,OAAO,MAAM,IAAA,CAAK,cAAA,CAAe,yBAAA,CAA0B;AAAA,MAC1D,KAAA,EAAO;AAAA,QACN,mBAAA,EAAqB,iBAAA,CAAkB,KAAA,CAAM,mBAAmB;AAAA;AACjE,KACA,CAAA;AAAA,EACF;AAAA,EAEA,MAAM,aAAa,EAAA,EAA0C;AAC5D,IAAA,OAAO,MAAM,IAAA,CAAK,cAAA,CAAe,YAAA,CAAa;AAAA,MAC7C,KAAA,EAAO;AAAA,QACN;AAAA;AACD,KACA,CAAA;AAAA,EACF;AAAA,EACA,MAAM,mBAAA,GAA0D;AAC/D,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,cAAA,CAAe,kBAAA,EAAmB;AAEzD,IAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAEpB,IAAA,OAAO;AAAA,MACN,EAAA,EAAI,IAAA;AAAA,MACJ,IAAA,EAAM,IAAI,IAAA,GACP,IAAA,CAAK,YAAY,SAAA,CAAU,mBAAA,CAAoB,GAAA,CAAI,IAAI,CAAA,GACvD;AAAA,KACJ;AAAA,EACD;AAAA,EAEA,MAAM,0BACL,KAAA,EAC2C;AAC3C,IAAA,MAAM,EAAA,GACL,MAAM,EAAA,IAAM,QAAA,CAAS,SAAS,UAAA,CAAW,YAAY,EAAE,QAAA,EAAS;AAEjE,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,cAAA,CAAe,wBAAA,CAAyB;AAAA,MAC9D,KAAA,EAAO;AAAA,QACN,EAAA;AAAA,QACA,GAAG;AAAA;AACJ,KACA,CAAA;AAED,IAAA,OAAO,GAAA,CAAI,KAAK,EAAE,EAAA,EAAI,MAAM,IAAA,EAAM,EAAE,EAAA,EAAG,EAAE,GAAI,GAAA;AAAA,EAC9C;AAAA,EAEA,MAAM,+BACL,KAAA,EAC2C;AAC3C,IAAA,MAAM,EAAA,GACL,MAAM,EAAA,IAAM,QAAA,CAAS,SAAS,UAAA,CAAW,YAAY,EAAE,QAAA,EAAS;AAEjE,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,cAAA,CAAe,6BAAA,CAA8B;AAAA,MACnE,KAAA,EAAO;AAAA,QACN,EAAA;AAAA,QACA,GAAG;AAAA;AACJ,KACA,CAAA;AAED,IAAA,OAAO,GAAA,CAAI,KAAK,EAAE,EAAA,EAAI,MAAM,IAAA,EAAM,EAAE,EAAA,EAAG,EAAE,GAAI,GAAA;AAAA,EAC9C;AAAA,EAEA,MAAM,yBAAA,CACL,EAAA,EACA,KAAA,EAC2C;AAC3C,IAAA,OAAO,MAAM,IAAA,CAAK,cAAA,CAAe,wBAAA,CAAyB;AAAA,MACzD,KAAA,EAAO;AAAA,QACN,EAAA;AAAA,QACA,IAAA,EAAM;AAAA,UACL,GAAG;AAAA;AACJ;AACD,KACA,CAAA;AAAA,EACF;AAAA,EAEA,MAAM,8BAAA,CACL,EAAA,EACA,KAAA,EAC2C;AAC3C,IAAA,OAAO,MAAM,IAAA,CAAK,cAAA,CAAe,6BAAA,CAA8B;AAAA,MAC9D,KAAA,EAAO;AAAA,QACN,EAAA;AAAA,QACA,IAAA,EAAM;AAAA,UACL,GAAG;AAAA;AACJ;AACD,KACA,CAAA;AAAA,EACF;AAAA,EAEA,MAAM,yBACL,EAAA,EAC0C;AAC1C,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,cAAA,CAAe,wBAAA,CAAyB;AAAA,MAC9D,KAAA,EAAO;AAAA,QACN;AAAA;AACD,KACA,CAAA;AAED,IAAA,OAAO,GAAA,CAAI,KAAK,EAAE,EAAA,EAAI,MAAM,IAAA,EAAM,EAAE,EAAA,EAAG,EAAE,GAAI,GAAA;AAAA,EAC9C;AAAA,EAEA,MAAM,cAAc,KAAA,EAAyD;AAC5E,IAAA,OAAO,MAAM,IAAA,CAAK,cAAA,CAAe,aAAA,CAAc;AAAA,MAC9C,KAAA,EAAO;AAAA,QACN,cAAc,WAAA,CAAY,KAAA,CAAM,YAAA,EAAc,MAAM,KAAK,MAAM,CAAA;AAAA,QAC/D,WAAA,EAAa,MAAM,MAAA,CAAO,KAAA,CAAM,WAAW;AAAA,OAC5C;AAAA,MACA,kBAAkB,KAAA,CAAM;AAAA,KACxB,CAAA;AAAA,EACF;AAAA,EAEA,MAAM,mBACL,gBAAA,EACoC;AACpC,IAAA,OAAO,MAAM,IAAA,CAAK,cAAA,CAAe,kBAAA,CAAmB;AAAA,MACnD,KAAA,EAAO;AAAA,QACN;AAAA;AACD,KACA,CAAA;AAAA,EACF;AAAA,EAEA,MAAM,iBAAA,GAAsD;AAC3D,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,cAAA,CAAe,iBAAA,EAAkB;AAExD,IAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAEpB,IAAA,OAAO;AAAA,MACN,EAAA,EAAI,IAAA;AAAA,MACJ,MAAM,IAAA,CAAK,WAAA,CAAY,SAAA,CAAU,iBAAA,CAAkB,IAAI,IAAI;AAAA,KAC5D;AAAA,EACD;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,qBACL,YAAA,EACsC;AACtC,IAAA,OAAA,CAAQ,IAAA;AAAA,MACP;AAAA,KACD;AAEA,IAAA,OAAO,MAAM,IAAA,CAAK,cAAA,CAAe,oBAAA,CAAqB;AAAA,MACrD,KAAA,EAAO;AAAA,QACN,OAAA,EAAS,KAAA;AAAA,QACT,SAAA,EAAW,WAAA,CAAY,YAAA,EAAc,MAAM,KAAK,MAAM;AAAA;AACvD,KACA,CAAA;AAAA,EACF;AAAA,EAEA,MAAM,2BACL,KAAA,EAC4C;AAC5C,IAAA,IAAI,KAAA,CAAM,SAAS,KAAA,EAAO;AACzB,MAAA,OAAO,IAAA,CAAK,YAAY,oBAAA,CAAqB;AAAA,QAC5C,OAAA,EAAS,KAAA;AAAA,QACT,WAAW,WAAA,CAAY,KAAA,CAAM,YAAA,EAAc,MAAM,KAAK,MAAM,CAAA;AAAA,QAC5D,GAAI,MAAM,MAAA,IAAU;AAAA,UACnB,gBAAA,EAAkB;AAAA;AACnB,OACA,CAAA;AAAA,IACF;AAEA,IAAA,MAAM,IAAI,MAAM,gDAAgD,CAAA;AAAA,EACjE;AAAA,EAEA,MAAM,MAAA,GAAgC;AACrC,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,aAAA,CAAc,MAAA,EAAO;AAE5C,IAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAEpB,IAAA,OAAO;AAAA,MACN,EAAA,EAAI,IAAA;AAAA,MACJ,IAAA,EAAM,IAAI,IAAA,GAAO,IAAA,CAAK,YAAY,SAAA,CAAU,MAAA,CAAO,GAAA,CAAI,IAAI,CAAA,GAAI;AAAA,KAChE;AAAA,EACD;AAAA,EACA,MAAM,mBAAA,GAA0D;AAC/D,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,aAAA,CAAc,mBAAA,EAAoB;AAEzD,IAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAEpB,IAAA,OAAO;AAAA,MACN,EAAA,EAAI,IAAA;AAAA,MACJ,IAAA,EAAM,IAAI,IAAA,GACP,IAAA,CAAK,YAAY,SAAA,CAAU,mBAAA,CAAoB,GAAA,CAAI,IAAI,CAAA,GACvD;AAAA,KACJ;AAAA,EACD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,MAAM,cACL,KAAA,EAC+B;AAC/B,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,cAAA,CAAe,aAAA,CAAc;AAAA,MACnD,GAAG,KAAA;AAAA,MACH,MAAA,EAAQ;AAAA,QACP,GAAG,KAAA,EAAO,MAAA;AAAA,QACV,UAAA,EAAY;AAAA,UACX,EAAA,EAAI,CAAC,QAAA,EAAU,QAAQ;AAAA;AACxB;AACD,KACA,CAAA;AAED,IAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAEpB,IAAA,OAAO;AAAA,MACN,EAAA,EAAI,IAAA;AAAA,MACJ,IAAA,EAAM;AAAA,QACL,aAAA,EAAe,IAAI,IAAA,CAAK,KAAA,CAAM,IAAI,CAAC,EAAE,MAAA,EAAQ,IAAA,EAAK,MAAO;AAAA,UACxD,GAAG,IAAA,CAAK,WAAA,CAAY,SAAA,CAAU,aAAa,IAAI,CAAA;AAAA,UAC/C;AAAA,SACD,CAAE,CAAA;AAAA,QACF,UAAA,EAAY,IAAI,IAAA,CAAK,UAAA;AAAA,QACrB,SAAA,EAAW,GAAA,CAAI,IAAA,CAAK,QAAA,CAAS,SAAA,IAAa,MAAA;AAAA,QAC1C,WAAA,EAAa,GAAA,CAAI,IAAA,CAAK,QAAA,CAAS;AAAA;AAChC,KACD;AAAA,EACD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,MAAM,iBACL,KAAA,EACkC;AAClC,IAAA,MAAM,EAAA,GAAK,MAAM,EAAA,IAAM,QAAA,CAAS,SAAS,UAAA,CAAW,UAAU,EAAE,QAAA,EAAS;AAEzE,IAAA,IAAI,KAAA,CAAM,SAAS,MAAA,EAAQ;AAC1B,MAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,aAAA,CAAc,oBAAA,CAAqB;AAAA,QACzD,KAAA,EAAO;AAAA,UACN,EAAA;AAAA,UACA,MAAA,EAAQ,KAAA,CAAM,MAAA,CAAO,QAAA,EAAS;AAAA,UAC9B,mBAAA,EAAqB,MAAM,MAAA,CAAO,KAAA,CAAM,mBAAmB;AAAA,SAC5D;AAAA,QACA,mBAAmB,KAAA,CAAM,iBAAA;AAAA,QACzB,GAAI,KAAK,YAAA,IAAgB;AAAA,UACxB,QAAQ,IAAA,CAAK;AAAA;AACd,OACA,CAAA;AAED,MAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAAA,IACrB;AAEA,IAAA,IAAI,KAAA,CAAM,SAAS,SAAA,EAAW;AAC7B,MAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,gBAAA,CAAiB,uBAAA,CAAwB;AAAA,QAC/D,KAAA,EAAO;AAAA,UACN,EAAA;AAAA,UACA,MAAA,EAAQ,KAAA,CAAM,MAAA,CAAO,QAAA;AAAS;AAC/B,OACA,CAAA;AAED,MAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAAA,IACrB;AAEA,IAAA,IAAI,KAAA,CAAM,SAAS,OAAA,EAAS;AAC3B,MAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,aAAA,CAAc,qBAAA,CAAsB;AAAA,QAC1D,KAAA,EAAO;AAAA,UACN,EAAA;AAAA,UACA,MAAA,EAAQ,KAAA,CAAM,MAAA,CAAO,QAAA,EAAS;AAAA,UAC9B,mBAAA,EAAqB,MAAM,MAAA,CAAO,KAAA,CAAM,mBAAmB,CAAA;AAAA,UAC3D,qBAAA,EAAuB,WAAA;AAAA,YACtB,KAAA,CAAM,qBAAA;AAAA,YACN,MAAM,IAAA,CAAK;AAAA;AACZ,SACD;AAAA,QACA,mBAAmB,KAAA,CAAM,iBAAA;AAAA,QACzB,GAAI,KAAK,YAAA,IAAgB;AAAA,UACxB,QAAQ,IAAA,CAAK;AAAA;AACd,OACA,CAAA;AAED,MAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAAA,IACrB;AAEA,IAAA,IAAI,KAAA,CAAM,SAAS,uBAAA,EAAyB;AAC3C,MAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,aAAA,CAAc,mCAAA,CAAoC;AAAA,QACxE,KAAA,EAAO;AAAA,UACN,EAAA;AAAA,UACA,MAAA,EAAQ,KAAA,CAAM,MAAA,CAAO,QAAA,EAAS;AAAA,UAC9B,mBAAA,EAAqB,MAAM,MAAA,CAAO,KAAA,CAAM,mBAAmB,CAAA;AAAA,UAC3D,qBAAA,EAAuB,WAAA;AAAA,YACtB,KAAA,CAAM,qBAAA;AAAA,YACN,MAAM,IAAA,CAAK;AAAA;AACZ,SACD;AAAA,QACA,mBAAmB,KAAA,CAAM,iBAAA;AAAA,QACzB,GAAI,KAAK,YAAA,IAAgB;AAAA,UACxB,QAAQ,IAAA,CAAK;AAAA;AACd,OACA,CAAA;AAED,MAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAAA,IACrB;AAEA,IAAA,IAAI,KAAA,CAAM,SAAS,MAAA,EAAQ;AAC1B,MAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,aAAA,CAAc,oBAAA,CAAqB;AAAA,QACzD,KAAA,EAAO;AAAA,UACN,EAAA;AAAA,UACA,MAAA,EAAQ,KAAA,CAAM,MAAA,CAAO,QAAA,EAAS;AAAA,UAC9B,eAAe,WAAA,CAAY,KAAA,CAAM,aAAA,EAAe,MAAM,KAAK,MAAM;AAAA,SAClE;AAAA,QACA,mBAAA,EAAqB,MAAM,MAAA,CAAO,KAAA,CAAM,mBAAmB,CAAA;AAAA,QAC3D,mBAAmB,KAAA,CAAM,iBAAA;AAAA,QACzB,GAAI,KAAK,YAAA,IAAgB;AAAA,UACxB,QAAQ,IAAA,CAAK;AAAA;AACd,OACA,CAAA;AAED,MAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAAA,IACrB;AAEA,IAAA,IAAI,KAAA,CAAM,SAAS,UAAA,EAAY;AAC9B,MAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,aAAA,CAAc,uBAAA,CAAwB;AAAA,QAC5D,KAAA,EAAO;AAAA,UACN,EAAA;AAAA,UACA,MAAA,EAAQ,KAAA,CAAM,MAAA,CAAO,QAAA,EAAS;AAAA,UAC9B,mBAAA,EAAqB,MAAM,MAAA,CAAO,KAAA,CAAM,mBAAmB;AAAA,SAC5D;AAAA,QACA,mBAAmB,KAAA,CAAM,iBAAA;AAAA,QACzB,GAAI,KAAK,YAAA,IAAgB;AAAA,UACxB,QAAQ,IAAA,CAAK;AAAA;AACd,OACA,CAAA;AAED,MAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAAA,IACrB;AAEA,IAAA,IAAI,KAAA,CAAM,SAAS,cAAA,EAAgB;AAClC,MAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,aAAA,CAAc,2BAAA,CAA4B;AAAA,QAChE,KAAA,EAAO;AAAA,UACN,EAAA;AAAA,UACA,MAAA,EAAQ,KAAA,CAAM,MAAA,CAAO,QAAA,EAAS;AAAA,UAC9B,UAAU,KAAA,CAAM,QAAA;AAAA,UAChB,eAAe,KAAA,CAAM,aAAA;AAAA,UACrB,aAAa,KAAA,CAAM,WAAA;AAAA,UACnB,mBAAA,EAAqB,MAAM,MAAA,CAAO,KAAA,CAAM,mBAAmB;AAAA,SAC5D;AAAA,QACA,mBAAmB,KAAA,CAAM,iBAAA;AAAA,QACzB,GAAI,KAAK,YAAA,IAAgB;AAAA,UACxB,QAAQ,IAAA,CAAK;AAAA;AACd,OACA,CAAA;AAED,MAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAAA,IACrB;AACA,IAAA,IAAI,KAAA,CAAM,SAAS,mBAAA,EAAqB;AACvC,MAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,aAAA,CAAc,gCAAA,CAAiC;AAAA,QACrE,KAAA,EAAO;AAAA,UACN,EAAA;AAAA,UACA,MAAA,EAAQ,KAAA,CAAM,MAAA,CAAO,QAAA,EAAS;AAAA,UAC9B,UAAU,KAAA,CAAM,QAAA;AAAA,UAChB,eAAe,KAAA,CAAM,aAAA;AAAA,UACrB,mBAAA,EAAqB,MAAM,MAAA,CAAO,KAAA,CAAM,mBAAmB,CAAA;AAAA,UAC3D,aAAa,KAAA,CAAM;AAAA,SACpB;AAAA,QACA,mBAAmB,KAAA,CAAM,iBAAA;AAAA,QACzB,GAAI,KAAK,YAAA,IAAgB;AAAA,UACxB,QAAQ,IAAA,CAAK;AAAA;AACd,OACA,CAAA;AAED,MAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAAA,IACrB;AAEA,IAAA,IAAI,KAAA,CAAM,SAAS,YAAA,EAAc;AAChC,MAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,aAAA,CAAc,yBAAA,CAA0B;AAAA,QAC9D,KAAA,EAAO;AAAA,UACN,EAAA;AAAA,UACA,MAAA,EAAQ,KAAA,CAAM,MAAA,CAAO,QAAA,EAAS;AAAA,UAC9B,OAAO,KAAA,CAAM;AAAA,SACd;AAAA,QACA,mBAAmB,KAAA,CAAM,iBAAA;AAAA,QACzB,GAAI,KAAK,YAAA,IAAgB;AAAA,UACxB,QAAQ,IAAA,CAAK;AAAA;AACd,OACA,CAAA;AAED,MAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAAA,IACrB;AAEA,IAAA,IAAI,KAAA,CAAM,SAAS,aAAA,EAAe;AACjC,MAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,aAAA,CAAc,0BAAA,CAA2B;AAAA,QAC/D,KAAA,EAAO;AAAA,UACN,EAAA;AAAA,UACA,MAAA,EAAQ,KAAA,CAAM,MAAA,CAAO,QAAA,EAAS;AAAA,UAC9B,iBAAiB,KAAA,CAAM,eAAA;AAAA,UACvB,mBAAmB,KAAA,CAAM,iBAAA;AAAA,UACzB,cAAc,KAAA,CAAM;AAAA,SACrB;AAAA,QACA,mBAAmB,KAAA,CAAM,iBAAA;AAAA,QACzB,GAAI,KAAK,YAAA,IAAgB;AAAA,UACxB,QAAQ,IAAA,CAAK;AAAA;AACd,OACA,CAAA;AAED,MAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAAA,IACrB;AAEA,IAAA,OAAO,EAAE,EAAA,EAAI,IAAA,EAAM,IAAA,EAAM,EAAE,IAAG,EAAE;AAAA,EACjC;AAAA,EAEA,MAAM,kBACL,KAAA,EACmC;AACnC,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,aAAA,CAAc,kBAAkB,KAAK,CAAA;AAE5D,IAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAEpB,IAAA,OAAO;AAAA,MACN,EAAA,EAAI,IAAA;AAAA,MACJ,IAAA,EAAM;AAAA,QACL,iBAAA,EAAmB,IAAI,IAAA,CAAK,KAAA,CAAM,IAAI,CAAC,EAAE,MAAA,EAAQ,IAAA,EAAK,MAAO;AAAA,UAC5D,GAAG,IAAA,CAAK,WAAA,CAAY,SAAA,CAAU,iBAAiB,IAAI,CAAA;AAAA,UACnD;AAAA,SACD,CAAE,CAAA;AAAA,QACF,UAAA,EAAY,IAAI,IAAA,CAAK,UAAA;AAAA,QACrB,SAAA,EAAW,GAAA,CAAI,IAAA,CAAK,QAAA,CAAS,SAAA,IAAa,MAAA;AAAA,QAC1C,WAAA,EAAa,GAAA,CAAI,IAAA,CAAK,QAAA,CAAS;AAAA;AAChC,KACD;AAAA,EACD;AAAA,EAEA,MAAM,8BAAA,GAAgF;AACrF,IAAA,OAAO,MAAM,IAAA,CAAK,aAAA,CAAc,8BAAA,EAA+B;AAAA,EAChE;AAAA,EAEA,MAAM,gBAAA,GAAoD;AACzD,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,aAAA,CAAc,gBAAA,EAAiB;AACtD,IAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AACpB,IAAA,OAAO;AAAA,MACN,EAAA,EAAI,IAAA;AAAA,MACJ,MAAM,GAAA,CAAI,IAAA,CAAK,IAAI,IAAA,CAAK,WAAA,CAAY,UAAU,YAAY;AAAA,KAC3D;AAAA,EACD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,MAAM,cAAc,KAAA,EAAyD;AAC5E,IAAA,MAAM,EAAA,GAAK,MAAM,EAAA,IAAM,QAAA,CAAS,SAAS,UAAA,CAAW,OAAO,EAAE,QAAA,EAAS;AAEtE,IAAA,MAAM,WAAA,GAAc,IAAA,CAAK,MAAA,CAAO,WAAA,IAAe,aAAA;AAC/C,IAAA,IAAI,KAAA,CAAM,SAAS,MAAA,EAAQ;AAC1B,MAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,aAAA,CAAc,iBAAA,CAAkB;AAAA,QACtD,KAAA,EAAO;AAAA,UACN,EAAA;AAAA,UACA,MAAA,EAAQ,KAAA,CAAM,MAAA,CAAO,QAAA,EAAS;AAAA,UAC9B,OAAO,KAAA,CAAM;AAAA,SACd;AAAA,QACA,GAAI,KAAK,YAAA,IAAgB;AAAA,UACxB,QAAQ,IAAA,CAAK;AAAA;AACd,OACA,CAAA;AAED,MAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAAA,IACrB;AACA,IAAA,IAAI,KAAA,CAAM,SAAS,MAAA,EAAQ;AAC1B,MAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,aAAA,CAAc,iBAAA,CAAkB;AAAA,QACtD,KAAA,EAAO;AAAA,UACN,EAAA;AAAA,UACA,MAAA,EAAQ,KAAA,CAAM,MAAA,CAAO,QAAA,EAAS;AAAA,UAC9B,OAAO,KAAA,CAAM;AAAA,SACd;AAAA,QACA,mBAAmB,KAAA,CAAM,iBAAA;AAAA,QACzB,GAAI,KAAK,YAAA,IAAgB;AAAA,UACxB,QAAQ,IAAA,CAAK;AAAA;AACd,OACA,CAAA;AAED,MAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAAA,IACrB;AAEA,IAAA,IAAI,KAAA,CAAM,SAAS,UAAA,EAAY;AAC9B,MAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,aAAA,CAAc,oBAAA,CAAqB;AAAA,QACzD,KAAA,EAAO;AAAA,UACN,EAAA;AAAA,UACA,MAAA,EAAQ,KAAA,CAAM,MAAA,CAAO,QAAA,EAAS;AAAA,UAC9B,OAAO,KAAA,CAAM;AAAA,SACd;AAAA,QACA,mBAAmB,KAAA,CAAM,iBAAA;AAAA,QACzB,GAAI,KAAK,YAAA,IAAgB;AAAA,UACxB,QAAQ,IAAA,CAAK;AAAA;AACd,OACA,CAAA;AAED,MAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAAA,IACrB;AAEA,IAAA,IAAI,KAAA,CAAM,SAAS,OAAA,EAAS;AAC3B,MAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,aAAA,CAAc,kBAAA,CAAmB;AAAA,QACvD,KAAA,EAAO;AAAA,UACN,EAAA;AAAA,UACA,MAAA,EAAQ,KAAA,CAAM,MAAA,CAAO,QAAA,EAAS;AAAA,UAC9B,OAAO,KAAA,CAAM;AAAA,SACd;AAAA,QACA,mBAAmB,KAAA,CAAM,iBAAA;AAAA,QACzB,GAAI,KAAK,YAAA,IAAgB;AAAA,UACxB,QAAQ,IAAA,CAAK;AAAA;AACd,OACA,CAAA;AAED,MAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAAA,IACrB;AAEA,IAAA,IAAI,KAAA,CAAM,SAAS,WAAA,EAAa;AAC/B,MAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,aAAA,CAAc,qBAAA,CAAsB;AAAA,QAC1D,KAAA,EAAO;AAAA,UACN,EAAA;AAAA,UACA,MAAA,EAAQ,KAAA,CAAM,MAAA,CAAO,QAAA,EAAS;AAAA,UAC9B,OAAO,KAAA,CAAM,KAAA;AAAA,UACb,WAAA,EAAa,CAAA,EAAG,SAAA,CAAU,WAAW,CAAA,CAAE,QAAQ,CAAA,yBAAA,EAA4B,KAAA,CAAM,WAAW,CAAA,SAAA,EAAY,EAAE,CAAA;AAAA,SAC3G;AAAA,QACA,mBAAmB,KAAA,CAAM,iBAAA;AAAA,QACzB,GAAI,KAAK,YAAA,IAAgB;AAAA,UACxB,QAAQ,IAAA,CAAK;AAAA;AACd,OACA,CAAA;AAED,MAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAAA,IACrB;AACA,IAAA,IAAI,KAAA,CAAM,SAAS,cAAA,EAAgB;AAClC,MAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,aAAA,CAAc,uBAAA,CAAwB;AAAA,QAC5D,KAAA,EAAO;AAAA,UACN,EAAA;AAAA,UACA,MAAA,EAAQ,KAAA,CAAM,MAAA,CAAO,QAAA,EAAS;AAAA,UAC9B,OAAO,KAAA,CAAM,KAAA;AAAA,UACb,WAAA,EAAa,CAAA,EAAG,SAAA,CAAU,WAAW,CAAA,CAAE,QAAQ,CAAA,yBAAA,EAA4B,KAAA,CAAM,WAAW,CAAA,SAAA,EAAY,EAAE,CAAA;AAAA,SAC3G;AAAA,QACA,mBAAmB,KAAA,CAAM,iBAAA;AAAA,QACzB,GAAI,KAAK,YAAA,IAAgB;AAAA,UACxB,QAAQ,IAAA,CAAK;AAAA;AACd,OACA,CAAA;AAED,MAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAAA,IACrB;AAEA,IAAA,IAAI,KAAA,CAAM,SAAS,cAAA,EAAgB;AAClC,MAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,aAAA,CAAc,uBAAA,CAAwB;AAAA,QAC5D,KAAA,EAAO;AAAA,UACN,EAAA;AAAA,UACA,MAAA,EAAQ,KAAA,CAAM,MAAA,CAAO,QAAA,EAAS;AAAA,UAC9B,OAAO,KAAA,CAAM,KAAA;AAAA,UACb,WAAA,EAAa,CAAA,EAAG,SAAA,CAAU,WAAW,CAAA,CAAE,QAAQ,CAAA,yBAAA,EAA4B,KAAA,CAAM,WAAW,CAAA,SAAA,EAAY,EAAE,CAAA;AAAA,SAC3G;AAAA,QACA,mBAAmB,KAAA,CAAM,iBAAA;AAAA,QACzB,GAAI,KAAK,YAAA,IAAgB;AAAA,UACxB,QAAQ,IAAA,CAAK;AAAA;AACd,OACA,CAAA;AAED,MAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAAA,IACrB;AAEA,IAAA,IAAI,KAAA,CAAM,SAAS,iBAAA,EAAmB;AACrC,MAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,aAAA,CAAc,0BAAA,CAA2B;AAAA,QAC/D,KAAA,EAAO;AAAA,UACN,EAAA;AAAA,UACA,MAAA,EAAQ,KAAA,CAAM,MAAA,CAAO,QAAA,EAAS;AAAA,UAC9B,OAAO,KAAA,CAAM,KAAA;AAAA,UACb,WAAA,EAAa,CAAA,EAAG,SAAA,CAAU,WAAW,CAAA,CAAE,QAAQ,CAAA,yBAAA,EAA4B,KAAA,CAAM,WAAW,CAAA,SAAA,EAAY,EAAE,CAAA;AAAA,SAC3G;AAAA,QACA,mBAAmB,KAAA,CAAM,iBAAA;AAAA,QACzB,GAAI,KAAK,YAAA,IAAgB;AAAA,UACxB,QAAQ,IAAA,CAAK;AAAA;AACd,OACA,CAAA;AAED,MAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAAA,IACrB;AAEA,IAAA,IAAI,KAAA,CAAM,SAAS,iBAAA,EAAmB;AACrC,MAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,aAAA,CAAc,0BAAA,CAA2B;AAAA,QAC/D,KAAA,EAAO;AAAA,UACN,EAAA;AAAA,UACA,MAAA,EAAQ,KAAA,CAAM,MAAA,CAAO,QAAA,EAAS;AAAA,UAC9B,OAAO,KAAA,CAAM;AAAA,SACd;AAAA,QACA,mBAAmB,KAAA,CAAM,iBAAA;AAAA,QACzB,GAAI,KAAK,YAAA,IAAgB;AAAA,UACxB,QAAQ,IAAA,CAAK;AAAA;AACd,OACA,CAAA;AAED,MAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAAA,IACrB;AAEA,IAAA,IAAI,KAAA,CAAM,SAAS,UAAA,EAAY;AAC9B,MAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,aAAA,CAAc,oBAAA,CAAqB;AAAA,QACzD,KAAA,EAAO;AAAA,UACN,EAAA;AAAA,UACA,MAAA,EAAQ,KAAA,CAAM,MAAA,CAAO,QAAA,EAAS;AAAA,UAC9B,OAAO,KAAA,CAAM;AAAA,SACd;AAAA,QACA,mBAAmB,KAAA,CAAM,iBAAA;AAAA,QACzB,GAAI,KAAK,YAAA,IAAgB;AAAA,UACxB,QAAQ,IAAA,CAAK;AAAA;AACd,OACA,CAAA;AAED,MAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAAA,IACrB;AACA,IAAA,IAAI,KAAA,CAAM,SAAS,YAAA,EAAc;AAChC,MAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,aAAA,CAAc,sBAAA,CAAuB;AAAA,QAC3D,KAAA,EAAO;AAAA,UACN,EAAA;AAAA,UACA,MAAA,EAAQ,KAAA,CAAM,MAAA,CAAO,QAAA,EAAS;AAAA,UAC9B,WAAW,KAAA,CAAM,SAAA;AAAA,UACjB,gBAAgB,KAAA,CAAM,cAAA;AAAA,UACtB,OAAO,KAAA,CAAM;AAAA,SACd;AAAA,QACA,mBAAmB,KAAA,CAAM,iBAAA;AAAA,QACzB,GAAI,KAAK,YAAA,IAAgB;AAAA,UACxB,QAAQ,IAAA,CAAK;AAAA;AACd,OACA,CAAA;AAED,MAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAAA,IACrB;AAEA,IAAA,IAAI,KAAA,CAAM,SAAS,aAAA,EAAe;AACjC,MAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,aAAA,CAAc,uBAAA,CAAwB;AAAA,QAC5D,KAAA,EAAO;AAAA,UACN,EAAA;AAAA,UACA,MAAA,EAAQ,KAAA,CAAM,MAAA,CAAO,QAAA,EAAS;AAAA,UAC9B,gBAAgB,KAAA,CAAM,WAAA;AAAA,UACtB,OAAO,KAAA,CAAM;AAAA,SACd;AAAA,QACA,mBAAmB,KAAA,CAAM,iBAAA;AAAA,QACzB,GAAI,KAAK,YAAA,IAAgB;AAAA,UACxB,QAAQ,IAAA,CAAK;AAAA;AACd,OACA,CAAA;AAED,MAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAAA,IACrB;AAEA,IAAA,IAAI,KAAA,CAAM,SAAS,cAAA,EAAgB;AAClC,MAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,aAAA,CAAc,wBAAA,CAAyB;AAAA,QAC7D,KAAA,EAAO;AAAA,UACN,EAAA;AAAA,UACA,MAAA,EAAQ,KAAA,CAAM,MAAA,CAAO,QAAA,EAAS;AAAA,UAC9B,OAAO,KAAA,CAAM,KAAA;AAAA,UACb,sBAAsB,KAAA,CAAM,oBAAA;AAAA,UAC5B,uBAAuB,KAAA,CAAM;AAAA,SAC9B;AAAA,QACA,mBAAmB,KAAA,CAAM,iBAAA;AAAA,QACzB,GAAI,KAAK,YAAA,IAAgB;AAAA,UACxB,QAAQ,IAAA,CAAK;AAAA;AACd,OACA,CAAA;AAED,MAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAAA,IACrB;AAEA,IAAA,IAAI,KAAA,CAAM,SAAS,aAAA,EAAe;AACjC,MAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,aAAA,CAAc,uBAAA,CAAwB;AAAA,QAC5D,KAAA,EAAO;AAAA,UACN,EAAA;AAAA,UACA,MAAA,EAAQ,KAAA,CAAM,MAAA,CAAO,QAAA,EAAS;AAAA,UAC9B,OAAO,KAAA,CAAM,KAAA;AAAA,UACb,aAAa,KAAA,CAAM;AAAA,SACpB;AAAA,QACA,mBAAmB,KAAA,CAAM,iBAAA;AAAA,QACzB,GAAI,KAAK,YAAA,IAAgB;AAAA,UACxB,QAAQ,IAAA,CAAK;AAAA;AACd,OACA,CAAA;AAED,MAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAAA,IACrB;AAEA,IAAA,OAAO,EAAE,EAAA,EAAI,IAAA,EAAM,IAAA,EAAM,EAAE,IAAG,EAAE;AAAA,EACjC;AAAA,EAEA,MAAM,QAAQ,EAAA,EAAoC;AACjD,IAAA,MAAM,MAAM,MAAM,IAAA,CAAK,cAAc,OAAA,CAAQ,EAAE,IAAI,CAAA;AAEnD,IAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAEpB,IAAA,OAAO;AAAA,MACN,EAAA,EAAI,IAAA;AAAA,MACJ,IAAA,EAAM,IAAI,IAAA,GAAO,IAAA,CAAK,YAAY,SAAA,CAAU,OAAA,CAAQ,GAAA,CAAI,IAAI,CAAA,GAAI;AAAA,KACjE;AAAA,EACD;AAAA,EAEA,MAAM,eACL,KAAA,EACgC;AAChC,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,aAAA,CAAc,eAAe,KAAK,CAAA;AAEzD,IAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAEpB,IAAA,OAAO;AAAA,MACN,EAAA,EAAI,IAAA;AAAA,MACJ,IAAA,EAAM;AAAA,QACL,cAAA,EAAgB,IAAI,IAAA,CAAK,KAAA,CAAM,IAAI,CAAC,EAAE,MAAA,EAAQ,IAAA,EAAK,MAAO;AAAA,UACzD,GAAG,IAAA,CAAK,WAAA,CAAY,SAAA,CAAU,cAAc,IAAI,CAAA;AAAA,UAChD;AAAA,SACD,CAAE,CAAA;AAAA,QACF,UAAA,EAAY,IAAI,IAAA,CAAK,UAAA;AAAA,QACrB,SAAA,EAAW,GAAA,CAAI,IAAA,CAAK,QAAA,CAAS,SAAA,IAAa,MAAA;AAAA,QAC1C,WAAA,EAAa,GAAA,CAAI,IAAA,CAAK,QAAA,CAAS;AAAA;AAChC,KACD;AAAA,EACD;AAAA,EAEA,MAAM,aAAA,GAA8C;AACnD,IAAA,OAAO,MAAM,IAAA,CAAK,aAAA,CAAc,aAAA,EAAc;AAAA,EAC/C;AAAA,EAEA,MAAM,aAAa,KAAA,EAAuD;AACzE,IAAA,QAAQ,MAAM,IAAA;AAAM,MACnB,KAAK,OAAA;AACJ,QAAA,OAAO,MAAM,IAAA,CAAK,aAAA,CAAc,iBAAA,CAAkB;AAAA,UACjD,KAAA,EAAO,EAAE,EAAA,EAAI,KAAA,CAAM,EAAA;AAAG,SACtB,CAAA;AAAA,MACF,KAAK,OAAA;AACJ,QAAA,OAAO,MAAM,IAAA,CAAK,aAAA,CAAc,gBAAA,CAAiB;AAAA,UAChD,KAAA,EAAO,EAAE,EAAA,EAAI,KAAA,CAAM,EAAA;AAAG,SACtB,CAAA;AAAA,MACF;AACC,QAAA,MAAM,IAAI,KAAA,CAAM,CAAA,yBAAA,EAA4B,KAAA,CAAM,IAAI,CAAA,CAAA,CAAG,CAAA;AAAA;AAC3D,EACD;AAAA,EAEA,MAAM,cAAc,KAAA,EAAyD;AAC5E,IAAA,OAAO,MAAM,IAAA,CAAK,aAAA,CAAc,aAAA,CAAc;AAAA,MAC7C,KAAA,EAAO;AAAA,QACN,MAAM,KAAA,CAAM,IAAA;AAAA,QACZ,MAAM,KAAA,CAAM;AAAA;AACb,KACA,CAAA;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,MAAM,WAAW,KAAA,EAAoD;AACpE,IAAA,MAAM,IAAA,GAAO,MAAM,IAAA,CAAK,aAAA,CAAc,UAAA,CAAW;AAAA,MAChD,GAAG,KAAA;AAAA,MACH,GAAI,OAAO,MAAA,IAAU;AAAA,QACpB,MAAA,EAAQ;AAAA,UACP,GAAI,KAAA,CAAM,MAAA,CAAO,MAAA,IAAU;AAAA,YAC1B,MAAA,EAAQ,MAAM,MAAA,CAAO;AAAA,WACtB;AAAA,UACA,GAAI,KAAA,CAAM,MAAA,CAAO,UAAA,IAAc;AAAA,YAC9B,UAAA,EAAY,MAAM,MAAA,CAAO;AAAA,WAC1B;AAAA,UACA,GAAI,KAAA,CAAM,MAAA,CAAO,aAAA,IAAiB;AAAA,YACjC,aAAA,EAAe,MAAM,MAAA,CAAO;AAAA,WAC7B;AAAA,UACA,GAAI,KAAA,CAAM,MAAA,CAAO,QAAA,IAAY;AAAA,YAC5B,UAAA,EAAY,MAAM,MAAA,CAAO;AAAA,WAC1B;AAAA,UACA,GAAI,KAAA,CAAM,MAAA,CAAO,YAAA,IAAgB;AAAA,YAChC,cAAA,EAAgB,MAAM,MAAA,CAAO;AAAA,WAC9B;AAAA,UACA,GAAI,KAAA,CAAM,MAAA,CAAO,eAAA,IAAmB;AAAA,YACnC,eAAA,EAAiB,MAAM,MAAA,CAAO;AAAA,WAC/B;AAAA,UACA,GAAI,KAAA,CAAM,MAAA,CAAO,WAAA,IAAe;AAAA,YAC/B,WAAA,EAAa,MAAM,MAAA,CAAO;AAAA;AAC3B;AACD;AACD,KACA,CAAA;AAED,IAAA,IAAI,CAAC,IAAA,CAAK,EAAA,EAAI,OAAO,IAAA;AAErB,IAAA,MAAM,MAAM,CAAC,GAAG,IAAI,GAAA,CAAI,KAAK,IAAA,CAAK,KAAA,CAAM,GAAA,CAAI,CAAC,MAAM,CAAA,CAAE,IAAA,CAAK,IAAA,CAAK,EAAE,CAAC,CAAC,CAAA;AAEnE,IAAA,IAAI,GAAA,CAAI,UAAU,CAAA,EAAG;AACpB,MAAA,OAAO;AAAA,QACN,EAAA,EAAI,IAAA;AAAA,QACJ,IAAA,EAAM;AAAA,UACL,YAAY,EAAC;AAAA,UACb,UAAA,EAAY,CAAA;AAAA,UACZ,SAAA,EAAW,MAAA;AAAA,UACX,WAAA,EAAa;AAAA;AACd,OACD;AAAA,IACD;AAEA,IAAA,MAAM,IAAA,GAAO,MAAM,IAAA,CAAK,gBAAA,CAAiB,KAAA,CAAM;AAAA,MAC9C,MAAA,EAAQ;AAAA,QACP,SAAA,EAAW;AAAA,UACV,EAAA,EAAI;AAAA;AACL;AACD,KACA,CAAA;AAED,IAAA,IAAI,CAAC,IAAA,CAAK,EAAA,EAAI,OAAO,IAAA;AAErB,IAAA,OAAO;AAAA,MACN,EAAA,EAAI,IAAA;AAAA,MACJ,IAAA,EAAM;AAAA,QACL,UAAA,EAAY,KAAK,IAAA,CAAK,KAAA,CAAM,IAAI,CAAC,EAAE,MAAA,EAAQ,IAAA,EAAK,KAAM;AACrD,UAAA,MAAM,IAAA,GAAO,IAAA,CAAK,IAAA,CAAK,KAAA,CAAM,IAAA;AAAA,YAC5B,CAAC,CAAA,KAAM,IAAA,CAAK,IAAA,CAAK,EAAA,KAAO,EAAE,IAAA,CAAK;AAAA,WAChC,EAAG,IAAA;AAEH,UAAA,OAAO;AAAA,YACN,GAAG,IAAA,CAAK,WAAA,CAAY,SAAA,CAAU,SAAA,CAAU;AAAA,cACvC,GAAG,IAAA;AAAA,cACH;AAAA,aACA,CAAA;AAAA,YACD;AAAA,WACD;AAAA,QACD,CAAC,CAAA;AAAA,QACD,UAAA,EAAY,KAAK,IAAA,CAAK,UAAA;AAAA,QACtB,SAAA,EAAW,IAAA,CAAK,IAAA,CAAK,QAAA,CAAS,SAAA,IAAa,MAAA;AAAA,QAC3C,WAAA,EAAa,IAAA,CAAK,IAAA,CAAK,QAAA,CAAS;AAAA;AACjC,KACD;AAAA,EACD;AAAA,EAEA,MAAM,gBAAA,GAAoD;AACzD,IAAA,MAAM,IAAA,GAAO,MAAM,IAAA,CAAK,aAAA,CAAc,gBAAA,EAAiB;AAEvD,IAAA,IAAI,CAAC,IAAA,CAAK,EAAA,EAAI,OAAO,IAAA;AAErB,IAAA,MAAM,GAAA,GAAM,CAAC,GAAG,IAAI,IAAI,IAAA,CAAK,IAAA,CAAK,GAAA,CAAI,CAAC,CAAA,KAAM,CAAA,CAAE,IAAA,CAAK,EAAE,CAAC,CAAC,CAAA;AAExD,IAAA,IAAI,GAAA,CAAI,UAAU,CAAA,EAAG;AACpB,MAAA,OAAO;AAAA,QACN,EAAA,EAAI,IAAA;AAAA,QACJ,MAAM;AAAC,OACR;AAAA,IACD;AAEA,IAAA,MAAM,IAAA,GAAO,MAAM,IAAA,CAAK,gBAAA,CAAiB,KAAA,CAAM;AAAA,MAC9C,MAAA,EAAQ;AAAA,QACP,SAAA,EAAW;AAAA,UACV,EAAA,EAAI;AAAA;AACL;AACD,KACA,CAAA;AAED,IAAA,IAAI,CAAC,IAAA,CAAK,EAAA,EAAI,OAAO,IAAA;AAErB,IAAA,OAAO;AAAA,MACN,EAAA,EAAI,IAAA;AAAA,MACJ,IAAA,EAAM,IAAA,CAAK,IAAA,CAAK,GAAA,CAAI,CAAC,CAAA,KAAM;AAC1B,QAAA,MAAM,IAAA,GAAO,IAAA,CAAK,IAAA,CAAK,KAAA,CAAM,IAAA;AAAA,UAC5B,CAAC,CAAA,KAAM,CAAA,CAAE,IAAA,CAAK,SAAA,KAAc,EAAE,IAAA,CAAK;AAAA,SACpC,EAAG,IAAA;AAEH,QAAA,OAAO,IAAA,CAAK,WAAA,CAAY,SAAA,CAAU,eAAA,CAAgB;AAAA,UACjD,GAAG,CAAA;AAAA,UACH;AAAA,SACA,CAAA;AAAA,MACF,CAAC;AAAA,KACF;AAAA,EACD;AAAA,EACA,MAAM,aAAa,KAAA,EAAwD;AAC1E,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,aAAA,CAAc,aAAa,KAAK,CAAA;AAEvD,IAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAEpB,IAAA,OAAO;AAAA,MACN,EAAA,EAAI,IAAA;AAAA,MACJ,IAAA,EAAM;AAAA,QACL,YAAA,EAAc,IAAI,IAAA,CAAK,KAAA,CAAM,IAAI,CAAC,EAAE,MAAA,EAAQ,IAAA,EAAK,MAAO;AAAA,UACvD,GAAG,IAAA,CAAK,WAAA,CAAY,SAAA,CAAU,aAAa,IAAI,CAAA;AAAA,UAC/C;AAAA,SACD,CAAE,CAAA;AAAA,QACF,UAAA,EAAY,IAAI,IAAA,CAAK,UAAA;AAAA,QACrB,SAAA,EAAW,GAAA,CAAI,IAAA,CAAK,QAAA,CAAS,SAAA,IAAa,MAAA;AAAA,QAC1C,WAAA,EAAa,GAAA,CAAI,IAAA,CAAK,QAAA,CAAS;AAAA;AAChC,KACD;AAAA,EACD;AAAA,EACA,MAAM,mBACL,KAAA,EACoC;AACpC,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,aAAA,CAAc,mBAAmB,KAAK,CAAA;AAE7D,IAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAEpB,IAAA,OAAO;AAAA,MACN,EAAA,EAAI,IAAA;AAAA,MACJ,IAAA,EAAM;AAAA,QACL,YAAA,EAAc,IAAI,IAAA,CAAK,KAAA,CAAM,IAAI,CAAC,EAAE,MAAA,EAAQ,IAAA,EAAK,MAAO;AAAA,UACvD,GAAG,IAAA,CAAK,WAAA,CAAY,SAAA,CAAU,mBAAmB,IAAI,CAAA;AAAA,UACrD;AAAA,SACD,CAAE,CAAA;AAAA,QACF,UAAA,EAAY,IAAI,IAAA,CAAK,UAAA;AAAA,QACrB,SAAA,EAAW,GAAA,CAAI,IAAA,CAAK,QAAA,CAAS,SAAA,IAAa,MAAA;AAAA,QAC1C,WAAA,EAAa,GAAA,CAAI,IAAA,CAAK,QAAA,CAAS;AAAA;AAChC,KACD;AAAA,EACD;AAAA,EAEA,MAAM,kBACL,KAAA,EACmC;AACnC,IAAA,OAAO,MAAM,IAAA,CAAK,aAAA,CAAc,iBAAA,CAAkB,KAAK,CAAA;AAAA,EACxD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,MAAM,mBACL,KAAA,EACoC;AACpC,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,aAAA,CAAc,mBAAmB,KAAK,CAAA;AAE7D,IAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAEpB,IAAA,OAAO;AAAA,MACN,EAAA,EAAI,IAAA;AAAA,MACJ,IAAA,EAAM;AAAA,QACL,kBAAA,EAAoB,IAAI,IAAA,CAAK,KAAA,CAAM,IAAI,CAAC,EAAE,MAAA,EAAQ,IAAA,EAAK,MAAO;AAAA,UAC7D,GAAG,IAAA,CAAK,WAAA,CAAY,SAAA,CAAU,kBAAkB,IAAI,CAAA;AAAA,UACpD;AAAA,SACD,CAAE,CAAA;AAAA,QACF,UAAA,EAAY,IAAI,IAAA,CAAK,UAAA;AAAA,QACrB,SAAA,EAAW,GAAA,CAAI,IAAA,CAAK,QAAA,CAAS,SAAA,IAAa,MAAA;AAAA,QAC1C,WAAA,EAAa,GAAA,CAAI,IAAA,CAAK,QAAA,CAAS;AAAA;AAChC,KACD;AAAA,EACD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,MAAM,MAAA,GAAgC;AACrC,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,aAAA,CAAc,MAAA,EAAO;AAE5C,IAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAEpB,IAAA,OAAO;AAAA,MACN,EAAA,EAAI,IAAA;AAAA,MACJ,MAAM,GAAA,CAAI,IAAA,CAAK,IAAI,IAAA,CAAK,WAAA,CAAY,UAAU,KAAK;AAAA,KACpD;AAAA,EACD;AAAA,EAEA,MAAM,gBACL,KAAA,EACiC;AACjC,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,aAAA,CAAc,gBAAgB,KAAK,CAAA;AAE1D,IAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAEpB,IAAA,OAAO;AAAA,MACN,EAAA,EAAI,IAAA;AAAA,MACJ,MAAM,GAAA,CAAI,IAAA,CAAK,IAAI,IAAA,CAAK,WAAA,CAAY,UAAU,KAAK;AAAA,KACpD;AAAA,EACD;AAAA,EAEA,MAAM,SAAA,GAAsC;AAC3C,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,aAAA,CAAc,SAAA,EAAU;AAE/C,IAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAEpB,IAAA,OAAO;AAAA,MACN,EAAA,EAAI,IAAA;AAAA,MACJ,MAAM,GAAA,CAAI,IAAA,CAAK,IAAI,IAAA,CAAK,WAAA,CAAY,UAAU,QAAQ;AAAA,KACvD;AAAA,EACD;AAAA,EAEA,MAAM,kBAAA,GAAwD;AAC7D,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,aAAA,CAAc,kBAAA,EAAmB;AAExD,IAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAEpB,IAAA,OAAO;AAAA,MACN,EAAA,EAAI,IAAA;AAAA,MACJ,IAAA,EAAM;AAAA,QACL,MAAA,EAAQ,IAAI,IAAA,CAAK,MAAA,CAAO,IAAI,IAAA,CAAK,WAAA,CAAY,UAAU,KAAK,CAAA;AAAA,QAC5D,SAAA,EAAW,IAAI,IAAA,CAAK,SAAA,CAAU,IAAI,IAAA,CAAK,WAAA,CAAY,UAAU,QAAQ;AAAA;AACtE,KACD;AAAA,EACD;AAAA;AAAA,EAGA,MAAM,KAAA,GAA8B;AACnC,IAAA,OAAA,CAAQ,KAAK,sDAAsD,CAAA;AAEnE,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,aAAA,CAAc,KAAA,EAAM;AAE3C,IAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAEpB,IAAA,OAAO;AAAA,MACN,EAAA,EAAI,IAAA;AAAA,MACJ,IAAA,EAAM,IAAI,IAAA,GAAO,IAAA,CAAK,YAAY,SAAA,CAAU,KAAA,CAAM,GAAA,CAAI,IAAI,CAAA,GAAI;AAAA,KAC/D;AAAA,EACD;AAAA,EAEA,MAAM,OAAA,GAAkC;AACvC,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,aAAA,CAAc,OAAA,EAAQ;AAE7C,IAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAEpB,IAAA,OAAO;AAAA,MACN,EAAA,EAAI,IAAA;AAAA,MACJ,MAAM,GAAA,CAAI,IAAA,CAAK,IAAI,IAAA,CAAK,WAAA,CAAY,UAAU,KAAK;AAAA,KACpD;AAAA,EACD;AAAA,EAEA,MAAM,eAAA,GAAgD;AACrD,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,aAAA,CAAc,eAAA,EAAgB;AAErD,IAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAEpB,IAAA,OAAO;AAAA,MACN,EAAA,EAAI,IAAA;AAAA,MACJ,MAAM,GAAA,CAAI,IAAA,CAAK,IAAI,IAAA,CAAK,WAAA,CAAY,UAAU,aAAa;AAAA,KAC5D;AAAA,EACD;AAAA,EAEA,MAAM,mBAAmB,EAAA,EAA+C;AACvE,IAAA,OAAO,MAAM,KAAK,aAAA,CAAc,kBAAA,CAAmB,EAAE,KAAA,EAAO,EAAE,EAAA,EAAG,EAAG,CAAA;AAAA,EACrE;AAAA,EAEA,MAAM,YAAY,EAAA,EAAwC;AACzD,IAAA,OAAO,MAAM,KAAK,aAAA,CAAc,WAAA,CAAY,EAAE,KAAA,EAAO,EAAE,EAAA,EAAG,EAAG,CAAA;AAAA,EAC9D;AAAA,EAEA,MAAM,eAAe,IAAA,EAA6C;AACjE,IAAA,OAAO,MAAM,IAAA,CAAK,aAAA,CAAc,cAAA,CAAe,EAAE,MAAY,CAAA;AAAA,EAC9D;AAAA,EAEA,MAAM,YAAY,IAAA,EAA0C;AAC3D,IAAA,MAAM,MAAM,MAAM,IAAA,CAAK,cAAc,WAAA,CAAY,EAAE,MAAY,CAAA;AAC/D,IAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAEpB,IAAA,OAAO;AAAA,MACN,EAAA,EAAI,IAAA;AAAA,MACJ,MAAM,IAAA,CAAK,WAAA,CAAY,SAAA,CAAU,WAAA,CAAY,IAAI,IAAI;AAAA,KACtD;AAAA,EACD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,MAAM,KAAK,EAAA,EAAiC;AAC3C,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,gBAAA,CAAiB,KAAK,EAAE,CAAA;AAE/C,IAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAEpB,IAAA,OAAO;AAAA,MACN,EAAA,EAAI,IAAA;AAAA,MACJ,IAAA,EAAM,IAAI,IAAA,GAAO,IAAA,CAAK,YAAY,SAAA,CAAU,IAAA,CAAK,GAAA,CAAI,IAAI,CAAA,GAAI;AAAA,KAC9D;AAAA,EACD;AAAA;AAAA,EAGA,MAAM,MAAM,KAAA,EAA0C;AACrD,IAAA,OAAA,CAAQ,KAAK,0DAA0D,CAAA;AAEvE,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,gBAAA,CAAiB,MAAM,KAAK,CAAA;AAEnD,IAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAEpB,IAAA,OAAO;AAAA,MACN,EAAA,EAAI,IAAA;AAAA,MACJ,IAAA,EAAM;AAAA,QACL,KAAA,EAAO,IAAI,IAAA,CAAK,KAAA,CAAM,IAAI,CAAC,EAAE,MAAA,EAAQ,IAAA,EAAK,MAAO;AAAA,UAChD,GAAG,IAAA,CAAK,WAAA,CAAY,SAAA,CAAU,KAAK,IAAI,CAAA;AAAA,UACvC;AAAA,SACD,CAAE,CAAA;AAAA,QACF,UAAA,EAAY,IAAI,IAAA,CAAK,UAAA;AAAA,QACrB,WAAA,EAAa,GAAA,CAAI,IAAA,CAAK,QAAA,CAAS,WAAA;AAAA,QAC/B,SAAA,EAAW,GAAA,CAAI,IAAA,CAAK,QAAA,CAAS,SAAA,IAAa;AAAA;AAC3C,KACD;AAAA,EACD;AAAA,EAEA,MAAM,YAAY,KAAA,EAAqD;AACtE,IAAA,OAAA,CAAQ,IAAA;AAAA,MACP;AAAA,KACD;AAEA,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,aAAA,CAAc,YAAY,KAAK,CAAA;AAEtD,IAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAEpB,IAAA,OAAO;AAAA,MACN,EAAA,EAAI,IAAA;AAAA,MACJ,IAAA,EAAM;AAAA,QACL,KAAA,EAAO,IAAI,IAAA,CAAK,KAAA,CAAM,IAAI,CAAC,EAAE,MAAA,EAAQ,IAAA,EAAK,MAAO;AAAA,UAChD,GAAG,IAAA;AAAA,UACH;AAAA,SACD,CAAE,CAAA;AAAA,QACF,UAAA,EAAY,IAAI,IAAA,CAAK,UAAA;AAAA,QACrB,WAAA,EAAa,GAAA,CAAI,IAAA,CAAK,QAAA,CAAS,WAAA;AAAA,QAC/B,SAAA,EAAW,GAAA,CAAI,IAAA,CAAK,QAAA,CAAS,SAAA,IAAa;AAAA;AAC3C,KACD;AAAA,EACD;AAAA,EAEA,MAAM,cACL,KAAA,EAC+B;AAC/B,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,aAAA,CAAc,cAAc,KAAK,CAAA;AAExD,IAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAEpB,IAAA,OAAO;AAAA,MACN,EAAA,EAAI,IAAA;AAAA,MACJ,IAAA,EAAM;AAAA,QACL,aAAA,EAAe,IAAI,IAAA,CAAK,KAAA,CAAM,IAAI,CAAC,EAAE,MAAA,EAAQ,IAAA,EAAK,MAAO;AAAA,UACxD,GAAG,IAAA;AAAA,UACH;AAAA,SACD,CAAE,CAAA;AAAA,QACF,UAAA,EAAY,IAAI,IAAA,CAAK,UAAA;AAAA,QACrB,WAAA,EAAa,GAAA,CAAI,IAAA,CAAK,QAAA,CAAS,WAAA;AAAA,QAC/B,SAAA,EAAW,GAAA,CAAI,IAAA,CAAK,QAAA,CAAS,SAAA,IAAa;AAAA;AAC3C,KACD;AAAA,EACD;AAAA,EAEA,MAAM,YAAY,KAAA,EAAgD;AACjE,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,gBAAA,CAAiB,YAAY,KAAK,CAAA;AAEzD,IAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAEpB,IAAA,OAAO;AAAA,MACN,EAAA,EAAI,IAAA;AAAA,MACJ,IAAA,EAAM;AAAA,QACL,KAAA,EAAO,IAAI,IAAA,CAAK,KAAA,CAAM,IAAI,CAAC,EAAE,MAAA,EAAQ,IAAA,EAAK,MAAO;AAAA,UAChD,GAAG,IAAA,CAAK,WAAA,CAAY,SAAA,CAAU,KAAK,IAAI,CAAA;AAAA,UACvC;AAAA,SACD,CAAE,CAAA;AAAA,QACF,UAAA,EAAY,IAAI,IAAA,CAAK,UAAA;AAAA,QACrB,WAAA,EAAa,GAAA,CAAI,IAAA,CAAK,QAAA,CAAS,WAAA;AAAA,QAC/B,SAAA,EAAW,GAAA,CAAI,IAAA,CAAK,QAAA,CAAS,SAAA,IAAa;AAAA;AAC3C,KACD;AAAA,EACD;AAAA,EAEA,MAAM,iBACL,KAAA,EACkC;AAClC,IAAA,MAAM,IAAA,GAAO,MAAM,IAAA,CAAK,aAAA,CAAc,gBAAA,EAAiB;AAEvD,IAAA,IAAI,CAAC,IAAA,CAAK,EAAA,EAAI,OAAO,IAAA;AAErB,IAAA,MAAM,GAAA,GAAM,CAAC,GAAG,IAAI,GAAA,CAAI,IAAA,CAAK,IAAA,CAAK,GAAA,CAAI,CAAC,CAAA,KAAM,CAAA,CAAE,EAAE,CAAC,CAAC,CAAA;AAEnD,IAAA,IAAI,GAAA,CAAI,UAAU,CAAA,EAAG;AACpB,MAAA,OAAO;AAAA,QACN,EAAA,EAAI,IAAA;AAAA,QACJ,IAAA,EAAM;AAAA,UACL,OAAO,EAAC;AAAA,UACR,UAAA,EAAY,CAAA;AAAA,UACZ,WAAA,EAAa,KAAA;AAAA,UACb,SAAA,EAAW;AAAA;AACZ,OACD;AAAA,IACD;AAEA,IAAA,MAAM,IAAA,GAAO,MAAM,IAAA,CAAK,gBAAA,CAAiB,KAAA,CAAM;AAAA,MAC9C,OAAO,KAAA,EAAO,KAAA;AAAA,MACd,OAAO,KAAA,EAAO,KAAA;AAAA,MACd,MAAA,EAAQ;AAAA,QACP,SAAA,EAAW;AAAA,UACV,EAAA,EAAI;AAAA;AACL;AACD,KACA,CAAA;AAED,IAAA,IAAI,CAAC,IAAA,CAAK,EAAA,EAAI,OAAO,IAAA;AAErB,IAAA,OAAO;AAAA,MACN,EAAA,EAAI,IAAA;AAAA,MACJ,IAAA,EAAM;AAAA,QACL,KAAA,EAAO,KAAK,IAAA,CAAK,KAAA,CAAM,IAAI,CAAC,EAAE,MAAA,EAAQ,IAAA,EAAK,MAAO;AAAA,UACjD,GAAG,IAAA,CAAK,WAAA,CAAY,SAAA,CAAU,KAAK,IAAI,CAAA;AAAA,UACvC;AAAA,SACD,CAAE,CAAA;AAAA,QACF,UAAA,EAAY,KAAK,IAAA,CAAK,UAAA;AAAA,QACtB,WAAA,EAAa,IAAA,CAAK,IAAA,CAAK,QAAA,CAAS,WAAA;AAAA,QAChC,SAAA,EAAW,IAAA,CAAK,IAAA,CAAK,QAAA,CAAS,SAAA,IAAa;AAAA;AAC5C,KACD;AAAA,EACD;AAAA,EAEA,MAAM,WAAA,CACL,EAAA,EACA,YAAA,EAC6B;AAC7B,IAAA,IAAI,YAAA,EAAc;AACjB,MAAA,MAAM,MAAM,kBAAA,CAAmB,QAAA,CAAS,YAAY,CAAA,GACjD,MAAM,KAAK,aAAA,CAAc,WAAA,CAAY,EAAE,EAAA,EAAI,IAC3C,MAAM,IAAA,CAAK,YAAY,WAAA,CAAY,EAAE,IAAI,CAAA;AAE5C,MAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAEpB,MAAA,OAAO;AAAA,QACN,EAAA,EAAI,IAAA;AAAA,QACJ,IAAA,EAAM,IAAI,IAAA,GACP,IAAA,CAAK,YAAY,SAAA,CAAU,WAAA,CAAY,GAAA,CAAI,IAAI,CAAA,GAC/C;AAAA,OACJ;AAAA,IACD;AAEA,IAAA,MAAM,OAAO,MAAM,IAAA,CAAK,cAAc,WAAA,CAAY,EAAE,IAAI,CAAA;AAExD,IAAA,IAAI,CAAC,IAAA,CAAK,EAAA,EAAI,OAAO,IAAA;AAErB,IAAA,IAAI,KAAK,IAAA,EAAM;AACd,MAAA,OAAO;AAAA,QACN,EAAA,EAAI,IAAA;AAAA,QACJ,MAAM,IAAA,CAAK,WAAA,CAAY,SAAA,CAAU,WAAA,CAAY,KAAK,IAAI;AAAA,OACvD;AAAA,IACD;AAEA,IAAA,MAAM,OAAO,MAAM,IAAA,CAAK,YAAY,WAAA,CAAY,EAAE,IAAI,CAAA;AAEtD,IAAA,IAAI,CAAC,IAAA,CAAK,EAAA,EAAI,OAAO,IAAA;AAErB,IAAA,OAAO;AAAA,MACN,EAAA,EAAI,IAAA;AAAA,MACJ,IAAA,EAAM,KAAK,IAAA,GACR,IAAA,CAAK,YAAY,SAAA,CAAU,WAAA,CAAY,IAAA,CAAK,IAAI,CAAA,GAChD;AAAA,KACJ;AAAA,EACD;AAAA,EAEA,MAAM,kBACL,KAAA,EACmC;AACnC,IAAA,MAAM,EAAA,GAAK,MAAM,EAAA,IAAM,QAAA,CAAS,SAAS,UAAA,CAAW,WAAW,EAAE,QAAA,EAAS;AAE1E,IAAA,IAAI,MAAM,QAAA,EAAU;AACnB,MAAA,MAAM,GAAA,GAAM,mBAAmB,QAAA,CAAS,KAAA,CAAM,QAAQ,CAAA,GACnD,MAAM,IAAA,CAAK,aAAA,CAAc,iBAAA,CAAkB;AAAA,QAC3C,KAAA,EAAO;AAAA,UACN,EAAA;AAAA,UACA,MAAM,KAAA,CAAM;AAAA,SACb;AAAA,QACA,GAAI,KAAK,YAAA,IAAgB;AAAA,UACxB,QAAQ,IAAA,CAAK;AAAA;AACd,OACA,CAAA,GACA,MAAM,IAAA,CAAK,YAAY,iBAAA,CAAkB;AAAA,QACzC,KAAA,EAAO;AAAA,UACN,EAAA;AAAA,UACA,MAAM,KAAA,CAAM,SAAA;AAAA,UACZ,WAAA,EACC,OAAO,MAAA,KAAW,WAAA,GAAc,SAAY,KAAA,CAAM;AAAA,SACpD;AAAA,QACA,GAAI,KAAK,YAAA,IAAgB;AAAA,UACxB,QAAQ,IAAA,CAAK;AAAA;AACd,OACA,CAAA;AAEH,MAAA,OAAO,GAAA,CAAI,KAAK,EAAE,EAAA,EAAI,MAAM,IAAA,EAAM,EAAE,EAAA,EAAG,EAAE,GAAI,GAAA;AAAA,IAC9C;AAEA,IAAA,MAAM,QAAA,GAAW,KAAA,CAAM,IAAA,CAAK,UAAA,CAAW,SAAS,CAAA;AAEhD,IAAA,IAAI,QAAA,EAAU;AACb,MAAA,MAAM,IAAA,GAAO,MAAM,QAAA,CAAS,eAAA;AAAA,QAC3B,UAAA,CAAW,IAAA;AAAA,QACX,KAAA,CAAM;AAAA,OACP,CAAE,IAAA,CAAK,CAAC,WAAA,KAAgB;AACvB,QAAA,OAAO,YAAY,QAAA,EAAS;AAAA,MAC7B,CAAC,CAAA;AAED,MAAA,MAAME,KAAAA,GAAO,MAAM,IAAA,CAAK,WAAA,CAAY,iBAAA,CAAkB;AAAA,QACrD,KAAA,EAAO;AAAA,UACN,EAAA;AAAA,UACA;AAAA;AACD,OACA,CAAA;AAED,MAAA,OAAOA,KAAAA,CAAK,KAAK,EAAE,EAAA,EAAI,MAAM,IAAA,EAAM,EAAE,EAAA,EAAG,EAAE,GAAIA,KAAAA;AAAA,IAC/C;AAEA,IAAA,MAAM,IAAA,GAAO,MAAM,IAAA,CAAK,IAAA,CAAK,MAAM,IAAI,CAAA;AAEvC,IAAA,IAAI,CAAC,KAAK,IAAA,EAAM;AACf,MAAA,OAAO;AAAA,QACN,EAAA,EAAI,KAAA;AAAA,QACJ,KAAA,EAAO;AAAA,UACN,IAAA,EAAM,IAAA,CAAK,KAAA,EAAO,IAAA,IAAQ,uBAAA;AAAA,UAC1B,OAAA,EAAS,IAAA,CAAK,KAAA,EAAO,OAAA,IAAW;AAAA;AACjC,OACD;AAAA,IACD;AAEA,IAAA,MAAM,EAAE,QAAA,EAAU,SAAA,EAAU,GAAI,IAAA,CAAK,IAAA;AAErC,IAAA,MAAM,IAAA,GAAO,mBAAmB,QAAA,CAAS,QAAQ,IAC9C,MAAM,IAAA,CAAK,cAAc,iBAAA,CAAkB;AAAA,MAC3C,KAAA,EAAO,EAAE,EAAA,EAAI,IAAA,EAAM,SAAA,EAAU;AAAA,MAC7B,GAAI,KAAK,YAAA,IAAgB;AAAA,QACxB,QAAQ,IAAA,CAAK;AAAA;AACd,KACA,CAAA,GACA,MAAM,IAAA,CAAK,YAAY,iBAAA,CAAkB;AAAA,MACzC,KAAA,EAAO;AAAA,QACN,EAAA;AAAA,QACA,IAAA,EAAM,SAAA;AAAA,QACN,WAAA,EACC,OAAO,MAAA,KAAW,WAAA,GAAc,SAAY,KAAA,CAAM;AAAA,OACpD;AAAA,MACA,GAAI,KAAK,YAAA,IAAgB;AAAA,QACxB,QAAQ,IAAA,CAAK;AAAA;AACd,KACA,CAAA;AAEH,IAAA,OAAO,IAAA,CAAK,KAAK,EAAE,EAAA,EAAI,MAAM,IAAA,EAAM,EAAE,EAAA,EAAG,EAAE,GAAI,IAAA;AAAA,EAC/C;AAAA,EAEA,MAAM,cAAA,CACL,EAAA,EACA,YAAA,EACgC;AAChC,IAAA,IAAI,YAAA,EAAc;AACjB,MAAA,OAAO,kBAAA,CAAmB,QAAA,CAAS,YAAY,CAAA,GAC5C,MAAM,KAAK,aAAA,CAAc,cAAA,CAAe,EAAE,KAAA,EAAO,EAAE,EAAA,IAAM,CAAA,GACzD,MAAM,IAAA,CAAK,WAAA,CAAY,cAAA,CAAe,EAAE,KAAA,EAAO,EAAE,EAAA,EAAG,EAAG,CAAA;AAAA,IAC3D;AAEA,IAAA,MAAM,IAAA,GAAO,MAAM,IAAA,CAAK,aAAA,CAAc,cAAA,CAAe,EAAE,KAAA,EAAO,EAAE,EAAA,EAAG,EAAG,CAAA;AACtE,IAAA,IAAI,IAAA,CAAK,IAAI,OAAO,IAAA;AACpB,IAAA,MAAM,IAAA,GAAO,MAAM,IAAA,CAAK,WAAA,CAAY,cAAA,CAAe,EAAE,KAAA,EAAO,EAAE,EAAA,EAAG,EAAG,CAAA;AACpE,IAAA,OAAO,IAAA;AAAA,EACR;AAAA,EAEA,MAAM,mBACL,KAAA,EACoC;AACpC,IAAA,OAAO,MAAM,IAAA,CAAK,aAAA,CAAc,kBAAA,CAAmB,EAAE,OAAO,CAAA;AAAA,EAC7D;AAAA,EAEA,MAAM,qBACL,KAAA,EACsC;AACtC,IAAA,OAAO,MAAM,IAAA,CAAK,aAAA,CAAc,oBAAA,CAAqB,EAAE,OAAO,CAAA;AAAA,EAC/D;AAAA,EAEA,MAAM,aAAA,GAA8C;AACnD,IAAA,MAAM,IAAA,GAAO,MAAM,IAAA,CAAK,aAAA,CAAc,aAAA,EAAc;AAEpD,IAAA,MAAM,MAAM,IAAA,CAAK,IAAA,EAAM,SACpB,CAAC,GAAG,IAAI,GAAA,CAAI,IAAA,CAAK,IAAA,CAAK,GAAA,CAAI,CAAC,CAAA,KAAM,CAAA,CAAE,EAAE,CAAC,CAAC,IACvC,EAAC;AAEJ,IAAA,IAAI,GAAA,CAAI,UAAU,CAAA,EAAG;AACpB,MAAA,OAAO;AAAA,QACN,EAAA,EAAI,IAAA;AAAA,QACJ,MAAM;AAAC,OACR;AAAA,IACD;AAEA,IAAA,MAAM,IAAA,GAAO,MAAM,IAAA,CAAK,gBAAA,CAAiB,KAAA,CAAM;AAAA,MAC9C,MAAA,EAAQ;AAAA,QACP,SAAA,EAAW;AAAA,UACV,EAAA,EAAI;AAAA;AACL;AACD,KACA,CAAA;AAED,IAAA,IAAI,CAAC,IAAA,CAAK,EAAA,EAAI,OAAO,IAAA;AAErB,IAAA,OAAO;AAAA,MACN,EAAA,EAAI,IAAA;AAAA,MACJ,MACC,IAAA,CAAK,IAAA,EACF,IAAI,CAAC,EAAE,IAAG,KAAM;AACjB,QAAA,MAAM,IAAA,GAAO,IAAA,CAAK,IAAA,CAAK,KAAA,CAAM,IAAA;AAAA,UAC5B,CAAC,CAAA,KAAM,EAAA,KAAO,CAAA,CAAE,IAAA,CAAK;AAAA,SACtB,EAAG,IAAA;AACH,QAAA,OAAO,OAAO,IAAA,CAAK,WAAA,CAAY,SAAA,CAAU,IAAA,CAAK,IAAI,CAAA,GAAI,IAAA;AAAA,MACvD,CAAC,CAAA,CACA,MAAA,CAAO,OAAO,KAAK;AAAC,KACxB;AAAA,EACD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,MAAM,KAAK,EAAA,EAAiC;AAC3C,IAAA,MAAM,MAAM,MAAM,IAAA,CAAK,YAAY,IAAA,CAAK,EAAE,IAAI,CAAA;AAE9C,IAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAEpB,IAAA,OAAO;AAAA,MACN,EAAA,EAAI,IAAA;AAAA,MACJ,IAAA,EAAM,IAAI,IAAA,GAAO,IAAA,CAAK,YAAY,SAAA,CAAU,IAAA,CAAK,GAAA,CAAI,IAAI,CAAA,GAAI;AAAA,KAC9D;AAAA,EACD;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,MAAM,EAAA,EAAiC;AAC5C,IAAA,MAAM,MAAM,MAAM,IAAA,CAAK,eAAe,IAAA,CAAK,EAAE,IAAI,CAAA;AAEjD,IAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAEpB,IAAA,OAAO;AAAA,MACN,EAAA,EAAI,IAAA;AAAA,MACJ,IAAA,EAAM,IAAI,IAAA,GAAO,IAAA,CAAK,YAAY,SAAA,CAAU,IAAA,CAAK,GAAA,CAAI,IAAI,CAAA,GAAI;AAAA,KAC9D;AAAA,EACD;AAAA,EAEA,MAAM,gBACL,KAAA,EACiC;AACjC,IAAA,MAAM,EAAA,GAAK,MAAM,EAAA,IAAM,QAAA,CAAS,SAAS,UAAA,CAAW,IAAI,EAAE,QAAA,EAAS;AAEnE,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,WAAA,CAAY,sBAAA,CAAuB;AAAA,MACzD,KAAA,EAAO;AAAA,QACN,EAAA;AAAA,QACA,MAAM,KAAA,CAAM;AAAA;AACb,KACA,CAAA;AAED,IAAA,OAAO,GAAA,CAAI,KAAK,EAAE,EAAA,EAAI,MAAM,IAAA,EAAM,EAAE,EAAA,EAAG,EAAE,GAAI,GAAA;AAAA,EAC9C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,MAAM,YAAA,GAA4C;AACjD,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,aAAA,CAAc,YAAA,EAAa;AAElD,IAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAEpB,IAAA,OAAO;AAAA,MACN,EAAA,EAAI,IAAA;AAAA,MACJ,IAAA,EAAM,IAAI,IAAA,GAAO,IAAA,CAAK,YAAY,SAAA,CAAU,YAAA,CAAa,GAAA,CAAI,IAAI,CAAA,GAAI;AAAA,KACtE;AAAA,EACD;AAAA,EAEA,MAAM,aAAa,KAAA,EAAuD;AACzE,IAAA,OAAO,MAAM,IAAA,CAAK,aAAA,CAAc,kBAAA,CAAmB;AAAA,MAClD,KAAA,EAAO;AAAA,QACN,MAAA,EAAQ,KAAA,CAAM,MAAA,CAAO,QAAA;AAAS;AAC/B,KACA,CAAA;AAAA,EACF;AAAA,EAEA,MAAM,yBACL,KAAA,EAC0C;AAC1C,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,aAAA,CAAc,yBAAyB,KAAK,CAAA;AAEnE,IAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAEpB,IAAA,OAAO;AAAA,MACN,EAAA,EAAI,IAAA;AAAA,MACJ,IAAA,EAAM;AAAA,QACL,wBAAA,EAA0B,IAAI,IAAA,CAAK,KAAA,CAAM,IAAI,CAAC,EAAE,MAAA,EAAQ,IAAA,EAAK,MAAO;AAAA,UACnE,GAAG,IAAA,CAAK,WAAA,CAAY,SAAA,CAAU,wBAAwB,IAAI,CAAA;AAAA,UAC1D;AAAA,SACD,CAAE,CAAA;AAAA,QACF,UAAA,EAAY,IAAI,IAAA,CAAK,UAAA;AAAA,QACrB,WAAA,EAAa,GAAA,CAAI,IAAA,CAAK,QAAA,CAAS,WAAA;AAAA,QAC/B,SAAA,EAAW,GAAA,CAAI,IAAA,CAAK,QAAA,CAAS,SAAA,IAAa;AAAA;AAC3C,KACD;AAAA,EACD;AAAA,EAEA,MAAM,+BACL,KAAA,EACgD;AAChD,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,aAAA,CAAc,+BAA+B,KAAK,CAAA;AAEzE,IAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAEpB,IAAA,OAAO;AAAA,MACN,EAAA,EAAI,IAAA;AAAA,MACJ,IAAA,EAAM;AAAA,QACL,+BAAA,EAAiC,GAAA,CAAI,IAAA,CAAK,KAAA,CAAM,GAAA;AAAA,UAC/C,CAAC,EAAE,MAAA,EAAQ,IAAA,EAAK,MAAO;AAAA,YACtB,GAAG,IAAA,CAAK,WAAA,CAAY,SAAA,CAAU,+BAA+B,IAAI,CAAA;AAAA,YACjE;AAAA,WACD;AAAA,SACD;AAAA,QACA,UAAA,EAAY,IAAI,IAAA,CAAK,UAAA;AAAA,QACrB,WAAA,EAAa,GAAA,CAAI,IAAA,CAAK,QAAA,CAAS,WAAA;AAAA,QAC/B,SAAA,EAAW,GAAA,CAAI,IAAA,CAAK,QAAA,CAAS,SAAA,IAAa;AAAA;AAC3C,KACD;AAAA,EACD;AAAA,EAEA,MAAM,kBAAA,GAAuD;AAC5D,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,aAAA,CAAc,kBAAA,EAAmB;AAExD,IAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAEpB,IAAA,OAAO;AAAA,MACN,EAAA,EAAI,IAAA;AAAA,MACJ,IAAA,EAAM,IAAI,IAAA,GACP,IAAA,CAAK,YAAY,SAAA,CAAU,kBAAA,CAAmB,GAAA,CAAI,IAAI,CAAA,GACtD;AAAA,KACJ;AAAA,EACD;AAAA,EAEA,MAAM,cACL,KAAA,EAC+B;AAC/B,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,aAAA,CAAc,cAAc,KAAK,CAAA;AAExD,IAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAEpB,IAAA,OAAO;AAAA,MACN,EAAA,EAAI,IAAA;AAAA,MACJ,IAAA,EAAM;AAAA,QACL,OAAA,EAAS,IAAI,IAAA,CAAK,KAAA,CAAM,IAAI,CAAC,EAAE,MAAA,EAAQ,IAAA,EAAK,MAAO;AAAA,UAClD,GAAG,IAAA,CAAK,WAAA,CAAY,SAAA,CAAU,OAAO,IAAI,CAAA;AAAA,UACzC;AAAA,SACD,CAAE,CAAA;AAAA,QACF,UAAA,EAAY,IAAI,IAAA,CAAK,UAAA;AAAA,QACrB,SAAA,EAAW,GAAA,CAAI,IAAA,CAAK,QAAA,CAAS,SAAA,IAAa,MAAA;AAAA,QAC1C,WAAA,EAAa,GAAA,CAAI,IAAA,CAAK,QAAA,CAAS;AAAA;AAChC,KACD;AAAA,EACD;AAAA,EAEA,MAAM,yBACL,KAAA,EAC0C;AAC1C,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,aAAA,CAAc,yBAAyB,KAAK,CAAA;AAEnE,IAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAEpB,IAAA,OAAO;AAAA,MACN,EAAA,EAAI,IAAA;AAAA,MACJ,IAAA,EAAM;AAAA,QACL,OAAA,EAAS,IAAI,IAAA,CAAK,KAAA,CAAM,IAAI,CAAC,EAAE,MAAA,EAAQ,IAAA,EAAK,MAAO;AAAA,UAClD,GAAG,IAAA,CAAK,WAAA,CAAY,SAAA,CAAU,yBAAyB,IAAI,CAAA;AAAA,UAC3D;AAAA,SACD,CAAE,CAAA;AAAA,QACF,UAAA,EAAY,IAAI,IAAA,CAAK,UAAA;AAAA,QACrB,SAAA,EAAW,GAAA,CAAI,IAAA,CAAK,QAAA,CAAS,SAAA,IAAa,MAAA;AAAA,QAC1C,WAAA,EAAa,GAAA,CAAI,IAAA,CAAK,QAAA,CAAS;AAAA;AAChC,KACD;AAAA,EACD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,MAAM,gBACL,KAAA,EACiC;AACjC,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,aAAA,CAAc,gBAAgB,KAAK,CAAA;AAE1D,IAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAEpB,IAAA,OAAO;AAAA,MACN,EAAA,EAAI,IAAA;AAAA,MACJ,IAAA,EAAM;AAAA,QACL,eAAA,EAAiB,IAAI,IAAA,CAAK,KAAA,CAAM,IAAI,CAAC,EAAE,MAAA,EAAQ,IAAA,EAAK,MAAO;AAAA,UAC1D,GAAG,IAAA,CAAK,WAAA,CAAY,SAAA,CAAU,eAAe,IAAI,CAAA;AAAA,UACjD;AAAA,SACD,CAAE,CAAA;AAAA,QACF,UAAA,EAAY,IAAI,IAAA,CAAK,UAAA;AAAA,QACrB,WAAA,EAAa,GAAA,CAAI,IAAA,CAAK,QAAA,CAAS,WAAA;AAAA,QAC/B,SAAA,EAAW,GAAA,CAAI,IAAA,CAAK,QAAA,CAAS,SAAA,IAAa;AAAA;AAC3C,KACD;AAAA,EACD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,MAAM,YAAA,GAA4C;AACjD,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,cAAA,CAAe,YAAA,EAAa;AAEnD,IAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAEpB,IAAA,OAAO;AAAA,MACN,EAAA,EAAI,IAAA;AAAA,MACJ,IAAA,EAAM,IAAI,IAAA,IAAQ;AAAA,KACnB;AAAA,EACD;AAAA,EAEA,MAAM,mBACL,KAAA,EACoC;AACpC,IAAA,OAAO,MAAM,IAAA,CAAK,cAAA,CAAe,kBAAA,CAAmB,EAAE,OAAO,CAAA;AAAA,EAC9D;AAAA,EAEA,MAAM,UAAU,KAAA,EAAkD;AACjE,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,aAAA,CAAc,UAAU,KAAK,CAAA;AAEpD,IAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAEpB,IAAA,OAAO;AAAA,MACN,EAAA,EAAI,IAAA;AAAA,MACJ,IAAA,EAAM;AAAA,QACL,SAAA,EAAW,IAAI,IAAA,CAAK,KAAA,CAAM,IAAI,CAAC,EAAE,MAAA,EAAQ,IAAA,EAAK,MAAO;AAAA,UACpD,GAAG,IAAA,CAAK,WAAA,CAAY,SAAA,CAAU,SAAS,IAAI,CAAA;AAAA,UAC3C;AAAA,SACD,CAAE,CAAA;AAAA,QACF,UAAA,EAAY,IAAI,IAAA,CAAK,UAAA;AAAA,QACrB,WAAA,EAAa,GAAA,CAAI,IAAA,CAAK,QAAA,CAAS,WAAA;AAAA,QAC/B,SAAA,EAAW,GAAA,CAAI,IAAA,CAAK,QAAA,CAAS,SAAA,IAAa;AAAA;AAC3C,KACD;AAAA,EACD;AAAA,EAEA,MAAM,kBAAA,GAAwD;AAC7D,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,aAAA,CAAc,kBAAA,EAAmB;AAExD,IAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAEpB,IAAA,OAAO;AAAA,MACN,EAAA,EAAI,IAAA;AAAA,MACJ,IAAA,EAAM,IAAI,IAAA,GACP,IAAA,CAAK,YAAY,SAAA,CAAU,kBAAA,CAAmB,GAAA,CAAI,IAAI,CAAA,GACtD;AAAA,KACJ;AAAA,EACD;AAAA,EAEA,MAAM,cAAc,KAAA,EAAyD;AAC5E,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,aAAA,CAAc,cAAc,KAAK,CAAA;AAExD,IAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAEpB,IAAA,OAAO;AAAA,MACN,EAAA,EAAI,IAAA;AAAA,MACJ,MAAM,GAAA,CAAI,IAAA,CAAK,IAAI,IAAA,CAAK,WAAA,CAAY,UAAU,QAAQ;AAAA,KACvD;AAAA,EACD;AAAA,EAEA,MAAM,gBACL,KAAA,EACiC;AACjC,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,aAAA,CAAc,gBAAgB,KAAK,CAAA;AAE1D,IAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAEpB,IAAA,OAAO;AAAA,MACN,EAAA,EAAI,IAAA;AAAA,MACJ,MAAM,GAAA,CAAI,IAAA,CAAK,IAAI,IAAA,CAAK,WAAA,CAAY,UAAU,QAAQ;AAAA,KACvD;AAAA,EACD;AAAA,EAEA,MAAM,kBAAA,GAAwD;AAC7D,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,cAAA,CAAe,kBAAA,EAAmB;AAEzD,IAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAEpB,IAAA,OAAO;AAAA,MACN,EAAA,EAAI,IAAA;AAAA,MACJ,IAAA,EAAM,IAAI,IAAA,GACP,IAAA,CAAK,YAAY,SAAA,CAAU,kBAAA,CAAmB,GAAA,CAAI,IAAI,CAAA,GACtD;AAAA,KACJ;AAAA,EACD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,MAAM,SAAS,KAAA,EAAgD;AAC9D,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,cAAA,CAAe,SAAS,KAAK,CAAA;AAEpD,IAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAEpB,IAAA,OAAO;AAAA,MACN,EAAA,EAAI,IAAA;AAAA,MACJ,IAAA,EAAM;AAAA,QACL,QAAA,EAAU,IAAI,IAAA,CAAK,KAAA,CAAM,IAAI,CAAC,EAAE,MAAA,EAAQ,IAAA,EAAK,MAAO;AAAA,UACnD,GAAG,IAAA,CAAK,WAAA,CAAY,SAAA,CAAU,QAAQ,IAAI,CAAA;AAAA,UAC1C;AAAA,SACD,CAAE,CAAA;AAAA,QACF,UAAA,EAAY,IAAI,IAAA,CAAK,UAAA;AAAA,QACrB,WAAA,EAAa,GAAA,CAAI,IAAA,CAAK,QAAA,CAAS,WAAA;AAAA,QAC/B,SAAA,EAAW,GAAA,CAAI,IAAA,CAAK,QAAA,CAAS,SAAA,IAAa;AAAA;AAC3C,KACD;AAAA,EACD;AAAA,EAEA,MAAM,oBACL,KAAA,EACqC;AACrC,IAAA,OAAO,MAAM,IAAA,CAAK,cAAA,CAAe,mBAAA,CAAoB,KAAK,CAAA;AAAA,EAC3D;AAAA,EAEA,MAAM,kBAAkB,EAAA,EAA8C;AACrE,IAAA,OAAO,MAAM,IAAA,CAAK,cAAA,CAAe,iBAAA,CAAkB,EAAE,IAAI,CAAA;AAAA,EAC1D;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,oBAAA,GAA6D;AAClE,IAAA,OAAO,MAAM,IAAA,CAAK,cAAA,CAAe,oBAAA,EAAqB;AAAA,EACvD;AAAA,EAEA,MAAM,qBAAA,GAA8D;AACnE,IAAA,OAAO,MAAM,IAAA,CAAK,cAAA,CAAe,qBAAA,EAAsB;AAAA,EACxD;AAAA,EAEA,MAAM,YAAY,EAAA,EAAwC;AACzD,IAAA,OAAO,MAAM,IAAA,CAAK,cAAA,CAAe,WAAA,CAAY,EAAE,IAAI,CAAA;AAAA,EACpD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,MAAM,gBAAA,GAAoD;AACzD,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,aAAA,CAAc,gBAAA,EAAiB;AACtD,IAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AACpB,IAAA,OAAO;AAAA,MACN,EAAA,EAAI,IAAA;AAAA,MACJ,MAAM,GAAA,CAAI;AAAA,KACX;AAAA,EACD;AAAA,EAEA,MAAM,mBACL,KAAA,EACoC;AACpC,IAAA,OAAO,MAAM,IAAA,CAAK,aAAA,CAAc,kBAAA,CAAmB;AAAA,MAClD,KAAA,EAAO;AAAA,QACN,mBAAmB,KAAA,CAAM,iBAAA;AAAA,QACzB,kBAAkB,KAAA,CAAM;AAAA;AACzB,KACA,CAAA;AAAA,EACF;AAAA,EAEA,MAAM,cAAA,GAAgD;AACrD,IAAA,OAAO,MAAM,IAAA,CAAK,aAAA,CAAc,cAAA,EAAe;AAAA,EAChD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,MAAM,eAAA,GAAkD;AACvD,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,cAAA,CAAe,eAAA,EAAgB;AAEtD,IAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAEpB,IAAA,OAAO;AAAA,MACN,EAAA,EAAI,IAAA;AAAA,MACJ,MAAM,GAAA,CAAI,IAAA,CAAK,IAAI,IAAA,CAAK,WAAA,CAAY,UAAU,KAAK;AAAA,KACpD;AAAA,EACD;AAAA,EAEA,MAAM,kBAAkB,EAAA,EAA8C;AACrE,IAAA,OAAO,MAAM,KAAK,cAAA,CAAe,iBAAA,CAAkB,EAAE,KAAA,EAAO,EAAE,EAAA,EAAG,EAAG,CAAA;AAAA,EACrE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,MAAM,OAAA,GAAkC;AACvC,IAAA,MAAM,IAAA,GAAO,MAAM,IAAA,CAAK,aAAA,CAAc,OAAA,EAAQ;AAE9C,IAAA,MAAM,MAAM,IAAA,CAAK,IAAA,EAAM,SACpB,CAAC,GAAG,IAAI,GAAA,CAAI,IAAA,CAAK,KAAK,GAAA,CAAI,CAAC,MAAM,CAAA,CAAE,IAAA,CAAK,EAAE,CAAC,CAAC,IAC5C,EAAC;AAEJ,IAAA,IAAI,GAAA,CAAI,UAAU,CAAA,EAAG;AACpB,MAAA,OAAO;AAAA,QACN,EAAA,EAAI,IAAA;AAAA,QACJ,MAAM;AAAC,OACR;AAAA,IACD;AAEA,IAAA,MAAM,IAAA,GAAO,MAAM,IAAA,CAAK,gBAAA,CAAiB,KAAA,CAAM;AAAA,MAC9C,MAAA,EAAQ;AAAA,QACP,SAAA,EAAW;AAAA,UACV,EAAA,EAAI;AAAA;AACL;AACD,KACA,CAAA;AAED,IAAA,IAAI,CAAC,IAAA,CAAK,EAAA,EAAI,OAAO,IAAA;AAErB,IAAA,OAAO;AAAA,MACN,EAAA,EAAI,IAAA;AAAA,MACJ,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,GAAA,CAAI,CAAC,CAAA,KAAM;AAC5B,QAAA,MAAM,IAAA,GAAO,IAAA,CAAK,IAAA,CAAK,KAAA,CAAM,IAAA;AAAA,UAC5B,CAAC,CAAA,KAAM,CAAA,CAAE,IAAA,CAAK,SAAA,KAAc,EAAE,IAAA,CAAK;AAAA,SACpC,EAAG,IAAA;AAEH,QAAA,OAAO,IAAA,CAAK,WAAA,CAAY,SAAA,CAAU,MAAA,CAAO;AAAA,UACxC,GAAG,CAAA;AAAA,UACH;AAAA,SACA,CAAA;AAAA,MACF,CAAC;AAAA,KACF;AAAA,EACD;AAAA,EAEA,MAAM,WAAA,GAAsC;AAC3C,IAAA,MAAM,IAAA,GAAO,MAAM,IAAA,CAAK,aAAA,CAAc,WAAA,EAAY;AAElD,IAAA,MAAM,MAAM,IAAA,CAAK,IAAA,EAAM,SACpB,CAAC,GAAG,IAAI,GAAA,CAAI,IAAA,CAAK,KAAK,GAAA,CAAI,CAAC,MAAM,CAAA,CAAE,IAAA,CAAK,EAAE,CAAC,CAAC,IAC5C,EAAC;AAEJ,IAAA,IAAI,GAAA,CAAI,UAAU,CAAA,EAAG;AACpB,MAAA,OAAO;AAAA,QACN,EAAA,EAAI,IAAA;AAAA,QACJ,MAAM;AAAC,OACR;AAAA,IACD;AAEA,IAAA,MAAM,IAAA,GAAO,MAAM,IAAA,CAAK,gBAAA,CAAiB,KAAA,CAAM;AAAA,MAC9C,MAAA,EAAQ;AAAA,QACP,SAAA,EAAW;AAAA,UACV,EAAA,EAAI;AAAA;AACL;AACD,KACA,CAAA;AAED,IAAA,IAAI,CAAC,IAAA,CAAK,EAAA,EAAI,OAAO,IAAA;AAErB,IAAA,OAAO;AAAA,MACN,EAAA,EAAI,IAAA;AAAA,MACJ,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,GAAA,CAAI,CAAC,CAAA,KAAM;AAC5B,QAAA,MAAM,IAAA,GAAO,IAAA,CAAK,IAAA,CAAK,KAAA,CAAM,IAAA;AAAA,UAC5B,CAAC,CAAA,KAAM,CAAA,CAAE,IAAA,CAAK,SAAA,KAAc,EAAE,IAAA,CAAK;AAAA,SACpC,EAAG,IAAA;AAEH,QAAA,OAAO,IAAA,CAAK,WAAA,CAAY,SAAA,CAAU,MAAA,CAAO;AAAA,UACxC,GAAG,CAAA;AAAA,UACH;AAAA,SACA,CAAA;AAAA,MACF,CAAC;AAAA,KACF;AAAA,EACD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,MAAM,SAAS,KAAA,EAAgD;AAC9D,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,aAAA,CAAc,SAAS,KAAK,CAAA;AAEnD,IAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAEpB,IAAA,OAAO;AAAA,MACN,EAAA,EAAI,IAAA;AAAA,MACJ,IAAA,EAAM;AAAA,QACL,QAAA,EAAU,IAAI,IAAA,CAAK,KAAA,CAAM,IAAI,CAAC,EAAE,MAAA,EAAQ,IAAA,EAAK,MAAO;AAAA,UACnD,GAAG,IAAA,CAAK,WAAA,CAAY,SAAA,CAAU,SAAS,IAAI,CAAA;AAAA,UAC3C;AAAA,SACD,CAAE,CAAA;AAAA,QACF,WAAA,EAAa,GAAA,CAAI,IAAA,CAAK,QAAA,CAAS,WAAA;AAAA,QAC/B,UAAA,EAAY,IAAI,IAAA,CAAK,UAAA;AAAA,QACrB,SAAA,EAAW,GAAA,CAAI,IAAA,CAAK,QAAA,CAAS,SAAA,IAAa;AAAA;AAC3C,KACD;AAAA,EACD;AAAA,EAEA,MAAM,YAAY,KAAA,EAAsD;AACvE,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,aAAA,CAAc,YAAY,KAAK,CAAA;AAEtD,IAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAEpB,IAAA,OAAO;AAAA,MACN,EAAA,EAAI,IAAA;AAAA,MACJ,IAAA,EAAM;AAAA,QACL,QAAA,EAAU,GAAA,CAAI,IAAA,CAAK,KAAA,CAAM,GAAA,CAAI,CAAC,EAAE,IAAA,EAAK,KAAM,IAAA,CAAK,EAAE,CAAA;AAAA,QAClD,WAAA,EAAa,GAAA,CAAI,IAAA,CAAK,QAAA,CAAS,WAAA;AAAA,QAC/B,UAAA,EAAY,IAAI,IAAA,CAAK,UAAA;AAAA,QACrB,SAAA,EAAW,GAAA,CAAI,IAAA,CAAK,QAAA,CAAS,SAAA,IAAa;AAAA;AAC3C,KACD;AAAA,EACD;AAAA,EAEA,MAAM,UAAU,KAAA,EAAkD;AACjE,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,aAAA,CAAc,UAAU,KAAK,CAAA;AAEpD,IAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAEpB,IAAA,OAAO;AAAA,MACN,EAAA,EAAI,IAAA;AAAA,MACJ,IAAA,EAAM;AAAA,QACL,SAAA,EAAW,IAAI,IAAA,CAAK,KAAA,CAAM,IAAI,CAAC,EAAE,MAAA,EAAQ,IAAA,EAAK,MAAO;AAAA,UACpD,GAAG,IAAA,CAAK,WAAA,CAAY,SAAA,CAAU,SAAS,IAAI,CAAA;AAAA,UAC3C;AAAA,SACD,CAAE,CAAA;AAAA,QACF,WAAA,EAAa,GAAA,CAAI,IAAA,CAAK,QAAA,CAAS,WAAA;AAAA,QAC/B,UAAA,EAAY,IAAI,IAAA,CAAK,UAAA;AAAA,QACrB,SAAA,EAAW,GAAA,CAAI,IAAA,CAAK,QAAA,CAAS,SAAA,IAAa;AAAA;AAC3C,KACD;AAAA,EACD;AAAA,EAEA,MAAM,eACL,KAAA,EACgC;AAChC,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,aAAA,CAAc,eAAe,KAAK,CAAA;AAEzD,IAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAEpB,IAAA,OAAO;AAAA,MACN,EAAA,EAAI,IAAA;AAAA,MACJ,IAAA,EAAM;AAAA,QACL,cAAA,EAAgB,IAAI,IAAA,CAAK,KAAA,CAAM,IAAI,CAAC,EAAE,MAAA,EAAQ,IAAA,EAAK,MAAO;AAAA,UACzD,GAAG,IAAA,CAAK,WAAA,CAAY,SAAA,CAAU,eAAe,IAAI,CAAA;AAAA,UACjD;AAAA,SACD,CAAE,CAAA;AAAA,QACF,WAAA,EAAa,GAAA,CAAI,IAAA,CAAK,QAAA,CAAS,WAAA;AAAA,QAC/B,UAAA,EAAY,IAAI,IAAA,CAAK,UAAA;AAAA,QACrB,SAAA,EAAW,GAAA,CAAI,IAAA,CAAK,QAAA,CAAS,SAAA,IAAa;AAAA;AAC3C,KACD;AAAA,EACD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,MAAM,YAAY,KAAA,EAAsD;AACvE,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,aAAA,CAAc,YAAY,KAAK,CAAA;AAEtD,IAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAEpB,IAAA,OAAO;AAAA,MACN,EAAA,EAAI,IAAA;AAAA,MACJ,IAAA,EAAM;AAAA,QACL,WAAA,EAAa,IAAI,IAAA,CAAK,KAAA,CAAM,IAAI,CAAC,EAAE,MAAA,EAAQ,IAAA,EAAK,MAAO;AAAA,UACtD,GAAG,IAAA,CAAK,WAAA,CAAY,SAAA,CAAU,YAAY,IAAI,CAAA;AAAA,UAC9C;AAAA,SACD,CAAE,CAAA;AAAA,QACF,WAAA,EAAa,GAAA,CAAI,IAAA,CAAK,QAAA,CAAS,WAAA;AAAA,QAC/B,UAAA,EAAY,IAAI,IAAA,CAAK,UAAA;AAAA,QACrB,SAAA,EAAW,GAAA,CAAI,IAAA,CAAK,QAAA,CAAS,SAAA,IAAa;AAAA;AAC3C,KACD;AAAA,EACD;AAAA,EAEA,MAAM,eACL,KAAA,EACgC;AAChC,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,aAAA,CAAc,eAAe,KAAK,CAAA;AAEzD,IAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AAEpB,IAAA,OAAO;AAAA,MACN,EAAA,EAAI,IAAA;AAAA,MACJ,IAAA,EAAM;AAAA,QACL,WAAA,EAAa,GAAA,CAAI,IAAA,CAAK,KAAA,CAAM,GAAA,CAAI,CAAC,EAAE,IAAA,EAAK,KAAM,IAAA,CAAK,EAAE,CAAA;AAAA,QACrD,WAAA,EAAa,GAAA,CAAI,IAAA,CAAK,QAAA,CAAS,WAAA;AAAA,QAC/B,UAAA,EAAY,IAAI,IAAA,CAAK,UAAA;AAAA,QACrB,SAAA,EAAW,GAAA,CAAI,IAAA,CAAK,QAAA,CAAS,SAAA,IAAa;AAAA;AAC3C,KACD;AAAA,EACD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,MAAM,kBACL,KAAA,EACmC;AACnC,IAAA,OAAO,MAAM,IAAA,CAAK,cAAA,CAAe,iBAAA,CAAkB,EAAE,OAAO,CAAA;AAAA,EAC7D;AAAA,EAEA,MAAM,oBACL,KAAA,EACqC;AACrC,IAAA,OAAO,MAAM,IAAA,CAAK,cAAA,CAAe,mBAAA,CAAoB,EAAE,OAAO,CAAA;AAAA,EAC/D;AAAA,EAEA,MAAM,iCACL,KAAA,EACkD;AAClD,IAAA,OAAO,MAAM,IAAA,CAAK,cAAA,CAAe,gCAAA,CAAiC;AAAA,MACjE;AAAA,KACA,CAAA;AAAA,EACF;AAAA,EAEA,MAAM,mCACL,KAAA,EACoD;AACpD,IAAA,OAAO,MAAM,IAAA,CAAK,cAAA,CAAe,kCAAA,CAAmC;AAAA,MACnE;AAAA,KACA,CAAA;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,MAAM,cAAA,GAAgD;AACrD,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,cAAA,CAAe,cAAA,EAAe;AACrD,IAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AACpB,IAAA,OAAO;AAAA,MACN,EAAA,EAAI,IAAA;AAAA,MACJ,IAAA,EAAM,IAAI,IAAA,IAAQ;AAAA,KACnB;AAAA,EACD;AAAA,EAEA,MAAM,mBAAA,GAA0D;AAC/D,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,cAAA,CAAe,mBAAA,EAAoB;AAC1D,IAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AACpB,IAAA,OAAO;AAAA,MACN,EAAA,EAAI,IAAA;AAAA,MACJ,IAAA,EAAM,IAAI,IAAA,IAAQ;AAAA,KACnB;AAAA,EACD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,MAAM,yBAAA,GAAsE;AAC3E,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,cAAA,CAAe,yBAAA,EAA0B;AAChE,IAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AACpB,IAAA,OAAO;AAAA,MACN,EAAA,EAAI,IAAA;AAAA,MACJ,IAAA,EAAM,IAAI,IAAA,GACP,IAAA,CAAK,YAAY,SAAA,CAAU,yBAAA,CAA0B,GAAA,CAAI,IAAI,CAAA,GAC7D;AAAA,KACJ;AAAA,EACD;AAAA,EAEA,MAAM,8BACL,EAAA,EAC2C;AAC3C,IAAA,MAAM,MAAM,MAAM,IAAA,CAAK,eAAe,6BAAA,CAA8B,EAAE,IAAI,CAAA;AAC1E,IAAA,IAAI,CAAC,GAAA,CAAI,EAAA,EAAI,OAAO,GAAA;AACpB,IAAA,OAAO;AAAA,MACN,EAAA,EAAI,IAAA;AAAA,MACJ,IAAA,EAAM,IAAI,IAAA,GACP,IAAA,CAAK,YAAY,SAAA,CAAU,yBAAA,CAA0B,GAAA,CAAI,IAAI,CAAA,GAC7D;AAAA,KACJ;AAAA,EACD;AAAA,EAEA,MAAM,4CACL,KAAA,EAC6D;AAC7D,IAAA,OAAO,MAAM,KAAK,cAAA,CAAe,2CAAA;AAAA,MAChC;AAAA,QACC,KAAA,EAAO;AAAA,UACN,GAAG,KAAA;AAAA,UACH,WAAA,EAAa,IAAA,CAAK,SAAA,CAAU,KAAA,CAAM,WAAW;AAAA;AAC9C;AACD,KACD;AAAA,EACD;AAAA,EAEA,MAAM,4CACL,KAAA,EAC6D;AAC7D,IAAA,OAAO,MAAM,KAAK,cAAA,CAAe,2CAAA;AAAA,MAChC,EAAE,KAAA;AAAM,KACT;AAAA,EACD;AAAA,EAEA,MAAM,+CACL,KAAA,EACgE;AAChE,IAAA,OAAO,MAAM,KAAK,cAAA,CAAe,8CAAA;AAAA,MAChC,EAAE,KAAA;AAAM,KACT;AAAA,EACD;AAAA,EAEA,MAAM,iDAAA,GAAsH;AAC3H,IAAA,OAAO,MAAM,IAAA,CAAK,cAAA,CAAe,iDAAA,EAAkD;AAAA,EACpF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQQ,UAAU,IAAA,EAA6B;AAC9C,IAAA,MAAM,QAAQ,IAAA,YAAgB,IAAA,GAAO,IAAA,GAAO,IAAI,KAAK,IAAI,CAAA;AACzD,IAAA,MAAM,aAAA,GAAgB,CAAC,CAAA,KAAc,CAAA,CAAE,UAAS,CAAE,QAAA,CAAS,GAAG,GAAG,CAAA;AAEjE,IAAA,MAAM,CAAA,GAAI,MAAM,WAAA,EAAY;AAC5B,IAAA,MAAM,CAAA,GAAI,aAAA,CAAc,KAAA,CAAM,QAAA,KAAa,CAAC,CAAA;AAC5C,IAAA,MAAM,CAAA,GAAI,aAAA,CAAc,KAAA,CAAM,OAAA,EAAS,CAAA;AAEvC,IAAA,OAAO,CAAA,EAAG,CAAC,CAAA,CAAA,EAAI,CAAC,IAAI,CAAC,CAAA,CAAA;AAAA,EACtB;AACD;AAEA,IAAM,kBAAA,GAAqC;AAAA;AAAA,EAE1C,KAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,WAAA;AAAA,EACA,WAAA;AAAA,EACA,UAAA;AAAA,EACA,kBAAA;AAAA,EACA,UAAA;AAAA,EACA,oBAAA;AAAA,EACA,qBAAA;AAAA,EACA,aAAA;AAAA,EACA,eAAA;AAAA,EACA,iBAAA;AAAA,EACA,UAAA;AAAA,EACA,KAAA;AAAA,EACA,MAAA;AAAA,EACA,UAAA;AAAA,EACA,OAAA;AAAA,EACA;AACD,CAAA;AAEO,IAAM,SAAA,GAAY;AAAA,EACxB,WAAA,EAAa;AAAA,IACZ,IAAA,EAAM,mCAAA;AAAA,IACN,IAAA,EAAM,2CAAA;AAAA,IACN,SAAA,EAAW,gDAAA;AAAA,IACX,IAAA,EAAM,2CAAA;AAAA,IACN,MAAA,EAAQ,6CAAA;AAAA,IACR,MAAA,EAAQ,6CAAA;AAAA,IACR,OAAA,EAAS,8CAAA;AAAA,IACT,MAAA,EAAQ,6CAAA;AAAA,IACR,OAAA,EAAS,8CAAA;AAAA,IACT,MAAA,EAAQ,qCAAA;AAAA,IACR,SAAA,EAAW,gCAAA;AAAA,IACX,QAAA,EAAU;AAAA,GACX;AAAA,EACA,UAAA,EAAY;AAAA,IACX,IAAA,EAAM,uBAAA;AAAA,IACN,IAAA,EAAM,+BAAA;AAAA,IACN,SAAA,EAAW,oCAAA;AAAA,IACX,IAAA,EAAM,+BAAA;AAAA,IACN,MAAA,EAAQ,iCAAA;AAAA,IACR,MAAA,EAAQ,iCAAA;AAAA,IACR,OAAA,EAAS,kCAAA;AAAA,IACT,MAAA,EAAQ,iCAAA;AAAA,IACR,OAAA,EAAS,kCAAA;AAAA,IACT,MAAA,EAAQ,0BAAA;AAAA,IACR,SAAA,EAAW,gCAAA;AAAA,IACX,QAAA,EAAU;AAAA,GACX;AAAA,EACA,OAAA,EAAS;AAAA,IACR,IAAA,EAAM,gCAAA;AAAA,IACN,IAAA,EAAM,wCAAA;AAAA,IACN,SAAA,EAAW,6CAAA;AAAA,IACX,IAAA,EAAM,wCAAA;AAAA,IACN,MAAA,EAAQ,0CAAA;AAAA,IACR,MAAA,EAAQ,0CAAA;AAAA,IACR,OAAA,EAAS,2CAAA;AAAA,IACT,MAAA,EAAQ,0CAAA;AAAA,IACR,OAAA,EAAS,2CAAA;AAAA,IACT,MAAA,EAAQ,0BAAA;AAAA,IACR,SAAA,EAAW,wCAAA;AAAA,IACX,QAAA,EAAU;AAAA;AAEZ","file":"index.js","sourcesContent":["/*\r\n * ref: https://github.com/HighOutputVentures/opexa/blob/main/libs/shared/src/libs/object-type.ts\r\n */\r\n\r\nexport const ObjectType = {\r\n\tAccount: 8,\r\n\tDeposit: 9,\r\n\tWithdrawal: 14,\r\n\tVerification: 15,\r\n\tFile: 16,\r\n\tGame: 203,\r\n\tGameSession: 204,\r\n\tMayaSession: 230,\r\n};\r\n","export function cloneDate(date: Date) {\r\n\treturn new Date(date.getTime());\r\n}\r\n","import { cloneDate } from './clone-date.js';\r\n\r\nexport function addMinutes(date: Date, minutes: number): Date {\r\n\tconst result = cloneDate(date);\r\n\tresult.setMinutes(result.getMinutes() + minutes);\r\n\treturn result;\r\n}\r\n","/**\r\n * is `date1` after `date2`?\r\n */\r\nexport function isAfter(date1: Date, date2: Date) {\r\n\treturn date1.getTime() > date2.getTime();\r\n}\r\n","import { addMinutes } from './add-minutes.js';\r\nimport { isAfter } from './is-after.js';\r\n\r\ninterface CacheValue<T> {\r\n\tvalue: T;\r\n\tvalidUntil: Date;\r\n}\r\n\r\ninterface CacheConfig {\r\n\t/**\r\n\t * @description The number in minutes the cache is valid\r\n\t * @default 5\r\n\t */\r\n\tcacheTime: number;\r\n}\r\n\r\nexport class Cache<T = unknown> {\r\n\tprivate config: CacheConfig;\r\n\tprivate cache: Record<string, CacheValue<T>>;\r\n\r\n\tconstructor(config?: CacheConfig) {\r\n\t\tthis.cache = {};\r\n\t\tthis.config = {\r\n\t\t\tcacheTime: 5,\r\n\t\t\t...config,\r\n\t\t};\r\n\t}\r\n\r\n\tset(key: string, value: T) {\r\n\t\tconst validUntil = addMinutes(new Date(), this.config.cacheTime);\r\n\r\n\t\tthis.cache[key] = {\r\n\t\t\tvalue,\r\n\t\t\tvalidUntil,\r\n\t\t};\r\n\t}\r\n\r\n\tget<V = never>(key: string): [V] extends [never] ? T | null : V | null {\r\n\t\tconst o = this.cache[key];\r\n\t\tif (!o) return null;\r\n\t\tif (isAfter(new Date(), o.validUntil)) return null;\r\n\t\treturn o.value as any;\r\n\t}\r\n}\r\n","export function clamp(value: number, min: number, max: number) {\r\n\tif (value < min) return min;\r\n\tif (value > max) return max;\r\n\treturn value;\r\n}\r\n","export async function sha256(input: string) {\r\n\tconst msgUint8 = new TextEncoder().encode(input);\r\n\tconst hashBuffer = await crypto.subtle.digest('SHA-256', msgUint8);\r\n\tconst hashArray = Array.from(new Uint8Array(hashBuffer));\r\n\tconst hashHex = hashArray\r\n\t\t.map((b) => b.toString(16).padStart(2, '0'))\r\n\t\t.join('');\r\n\treturn hashHex;\r\n}\r\n","import { cloneDate } from './clone-date.js';\r\n\r\nexport function addDays(date: Date, days: number) {\r\n\tconst result = cloneDate(date);\r\n\tresult.setDate(result.getDate() + days);\r\n\treturn result;\r\n}\r\n","import { cloneDate } from './clone-date.js';\r\n\r\nexport function subMinutes(date: Date, minutes: number) {\r\n\tconst result = cloneDate(date);\r\n\tresult.setMinutes(result.getMinutes() - minutes);\r\n\treturn result;\r\n}\r\n","import { addDays } from '../utils/add-days.js';\r\nimport { isAfter } from '../utils/is-after.js';\r\nimport { subMinutes } from '../utils/sub-minutes.js';\r\nimport type { Logger } from './logger.js';\r\n\r\nconst AD_CLICK_ID_STORAGE_KEY = 'sdk/ad-click-id';\r\nconst FBP_STORAGE_KEY = 'sdk/fbp';\r\n\r\ninterface AdManagerConfig {\r\n\tlogger: Logger;\r\n}\r\n\r\nexport class AdManager {\r\n\tprivate logger: Logger;\r\n\r\n\tconstructor(config: AdManagerConfig) {\r\n\t\tthis.logger = config.logger;\r\n\t}\r\n\r\n\tset clickId(value: string | null) {\r\n\t\tif (this.isServer) {\r\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (value === null) {\r\n\t\t\tlocalStorage.removeItem(AD_CLICK_ID_STORAGE_KEY);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst n = new Date();\r\n\t\tconst o = JSON.stringify({\r\n\t\t\tvalue,\r\n\t\t\texpiresAt: subMinutes(addDays(n, 90), 2).getTime(),\r\n\t\t});\r\n\r\n\t\tlocalStorage.setItem(AD_CLICK_ID_STORAGE_KEY, o);\r\n\t}\r\n\r\n\tget clickId(): string | null {\r\n\t\tif (this.isServer) {\r\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\tconst v = localStorage.getItem(AD_CLICK_ID_STORAGE_KEY);\r\n\r\n\t\tif (!v) return null;\r\n\r\n\t\ttry {\r\n\t\t\tconst o = JSON.parse(v);\r\n\r\n\t\t\tif (!o.value) return null;\r\n\t\t\tif (!o.expiresAt) return null;\r\n\r\n\t\t\tconst d = new Date(o.expiresAt);\r\n\t\t\tconst n = new Date();\r\n\r\n\t\t\tif (isAfter(n, d)) {\r\n\t\t\t\tlocalStorage.removeItem(AD_CLICK_ID_STORAGE_KEY);\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\r\n\t\t\treturn o.value;\r\n\t\t} catch {\r\n\t\t\tlocalStorage.removeItem(AD_CLICK_ID_STORAGE_KEY);\r\n\t\t\treturn null;\r\n\t\t}\r\n\t}\r\n\r\n\tset fbp(value: string | null) {\r\n\t\tif (this.isServer) {\r\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (value === null) {\r\n\t\t\tlocalStorage.removeItem(FBP_STORAGE_KEY);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst n = new Date();\r\n\t\tconst o = JSON.stringify({\r\n\t\t\tvalue,\r\n\t\t\texpiresAt: subMinutes(addDays(n, 90), 2).getTime(),\r\n\t\t});\r\n\r\n\t\tlocalStorage.setItem(FBP_STORAGE_KEY, o);\r\n\t}\r\n\r\n\tget fbp(): string | null {\r\n\t\tif (this.isServer) {\r\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\tconst v = localStorage.getItem(FBP_STORAGE_KEY);\r\n\r\n\t\tif (!v) return null;\r\n\r\n\t\ttry {\r\n\t\t\tconst o = JSON.parse(v);\r\n\r\n\t\t\tif (!o.value) return null;\r\n\t\t\tif (!o.expiresAt) return null;\r\n\r\n\t\t\tconst d = new Date(o.expiresAt);\r\n\t\t\tconst n = new Date();\r\n\r\n\t\t\tif (isAfter(n, d)) {\r\n\t\t\t\tlocalStorage.removeItem(FBP_STORAGE_KEY);\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\r\n\t\t\treturn o.value;\r\n\t\t} catch {\r\n\t\t\tlocalStorage.removeItem(FBP_STORAGE_KEY);\r\n\t\t\treturn null;\r\n\t\t}\r\n\t}\r\n\r\n\tprivate get isServer() {\r\n\t\treturn typeof window === 'undefined';\r\n\t}\r\n}\r\n","import { cloneDate } from './clone-date.js';\r\n\r\nexport function addHours(date: Date, hours: number): Date {\r\n\tconst result = cloneDate(date);\r\n\tresult.setHours(result.getHours() + hours);\r\n\treturn result;\r\n}\r\n","import { Thumbmark } from '@thumbmarkjs/thumbmarkjs';\r\nimport type { Currency, Environment, Locale } from './types.js';\r\n\r\nexport function getLocaleByCurrency(currency: Currency): Locale {\r\n\tif (currency === 'INR') return 'en-IN';\r\n\tif (currency === 'MYR') return 'en-MY';\r\n\tif (currency === 'IDR') return 'en-ID';\r\n\tif (currency === 'USD') return 'en-US';\r\n\treturn 'en-PH';\r\n}\r\n\r\n/*\r\n * +63 (Philippines)\r\n * +91 (India)\r\n * +60 (Malaysia)\r\n * +62 (Indonesia)\r\n * +1 (UnitedStates)\r\n */\r\nexport function getAreaCodeByLocale(locale: Locale) {\r\n\tif (locale === 'en-IN') return '+91';\r\n\tif (locale === 'en-MY') return '+60';\r\n\tif (locale === 'en-ID') return '+62';\r\n\tif (locale === 'en-US') return '+1';\r\n\treturn '+63';\r\n}\r\n\r\n/**\r\n * @description Ensures mobile number has complete area code\r\n * @example\r\n * ```ts\r\n * addAreaCode('9190010001', 'en-PH'); // +639190010001\r\n * addAreaCode('09190010001', 'en-PH'); // +639190010001\r\n * addAreaCode('639190010001', 'en-PH'); // +639190010001\r\n * addAreaCode('+639190010001', 'en-PH'); // +639190010001\r\n * ```\r\n */\r\nexport function addAreaCode(mobileNumber: string, locale: Locale) {\r\n\tconst areaCode = getAreaCodeByLocale(locale);\r\n\r\n\t/* starts with area code */\r\n\tif (mobileNumber.startsWith(areaCode)) return mobileNumber;\r\n\t/* starts with area code without \"+\" */\r\n\tif (mobileNumber.startsWith(areaCode.substring(1))) return `+${mobileNumber}`;\r\n\t/* starts with zero */\r\n\tif (mobileNumber.startsWith('0'))\r\n\t\treturn `${areaCode}${mobileNumber.substring(1)}`;\r\n\r\n\treturn `${areaCode}${mobileNumber}`;\r\n}\r\n\r\nexport function parseFbCxd(input: string) {\r\n\tconst fbMatch = input.match(/(\\d+_\\d+).*fb\\./);\r\n\tif (!fbMatch) return null;\r\n\r\n\tconst cxd = fbMatch[1];\r\n\tconst fbAdditionalCxd = input.split(cxd)[1].slice(1); // remove the first char after cxd if separator exists\r\n\r\n\treturn { cxd, fbAdditionalCxd };\r\n}\r\n\r\nlet thumbmark_instance: Thumbmark;\r\n\r\nexport async function getFingerprint(environment: Environment) {\r\n\tif (typeof window === 'undefined') return null;\r\n\r\n\tif (!thumbmark_instance) {\r\n\t\tthumbmark_instance = new Thumbmark({\r\n\t\t\tapi_key:\r\n\t\t\t\tenvironment === 'production'\r\n\t\t\t\t\t? '8294c227c5194f96e4deb022e8e76293'\r\n\t\t\t\t\t: undefined,\r\n\t\t\tlogging: false,\r\n\t\t\ttimeout: 30000,\r\n\t\t\tcache_lifetime_in_ms: 1 * 60 * 60 * 1000 /* 1h */,\r\n\t\t});\r\n\t}\r\n\r\n\ttry {\r\n\t\tconst cached = sessionStorage.getItem('fingerprint');\r\n\t\tif (cached) return cached;\r\n\t\tconst result = await thumbmark_instance.get();\r\n\t\tsessionStorage.setItem('fingerprint', result.thumbmark);\r\n\t\treturn result.thumbmark;\r\n\t} catch {\r\n\t\treturn null;\r\n\t}\r\n}\r\n\r\nexport function getCookie(name: string): string | null {\r\n\tif (typeof document === 'undefined') return null;\r\n\r\n\tconst nameLenPlus = name.length + 1;\r\n\treturn (\r\n\t\tdocument.cookie\r\n\t\t\t.split(';')\r\n\t\t\t.map((c) => c.trim())\r\n\t\t\t.filter((cookie) => {\r\n\t\t\t\treturn cookie.substring(0, nameLenPlus) === `${name}=`;\r\n\t\t\t})\r\n\t\t\t.map((cookie) => {\r\n\t\t\t\treturn decodeURIComponent(cookie.substring(nameLenPlus));\r\n\t\t\t})[0] || null\r\n\t);\r\n}\r\n","import { addHours } from '../utils/add-hours.js';\r\nimport { isAfter } from '../utils/is-after.js';\r\nimport { subMinutes } from '../utils/sub-minutes.js';\r\nimport type { Logger } from './logger.js';\r\nimport { parseFbCxd } from './utils.js';\r\n\r\nconst CXD_STORAGE_KEY = 'sdk/cxd';\r\n\r\ninterface CellexpertConfig {\r\n\tlogger: Logger;\r\n}\r\n\r\nexport class CellexpertManager {\r\n\tprivate logger: Logger;\r\n\r\n\tconstructor(config: CellexpertConfig) {\r\n\t\tthis.logger = config.logger;\r\n\t}\r\n\r\n\tset cxd(value: string | null) {\r\n\t\tif (this.isServer) {\r\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (value === null) {\r\n\t\t\tlocalStorage.removeItem(CXD_STORAGE_KEY);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst oldValue = localStorage.getItem(CXD_STORAGE_KEY) ?? '';\r\n\r\n\t\tif (value === oldValue) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst n = new Date();\r\n\t\tconst o = JSON.stringify({\r\n\t\t\tvalue: parseFbCxd(value)?.cxd ?? value,\r\n\t\t\texpiresAt: subMinutes(addHours(n, 6), 2).getTime(),\r\n\t\t});\r\n\r\n\t\tlocalStorage.setItem(CXD_STORAGE_KEY, o);\r\n\t}\r\n\r\n\tget cxd(): string | null {\r\n\t\tif (this.isServer) {\r\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\tconst v = localStorage.getItem(CXD_STORAGE_KEY);\r\n\r\n\t\tif (!v) return null;\r\n\r\n\t\ttry {\r\n\t\t\tconst o = JSON.parse(v);\r\n\r\n\t\t\tif (!o.value) return null;\r\n\t\t\tif (!o.expiresAt) return null;\r\n\r\n\t\t\tconst d = new Date(o.expiresAt);\r\n\t\t\tconst n = new Date();\r\n\r\n\t\t\tif (isAfter(n, d)) {\r\n\t\t\t\tlocalStorage.removeItem(CXD_STORAGE_KEY);\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\r\n\t\t\treturn o.value;\r\n\t\t} catch {\r\n\t\t\tlocalStorage.removeItem(CXD_STORAGE_KEY);\r\n\t\t\treturn null;\r\n\t\t}\r\n\t}\r\n\r\n\tprivate get isServer() {\r\n\t\treturn typeof window === 'undefined';\r\n\t}\r\n}\r\n","interface LoggerConfig {\r\n\t/**\r\n\t * @default true\r\n\t */\r\n\tenabled?: boolean;\r\n}\r\n\r\nexport class Logger {\r\n\tprivate enabled: boolean;\r\n\r\n\tconstructor(config?: LoggerConfig) {\r\n\t\tthis.enabled = config?.enabled ?? true;\r\n\t}\r\n\r\n\tinfo(message: string) {\r\n\t\tif (this.enabled) console.log(`\\x1b[34m[info] ${message}`);\r\n\t}\r\n\r\n\twarn(message: string) {\r\n\t\tif (this.enabled) console.log(`\\x1b[33m[warn] ${message}`);\r\n\t}\r\n\r\n\terror(message: string) {\r\n\t\tif (this.enabled) console.log(`\\x1b[31m[error] ${message}`);\r\n\t}\r\n\r\n\tsuccess(message: string) {\r\n\t\tif (this.enabled) console.log(`\\x1b[32m[success] ${message}`);\r\n\t}\r\n}\r\n","export function sleep(ms: number) {\r\n\treturn new Promise<void>((resolve) => {\r\n\t\tsetTimeout(resolve, ms);\r\n\t});\r\n}\r\n","import { sleep } from './sleep.js';\r\n\r\ninterface Config<T> {\r\n\tuntil(response: T): boolean;\r\n\t/**\r\n\t * @default 1000\r\n\t */\r\n\tinterval?: number;\r\n\t/**\r\n\t * @default 3\r\n\t */\r\n\tmaxAttempt?: number;\r\n}\r\n\r\n/**\r\n * @example\r\n * ```ts\r\n * const poll = pollable(\r\n * fn,\r\n * {\r\n * until: (r) => r.ok,\r\n * interval: 1000,\r\n * maxAttempt: 5,\r\n * }\r\n * );\r\n *\r\n * poll()\r\n * ```\r\n */\r\nexport function pollable<Return, Args = never>(\r\n\tfunc: (...args: Args[]) => Promise<Return>,\r\n\tconfig: Config<Return>,\r\n) {\r\n\tconst {\r\n\t\tuntil,\r\n\t\tinterval = 1000,\r\n\t\tmaxAttempt = 3,\r\n\t\t/**/\r\n\t} = config;\r\n\r\n\tasync function repeater(args: Args[], max?: number) {\r\n\t\tconst m = max ?? maxAttempt;\r\n\t\tconst r = await func(...args);\r\n\t\tconst k = until(r);\r\n\r\n\t\tif (k) return r;\r\n\r\n\t\tif (m > 1) {\r\n\t\t\tawait sleep(interval * ((maxAttempt - m) / 2));\r\n\t\t\treturn repeater(args, m - 1);\r\n\t\t}\r\n\r\n\t\treturn r;\r\n\t}\r\n\r\n\treturn async (...args: Args[]): Promise<Return> => {\r\n\t\treturn await repeater(args);\r\n\t};\r\n}\r\n","import type { AuthService, WalletService } from '../services/index.js';\r\nimport type { OperationResult } from '../types/index.js';\r\nimport { addDays } from '../utils/add-days.js';\r\nimport { addMinutes } from '../utils/add-minutes.js';\r\nimport { isAfter } from '../utils/is-after.js';\r\nimport { pollable } from '../utils/pollable.js';\r\nimport { sleep } from '../utils/sleep.js';\r\nimport { subMinutes } from '../utils/sub-minutes.js';\r\nimport type { Logger } from './logger.js';\r\nimport type {\r\n\tAuthenticateError,\r\n\tAuthenticateInput,\r\n\tAuthenticator,\r\n\tRefreshSessionError,\r\n\tSession,\r\n\tSignInError,\r\n\tSignInInput,\r\n} from './types.js';\r\n\r\ninterface Data {\r\n\tsession: Session;\r\n\taccessToken: string;\r\n\taccessTokenExpiresAt: number;\r\n\trefreshToken: string;\r\n\trefreshTokenExpiresAt: number;\r\n}\r\n\r\ninterface SessionManagerConfig {\r\n\tlogger: Logger;\r\n\tauthService: AuthService;\r\n\twalletService: WalletService;\r\n\tsessionPrefix?: string;\r\n}\r\n\r\nexport class SessionManager {\r\n\tprivate logger: Logger;\r\n\tprivate storageKey = 'session';\r\n\tprivate platformStorageKey = 'session/platform';\r\n\tprivate authService: AuthService;\r\n\tprivate walletService: WalletService;\r\n\tprivate _refreshing = false;\r\n\r\n\tconstructor(config: SessionManagerConfig) {\r\n\t\tthis.authService = config.authService;\r\n\t\tthis.walletService = config.walletService;\r\n\t\tthis.logger = config.logger;\r\n\t\tif (config.sessionPrefix) {\r\n\t\t\tthis.storageKey = `${config.sessionPrefix}/${this.storageKey}`;\r\n\t\t\tthis.platformStorageKey = `${config.sessionPrefix}/${this.platformStorageKey}`;\r\n\t\t}\r\n\t}\r\n\r\n\tget refreshing() {\r\n\t\treturn this._refreshing;\r\n\t}\r\n\r\n\tset refreshing(value: boolean) {\r\n\t\tthis._refreshing = value;\r\n\t}\r\n\r\n\tasync create(\r\n\t\tinput: SignInInput,\r\n\t): Promise<\r\n\t\tOperationResult<SignInError, { authenticator: Authenticator } | null>\r\n\t> {\r\n\t\tif (this.isServer) {\r\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\r\n\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: {\r\n\t\t\t\t\tname: 'UnknownError',\r\n\t\t\t\t\tmessage: 'Server sign in is not supported.',\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\t/*\r\n\t\t * Maya Sign In\r\n\t\t */\r\n\t\tif (input.type === 'MAYA') {\r\n\t\t\tlocalStorage.setItem(this.platformStorageKey, 'MAYA');\r\n\r\n\t\t\tconst f0 = () => this.walletService.mayaSession({ id: input.sessionId });\r\n\t\t\tconst r0 = await pollable(f0, {\r\n\t\t\t\tuntil: (r) => r.ok && r.data?.member != null,\r\n\t\t\t\tinterval: 1000,\r\n\t\t\t\tmaxAttempt: 5,\r\n\t\t\t})();\r\n\r\n\t\t\tif (!r0.ok) return r0;\r\n\t\t\tif (!r0.data?.member) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: false,\r\n\t\t\t\t\terror: {\r\n\t\t\t\t\t\tname: 'HttpForbidden',\r\n\t\t\t\t\t\tmessage: 'Forbidden',\r\n\t\t\t\t\t},\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\tconst f1 = () => this.authService.createSession(input);\r\n\t\t\tconst r1 = await pollable(f1, {\r\n\t\t\t\tuntil: (r) => r.ok,\r\n\t\t\t\tinterval: 1000,\r\n\t\t\t\tmaxAttempt: 5,\r\n\t\t\t})();\r\n\r\n\t\t\tif (!r1.ok) return r1;\r\n\r\n\t\t\tconst now = new Date();\r\n\r\n\t\t\tlocalStorage.setItem(\r\n\t\t\t\tthis.storageKey,\r\n\t\t\t\tJSON.stringify({\r\n\t\t\t\t\t...r1.data,\r\n\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\r\n\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t\t}),\r\n\t\t\t);\r\n\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: null,\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\t/*\r\n\t\t * Mobile Number Sign In\r\n\t\t */\r\n\t\tif (input.type === 'MOBILE_NUMBER') {\r\n\t\t\tconst res = await this.authService.createSession(input);\r\n\r\n\t\t\tif (res.ok) {\r\n\t\t\t\tconst now = new Date();\r\n\r\n\t\t\t\tlocalStorage.setItem(\r\n\t\t\t\t\tthis.storageKey,\r\n\t\t\t\t\tJSON.stringify({\r\n\t\t\t\t\t\t...res.data,\r\n\t\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\r\n\t\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t\t\t}),\r\n\t\t\t\t);\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: true,\r\n\t\t\t\t\tdata: null,\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\treturn res;\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Token sign up (for 3rd party sign in)\r\n\t\t */\r\n\t\tif (input.type === 'SOCIALS' || input.type === 'TOKEN') {\r\n\t\t\tconst res = await this.authService.createSession({\r\n\t\t\t\ttype: 'SOCIALS',\r\n\t\t\t\ttoken: input.token,\r\n\t\t\t\tchannel: input.channel,\r\n\t\t\t});\r\n\r\n\t\t\tif (res.ok) {\r\n\t\t\t\tconst now = new Date();\r\n\r\n\t\t\t\tlocalStorage.setItem(\r\n\t\t\t\t\tthis.storageKey,\r\n\t\t\t\t\tJSON.stringify({\r\n\t\t\t\t\t\t...res.data,\r\n\t\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\r\n\t\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t\t\t}),\r\n\t\t\t\t);\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: true,\r\n\t\t\t\t\tdata: null,\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\treturn res;\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Cabinet sign in\r\n\t\t */\r\n\t\tif (input.type === 'CABINET') {\r\n\t\t\tlocalStorage.setItem(this.platformStorageKey, 'CABINET');\r\n\r\n\t\t\tconst res = await this.authService.createSession(input);\r\n\r\n\t\t\tif (res.ok) {\r\n\t\t\t\tconst now = new Date();\r\n\r\n\t\t\t\tlocalStorage.setItem(\r\n\t\t\t\t\tthis.storageKey,\r\n\t\t\t\t\tJSON.stringify({\r\n\t\t\t\t\t\t...res.data,\r\n\t\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\r\n\t\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t\t\t}),\r\n\t\t\t\t);\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: true,\r\n\t\t\t\t\tdata: null,\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\treturn res;\r\n\t\t}\r\n\r\n\t\t/*\r\n\t\t * Name and Password Sign In\r\n\t\t */\r\n\t\tconst res = await this.authService.createSession(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\t/*\r\n\t\t * 2FA enabled\r\n\t\t */\r\n\t\tif (res.data.authenticator) {\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: {\r\n\t\t\t\t\tauthenticator: res.data.authenticator,\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tconst now = new Date();\r\n\r\n\t\tlocalStorage.setItem(\r\n\t\t\tthis.storageKey,\r\n\t\t\tJSON.stringify({\r\n\t\t\t\t...res.data,\r\n\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\r\n\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t}),\r\n\t\t);\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: null,\r\n\t\t};\r\n\t}\r\n\r\n\tasync createFromAuthenticator(\r\n\t\tinput: AuthenticateInput,\r\n\t): Promise<OperationResult<AuthenticateError>> {\r\n\t\tconst res = await this.authService.authenticate(input);\r\n\r\n\t\tif (res.ok) {\r\n\t\t\tconst now = new Date();\r\n\r\n\t\t\tif (this.isServer) {\r\n\t\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\r\n\t\t\t} else {\r\n\t\t\t\tlocalStorage.setItem(\r\n\t\t\t\t\tthis.storageKey,\r\n\t\t\t\t\tJSON.stringify({\r\n\t\t\t\t\t\t...res.data,\r\n\t\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\r\n\t\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t\t\t}),\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t\treturn { ok: true };\r\n\t\t} else {\r\n\t\t\treturn res;\r\n\t\t}\r\n\t}\r\n\r\n\tasync get(): Promise<OperationResult<RefreshSessionError, Data | null>> {\r\n\t\tif (this.isServer) {\r\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\r\n\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: null,\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tif (this.refreshing) {\r\n\t\t\tawait sleep(1000);\r\n\t\t\treturn await this.get();\r\n\t\t}\r\n\r\n\t\tconst val = localStorage.getItem(this.storageKey);\r\n\r\n\t\tif (!val) {\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: null,\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\tlet obj: {\r\n\t\t\t\tsession: Session;\r\n\t\t\t\taccessToken: string;\r\n\t\t\t\taccessTokenExpiresAt: number;\r\n\t\t\t\trefreshToken: string;\r\n\t\t\t\trefreshTokenExpiresAt: number;\r\n\t\t\t} = JSON.parse(val);\r\n\r\n\t\t\tlet now = new Date();\r\n\r\n\t\t\tconst accessTokenExpiresAt = new Date(obj.accessTokenExpiresAt);\r\n\t\t\tconst refreshTokenExpiresAt = new Date(obj.refreshTokenExpiresAt);\r\n\r\n\t\t\t/* is refresh token expired? */\r\n\t\t\tif (isAfter(now, refreshTokenExpiresAt)) {\r\n\t\t\t\tthis.logger.warn('Session expired. Logging out..');\r\n\r\n\t\t\t\tlocalStorage.removeItem(this.storageKey);\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: false,\r\n\t\t\t\t\terror: {\r\n\t\t\t\t\t\tname: 'SessionExpiredError',\r\n\t\t\t\t\t\tmessage: 'Session expired.',\r\n\t\t\t\t\t},\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\t/* is access token expired? */\r\n\t\t\tif (isAfter(now, accessTokenExpiresAt)) {\r\n\t\t\t\tthis.logger.info('Refreshing session...');\r\n\r\n\t\t\t\tthis.refreshing = true;\r\n\r\n\t\t\t\tconst res = await this.authService.refreshSession(obj.refreshToken);\r\n\r\n\t\t\t\tthis.refreshing = false;\r\n\r\n\t\t\t\tif (!res.ok) {\r\n\t\t\t\t\tthis.logger.error(`Failed to refresh session: ${res.error.message}`);\r\n\r\n\t\t\t\t\t/*\r\n\t\t\t\t\t * return previous session for all errors except \"InvalidTokenError\" and \"AccountBlacklistedError\"\r\n\t\t\t\t\t */\r\n\t\t\t\t\tif (\r\n\t\t\t\t\t\tres.error.name === 'InvalidTokenError' ||\r\n\t\t\t\t\t\tres.error.name === 'AccountBlacklistedError' ||\r\n\t\t\t\t\t\tres.error.name === 'VerificationLockedError'\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tlocalStorage.removeItem(this.storageKey);\r\n\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\tok: false,\r\n\t\t\t\t\t\t\terror: res.error,\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthis.logger.warn('Old session returned.');\r\n\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\tok: true,\r\n\t\t\t\t\t\t\tdata: obj,\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.logger.success('Session refreshed!');\r\n\r\n\t\t\t\tnow = new Date();\r\n\t\t\t\tobj = {\r\n\t\t\t\t\t...obj,\r\n\t\t\t\t\t...res.data,\r\n\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\r\n\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t\t};\r\n\r\n\t\t\t\tlocalStorage.setItem(this.storageKey, JSON.stringify(obj));\r\n\t\t\t}\r\n\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: obj,\r\n\t\t\t};\r\n\t\t} catch {\r\n\t\t\t/* Did they modify session in localStorage? */\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: {\r\n\t\t\t\t\tname: 'UnknownError',\r\n\t\t\t\t\tmessage: 'Something went wrong.',\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\t}\r\n\r\n\tasync refresh(): Promise<OperationResult<RefreshSessionError, Data | null>> {\r\n\t\tif (this.isServer) {\r\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\r\n\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: null,\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tconst val = localStorage.getItem(this.storageKey);\r\n\r\n\t\tif (!val) {\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: null,\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\tlet obj: {\r\n\t\t\t\tsession: Session;\r\n\t\t\t\taccessToken: string;\r\n\t\t\t\taccessTokenExpiresAt: number;\r\n\t\t\t\trefreshToken: string;\r\n\t\t\t\trefreshTokenExpiresAt: number;\r\n\t\t\t} = JSON.parse(val);\r\n\r\n\t\t\tlet now = new Date();\r\n\r\n\t\t\tthis.logger.info('Refreshing session...');\r\n\r\n\t\t\tthis.refreshing = true;\r\n\r\n\t\t\tconst res = await this.authService.refreshSession(obj.refreshToken);\r\n\r\n\t\t\tthis.refreshing = false;\r\n\r\n\t\t\tif (!res.ok) {\r\n\t\t\t\tthis.logger.error(`Failed to refresh session: ${res.error.message}`);\r\n\r\n\t\t\t\t/*\r\n\t\t\t\t\t* return previous session for all errors except \"InvalidTokenError\" and \"AccountBlacklistedError\"\r\n\t\t\t\t\t*/\r\n\t\t\t\tif (\r\n\t\t\t\t\tres.error.name === 'InvalidTokenError' ||\r\n\t\t\t\t\tres.error.name === 'AccountBlacklistedError' ||\r\n\t\t\t\t\tres.error.name === 'VerificationLockedError'\r\n\t\t\t\t) {\r\n\t\t\t\t\tlocalStorage.removeItem(this.storageKey);\r\n\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tok: false,\r\n\t\t\t\t\t\terror: res.error,\r\n\t\t\t\t\t};\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.logger.warn('Old session returned.');\r\n\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tok: true,\r\n\t\t\t\t\t\tdata: obj,\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tthis.logger.success('Session refreshed!');\r\n\r\n\t\t\tnow = new Date();\r\n\t\t\tobj = {\r\n\t\t\t\t...obj,\r\n\t\t\t\t...res.data,\r\n\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\r\n\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t};\r\n\r\n\t\t\tlocalStorage.setItem(this.storageKey, JSON.stringify(obj));\r\n\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: obj,\r\n\t\t\t};\r\n\t\t} catch {\r\n\t\t\t/* Did they modify session in localStorage? */\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: {\r\n\t\t\t\t\tname: 'UnknownError',\r\n\t\t\t\t\tmessage: 'Something went wrong.',\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\t}\r\n\r\n\tasync destroy() {\r\n\t\tif (this.isServer) {\r\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst res = await this.get();\r\n\r\n\t\tif (res.data?.accessToken) {\r\n\t\t\tawait this.authService.destroySession(res.data.accessToken);\r\n\t\t}\r\n\r\n\t\tlocalStorage.removeItem(this.storageKey);\r\n\t}\r\n\r\n\tasync verify(): Promise<boolean> {\r\n\t\tif (this.isServer) {\r\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\tconst s = await this.get();\r\n\r\n\t\tif (s.error?.name === 'InvalidTokenError') return false;\r\n\t\tif (s.error?.name === 'SessionExpiredError') return false;\r\n\t\tif (s.error?.name === 'AccountBlacklistedError') return false;\r\n\r\n\t\t/* Not logged in or session is not expired */\r\n\t\tif (!s.data) return true;\r\n\r\n\t\tconst v = await this.authService.verifySession(s.data.accessToken);\r\n\r\n\t\t/* log out if session is no longer valid */\r\n\t\tif (!v) {\r\n\t\t\tlocalStorage.removeItem(this.storageKey);\r\n\t\t}\r\n\r\n\t\treturn v;\r\n\t}\r\n\r\n\tget onMaya() {\r\n\t\tif (this.isServer) {\r\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\treturn localStorage.getItem(this.platformStorageKey) === 'MAYA';\r\n\t}\r\n\r\n\tget onCabinet() {\r\n\t\tif (this.isServer) {\r\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\treturn localStorage.getItem(this.platformStorageKey) === 'CABINET';\r\n\t}\r\n\r\n\tprivate get isServer() {\r\n\t\treturn typeof window === 'undefined';\r\n\t}\r\n}\r\n","import cookies from 'js-cookie';\r\nimport type { AuthService, WalletService } from '../services/index.js';\r\nimport type { OperationResult } from '../types/index.js';\r\nimport { addDays } from '../utils/add-days.js';\r\nimport { addMinutes } from '../utils/add-minutes.js';\r\nimport { isAfter } from '../utils/is-after.js';\r\nimport { pollable } from '../utils/pollable.js';\r\nimport { sleep } from '../utils/sleep.js';\r\nimport { subMinutes } from '../utils/sub-minutes.js';\r\nimport type { Logger } from './logger.js';\r\nimport type {\r\n\tAuthenticateError,\r\n\tAuthenticateInput,\r\n\tAuthenticator,\r\n\tRefreshSessionError,\r\n\tSession,\r\n\tSignInError,\r\n\tSignInInput,\r\n} from './types.js';\r\n\r\ninterface Data {\r\n\tsession: Session;\r\n\taccessToken: string;\r\n\taccessTokenExpiresAt: number;\r\n\trefreshToken: string;\r\n\trefreshTokenExpiresAt: number;\r\n}\r\n\r\ninterface SessionManagerConfig {\r\n\tlogger: Logger;\r\n\tauthService: AuthService;\r\n\twalletService: WalletService;\r\n}\r\n\r\nexport class SessionManagerCookie {\r\n\tprivate logger: Logger;\r\n\tprivate storageKey = 'session';\r\n\tprivate platformStorageKey = 'session/platform';\r\n\tprivate authService: AuthService;\r\n\tprivate walletService: WalletService;\r\n\tprivate _refreshing = false;\r\n\r\n\tconstructor(config: SessionManagerConfig) {\r\n\t\tthis.authService = config.authService;\r\n\t\tthis.walletService = config.walletService;\r\n\t\tthis.logger = config.logger;\r\n\t}\r\n\r\n\tget refreshing() {\r\n\t\treturn this._refreshing;\r\n\t}\r\n\r\n\tset refreshing(value: boolean) {\r\n\t\tthis._refreshing = value;\r\n\t}\r\n\r\n\tasync create(\r\n\t\tinput: SignInInput,\r\n\t): Promise<\r\n\t\tOperationResult<SignInError, { authenticator: Authenticator } | null>\r\n\t> {\r\n\t\t/*\r\n\t\t * Maya Sign In\r\n\t\t */\r\n\t\tif (input.type === 'MAYA') {\r\n\t\t\tlocalStorage.setItem(this.platformStorageKey, 'MAYA');\r\n\r\n\t\t\tconst f0 = () => this.walletService.mayaSession({ id: input.sessionId });\r\n\t\t\tconst r0 = await pollable(f0, {\r\n\t\t\t\tuntil: (r) => r.ok && r.data?.member != null,\r\n\t\t\t\tinterval: 1000,\r\n\t\t\t\tmaxAttempt: 5,\r\n\t\t\t})();\r\n\r\n\t\t\tif (!r0.ok) return r0;\r\n\t\t\tif (!r0.data?.member) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: false,\r\n\t\t\t\t\terror: {\r\n\t\t\t\t\t\tname: 'HttpForbidden',\r\n\t\t\t\t\t\tmessage: 'Forbidden',\r\n\t\t\t\t\t},\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\tconst f1 = () => this.authService.createSession(input);\r\n\t\t\tconst r1 = await pollable(f1, {\r\n\t\t\t\tuntil: (r) => r.ok,\r\n\t\t\t\tinterval: 1000,\r\n\t\t\t\tmaxAttempt: 5,\r\n\t\t\t})();\r\n\r\n\t\t\tif (!r1.ok) return r1;\r\n\r\n\t\t\tconst now = new Date();\r\n\r\n\t\t\tcookies.set(\r\n\t\t\t\tthis.storageKey,\r\n\t\t\t\tJSON.stringify({\r\n\t\t\t\t\t...r1.data,\r\n\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\r\n\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t\t}),\r\n\t\t\t\t{ expires: subMinutes(addDays(now, 30), 2).getTime() },\r\n\t\t\t);\r\n\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: null,\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\t/*\r\n\t\t * Mobile Number Sign In\r\n\t\t */\r\n\t\tif (input.type === 'MOBILE_NUMBER') {\r\n\t\t\tconst res = await this.authService.createSession(input);\r\n\r\n\t\t\tif (res.ok) {\r\n\t\t\t\tconst now = new Date();\r\n\r\n\t\t\t\tcookies.set(\r\n\t\t\t\t\tthis.storageKey,\r\n\t\t\t\t\tJSON.stringify({\r\n\t\t\t\t\t\t...res.data,\r\n\t\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\r\n\t\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t\t\t}),\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\texpires: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t\t\t},\r\n\t\t\t\t);\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: true,\r\n\t\t\t\t\tdata: null,\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\treturn res;\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Token sign up (for 3rd party sign in)\r\n\t\t */\r\n\t\tif (input.type === 'SOCIALS' || input.type === 'TOKEN') {\r\n\t\t\tconst res = await this.authService.createSession({\r\n\t\t\t\ttype: 'SOCIALS',\r\n\t\t\t\ttoken: input.token,\r\n\t\t\t});\r\n\r\n\t\t\tif (res.ok) {\r\n\t\t\t\tconst now = new Date();\r\n\r\n\t\t\t\tcookies.set(\r\n\t\t\t\t\tthis.storageKey,\r\n\t\t\t\t\tJSON.stringify({\r\n\t\t\t\t\t\t...res.data,\r\n\t\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\r\n\t\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t\t\t}),\r\n\t\t\t\t\t{ expires: subMinutes(addDays(now, 30), 2).getTime() },\r\n\t\t\t\t);\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: true,\r\n\t\t\t\t\tdata: null,\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\treturn res;\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Cabinet sign in\r\n\t\t */\r\n\t\tif (input.type === 'CABINET') {\r\n\t\t\tlocalStorage.setItem(this.platformStorageKey, 'CABINET');\r\n\r\n\t\t\tconst res = await this.authService.createSession(input);\r\n\r\n\t\t\tif (res.ok) {\r\n\t\t\t\tconst now = new Date();\r\n\r\n\t\t\t\tcookies.set(\r\n\t\t\t\t\tthis.storageKey,\r\n\t\t\t\t\tJSON.stringify({\r\n\t\t\t\t\t\t...res.data,\r\n\t\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\r\n\t\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t\t\t}),\r\n\t\t\t\t\t{ expires: subMinutes(addDays(now, 30), 2).getTime() },\r\n\t\t\t\t);\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: true,\r\n\t\t\t\t\tdata: null,\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\treturn res;\r\n\t\t}\r\n\r\n\t\t/*\r\n\t\t * Name and Password Sign In\r\n\t\t */\r\n\t\tconst res = await this.authService.createSession(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\t/*\r\n\t\t * 2FA enabled\r\n\t\t */\r\n\t\tif (res.data.authenticator) {\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: {\r\n\t\t\t\t\tauthenticator: res.data.authenticator,\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tconst now = new Date();\r\n\r\n\t\tcookies.set(\r\n\t\t\tthis.storageKey,\r\n\t\t\tJSON.stringify({\r\n\t\t\t\t...res.data,\r\n\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\r\n\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t}),\r\n\t\t\t{},\r\n\t\t);\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: null,\r\n\t\t};\r\n\t}\r\n\r\n\tasync createFromAuthenticator(\r\n\t\tinput: AuthenticateInput,\r\n\t): Promise<OperationResult<AuthenticateError>> {\r\n\t\tconst res = await this.authService.authenticate(input);\r\n\r\n\t\tif (res.ok) {\r\n\t\t\tconst now = new Date();\r\n\r\n\t\t\tif (this.isServer) {\r\n\t\t\t\tthis.logger.warn(\"'client cookies' is not available on the server.\");\r\n\t\t\t} else {\r\n\t\t\t\tcookies.set(\r\n\t\t\t\t\tthis.storageKey,\r\n\t\t\t\t\tJSON.stringify({\r\n\t\t\t\t\t\t...res.data,\r\n\t\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\r\n\t\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t\t\t}),\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\texpires: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t\t\t},\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t\treturn { ok: true };\r\n\t\t} else {\r\n\t\t\treturn res;\r\n\t\t}\r\n\t}\r\n\r\n\tasync get(): Promise<OperationResult<RefreshSessionError, Data | null>> {\r\n\t\tif (this.isServer) {\r\n\t\t\tthis.logger.warn(\"'client cookies' is not available on the server.\");\r\n\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: null,\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tif (this.refreshing) {\r\n\t\t\tawait sleep(1000);\r\n\t\t\treturn await this.get();\r\n\t\t}\r\n\r\n\t\tconst val = cookies.get(this.storageKey);\r\n\r\n\t\tif (!val) {\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: null,\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\tlet obj: {\r\n\t\t\t\tsession: Session;\r\n\t\t\t\taccessToken: string;\r\n\t\t\t\taccessTokenExpiresAt: number;\r\n\t\t\t\trefreshToken: string;\r\n\t\t\t\trefreshTokenExpiresAt: number;\r\n\t\t\t} = JSON.parse(val);\r\n\r\n\t\t\tlet now = new Date();\r\n\r\n\t\t\tconst accessTokenExpiresAt = new Date(obj.accessTokenExpiresAt);\r\n\t\t\tconst refreshTokenExpiresAt = new Date(obj.refreshTokenExpiresAt);\r\n\r\n\t\t\t/* is refresh token expired? */\r\n\t\t\tif (isAfter(now, refreshTokenExpiresAt)) {\r\n\t\t\t\tthis.logger.warn('Session expired. Logging out..');\r\n\r\n\t\t\t\tcookies.remove(this.storageKey);\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: false,\r\n\t\t\t\t\terror: {\r\n\t\t\t\t\t\tname: 'SessionExpiredError',\r\n\t\t\t\t\t\tmessage: 'Session expired.',\r\n\t\t\t\t\t},\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\t/* is access token expired? */\r\n\t\t\tif (isAfter(now, accessTokenExpiresAt)) {\r\n\t\t\t\tthis.logger.info('Refreshing session...');\r\n\r\n\t\t\t\tthis.refreshing = true;\r\n\r\n\t\t\t\tconst res = await this.authService.refreshSession(obj.refreshToken);\r\n\r\n\t\t\t\tthis.refreshing = false;\r\n\r\n\t\t\t\tif (!res.ok) {\r\n\t\t\t\t\tthis.logger.error(`Failed to refresh session: ${res.error.message}`);\r\n\r\n\t\t\t\t\t/*\r\n\t\t\t\t\t * return previous session for all errors except \"InvalidTokenError\" and \"AccountBlacklistedError\"\r\n\t\t\t\t\t */\r\n\t\t\t\t\tif (\r\n\t\t\t\t\t\tres.error.name === 'InvalidTokenError' ||\r\n\t\t\t\t\t\tres.error.name === 'AccountBlacklistedError' ||\r\n\t\t\t\t\t\tres.error.name === 'VerificationLockedError'\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tcookies.remove(this.storageKey);\r\n\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\tok: false,\r\n\t\t\t\t\t\t\terror: res.error,\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthis.logger.warn('Old session returned.');\r\n\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\tok: true,\r\n\t\t\t\t\t\t\tdata: obj,\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.logger.success('Session refreshed!');\r\n\r\n\t\t\t\tnow = new Date();\r\n\t\t\t\tobj = {\r\n\t\t\t\t\t...obj,\r\n\t\t\t\t\t...res.data,\r\n\t\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\r\n\t\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t\t};\r\n\r\n\t\t\t\tcookies.set(this.storageKey, JSON.stringify(obj), {\r\n\t\t\t\t\texpires: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: obj,\r\n\t\t\t};\r\n\t\t} catch {\r\n\t\t\t/* Did they modify session in cookies? */\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: {\r\n\t\t\t\t\tname: 'UnknownError',\r\n\t\t\t\t\tmessage: 'Something went wrong.',\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\t}\r\n\r\n\tasync refresh(): Promise<OperationResult<RefreshSessionError, Data | null>> {\r\n\t\tif (this.isServer) {\r\n\t\t\tthis.logger.warn(\"'client cookies' is not available on the server.\");\r\n\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: null,\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tconst val = cookies.get(this.storageKey);\r\n\r\n\t\tif (!val) {\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: null,\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\tlet obj: {\r\n\t\t\t\tsession: Session;\r\n\t\t\t\taccessToken: string;\r\n\t\t\t\taccessTokenExpiresAt: number;\r\n\t\t\t\trefreshToken: string;\r\n\t\t\t\trefreshTokenExpiresAt: number;\r\n\t\t\t} = JSON.parse(val);\r\n\r\n\t\t\tlet now = new Date();\r\n\r\n\t\t\tthis.logger.info('Refreshing session...');\r\n\r\n\t\t\tthis.refreshing = true;\r\n\r\n\t\t\tconst res = await this.authService.refreshSession(obj.refreshToken);\r\n\r\n\t\t\tthis.refreshing = false;\r\n\r\n\t\t\tif (!res.ok) {\r\n\t\t\t\tthis.logger.error(`Failed to refresh session: ${res.error.message}`);\r\n\r\n\t\t\t\t/*\r\n\t\t\t\t\t* return previous session for all errors except \"InvalidTokenError\" and \"AccountBlacklistedError\"\r\n\t\t\t\t\t*/\r\n\t\t\t\tif (\r\n\t\t\t\t\tres.error.name === 'InvalidTokenError' ||\r\n\t\t\t\t\tres.error.name === 'AccountBlacklistedError' ||\r\n\t\t\t\t\tres.error.name === 'VerificationLockedError'\r\n\t\t\t\t) {\r\n\t\t\t\t\tcookies.remove(this.storageKey);\r\n\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tok: false,\r\n\t\t\t\t\t\terror: res.error,\r\n\t\t\t\t\t};\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.logger.warn('Old session returned.');\r\n\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tok: true,\r\n\t\t\t\t\t\tdata: obj,\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tthis.logger.success('Session refreshed!');\r\n\r\n\t\t\tnow = new Date();\r\n\t\t\tobj = {\r\n\t\t\t\t...obj,\r\n\t\t\t\t...res.data,\r\n\t\t\t\taccessTokenExpiresAt: addMinutes(now, 8).getTime(),\r\n\t\t\t\trefreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t};\r\n\r\n\t\t\tcookies.set(this.storageKey, JSON.stringify(obj), {\r\n\t\t\t\texpires: subMinutes(addDays(now, 30), 2).getTime(),\r\n\t\t\t});\r\n\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: obj,\r\n\t\t\t};\r\n\t\t} catch {\r\n\t\t\t/* Did they modify session in cookies? */\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: {\r\n\t\t\t\t\tname: 'UnknownError',\r\n\t\t\t\t\tmessage: 'Something went wrong.',\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\t}\r\n\r\n\tasync destroy() {\r\n\t\tif (this.isServer) {\r\n\t\t\tthis.logger.warn(\"'client cookies' is not available on the server.\");\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst res = await this.get();\r\n\r\n\t\tif (res.data?.accessToken) {\r\n\t\t\tawait this.authService.destroySession(res.data.accessToken);\r\n\t\t}\r\n\r\n\t\tcookies.remove(this.storageKey);\r\n\t}\r\n\r\n\tasync verify(): Promise<boolean> {\r\n\t\tif (this.isServer) {\r\n\t\t\tthis.logger.warn(\"'client cookies' is not available on the server.\");\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\tconst s = await this.get();\r\n\r\n\t\tif (s.error?.name === 'InvalidTokenError') return false;\r\n\t\tif (s.error?.name === 'SessionExpiredError') return false;\r\n\t\tif (s.error?.name === 'AccountBlacklistedError') return false;\r\n\r\n\t\t/* Not logged in or session is not expired */\r\n\t\tif (!s.data) return true;\r\n\r\n\t\tconst v = await this.authService.verifySession(s.data.accessToken);\r\n\r\n\t\t/* log out if session is no longer valid */\r\n\t\tif (!v) {\r\n\t\t\tcookies.remove(this.storageKey);\r\n\t\t}\r\n\r\n\t\treturn v;\r\n\t}\r\n\r\n\tget onMaya() {\r\n\t\tif (this.isServer) {\r\n\t\t\tthis.logger.warn(\"'client cookies' is not available on the server.\");\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\treturn localStorage.getItem(this.platformStorageKey) === 'MAYA';\r\n\t}\r\n\r\n\tget onCabinet() {\r\n\t\tif (this.isServer) {\r\n\t\t\tthis.logger.warn(\"'localStorage' is not available on the server.\");\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\treturn localStorage.getItem(this.platformStorageKey) === 'CABINET';\r\n\t}\r\n\r\n\tprivate get isServer() {\r\n\t\treturn typeof window === 'undefined';\r\n\t}\r\n}\r\n","import { isPlainObject } from './is-plain-object.js';\r\n\r\nexport function compact<T>(obj: Record<string, any>) {\r\n\tconst output: Record<string, any> = {};\r\n\r\n\tfor (const k in obj) {\r\n\t\tconst v = obj[k];\r\n\r\n\t\tif (v === null) continue;\r\n\t\tif (v === undefined) continue;\r\n\r\n\t\tif (isPlainObject(v)) {\r\n\t\t\toutput[k] = compact(v);\r\n\t\t\tcontinue;\r\n\t\t}\r\n\r\n\t\tif (Array.isArray(v)) {\r\n\t\t\toutput[k] = v.map((i) => {\r\n\t\t\t\tif (isPlainObject(i)) {\r\n\t\t\t\t\treturn compact(i);\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn i;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tcontinue;\r\n\t\t}\r\n\r\n\t\toutput[k] = v;\r\n\t}\r\n\r\n\treturn output as T;\r\n}\r\n","export function invariant(\r\n\tcondition: unknown,\r\n\tmessage?: string,\r\n): asserts condition {\r\n\tif (!condition) {\r\n\t\tconst error = new Error();\r\n\t\terror.name = 'Invariant Violation';\r\n\t\terror.message = message ?? 'Invariant failed';\r\n\t\tError.captureStackTrace?.(error, invariant);\r\n\t\tthrow error;\r\n\t}\r\n}\r\n","type MaybeNumber = number | string | undefined | null;\r\n\r\nexport function parseDecimal(value: MaybeNumber): number | undefined;\r\nexport function parseDecimal(value: MaybeNumber, fallback: number): number;\r\nexport function parseDecimal(value: MaybeNumber, fallback?: number) {\r\n\tif (typeof value === 'number') {\r\n\t\tif (!Number.isNaN(value)) return value;\r\n\t}\r\n\r\n\tif (typeof value === 'string') {\r\n\t\tconst parsed = Number.parseFloat(value);\r\n\r\n\t\tif (!Number.isNaN(parsed)) {\r\n\t\t\treturn parsed;\r\n\t\t}\r\n\t}\r\n\r\n\treturn fallback;\r\n}\r\n","import type * as Internal from '../services/index.js';\r\nimport type { Assign } from '../types/index.js';\r\nimport { compact } from '../utils/compact.js';\r\nimport { invariant } from '../utils/invariant.js';\r\nimport { parseDecimal } from '../utils/parse-decimal.js';\r\nimport type * as External from './types.js';\r\nimport { getLocaleByCurrency } from './utils.js';\r\n\r\nconst IMAGE_CACHE_ID = '5'.padStart(8, '0');\r\n\r\nexport class Transformer {\r\n\tget transform() {\r\n\t\treturn {\r\n\t\t\tsite: this.site.bind(this),\r\n\t\t\tplatform: this.platform.bind(this),\r\n\t\t\taccount: this.account.bind(this),\r\n\t\t\twallet: this.wallet.bind(this),\r\n\t\t\tverificationDetails: this.verificationDetails.bind(this),\r\n\t\t\tprofileCompletion: this.profileCompletion.bind(this),\r\n\t\t\tannouncement: this.announcement.bind(this),\r\n\t\t\twithdrawalRecord: this.withdrawalRecord.bind(this),\r\n\t\t\tdeposit: this.deposit.bind(this),\r\n\t\t\tcabinetWithdrawal: this.cabinetWithdrawal.bind(this),\r\n\t\t\tdepositRecord: this.depositRecord.bind(this),\r\n\t\t\tbetRecord: this.betRecord.bind(this),\r\n\t\t\tlatestBetRecord: this.latestBetRecord.bind(this),\r\n\t\t\ttransactionRecord: this.transactionRecord.bind(this),\r\n\t\t\tgame: this.game.bind(this),\r\n\t\t\tgameSession: this.gameSession.bind(this),\r\n\t\t\tpromo: this.promo.bind(this),\r\n\t\t\tcashback: this.cashback.bind(this),\r\n\t\t\tbonus: this.bonus.bind(this),\r\n\t\t\tcashbackBonus: this.cashbackBonus.bind(this),\r\n\t\t\tmemberCabinetSiteMachine: this.memberCabinetSiteMachine.bind(this),\r\n\t\t\tfile: this.file.bind(this),\r\n\t\t\tpointsWallet: this.pointsWallet.bind(this),\r\n\t\t\tpointsWalletTransaction: this.pointsWalletTransaction.bind(this),\r\n\t\t\trebate: this.rebate.bind(this),\r\n\t\t\tmemberRebateContribution: this.memberRebateContribution.bind(this),\r\n\t\t\tactivityRecord: this.activityRecord.bind(this),\r\n\t\t\treferral: this.referral.bind(this),\r\n\t\t\treferralCommission: this.referralCommission.bind(this),\r\n\t\t\tplatform__next: this.platform__next.bind(this),\r\n\t\t\tpointsClubSettings: this.pointsClubSettings.bind(this),\r\n\t\t\tpaymentSettings: this.paymentSettings.bind(this),\r\n\t\t\tmessage: this.message.bind(this),\r\n\t\t\tinstapayBank: this.instapayBank.bind(this),\r\n\t\t\tpromoByCode: this.promoByCode.bind(this),\r\n\t\t\tquest: this.quest.bind(this),\r\n\t\t\ttopWin: this.topWin.bind(this),\r\n\t\t\tjackpots: this.jackpots.bind(this),\r\n\t\t\tjackpotPayouts: this.jackpotPayouts.bind(this),\r\n\t\t\ttournaments: this.tournaments.bind(this),\r\n\t\t\tmemberLevelSettings: this.memberLevelSettings.bind(this),\r\n\t\t\tachievementSettings: this.achievementSettings.bind(this),\r\n\t\t\tachievementPointsHistoryRecord:\r\n\t\t\t\tthis.achievementPointsHistoryRecord.bind(this),\r\n\t\t\tmemberAchievements: this.memberAchievements.bind(this),\r\n\t\t\tmemberVerificationRequest: this.memberVerificationRequest.bind(this),\r\n\t\t\tfreeBetDrops: this.freeBetDrops.bind(this),\r\n\t\t\tmemberFreeBetDrops: this.memberFreeBetDrops.bind(this),\r\n\t\t\tmemberWalletAccount: this.walletAccount.bind(this),\r\n\t\t};\r\n\t}\r\n\r\n\tprivate site(data: Internal.Site): External.Site {\r\n\t\tconst o: External.Site = {\r\n\t\t\tid: data.id,\r\n\t\t\tname: data.name,\r\n\t\t\tlogo: data.logo ?? undefined,\r\n\t\t\tfields: data.config.fields,\r\n\t\t};\r\n\r\n\t\treturn compact(o);\r\n\t}\r\n\r\n\t/** @deprecated */\r\n\tprivate platform(data: Internal.Platform): External.Platform {\r\n\t\treturn {\r\n\t\t\ttimezone: data.timezone,\r\n\t\t\tcurrency: data.currency,\r\n\t\t\tpaymentSettings: {\r\n\t\t\t\tminimumFirstDepositAmount: parseDecimal(data.minimumFirstDepositAmount),\r\n\t\t\t\trestrictWithdrawalsToVerifiedMembers:\r\n\t\t\t\t\tdata.restrictWithdrawalsToVerifiedMembers,\r\n\t\t\t\tdepositGateway: {\r\n\t\t\t\t\tbank: {\r\n\t\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\t\tdata.bankDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled: data.bankDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled: data.bankDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\t\tdata.bankDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.bankDepositGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.bankDepositGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tgcash: {\r\n\t\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\t\tdata.gcashDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled: data.gcashDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled: data.gcashDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\t\tdata.gcashDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.gcashDepositGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.gcashDepositGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tgcashWebpay: {\r\n\t\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\t\tdata.gcashWebpayDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled:\r\n\t\t\t\t\t\t\tdata.gcashWebpayDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled:\r\n\t\t\t\t\t\t\tdata.gcashWebpayDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\t\tdata.gcashWebpayDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.gcashWebpayDepositGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.gcashWebpayDepositGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t},\r\n\t\t\t\t\taioGcash: {\r\n\t\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\t\tdata.aioGcashDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled:\r\n\t\t\t\t\t\t\tdata.aioGcashDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled:\r\n\t\t\t\t\t\t\tdata.aioGcashDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\t\tdata.aioGcashDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.aioGcashDepositGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.aioGcashDepositGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t},\r\n\t\t\t\t\taioPayMaya: {\r\n\t\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\t\tdata.aioPayMayaDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled:\r\n\t\t\t\t\t\t\tdata.aioPayMayaDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled:\r\n\t\t\t\t\t\t\tdata.aioPayMayaDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\t\tdata.aioPayMayaDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.aioPayMayaDepositGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.aioPayMayaDepositGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t},\r\n\t\t\t\t\taioGrabPay: {\r\n\t\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\t\tdata.aioGrabPayDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled:\r\n\t\t\t\t\t\t\tdata.aioGrabPayDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled:\r\n\t\t\t\t\t\t\tdata.aioGrabPayDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\t\tdata.aioGrabPayDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.aioGrabPayDepositGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.aioGrabPayDepositGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t},\r\n\t\t\t\t\taioPalawanPay: {\r\n\t\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\t\tdata.aioPalawanPayDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled:\r\n\t\t\t\t\t\t\tdata.aioPalawanPayDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled:\r\n\t\t\t\t\t\t\tdata.aioPalawanPayDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\t\tdata.aioPalawanPayDepositGatewaySettings?.mobileWebEnabled ??\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.aioPalawanPayDepositGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.aioPalawanPayDepositGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmaya: {\r\n\t\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\t\tdata.mayaDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled: data.mayaDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled: data.mayaDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\t\tdata.mayaDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.mayaDepositGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.mayaDepositGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmayaApp: {\r\n\t\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\t\tdata.mayaAppDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled: data.mayaAppDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled: data.mayaAppDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\t\tdata.mayaAppDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.mayaAppDepositGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.mayaAppDepositGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmayaWebpay: {\r\n\t\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\t\tdata.mayaWebpayDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled:\r\n\t\t\t\t\t\t\tdata.mayaWebpayDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled:\r\n\t\t\t\t\t\t\tdata.mayaWebpayDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\t\tdata.mayaWebpayDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.mayaWebpayDepositGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.mayaWebpayDepositGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tonlineBank: {\r\n\t\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\t\tdata.onlineBankDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled:\r\n\t\t\t\t\t\t\tdata.onlineBankDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled:\r\n\t\t\t\t\t\t\tdata.onlineBankDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\t\tdata.onlineBankDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.onlineBankDepositGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.onlineBankDepositGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tqrph: {\r\n\t\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\t\tdata.qrphDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled: data.qrphDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled: data.qrphDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\t\tdata.qrphDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.qrphDepositGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.qrphDepositGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmanualBank: {\r\n\t\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\t\tdata.manualBankDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled:\r\n\t\t\t\t\t\t\tdata.manualBankDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled:\r\n\t\t\t\t\t\t\tdata.manualBankDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\t\tdata.manualBankDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.manualBankDepositGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.manualBankDepositGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t\tbankAccountName:\r\n\t\t\t\t\t\t\tdata.manualBankDepositGatewaySettings?.bankAccountName,\r\n\t\t\t\t\t\tbankAccountNumber:\r\n\t\t\t\t\t\t\tdata.manualBankDepositGatewaySettings?.bankAccountNumber,\r\n\t\t\t\t\t\tbankIFSCCode: data.manualBankDepositGatewaySettings?.bankIFSCCode,\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmanualUPI: {\r\n\t\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\t\tdata.manualUPIDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled:\r\n\t\t\t\t\t\t\tdata.manualUPIDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled:\r\n\t\t\t\t\t\t\tdata.manualUPIDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\t\tdata.manualUPIDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.manualUPIDepositGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.manualUPIDepositGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t\tupiId: data.manualUPIDepositGatewaySettings?.upiId,\r\n\t\t\t\t\t\tupiQRCode: !data.manualUPIDepositGatewaySettings?.upiQRCode\r\n\t\t\t\t\t\t\t? null\r\n\t\t\t\t\t\t\t: (this.file(\r\n\t\t\t\t\t\t\t\t\tdata.manualUPIDepositGatewaySettings.upiQRCode,\r\n\t\t\t\t\t\t\t\t) as Extract<External.File, { status: 'READY' }>),\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t\twithdrawalGateway: {\r\n\t\t\t\t\tbank: {\r\n\t\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\t\tdata.bankWithdrawalGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled: data.bankWithdrawalGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled: data.bankWithdrawalGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\t\tdata.bankWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.bankWithdrawalGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.bankWithdrawalGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tgcash: {\r\n\t\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\t\tdata.gcashWithdrawalGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled:\r\n\t\t\t\t\t\t\tdata.gcashWithdrawalGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled:\r\n\t\t\t\t\t\t\tdata.gcashWithdrawalGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\t\tdata.gcashWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.gcashWithdrawalGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.gcashWithdrawalGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t\t1000000,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tgcashStandardCashIn: {\r\n\t\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\t\tdata.gcashStandardCashInWithdrawalGatewaySettings\r\n\t\t\t\t\t\t\t\t?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled:\r\n\t\t\t\t\t\t\tdata.gcashStandardCashInWithdrawalGatewaySettings?.iosEnabled ??\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\twebEnabled:\r\n\t\t\t\t\t\t\tdata.gcashStandardCashInWithdrawalGatewaySettings?.webEnabled ??\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\t\tdata.gcashStandardCashInWithdrawalGatewaySettings\r\n\t\t\t\t\t\t\t\t?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.gcashStandardCashInWithdrawalGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.gcashStandardCashInWithdrawalGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t\t1000000,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmaya: {\r\n\t\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\t\tdata.mayaWithdrawalGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled: data.mayaWithdrawalGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled: data.mayaWithdrawalGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\t\tdata.mayaWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.mayaWithdrawalGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.mayaWithdrawalGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmayaApp: {\r\n\t\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\t\tdata.mayaAppWithdrawalGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled:\r\n\t\t\t\t\t\t\tdata.mayaAppWithdrawalGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled:\r\n\t\t\t\t\t\t\tdata.mayaAppWithdrawalGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\t\tdata.mayaAppWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.mayaAppWithdrawalGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.mayaAppWithdrawalGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t\t1000000,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tinstapay: {\r\n\t\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\t\tdata.instapayWithdrawalGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled:\r\n\t\t\t\t\t\t\tdata.instapayWithdrawalGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled:\r\n\t\t\t\t\t\t\tdata.instapayWithdrawalGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\t\tdata.instapayWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.instapayWithdrawalGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.instapayWithdrawalGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t\t1000000,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmanualBank: {\r\n\t\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\t\tdata.manualBankWithdrawalGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled:\r\n\t\t\t\t\t\t\tdata.manualBankWithdrawalGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled:\r\n\t\t\t\t\t\t\tdata.manualBankWithdrawalGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\t\tdata.manualBankWithdrawalGatewaySettings?.mobileWebEnabled ??\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.manualBankWithdrawalGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.manualBankWithdrawalGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t\t1000000,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmanualUPI: {\r\n\t\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\t\tdata.manualUPIWithdrawalGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\t\tiosEnabled:\r\n\t\t\t\t\t\t\tdata.manualUPIWithdrawalGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\t\twebEnabled:\r\n\t\t\t\t\t\t\tdata.manualUPIWithdrawalGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\t\tdata.manualUPIWithdrawalGatewaySettings?.mobileWebEnabled ??\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.manualUPIWithdrawalGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\t\tdata.manualUPIWithdrawalGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t\t1000000,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\tpointsClubSettings: {\r\n\t\t\t\tmultiplier: parseDecimal(data.pointsClubSettings?.multiplier, 0),\r\n\t\t\t},\r\n\t\t};\r\n\t}\r\n\r\n\tprivate platform__next(\r\n\t\tdata: Internal.Platform__Next,\r\n\t): External.Platform__Next {\r\n\t\treturn {\r\n\t\t\tcurrency: data.currency,\r\n\t\t\ttimezone: data.timezone,\r\n\t\t\tlocale: getLocaleByCurrency(data.currency),\r\n\t\t};\r\n\t}\r\n\r\n\tprivate memberLevelSettings(\r\n\t\tdata: Internal.MemberLevelSettings,\r\n\t): External.MemberLevelSettings {\r\n\t\treturn {\r\n\t\t\tmemberLevelSettings__1: {\r\n\t\t\t\tenabled: data.memberLevelSettings__1.enabled ?? false,\r\n\t\t\t\tachievementPointsRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__1?.achievementPointsRequirement ?? 0,\r\n\t\t\t\tturnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__1?.turnoverRequirement ?? 0,\r\n\t\t\t\tbonusTurnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__1?.bonusTurnoverRequirement ?? 0,\r\n\t\t\t\tname: data.memberLevelSettings__1?.name ?? '',\r\n\t\t\t\tbonusAmount: data.memberLevelSettings__1?.bonusAmount ?? 0,\r\n\t\t\t},\r\n\t\t\tmemberLevelSettings__2: {\r\n\t\t\t\tenabled: data.memberLevelSettings__2.enabled ?? false,\r\n\t\t\t\tachievementPointsRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__2?.achievementPointsRequirement ?? 0,\r\n\t\t\t\tturnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__2?.turnoverRequirement ?? 0,\r\n\t\t\t\tbonusTurnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__2?.bonusTurnoverRequirement ?? 0,\r\n\t\t\t\tname: data.memberLevelSettings__2?.name ?? '',\r\n\t\t\t\tbonusAmount: data.memberLevelSettings__2?.bonusAmount ?? 0,\r\n\t\t\t},\r\n\t\t\tmemberLevelSettings__3: {\r\n\t\t\t\tenabled: data.memberLevelSettings__3.enabled ?? false,\r\n\t\t\t\tachievementPointsRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__3?.achievementPointsRequirement ?? 0,\r\n\t\t\t\tturnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__3?.turnoverRequirement ?? 0,\r\n\t\t\t\tbonusTurnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__3?.bonusTurnoverRequirement ?? 0,\r\n\t\t\t\tname: data.memberLevelSettings__3?.name ?? '',\r\n\t\t\t\tbonusAmount: data.memberLevelSettings__3?.bonusAmount ?? 0,\r\n\t\t\t},\r\n\t\t\tmemberLevelSettings__4: {\r\n\t\t\t\tenabled: data.memberLevelSettings__4.enabled ?? false,\r\n\t\t\t\tachievementPointsRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__4?.achievementPointsRequirement ?? 0,\r\n\t\t\t\tturnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__4?.turnoverRequirement ?? 0,\r\n\t\t\t\tbonusTurnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__4?.bonusTurnoverRequirement ?? 0,\r\n\t\t\t\tname: data.memberLevelSettings__4?.name ?? '',\r\n\t\t\t\tbonusAmount: data.memberLevelSettings__4?.bonusAmount ?? 0,\r\n\t\t\t},\r\n\t\t\tmemberLevelSettings__5: {\r\n\t\t\t\tenabled: data.memberLevelSettings__5.enabled ?? false,\r\n\t\t\t\tachievementPointsRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__5?.achievementPointsRequirement ?? 0,\r\n\t\t\t\tturnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__5?.turnoverRequirement ?? 0,\r\n\t\t\t\tbonusTurnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__5?.bonusTurnoverRequirement ?? 0,\r\n\t\t\t\tname: data.memberLevelSettings__5?.name ?? '',\r\n\t\t\t\tbonusAmount: data.memberLevelSettings__5?.bonusAmount ?? 0,\r\n\t\t\t},\r\n\t\t\tmemberLevelSettings__6: {\r\n\t\t\t\tenabled: data.memberLevelSettings__6.enabled ?? false,\r\n\t\t\t\tachievementPointsRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__6?.achievementPointsRequirement ?? 0,\r\n\t\t\t\tturnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__6?.turnoverRequirement ?? 0,\r\n\t\t\t\tbonusTurnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__6?.bonusTurnoverRequirement ?? 0,\r\n\t\t\t\tname: data.memberLevelSettings__6?.name ?? '',\r\n\t\t\t\tbonusAmount: data.memberLevelSettings__6?.bonusAmount ?? 0,\r\n\t\t\t},\r\n\t\t\tmemberLevelSettings__7: {\r\n\t\t\t\tenabled: data.memberLevelSettings__7.enabled ?? false,\r\n\t\t\t\tachievementPointsRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__7?.achievementPointsRequirement ?? 0,\r\n\t\t\t\tturnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__7?.turnoverRequirement ?? 0,\r\n\t\t\t\tbonusTurnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__7?.bonusTurnoverRequirement ?? 0,\r\n\t\t\t\tname: data.memberLevelSettings__7?.name ?? '',\r\n\t\t\t\tbonusAmount: data.memberLevelSettings__7?.bonusAmount ?? 0,\r\n\t\t\t},\r\n\t\t\tmemberLevelSettings__8: {\r\n\t\t\t\tenabled: data.memberLevelSettings__8.enabled ?? false,\r\n\t\t\t\tachievementPointsRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__8?.achievementPointsRequirement ?? 0,\r\n\t\t\t\tturnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__8?.turnoverRequirement ?? 0,\r\n\t\t\t\tbonusTurnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__8?.bonusTurnoverRequirement ?? 0,\r\n\t\t\t\tname: data.memberLevelSettings__8?.name ?? '',\r\n\t\t\t\tbonusAmount: data.memberLevelSettings__8?.bonusAmount ?? 0,\r\n\t\t\t},\r\n\t\t\tmemberLevelSettings__9: {\r\n\t\t\t\tenabled: data.memberLevelSettings__9.enabled ?? false,\r\n\t\t\t\tachievementPointsRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__9?.achievementPointsRequirement ?? 0,\r\n\t\t\t\tturnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__9?.turnoverRequirement ?? 0,\r\n\t\t\t\tbonusTurnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__9?.bonusTurnoverRequirement ?? 0,\r\n\t\t\t\tname: data.memberLevelSettings__9?.name ?? '',\r\n\t\t\t\tbonusAmount: data.memberLevelSettings__9?.bonusAmount ?? 0,\r\n\t\t\t},\r\n\t\t\tmemberLevelSettings__10: {\r\n\t\t\t\tenabled: data.memberLevelSettings__10.enabled ?? false,\r\n\t\t\t\tachievementPointsRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__10?.achievementPointsRequirement ?? 0,\r\n\t\t\t\tturnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__10?.turnoverRequirement ?? 0,\r\n\t\t\t\tbonusTurnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__10?.bonusTurnoverRequirement ?? 0,\r\n\t\t\t\tname: data.memberLevelSettings__10?.name ?? '',\r\n\t\t\t\tbonusAmount: data.memberLevelSettings__10?.bonusAmount ?? 0,\r\n\t\t\t},\r\n\t\t\tmemberLevelSettings__11: {\r\n\t\t\t\tenabled: data.memberLevelSettings__11.enabled ?? false,\r\n\t\t\t\tachievementPointsRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__11?.achievementPointsRequirement ?? 0,\r\n\t\t\t\tturnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__11?.turnoverRequirement ?? 0,\r\n\t\t\t\tbonusTurnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__11?.bonusTurnoverRequirement ?? 0,\r\n\t\t\t\tname: data.memberLevelSettings__11?.name ?? '',\r\n\t\t\t\tbonusAmount: data.memberLevelSettings__11?.bonusAmount ?? 0,\r\n\t\t\t},\r\n\t\t\tmemberLevelSettings__12: {\r\n\t\t\t\tenabled: data.memberLevelSettings__12.enabled ?? false,\r\n\t\t\t\tachievementPointsRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__12?.achievementPointsRequirement ?? 0,\r\n\t\t\t\tturnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__12?.turnoverRequirement ?? 0,\r\n\t\t\t\tbonusTurnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__12?.bonusTurnoverRequirement ?? 0,\r\n\t\t\t\tname: data.memberLevelSettings__12?.name ?? '',\r\n\t\t\t\tbonusAmount: data.memberLevelSettings__12?.bonusAmount ?? 0,\r\n\t\t\t},\r\n\t\t\tmemberLevelSettings__13: {\r\n\t\t\t\tenabled: data.memberLevelSettings__13.enabled ?? false,\r\n\t\t\t\tachievementPointsRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__13?.achievementPointsRequirement ?? 0,\r\n\t\t\t\tturnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__13?.turnoverRequirement ?? 0,\r\n\t\t\t\tbonusTurnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__13?.bonusTurnoverRequirement ?? 0,\r\n\t\t\t\tname: data.memberLevelSettings__13?.name ?? '',\r\n\t\t\t\tbonusAmount: data.memberLevelSettings__13?.bonusAmount ?? 0,\r\n\t\t\t},\r\n\t\t\tmemberLevelSettings__14: {\r\n\t\t\t\tenabled: data.memberLevelSettings__14.enabled ?? false,\r\n\t\t\t\tachievementPointsRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__14?.achievementPointsRequirement ?? 0,\r\n\t\t\t\tturnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__14?.turnoverRequirement ?? 0,\r\n\t\t\t\tbonusTurnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__14?.bonusTurnoverRequirement ?? 0,\r\n\t\t\t\tname: data.memberLevelSettings__14?.name ?? '',\r\n\t\t\t\tbonusAmount: data.memberLevelSettings__14?.bonusAmount ?? 0,\r\n\t\t\t},\r\n\t\t\tmemberLevelSettings__15: {\r\n\t\t\t\tenabled: data.memberLevelSettings__15.enabled ?? false,\r\n\t\t\t\tachievementPointsRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__15?.achievementPointsRequirement ?? 0,\r\n\t\t\t\tturnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__15?.turnoverRequirement ?? 0,\r\n\t\t\t\tbonusTurnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__15?.bonusTurnoverRequirement ?? 0,\r\n\t\t\t\tname: data.memberLevelSettings__15?.name ?? '',\r\n\t\t\t\tbonusAmount: data.memberLevelSettings__15?.bonusAmount ?? 0,\r\n\t\t\t},\r\n\t\t\tmemberLevelSettings__16: {\r\n\t\t\t\tenabled: data.memberLevelSettings__16.enabled ?? false,\r\n\t\t\t\tachievementPointsRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__16?.achievementPointsRequirement ?? 0,\r\n\t\t\t\tturnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__16?.turnoverRequirement ?? 0,\r\n\t\t\t\tbonusTurnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__16?.bonusTurnoverRequirement ?? 0,\r\n\t\t\t\tname: data.memberLevelSettings__16?.name ?? '',\r\n\t\t\t\tbonusAmount: data.memberLevelSettings__16?.bonusAmount ?? 0,\r\n\t\t\t},\r\n\t\t\tmemberLevelSettings__17: {\r\n\t\t\t\tenabled: data.memberLevelSettings__17.enabled ?? false,\r\n\t\t\t\tachievementPointsRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__17?.achievementPointsRequirement ?? 0,\r\n\t\t\t\tturnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__17?.turnoverRequirement ?? 0,\r\n\t\t\t\tbonusTurnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__17?.bonusTurnoverRequirement ?? 0,\r\n\t\t\t\tname: data.memberLevelSettings__17?.name ?? '',\r\n\t\t\t\tbonusAmount: data.memberLevelSettings__17?.bonusAmount ?? 0,\r\n\t\t\t},\r\n\t\t\tmemberLevelSettings__18: {\r\n\t\t\t\tenabled: data.memberLevelSettings__18.enabled ?? false,\r\n\t\t\t\tachievementPointsRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__18?.achievementPointsRequirement ?? 0,\r\n\t\t\t\tturnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__18?.turnoverRequirement ?? 0,\r\n\t\t\t\tbonusTurnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__18?.bonusTurnoverRequirement ?? 0,\r\n\t\t\t\tname: data.memberLevelSettings__18?.name ?? '',\r\n\t\t\t\tbonusAmount: data.memberLevelSettings__18?.bonusAmount ?? 0,\r\n\t\t\t},\r\n\t\t\tmemberLevelSettings__19: {\r\n\t\t\t\tenabled: data.memberLevelSettings__19.enabled ?? false,\r\n\t\t\t\tachievementPointsRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__19?.achievementPointsRequirement ?? 0,\r\n\t\t\t\tturnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__19?.turnoverRequirement ?? 0,\r\n\t\t\t\tbonusTurnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__19?.bonusTurnoverRequirement ?? 0,\r\n\t\t\t\tname: data.memberLevelSettings__19?.name ?? '',\r\n\t\t\t\tbonusAmount: data.memberLevelSettings__19?.bonusAmount ?? 0,\r\n\t\t\t},\r\n\t\t\tmemberLevelSettings__20: {\r\n\t\t\t\tenabled: data.memberLevelSettings__20.enabled ?? false,\r\n\t\t\t\tachievementPointsRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__20?.achievementPointsRequirement ?? 0,\r\n\t\t\t\tturnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__20?.turnoverRequirement ?? 0,\r\n\t\t\t\tbonusTurnoverRequirement:\r\n\t\t\t\t\tdata.memberLevelSettings__20?.bonusTurnoverRequirement ?? 0,\r\n\t\t\t\tname: data.memberLevelSettings__20?.name ?? '',\r\n\t\t\t\tbonusAmount: data.memberLevelSettings__20?.bonusAmount ?? 0,\r\n\t\t\t},\r\n\t\t};\r\n\t}\r\n\r\n\tprivate achievementSettings(\r\n\t\tdata: Internal.AchievementSettingsResponse,\r\n\t): External.AchievementSettingsResponse {\r\n\t\treturn {\r\n\t\t\tdiverseDebut: {\r\n\t\t\t\tenabled: data.diverseDebut.enabled ?? false,\r\n\t\t\t\tpoints: data.diverseDebut.points ?? 0,\r\n\t\t\t\tuniqueGamesCount: data.diverseDebut.uniqueGamesCount ?? 0,\r\n\t\t\t\tnewGamesCount: data.diverseDebut.newGamesCount ?? 0,\r\n\t\t\t\tbetsCount: data.diverseDebut.betsCount ?? 0,\r\n\t\t\t\tactiveDaysCount: data.diverseDebut.activeDaysCount ?? 0,\r\n\t\t\t},\r\n\t\t\tvarietyVirtuoso: {\r\n\t\t\t\tenabled: data.varietyVirtuoso.enabled ?? false,\r\n\t\t\t\tpoints: data.varietyVirtuoso.points ?? 0,\r\n\t\t\t\tuniqueGamesCount: data.varietyVirtuoso.uniqueGamesCount ?? 0,\r\n\t\t\t\tnewGamesCount: data.varietyVirtuoso.newGamesCount ?? 0,\r\n\t\t\t\tbetsCount: data.varietyVirtuoso.betsCount ?? 0,\r\n\t\t\t\tactiveDaysCount: data.varietyVirtuoso.activeDaysCount ?? 0,\r\n\t\t\t},\r\n\t\t\tmasterOfDiversity: {\r\n\t\t\t\tenabled: data.masterOfDiversity.enabled ?? false,\r\n\t\t\t\tpoints: data.masterOfDiversity.points ?? 0,\r\n\t\t\t\tuniqueGamesCount: data.masterOfDiversity.uniqueGamesCount ?? 0,\r\n\t\t\t\tnewGamesCount: data.masterOfDiversity.newGamesCount ?? 0,\r\n\t\t\t\tbetsCount: data.masterOfDiversity.betsCount ?? 0,\r\n\t\t\t\tactiveDaysCount: data.masterOfDiversity.activeDaysCount ?? 0,\r\n\t\t\t},\r\n\t\t\tcuriousNewcomer: {\r\n\t\t\t\tenabled: data.curiousNewcomer.enabled ?? false,\r\n\t\t\t\tpoints: data.curiousNewcomer.points ?? 0,\r\n\t\t\t\tuniqueGamesCount: data.curiousNewcomer.uniqueGamesCount ?? 0,\r\n\t\t\t\tnewGamesCount: data.curiousNewcomer.newGamesCount ?? 0,\r\n\t\t\t\tbetsCount: data.curiousNewcomer.betsCount ?? 0,\r\n\t\t\t\tactiveDaysCount: data.curiousNewcomer.activeDaysCount ?? 0,\r\n\t\t\t},\r\n\t\t\ttrailblazer: {\r\n\t\t\t\tenabled: data.trailblazer.enabled ?? false,\r\n\t\t\t\tpoints: data.trailblazer.points ?? 0,\r\n\t\t\t\tuniqueGamesCount: data.trailblazer.uniqueGamesCount ?? 0,\r\n\t\t\t\tnewGamesCount: data.trailblazer.newGamesCount ?? 0,\r\n\t\t\t\tbetsCount: data.trailblazer.betsCount ?? 0,\r\n\t\t\t\tactiveDaysCount: data.trailblazer.activeDaysCount ?? 0,\r\n\t\t\t},\r\n\t\t\tinnovationIcon: {\r\n\t\t\t\tenabled: data.innovationIcon.enabled ?? false,\r\n\t\t\t\tpoints: data.innovationIcon.points ?? 0,\r\n\t\t\t\tuniqueGamesCount: data.innovationIcon.uniqueGamesCount ?? 0,\r\n\t\t\t\tnewGamesCount: data.innovationIcon.newGamesCount ?? 0,\r\n\t\t\t\tbetsCount: data.innovationIcon.betsCount ?? 0,\r\n\t\t\t\tactiveDaysCount: data.innovationIcon.activeDaysCount ?? 0,\r\n\t\t\t},\r\n\t\t\trapidRoller: {\r\n\t\t\t\tenabled: data.rapidRoller.enabled ?? false,\r\n\t\t\t\tpoints: data.rapidRoller.points ?? 0,\r\n\t\t\t\tuniqueGamesCount: data.rapidRoller.uniqueGamesCount ?? 0,\r\n\t\t\t\tnewGamesCount: data.rapidRoller.newGamesCount ?? 0,\r\n\t\t\t\tbetsCount: data.rapidRoller.betsCount ?? 0,\r\n\t\t\t\tactiveDaysCount: data.rapidRoller.activeDaysCount ?? 0,\r\n\t\t\t},\r\n\t\t\twhirlwindWagerer: {\r\n\t\t\t\tenabled: data.whirlwindWagerer.enabled ?? false,\r\n\t\t\t\tpoints: data.whirlwindWagerer.points ?? 0,\r\n\t\t\t\tuniqueGamesCount: data.whirlwindWagerer.uniqueGamesCount ?? 0,\r\n\t\t\t\tnewGamesCount: data.whirlwindWagerer.newGamesCount ?? 0,\r\n\t\t\t\tbetsCount: data.whirlwindWagerer.betsCount ?? 0,\r\n\t\t\t\tactiveDaysCount: data.whirlwindWagerer.activeDaysCount ?? 0,\r\n\t\t\t},\r\n\t\t\tbettingBonanza: {\r\n\t\t\t\tenabled: data.bettingBonanza.enabled ?? false,\r\n\t\t\t\tpoints: data.bettingBonanza.points ?? 0,\r\n\t\t\t\tuniqueGamesCount: data.bettingBonanza.uniqueGamesCount ?? 0,\r\n\t\t\t\tnewGamesCount: data.bettingBonanza.newGamesCount ?? 0,\r\n\t\t\t\tbetsCount: data.bettingBonanza.betsCount ?? 0,\r\n\t\t\t\tactiveDaysCount: data.bettingBonanza.activeDaysCount ?? 0,\r\n\t\t\t},\r\n\t\t\tsteadyStrategist: {\r\n\t\t\t\tenabled: data.steadyStrategist.enabled ?? false,\r\n\t\t\t\tpoints: data.steadyStrategist.points ?? 0,\r\n\t\t\t\tuniqueGamesCount: data.steadyStrategist.uniqueGamesCount ?? 0,\r\n\t\t\t\tnewGamesCount: data.steadyStrategist.newGamesCount ?? 0,\r\n\t\t\t\tbetsCount: data.steadyStrategist.betsCount ?? 0,\r\n\t\t\t\tactiveDaysCount: data.steadyStrategist.activeDaysCount ?? 0,\r\n\t\t\t},\r\n\t\t\tconsistentContender: {\r\n\t\t\t\tenabled: data.consistentContender.enabled ?? false,\r\n\t\t\t\tpoints: data.consistentContender.points ?? 0,\r\n\t\t\t\tuniqueGamesCount: data.consistentContender.uniqueGamesCount ?? 0,\r\n\t\t\t\tnewGamesCount: data.consistentContender.newGamesCount ?? 0,\r\n\t\t\t\tbetsCount: data.consistentContender.betsCount ?? 0,\r\n\t\t\t\tactiveDaysCount: data.consistentContender.activeDaysCount ?? 0,\r\n\t\t\t},\r\n\t\t\tlegendaryLoyalist: {\r\n\t\t\t\tenabled: data.legendaryLoyalist.enabled ?? false,\r\n\t\t\t\tpoints: data.legendaryLoyalist.points ?? 0,\r\n\t\t\t\tuniqueGamesCount: data.legendaryLoyalist.uniqueGamesCount ?? 0,\r\n\t\t\t\tnewGamesCount: data.legendaryLoyalist.newGamesCount ?? 0,\r\n\t\t\t\tbetsCount: data.legendaryLoyalist.betsCount ?? 0,\r\n\t\t\t\tactiveDaysCount: data.legendaryLoyalist.activeDaysCount ?? 0,\r\n\t\t\t},\r\n\t\t};\r\n\t}\r\n\r\n\tprivate pointsClubSettings(\r\n\t\tdata: Internal.PointsClubSettings,\r\n\t): External.PointsClubSettings {\r\n\t\treturn {\r\n\t\t\tmultiplier: parseDecimal(data.multiplier, 0),\r\n\t\t};\r\n\t}\r\n\r\n\tprivate paymentSettings(\r\n\t\tdata: Internal.PaymentSettings,\r\n\t): External.PaymentSettings {\r\n\t\treturn {\r\n\t\t\tminimumFirstDepositAmount: parseDecimal(data.minimumFirstDepositAmount),\r\n\t\t\trestrictWithdrawalsToVerifiedMembers:\r\n\t\t\t\tdata.restrictWithdrawalsToVerifiedMembers,\r\n\t\t\tdepositGateway: {\r\n\t\t\t\tbank: {\r\n\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\tdata.bankDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled: data.bankDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled: data.bankDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\tdata.bankDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.bankDepositGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.bankDepositGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t),\r\n\t\t\t\t},\r\n\t\t\t\tgcash: {\r\n\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\tdata.gcashDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled: data.gcashDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled: data.gcashDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\tdata.gcashDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.gcashDepositGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.gcashDepositGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t),\r\n\t\t\t\t},\r\n\t\t\t\tgcashWebpay: {\r\n\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\tdata.gcashWebpayDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled:\r\n\t\t\t\t\t\tdata.gcashWebpayDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled:\r\n\t\t\t\t\t\tdata.gcashWebpayDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\tdata.gcashWebpayDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.gcashWebpayDepositGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.gcashWebpayDepositGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t),\r\n\t\t\t\t},\r\n\t\t\t\taioGcash: {\r\n\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\tdata.aioGcashDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled: data.aioGcashDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled: data.aioGcashDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\tdata.aioGcashDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.aioGcashDepositGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.aioGcashDepositGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t),\r\n\t\t\t\t},\r\n\t\t\t\taioPayMaya: {\r\n\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\tdata.aioPayMayaDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled:\r\n\t\t\t\t\t\tdata.aioPayMayaDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled:\r\n\t\t\t\t\t\tdata.aioPayMayaDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\tdata.aioPayMayaDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.aioPayMayaDepositGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.aioPayMayaDepositGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t),\r\n\t\t\t\t},\r\n\t\t\t\taioGrabPay: {\r\n\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\tdata.aioGrabPayDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled:\r\n\t\t\t\t\t\tdata.aioGrabPayDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled:\r\n\t\t\t\t\t\tdata.aioGrabPayDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\tdata.aioGrabPayDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.aioGrabPayDepositGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.aioGrabPayDepositGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t),\r\n\t\t\t\t},\r\n\t\t\t\taioPalawanPay: {\r\n\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\tdata.aioPalawanPayDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled:\r\n\t\t\t\t\t\tdata.aioPalawanPayDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled:\r\n\t\t\t\t\t\tdata.aioPalawanPayDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\tdata.aioPalawanPayDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.aioPalawanPayDepositGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.aioPalawanPayDepositGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t),\r\n\t\t\t\t},\r\n\t\t\t\tmaya: {\r\n\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\tdata.mayaDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled: data.mayaDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled: data.mayaDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\tdata.mayaDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.mayaDepositGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.mayaDepositGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t),\r\n\t\t\t\t},\r\n\t\t\t\tmayaApp: {\r\n\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\tdata.mayaAppDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled: data.mayaAppDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled: data.mayaAppDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\tdata.mayaAppDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.mayaAppDepositGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.mayaAppDepositGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t),\r\n\t\t\t\t},\r\n\t\t\t\tmayaWebpay: {\r\n\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\tdata.mayaWebpayDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled:\r\n\t\t\t\t\t\tdata.mayaWebpayDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled:\r\n\t\t\t\t\t\tdata.mayaWebpayDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\tdata.mayaWebpayDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.mayaWebpayDepositGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.mayaWebpayDepositGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t),\r\n\t\t\t\t},\r\n\t\t\t\tonlineBank: {\r\n\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\tdata.onlineBankDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled:\r\n\t\t\t\t\t\tdata.onlineBankDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled:\r\n\t\t\t\t\t\tdata.onlineBankDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\tdata.onlineBankDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.onlineBankDepositGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.onlineBankDepositGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t),\r\n\t\t\t\t},\r\n\t\t\t\tqrph: {\r\n\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\tdata.qrphDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled: data.qrphDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled: data.qrphDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\tdata.qrphDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.qrphDepositGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.qrphDepositGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t),\r\n\t\t\t\t},\r\n\t\t\t\tmanualBank: {\r\n\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\tdata.manualBankDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled:\r\n\t\t\t\t\t\tdata.manualBankDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled:\r\n\t\t\t\t\t\tdata.manualBankDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\tdata.manualBankDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.manualBankDepositGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.manualBankDepositGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t),\r\n\t\t\t\t\tbankAccountName:\r\n\t\t\t\t\t\tdata.manualBankDepositGatewaySettings?.bankAccountName,\r\n\t\t\t\t\tbankAccountNumber:\r\n\t\t\t\t\t\tdata.manualBankDepositGatewaySettings?.bankAccountNumber,\r\n\t\t\t\t\tbankIFSCCode: data.manualBankDepositGatewaySettings?.bankIFSCCode,\r\n\t\t\t\t},\r\n\t\t\t\tmanualUPI: {\r\n\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\tdata.manualUPIDepositGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled: data.manualUPIDepositGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled: data.manualUPIDepositGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\tdata.manualUPIDepositGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.manualUPIDepositGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.manualUPIDepositGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t),\r\n\t\t\t\t\tupiId: data.manualUPIDepositGatewaySettings?.upiId,\r\n\t\t\t\t\tupiQRCode: !data.manualUPIDepositGatewaySettings?.upiQRCode\r\n\t\t\t\t\t\t? null\r\n\t\t\t\t\t\t: (this.file(\r\n\t\t\t\t\t\t\t\tdata.manualUPIDepositGatewaySettings.upiQRCode,\r\n\t\t\t\t\t\t\t) as Extract<External.File, { status: 'READY' }>),\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\twithdrawalGateway: {\r\n\t\t\t\tbank: {\r\n\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\tdata.bankWithdrawalGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled: data.bankWithdrawalGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled: data.bankWithdrawalGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\tdata.bankWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.bankWithdrawalGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.bankWithdrawalGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t),\r\n\t\t\t\t},\r\n\t\t\t\tgcash: {\r\n\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\tdata.gcashWithdrawalGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled: data.gcashWithdrawalGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled: data.gcashWithdrawalGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\tdata.gcashWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.gcashWithdrawalGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.gcashWithdrawalGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t1000000,\r\n\t\t\t\t\t),\r\n\t\t\t\t},\r\n\t\t\t\tgcashStandardCashIn: {\r\n\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\tdata.gcashStandardCashInWithdrawalGatewaySettings?.androidEnabled ??\r\n\t\t\t\t\t\tfalse,\r\n\t\t\t\t\tiosEnabled:\r\n\t\t\t\t\t\tdata.gcashStandardCashInWithdrawalGatewaySettings?.iosEnabled ??\r\n\t\t\t\t\t\tfalse,\r\n\t\t\t\t\twebEnabled:\r\n\t\t\t\t\t\tdata.gcashStandardCashInWithdrawalGatewaySettings?.webEnabled ??\r\n\t\t\t\t\t\tfalse,\r\n\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\tdata.gcashStandardCashInWithdrawalGatewaySettings\r\n\t\t\t\t\t\t\t?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.gcashStandardCashInWithdrawalGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.gcashStandardCashInWithdrawalGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t1000000,\r\n\t\t\t\t\t),\r\n\t\t\t\t},\r\n\t\t\t\tmaya: {\r\n\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\tdata.mayaWithdrawalGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled: data.mayaWithdrawalGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled: data.mayaWithdrawalGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\tdata.mayaWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.mayaWithdrawalGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.mayaWithdrawalGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t),\r\n\t\t\t\t},\r\n\t\t\t\tmayaApp: {\r\n\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\tdata.mayaAppWithdrawalGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled:\r\n\t\t\t\t\t\tdata.mayaAppWithdrawalGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled:\r\n\t\t\t\t\t\tdata.mayaAppWithdrawalGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\tdata.mayaAppWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.mayaAppWithdrawalGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.mayaAppWithdrawalGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t1000000,\r\n\t\t\t\t\t),\r\n\t\t\t\t},\r\n\t\t\t\tinstapay: {\r\n\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\tdata.instapayWithdrawalGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled:\r\n\t\t\t\t\t\tdata.instapayWithdrawalGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled:\r\n\t\t\t\t\t\tdata.instapayWithdrawalGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\tdata.instapayWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.instapayWithdrawalGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.instapayWithdrawalGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t1000000,\r\n\t\t\t\t\t),\r\n\t\t\t\t},\r\n\t\t\t\tmanualBank: {\r\n\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\tdata.manualBankWithdrawalGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled:\r\n\t\t\t\t\t\tdata.manualBankWithdrawalGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled:\r\n\t\t\t\t\t\tdata.manualBankWithdrawalGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\tdata.manualBankWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.manualBankWithdrawalGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.manualBankWithdrawalGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t1000000,\r\n\t\t\t\t\t),\r\n\t\t\t\t},\r\n\t\t\t\tmanualUPI: {\r\n\t\t\t\t\tandroidEnabled:\r\n\t\t\t\t\t\tdata.manualUPIWithdrawalGatewaySettings?.androidEnabled ?? false,\r\n\t\t\t\t\tiosEnabled:\r\n\t\t\t\t\t\tdata.manualUPIWithdrawalGatewaySettings?.iosEnabled ?? false,\r\n\t\t\t\t\twebEnabled:\r\n\t\t\t\t\t\tdata.manualUPIWithdrawalGatewaySettings?.webEnabled ?? false,\r\n\t\t\t\t\tmobileWebEnabled:\r\n\t\t\t\t\t\tdata.manualUPIWithdrawalGatewaySettings?.mobileWebEnabled ?? false,\r\n\t\t\t\t\tminimumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.manualUPIWithdrawalGatewaySettings?.minimumAmount,\r\n\t\t\t\t\t),\r\n\t\t\t\t\tmaximumAmount: parseDecimal(\r\n\t\t\t\t\t\tdata.manualUPIWithdrawalGatewaySettings?.maximumAmount,\r\n\t\t\t\t\t\t1000000,\r\n\t\t\t\t\t),\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t};\r\n\t}\r\n\r\n\tprivate account(\r\n\t\tdata: Internal.MemberAccount & Internal.Member,\r\n\t): External.Account {\r\n\t\tconst o: External.Account = {\r\n\t\t\tid: data.id,\r\n\t\t\tname: data.name,\r\n\t\t\tstatus: data.status,\r\n\t\t\tverified: data.verified,\r\n\t\t\tnickName: data.nickName ?? undefined,\r\n\t\t\trealName: data.realName ?? undefined,\r\n\t\t\tdateOfBirth: data.birthDay ? new Date(data.birthDay) : undefined,\r\n\t\t\temailAddress: data.emailAddress ?? undefined,\r\n\t\t\tmobileNumber: data.mobileNumber ?? undefined,\r\n\t\t\tmobileNumberVerified: data.mobileNumberVerified ?? false,\r\n\t\t\tmobileNumberVerificationRequired:\r\n\t\t\t\tdata.mobileNumberVerificationRequired ?? false,\r\n\t\t\tvalidId: data.validId || undefined,\r\n\t\t\tverificationStatus: data.verificationStatus,\r\n\t\t\ttransactionPassword: data.transactionPassword,\r\n\t\t\tsecretAnswerSubmitted: data.secretAnswerSubmitted ?? false,\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\r\n\t\t\tcurrentActiveDaysCount: data.currentActiveDaysCount,\r\n\t\t\tcurrentBetsCount: data.currentBetsCount,\r\n\t\t\tcurrentNewGamesCount: data.currentNewGamesCount,\r\n\t\t\tcurrentAchievements: data.currentAchievements,\r\n\t\t\tcurrentUniqueGamesCount: data.currentUniqueGamesCount,\r\n\t\t\tdateTimeLastLeveledUp: new Date(data.dateTimeLastLeveledUp),\r\n\t\t\tcurrentMonthlyAchievementPoints: data.currentMonthlyAchievementPoints,\r\n\t\t\tachievementPointsLevelUpProgressPercentage:\r\n\t\t\t\tdata.achievementPointsLevelUpProgressPercentage,\r\n\t\t\tcurrentMonthlyTurnover: data.currentMonthlyTurnover,\r\n\t\t\tturnoverLevelUpProgressPercentage: data.turnoverLevelUpProgressPercentage,\r\n\t\t\tgoogleId: data.googleId,\r\n\t\t\tdomain: data.domain ?? null,\r\n\t\t\tbranchCode: data.branchCode ?? undefined,\r\n\t\t\tagent: data.agent ?? null,\r\n\t\t\tlevel: data.level ?? 0,\r\n\t\t\tdateTimeLastActive: data.dateTimeLastActive\r\n\t\t\t\t? new Date(data.dateTimeLastActive)\r\n\t\t\t\t: undefined,\r\n\t\t\tpartition: data.partition,\r\n\t\t\tgigRewardsQuestDetails: data.gigRewardsQuestDetails ?? undefined,\r\n\t\t\tbonusBlocked: data.bonusBlocked ?? false,\r\n\t\t\tdailyBetLimit: parseDecimal(data.dailyBetLimit),\r\n\t\t\tmonthlyBetLimit: parseDecimal(data.monthlyBetLimit),\r\n\t\t\tdailyDepositLimit: parseDecimal(data.dailyDepositLimit),\r\n\t\t\tmonthlyDepositLimit: parseDecimal(data.monthlyDepositLimit),\r\n\t\t\tnewDailyBetLimit: parseDecimal(data.newDailyBetLimit),\r\n\t\t\tnewMonthlyBetLimit: parseDecimal(data.newMonthlyBetLimit),\r\n\t\t\tnewDailyDepositLimit: parseDecimal(data.newDailyDepositLimit),\r\n\t\t\tnewMonthlyDepositLimit: parseDecimal(data.newMonthlyDepositLimit),\r\n\t\t\tcellxpertDetails: data.cellxpertDetails ?? null,\r\n\t\t};\r\n\r\n\t\treturn compact(o);\r\n\t}\r\n\r\n\tprivate wallet(data: Internal.Wallet): External.Wallet {\r\n\t\tconst o: External.Wallet = {\r\n\t\t\tid: data.id,\r\n\t\t\tbalance: parseDecimal(data.balance, 0),\r\n\t\t\tturnoverRequirement: parseDecimal(data.turnoverRequirement),\r\n\t\t};\r\n\r\n\t\treturn o;\r\n\t}\r\n\r\n\tprivate walletAccount(\r\n\t\tdata: Internal.MemberWalletAccount,\r\n\t): External.MemberWalletAccount {\r\n\t\tconst o: External.MemberWalletAccount = {\r\n\t\t\tid: data.id,\r\n\t\t\tdailyTotalBet: parseDecimal(data.dailyTotalBet, 0),\r\n\t\t\tmonthlyTotalBet: parseDecimal(data.monthlyTotalBet, 0),\r\n\t\t\tdailyTotalDeposit: parseDecimal(data.dailyTotalDeposit, 0),\r\n\t\t\tmonthlyTotalDeposit: parseDecimal(data.monthlyTotalDeposit, 0),\r\n\t\t};\r\n\r\n\t\treturn o;\r\n\t}\r\n\r\n\tprivate verificationDetails(\r\n\t\tdata: Internal.MemberVerification,\r\n\t): External.VerificationDetails {\r\n\t\tconst o: External.VerificationDetails = {\r\n\t\t\tid: data.id,\r\n\t\t\tstatus: data.status,\r\n\t\t\taddress: data.address,\r\n\t\t\tpermanentAddress: data.permanentAddress,\r\n\t\t\tnationality: data.nationality,\r\n\t\t\tnatureOfWork: data.natureOfWork,\r\n\t\t\tplaceOfBirth: data.placeOfBirth,\r\n\t\t\tsourceOfIncome: data.sourceOfIncome,\r\n\t\t\tselfieImage: data?.selfieImage\r\n\t\t\t\t? (this.file(data?.selfieImage) as External.File)\r\n\t\t\t\t: null,\r\n\t\t\tidFrontImage: data?.idFrontImage\r\n\t\t\t\t? (this.file(data?.idFrontImage) as External.File)\r\n\t\t\t\t: null,\r\n\t\t};\r\n\r\n\t\treturn o;\r\n\t}\r\n\r\n\tprivate profileCompletion(\r\n\t\tdata: Internal.ProfileCompletion,\r\n\t): External.ProfileCompletion {\r\n\t\tconst o: External.ProfileCompletion = {\r\n\t\t\taccountPassword: data.accountPassword ?? false,\r\n\t\t\taccountVerification: data.accountVerification ?? false,\r\n\t\t\tmobileNumberVerification: data.mobileNumberVerification ?? false,\r\n\t\t\tpersonalInformation: data.personalInformation ?? false,\r\n\t\t\ttransactionPassword: data.transactionPassword ?? false,\r\n\t\t\tcompletionPercentage: parseDecimal(data.completionPercentage, 0),\r\n\t\t};\r\n\r\n\t\treturn o;\r\n\t}\r\n\r\n\tprivate announcement(data: Internal.Announcement): External.Announcement {\r\n\t\tconst o: External.Announcement = {\r\n\t\t\tid: data.id,\r\n\t\t\ttype: data.type,\r\n\t\t\ttitle: data.title,\r\n\t\t\tstatus: data.status,\r\n\t\t\tmessage: data.message,\r\n\t\t\tactivationEndDateTime: new Date(data.activationEndDateTime),\r\n\t\t\tactivationStartDateTime: new Date(data.activationStartDateTime),\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\r\n\t\t};\r\n\r\n\t\treturn o;\r\n\t}\r\n\r\n\tprivate withdrawalRecord(\r\n\t\tdata: Internal.WithdrawalRecord,\r\n\t): External.WithdrawalRecord {\r\n\t\tconst o = {\r\n\t\t\tid: data.id,\r\n\t\t\ttype: data.type,\r\n\t\t\tbank: data.bank!,\r\n\t\t\tbankName: data.bankName ?? undefined,\r\n\t\t\tstatus: data.status,\r\n\t\t\tamount: parseDecimal(data.amount, 0),\r\n\t\t\tnetAmount: parseDecimal(data.netAmount, 0),\r\n\t\t\tfee: parseDecimal(data.fee, 0),\r\n\t\t\treference: data.reference ?? undefined,\r\n\t\t\taccountName: data.accountName ?? undefined,\r\n\t\t\terror: data.error ?? undefined,\r\n\t\t\twithdrawalNumber: data.withdrawalNumber,\r\n\t\t\tserialCode: data.serialCode,\r\n\t\t\trecipientMobileNumber: data.recipientMobileNumber ?? undefined,\r\n\t\t\tdateTimeConfirmed: data.dateTimeConfirmed\r\n\t\t\t\t? new Date(data.dateTimeConfirmed)\r\n\t\t\t\t: undefined,\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\r\n\t\t} as External.WithdrawalRecord;\r\n\r\n\t\treturn compact(o);\r\n\t}\r\n\r\n\tprivate deposit(data: Internal.Deposit): External.Deposit {\r\n\t\tconst o: External.Deposit = {\r\n\t\t\tid: data.id,\r\n\t\t\ttype: data.type,\r\n\t\t\tstatus: data.status,\r\n\t\t\tvca: data.vca ?? undefined,\r\n\t\t\tqrCode: data.qrCode ?? undefined,\r\n\t\t\tcheckoutUrl: data.checkoutUrl ?? undefined,\r\n\t\t\terror: data.error ?? undefined,\r\n\t\t} as External.Deposit;\r\n\r\n\t\treturn compact(o);\r\n\t}\r\n\r\n\tprivate depositRecord(data: Internal.DepositRecord): External.DepositRecord {\r\n\t\tconst o: External.DepositRecord = {\r\n\t\t\tid: data.id,\r\n\t\t\ttype: data.type,\r\n\t\t\tstatus: data.status,\r\n\t\t\tamount: parseDecimal(data.amount, 0),\r\n\t\t\tfee: parseDecimal(data.fee, 0),\r\n\t\t\tnetAmount: parseDecimal(data.netAmount, 0),\r\n\t\t\treference: data.reference ?? undefined,\r\n\t\t\tdeposit: data.deposit,\r\n\t\t\tdepositNumber: data.depositNumber,\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\r\n\t\t\terror: data.error ?? undefined,\r\n\t\t};\r\n\r\n\t\treturn compact(o);\r\n\t}\r\n\r\n\tprivate betRecord(\r\n\t\tdata: Assign<Internal.BetRecord, { game?: Internal.Game }>,\r\n\t): External.BetRecord {\r\n\t\tconst o: External.BetRecord = {\r\n\t\t\tid: data.id,\r\n\t\t\tbet: parseDecimal(data.bet, 0),\r\n\t\t\tpayout: parseDecimal(data.payout, 0),\r\n\t\t\todds: data.odds,\r\n\t\t\tstatus: data.status,\r\n\t\t\tjackpotContribution: parseDecimal(data.jackpotContribution, 0),\r\n\t\t\tjackpotPayout: parseDecimal(data.jackpotPayout, 0),\r\n\t\t\twinloss: parseDecimal(data.winloss),\r\n\t\t\tvalidBet: parseDecimal(data.validBet, 0),\r\n\t\t\tvendorRoundId: data.vendorRoundId ?? undefined,\r\n\t\t\tgame: data.game ? this.game(data.game) : undefined,\r\n\t\t\tserialCode: data.serialCode,\r\n\t\t\tdateTimeSettled: data.dateTimeSettled\r\n\t\t\t\t? new Date(data.dateTimeSettled)\r\n\t\t\t\t: undefined,\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\r\n\t\t\tbetContent: data.betContent ?? undefined,\r\n\t\t\tcontestName: data.contestName ?? undefined,\r\n\t\t\texternalCategory: data.externalCategory ?? undefined,\r\n\t\t\tfreeBetPayout: parseDecimal(data.freeBetPayout, 0),\r\n\t\t\tfreeBetDrop: data.freeBetDrop\r\n\t\t\t\t? this.freeBetDrops(data.freeBetDrop)\r\n\t\t\t\t: undefined,\r\n\t\t\tmetadata: {\r\n\t\t\t\todds: data.metadata?.odds ?? undefined,\r\n\t\t\t},\r\n\t\t};\r\n\r\n\t\treturn compact(o);\r\n\t}\r\n\r\n\tprivate freeBetDrops(data: Internal.FreeBetDrop): External.FreeBetDrop {\r\n\t\tconst o: External.FreeBetDrop = {\r\n\t\t\tid: data.id,\r\n\t\t\tbets: parseDecimal(data.bets, 0),\r\n\t\t\tpayout: data.payout,\r\n\t\t\tactivationDateTime: new Date(data.activationDateTime),\r\n\t\t\texpirationDateTime: new Date(data.expirationDateTime),\r\n\t\t\tbetValue: data.betValue,\r\n\t\t\tremainingBets: parseDecimal(data.remainingBets, 0),\r\n\t\t\tname: data.name,\r\n\t\t\tdescription: data.description,\r\n\t\t\tgames: data.games,\r\n\t\t\tstatus: data.status,\r\n\t\t\tgameProvider: data.gameProvider,\r\n\t\t\tdateTimeCompleted: data.dateTimeCompleted\r\n\t\t\t\t? new Date(data.dateTimeCompleted)\r\n\t\t\t\t: undefined,\r\n\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\r\n\t\t};\r\n\t\treturn compact(o);\r\n\t}\r\n\r\n\tprivate memberFreeBetDrops(\r\n\t\tdata: Internal.MemberFreeBetDrop,\r\n\t): External.MemberFreeBetDrop {\r\n\t\tconst o: External.MemberFreeBetDrop = {\r\n\t\t\tid: data.id,\r\n\t\t\tbets: parseDecimal(data.bets, 0),\r\n\t\t\tpayout: data.payout,\r\n\t\t\tactivationDateTime: new Date(data.activationDateTime),\r\n\t\t\texpirationDateTime: new Date(data.expirationDateTime),\r\n\t\t\tbetValue: data.betValue,\r\n\t\t\tremainingBets: parseDecimal(data.remainingBets, 0),\r\n\t\t\tname: data.name,\r\n\t\t\tgameProvider: data.gameProvider,\r\n\t\t\tdescription: data.description,\r\n\t\t\tgames: data.games,\r\n\t\t\tstatus: data.status,\r\n\r\n\t\t\tdateTimeCompleted: data.dateTimeCompleted\r\n\t\t\t\t? new Date(data.dateTimeCompleted)\r\n\t\t\t\t: undefined,\r\n\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\r\n\t\t\tserialCode: data.serialCode,\r\n\t\t};\r\n\t\treturn compact(o);\r\n\t}\r\n\r\n\tprivate latestBetRecord(\r\n\t\tdata: Assign<Internal.LatestBetRecord, { game?: Internal.Game }>,\r\n\t): External.LatestBetRecord {\r\n\t\tconst o: External.LatestBetRecord = {\r\n\t\t\tid: data.id,\r\n\t\t\tmember: data.member,\r\n\t\t\tgame: data.game ? this.game(data.game) : undefined,\r\n\t\t\tbet: parseDecimal(data.bet, 0),\r\n\t\t\tpayout: parseDecimal(data.payout, 0),\r\n\t\t\tvalidBet: parseDecimal(data.validBet, 0),\r\n\t\t\tdateTimeSettled: new Date(data.dateTimeSettled),\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t};\r\n\r\n\t\treturn o;\r\n\t}\r\n\r\n\tprivate transactionRecord(\r\n\t\tdata: Internal.TransactionRecord,\r\n\t): External.TransactionRecord {\r\n\t\tconst o: External.TransactionRecord = {\r\n\t\t\tid: data.id,\r\n\t\t\ttype: data.type,\r\n\t\t\tamount: parseDecimal(data.amount, 0),\r\n\t\t\tcontent: data.content ?? undefined,\r\n\t\t\tcurrentBalance: parseDecimal(data.currentBalance, 0),\r\n\t\t\tcurrentBonusBalance: parseDecimal(data.currentBonusBalance, 0),\r\n\t\t\treferenceNumber: data.referenceNumber,\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t};\r\n\r\n\t\treturn compact(o);\r\n\t}\r\n\r\n\tprivate game(data: Internal.Game): External.Game {\r\n\t\tconst images = [data.customImage, data.image].filter(Boolean).map((url) => {\r\n\t\t\tinvariant(url);\r\n\r\n\t\t\treturn url.includes('?')\r\n\t\t\t\t? `${url}&cache_id=${IMAGE_CACHE_ID}`\r\n\t\t\t\t: `${url}?cache_id=${IMAGE_CACHE_ID}`;\r\n\t\t});\r\n\r\n\t\tconst o: External.Game = {\r\n\t\t\tid: data.id,\r\n\t\t\ttype: data.type,\r\n\t\t\ttags: data.tags ?? [],\r\n\t\t\tname: data.name,\r\n\t\t\timages,\r\n\t\t\tprovider: data.provider,\r\n\t\t\treference: data.reference,\r\n\t\t\tfavorite: data.favorite,\r\n\t\t};\r\n\r\n\t\treturn o;\r\n\t}\r\n\r\n\tprivate gameSession(data: Internal.GameSession): External.GameSession {\r\n\t\tconst o = {\r\n\t\t\tid: data.id,\r\n\t\t\tstatus: data.status,\r\n\t\t\tlaunchUrl: data.launchUrl ?? undefined,\r\n\t\t\tlaunchOptions: data?.launchOptions ?? undefined,\r\n\t\t} as External.GameSession;\r\n\r\n\t\treturn compact(o);\r\n\t}\r\n\r\n\tprivate promo(data: Internal.Promo): External.Promo {\r\n\t\treturn {\r\n\t\t\tid: data.id,\r\n\t\t\ttype: data.type,\r\n\t\t\tname: data.name,\r\n\t\t\tstatus: data.status,\r\n\t\t\tdescription: data.description,\r\n\t\t\tbanner: !data.banner\r\n\t\t\t\t? null\r\n\t\t\t\t: (this.file(data.banner) as Extract<\r\n\t\t\t\t\t\tExternal.File,\r\n\t\t\t\t\t\t{ status: 'READY' }\r\n\t\t\t\t\t>),\r\n\t\t\tmaximumBonusAmount: parseDecimal(data.maximumBonusAmount),\r\n\t\t\tminimumBonusAmount: parseDecimal(data.minimumBonusAmount),\r\n\t\t\tmaximumDepositAmount: parseDecimal(data.maximumDepositAmount),\r\n\t\t\tminimumDepositAmount: parseDecimal(data.minimumDepositAmount),\r\n\t\t\tdepositBonusAmountPercentage: parseDecimal(\r\n\t\t\t\tdata.depositBonusAmountPercentage,\r\n\t\t\t),\r\n\t\t\tturnoverRequirementContributionPercentagePerGameProvider:\r\n\t\t\t\tdata.turnoverRequirementContributionPercentagePerGameProvider,\r\n\t\t\tactivationEndDateTime: new Date(data.activationEndDateTime),\r\n\t\t\tactivationStartDateTime: new Date(data.activationStartDateTime),\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\r\n\t\t};\r\n\t}\r\n\r\n\tprivate cashback(data: Internal.Cashback): External.Cashback {\r\n\t\tconst o: External.Cashback = {\r\n\t\t\tid: data.id,\r\n\t\t\tname: data.name,\r\n\t\t\tdescription: data.description,\r\n\t\t\tstatus: data.status,\r\n\t\t\tminimumCashback: parseDecimal(data.minimumCashback, 0),\r\n\t\t\tmaximumMonthlyCashback: parseDecimal(data.maximumMonthlyCashback),\r\n\t\t\tbanner: !data.banner\r\n\t\t\t\t? null\r\n\t\t\t\t: (this.file(data.banner) as Extract<\r\n\t\t\t\t\t\tExternal.File,\r\n\t\t\t\t\t\t{ status: 'READY' }\r\n\t\t\t\t\t>),\r\n\t\t\tactivationEndDateTime: new Date(data.activationEndDateTime),\r\n\t\t\tactivationStartDateTime: new Date(data.activationStartDateTime),\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\r\n\t\t\tturnoverContributionPercentagePerGameProvider: Object.entries(\r\n\t\t\t\tdata.turnoverContributionPercentagePerGameProvider,\r\n\t\t\t).reduce<Partial<Record<External.GameProvider, number>>>((o, [k, v]) => {\r\n\t\t\t\to[k as External.GameProvider] = parseDecimal(v, 0);\r\n\t\t\t\treturn o;\r\n\t\t\t}, {}),\r\n\t\t};\r\n\r\n\t\treturn o;\r\n\t}\r\n\r\n\tprivate bonus(data: Internal.Bonus): External.Bonus {\r\n\t\tconst o: External.Bonus = {\r\n\t\t\tid: data.id,\r\n\t\t\tpromo: this.promo(data.promo),\r\n\t\t\tdeposit: !data.deposit\r\n\t\t\t\t? undefined\r\n\t\t\t\t: {\r\n\t\t\t\t\t\ttype: data.deposit.type,\r\n\t\t\t\t\t\tstatus: data.deposit.status,\r\n\t\t\t\t\t\tfee: parseDecimal(data.deposit.fee, 0),\r\n\t\t\t\t\t\tamount: parseDecimal(data.deposit.amount, 0),\r\n\t\t\t\t\t\tnetAmount: parseDecimal(data.deposit.netAmount, 0),\r\n\t\t\t\t\t\treference: data.deposit.reference ?? undefined,\r\n\t\t\t\t\t\tdateTimeCreated: new Date(data.deposit.dateTimeCreated),\r\n\t\t\t\t\t\tdateTimeLastUpdated: new Date(data.deposit.dateTimeLastUpdated),\r\n\t\t\t\t\t},\r\n\t\t\tbalance: parseDecimal(data.balance, 0),\r\n\t\t\tamount: parseDecimal(data.amount, 0),\r\n\t\t\texpiration: new Date(data.expiration),\r\n\t\t\tturnoverRequirement: parseDecimal(data.turnoverRequirement, 0),\r\n\t\t\tcurrentTurnoverRequirementContribution: parseDecimal(\r\n\t\t\t\tdata.currentTurnoverRequirementContribution,\r\n\t\t\t\t0,\r\n\t\t\t),\r\n\t\t\tcurrentTurnoverRequirementContributionPercentage: parseDecimal(\r\n\t\t\t\tdata.currentTurnoverRequirementContributionPercentage,\r\n\t\t\t\t0,\r\n\t\t\t),\r\n\t\t\t// @ts-expect-error \"\"\r\n\t\t\tturnoverRequirementContributionPercentagePerGameProvider:\r\n\t\t\t\tdata.turnoverRequirementContributionPercentagePerGameProvider,\r\n\t\t\tenabledGameProviders: data.enabledGameProviders,\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\r\n\t\t};\r\n\r\n\t\treturn compact(o);\r\n\t}\r\n\r\n\tprivate cashbackBonus(data: Internal.CashbackBonus): External.CashbackBonus {\r\n\t\tconst o: External.CashbackBonus = {\r\n\t\t\tid: data.id,\r\n\t\t\ttotal: parseDecimal(data.total, 0),\r\n\t\t\tbalance: parseDecimal(data.balance, 0),\r\n\t\t\tcashback: this.cashback(data.cashback),\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\r\n\t\t};\r\n\r\n\t\treturn o;\r\n\t}\r\n\r\n\tprivate memberCabinetSiteMachine(\r\n\t\tdata: Internal.CabinetSiteMachine,\r\n\t): External.CabinetSiteMachine {\r\n\t\tconst o: External.CabinetSiteMachine = {\r\n\t\t\tid: data.id,\r\n\t\t\tname: data.name,\r\n\t\t\tfingerprint: data.fingerprint,\r\n\t\t\tstatus: data.status,\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t};\r\n\r\n\t\treturn o;\r\n\t}\r\n\r\n\tprivate file(data: Internal.File): External.File {\r\n\t\tconst o = {\r\n\t\t\tid: data.id,\r\n\t\t\turl: data.url ?? undefined,\r\n\t\t\tstatus: data.status,\r\n\t\t} as External.File;\r\n\r\n\t\treturn compact(o);\r\n\t}\r\n\r\n\tprivate pointsWallet(data: Internal.PointsWallet): External.PointsWallet {\r\n\t\tconst o: External.PointsWallet = {\r\n\t\t\tid: data.id,\r\n\t\t\tpoints: parseDecimal(data.points, 0),\r\n\t\t\taccount: data.account,\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t};\r\n\r\n\t\treturn o;\r\n\t}\r\n\r\n\tprivate pointsWalletTransaction(\r\n\t\tdata: Internal.PointsWalletTransaction,\r\n\t): External.PointsWalletTransaction {\r\n\t\tconst o: External.PointsWalletTransaction = {\r\n\t\t\tid: data.id,\r\n\t\t\ttype: data.type,\r\n\t\t\tamount: parseDecimal(data.amount, 0),\r\n\t\t\tbalance: parseDecimal(data.balance, 0),\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t};\r\n\r\n\t\treturn o;\r\n\t}\r\n\r\n\tprivate rebate(data: Internal.Rebate): External.Rebate {\r\n\t\tconst o: External.Rebate = {\r\n\t\t\tid: data.id,\r\n\t\t\trebateProgram: {\r\n\t\t\t\tid: data.rebateProgram.id,\r\n\t\t\t\tbanner: data.rebateProgram.banner\r\n\t\t\t\t\t? {\r\n\t\t\t\t\t\t\tid: data.rebateProgram.banner.id,\r\n\t\t\t\t\t\t\turl: data.rebateProgram.banner.url ?? undefined,\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t: undefined,\r\n\t\t\t\tdescription: data.rebateProgram.description,\r\n\t\t\t\tname: data.rebateProgram.name,\r\n\t\t\t\trebatePercentage: parseDecimal(data.rebateProgram.rebatePercentage),\r\n\t\t\t\trebateSettingsPerMemberLevel:\r\n\t\t\t\t\tdata.rebateProgram.rebateSettingsPerMemberLevel?.map((settings) => ({\r\n\t\t\t\t\t\tlevel: settings.level,\r\n\t\t\t\t\t\tpercentage: parseDecimal(settings.percentage, 0),\r\n\t\t\t\t\t})),\r\n\t\t\t\ttype: data.rebateProgram.type,\r\n\t\t\t\tdateTimeCreated: data.rebateProgram.dateTimeCreated\r\n\t\t\t\t\t? new Date(data.rebateProgram.dateTimeCreated)\r\n\t\t\t\t\t: undefined,\r\n\t\t\t},\r\n\t\t\tamount: parseDecimal(data.amount, 0),\r\n\t\t\tpercentage: parseDecimal(data.percentage),\r\n\t\t\tstatus: data.status,\r\n\t\t\texpirationDateTime: data.expirationDateTime\r\n\t\t\t\t? new Date(data.expirationDateTime)\r\n\t\t\t\t: undefined,\r\n\t\t\tdateTimeClaimed: data.dateTimeClaimed\r\n\t\t\t\t? new Date(data.dateTimeClaimed)\r\n\t\t\t\t: undefined,\r\n\t\t\tdateTimeExpired: data.dateTimeExpired\r\n\t\t\t\t? new Date(data.dateTimeExpired)\r\n\t\t\t\t: undefined,\r\n\t\t\tendDateTime: data.endDateTime ? new Date(data.endDateTime) : undefined,\r\n\t\t\tstartDateTime: data.startDateTime\r\n\t\t\t\t? new Date(data.startDateTime)\r\n\t\t\t\t: undefined,\r\n\r\n\t\t\tdateTimeCreated: data.dateTimeCreated\r\n\t\t\t\t? new Date(data.dateTimeCreated)\r\n\t\t\t\t: undefined,\r\n\t\t};\r\n\r\n\t\treturn compact(o);\r\n\t}\r\n\r\n\tprivate achievementPointsHistoryRecord(\r\n\t\tdata: Internal.AchievementPointsHistoryRecord,\r\n\t): External.AchievementPointsHistoryRecord {\r\n\t\tconst o: External.AchievementPointsHistoryRecord = {\r\n\t\t\tid: data.id,\r\n\t\t\ttype: data.type,\r\n\t\t\tpoints: parseDecimal(data.points, 0),\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t};\r\n\r\n\t\treturn o;\r\n\t}\r\n\r\n\tprivate activityRecord(\r\n\t\tdata: Internal.ActivityRecord,\r\n\t): External.ActivityRecord {\r\n\t\tconst o: External.ActivityRecord = {\r\n\t\t\tid: data.id,\r\n\t\t\ttype: data.type,\r\n\t\t\tamount: data.amount ? parseDecimal(data.amount, 0) : undefined,\r\n\t\t\tdomain: data.domain ?? undefined,\r\n\t\t\tdetails: data.details,\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t};\r\n\r\n\t\treturn compact(o);\r\n\t}\r\n\r\n\tprivate referral(data: Internal.Referral): External.Referral {\r\n\t\tconst o: External.Referral = {\r\n\t\t\tid: data.id,\r\n\t\t\tlevel: data.level,\r\n\t\t\tupline: data.upline,\r\n\t\t\tdownline: data.downline,\r\n\t\t\tturnover: parseDecimal(data.turnover, 0),\r\n\t\t\tcommission: parseDecimal(data.commission, 0),\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t\tqualified: data.qualified,\r\n\t\t};\r\n\r\n\t\treturn o;\r\n\t}\r\n\r\n\tprivate referralCommission(\r\n\t\tdata: Internal.ReferralCommission,\r\n\t): External.ReferralCommission {\r\n\t\tconst o: External.ReferralCommission = {\r\n\t\t\tid: data.id,\r\n\t\t\tcommission: parseDecimal(data.commission, 0),\r\n\t\t\tlevel1Commission: parseDecimal(data.level1Commission, 0),\r\n\t\t\tlevel2Commission: parseDecimal(data.level2Commission, 0),\r\n\t\t\tlevel3Commission: parseDecimal(data.level3Commission, 0),\r\n\t\t\treferralsCount: data.referralsCount,\r\n\t\t\tlevel1ReferralsCount: data.level1ReferralsCount,\r\n\t\t\tlevel2ReferralsCount: data.level2ReferralsCount,\r\n\t\t\tlevel3ReferralsCount: data.level3ReferralsCount,\r\n\t\t\treferralCode: data.referralCode,\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\r\n\t\t};\r\n\r\n\t\treturn o;\r\n\t}\r\n\r\n\tprivate message(data: Internal.Message): External.Message {\r\n\t\treturn {\r\n\t\t\tid: data.id,\r\n\t\t\ticon: data.icon,\r\n\t\t\tlogo: data.logo,\r\n\t\t\timage: data.image,\r\n\t\t\ttitle: data.title,\r\n\t\t\tpopup: data.popup,\r\n\t\t\tforce: data.force,\r\n\t\t\tcontent: data.content,\r\n\t\t\tactions: data.actions,\r\n\t\t\tmarkedAsRead: data.markedAsRead,\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t\ttype: data.type,\r\n\t\t\tmetadata: !data.metadata\r\n\t\t\t\t? null\r\n\t\t\t\t: {\r\n\t\t\t\t\t\ttournament: data.metadata.tournament,\r\n\t\t\t\t\t\tpayout: {\r\n\t\t\t\t\t\t\tid: data.metadata.payout.id,\r\n\t\t\t\t\t\t\tamount: parseDecimal(data.metadata.payout.amount, 0),\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t},\r\n\t\t};\r\n\t}\r\n\r\n\tprivate instapayBank(data: Internal.InstapayBank): External.InstapayBank {\r\n\t\treturn data;\r\n\t}\r\n\r\n\tprivate promoByCode(data: Internal.SpotBonusPromo): External.SpotBonusPromo {\r\n\t\treturn {\r\n\t\t\tactiveBonusesCount: data.activeBonusesCount,\r\n\t\t\tbonusesCount: data.bonusesCount,\r\n\t\t\tcancelledBonusesCount: data.cancelledBonusesCount,\r\n\t\t\tclearedBonusesCount: data.clearedBonusesCount,\r\n\t\t\tclosedBonusesCount: data.closedBonusesCount,\r\n\t\t\tclosedBonusesCountPercentage: parseDecimal(\r\n\t\t\t\tdata.closedBonusesCountPercentage,\r\n\t\t\t\t0,\r\n\t\t\t),\r\n\t\t\tcode: data.code,\r\n\t\t\tdaysToClear: data.daysToClear,\r\n\t\t\tenabledGameProviders: data.enabledGameProviders,\r\n\t\t\tid: data.id,\r\n\t\t\texpiredBonusesCount: data.expiredBonusesCount,\r\n\t\t\tmaximumBonusesCountLimit: data.maximumBonusesCountLimit,\r\n\t\t\tname: data.name,\r\n\t\t\tstatus: data.status,\r\n\t\t\ttotalBet: parseDecimal(data.totalBet, 0),\r\n\t\t\ttotalBonus: parseDecimal(data.totalBonus, 0),\r\n\t\t\ttotalBonusBalance: parseDecimal(data.totalBonusBalance, 0),\r\n\t\t\ttotalBonusCashedOut: parseDecimal(data.totalBonusCashedOut, 0),\r\n\t\t\ttotalDeposit: parseDecimal(data.totalDeposit, 0),\r\n\t\t\tturnoverRequirementMultiplier: parseDecimal(\r\n\t\t\t\tdata.turnoverRequirementMultiplier,\r\n\t\t\t\t0,\r\n\t\t\t),\r\n\t\t\ttype: data.type,\r\n\t\t\tzeroedOutBonusesCount: data.zeroedOutBonusesCount,\r\n\t\t\tzeroOutThreshold: parseDecimal(data.zeroOutThreshold, 0),\r\n\t\t\tbonusAmount: parseDecimal(data.bonusAmount, 0),\r\n\t\t\tdescription: data.description,\r\n\t\t\tturnoverRequirementType: data.turnoverRequirementType,\r\n\t\t\tactivationEndDateTime: data.activationEndDateTime\r\n\t\t\t\t? new Date(data.activationEndDateTime)\r\n\t\t\t\t: undefined,\r\n\t\t\tactivationStartDateTime: data.activationStartDateTime\r\n\t\t\t\t? new Date(data.activationStartDateTime)\r\n\t\t\t\t: undefined,\r\n\t\t\tdateTimeClosed: data.dateTimeClosed\r\n\t\t\t\t? new Date(data.dateTimeClosed)\r\n\t\t\t\t: undefined,\r\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t\tturnoverRequirementContributionPercentagePerGameProvider: Object.entries(\r\n\t\t\t\tdata.turnoverRequirementContributionPercentagePerGameProvider,\r\n\t\t\t).reduce<Partial<Record<External.GameProvider, number>>>((o, [k, v]) => {\r\n\t\t\t\to[k as External.GameProvider] = parseDecimal(v, 0);\r\n\t\t\t\treturn o;\r\n\t\t\t}, {}),\r\n\t\t\tminimumTicketOddFactorPerSportsGameProvider: Object.entries(\r\n\t\t\t\tdata.minimumTicketOddFactorPerSportsGameProvider,\r\n\t\t\t).reduce<Partial<Record<External.GameProvider, number>>>((o, [k, v]) => {\r\n\t\t\t\to[k as External.GameProvider] = parseDecimal(v, 0);\r\n\t\t\t\treturn o;\r\n\t\t\t}, {}),\r\n\t\t\tbanner: data.banner,\r\n\t\t};\r\n\t}\r\n\r\n\tprivate quest(data: Internal.Quest): External.Quest {\r\n\t\treturn {\r\n\t\t\tid: data.id,\r\n\t\t\tname: data.name,\r\n\t\t\tdescription: data.description,\r\n\t\t\tstatus: data.status,\r\n\t\t\tbonus: parseDecimal(data.bonus, 0),\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t\tendDateTime: new Date(data.endDateTime),\r\n\t\t\tprogram: {\r\n\t\t\t\ttype: data.program.type,\r\n\t\t\t\tname: data.program.name,\r\n\t\t\t\tdescription: data.program.description,\r\n\t\t\t\tstatus: data.program.status,\r\n\t\t\t\tstages:\r\n\t\t\t\t\tdata.program.stages?.map((stage) => ({\r\n\t\t\t\t\t\ttargetTurnover: parseDecimal(stage.targetTurnover, 0),\r\n\t\t\t\t\t\tbonusTurnoverRequirementMultiplier: parseDecimal(\r\n\t\t\t\t\t\t\tstage.bonusTurnoverRequirementMultiplier,\r\n\t\t\t\t\t\t\t0,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t\tbonusAmount: parseDecimal(stage.bonusAmount, 0),\r\n\t\t\t\t\t})) ?? [],\r\n\t\t\t},\r\n\t\t\tprogressPercentage: parseDecimal(data.progressPercentage, 0),\r\n\t\t\tturnover: parseDecimal(data.turnover, 0),\r\n\t\t\ttargetTurnover: data?.targetTurnover\r\n\t\t\t\t? parseDecimal(data.targetTurnover, 0)\r\n\t\t\t\t: undefined,\r\n\t\t\tcheckInStreak: data?.checkInStreak ?? undefined,\r\n\t\t\tlastCheckInDate: data?.lastCheckInDate\r\n\t\t\t\t? new Date(data.lastCheckInDate)\r\n\t\t\t\t: undefined,\r\n\t\t\tstartDateTime: data?.startDateTime\r\n\t\t\t\t? new Date(data.startDateTime)\r\n\t\t\t\t: undefined,\r\n\t\t\ttype: data.type,\r\n\t\t\tdateTimeCompleted: data.dateTimeCompleted\r\n\t\t\t\t? new Date(data.dateTimeCompleted)\r\n\t\t\t\t: undefined,\r\n\t\t\t...(data.type === 'WAGERING' && {\r\n\t\t\t\tstage: data.stage,\r\n\t\t\t\tturnoverRequirementContributionPercentagePerGameProvider:\r\n\t\t\t\t\tdata.turnoverRequirementContributionPercentagePerGameProvider,\r\n\t\t\t}),\r\n\t\t\t...(data.type === 'DAILY_CHECKIN' && {\r\n\t\t\t\tseventhDayBonusAmount: parseDecimal(data.seventhDayBonusAmount, 0),\r\n\t\t\t\tsixthDayBonusAmount: parseDecimal(data.sixthDayBonusAmount, 0),\r\n\t\t\t\tthirdDayBonusAmount: parseDecimal(data.thirdDayBonusAmount, 0),\r\n\t\t\t}),\r\n\r\n\t\t\t...(data.type === 'ONBOARDING' && {\r\n\t\t\t\tfirstDepositCompleted: data.firstDepositCompleted,\r\n\t\t\t\taccountVerificationCompleted: data.accountVerificationCompleted,\r\n\t\t\t}),\r\n\r\n\t\t\t...(data.type === 'JOURNEY' && {\r\n\t\t\t\tmilestones: data.milestones?.map((milestone) => ({\r\n\t\t\t\t\tid: milestone.id,\r\n\t\t\t\t\ttype: milestone.type,\r\n\t\t\t\t\tname: milestone.name,\r\n\t\t\t\t\tbonusAmount: parseDecimal(milestone.bonusAmount, 0),\r\n\t\t\t\t\tcleared: milestone.cleared ?? false,\r\n\t\t\t\t\tdescription: milestone?.description ?? undefined,\r\n\t\t\t\t\tlink: milestone?.link ?? undefined,\r\n\t\t\t\t})),\r\n\t\t\t}),\r\n\t\t};\r\n\t}\r\n\r\n\tprivate topWin(\r\n\t\tdata: Assign<Internal.TopWin, { game?: Internal.Game }>,\r\n\t): External.TopWin {\r\n\t\treturn {\r\n\t\t\tid: data.id,\r\n\t\t\tgame: data.game ? this.game(data.game) : undefined,\r\n\t\t\tmember: {\r\n\t\t\t\tid: data.member.id,\r\n\t\t\t\tname: data.member.name,\r\n\t\t\t},\r\n\t\t\tmultiplier: parseDecimal(data.multiplier, 0),\r\n\t\t\tpayout: parseDecimal(data.payout, 0),\r\n\t\t};\r\n\t}\r\n\r\n\tprivate jackpots(data: Internal.Jackpot): External.Jackpot {\r\n\t\treturn {\r\n\t\t\tid: data.id,\r\n\t\t\tname: data.name,\r\n\t\t\tdescription: data.description,\r\n\t\t\tpool: parseDecimal(data.pool, 0),\r\n\t\t\tstatus: data.status,\r\n\t\t\tminimumJackpotPoolDrawingLimit: parseDecimal(\r\n\t\t\t\tdata.minimumJackpotPoolDrawingLimit,\r\n\t\t\t\t0,\r\n\t\t\t),\r\n\t\t\tmaximumJackpotPoolLimit: parseDecimal(data.maximumJackpotPoolLimit, 0),\r\n\t\t\tdrawing: data.drawing,\r\n\t\t\tminimumMultiplier: parseDecimal(data.minimumMultiplier, 0),\r\n\t\t\tminimumBet: parseDecimal(data.minimumBet, 0),\r\n\t\t\tjackpotPayoutPercentage: parseDecimal(data.jackpotPayoutPercentage, 0),\r\n\t\t\tjackpotTurnoverContributionPercentagePerGameProvider: Object.entries(\r\n\t\t\t\tdata.jackpotTurnoverContributionPercentagePerGameProvider ?? {},\r\n\t\t\t).reduce<Partial<Record<External.GameProvider, number>>>((o, [k, v]) => {\r\n\t\t\t\to[k as External.GameProvider] = parseDecimal(v, 0);\r\n\t\t\t\treturn o;\r\n\t\t\t}, {}),\r\n\t\t\ttotalPayout: parseDecimal(data.totalPayout, 0),\r\n\t\t};\r\n\t}\r\n\r\n\tprivate jackpotPayouts(data: Internal.JackpotPayout): External.JackpotPayout {\r\n\t\treturn {\r\n\t\t\tid: data.id,\r\n\t\t\tmember: {\r\n\t\t\t\tid: data.member.id,\r\n\t\t\t\tname: data.member.name,\r\n\t\t\t},\r\n\t\t\tjackpot: {\r\n\t\t\t\tid: data.jackpot.id,\r\n\t\t\t\tname: data.jackpot.name,\r\n\t\t\t},\r\n\t\t\tmultiplier: parseDecimal(data.multiplier, 0),\r\n\t\t\tbet: parseDecimal(data.bet, 0),\r\n\t\t\tamount: parseDecimal(data.amount, 0),\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t\tgame: {\r\n\t\t\t\tprovider: data?.game?.provider,\r\n\t\t\t},\r\n\t\t};\r\n\t}\r\n\r\n\tprivate tournamentsLeaderboard(\r\n\t\tdata: Internal.TournamentLeaderboard,\r\n\t): External.TournamentLeaderboard {\r\n\t\treturn {\r\n\t\t\tid: data.id,\r\n\t\t\tusername: data.username,\r\n\t\t\tmultiplier: parseDecimal(data.multiplier, 0),\r\n\t\t\tdateTimeCreated: data.dateTimeCreated,\r\n\t\t\tgame: data.game,\r\n\t\t\tprize: data.prize,\r\n\t\t};\r\n\t}\r\n\r\n\tprivate tournaments(data: Internal.Tournament): External.Tournament {\r\n\t\treturn {\r\n\t\t\tid: data.id,\r\n\t\t\ttype: data.type,\r\n\t\t\tname: data.name,\r\n\t\t\tdescription: data.description,\r\n\t\t\twinnersCount: parseDecimal(data.winnersCount, 0),\r\n\t\t\tstatus: data.status,\r\n\t\t\tactivationEndDateTime: new Date(data.activationEndDateTime),\r\n\t\t\tactivationStartDateTime: new Date(data.activationStartDateTime),\r\n\t\t\ttopPayouts: data.topPayouts.map((payout) => ({\r\n\t\t\t\t...payout,\r\n\t\t\t\tamount: parseDecimal(payout.amount, 0),\r\n\t\t\t})),\r\n\t\t\tenabledGameProviders: data.enabledGameProviders,\r\n\t\t\tfrequency: data.frequency,\r\n\t\t\tmode: data.mode,\r\n\t\t\tmobileBanner: {\r\n\t\t\t\tid: data.mobileBanner?.id,\r\n\t\t\t\turl: data.mobileBanner?.url,\r\n\t\t\t\tmimeType: data.mobileBanner?.mimeType,\r\n\t\t\t},\r\n\t\t\twebBanner: {\r\n\t\t\t\tid: data.webBanner?.id,\r\n\t\t\t\turl: data.webBanner?.url,\r\n\t\t\t\tmimeType: data.webBanner?.mimeType,\r\n\t\t\t},\r\n\r\n\t\t\trewardSettings: data.rewardSettings,\r\n\r\n\t\t\tcurrentLeaderboard: {\r\n\t\t\t\tcurrentLeaderboard: data.currentLeaderboard?.edges.map(\r\n\t\t\t\t\t({ cursor, node }) => ({\r\n\t\t\t\t\t\tcursor,\r\n\t\t\t\t\t\t...this.tournamentsLeaderboard(node),\r\n\t\t\t\t\t}),\r\n\t\t\t\t),\r\n\t\t\t\ttotalCount: data.currentLeaderboard.totalCount,\r\n\t\t\t\thasNextPage: data.currentLeaderboard.pageInfo?.hasNextPage as never,\r\n\t\t\t\tendCursor: data.currentLeaderboard.pageInfo?.endCursor ?? undefined,\r\n\t\t\t},\r\n\t\t\tpreviousLeaderboard: {\r\n\t\t\t\tpreviousLeaderboard: data.previousLeaderboard.edges.map(\r\n\t\t\t\t\t({ cursor, node }) => ({\r\n\t\t\t\t\t\tcursor,\r\n\t\t\t\t\t\t...this.tournamentsLeaderboard(node),\r\n\t\t\t\t\t}),\r\n\t\t\t\t),\r\n\t\t\t\ttotalCount: data.previousLeaderboard.totalCount,\r\n\t\t\t\thasNextPage: data.previousLeaderboard.pageInfo?.hasNextPage as never,\r\n\t\t\t\tendCursor: data.previousLeaderboard.pageInfo?.endCursor ?? undefined,\r\n\t\t\t},\r\n\t\t};\r\n\t}\r\n\r\n\tprivate memberAchievements(\r\n\t\tdata: Internal.MemberAchievement,\r\n\t): External.MemberAchievement {\r\n\t\treturn {\r\n\t\t\tmember: {\r\n\t\t\t\tachievements: data.member.achievements,\r\n\t\t\t\tlevel: data.member.level,\r\n\t\t\t},\r\n\t\t};\r\n\t}\r\n\r\n\tprivate memberRebateContribution(\r\n\t\tdata: Internal.MemberRebateContribution,\r\n\t): External.MemberRebateContribution {\r\n\t\treturn {\r\n\t\t\tid: data.id,\r\n\t\t\trebatesPerGameCategory: data.rebatesPerGameCategory.map((item) => ({\r\n\t\t\t\tgameProvider: item.gameProvider,\r\n\t\t\t\tgameType: item.gameType,\r\n\t\t\t\tpercentage: parseDecimal(item.percentage, 0),\r\n\t\t\t\tloss: parseDecimal(item.loss),\r\n\t\t\t\tturnover: parseDecimal(item.turnover),\r\n\t\t\t\tamount: parseDecimal(item.amount, 0),\r\n\t\t\t})),\r\n\t\t\trebatesPerGame: data.rebatesPerGame.map((item) =>\r\n\t\t\t\tcompact({\r\n\t\t\t\t\tgame: item.game,\r\n\t\t\t\t\tpercentage: parseDecimal(item.percentage, 0),\r\n\t\t\t\t\tloss: parseDecimal(item.loss),\r\n\t\t\t\t\tturnover: parseDecimal(item.turnover),\r\n\t\t\t\t\tamount: parseDecimal(item.amount, 0),\r\n\t\t\t\t}),\r\n\t\t\t),\r\n\t\t} as External.MemberRebateContribution;\r\n\t}\r\n\r\n\tprivate cabinetWithdrawal(\r\n\t\tdata: Internal.CabinetWithdrawal,\r\n\t): External.CabinetWithdrawalRecord {\r\n\t\tconst o: External.Deposit = {\r\n\t\t\tid: data.id,\r\n\t\t\ttype: data.type,\r\n\t\t\tstatus: data.status,\r\n\t\t\tamount: data.amount,\r\n\t\t\treference: data.reference,\r\n\t\t\taccountName: data.accountName,\r\n\t\t\tdateTimeCreated: data.dateTimeCreated,\r\n\t\t\terror: data.error ?? undefined,\r\n\t\t} as External.Deposit;\r\n\r\n\t\treturn compact(o);\r\n\t}\r\n\r\n\tprivate memberVerificationRequest(\r\n\t\tdata: Internal.MemberVerificationRequest,\r\n\t): External.MemberVerificationRequest {\r\n\t\treturn {\r\n\t\t\tid: data.id,\r\n\t\t\tfirstName: data.firstName ?? undefined,\r\n\t\t\tlastName: data.lastName ?? undefined,\r\n\t\t\tdateOfBirth: data.dateOfBirth ? new Date(data.dateOfBirth) : undefined,\r\n\t\t\tidFrontImage: data.idFrontImage ?? undefined,\r\n\t\t\tselfieImage: data.selfieImage ?? undefined,\r\n\t\t\tpermanentAddress: data.permanentAddress ?? undefined,\r\n\t\t\tcurrentAddress: data.currentAddress ?? undefined,\r\n\t\t\tsourceOfIncome: data.sourceOfIncome ?? undefined,\r\n\t\t\tnatureOfWork: data.natureOfWork ?? undefined,\r\n\t\t\tnationality: data.nationality ?? undefined,\r\n\t\t\tplaceOfBirth: data.placeOfBirth ?? undefined,\r\n\t\t\tstatus: data.status,\r\n\t\t\tbasicDetailsSubmitted: data.basicDetailsSubmitted,\r\n\t\t\tbasicDetailsVerified: data.basicDetailsVerified,\r\n\t\t\timageDetailsSubmitted: data.imageDetailsSubmitted,\r\n\t\t\tpendingManualImageDetailsVerification:\r\n\t\t\t\tdata.pendingManualImageDetailsVerification,\r\n\t\t\timageDetailsVerified: data.imageDetailsVerified,\r\n\t\t\tpersonalDetailsSubmitted: data.personalDetailsSubmitted,\r\n\t\t\tremarks: data.remarks ?? undefined,\r\n\t\t\tdateTimeCreated: new Date(data.dateTimeCreated),\r\n\t\t\tdateTimeLastUpdated: new Date(data.dateTimeLastUpdated),\r\n\t\t\tdateTimeApproved: data.dateTimeApproved\r\n\t\t\t\t? new Date(data.dateTimeApproved)\r\n\t\t\t\t: undefined,\r\n\t\t\tdateTimeRejected: data.dateTimeRejected\r\n\t\t\t\t? new Date(data.dateTimeRejected)\r\n\t\t\t\t: undefined,\r\n\t\t};\r\n\t}\r\n}\r\n","import { Capacitor } from '@capacitor/core';\r\nimport {\r\n\tAccountService,\r\n\tAuthService,\r\n\tCmsPortalService,\r\n\tExtensionService,\r\n\tFileService,\r\n\tGameService,\r\n\tPortalService,\r\n\tReportService,\r\n\tTriggerService,\r\n\tWalletService,\r\n} from '../services/index.js';\r\nimport type { Decimal } from '../services/types.js';\r\nimport { Cache } from '../utils/cache.js';\r\nimport { clamp } from '../utils/clamp.js';\r\nimport {\r\n\tGraphQLClient,\r\n\ttype GraphQLClientConfig,\r\n\ttype GraphQLClientMiddleware,\r\n} from '../utils/graphql-client.js';\r\nimport { sha256 } from '../utils/sha256.js';\r\nimport { AdManager } from './ad-manager.js';\r\nimport { CellexpertManager } from './cellexpert-manager.js';\r\nimport { Logger } from './logger.js';\r\nimport { ObjectId } from './object-id.js';\r\nimport { ObjectType } from './object-type.js';\r\nimport { SessionManager } from './session-manager.js';\r\nimport { SessionManagerCookie } from './session-manager-cookie.js';\r\nimport { Transformer } from './transformer.js';\r\nimport type {\r\n\t_JackpotsInput,\r\n\t_JackpotsReturn,\r\n\tAccountReturn,\r\n\tAchievementPointsHistoryRecordInput,\r\n\tAchievementPointsHistoryRecordReturn,\r\n\tAchievementSettingsReturn,\r\n\tActivityRecordsInput,\r\n\tActivityRecordsReturn,\r\n\tAnnouncementsInput,\r\n\tAnnouncementsReturn,\r\n\tAuthenticateInput,\r\n\tAuthenticateReturn,\r\n\tAvailablePromosReturn,\r\n\tAvailableQuestsReturn,\r\n\tBetRecordsInput,\r\n\tBetRecordsReturn,\r\n\tBonusesReturn,\r\n\tBonusReturn,\r\n\tCabinetSignInInput,\r\n\tCabinetSignInReturn,\r\n\tCabinetSiteMachineReturn,\r\n\tCabinetWithdrawalReturn,\r\n\tCancelFreeBetDropInput,\r\n\tCancelFreeBetDropReturn,\r\n\tCashbackBonusReturn,\r\n\tCashbacksReturn,\r\n\tCheckInDailyQuestReturn,\r\n\tClaimCashbackBonusReturn,\r\n\tClaimRebateReturn,\r\n\tClaimRewardReturn,\r\n\tClaimSpotBonusReturn,\r\n\tCompleteOnboardingInput,\r\n\tCompleteOnboardingReturn,\r\n\tCreateAccountInput,\r\n\tCreateAccountInput__Next,\r\n\tCreateAccountReturn,\r\n\tCreateDepositInput,\r\n\tCreateDepositReturn,\r\n\tCreateGameSessionInput,\r\n\tCreateGameSessionReturn,\r\n\tCreateSingleUseTokenReturn,\r\n\tCreateWithdrawalInput,\r\n\tCreateWithdrawalReturn,\r\n\tDeleteAccountReturn,\r\n\tDepositRecordsInput,\r\n\tDepositRecordsReturn,\r\n\tDepositReturn,\r\n\tDepositsCountReturn,\r\n\tDownlinesByNameInput,\r\n\tDownlinesByNameReturn,\r\n\tEndGameSessionReturn,\r\n\tEnvironment,\r\n\tFavoriteGamesReturn,\r\n\tFileReturn,\r\n\tFreeBetDropsInput,\r\n\tFreeBetDropsReturn,\r\n\tGameProvider,\r\n\tGameReturn,\r\n\tGameSessionReturn,\r\n\tGamesInput,\r\n\tGamesInput__Next,\r\n\tGamesReturn,\r\n\tGeneralMemberLevelSettingsReturn,\r\n\tGoogleClientIdReturn,\r\n\tInstapayBankListReturn,\r\n\tJackpotPayoutsInput,\r\n\tJackpotPayoutsReturn,\r\n\tJackpotsIdsInput,\r\n\tJackpotsIdsReturn,\r\n\tJackpotsInput,\r\n\tJackpotsReturn,\r\n\tLatestBetRecordsReturn,\r\n\tLinkFirebaseCloudMessagingDeviceInput,\r\n\tLinkFirebaseCloudMessagingDeviceReturn,\r\n\tLocale,\r\n\tMarkAllMessagesAsReadReturn,\r\n\tMarkGameAsFavoriteInput,\r\n\tMarkGameAsFavoriteReturn,\r\n\tMarkMessageAsReadReturn,\r\n\tMayaSignInInput,\r\n\tMayaSignInReturn,\r\n\tMemberAchievementReturn,\r\n\tMemberFreeBetDropsInput,\r\n\tMemberFreeBetDropsReturn,\r\n\tMemberLevelSettingsReturn,\r\n\tMemberRebateContributionInput,\r\n\tMemberRebateContributionReturn,\r\n\tMemberRebatesInput,\r\n\tMemberRebatesReturn,\r\n\tMemberVerificationRequestAutomaticApprovalEnabledReturn,\r\n\tMemberVerificationRequestReturn,\r\n\tMemberWalletAccountReturn,\r\n\tMessagesInput,\r\n\tMessagesReturn,\r\n\tMobileNumberSignInInput,\r\n\tMobileNumberSignInReturn,\r\n\tNameAndPasswordSignInInput,\r\n\tNameAndPasswordSignInReturn,\r\n\tOnboardingStatusReturn,\r\n\tPaymentSettingsReturn,\r\n\tPlatformGamesInput,\r\n\tPlatformGamesReturn,\r\n\tPlatformReturn,\r\n\tPlatformReturn__Next,\r\n\tPointsClubSettingsReturn,\r\n\tPointsWalletReturn,\r\n\tPointsWalletTransactionsInput,\r\n\tPointsWalletTransactionsReturn,\r\n\tProfileCompletionReturn,\r\n\tPromoByCodeReturn,\r\n\tPromoFilterInput,\r\n\tPromosAndCashbacksReturn,\r\n\tPromosReturn,\r\n\tRecommendedGamesInput,\r\n\tRecommendedGamesReturn,\r\n\tRedeemPointsInput,\r\n\tRedeemPointsReturn,\r\n\tRedeemVoucherInput,\r\n\tRedeemVoucherReturn,\r\n\tReferralCodeReturn,\r\n\tReferralCommissionReturn,\r\n\tReferralsInput,\r\n\tReferralsReturn,\r\n\tRegisterAgentAccountInput,\r\n\tRegisterAgentAccountReturn,\r\n\tRegisterFCMDeviceInput,\r\n\tRegisterFCMDeviceReturn,\r\n\tRegisterMayaAccountInput,\r\n\tRegisterMayaAccountReturn,\r\n\tRemainingDailyWithdrawalsCountReturn,\r\n\tRequireFirstDepositReturn,\r\n\tResetPasswordInput,\r\n\tResetPasswordReturn,\r\n\tSendVerificationCodeInput__Next,\r\n\tSendVerificationCodeReturn,\r\n\tSendVerificationCodeReturn__Next,\r\n\tSessionReturn,\r\n\tSignInInput,\r\n\tSignInReturn,\r\n\tSingleUseTokenSignInInput,\r\n\tSingleUseTokenSignInReturn,\r\n\tSiteReturn,\r\n\tSkipOnboardingReturn,\r\n\tSocialsSignInInput,\r\n\tSocialsSignInReturn,\r\n\tSubmitMemberVerificationRequestBasicDetailsInput,\r\n\tSubmitMemberVerificationRequestBasicDetailsReturn,\r\n\tSubmitMemberVerificationRequestImageDetailsInput,\r\n\tSubmitMemberVerificationRequestImageDetailsReturn,\r\n\tSubmitMemberVerificationRequestPersonalDetailsInput,\r\n\tSubmitMemberVerificationRequestPersonalDetailsReturn,\r\n\tSubmitMemberVerificationReturn,\r\n\tSubmitVerificationDetailsInput,\r\n\tSubmitVerificationDetailsInputNext,\r\n\tSubmitVerificationDetailsReturn,\r\n\tTokenSignInInput,\r\n\tTokenSignInReturn,\r\n\tTopWinsReturn,\r\n\tTouchDepositInput,\r\n\tTouchDepositReturn,\r\n\tTournamentsIdsInput,\r\n\tTournamentsIdsReturn,\r\n\tTournamentsInput,\r\n\tTournamentsReturn,\r\n\tTransactionRecordsInput,\r\n\tTransactionRecordsReturn,\r\n\tUnlinkFirebaseCloudMessagingDeviceInput,\r\n\tUnlinkFirebaseCloudMessagingDeviceReturn,\r\n\tUnmarkGameAsFavoriteInput,\r\n\tUnmarkGameAsFavoriteReturn,\r\n\tUnreadMessagesCountInput,\r\n\tUnreadMessagesCountReturn,\r\n\tUnregisterFCMDeviceInput,\r\n\tUnregisterFCMDeviceReturn,\r\n\tUpdateAccountInput,\r\n\tUpdateAccountLimitReturn,\r\n\tUpdateAccountReturn,\r\n\tUpdateDailyBetLimitInput,\r\n\tUpdateDailyDepositLimitInput,\r\n\tUpdateMonthlyBetLimitInput,\r\n\tUpdateMonthlyDepositLimitInput,\r\n\tUpdateReferralCodeInput,\r\n\tUpdateReferralCodeReturn,\r\n\tUpdateVerificationDetailsInput,\r\n\tUpdateVerificationDetailsReturn,\r\n\tUplinesByNameInput,\r\n\tUplinesByNameReturn,\r\n\tUploadImageFileInput,\r\n\tUploadImageFileReturn,\r\n\tValidateMayaSessionReturn,\r\n\tVerificationDetailsReturn,\r\n\tVerifyMobileNumberReturn,\r\n\tWalletGameInput,\r\n\tWalletGamesReturn,\r\n\tWalletReturn,\r\n\tWatchSessionInput,\r\n\tWithdrawalRecordsInput,\r\n\tWithdrawalRecordsReturn,\r\n} from './types.js';\r\nimport { addAreaCode, getCookie, getFingerprint } from './utils.js';\r\n\r\nfunction toDecimalVariable(value: number): Decimal {\r\n\tif (!Number.isFinite(value)) {\r\n\t\tthrow new TypeError('Account limit must be a finite number.');\r\n\t}\r\n\r\n\treturn value as unknown as Decimal;\r\n}\r\n\r\nexport interface SdkConfig {\r\n\t/**\r\n\t * @default 'development'\r\n\t */\r\n\tenvironment?: Environment;\r\n\tsite: string;\r\n\tsitePlatform: string;\r\n\tplatform: string;\r\n\tlogs?: boolean;\r\n\tsessionStorage?: 'cookie' | 'localStorage';\r\n\tmiddleware?: GraphQLClientMiddleware;\r\n\tfetch?: typeof globalThis.fetch;\r\n}\r\n\r\nconst defaultConfig = {\r\n\tenvironment: 'development' as Environment,\r\n\tlogs: false,\r\n};\r\n\r\nexport class Sdk {\r\n\t/**\r\n\t * Initializes the SDK by fetching and assigning the member domain.\r\n\t */\r\n\tasync init(): Promise<void> {\r\n\t\tconst res = await this.accountService.memberAccount();\r\n\r\n\t\tif (res.ok) {\r\n\t\t\tconst accountData = this.transformer.transform.account({\r\n\t\t\t\t...res.data,\r\n\t\t\t\tlevel: 0,\r\n\t\t\t});\r\n\r\n\t\t\tthis.memberDomain = accountData?.domain ?? null;\r\n\t\t}\r\n\t}\r\n\r\n\tprivate cmsPortalService: CmsPortalService;\r\n\tprivate authService: AuthService;\r\n\tprivate gameService: GameService;\r\n\tprivate fileService: FileService;\r\n\tprivate walletService: WalletService;\r\n\tprivate extensionService: ExtensionService;\r\n\tprivate accountService: AccountService;\r\n\tprivate reportService: ReportService;\r\n\tprivate portalService: PortalService;\r\n\tprivate triggerService: TriggerService;\r\n\tprivate sessionManager: SessionManager | SessionManagerCookie;\r\n\tprivate adManager: AdManager;\r\n\tprivate cellexpertManager: CellexpertManager;\r\n\tprivate transformer: Transformer;\r\n\tprivate logger: Logger;\r\n\tprivate cache: Cache;\r\n\tprivate config: SdkConfig;\r\n\r\n\t/**\r\n\t * Stores the member domain for use in future mutations/queries\r\n\t */\r\n\tpublic memberDomain: string | null = null;\r\n\r\n\tconstructor(config: SdkConfig) {\r\n\t\tconst {\r\n\t\t\t/**/\r\n\t\t\tsite,\r\n\t\t\tsitePlatform,\r\n\t\t\tplatform,\r\n\t\t\tenvironment,\r\n\t\t\tlogs,\r\n\t\t} = Object.assign(defaultConfig, config);\r\n\r\n\t\tconst production = environment === 'production';\r\n\r\n\t\tconst logger = new Logger({\r\n\t\t\tenabled: logs,\r\n\t\t});\r\n\r\n\t\tconst adManager = new AdManager({ logger });\r\n\t\tconst cellexpertManager = new CellexpertManager({ logger });\r\n\r\n\t\tconst transformer = new Transformer();\r\n\r\n\t\tconst authUrl = ENDPOINTS[environment].auth;\r\n\t\tconst walletUrl = ENDPOINTS[environment].wallet;\r\n\t\tconst extensionUrl = ENDPOINTS[environment].extension;\r\n\t\tconst reportUrl = ENDPOINTS[environment].report;\r\n\t\tconst accountUrl = ENDPOINTS[environment].account;\r\n\t\tconst portalUrl = ENDPOINTS[environment].portal;\r\n\t\tconst fileUrl = ENDPOINTS[environment].file;\r\n\t\tconst gameUrl = ENDPOINTS[environment].game;\r\n\t\tconst triggerUrl = ENDPOINTS[environment].trigger;\r\n\t\tconst cmsPortalUrl = ENDPOINTS[environment].cmsPortal;\r\n\r\n\t\tconst cmsPortalService = new CmsPortalService(() => ({\r\n\t\t\turl: cmsPortalUrl,\r\n\t\t\tsite,\r\n\t\t\tplatform: sitePlatform,\r\n\t\t\tfetch: this.getFetch(),\r\n\t\t}));\r\n\r\n\t\tthis._fetch = config.fetch ?? null;\r\n\t\tthis._middleware = config.middleware ?? ((req) => req);\r\n\r\n\t\tconst graphqlClientConfig = () =>\r\n\t\t\t({\r\n\t\t\t\tmiddlewares: [\r\n\t\t\t\t\t/**/\r\n\t\t\t\t\tthis.authMiddleware,\r\n\t\t\t\t\tthis.fingerprintMiddleware,\r\n\t\t\t\t\tthis.miscMiddleware,\r\n\t\t\t\t\tthis.middleware,\r\n\t\t\t\t],\r\n\t\t\t\tfetch: this.getFetch(),\r\n\t\t\t\tfetchOptions: {\r\n\t\t\t\t\theaders: {\r\n\t\t\t\t\t\tRole: 'MEMBER',\r\n\t\t\t\t\t\t'Platform-Code': platform,\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t}) satisfies GraphQLClientConfig;\r\n\r\n\t\tconst gameService = new GameService(\r\n\t\t\tnew GraphQLClient(gameUrl, graphqlClientConfig),\r\n\t\t);\r\n\t\tconst extensionService = new ExtensionService(\r\n\t\t\tnew GraphQLClient(extensionUrl, graphqlClientConfig),\r\n\t\t);\r\n\t\tconst fileService = new FileService(\r\n\t\t\tnew GraphQLClient(fileUrl, graphqlClientConfig),\r\n\t\t);\r\n\t\tconst walletService = new WalletService(\r\n\t\t\tnew GraphQLClient(walletUrl, graphqlClientConfig),\r\n\t\t);\r\n\t\tconst accountService = new AccountService(\r\n\t\t\tnew GraphQLClient(accountUrl, graphqlClientConfig),\r\n\t\t\tenvironment,\r\n\t\t);\r\n\t\tconst reportService = new ReportService(\r\n\t\t\tnew GraphQLClient(reportUrl, graphqlClientConfig),\r\n\t\t);\r\n\t\tconst portalService = new PortalService(\r\n\t\t\tnew GraphQLClient(portalUrl, graphqlClientConfig),\r\n\t\t);\r\n\t\tconst triggerService = new TriggerService(\r\n\t\t\tnew GraphQLClient(triggerUrl, graphqlClientConfig),\r\n\t\t);\r\n\r\n\t\tconst authService = new AuthService({\r\n\t\t\turl: authUrl,\r\n\t\t\tfetchOptions: {\r\n\t\t\t\theaders: {\r\n\t\t\t\t\tRole: 'MEMBER',\r\n\t\t\t\t\t'Platform-Code': platform,\r\n\r\n\t\t\t\t\t...(!production && {\r\n\t\t\t\t\t\t'Test-Pass': '',\r\n\t\t\t\t\t}),\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tconst sessionManager =\r\n\t\t\tconfig.sessionStorage === 'cookie'\r\n\t\t\t\t? new SessionManagerCookie({\r\n\t\t\t\t\t\tlogger,\r\n\t\t\t\t\t\tauthService,\r\n\t\t\t\t\t\twalletService,\r\n\t\t\t\t\t})\r\n\t\t\t\t: new SessionManager({\r\n\t\t\t\t\t\tlogger,\r\n\t\t\t\t\t\tauthService,\r\n\t\t\t\t\t\twalletService,\r\n\t\t\t\t\t});\r\n\r\n\t\tthis.logger = logger;\r\n\t\tthis.adManager = adManager;\r\n\t\tthis.cellexpertManager = cellexpertManager;\r\n\t\tthis.transformer = transformer;\r\n\t\tthis.authService = authService;\r\n\t\tthis.gameService = gameService;\r\n\t\tthis.extensionService = extensionService;\r\n\t\tthis.fileService = fileService;\r\n\t\tthis.walletService = walletService;\r\n\t\tthis.accountService = accountService;\r\n\t\tthis.reportService = reportService;\r\n\t\tthis.portalService = portalService;\r\n\t\tthis.triggerService = triggerService;\r\n\t\tthis.sessionManager = sessionManager;\r\n\t\tthis.cmsPortalService = cmsPortalService;\r\n\t\tthis.cache = new Cache();\r\n\t\tthis.config = {\r\n\t\t\tenvironment,\r\n\t\t\tsite,\r\n\t\t\tplatform,\r\n\t\t\tsitePlatform,\r\n\t\t\tlogs,\r\n\t\t};\r\n\r\n\t\tthis.collectMetaDetails();\r\n\t\tthis.initMarketDomain();\r\n\t}\r\n\r\n\tprivate _fetch: typeof globalThis.fetch | null = null;\r\n\tprivate _middleware: GraphQLClientMiddleware;\r\n\r\n\t/**\r\n\t * @deprecated use `setFetch` instead\r\n\t */\r\n\tset fetch(value: typeof globalThis.fetch | null) {\r\n\t\tthis._fetch = value;\r\n\t}\r\n\r\n\t/**\r\n\t * @deprecated use `getFetch` instead\r\n\t */\r\n\tget fetch() {\r\n\t\treturn this._fetch;\r\n\t}\r\n\r\n\tasync setFetch(value: typeof globalThis.fetch | null) {\r\n\t\treturn new Promise<void>((resolve) => {\r\n\t\t\tthis._fetch = value;\r\n\t\t\tsetTimeout(() => resolve(), 1);\r\n\t\t});\r\n\t}\r\n\r\n\tgetFetch() {\r\n\t\treturn this._fetch;\r\n\t}\r\n\r\n\tset middleware(value: GraphQLClientMiddleware) {\r\n\t\tthis._middleware = value;\r\n\t}\r\n\r\n\tget middleware() {\r\n\t\treturn this._middleware;\r\n\t}\r\n\r\n\tinitMarketDomain(): void {\r\n\t\tif (typeof window === 'undefined') return;\r\n\r\n\t\tconst searchParams = new URLSearchParams(window.location.search);\r\n\t\tconst hostname = window.location.hostname;\r\n\t\tconst market = searchParams.get('market');\r\n\t\tconst adClickId = this.adManager.clickId;\r\n\r\n\t\tif (Capacitor.isNativePlatform()) {\r\n\t\t\tconst platform = Capacitor.getPlatform();\r\n\r\n\t\t\tif (platform === 'ios') {\r\n\t\t\t\tsessionStorage.setItem('domain', `${hostname}/ios`);\r\n\t\t\t} else {\r\n\t\t\t\tsessionStorage.setItem('domain', `${hostname}/android`);\r\n\t\t\t}\r\n\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst currentDomain = sessionStorage.getItem('domain');\r\n\r\n\t\tif (market) {\r\n\t\t\tsessionStorage.setItem('domain', `${hostname}/${market}`);\r\n\t\t} else if (adClickId && !currentDomain) {\r\n\t\t\tsessionStorage.setItem('domain', `${hostname}/meta-ads`);\r\n\t\t} else if (!currentDomain) {\r\n\t\t\tsessionStorage.setItem('domain', hostname);\r\n\t\t}\r\n\r\n\t\tif (market) {\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\tconst url = new URL(window.location.href);\r\n\t\t\t\turl.searchParams.delete('market');\r\n\t\t\t\twindow.history.replaceState({}, '', url.toString());\r\n\t\t\t}, 1);\r\n\t\t}\r\n\t}\r\n\r\n\tset marketDomain(value: string | null) {\r\n\t\tif (typeof window === 'undefined') return;\r\n\r\n\t\tif (Capacitor.isNativePlatform()) {\r\n\t\t\tif (value) {\r\n\t\t\t\tlocalStorage.setItem('domain', value);\r\n\t\t\t} else {\r\n\t\t\t\tlocalStorage.removeItem('domain');\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tif (value) {\r\n\t\t\t\tsessionStorage.setItem('domain', value);\r\n\t\t\t} else {\r\n\t\t\t\tsessionStorage.removeItem('domain');\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tget marketDomain(): string | null {\r\n\t\tif (typeof window === 'undefined') return null;\r\n\r\n\t\tif (Capacitor.isNativePlatform()) {\r\n\t\t\treturn localStorage.getItem('domain');\r\n\t\t}\r\n\r\n\t\treturn sessionStorage.getItem('domain');\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tADS\r\n\t *=============================================\r\n\t */\r\n\r\n\tset adClickId(value: string | null) {\r\n\t\tthis.adManager.clickId = value;\r\n\t}\r\n\r\n\tget adClickId() {\r\n\t\treturn this.adManager.clickId;\r\n\t}\r\n\r\n\tset fbp(value: string | null) {\r\n\t\tthis.adManager.fbp = value;\r\n\t}\r\n\r\n\tget fbp() {\r\n\t\treturn this.adManager.fbp;\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tCXD\r\n\t *=============================================\r\n\t */\r\n\r\n\tset cxd(value: string | null) {\r\n\t\tthis.cellexpertManager.cxd = value;\r\n\t}\r\n\r\n\tget cxd() {\r\n\t\treturn this.cellexpertManager.cxd;\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tLOCALE\r\n\t *=============================================\r\n\t */\r\n\r\n\tprivate get locale() {\r\n\t\treturn new Promise<Locale>((resolve) => {\r\n\t\t\tconst cacheKey = 'locale';\r\n\t\t\tconst cacheValue = this.cache.get<Locale>(cacheKey);\r\n\r\n\t\t\tif (cacheValue) return resolve(cacheValue);\r\n\r\n\t\t\tthis.platform__next().then((res) => {\r\n\t\t\t\tif (res.ok) {\r\n\t\t\t\t\tthis.cache.set(cacheKey, res.data.locale);\r\n\t\t\t\t\tresolve(res.data.locale);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.logger.warn(\"Failed to fetch currency. Using 'PH' as fallback\");\r\n\t\t\t\t\tresolve('en-PH');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tAUTH MIDDLEWARE\r\n\t *=============================================\r\n\t */\r\n\r\n\tprivate get authMiddleware(): GraphQLClientMiddleware {\r\n\t\treturn async (request) => {\r\n\t\t\tthis.logger.info('Checking for session');\r\n\r\n\t\t\tconst res = await this.sessionManager.get();\r\n\r\n\t\t\tif (res.data) {\r\n\t\t\t\trequest.headers.set('Authorization', `Bearer ${res.data.accessToken}`);\r\n\t\t\t\tthis.logger.info('Session found');\r\n\t\t\t\tthis.logger.success(\"Added 'Authorization' header\");\r\n\t\t\t} else {\r\n\t\t\t\tthis.logger.info('No session found');\r\n\t\t\t}\r\n\r\n\t\t\treturn request;\r\n\t\t};\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tFINGERPRINT MIDDLEWARE\r\n\t *=============================================\r\n\t */\r\n\r\n\tprivate get fingerprintMiddleware(): GraphQLClientMiddleware {\r\n\t\treturn async (request) => {\r\n\t\t\tconst fingerprint = await this.fingerprint();\r\n\r\n\t\t\tif (fingerprint && !request.headers.has('Fingerprint')) {\r\n\t\t\t\trequest.headers.set('Fingerprint', fingerprint);\r\n\t\t\t}\r\n\r\n\t\t\treturn request;\r\n\t\t};\r\n\t}\r\n\r\n\tasync fingerprint() {\r\n\t\treturn await getFingerprint(this.config.environment ?? 'development');\r\n\t}\r\n\r\n\tprivate get miscMiddleware(): GraphQLClientMiddleware {\r\n\t\treturn async (request) => {\r\n\t\t\tconst adClickId = this.adManager.clickId;\r\n\t\t\tif (adClickId) request.headers.set('Ad-Click-Id', adClickId);\r\n\r\n\t\t\tconst fbp = this.adManager.fbp;\r\n\t\t\tif (fbp) request.headers.set('fbp', fbp);\r\n\r\n\t\t\treturn request;\r\n\t\t};\r\n\t}\r\n\r\n\tcollectMetaDetails(): void {\r\n\t\tif (typeof window === 'undefined') return;\r\n\r\n\t\tconst searchParams = new URLSearchParams(window.location.search);\r\n\t\tconst fbclid = searchParams.get('fbclid');\r\n\t\tconst fbc = getCookie('_fbc');\r\n\t\tconst fbp = getCookie('_fbp');\r\n\r\n\t\tif (fbclid) {\r\n\t\t\tthis.adClickId = fbclid;\r\n\t\t} else if (fbc) {\r\n\t\t\tthis.adClickId = fbc.includes('.') ? fbc.split('.').pop() || fbc : fbc;\r\n\t\t}\r\n\r\n\t\tif (fbp) {\r\n\t\t\tthis.fbp = fbp;\r\n\t\t}\r\n\t}\r\n\r\n\tasync signIn(\r\n\t\tinput: NameAndPasswordSignInInput,\r\n\t): Promise<NameAndPasswordSignInReturn>;\r\n\tasync signIn(\r\n\t\tinput: MobileNumberSignInInput,\r\n\t): Promise<MobileNumberSignInReturn>;\r\n\tasync signIn(input: MayaSignInInput): Promise<MayaSignInReturn>;\r\n\tasync signIn(input: TokenSignInInput): Promise<TokenSignInReturn>;\r\n\tasync signIn(input: SocialsSignInInput): Promise<SocialsSignInReturn>;\r\n\tasync signIn(input: CabinetSignInInput): Promise<CabinetSignInReturn>;\r\n\tasync signIn(\r\n\t\tinput: SingleUseTokenSignInInput,\r\n\t): Promise<SingleUseTokenSignInReturn>;\r\n\tasync signIn(input: SignInInput): Promise<SignInReturn> {\r\n\t\tif (input.type === 'TOKEN') {\r\n\t\t\tconsole.warn(\r\n\t\t\t\t\"'TOKEN (signIn)' is deprecated. Please use 'SOCIALS' instead.\",\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\tswitch (input.type) {\r\n\t\t\tcase 'NAME_AND_PASSWORD': {\r\n\t\t\t\tconst res = await this.sessionManager.create({\r\n\t\t\t\t\t...input,\r\n\t\t\t\t\tpassword: await sha256(input.password),\r\n\t\t\t\t});\r\n\r\n\t\t\t\tif (!res.ok) return res;\r\n\t\t\t\tif (res.data) {\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tok: true,\r\n\t\t\t\t\t\tdata: {\r\n\t\t\t\t\t\t\t'2FAEnabled': true,\r\n\t\t\t\t\t\t\tauthenticator: res.data.authenticator,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: true,\r\n\t\t\t\t\tdata: {\r\n\t\t\t\t\t\t'2FAEnabled': false,\r\n\t\t\t\t\t},\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\tcase 'SOCIALS':\r\n\t\t\tcase 'TOKEN': {\r\n\t\t\t\tconst res = await this.sessionManager.create({\r\n\t\t\t\t\ttype: 'SOCIALS',\r\n\t\t\t\t\ttoken: input.token,\r\n\t\t\t\t\tchannel: input.channel,\r\n\t\t\t\t});\r\n\r\n\t\t\t\treturn res.ok ? { ok: true } : res;\r\n\t\t\t}\r\n\r\n\t\t\tcase 'CABINET': {\r\n\t\t\t\tconst res = await this.sessionManager.create({\r\n\t\t\t\t\ttype: 'CABINET',\r\n\t\t\t\t\ttoken: input.token,\r\n\t\t\t\t\tchannel: input.channel,\r\n\t\t\t\t});\r\n\r\n\t\t\t\treturn res.ok ? { ok: true } : res;\r\n\t\t\t}\r\n\r\n\t\t\tcase 'MOBILE_NUMBER': {\r\n\t\t\t\tconst res = await this.sessionManager.create({\r\n\t\t\t\t\ttype: 'MOBILE_NUMBER',\r\n\t\t\t\t\tmobileNumber: addAreaCode(input.mobileNumber, await this.locale),\r\n\t\t\t\t\tverificationCode: input.verificationCode,\r\n\t\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t\t\ttestPass: input.testPass,\r\n\t\t\t\t\tchannel: input.channel,\r\n\t\t\t\t});\r\n\r\n\t\t\t\treturn res.ok ? { ok: true } : res;\r\n\t\t\t}\r\n\r\n\t\t\tcase 'SINGLE_USE_TOKEN': {\r\n\t\t\t\tconst res = await this.sessionManager.create({\r\n\t\t\t\t\ttype: 'SINGLE_USE_TOKEN',\r\n\t\t\t\t\ttoken: input.token,\r\n\t\t\t\t\tchannel: input.channel,\r\n\t\t\t\t});\r\n\r\n\t\t\t\treturn res.ok ? { ok: true } : res;\r\n\t\t\t}\r\n\r\n\t\t\tdefault: {\r\n\t\t\t\tconst res = await this.sessionManager.create(input);\r\n\r\n\t\t\t\treturn res.ok ? { ok: true } : res;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tasync authenticate(input: AuthenticateInput): Promise<AuthenticateReturn> {\r\n\t\tswitch (input.type) {\r\n\t\t\tcase 'SECURITY_QUESTION': {\r\n\t\t\t\treturn await this.sessionManager.createFromAuthenticator({\r\n\t\t\t\t\ttype: 'SECURITY_QUESTION',\r\n\t\t\t\t\ttoken: input.token,\r\n\t\t\t\t\tchannel: input.channel,\r\n\t\t\t\t\tsecretAnswer: await sha256(input.secretAnswer),\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tdefault: {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: false,\r\n\t\t\t\t\terror: {\r\n\t\t\t\t\t\tname: 'HttpBadRequest',\r\n\t\t\t\t\t\tmessage: \"Invalid input 'type'\",\r\n\t\t\t\t\t},\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tasync signOut() {\r\n\t\tawait this.sessionManager.destroy();\r\n\t}\r\n\r\n\twatchSession(input: WatchSessionInput) {\r\n\t\tconst interval = clamp(input.interval ?? 30000, 30000, 60000);\r\n\r\n\t\tlet timeout: NodeJS.Timeout | null = null;\r\n\r\n\t\tconst assignTimeout = () => {\r\n\t\t\treturn setTimeout(async () => {\r\n\t\t\t\tconst v = await this.sessionManager.verify();\r\n\r\n\t\t\t\tif (!v) {\r\n\t\t\t\t\tawait input.onInvalid();\r\n\t\t\t\t}\r\n\r\n\t\t\t\ttimeout = assignTimeout();\r\n\t\t\t}, interval);\r\n\t\t};\r\n\r\n\t\ttimeout = assignTimeout();\r\n\r\n\t\treturn function unsubscribe() {\r\n\t\t\tif (timeout) {\r\n\t\t\t\tclearTimeout(timeout);\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n\r\n\tasync session(): Promise<SessionReturn> {\r\n\t\tconst res = await this.sessionManager.get();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data\r\n\t\t\t\t? {\r\n\t\t\t\t\t\tid: res.data.session.id,\r\n\t\t\t\t\t\tmaya: this.sessionManager.onMaya,\r\n\t\t\t\t\t\tcabinet: this.sessionManager.onCabinet,\r\n\t\t\t\t\t\taccessToken: res.data.accessToken,\r\n\t\t\t\t\t\trefreshToken: res.data.refreshToken,\r\n\t\t\t\t\t\tdateTimeCreated: new Date(res.data.session.dateTimeCreated),\r\n\t\t\t\t\t}\r\n\t\t\t\t: null,\r\n\t\t};\r\n\t}\r\n\r\n\tasync refreshSession(): Promise<SessionReturn> {\r\n\t\tconst res = await this.sessionManager.refresh();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data\r\n\t\t\t\t? {\r\n\t\t\t\t\t\tid: res.data.session.id,\r\n\t\t\t\t\t\tmaya: this.sessionManager.onMaya,\r\n\t\t\t\t\t\tcabinet: this.sessionManager.onCabinet,\r\n\t\t\t\t\t\taccessToken: res.data.accessToken,\r\n\t\t\t\t\t\trefreshToken: res.data.refreshToken,\r\n\t\t\t\t\t\tdateTimeCreated: new Date(res.data.session.dateTimeCreated),\r\n\t\t\t\t\t}\r\n\t\t\t\t: null,\r\n\t\t};\r\n\t}\r\n\r\n\tasync validateMayaSession(): Promise<ValidateMayaSessionReturn> {\r\n\t\treturn await this.walletService.validateMayaSession();\r\n\t}\r\n\r\n\tasync createSingleUseToken(): Promise<CreateSingleUseTokenReturn> {\r\n\t\tconst res0 = await this.sessionManager.get();\r\n\r\n\t\tif (!res0.ok || !res0.data) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: {\r\n\t\t\t\t\tname: 'UnknownError',\r\n\t\t\t\t\tmessage: 'Something went wrong',\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tconst res1 = await this.authService.createSingleUseToken(\r\n\t\t\tres0.data.accessToken,\r\n\t\t);\r\n\r\n\t\tif (!res1.ok) return res1;\r\n\r\n\t\treturn { ok: true, data: res1.data.token };\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tSITE\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync site(): Promise<SiteReturn> {\r\n\t\tconst res = await this.cmsPortalService.self();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: this.transformer.transform.site(res.data),\r\n\t\t};\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tEXTENSION\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync memberCabinetSiteMachine(): Promise<CabinetSiteMachineReturn> {\r\n\t\tconst res = await this.extensionService.memberCabinetSiteMachine();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data\r\n\t\t\t\t? this.transformer.transform.memberCabinetSiteMachine(res.data)\r\n\t\t\t\t: null,\r\n\t\t};\r\n\t}\r\n\r\n\tasync cabinetWithdrawalRecord(id: string): Promise<CabinetWithdrawalReturn> {\r\n\t\tconst res = await this.walletService.cabinetWithdrawal({ id });\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data\r\n\t\t\t\t? this.transformer.transform.cabinetWithdrawal(res.data)\r\n\t\t\t\t: null,\r\n\t\t};\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tPLATFORM\r\n\t *=============================================\r\n\t */\r\n\r\n\t/** @deprecated */\r\n\tasync platform(): Promise<PlatformReturn> {\r\n\t\tconsole.warn(\r\n\t\t\t\"'platform' is deprecated. Please use 'platform__next' instead.\",\r\n\t\t);\r\n\r\n\t\tconst res = await this.accountService.platform();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: this.transformer.transform.platform(res.data),\r\n\t\t};\r\n\t}\r\n\r\n\tasync platform__next(): Promise<PlatformReturn__Next> {\r\n\t\tconst res = await this.portalService.platform();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: this.transformer.transform.platform__next(res.data),\r\n\t\t};\r\n\t}\r\n\r\n\tasync paymentSettings(): Promise<PaymentSettingsReturn> {\r\n\t\tconst res = await this.accountService.paymentSettings();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: this.transformer.transform.paymentSettings(res.data),\r\n\t\t};\r\n\t}\r\n\r\n\tasync memberLevelSettings(): Promise<MemberLevelSettingsReturn> {\r\n\t\tconst res = await this.accountService.memberLevelSettings();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: this.transformer.transform.memberLevelSettings(res.data),\r\n\t\t};\r\n\t}\r\n\r\n\tasync generalMemberLevelSettings(): Promise<GeneralMemberLevelSettingsReturn> {\r\n\t\tconst res = await this.accountService.generalMemberLevelSettings();\r\n\r\n\t\tif (!res.ok) return res;\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.generalMemberLevelSettings,\r\n\t\t};\r\n\t}\r\n\tasync achievementSettings(): Promise<AchievementSettingsReturn> {\r\n\t\tconst res = await this.accountService.achievementSettings();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: this.transformer.transform.achievementSettings(res.data),\r\n\t\t};\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tACCOUNT\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync account(): Promise<AccountReturn> {\r\n\t\tconst [a, b] = await Promise.all([\r\n\t\t\tthis.accountService.memberAccount(),\r\n\t\t\tthis.reportService.member(),\r\n\t\t]);\r\n\r\n\t\tif (!a.ok) return a;\r\n\r\n\t\tconst c = b.ok ? b.data : { level: 0 };\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: this.transformer.transform.account({ ...a.data, ...c }),\r\n\t\t};\r\n\t}\r\n\r\n\t/**\r\n\t * @deprecated use `createAccount__next`\r\n\t */\r\n\tasync createAccount(input: CreateAccountInput): Promise<CreateAccountReturn> {\r\n\t\tconsole.warn(\r\n\t\t\t\"'createAccount' is deprecated. Please use 'createAccount__next' instead.\",\r\n\t\t);\r\n\r\n\t\tconst id = input.id ?? ObjectId.generate(ObjectType.Account).toString();\r\n\r\n\t\tconst res = await this.accountService.registerMemberAccount({\r\n\t\t\tinput: {\r\n\t\t\t\tid,\r\n\t\t\t\tbtag: input.btag,\r\n\t\t\t\tname: input.name,\r\n\t\t\t\tdomain: input.domain,\r\n\t\t\t\tbirthDay:\r\n\t\t\t\t\ttypeof input.dateOfBirth === 'string'\r\n\t\t\t\t\t\t? input.dateOfBirth\r\n\t\t\t\t\t\t: this.formatYmd(input.dateOfBirth),\r\n\t\t\t\tpassword: await sha256(input.password),\r\n\t\t\t\tmobileNumber: addAreaCode(input.mobileNumber, await this.locale),\r\n\t\t\t\tgigRewardsQuestDetails: input.gigRewardsQuestDetails,\r\n\t\t\t},\r\n\t\t\treferralCode: input.referralCode,\r\n\t\t\tverificationCode: input.verificationCode,\r\n\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t...(this.marketDomain && {\r\n\t\t\t\tdomain: this.marketDomain,\r\n\t\t\t}),\r\n\t\t});\r\n\r\n\t\treturn res.ok ? { ok: true, data: { id } } : res;\r\n\t}\r\n\r\n\tasync createAccount__next(\r\n\t\tinput: CreateAccountInput__Next,\r\n\t): Promise<CreateAccountReturn> {\r\n\t\tconst id = input.id ?? ObjectId.generate(ObjectType.Account).toString();\r\n\r\n\t\tif (input.type === 'MOBILE_NUMBER') {\r\n\t\t\tconst res = await this.accountService.registerMemberAccountViaMobile({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tbtag: input.btag,\r\n\t\t\t\t\tdomain: input.domain,\r\n\t\t\t\t\tmobileNumber: addAreaCode(input.mobileNumber, await this.locale),\r\n\t\t\t\t\trealName: input.realName,\r\n\t\t\t\t\tbirthDay: input.dateOfBirth,\r\n\t\t\t\t\tbranchCode: input.branchCode,\r\n\t\t\t\t\tagentCode: input.agentCode,\r\n\t\t\t\t\t...(this.cxd && {\r\n\t\t\t\t\t\tcellxpertCxd: this.cxd,\r\n\t\t\t\t\t}),\r\n\t\t\t\t\tgigRewardsQuestDetails: input.gigRewardsQuestDetails,\r\n\t\t\t\t},\r\n\t\t\t\treferralCode: input.referralCode,\r\n\t\t\t\tverificationCode: input.verificationCode,\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t\ttestPass: input.testPass,\r\n\t\t\t\t...(this.marketDomain && {\r\n\t\t\t\t\tdomain: this.marketDomain,\r\n\t\t\t\t}),\r\n\t\t\t});\r\n\r\n\t\t\treturn res.ok ? { ok: true, data: { id } } : res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'MOBILE_NUMBER_INR') {\r\n\t\t\tconst res = await this.accountService.registerMemberAccountByMobileNumber(\r\n\t\t\t\t{\r\n\t\t\t\t\tinput: {\r\n\t\t\t\t\t\tid,\r\n\t\t\t\t\t\tpassword: await sha256(input.password),\r\n\t\t\t\t\t\trealName: input.realName,\r\n\t\t\t\t\t\tmobileNumber: addAreaCode(input.mobileNumber, await this.locale),\r\n\t\t\t\t\t\tgigRewardsQuestDetails: input.gigRewardsQuestDetails,\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmobileNumberVerificationCode: input.mobileVerificationCode,\r\n\t\t\t\t\ttestPass: input.testPass,\r\n\t\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t\t\t...(this.marketDomain && {\r\n\t\t\t\t\t\tdomain: this.marketDomain,\r\n\t\t\t\t\t}),\r\n\t\t\t\t},\r\n\t\t\t);\r\n\r\n\t\t\treturn res.ok ? { ok: true, data: { id } } : res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'NAME_AND_PASSWORD') {\r\n\t\t\tconst res = await this.accountService.registerMemberAccount__next({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tname: input.name,\r\n\t\t\t\t\tbtag: input.btag,\r\n\t\t\t\t\tdomain: input.domain,\r\n\t\t\t\t\tpassword: await sha256(input.password),\r\n\t\t\t\t\tmobileNumber: input.mobileNumber\r\n\t\t\t\t\t\t? addAreaCode(input.mobileNumber, await this.locale)\r\n\t\t\t\t\t\t: undefined,\r\n\t\t\t\t\tgigRewardsQuestDetails: input.gigRewardsQuestDetails,\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t\t...(this.marketDomain && {\r\n\t\t\t\t\tdomain: this.marketDomain,\r\n\t\t\t\t}),\r\n\t\t\t});\r\n\r\n\t\t\treturn res.ok ? { ok: true, data: { id } } : res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'MOBILE_NUMBER[NEXT]') {\r\n\t\t\tconst res =\r\n\t\t\t\tawait this.accountService.registerMemberAccountByMobileNumber__next({\r\n\t\t\t\t\tinput: {\r\n\t\t\t\t\t\tid,\r\n\t\t\t\t\t\tmobileNumber: addAreaCode(input.mobileNumber, await this.locale),\r\n\t\t\t\t\t\tmobileNumberVerificationCode: input.mobileNumberVerificationCode,\r\n\t\t\t\t\t\temailAddress: input.emailAddress,\r\n\t\t\t\t\t\tbranchCode: input.branchCode,\r\n\t\t\t\t\t\tagentCode: input.agentCode,\r\n\t\t\t\t\t\tgigRewardsQuestDetails: input.gigRewardsQuestDetails,\r\n\t\t\t\t\t\t...(this.cxd && {\r\n\t\t\t\t\t\t\tcellxpertCxd: this.cxd,\r\n\t\t\t\t\t\t}),\r\n\t\t\t\t\t},\r\n\t\t\t\t\ttestPass: input.testPass,\r\n\t\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t\t\t...(this.marketDomain && {\r\n\t\t\t\t\t\tdomain: this.marketDomain,\r\n\t\t\t\t\t}),\r\n\t\t\t\t\t...(input.fingerprint && {\r\n\t\t\t\t\t\tfingerprint: input.fingerprint,\r\n\t\t\t\t\t}),\r\n\t\t\t\t\t...(input.referralCode && {\r\n\t\t\t\t\t\treferralCode: input.referralCode,\r\n\t\t\t\t\t}),\r\n\t\t\t\t});\r\n\r\n\t\t\treturn res.ok ? { ok: true, data: { id } } : res;\r\n\t\t}\r\n\r\n\t\tconst res = await this.accountService.registerMemberAccountByName({\r\n\t\t\tinput: {\r\n\t\t\t\tid,\r\n\t\t\t\tname: input.name,\r\n\t\t\t\tpassword: await sha256(input.password),\r\n\t\t\t\tgigRewardsQuestDetails: input.gigRewardsQuestDetails,\r\n\t\t\t},\r\n\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t...(this.marketDomain && {\r\n\t\t\t\tdomain: this.marketDomain,\r\n\t\t\t}),\r\n\t\t});\r\n\r\n\t\treturn res.ok ? { ok: true, data: { id } } : res;\r\n\t}\r\n\r\n\tasync registerMayaAccount(\r\n\t\tinput: RegisterMayaAccountInput,\r\n\t): Promise<RegisterMayaAccountReturn> {\r\n\t\treturn await this.accountService.registerMayaMemberAccount({\r\n\t\t\tinput: {\r\n\t\t\t\tname: input.name,\r\n\t\t\t\tpassword: await sha256(input.password),\r\n\t\t\t\tdomain: input.domain,\r\n\t\t\t},\r\n\t\t\t...(this.marketDomain && {\r\n\t\t\t\tdomain: this.marketDomain,\r\n\t\t\t}),\r\n\t\t});\r\n\t}\r\n\r\n\tasync registerAgentAccount(\r\n\t\tinput: RegisterAgentAccountInput,\r\n\t\tcode?: string,\r\n\t): Promise<RegisterAgentAccountReturn> {\r\n\t\treturn await this.accountService.registerAgentAccount({\r\n\t\t\tinput: {\r\n\t\t\t\tname: input.name,\r\n\t\t\t\tfirstName: input.firstName,\r\n\t\t\t\tlastName: input.lastName,\r\n\t\t\t\tmobileNumber: input.mobileNumber,\r\n\t\t\t\temailAddress: input.emailAddress,\r\n\t\t\t\tcustomProperties: input.customProperties,\r\n\t\t\t},\r\n\t\t\t...(code && { code }),\r\n\t\t\t...(this.marketDomain && {\r\n\t\t\t\tdomain: this.marketDomain,\r\n\t\t\t}),\r\n\t\t});\r\n\t}\r\n\r\n\tasync updateAccount(\r\n\t\tid: string,\r\n\t\tinput: UpdateAccountInput,\r\n\t): Promise<UpdateAccountReturn> {\r\n\t\tconst {\r\n\t\t\t/**/\r\n\t\t\tpassword,\r\n\t\t\tdateOfBirth,\r\n\t\t\tmobileNumber,\r\n\t\t\tsecretAnswer,\r\n\t\t\ttransactionPassword,\r\n\t\t\tgigRewardsQuestDetails,\r\n\t\t\t...others\r\n\t\t} = input;\r\n\r\n\t\treturn await this.accountService.updateMemberAccount({\r\n\t\t\tinput: {\r\n\t\t\t\tid,\r\n\t\t\t\tdata: {\r\n\t\t\t\t\t...others,\r\n\t\t\t\t\tpassword: password ? await sha256(password) : undefined,\r\n\t\t\t\t\ttransactionPassword: transactionPassword\r\n\t\t\t\t\t\t? await sha256(transactionPassword)\r\n\t\t\t\t\t\t: undefined,\r\n\t\t\t\t\tmobileNumber: mobileNumber\r\n\t\t\t\t\t\t? addAreaCode(mobileNumber, await this.locale)\r\n\t\t\t\t\t\t: undefined,\r\n\t\t\t\t\tsecretAnswer: secretAnswer ? await sha256(secretAnswer) : undefined,\r\n\t\t\t\t\tbirthDay: dateOfBirth\r\n\t\t\t\t\t\t? typeof dateOfBirth === 'string'\r\n\t\t\t\t\t\t\t? dateOfBirth\r\n\t\t\t\t\t\t\t: this.formatYmd(dateOfBirth)\r\n\t\t\t\t\t\t: undefined,\r\n\t\t\t\t\tgigRewardsQuestDetails,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t});\r\n\t}\r\n\r\n\tasync deleteAccount(id: string): Promise<DeleteAccountReturn> {\r\n\t\treturn await this.accountService.deleteMemberAccount({\r\n\t\t\tinput: {\r\n\t\t\t\tid,\r\n\t\t\t},\r\n\t\t});\r\n\t}\r\n\r\n\tasync updateDailyBetLimit(\r\n\t\tinput: UpdateDailyBetLimitInput,\r\n\t): Promise<UpdateAccountLimitReturn> {\r\n\t\treturn await this.accountService.updateDailyBetLimit({\r\n\t\t\tinput: {\r\n\t\t\t\tdailyBetLimit: toDecimalVariable(input.dailyBetLimit),\r\n\t\t\t},\r\n\t\t});\r\n\t}\r\n\r\n\tasync updateMonthlyBetLimit(\r\n\t\tinput: UpdateMonthlyBetLimitInput,\r\n\t): Promise<UpdateAccountLimitReturn> {\r\n\t\treturn await this.accountService.updateMonthlyBetLimit({\r\n\t\t\tinput: {\r\n\t\t\t\tmonthlyBetLimit: toDecimalVariable(input.monthlyBetLimit),\r\n\t\t\t},\r\n\t\t});\r\n\t}\r\n\r\n\tasync updateDailyDepositLimit(\r\n\t\tinput: UpdateDailyDepositLimitInput,\r\n\t): Promise<UpdateAccountLimitReturn> {\r\n\t\treturn await this.accountService.updateDailyDepositLimit({\r\n\t\t\tinput: {\r\n\t\t\t\tdailyDepositLimit: toDecimalVariable(input.dailyDepositLimit),\r\n\t\t\t},\r\n\t\t});\r\n\t}\r\n\r\n\tasync updateMonthlyDepositLimit(\r\n\t\tinput: UpdateMonthlyDepositLimitInput,\r\n\t): Promise<UpdateAccountLimitReturn> {\r\n\t\treturn await this.accountService.updateMonthlyDepositLimit({\r\n\t\t\tinput: {\r\n\t\t\t\tmonthlyDepositLimit: toDecimalVariable(input.monthlyDepositLimit),\r\n\t\t\t},\r\n\t\t});\r\n\t}\r\n\r\n\tasync unlinkGoogle(id: string): Promise<DeleteAccountReturn> {\r\n\t\treturn await this.accountService.unlinkGoogle({\r\n\t\t\tinput: {\r\n\t\t\t\tid,\r\n\t\t\t},\r\n\t\t});\r\n\t}\r\n\tasync verificationDetails(): Promise<VerificationDetailsReturn> {\r\n\t\tconst res = await this.accountService.memberVerification();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data\r\n\t\t\t\t? this.transformer.transform.verificationDetails(res.data)\r\n\t\t\t\t: null,\r\n\t\t};\r\n\t}\r\n\r\n\tasync submitVerificationDetails(\r\n\t\tinput: SubmitVerificationDetailsInput,\r\n\t): Promise<SubmitVerificationDetailsReturn> {\r\n\t\tconst id =\r\n\t\t\tinput.id ?? ObjectId.generate(ObjectType.Verification).toString();\r\n\r\n\t\tconst res = await this.accountService.createMemberVerification({\r\n\t\t\tinput: {\r\n\t\t\t\tid,\r\n\t\t\t\t...input,\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\treturn res.ok ? { ok: true, data: { id } } : res;\r\n\t}\r\n\r\n\tasync submitVerificationDetails_Next(\r\n\t\tinput: SubmitVerificationDetailsInputNext,\r\n\t): Promise<SubmitVerificationDetailsReturn> {\r\n\t\tconst id =\r\n\t\t\tinput.id ?? ObjectId.generate(ObjectType.Verification).toString();\r\n\r\n\t\tconst res = await this.accountService.createMemberVerification_Next({\r\n\t\t\tinput: {\r\n\t\t\t\tid,\r\n\t\t\t\t...input,\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\treturn res.ok ? { ok: true, data: { id } } : res;\r\n\t}\r\n\r\n\tasync updateVerificationDetails(\r\n\t\tid: string,\r\n\t\tinput: UpdateVerificationDetailsInput,\r\n\t): Promise<UpdateVerificationDetailsReturn> {\r\n\t\treturn await this.accountService.updateMemberVerification({\r\n\t\t\tinput: {\r\n\t\t\t\tid,\r\n\t\t\t\tdata: {\r\n\t\t\t\t\t...input,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t});\r\n\t}\r\n\r\n\tasync updateVerificationDetails_Next(\r\n\t\tid: string,\r\n\t\tinput: UpdateVerificationDetailsInput,\r\n\t): Promise<UpdateVerificationDetailsReturn> {\r\n\t\treturn await this.accountService.updateMemberVerification_Next({\r\n\t\t\tinput: {\r\n\t\t\t\tid,\r\n\t\t\t\tdata: {\r\n\t\t\t\t\t...input,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t});\r\n\t}\r\n\r\n\tasync submitMemberVerification(\r\n\t\tid: string,\r\n\t): Promise<SubmitMemberVerificationReturn> {\r\n\t\tconst res = await this.accountService.submitMemberVerification({\r\n\t\t\tinput: {\r\n\t\t\t\tid,\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\treturn res.ok ? { ok: true, data: { id } } : res;\r\n\t}\r\n\r\n\tasync resetPassword(input: ResetPasswordInput): Promise<ResetPasswordReturn> {\r\n\t\treturn await this.accountService.resetPassword({\r\n\t\t\tinput: {\r\n\t\t\t\tmobileNumber: addAreaCode(input.mobileNumber, await this.locale),\r\n\t\t\t\tnewPassword: await sha256(input.newPassword),\r\n\t\t\t},\r\n\t\t\tverificationCode: input.verificationCode,\r\n\t\t});\r\n\t}\r\n\r\n\tasync verifyMobileNumber(\r\n\t\tverificationCode: string,\r\n\t): Promise<VerifyMobileNumberReturn> {\r\n\t\treturn await this.accountService.verifyMobileNumber({\r\n\t\t\tinput: {\r\n\t\t\t\tverificationCode,\r\n\t\t\t},\r\n\t\t});\r\n\t}\r\n\r\n\tasync profileCompletion(): Promise<ProfileCompletionReturn> {\r\n\t\tconst res = await this.accountService.profileCompletion();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: this.transformer.transform.profileCompletion(res.data),\r\n\t\t};\r\n\t}\r\n\r\n\t/**\r\n\t * @deprecated use `sendVerificationCode__next`\r\n\t */\r\n\tasync sendVerificationCode(\r\n\t\tmobileNumber: string,\r\n\t): Promise<SendVerificationCodeReturn> {\r\n\t\tconsole.warn(\r\n\t\t\t\"'sendVerificationCode' is deprecated. Please use 'sendVerificationCode__next' instead.\",\r\n\t\t);\r\n\r\n\t\treturn await this.accountService.sendVerificationCode({\r\n\t\t\tinput: {\r\n\t\t\t\tchannel: 'SMS',\r\n\t\t\t\trecipient: addAreaCode(mobileNumber, await this.locale),\r\n\t\t\t},\r\n\t\t});\r\n\t}\r\n\r\n\tasync sendVerificationCode__next(\r\n\t\tinput: SendVerificationCodeInput__Next,\r\n\t): Promise<SendVerificationCodeReturn__Next> {\r\n\t\tif (input.type === 'SMS') {\r\n\t\t\treturn this.authService.sendVerificationCode({\r\n\t\t\t\tchannel: 'SMS',\r\n\t\t\t\trecipient: addAreaCode(input.mobileNumber, await this.locale),\r\n\t\t\t\t...(input.strict && {\r\n\t\t\t\t\tverificationType: 'MEMBER',\r\n\t\t\t\t}),\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tthrow new Error(\"'Email' verification code is not yet supported\");\r\n\t}\r\n\r\n\tasync wallet(): Promise<WalletReturn> {\r\n\t\tconst res = await this.walletService.wallet();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data ? this.transformer.transform.wallet(res.data) : null,\r\n\t\t};\r\n\t}\r\n\tasync memberWalletAccount(): Promise<MemberWalletAccountReturn> {\r\n\t\tconst res = await this.walletService.memberWalletAccount();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data\r\n\t\t\t\t? this.transformer.transform.memberWalletAccount(res.data)\r\n\t\t\t\t: null,\r\n\t\t};\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tANNOUNCEMENT\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync announcements(\r\n\t\tinput?: AnnouncementsInput,\r\n\t): Promise<AnnouncementsReturn> {\r\n\t\tconst res = await this.accountService.announcements({\r\n\t\t\t...input,\r\n\t\t\tfilter: {\r\n\t\t\t\t...input?.filter,\r\n\t\t\t\tvisibility: {\r\n\t\t\t\t\tin: ['MEMBER', 'GLOBAL'],\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\tannouncements: res.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.announcement(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t},\r\n\t\t} as AnnouncementsReturn;\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tWITHDRAWAL\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync createWithdrawal(\r\n\t\tinput: CreateWithdrawalInput,\r\n\t): Promise<CreateWithdrawalReturn> {\r\n\t\tconst id = input.id ?? ObjectId.generate(ObjectType.Withdrawal).toString();\r\n\r\n\t\tif (input.type === 'BANK') {\r\n\t\t\tconst res = await this.walletService.createBankWithdrawal({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\ttransactionPassword: await sha256(input.transactionPassword),\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t\t...(this.marketDomain && {\r\n\t\t\t\t\tdomain: this.marketDomain,\r\n\t\t\t\t}),\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'CABINET') {\r\n\t\t\tconst res = await this.extensionService.createCabinetWithdrawal({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t},\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'GCASH') {\r\n\t\t\tconst res = await this.walletService.createGCashWithdrawal({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\ttransactionPassword: await sha256(input.transactionPassword),\r\n\t\t\t\t\trecipientMobileNumber: addAreaCode(\r\n\t\t\t\t\t\tinput.recipientMobileNumber,\r\n\t\t\t\t\t\tawait this.locale,\r\n\t\t\t\t\t),\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t\t...(this.marketDomain && {\r\n\t\t\t\t\tdomain: this.marketDomain,\r\n\t\t\t\t}),\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'GCASH_STANDARD_CASHIN') {\r\n\t\t\tconst res = await this.walletService.createGCashStandardCashInWithdrawal({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\ttransactionPassword: await sha256(input.transactionPassword),\r\n\t\t\t\t\trecipientMobileNumber: addAreaCode(\r\n\t\t\t\t\t\tinput.recipientMobileNumber,\r\n\t\t\t\t\t\tawait this.locale,\r\n\t\t\t\t\t),\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t\t...(this.marketDomain && {\r\n\t\t\t\t\tdomain: this.marketDomain,\r\n\t\t\t\t}),\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'MAYA') {\r\n\t\t\tconst res = await this.walletService.createMayaWithdrawal({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\taccountNumber: addAreaCode(input.accountNumber, await this.locale),\r\n\t\t\t\t},\r\n\t\t\t\ttransactionPassword: await sha256(input.transactionPassword),\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t\t...(this.marketDomain && {\r\n\t\t\t\t\tdomain: this.marketDomain,\r\n\t\t\t\t}),\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'MAYA_APP') {\r\n\t\t\tconst res = await this.walletService.createMayaAppWithdrawal({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\ttransactionPassword: await sha256(input.transactionPassword),\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t\t...(this.marketDomain && {\r\n\t\t\t\t\tdomain: this.marketDomain,\r\n\t\t\t\t}),\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'AIO_INSTAPAY') {\r\n\t\t\tconst res = await this.walletService.createAIOInstapayWithdrawal({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\tbankCode: input.bankCode,\r\n\t\t\t\t\taccountNumber: input.accountNumber,\r\n\t\t\t\t\taccountName: input.accountName,\r\n\t\t\t\t\ttransactionPassword: await sha256(input.transactionPassword),\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t\t...(this.marketDomain && {\r\n\t\t\t\t\tdomain: this.marketDomain,\r\n\t\t\t\t}),\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\t\tif (input.type === 'AIO_INSTAPAY_NEXT') {\r\n\t\t\tconst res = await this.walletService.createAIOInstapayWithdrawal_next({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\tbankCode: input.bankCode,\r\n\t\t\t\t\taccountNumber: input.accountNumber,\r\n\t\t\t\t\ttransactionPassword: await sha256(input.transactionPassword),\r\n\t\t\t\t\taccountName: input.accountName,\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t\t...(this.marketDomain && {\r\n\t\t\t\t\tdomain: this.marketDomain,\r\n\t\t\t\t}),\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'MANUAL_UPI') {\r\n\t\t\tconst res = await this.walletService.createManualUpiWithdrawal({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\tupiId: input.upiId,\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t\t...(this.marketDomain && {\r\n\t\t\t\t\tdomain: this.marketDomain,\r\n\t\t\t\t}),\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'MANUAL_BANK') {\r\n\t\t\tconst res = await this.walletService.createManualBankWithdrawal({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\tbankAccountName: input.bankAccountName,\r\n\t\t\t\t\tbankAccountNumber: input.bankAccountNumber,\r\n\t\t\t\t\tbankIFSCCode: input.bankIFSCCode,\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t\t...(this.marketDomain && {\r\n\t\t\t\t\tdomain: this.marketDomain,\r\n\t\t\t\t}),\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\treturn { ok: true, data: { id } };\r\n\t}\r\n\r\n\tasync withdrawalRecords(\r\n\t\tinput?: WithdrawalRecordsInput,\r\n\t): Promise<WithdrawalRecordsReturn> {\r\n\t\tconst res = await this.reportService.withdrawalRecords(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\twithdrawalRecords: res.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.withdrawalRecord(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t},\r\n\t\t} as WithdrawalRecordsReturn;\r\n\t}\r\n\r\n\tasync remainingDailyWithdrawalsCount(): Promise<RemainingDailyWithdrawalsCountReturn> {\r\n\t\treturn await this.walletService.remainingDailyWithdrawalsCount();\r\n\t}\r\n\r\n\tasync instapayBankList(): Promise<InstapayBankListReturn> {\r\n\t\tconst res = await this.walletService.instapayBankList();\r\n\t\tif (!res.ok) return res;\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.map(this.transformer.transform.instapayBank),\r\n\t\t};\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tDEPOSIT\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync createDeposit(input: CreateDepositInput): Promise<CreateDepositReturn> {\r\n\t\tconst id = input.id ?? ObjectId.generate(ObjectType.Deposit).toString();\r\n\r\n\t\tconst environment = this.config.environment ?? 'development';\r\n\t\tif (input.type === 'TEST') {\r\n\t\t\tconst res = await this.walletService.createTestDeposit({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\tpromo: input.promo,\r\n\t\t\t\t},\r\n\t\t\t\t...(this.marketDomain && {\r\n\t\t\t\t\tdomain: this.marketDomain,\r\n\t\t\t\t}),\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\t\tif (input.type === 'MAYA') {\r\n\t\t\tconst res = await this.walletService.createMayaDeposit({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\tpromo: input.promo,\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t\t...(this.marketDomain && {\r\n\t\t\t\t\tdomain: this.marketDomain,\r\n\t\t\t\t}),\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'MAYA_APP') {\r\n\t\t\tconst res = await this.walletService.createMayaAppDeposit({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\tpromo: input.promo,\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t\t...(this.marketDomain && {\r\n\t\t\t\t\tdomain: this.marketDomain,\r\n\t\t\t\t}),\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'GCASH') {\r\n\t\t\tconst res = await this.walletService.createGCashDeposit({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\tpromo: input.promo,\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t\t...(this.marketDomain && {\r\n\t\t\t\t\tdomain: this.marketDomain,\r\n\t\t\t\t}),\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'AIO_GCASH') {\r\n\t\t\tconst res = await this.walletService.createAiOGCashDeposit({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\tpromo: input.promo,\r\n\t\t\t\t\tredirectUrl: `${ENDPOINTS[environment].opexapay}/aio/success?redirectUrl=${input.redirectUrl}?deposit=${id}`,\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t\t...(this.marketDomain && {\r\n\t\t\t\t\tdomain: this.marketDomain,\r\n\t\t\t\t}),\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\t\tif (input.type === 'AIO_PAY_MAYA') {\r\n\t\t\tconst res = await this.walletService.createAiOPayMayaDeposit({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\tpromo: input.promo,\r\n\t\t\t\t\tredirectUrl: `${ENDPOINTS[environment].opexapay}/aio/success?redirectUrl=${input.redirectUrl}?deposit=${id}`,\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t\t...(this.marketDomain && {\r\n\t\t\t\t\tdomain: this.marketDomain,\r\n\t\t\t\t}),\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'AIO_GRAB_PAY') {\r\n\t\t\tconst res = await this.walletService.createAiOGrabPayDeposit({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\tpromo: input.promo,\r\n\t\t\t\t\tredirectUrl: `${ENDPOINTS[environment].opexapay}/aio/success?redirectUrl=${input.redirectUrl}?deposit=${id}`,\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t\t...(this.marketDomain && {\r\n\t\t\t\t\tdomain: this.marketDomain,\r\n\t\t\t\t}),\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'AIO_PALAWAN_PAY') {\r\n\t\t\tconst res = await this.walletService.createAiOPalawanPayDeposit({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\tpromo: input.promo,\r\n\t\t\t\t\tredirectUrl: `${ENDPOINTS[environment].opexapay}/aio/success?redirectUrl=${input.redirectUrl}?deposit=${id}`,\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t\t...(this.marketDomain && {\r\n\t\t\t\t\tdomain: this.marketDomain,\r\n\t\t\t\t}),\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'AIO_ONLINE_BANK') {\r\n\t\t\tconst res = await this.walletService.createAIOOnlineBankDeposit({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\tpromo: input.promo,\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t\t...(this.marketDomain && {\r\n\t\t\t\t\tdomain: this.marketDomain,\r\n\t\t\t\t}),\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'AIO_QRPH') {\r\n\t\t\tconst res = await this.walletService.createAIOQRPHDeposit({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\tpromo: input.promo,\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t\t...(this.marketDomain && {\r\n\t\t\t\t\tdomain: this.marketDomain,\r\n\t\t\t\t}),\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\t\tif (input.type === 'MANUAL_UPI') {\r\n\t\t\tconst res = await this.walletService.createManualUPIDeposit({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\treference: input.reference,\r\n\t\t\t\t\treferenceImage: input.referenceImage,\r\n\t\t\t\t\tpromo: input.promo,\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t\t...(this.marketDomain && {\r\n\t\t\t\t\tdomain: this.marketDomain,\r\n\t\t\t\t}),\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'MANUAL_BANK') {\r\n\t\t\tconst res = await this.walletService.createManualBankDeposit({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\treferenceImage: input.referenceId,\r\n\t\t\t\t\tpromo: input.promo,\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t\t...(this.marketDomain && {\r\n\t\t\t\t\tdomain: this.marketDomain,\r\n\t\t\t\t}),\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'GCASH_WEBPAY') {\r\n\t\t\tconst res = await this.walletService.createGCashWebpayDeposit({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\tpromo: input.promo,\r\n\t\t\t\t\tcancelRedirectionUrl: input.cancelRedirectionUrl,\r\n\t\t\t\t\tsuccessRedirectionUrl: input.successRedirectionUrl,\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t\t...(this.marketDomain && {\r\n\t\t\t\t\tdomain: this.marketDomain,\r\n\t\t\t\t}),\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\tif (input.type === 'MAYA_WEBPAY') {\r\n\t\t\tconst res = await this.walletService.createMayaWebpayDeposit({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t\t\tpromo: input.promo,\r\n\t\t\t\t\tredirectUrl: input.redirectUrl,\r\n\t\t\t\t},\r\n\t\t\t\treCAPTCHAResponse: input.reCAPTCHAResponse,\r\n\t\t\t\t...(this.marketDomain && {\r\n\t\t\t\t\tdomain: this.marketDomain,\r\n\t\t\t\t}),\r\n\t\t\t});\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\t\t}\r\n\r\n\t\treturn { ok: true, data: { id } };\r\n\t}\r\n\r\n\tasync deposit(id: string): Promise<DepositReturn> {\r\n\t\tconst res = await this.walletService.deposit({ id });\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data ? this.transformer.transform.deposit(res.data) : null,\r\n\t\t};\r\n\t}\r\n\r\n\tasync depositRecords(\r\n\t\tinput?: DepositRecordsInput,\r\n\t): Promise<DepositRecordsReturn> {\r\n\t\tconst res = await this.reportService.depositRecords(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\tdepositRecords: res.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.depositRecord(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t},\r\n\t\t} as DepositRecordsReturn;\r\n\t}\r\n\r\n\tasync depositsCount(): Promise<DepositsCountReturn> {\r\n\t\treturn await this.reportService.depositsCount();\r\n\t}\r\n\r\n\tasync touchDeposit(input: TouchDepositInput): Promise<TouchDepositReturn> {\r\n\t\tswitch (input.type) {\r\n\t\t\tcase 'GCASH':\r\n\t\t\t\treturn await this.walletService.touchGCashDeposit({\r\n\t\t\t\t\tinput: { id: input.id },\r\n\t\t\t\t});\r\n\t\t\tcase 'QR_PH':\r\n\t\t\t\treturn await this.walletService.touchQrphDeposit({\r\n\t\t\t\t\tinput: { id: input.id },\r\n\t\t\t\t});\r\n\t\t\tdefault:\r\n\t\t\t\tthrow new Error(`Unsupported input type: '${input.type}'`);\r\n\t\t}\r\n\t}\r\n\r\n\tasync redeemVoucher(input: RedeemVoucherInput): Promise<RedeemVoucherReturn> {\r\n\t\treturn await this.walletService.redeemVoucher({\r\n\t\t\tinput: {\r\n\t\t\t\ttype: input.type,\r\n\t\t\t\tcode: input.code,\r\n\t\t\t},\r\n\t\t});\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tBET RECORD\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync betRecords(input?: BetRecordsInput): Promise<BetRecordsReturn> {\r\n\t\tconst res0 = await this.reportService.betRecords({\r\n\t\t\t...input,\r\n\t\t\t...(input?.filter && {\r\n\t\t\t\tfilter: {\r\n\t\t\t\t\t...(input.filter.status && {\r\n\t\t\t\t\t\tstatus: input.filter.status,\r\n\t\t\t\t\t}),\r\n\t\t\t\t\t...(input.filter.serialCode && {\r\n\t\t\t\t\t\tserialCode: input.filter.serialCode,\r\n\t\t\t\t\t}),\r\n\t\t\t\t\t...(input.filter.vendorRoundId && {\r\n\t\t\t\t\t\tvendorRoundId: input.filter.vendorRoundId,\r\n\t\t\t\t\t}),\r\n\t\t\t\t\t...(input.filter.gameType && {\r\n\t\t\t\t\t\tgame__type: input.filter.gameType,\r\n\t\t\t\t\t}),\r\n\t\t\t\t\t...(input.filter.gameProvider && {\r\n\t\t\t\t\t\tgame__provider: input.filter.gameProvider,\r\n\t\t\t\t\t}),\r\n\t\t\t\t\t...(input.filter.dateTimeCreated && {\r\n\t\t\t\t\t\tdateTimeCreated: input.filter.dateTimeCreated,\r\n\t\t\t\t\t}),\r\n\t\t\t\t\t...(input.filter.freeBetDrop && {\r\n\t\t\t\t\t\tfreeBetDrop: input.filter.freeBetDrop,\r\n\t\t\t\t\t}),\r\n\t\t\t\t},\r\n\t\t\t}),\r\n\t\t});\r\n\r\n\t\tif (!res0.ok) return res0;\r\n\r\n\t\tconst ids = [...new Set(res0.data.edges.map((e) => e.node.game.id))];\r\n\r\n\t\tif (ids.length <= 0) {\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: {\r\n\t\t\t\t\tbetRecords: [],\r\n\t\t\t\t\ttotalCount: 0,\r\n\t\t\t\t\tendCursor: undefined,\r\n\t\t\t\t\thasNextPage: false,\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tconst res1 = await this.cmsPortalService.games({\r\n\t\t\tfilter: {\r\n\t\t\t\treference: {\r\n\t\t\t\t\tin: ids,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res1.ok) return res1;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\tbetRecords: res0.data.edges.map(({ cursor, node }) => {\r\n\t\t\t\t\tconst game = res1.data.edges.find(\r\n\t\t\t\t\t\t(e) => node.game.id === e.node.reference,\r\n\t\t\t\t\t)?.node;\r\n\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\t...this.transformer.transform.betRecord({\r\n\t\t\t\t\t\t\t...node,\r\n\t\t\t\t\t\t\tgame,\r\n\t\t\t\t\t\t}),\r\n\t\t\t\t\t\tcursor,\r\n\t\t\t\t\t};\r\n\t\t\t\t}),\r\n\t\t\t\ttotalCount: res0.data.totalCount,\r\n\t\t\t\tendCursor: res0.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t\thasNextPage: res0.data.pageInfo.hasNextPage,\r\n\t\t\t},\r\n\t\t} as BetRecordsReturn;\r\n\t}\r\n\r\n\tasync latestBetRecords(): Promise<LatestBetRecordsReturn> {\r\n\t\tconst res0 = await this.portalService.latestBetRecords();\r\n\r\n\t\tif (!res0.ok) return res0;\r\n\r\n\t\tconst ids = [...new Set(res0.data.map((o) => o.game.id))];\r\n\r\n\t\tif (ids.length <= 0) {\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: [],\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tconst res1 = await this.cmsPortalService.games({\r\n\t\t\tfilter: {\r\n\t\t\t\treference: {\r\n\t\t\t\t\tin: ids,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res1.ok) return res1;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res0.data.map((o) => {\r\n\t\t\t\tconst game = res1.data.edges.find(\r\n\t\t\t\t\t(e) => e.node.reference === o.game.id,\r\n\t\t\t\t)?.node;\r\n\r\n\t\t\t\treturn this.transformer.transform.latestBetRecord({\r\n\t\t\t\t\t...o,\r\n\t\t\t\t\tgame,\r\n\t\t\t\t});\r\n\t\t\t}),\r\n\t\t};\r\n\t}\r\n\tasync freeBetDrops(input?: FreeBetDropsInput): Promise<FreeBetDropsReturn> {\r\n\t\tconst res = await this.reportService.freeBetDrops(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\tfreeBetDrops: res.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.freeBetDrops(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t},\r\n\t\t} as FreeBetDropsReturn;\r\n\t}\r\n\tasync memberFreeBetDrops(\r\n\t\tinput?: MemberFreeBetDropsInput,\r\n\t): Promise<MemberFreeBetDropsReturn> {\r\n\t\tconst res = await this.reportService.memberFreeBetDrops(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\tfreeBetDrops: res.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.memberFreeBetDrops(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t},\r\n\t\t} as MemberFreeBetDropsReturn;\r\n\t}\r\n\r\n\tasync cancelFreeBetDrop(\r\n\t\tinput: CancelFreeBetDropInput,\r\n\t): Promise<CancelFreeBetDropReturn> {\r\n\t\treturn await this.walletService.cancelFreeBetDrop(input);\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tTRANSACTION\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync transactionRecords(\r\n\t\tinput?: TransactionRecordsInput,\r\n\t): Promise<TransactionRecordsReturn> {\r\n\t\tconst res = await this.reportService.transactionRecords(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\ttransactionRecords: res.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.transactionRecord(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t},\r\n\t\t} as TransactionRecordsReturn;\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tPROMO\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync promos(): Promise<PromosReturn> {\r\n\t\tconst res = await this.walletService.promos();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.map(this.transformer.transform.promo),\r\n\t\t};\r\n\t}\r\n\r\n\tasync availablePromos(\r\n\t\tinput?: PromoFilterInput,\r\n\t): Promise<AvailablePromosReturn> {\r\n\t\tconst res = await this.walletService.availablePromos(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.map(this.transformer.transform.promo),\r\n\t\t};\r\n\t}\r\n\r\n\tasync cashbacks(): Promise<CashbacksReturn> {\r\n\t\tconst res = await this.walletService.cashbacks();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.map(this.transformer.transform.cashback),\r\n\t\t};\r\n\t}\r\n\r\n\tasync promosAndCashbacks(): Promise<PromosAndCashbacksReturn> {\r\n\t\tconst res = await this.walletService.promosAndCashbacks();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\tpromos: res.data.promos.map(this.transformer.transform.promo),\r\n\t\t\t\tcashbacks: res.data.cashbacks.map(this.transformer.transform.cashback),\r\n\t\t\t},\r\n\t\t};\r\n\t}\r\n\r\n\t/** @deprecated */\r\n\tasync bonus(): Promise<BonusReturn> {\r\n\t\tconsole.warn(\"'bonus' is deprecated. Please use 'bonuses' instead.\");\r\n\r\n\t\tconst res = await this.walletService.bonus();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data ? this.transformer.transform.bonus(res.data) : null,\r\n\t\t};\r\n\t}\r\n\r\n\tasync bonuses(): Promise<BonusesReturn> {\r\n\t\tconst res = await this.walletService.bonuses();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.map(this.transformer.transform.bonus),\r\n\t\t};\r\n\t}\r\n\r\n\tasync cashbackBonuses(): Promise<CashbackBonusReturn> {\r\n\t\tconst res = await this.walletService.cashbackBonuses();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.map(this.transformer.transform.cashbackBonus),\r\n\t\t};\r\n\t}\r\n\r\n\tasync claimCashbackBonus(id: string): Promise<ClaimCashbackBonusReturn> {\r\n\t\treturn await this.walletService.claimCashbackBonus({ input: { id } });\r\n\t}\r\n\r\n\tasync claimRebate(id: string): Promise<ClaimRebateReturn> {\r\n\t\treturn await this.walletService.claimRebate({ input: { id } });\r\n\t}\r\n\r\n\tasync claimSpotBonus(code: string): Promise<ClaimSpotBonusReturn> {\r\n\t\treturn await this.walletService.claimSpotBonus({ code: code });\r\n\t}\r\n\r\n\tasync promoByCode(code: string): Promise<PromoByCodeReturn> {\r\n\t\tconst res = await this.reportService.promoByCode({ code: code });\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: this.transformer.transform.promoByCode(res.data),\r\n\t\t};\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tGAME\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync game(id: string): Promise<GameReturn> {\r\n\t\tconst res = await this.cmsPortalService.game(id);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data ? this.transformer.transform.game(res.data) : null,\r\n\t\t};\r\n\t}\r\n\r\n\t/** @deprecated */\r\n\tasync games(input?: GamesInput): Promise<GamesReturn> {\r\n\t\tconsole.warn(\"'games' is deprecated. Please use 'games__next' instead.\");\r\n\r\n\t\tconst res = await this.cmsPortalService.games(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\tgames: res.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.game(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t},\r\n\t\t} as GamesReturn;\r\n\t}\r\n\r\n\tasync walletGames(input?: WalletGameInput): Promise<WalletGamesReturn> {\r\n\t\tconsole.warn(\r\n\t\t\t\"'walletGames games' is deprecated. This is for testing purpose only.\",\r\n\t\t);\r\n\r\n\t\tconst res = await this.walletService.walletGames(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\tgames: res.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...node,\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t},\r\n\t\t} as WalletGamesReturn;\r\n\t}\r\n\r\n\tasync platformGames(\r\n\t\tinput?: PlatformGamesInput,\r\n\t): Promise<PlatformGamesReturn> {\r\n\t\tconst res = await this.walletService.platformGames(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\tplatformGames: res.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...node,\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t},\r\n\t\t} as PlatformGamesReturn;\r\n\t}\r\n\r\n\tasync games__next(input?: GamesInput__Next): Promise<GamesReturn> {\r\n\t\tconst res = await this.cmsPortalService.games__next(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\tgames: res.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.game(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t},\r\n\t\t} as GamesReturn;\r\n\t}\r\n\r\n\tasync recommendedGames(\r\n\t\tinput?: RecommendedGamesInput,\r\n\t): Promise<RecommendedGamesReturn> {\r\n\t\tconst res0 = await this.portalService.recommendedGames();\r\n\r\n\t\tif (!res0.ok) return res0;\r\n\r\n\t\tconst ids = [...new Set(res0.data.map((o) => o.id))];\r\n\r\n\t\tif (ids.length <= 0) {\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: {\r\n\t\t\t\t\tgames: [],\r\n\t\t\t\t\ttotalCount: 0,\r\n\t\t\t\t\thasNextPage: false,\r\n\t\t\t\t\tendCursor: undefined,\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tconst res1 = await this.cmsPortalService.games({\r\n\t\t\tfirst: input?.first,\r\n\t\t\tafter: input?.after,\r\n\t\t\tfilter: {\r\n\t\t\t\treference: {\r\n\t\t\t\t\tin: ids,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res1.ok) return res1;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\tgames: res1.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.game(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: res1.data.totalCount,\r\n\t\t\t\thasNextPage: res1.data.pageInfo.hasNextPage,\r\n\t\t\t\tendCursor: res1.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t},\r\n\t\t} as RecommendedGamesReturn;\r\n\t}\r\n\r\n\tasync gameSession(\r\n\t\tid: string,\r\n\t\tgameProvider?: GameProvider,\r\n\t): Promise<GameSessionReturn> {\r\n\t\tif (gameProvider) {\r\n\t\t\tconst res = NEW_GAME_PROVIDERS.includes(gameProvider)\r\n\t\t\t\t? await this.walletService.gameSession({ id })\r\n\t\t\t\t: await this.gameService.gameSession({ id });\r\n\r\n\t\t\tif (!res.ok) return res;\r\n\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: res.data\r\n\t\t\t\t\t? this.transformer.transform.gameSession(res.data)\r\n\t\t\t\t\t: null,\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tconst res0 = await this.walletService.gameSession({ id });\r\n\r\n\t\tif (!res0.ok) return res0;\r\n\r\n\t\tif (res0.data) {\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: this.transformer.transform.gameSession(res0.data),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tconst res1 = await this.gameService.gameSession({ id });\r\n\r\n\t\tif (!res1.ok) return res1;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res1.data\r\n\t\t\t\t? this.transformer.transform.gameSession(res1.data)\r\n\t\t\t\t: null,\r\n\t\t};\r\n\t}\r\n\r\n\tasync createGameSession(\r\n\t\tinput: CreateGameSessionInput,\r\n\t): Promise<CreateGameSessionReturn> {\r\n\t\tconst id = input.id ?? ObjectId.generate(ObjectType.GameSession).toString();\r\n\r\n\t\tif (input.provider) {\r\n\t\t\tconst res = NEW_GAME_PROVIDERS.includes(input.provider)\r\n\t\t\t\t? await this.walletService.createGameSession({\r\n\t\t\t\t\t\tinput: {\r\n\t\t\t\t\t\t\tid,\r\n\t\t\t\t\t\t\tgame: input.reference,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t...(this.marketDomain && {\r\n\t\t\t\t\t\t\tdomain: this.marketDomain,\r\n\t\t\t\t\t\t}),\r\n\t\t\t\t\t})\r\n\t\t\t\t: await this.gameService.createGameSession({\r\n\t\t\t\t\t\tinput: {\r\n\t\t\t\t\t\t\tid,\r\n\t\t\t\t\t\t\tgame: input.reference,\r\n\t\t\t\t\t\t\thomepageUrl:\r\n\t\t\t\t\t\t\t\ttypeof window === 'undefined' ? undefined : input.homepageUrl,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t...(this.marketDomain && {\r\n\t\t\t\t\t\t\tdomain: this.marketDomain,\r\n\t\t\t\t\t\t}),\r\n\t\t\t\t\t});\r\n\r\n\t\t\treturn res.ok ? { ok: true, data: { id } } : res;\r\n\t\t}\r\n\r\n\t\tconst isSports = input.game.startsWith('SPORTS:');\r\n\r\n\t\tif (isSports) {\r\n\t\t\tconst game = await ObjectId.generateFromKey(\r\n\t\t\t\tObjectType.Game,\r\n\t\t\t\tinput.game,\r\n\t\t\t).then((generatedId) => {\r\n\t\t\t\treturn generatedId.toString();\r\n\t\t\t});\r\n\r\n\t\t\tconst res0 = await this.gameService.createGameSession({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tgame,\r\n\t\t\t\t},\r\n\t\t\t});\r\n\r\n\t\t\treturn res0.ok ? { ok: true, data: { id } } : res0;\r\n\t\t}\r\n\r\n\t\tconst res0 = await this.game(input.game);\r\n\r\n\t\tif (!res0.data) {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: {\r\n\t\t\t\t\tname: res0.error?.name ?? 'GameDoesNotExistError',\r\n\t\t\t\t\tmessage: res0.error?.message ?? 'Game does not exist',\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tconst { provider, reference } = res0.data;\r\n\r\n\t\tconst res1 = NEW_GAME_PROVIDERS.includes(provider)\r\n\t\t\t? await this.walletService.createGameSession({\r\n\t\t\t\t\tinput: { id, game: reference },\r\n\t\t\t\t\t...(this.marketDomain && {\r\n\t\t\t\t\t\tdomain: this.marketDomain,\r\n\t\t\t\t\t}),\r\n\t\t\t\t})\r\n\t\t\t: await this.gameService.createGameSession({\r\n\t\t\t\t\tinput: {\r\n\t\t\t\t\t\tid,\r\n\t\t\t\t\t\tgame: reference,\r\n\t\t\t\t\t\thomepageUrl:\r\n\t\t\t\t\t\t\ttypeof window === 'undefined' ? undefined : input.homepageUrl,\r\n\t\t\t\t\t},\r\n\t\t\t\t\t...(this.marketDomain && {\r\n\t\t\t\t\t\tdomain: this.marketDomain,\r\n\t\t\t\t\t}),\r\n\t\t\t\t});\r\n\r\n\t\treturn res1.ok ? { ok: true, data: { id } } : res1;\r\n\t}\r\n\r\n\tasync endGameSession(\r\n\t\tid: string,\r\n\t\tgameProvider?: GameProvider,\r\n\t): Promise<EndGameSessionReturn> {\r\n\t\tif (gameProvider) {\r\n\t\t\treturn NEW_GAME_PROVIDERS.includes(gameProvider)\r\n\t\t\t\t? await this.walletService.endGameSession({ input: { id } })\r\n\t\t\t\t: await this.gameService.endGameSession({ input: { id } });\r\n\t\t}\r\n\r\n\t\tconst res0 = await this.walletService.endGameSession({ input: { id } });\r\n\t\tif (res0.ok) return res0;\r\n\t\tconst res1 = await this.gameService.endGameSession({ input: { id } });\r\n\t\treturn res1;\r\n\t}\r\n\r\n\tasync markGameAsFavorite(\r\n\t\tinput: MarkGameAsFavoriteInput,\r\n\t): Promise<MarkGameAsFavoriteReturn> {\r\n\t\treturn await this.walletService.markGameAsFavorite({ input });\r\n\t}\r\n\r\n\tasync unmarkGameAsFavorite(\r\n\t\tinput: UnmarkGameAsFavoriteInput,\r\n\t): Promise<UnmarkGameAsFavoriteReturn> {\r\n\t\treturn await this.walletService.unmarkGameAsFavorite({ input });\r\n\t}\r\n\r\n\tasync favoriteGames(): Promise<FavoriteGamesReturn> {\r\n\t\tconst res0 = await this.walletService.favoriteGames();\r\n\r\n\t\tconst ids = res0.data?.length\r\n\t\t\t? [...new Set(res0.data.map((e) => e.id))]\r\n\t\t\t: [];\r\n\r\n\t\tif (ids.length <= 0) {\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: [],\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tconst res1 = await this.cmsPortalService.games({\r\n\t\t\tfilter: {\r\n\t\t\t\treference: {\r\n\t\t\t\t\tin: ids,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res1.ok) return res1;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata:\r\n\t\t\t\tres0.data\r\n\t\t\t\t\t?.map(({ id }) => {\r\n\t\t\t\t\t\tconst game = res1.data.edges.find(\r\n\t\t\t\t\t\t\t(e) => id === e.node.reference,\r\n\t\t\t\t\t\t)?.node;\r\n\t\t\t\t\t\treturn game ? this.transformer.transform.game(game) : null;\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.filter(Boolean) ?? [],\r\n\t\t} as FavoriteGamesReturn;\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tFILE\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync file(id: string): Promise<FileReturn> {\r\n\t\tconst res = await this.fileService.file({ id });\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data ? this.transformer.transform.file(res.data) : null,\r\n\t\t};\r\n\t}\r\n\r\n\t/**\r\n\t * Similar to `file` query but uses the account service.\r\n\t */\r\n\tasync _file(id: string): Promise<FileReturn> {\r\n\t\tconst res = await this.accountService.file({ id });\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data ? this.transformer.transform.file(res.data) : null,\r\n\t\t};\r\n\t}\r\n\r\n\tasync uploadImageFile(\r\n\t\tinput: UploadImageFileInput,\r\n\t): Promise<UploadImageFileReturn> {\r\n\t\tconst id = input.id ?? ObjectId.generate(ObjectType.File).toString();\r\n\r\n\t\tconst res = await this.fileService.uploadPrivateImageFile({\r\n\t\t\tinput: {\r\n\t\t\t\tid,\r\n\t\t\t\tfile: input.file,\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\treturn res.ok ? { ok: true, data: { id } } : res;\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tPOINTS\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync pointsWallet(): Promise<PointsWalletReturn> {\r\n\t\tconst res = await this.walletService.pointsWallet();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data ? this.transformer.transform.pointsWallet(res.data) : null,\r\n\t\t};\r\n\t}\r\n\r\n\tasync redeemPoints(input: RedeemPointsInput): Promise<RedeemPointsReturn> {\r\n\t\treturn await this.walletService.redeemPointsToCash({\r\n\t\t\tinput: {\r\n\t\t\t\tamount: input.amount.toString(),\r\n\t\t\t},\r\n\t\t});\r\n\t}\r\n\r\n\tasync pointsWalletTransactions(\r\n\t\tinput?: PointsWalletTransactionsInput,\r\n\t): Promise<PointsWalletTransactionsReturn> {\r\n\t\tconst res = await this.reportService.pointsWalletTransactions(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\tpointsWalletTransactions: res.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.pointsWalletTransaction(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t},\r\n\t\t} as PointsWalletTransactionsReturn;\r\n\t}\r\n\r\n\tasync achievementPointsHistoryRecord(\r\n\t\tinput?: AchievementPointsHistoryRecordInput,\r\n\t): Promise<AchievementPointsHistoryRecordReturn> {\r\n\t\tconst res = await this.reportService.achievementPointsHistoryRecord(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\tachievementPointsHistoryRecords: res.data.edges.map(\r\n\t\t\t\t\t({ cursor, node }) => ({\r\n\t\t\t\t\t\t...this.transformer.transform.achievementPointsHistoryRecord(node),\r\n\t\t\t\t\t\tcursor,\r\n\t\t\t\t\t}),\r\n\t\t\t\t),\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t},\r\n\t\t} as AchievementPointsHistoryRecordReturn;\r\n\t}\r\n\r\n\tasync memberAchievements(): Promise<MemberAchievementReturn> {\r\n\t\tconst res = await this.reportService.memberAchievements();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data\r\n\t\t\t\t? this.transformer.transform.memberAchievements(res.data)\r\n\t\t\t\t: null,\r\n\t\t};\r\n\t}\r\n\r\n\tasync memberRebates(\r\n\t\tinput?: MemberRebatesInput,\r\n\t): Promise<MemberRebatesReturn> {\r\n\t\tconst res = await this.reportService.memberRebates(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\trebates: res.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.rebate(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t},\r\n\t\t} as MemberRebatesReturn;\r\n\t}\r\n\r\n\tasync memberRebateContribution(\r\n\t\tinput?: MemberRebateContributionInput,\r\n\t): Promise<MemberRebateContributionReturn> {\r\n\t\tconst res = await this.reportService.memberRebateContribution(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\trebates: res.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.memberRebateContribution(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t},\r\n\t\t} as MemberRebateContributionReturn;\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tACTIVITY RECORD\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync activityRecords(\r\n\t\tinput?: ActivityRecordsInput,\r\n\t): Promise<ActivityRecordsReturn> {\r\n\t\tconst res = await this.reportService.activityRecords(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\tactivityRecords: res.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.activityRecord(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t},\r\n\t\t} as ActivityRecordsReturn;\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tREFERRAL\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync referralCode(): Promise<ReferralCodeReturn> {\r\n\t\tconst res = await this.accountService.referralCode();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data ?? null,\r\n\t\t};\r\n\t}\r\n\r\n\tasync updateReferralCode(\r\n\t\tinput: UpdateReferralCodeInput,\r\n\t): Promise<UpdateReferralCodeReturn> {\r\n\t\treturn await this.accountService.updateReferralCode({ input });\r\n\t}\r\n\r\n\tasync referrals(input?: ReferralsInput): Promise<ReferralsReturn> {\r\n\t\tconst res = await this.reportService.referrals(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\treferrals: res.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.referral(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t},\r\n\t\t} as ReferralsReturn;\r\n\t}\r\n\r\n\tasync referralCommission(): Promise<ReferralCommissionReturn> {\r\n\t\tconst res = await this.reportService.referralCommission();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data\r\n\t\t\t\t? this.transformer.transform.referralCommission(res.data)\r\n\t\t\t\t: null,\r\n\t\t};\r\n\t}\r\n\r\n\tasync uplinesByName(input: UplinesByNameInput): Promise<UplinesByNameReturn> {\r\n\t\tconst res = await this.reportService.uplinesByName(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.map(this.transformer.transform.referral),\r\n\t\t};\r\n\t}\r\n\r\n\tasync downlinesByName(\r\n\t\tinput: DownlinesByNameInput,\r\n\t): Promise<DownlinesByNameReturn> {\r\n\t\tconst res = await this.reportService.downlinesByName(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.map(this.transformer.transform.referral),\r\n\t\t};\r\n\t}\r\n\r\n\tasync pointsClubSettings(): Promise<PointsClubSettingsReturn> {\r\n\t\tconst res = await this.accountService.pointsClubSettings();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data\r\n\t\t\t\t? this.transformer.transform.pointsClubSettings(res.data)\r\n\t\t\t\t: null,\r\n\t\t};\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tMESSAGES\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync messages(input?: MessagesInput): Promise<MessagesReturn> {\r\n\t\tconst res = await this.triggerService.messages(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\tmessages: res.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.message(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t},\r\n\t\t} as MessagesReturn;\r\n\t}\r\n\r\n\tasync unreadMessagesCount(\r\n\t\tinput?: UnreadMessagesCountInput,\r\n\t): Promise<UnreadMessagesCountReturn> {\r\n\t\treturn await this.triggerService.unreadMessagesCount(input);\r\n\t}\r\n\r\n\tasync markMessageAsRead(id: string): Promise<MarkMessageAsReadReturn> {\r\n\t\treturn await this.triggerService.markMessageAsRead({ id });\r\n\t}\r\n\r\n\t/**\r\n\t * @deprecated\r\n\t */\r\n\tasync markAllMessageAsRead(): Promise<MarkAllMessagesAsReadReturn> {\r\n\t\treturn await this.triggerService.markAllMessageAsRead();\r\n\t}\r\n\r\n\tasync markAllMessagesAsRead(): Promise<MarkAllMessagesAsReadReturn> {\r\n\t\treturn await this.triggerService.markAllMessagesAsRead();\r\n\t}\r\n\r\n\tasync claimReward(id: string): Promise<ClaimRewardReturn> {\r\n\t\treturn await this.triggerService.claimReward({ id });\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tONBOARDING\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync onboardingStatus(): Promise<OnboardingStatusReturn> {\r\n\t\tconst res = await this.portalService.onboardingStatus();\r\n\t\tif (!res.ok) return res;\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data,\r\n\t\t};\r\n\t}\r\n\r\n\tasync completeOnboarding(\r\n\t\tinput: CompleteOnboardingInput,\r\n\t): Promise<CompleteOnboardingReturn> {\r\n\t\treturn await this.portalService.completeOnboarding({\r\n\t\t\tinput: {\r\n\t\t\t\tfavoriteGameTypes: input.favoriteGameTypes,\r\n\t\t\t\tplayerExperience: input.playerExperience,\r\n\t\t\t},\r\n\t\t});\r\n\t}\r\n\r\n\tasync skipOnboarding(): Promise<SkipOnboardingReturn> {\r\n\t\treturn await this.portalService.skipOnboarding();\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tQUEST\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync availableQuests(): Promise<AvailableQuestsReturn> {\r\n\t\tconst res = await this.triggerService.availableQuests();\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data.map(this.transformer.transform.quest),\r\n\t\t};\r\n\t}\r\n\r\n\tasync checkInDailyQuest(id: string): Promise<CheckInDailyQuestReturn> {\r\n\t\treturn await this.triggerService.checkInDailyQuest({ input: { id } });\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tTOP WINS\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync topWins(): Promise<TopWinsReturn> {\r\n\t\tconst res0 = await this.portalService.topWins();\r\n\r\n\t\tconst ids = res0.data?.length\r\n\t\t\t? [...new Set(res0.data.map((e) => e.game.id))]\r\n\t\t\t: [];\r\n\r\n\t\tif (ids.length <= 0) {\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: [],\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tconst res1 = await this.cmsPortalService.games({\r\n\t\t\tfilter: {\r\n\t\t\t\treference: {\r\n\t\t\t\t\tin: ids,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res1.ok) return res1;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res0?.data?.map((o) => {\r\n\t\t\t\tconst game = res1.data.edges.find(\r\n\t\t\t\t\t(e) => e.node.reference === o.game.id,\r\n\t\t\t\t)?.node;\r\n\r\n\t\t\t\treturn this.transformer.transform.topWin({\r\n\t\t\t\t\t...o,\r\n\t\t\t\t\tgame,\r\n\t\t\t\t});\r\n\t\t\t}),\r\n\t\t} as TopWinsReturn;\r\n\t}\r\n\r\n\tasync topWinsNext(): Promise<TopWinsReturn> {\r\n\t\tconst res0 = await this.portalService.topWinsNext();\r\n\r\n\t\tconst ids = res0.data?.length\r\n\t\t\t? [...new Set(res0.data.map((e) => e.game.id))]\r\n\t\t\t: [];\r\n\r\n\t\tif (ids.length <= 0) {\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata: [],\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tconst res1 = await this.cmsPortalService.games({\r\n\t\t\tfilter: {\r\n\t\t\t\treference: {\r\n\t\t\t\t\tin: ids,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif (!res1.ok) return res1;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res0?.data?.map((o) => {\r\n\t\t\t\tconst game = res1.data.edges.find(\r\n\t\t\t\t\t(e) => e.node.reference === o.game.id,\r\n\t\t\t\t)?.node;\r\n\r\n\t\t\t\treturn this.transformer.transform.topWin({\r\n\t\t\t\t\t...o,\r\n\t\t\t\t\tgame,\r\n\t\t\t\t});\r\n\t\t\t}),\r\n\t\t} as TopWinsReturn;\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tJACKPOT\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync jackpots(input?: JackpotsInput): Promise<JackpotsReturn> {\r\n\t\tconst res = await this.reportService.jackpots(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\tjackpots: res.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.jackpots(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t},\r\n\t\t} as JackpotsReturn;\r\n\t}\r\n\r\n\tasync jackpotsIds(input?: JackpotsIdsInput): Promise<JackpotsIdsReturn> {\r\n\t\tconst res = await this.reportService.jackpotsIds(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\tjackpots: res.data.edges.map(({ node }) => node.id),\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t},\r\n\t\t};\r\n\t}\r\n\r\n\tasync _jackpots(input?: _JackpotsInput): Promise<_JackpotsReturn> {\r\n\t\tconst res = await this.reportService._jackpots(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\t_jackpots: res.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.jackpots(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t},\r\n\t\t} as _JackpotsReturn;\r\n\t}\r\n\r\n\tasync jackpotPayouts(\r\n\t\tinput?: JackpotPayoutsInput,\r\n\t): Promise<JackpotPayoutsReturn> {\r\n\t\tconst res = await this.reportService.jackpotPayouts(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\tjackpotPayouts: res.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.jackpotPayouts(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t},\r\n\t\t} as JackpotPayoutsReturn;\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tTOURNAMENTS\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync tournaments(input?: TournamentsInput): Promise<TournamentsReturn> {\r\n\t\tconst res = await this.reportService.tournaments(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\ttournaments: res.data.edges.map(({ cursor, node }) => ({\r\n\t\t\t\t\t...this.transformer.transform.tournaments(node),\r\n\t\t\t\t\tcursor,\r\n\t\t\t\t})),\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t},\r\n\t\t} as TournamentsReturn;\r\n\t}\r\n\r\n\tasync tournamentsIds(\r\n\t\tinput?: TournamentsIdsInput,\r\n\t): Promise<TournamentsIdsReturn> {\r\n\t\tconst res = await this.reportService.tournamentsIds(input);\r\n\r\n\t\tif (!res.ok) return res;\r\n\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: {\r\n\t\t\t\ttournaments: res.data.edges.map(({ node }) => node.id),\r\n\t\t\t\thasNextPage: res.data.pageInfo.hasNextPage,\r\n\t\t\t\ttotalCount: res.data.totalCount,\r\n\t\t\t\tendCursor: res.data.pageInfo.endCursor ?? undefined,\r\n\t\t\t},\r\n\t\t};\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tFCM/FIREBASE\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync registerFCMDevice(\r\n\t\tinput: RegisterFCMDeviceInput,\r\n\t): Promise<RegisterFCMDeviceReturn> {\r\n\t\treturn await this.triggerService.registerFCMDevice({ input });\r\n\t}\r\n\r\n\tasync unregisterFCMDevice(\r\n\t\tinput: UnregisterFCMDeviceInput,\r\n\t): Promise<UnregisterFCMDeviceReturn> {\r\n\t\treturn await this.triggerService.unregisterFCMDevice({ input });\r\n\t}\r\n\r\n\tasync linkFirebaseCloudMessagingDevice(\r\n\t\tinput: LinkFirebaseCloudMessagingDeviceInput,\r\n\t): Promise<LinkFirebaseCloudMessagingDeviceReturn> {\r\n\t\treturn await this.triggerService.linkFirebaseCloudMessagingDevice({\r\n\t\t\tinput,\r\n\t\t});\r\n\t}\r\n\r\n\tasync unlinkFirebaseCloudMessagingDevice(\r\n\t\tinput: UnlinkFirebaseCloudMessagingDeviceInput,\r\n\t): Promise<UnlinkFirebaseCloudMessagingDeviceReturn> {\r\n\t\treturn await this.triggerService.unlinkFirebaseCloudMessagingDevice({\r\n\t\t\tinput,\r\n\t\t});\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tTHIRD PARTY\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync googleClientId(): Promise<GoogleClientIdReturn> {\r\n\t\tconst res = await this.accountService.googleClientId();\r\n\t\tif (!res.ok) return res;\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data ?? null,\r\n\t\t};\r\n\t}\r\n\r\n\tasync requireFirstDeposit(): Promise<RequireFirstDepositReturn> {\r\n\t\tconst res = await this.accountService.requireFirstDeposit();\r\n\t\tif (!res.ok) return res;\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data ?? false,\r\n\t\t};\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tMEMBER VERIFICATION REQUEST\r\n\t *=============================================\r\n\t */\r\n\r\n\tasync memberVerificationRequest(): Promise<MemberVerificationRequestReturn> {\r\n\t\tconst res = await this.accountService.memberVerificationRequest();\r\n\t\tif (!res.ok) return res;\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data\r\n\t\t\t\t? this.transformer.transform.memberVerificationRequest(res.data)\r\n\t\t\t\t: null,\r\n\t\t};\r\n\t}\r\n\r\n\tasync memberVerificationRequestById(\r\n\t\tid: string,\r\n\t): Promise<MemberVerificationRequestReturn> {\r\n\t\tconst res = await this.accountService.memberVerificationRequestById({ id });\r\n\t\tif (!res.ok) return res;\r\n\t\treturn {\r\n\t\t\tok: true,\r\n\t\t\tdata: res.data\r\n\t\t\t\t? this.transformer.transform.memberVerificationRequest(res.data)\r\n\t\t\t\t: null,\r\n\t\t};\r\n\t}\r\n\r\n\tasync submitMemberVerificationRequestBasicDetails(\r\n\t\tinput: SubmitMemberVerificationRequestBasicDetailsInput,\r\n\t): Promise<SubmitMemberVerificationRequestBasicDetailsReturn> {\r\n\t\treturn await this.accountService.submitMemberVerificationRequestBasicDetails(\r\n\t\t\t{\r\n\t\t\t\tinput: {\r\n\t\t\t\t\t...input,\r\n\t\t\t\t\tdateOfBirth: this.formatYmd(input.dateOfBirth),\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t);\r\n\t}\r\n\r\n\tasync submitMemberVerificationRequestImageDetails(\r\n\t\tinput: SubmitMemberVerificationRequestImageDetailsInput,\r\n\t): Promise<SubmitMemberVerificationRequestImageDetailsReturn> {\r\n\t\treturn await this.accountService.submitMemberVerificationRequestImageDetails(\r\n\t\t\t{ input },\r\n\t\t);\r\n\t}\r\n\r\n\tasync submitMemberVerificationRequestPersonalDetails(\r\n\t\tinput: SubmitMemberVerificationRequestPersonalDetailsInput,\r\n\t): Promise<SubmitMemberVerificationRequestPersonalDetailsReturn> {\r\n\t\treturn await this.accountService.submitMemberVerificationRequestPersonalDetails(\r\n\t\t\t{ input },\r\n\t\t);\r\n\t}\r\n\r\n\tasync memberVerificationRequestAutomaticApprovalEnabled(): Promise<MemberVerificationRequestAutomaticApprovalEnabledReturn> {\r\n\t\treturn await this.accountService.memberVerificationRequestAutomaticApprovalEnabled();\r\n\t}\r\n\r\n\t/*\r\n\t *=============================================\r\n\t * \tUTILS\r\n\t *=============================================\r\n\t */\r\n\r\n\tprivate formatYmd(date: Date | string): string {\r\n\t\tconst date_ = date instanceof Date ? date : new Date(date);\r\n\t\tconst ensure2Digits = (n: number) => n.toString().padStart(2, '0');\r\n\r\n\t\tconst y = date_.getFullYear();\r\n\t\tconst m = ensure2Digits(date_.getMonth() + 1);\r\n\t\tconst d = ensure2Digits(date_.getDate());\r\n\r\n\t\treturn `${y}-${m}-${d}`;\r\n\t}\r\n}\r\n\r\nconst NEW_GAME_PROVIDERS: GameProvider[] = [\r\n\t/**/\r\n\t'RTG',\r\n\t'DARWIN',\r\n\t'DRBINGO',\r\n\t'MEGABALL',\r\n\t'MEGA2SPIN',\r\n\t'EVOLUTION',\r\n\t'DIGITAIN',\r\n\t'EVOLUTION_NETENT',\r\n\t'ETENGJUE',\r\n\t'EVOLUTION_REDTIGER',\r\n\t'EVOLUTION_TAP_A_ROO',\r\n\t'HOLLYWOODTV',\r\n\t'NO_LIMIT_CITY',\r\n\t'BIG_TIME_GAMING',\r\n\t'SAGAMING',\r\n\t'JK8',\r\n\t'TEST',\r\n\t'RUBYPLAY',\r\n\t'ORTIZ',\r\n\t'SIMPLEPLAY',\r\n];\r\n\r\nexport const ENDPOINTS = {\r\n\tdevelopment: {\r\n\t\tauth: 'https://auth.development.opexa.io',\r\n\t\tgame: 'https://game.development.opexa.io/graphql',\r\n\t\textension: 'https://extension.development.opexa.io/graphql',\r\n\t\tfile: 'https://file.development.opexa.io/graphql',\r\n\t\treport: 'https://report.development.opexa.io/graphql',\r\n\t\twallet: 'https://wallet.development.opexa.io/graphql',\r\n\t\taccount: 'https://account.development.opexa.io/graphql',\r\n\t\tportal: 'https://portal.development.opexa.io/graphql',\r\n\t\ttrigger: 'https://trigger.development.opexa.io/graphql',\r\n\t\tstatic: 'https://static.development.opexa.io',\r\n\t\tcmsPortal: 'https://portal-api.opexacms.io',\r\n\t\topexapay: 'https://external.opexapay.development.opexa.io',\r\n\t},\r\n\tproduction: {\r\n\t\tauth: 'https://auth.opexa.io',\r\n\t\tgame: 'https://game.opexa.io/graphql',\r\n\t\textension: 'https://extension.opexa.io/graphql',\r\n\t\tfile: 'https://file.opexa.io/graphql',\r\n\t\treport: 'https://report.opexa.io/graphql',\r\n\t\twallet: 'https://wallet.opexa.io/graphql',\r\n\t\taccount: 'https://account.opexa.io/graphql',\r\n\t\tportal: 'https://portal.opexa.io/graphql',\r\n\t\ttrigger: 'https://trigger.opexa.io/graphql',\r\n\t\tstatic: 'https://static.atalos.io',\r\n\t\tcmsPortal: 'https://portal-api.opexacms.io',\r\n\t\topexapay: 'https://external.opexapay.opexa.io',\r\n\t},\r\n\tstaging: {\r\n\t\tauth: 'https://auth.staging.atalos.io',\r\n\t\tgame: 'https://game.staging.atalos.io/graphql',\r\n\t\textension: 'https://extension.staging.atalos.io/graphql',\r\n\t\tfile: 'https://file.staging.atalos.io/graphql',\r\n\t\treport: 'https://report.staging.atalos.io/graphql',\r\n\t\twallet: 'https://wallet.staging.atalos.io/graphql',\r\n\t\taccount: 'https://account.staging.atalos.io/graphql',\r\n\t\tportal: 'https://portal.staging.atalos.io/graphql',\r\n\t\ttrigger: 'https://trigger.staging.atalos.io/graphql',\r\n\t\tstatic: 'https://static.atalos.io',\r\n\t\tcmsPortal: 'https://portal-api.staging.opexacms.io',\r\n\t\topexapay: 'https://external.opexapay.staging.atalos.io ',\r\n\t},\r\n};\r\n\r\nexport default Sdk;\r\n"]}