Files
zCode-CLI-X/~/.npm-cache/@growthbook/growthbook@1.6.5@@@1/dist/esm/feature-repository.mjs.map
admin 875c7f9b91 feat: Complete zCode CLI X with Telegram bot integration
- Add full Telegram bot functionality with Z.AI API integration
- Implement 4 tools: Bash, FileEdit, WebSearch, Git
- Add 3 agents: Code Reviewer, Architect, DevOps Engineer
- Add 6 skills for common coding tasks
- Add systemd service file for 24/7 operation
- Add nginx configuration for HTTPS webhook
- Add comprehensive documentation
- Implement WebSocket server for real-time updates
- Add logging system with Winston
- Add environment validation

🤖 zCode CLI X - Agentic coder with Z.AI + Telegram integration
2026-05-05 09:01:26 +00:00

1 line
32 KiB
Plaintext

{"version":3,"file":"feature-repository.mjs","names":["getPolyfills","promiseTimeout","cacheSettings","staleTTL","maxAge","cacheKey","backgroundSync","maxEntries","disableIdleStreams","idleStreamInterval","disableCache","polyfills","helpers","fetchFeaturesCall","host","clientKey","headers","fetch","fetchRemoteEvalCall","payload","options","method","body","JSON","stringify","eventSourceCall","EventSource","startIdleListener","idleTimeout","isBrowser","window","document","onVisibilityChange","visibilityState","clearTimeout","onVisible","setTimeout","onHidden","addEventListener","removeEventListener","stopIdleListener","globalThis","localStorage","e","subscribedInstances","Map","cacheInitialized","cache","activeFetches","streams","supportsSSE","Set","setPolyfills","overrides","Object","assign","configureCache","clearAutoRefresh","clearCache","clear","updatePersistentCache","refreshFeatures","instance","timeout","skipCache","allowStale","fetchFeaturesWithCache","subscribe","key","getKey","subs","get","add","set","unsubscribe","forEach","s","delete","channel","state","disableChannel","enableChannel","setItem","Array","from","entries","getCacheKey","now","Date","minStaleAt","getTime","initializeCache","existing","undefined","staleAt","sse","fetchFeatures","startAutoRefresh","data","success","source","res","error","Error","apiHost","getApiInfo","baseKey","isRemoteEval","attributes","getAttributes","cacheKeyAttributes","getCacheKeyAttributes","keys","ca","fv","getForcedVariations","url","getUrl","value","getItem","parsed","parse","isArray","cleanupCache","cleanupFn","entriesWithTimestamps","map","sort","a","b","entriesToRemoveCount","Math","min","max","size","i","onNewFeatureData","version","dateUpdated","has","instances","refreshInstance","setPayload","getPayload","apiRequestHeaders","getApiHosts","getClientKey","remoteEval","promise","fetcher","forcedVariations","forcedFeatures","getForcedFeatures","then","ok","status","json","catch","process","env","NODE_ENV","log","message","forceSSE","streamingHost","streamingHostRequestHeaders","src","cb","event","type","errors","onSSEError","readyState","delay","pow","random","includes","onopen","onerror","close","destroyChannel","startStreaming","streaming"],"sources":["../../src/feature-repository.ts"],"sourcesContent":["import {\n Attributes,\n CacheSettings,\n FeatureApiResponse,\n FetchResponse,\n Helpers,\n Polyfills,\n} from \"./types/growthbook\";\nimport { getPolyfills, promiseTimeout } from \"./util\";\nimport type {\n GrowthBook,\n InitOptions,\n InitSyncOptions,\n GrowthBookClient,\n} from \".\";\n\ntype CacheEntry = {\n data: FeatureApiResponse;\n sse?: boolean;\n version: string;\n staleAt: Date;\n};\ntype ScopedChannel = {\n src: EventSource | null;\n cb: (event: MessageEvent<string>) => void;\n host: string;\n clientKey: string;\n headers?: Record<string, string>;\n errors: number;\n state: \"active\" | \"idle\" | \"disabled\";\n};\n\n// Config settings\nconst cacheSettings: CacheSettings = {\n // Consider a fetch stale after 1 minute\n staleTTL: 1000 * 60,\n // Max time to keep a fetch in cache (4 hours default)\n maxAge: 1000 * 60 * 60 * 4,\n cacheKey: \"gbFeaturesCache\",\n backgroundSync: true,\n maxEntries: 10,\n disableIdleStreams: false,\n idleStreamInterval: 20000,\n disableCache: false,\n};\n\nconst polyfills = getPolyfills();\n\nexport const helpers: Helpers = {\n fetchFeaturesCall: ({ host, clientKey, headers }) => {\n return (polyfills.fetch as typeof globalThis.fetch)(\n `${host}/api/features/${clientKey}`,\n { headers },\n );\n },\n fetchRemoteEvalCall: ({ host, clientKey, payload, headers }) => {\n const options = {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\", ...headers },\n body: JSON.stringify(payload),\n };\n return (polyfills.fetch as typeof globalThis.fetch)(\n `${host}/api/eval/${clientKey}`,\n options,\n );\n },\n eventSourceCall: ({ host, clientKey, headers }) => {\n if (headers) {\n return new polyfills.EventSource(`${host}/sub/${clientKey}`, {\n headers,\n });\n }\n return new polyfills.EventSource(`${host}/sub/${clientKey}`);\n },\n startIdleListener: () => {\n let idleTimeout: number | undefined;\n const isBrowser =\n typeof window !== \"undefined\" && typeof document !== \"undefined\";\n if (!isBrowser) return;\n const onVisibilityChange = () => {\n if (document.visibilityState === \"visible\") {\n window.clearTimeout(idleTimeout);\n onVisible();\n } else if (document.visibilityState === \"hidden\") {\n idleTimeout = window.setTimeout(\n onHidden,\n cacheSettings.idleStreamInterval,\n );\n }\n };\n document.addEventListener(\"visibilitychange\", onVisibilityChange);\n return () =>\n document.removeEventListener(\"visibilitychange\", onVisibilityChange);\n },\n stopIdleListener: () => {\n // No-op, replaced by startIdleListener\n },\n};\n\ntry {\n if (globalThis.localStorage) {\n polyfills.localStorage = globalThis.localStorage;\n }\n} catch (e) {\n // Ignore localStorage errors\n}\n\n// Global state\nconst subscribedInstances: Map<\n string,\n Set<GrowthBook | GrowthBookClient>\n> = new Map();\nlet cacheInitialized = false;\nconst cache: Map<string, CacheEntry> = new Map();\nconst activeFetches: Map<string, Promise<FetchResponse>> = new Map();\nconst streams: Map<string, ScopedChannel> = new Map();\nconst supportsSSE: Set<string> = new Set();\n\n// Public functions\nexport function setPolyfills(overrides: Partial<Polyfills>): void {\n Object.assign(polyfills, overrides);\n}\nexport function configureCache(overrides: Partial<CacheSettings>): void {\n Object.assign(cacheSettings, overrides);\n if (!cacheSettings.backgroundSync) {\n clearAutoRefresh();\n }\n}\n\nexport async function clearCache(): Promise<void> {\n cache.clear();\n activeFetches.clear();\n clearAutoRefresh();\n cacheInitialized = false;\n await updatePersistentCache();\n}\n\n// Get or fetch features and refresh the SDK instance\nexport async function refreshFeatures({\n instance,\n timeout,\n skipCache,\n allowStale,\n backgroundSync,\n}: {\n instance: GrowthBook | GrowthBookClient;\n timeout?: number;\n skipCache?: boolean;\n allowStale?: boolean;\n backgroundSync?: boolean;\n}): Promise<FetchResponse> {\n if (!backgroundSync) {\n cacheSettings.backgroundSync = false;\n }\n\n return fetchFeaturesWithCache({\n instance,\n allowStale,\n timeout,\n skipCache,\n });\n}\n\n// Subscribe a GrowthBook instance to feature changes\nfunction subscribe(instance: GrowthBook | GrowthBookClient): void {\n const key = getKey(instance);\n const subs = subscribedInstances.get(key) || new Set();\n subs.add(instance);\n subscribedInstances.set(key, subs);\n}\nexport function unsubscribe(instance: GrowthBook | GrowthBookClient): void {\n subscribedInstances.forEach((s) => s.delete(instance));\n}\n\nexport function onHidden() {\n streams.forEach((channel) => {\n if (!channel) return;\n channel.state = \"idle\";\n disableChannel(channel);\n });\n}\n\nexport function onVisible() {\n streams.forEach((channel) => {\n if (!channel) return;\n if (channel.state !== \"idle\") return;\n enableChannel(channel);\n });\n}\n\n// Private functions\n\nasync function updatePersistentCache() {\n try {\n if (!polyfills.localStorage) return;\n await polyfills.localStorage.setItem(\n cacheSettings.cacheKey,\n JSON.stringify(Array.from(cache.entries())),\n );\n } catch (e) {\n // Ignore localStorage errors\n }\n}\n\n// SWR wrapper for fetching features. May indirectly or directly start SSE streaming.\nasync function fetchFeaturesWithCache({\n instance,\n allowStale,\n timeout,\n skipCache,\n}: {\n instance: GrowthBook | GrowthBookClient;\n allowStale?: boolean;\n timeout?: number;\n skipCache?: boolean;\n}): Promise<FetchResponse> {\n const key = getKey(instance);\n const cacheKey = getCacheKey(instance);\n const now = new Date();\n\n const minStaleAt = new Date(\n now.getTime() - cacheSettings.maxAge + cacheSettings.staleTTL,\n );\n\n await initializeCache();\n const existing =\n !cacheSettings.disableCache && !skipCache ? cache.get(cacheKey) : undefined;\n if (\n existing &&\n (allowStale || existing.staleAt > now) &&\n existing.staleAt > minStaleAt\n ) {\n // Restore from cache whether SSE is supported\n if (existing.sse) supportsSSE.add(key);\n\n // Reload features in the background if stale\n if (existing.staleAt < now) {\n fetchFeatures(instance);\n }\n // Otherwise, if we don't need to refresh now, start a background sync\n else {\n startAutoRefresh(instance);\n }\n return { data: existing.data, success: true, source: \"cache\" };\n } else {\n const res = await promiseTimeout(fetchFeatures(instance), timeout);\n return (\n res || {\n data: null,\n success: false,\n source: \"timeout\",\n error: new Error(\"Timeout\"),\n }\n );\n }\n}\n\nfunction getKey(instance: GrowthBook | GrowthBookClient): string {\n const [apiHost, clientKey] = instance.getApiInfo();\n return `${apiHost}||${clientKey}`;\n}\n\nfunction getCacheKey(instance: GrowthBook | GrowthBookClient): string {\n const baseKey = getKey(instance);\n if (!(\"isRemoteEval\" in instance) || !instance.isRemoteEval()) return baseKey;\n\n const attributes = instance.getAttributes();\n const cacheKeyAttributes =\n instance.getCacheKeyAttributes() || Object.keys(instance.getAttributes());\n const ca: Attributes = {};\n cacheKeyAttributes.forEach((key) => {\n ca[key] = attributes[key];\n });\n\n const fv = instance.getForcedVariations();\n const url = instance.getUrl();\n\n return `${baseKey}||${JSON.stringify({\n ca,\n fv,\n url,\n })}`;\n}\n\n// Populate cache from localStorage (if available)\nasync function initializeCache(): Promise<void> {\n if (cacheInitialized) return;\n cacheInitialized = true;\n try {\n if (polyfills.localStorage) {\n const value = await polyfills.localStorage.getItem(\n cacheSettings.cacheKey,\n );\n if (!cacheSettings.disableCache && value) {\n const parsed: [string, CacheEntry][] = JSON.parse(value);\n if (parsed && Array.isArray(parsed)) {\n parsed.forEach(([key, data]) => {\n cache.set(key, {\n ...data,\n staleAt: new Date(data.staleAt),\n });\n });\n }\n cleanupCache();\n }\n }\n } catch (e) {\n // Ignore localStorage errors\n }\n if (!cacheSettings.disableIdleStreams) {\n const cleanupFn = helpers.startIdleListener();\n if (cleanupFn) {\n helpers.stopIdleListener = cleanupFn;\n }\n }\n}\n\n// Enforce the maxEntries limit\nfunction cleanupCache() {\n const entriesWithTimestamps = Array.from(cache.entries())\n .map(([key, value]) => ({\n key,\n staleAt: value.staleAt.getTime(),\n }))\n .sort((a, b) => a.staleAt - b.staleAt);\n\n const entriesToRemoveCount = Math.min(\n Math.max(0, cache.size - cacheSettings.maxEntries),\n cache.size,\n );\n\n for (let i = 0; i < entriesToRemoveCount; i++) {\n cache.delete(entriesWithTimestamps[i].key);\n }\n}\n\n// Called whenever new features are fetched from the API\nfunction onNewFeatureData(\n key: string,\n cacheKey: string,\n data: FeatureApiResponse,\n): void {\n // If contents haven't changed, ignore the update, extend the stale TTL\n const version = data.dateUpdated || \"\";\n const staleAt = new Date(Date.now() + cacheSettings.staleTTL);\n const existing = !cacheSettings.disableCache\n ? cache.get(cacheKey)\n : undefined;\n if (existing && version && existing.version === version) {\n existing.staleAt = staleAt;\n updatePersistentCache();\n return;\n }\n\n if (!cacheSettings.disableCache) {\n // Update in-memory cache\n cache.set(cacheKey, {\n data,\n version,\n staleAt,\n sse: supportsSSE.has(key),\n });\n cleanupCache();\n }\n // Update local storage (don't await this, just update asynchronously)\n updatePersistentCache();\n\n // Update features for all subscribed GrowthBook instances\n const instances = subscribedInstances.get(key);\n instances && instances.forEach((instance) => refreshInstance(instance, data));\n}\n\nasync function refreshInstance(\n instance: GrowthBook | GrowthBookClient,\n data: FeatureApiResponse | null,\n): Promise<void> {\n await instance.setPayload(data || instance.getPayload());\n}\n\n// Fetch the features payload from helper function or from in-mem injected payload\nasync function fetchFeatures(\n instance: GrowthBook | GrowthBookClient,\n): Promise<FetchResponse> {\n const { apiHost, apiRequestHeaders } = instance.getApiHosts();\n const clientKey = instance.getClientKey();\n const remoteEval = \"isRemoteEval\" in instance && instance.isRemoteEval();\n const key = getKey(instance);\n const cacheKey = getCacheKey(instance);\n\n let promise = activeFetches.get(cacheKey);\n if (!promise) {\n const fetcher: Promise<Response> = remoteEval\n ? helpers.fetchRemoteEvalCall({\n host: apiHost,\n clientKey,\n payload: {\n attributes: instance.getAttributes(),\n forcedVariations: instance.getForcedVariations(),\n forcedFeatures: Array.from(instance.getForcedFeatures().entries()),\n url: instance.getUrl(),\n },\n headers: apiRequestHeaders,\n })\n : helpers.fetchFeaturesCall({\n host: apiHost,\n clientKey,\n headers: apiRequestHeaders,\n });\n\n // TODO: auto-retry if status code indicates a temporary error\n promise = fetcher\n .then((res) => {\n if (!res.ok) {\n throw new Error(`HTTP error: ${res.status}`);\n }\n if (res.headers.get(\"x-sse-support\") === \"enabled\") {\n supportsSSE.add(key);\n }\n return res.json();\n })\n .then((data: FeatureApiResponse) => {\n onNewFeatureData(key, cacheKey, data);\n startAutoRefresh(instance);\n activeFetches.delete(cacheKey);\n return { data, success: true, source: \"network\" as const };\n })\n .catch((e) => {\n process.env.NODE_ENV !== \"production\" &&\n instance.log(\"Error fetching features\", {\n apiHost,\n clientKey,\n error: e ? e.message : null,\n });\n activeFetches.delete(cacheKey);\n\n return {\n data: null,\n source: \"error\" as const,\n success: false,\n error: e,\n };\n });\n activeFetches.set(cacheKey, promise);\n }\n return promise;\n}\n\n// Start SSE streaming, listens to feature payload changes and triggers a refresh or re-fetch\nfunction startAutoRefresh(\n instance: GrowthBook | GrowthBookClient,\n forceSSE: boolean = false,\n): void {\n const key = getKey(instance);\n const cacheKey = getCacheKey(instance);\n const { streamingHost, streamingHostRequestHeaders } = instance.getApiHosts();\n const clientKey = instance.getClientKey();\n\n if (forceSSE) {\n supportsSSE.add(key);\n }\n\n if (\n cacheSettings.backgroundSync &&\n supportsSSE.has(key) &&\n polyfills.EventSource\n ) {\n if (streams.has(key)) return;\n const channel: ScopedChannel = {\n src: null,\n host: streamingHost,\n clientKey,\n headers: streamingHostRequestHeaders,\n cb: (event: MessageEvent<string>) => {\n try {\n if (event.type === \"features-updated\") {\n const instances = subscribedInstances.get(key);\n instances &&\n instances.forEach((instance) => {\n fetchFeatures(instance);\n });\n } else if (event.type === \"features\") {\n const json: FeatureApiResponse = JSON.parse(event.data);\n onNewFeatureData(key, cacheKey, json);\n }\n // Reset error count on success\n channel.errors = 0;\n } catch (e) {\n process.env.NODE_ENV !== \"production\" &&\n instance.log(\"SSE Error\", {\n streamingHost,\n clientKey,\n error: e ? (e as Error).message : null,\n });\n onSSEError(channel);\n }\n },\n errors: 0,\n state: \"active\",\n };\n streams.set(key, channel);\n enableChannel(channel);\n }\n}\n\nfunction onSSEError(channel: ScopedChannel) {\n if (channel.state === \"idle\") return;\n channel.errors++;\n if (channel.errors > 3 || (channel.src && channel.src.readyState === 2)) {\n // exponential backoff after 4 errors, with jitter\n const delay =\n Math.pow(3, channel.errors - 3) * (1000 + Math.random() * 1000);\n disableChannel(channel);\n setTimeout(\n () => {\n if ([\"idle\", \"active\"].includes(channel.state)) return;\n enableChannel(channel);\n },\n Math.min(delay, 300000),\n ); // 5 minutes max\n }\n}\n\nfunction disableChannel(channel: ScopedChannel) {\n if (!channel.src) return;\n channel.src.onopen = null;\n channel.src.onerror = null;\n channel.src.close();\n channel.src = null;\n if (channel.state === \"active\") {\n channel.state = \"disabled\";\n }\n}\n\nfunction enableChannel(channel: ScopedChannel) {\n channel.src = helpers.eventSourceCall({\n host: channel.host,\n clientKey: channel.clientKey,\n headers: channel.headers,\n }) as EventSource;\n channel.state = \"active\";\n channel.src.addEventListener(\"features\", channel.cb);\n channel.src.addEventListener(\"features-updated\", channel.cb);\n channel.src.onerror = () => onSSEError(channel);\n channel.src.onopen = () => {\n channel.errors = 0;\n };\n}\n\nfunction destroyChannel(channel: ScopedChannel, key: string) {\n disableChannel(channel);\n streams.delete(key);\n}\n\nexport function clearAutoRefresh() {\n // Clear list of which keys are auto-updated\n supportsSSE.clear();\n\n // Stop listening for any SSE events\n streams.forEach(destroyChannel);\n\n // Remove all references to GrowthBook instances\n subscribedInstances.clear();\n\n // Run the idle stream cleanup function\n helpers.stopIdleListener();\n}\n\nexport function startStreaming(\n instance: GrowthBook | GrowthBookClient,\n options: InitOptions | InitSyncOptions,\n) {\n if (options.streaming) {\n if (!instance.getClientKey()) {\n throw new Error(\"Must specify clientKey to enable streaming\");\n }\n if (options.payload) {\n startAutoRefresh(instance, true);\n }\n subscribe(instance);\n }\n}\n"],"mappings":"AAQA,SAASA,YAAY,EAAEC,cAAc,QAAQ,YAAQ;AAwBrD;AACA,MAAMC,aAA4B,GAAG;EACnC;EACAC,QAAQ,EAAE,IAAI,GAAG,EAAE;EACnB;EACAC,MAAM,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EAC1BC,QAAQ,EAAE,iBAAiB;EAC3BC,cAAc,EAAE,IAAI;EACpBC,UAAU,EAAE,EAAE;EACdC,kBAAkB,EAAE,KAAK;EACzBC,kBAAkB,EAAE,KAAK;EACzBC,YAAY,EAAE;AAChB,CAAC;AAED,MAAMC,SAAS,GAAGX,YAAY,CAAC,CAAC;AAEhC,OAAO,MAAMY,OAAgB,GAAG;EAC9BC,iBAAiB,EAAEA,CAAC;IAAEC,IAAI;IAAEC,SAAS;IAAEC;EAAQ,CAAC,KAAK;IACnD,OAAQL,SAAS,CAACM,KAAK,CACrB,GAAGH,IAAI,iBAAiBC,SAAS,EAAE,EACnC;MAAEC;IAAQ,CACZ,CAAC;EACH,CAAC;EACDE,mBAAmB,EAAEA,CAAC;IAAEJ,IAAI;IAAEC,SAAS;IAAEI,OAAO;IAAEH;EAAQ,CAAC,KAAK;IAC9D,MAAMI,OAAO,GAAG;MACdC,MAAM,EAAE,MAAM;MACdL,OAAO,EAAE;QAAE,cAAc,EAAE,kBAAkB;QAAE,GAAGA;MAAQ,CAAC;MAC3DM,IAAI,EAAEC,IAAI,CAACC,SAAS,CAACL,OAAO;IAC9B,CAAC;IACD,OAAQR,SAAS,CAACM,KAAK,CACrB,GAAGH,IAAI,aAAaC,SAAS,EAAE,EAC/BK,OACF,CAAC;EACH,CAAC;EACDK,eAAe,EAAEA,CAAC;IAAEX,IAAI;IAAEC,SAAS;IAAEC;EAAQ,CAAC,KAAK;IACjD,IAAIA,OAAO,EAAE;MACX,OAAO,IAAIL,SAAS,CAACe,WAAW,CAAC,GAAGZ,IAAI,QAAQC,SAAS,EAAE,EAAE;QAC3DC;MACF,CAAC,CAAC;IACJ;IACA,OAAO,IAAIL,SAAS,CAACe,WAAW,CAAC,GAAGZ,IAAI,QAAQC,SAAS,EAAE,CAAC;EAC9D,CAAC;EACDY,iBAAiB,EAAEA,CAAA,KAAM;IACvB,IAAIC,WAA+B;IACnC,MAAMC,SAAS,GACb,OAAOC,MAAM,KAAK,WAAW,IAAI,OAAOC,QAAQ,KAAK,WAAW;IAClE,IAAI,CAACF,SAAS,EAAE;IAChB,MAAMG,kBAAkB,GAAGA,CAAA,KAAM;MAC/B,IAAID,QAAQ,CAACE,eAAe,KAAK,SAAS,EAAE;QAC1CH,MAAM,CAACI,YAAY,CAACN,WAAW,CAAC;QAChCO,SAAS,CAAC,CAAC;MACb,CAAC,MAAM,IAAIJ,QAAQ,CAACE,eAAe,KAAK,QAAQ,EAAE;QAChDL,WAAW,GAAGE,MAAM,CAACM,UAAU,CAC7BC,QAAQ,EACRnC,aAAa,CAACO,kBAChB,CAAC;MACH;IACF,CAAC;IACDsB,QAAQ,CAACO,gBAAgB,CAAC,kBAAkB,EAAEN,kBAAkB,CAAC;IACjE,OAAO,MACLD,QAAQ,CAACQ,mBAAmB,CAAC,kBAAkB,EAAEP,kBAAkB,CAAC;EACxE,CAAC;EACDQ,gBAAgB,EAAEA,CAAA,KAAM;IACtB;EAAA;AAEJ,CAAC;AAED,IAAI;EACF,IAAIC,UAAU,CAACC,YAAY,EAAE;IAC3B/B,SAAS,CAAC+B,YAAY,GAAGD,UAAU,CAACC,YAAY;EAClD;AACF,CAAC,CAAC,OAAOC,CAAC,EAAE;EACV;AAAA;;AAGF;AACA,MAAMC,mBAGL,GAAG,IAAIC,GAAG,CAAC,CAAC;AACb,IAAIC,gBAAgB,GAAG,KAAK;AAC5B,MAAMC,KAA8B,GAAG,IAAIF,GAAG,CAAC,CAAC;AAChD,MAAMG,aAAkD,GAAG,IAAIH,GAAG,CAAC,CAAC;AACpE,MAAMI,OAAmC,GAAG,IAAIJ,GAAG,CAAC,CAAC;AACrD,MAAMK,WAAwB,GAAG,IAAIC,GAAG,CAAC,CAAC;;AAE1C;AACA,OAAO,SAASC,YAAYA,CAACC,SAA6B,EAAQ;EAChEC,MAAM,CAACC,MAAM,CAAC5C,SAAS,EAAE0C,SAAS,CAAC;AACrC;AACA,OAAO,SAASG,cAAcA,CAACH,SAAiC,EAAQ;EACtEC,MAAM,CAACC,MAAM,CAACrD,aAAa,EAAEmD,SAAS,CAAC;EACvC,IAAI,CAACnD,aAAa,CAACI,cAAc,EAAE;IACjCmD,gBAAgB,CAAC,CAAC;EACpB;AACF;AAEA,OAAO,eAAeC,UAAUA,CAAA,EAAkB;EAChDX,KAAK,CAACY,KAAK,CAAC,CAAC;EACbX,aAAa,CAACW,KAAK,CAAC,CAAC;EACrBF,gBAAgB,CAAC,CAAC;EAClBX,gBAAgB,GAAG,KAAK;EACxB,MAAMc,qBAAqB,CAAC,CAAC;AAC/B;;AAEA;AACA,OAAO,eAAeC,eAAeA,CAAC;EACpCC,QAAQ;EACRC,OAAO;EACPC,SAAS;EACTC,UAAU;EACV3D;AAOF,CAAC,EAA0B;EACzB,IAAI,CAACA,cAAc,EAAE;IACnBJ,aAAa,CAACI,cAAc,GAAG,KAAK;EACtC;EAEA,OAAO4D,sBAAsB,CAAC;IAC5BJ,QAAQ;IACRG,UAAU;IACVF,OAAO;IACPC;EACF,CAAC,CAAC;AACJ;;AAEA;AACA,SAASG,SAASA,CAACL,QAAuC,EAAQ;EAChE,MAAMM,GAAG,GAAGC,MAAM,CAACP,QAAQ,CAAC;EAC5B,MAAMQ,IAAI,GAAG1B,mBAAmB,CAAC2B,GAAG,CAACH,GAAG,CAAC,IAAI,IAAIjB,GAAG,CAAC,CAAC;EACtDmB,IAAI,CAACE,GAAG,CAACV,QAAQ,CAAC;EAClBlB,mBAAmB,CAAC6B,GAAG,CAACL,GAAG,EAAEE,IAAI,CAAC;AACpC;AACA,OAAO,SAASI,WAAWA,CAACZ,QAAuC,EAAQ;EACzElB,mBAAmB,CAAC+B,OAAO,CAAEC,CAAC,IAAKA,CAAC,CAACC,MAAM,CAACf,QAAQ,CAAC,CAAC;AACxD;AAEA,OAAO,SAASzB,QAAQA,CAAA,EAAG;EACzBY,OAAO,CAAC0B,OAAO,CAAEG,OAAO,IAAK;IAC3B,IAAI,CAACA,OAAO,EAAE;IACdA,OAAO,CAACC,KAAK,GAAG,MAAM;IACtBC,cAAc,CAACF,OAAO,CAAC;EACzB,CAAC,CAAC;AACJ;AAEA,OAAO,SAAS3C,SAASA,CAAA,EAAG;EAC1Bc,OAAO,CAAC0B,OAAO,CAAEG,OAAO,IAAK;IAC3B,IAAI,CAACA,OAAO,EAAE;IACd,IAAIA,OAAO,CAACC,KAAK,KAAK,MAAM,EAAE;IAC9BE,aAAa,CAACH,OAAO,CAAC;EACxB,CAAC,CAAC;AACJ;;AAEA;;AAEA,eAAelB,qBAAqBA,CAAA,EAAG;EACrC,IAAI;IACF,IAAI,CAACjD,SAAS,CAAC+B,YAAY,EAAE;IAC7B,MAAM/B,SAAS,CAAC+B,YAAY,CAACwC,OAAO,CAClChF,aAAa,CAACG,QAAQ,EACtBkB,IAAI,CAACC,SAAS,CAAC2D,KAAK,CAACC,IAAI,CAACrC,KAAK,CAACsC,OAAO,CAAC,CAAC,CAAC,CAC5C,CAAC;EACH,CAAC,CAAC,OAAO1C,CAAC,EAAE;IACV;EAAA;AAEJ;;AAEA;AACA,eAAeuB,sBAAsBA,CAAC;EACpCJ,QAAQ;EACRG,UAAU;EACVF,OAAO;EACPC;AAMF,CAAC,EAA0B;EACzB,MAAMI,GAAG,GAAGC,MAAM,CAACP,QAAQ,CAAC;EAC5B,MAAMzD,QAAQ,GAAGiF,WAAW,CAACxB,QAAQ,CAAC;EACtC,MAAMyB,GAAG,GAAG,IAAIC,IAAI,CAAC,CAAC;EAEtB,MAAMC,UAAU,GAAG,IAAID,IAAI,CACzBD,GAAG,CAACG,OAAO,CAAC,CAAC,GAAGxF,aAAa,CAACE,MAAM,GAAGF,aAAa,CAACC,QACvD,CAAC;EAED,MAAMwF,eAAe,CAAC,CAAC;EACvB,MAAMC,QAAQ,GACZ,CAAC1F,aAAa,CAACQ,YAAY,IAAI,CAACsD,SAAS,GAAGjB,KAAK,CAACwB,GAAG,CAAClE,QAAQ,CAAC,GAAGwF,SAAS;EAC7E,IACED,QAAQ,KACP3B,UAAU,IAAI2B,QAAQ,CAACE,OAAO,GAAGP,GAAG,CAAC,IACtCK,QAAQ,CAACE,OAAO,GAAGL,UAAU,EAC7B;IACA;IACA,IAAIG,QAAQ,CAACG,GAAG,EAAE7C,WAAW,CAACsB,GAAG,CAACJ,GAAG,CAAC;;IAEtC;IACA,IAAIwB,QAAQ,CAACE,OAAO,GAAGP,GAAG,EAAE;MAC1BS,aAAa,CAAClC,QAAQ,CAAC;IACzB;IACA;IAAA,KACK;MACHmC,gBAAgB,CAACnC,QAAQ,CAAC;IAC5B;IACA,OAAO;MAAEoC,IAAI,EAAEN,QAAQ,CAACM,IAAI;MAAEC,OAAO,EAAE,IAAI;MAAEC,MAAM,EAAE;IAAQ,CAAC;EAChE,CAAC,MAAM;IACL,MAAMC,GAAG,GAAG,MAAMpG,cAAc,CAAC+F,aAAa,CAAClC,QAAQ,CAAC,EAAEC,OAAO,CAAC;IAClE,OACEsC,GAAG,IAAI;MACLH,IAAI,EAAE,IAAI;MACVC,OAAO,EAAE,KAAK;MACdC,MAAM,EAAE,SAAS;MACjBE,KAAK,EAAE,IAAIC,KAAK,CAAC,SAAS;IAC5B,CAAC;EAEL;AACF;AAEA,SAASlC,MAAMA,CAACP,QAAuC,EAAU;EAC/D,MAAM,CAAC0C,OAAO,EAAEzF,SAAS,CAAC,GAAG+C,QAAQ,CAAC2C,UAAU,CAAC,CAAC;EAClD,OAAO,GAAGD,OAAO,KAAKzF,SAAS,EAAE;AACnC;AAEA,SAASuE,WAAWA,CAACxB,QAAuC,EAAU;EACpE,MAAM4C,OAAO,GAAGrC,MAAM,CAACP,QAAQ,CAAC;EAChC,IAAI,EAAE,cAAc,IAAIA,QAAQ,CAAC,IAAI,CAACA,QAAQ,CAAC6C,YAAY,CAAC,CAAC,EAAE,OAAOD,OAAO;EAE7E,MAAME,UAAU,GAAG9C,QAAQ,CAAC+C,aAAa,CAAC,CAAC;EAC3C,MAAMC,kBAAkB,GACtBhD,QAAQ,CAACiD,qBAAqB,CAAC,CAAC,IAAIzD,MAAM,CAAC0D,IAAI,CAAClD,QAAQ,CAAC+C,aAAa,CAAC,CAAC,CAAC;EAC3E,MAAMI,EAAc,GAAG,CAAC,CAAC;EACzBH,kBAAkB,CAACnC,OAAO,CAAEP,GAAG,IAAK;IAClC6C,EAAE,CAAC7C,GAAG,CAAC,GAAGwC,UAAU,CAACxC,GAAG,CAAC;EAC3B,CAAC,CAAC;EAEF,MAAM8C,EAAE,GAAGpD,QAAQ,CAACqD,mBAAmB,CAAC,CAAC;EACzC,MAAMC,GAAG,GAAGtD,QAAQ,CAACuD,MAAM,CAAC,CAAC;EAE7B,OAAO,GAAGX,OAAO,KAAKnF,IAAI,CAACC,SAAS,CAAC;IACnCyF,EAAE;IACFC,EAAE;IACFE;EACF,CAAC,CAAC,EAAE;AACN;;AAEA;AACA,eAAezB,eAAeA,CAAA,EAAkB;EAC9C,IAAI7C,gBAAgB,EAAE;EACtBA,gBAAgB,GAAG,IAAI;EACvB,IAAI;IACF,IAAInC,SAAS,CAAC+B,YAAY,EAAE;MAC1B,MAAM4E,KAAK,GAAG,MAAM3G,SAAS,CAAC+B,YAAY,CAAC6E,OAAO,CAChDrH,aAAa,CAACG,QAChB,CAAC;MACD,IAAI,CAACH,aAAa,CAACQ,YAAY,IAAI4G,KAAK,EAAE;QACxC,MAAME,MAA8B,GAAGjG,IAAI,CAACkG,KAAK,CAACH,KAAK,CAAC;QACxD,IAAIE,MAAM,IAAIrC,KAAK,CAACuC,OAAO,CAACF,MAAM,CAAC,EAAE;UACnCA,MAAM,CAAC7C,OAAO,CAAC,CAAC,CAACP,GAAG,EAAE8B,IAAI,CAAC,KAAK;YAC9BnD,KAAK,CAAC0B,GAAG,CAACL,GAAG,EAAE;cACb,GAAG8B,IAAI;cACPJ,OAAO,EAAE,IAAIN,IAAI,CAACU,IAAI,CAACJ,OAAO;YAChC,CAAC,CAAC;UACJ,CAAC,CAAC;QACJ;QACA6B,YAAY,CAAC,CAAC;MAChB;IACF;EACF,CAAC,CAAC,OAAOhF,CAAC,EAAE;IACV;EAAA;EAEF,IAAI,CAACzC,aAAa,CAACM,kBAAkB,EAAE;IACrC,MAAMoH,SAAS,GAAGhH,OAAO,CAACe,iBAAiB,CAAC,CAAC;IAC7C,IAAIiG,SAAS,EAAE;MACbhH,OAAO,CAAC4B,gBAAgB,GAAGoF,SAAS;IACtC;EACF;AACF;;AAEA;AACA,SAASD,YAAYA,CAAA,EAAG;EACtB,MAAME,qBAAqB,GAAG1C,KAAK,CAACC,IAAI,CAACrC,KAAK,CAACsC,OAAO,CAAC,CAAC,CAAC,CACtDyC,GAAG,CAAC,CAAC,CAAC1D,GAAG,EAAEkD,KAAK,CAAC,MAAM;IACtBlD,GAAG;IACH0B,OAAO,EAAEwB,KAAK,CAACxB,OAAO,CAACJ,OAAO,CAAC;EACjC,CAAC,CAAC,CAAC,CACFqC,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,CAAClC,OAAO,GAAGmC,CAAC,CAACnC,OAAO,CAAC;EAExC,MAAMoC,oBAAoB,GAAGC,IAAI,CAACC,GAAG,CACnCD,IAAI,CAACE,GAAG,CAAC,CAAC,EAAEtF,KAAK,CAACuF,IAAI,GAAGpI,aAAa,CAACK,UAAU,CAAC,EAClDwC,KAAK,CAACuF,IACR,CAAC;EAED,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGL,oBAAoB,EAAEK,CAAC,EAAE,EAAE;IAC7CxF,KAAK,CAAC8B,MAAM,CAACgD,qBAAqB,CAACU,CAAC,CAAC,CAACnE,GAAG,CAAC;EAC5C;AACF;;AAEA;AACA,SAASoE,gBAAgBA,CACvBpE,GAAW,EACX/D,QAAgB,EAChB6F,IAAwB,EAClB;EACN;EACA,MAAMuC,OAAO,GAAGvC,IAAI,CAACwC,WAAW,IAAI,EAAE;EACtC,MAAM5C,OAAO,GAAG,IAAIN,IAAI,CAACA,IAAI,CAACD,GAAG,CAAC,CAAC,GAAGrF,aAAa,CAACC,QAAQ,CAAC;EAC7D,MAAMyF,QAAQ,GAAG,CAAC1F,aAAa,CAACQ,YAAY,GACxCqC,KAAK,CAACwB,GAAG,CAAClE,QAAQ,CAAC,GACnBwF,SAAS;EACb,IAAID,QAAQ,IAAI6C,OAAO,IAAI7C,QAAQ,CAAC6C,OAAO,KAAKA,OAAO,EAAE;IACvD7C,QAAQ,CAACE,OAAO,GAAGA,OAAO;IAC1BlC,qBAAqB,CAAC,CAAC;IACvB;EACF;EAEA,IAAI,CAAC1D,aAAa,CAACQ,YAAY,EAAE;IAC/B;IACAqC,KAAK,CAAC0B,GAAG,CAACpE,QAAQ,EAAE;MAClB6F,IAAI;MACJuC,OAAO;MACP3C,OAAO;MACPC,GAAG,EAAE7C,WAAW,CAACyF,GAAG,CAACvE,GAAG;IAC1B,CAAC,CAAC;IACFuD,YAAY,CAAC,CAAC;EAChB;EACA;EACA/D,qBAAqB,CAAC,CAAC;;EAEvB;EACA,MAAMgF,SAAS,GAAGhG,mBAAmB,CAAC2B,GAAG,CAACH,GAAG,CAAC;EAC9CwE,SAAS,IAAIA,SAAS,CAACjE,OAAO,CAAEb,QAAQ,IAAK+E,eAAe,CAAC/E,QAAQ,EAAEoC,IAAI,CAAC,CAAC;AAC/E;AAEA,eAAe2C,eAAeA,CAC5B/E,QAAuC,EACvCoC,IAA+B,EAChB;EACf,MAAMpC,QAAQ,CAACgF,UAAU,CAAC5C,IAAI,IAAIpC,QAAQ,CAACiF,UAAU,CAAC,CAAC,CAAC;AAC1D;;AAEA;AACA,eAAe/C,aAAaA,CAC1BlC,QAAuC,EACf;EACxB,MAAM;IAAE0C,OAAO;IAAEwC;EAAkB,CAAC,GAAGlF,QAAQ,CAACmF,WAAW,CAAC,CAAC;EAC7D,MAAMlI,SAAS,GAAG+C,QAAQ,CAACoF,YAAY,CAAC,CAAC;EACzC,MAAMC,UAAU,GAAG,cAAc,IAAIrF,QAAQ,IAAIA,QAAQ,CAAC6C,YAAY,CAAC,CAAC;EACxE,MAAMvC,GAAG,GAAGC,MAAM,CAACP,QAAQ,CAAC;EAC5B,MAAMzD,QAAQ,GAAGiF,WAAW,CAACxB,QAAQ,CAAC;EAEtC,IAAIsF,OAAO,GAAGpG,aAAa,CAACuB,GAAG,CAAClE,QAAQ,CAAC;EACzC,IAAI,CAAC+I,OAAO,EAAE;IACZ,MAAMC,OAA0B,GAAGF,UAAU,GACzCvI,OAAO,CAACM,mBAAmB,CAAC;MAC1BJ,IAAI,EAAE0F,OAAO;MACbzF,SAAS;MACTI,OAAO,EAAE;QACPyF,UAAU,EAAE9C,QAAQ,CAAC+C,aAAa,CAAC,CAAC;QACpCyC,gBAAgB,EAAExF,QAAQ,CAACqD,mBAAmB,CAAC,CAAC;QAChDoC,cAAc,EAAEpE,KAAK,CAACC,IAAI,CAACtB,QAAQ,CAAC0F,iBAAiB,CAAC,CAAC,CAACnE,OAAO,CAAC,CAAC,CAAC;QAClE+B,GAAG,EAAEtD,QAAQ,CAACuD,MAAM,CAAC;MACvB,CAAC;MACDrG,OAAO,EAAEgI;IACX,CAAC,CAAC,GACFpI,OAAO,CAACC,iBAAiB,CAAC;MACxBC,IAAI,EAAE0F,OAAO;MACbzF,SAAS;MACTC,OAAO,EAAEgI;IACX,CAAC,CAAC;;IAEN;IACAI,OAAO,GAAGC,OAAO,CACdI,IAAI,CAAEpD,GAAG,IAAK;MACb,IAAI,CAACA,GAAG,CAACqD,EAAE,EAAE;QACX,MAAM,IAAInD,KAAK,CAAC,eAAeF,GAAG,CAACsD,MAAM,EAAE,CAAC;MAC9C;MACA,IAAItD,GAAG,CAACrF,OAAO,CAACuD,GAAG,CAAC,eAAe,CAAC,KAAK,SAAS,EAAE;QAClDrB,WAAW,CAACsB,GAAG,CAACJ,GAAG,CAAC;MACtB;MACA,OAAOiC,GAAG,CAACuD,IAAI,CAAC,CAAC;IACnB,CAAC,CAAC,CACDH,IAAI,CAAEvD,IAAwB,IAAK;MAClCsC,gBAAgB,CAACpE,GAAG,EAAE/D,QAAQ,EAAE6F,IAAI,CAAC;MACrCD,gBAAgB,CAACnC,QAAQ,CAAC;MAC1Bd,aAAa,CAAC6B,MAAM,CAACxE,QAAQ,CAAC;MAC9B,OAAO;QAAE6F,IAAI;QAAEC,OAAO,EAAE,IAAI;QAAEC,MAAM,EAAE;MAAmB,CAAC;IAC5D,CAAC,CAAC,CACDyD,KAAK,CAAElH,CAAC,IAAK;MACZmH,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,IACnClG,QAAQ,CAACmG,GAAG,CAAC,yBAAyB,EAAE;QACtCzD,OAAO;QACPzF,SAAS;QACTuF,KAAK,EAAE3D,CAAC,GAAGA,CAAC,CAACuH,OAAO,GAAG;MACzB,CAAC,CAAC;MACJlH,aAAa,CAAC6B,MAAM,CAACxE,QAAQ,CAAC;MAE9B,OAAO;QACL6F,IAAI,EAAE,IAAI;QACVE,MAAM,EAAE,OAAgB;QACxBD,OAAO,EAAE,KAAK;QACdG,KAAK,EAAE3D;MACT,CAAC;IACH,CAAC,CAAC;IACJK,aAAa,CAACyB,GAAG,CAACpE,QAAQ,EAAE+I,OAAO,CAAC;EACtC;EACA,OAAOA,OAAO;AAChB;;AAEA;AACA,SAASnD,gBAAgBA,CACvBnC,QAAuC,EACvCqG,QAAiB,GAAG,KAAK,EACnB;EACN,MAAM/F,GAAG,GAAGC,MAAM,CAACP,QAAQ,CAAC;EAC5B,MAAMzD,QAAQ,GAAGiF,WAAW,CAACxB,QAAQ,CAAC;EACtC,MAAM;IAAEsG,aAAa;IAAEC;EAA4B,CAAC,GAAGvG,QAAQ,CAACmF,WAAW,CAAC,CAAC;EAC7E,MAAMlI,SAAS,GAAG+C,QAAQ,CAACoF,YAAY,CAAC,CAAC;EAEzC,IAAIiB,QAAQ,EAAE;IACZjH,WAAW,CAACsB,GAAG,CAACJ,GAAG,CAAC;EACtB;EAEA,IACElE,aAAa,CAACI,cAAc,IAC5B4C,WAAW,CAACyF,GAAG,CAACvE,GAAG,CAAC,IACpBzD,SAAS,CAACe,WAAW,EACrB;IACA,IAAIuB,OAAO,CAAC0F,GAAG,CAACvE,GAAG,CAAC,EAAE;IACtB,MAAMU,OAAsB,GAAG;MAC7BwF,GAAG,EAAE,IAAI;MACTxJ,IAAI,EAAEsJ,aAAa;MACnBrJ,SAAS;MACTC,OAAO,EAAEqJ,2BAA2B;MACpCE,EAAE,EAAGC,KAA2B,IAAK;QACnC,IAAI;UACF,IAAIA,KAAK,CAACC,IAAI,KAAK,kBAAkB,EAAE;YACrC,MAAM7B,SAAS,GAAGhG,mBAAmB,CAAC2B,GAAG,CAACH,GAAG,CAAC;YAC9CwE,SAAS,IACPA,SAAS,CAACjE,OAAO,CAAEb,QAAQ,IAAK;cAC9BkC,aAAa,CAAClC,QAAQ,CAAC;YACzB,CAAC,CAAC;UACN,CAAC,MAAM,IAAI0G,KAAK,CAACC,IAAI,KAAK,UAAU,EAAE;YACpC,MAAMb,IAAwB,GAAGrI,IAAI,CAACkG,KAAK,CAAC+C,KAAK,CAACtE,IAAI,CAAC;YACvDsC,gBAAgB,CAACpE,GAAG,EAAE/D,QAAQ,EAAEuJ,IAAI,CAAC;UACvC;UACA;UACA9E,OAAO,CAAC4F,MAAM,GAAG,CAAC;QACpB,CAAC,CAAC,OAAO/H,CAAC,EAAE;UACVmH,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,IACnClG,QAAQ,CAACmG,GAAG,CAAC,WAAW,EAAE;YACxBG,aAAa;YACbrJ,SAAS;YACTuF,KAAK,EAAE3D,CAAC,GAAIA,CAAC,CAAWuH,OAAO,GAAG;UACpC,CAAC,CAAC;UACJS,UAAU,CAAC7F,OAAO,CAAC;QACrB;MACF,CAAC;MACD4F,MAAM,EAAE,CAAC;MACT3F,KAAK,EAAE;IACT,CAAC;IACD9B,OAAO,CAACwB,GAAG,CAACL,GAAG,EAAEU,OAAO,CAAC;IACzBG,aAAa,CAACH,OAAO,CAAC;EACxB;AACF;AAEA,SAAS6F,UAAUA,CAAC7F,OAAsB,EAAE;EAC1C,IAAIA,OAAO,CAACC,KAAK,KAAK,MAAM,EAAE;EAC9BD,OAAO,CAAC4F,MAAM,EAAE;EAChB,IAAI5F,OAAO,CAAC4F,MAAM,GAAG,CAAC,IAAK5F,OAAO,CAACwF,GAAG,IAAIxF,OAAO,CAACwF,GAAG,CAACM,UAAU,KAAK,CAAE,EAAE;IACvE;IACA,MAAMC,KAAK,GACT1C,IAAI,CAAC2C,GAAG,CAAC,CAAC,EAAEhG,OAAO,CAAC4F,MAAM,GAAG,CAAC,CAAC,IAAI,IAAI,GAAGvC,IAAI,CAAC4C,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC;IACjE/F,cAAc,CAACF,OAAO,CAAC;IACvB1C,UAAU,CACR,MAAM;MACJ,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC4I,QAAQ,CAAClG,OAAO,CAACC,KAAK,CAAC,EAAE;MAChDE,aAAa,CAACH,OAAO,CAAC;IACxB,CAAC,EACDqD,IAAI,CAACC,GAAG,CAACyC,KAAK,EAAE,MAAM,CACxB,CAAC,CAAC,CAAC;EACL;AACF;AAEA,SAAS7F,cAAcA,CAACF,OAAsB,EAAE;EAC9C,IAAI,CAACA,OAAO,CAACwF,GAAG,EAAE;EAClBxF,OAAO,CAACwF,GAAG,CAACW,MAAM,GAAG,IAAI;EACzBnG,OAAO,CAACwF,GAAG,CAACY,OAAO,GAAG,IAAI;EAC1BpG,OAAO,CAACwF,GAAG,CAACa,KAAK,CAAC,CAAC;EACnBrG,OAAO,CAACwF,GAAG,GAAG,IAAI;EAClB,IAAIxF,OAAO,CAACC,KAAK,KAAK,QAAQ,EAAE;IAC9BD,OAAO,CAACC,KAAK,GAAG,UAAU;EAC5B;AACF;AAEA,SAASE,aAAaA,CAACH,OAAsB,EAAE;EAC7CA,OAAO,CAACwF,GAAG,GAAG1J,OAAO,CAACa,eAAe,CAAC;IACpCX,IAAI,EAAEgE,OAAO,CAAChE,IAAI;IAClBC,SAAS,EAAE+D,OAAO,CAAC/D,SAAS;IAC5BC,OAAO,EAAE8D,OAAO,CAAC9D;EACnB,CAAC,CAAgB;EACjB8D,OAAO,CAACC,KAAK,GAAG,QAAQ;EACxBD,OAAO,CAACwF,GAAG,CAAChI,gBAAgB,CAAC,UAAU,EAAEwC,OAAO,CAACyF,EAAE,CAAC;EACpDzF,OAAO,CAACwF,GAAG,CAAChI,gBAAgB,CAAC,kBAAkB,EAAEwC,OAAO,CAACyF,EAAE,CAAC;EAC5DzF,OAAO,CAACwF,GAAG,CAACY,OAAO,GAAG,MAAMP,UAAU,CAAC7F,OAAO,CAAC;EAC/CA,OAAO,CAACwF,GAAG,CAACW,MAAM,GAAG,MAAM;IACzBnG,OAAO,CAAC4F,MAAM,GAAG,CAAC;EACpB,CAAC;AACH;AAEA,SAASU,cAAcA,CAACtG,OAAsB,EAAEV,GAAW,EAAE;EAC3DY,cAAc,CAACF,OAAO,CAAC;EACvB7B,OAAO,CAAC4B,MAAM,CAACT,GAAG,CAAC;AACrB;AAEA,OAAO,SAASX,gBAAgBA,CAAA,EAAG;EACjC;EACAP,WAAW,CAACS,KAAK,CAAC,CAAC;;EAEnB;EACAV,OAAO,CAAC0B,OAAO,CAACyG,cAAc,CAAC;;EAE/B;EACAxI,mBAAmB,CAACe,KAAK,CAAC,CAAC;;EAE3B;EACA/C,OAAO,CAAC4B,gBAAgB,CAAC,CAAC;AAC5B;AAEA,OAAO,SAAS6I,cAAcA,CAC5BvH,QAAuC,EACvC1C,OAAsC,EACtC;EACA,IAAIA,OAAO,CAACkK,SAAS,EAAE;IACrB,IAAI,CAACxH,QAAQ,CAACoF,YAAY,CAAC,CAAC,EAAE;MAC5B,MAAM,IAAI3C,KAAK,CAAC,4CAA4C,CAAC;IAC/D;IACA,IAAInF,OAAO,CAACD,OAAO,EAAE;MACnB8E,gBAAgB,CAACnC,QAAQ,EAAE,IAAI,CAAC;IAClC;IACAK,SAAS,CAACL,QAAQ,CAAC;EACrB;AACF","ignoreList":[]}