{"version":3,"sources":["../../../src/build/templates/app-page.ts"],"sourcesContent":["import type { LoaderTree } from '../../server/lib/app-dir-module'\nimport type { IncomingMessage, ServerResponse } from 'node:http'\nimport type { FallbackRouteParam } from '../static-paths/types'\n\nimport {\n  AppPageRouteModule,\n  type AppPageRouteHandlerContext,\n} from '../../server/route-modules/app-page/module.compiled' with { 'turbopack-transition': 'next-ssr' }\n\nimport { RouteKind } from '../../server/route-kind' with { 'turbopack-transition': 'next-server-utility' }\n\nimport { getRevalidateReason } from '../../server/instrumentation/utils' with { 'turbopack-transition': 'next-server-utility' }\nimport {\n  getTracer,\n  SpanKind,\n  type Span,\n} from '../../server/lib/trace/tracer' with { 'turbopack-transition': 'next-server-utility' }\nimport type { RequestMeta } from '../../server/request-meta'\nimport {\n  addRequestMeta,\n  getRequestMeta,\n  setRequestMeta,\n} from '../../server/request-meta' with { 'turbopack-transition': 'next-server-utility' }\nimport { BaseServerSpan } from '../../server/lib/trace/constants' with { 'turbopack-transition': 'next-server-utility' }\nimport { interopDefault } from '../../server/app-render/interop-default' with { 'turbopack-transition': 'next-server-utility' }\nimport { stripFlightHeaders } from '../../server/app-render/strip-flight-headers' with { 'turbopack-transition': 'next-server-utility' }\nimport {\n  NodeNextRequest,\n  NodeNextResponse,\n} from '../../server/base-http/node' with { 'turbopack-transition': 'next-server-utility' }\nimport { checkIsAppPPREnabled } from '../../server/lib/experimental/ppr' with { 'turbopack-transition': 'next-server-utility' }\nimport { isRSCRequestHeader } from '../../server/lib/is-rsc-request' with { 'turbopack-transition': 'next-server-utility' }\nimport {\n  getFallbackRouteParams,\n  getPlaceholderFallbackRouteParams,\n  buildDynamicSegmentPlaceholder,\n  createOpaqueFallbackRouteParams,\n  type OpaqueFallbackRouteParams,\n} from '../../server/request/fallback-params' with { 'turbopack-transition': 'next-server-utility' }\nimport { setManifestsSingleton } from '../../server/app-render/manifests-singleton' with { 'turbopack-transition': 'next-server-utility' }\nimport {\n  isHtmlBotRequest,\n  shouldServeStreamingMetadata,\n} from '../../server/lib/streaming-metadata' with { 'turbopack-transition': 'next-server-utility' }\nimport { normalizeAppPath } from '../../shared/lib/router/utils/app-paths' with { 'turbopack-transition': 'next-server-utility' }\nimport { getIsPossibleServerAction } from '../../server/lib/server-action-request-meta' with { 'turbopack-transition': 'next-server-utility' }\nimport {\n  RSC_HEADER,\n  NEXT_ROUTER_PREFETCH_HEADER,\n  NEXT_INSTANT_PREFETCH_HEADER,\n  NEXT_INSTANT_TEST_COOKIE,\n  NEXT_IS_PRERENDER_HEADER,\n  NEXT_DID_POSTPONE_HEADER,\n  RSC_CONTENT_TYPE_HEADER,\n} from '../../client/components/app-router-headers' with { 'turbopack-transition': 'next-server-utility' }\nimport {\n  getBotType,\n  isBot,\n} from '../../shared/lib/router/utils/is-bot' with { 'turbopack-transition': 'next-server-utility' }\nimport {\n  CachedRouteKind,\n  IncrementalCacheKind,\n  type CachedAppPageValue,\n  type CachedPageValue,\n  type ResponseCacheEntry,\n  type ResponseGenerator,\n} from '../../server/response-cache' with { 'turbopack-transition': 'next-server-utility' }\nimport {\n  FallbackMode,\n  parseFallbackField,\n} from '../../lib/fallback' with { 'turbopack-transition': 'next-server-utility' }\nimport RenderResult from '../../server/render-result' with { 'turbopack-transition': 'next-server-utility' }\nimport {\n  CACHE_ONE_YEAR_SECONDS,\n  HTML_CONTENT_TYPE_HEADER,\n  NEXT_CACHE_TAGS_HEADER,\n  NEXT_NAV_DEPLOYMENT_ID_HEADER,\n  NEXT_RESUME_HEADER,\n  NEXT_RESUME_STATE_LENGTH_HEADER,\n} from '../../lib/constants' with { 'turbopack-transition': 'next-server-utility' }\nimport type { CacheControl } from '../../server/lib/cache-control'\nimport { ENCODED_TAGS } from '../../server/stream-utils/encoded-tags' with { 'turbopack-transition': 'next-server-utility' }\nimport { createInstantTestScriptInsertionTransformStream } from '../../server/stream-utils/node-web-streams-helper' with { 'turbopack-transition': 'next-server-utility' }\nimport { sendRenderResult } from '../../server/send-payload' with { 'turbopack-transition': 'next-server-utility' }\nimport { NoFallbackError } from '../../shared/lib/no-fallback-error.external' with { 'turbopack-transition': 'next-server-utility' }\nimport { parseMaxPostponedStateSize } from '../../shared/lib/size-limit' with { 'turbopack-transition': 'next-server-utility' }\nimport {\n  getMaxPostponedStateSize,\n  getPostponedStateExceededErrorMessage,\n  readBodyWithSizeLimit,\n} from '../../server/lib/postponed-request-body' with { 'turbopack-transition': 'next-server-utility' }\nimport { parseUrl } from '../../lib/url'\n\n// These are injected by the loader afterwards.\n\n/**\n * The tree created in next-app-loader that holds component segments and modules\n * and I've updated it.\n */\ndeclare const tree: LoaderTree\n\n// These are injected by the loader afterwards.\ndeclare const __next_app_require__: (id: string | number) => unknown\ndeclare const __next_app_load_chunk__: (id: string | number) => Promise<unknown>\n\n// We inject the tree and pages here so that we can use them in the route\n// module.\n// INJECT:tree\n// INJECT:__next_app_require__\n// INJECT:__next_app_load_chunk__\n\nexport const __next_app__ = {\n  require: __next_app_require__,\n  loadChunk: __next_app_load_chunk__,\n}\n\nimport * as entryBase from '../../server/app-render/entry-base' with { 'turbopack-transition': 'next-server-utility' }\nimport { RedirectStatusCode } from '../../client/components/redirect-status-code' with { 'turbopack-transition': 'next-server-utility' }\nimport { InvariantError } from '../../shared/lib/invariant-error' with { 'turbopack-transition': 'next-server-utility' }\nimport { scheduleOnNextTick } from '../../lib/scheduler' with { 'turbopack-transition': 'next-server-utility' }\nimport { isInterceptionRouteAppPath } from '../../shared/lib/router/utils/interception-routes' with { 'turbopack-transition': 'next-server-utility' }\nimport { getSegmentParam } from '../../shared/lib/router/utils/get-segment-param' with { 'turbopack-transition': 'next-server-utility' }\n\nexport * from '../../server/app-render/entry-base' with { 'turbopack-transition': 'next-server-utility' }\n\n// Create and export the route module that will be consumed.\nexport const routeModule = new AppPageRouteModule({\n  definition: {\n    kind: RouteKind.APP_PAGE,\n    page: 'VAR_DEFINITION_PAGE',\n    pathname: 'VAR_DEFINITION_PATHNAME',\n    // The following aren't used in production.\n    bundlePath: '',\n    filename: '',\n    appPaths: [],\n  },\n  userland: {\n    loaderTree: tree,\n  },\n  distDir: process.env.__NEXT_RELATIVE_DIST_DIR || '',\n  relativeProjectDir: process.env.__NEXT_RELATIVE_PROJECT_DIR || '',\n})\n\n/**\n * Builds the cache key for the most complete prerenderable shell we can derive\n * from the shell that matched this request. Only params that can still be\n * filled by `generateStaticParams` are substituted; fully dynamic params stay\n * as placeholders so a request like `/c/foo` can complete `/[one]/[two]` into\n * `/c/[two]` rather than `/c/foo`.\n */\nfunction buildCompletedShellCacheKey(\n  fallbackPathname: string,\n  remainingPrerenderableParams: readonly FallbackRouteParam[],\n  params: Record<string, undefined | string | string[]> | undefined\n): string {\n  const prerenderableParamsByName = new Map(\n    remainingPrerenderableParams.map((param) => [param.paramName, param])\n  )\n\n  return (\n    fallbackPathname\n      .split('/')\n      .map((segment) => {\n        const segmentParam = getSegmentParam(segment)\n        if (!segmentParam) {\n          return segment\n        }\n\n        const remainingParam = prerenderableParamsByName.get(\n          segmentParam.paramName\n        )\n        if (!remainingParam) {\n          return segment\n        }\n\n        const value = params?.[remainingParam.paramName]\n        if (!value) {\n          return segment\n        }\n\n        const encodedValue = Array.isArray(value)\n          ? value.map((item) => encodeURIComponent(item)).join('/')\n          : encodeURIComponent(value)\n\n        return segment.replace(\n          buildDynamicSegmentPlaceholder(remainingParam),\n          encodedValue\n        )\n      })\n      .join('/') || '/'\n  )\n}\n\nexport async function handler(\n  req: IncomingMessage,\n  res: ServerResponse,\n  ctx: {\n    waitUntil?: (prom: Promise<void>) => void\n    requestMeta?: RequestMeta\n  }\n) {\n  if (ctx.requestMeta) {\n    setRequestMeta(req, ctx.requestMeta)\n  }\n\n  if (routeModule.isDev) {\n    addRequestMeta(req, 'devRequestTimingInternalsEnd', process.hrtime.bigint())\n  }\n  const isMinimalMode = Boolean(getRequestMeta(req, 'minimalMode'))\n\n  let srcPage = 'VAR_DEFINITION_PAGE'\n\n  // turbopack doesn't normalize `/index` in the page name\n  // so we need to to process dynamic routes properly\n  // TODO: fix turbopack providing differing value from webpack\n  if (process.env.TURBOPACK) {\n    srcPage = srcPage.replace(/\\/index$/, '') || '/'\n  } else if (srcPage === '/index') {\n    // we always normalize /index specifically\n    srcPage = '/'\n  }\n  const multiZoneDraftMode = process.env\n    .__NEXT_MULTI_ZONE_DRAFT_MODE as any as boolean\n\n  const prepareResult = await routeModule.prepare(req, res, {\n    srcPage,\n    multiZoneDraftMode,\n  })\n\n  if (!prepareResult) {\n    res.statusCode = 400\n    res.end('Bad Request')\n    ctx.waitUntil?.(Promise.resolve())\n    return null\n  }\n\n  const {\n    buildId,\n    query,\n    params,\n    pageIsDynamic,\n    buildManifest,\n    nextFontManifest,\n    reactLoadableManifest,\n    serverActionsManifest,\n    clientReferenceManifest,\n    subresourceIntegrityManifest,\n    prerenderManifest,\n    isDraftMode,\n    resolvedPathname,\n    revalidateOnlyGenerated,\n    routerServerContext,\n    nextConfig,\n    parsedUrl,\n    interceptionRoutePatterns,\n    deploymentId,\n    clientAssetToken,\n  } = prepareResult\n\n  const normalizedSrcPage = normalizeAppPath(srcPage)\n\n  let { isOnDemandRevalidate } = prepareResult\n\n  // We use the resolvedPathname instead of the parsedUrl.pathname because it\n  // is not rewritten as resolvedPathname is. This will ensure that the correct\n  // prerender info is used instead of using the original pathname as the\n  // source. If however PPR is enabled and cacheComponents is disabled, we\n  // treat the pathname as dynamic. Currently, there's a bug in the PPR\n  // implementation that incorrectly leaves %%drp placeholders in the output of\n  // parallel routes. This is addressed with cacheComponents.\n  const prerenderMatch =\n    nextConfig.experimental.ppr &&\n    !nextConfig.cacheComponents &&\n    isInterceptionRouteAppPath(resolvedPathname)\n      ? null\n      : routeModule.match(resolvedPathname, prerenderManifest)\n  const prerenderInfo = prerenderMatch?.route ?? null\n\n  const isPrerendered = !!prerenderManifest.routes[resolvedPathname]\n\n  const userAgent = req.headers['user-agent'] || ''\n  const botType = getBotType(userAgent)\n  const isHtmlBot = isHtmlBotRequest(req)\n\n  /**\n   * If true, this indicates that the request being made is for an app\n   * prefetch request.\n   */\n  const isPrefetchRSCRequest =\n    getRequestMeta(req, 'isPrefetchRSCRequest') ??\n    req.headers[NEXT_ROUTER_PREFETCH_HEADER] === '1' // exclude runtime prefetches, which use '2'\n\n  // NOTE: Don't delete headers[RSC] yet, it still needs to be used in renderToHTML later\n\n  const isRSCRequest =\n    getRequestMeta(req, 'isRSCRequest') ??\n    isRSCRequestHeader(req.headers[RSC_HEADER])\n\n  const isPossibleServerAction = getIsPossibleServerAction(req)\n\n  /**\n   * If the route being rendered is an app page, and the ppr feature has been\n   * enabled, then the given route _could_ support PPR.\n   */\n  const couldSupportPPR: boolean = checkIsAppPPREnabled(\n    nextConfig.experimental.ppr\n  )\n\n  // Stash postponed state for server actions when in minimal mode.\n  // We extract it here so the RDC is available for the re-render after the action completes.\n  const resumeStateLengthHeader = req.headers[NEXT_RESUME_STATE_LENGTH_HEADER]\n  if (\n    !getRequestMeta(req, 'postponed') &&\n    isMinimalMode &&\n    couldSupportPPR &&\n    isPossibleServerAction &&\n    resumeStateLengthHeader &&\n    typeof resumeStateLengthHeader === 'string'\n  ) {\n    const stateLength = parseInt(resumeStateLengthHeader, 10)\n    const { maxPostponedStateSize, maxPostponedStateSizeBytes } =\n      getMaxPostponedStateSize(nextConfig.experimental.maxPostponedStateSize)\n\n    if (!isNaN(stateLength) && stateLength > 0) {\n      if (stateLength > maxPostponedStateSizeBytes) {\n        res.statusCode = 413\n        res.end(getPostponedStateExceededErrorMessage(maxPostponedStateSize))\n        ctx.waitUntil?.(Promise.resolve())\n        return null\n      }\n\n      // Calculate max total body size to prevent buffering excessively large\n      // payloads before the action handler checks. We use stateLength (not\n      // maxPostponedStateSizeBytes) so the postponed state doesn't eat into\n      // the action body budget - it's already validated above.\n      const defaultActionBodySizeLimit = '1 MB'\n      const actionBodySizeLimit =\n        nextConfig.experimental.serverActions?.bodySizeLimit ??\n        defaultActionBodySizeLimit\n      const actionBodySizeLimitBytes =\n        actionBodySizeLimit !== defaultActionBodySizeLimit\n          ? (\n              require('next/dist/compiled/bytes') as typeof import('next/dist/compiled/bytes')\n            ).parse(actionBodySizeLimit)\n          : 1024 * 1024 // 1 MB\n      const maxTotalBodySize = stateLength + actionBodySizeLimitBytes\n\n      const fullBody = await readBodyWithSizeLimit(req, maxTotalBodySize)\n      if (fullBody === null) {\n        res.statusCode = 413\n        res.end(\n          `Request body exceeded limit. ` +\n            `To configure the body size limit for Server Actions, see: https://nextjs.org/docs/app/api-reference/next-config-js/serverActions#bodysizelimit`\n        )\n        ctx.waitUntil?.(Promise.resolve())\n        return null\n      }\n\n      if (fullBody.length >= stateLength) {\n        // Extract postponed state from the beginning\n        const postponedState = fullBody\n          .subarray(0, stateLength)\n          .toString('utf8')\n        addRequestMeta(req, 'postponed', postponedState)\n\n        // Store the remaining action body for the action handler\n        const actionBody = fullBody.subarray(stateLength)\n        addRequestMeta(req, 'actionBody', actionBody)\n      } else {\n        throw new Error(\n          `invariant: expected ${stateLength} bytes of postponed state but only received ${fullBody.length} bytes`\n        )\n      }\n    }\n  }\n\n  if (\n    !getRequestMeta(req, 'postponed') &&\n    couldSupportPPR &&\n    req.headers[NEXT_RESUME_HEADER] === '1' &&\n    req.method === 'POST'\n  ) {\n    const { maxPostponedStateSize, maxPostponedStateSizeBytes } =\n      getMaxPostponedStateSize(nextConfig.experimental.maxPostponedStateSize)\n\n    // Decode the postponed state from the request body, it will come as\n    // an array of buffers, so collect them and then concat them to form\n    // the string.\n    const body = await readBodyWithSizeLimit(req, maxPostponedStateSizeBytes)\n    if (body === null) {\n      res.statusCode = 413\n      res.end(getPostponedStateExceededErrorMessage(maxPostponedStateSize))\n      ctx.waitUntil?.(Promise.resolve())\n      return null\n    }\n    const postponed = body.toString('utf8')\n\n    addRequestMeta(req, 'postponed', postponed)\n  }\n\n  // When enabled, this will allow the use of the `?__nextppronly` query to\n  // enable debugging of the static shell.\n  const hasDebugStaticShellQuery =\n    process.env.__NEXT_EXPERIMENTAL_STATIC_SHELL_DEBUGGING === '1' &&\n    typeof query.__nextppronly !== 'undefined' &&\n    couldSupportPPR\n\n  // When enabled, this will allow the use of the `?__nextppronly` query\n  // to enable debugging of the fallback shell.\n  const hasDebugFallbackShellQuery =\n    hasDebugStaticShellQuery && query.__nextppronly === 'fallback'\n\n  // Whether the testing API is exposed (dev mode or explicit flag)\n  const exposeTestingApi =\n    routeModule.isDev === true ||\n    nextConfig.experimental.exposeTestingApiInProductionBuild === true\n\n  // Enable the Instant Navigation Testing API. Renders only the prefetched\n  // portion of the page, excluding dynamic content. This allows tests to\n  // assert on the prefetched UI state deterministically.\n  // - Header: Used for client-side navigations where we can set request headers\n  // - Cookie: Used for MPA navigations (page reload, full page load) where we\n  //   can't set request headers. Only applies to document requests (no RSC\n  //   header) - RSC requests should proceed normally even during a locked scope,\n  //   with blocking happening on the client side.\n  const isInstantNavigationTest =\n    exposeTestingApi &&\n    (req.headers[NEXT_INSTANT_PREFETCH_HEADER] === '1' ||\n      (!isRSCRequestHeader(req.headers[RSC_HEADER]) &&\n        typeof req.headers.cookie === 'string' &&\n        req.headers.cookie.includes(NEXT_INSTANT_TEST_COOKIE + '=')))\n\n  // This page supports PPR if it is marked as being `PARTIALLY_STATIC` in the\n  // prerender manifest and this is an app page.\n  const isRoutePPREnabled: boolean =\n    // When the instant navigation testing API is active, enable the PPR\n    // prerender path even without Cache Components. In dev mode without CC,\n    // static pages need this path to produce buffered segment data (the\n    // legacy prerender path hangs in dev mode).\n    (couldSupportPPR || isInstantNavigationTest) &&\n    ((\n      prerenderManifest.routes[normalizedSrcPage] ??\n      prerenderManifest.dynamicRoutes[normalizedSrcPage]\n    )?.renderingMode === 'PARTIALLY_STATIC' ||\n      // Ideally we'd want to check the appConfig to see if this page has PPR\n      // enabled or not, but that would require plumbing the appConfig through\n      // to the server during development. We assume that the page supports it\n      // but only during development or when the testing API is exposed.\n      ((hasDebugStaticShellQuery || isInstantNavigationTest) &&\n        (exposeTestingApi ||\n          routerServerContext?.experimentalTestProxy === true)))\n\n  const isDebugStaticShell: boolean =\n    (hasDebugStaticShellQuery || isInstantNavigationTest) && isRoutePPREnabled\n\n  // We should enable debugging dynamic accesses when the static shell\n  // debugging has been enabled and we're also in development mode.\n  const isDebugDynamicAccesses =\n    isDebugStaticShell && routeModule.isDev === true\n\n  const isDebugFallbackShell = hasDebugFallbackShellQuery && isRoutePPREnabled\n\n  // If we're in minimal mode, then try to get the postponed information from\n  // the request metadata. If available, use it for resuming the postponed\n  // render.\n  const minimalPostponed = isRoutePPREnabled\n    ? getRequestMeta(req, 'postponed')\n    : undefined\n\n  // If PPR is enabled, and this is a RSC request (but not a prefetch), then\n  // we can use this fact to only generate the flight data for the request\n  // because we can't cache the HTML (as it's also dynamic).\n  const staticPrefetchDataRoute =\n    prerenderManifest.routes[resolvedPathname]?.prefetchDataRoute\n\n  let isDynamicRSCRequest =\n    isRoutePPREnabled &&\n    isRSCRequest &&\n    !isPrefetchRSCRequest &&\n    // If generated at build time, treat the RSC request as static\n    // so we can serve the prebuilt .rsc without a dynamic render.\n    // Only do this for routes that have a concrete prefetchDataRoute.\n    !staticPrefetchDataRoute\n\n  // During a PPR revalidation, the RSC request is not dynamic if we do not have the postponed data.\n  // We only attach the postponed data during a resume. If there's no postponed data, then it must be a revalidation.\n  // This is to ensure that we don't bypass the cache during a revalidation.\n  if (isMinimalMode) {\n    isDynamicRSCRequest = isDynamicRSCRequest && !!minimalPostponed\n  }\n\n  // Need to read this before it's stripped by stripFlightHeaders. We don't\n  // need to transfer it to the request meta because it's only read\n  // within this function; the static segment data should have already been\n  // generated, so we will always either return a static response or a 404.\n  const segmentPrefetchHeader = getRequestMeta(req, 'segmentPrefetchRSCRequest')\n\n  // TODO: investigate existing bug with shouldServeStreamingMetadata always\n  // being true for a revalidate due to modifying the base-server this.renderOpts\n  // when fixing this to correct logic it causes hydration issue since we set\n  // serveStreamingMetadata to true during export\n  const serveStreamingMetadata =\n    botType && isRoutePPREnabled\n      ? false\n      : !userAgent\n        ? true\n        : shouldServeStreamingMetadata(userAgent, nextConfig.htmlLimitedBots)\n\n  const isSSG = Boolean(\n    (prerenderInfo ||\n      isPrerendered ||\n      prerenderManifest.routes[normalizedSrcPage]) &&\n      // If this is a bot request and PPR is enabled, then we don't want\n      // to serve a static response. This applies to both DOM bots (like Googlebot)\n      // and HTML-limited bots.\n      !(botType && isRoutePPREnabled)\n  )\n\n  // When a page supports cacheComponents, we can support RDC for Navigations\n  const supportsRDCForNavigations =\n    isRoutePPREnabled && nextConfig.cacheComponents === true\n\n  // In development, we always want to generate dynamic HTML.\n  const supportsDynamicResponse: boolean =\n    // If we're in development, we always support dynamic HTML, unless it's\n    // a data request, in which case we only produce static HTML.\n    routeModule.isDev === true ||\n    // If this is not SSG or does not have static paths, then it supports\n    // dynamic HTML.\n    !isSSG ||\n    // If this request has provided postponed data, it supports dynamic\n    // HTML.\n    typeof minimalPostponed === 'string' ||\n    // If this handler supports onCacheEntryV2, then we can only support\n    // dynamic responses if it's a dynamic RSC request and not in minimal mode. If it\n    // doesn't support it we must fallback to the default behavior.\n    (supportsRDCForNavigations && getRequestMeta(req, 'onCacheEntryV2')\n      ? // In minimal mode, we'll always want to generate a static response\n        // which will generate the RDC for the route. When resuming a Dynamic\n        // RSC request, we'll pass the minimal postponed data to the render\n        // which will trigger the `supportsDynamicResponse` to be true.\n        isDynamicRSCRequest && !isMinimalMode\n      : // Otherwise, we can support dynamic responses if it's a dynamic RSC request.\n        isDynamicRSCRequest)\n\n  // When bots request PPR page, perform the full dynamic rendering.\n  // This applies to both DOM bots (like Googlebot) and HTML-limited bots.\n  const shouldWaitOnAllReady = Boolean(botType) && isRoutePPREnabled\n  const remainingPrerenderableParams =\n    prerenderInfo?.remainingPrerenderableParams ?? []\n  const hasUnresolvedRootFallbackParams =\n    prerenderInfo?.fallback === null &&\n    (prerenderInfo.fallbackRootParams?.length ?? 0) > 0\n\n  let ssgCacheKey: string | null = null\n  if (\n    !isDraftMode &&\n    isSSG &&\n    !supportsDynamicResponse &&\n    !isPossibleServerAction &&\n    !minimalPostponed &&\n    !isDynamicRSCRequest\n  ) {\n    // For normal SSG routes we cache by the fully resolved pathname. For\n    // partial fallbacks we instead derive the cache key from the shell\n    // that matched this request so `/prefix/[one]/[two]` can specialize into\n    // `/prefix/c/[two]` without promoting all the way to `/prefix/c/foo`.\n    const fallbackPathname = prerenderMatch\n      ? typeof prerenderInfo?.fallback === 'string'\n        ? prerenderInfo.fallback\n        : prerenderMatch.source\n      : null\n\n    if (\n      nextConfig.experimental.partialFallbacks === true &&\n      fallbackPathname &&\n      prerenderInfo?.fallbackRouteParams &&\n      !hasUnresolvedRootFallbackParams\n    ) {\n      if (remainingPrerenderableParams.length > 0) {\n        const completedShellCacheKey = buildCompletedShellCacheKey(\n          fallbackPathname,\n          remainingPrerenderableParams,\n          params\n        )\n\n        // If applying the current request params doesn't make the shell any\n        // more complete, then this shell is already at its most complete\n        // form and should remain shared rather than creating a new cache entry.\n        ssgCacheKey =\n          completedShellCacheKey !== fallbackPathname\n            ? completedShellCacheKey\n            : null\n      }\n    } else {\n      ssgCacheKey = resolvedPathname\n    }\n  }\n\n  // the staticPathKey differs from ssgCacheKey since\n  // ssgCacheKey is null in dev since we're always in \"dynamic\"\n  // mode in dev to bypass the cache. It can also be null for partial\n  // fallback shells that should remain shared and must not create a\n  // param-specific ISR entry, but we still need to honor fallback handling.\n  let staticPathKey = ssgCacheKey\n  if (\n    !staticPathKey &&\n    (routeModule.isDev ||\n      (isSSG &&\n        pageIsDynamic &&\n        prerenderInfo?.fallbackRouteParams &&\n        // Server action requests must not get a staticPathKey, otherwise they\n        // enter the fallback rendering block below and return the cached HTML\n        // shell with the action result appended, instead of responding with\n        // just the RSC action result.\n        !isPossibleServerAction))\n  ) {\n    staticPathKey = resolvedPathname\n  }\n\n  // If this is a request for an app path that should be statically generated\n  // and we aren't in the edge runtime, strip the flight headers so it will\n  // generate the static response.\n  if (\n    !routeModule.isDev &&\n    !isDraftMode &&\n    isSSG &&\n    isRSCRequest &&\n    !isDynamicRSCRequest\n  ) {\n    stripFlightHeaders(req.headers)\n  }\n\n  const ComponentMod = {\n    ...entryBase,\n    tree,\n    handler,\n    routeModule,\n    __next_app__,\n  }\n\n  // Before rendering (which initializes component tree modules), we have to\n  // set the reference manifests to our global store so Server Action's\n  // encryption util can access to them at the top level of the page module.\n  if (serverActionsManifest && clientReferenceManifest) {\n    setManifestsSingleton({\n      page: srcPage,\n      clientReferenceManifest,\n      serverActionsManifest,\n    })\n  }\n\n  const method = req.method || 'GET'\n  const tracer = getTracer()\n  const activeSpan = tracer.getActiveScopeSpan()\n  const isWrappedByNextServer = Boolean(\n    routerServerContext?.isWrappedByNextServer\n  )\n  const remainingFallbackRouteParams =\n    nextConfig.experimental.partialFallbacks === true &&\n    remainingPrerenderableParams.length > 0\n      ? (prerenderInfo?.fallbackRouteParams?.filter(\n          (param) =>\n            !remainingPrerenderableParams.some(\n              (prerenderableParam) =>\n                prerenderableParam.paramName === param.paramName\n            )\n        ) ?? [])\n      : []\n\n  const render404 = async () => {\n    // TODO: should route-module itself handle rendering the 404\n    if (routerServerContext?.render404) {\n      await routerServerContext.render404(req, res, parsedUrl, false)\n    } else {\n      res.end('This page could not be found')\n    }\n    return null\n  }\n\n  try {\n    const varyHeader = routeModule.getVaryHeader(\n      resolvedPathname,\n      interceptionRoutePatterns\n    )\n    res.setHeader('Vary', varyHeader)\n    let parentSpan: Span | undefined\n    const invokeRouteModule = async (\n      span: Span | undefined,\n      context: AppPageRouteHandlerContext\n    ) => {\n      const nextReq = new NodeNextRequest(req)\n      const nextRes = new NodeNextResponse(res)\n\n      return routeModule.render(nextReq, nextRes, context).finally(() => {\n        if (!span) return\n\n        span.setAttributes({\n          'http.status_code': res.statusCode,\n          'next.rsc': false,\n        })\n\n        const rootSpanAttributes = tracer.getRootSpanAttributes()\n        // We were unable to get attributes, probably OTEL is not enabled\n        if (!rootSpanAttributes) {\n          return\n        }\n\n        if (\n          rootSpanAttributes.get('next.span_type') !==\n          BaseServerSpan.handleRequest\n        ) {\n          console.warn(\n            `Unexpected root span type '${rootSpanAttributes.get(\n              'next.span_type'\n            )}'. Please report this Next.js issue https://github.com/vercel/next.js`\n          )\n          return\n        }\n\n        const route = rootSpanAttributes.get('next.route')\n        if (route) {\n          const name = `${method} ${route}`\n\n          span.setAttributes({\n            'next.route': route,\n            'http.route': route,\n            'next.span_name': name,\n          })\n          span.updateName(name)\n\n          // Propagate http.route to the parent span if one exists (e.g.\n          // a platform-created HTTP span in adapter deployments).\n          if (parentSpan && parentSpan !== span) {\n            parentSpan.setAttribute('http.route', route)\n            parentSpan.updateName(name)\n          }\n        } else {\n          span.updateName(`${method} ${srcPage}`)\n        }\n      })\n    }\n\n    const incrementalCache =\n      getRequestMeta(req, 'incrementalCache') ||\n      (await routeModule.getIncrementalCache(\n        req,\n        nextConfig,\n        prerenderManifest,\n        isMinimalMode\n      ))\n\n    incrementalCache?.resetRequestCache()\n    ;(globalThis as any).__incrementalCache = incrementalCache\n\n    const doRender = async ({\n      span,\n      postponed,\n      fallbackRouteParams,\n      forceStaticRender,\n    }: {\n      span?: Span\n\n      /**\n       * The postponed data for this render. This is only provided when resuming\n       * a render that has been postponed.\n       */\n      postponed: string | undefined\n\n      /**\n       * The unknown route params for this render.\n       */\n      fallbackRouteParams: OpaqueFallbackRouteParams | null\n\n      /**\n       * When true, this indicates that the response generator is being called\n       * in a context where the response must be generated statically.\n       *\n       * CRITICAL: This should only currently be used when revalidating due to a\n       * dynamic RSC request.\n       */\n      forceStaticRender: boolean\n    }): Promise<ResponseCacheEntry> => {\n      const context: AppPageRouteHandlerContext = {\n        query,\n        params,\n        page: normalizedSrcPage,\n        sharedContext: {\n          buildId,\n          deploymentId,\n          clientAssetToken,\n        },\n        serverComponentsHmrCache: getRequestMeta(\n          req,\n          'serverComponentsHmrCache'\n        ),\n        fallbackRouteParams,\n        renderOpts: {\n          App: () => null,\n          Document: () => null,\n          pageConfig: {},\n          ComponentMod,\n          Component: interopDefault(ComponentMod),\n\n          params,\n          routeModule,\n          page: srcPage,\n          postponed,\n          shouldWaitOnAllReady,\n          serveStreamingMetadata,\n          supportsDynamicResponse:\n            typeof postponed === 'string' || supportsDynamicResponse,\n          buildManifest,\n          nextFontManifest,\n          reactLoadableManifest,\n          subresourceIntegrityManifest,\n          setCacheStatus: routerServerContext?.setCacheStatus,\n          setIsrStatus: routerServerContext?.setIsrStatus,\n          setReactDebugChannel: routerServerContext?.setReactDebugChannel,\n          sendErrorsToBrowser: routerServerContext?.sendErrorsToBrowser,\n\n          dir:\n            process.env.NEXT_RUNTIME === 'nodejs'\n              ? (require('path') as typeof import('path')).join(\n                  /* turbopackIgnore: true */\n                  process.cwd(),\n                  routeModule.relativeProjectDir\n                )\n              : `${process.cwd()}/${routeModule.relativeProjectDir}`,\n          isDraftMode,\n          botType,\n          isOnDemandRevalidate,\n          isPossibleServerAction,\n          assetPrefix: nextConfig.assetPrefix,\n          nextConfigOutput: nextConfig.output,\n          crossOrigin: nextConfig.crossOrigin,\n          trailingSlash: nextConfig.trailingSlash,\n          images: nextConfig.images,\n          previewProps: prerenderManifest.preview,\n          enableTainting: nextConfig.experimental.taint,\n          htmlLimitedBots: nextConfig.htmlLimitedBots,\n          reactMaxHeadersLength: nextConfig.reactMaxHeadersLength,\n\n          multiZoneDraftMode,\n          incrementalCache,\n          cacheLifeProfiles: nextConfig.cacheLife,\n          basePath: nextConfig.basePath,\n          serverActions: nextConfig.experimental.serverActions,\n          logServerFunctions:\n            typeof nextConfig.logging === 'object' &&\n            Boolean(nextConfig.logging.serverFunctions),\n\n          ...(isDebugStaticShell ||\n          isDebugDynamicAccesses ||\n          isDebugFallbackShell\n            ? {\n                isBuildTimePrerendering: true,\n                supportsDynamicResponse: false,\n                isStaticGeneration: true,\n                isDebugDynamicAccesses: isDebugDynamicAccesses,\n              }\n            : {}),\n          cacheComponents: Boolean(nextConfig.cacheComponents),\n          experimental: {\n            isRoutePPREnabled,\n            expireTime: nextConfig.expireTime,\n            staleTimes: nextConfig.experimental.staleTimes,\n            dynamicOnHover: Boolean(nextConfig.experimental.dynamicOnHover),\n            optimisticRouting: Boolean(\n              nextConfig.experimental.optimisticRouting\n            ),\n            inlineCss: Boolean(nextConfig.experimental.inlineCss),\n            prefetchInlining: nextConfig.experimental.prefetchInlining ?? false,\n            authInterrupts: Boolean(nextConfig.experimental.authInterrupts),\n            cachedNavigations: Boolean(\n              nextConfig.experimental.cachedNavigations\n            ),\n            clientTraceMetadata:\n              nextConfig.experimental.clientTraceMetadata || ([] as any),\n            clientParamParsingOrigins:\n              nextConfig.experimental.clientParamParsingOrigins,\n            maxPostponedStateSizeBytes: parseMaxPostponedStateSize(\n              nextConfig.experimental.maxPostponedStateSize\n            ),\n          },\n\n          waitUntil: ctx.waitUntil,\n          onClose: (cb) => {\n            res.on('close', cb)\n          },\n          onAfterTaskError: () => {},\n\n          onInstrumentationRequestError: (\n            error,\n            _request,\n            errorContext,\n            silenceLog\n          ) =>\n            routeModule.onRequestError(\n              req,\n              error,\n              errorContext,\n              silenceLog,\n              routerServerContext\n            ),\n          err: getRequestMeta(req, 'invokeError'),\n        },\n      }\n\n      // When we're revalidating in the background, we should not allow dynamic\n      // responses.\n      if (forceStaticRender) {\n        context.renderOpts.supportsDynamicResponse = false\n      }\n\n      const result = await invokeRouteModule(span, context)\n\n      const { metadata } = result\n\n      const {\n        cacheControl,\n        headers = {},\n        // Add any fetch tags that were on the page to the response headers.\n        fetchTags: cacheTags,\n        fetchMetrics,\n      } = metadata\n\n      if (cacheTags) {\n        headers[NEXT_CACHE_TAGS_HEADER] = cacheTags\n      }\n\n      // Pull any fetch metrics from the render onto the request.\n      ;(req as any).fetchMetrics = fetchMetrics\n\n      // we don't throw static to dynamic errors in dev as isSSG\n      // is a best guess in dev since we don't have the prerender pass\n      // to know whether the path is actually static or not\n      if (\n        isSSG &&\n        cacheControl?.revalidate === 0 &&\n        !routeModule.isDev &&\n        !isRoutePPREnabled\n      ) {\n        const staticBailoutInfo = metadata.staticBailoutInfo\n\n        const err = new Error(\n          `Page changed from static to dynamic at runtime ${resolvedPathname}${\n            staticBailoutInfo?.description\n              ? `, reason: ${staticBailoutInfo.description}`\n              : ``\n          }` +\n            `\\nsee more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`\n        )\n\n        if (staticBailoutInfo?.stack) {\n          const stack = staticBailoutInfo.stack\n          err.stack = err.message + stack.substring(stack.indexOf('\\n'))\n        }\n\n        throw err\n      }\n\n      return {\n        value: {\n          kind: CachedRouteKind.APP_PAGE,\n          html: result,\n          headers,\n          rscData: metadata.flightData,\n          postponed: metadata.postponed,\n          status: metadata.statusCode,\n          segmentData: metadata.segmentData,\n        } satisfies CachedAppPageValue,\n        cacheControl,\n      } satisfies ResponseCacheEntry\n    }\n\n    const responseGenerator: ResponseGenerator = async ({\n      hasResolved,\n      previousCacheEntry: previousIncrementalCacheEntry,\n      isRevalidating,\n      span,\n      forceStaticRender = false,\n    }) => {\n      const isProduction = routeModule.isDev === false\n      const didRespond = hasResolved || res.writableEnded\n\n      try {\n        // skip on-demand revalidate if cache is not present and\n        // revalidate-if-generated is set\n        if (\n          isOnDemandRevalidate &&\n          revalidateOnlyGenerated &&\n          !previousIncrementalCacheEntry &&\n          !isMinimalMode\n        ) {\n          if (routerServerContext?.render404) {\n            await routerServerContext.render404(req, res)\n          } else {\n            res.statusCode = 404\n            res.end('This page could not be found')\n          }\n          return null\n        }\n\n        let fallbackMode: FallbackMode | undefined\n\n        if (prerenderInfo) {\n          fallbackMode = parseFallbackField(prerenderInfo.fallback)\n        }\n\n        if (\n          nextConfig.experimental.partialFallbacks === true &&\n          prerenderInfo?.fallback === null &&\n          !hasUnresolvedRootFallbackParams &&\n          remainingPrerenderableParams.length > 0\n        ) {\n          // Generic source shells without unresolved root params don't have a\n          // concrete fallback file of their own, so they're marked as blocking.\n          // When we can complete the shell into a more specific\n          // prerendered shell for this request, treat it like a prerender\n          // fallback so we can serve that shell instead of blocking on the full\n          // route. Root-param shells stay blocking, since unknown root branches\n          // should not inherit a shell from another generated branch.\n          fallbackMode = FallbackMode.PRERENDER\n        }\n\n        // When serving a HTML bot request, we want to serve a blocking render and\n        // not the prerendered page. This ensures that the correct content is served\n        // to the bot in the head.\n        if (fallbackMode === FallbackMode.PRERENDER && isBot(userAgent)) {\n          if (!isRoutePPREnabled || isHtmlBot) {\n            fallbackMode = FallbackMode.BLOCKING_STATIC_RENDER\n          }\n        }\n\n        if (previousIncrementalCacheEntry?.isStale === -1) {\n          isOnDemandRevalidate = true\n        }\n\n        // TODO: adapt for PPR\n        // only allow on-demand revalidate for fallback: true/blocking\n        // or for prerendered fallback: false paths\n        if (\n          isOnDemandRevalidate &&\n          (fallbackMode !== FallbackMode.NOT_FOUND ||\n            previousIncrementalCacheEntry)\n        ) {\n          fallbackMode = FallbackMode.BLOCKING_STATIC_RENDER\n        }\n\n        if (\n          !isMinimalMode &&\n          fallbackMode !== FallbackMode.BLOCKING_STATIC_RENDER &&\n          staticPathKey &&\n          !didRespond &&\n          !isDraftMode &&\n          pageIsDynamic &&\n          (isProduction || !isPrerendered)\n        ) {\n          // if the page has dynamicParams: false and this pathname wasn't\n          // prerendered trigger the no fallback handling\n          if (\n            // In development, fall through to render to handle missing\n            // getStaticPaths.\n            (isProduction || prerenderInfo) &&\n            // When fallback isn't present, abort this render so we 404\n            fallbackMode === FallbackMode.NOT_FOUND\n          ) {\n            if (nextConfig.adapterPath) {\n              return await render404()\n            }\n            throw new NoFallbackError()\n          }\n\n          // When cacheComponents is enabled, we can use the fallback\n          // response if the request is not a dynamic RSC request because the\n          // RSC data when this feature flag is enabled does not contain any\n          // param references. Without this feature flag enabled, the RSC data\n          // contains param references, and therefore we can't use the fallback.\n          if (\n            isRoutePPREnabled &&\n            (nextConfig.cacheComponents ? !isDynamicRSCRequest : !isRSCRequest)\n          ) {\n            const cacheKey =\n              isProduction && typeof prerenderInfo?.fallback === 'string'\n                ? prerenderInfo.fallback\n                : normalizedSrcPage\n\n            const fallbackRouteParams =\n              // In production or when debugging the static shell (e.g. instant\n              // navigation testing), use the prerender manifest's fallback\n              // route params which correctly identifies which params are\n              // unknown. Note: in dev, this block is only entered for\n              // non-prerendered URLs (guarded by the outer condition).\n              (isProduction || isDebugStaticShell) &&\n              prerenderInfo?.fallbackRouteParams\n                ? createOpaqueFallbackRouteParams(\n                    prerenderInfo.fallbackRouteParams\n                  )\n                : // When debugging the fallback shell, treat all params as\n                  // fallback (simulating the worst-case shell).\n                  isDebugFallbackShell\n                  ? getFallbackRouteParams(normalizedSrcPage, routeModule)\n                  : null\n\n            // When rendering a debug static shell, override the fallback\n            // params on the request so that the staged rendering correctly\n            // defers params that are not statically known.\n            if (isDebugStaticShell && fallbackRouteParams) {\n              addRequestMeta(req, 'fallbackParams', fallbackRouteParams)\n            }\n\n            // We use the response cache here to handle the revalidation and\n            // management of the fallback shell.\n            const fallbackResponse = await routeModule.handleResponse({\n              cacheKey,\n              req,\n              nextConfig,\n              routeKind: RouteKind.APP_PAGE,\n              isFallback: true,\n              prerenderManifest,\n              isRoutePPREnabled,\n              responseGenerator: async () =>\n                doRender({\n                  span,\n                  // We pass `undefined` as rendering a fallback isn't resumed\n                  // here.\n                  postponed: undefined,\n                  // Always serve the shell that matched this request\n                  // immediately. If there are still prerenderable params left,\n                  // the background path below will complete the shell into a\n                  // more specific cache entry for later requests.\n                  fallbackRouteParams,\n                  forceStaticRender: true,\n                }),\n              waitUntil: ctx.waitUntil,\n              isMinimalMode,\n            })\n\n            // If the fallback response was set to null, then we should return null.\n            if (fallbackResponse === null) return null\n\n            // Otherwise, if we did get a fallback response, we should return it.\n            if (fallbackResponse) {\n              if (\n                !isMinimalMode &&\n                isRoutePPREnabled &&\n                // Match the build-time contract: only fallback shells that can\n                // still be completed with prerenderable params should upgrade.\n                remainingPrerenderableParams.length > 0 &&\n                nextConfig.experimental.partialFallbacks === true &&\n                ssgCacheKey &&\n                incrementalCache &&\n                !isOnDemandRevalidate &&\n                !isDebugFallbackShell &&\n                // The testing API relies on deterministic shell behavior, so\n                // don't upgrade fallback shells in the background when it's\n                // exposed.\n                !exposeTestingApi &&\n                // Instant Navigation Testing API requests intentionally keep\n                // the route in shell mode; don't upgrade these in background.\n                !isInstantNavigationTest &&\n                // Avoid background revalidate during prefetches; this can trigger\n                // static prerender errors that surface as 500s for the prefetch\n                // request itself.\n                !isPrefetchRSCRequest\n              ) {\n                scheduleOnNextTick(async () => {\n                  const responseCache = routeModule.getResponseCache(req)\n\n                  try {\n                    // Only the params that were just specialized should be\n                    // removed from the fallback render. Any remaining fallback\n                    // params stay deferred so the revalidated result is a more\n                    // specific shell (e.g. `/prefix/c/[two]`), not a fully\n                    // concrete route (`/prefix/c/foo`).\n                    await responseCache.revalidate(\n                      ssgCacheKey,\n                      incrementalCache,\n                      isRoutePPREnabled,\n                      false,\n                      (c) => {\n                        return doRender({\n                          span: c.span,\n                          postponed: undefined,\n                          fallbackRouteParams:\n                            remainingFallbackRouteParams.length > 0\n                              ? createOpaqueFallbackRouteParams(\n                                  remainingFallbackRouteParams\n                                )\n                              : null,\n                          forceStaticRender: true,\n                        })\n                      },\n                      // We don't have a prior entry for this param-specific shell.\n                      null,\n                      hasResolved,\n                      ctx.waitUntil\n                    )\n                  } catch (err) {\n                    console.error(\n                      'Error revalidating the page in the background',\n                      err\n                    )\n                  }\n                })\n              }\n\n              // Remove the cache control from the response to prevent it from being\n              // used in the surrounding cache.\n              delete fallbackResponse.cacheControl\n\n              return fallbackResponse\n            }\n          }\n        }\n\n        // Only requests that aren't revalidating can be resumed. If we have the\n        // minimal postponed data, then we should resume the render with it.\n        let postponed =\n          !isOnDemandRevalidate && !isRevalidating && minimalPostponed\n            ? minimalPostponed\n            : undefined\n\n        if (\n          // If this is a dynamic RSC request or a server action request, we should\n          // use the postponed data from the static render (if available). This\n          // ensures that we can utilize the resume data cache (RDC) from the static\n          // render to ensure that the data is consistent between the static and\n          // dynamic renders (for navigations) or when re-rendering after a server\n          // action.\n          // Only enable RDC for Navigations if the feature is enabled.\n          supportsRDCForNavigations &&\n          process.env.NEXT_RUNTIME !== 'edge' &&\n          !isMinimalMode &&\n          incrementalCache &&\n          // Include both dynamic RSC requests (navigations) and server actions\n          (isDynamicRSCRequest || isPossibleServerAction) &&\n          // We don't typically trigger an on-demand revalidation for dynamic RSC\n          // requests, as we're typically revalidating the page in the background\n          // instead. However, if the cache entry is stale, we should trigger a\n          // background revalidation on dynamic RSC requests. This prevents us\n          // from entering an infinite loop of revalidations.\n          !forceStaticRender\n        ) {\n          const incrementalCacheEntry = await incrementalCache.get(\n            resolvedPathname,\n            {\n              kind: IncrementalCacheKind.APP_PAGE,\n              isRoutePPREnabled: true,\n              isFallback: false,\n            }\n          )\n\n          // If the cache entry is found, we should use the postponed data from\n          // the cache.\n          if (\n            incrementalCacheEntry &&\n            incrementalCacheEntry.value &&\n            incrementalCacheEntry.value.kind === CachedRouteKind.APP_PAGE\n          ) {\n            // CRITICAL: we're assigning the postponed data from the cache entry\n            // here as we're using the RDC to resume the render.\n            postponed = incrementalCacheEntry.value.postponed\n\n            // If the cache entry is stale, we should trigger a background\n            // revalidation so that subsequent requests will get a fresh response.\n            if (\n              incrementalCacheEntry &&\n              // We want to trigger this flow if the cache entry is stale and if\n              // the requested revalidation flow is either foreground or\n              // background.\n              (incrementalCacheEntry.isStale === -1 ||\n                incrementalCacheEntry.isStale === true)\n            ) {\n              // We want to schedule this on the next tick to ensure that the\n              // render is not blocked on it.\n              scheduleOnNextTick(async () => {\n                const responseCache = routeModule.getResponseCache(req)\n\n                try {\n                  await responseCache.revalidate(\n                    resolvedPathname,\n                    incrementalCache,\n                    isRoutePPREnabled,\n                    false,\n                    (c) =>\n                      responseGenerator({\n                        ...c,\n                        // CRITICAL: we need to set this to true as we're\n                        // revalidating in the background and typically this dynamic\n                        // RSC request is not treated as static.\n                        forceStaticRender: true,\n                      }),\n                    // CRITICAL: we need to pass null here because passing the\n                    // previous cache entry here (which is stale) will switch on\n                    // isOnDemandRevalidate and break the prerendering.\n                    null,\n                    hasResolved,\n                    ctx.waitUntil\n                  )\n                } catch (err) {\n                  console.error(\n                    'Error revalidating the page in the background',\n                    err\n                  )\n                }\n              })\n            }\n          }\n        }\n\n        // When we're in minimal mode, if we're trying to debug the static shell,\n        // we should just return nothing instead of resuming the dynamic render.\n        if (\n          (isDebugStaticShell || isDebugDynamicAccesses) &&\n          typeof postponed !== 'undefined'\n        ) {\n          return {\n            cacheControl: { revalidate: 1, expire: undefined },\n            value: {\n              kind: CachedRouteKind.PAGES,\n              html: RenderResult.EMPTY,\n              pageData: {},\n              headers: undefined,\n              status: undefined,\n            } satisfies CachedPageValue,\n          }\n        }\n\n        const placeholderFallbackRouteParams =\n          // When a request carries dynamic placeholder values (e.g. \"[slug]\"),\n          // defer only the unresolved subset instead of forcing all fallback\n          // params to suspend.\n          !routeModule.isDev &&\n          pageIsDynamic &&\n          prerenderInfo?.fallbackRouteParams\n            ? getPlaceholderFallbackRouteParams(\n                params as\n                  | Record<string, undefined | string | string[]>\n                  | undefined,\n                prerenderInfo.fallbackRouteParams\n              )\n            : null\n\n        const fallbackRouteParamsForRender =\n          placeholderFallbackRouteParams &&\n          placeholderFallbackRouteParams.length > 0\n            ? placeholderFallbackRouteParams\n            : prerenderInfo?.fallbackRouteParams\n\n        const hasPlaceholderFallbackRouteParams =\n          placeholderFallbackRouteParams != null &&\n          placeholderFallbackRouteParams.length > 0\n\n        // When route-module.ts resolved partial nxtP* params during\n        // background revalidation, filter fallbackRouteParams to only the\n        // params that are still unresolved. This lets doRender produce an\n        // intermediate PPR shell that suspends only for those params.\n        let effectiveFallbackRouteParams: FallbackRouteParam[] | null = null\n        if (nextConfig.cacheComponents && prerenderInfo?.fallbackRouteParams) {\n          const resolvedKeys = getRequestMeta(req, 'resolvedRouteParamKeys')\n          if (resolvedKeys && resolvedKeys.size > 0) {\n            effectiveFallbackRouteParams =\n              prerenderInfo.fallbackRouteParams.filter(\n                (param) => !resolvedKeys.has(param.paramName)\n              )\n          }\n        }\n        const fallbackRouteParams =\n          // In production or when debugging the static shell for a\n          // non-prerendered URL, use the prerender manifest's fallback route\n          // params which correctly identifies which params are unknown.\n          ((isProduction && getRequestMeta(req, 'renderFallbackShell')) ||\n            hasPlaceholderFallbackRouteParams ||\n            (isDebugStaticShell && !isPrerendered)) &&\n          fallbackRouteParamsForRender\n            ? createOpaqueFallbackRouteParams(fallbackRouteParamsForRender)\n            : // For intermediate shells where some params are resolved and\n              // others still have placeholders, use the filtered subset so the\n              // prerender suspends only for the unresolved params.\n              effectiveFallbackRouteParams &&\n                effectiveFallbackRouteParams.length > 0 &&\n                effectiveFallbackRouteParams.length <\n                  (prerenderInfo?.fallbackRouteParams?.length ?? 0)\n              ? createOpaqueFallbackRouteParams(effectiveFallbackRouteParams)\n              : isDebugFallbackShell\n                ? getFallbackRouteParams(normalizedSrcPage, routeModule)\n                : null\n\n        // For staged dynamic rendering (Cached Navigations) and debug static\n        // shell rendering, pass the fallback params via request meta so the\n        // RequestStore knows which params to defer. We don't pass them as\n        // fallbackRouteParams because that would replace actual param values\n        // with opaque placeholders during segment resolution.\n        if (\n          (isProduction || isDebugStaticShell) &&\n          nextConfig.cacheComponents &&\n          !isPrerendered &&\n          prerenderInfo?.fallbackRouteParams\n        ) {\n          const fallbackParams = createOpaqueFallbackRouteParams(\n            fallbackRouteParamsForRender ?? prerenderInfo.fallbackRouteParams\n          )\n\n          if (fallbackParams) {\n            addRequestMeta(req, 'fallbackParams', fallbackParams)\n          }\n        }\n\n        // Perform the render.\n        return doRender({\n          span,\n          postponed,\n          fallbackRouteParams,\n          forceStaticRender,\n        })\n      } catch (err) {\n        // if this is a background revalidate we need to report\n        // the request error here as it won't be bubbled\n        if (previousIncrementalCacheEntry?.isStale) {\n          const silenceLog = false\n          await routeModule.onRequestError(\n            req,\n            err,\n            {\n              routerKind: 'App Router',\n              routePath: srcPage,\n              routeType: 'render',\n              revalidateReason: getRevalidateReason({\n                isStaticGeneration: isSSG,\n                isOnDemandRevalidate,\n              }),\n            },\n            silenceLog,\n            routerServerContext\n          )\n        }\n        throw err\n      }\n    }\n\n    const handleResponse = async (span?: Span): Promise<null | void> => {\n      const cacheEntry = await routeModule.handleResponse({\n        cacheKey: ssgCacheKey,\n        responseGenerator: (c) =>\n          responseGenerator({\n            span,\n            ...c,\n          }),\n        routeKind: RouteKind.APP_PAGE,\n        isOnDemandRevalidate,\n        isRoutePPREnabled,\n        req,\n        nextConfig,\n        prerenderManifest,\n        waitUntil: ctx.waitUntil,\n        isMinimalMode,\n      })\n\n      if (isDraftMode) {\n        res.setHeader(\n          'Cache-Control',\n          'private, no-cache, no-store, max-age=0, must-revalidate'\n        )\n      }\n\n      // In dev, we should not cache pages for any reason.\n      if (routeModule.isDev) {\n        res.setHeader('Cache-Control', 'no-cache, must-revalidate')\n      }\n\n      if (!cacheEntry) {\n        if (ssgCacheKey) {\n          // A cache entry might not be generated if a response is written\n          // in `getInitialProps` or `getServerSideProps`, but those shouldn't\n          // have a cache key. If we do have a cache key but we don't end up\n          // with a cache entry, then either Next.js or the application has a\n          // bug that needs fixing.\n          throw new Error('invariant: cache entry required but not generated')\n        }\n        return null\n      }\n\n      if (cacheEntry.value?.kind !== CachedRouteKind.APP_PAGE) {\n        throw new Error(\n          `Invariant app-page handler received invalid cache entry ${cacheEntry.value?.kind}`\n        )\n      }\n\n      const didPostpone = typeof cacheEntry.value.postponed === 'string'\n\n      // Set the build ID header for RSC navigation requests when deploymentId is configured. This\n      // corresponds with maybeAppendBuildIdToRSCPayload in app-render.tsx which omits the build ID\n      // from the RSC payload when deploymentId is set (relying on this header instead). Server\n      // actions are excluded here because action redirect responses get the deployment ID header\n      // from the pre-fetched redirect target (via createRedirectRenderResult in action-handler.ts\n      // which copies headers from the internal RSC fetch).\n      // For static prerenders served from CDN, routes-manifest.json adds a header.\n      if (isRSCRequest && !isPossibleServerAction && deploymentId) {\n        res.setHeader(NEXT_NAV_DEPLOYMENT_ID_HEADER, deploymentId)\n      }\n\n      if (\n        isSSG &&\n        // We don't want to send a cache header for requests that contain dynamic\n        // data. If this is a Dynamic RSC request or wasn't a Prefetch RSC\n        // request, then we should set the cache header.\n        !isDynamicRSCRequest &&\n        (!didPostpone || isPrefetchRSCRequest)\n      ) {\n        if (!isMinimalMode) {\n          // set x-nextjs-cache header to match the header\n          // we set for the image-optimizer\n          res.setHeader(\n            'x-nextjs-cache',\n            isOnDemandRevalidate\n              ? 'REVALIDATED'\n              : cacheEntry.isMiss\n                ? 'MISS'\n                : cacheEntry.isStale\n                  ? 'STALE'\n                  : 'HIT'\n          )\n        }\n        // Set a header used by the client router to signal the response is static\n        // and should respect the `static` cache staleTime value.\n        res.setHeader(NEXT_IS_PRERENDER_HEADER, '1')\n      }\n      const { value: cachedData } = cacheEntry\n\n      // Coerce the cache control parameter from the render.\n      let cacheControl: CacheControl | undefined\n\n      // If this is a resume request in minimal mode it is streamed with dynamic\n      // content and should not be cached.\n      if (minimalPostponed) {\n        cacheControl = { revalidate: 0, expire: undefined }\n      }\n\n      // If this is in minimal mode and this is a flight request that isn't a\n      // prefetch request while PPR is enabled, it cannot be cached as it contains\n      // dynamic content.\n      else if (isDynamicRSCRequest) {\n        cacheControl = { revalidate: 0, expire: undefined }\n      } else if (!routeModule.isDev) {\n        // If this is a preview mode request, we shouldn't cache it\n        if (isDraftMode) {\n          cacheControl = { revalidate: 0, expire: undefined }\n        }\n\n        // If this isn't SSG, then we should set change the header only if it is\n        // not set already.\n        else if (!isSSG) {\n          if (!res.getHeader('Cache-Control')) {\n            cacheControl = { revalidate: 0, expire: undefined }\n          }\n        } else if (cacheEntry.cacheControl) {\n          // If the cache entry has a cache control with a revalidate value that's\n          // a number, use it.\n          if (typeof cacheEntry.cacheControl.revalidate === 'number') {\n            if (cacheEntry.cacheControl.revalidate < 1) {\n              throw new Error(\n                `Invalid revalidate configuration provided: ${cacheEntry.cacheControl.revalidate} < 1`\n              )\n            }\n\n            cacheControl = {\n              revalidate: cacheEntry.cacheControl.revalidate,\n              expire: cacheEntry.cacheControl?.expire ?? nextConfig.expireTime,\n            }\n          }\n          // Otherwise if the revalidate value is false, then we should use the\n          // cache time of one year.\n          else {\n            cacheControl = {\n              revalidate: CACHE_ONE_YEAR_SECONDS,\n              expire: undefined,\n            }\n          }\n        }\n      }\n\n      cacheEntry.cacheControl = cacheControl\n\n      if (\n        typeof segmentPrefetchHeader === 'string' &&\n        cachedData?.kind === CachedRouteKind.APP_PAGE &&\n        cachedData.segmentData\n      ) {\n        // This is a prefetch request issued by the client Segment Cache. These\n        // should never reach the application layer (lambda). We should either\n        // respond from the cache (HIT) or respond with 204 No Content (MISS).\n\n        // Set a header to indicate that PPR is enabled for this route. This\n        // lets the client distinguish between a regular cache miss and a cache\n        // miss due to PPR being disabled. In other contexts this header is used\n        // to indicate that the response contains dynamic data, but here we're\n        // only using it to indicate that the feature is enabled — the segment\n        // response itself contains whether the data is dynamic.\n        res.setHeader(NEXT_DID_POSTPONE_HEADER, '2')\n\n        // Add the cache tags header to the response if it exists and we're in\n        // minimal mode while rendering a static page.\n        const tags = cachedData.headers?.[NEXT_CACHE_TAGS_HEADER]\n        if (isMinimalMode && isSSG && tags && typeof tags === 'string') {\n          res.setHeader(NEXT_CACHE_TAGS_HEADER, tags)\n        }\n\n        const matchedSegment = cachedData.segmentData.get(segmentPrefetchHeader)\n        if (matchedSegment !== undefined) {\n          // Cache hit\n          return sendRenderResult({\n            req,\n            res,\n            generateEtags: nextConfig.generateEtags,\n            poweredByHeader: nextConfig.poweredByHeader,\n            result: RenderResult.fromStatic(\n              matchedSegment,\n              RSC_CONTENT_TYPE_HEADER\n            ),\n            cacheControl: cacheEntry.cacheControl,\n          })\n        }\n\n        // Cache miss. Either a cache entry for this route has not been generated\n        // (which technically should not be possible when PPR is enabled, because\n        // at a minimum there should always be a fallback entry) or there's no\n        // match for the requested segment. Respond with a 204 No Content. We\n        // don't bother to respond with 404, because these requests are only\n        // issued as part of a prefetch.\n        res.statusCode = 204\n        return sendRenderResult({\n          req,\n          res,\n          generateEtags: nextConfig.generateEtags,\n          poweredByHeader: nextConfig.poweredByHeader,\n          result: RenderResult.EMPTY,\n          cacheControl: cacheEntry.cacheControl,\n        })\n      }\n\n      // If there's a callback for `onCacheEntry`, call it with the cache entry\n      // and the revalidate options. If we support RDC for Navigations, we\n      // prefer the `onCacheEntryV2` callback. Once RDC for Navigations is the\n      // default, we can remove the fallback to `onCacheEntry` as\n      // `onCacheEntryV2` is now fully supported.\n      const onCacheEntry = supportsRDCForNavigations\n        ? (getRequestMeta(req, 'onCacheEntryV2') ??\n          getRequestMeta(req, 'onCacheEntry'))\n        : getRequestMeta(req, 'onCacheEntry')\n      if (onCacheEntry) {\n        const rawCacheEntryUrl = getRequestMeta(req, 'initURL') ?? req.url\n        const cacheEntryUrl = rawCacheEntryUrl\n          ? (parseUrl(rawCacheEntryUrl)?.pathname ?? rawCacheEntryUrl)\n          : undefined\n\n        const finished = await onCacheEntry(cacheEntry, {\n          url: cacheEntryUrl,\n        })\n\n        if (finished) return null\n      }\n\n      if (cachedData.headers) {\n        const headers = { ...cachedData.headers }\n\n        if (!isMinimalMode || !isSSG) {\n          delete headers[NEXT_CACHE_TAGS_HEADER]\n        }\n\n        for (let [key, value] of Object.entries(headers)) {\n          if (typeof value === 'undefined') continue\n\n          if (Array.isArray(value)) {\n            for (const v of value) {\n              res.appendHeader(key, v)\n            }\n          } else if (typeof value === 'number') {\n            value = value.toString()\n            res.appendHeader(key, value)\n          } else {\n            res.appendHeader(key, value)\n          }\n        }\n      }\n\n      // Add the cache tags header to the response if it exists and we're in\n      // minimal mode while rendering a static page.\n      const tags = cachedData.headers?.[NEXT_CACHE_TAGS_HEADER]\n      if (isMinimalMode && isSSG && tags && typeof tags === 'string') {\n        res.setHeader(NEXT_CACHE_TAGS_HEADER, tags)\n      }\n\n      // If the request is a data request, then we shouldn't set the status code\n      // from the response because it should always be 200. This should be gated\n      // behind the experimental PPR flag.\n      if (cachedData.status && (!isRSCRequest || !isRoutePPREnabled)) {\n        res.statusCode = cachedData.status\n      }\n\n      // Redirect information is encoded in RSC payload, so we don't need to use redirect status codes\n      if (\n        !isMinimalMode &&\n        cachedData.status &&\n        RedirectStatusCode[cachedData.status] &&\n        isRSCRequest\n      ) {\n        res.statusCode = 200\n      }\n\n      // Mark that the request did postpone.\n      if (didPostpone && !isDynamicRSCRequest) {\n        res.setHeader(NEXT_DID_POSTPONE_HEADER, '1')\n      }\n\n      // we don't go through this block when preview mode is true\n      // as preview mode is a dynamic request (bypasses cache) and doesn't\n      // generate both HTML and payloads in the same request so continue to just\n      // return the generated payload\n      if (isRSCRequest && !isDraftMode) {\n        // If this is a dynamic RSC request, then stream the response.\n        if (typeof cachedData.rscData === 'undefined') {\n          // If the response is not an RSC response, then we can't serve it.\n          if (cachedData.html.contentType !== RSC_CONTENT_TYPE_HEADER) {\n            if (nextConfig.cacheComponents) {\n              res.statusCode = 404\n              return sendRenderResult({\n                req,\n                res,\n                generateEtags: nextConfig.generateEtags,\n                poweredByHeader: nextConfig.poweredByHeader,\n                result: RenderResult.EMPTY,\n                cacheControl: cacheEntry.cacheControl,\n              })\n            } else {\n              // Otherwise this case is not expected.\n              throw new InvariantError(\n                `Expected RSC response, got ${cachedData.html.contentType}`\n              )\n            }\n          }\n\n          return sendRenderResult({\n            req,\n            res,\n            generateEtags: nextConfig.generateEtags,\n            poweredByHeader: nextConfig.poweredByHeader,\n            result: cachedData.html,\n            cacheControl: cacheEntry.cacheControl,\n          })\n        }\n\n        // As this isn't a prefetch request, we should serve the static flight\n        // data.\n        return sendRenderResult({\n          req,\n          res,\n          generateEtags: nextConfig.generateEtags,\n          poweredByHeader: nextConfig.poweredByHeader,\n          result: RenderResult.fromStatic(\n            cachedData.rscData,\n            RSC_CONTENT_TYPE_HEADER\n          ),\n          cacheControl: cacheEntry.cacheControl,\n        })\n      }\n\n      // This is a request for HTML data.\n      const body = cachedData.html\n\n      // Instant Navigation Testing API: serve the static shell with an\n      // injected script that sets self.__next_instant_test and kicks off a\n      // static RSC fetch for hydration. The transform stream also appends\n      // closing </body></html> tags so the browser can parse the full document.\n      // In dev mode, also inject self.__next_r so the HMR WebSocket and\n      // debug channel can initialize.\n      if (isInstantNavigationTest && isDebugStaticShell) {\n        const instantTestRequestId =\n          routeModule.isDev === true ? crypto.randomUUID() : null\n        body.pipeThrough(\n          await createInstantTestScriptInsertionTransformStream(\n            instantTestRequestId\n          )\n        )\n        return sendRenderResult({\n          req,\n          res,\n          generateEtags: nextConfig.generateEtags,\n          poweredByHeader: nextConfig.poweredByHeader,\n          result: body,\n          cacheControl: { revalidate: 0, expire: undefined },\n        })\n      }\n\n      // If there's no postponed state, we should just serve the HTML. This\n      // should also be the case for a resume request because it's completed\n      // as a server render (rather than a static render).\n      if (!didPostpone || isMinimalMode || isRSCRequest) {\n        // If we're in test mode, we should add a sentinel chunk to the response\n        // that's between the static and dynamic parts so we can compare the\n        // chunks and add assertions.\n        if (\n          process.env.__NEXT_TEST_MODE &&\n          isMinimalMode &&\n          isRoutePPREnabled &&\n          body.contentType === HTML_CONTENT_TYPE_HEADER\n        ) {\n          // As we're in minimal mode, the static part would have already been\n          // streamed first. The only part that this streams is the dynamic part\n          // so we should FIRST stream the sentinel and THEN the dynamic part.\n          body.unshift(createPPRBoundarySentinel())\n        }\n\n        return sendRenderResult({\n          req,\n          res,\n          generateEtags: nextConfig.generateEtags,\n          poweredByHeader: nextConfig.poweredByHeader,\n          result: body,\n          cacheControl: cacheEntry.cacheControl,\n        })\n      }\n\n      // If we're debugging the static shell or the dynamic API accesses, we\n      // should just serve the HTML without resuming the render. The returned\n      // HTML will be the static shell so all the Dynamic API's will be used\n      // during static generation.\n      if (isDebugStaticShell || isDebugDynamicAccesses) {\n        // Since we're not resuming the render, we need to at least add the\n        // closing body and html tags to create valid HTML.\n        body.push(\n          new ReadableStream({\n            start(controller) {\n              controller.enqueue(ENCODED_TAGS.CLOSED.BODY_AND_HTML)\n              controller.close()\n            },\n          })\n        )\n\n        return sendRenderResult({\n          req,\n          res,\n          generateEtags: nextConfig.generateEtags,\n          poweredByHeader: nextConfig.poweredByHeader,\n          result: body,\n          cacheControl: { revalidate: 0, expire: undefined },\n        })\n      }\n\n      // If we're in test mode, we should add a sentinel chunk to the response\n      // that's between the static and dynamic parts so we can compare the\n      // chunks and add assertions.\n      if (process.env.__NEXT_TEST_MODE) {\n        body.push(createPPRBoundarySentinel())\n      }\n\n      // This request has postponed, so let's create a new transformer that the\n      // dynamic data can pipe to that will attach the dynamic data to the end\n      // of the response.\n      const transformer = new TransformStream<Uint8Array, Uint8Array>()\n      body.push(transformer.readable)\n\n      // Perform the render again, but this time, provide the postponed state.\n      // We don't await because we want the result to start streaming now, and\n      // we've already chained the transformer's readable to the render result.\n      doRender({\n        span,\n        postponed: cachedData.postponed,\n        // This is a resume render, not a fallback render, so we don't need to\n        // set this.\n        fallbackRouteParams: null,\n        forceStaticRender: false,\n      })\n        .then(async (result) => {\n          if (!result) {\n            throw new Error('Invariant: expected a result to be returned')\n          }\n\n          if (result.value?.kind !== CachedRouteKind.APP_PAGE) {\n            throw new Error(\n              `Invariant: expected a page response, got ${result.value?.kind}`\n            )\n          }\n\n          // Pipe the resume result to the transformer.\n          await result.value.html.pipeTo(transformer.writable)\n        })\n        .catch((err) => {\n          // An error occurred during piping or preparing the render, abort\n          // the transformers writer so we can terminate the stream.\n          transformer.writable.abort(err).catch((e) => {\n            console.error(\"couldn't abort transformer\", e)\n          })\n        })\n\n      return sendRenderResult({\n        req,\n        res,\n        generateEtags: nextConfig.generateEtags,\n        poweredByHeader: nextConfig.poweredByHeader,\n        result: body,\n        // We don't want to cache the response if it has postponed data because\n        // the response being sent to the client it's dynamic parts are streamed\n        // to the client on the same request.\n        cacheControl: { revalidate: 0, expire: undefined },\n      })\n    }\n\n    // TODO: activeSpan code path is for when wrapped by\n    // next-server can be removed when this is no longer used\n    if (isWrappedByNextServer && activeSpan) {\n      await handleResponse(activeSpan)\n    } else {\n      parentSpan = tracer.getActiveScopeSpan()\n      return await tracer.withPropagatedContext(\n        req.headers,\n        () =>\n          tracer.trace(\n            BaseServerSpan.handleRequest,\n            {\n              spanName: `${method} ${srcPage}`,\n              kind: SpanKind.SERVER,\n              attributes: {\n                'http.method': method,\n                'http.target': req.url,\n              },\n            },\n            handleResponse\n          ),\n        undefined,\n        !isWrappedByNextServer\n      )\n    }\n  } catch (err) {\n    if (!(err instanceof NoFallbackError)) {\n      const silenceLog = false\n      await routeModule.onRequestError(\n        req,\n        err,\n        {\n          routerKind: 'App Router',\n          routePath: srcPage,\n          routeType: 'render',\n          revalidateReason: getRevalidateReason({\n            isStaticGeneration: isSSG,\n            isOnDemandRevalidate,\n          }),\n        },\n        silenceLog,\n        routerServerContext\n      )\n    }\n\n    // rethrow so that we can handle serving error page\n    throw err\n  }\n}\n\n// TODO: omit this from production builds, only test builds should include it\n/**\n * Creates a readable stream that emits a PPR boundary sentinel.\n *\n * @returns A readable stream that emits a PPR boundary sentinel.\n */\nfunction createPPRBoundarySentinel() {\n  return new ReadableStream({\n    start(controller) {\n      controller.enqueue(\n        new TextEncoder().encode('<!-- PPR_BOUNDARY_SENTINEL -->')\n      )\n      controller.close()\n    },\n  })\n}\n"],"names":["__next_app__","handler","routeModule","require","__next_app_require__","loadChunk","__next_app_load_chunk__","AppPageRouteModule","definition","kind","RouteKind","APP_PAGE","page","pathname","bundlePath","filename","appPaths","userland","loaderTree","tree","distDir","process","env","__NEXT_RELATIVE_DIST_DIR","relativeProjectDir","__NEXT_RELATIVE_PROJECT_DIR","buildCompletedShellCacheKey","fallbackPathname","remainingPrerenderableParams","params","prerenderableParamsByName","Map","map","param","paramName","split","segment","segmentParam","getSegmentParam","remainingParam","get","value","encodedValue","Array","isArray","item","encodeURIComponent","join","replace","buildDynamicSegmentPlaceholder","req","res","ctx","prerenderManifest","prerenderInfo","requestMeta","setRequestMeta","isDev","addRequestMeta","hrtime","bigint","isMinimalMode","Boolean","getRequestMeta","srcPage","TURBOPACK","multiZoneDraftMode","__NEXT_MULTI_ZONE_DRAFT_MODE","prepareResult","prepare","statusCode","end","waitUntil","Promise","resolve","buildId","query","pageIsDynamic","buildManifest","nextFontManifest","reactLoadableManifest","serverActionsManifest","clientReferenceManifest","subresourceIntegrityManifest","isDraftMode","resolvedPathname","revalidateOnlyGenerated","routerServerContext","nextConfig","parsedUrl","interceptionRoutePatterns","deploymentId","clientAssetToken","normalizedSrcPage","normalizeAppPath","isOnDemandRevalidate","prerenderMatch","experimental","ppr","cacheComponents","isInterceptionRouteAppPath","match","route","isPrerendered","routes","userAgent","headers","botType","getBotType","isHtmlBot","isHtmlBotRequest","isPrefetchRSCRequest","NEXT_ROUTER_PREFETCH_HEADER","isRSCRequest","isRSCRequestHeader","RSC_HEADER","isPossibleServerAction","getIsPossibleServerAction","couldSupportPPR","checkIsAppPPREnabled","resumeStateLengthHeader","NEXT_RESUME_STATE_LENGTH_HEADER","stateLength","parseInt","maxPostponedStateSize","maxPostponedStateSizeBytes","getMaxPostponedStateSize","isNaN","getPostponedStateExceededErrorMessage","defaultActionBodySizeLimit","actionBodySizeLimit","serverActions","bodySizeLimit","actionBodySizeLimitBytes","parse","maxTotalBodySize","fullBody","readBodyWithSizeLimit","length","postponedState","subarray","toString","actionBody","Error","NEXT_RESUME_HEADER","method","body","postponed","hasDebugStaticShellQuery","__NEXT_EXPERIMENTAL_STATIC_SHELL_DEBUGGING","__nextppronly","hasDebugFallbackShellQuery","exposeTestingApi","exposeTestingApiInProductionBuild","isInstantNavigationTest","NEXT_INSTANT_PREFETCH_HEADER","cookie","includes","NEXT_INSTANT_TEST_COOKIE","isRoutePPREnabled","dynamicRoutes","renderingMode","experimentalTestProxy","isDebugStaticShell","isDebugDynamicAccesses","isDebugFallbackShell","minimalPostponed","undefined","staticPrefetchDataRoute","prefetchDataRoute","isDynamicRSCRequest","segmentPrefetchHeader","serveStreamingMetadata","shouldServeStreamingMetadata","htmlLimitedBots","isSSG","supportsRDCForNavigations","supportsDynamicResponse","shouldWaitOnAllReady","hasUnresolvedRootFallbackParams","fallback","fallbackRootParams","ssgCacheKey","source","partialFallbacks","fallbackRouteParams","completedShellCacheKey","staticPathKey","stripFlightHeaders","ComponentMod","entryBase","setManifestsSingleton","tracer","getTracer","activeSpan","getActiveScopeSpan","isWrappedByNextServer","remainingFallbackRouteParams","filter","some","prerenderableParam","render404","varyHeader","getVaryHeader","setHeader","parentSpan","invokeRouteModule","span","context","nextReq","NodeNextRequest","nextRes","NodeNextResponse","render","finally","setAttributes","rootSpanAttributes","getRootSpanAttributes","BaseServerSpan","handleRequest","console","warn","name","updateName","setAttribute","incrementalCache","getIncrementalCache","resetRequestCache","globalThis","__incrementalCache","doRender","forceStaticRender","sharedContext","serverComponentsHmrCache","renderOpts","App","Document","pageConfig","Component","interopDefault","setCacheStatus","setIsrStatus","setReactDebugChannel","sendErrorsToBrowser","dir","NEXT_RUNTIME","cwd","assetPrefix","nextConfigOutput","output","crossOrigin","trailingSlash","images","previewProps","preview","enableTainting","taint","reactMaxHeadersLength","cacheLifeProfiles","cacheLife","basePath","logServerFunctions","logging","serverFunctions","isBuildTimePrerendering","isStaticGeneration","expireTime","staleTimes","dynamicOnHover","optimisticRouting","inlineCss","prefetchInlining","authInterrupts","cachedNavigations","clientTraceMetadata","clientParamParsingOrigins","parseMaxPostponedStateSize","onClose","cb","on","onAfterTaskError","onInstrumentationRequestError","error","_request","errorContext","silenceLog","onRequestError","err","result","metadata","cacheControl","fetchTags","cacheTags","fetchMetrics","NEXT_CACHE_TAGS_HEADER","revalidate","staticBailoutInfo","description","stack","message","substring","indexOf","CachedRouteKind","html","rscData","flightData","status","segmentData","responseGenerator","hasResolved","previousCacheEntry","previousIncrementalCacheEntry","isRevalidating","isProduction","didRespond","writableEnded","fallbackMode","parseFallbackField","FallbackMode","PRERENDER","isBot","BLOCKING_STATIC_RENDER","isStale","NOT_FOUND","adapterPath","NoFallbackError","cacheKey","createOpaqueFallbackRouteParams","getFallbackRouteParams","fallbackResponse","handleResponse","routeKind","isFallback","scheduleOnNextTick","responseCache","getResponseCache","c","incrementalCacheEntry","IncrementalCacheKind","expire","PAGES","RenderResult","EMPTY","pageData","placeholderFallbackRouteParams","getPlaceholderFallbackRouteParams","fallbackRouteParamsForRender","hasPlaceholderFallbackRouteParams","effectiveFallbackRouteParams","resolvedKeys","size","has","fallbackParams","routerKind","routePath","routeType","revalidateReason","getRevalidateReason","cacheEntry","cachedData","didPostpone","NEXT_NAV_DEPLOYMENT_ID_HEADER","isMiss","NEXT_IS_PRERENDER_HEADER","getHeader","CACHE_ONE_YEAR_SECONDS","NEXT_DID_POSTPONE_HEADER","tags","matchedSegment","sendRenderResult","generateEtags","poweredByHeader","fromStatic","RSC_CONTENT_TYPE_HEADER","onCacheEntry","parseUrl","rawCacheEntryUrl","url","cacheEntryUrl","finished","key","Object","entries","v","appendHeader","RedirectStatusCode","contentType","InvariantError","instantTestRequestId","crypto","randomUUID","pipeThrough","createInstantTestScriptInsertionTransformStream","__NEXT_TEST_MODE","HTML_CONTENT_TYPE_HEADER","unshift","createPPRBoundarySentinel","push","ReadableStream","start","controller","enqueue","ENCODED_TAGS","CLOSED","BODY_AND_HTML","close","transformer","TransformStream","readable","then","pipeTo","writable","catch","abort","e","withPropagatedContext","trace","spanName","SpanKind","SERVER","attributes","TextEncoder","encode"],"mappings":";;;;;;;;;;;;;;;;IA+GaA,YAAY;eAAZA;;IAkFSC,OAAO;eAAPA;;IAnETC,WAAW;eAAXA;;;;gCAvHN;2BAEmB;uBAEU;wBAK7B;6BAMA;2BACwB;gCACA;oCACI;sBAI5B;qBAC8B;8BACF;gCAO5B;oCAC+B;mCAI/B;0BAC0B;yCACS;kCASnC;uBAIA;+BAQA;0BAIA;qEACkB;4BAQlB;6BAEsB;sCACmC;6BAC/B;yCACD;2BACW;sCAKpC;qBACkB;gFAyBE;oCACQ;gCACJ;2BACI;oCACQ;iCACX;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAVzB,MAAMF,eAAe;IAC1BG,SAASC;IACTC,WAAWC;AACb;AAYO,MAAMJ,cAAc,IAAIK,kCAAkB,CAAC;IAChDC,YAAY;QACVC,MAAMC,oBAAS,CAACC,QAAQ;QACxBC,MAAM;QACNC,UAAU;QACV,2CAA2C;QAC3CC,YAAY;QACZC,UAAU;QACVC,UAAU,EAAE;IACd;IACAC,UAAU;QACRC,YAAYC;IACd;IACAC,SAASC,QAAQC,GAAG,CAACC,wBAAwB,IAAI;IACjDC,oBAAoBH,QAAQC,GAAG,CAACG,2BAA2B,IAAI;AACjE;AAEA;;;;;;CAMC,GACD,SAASC,4BACPC,gBAAwB,EACxBC,4BAA2D,EAC3DC,MAAiE;IAEjE,MAAMC,4BAA4B,IAAIC,IACpCH,6BAA6BI,GAAG,CAAC,CAACC,QAAU;YAACA,MAAMC,SAAS;YAAED;SAAM;IAGtE,OACEN,iBACGQ,KAAK,CAAC,KACNH,GAAG,CAAC,CAACI;QACJ,MAAMC,eAAeC,IAAAA,gCAAe,EAACF;QACrC,IAAI,CAACC,cAAc;YACjB,OAAOD;QACT;QAEA,MAAMG,iBAAiBT,0BAA0BU,GAAG,CAClDH,aAAaH,SAAS;QAExB,IAAI,CAACK,gBAAgB;YACnB,OAAOH;QACT;QAEA,MAAMK,QAAQZ,0BAAAA,MAAQ,CAACU,eAAeL,SAAS,CAAC;QAChD,IAAI,CAACO,OAAO;YACV,OAAOL;QACT;QAEA,MAAMM,eAAeC,MAAMC,OAAO,CAACH,SAC/BA,MAAMT,GAAG,CAAC,CAACa,OAASC,mBAAmBD,OAAOE,IAAI,CAAC,OACnDD,mBAAmBL;QAEvB,OAAOL,QAAQY,OAAO,CACpBC,IAAAA,8CAA8B,EAACV,iBAC/BG;IAEJ,GACCK,IAAI,CAAC,QAAQ;AAEpB;AAEO,eAAe9C,QACpBiD,GAAoB,EACpBC,GAAmB,EACnBC,GAGC;QAkPGC,OAgCFA,4CA+ECC,mCA6GIA;IA5cP,IAAIF,IAAIG,WAAW,EAAE;QACnBC,IAAAA,2BAAc,EAACN,KAAKE,IAAIG,WAAW;IACrC;IAEA,IAAIrD,YAAYuD,KAAK,EAAE;QACrBC,IAAAA,2BAAc,EAACR,KAAK,gCAAgC7B,QAAQsC,MAAM,CAACC,MAAM;IAC3E;IACA,MAAMC,gBAAgBC,QAAQC,IAAAA,2BAAc,EAACb,KAAK;IAElD,IAAIc,UAAU;IAEd,wDAAwD;IACxD,mDAAmD;IACnD,6DAA6D;IAC7D,IAAI3C,QAAQC,GAAG,CAAC2C,SAAS,EAAE;QACzBD,UAAUA,QAAQhB,OAAO,CAAC,YAAY,OAAO;IAC/C,OAAO,IAAIgB,YAAY,UAAU;QAC/B,0CAA0C;QAC1CA,UAAU;IACZ;IACA,MAAME,qBAAqB7C,QAAQC,GAAG,CACnC6C,4BAA4B;IAE/B,MAAMC,gBAAgB,MAAMlE,YAAYmE,OAAO,CAACnB,KAAKC,KAAK;QACxDa;QACAE;IACF;IAEA,IAAI,CAACE,eAAe;QAClBjB,IAAImB,UAAU,GAAG;QACjBnB,IAAIoB,GAAG,CAAC;QACRnB,IAAIoB,SAAS,oBAAbpB,IAAIoB,SAAS,MAAbpB,KAAgBqB,QAAQC,OAAO;QAC/B,OAAO;IACT;IAEA,MAAM,EACJC,OAAO,EACPC,KAAK,EACL/C,MAAM,EACNgD,aAAa,EACbC,aAAa,EACbC,gBAAgB,EAChBC,qBAAqB,EACrBC,qBAAqB,EACrBC,uBAAuB,EACvBC,4BAA4B,EAC5B9B,iBAAiB,EACjB+B,WAAW,EACXC,gBAAgB,EAChBC,uBAAuB,EACvBC,mBAAmB,EACnBC,UAAU,EACVC,SAAS,EACTC,yBAAyB,EACzBC,YAAY,EACZC,gBAAgB,EACjB,GAAGxB;IAEJ,MAAMyB,oBAAoBC,IAAAA,0BAAgB,EAAC9B;IAE3C,IAAI,EAAE+B,oBAAoB,EAAE,GAAG3B;IAE/B,2EAA2E;IAC3E,6EAA6E;IAC7E,uEAAuE;IACvE,wEAAwE;IACxE,qEAAqE;IACrE,6EAA6E;IAC7E,2DAA2D;IAC3D,MAAM4B,iBACJR,WAAWS,YAAY,CAACC,GAAG,IAC3B,CAACV,WAAWW,eAAe,IAC3BC,IAAAA,8CAA0B,EAACf,oBACvB,OACAnF,YAAYmG,KAAK,CAAChB,kBAAkBhC;IAC1C,MAAMC,gBAAgB0C,CAAAA,kCAAAA,eAAgBM,KAAK,KAAI;IAE/C,MAAMC,gBAAgB,CAAC,CAAClD,kBAAkBmD,MAAM,CAACnB,iBAAiB;IAElE,MAAMoB,YAAYvD,IAAIwD,OAAO,CAAC,aAAa,IAAI;IAC/C,MAAMC,UAAUC,IAAAA,iBAAU,EAACH;IAC3B,MAAMI,YAAYC,IAAAA,mCAAgB,EAAC5D;IAEnC;;;GAGC,GACD,MAAM6D,uBACJhD,IAAAA,2BAAc,EAACb,KAAK,2BACpBA,IAAIwD,OAAO,CAACM,6CAA2B,CAAC,KAAK,IAAI,4CAA4C;;IAE/F,uFAAuF;IAEvF,MAAMC,eACJlD,IAAAA,2BAAc,EAACb,KAAK,mBACpBgE,IAAAA,gCAAkB,EAAChE,IAAIwD,OAAO,CAACS,4BAAU,CAAC;IAE5C,MAAMC,yBAAyBC,IAAAA,kDAAyB,EAACnE;IAEzD;;;GAGC,GACD,MAAMoE,kBAA2BC,IAAAA,yBAAoB,EACnD/B,WAAWS,YAAY,CAACC,GAAG;IAG7B,iEAAiE;IACjE,2FAA2F;IAC3F,MAAMsB,0BAA0BtE,IAAIwD,OAAO,CAACe,2CAA+B,CAAC;IAC5E,IACE,CAAC1D,IAAAA,2BAAc,EAACb,KAAK,gBACrBW,iBACAyD,mBACAF,0BACAI,2BACA,OAAOA,4BAA4B,UACnC;QACA,MAAME,cAAcC,SAASH,yBAAyB;QACtD,MAAM,EAAEI,qBAAqB,EAAEC,0BAA0B,EAAE,GACzDC,IAAAA,8CAAwB,EAACtC,WAAWS,YAAY,CAAC2B,qBAAqB;QAExE,IAAI,CAACG,MAAML,gBAAgBA,cAAc,GAAG;gBAcxClC;YAbF,IAAIkC,cAAcG,4BAA4B;gBAC5C1E,IAAImB,UAAU,GAAG;gBACjBnB,IAAIoB,GAAG,CAACyD,IAAAA,2DAAqC,EAACJ;gBAC9CxE,IAAIoB,SAAS,oBAAbpB,IAAIoB,SAAS,MAAbpB,KAAgBqB,QAAQC,OAAO;gBAC/B,OAAO;YACT;YAEA,uEAAuE;YACvE,qEAAqE;YACrE,sEAAsE;YACtE,yDAAyD;YACzD,MAAMuD,6BAA6B;YACnC,MAAMC,sBACJ1C,EAAAA,yCAAAA,WAAWS,YAAY,CAACkC,aAAa,qBAArC3C,uCAAuC4C,aAAa,KACpDH;YACF,MAAMI,2BACJH,wBAAwBD,6BACpB,AACE9H,QAAQ,4BACRmI,KAAK,CAACJ,uBACR,OAAO,KAAK,OAAO;;YACzB,MAAMK,mBAAmBb,cAAcW;YAEvC,MAAMG,WAAW,MAAMC,IAAAA,2CAAqB,EAACvF,KAAKqF;YAClD,IAAIC,aAAa,MAAM;gBACrBrF,IAAImB,UAAU,GAAG;gBACjBnB,IAAIoB,GAAG,CACL,CAAC,6BAA6B,CAAC,GAC7B,CAAC,8IAA8I,CAAC;gBAEpJnB,IAAIoB,SAAS,oBAAbpB,IAAIoB,SAAS,MAAbpB,KAAgBqB,QAAQC,OAAO;gBAC/B,OAAO;YACT;YAEA,IAAI8D,SAASE,MAAM,IAAIhB,aAAa;gBAClC,6CAA6C;gBAC7C,MAAMiB,iBAAiBH,SACpBI,QAAQ,CAAC,GAAGlB,aACZmB,QAAQ,CAAC;gBACZnF,IAAAA,2BAAc,EAACR,KAAK,aAAayF;gBAEjC,yDAAyD;gBACzD,MAAMG,aAAaN,SAASI,QAAQ,CAAClB;gBACrChE,IAAAA,2BAAc,EAACR,KAAK,cAAc4F;YACpC,OAAO;gBACL,MAAM,qBAEL,CAFK,IAAIC,MACR,CAAC,oBAAoB,EAAErB,YAAY,4CAA4C,EAAEc,SAASE,MAAM,CAAC,MAAM,CAAC,GADpG,qBAAA;2BAAA;gCAAA;kCAAA;gBAEN;YACF;QACF;IACF;IAEA,IACE,CAAC3E,IAAAA,2BAAc,EAACb,KAAK,gBACrBoE,mBACApE,IAAIwD,OAAO,CAACsC,8BAAkB,CAAC,KAAK,OACpC9F,IAAI+F,MAAM,KAAK,QACf;QACA,MAAM,EAAErB,qBAAqB,EAAEC,0BAA0B,EAAE,GACzDC,IAAAA,8CAAwB,EAACtC,WAAWS,YAAY,CAAC2B,qBAAqB;QAExE,oEAAoE;QACpE,oEAAoE;QACpE,cAAc;QACd,MAAMsB,OAAO,MAAMT,IAAAA,2CAAqB,EAACvF,KAAK2E;QAC9C,IAAIqB,SAAS,MAAM;YACjB/F,IAAImB,UAAU,GAAG;YACjBnB,IAAIoB,GAAG,CAACyD,IAAAA,2DAAqC,EAACJ;YAC9CxE,IAAIoB,SAAS,oBAAbpB,IAAIoB,SAAS,MAAbpB,KAAgBqB,QAAQC,OAAO;YAC/B,OAAO;QACT;QACA,MAAMyE,YAAYD,KAAKL,QAAQ,CAAC;QAEhCnF,IAAAA,2BAAc,EAACR,KAAK,aAAaiG;IACnC;IAEA,yEAAyE;IACzE,wCAAwC;IACxC,MAAMC,2BACJ/H,QAAQC,GAAG,CAAC+H,0CAA0C,KAAK,OAC3D,OAAOzE,MAAM0E,aAAa,KAAK,eAC/BhC;IAEF,sEAAsE;IACtE,6CAA6C;IAC7C,MAAMiC,6BACJH,4BAA4BxE,MAAM0E,aAAa,KAAK;IAEtD,iEAAiE;IACjE,MAAME,mBACJtJ,YAAYuD,KAAK,KAAK,QACtB+B,WAAWS,YAAY,CAACwD,iCAAiC,KAAK;IAEhE,yEAAyE;IACzE,uEAAuE;IACvE,uDAAuD;IACvD,8EAA8E;IAC9E,4EAA4E;IAC5E,yEAAyE;IACzE,+EAA+E;IAC/E,gDAAgD;IAChD,MAAMC,0BACJF,oBACCtG,CAAAA,IAAIwD,OAAO,CAACiD,8CAA4B,CAAC,KAAK,OAC5C,CAACzC,IAAAA,gCAAkB,EAAChE,IAAIwD,OAAO,CAACS,4BAAU,CAAC,KAC1C,OAAOjE,IAAIwD,OAAO,CAACkD,MAAM,KAAK,YAC9B1G,IAAIwD,OAAO,CAACkD,MAAM,CAACC,QAAQ,CAACC,0CAAwB,GAAG,IAAI;IAEjE,4EAA4E;IAC5E,8CAA8C;IAC9C,MAAMC,oBAKJ,AAJA,oEAAoE;IACpE,wEAAwE;IACxE,oEAAoE;IACpE,4CAA4C;IAC3CzC,CAAAA,mBAAmBoC,uBAAsB,KACzC,CAAA,EACCrG,QAAAA,kBAAkBmD,MAAM,CAACX,kBAAkB,IAC3CxC,kBAAkB2G,aAAa,CAACnE,kBAAkB,qBAFnD,AACCxC,MAEC4G,aAAa,MAAK,sBACnB,uEAAuE;IACvE,wEAAwE;IACxE,wEAAwE;IACxE,kEAAkE;IAChEb,CAAAA,4BAA4BM,uBAAsB,KACjDF,CAAAA,oBACCjE,CAAAA,uCAAAA,oBAAqB2E,qBAAqB,MAAK,IAAG,CAAE;IAE5D,MAAMC,qBACJ,AAACf,CAAAA,4BAA4BM,uBAAsB,KAAMK;IAE3D,oEAAoE;IACpE,iEAAiE;IACjE,MAAMK,yBACJD,sBAAsBjK,YAAYuD,KAAK,KAAK;IAE9C,MAAM4G,uBAAuBd,8BAA8BQ;IAE3D,2EAA2E;IAC3E,wEAAwE;IACxE,UAAU;IACV,MAAMO,mBAAmBP,oBACrBhG,IAAAA,2BAAc,EAACb,KAAK,eACpBqH;IAEJ,0EAA0E;IAC1E,wEAAwE;IACxE,0DAA0D;IAC1D,MAAMC,2BACJnH,6CAAAA,kBAAkBmD,MAAM,CAACnB,iBAAiB,qBAA1ChC,2CAA4CoH,iBAAiB;IAE/D,IAAIC,sBACFX,qBACA9C,gBACA,CAACF,wBACD,8DAA8D;IAC9D,8DAA8D;IAC9D,kEAAkE;IAClE,CAACyD;IAEH,kGAAkG;IAClG,mHAAmH;IACnH,0EAA0E;IAC1E,IAAI3G,eAAe;QACjB6G,sBAAsBA,uBAAuB,CAAC,CAACJ;IACjD;IAEA,yEAAyE;IACzE,iEAAiE;IACjE,yEAAyE;IACzE,yEAAyE;IACzE,MAAMK,wBAAwB5G,IAAAA,2BAAc,EAACb,KAAK;IAElD,0EAA0E;IAC1E,+EAA+E;IAC/E,2EAA2E;IAC3E,+CAA+C;IAC/C,MAAM0H,yBACJjE,WAAWoD,oBACP,QACA,CAACtD,YACC,OACAoE,IAAAA,+CAA4B,EAACpE,WAAWjB,WAAWsF,eAAe;IAE1E,MAAMC,QAAQjH,QACZ,AAACR,CAAAA,iBACCiD,iBACAlD,kBAAkBmD,MAAM,CAACX,kBAAkB,AAAD,KAC1C,kEAAkE;IAClE,6EAA6E;IAC7E,yBAAyB;IACzB,CAAEc,CAAAA,WAAWoD,iBAAgB;IAGjC,2EAA2E;IAC3E,MAAMiB,4BACJjB,qBAAqBvE,WAAWW,eAAe,KAAK;IAEtD,2DAA2D;IAC3D,MAAM8E,0BACJ,uEAAuE;IACvE,6DAA6D;IAC7D/K,YAAYuD,KAAK,KAAK,QACtB,qEAAqE;IACrE,gBAAgB;IAChB,CAACsH,SACD,mEAAmE;IACnE,QAAQ;IACR,OAAOT,qBAAqB,YAC5B,oEAAoE;IACpE,iFAAiF;IACjF,+DAA+D;IAC9DU,CAAAA,6BAA6BjH,IAAAA,2BAAc,EAACb,KAAK,oBAE9C,qEAAqE;IACrE,mEAAmE;IACnE,+DAA+D;IAC/DwH,uBAAuB,CAAC7G,gBAExB6G,mBAAkB;IAExB,kEAAkE;IAClE,wEAAwE;IACxE,MAAMQ,uBAAuBpH,QAAQ6C,YAAYoD;IACjD,MAAMnI,+BACJ0B,CAAAA,iCAAAA,cAAe1B,4BAA4B,KAAI,EAAE;IACnD,MAAMuJ,kCACJ7H,CAAAA,iCAAAA,cAAe8H,QAAQ,MAAK,QAC5B,AAAC9H,CAAAA,EAAAA,oCAAAA,cAAc+H,kBAAkB,qBAAhC/H,kCAAkCoF,MAAM,KAAI,CAAA,IAAK;IAEpD,IAAI4C,cAA6B;IACjC,IACE,CAAClG,eACD2F,SACA,CAACE,2BACD,CAAC7D,0BACD,CAACkD,oBACD,CAACI,qBACD;QACA,qEAAqE;QACrE,mEAAmE;QACnE,yEAAyE;QACzE,sEAAsE;QACtE,MAAM/I,mBAAmBqE,iBACrB,QAAO1C,iCAAAA,cAAe8H,QAAQ,MAAK,WACjC9H,cAAc8H,QAAQ,GACtBpF,eAAeuF,MAAM,GACvB;QAEJ,IACE/F,WAAWS,YAAY,CAACuF,gBAAgB,KAAK,QAC7C7J,qBACA2B,iCAAAA,cAAemI,mBAAmB,KAClC,CAACN,iCACD;YACA,IAAIvJ,6BAA6B8G,MAAM,GAAG,GAAG;gBAC3C,MAAMgD,yBAAyBhK,4BAC7BC,kBACAC,8BACAC;gBAGF,oEAAoE;gBACpE,iEAAiE;gBACjE,wEAAwE;gBACxEyJ,cACEI,2BAA2B/J,mBACvB+J,yBACA;YACR;QACF,OAAO;YACLJ,cAAcjG;QAChB;IACF;IAEA,mDAAmD;IACnD,6DAA6D;IAC7D,mEAAmE;IACnE,kEAAkE;IAClE,0EAA0E;IAC1E,IAAIsG,gBAAgBL;IACpB,IACE,CAACK,iBACAzL,CAAAA,YAAYuD,KAAK,IACfsH,SACClG,kBACAvB,iCAAAA,cAAemI,mBAAmB,KAClC,sEAAsE;IACtE,sEAAsE;IACtE,oEAAoE;IACpE,8BAA8B;IAC9B,CAACrE,sBAAsB,GAC3B;QACAuE,gBAAgBtG;IAClB;IAEA,2EAA2E;IAC3E,yEAAyE;IACzE,gCAAgC;IAChC,IACE,CAACnF,YAAYuD,KAAK,IAClB,CAAC2B,eACD2F,SACA9D,gBACA,CAACyD,qBACD;QACAkB,IAAAA,sCAAkB,EAAC1I,IAAIwD,OAAO;IAChC;IAEA,MAAMmF,eAAe;QACnB,GAAGC,UAAS;QACZ3K;QACAlB;QACAC;QACAF;IACF;IAEA,0EAA0E;IAC1E,qEAAqE;IACrE,0EAA0E;IAC1E,IAAIiF,yBAAyBC,yBAAyB;QACpD6G,IAAAA,yCAAqB,EAAC;YACpBnL,MAAMoD;YACNkB;YACAD;QACF;IACF;IAEA,MAAMgE,SAAS/F,IAAI+F,MAAM,IAAI;IAC7B,MAAM+C,SAASC,IAAAA,iBAAS;IACxB,MAAMC,aAAaF,OAAOG,kBAAkB;IAC5C,MAAMC,wBAAwBtI,QAC5ByB,uCAAAA,oBAAqB6G,qBAAqB;IAE5C,MAAMC,+BACJ7G,WAAWS,YAAY,CAACuF,gBAAgB,KAAK,QAC7C5J,6BAA6B8G,MAAM,GAAG,IACjCpF,CAAAA,kCAAAA,qCAAAA,cAAemI,mBAAmB,qBAAlCnI,mCAAoCgJ,MAAM,CACzC,CAACrK,QACC,CAACL,6BAA6B2K,IAAI,CAChC,CAACC,qBACCA,mBAAmBtK,SAAS,KAAKD,MAAMC,SAAS,OAEnD,EAAE,GACP,EAAE;IAER,MAAMuK,YAAY;QAChB,4DAA4D;QAC5D,IAAIlH,uCAAAA,oBAAqBkH,SAAS,EAAE;YAClC,MAAMlH,oBAAoBkH,SAAS,CAACvJ,KAAKC,KAAKsC,WAAW;QAC3D,OAAO;YACLtC,IAAIoB,GAAG,CAAC;QACV;QACA,OAAO;IACT;IAEA,IAAI;QACF,MAAMmI,aAAaxM,YAAYyM,aAAa,CAC1CtH,kBACAK;QAEFvC,IAAIyJ,SAAS,CAAC,QAAQF;QACtB,IAAIG;QACJ,MAAMC,oBAAoB,OACxBC,MACAC;YAEA,MAAMC,UAAU,IAAIC,qBAAe,CAAChK;YACpC,MAAMiK,UAAU,IAAIC,sBAAgB,CAACjK;YAErC,OAAOjD,YAAYmN,MAAM,CAACJ,SAASE,SAASH,SAASM,OAAO,CAAC;gBAC3D,IAAI,CAACP,MAAM;gBAEXA,KAAKQ,aAAa,CAAC;oBACjB,oBAAoBpK,IAAImB,UAAU;oBAClC,YAAY;gBACd;gBAEA,MAAMkJ,qBAAqBxB,OAAOyB,qBAAqB;gBACvD,iEAAiE;gBACjE,IAAI,CAACD,oBAAoB;oBACvB;gBACF;gBAEA,IACEA,mBAAmBhL,GAAG,CAAC,sBACvBkL,yBAAc,CAACC,aAAa,EAC5B;oBACAC,QAAQC,IAAI,CACV,CAAC,2BAA2B,EAAEL,mBAAmBhL,GAAG,CAClD,kBACA,qEAAqE,CAAC;oBAE1E;gBACF;gBAEA,MAAM8D,QAAQkH,mBAAmBhL,GAAG,CAAC;gBACrC,IAAI8D,OAAO;oBACT,MAAMwH,OAAO,GAAG7E,OAAO,CAAC,EAAE3C,OAAO;oBAEjCyG,KAAKQ,aAAa,CAAC;wBACjB,cAAcjH;wBACd,cAAcA;wBACd,kBAAkBwH;oBACpB;oBACAf,KAAKgB,UAAU,CAACD;oBAEhB,8DAA8D;oBAC9D,wDAAwD;oBACxD,IAAIjB,cAAcA,eAAeE,MAAM;wBACrCF,WAAWmB,YAAY,CAAC,cAAc1H;wBACtCuG,WAAWkB,UAAU,CAACD;oBACxB;gBACF,OAAO;oBACLf,KAAKgB,UAAU,CAAC,GAAG9E,OAAO,CAAC,EAAEjF,SAAS;gBACxC;YACF;QACF;QAEA,MAAMiK,mBACJlK,IAAAA,2BAAc,EAACb,KAAK,uBACnB,MAAMhD,YAAYgO,mBAAmB,CACpChL,KACAsC,YACAnC,mBACAQ;QAGJoK,oCAAAA,iBAAkBE,iBAAiB;QACjCC,WAAmBC,kBAAkB,GAAGJ;QAE1C,MAAMK,WAAW,OAAO,EACtBvB,IAAI,EACJ5D,SAAS,EACTsC,mBAAmB,EACnB8C,iBAAiB,EAuBlB;YACC,MAAMvB,UAAsC;gBAC1CpI;gBACA/C;gBACAjB,MAAMiF;gBACN2I,eAAe;oBACb7J;oBACAgB;oBACAC;gBACF;gBACA6I,0BAA0B1K,IAAAA,2BAAc,EACtCb,KACA;gBAEFuI;gBACAiD,YAAY;oBACVC,KAAK,IAAM;oBACXC,UAAU,IAAM;oBAChBC,YAAY,CAAC;oBACbhD;oBACAiD,WAAWC,IAAAA,8BAAc,EAAClD;oBAE1BhK;oBACA3B;oBACAU,MAAMoD;oBACNmF;oBACA+B;oBACAN;oBACAK,yBACE,OAAO9B,cAAc,YAAY8B;oBACnCnG;oBACAC;oBACAC;oBACAG;oBACA6J,cAAc,EAAEzJ,uCAAAA,oBAAqByJ,cAAc;oBACnDC,YAAY,EAAE1J,uCAAAA,oBAAqB0J,YAAY;oBAC/CC,oBAAoB,EAAE3J,uCAAAA,oBAAqB2J,oBAAoB;oBAC/DC,mBAAmB,EAAE5J,uCAAAA,oBAAqB4J,mBAAmB;oBAE7DC,KACE/N,QAAQC,GAAG,CAAC+N,YAAY,KAAK,WACzB,AAAClP,QAAQ,QAAkC4C,IAAI,CAC7C,yBAAyB,GACzB1B,QAAQiO,GAAG,IACXpP,YAAYsB,kBAAkB,IAEhC,GAAGH,QAAQiO,GAAG,GAAG,CAAC,EAAEpP,YAAYsB,kBAAkB,EAAE;oBAC1D4D;oBACAuB;oBACAZ;oBACAqB;oBACAmI,aAAa/J,WAAW+J,WAAW;oBACnCC,kBAAkBhK,WAAWiK,MAAM;oBACnCC,aAAalK,WAAWkK,WAAW;oBACnCC,eAAenK,WAAWmK,aAAa;oBACvCC,QAAQpK,WAAWoK,MAAM;oBACzBC,cAAcxM,kBAAkByM,OAAO;oBACvCC,gBAAgBvK,WAAWS,YAAY,CAAC+J,KAAK;oBAC7ClF,iBAAiBtF,WAAWsF,eAAe;oBAC3CmF,uBAAuBzK,WAAWyK,qBAAqB;oBAEvD/L;oBACA+J;oBACAiC,mBAAmB1K,WAAW2K,SAAS;oBACvCC,UAAU5K,WAAW4K,QAAQ;oBAC7BjI,eAAe3C,WAAWS,YAAY,CAACkC,aAAa;oBACpDkI,oBACE,OAAO7K,WAAW8K,OAAO,KAAK,YAC9BxM,QAAQ0B,WAAW8K,OAAO,CAACC,eAAe;oBAE5C,GAAIpG,sBACJC,0BACAC,uBACI;wBACEmG,yBAAyB;wBACzBvF,yBAAyB;wBACzBwF,oBAAoB;wBACpBrG,wBAAwBA;oBAC1B,IACA,CAAC,CAAC;oBACNjE,iBAAiBrC,QAAQ0B,WAAWW,eAAe;oBACnDF,cAAc;wBACZ8D;wBACA2G,YAAYlL,WAAWkL,UAAU;wBACjCC,YAAYnL,WAAWS,YAAY,CAAC0K,UAAU;wBAC9CC,gBAAgB9M,QAAQ0B,WAAWS,YAAY,CAAC2K,cAAc;wBAC9DC,mBAAmB/M,QACjB0B,WAAWS,YAAY,CAAC4K,iBAAiB;wBAE3CC,WAAWhN,QAAQ0B,WAAWS,YAAY,CAAC6K,SAAS;wBACpDC,kBAAkBvL,WAAWS,YAAY,CAAC8K,gBAAgB,IAAI;wBAC9DC,gBAAgBlN,QAAQ0B,WAAWS,YAAY,CAAC+K,cAAc;wBAC9DC,mBAAmBnN,QACjB0B,WAAWS,YAAY,CAACgL,iBAAiB;wBAE3CC,qBACE1L,WAAWS,YAAY,CAACiL,mBAAmB,IAAK,EAAE;wBACpDC,2BACE3L,WAAWS,YAAY,CAACkL,yBAAyB;wBACnDtJ,4BAA4BuJ,IAAAA,qCAA0B,EACpD5L,WAAWS,YAAY,CAAC2B,qBAAqB;oBAEjD;oBAEApD,WAAWpB,IAAIoB,SAAS;oBACxB6M,SAAS,CAACC;wBACRnO,IAAIoO,EAAE,CAAC,SAASD;oBAClB;oBACAE,kBAAkB,KAAO;oBAEzBC,+BAA+B,CAC7BC,OACAC,UACAC,cACAC,aAEA3R,YAAY4R,cAAc,CACxB5O,KACAwO,OACAE,cACAC,YACAtM;oBAEJwM,KAAKhO,IAAAA,2BAAc,EAACb,KAAK;gBAC3B;YACF;YAEA,yEAAyE;YACzE,aAAa;YACb,IAAIqL,mBAAmB;gBACrBvB,QAAQ0B,UAAU,CAACzD,uBAAuB,GAAG;YAC/C;YAEA,MAAM+G,SAAS,MAAMlF,kBAAkBC,MAAMC;YAE7C,MAAM,EAAEiF,QAAQ,EAAE,GAAGD;YAErB,MAAM,EACJE,YAAY,EACZxL,UAAU,CAAC,CAAC,EACZ,oEAAoE;YACpEyL,WAAWC,SAAS,EACpBC,YAAY,EACb,GAAGJ;YAEJ,IAAIG,WAAW;gBACb1L,OAAO,CAAC4L,kCAAsB,CAAC,GAAGF;YACpC;YAEA,2DAA2D;;YACzDlP,IAAYmP,YAAY,GAAGA;YAE7B,0DAA0D;YAC1D,gEAAgE;YAChE,qDAAqD;YACrD,IACEtH,SACAmH,CAAAA,gCAAAA,aAAcK,UAAU,MAAK,KAC7B,CAACrS,YAAYuD,KAAK,IAClB,CAACsG,mBACD;gBACA,MAAMyI,oBAAoBP,SAASO,iBAAiB;gBAEpD,MAAMT,MAAM,qBAOX,CAPW,IAAIhJ,MACd,CAAC,+CAA+C,EAAE1D,mBAChDmN,CAAAA,qCAAAA,kBAAmBC,WAAW,IAC1B,CAAC,UAAU,EAAED,kBAAkBC,WAAW,EAAE,GAC5C,EAAE,EACN,GACA,CAAC,4EAA4E,CAAC,GANtE,qBAAA;2BAAA;gCAAA;kCAAA;gBAOZ;gBAEA,IAAID,qCAAAA,kBAAmBE,KAAK,EAAE;oBAC5B,MAAMA,QAAQF,kBAAkBE,KAAK;oBACrCX,IAAIW,KAAK,GAAGX,IAAIY,OAAO,GAAGD,MAAME,SAAS,CAACF,MAAMG,OAAO,CAAC;gBAC1D;gBAEA,MAAMd;YACR;YAEA,OAAO;gBACLtP,OAAO;oBACLhC,MAAMqS,8BAAe,CAACnS,QAAQ;oBAC9BoS,MAAMf;oBACNtL;oBACAsM,SAASf,SAASgB,UAAU;oBAC5B9J,WAAW8I,SAAS9I,SAAS;oBAC7B+J,QAAQjB,SAAS3N,UAAU;oBAC3B6O,aAAalB,SAASkB,WAAW;gBACnC;gBACAjB;YACF;QACF;QAEA,MAAMkB,oBAAuC,OAAO,EAClDC,WAAW,EACXC,oBAAoBC,6BAA6B,EACjDC,cAAc,EACdzG,IAAI,EACJwB,oBAAoB,KAAK,EAC1B;YACC,MAAMkF,eAAevT,YAAYuD,KAAK,KAAK;YAC3C,MAAMiQ,aAAaL,eAAelQ,IAAIwQ,aAAa;YAEnD,IAAI;oBA8YSrQ;gBA7YX,wDAAwD;gBACxD,iCAAiC;gBACjC,IACEyC,wBACAT,2BACA,CAACiO,iCACD,CAAC1P,eACD;oBACA,IAAI0B,uCAAAA,oBAAqBkH,SAAS,EAAE;wBAClC,MAAMlH,oBAAoBkH,SAAS,CAACvJ,KAAKC;oBAC3C,OAAO;wBACLA,IAAImB,UAAU,GAAG;wBACjBnB,IAAIoB,GAAG,CAAC;oBACV;oBACA,OAAO;gBACT;gBAEA,IAAIqP;gBAEJ,IAAItQ,eAAe;oBACjBsQ,eAAeC,IAAAA,4BAAkB,EAACvQ,cAAc8H,QAAQ;gBAC1D;gBAEA,IACE5F,WAAWS,YAAY,CAACuF,gBAAgB,KAAK,QAC7ClI,CAAAA,iCAAAA,cAAe8H,QAAQ,MAAK,QAC5B,CAACD,mCACDvJ,6BAA6B8G,MAAM,GAAG,GACtC;oBACA,oEAAoE;oBACpE,sEAAsE;oBACtE,sDAAsD;oBACtD,gEAAgE;oBAChE,sEAAsE;oBACtE,sEAAsE;oBACtE,4DAA4D;oBAC5DkL,eAAeE,sBAAY,CAACC,SAAS;gBACvC;gBAEA,0EAA0E;gBAC1E,4EAA4E;gBAC5E,0BAA0B;gBAC1B,IAAIH,iBAAiBE,sBAAY,CAACC,SAAS,IAAIC,IAAAA,YAAK,EAACvN,YAAY;oBAC/D,IAAI,CAACsD,qBAAqBlD,WAAW;wBACnC+M,eAAeE,sBAAY,CAACG,sBAAsB;oBACpD;gBACF;gBAEA,IAAIV,CAAAA,iDAAAA,8BAA+BW,OAAO,MAAK,CAAC,GAAG;oBACjDnO,uBAAuB;gBACzB;gBAEA,sBAAsB;gBACtB,8DAA8D;gBAC9D,2CAA2C;gBAC3C,IACEA,wBACC6N,CAAAA,iBAAiBE,sBAAY,CAACK,SAAS,IACtCZ,6BAA4B,GAC9B;oBACAK,eAAeE,sBAAY,CAACG,sBAAsB;gBACpD;gBAEA,IACE,CAACpQ,iBACD+P,iBAAiBE,sBAAY,CAACG,sBAAsB,IACpDtI,iBACA,CAAC+H,cACD,CAACtO,eACDP,iBACC4O,CAAAA,gBAAgB,CAAClN,aAAY,GAC9B;oBACA,gEAAgE;oBAChE,+CAA+C;oBAC/C,IAGE,AAFA,2DAA2D;oBAC3D,kBAAkB;oBACjBkN,CAAAA,gBAAgBnQ,aAAY,KAC7B,2DAA2D;oBAC3DsQ,iBAAiBE,sBAAY,CAACK,SAAS,EACvC;wBACA,IAAI3O,WAAW4O,WAAW,EAAE;4BAC1B,OAAO,MAAM3H;wBACf;wBACA,MAAM,IAAI4H,wCAAe;oBAC3B;oBAEA,2DAA2D;oBAC3D,mEAAmE;oBACnE,kEAAkE;oBAClE,oEAAoE;oBACpE,sEAAsE;oBACtE,IACEtK,qBACCvE,CAAAA,WAAWW,eAAe,GAAG,CAACuE,sBAAsB,CAACzD,YAAW,GACjE;wBACA,MAAMqN,WACJb,gBAAgB,QAAOnQ,iCAAAA,cAAe8H,QAAQ,MAAK,WAC/C9H,cAAc8H,QAAQ,GACtBvF;wBAEN,MAAM4F,sBAMJ,AALA,iEAAiE;wBACjE,6DAA6D;wBAC7D,2DAA2D;wBAC3D,wDAAwD;wBACxD,yDAAyD;wBACxDgI,CAAAA,gBAAgBtJ,kBAAiB,MAClC7G,iCAAAA,cAAemI,mBAAmB,IAC9B8I,IAAAA,+CAA+B,EAC7BjR,cAAcmI,mBAAmB,IAGnC,8CAA8C;wBAC9CpB,uBACEmK,IAAAA,sCAAsB,EAAC3O,mBAAmB3F,eAC1C;wBAER,6DAA6D;wBAC7D,+DAA+D;wBAC/D,+CAA+C;wBAC/C,IAAIiK,sBAAsBsB,qBAAqB;4BAC7C/H,IAAAA,2BAAc,EAACR,KAAK,kBAAkBuI;wBACxC;wBAEA,gEAAgE;wBAChE,oCAAoC;wBACpC,MAAMgJ,mBAAmB,MAAMvU,YAAYwU,cAAc,CAAC;4BACxDJ;4BACApR;4BACAsC;4BACAmP,WAAWjU,oBAAS,CAACC,QAAQ;4BAC7BiU,YAAY;4BACZvR;4BACA0G;4BACAqJ,mBAAmB,UACjB9E,SAAS;oCACPvB;oCACA,4DAA4D;oCAC5D,QAAQ;oCACR5D,WAAWoB;oCACX,mDAAmD;oCACnD,6DAA6D;oCAC7D,2DAA2D;oCAC3D,gDAAgD;oCAChDkB;oCACA8C,mBAAmB;gCACrB;4BACF/J,WAAWpB,IAAIoB,SAAS;4BACxBX;wBACF;wBAEA,wEAAwE;wBACxE,IAAI4Q,qBAAqB,MAAM,OAAO;wBAEtC,qEAAqE;wBACrE,IAAIA,kBAAkB;4BACpB,IACE,CAAC5Q,iBACDkG,qBACA,+DAA+D;4BAC/D,+DAA+D;4BAC/DnI,6BAA6B8G,MAAM,GAAG,KACtClD,WAAWS,YAAY,CAACuF,gBAAgB,KAAK,QAC7CF,eACA2C,oBACA,CAAClI,wBACD,CAACsE,wBACD,6DAA6D;4BAC7D,4DAA4D;4BAC5D,WAAW;4BACX,CAACb,oBACD,6DAA6D;4BAC7D,8DAA8D;4BAC9D,CAACE,2BACD,kEAAkE;4BAClE,gEAAgE;4BAChE,kBAAkB;4BAClB,CAAC3C,sBACD;gCACA8N,IAAAA,6BAAkB,EAAC;oCACjB,MAAMC,gBAAgB5U,YAAY6U,gBAAgB,CAAC7R;oCAEnD,IAAI;wCACF,uDAAuD;wCACvD,2DAA2D;wCAC3D,2DAA2D;wCAC3D,uDAAuD;wCACvD,oCAAoC;wCACpC,MAAM4R,cAAcvC,UAAU,CAC5BjH,aACA2C,kBACAlE,mBACA,OACA,CAACiL;4CACC,OAAO1G,SAAS;gDACdvB,MAAMiI,EAAEjI,IAAI;gDACZ5D,WAAWoB;gDACXkB,qBACEY,6BAA6B3D,MAAM,GAAG,IAClC6L,IAAAA,+CAA+B,EAC7BlI,gCAEF;gDACNkC,mBAAmB;4CACrB;wCACF,GACA,6DAA6D;wCAC7D,MACA8E,aACAjQ,IAAIoB,SAAS;oCAEjB,EAAE,OAAOuN,KAAK;wCACZnE,QAAQ8D,KAAK,CACX,iDACAK;oCAEJ;gCACF;4BACF;4BAEA,sEAAsE;4BACtE,iCAAiC;4BACjC,OAAO0C,iBAAiBvC,YAAY;4BAEpC,OAAOuC;wBACT;oBACF;gBACF;gBAEA,wEAAwE;gBACxE,oEAAoE;gBACpE,IAAItL,YACF,CAACpD,wBAAwB,CAACyN,kBAAkBlJ,mBACxCA,mBACAC;gBAEN,IACE,yEAAyE;gBACzE,qEAAqE;gBACrE,0EAA0E;gBAC1E,sEAAsE;gBACtE,wEAAwE;gBACxE,UAAU;gBACV,6DAA6D;gBAC7DS,6BACA3J,QAAQC,GAAG,CAAC+N,YAAY,KAAK,UAC7B,CAACxL,iBACDoK,oBACA,qEAAqE;gBACpEvD,CAAAA,uBAAuBtD,sBAAqB,KAC7C,uEAAuE;gBACvE,uEAAuE;gBACvE,qEAAqE;gBACrE,oEAAoE;gBACpE,mDAAmD;gBACnD,CAACmH,mBACD;oBACA,MAAM0G,wBAAwB,MAAMhH,iBAAiBzL,GAAG,CACtD6C,kBACA;wBACE5E,MAAMyU,mCAAoB,CAACvU,QAAQ;wBACnCoJ,mBAAmB;wBACnB6K,YAAY;oBACd;oBAGF,qEAAqE;oBACrE,aAAa;oBACb,IACEK,yBACAA,sBAAsBxS,KAAK,IAC3BwS,sBAAsBxS,KAAK,CAAChC,IAAI,KAAKqS,8BAAe,CAACnS,QAAQ,EAC7D;wBACA,oEAAoE;wBACpE,oDAAoD;wBACpDwI,YAAY8L,sBAAsBxS,KAAK,CAAC0G,SAAS;wBAEjD,8DAA8D;wBAC9D,sEAAsE;wBACtE,IACE8L,yBACA,kEAAkE;wBAClE,0DAA0D;wBAC1D,cAAc;wBACbA,CAAAA,sBAAsBf,OAAO,KAAK,CAAC,KAClCe,sBAAsBf,OAAO,KAAK,IAAG,GACvC;4BACA,+DAA+D;4BAC/D,+BAA+B;4BAC/BW,IAAAA,6BAAkB,EAAC;gCACjB,MAAMC,gBAAgB5U,YAAY6U,gBAAgB,CAAC7R;gCAEnD,IAAI;oCACF,MAAM4R,cAAcvC,UAAU,CAC5BlN,kBACA4I,kBACAlE,mBACA,OACA,CAACiL,IACC5B,kBAAkB;4CAChB,GAAG4B,CAAC;4CACJ,iDAAiD;4CACjD,4DAA4D;4CAC5D,wCAAwC;4CACxCzG,mBAAmB;wCACrB,IACF,0DAA0D;oCAC1D,4DAA4D;oCAC5D,mDAAmD;oCACnD,MACA8E,aACAjQ,IAAIoB,SAAS;gCAEjB,EAAE,OAAOuN,KAAK;oCACZnE,QAAQ8D,KAAK,CACX,iDACAK;gCAEJ;4BACF;wBACF;oBACF;gBACF;gBAEA,yEAAyE;gBACzE,wEAAwE;gBACxE,IACE,AAAC5H,CAAAA,sBAAsBC,sBAAqB,KAC5C,OAAOjB,cAAc,aACrB;oBACA,OAAO;wBACL+I,cAAc;4BAAEK,YAAY;4BAAG4C,QAAQ5K;wBAAU;wBACjD9H,OAAO;4BACLhC,MAAMqS,8BAAe,CAACsC,KAAK;4BAC3BrC,MAAMsC,qBAAY,CAACC,KAAK;4BACxBC,UAAU,CAAC;4BACX7O,SAAS6D;4BACT2I,QAAQ3I;wBACV;oBACF;gBACF;gBAEA,MAAMiL,iCACJ,qEAAqE;gBACrE,mEAAmE;gBACnE,qBAAqB;gBACrB,CAACtV,YAAYuD,KAAK,IAClBoB,kBACAvB,iCAAAA,cAAemI,mBAAmB,IAC9BgK,IAAAA,iDAAiC,EAC/B5T,QAGAyB,cAAcmI,mBAAmB,IAEnC;gBAEN,MAAMiK,+BACJF,kCACAA,+BAA+B9M,MAAM,GAAG,IACpC8M,iCACAlS,iCAAAA,cAAemI,mBAAmB;gBAExC,MAAMkK,oCACJH,kCAAkC,QAClCA,+BAA+B9M,MAAM,GAAG;gBAE1C,4DAA4D;gBAC5D,kEAAkE;gBAClE,kEAAkE;gBAClE,8DAA8D;gBAC9D,IAAIkN,+BAA4D;gBAChE,IAAIpQ,WAAWW,eAAe,KAAI7C,iCAAAA,cAAemI,mBAAmB,GAAE;oBACpE,MAAMoK,eAAe9R,IAAAA,2BAAc,EAACb,KAAK;oBACzC,IAAI2S,gBAAgBA,aAAaC,IAAI,GAAG,GAAG;wBACzCF,+BACEtS,cAAcmI,mBAAmB,CAACa,MAAM,CACtC,CAACrK,QAAU,CAAC4T,aAAaE,GAAG,CAAC9T,MAAMC,SAAS;oBAElD;gBACF;gBACA,MAAMuJ,sBAIJ,AAHA,yDAAyD;gBACzD,mEAAmE;gBACnE,8DAA8D;gBAC7D,CAAA,AAACgI,gBAAgB1P,IAAAA,2BAAc,EAACb,KAAK,0BACpCyS,qCACCxL,sBAAsB,CAAC5D,aAAa,KACvCmP,+BACInB,IAAAA,+CAA+B,EAACmB,gCAEhC,iEAAiE;gBACjE,qDAAqD;gBACrDE,gCACEA,6BAA6BlN,MAAM,GAAG,KACtCkN,6BAA6BlN,MAAM,GAChCpF,CAAAA,CAAAA,kCAAAA,qCAAAA,cAAemI,mBAAmB,qBAAlCnI,mCAAoCoF,MAAM,KAAI,CAAA,IACjD6L,IAAAA,+CAA+B,EAACqB,gCAChCvL,uBACEmK,IAAAA,sCAAsB,EAAC3O,mBAAmB3F,eAC1C;gBAEV,qEAAqE;gBACrE,oEAAoE;gBACpE,kEAAkE;gBAClE,qEAAqE;gBACrE,sDAAsD;gBACtD,IACE,AAACuT,CAAAA,gBAAgBtJ,kBAAiB,KAClC3E,WAAWW,eAAe,IAC1B,CAACI,kBACDjD,iCAAAA,cAAemI,mBAAmB,GAClC;oBACA,MAAMuK,iBAAiBzB,IAAAA,+CAA+B,EACpDmB,gCAAgCpS,cAAcmI,mBAAmB;oBAGnE,IAAIuK,gBAAgB;wBAClBtS,IAAAA,2BAAc,EAACR,KAAK,kBAAkB8S;oBACxC;gBACF;gBAEA,sBAAsB;gBACtB,OAAO1H,SAAS;oBACdvB;oBACA5D;oBACAsC;oBACA8C;gBACF;YACF,EAAE,OAAOwD,KAAK;gBACZ,uDAAuD;gBACvD,gDAAgD;gBAChD,IAAIwB,iDAAAA,8BAA+BW,OAAO,EAAE;oBAC1C,MAAMrC,aAAa;oBACnB,MAAM3R,YAAY4R,cAAc,CAC9B5O,KACA6O,KACA;wBACEkE,YAAY;wBACZC,WAAWlS;wBACXmS,WAAW;wBACXC,kBAAkBC,IAAAA,0BAAmB,EAAC;4BACpC5F,oBAAoB1F;4BACpBhF;wBACF;oBACF,GACA8L,YACAtM;gBAEJ;gBACA,MAAMwM;YACR;QACF;QAEA,MAAM2C,iBAAiB,OAAO3H;gBA0CxBuJ,mBA6MSC;YAtPb,MAAMD,aAAa,MAAMpW,YAAYwU,cAAc,CAAC;gBAClDJ,UAAUhJ;gBACV8H,mBAAmB,CAAC4B,IAClB5B,kBAAkB;wBAChBrG;wBACA,GAAGiI,CAAC;oBACN;gBACFL,WAAWjU,oBAAS,CAACC,QAAQ;gBAC7BoF;gBACAgE;gBACA7G;gBACAsC;gBACAnC;gBACAmB,WAAWpB,IAAIoB,SAAS;gBACxBX;YACF;YAEA,IAAIuB,aAAa;gBACfjC,IAAIyJ,SAAS,CACX,iBACA;YAEJ;YAEA,oDAAoD;YACpD,IAAI1M,YAAYuD,KAAK,EAAE;gBACrBN,IAAIyJ,SAAS,CAAC,iBAAiB;YACjC;YAEA,IAAI,CAAC0J,YAAY;gBACf,IAAIhL,aAAa;oBACf,gEAAgE;oBAChE,oEAAoE;oBACpE,kEAAkE;oBAClE,mEAAmE;oBACnE,yBAAyB;oBACzB,MAAM,qBAA8D,CAA9D,IAAIvC,MAAM,sDAAV,qBAAA;+BAAA;oCAAA;sCAAA;oBAA6D;gBACrE;gBACA,OAAO;YACT;YAEA,IAAIuN,EAAAA,oBAAAA,WAAW7T,KAAK,qBAAhB6T,kBAAkB7V,IAAI,MAAKqS,8BAAe,CAACnS,QAAQ,EAAE;oBAEM2V;gBAD7D,MAAM,qBAEL,CAFK,IAAIvN,MACR,CAAC,wDAAwD,GAAEuN,qBAAAA,WAAW7T,KAAK,qBAAhB6T,mBAAkB7V,IAAI,EAAE,GAD/E,qBAAA;2BAAA;gCAAA;kCAAA;gBAEN;YACF;YAEA,MAAM+V,cAAc,OAAOF,WAAW7T,KAAK,CAAC0G,SAAS,KAAK;YAE1D,4FAA4F;YAC5F,6FAA6F;YAC7F,yFAAyF;YACzF,2FAA2F;YAC3F,4FAA4F;YAC5F,qDAAqD;YACrD,6EAA6E;YAC7E,IAAIlC,gBAAgB,CAACG,0BAA0BzB,cAAc;gBAC3DxC,IAAIyJ,SAAS,CAAC6J,yCAA6B,EAAE9Q;YAC/C;YAEA,IACEoF,SACA,yEAAyE;YACzE,kEAAkE;YAClE,gDAAgD;YAChD,CAACL,uBACA,CAAA,CAAC8L,eAAezP,oBAAmB,GACpC;gBACA,IAAI,CAAClD,eAAe;oBAClB,gDAAgD;oBAChD,iCAAiC;oBACjCV,IAAIyJ,SAAS,CACX,kBACA7G,uBACI,gBACAuQ,WAAWI,MAAM,GACf,SACAJ,WAAWpC,OAAO,GAChB,UACA;gBAEZ;gBACA,0EAA0E;gBAC1E,yDAAyD;gBACzD/Q,IAAIyJ,SAAS,CAAC+J,0CAAwB,EAAE;YAC1C;YACA,MAAM,EAAElU,OAAO8T,UAAU,EAAE,GAAGD;YAE9B,sDAAsD;YACtD,IAAIpE;YAEJ,0EAA0E;YAC1E,oCAAoC;YACpC,IAAI5H,kBAAkB;gBACpB4H,eAAe;oBAAEK,YAAY;oBAAG4C,QAAQ5K;gBAAU;YACpD,OAKK,IAAIG,qBAAqB;gBAC5BwH,eAAe;oBAAEK,YAAY;oBAAG4C,QAAQ5K;gBAAU;YACpD,OAAO,IAAI,CAACrK,YAAYuD,KAAK,EAAE;gBAC7B,2DAA2D;gBAC3D,IAAI2B,aAAa;oBACf8M,eAAe;wBAAEK,YAAY;wBAAG4C,QAAQ5K;oBAAU;gBACpD,OAIK,IAAI,CAACQ,OAAO;oBACf,IAAI,CAAC5H,IAAIyT,SAAS,CAAC,kBAAkB;wBACnC1E,eAAe;4BAAEK,YAAY;4BAAG4C,QAAQ5K;wBAAU;oBACpD;gBACF,OAAO,IAAI+L,WAAWpE,YAAY,EAAE;oBAClC,wEAAwE;oBACxE,oBAAoB;oBACpB,IAAI,OAAOoE,WAAWpE,YAAY,CAACK,UAAU,KAAK,UAAU;4BAShD+D;wBARV,IAAIA,WAAWpE,YAAY,CAACK,UAAU,GAAG,GAAG;4BAC1C,MAAM,qBAEL,CAFK,IAAIxJ,MACR,CAAC,2CAA2C,EAAEuN,WAAWpE,YAAY,CAACK,UAAU,CAAC,IAAI,CAAC,GADlF,qBAAA;uCAAA;4CAAA;8CAAA;4BAEN;wBACF;wBAEAL,eAAe;4BACbK,YAAY+D,WAAWpE,YAAY,CAACK,UAAU;4BAC9C4C,QAAQmB,EAAAA,2BAAAA,WAAWpE,YAAY,qBAAvBoE,yBAAyBnB,MAAM,KAAI3P,WAAWkL,UAAU;wBAClE;oBACF,OAGK;wBACHwB,eAAe;4BACbK,YAAYsE,kCAAsB;4BAClC1B,QAAQ5K;wBACV;oBACF;gBACF;YACF;YAEA+L,WAAWpE,YAAY,GAAGA;YAE1B,IACE,OAAOvH,0BAA0B,YACjC4L,CAAAA,8BAAAA,WAAY9V,IAAI,MAAKqS,8BAAe,CAACnS,QAAQ,IAC7C4V,WAAWpD,WAAW,EACtB;oBAeaoD;gBAdb,uEAAuE;gBACvE,sEAAsE;gBACtE,sEAAsE;gBAEtE,oEAAoE;gBACpE,uEAAuE;gBACvE,wEAAwE;gBACxE,sEAAsE;gBACtE,sEAAsE;gBACtE,wDAAwD;gBACxDpT,IAAIyJ,SAAS,CAACkK,0CAAwB,EAAE;gBAExC,sEAAsE;gBACtE,8CAA8C;gBAC9C,MAAMC,QAAOR,uBAAAA,WAAW7P,OAAO,qBAAlB6P,oBAAoB,CAACjE,kCAAsB,CAAC;gBACzD,IAAIzO,iBAAiBkH,SAASgM,QAAQ,OAAOA,SAAS,UAAU;oBAC9D5T,IAAIyJ,SAAS,CAAC0F,kCAAsB,EAAEyE;gBACxC;gBAEA,MAAMC,iBAAiBT,WAAWpD,WAAW,CAAC3Q,GAAG,CAACmI;gBAClD,IAAIqM,mBAAmBzM,WAAW;oBAChC,YAAY;oBACZ,OAAO0M,IAAAA,6BAAgB,EAAC;wBACtB/T;wBACAC;wBACA+T,eAAe1R,WAAW0R,aAAa;wBACvCC,iBAAiB3R,WAAW2R,eAAe;wBAC3CnF,QAAQqD,qBAAY,CAAC+B,UAAU,CAC7BJ,gBACAK,yCAAuB;wBAEzBnF,cAAcoE,WAAWpE,YAAY;oBACvC;gBACF;gBAEA,yEAAyE;gBACzE,yEAAyE;gBACzE,sEAAsE;gBACtE,qEAAqE;gBACrE,oEAAoE;gBACpE,gCAAgC;gBAChC/O,IAAImB,UAAU,GAAG;gBACjB,OAAO2S,IAAAA,6BAAgB,EAAC;oBACtB/T;oBACAC;oBACA+T,eAAe1R,WAAW0R,aAAa;oBACvCC,iBAAiB3R,WAAW2R,eAAe;oBAC3CnF,QAAQqD,qBAAY,CAACC,KAAK;oBAC1BpD,cAAcoE,WAAWpE,YAAY;gBACvC;YACF;YAEA,yEAAyE;YACzE,oEAAoE;YACpE,wEAAwE;YACxE,2DAA2D;YAC3D,2CAA2C;YAC3C,MAAMoF,eAAetM,4BAChBjH,IAAAA,2BAAc,EAACb,KAAK,qBACrBa,IAAAA,2BAAc,EAACb,KAAK,kBACpBa,IAAAA,2BAAc,EAACb,KAAK;YACxB,IAAIoU,cAAc;oBAGXC;gBAFL,MAAMC,mBAAmBzT,IAAAA,2BAAc,EAACb,KAAK,cAAcA,IAAIuU,GAAG;gBAClE,MAAMC,gBAAgBF,mBACjBD,EAAAA,YAAAA,IAAAA,aAAQ,EAACC,sCAATD,UAA4B1W,QAAQ,KAAI2W,mBACzCjN;gBAEJ,MAAMoN,WAAW,MAAML,aAAahB,YAAY;oBAC9CmB,KAAKC;gBACP;gBAEA,IAAIC,UAAU,OAAO;YACvB;YAEA,IAAIpB,WAAW7P,OAAO,EAAE;gBACtB,MAAMA,UAAU;oBAAE,GAAG6P,WAAW7P,OAAO;gBAAC;gBAExC,IAAI,CAAC7C,iBAAiB,CAACkH,OAAO;oBAC5B,OAAOrE,OAAO,CAAC4L,kCAAsB,CAAC;gBACxC;gBAEA,KAAK,IAAI,CAACsF,KAAKnV,MAAM,IAAIoV,OAAOC,OAAO,CAACpR,SAAU;oBAChD,IAAI,OAAOjE,UAAU,aAAa;oBAElC,IAAIE,MAAMC,OAAO,CAACH,QAAQ;wBACxB,KAAK,MAAMsV,KAAKtV,MAAO;4BACrBU,IAAI6U,YAAY,CAACJ,KAAKG;wBACxB;oBACF,OAAO,IAAI,OAAOtV,UAAU,UAAU;wBACpCA,QAAQA,MAAMoG,QAAQ;wBACtB1F,IAAI6U,YAAY,CAACJ,KAAKnV;oBACxB,OAAO;wBACLU,IAAI6U,YAAY,CAACJ,KAAKnV;oBACxB;gBACF;YACF;YAEA,sEAAsE;YACtE,8CAA8C;YAC9C,MAAMsU,QAAOR,sBAAAA,WAAW7P,OAAO,qBAAlB6P,mBAAoB,CAACjE,kCAAsB,CAAC;YACzD,IAAIzO,iBAAiBkH,SAASgM,QAAQ,OAAOA,SAAS,UAAU;gBAC9D5T,IAAIyJ,SAAS,CAAC0F,kCAAsB,EAAEyE;YACxC;YAEA,0EAA0E;YAC1E,0EAA0E;YAC1E,oCAAoC;YACpC,IAAIR,WAAWrD,MAAM,IAAK,CAAA,CAACjM,gBAAgB,CAAC8C,iBAAgB,GAAI;gBAC9D5G,IAAImB,UAAU,GAAGiS,WAAWrD,MAAM;YACpC;YAEA,gGAAgG;YAChG,IACE,CAACrP,iBACD0S,WAAWrD,MAAM,IACjB+E,sCAAkB,CAAC1B,WAAWrD,MAAM,CAAC,IACrCjM,cACA;gBACA9D,IAAImB,UAAU,GAAG;YACnB;YAEA,sCAAsC;YACtC,IAAIkS,eAAe,CAAC9L,qBAAqB;gBACvCvH,IAAIyJ,SAAS,CAACkK,0CAAwB,EAAE;YAC1C;YAEA,2DAA2D;YAC3D,oEAAoE;YACpE,0EAA0E;YAC1E,+BAA+B;YAC/B,IAAI7P,gBAAgB,CAAC7B,aAAa;gBAChC,8DAA8D;gBAC9D,IAAI,OAAOmR,WAAWvD,OAAO,KAAK,aAAa;oBAC7C,kEAAkE;oBAClE,IAAIuD,WAAWxD,IAAI,CAACmF,WAAW,KAAKb,yCAAuB,EAAE;wBAC3D,IAAI7R,WAAWW,eAAe,EAAE;4BAC9BhD,IAAImB,UAAU,GAAG;4BACjB,OAAO2S,IAAAA,6BAAgB,EAAC;gCACtB/T;gCACAC;gCACA+T,eAAe1R,WAAW0R,aAAa;gCACvCC,iBAAiB3R,WAAW2R,eAAe;gCAC3CnF,QAAQqD,qBAAY,CAACC,KAAK;gCAC1BpD,cAAcoE,WAAWpE,YAAY;4BACvC;wBACF,OAAO;4BACL,uCAAuC;4BACvC,MAAM,qBAEL,CAFK,IAAIiG,8BAAc,CACtB,CAAC,2BAA2B,EAAE5B,WAAWxD,IAAI,CAACmF,WAAW,EAAE,GADvD,qBAAA;uCAAA;4CAAA;8CAAA;4BAEN;wBACF;oBACF;oBAEA,OAAOjB,IAAAA,6BAAgB,EAAC;wBACtB/T;wBACAC;wBACA+T,eAAe1R,WAAW0R,aAAa;wBACvCC,iBAAiB3R,WAAW2R,eAAe;wBAC3CnF,QAAQuE,WAAWxD,IAAI;wBACvBb,cAAcoE,WAAWpE,YAAY;oBACvC;gBACF;gBAEA,sEAAsE;gBACtE,QAAQ;gBACR,OAAO+E,IAAAA,6BAAgB,EAAC;oBACtB/T;oBACAC;oBACA+T,eAAe1R,WAAW0R,aAAa;oBACvCC,iBAAiB3R,WAAW2R,eAAe;oBAC3CnF,QAAQqD,qBAAY,CAAC+B,UAAU,CAC7Bb,WAAWvD,OAAO,EAClBqE,yCAAuB;oBAEzBnF,cAAcoE,WAAWpE,YAAY;gBACvC;YACF;YAEA,mCAAmC;YACnC,MAAMhJ,OAAOqN,WAAWxD,IAAI;YAE5B,iEAAiE;YACjE,qEAAqE;YACrE,oEAAoE;YACpE,0EAA0E;YAC1E,kEAAkE;YAClE,gCAAgC;YAChC,IAAIrJ,2BAA2BS,oBAAoB;gBACjD,MAAMiO,uBACJlY,YAAYuD,KAAK,KAAK,OAAO4U,OAAOC,UAAU,KAAK;gBACrDpP,KAAKqP,WAAW,CACd,MAAMC,IAAAA,qEAA+C,EACnDJ;gBAGJ,OAAOnB,IAAAA,6BAAgB,EAAC;oBACtB/T;oBACAC;oBACA+T,eAAe1R,WAAW0R,aAAa;oBACvCC,iBAAiB3R,WAAW2R,eAAe;oBAC3CnF,QAAQ9I;oBACRgJ,cAAc;wBAAEK,YAAY;wBAAG4C,QAAQ5K;oBAAU;gBACnD;YACF;YAEA,qEAAqE;YACrE,sEAAsE;YACtE,oDAAoD;YACpD,IAAI,CAACiM,eAAe3S,iBAAiBoD,cAAc;gBACjD,wEAAwE;gBACxE,oEAAoE;gBACpE,6BAA6B;gBAC7B,IACE5F,QAAQC,GAAG,CAACmX,gBAAgB,IAC5B5U,iBACAkG,qBACAb,KAAKgP,WAAW,KAAKQ,oCAAwB,EAC7C;oBACA,oEAAoE;oBACpE,sEAAsE;oBACtE,oEAAoE;oBACpExP,KAAKyP,OAAO,CAACC;gBACf;gBAEA,OAAO3B,IAAAA,6BAAgB,EAAC;oBACtB/T;oBACAC;oBACA+T,eAAe1R,WAAW0R,aAAa;oBACvCC,iBAAiB3R,WAAW2R,eAAe;oBAC3CnF,QAAQ9I;oBACRgJ,cAAcoE,WAAWpE,YAAY;gBACvC;YACF;YAEA,sEAAsE;YACtE,uEAAuE;YACvE,sEAAsE;YACtE,4BAA4B;YAC5B,IAAI/H,sBAAsBC,wBAAwB;gBAChD,mEAAmE;gBACnE,mDAAmD;gBACnDlB,KAAK2P,IAAI,CACP,IAAIC,eAAe;oBACjBC,OAAMC,UAAU;wBACdA,WAAWC,OAAO,CAACC,yBAAY,CAACC,MAAM,CAACC,aAAa;wBACpDJ,WAAWK,KAAK;oBAClB;gBACF;gBAGF,OAAOpC,IAAAA,6BAAgB,EAAC;oBACtB/T;oBACAC;oBACA+T,eAAe1R,WAAW0R,aAAa;oBACvCC,iBAAiB3R,WAAW2R,eAAe;oBAC3CnF,QAAQ9I;oBACRgJ,cAAc;wBAAEK,YAAY;wBAAG4C,QAAQ5K;oBAAU;gBACnD;YACF;YAEA,wEAAwE;YACxE,oEAAoE;YACpE,6BAA6B;YAC7B,IAAIlJ,QAAQC,GAAG,CAACmX,gBAAgB,EAAE;gBAChCvP,KAAK2P,IAAI,CAACD;YACZ;YAEA,yEAAyE;YACzE,wEAAwE;YACxE,mBAAmB;YACnB,MAAMU,cAAc,IAAIC;YACxBrQ,KAAK2P,IAAI,CAACS,YAAYE,QAAQ;YAE9B,wEAAwE;YACxE,wEAAwE;YACxE,yEAAyE;YACzElL,SAAS;gBACPvB;gBACA5D,WAAWoN,WAAWpN,SAAS;gBAC/B,sEAAsE;gBACtE,YAAY;gBACZsC,qBAAqB;gBACrB8C,mBAAmB;YACrB,GACGkL,IAAI,CAAC,OAAOzH;oBAKPA;gBAJJ,IAAI,CAACA,QAAQ;oBACX,MAAM,qBAAwD,CAAxD,IAAIjJ,MAAM,gDAAV,qBAAA;+BAAA;oCAAA;sCAAA;oBAAuD;gBAC/D;gBAEA,IAAIiJ,EAAAA,gBAAAA,OAAOvP,KAAK,qBAAZuP,cAAcvR,IAAI,MAAKqS,8BAAe,CAACnS,QAAQ,EAAE;wBAELqR;oBAD9C,MAAM,qBAEL,CAFK,IAAIjJ,MACR,CAAC,yCAAyC,GAAEiJ,iBAAAA,OAAOvP,KAAK,qBAAZuP,eAAcvR,IAAI,EAAE,GAD5D,qBAAA;+BAAA;oCAAA;sCAAA;oBAEN;gBACF;gBAEA,6CAA6C;gBAC7C,MAAMuR,OAAOvP,KAAK,CAACsQ,IAAI,CAAC2G,MAAM,CAACJ,YAAYK,QAAQ;YACrD,GACCC,KAAK,CAAC,CAAC7H;gBACN,iEAAiE;gBACjE,0DAA0D;gBAC1DuH,YAAYK,QAAQ,CAACE,KAAK,CAAC9H,KAAK6H,KAAK,CAAC,CAACE;oBACrClM,QAAQ8D,KAAK,CAAC,8BAA8BoI;gBAC9C;YACF;YAEF,OAAO7C,IAAAA,6BAAgB,EAAC;gBACtB/T;gBACAC;gBACA+T,eAAe1R,WAAW0R,aAAa;gBACvCC,iBAAiB3R,WAAW2R,eAAe;gBAC3CnF,QAAQ9I;gBACR,uEAAuE;gBACvE,wEAAwE;gBACxE,qCAAqC;gBACrCgJ,cAAc;oBAAEK,YAAY;oBAAG4C,QAAQ5K;gBAAU;YACnD;QACF;QAEA,oDAAoD;QACpD,yDAAyD;QACzD,IAAI6B,yBAAyBF,YAAY;YACvC,MAAMwI,eAAexI;QACvB,OAAO;YACLW,aAAab,OAAOG,kBAAkB;YACtC,OAAO,MAAMH,OAAO+N,qBAAqB,CACvC7W,IAAIwD,OAAO,EACX,IACEsF,OAAOgO,KAAK,CACVtM,yBAAc,CAACC,aAAa,EAC5B;oBACEsM,UAAU,GAAGhR,OAAO,CAAC,EAAEjF,SAAS;oBAChCvD,MAAMyZ,gBAAQ,CAACC,MAAM;oBACrBC,YAAY;wBACV,eAAenR;wBACf,eAAe/F,IAAIuU,GAAG;oBACxB;gBACF,GACA/C,iBAEJnK,WACA,CAAC6B;QAEL;IACF,EAAE,OAAO2F,KAAK;QACZ,IAAI,CAAEA,CAAAA,eAAesC,wCAAe,AAAD,GAAI;YACrC,MAAMxC,aAAa;YACnB,MAAM3R,YAAY4R,cAAc,CAC9B5O,KACA6O,KACA;gBACEkE,YAAY;gBACZC,WAAWlS;gBACXmS,WAAW;gBACXC,kBAAkBC,IAAAA,0BAAmB,EAAC;oBACpC5F,oBAAoB1F;oBACpBhF;gBACF;YACF,GACA8L,YACAtM;QAEJ;QAEA,mDAAmD;QACnD,MAAMwM;IACR;AACF;AAEA,6EAA6E;AAC7E;;;;CAIC,GACD,SAAS6G;IACP,OAAO,IAAIE,eAAe;QACxBC,OAAMC,UAAU;YACdA,WAAWC,OAAO,CAChB,IAAIoB,cAAcC,MAAM,CAAC;YAE3BtB,WAAWK,KAAK;QAClB;IACF;AACF","ignoreList":[0]}