{"version":3,"file":"index.client.mjs","names":[],"sources":["../../core/dist/unwrapApiResult-BzGfPw75.mjs","../src/condition-store/singleton.ts","../src/functions/localeRouting.ts","../src/functions/requestConditions.ts","../src/functions/runtime.ts","../src/functions/parseLocale.ts","../src/middleware/gtMiddleware.ts","../src/setup/initializeGT.client.ts"],"sourcesContent":["import { t as ApiError } from \"./ApiError-CUKcz3YS.mjs\";\n//#region src/settings/settings.ts\nconst libraryDefaultLocale = \"en\";\nconst defaultTimeout = 6e4;\n//#endregion\n//#region src/logging/diagnostics.ts\nfunction ensureSentence(text) {\n\tconst trimmed = text.trim();\n\tif (!trimmed) return \"\";\n\treturn /[.!?)]$/.test(trimmed) ? trimmed : `${trimmed}.`;\n}\nfunction stripSentence(text) {\n\tconst trimmed = text.trim();\n\tlet end = trimmed.length;\n\twhile (end > 0) {\n\t\tconst char = trimmed[end - 1];\n\t\tif (char !== \".\" && char !== \"!\" && char !== \"?\") break;\n\t\tend -= 1;\n\t}\n\treturn trimmed.slice(0, end);\n}\nfunction formatDetails(details) {\n\tif (!details) return \"\";\n\tconst detailText = Array.isArray(details) ? details.join(\", \") : details;\n\tif (!detailText.trim()) return \"\";\n\treturn ensureSentence(`Details: ${detailText}`);\n}\nfunction formatDiagnosticErrorDetails(error) {\n\tif (error == null) return void 0;\n\treturn String(error);\n}\nfunction createDiagnosticMessage({ source, severity, whatHappened, reassurance, why, fix, wayOut, details, docsUrl }) {\n\tconst prefix = source ? severity ? `${source} ${severity}:` : `${source}:` : severity ? `${severity}:` : \"\";\n\tconst whatAndWhy = why ? `${stripSentence(whatHappened)} because ${stripSentence(why)}` : whatHappened;\n\tconst shouldCombineWayOut = !!fix && !!wayOut && /^[a-z]/.test(stripSentence(wayOut));\n\tconst messageParts = [\n\t\twhatAndWhy,\n\t\treassurance,\n\t\tshouldCombineWayOut ? `${stripSentence(fix)}, or ${stripSentence(wayOut)}` : fix,\n\t\tshouldCombineWayOut ? void 0 : wayOut,\n\t\tformatDetails(details)\n\t].filter((part) => !!part).map(ensureSentence);\n\tif (docsUrl) messageParts.push(`Learn more: ${docsUrl}`);\n\tconst message = messageParts.join(\" \");\n\treturn prefix ? `${prefix} ${message}` : message;\n}\n//#endregion\n//#region src/settings/settingsUrls.ts\nconst defaultCacheUrl = \"https://cdn.gtx.dev\";\nconst defaultBaseUrl = \"https://api.gtx.dev\";\nconst defaultRuntimeApiUrl = \"https://api.gtx.dev\";\n//#endregion\n//#region src/translate/utils/unwrapApiResult.ts\nfunction isErrorResult(error) {\n\treturn typeof error === \"object\" && error !== null && \"error\" in error && typeof error.error === \"string\";\n}\nfunction hasDecodedError(result) {\n\treturn isErrorResult(result.error) || typeof result.error === \"string\";\n}\n/**\n* Unwraps a `@generaltranslation/api` SDK result, returning its data or\n* throwing an `ApiError` built from the failed response.\n*/\nfunction unwrapApiResult(result) {\n\tif (result.data !== void 0) return result.data;\n\tif (result.response) {\n\t\tconst details = isErrorResult(result.error) ? result.error.error : typeof result.error === \"string\" ? result.error : result.response.statusText;\n\t\tthrow new ApiError(details, result.response.status, details);\n\t}\n\tthrow result.error;\n}\n//#endregion\nexport { defaultCacheUrl as a, formatDiagnosticErrorDetails as c, defaultBaseUrl as i, defaultTimeout as l, isErrorResult as n, defaultRuntimeApiUrl as o, unwrapApiResult as r, createDiagnosticMessage as s, hasDecodedError as t, libraryDefaultLocale as u };\n\n//# sourceMappingURL=unwrapApiResult-BzGfPw75.mjs.map","import { createDiagnosticMessage } from 'generaltranslation/internal';\nimport { createGlobalSingleton } from 'gt-i18n/internal';\nimport type { AsyncLocalConditionStore } from './AsyncLocalConditionStore';\n\nconst conditionStoreNotInitializedError = createDiagnosticMessage({\n  source: 'gt-tanstack-start',\n  severity: 'Error',\n  whatHappened: 'Cannot read GT server request state before initialization',\n  why: 'initializeGT() has not initialized the TanStack Start server condition store',\n  fix: \"Call initializeGT() from 'gt-tanstack-start' during application setup before using gtMiddleware or server APIs.\",\n});\n\nconst conditionStoreSingleton = createGlobalSingleton<AsyncLocalConditionStore>(\n  {\n    namespace: 'tanstackStart',\n    key: 'conditionStore',\n    source: 'gt-tanstack-start',\n    notInitialized: () => conditionStoreNotInitializedError,\n  }\n);\n\nexport const getConditionStore = conditionStoreSingleton.get;\nexport const setConditionStore = conditionStoreSingleton.set;\nexport const isConditionStoreInitialized =\n  conditionStoreSingleton.isInitialized;\n","import { getI18nConfig } from '@generaltranslation/react-core/pure';\n\n/** Resolve a supported locale from the first pathname segment. */\nexport function getLocaleFromPath(\n  pathname: string,\n  basepath = getRouterBasepath()\n): string | undefined {\n  const { pathname: routePathname } = splitBasepath(pathname, basepath);\n  const match = routePathname.match(/^\\/([^/]+)(?:\\/|$)/);\n  if (!match) return undefined;\n\n  let segment: string;\n  try {\n    segment = decodeURIComponent(match[1]);\n  } catch {\n    return undefined;\n  }\n\n  return getI18nConfig().determineSupportedLocale(segment);\n}\n\n/** Replace the pathname locale, leaving the default locale unprefixed. */\nexport function getPathnameForLocale(\n  pathname: string,\n  locale: string,\n  basepath = getRouterBasepath()\n): string {\n  const i18nConfig = getI18nConfig();\n  const { basepath: routeBasepath, pathname: routePathname } = splitBasepath(\n    pathname,\n    basepath\n  );\n  const pathLocale = getLocaleFromPath(routePathname, '/');\n  const unlocalizedPath = pathLocale\n    ? routePathname.replace(/^\\/[^/]+/, '') || '/'\n    : routePathname;\n  const resolvedLocale = i18nConfig.resolveSupportedLocale(locale);\n\n  if (resolvedLocale === i18nConfig.getDefaultLocale()) {\n    return `${routeBasepath}${unlocalizedPath}`;\n  }\n\n  return `${routeBasepath}/${encodeURIComponent(resolvedLocale)}${\n    unlocalizedPath === '/' ? '' : unlocalizedPath\n  }`;\n}\n\nfunction getRouterBasepath(): string {\n  return process.env.TSS_ROUTER_BASEPATH || '/';\n}\n\nfunction splitBasepath(\n  pathname: string,\n  basepath: string\n): { basepath: string; pathname: string } {\n  const normalizedBasepath = `/${basepath.replace(/^\\/+|\\/+$/g, '')}`;\n  if (normalizedBasepath === '/' || pathname === normalizedBasepath) {\n    return {\n      basepath: normalizedBasepath === '/' ? '' : normalizedBasepath,\n      pathname: pathname === normalizedBasepath ? '/' : pathname,\n    };\n  }\n  if (pathname.startsWith(`${normalizedBasepath}/`)) {\n    return {\n      basepath: normalizedBasepath,\n      pathname: pathname.slice(normalizedBasepath.length),\n    };\n  }\n  return { basepath: '', pathname };\n}\n","import { setCookie } from '@tanstack/react-start/server';\nimport { getI18nConfig } from '@generaltranslation/react-core/pure';\nimport { createDiagnosticMessage } from 'generaltranslation/internal';\nimport { getCookieValue, parseAcceptLanguage } from 'gt-i18n/internal';\nimport type { RequestConditions } from '../condition-store/AsyncLocalConditionStore';\nimport type { InitializeGTParams } from '../types/InitializeGTParams';\nimport { getLocaleFromPath } from './localeRouting';\n\nexport const localeCookieOptions = {\n  path: '/',\n  sameSite: 'lax' as const,\n  maxAge: 60 * 60 * 24 * 365,\n};\n\nconst noLocaleCandidatesWarning = createDiagnosticMessage({\n  source: 'gt-tanstack-start',\n  severity: 'Warning',\n  whatHappened: 'No locale preference was found for the current request',\n  reassurance: 'GT will use the configured default locale',\n  why: 'neither the locale cookie nor the Accept-Language header supplied a supported locale candidate',\n});\n\nexport function resolveRequestConditions(\n  request: Request,\n  localeConfig?: InitializeGTParams,\n  pathname = new URL(request.url).pathname\n): RequestConditions {\n  const i18nConfig = getI18nConfig();\n  const cookieHeader = request.headers.get('cookie');\n  const localeCandidates: string[] = [];\n  if (localeConfig?.localeRouting) {\n    const pathLocale = getLocaleFromPath(pathname);\n    if (pathLocale) localeCandidates.push(pathLocale);\n  }\n  const cookieLocale = getCookieValue(\n    cookieHeader,\n    i18nConfig.getLocaleCookieName()\n  );\n  if (cookieLocale) localeCandidates.push(cookieLocale);\n  localeCandidates.push(\n    ...parseAcceptLanguage(request.headers.get('accept-language'))\n  );\n\n  if (localeCandidates.length === 0) {\n    console.warn(noLocaleCandidatesWarning);\n  }\n\n  const locale = i18nConfig.resolveSupportedLocale(\n    localeCandidates,\n    localeConfig ?? {\n      defaultLocale: i18nConfig.getDefaultLocale(),\n      locales: i18nConfig.getLocales(),\n      customMapping: i18nConfig.getCustomMapping(),\n    }\n  );\n\n  setCookie(i18nConfig.getLocaleCookieName(), locale, localeCookieOptions);\n\n  const enableI18nCookie = getCookieValue(\n    cookieHeader,\n    i18nConfig.getEnableI18nCookieName()\n  );\n\n  return {\n    locale,\n    region:\n      getCookieValue(cookieHeader, i18nConfig.getRegionCookieName()) ||\n      undefined,\n    enableI18n:\n      enableI18nCookie === undefined ? true : enableI18nCookie === 'true',\n  };\n}\n","import { createIsomorphicFn } from '@tanstack/react-start';\nimport { getReadonlyConditionStore } from '@generaltranslation/react-core/pure';\nimport {\n  getGTInternal,\n  getMessagesInternal,\n  getTranslationsInternal,\n} from 'gt-i18n/internal';\nimport type {\n  GTFunctionType,\n  MFunctionType,\n  Message,\n  TFunctionType,\n} from 'gt-i18n/types';\nimport { getConditionStore } from '../condition-store/singleton';\n\n/** Return the locale associated with the current request or browser. */\nexport const getLocale: () => string = createIsomorphicFn()\n  .server((): string => getConditionStore().getLocale())\n  .client((): string => getReadonlyConditionStore().getLocale());\n\n/** Return whether internationalization is enabled for the current runtime. */\nexport const getEnableI18n: () => boolean = createIsomorphicFn()\n  .server((): boolean => getConditionStore().getEnableI18n())\n  .client((): boolean => getReadonlyConditionStore().getEnableI18n());\n\n/** Return a string translation function for the current runtime. */\nexport const getGT: (messages?: Message[]) => Promise<GTFunctionType> =\n  createIsomorphicFn()\n    .server((messages?: Message[]) => {\n      const conditionStore = getConditionStore();\n      return getGTInternal(\n        {\n          locale: conditionStore.getLocale(),\n          enableI18n: conditionStore.getEnableI18n(),\n        },\n        messages\n      );\n    })\n    .client((messages?: Message[]) => {\n      const conditionStore = getReadonlyConditionStore();\n      return getGTInternal(\n        {\n          locale: conditionStore.getLocale(),\n          enableI18n: conditionStore.getEnableI18n(),\n        },\n        messages\n      );\n    });\n\n/** Return a registered-message translation function for the current runtime. */\nexport const getMessages: () => Promise<MFunctionType> = createIsomorphicFn()\n  .server(() => {\n    const conditionStore = getConditionStore();\n    return getMessagesInternal({\n      locale: conditionStore.getLocale(),\n      enableI18n: conditionStore.getEnableI18n(),\n    });\n  })\n  .client(() => {\n    const conditionStore = getReadonlyConditionStore();\n    return getMessagesInternal({\n      locale: conditionStore.getLocale(),\n      enableI18n: conditionStore.getEnableI18n(),\n    });\n  });\n\n/** Return a dictionary translation function for the current runtime. */\nexport const getTranslations: (rootId?: string) => Promise<TFunctionType> =\n  createIsomorphicFn()\n    .server((rootId?: string) => {\n      const conditionStore = getConditionStore();\n      return getTranslationsInternal({\n        locale: conditionStore.getLocale(),\n        enableI18n: conditionStore.getEnableI18n(),\n        rootId,\n      });\n    })\n    .client((rootId?: string) => {\n      const conditionStore = getReadonlyConditionStore();\n      return getTranslationsInternal({\n        locale: conditionStore.getLocale(),\n        enableI18n: conditionStore.getEnableI18n(),\n        rootId,\n      });\n    });\n","import { createIsomorphicFn } from '@tanstack/react-start';\nimport { getRequest } from '@tanstack/react-start/server';\nimport { getI18nConfig } from '@generaltranslation/react-core/pure';\nimport { getCookieValue } from 'gt-i18n/internal';\nimport type { LocaleResolverConfig } from 'gt-i18n/internal/types';\nimport {\n  getConditionStore,\n  isConditionStoreInitialized,\n} from '../condition-store/singleton';\nimport { resolveRequestConditions } from './requestConditions';\nimport { getLocale } from './runtime';\n\nexport const determineLocale = createIsomorphicFn()\n  .server(determineLocaleServer)\n  .client(() => getLocale());\n\n/**\n * Resolve the user's locale for the current TanStack Start request or browser.\n *\n * @deprecated Use `getLocale()` with `gtMiddleware` instead. This function is\n * retained as a fallback for server setups that have not initialized request\n * scope through the middleware.\n */\nexport function parseLocale(): string {\n  const i18nConfig = getI18nConfig();\n  return determineLocale({\n    defaultLocale: i18nConfig.getDefaultLocale(),\n    locales: i18nConfig.getLocales(),\n    customMapping: i18nConfig.getCustomMapping(),\n  });\n}\n\nfunction determineLocaleServer({\n  defaultLocale,\n  locales,\n  customMapping,\n}: LocaleResolverConfig) {\n  if (isConditionStoreInitialized()) {\n    const conditionStore = getConditionStore();\n    if (conditionStore.hasActiveScope()) {\n      return conditionStore.getLocale();\n    }\n  }\n\n  return resolveRequestConditions(getRequest(), {\n    defaultLocale,\n    locales,\n    customMapping,\n  }).locale;\n}\n\n/** Read the server-synchronized locale cookie during client initialization. */\nexport function determineLocaleClient({\n  defaultLocale,\n  locales,\n  customMapping,\n}: LocaleResolverConfig): string {\n  const i18nConfig = getI18nConfig();\n  const localeCookieName = i18nConfig.getLocaleCookieName();\n  const candidates: string[] = [];\n\n  const cookie = getCookieValue(document.cookie, localeCookieName);\n  if (cookie) candidates.push(cookie);\n\n  if (candidates.length === 0) {\n    console.warn(\n      'gt-tanstack-start(client): no locales could be determined for this request'\n    );\n  }\n\n  return i18nConfig.resolveSupportedLocale(candidates, {\n    defaultLocale,\n    locales,\n    customMapping,\n  });\n}\n","import {\n  createMiddleware,\n  type RequestMiddlewareAfterServer,\n} from '@tanstack/react-start';\nimport { getConditionStore } from '../condition-store/singleton';\n\n/**\n * Establish request-scoped GT conditions for SSR, server routes, and server\n * functions.\n */\nexport const gtMiddleware: RequestMiddlewareAfterServer<\n  {},\n  undefined,\n  undefined\n> = createMiddleware().server(({ request, pathname, next }) => {\n  return getConditionStore().run(request, () => next(), pathname);\n});\n","import {\n  createOrUpdateBrowserConditionStore,\n  initializeGT as initializeReactGT,\n} from 'gt-react';\nimport { determineLocaleClient } from '../functions/parseLocale';\nimport { getPathnameForLocale } from '../functions/localeRouting';\nimport type { InitializeGTParams } from '../types/InitializeGTParams';\n\n/** Initialize GT and its browser condition store from the locale cookie. */\nexport function initializeGT(config: InitializeGTParams): void {\n  const browserConfig =\n    config.localeRouting && !config._reload\n      ? {\n          ...config,\n          _reload: ({ locale }: { locale: string }) => {\n            const pathname = getPathnameForLocale(\n              window.location.pathname,\n              locale\n            );\n            const destination = new URL(window.location.href);\n            destination.pathname = pathname;\n            window.location.assign(destination.href);\n          },\n        }\n      : config;\n\n  initializeReactGT(config);\n  createOrUpdateBrowserConditionStore({\n    ...browserConfig,\n    locale: determineLocaleClient(config),\n  });\n}\n"],"mappings":";;;;;;AAMA,SAAS,eAAe,MAAM;CAC7B,MAAM,UAAU,KAAK,MAAM;AAC3B,KAAI,CAAC,QAAS,QAAO;AACrB,QAAO,UAAU,KAAK,QAAQ,GAAG,UAAU,GAAG,QAAQ;;AAEvD,SAAS,cAAc,MAAM;CAC5B,MAAM,UAAU,KAAK,MAAM;CAC3B,IAAI,MAAM,QAAQ;AAClB,QAAO,MAAM,GAAG;EACf,MAAM,OAAO,QAAQ,MAAM;AAC3B,MAAI,SAAS,OAAO,SAAS,OAAO,SAAS,IAAK;AAClD,SAAO;;AAER,QAAO,QAAQ,MAAM,GAAG,IAAI;;AAE7B,SAAS,cAAc,SAAS;AAC/B,KAAI,CAAC,QAAS,QAAO;CACrB,MAAM,aAAa,MAAM,QAAQ,QAAQ,GAAG,QAAQ,KAAK,KAAK,GAAG;AACjE,KAAI,CAAC,WAAW,MAAM,CAAE,QAAO;AAC/B,QAAO,eAAe,YAAY,aAAa;;AAMhD,SAAS,wBAAwB,EAAE,QAAQ,UAAU,cAAc,aAAa,KAAK,KAAK,QAAQ,SAAS,WAAW;CACrH,MAAM,SAAS,SAAS,WAAW,GAAG,OAAO,GAAG,SAAS,KAAK,GAAG,OAAO,KAAK,WAAW,GAAG,SAAS,KAAK;CACzG,MAAM,aAAa,MAAM,GAAG,cAAc,aAAa,CAAC,WAAW,cAAc,IAAI,KAAK;CAC1F,MAAM,sBAAsB,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,SAAS,KAAK,cAAc,OAAO,CAAC;CACrF,MAAM,eAAe;EACpB;EACA;EACA,sBAAsB,GAAG,cAAc,IAAI,CAAC,OAAO,cAAc,OAAO,KAAK;EAC7E,sBAAsB,KAAK,IAAI;EAC/B,cAAc,QAAQ;EACtB,CAAC,QAAQ,SAAS,CAAC,CAAC,KAAK,CAAC,IAAI,eAAe;AAC9C,KAAI,QAAS,cAAa,KAAK,eAAe,UAAU;CACxD,MAAM,UAAU,aAAa,KAAK,IAAI;AACtC,QAAO,SAAS,GAAG,OAAO,GAAG,YAAY;;;;ACxC1C,MAAM,oCAAoC,wBAAwB;CAChE,QAAQ;CACR,UAAU;CACV,cAAc;CACd,KAAK;CACL,KAAK;CACN,CAAC;AAEF,MAAM,0BAA0B,sBAC9B;CACE,WAAW;CACX,KAAK;CACL,QAAQ;CACR,sBAAsB;CACvB,CACF;AAED,MAAa,oBAAoB,wBAAwB;AACxB,wBAAwB;AACzD,MAAa,8BACX,wBAAwB;;;;ACrB1B,SAAgB,kBACd,UACA,WAAW,mBAAmB,EACV;CACpB,MAAM,EAAE,UAAU,kBAAkB,cAAc,UAAU,SAAS;CACrE,MAAM,QAAQ,cAAc,MAAM,qBAAqB;AACvD,KAAI,CAAC,MAAO,QAAO,KAAA;CAEnB,IAAI;AACJ,KAAI;AACF,YAAU,mBAAmB,MAAM,GAAG;SAChC;AACN;;AAGF,QAAO,eAAe,CAAC,yBAAyB,QAAQ;;;AAI1D,SAAgB,qBACd,UACA,QACA,WAAW,mBAAmB,EACtB;CACR,MAAM,aAAa,eAAe;CAClC,MAAM,EAAE,UAAU,eAAe,UAAU,kBAAkB,cAC3D,UACA,SACD;CAED,MAAM,kBADa,kBAAkB,eAAe,IAClB,GAC9B,cAAc,QAAQ,YAAY,GAAG,IAAI,MACzC;CACJ,MAAM,iBAAiB,WAAW,uBAAuB,OAAO;AAEhE,KAAI,mBAAmB,WAAW,kBAAkB,CAClD,QAAO,GAAG,gBAAgB;AAG5B,QAAO,GAAG,cAAc,GAAG,mBAAmB,eAAe,GAC3D,oBAAoB,MAAM,KAAK;;AAInC,SAAS,oBAA4B;AACnC,QAAO,QAAQ,IAAI,uBAAuB;;AAG5C,SAAS,cACP,UACA,UACwC;CACxC,MAAM,qBAAqB,IAAI,SAAS,QAAQ,cAAc,GAAG;AACjE,KAAI,uBAAuB,OAAO,aAAa,mBAC7C,QAAO;EACL,UAAU,uBAAuB,MAAM,KAAK;EAC5C,UAAU,aAAa,qBAAqB,MAAM;EACnD;AAEH,KAAI,SAAS,WAAW,GAAG,mBAAmB,GAAG,CAC/C,QAAO;EACL,UAAU;EACV,UAAU,SAAS,MAAM,mBAAmB,OAAO;EACpD;AAEH,QAAO;EAAE,UAAU;EAAI;EAAU;;;;AC5DnC,MAAa,sBAAsB;CACjC,MAAM;CACN,UAAU;CACV,QAAQ,OAAU,KAAK;CACxB;AAED,MAAM,4BAA4B,wBAAwB;CACxD,QAAQ;CACR,UAAU;CACV,cAAc;CACd,aAAa;CACb,KAAK;CACN,CAAC;AAEF,SAAgB,yBACd,SACA,cACA,WAAW,IAAI,IAAI,QAAQ,IAAI,CAAC,UACb;CACnB,MAAM,aAAa,eAAe;CAClC,MAAM,eAAe,QAAQ,QAAQ,IAAI,SAAS;CAClD,MAAM,mBAA6B,EAAE;AACrC,KAAI,cAAc,eAAe;EAC/B,MAAM,aAAa,kBAAkB,SAAS;AAC9C,MAAI,WAAY,kBAAiB,KAAK,WAAW;;CAEnD,MAAM,eAAe,eACnB,cACA,WAAW,qBAAqB,CACjC;AACD,KAAI,aAAc,kBAAiB,KAAK,aAAa;AACrD,kBAAiB,KACf,GAAG,oBAAoB,QAAQ,QAAQ,IAAI,kBAAkB,CAAC,CAC/D;AAED,KAAI,iBAAiB,WAAW,EAC9B,SAAQ,KAAK,0BAA0B;CAGzC,MAAM,SAAS,WAAW,uBACxB,kBACA,gBAAgB;EACd,eAAe,WAAW,kBAAkB;EAC5C,SAAS,WAAW,YAAY;EAChC,eAAe,WAAW,kBAAkB;EAC7C,CACF;AAED,WAAU,WAAW,qBAAqB,EAAE,QAAQ,oBAAoB;CAExE,MAAM,mBAAmB,eACvB,cACA,WAAW,yBAAyB,CACrC;AAED,QAAO;EACL;EACA,QACE,eAAe,cAAc,WAAW,qBAAqB,CAAC,IAC9D,KAAA;EACF,YACE,qBAAqB,KAAA,IAAY,OAAO,qBAAqB;EAChE;;;;;ACtDH,MAAa,YAA0B,oBAAoB,CACxD,aAAqB,mBAAmB,CAAC,WAAW,CAAC,CACrD,aAAqB,2BAA2B,CAAC,WAAW,CAAC;;AAGhE,MAAa,gBAA+B,oBAAoB,CAC7D,aAAsB,mBAAmB,CAAC,eAAe,CAAC,CAC1D,aAAsB,2BAA2B,CAAC,eAAe,CAAC;;AAGrE,MAAa,QACX,oBAAoB,CACjB,QAAQ,aAAyB;CAChC,MAAM,iBAAiB,mBAAmB;AAC1C,QAAO,cACL;EACE,QAAQ,eAAe,WAAW;EAClC,YAAY,eAAe,eAAe;EAC3C,EACD,SACD;EACD,CACD,QAAQ,aAAyB;CAChC,MAAM,iBAAiB,2BAA2B;AAClD,QAAO,cACL;EACE,QAAQ,eAAe,WAAW;EAClC,YAAY,eAAe,eAAe;EAC3C,EACD,SACD;EACD;;AAGN,MAAa,cAA4C,oBAAoB,CAC1E,aAAa;CACZ,MAAM,iBAAiB,mBAAmB;AAC1C,QAAO,oBAAoB;EACzB,QAAQ,eAAe,WAAW;EAClC,YAAY,eAAe,eAAe;EAC3C,CAAC;EACF,CACD,aAAa;CACZ,MAAM,iBAAiB,2BAA2B;AAClD,QAAO,oBAAoB;EACzB,QAAQ,eAAe,WAAW;EAClC,YAAY,eAAe,eAAe;EAC3C,CAAC;EACF;;AAGJ,MAAa,kBACX,oBAAoB,CACjB,QAAQ,WAAoB;CAC3B,MAAM,iBAAiB,mBAAmB;AAC1C,QAAO,wBAAwB;EAC7B,QAAQ,eAAe,WAAW;EAClC,YAAY,eAAe,eAAe;EAC1C;EACD,CAAC;EACF,CACD,QAAQ,WAAoB;CAC3B,MAAM,iBAAiB,2BAA2B;AAClD,QAAO,wBAAwB;EAC7B,QAAQ,eAAe,WAAW;EAClC,YAAY,eAAe,eAAe;EAC1C;EACD,CAAC;EACF;;;ACxEN,MAAa,kBAAkB,oBAAoB,CAChD,OAAO,sBAAsB,CAC7B,aAAa,WAAW,CAAC;;;;;;;;AAS5B,SAAgB,cAAsB;CACpC,MAAM,aAAa,eAAe;AAClC,QAAO,gBAAgB;EACrB,eAAe,WAAW,kBAAkB;EAC5C,SAAS,WAAW,YAAY;EAChC,eAAe,WAAW,kBAAkB;EAC7C,CAAC;;AAGJ,SAAS,sBAAsB,EAC7B,eACA,SACA,iBACuB;AACvB,KAAI,6BAA6B,EAAE;EACjC,MAAM,iBAAiB,mBAAmB;AAC1C,MAAI,eAAe,gBAAgB,CACjC,QAAO,eAAe,WAAW;;AAIrC,QAAO,yBAAyB,YAAY,EAAE;EAC5C;EACA;EACA;EACD,CAAC,CAAC;;;AAIL,SAAgB,sBAAsB,EACpC,eACA,SACA,iBAC+B;CAC/B,MAAM,aAAa,eAAe;CAClC,MAAM,mBAAmB,WAAW,qBAAqB;CACzD,MAAM,aAAuB,EAAE;CAE/B,MAAM,SAAS,eAAe,SAAS,QAAQ,iBAAiB;AAChE,KAAI,OAAQ,YAAW,KAAK,OAAO;AAEnC,KAAI,WAAW,WAAW,EACxB,SAAQ,KACN,6EACD;AAGH,QAAO,WAAW,uBAAuB,YAAY;EACnD;EACA;EACA;EACD,CAAC;;;;;;;;AChEJ,MAAa,eAIT,kBAAkB,CAAC,QAAQ,EAAE,SAAS,UAAU,WAAW;AAC7D,QAAO,mBAAmB,CAAC,IAAI,eAAe,MAAM,EAAE,SAAS;EAC/D;;;;ACPF,SAAgB,aAAa,QAAkC;CAC7D,MAAM,gBACJ,OAAO,iBAAiB,CAAC,OAAO,UAC5B;EACE,GAAG;EACH,UAAU,EAAE,aAAiC;GAC3C,MAAM,WAAW,qBACf,OAAO,SAAS,UAChB,OACD;GACD,MAAM,cAAc,IAAI,IAAI,OAAO,SAAS,KAAK;AACjD,eAAY,WAAW;AACvB,UAAO,SAAS,OAAO,YAAY,KAAK;;EAE3C,GACD;AAEN,gBAAkB,OAAO;AACzB,qCAAoC;EAClC,GAAG;EACH,QAAQ,sBAAsB,OAAO;EACtC,CAAC"}