viba-cli 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -1
- package/.next/app-path-routes-manifest.json +3 -0
- package/.next/build-manifest.json +5 -5
- package/.next/fallback-build-manifest.json +2 -2
- package/.next/prerender-manifest.json +3 -3
- package/.next/required-server-files.js +11 -1
- package/.next/required-server-files.json +11 -1
- package/.next/routes-manifest.json +18 -0
- package/.next/server/app/_global-error/page/build-manifest.json +3 -3
- package/.next/server/app/_global-error/page.js +2 -2
- package/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_global-error.html +2 -2
- package/.next/server/app/_global-error.rsc +7 -7
- package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/_global-error.segments/_full.segment.rsc +7 -7
- package/.next/server/app/_global-error.segments/_head.segment.rsc +3 -3
- package/.next/server/app/_global-error.segments/_index.segment.rsc +3 -3
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page/build-manifest.json +3 -3
- package/.next/server/app/_not-found/page.js +1 -1
- package/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +9 -9
- package/.next/server/app/_not-found.segments/_full.segment.rsc +9 -9
- package/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
- package/.next/server/app/_not-found.segments/_index.segment.rsc +4 -4
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/api/component-source/resolve/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/component-source/resolve/route/build-manifest.json +11 -0
- package/.next/server/app/api/component-source/resolve/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/component-source/resolve/route.js +7 -0
- package/.next/server/app/api/component-source/resolve/route.js.map +5 -0
- package/.next/server/app/api/component-source/resolve/route.js.nft.json +1 -0
- package/.next/server/app/api/component-source/resolve/route_client-reference-manifest.js +2 -0
- package/.next/server/app/api/file-thumbnail/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/file-thumbnail/route/build-manifest.json +11 -0
- package/.next/server/app/api/file-thumbnail/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/file-thumbnail/route.js +6 -0
- package/.next/server/app/api/file-thumbnail/route.js.map +5 -0
- package/.next/server/app/api/file-thumbnail/route.js.nft.json +1 -0
- package/.next/server/app/api/file-thumbnail/route_client-reference-manifest.js +2 -0
- package/.next/server/app/api/preview-proxy/start/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/preview-proxy/start/route/build-manifest.json +11 -0
- package/.next/server/app/api/preview-proxy/start/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/preview-proxy/start/route.js +8 -0
- package/.next/server/app/api/preview-proxy/start/route.js.map +5 -0
- package/.next/server/app/api/preview-proxy/start/route.js.nft.json +1 -0
- package/.next/server/app/api/preview-proxy/start/route_client-reference-manifest.js +2 -0
- package/.next/server/app/icon.png/route.js +3 -1
- package/.next/server/app/icon.png/route.js.nft.json +1 -1
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +10 -10
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/index.segments/_full.segment.rsc +10 -10
- package/.next/server/app/index.segments/_head.segment.rsc +4 -4
- package/.next/server/app/index.segments/_index.segment.rsc +4 -4
- package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/new/page/build-manifest.json +3 -3
- package/.next/server/app/new/page/server-reference-manifest.json +80 -20
- package/.next/server/app/new/page.js +3 -3
- package/.next/server/app/new/page.js.nft.json +1 -1
- package/.next/server/app/new/page_client-reference-manifest.js +1 -1
- package/.next/server/app/page/build-manifest.json +3 -3
- package/.next/server/app/page/server-reference-manifest.json +80 -20
- package/.next/server/app/page.js +3 -3
- package/.next/server/app/page.js.nft.json +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/session/[sessionId]/page/build-manifest.json +3 -3
- package/.next/server/app/session/[sessionId]/page/server-reference-manifest.json +33 -18
- package/.next/server/app/session/[sessionId]/page.js +3 -3
- package/.next/server/app/session/[sessionId]/page.js.nft.json +1 -1
- package/.next/server/app/session/[sessionId]/page_client-reference-manifest.js +1 -1
- package/.next/server/app-paths-manifest.json +3 -0
- package/.next/server/chunks/[externals]__be7652c1._.js +3 -0
- package/.next/server/chunks/[externals]__be7652c1._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__2c2fecb1._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__2c2fecb1._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__8f5ebbc3._.js +7 -0
- package/.next/server/chunks/[root-of-the-server]__8f5ebbc3._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__c6a126af._.js +455 -0
- package/.next/server/chunks/[root-of-the-server]__c6a126af._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__ed7be8e0._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__ed7be8e0._.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_component-source_resolve_route_actions_abcbcdd4.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_component-source_resolve_route_actions_abcbcdd4.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_file-thumbnail_route_actions_11144642.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_file-thumbnail_route_actions_11144642.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_preview-proxy_start_route_actions_b18728bd.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_preview-proxy_start_route_actions_b18728bd.js.map +1 -0
- package/.next/server/chunks/node_modules_next_1402a1da._.js +17 -0
- package/.next/server/chunks/node_modules_next_1402a1da._.js.map +1 -0
- package/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_97dac613.js +3 -0
- package/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_97dac613.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__086c4362._.js +3 -0
- package/.next/server/chunks/ssr/{[root-of-the-server]__62036393._.js.map → [root-of-the-server]__086c4362._.js.map} +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0f584432._.js +3 -0
- package/.next/server/chunks/ssr/{[root-of-the-server]__a5d13d54._.js.map → [root-of-the-server]__0f584432._.js.map} +1 -1
- package/.next/server/chunks/ssr/{[root-of-the-server]__f91abafd._.js → [root-of-the-server]__28c55180._.js} +2 -2
- package/.next/server/chunks/ssr/[root-of-the-server]__28c55180._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__30652385._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__30652385._.js.map +1 -1
- package/.next/server/chunks/ssr/{[root-of-the-server]__0092b3d0._.js → [root-of-the-server]__4604db7a._.js} +2 -2
- package/.next/server/chunks/ssr/{[root-of-the-server]__0092b3d0._.js.map → [root-of-the-server]__4604db7a._.js.map} +1 -1
- package/.next/server/chunks/ssr/{[root-of-the-server]__d7127f3c._.js → [root-of-the-server]__683e716d._.js} +2 -2
- package/.next/server/chunks/ssr/{[root-of-the-server]__d7127f3c._.js.map → [root-of-the-server]__683e716d._.js.map} +1 -1
- package/.next/server/chunks/ssr/{[root-of-the-server]__606ef757._.js → [root-of-the-server]__90a96f44._.js} +2 -2
- package/.next/server/chunks/ssr/{[root-of-the-server]__606ef757._.js.map → [root-of-the-server]__90a96f44._.js.map} +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__b3442ae4._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__b3442ae4._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__ca05f4a0._.js +4 -0
- package/.next/server/chunks/ssr/{[root-of-the-server]__cb11b5eb._.js.map → [root-of-the-server]__ca05f4a0._.js.map} +1 -1
- package/.next/server/chunks/ssr/{[root-of-the-server]__0d3b7eea._.js → [root-of-the-server]__ca21770d._.js} +2 -2
- package/.next/server/chunks/ssr/{[root-of-the-server]__0d3b7eea._.js.map → [root-of-the-server]__ca21770d._.js.map} +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__ebe25063._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__ebe25063._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__ef9ee460._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__ef9ee460._.js.map +1 -0
- package/.next/server/chunks/ssr/{[root-of-the-server]__78288fbe._.js → [root-of-the-server]__f0ddf9f3._.js} +3 -3
- package/.next/server/chunks/ssr/{[root-of-the-server]__78288fbe._.js.map → [root-of-the-server]__f0ddf9f3._.js.map} +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__f56dd853._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__f56dd853._.js.map +1 -0
- package/.next/server/chunks/ssr/_2cdf6b9e._.js +8 -0
- package/.next/server/chunks/ssr/_2cdf6b9e._.js.map +1 -0
- package/.next/server/chunks/ssr/_3bf0a72b._.js +1 -1
- package/.next/server/chunks/ssr/_dafa4a9c._.js +8 -0
- package/.next/server/chunks/ssr/_dafa4a9c._.js.map +1 -0
- package/.next/server/chunks/ssr/_eeb65f56._.js +1 -1
- package/.next/server/chunks/ssr/{_428d8baf._.js → _f8ae2a09._.js} +5 -3
- package/.next/server/chunks/ssr/_f8ae2a09._.js.map +1 -0
- package/.next/server/chunks/ssr/_ff04b309._.js +1 -1
- package/.next/server/chunks/ssr/node_modules_next_dist_08570d7f._.js +1 -1
- package/.next/server/chunks/ssr/node_modules_next_dist_174ae28d._.js +1 -1
- package/.next/server/chunks/ssr/node_modules_next_dist_65e60196._.js +1 -1
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_02f39477.js +1 -1
- package/.next/server/chunks/ssr/node_modules_next_dist_f9713a08._.js +1 -1
- package/.next/server/chunks/ssr/src_app_session_[sessionId]_SessionPageClient_tsx_dab490d7._.js +2 -4
- package/.next/server/chunks/ssr/src_app_session_[sessionId]_SessionPageClient_tsx_dab490d7._.js.map +1 -1
- package/.next/server/chunks/ssr/src_components_GitRepoSelector_tsx_05c81afa._.js +7 -0
- package/.next/server/chunks/ssr/src_components_GitRepoSelector_tsx_05c81afa._.js.map +1 -0
- package/.next/server/functions-config-manifest.json +4 -1
- package/.next/server/middleware-build-manifest.js +3 -3
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +2 -2
- package/.next/server/server-reference-manifest.js +1 -1
- package/.next/server/server-reference-manifest.json +149 -38
- package/.next/static/chunks/{8906ac8ef3ff98d4.js → 0b5678df432c3623.js} +2 -2
- package/.next/static/chunks/1ac51bb9ac9eff48.js +3 -0
- package/.next/static/chunks/2491bfaec6f54471.js +3 -0
- package/.next/static/chunks/{d2be314c3ece3fbe.js → 3fb340759d3f1fa9.js} +1 -1
- package/.next/static/chunks/4e37b43c0795ed93.js +3 -0
- package/.next/static/chunks/7693d21aec9580db.js +3 -0
- package/.next/static/chunks/a181f499518bdc62.js +5 -0
- package/.next/static/chunks/b77fa77a013ad38a.js +1 -0
- package/.next/static/chunks/f332ccf8484fbdbe.css +3 -0
- package/.next/static/chunks/{turbopack-ad7617b01177e90b.js → turbopack-21e709cd17627354.js} +2 -2
- package/README.md +19 -17
- package/bin/viba.mjs +162 -1
- package/next.config.mjs +11 -0
- package/package.json +4 -3
- package/public/github.png +0 -0
- package/.next/server/chunks/[root-of-the-server]__c8bd587a._.js +0 -21
- package/.next/server/chunks/[root-of-the-server]__c8bd587a._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__2c2d9a9f._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__2c2d9a9f._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__4fb17f1e._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__4fb17f1e._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__62036393._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__91c2c151._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__91c2c151._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__a5d13d54._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__cb11b5eb._.js +0 -4
- package/.next/server/chunks/ssr/[root-of-the-server]__e138fbba._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__e138fbba._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__f91abafd._.js.map +0 -1
- package/.next/server/chunks/ssr/_428d8baf._.js.map +0 -1
- package/.next/server/chunks/ssr/_62292aba._.js +0 -9
- package/.next/server/chunks/ssr/_62292aba._.js.map +0 -1
- package/.next/server/chunks/ssr/_aa5732fe._.js +0 -6
- package/.next/server/chunks/ssr/_aa5732fe._.js.map +0 -1
- package/.next/static/chunks/12bdbae627ffd6a9.js +0 -1
- package/.next/static/chunks/27ca02b59173029b.css +0 -3
- package/.next/static/chunks/2821166934dd45eb.js +0 -1
- package/.next/static/chunks/6940d9a9bfdc4cce.js +0 -7
- package/.next/static/chunks/be321f8738ab63b8.js +0 -5
- package/.next/static/chunks/c7d6c67cca916a66.js +0 -1
- package/.next/static/chunks/efc46d6b5b55597f.js +0 -1
- /package/.next/static/{qKz4bayHWnbP-QHBKWJxn → i8pj1JaVVhAn3mA-_1TQb}/_buildManifest.js +0 -0
- /package/.next/static/{qKz4bayHWnbP-QHBKWJxn → i8pj1JaVVhAn3mA-_1TQb}/_clientMiddlewareManifest.json +0 -0
- /package/.next/static/{qKz4bayHWnbP-QHBKWJxn → i8pj1JaVVhAn3mA-_1TQb}/_ssgManifest.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../node_modules/%40swc/helpers/cjs/_interop_require_default.cjs","../../../../node_modules/next/src/shared/lib/utils/warn-once.ts","../../../../node_modules/next/src/shared/lib/deployment-id.ts","../../../../node_modules/next/src/shared/lib/image-blur-svg.ts","../../../../node_modules/next/src/shared/lib/image-config.ts","../../../../node_modules/next/src/shared/lib/get-img-props.ts","../../../../node_modules/%40swc/helpers/cjs/_interop_require_wildcard.cjs","../../../../node_modules/next/src/shared/lib/side-effect.tsx","../../../../node_modules/next/src/server/route-modules/app-page/vendored/contexts/head-manager-context.ts","../../../../node_modules/next/src/shared/lib/head.tsx","../../../../node_modules/next/src/server/route-modules/app-page/vendored/contexts/image-config-context.ts","../../../../node_modules/next/src/server/route-modules/app-page/vendored/contexts/router-context.ts","../../../../node_modules/next/src/shared/lib/find-closest-quality.ts","../../../../node_modules/next/src/shared/lib/image-loader.ts","../../../../node_modules/next/src/client/use-merged-ref.ts","../../../../node_modules/next/src/client/image-component.tsx","../../../../node_modules/next/src/shared/lib/image-external.tsx","../../../../node_modules/next/image.js","../../../../node_modules/shared/src/utils/hasA11yProp.ts","../../../../node_modules/shared/src/utils/toKebabCase.ts","../../../../node_modules/lucide-react/src/defaultAttributes.ts","../../../../node_modules/shared/src/utils/toCamelCase.ts","../../../../node_modules/shared/src/utils/mergeClasses.ts","../../../../node_modules/shared/src/utils/toPascalCase.ts","../../../../node_modules/lucide-react/src/Icon.ts","../../../../node_modules/lucide-react/src/createLucideIcon.ts","../../../../node_modules/lucide-react/src/icons/plus.ts","../../../../node_modules/lucide-react/src/icons/trash-2.ts","../../../../node_modules/next/src/client/components/router-reducer/router-reducer-types.ts","../../../../node_modules/next/src/shared/lib/is-thenable.ts","../../../../node_modules/next/src/client/components/use-action-queue.ts","../../../../node_modules/next/src/client/app-call-server.ts","../../../../node_modules/next/src/client/app-find-source-map-url.ts","../../../../node_modules/next/src/build/webpack/loaders/next-flight-loader/action-client-wrapper.ts","../../../../src/app/actions/data%3A78efd0%20%3Ctext/javascript%3E","../../../../node_modules/lucide-react/src/icons/folder.ts","../../../../node_modules/lucide-react/src/icons/arrow-left.ts","../../../../src/lib/path.ts","../../../../src/app/actions/data%3Aabd30a%20%3Ctext/javascript%3E","../../../../src/app/actions/data%3Af5d1ab%20%3Ctext/javascript%3E","../../../../src/app/actions/data%3A265d17%20%3Ctext/javascript%3E","../../../../src/app/actions/data%3Ad53da0%20%3Ctext/javascript%3E","../../../../node_modules/next/src/shared/lib/segment.ts","../../../../node_modules/next/src/client/components/unrecognized-action-error.ts","../../../../node_modules/next/src/client/components/readonly-url-search-params.ts","../../../../node_modules/next/src/client/components/redirect-status-code.ts","../../../../node_modules/next/src/client/components/redirect-error.ts","../../../../node_modules/next/src/client/components/redirect.ts","../../../../node_modules/next/src/client/components/http-access-fallback/http-access-fallback.ts","../../../../node_modules/next/src/client/components/not-found.ts","../../../../node_modules/next/src/client/components/forbidden.ts","../../../../node_modules/next/src/client/components/unauthorized.ts","../../../../node_modules/next/src/server/dynamic-rendering-utils.ts","../../../../node_modules/next/src/server/lib/router-utils/is-postpone.ts","../../../../node_modules/next/src/shared/lib/lazy-dynamic/bailout-to-csr.ts","../../../../node_modules/next/src/client/components/is-next-router-error.ts","../../../../node_modules/next/src/client/components/hooks-server-context.ts","../../../../node_modules/next/src/client/components/static-generation-bailout.ts","../../../../node_modules/next/src/lib/framework/boundary-constants.tsx","../../../../node_modules/next/src/lib/scheduler.ts","../../../../node_modules/next/src/shared/lib/invariant-error.ts","../../../../node_modules/next/src/server/app-render/dynamic-rendering.ts","../../../../node_modules/next/src/client/components/unstable-rethrow.server.ts","../../../../node_modules/next/src/client/components/unstable-rethrow.ts","../../../../node_modules/next/src/client/components/navigation.react-server.ts","../../../../node_modules/next/src/client/components/navigation.ts","../../../../node_modules/next/navigation.js","../../../../node_modules/lucide-react/src/icons/play.ts"],"sourcesContent":["\"use strict\";\n\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nexports._ = _interop_require_default;\n","let warnOnce = (_: string) => {}\nif (process.env.NODE_ENV !== 'production') {\n const warnings = new Set<string>()\n warnOnce = (msg: string) => {\n if (!warnings.has(msg)) {\n console.warn(msg)\n }\n warnings.add(msg)\n }\n}\n\nexport { warnOnce }\n","// This could also be a variable instead of a function, but some unit tests want to change the ID at\n// runtime. Even though that would never happen in a real deployment.\nexport function getDeploymentId(): string | undefined {\n return process.env.NEXT_DEPLOYMENT_ID\n}\n\nexport function getDeploymentIdQueryOrEmptyString(): string {\n let deploymentId = getDeploymentId()\n if (deploymentId) {\n return `?dpl=${deploymentId}`\n }\n return ''\n}\n","/**\n * A shared function, used on both client and server, to generate a SVG blur placeholder.\n */\nexport function getImageBlurSvg({\n widthInt,\n heightInt,\n blurWidth,\n blurHeight,\n blurDataURL,\n objectFit,\n}: {\n widthInt?: number\n heightInt?: number\n blurWidth?: number\n blurHeight?: number\n blurDataURL: string\n objectFit?: string\n}): string {\n const std = 20\n const svgWidth = blurWidth ? blurWidth * 40 : widthInt\n const svgHeight = blurHeight ? blurHeight * 40 : heightInt\n\n const viewBox =\n svgWidth && svgHeight ? `viewBox='0 0 ${svgWidth} ${svgHeight}'` : ''\n const preserveAspectRatio = viewBox\n ? 'none'\n : objectFit === 'contain'\n ? 'xMidYMid'\n : objectFit === 'cover'\n ? 'xMidYMid slice'\n : 'none'\n\n return `%3Csvg xmlns='http://www.w3.org/2000/svg' ${viewBox}%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='${std}'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='${std}'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='${preserveAspectRatio}' style='filter: url(%23b);' href='${blurDataURL}'/%3E%3C/svg%3E`\n}\n","export const VALID_LOADERS = [\n 'default',\n 'imgix',\n 'cloudinary',\n 'akamai',\n 'custom',\n] as const\n\nexport type LoaderValue = (typeof VALID_LOADERS)[number]\n\nexport type ImageLoaderProps = {\n src: string\n width: number\n quality?: number\n}\n\nexport type ImageLoaderPropsWithConfig = ImageLoaderProps & {\n config: Readonly<ImageConfig>\n}\n\nexport type LocalPattern = {\n /**\n * Can be literal or wildcard.\n * Single `*` matches a single path segment.\n * Double `**` matches any number of path segments.\n */\n pathname?: string\n\n /**\n * Can be literal query string such as `?v=1` or\n * empty string meaning no query string.\n */\n search?: string\n}\n\nexport type RemotePattern = {\n /**\n * Must be `http` or `https`.\n */\n protocol?: 'http' | 'https'\n\n /**\n * Can be literal or wildcard.\n * Single `*` matches a single subdomain.\n * Double `**` matches any number of subdomains.\n */\n hostname: string\n\n /**\n * Can be literal port such as `8080` or empty string\n * meaning no port.\n */\n port?: string\n\n /**\n * Can be literal or wildcard.\n * Single `*` matches a single path segment.\n * Double `**` matches any number of path segments.\n */\n pathname?: string\n\n /**\n * Can be literal query string such as `?v=1` or\n * empty string meaning no query string.\n */\n search?: string\n}\n\ntype ImageFormat = 'image/avif' | 'image/webp'\n\n/**\n * Image configurations\n *\n * @see [Image configuration options](https://nextjs.org/docs/api-reference/next/image#configuration-options)\n */\nexport type ImageConfigComplete = {\n /** @see [Device sizes documentation](https://nextjs.org/docs/api-reference/next/image#device-sizes) */\n deviceSizes: number[]\n\n /** @see [Image sizing documentation](https://nextjs.org/docs/app/building-your-application/optimizing/images#image-sizing) */\n imageSizes: number[]\n\n /** @see [Image loaders configuration](https://nextjs.org/docs/api-reference/next/legacy/image#loader) */\n loader: LoaderValue\n\n /** @see [Image loader configuration](https://nextjs.org/docs/app/api-reference/components/image#path) */\n path: string\n\n /** @see [Image loader configuration](https://nextjs.org/docs/api-reference/next/image#loader-configuration) */\n loaderFile: string\n\n /**\n * @deprecated Use `remotePatterns` instead.\n */\n domains: string[]\n\n /** @see [Disable static image import configuration](https://nextjs.org/docs/api-reference/next/image#disable-static-imports) */\n disableStaticImages: boolean\n\n /** @see [Cache behavior](https://nextjs.org/docs/api-reference/next/image#caching-behavior) */\n minimumCacheTTL: number\n\n /** @see [Acceptable formats](https://nextjs.org/docs/api-reference/next/image#acceptable-formats) */\n formats: ImageFormat[]\n\n /** @see [Maximum Redirects](https://nextjs.org/docs/api-reference/next/image#maximumredirects) */\n maximumRedirects: number\n\n /** @see [Maximum Response Body](https://nextjs.org/docs/api-reference/next/image#maximumresponsebody) */\n maximumResponseBody: number\n\n /** @see [Dangerously Allow Local IP](https://nextjs.org/docs/api-reference/next/image#dangerously-allow-local-ip) */\n dangerouslyAllowLocalIP: boolean\n\n /** @see [Dangerously Allow SVG](https://nextjs.org/docs/api-reference/next/image#dangerously-allow-svg) */\n dangerouslyAllowSVG: boolean\n\n /** @see [Content Security Policy](https://nextjs.org/docs/api-reference/next/image#contentsecuritypolicy) */\n contentSecurityPolicy: string\n\n /** @see [Content Disposition Type](https://nextjs.org/docs/api-reference/next/image#contentdispositiontype) */\n contentDispositionType: 'inline' | 'attachment'\n\n /** @see [Remote Patterns](https://nextjs.org/docs/api-reference/next/image#remotepatterns) */\n remotePatterns: Array<URL | RemotePattern>\n\n /** @see [Local Patterns](https://nextjs.org/docs/api-reference/next/image#localPatterns) */\n localPatterns: LocalPattern[] | undefined\n\n /** @see [Qualities](https://nextjs.org/docs/api-reference/next/image#qualities) */\n qualities: number[] | undefined\n\n /** @see [Unoptimized](https://nextjs.org/docs/api-reference/next/image#unoptimized) */\n unoptimized: boolean\n}\n\nexport type ImageConfig = Partial<ImageConfigComplete>\n\nexport const imageConfigDefault: ImageConfigComplete = {\n deviceSizes: [640, 750, 828, 1080, 1200, 1920, 2048, 3840],\n imageSizes: [32, 48, 64, 96, 128, 256, 384],\n path: '/_next/image',\n loader: 'default',\n loaderFile: '',\n /**\n * @deprecated Use `remotePatterns` instead to protect your application from malicious users.\n */\n domains: [],\n disableStaticImages: false,\n minimumCacheTTL: 14400, // 4 hours\n formats: ['image/webp'],\n maximumRedirects: 3,\n maximumResponseBody: 50_000_000, // 50 MB\n dangerouslyAllowLocalIP: false,\n dangerouslyAllowSVG: false,\n contentSecurityPolicy: `script-src 'none'; frame-src 'none'; sandbox;`,\n contentDispositionType: 'attachment',\n localPatterns: undefined, // default: allow all local images\n remotePatterns: [], // default: allow no remote images\n qualities: [75],\n unoptimized: false,\n}\n","import { warnOnce } from './utils/warn-once'\nimport { getDeploymentId } from './deployment-id'\nimport { getImageBlurSvg } from './image-blur-svg'\nimport { imageConfigDefault } from './image-config'\nimport type {\n ImageConfigComplete,\n ImageLoaderProps,\n ImageLoaderPropsWithConfig,\n} from './image-config'\n\nimport type { CSSProperties, JSX } from 'react'\n\nexport interface StaticImageData {\n src: string\n height: number\n width: number\n blurDataURL?: string\n blurWidth?: number\n blurHeight?: number\n}\n\nexport interface StaticRequire {\n default: StaticImageData\n}\n\nexport type StaticImport = StaticRequire | StaticImageData\n\nexport type ImageProps = Omit<\n JSX.IntrinsicElements['img'],\n 'src' | 'srcSet' | 'ref' | 'alt' | 'width' | 'height' | 'loading'\n> & {\n src: string | StaticImport\n alt: string\n width?: number | `${number}`\n height?: number | `${number}`\n fill?: boolean\n loader?: ImageLoader\n quality?: number | `${number}`\n preload?: boolean\n /**\n * @deprecated Use `preload` prop instead.\n * See https://nextjs.org/docs/app/api-reference/components/image#preload\n */\n priority?: boolean\n loading?: LoadingValue\n placeholder?: PlaceholderValue\n blurDataURL?: string\n unoptimized?: boolean\n overrideSrc?: string\n /**\n * @deprecated Use `onLoad` instead.\n * @see https://nextjs.org/docs/app/api-reference/components/image#onload\n */\n onLoadingComplete?: OnLoadingComplete\n /**\n * @deprecated Use `fill` prop instead of `layout=\"fill\"` or change import to `next/legacy/image`.\n * @see https://nextjs.org/docs/api-reference/next/legacy/image\n */\n layout?: string\n /**\n * @deprecated Use `style` prop instead.\n */\n objectFit?: string\n /**\n * @deprecated Use `style` prop instead.\n */\n objectPosition?: string\n /**\n * @deprecated This prop does not do anything.\n */\n lazyBoundary?: string\n /**\n * @deprecated This prop does not do anything.\n */\n lazyRoot?: string\n}\n\nexport type ImgProps = Omit<ImageProps, 'src' | 'loader'> & {\n loading: LoadingValue\n width: number | undefined\n height: number | undefined\n style: NonNullable<JSX.IntrinsicElements['img']['style']>\n sizes: string | undefined\n srcSet: string | undefined\n src: string\n}\n\nconst VALID_LOADING_VALUES = ['lazy', 'eager', undefined] as const\n\n// Object-fit values that are not valid background-size values\nconst INVALID_BACKGROUND_SIZE_VALUES = [\n '-moz-initial',\n 'fill',\n 'none',\n 'scale-down',\n undefined,\n]\ntype LoadingValue = (typeof VALID_LOADING_VALUES)[number]\ntype ImageConfig = ImageConfigComplete & {\n allSizes: number[]\n output?: 'standalone' | 'export'\n}\n\nexport type ImageLoader = (p: ImageLoaderProps) => string\n\n// Do not export - this is an internal type only\n// because `next.config.js` is only meant for the\n// built-in loaders, not for a custom loader() prop.\ntype ImageLoaderWithConfig = (p: ImageLoaderPropsWithConfig) => string\n\nexport type PlaceholderValue = 'blur' | 'empty' | `data:image/${string}`\nexport type OnLoad = React.ReactEventHandler<HTMLImageElement> | undefined\nexport type OnLoadingComplete = (img: HTMLImageElement) => void\n\nexport type PlaceholderStyle = Partial<\n Pick<\n CSSProperties,\n | 'backgroundSize'\n | 'backgroundPosition'\n | 'backgroundRepeat'\n | 'backgroundImage'\n >\n>\n\nfunction isStaticRequire(\n src: StaticRequire | StaticImageData\n): src is StaticRequire {\n return (src as StaticRequire).default !== undefined\n}\n\nfunction isStaticImageData(\n src: StaticRequire | StaticImageData\n): src is StaticImageData {\n return (src as StaticImageData).src !== undefined\n}\n\nfunction isStaticImport(src: string | StaticImport): src is StaticImport {\n return (\n !!src &&\n typeof src === 'object' &&\n (isStaticRequire(src as StaticImport) ||\n isStaticImageData(src as StaticImport))\n )\n}\n\nconst allImgs = new Map<\n string,\n { src: string; loading: LoadingValue; placeholder: PlaceholderValue }\n>()\nlet perfObserver: PerformanceObserver | undefined\n\nfunction getInt(x: unknown): number | undefined {\n if (typeof x === 'undefined') {\n return x\n }\n if (typeof x === 'number') {\n return Number.isFinite(x) ? x : NaN\n }\n if (typeof x === 'string' && /^[0-9]+$/.test(x)) {\n return parseInt(x, 10)\n }\n return NaN\n}\n\nfunction getWidths(\n { deviceSizes, allSizes }: ImageConfig,\n width: number | undefined,\n sizes: string | undefined\n): { widths: number[]; kind: 'w' | 'x' } {\n if (sizes) {\n // Find all the \"vw\" percent sizes used in the sizes prop\n const viewportWidthRe = /(^|\\s)(1?\\d?\\d)vw/g\n const percentSizes = []\n for (let match; (match = viewportWidthRe.exec(sizes)); match) {\n percentSizes.push(parseInt(match[2]))\n }\n if (percentSizes.length) {\n const smallestRatio = Math.min(...percentSizes) * 0.01\n return {\n widths: allSizes.filter((s) => s >= deviceSizes[0] * smallestRatio),\n kind: 'w',\n }\n }\n return { widths: allSizes, kind: 'w' }\n }\n if (typeof width !== 'number') {\n return { widths: deviceSizes, kind: 'w' }\n }\n\n const widths = [\n ...new Set(\n // > This means that most OLED screens that say they are 3x resolution,\n // > are actually 3x in the green color, but only 1.5x in the red and\n // > blue colors. Showing a 3x resolution image in the app vs a 2x\n // > resolution image will be visually the same, though the 3x image\n // > takes significantly more data. Even true 3x resolution screens are\n // > wasteful as the human eye cannot see that level of detail without\n // > something like a magnifying glass.\n // https://blog.twitter.com/engineering/en_us/topics/infrastructure/2019/capping-image-fidelity-on-ultra-high-resolution-devices.html\n [width, width * 2 /*, width * 3*/].map(\n (w) => allSizes.find((p) => p >= w) || allSizes[allSizes.length - 1]\n )\n ),\n ]\n return { widths, kind: 'x' }\n}\n\ntype GenImgAttrsData = {\n config: ImageConfig\n src: string\n unoptimized: boolean\n loader: ImageLoaderWithConfig\n width?: number\n quality?: number\n sizes?: string\n}\n\ntype GenImgAttrsResult = {\n src: string\n srcSet: string | undefined\n sizes: string | undefined\n}\n\nfunction generateImgAttrs({\n config,\n src,\n unoptimized,\n width,\n quality,\n sizes,\n loader,\n}: GenImgAttrsData): GenImgAttrsResult {\n if (unoptimized) {\n const deploymentId = getDeploymentId()\n if (src.startsWith('/') && !src.startsWith('//') && deploymentId) {\n const sep = src.includes('?') ? '&' : '?'\n src = `${src}${sep}dpl=${deploymentId}`\n }\n return { src, srcSet: undefined, sizes: undefined }\n }\n\n const { widths, kind } = getWidths(config, width, sizes)\n const last = widths.length - 1\n\n return {\n sizes: !sizes && kind === 'w' ? '100vw' : sizes,\n srcSet: widths\n .map(\n (w, i) =>\n `${loader({ config, src, quality, width: w })} ${\n kind === 'w' ? w : i + 1\n }${kind}`\n )\n .join(', '),\n\n // It's intended to keep `src` the last attribute because React updates\n // attributes in order. If we keep `src` the first one, Safari will\n // immediately start to fetch `src`, before `sizes` and `srcSet` are even\n // updated by React. That causes multiple unnecessary requests if `srcSet`\n // and `sizes` are defined.\n // This bug cannot be reproduced in Chrome or Firefox.\n src: loader({ config, src, quality, width: widths[last] }),\n }\n}\n\n/**\n * A shared function, used on both client and server, to generate the props for <img>.\n */\nexport function getImgProps(\n {\n src,\n sizes,\n unoptimized = false,\n priority = false,\n preload = false,\n loading,\n className,\n quality,\n width,\n height,\n fill = false,\n style,\n overrideSrc,\n onLoad,\n onLoadingComplete,\n placeholder = 'empty',\n blurDataURL,\n fetchPriority,\n decoding = 'async',\n layout,\n objectFit,\n objectPosition,\n lazyBoundary,\n lazyRoot,\n ...rest\n }: ImageProps,\n _state: {\n defaultLoader: ImageLoaderWithConfig\n imgConf: ImageConfigComplete\n showAltText?: boolean\n blurComplete?: boolean\n }\n): {\n props: ImgProps\n meta: {\n unoptimized: boolean\n preload: boolean\n placeholder: NonNullable<ImageProps['placeholder']>\n fill: boolean\n }\n} {\n const { imgConf, showAltText, blurComplete, defaultLoader } = _state\n let config: ImageConfig\n let c = imgConf || imageConfigDefault\n if ('allSizes' in c) {\n config = c as ImageConfig\n } else {\n const allSizes = [...c.deviceSizes, ...c.imageSizes].sort((a, b) => a - b)\n const deviceSizes = c.deviceSizes.sort((a, b) => a - b)\n const qualities = c.qualities?.sort((a, b) => a - b)\n config = { ...c, allSizes, deviceSizes, qualities }\n }\n\n if (typeof defaultLoader === 'undefined') {\n throw new Error(\n 'images.loaderFile detected but the file is missing default export.\\nRead more: https://nextjs.org/docs/messages/invalid-images-config'\n )\n }\n let loader: ImageLoaderWithConfig = rest.loader || defaultLoader\n\n // Remove property so it's not spread on <img> element\n delete rest.loader\n delete (rest as any).srcSet\n\n // This special value indicates that the user\n // didn't define a \"loader\" prop or \"loader\" config.\n const isDefaultLoader = '__next_img_default' in loader\n\n if (isDefaultLoader) {\n if (config.loader === 'custom') {\n throw new Error(\n `Image with src \"${src}\" is missing \"loader\" prop.` +\n `\\nRead more: https://nextjs.org/docs/messages/next-image-missing-loader`\n )\n }\n } else {\n // The user defined a \"loader\" prop or config.\n // Since the config object is internal only, we\n // must not pass it to the user-defined \"loader\".\n const customImageLoader = loader as ImageLoader\n loader = (obj) => {\n const { config: _, ...opts } = obj\n return customImageLoader(opts)\n }\n }\n\n if (layout) {\n if (layout === 'fill') {\n fill = true\n }\n const layoutToStyle: Record<string, Record<string, string> | undefined> = {\n intrinsic: { maxWidth: '100%', height: 'auto' },\n responsive: { width: '100%', height: 'auto' },\n }\n const layoutToSizes: Record<string, string | undefined> = {\n responsive: '100vw',\n fill: '100vw',\n }\n const layoutStyle = layoutToStyle[layout]\n if (layoutStyle) {\n style = { ...style, ...layoutStyle }\n }\n const layoutSizes = layoutToSizes[layout]\n if (layoutSizes && !sizes) {\n sizes = layoutSizes\n }\n }\n\n let staticSrc = ''\n let widthInt = getInt(width)\n let heightInt = getInt(height)\n let blurWidth: number | undefined\n let blurHeight: number | undefined\n if (isStaticImport(src)) {\n const staticImageData = isStaticRequire(src) ? src.default : src\n\n if (!staticImageData.src) {\n throw new Error(\n `An object should only be passed to the image component src parameter if it comes from a static image import. It must include src. Received ${JSON.stringify(\n staticImageData\n )}`\n )\n }\n if (!staticImageData.height || !staticImageData.width) {\n throw new Error(\n `An object should only be passed to the image component src parameter if it comes from a static image import. It must include height and width. Received ${JSON.stringify(\n staticImageData\n )}`\n )\n }\n\n blurWidth = staticImageData.blurWidth\n blurHeight = staticImageData.blurHeight\n blurDataURL = blurDataURL || staticImageData.blurDataURL\n staticSrc = staticImageData.src\n\n if (!fill) {\n if (!widthInt && !heightInt) {\n widthInt = staticImageData.width\n heightInt = staticImageData.height\n } else if (widthInt && !heightInt) {\n const ratio = widthInt / staticImageData.width\n heightInt = Math.round(staticImageData.height * ratio)\n } else if (!widthInt && heightInt) {\n const ratio = heightInt / staticImageData.height\n widthInt = Math.round(staticImageData.width * ratio)\n }\n }\n }\n src = typeof src === 'string' ? src : staticSrc\n\n let isLazy =\n !priority &&\n !preload &&\n (loading === 'lazy' || typeof loading === 'undefined')\n if (!src || src.startsWith('data:') || src.startsWith('blob:')) {\n // https://developer.mozilla.org/docs/Web/HTTP/Basics_of_HTTP/Data_URIs\n unoptimized = true\n isLazy = false\n }\n if (config.unoptimized) {\n unoptimized = true\n }\n if (\n isDefaultLoader &&\n !config.dangerouslyAllowSVG &&\n src.split('?', 1)[0].endsWith('.svg')\n ) {\n // Special case to make svg serve as-is to avoid proxying\n // through the built-in Image Optimization API.\n unoptimized = true\n }\n\n const qualityInt = getInt(quality)\n\n if (process.env.NODE_ENV !== 'production') {\n if (config.output === 'export' && isDefaultLoader && !unoptimized) {\n throw new Error(\n `Image Optimization using the default loader is not compatible with \\`{ output: 'export' }\\`.\n Possible solutions:\n - Remove \\`{ output: 'export' }\\` and run \"next start\" to run server mode including the Image Optimization API.\n - Configure \\`{ images: { unoptimized: true } }\\` in \\`next.config.js\\` to disable the Image Optimization API.\n Read more: https://nextjs.org/docs/messages/export-image-api`\n )\n }\n if (!src) {\n // React doesn't show the stack trace and there's\n // no `src` to help identify which image, so we\n // instead console.error(ref) during mount.\n unoptimized = true\n } else {\n if (fill) {\n if (width) {\n throw new Error(\n `Image with src \"${src}\" has both \"width\" and \"fill\" properties. Only one should be used.`\n )\n }\n if (height) {\n throw new Error(\n `Image with src \"${src}\" has both \"height\" and \"fill\" properties. Only one should be used.`\n )\n }\n if (style?.position && style.position !== 'absolute') {\n throw new Error(\n `Image with src \"${src}\" has both \"fill\" and \"style.position\" properties. Images with \"fill\" always use position absolute - it cannot be modified.`\n )\n }\n if (style?.width && style.width !== '100%') {\n throw new Error(\n `Image with src \"${src}\" has both \"fill\" and \"style.width\" properties. Images with \"fill\" always use width 100% - it cannot be modified.`\n )\n }\n if (style?.height && style.height !== '100%') {\n throw new Error(\n `Image with src \"${src}\" has both \"fill\" and \"style.height\" properties. Images with \"fill\" always use height 100% - it cannot be modified.`\n )\n }\n } else {\n if (typeof widthInt === 'undefined') {\n throw new Error(\n `Image with src \"${src}\" is missing required \"width\" property.`\n )\n } else if (isNaN(widthInt)) {\n throw new Error(\n `Image with src \"${src}\" has invalid \"width\" property. Expected a numeric value in pixels but received \"${width}\".`\n )\n }\n if (typeof heightInt === 'undefined') {\n throw new Error(\n `Image with src \"${src}\" is missing required \"height\" property.`\n )\n } else if (isNaN(heightInt)) {\n throw new Error(\n `Image with src \"${src}\" has invalid \"height\" property. Expected a numeric value in pixels but received \"${height}\".`\n )\n }\n // eslint-disable-next-line no-control-regex\n if (/^[\\x00-\\x20]/.test(src)) {\n throw new Error(\n `Image with src \"${src}\" cannot start with a space or control character. Use src.trimStart() to remove it or encodeURIComponent(src) to keep it.`\n )\n }\n // eslint-disable-next-line no-control-regex\n if (/[\\x00-\\x20]$/.test(src)) {\n throw new Error(\n `Image with src \"${src}\" cannot end with a space or control character. Use src.trimEnd() to remove it or encodeURIComponent(src) to keep it.`\n )\n }\n }\n }\n if (!VALID_LOADING_VALUES.includes(loading)) {\n throw new Error(\n `Image with src \"${src}\" has invalid \"loading\" property. Provided \"${loading}\" should be one of ${VALID_LOADING_VALUES.map(\n String\n ).join(',')}.`\n )\n }\n if (priority && loading === 'lazy') {\n throw new Error(\n `Image with src \"${src}\" has both \"priority\" and \"loading='lazy'\" properties. Only one should be used.`\n )\n }\n if (preload && loading === 'lazy') {\n throw new Error(\n `Image with src \"${src}\" has both \"preload\" and \"loading='lazy'\" properties. Only one should be used.`\n )\n }\n if (preload && priority) {\n throw new Error(\n `Image with src \"${src}\" has both \"preload\" and \"priority\" properties. Only \"preload\" should be used.`\n )\n }\n if (\n placeholder !== 'empty' &&\n placeholder !== 'blur' &&\n !placeholder.startsWith('data:image/')\n ) {\n throw new Error(\n `Image with src \"${src}\" has invalid \"placeholder\" property \"${placeholder}\".`\n )\n }\n if (placeholder !== 'empty') {\n if (widthInt && heightInt && widthInt * heightInt < 1600) {\n warnOnce(\n `Image with src \"${src}\" is smaller than 40x40. Consider removing the \"placeholder\" property to improve performance.`\n )\n }\n }\n if (\n qualityInt &&\n config.qualities &&\n !config.qualities.includes(qualityInt)\n ) {\n warnOnce(\n `Image with src \"${src}\" is using quality \"${qualityInt}\" which is not configured in images.qualities [${config.qualities.join(', ')}]. Please update your config to [${[...config.qualities, qualityInt].sort().join(', ')}].` +\n `\\nRead more: https://nextjs.org/docs/messages/next-image-unconfigured-qualities`\n )\n }\n if (placeholder === 'blur' && !blurDataURL) {\n const VALID_BLUR_EXT = ['jpeg', 'png', 'webp', 'avif'] // should match next-image-loader\n\n throw new Error(\n `Image with src \"${src}\" has \"placeholder='blur'\" property but is missing the \"blurDataURL\" property.\n Possible solutions:\n - Add a \"blurDataURL\" property, the contents should be a small Data URL to represent the image\n - Change the \"src\" property to a static import with one of the supported file types: ${VALID_BLUR_EXT.join(\n ','\n )} (animated images not supported)\n - Remove the \"placeholder\" property, effectively no blur effect\n Read more: https://nextjs.org/docs/messages/placeholder-blur-data-url`\n )\n }\n if ('ref' in rest) {\n warnOnce(\n `Image with src \"${src}\" is using unsupported \"ref\" property. Consider using the \"onLoad\" property instead.`\n )\n }\n\n if (!unoptimized && !isDefaultLoader) {\n const urlStr = loader({\n config,\n src,\n width: widthInt || 400,\n quality: qualityInt || 75,\n })\n let url: URL | undefined\n try {\n url = new URL(urlStr)\n } catch (err) {}\n if (urlStr === src || (url && url.pathname === src && !url.search)) {\n warnOnce(\n `Image with src \"${src}\" has a \"loader\" property that does not implement width. Please implement it or use the \"unoptimized\" property instead.` +\n `\\nRead more: https://nextjs.org/docs/messages/next-image-missing-loader-width`\n )\n }\n }\n\n if (onLoadingComplete) {\n warnOnce(\n `Image with src \"${src}\" is using deprecated \"onLoadingComplete\" property. Please use the \"onLoad\" property instead.`\n )\n }\n\n for (const [legacyKey, legacyValue] of Object.entries({\n layout,\n objectFit,\n objectPosition,\n lazyBoundary,\n lazyRoot,\n })) {\n if (legacyValue) {\n warnOnce(\n `Image with src \"${src}\" has legacy prop \"${legacyKey}\". Did you forget to run the codemod?` +\n `\\nRead more: https://nextjs.org/docs/messages/next-image-upgrade-to-13`\n )\n }\n }\n\n if (\n typeof window !== 'undefined' &&\n !perfObserver &&\n window.PerformanceObserver\n ) {\n perfObserver = new PerformanceObserver((entryList) => {\n for (const entry of entryList.getEntries()) {\n // @ts-ignore - missing \"LargestContentfulPaint\" class with \"element\" prop\n const imgSrc = entry?.element?.src || ''\n const lcpImage = allImgs.get(imgSrc)\n if (\n lcpImage &&\n lcpImage.loading === 'lazy' &&\n lcpImage.placeholder === 'empty' &&\n !lcpImage.src.startsWith('data:') &&\n !lcpImage.src.startsWith('blob:')\n ) {\n // https://web.dev/lcp/#measure-lcp-in-javascript\n warnOnce(\n `Image with src \"${lcpImage.src}\" was detected as the Largest Contentful Paint (LCP). Please add the \\`loading=\"eager\"\\` property if this image is above the fold.` +\n `\\nRead more: https://nextjs.org/docs/app/api-reference/components/image#loading`\n )\n }\n }\n })\n try {\n perfObserver.observe({\n type: 'largest-contentful-paint',\n buffered: true,\n })\n } catch (err) {\n // Log error but don't crash the app\n console.error(err)\n }\n }\n }\n const imgStyle = Object.assign(\n fill\n ? {\n position: 'absolute',\n height: '100%',\n width: '100%',\n left: 0,\n top: 0,\n right: 0,\n bottom: 0,\n objectFit,\n objectPosition,\n }\n : {},\n showAltText ? {} : { color: 'transparent' },\n style\n )\n\n const backgroundImage =\n !blurComplete && placeholder !== 'empty'\n ? placeholder === 'blur'\n ? `url(\"data:image/svg+xml;charset=utf-8,${getImageBlurSvg({\n widthInt,\n heightInt,\n blurWidth,\n blurHeight,\n blurDataURL: blurDataURL || '', // assume not undefined\n objectFit: imgStyle.objectFit,\n })}\")`\n : `url(\"${placeholder}\")` // assume `data:image/`\n : null\n\n const backgroundSize = !INVALID_BACKGROUND_SIZE_VALUES.includes(\n imgStyle.objectFit\n )\n ? imgStyle.objectFit\n : imgStyle.objectFit === 'fill'\n ? '100% 100%' // the background-size equivalent of `fill`\n : 'cover'\n\n let placeholderStyle: PlaceholderStyle = backgroundImage\n ? {\n backgroundSize,\n backgroundPosition: imgStyle.objectPosition || '50% 50%',\n backgroundRepeat: 'no-repeat',\n backgroundImage,\n }\n : {}\n\n if (process.env.NODE_ENV === 'development') {\n if (\n placeholderStyle.backgroundImage &&\n placeholder === 'blur' &&\n blurDataURL?.startsWith('/')\n ) {\n // During `next dev`, we don't want to generate blur placeholders with webpack\n // because it can delay starting the dev server. Instead, `next-image-loader.js`\n // will inline a special url to lazily generate the blur placeholder at request time.\n placeholderStyle.backgroundImage = `url(\"${blurDataURL}\")`\n }\n }\n\n const imgAttributes = generateImgAttrs({\n config,\n src,\n unoptimized,\n width: widthInt,\n quality: qualityInt,\n sizes,\n loader,\n })\n\n const loadingFinal = isLazy ? 'lazy' : loading\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof window !== 'undefined') {\n let fullUrl: URL\n try {\n fullUrl = new URL(imgAttributes.src)\n } catch (e) {\n fullUrl = new URL(imgAttributes.src, window.location.href)\n }\n allImgs.set(fullUrl.href, { src, loading: loadingFinal, placeholder })\n }\n }\n\n const props: ImgProps = {\n ...rest,\n loading: loadingFinal,\n fetchPriority,\n width: widthInt,\n height: heightInt,\n decoding,\n className,\n style: { ...imgStyle, ...placeholderStyle },\n sizes: imgAttributes.sizes,\n srcSet: imgAttributes.srcSet,\n src: overrideSrc || imgAttributes.src,\n }\n const meta = { unoptimized, preload: preload || priority, placeholder, fill }\n return { props, meta }\n}\n","\"use strict\";\n\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) return obj;\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") return { default: obj };\n\n var cache = _getRequireWildcardCache(nodeInterop);\n\n if (cache && cache.has(obj)) return cache.get(obj);\n\n var newObj = { __proto__: null };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) Object.defineProperty(newObj, key, desc);\n else newObj[key] = obj[key];\n }\n }\n\n newObj.default = obj;\n\n if (cache) cache.set(obj, newObj);\n\n return newObj;\n}\nexports._ = _interop_require_wildcard;\n","import type React from 'react'\nimport { Children, useEffect, useLayoutEffect, type JSX } from 'react'\n\ntype State = JSX.Element[] | undefined\n\nexport type SideEffectProps = {\n reduceComponentsToState: (components: Array<React.ReactElement<any>>) => State\n handleStateChange?: (state: State) => void\n headManager: any\n children: React.ReactNode\n}\n\nconst isServer = typeof window === 'undefined'\nconst useClientOnlyLayoutEffect = isServer ? () => {} : useLayoutEffect\nconst useClientOnlyEffect = isServer ? () => {} : useEffect\n\nexport default function SideEffect(props: SideEffectProps) {\n const { headManager, reduceComponentsToState } = props\n\n function emitChange() {\n if (headManager && headManager.mountedInstances) {\n const headElements = Children.toArray(\n Array.from(headManager.mountedInstances as Set<React.ReactNode>).filter(\n Boolean\n )\n ) as React.ReactElement[]\n headManager.updateHead(reduceComponentsToState(headElements))\n }\n }\n\n if (isServer) {\n headManager?.mountedInstances?.add(props.children)\n emitChange()\n }\n\n useClientOnlyLayoutEffect(() => {\n headManager?.mountedInstances?.add(props.children)\n return () => {\n headManager?.mountedInstances?.delete(props.children)\n }\n })\n\n // We need to call `updateHead` method whenever the `SideEffect` is trigger in all\n // life-cycles: mount, update, unmount. However, if there are multiple `SideEffect`s\n // being rendered, we only trigger the method from the last one.\n // This is ensured by keeping the last unflushed `updateHead` in the `_pendingUpdate`\n // singleton in the layout effect pass, and actually trigger it in the effect pass.\n useClientOnlyLayoutEffect(() => {\n if (headManager) {\n headManager._pendingUpdate = emitChange\n }\n return () => {\n if (headManager) {\n headManager._pendingUpdate = emitChange\n }\n }\n })\n\n useClientOnlyEffect(() => {\n if (headManager && headManager._pendingUpdate) {\n headManager._pendingUpdate()\n headManager._pendingUpdate = null\n }\n return () => {\n if (headManager && headManager._pendingUpdate) {\n headManager._pendingUpdate()\n headManager._pendingUpdate = null\n }\n }\n })\n\n return null\n}\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['contexts'].HeadManagerContext\n","'use client'\n\nimport React, { useContext, type JSX } from 'react'\nimport Effect from './side-effect'\nimport { HeadManagerContext } from './head-manager-context.shared-runtime'\nimport { warnOnce } from './utils/warn-once'\n\nexport function defaultHead(): JSX.Element[] {\n const head = [\n <meta charSet=\"utf-8\" key=\"charset\" />,\n <meta name=\"viewport\" content=\"width=device-width\" key=\"viewport\" />,\n ]\n return head\n}\n\nfunction onlyReactElement(\n list: Array<React.ReactElement<any>>,\n child: React.ReactElement | number | string\n): Array<React.ReactElement<any>> {\n // React children can be \"string\" or \"number\" in this case we ignore them for backwards compat\n if (typeof child === 'string' || typeof child === 'number') {\n return list\n }\n // Adds support for React.Fragment\n if (child.type === React.Fragment) {\n return list.concat(\n // @ts-expect-error @types/react does not remove fragments but this could also return ReactPortal[]\n React.Children.toArray(child.props.children).reduce(\n // @ts-expect-error @types/react does not remove fragments but this could also return ReactPortal[]\n (\n fragmentList: Array<React.ReactElement<any>>,\n fragmentChild: React.ReactElement | number | string\n ): Array<React.ReactElement<any>> => {\n if (\n typeof fragmentChild === 'string' ||\n typeof fragmentChild === 'number'\n ) {\n return fragmentList\n }\n return fragmentList.concat(fragmentChild)\n },\n []\n )\n )\n }\n return list.concat(child)\n}\n\nconst METATYPES = ['name', 'httpEquiv', 'charSet', 'itemProp']\n\n/*\n returns a function for filtering head child elements\n which shouldn't be duplicated, like <title/>\n Also adds support for deduplicated `key` properties\n*/\nfunction unique() {\n const keys = new Set()\n const tags = new Set()\n const metaTypes = new Set()\n const metaCategories: { [metatype: string]: Set<string> } = {}\n\n return (h: React.ReactElement<any>) => {\n let isUnique = true\n let hasKey = false\n\n if (h.key && typeof h.key !== 'number' && h.key.indexOf('$') > 0) {\n hasKey = true\n const key = h.key.slice(h.key.indexOf('$') + 1)\n if (keys.has(key)) {\n isUnique = false\n } else {\n keys.add(key)\n }\n }\n\n // eslint-disable-next-line default-case\n switch (h.type) {\n case 'title':\n case 'base':\n if (tags.has(h.type)) {\n isUnique = false\n } else {\n tags.add(h.type)\n }\n break\n case 'meta':\n for (let i = 0, len = METATYPES.length; i < len; i++) {\n const metatype = METATYPES[i]\n if (!h.props.hasOwnProperty(metatype)) continue\n\n if (metatype === 'charSet') {\n if (metaTypes.has(metatype)) {\n isUnique = false\n } else {\n metaTypes.add(metatype)\n }\n } else {\n const category = h.props[metatype]\n const categories = metaCategories[metatype] || new Set()\n if ((metatype !== 'name' || !hasKey) && categories.has(category)) {\n isUnique = false\n } else {\n categories.add(category)\n metaCategories[metatype] = categories\n }\n }\n }\n break\n }\n\n return isUnique\n }\n}\n\n/**\n *\n * @param headChildrenElements List of children of <Head>\n */\nfunction reduceComponents(\n headChildrenElements: Array<React.ReactElement<any>>\n) {\n return headChildrenElements\n .reduce(onlyReactElement, [])\n .reverse()\n .concat(defaultHead().reverse())\n .filter(unique())\n .reverse()\n .map((c: React.ReactElement<any>, i: number) => {\n const key = c.key || i\n if (process.env.NODE_ENV === 'development') {\n // omit JSON-LD structured data snippets from the warning\n if (c.type === 'script' && c.props['type'] !== 'application/ld+json') {\n const srcMessage = c.props['src']\n ? `<script> tag with src=\"${c.props['src']}\"`\n : `inline <script>`\n warnOnce(\n `Do not add <script> tags using next/head (see ${srcMessage}). Use next/script instead. \\nSee more info here: https://nextjs.org/docs/messages/no-script-tags-in-head-component`\n )\n } else if (c.type === 'link' && c.props['rel'] === 'stylesheet') {\n warnOnce(\n `Do not add stylesheets using next/head (see <link rel=\"stylesheet\"> tag with href=\"${c.props['href']}\"). Use Document instead. \\nSee more info here: https://nextjs.org/docs/messages/no-stylesheets-in-head-component`\n )\n }\n }\n return React.cloneElement(c, { key })\n })\n}\n\n/**\n * This component injects elements to `<head>` of your page.\n * To avoid duplicated `tags` in `<head>` you can use the `key` property, which will make sure every tag is only rendered once.\n */\nfunction Head({ children }: { children: React.ReactNode }) {\n const headManager = useContext(HeadManagerContext)\n return (\n <Effect\n reduceComponentsToState={reduceComponents}\n headManager={headManager}\n >\n {children}\n </Effect>\n )\n}\n\nexport default Head\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['contexts'].ImageConfigContext\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['contexts'].RouterContext\n","import type { NextConfig } from '../../server/config-shared'\n\n/**\n * Find the closest matching `quality` in the list of `config.qualities`\n * @param quality the quality prop passed to the image component\n * @param config the \"images\" configuration from next.config.js\n * @returns the closest matching quality value\n */\nexport function findClosestQuality(\n quality: number | undefined,\n config: NextConfig['images'] | undefined\n): number {\n const q = quality || 75\n if (!config?.qualities?.length) {\n return q\n }\n return config.qualities.reduce(\n (prev, cur) => (Math.abs(cur - q) < Math.abs(prev - q) ? cur : prev),\n 0\n )\n}\n","import type { ImageLoaderPropsWithConfig } from './image-config'\nimport { findClosestQuality } from './find-closest-quality'\nimport { getDeploymentId } from './deployment-id'\n\nfunction defaultLoader({\n config,\n src,\n width,\n quality,\n}: ImageLoaderPropsWithConfig): string {\n if (\n src.startsWith('/') &&\n src.includes('?') &&\n config.localPatterns?.length === 1 &&\n config.localPatterns[0].pathname === '**' &&\n config.localPatterns[0].search === ''\n ) {\n throw new Error(\n `Image with src \"${src}\" is using a query string which is not configured in images.localPatterns.` +\n `\\nRead more: https://nextjs.org/docs/messages/next-image-unconfigured-localpatterns`\n )\n }\n\n if (process.env.NODE_ENV !== 'production') {\n const missingValues = []\n\n // these should always be provided but make sure they are\n if (!src) missingValues.push('src')\n if (!width) missingValues.push('width')\n\n if (missingValues.length > 0) {\n throw new Error(\n `Next Image Optimization requires ${missingValues.join(\n ', '\n )} to be provided. Make sure you pass them as props to the \\`next/image\\` component. Received: ${JSON.stringify(\n { src, width, quality }\n )}`\n )\n }\n\n if (src.startsWith('//')) {\n throw new Error(\n `Failed to parse src \"${src}\" on \\`next/image\\`, protocol-relative URL (//) must be changed to an absolute URL (http:// or https://)`\n )\n }\n\n if (src.startsWith('/') && config.localPatterns) {\n if (\n process.env.NODE_ENV !== 'test' &&\n // micromatch isn't compatible with edge runtime\n process.env.NEXT_RUNTIME !== 'edge'\n ) {\n // We use dynamic require because this should only error in development\n const { hasLocalMatch } =\n require('./match-local-pattern') as typeof import('./match-local-pattern')\n if (!hasLocalMatch(config.localPatterns, src)) {\n throw new Error(\n `Invalid src prop (${src}) on \\`next/image\\` does not match \\`images.localPatterns\\` configured in your \\`next.config.js\\`\\n` +\n `See more info: https://nextjs.org/docs/messages/next-image-unconfigured-localpatterns`\n )\n }\n }\n }\n\n if (!src.startsWith('/') && (config.domains || config.remotePatterns)) {\n let parsedSrc: URL\n try {\n parsedSrc = new URL(src)\n } catch (err) {\n console.error(err)\n throw new Error(\n `Failed to parse src \"${src}\" on \\`next/image\\`, if using relative image it must start with a leading slash \"/\" or be an absolute URL (http:// or https://)`\n )\n }\n\n if (\n process.env.NODE_ENV !== 'test' &&\n // micromatch isn't compatible with edge runtime\n process.env.NEXT_RUNTIME !== 'edge'\n ) {\n // We use dynamic require because this should only error in development\n const { hasRemoteMatch } =\n require('./match-remote-pattern') as typeof import('./match-remote-pattern')\n if (\n !hasRemoteMatch(config.domains!, config.remotePatterns!, parsedSrc)\n ) {\n throw new Error(\n `Invalid src prop (${src}) on \\`next/image\\`, hostname \"${parsedSrc.hostname}\" is not configured under images in your \\`next.config.js\\`\\n` +\n `See more info: https://nextjs.org/docs/messages/next-image-unconfigured-host`\n )\n }\n }\n }\n }\n\n const q = findClosestQuality(quality, config)\n\n let deploymentId = getDeploymentId()\n return `${config.path}?url=${encodeURIComponent(src)}&w=${width}&q=${q}${\n src.startsWith('/') && deploymentId ? `&dpl=${deploymentId}` : ''\n }`\n}\n\n// We use this to determine if the import is the default loader\n// or a custom loader defined by the user in next.config.js\ndefaultLoader.__next_img_default = true\n\nexport default defaultLoader\n","import { useCallback, useRef, type Ref } from 'react'\n\n// This is a compatibility hook to support React 18 and 19 refs.\n// In 19, a cleanup function from refs may be returned.\n// In 18, returning a cleanup function creates a warning.\n// Since we take userspace refs, we don't know ahead of time if a cleanup function will be returned.\n// This implements cleanup functions with the old behavior in 18.\n// We know refs are always called alternating with `null` and then `T`.\n// So a call with `null` means we need to call the previous cleanup functions.\nexport function useMergedRef<TElement>(\n refA: Ref<TElement>,\n refB: Ref<TElement>\n): Ref<TElement> {\n const cleanupA = useRef<(() => void) | null>(null)\n const cleanupB = useRef<(() => void) | null>(null)\n\n // NOTE: In theory, we could skip the wrapping if only one of the refs is non-null.\n // (this happens often if the user doesn't pass a ref to Link/Form/Image)\n // But this can cause us to leak a cleanup-ref into user code (previously via `<Link legacyBehavior>`),\n // and the user might pass that ref into ref-merging library that doesn't support cleanup refs\n // (because it hasn't been updated for React 19)\n // which can then cause things to blow up, because a cleanup-returning ref gets called with `null`.\n // So in practice, it's safer to be defensive and always wrap the ref, even on React 19.\n return useCallback(\n (current: TElement | null): void => {\n if (current === null) {\n const cleanupFnA = cleanupA.current\n if (cleanupFnA) {\n cleanupA.current = null\n cleanupFnA()\n }\n const cleanupFnB = cleanupB.current\n if (cleanupFnB) {\n cleanupB.current = null\n cleanupFnB()\n }\n } else {\n if (refA) {\n cleanupA.current = applyRef(refA, current)\n }\n if (refB) {\n cleanupB.current = applyRef(refB, current)\n }\n }\n },\n [refA, refB]\n )\n}\n\nfunction applyRef<TElement>(\n refA: NonNullable<Ref<TElement>>,\n current: TElement\n) {\n if (typeof refA === 'function') {\n const cleanup = refA(current)\n if (typeof cleanup === 'function') {\n return cleanup\n } else {\n return () => refA(null)\n }\n } else {\n refA.current = current\n return () => {\n refA.current = null\n }\n }\n}\n","'use client'\n\nimport React, {\n useRef,\n useEffect,\n useCallback,\n useContext,\n useMemo,\n useState,\n forwardRef,\n use,\n} from 'react'\nimport ReactDOM from 'react-dom'\nimport Head from '../shared/lib/head'\nimport { getImgProps } from '../shared/lib/get-img-props'\nimport type {\n ImageProps,\n ImgProps,\n OnLoad,\n OnLoadingComplete,\n PlaceholderValue,\n} from '../shared/lib/get-img-props'\nimport type {\n ImageConfigComplete,\n ImageLoaderProps,\n} from '../shared/lib/image-config'\nimport { imageConfigDefault } from '../shared/lib/image-config'\nimport { ImageConfigContext } from '../shared/lib/image-config-context.shared-runtime'\nimport { warnOnce } from '../shared/lib/utils/warn-once'\nimport { RouterContext } from '../shared/lib/router-context.shared-runtime'\n\n// This is replaced by webpack alias\nimport defaultLoader from 'next/dist/shared/lib/image-loader'\nimport { useMergedRef } from './use-merged-ref'\n\n// This is replaced by webpack define plugin\nconst configEnv = process.env.__NEXT_IMAGE_OPTS as any as ImageConfigComplete\n\nif (typeof window === 'undefined') {\n ;(globalThis as any).__NEXT_IMAGE_IMPORTED = true\n}\n\nexport type { ImageLoaderProps }\nexport type ImageLoader = (p: ImageLoaderProps) => string\n\ntype ImgElementWithDataProp = HTMLImageElement & {\n 'data-loaded-src': string | undefined\n}\n\ntype ImageElementProps = ImgProps & {\n unoptimized: boolean\n placeholder: PlaceholderValue\n onLoadRef: React.MutableRefObject<OnLoad | undefined>\n onLoadingCompleteRef: React.MutableRefObject<OnLoadingComplete | undefined>\n setBlurComplete: (b: boolean) => void\n setShowAltText: (b: boolean) => void\n sizesInput: string | undefined\n}\n\n// See https://stackoverflow.com/q/39777833/266535 for why we use this ref\n// handler instead of the img's onLoad attribute.\nfunction handleLoading(\n img: ImgElementWithDataProp,\n placeholder: PlaceholderValue,\n onLoadRef: React.MutableRefObject<OnLoad | undefined>,\n onLoadingCompleteRef: React.MutableRefObject<OnLoadingComplete | undefined>,\n setBlurComplete: (b: boolean) => void,\n unoptimized: boolean,\n sizesInput: string | undefined\n) {\n const src = img?.src\n if (!img || img['data-loaded-src'] === src) {\n return\n }\n img['data-loaded-src'] = src\n const p = 'decode' in img ? img.decode() : Promise.resolve()\n p.catch(() => {}).then(() => {\n if (!img.parentElement || !img.isConnected) {\n // Exit early in case of race condition:\n // - onload() is called\n // - decode() is called but incomplete\n // - unmount is called\n // - decode() completes\n return\n }\n if (placeholder !== 'empty') {\n setBlurComplete(true)\n }\n if (onLoadRef?.current) {\n // Since we don't have the SyntheticEvent here,\n // we must create one with the same shape.\n // See https://reactjs.org/docs/events.html\n const event = new Event('load')\n Object.defineProperty(event, 'target', { writable: false, value: img })\n let prevented = false\n let stopped = false\n onLoadRef.current({\n ...event,\n nativeEvent: event,\n currentTarget: img,\n target: img,\n isDefaultPrevented: () => prevented,\n isPropagationStopped: () => stopped,\n persist: () => {},\n preventDefault: () => {\n prevented = true\n event.preventDefault()\n },\n stopPropagation: () => {\n stopped = true\n event.stopPropagation()\n },\n })\n }\n if (onLoadingCompleteRef?.current) {\n onLoadingCompleteRef.current(img)\n }\n if (process.env.NODE_ENV !== 'production') {\n const origSrc = new URL(src, 'http://n').searchParams.get('url') || src\n if (img.getAttribute('data-nimg') === 'fill') {\n if (!unoptimized && (!sizesInput || sizesInput === '100vw')) {\n let widthViewportRatio =\n img.getBoundingClientRect().width / window.innerWidth\n if (widthViewportRatio < 0.6) {\n if (sizesInput === '100vw') {\n warnOnce(\n `Image with src \"${origSrc}\" has \"fill\" prop and \"sizes\" prop of \"100vw\", but image is not rendered at full viewport width. Please adjust \"sizes\" to improve page performance. Read more: https://nextjs.org/docs/api-reference/next/image#sizes`\n )\n } else {\n warnOnce(\n `Image with src \"${origSrc}\" has \"fill\" but is missing \"sizes\" prop. Please add it to improve page performance. Read more: https://nextjs.org/docs/api-reference/next/image#sizes`\n )\n }\n }\n }\n if (img.parentElement) {\n const { position } = window.getComputedStyle(img.parentElement)\n const valid = ['absolute', 'fixed', 'relative']\n if (!valid.includes(position)) {\n warnOnce(\n `Image with src \"${origSrc}\" has \"fill\" and parent element with invalid \"position\". Provided \"${position}\" should be one of ${valid\n .map(String)\n .join(',')}.`\n )\n }\n }\n if (img.height === 0) {\n warnOnce(\n `Image with src \"${origSrc}\" has \"fill\" and a height value of 0. This is likely because the parent element of the image has not been styled to have a set height.`\n )\n }\n }\n\n const heightModified =\n img.height.toString() !== img.getAttribute('height')\n const widthModified = img.width.toString() !== img.getAttribute('width')\n if (\n (heightModified && !widthModified) ||\n (!heightModified && widthModified)\n ) {\n warnOnce(\n `Image with src \"${origSrc}\" has either width or height modified, but not the other. If you use CSS to change the size of your image, also include the styles 'width: \"auto\"' or 'height: \"auto\"' to maintain the aspect ratio.`\n )\n }\n }\n })\n}\n\nfunction getDynamicProps(\n fetchPriority?: string\n): Record<string, string | undefined> {\n if (Boolean(use)) {\n // In React 19.0.0 or newer, we must use camelCase\n // prop to avoid \"Warning: Invalid DOM property\".\n // See https://github.com/facebook/react/pull/25927\n return { fetchPriority }\n }\n // In React 18.2.0 or older, we must use lowercase prop\n // to avoid \"Warning: Invalid DOM property\".\n return { fetchpriority: fetchPriority }\n}\n\nconst ImageElement = forwardRef<HTMLImageElement | null, ImageElementProps>(\n (\n {\n src,\n srcSet,\n sizes,\n height,\n width,\n decoding,\n className,\n style,\n fetchPriority,\n placeholder,\n loading,\n unoptimized,\n fill,\n onLoadRef,\n onLoadingCompleteRef,\n setBlurComplete,\n setShowAltText,\n sizesInput,\n onLoad,\n onError,\n ...rest\n },\n forwardedRef\n ) => {\n const ownRef = useCallback(\n (img: ImgElementWithDataProp | null) => {\n if (!img) {\n return\n }\n if (onError) {\n // If the image has an error before react hydrates, then the error is lost.\n // The workaround is to wait until the image is mounted which is after hydration,\n // then we set the src again to trigger the error handler (if there was an error).\n // eslint-disable-next-line no-self-assign\n img.src = img.src\n }\n if (process.env.NODE_ENV !== 'production') {\n if (!src) {\n console.error(`Image is missing required \"src\" property:`, img)\n }\n if (img.getAttribute('alt') === null) {\n console.error(\n `Image is missing required \"alt\" property. Please add Alternative Text to describe the image for screen readers and search engines.`\n )\n }\n }\n if (img.complete) {\n handleLoading(\n img,\n placeholder,\n onLoadRef,\n onLoadingCompleteRef,\n setBlurComplete,\n unoptimized,\n sizesInput\n )\n }\n },\n [\n src,\n placeholder,\n onLoadRef,\n onLoadingCompleteRef,\n setBlurComplete,\n onError,\n unoptimized,\n sizesInput,\n ]\n )\n\n const ref = useMergedRef(forwardedRef, ownRef)\n\n return (\n <img\n {...rest}\n {...getDynamicProps(fetchPriority)}\n // It's intended to keep `loading` before `src` because React updates\n // props in order which causes Safari/Firefox to not lazy load properly.\n // See https://github.com/facebook/react/issues/25883\n loading={loading}\n width={width}\n height={height}\n decoding={decoding}\n data-nimg={fill ? 'fill' : '1'}\n className={className}\n style={style}\n // It's intended to keep `src` the last attribute because React updates\n // attributes in order. If we keep `src` the first one, Safari will\n // immediately start to fetch `src`, before `sizes` and `srcSet` are even\n // updated by React. That causes multiple unnecessary requests if `srcSet`\n // and `sizes` are defined.\n // This bug cannot be reproduced in Chrome or Firefox.\n sizes={sizes}\n srcSet={srcSet}\n src={src}\n ref={ref}\n onLoad={(event) => {\n const img = event.currentTarget as ImgElementWithDataProp\n handleLoading(\n img,\n placeholder,\n onLoadRef,\n onLoadingCompleteRef,\n setBlurComplete,\n unoptimized,\n sizesInput\n )\n }}\n onError={(event) => {\n // if the real image fails to load, this will ensure \"alt\" is visible\n setShowAltText(true)\n if (placeholder !== 'empty') {\n // If the real image fails to load, this will still remove the placeholder.\n setBlurComplete(true)\n }\n if (onError) {\n onError(event)\n }\n }}\n />\n )\n }\n)\n\nfunction ImagePreload({\n isAppRouter,\n imgAttributes,\n}: {\n isAppRouter: boolean\n imgAttributes: ImgProps\n}) {\n const opts: ReactDOM.PreloadOptions = {\n as: 'image',\n imageSrcSet: imgAttributes.srcSet,\n imageSizes: imgAttributes.sizes,\n crossOrigin: imgAttributes.crossOrigin,\n referrerPolicy: imgAttributes.referrerPolicy,\n ...getDynamicProps(imgAttributes.fetchPriority),\n }\n\n if (isAppRouter && ReactDOM.preload) {\n ReactDOM.preload(imgAttributes.src, opts)\n return null\n }\n\n return (\n <Head>\n <link\n key={\n '__nimg-' +\n imgAttributes.src +\n imgAttributes.srcSet +\n imgAttributes.sizes\n }\n rel=\"preload\"\n // Note how we omit the `href` attribute, as it would only be relevant\n // for browsers that do not support `imagesrcset`, and in those cases\n // it would cause the incorrect image to be preloaded.\n //\n // https://html.spec.whatwg.org/multipage/semantics.html#attr-link-imagesrcset\n href={imgAttributes.srcSet ? undefined : imgAttributes.src}\n {...opts}\n />\n </Head>\n )\n}\n\n/**\n * The `Image` component is used to optimize images.\n *\n * Read more: [Next.js docs: `Image`](https://nextjs.org/docs/app/api-reference/components/image)\n */\nexport const Image = forwardRef<HTMLImageElement | null, ImageProps>(\n (props, forwardedRef) => {\n const pagesRouter = useContext(RouterContext)\n // We're in the app directory if there is no pages router.\n const isAppRouter = !pagesRouter\n\n const configContext = useContext(ImageConfigContext)\n const config = useMemo(() => {\n const c = configEnv || configContext || imageConfigDefault\n\n const allSizes = [...c.deviceSizes, ...c.imageSizes].sort((a, b) => a - b)\n const deviceSizes = c.deviceSizes.sort((a, b) => a - b)\n const qualities = c.qualities?.sort((a, b) => a - b)\n return {\n ...c,\n allSizes,\n deviceSizes,\n qualities,\n // During the SSR, configEnv (__NEXT_IMAGE_OPTS) does not include\n // security sensitive configs like `localPatterns`, which is needed\n // during the server render to ensure it's validated. Therefore use\n // configContext, which holds the config from the server for validation.\n localPatterns:\n typeof window === 'undefined'\n ? configContext?.localPatterns\n : c.localPatterns,\n }\n }, [configContext])\n\n const { onLoad, onLoadingComplete } = props\n const onLoadRef = useRef(onLoad)\n\n useEffect(() => {\n onLoadRef.current = onLoad\n }, [onLoad])\n\n const onLoadingCompleteRef = useRef(onLoadingComplete)\n\n useEffect(() => {\n onLoadingCompleteRef.current = onLoadingComplete\n }, [onLoadingComplete])\n\n const [blurComplete, setBlurComplete] = useState(false)\n const [showAltText, setShowAltText] = useState(false)\n const { props: imgAttributes, meta: imgMeta } = getImgProps(props, {\n defaultLoader,\n imgConf: config,\n blurComplete,\n showAltText,\n })\n\n return (\n <>\n {\n <ImageElement\n {...imgAttributes}\n unoptimized={imgMeta.unoptimized}\n placeholder={imgMeta.placeholder}\n fill={imgMeta.fill}\n onLoadRef={onLoadRef}\n onLoadingCompleteRef={onLoadingCompleteRef}\n setBlurComplete={setBlurComplete}\n setShowAltText={setShowAltText}\n sizesInput={props.sizes}\n ref={forwardedRef}\n />\n }\n {imgMeta.preload ? (\n <ImagePreload\n isAppRouter={isAppRouter}\n imgAttributes={imgAttributes}\n />\n ) : null}\n </>\n )\n }\n)\n","import type { ImageConfigComplete, ImageLoaderProps } from './image-config'\nimport type { ImageProps, ImageLoader, StaticImageData } from './get-img-props'\n\nimport { getImgProps } from './get-img-props'\nimport { Image } from '../../client/image-component'\n\n// This is replaced by webpack alias\nimport defaultLoader from 'next/dist/shared/lib/image-loader'\n\n/**\n * For more advanced use cases, you can call `getImageProps()`\n * to get the props that would be passed to the underlying `<img>` element,\n * and instead pass to them to another component, style, canvas, etc.\n *\n * Read more: [Next.js docs: `getImageProps`](https://nextjs.org/docs/app/api-reference/components/image#getimageprops)\n */\nexport function getImageProps(imgProps: ImageProps) {\n const { props } = getImgProps(imgProps, {\n defaultLoader,\n // This is replaced by webpack define plugin\n imgConf: process.env.__NEXT_IMAGE_OPTS as any as ImageConfigComplete,\n })\n // Normally we don't care about undefined props because we pass to JSX,\n // but this exported function could be used by the end user for anything\n // so we delete undefined props to clean it up a little.\n for (const [key, value] of Object.entries(props)) {\n if (value === undefined) {\n delete props[key as keyof typeof props]\n }\n }\n return { props }\n}\n\nexport default Image\n\nexport type { ImageProps, ImageLoaderProps, ImageLoader, StaticImageData }\n","module.exports = require('./dist/shared/lib/image-external')\n","/**\n * Check if a component has an accessibility prop\n *\n * @param {object} props\n * @returns {boolean} Whether the component has an accessibility prop\n */\nexport const hasA11yProp = (props: Record<string, any>) => {\n for (const prop in props) {\n if (prop.startsWith('aria-') || prop === 'role' || prop === 'title') {\n return true;\n }\n }\n\n return false;\n};\n","/**\n * Converts string to kebab case\n *\n * @param {string} string\n * @returns {string} A kebabized string\n */\nexport const toKebabCase = (string: string) =>\n string.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase();\n","export default {\n xmlns: 'http://www.w3.org/2000/svg',\n width: 24,\n height: 24,\n viewBox: '0 0 24 24',\n fill: 'none',\n stroke: 'currentColor',\n strokeWidth: 2,\n strokeLinecap: 'round',\n strokeLinejoin: 'round',\n};\n","/**\n * Converts string to camel case\n *\n * @param {string} string\n * @returns {string} A camelized string\n */\nexport const toCamelCase = <T extends string>(string: T) =>\n string.replace(/^([A-Z])|[\\s-_]+(\\w)/g, (match, p1, p2) =>\n p2 ? p2.toUpperCase() : p1.toLowerCase(),\n );\n","/**\n * Merges classes into a single string\n *\n * @param {array} classes\n * @returns {string} A string of classes\n */\nexport const mergeClasses = <ClassType = string | undefined | null>(...classes: ClassType[]) =>\n classes\n .filter((className, index, array) => {\n return (\n Boolean(className) &&\n (className as string).trim() !== '' &&\n array.indexOf(className) === index\n );\n })\n .join(' ')\n .trim();\n","import { CamelToPascal } from '../utility-types';\nimport { toCamelCase } from './toCamelCase';\n\n/**\n * Converts string to pascal case\n *\n * @param {string} string\n * @returns {string} A pascalized string\n */\nexport const toPascalCase = <T extends string>(string: T): CamelToPascal<T> => {\n const camelCase = toCamelCase(string);\n\n return (camelCase.charAt(0).toUpperCase() + camelCase.slice(1)) as CamelToPascal<T>;\n};\n","import { createElement, forwardRef } from 'react';\nimport defaultAttributes from './defaultAttributes';\nimport { IconNode, LucideProps } from './types';\nimport { mergeClasses, hasA11yProp } from '@lucide/shared';\n\ninterface IconComponentProps extends LucideProps {\n iconNode: IconNode;\n}\n\n/**\n * Lucide icon component\n *\n * @component Icon\n * @param {object} props\n * @param {string} props.color - The color of the icon\n * @param {number} props.size - The size of the icon\n * @param {number} props.strokeWidth - The stroke width of the icon\n * @param {boolean} props.absoluteStrokeWidth - Whether to use absolute stroke width\n * @param {string} props.className - The class name of the icon\n * @param {IconNode} props.children - The children of the icon\n * @param {IconNode} props.iconNode - The icon node of the icon\n *\n * @returns {ForwardRefExoticComponent} LucideIcon\n */\nconst Icon = forwardRef<SVGSVGElement, IconComponentProps>(\n (\n {\n color = 'currentColor',\n size = 24,\n strokeWidth = 2,\n absoluteStrokeWidth,\n className = '',\n children,\n iconNode,\n ...rest\n },\n ref,\n ) =>\n createElement(\n 'svg',\n {\n ref,\n ...defaultAttributes,\n width: size,\n height: size,\n stroke: color,\n strokeWidth: absoluteStrokeWidth ? (Number(strokeWidth) * 24) / Number(size) : strokeWidth,\n className: mergeClasses('lucide', className),\n ...(!children && !hasA11yProp(rest) && { 'aria-hidden': 'true' }),\n ...rest,\n },\n [\n ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),\n ...(Array.isArray(children) ? children : [children]),\n ],\n ),\n);\n\nexport default Icon;\n","import { createElement, forwardRef } from 'react';\nimport { mergeClasses, toKebabCase, toPascalCase } from '@lucide/shared';\nimport { IconNode, LucideProps } from './types';\nimport Icon from './Icon';\n\n/**\n * Create a Lucide icon component\n * @param {string} iconName\n * @param {array} iconNode\n * @returns {ForwardRefExoticComponent} LucideIcon\n */\nconst createLucideIcon = (iconName: string, iconNode: IconNode) => {\n const Component = forwardRef<SVGSVGElement, LucideProps>(({ className, ...props }, ref) =>\n createElement(Icon, {\n ref,\n iconNode,\n className: mergeClasses(\n `lucide-${toKebabCase(toPascalCase(iconName))}`,\n `lucide-${iconName}`,\n className,\n ),\n ...props,\n }),\n );\n\n Component.displayName = toPascalCase(iconName);\n\n return Component;\n};\n\nexport default createLucideIcon;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M5 12h14', key: '1ays0h' }],\n ['path', { d: 'M12 5v14', key: 's699le' }],\n];\n\n/**\n * @component @name Plus\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/plus\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Plus = createLucideIcon('plus', __iconNode);\n\nexport default Plus;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M10 11v6', key: 'nco0om' }],\n ['path', { d: 'M14 11v6', key: 'outv1u' }],\n ['path', { d: 'M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6', key: 'miytrc' }],\n ['path', { d: 'M3 6h18', key: 'd0wm0j' }],\n ['path', { d: 'M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2', key: 'e791ji' }],\n];\n\n/**\n * @component @name Trash2\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/trash-2\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Trash2 = createLucideIcon('trash-2', __iconNode);\n\nexport default Trash2;\n","import type { CacheNode } from '../../../shared/lib/app-router-types'\nimport type {\n FlightRouterState,\n FlightSegmentPath,\n} from '../../../shared/lib/app-router-types'\nimport type { NavigationSeed } from '../segment-cache/navigation'\nimport type { FetchServerResponseResult } from './fetch-server-response'\n\nexport const ACTION_REFRESH = 'refresh'\nexport const ACTION_NAVIGATE = 'navigate'\nexport const ACTION_RESTORE = 'restore'\nexport const ACTION_SERVER_PATCH = 'server-patch'\nexport const ACTION_HMR_REFRESH = 'hmr-refresh'\nexport const ACTION_SERVER_ACTION = 'server-action'\n\nexport type RouterChangeByServerResponse = ({\n navigatedAt,\n previousTree,\n serverResponse,\n}: {\n navigatedAt: number\n previousTree: FlightRouterState\n serverResponse: FetchServerResponseResult\n}) => void\n\nexport interface Mutable {\n mpaNavigation?: boolean\n patchedTree?: FlightRouterState\n renderedSearch?: string\n canonicalUrl?: string\n scrollableSegments?: FlightSegmentPath[]\n pendingPush?: boolean\n cache?: CacheNode\n hashFragment?: string\n shouldScroll?: boolean\n preserveCustomHistoryState?: boolean\n onlyHashChange?: boolean\n collectedDebugInfo?: Array<unknown>\n}\n\nexport interface ServerActionMutable extends Mutable {\n inFlightServerAction?: Promise<any> | null\n}\n\n/**\n * Refresh triggers a refresh of the full page data.\n * - fetches the Flight data and fills rsc at the root of the cache.\n * - The router state is updated at the root.\n */\nexport interface RefreshAction {\n type: typeof ACTION_REFRESH\n}\n\nexport interface HmrRefreshAction {\n type: typeof ACTION_HMR_REFRESH\n}\n\nexport type ServerActionDispatcher = (\n args: Omit<\n ServerActionAction,\n 'type' | 'mutable' | 'navigate' | 'changeByServerResponse' | 'cache'\n >\n) => void\n\nexport interface ServerActionAction {\n type: typeof ACTION_SERVER_ACTION\n actionId: string\n actionArgs: any[]\n resolve: (value: any) => void\n reject: (reason?: any) => void\n didRevalidate?: boolean\n}\n\n/**\n * Navigate triggers a navigation to the provided url. It supports two types: `push` and `replace`.\n *\n * `navigateType`:\n * - `push` - pushes a new history entry in the browser history\n * - `replace` - replaces the current history entry in the browser history\n *\n * Navigate has multiple cache heuristics:\n * - page was prefetched\n * - Apply router state tree from prefetch\n * - Apply Flight data from prefetch to the cache\n * - If Flight data is a string, it's a redirect and the state is updated to trigger a redirect\n * - Check if hard navigation is needed\n * - Hard navigation happens when a dynamic parameter below the common layout changed\n * - When hard navigation is needed the cache is invalidated below the flightSegmentPath\n * - The missing cache nodes of the page will be fetched in layout-router and trigger the SERVER_PATCH action\n * - If hard navigation is not needed\n * - The cache is reused\n * - If any cache nodes are missing they'll be fetched in layout-router and trigger the SERVER_PATCH action\n * - page was not prefetched\n * - The navigate was called from `next/router` (`router.push()` / `router.replace()`) / `next/link` without prefetched data available (e.g. the prefetch didn't come back from the server before clicking the link)\n * - Flight data is fetched in the reducer (suspends the reducer)\n * - Router state tree is created based on Flight data\n * - Cache is filled based on the Flight data\n *\n * Above steps explain 3 cases:\n * - `soft` - Reuses the existing cache and fetches missing nodes in layout-router.\n * - `hard` - Creates a new cache where cache nodes are removed below the common layout and fetches missing nodes in layout-router.\n * - `optimistic` (explicit no prefetch) - Creates a new cache and kicks off the data fetch in the reducer. The data fetch is awaited in the layout-router.\n */\nexport interface NavigateAction {\n type: typeof ACTION_NAVIGATE\n url: URL\n isExternalUrl: boolean\n locationSearch: Location['search']\n navigateType: 'push' | 'replace'\n shouldScroll: boolean\n}\n\n/**\n * Restore applies the provided router state.\n * - Used for `popstate` (back/forward navigation) where a known router state has to be applied.\n * - Also used when syncing the router state with `pushState`/`replaceState` calls.\n * - Router state is applied as-is from the history state, if available.\n * - If the history state does not contain the router state, the existing router state is used.\n * - If any cache node is missing it will be fetched in layout-router during rendering and the server-patch case.\n * - If existing cache nodes match these are used.\n */\nexport interface RestoreAction {\n type: typeof ACTION_RESTORE\n url: URL\n historyState: AppHistoryState | undefined\n}\n\nexport type AppHistoryState = {\n tree: FlightRouterState\n renderedSearch: string\n}\n\n/**\n * Server-patch applies the provided Flight data to the cache and router tree.\n */\nexport interface ServerPatchAction {\n type: typeof ACTION_SERVER_PATCH\n previousTree: FlightRouterState\n url: URL\n nextUrl: string | null\n seed: NavigationSeed | null\n mpa: boolean\n}\n\n/**\n * PrefetchKind defines the type of prefetching that should be done.\n * - `auto` - if the page is dynamic, prefetch the page data partially, if static prefetch the page data fully.\n * - `full` - prefetch the page data fully.\n */\n\nexport enum PrefetchKind {\n AUTO = 'auto',\n FULL = 'full',\n}\n\n/**\n * Prefetch adds the provided FlightData to the prefetch cache\n * - Creates the router state tree based on the patch in FlightData\n * - Adds the FlightData to the prefetch cache\n * - In ACTION_NAVIGATE the prefetch cache is checked and the router state tree and FlightData are applied.\n */\n\nexport interface PushRef {\n /**\n * If the app-router should push a new history entry in app-router's useEffect()\n */\n pendingPush: boolean\n /**\n * Multi-page navigation through location.href.\n */\n mpaNavigation: boolean\n /**\n * Skip applying the router state to the browser history state.\n */\n preserveCustomHistoryState: boolean\n}\n\nexport type FocusAndScrollRef = {\n /**\n * If focus and scroll should be set in the layout-router's useEffect()\n */\n apply: boolean\n /**\n * The hash fragment that should be scrolled to.\n */\n hashFragment: string | null\n /**\n * The paths of the segments that should be focused.\n */\n segmentPaths: FlightSegmentPath[]\n /**\n * If only the URLs hash fragment changed\n */\n onlyHashChange: boolean\n}\n\n/**\n * Handles keeping the state of app-router.\n */\nexport type AppRouterState = {\n /**\n * The router state, this is written into the history state in app-router using replaceState/pushState.\n * - Has to be serializable as it is written into the history state.\n * - Holds which segments and parallel routes are shown on the screen.\n */\n tree: FlightRouterState\n /**\n * The cache holds React nodes for every segment that is shown on screen as well as previously shown segments.\n * It also holds in-progress data requests.\n */\n cache: CacheNode\n /**\n * Decides if the update should create a new history entry and if the navigation has to trigger a browser navigation.\n */\n pushRef: PushRef\n /**\n * Decides if the update should apply scroll and focus management.\n */\n focusAndScrollRef: FocusAndScrollRef\n /**\n * The canonical url that is pushed/replaced.\n * - This is the url you see in the browser.\n */\n canonicalUrl: string\n renderedSearch: string\n /**\n * The underlying \"url\" representing the UI state, which is used for intercepting routes.\n */\n nextUrl: string | null\n\n /**\n * The previous next-url that was used previous to a dynamic navigation.\n */\n previousNextUrl: string | null\n\n debugInfo: Array<unknown> | null\n}\n\nexport type ReadonlyReducerState = Readonly<AppRouterState>\nexport type ReducerState =\n | (Promise<AppRouterState> & { _debugInfo?: Array<unknown> })\n | AppRouterState\nexport type ReducerActions = Readonly<\n | RefreshAction\n | NavigateAction\n | RestoreAction\n | ServerPatchAction\n | HmrRefreshAction\n | ServerActionAction\n>\n","/**\n * Check to see if a value is Thenable.\n *\n * @param promise the maybe-thenable value\n * @returns true if the value is thenable\n */\nexport function isThenable<T = unknown>(\n promise: Promise<T> | T\n): promise is Promise<T> {\n return (\n promise !== null &&\n typeof promise === 'object' &&\n 'then' in promise &&\n typeof promise.then === 'function'\n )\n}\n","import type { Dispatch } from 'react'\nimport React, { use, useMemo } from 'react'\nimport { isThenable } from '../../shared/lib/is-thenable'\nimport type { AppRouterActionQueue } from './app-router-instance'\nimport type {\n AppRouterState,\n ReducerActions,\n ReducerState,\n} from './router-reducer/router-reducer-types'\n\n// The app router state lives outside of React, so we can import the dispatch\n// method directly wherever we need it, rather than passing it around via props\n// or context.\nlet dispatch: Dispatch<ReducerActions> | null = null\n\nexport function dispatchAppRouterAction(action: ReducerActions) {\n if (dispatch === null) {\n throw new Error(\n 'Internal Next.js error: Router action dispatched before initialization.'\n )\n }\n dispatch(action)\n}\n\nconst __DEV__ = process.env.NODE_ENV !== 'production'\nconst promisesWithDebugInfo: WeakMap<\n Promise<AppRouterState>,\n Promise<AppRouterState> & { _debugInfo?: Array<unknown> }\n> = __DEV__ ? new WeakMap() : (null as any)\n\nexport function useActionQueue(\n actionQueue: AppRouterActionQueue\n): AppRouterState {\n const [state, setState] = React.useState<ReducerState>(actionQueue.state)\n\n // Because of a known issue that requires to decode Flight streams inside the\n // render phase, we have to be a bit clever and assign the dispatch method to\n // a module-level variable upon initialization. The useState hook in this\n // module only exists to synchronize state that lives outside of React.\n // Ideally, what we'd do instead is pass the state as a prop to root.render;\n // this is conceptually how we're modeling the app router state, despite the\n // weird implementation details.\n if (process.env.NODE_ENV !== 'production') {\n const { useAppDevRenderingIndicator } =\n require('../../next-devtools/userspace/use-app-dev-rendering-indicator') as typeof import('../../next-devtools/userspace/use-app-dev-rendering-indicator')\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const appDevRenderingIndicator = useAppDevRenderingIndicator()\n\n dispatch = (action: ReducerActions) => {\n appDevRenderingIndicator(() => {\n actionQueue.dispatch(action, setState)\n })\n }\n } else {\n dispatch = (action: ReducerActions) =>\n actionQueue.dispatch(action, setState)\n }\n\n // When navigating to a non-prefetched route, then App Router state will be\n // blocked until the server responds. We need to transfer the `_debugInfo`\n // from the underlying Flight response onto the top-level promise that is\n // passed to React (via `use`) so that the latency is accurately represented\n // in the React DevTools.\n const stateWithDebugInfo = useMemo(() => {\n if (!__DEV__) {\n return state\n }\n\n if (isThenable(state)) {\n // useMemo can't be used to cache a Promise since the memoized value is thrown\n // away when we suspend. So we use a WeakMap to cache the Promise with debug info.\n let promiseWithDebugInfo = promisesWithDebugInfo.get(state)\n if (promiseWithDebugInfo === undefined) {\n const debugInfo: Array<unknown> = []\n promiseWithDebugInfo = Promise.resolve(state).then((asyncState) => {\n if (asyncState.debugInfo !== null) {\n debugInfo.push(...asyncState.debugInfo)\n }\n return asyncState\n }) as Promise<AppRouterState> & { _debugInfo?: Array<unknown> }\n promiseWithDebugInfo._debugInfo = debugInfo\n\n promisesWithDebugInfo.set(state, promiseWithDebugInfo)\n }\n\n return promiseWithDebugInfo\n }\n return state\n }, [state])\n\n return isThenable(stateWithDebugInfo)\n ? use(stateWithDebugInfo)\n : stateWithDebugInfo\n}\n","import { startTransition } from 'react'\nimport { ACTION_SERVER_ACTION } from './components/router-reducer/router-reducer-types'\nimport { dispatchAppRouterAction } from './components/use-action-queue'\n\nexport async function callServer(actionId: string, actionArgs: any[]) {\n return new Promise((resolve, reject) => {\n startTransition(() => {\n dispatchAppRouterAction({\n type: ACTION_SERVER_ACTION,\n actionId,\n actionArgs,\n resolve,\n reject,\n })\n })\n })\n}\n","const basePath = process.env.__NEXT_ROUTER_BASEPATH || ''\nconst pathname = `${basePath}/__nextjs_source-map`\n\nexport const findSourceMapURL =\n process.env.NODE_ENV === 'development'\n ? function findSourceMapURL(filename: string): string | null {\n if (filename === '') {\n return null\n }\n\n if (\n filename.startsWith(document.location.origin) &&\n filename.includes('/_next/static')\n ) {\n // This is a request for a client chunk. This can only happen when\n // using Turbopack. In this case, since we control how those source\n // maps are generated, we can safely assume that the sourceMappingURL\n // is relative to the filename, with an added `.map` extension. The\n // browser can just request this file, and it gets served through the\n // normal dev server, without the need to route this through\n // the `/__nextjs_source-map` dev middleware.\n return `${filename}.map`\n }\n\n const url = new URL(pathname, document.location.origin)\n url.searchParams.set('filename', filename)\n\n return url.href\n }\n : undefined\n","// This file must be bundled in the app's client layer, it shouldn't be directly\n// imported by the server.\n\nexport { callServer } from 'next/dist/client/app-call-server'\nexport { findSourceMapURL } from 'next/dist/client/app-find-source-map-url'\n\n// A noop wrapper to let the Flight client create the server reference.\n// See also: https://github.com/facebook/react/pull/26632\n// eslint-disable-next-line import/no-extraneous-dependencies\nexport { createServerReference } from 'react-server-dom-webpack/client'\n","/* __next_internal_action_entry_do_not_use__ [{\"006866b1d0091494ff17b9a9e67423b4670d2e2af7\":\"getHomeDirectory\"},\"src/app/actions/git.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"006866b1d0091494ff17b9a9e67423b4670d2e2af7\",callServer,void 0,findSourceMapURL,\"getHomeDirectory\");export{$$RSC_SERVER_ACTION_0 as getHomeDirectory};","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n [\n 'path',\n {\n d: 'M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z',\n key: '1kt360',\n },\n ],\n];\n\n/**\n * @component @name Folder\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/folder\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Folder = createLucideIcon('folder', __iconNode);\n\nexport default Folder;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'm12 19-7-7 7-7', key: '1l729n' }],\n ['path', { d: 'M19 12H5', key: 'x3x0zl' }],\n];\n\n/**\n * @component @name ArrowLeft\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/arrow-left\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ArrowLeft = createLucideIcon('arrow-left', __iconNode);\n\nexport default ArrowLeft;\n","export function getBaseName(path: string): string {\n if (!path) return '';\n // Support both Windows (\\) and POSIX (/) separators\n // Using a simpler approach to avoid regex escaping issues in some environments\n const normalized = path.replace(/\\\\/g, '/');\n const parts = normalized.split('/');\n // Filter out empty strings which can happen with trailing slashes or absolute paths\n return parts.filter(Boolean).pop() || '';\n}\n\nexport function getDirName(path: string): string {\n if (!path) return '';\n \n // Normalize separators to / for easier processing\n const normalized = path.replace(/\\\\/g, '/');\n \n // Remove trailing slash if it exists (but not if it's the root '/')\n const withoutTrailing = (normalized.length > 1 && normalized.endsWith('/')) \n ? normalized.slice(0, -1) \n : normalized;\n \n const lastIdx = withoutTrailing.lastIndexOf('/');\n \n if (lastIdx === -1) {\n // No separator found. Could be a relative path or a Windows drive root like \"C:\"\n if (path.includes(':') && path.length <= 3) return path; // Return as is if it's \"C:\\\" or \"C:\"\n return '.';\n }\n \n if (lastIdx === 0) return '/';\n \n // On Windows, if we're at \"C:/\", lastIdx might be 2.\n if (path.includes(':') && lastIdx === 2) {\n return withoutTrailing.substring(0, 3); // \"C:/\"\n }\n \n return withoutTrailing.substring(0, lastIdx);\n}\n","/* __next_internal_action_entry_do_not_use__ [{\"7ff9fcace0bf701d5c43fc467a7090a488658894c2\":\"startTtydProcess\"},\"src/app/actions/git.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_7=/*#__PURE__*/createServerReference(\"7ff9fcace0bf701d5c43fc467a7090a488658894c2\",callServer,void 0,findSourceMapURL,\"startTtydProcess\");export{$$RSC_SERVER_ACTION_7 as startTtydProcess};","/* __next_internal_action_entry_do_not_use__ [{\"7ff85b1a8e091bf2ecf59c79c2e6cb8f14214443dc\":\"saveAttachments\"},\"src/app/actions/git.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_13=/*#__PURE__*/createServerReference(\"7ff85b1a8e091bf2ecf59c79c2e6cb8f14214443dc\",callServer,void 0,findSourceMapURL,\"saveAttachments\");export{$$RSC_SERVER_ACTION_13 as saveAttachments};","/* __next_internal_action_entry_do_not_use__ [{\"009dbb3c36182a233decad76f798eb49483d11cbf3\":\"getConfig\"},\"src/app/actions/config.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"009dbb3c36182a233decad76f798eb49483d11cbf3\",callServer,void 0,findSourceMapURL,\"getConfig\");export{$$RSC_SERVER_ACTION_0 as getConfig};","/* __next_internal_action_entry_do_not_use__ [{\"40dd64cc7e4e61a98f15b10a8a9c050f5767c3a68a\":\"updateConfig\"},\"src/app/actions/config.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_2=/*#__PURE__*/createServerReference(\"40dd64cc7e4e61a98f15b10a8a9c050f5767c3a68a\",callServer,void 0,findSourceMapURL,\"updateConfig\");export{$$RSC_SERVER_ACTION_2 as updateConfig};","import type { FlightRouterState, Segment } from './app-router-types'\n\nexport function getSegmentValue(segment: Segment) {\n return Array.isArray(segment) ? segment[1] : segment\n}\n\nexport function isGroupSegment(segment: string) {\n // Use array[0] for performant purpose\n return segment[0] === '(' && segment.endsWith(')')\n}\n\nexport function isParallelRouteSegment(segment: string) {\n return segment.startsWith('@') && segment !== '@children'\n}\n\nexport function addSearchParamsIfPageSegment(\n segment: Segment,\n searchParams: Record<string, string | string[] | undefined>\n) {\n const isPageSegment = segment.includes(PAGE_SEGMENT_KEY)\n\n if (isPageSegment) {\n const stringifiedQuery = JSON.stringify(searchParams)\n return stringifiedQuery !== '{}'\n ? PAGE_SEGMENT_KEY + '?' + stringifiedQuery\n : PAGE_SEGMENT_KEY\n }\n\n return segment\n}\n\nexport function computeSelectedLayoutSegment(\n segments: string[] | null,\n parallelRouteKey: string\n): string | null {\n if (!segments || segments.length === 0) {\n return null\n }\n\n // For 'children', use first segment; for other parallel routes, use last segment\n const rawSegment =\n parallelRouteKey === 'children'\n ? segments[0]\n : segments[segments.length - 1]\n\n // If the default slot is showing, return null since it's not technically \"selected\" (it's a fallback)\n // Returning an internal value like `__DEFAULT__` would be confusing\n return rawSegment === DEFAULT_SEGMENT_KEY ? null : rawSegment\n}\n\n/** Get the canonical parameters from the current level to the leaf node. */\nexport function getSelectedLayoutSegmentPath(\n tree: FlightRouterState,\n parallelRouteKey: string,\n first = true,\n segmentPath: string[] = []\n): string[] {\n let node: FlightRouterState\n if (first) {\n // Use the provided parallel route key on the first parallel route\n node = tree[1][parallelRouteKey]\n } else {\n // After first parallel route prefer children, if there's no children pick the first parallel route.\n const parallelRoutes = tree[1]\n node = parallelRoutes.children ?? Object.values(parallelRoutes)[0]\n }\n\n if (!node) return segmentPath\n const segment = node[0]\n\n let segmentValue = getSegmentValue(segment)\n\n if (!segmentValue || segmentValue.startsWith(PAGE_SEGMENT_KEY)) {\n return segmentPath\n }\n\n segmentPath.push(segmentValue)\n\n return getSelectedLayoutSegmentPath(\n node,\n parallelRouteKey,\n false,\n segmentPath\n )\n}\n\nexport const PAGE_SEGMENT_KEY = '__PAGE__'\nexport const DEFAULT_SEGMENT_KEY = '__DEFAULT__'\nexport const NOT_FOUND_SEGMENT_KEY = '/_not-found'\n","export class UnrecognizedActionError extends Error {\n constructor(...args: ConstructorParameters<typeof Error>) {\n super(...args)\n this.name = 'UnrecognizedActionError'\n }\n}\n\n/**\n * Check whether a server action call failed because the server action was not recognized by the server.\n * This can happen if the client and the server are not from the same deployment.\n *\n * Example usage:\n * ```ts\n * try {\n * await myServerAction();\n * } catch (err) {\n * if (unstable_isUnrecognizedActionError(err)) {\n * // The client is from a different deployment than the server.\n * // Reloading the page will fix this mismatch.\n * window.alert(\"Please refresh the page and try again\");\n * return;\n * }\n * }\n * ```\n * */\nexport function unstable_isUnrecognizedActionError(\n error: unknown\n): error is UnrecognizedActionError {\n return !!(\n error &&\n typeof error === 'object' &&\n error instanceof UnrecognizedActionError\n )\n}\n","/**\n * ReadonlyURLSearchParams implementation shared between client and server.\n * This file is intentionally not marked as 'use client' or 'use server'\n * so it can be imported by both environments.\n */\n\n/** @internal */\nclass ReadonlyURLSearchParamsError extends Error {\n constructor() {\n super(\n 'Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams'\n )\n }\n}\n\n/**\n * A read-only version of URLSearchParams that throws errors when mutation methods are called.\n * This ensures that the URLSearchParams returned by useSearchParams() cannot be mutated.\n */\nexport class ReadonlyURLSearchParams extends URLSearchParams {\n /** @deprecated Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams */\n append() {\n throw new ReadonlyURLSearchParamsError()\n }\n /** @deprecated Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams */\n delete() {\n throw new ReadonlyURLSearchParamsError()\n }\n /** @deprecated Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams */\n set() {\n throw new ReadonlyURLSearchParamsError()\n }\n /** @deprecated Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams */\n sort() {\n throw new ReadonlyURLSearchParamsError()\n }\n}\n","export enum RedirectStatusCode {\n SeeOther = 303,\n TemporaryRedirect = 307,\n PermanentRedirect = 308,\n}\n","import { RedirectStatusCode } from './redirect-status-code'\n\nexport const REDIRECT_ERROR_CODE = 'NEXT_REDIRECT'\n\nexport enum RedirectType {\n push = 'push',\n replace = 'replace',\n}\n\nexport type RedirectError = Error & {\n digest: `${typeof REDIRECT_ERROR_CODE};${RedirectType};${string};${RedirectStatusCode};`\n}\n\n/**\n * Checks an error to determine if it's an error generated by the\n * `redirect(url)` helper.\n *\n * @param error the error that may reference a redirect error\n * @returns true if the error is a redirect error\n */\nexport function isRedirectError(error: unknown): error is RedirectError {\n if (\n typeof error !== 'object' ||\n error === null ||\n !('digest' in error) ||\n typeof error.digest !== 'string'\n ) {\n return false\n }\n\n const digest = error.digest.split(';')\n const [errorCode, type] = digest\n const destination = digest.slice(2, -2).join(';')\n const status = digest.at(-2)\n\n const statusCode = Number(status)\n\n return (\n errorCode === REDIRECT_ERROR_CODE &&\n (type === 'replace' || type === 'push') &&\n typeof destination === 'string' &&\n !isNaN(statusCode) &&\n statusCode in RedirectStatusCode\n )\n}\n","import { RedirectStatusCode } from './redirect-status-code'\nimport {\n RedirectType,\n type RedirectError,\n isRedirectError,\n REDIRECT_ERROR_CODE,\n} from './redirect-error'\n\nconst actionAsyncStorage =\n typeof window === 'undefined'\n ? (\n require('../../server/app-render/action-async-storage.external') as typeof import('../../server/app-render/action-async-storage.external')\n ).actionAsyncStorage\n : undefined\n\nexport function getRedirectError(\n url: string,\n type: RedirectType,\n statusCode: RedirectStatusCode = RedirectStatusCode.TemporaryRedirect\n): RedirectError {\n const error = new Error(REDIRECT_ERROR_CODE) as RedirectError\n error.digest = `${REDIRECT_ERROR_CODE};${type};${url};${statusCode};`\n return error\n}\n\n/**\n * This function allows you to redirect the user to another URL. It can be used in\n * [Server Components](https://nextjs.org/docs/app/building-your-application/rendering/server-components),\n * [Route Handlers](https://nextjs.org/docs/app/building-your-application/routing/route-handlers), and\n * [Server Actions](https://nextjs.org/docs/app/building-your-application/data-fetching/server-actions-and-mutations).\n *\n * - In a Server Component, this will insert a meta tag to redirect the user to the target page.\n * - In a Route Handler or Server Action, it will serve a 307/303 to the caller.\n * - In a Server Action, type defaults to 'push' and 'replace' elsewhere.\n *\n * Read more: [Next.js Docs: `redirect`](https://nextjs.org/docs/app/api-reference/functions/redirect)\n */\nexport function redirect(\n /** The URL to redirect to */\n url: string,\n type?: RedirectType\n): never {\n type ??= actionAsyncStorage?.getStore()?.isAction\n ? RedirectType.push\n : RedirectType.replace\n\n throw getRedirectError(url, type, RedirectStatusCode.TemporaryRedirect)\n}\n\n/**\n * This function allows you to redirect the user to another URL. It can be used in\n * [Server Components](https://nextjs.org/docs/app/building-your-application/rendering/server-components),\n * [Route Handlers](https://nextjs.org/docs/app/building-your-application/routing/route-handlers), and\n * [Server Actions](https://nextjs.org/docs/app/building-your-application/data-fetching/server-actions-and-mutations).\n *\n * - In a Server Component, this will insert a meta tag to redirect the user to the target page.\n * - In a Route Handler or Server Action, it will serve a 308/303 to the caller.\n *\n * Read more: [Next.js Docs: `redirect`](https://nextjs.org/docs/app/api-reference/functions/redirect)\n */\nexport function permanentRedirect(\n /** The URL to redirect to */\n url: string,\n type: RedirectType = RedirectType.replace\n): never {\n throw getRedirectError(url, type, RedirectStatusCode.PermanentRedirect)\n}\n\n/**\n * Returns the encoded URL from the error if it's a RedirectError, null\n * otherwise. Note that this does not validate the URL returned.\n *\n * @param error the error that may be a redirect error\n * @return the url if the error was a redirect error\n */\nexport function getURLFromRedirectError(error: RedirectError): string\nexport function getURLFromRedirectError(error: unknown): string | null {\n if (!isRedirectError(error)) return null\n\n // Slices off the beginning of the digest that contains the code and the\n // separating ';'.\n return error.digest.split(';').slice(2, -2).join(';')\n}\n\nexport function getRedirectTypeFromError(error: RedirectError): RedirectType {\n if (!isRedirectError(error)) {\n throw new Error('Not a redirect error')\n }\n\n return error.digest.split(';', 2)[1] as RedirectType\n}\n\nexport function getRedirectStatusCodeFromError(error: RedirectError): number {\n if (!isRedirectError(error)) {\n throw new Error('Not a redirect error')\n }\n\n return Number(error.digest.split(';').at(-2))\n}\n","export const HTTPAccessErrorStatus = {\n NOT_FOUND: 404,\n FORBIDDEN: 403,\n UNAUTHORIZED: 401,\n}\n\nconst ALLOWED_CODES = new Set(Object.values(HTTPAccessErrorStatus))\n\nexport const HTTP_ERROR_FALLBACK_ERROR_CODE = 'NEXT_HTTP_ERROR_FALLBACK'\n\nexport type HTTPAccessFallbackError = Error & {\n digest: `${typeof HTTP_ERROR_FALLBACK_ERROR_CODE};${string}`\n}\n\n/**\n * Checks an error to determine if it's an error generated by\n * the HTTP navigation APIs `notFound()`, `forbidden()` or `unauthorized()`.\n *\n * @param error the error that may reference a HTTP access error\n * @returns true if the error is a HTTP access error\n */\nexport function isHTTPAccessFallbackError(\n error: unknown\n): error is HTTPAccessFallbackError {\n if (\n typeof error !== 'object' ||\n error === null ||\n !('digest' in error) ||\n typeof error.digest !== 'string'\n ) {\n return false\n }\n const [prefix, httpStatus] = error.digest.split(';')\n\n return (\n prefix === HTTP_ERROR_FALLBACK_ERROR_CODE &&\n ALLOWED_CODES.has(Number(httpStatus))\n )\n}\n\nexport function getAccessFallbackHTTPStatus(\n error: HTTPAccessFallbackError\n): number {\n const httpStatus = error.digest.split(';')[1]\n return Number(httpStatus)\n}\n\nexport function getAccessFallbackErrorTypeByStatus(\n status: number\n): 'not-found' | 'forbidden' | 'unauthorized' | undefined {\n switch (status) {\n case 401:\n return 'unauthorized'\n case 403:\n return 'forbidden'\n case 404:\n return 'not-found'\n default:\n return\n }\n}\n","import {\n HTTP_ERROR_FALLBACK_ERROR_CODE,\n type HTTPAccessFallbackError,\n} from './http-access-fallback/http-access-fallback'\n\n/**\n * This function allows you to render the [not-found.js file](https://nextjs.org/docs/app/api-reference/file-conventions/not-found)\n * within a route segment as well as inject a tag.\n *\n * `notFound()` can be used in\n * [Server Components](https://nextjs.org/docs/app/building-your-application/rendering/server-components),\n * [Route Handlers](https://nextjs.org/docs/app/building-your-application/routing/route-handlers), and\n * [Server Actions](https://nextjs.org/docs/app/building-your-application/data-fetching/server-actions-and-mutations).\n *\n * - In a Server Component, this will insert a `<meta name=\"robots\" content=\"noindex\" />` meta tag and set the status code to 404.\n * - In a Route Handler or Server Action, it will serve a 404 to the caller.\n *\n * Read more: [Next.js Docs: `notFound`](https://nextjs.org/docs/app/api-reference/functions/not-found)\n */\n\nconst DIGEST = `${HTTP_ERROR_FALLBACK_ERROR_CODE};404`\n\nexport function notFound(): never {\n const error = new Error(DIGEST) as HTTPAccessFallbackError\n ;(error as HTTPAccessFallbackError).digest = DIGEST\n\n throw error\n}\n","import {\n HTTP_ERROR_FALLBACK_ERROR_CODE,\n type HTTPAccessFallbackError,\n} from './http-access-fallback/http-access-fallback'\n\n// TODO: Add `forbidden` docs\n/**\n * @experimental\n * This function allows you to render the [forbidden.js file](https://nextjs.org/docs/app/api-reference/file-conventions/forbidden)\n * within a route segment as well as inject a tag.\n *\n * `forbidden()` can be used in\n * [Server Components](https://nextjs.org/docs/app/building-your-application/rendering/server-components),\n * [Route Handlers](https://nextjs.org/docs/app/building-your-application/routing/route-handlers), and\n * [Server Actions](https://nextjs.org/docs/app/building-your-application/data-fetching/server-actions-and-mutations).\n *\n * Read more: [Next.js Docs: `forbidden`](https://nextjs.org/docs/app/api-reference/functions/forbidden)\n */\n\nconst DIGEST = `${HTTP_ERROR_FALLBACK_ERROR_CODE};403`\n\nexport function forbidden(): never {\n if (!process.env.__NEXT_EXPERIMENTAL_AUTH_INTERRUPTS) {\n throw new Error(\n `\\`forbidden()\\` is experimental and only allowed to be enabled when \\`experimental.authInterrupts\\` is enabled.`\n )\n }\n\n const error = new Error(DIGEST) as HTTPAccessFallbackError\n ;(error as HTTPAccessFallbackError).digest = DIGEST\n throw error\n}\n","import {\n HTTP_ERROR_FALLBACK_ERROR_CODE,\n type HTTPAccessFallbackError,\n} from './http-access-fallback/http-access-fallback'\n\n// TODO: Add `unauthorized` docs\n/**\n * @experimental\n * This function allows you to render the [unauthorized.js file](https://nextjs.org/docs/app/api-reference/file-conventions/unauthorized)\n * within a route segment as well as inject a tag.\n *\n * `unauthorized()` can be used in\n * [Server Components](https://nextjs.org/docs/app/building-your-application/rendering/server-components),\n * [Route Handlers](https://nextjs.org/docs/app/building-your-application/routing/route-handlers), and\n * [Server Actions](https://nextjs.org/docs/app/building-your-application/data-fetching/server-actions-and-mutations).\n *\n *\n * Read more: [Next.js Docs: `unauthorized`](https://nextjs.org/docs/app/api-reference/functions/unauthorized)\n */\n\nconst DIGEST = `${HTTP_ERROR_FALLBACK_ERROR_CODE};401`\n\nexport function unauthorized(): never {\n if (!process.env.__NEXT_EXPERIMENTAL_AUTH_INTERRUPTS) {\n throw new Error(\n `\\`unauthorized()\\` is experimental and only allowed to be used when \\`experimental.authInterrupts\\` is enabled.`\n )\n }\n\n const error = new Error(DIGEST) as HTTPAccessFallbackError\n ;(error as HTTPAccessFallbackError).digest = DIGEST\n throw error\n}\n","import type { NonStaticRenderStage } from './app-render/staged-rendering'\nimport type { RequestStore } from './app-render/work-unit-async-storage.external'\n\nexport function isHangingPromiseRejectionError(\n err: unknown\n): err is HangingPromiseRejectionError {\n if (typeof err !== 'object' || err === null || !('digest' in err)) {\n return false\n }\n\n return err.digest === HANGING_PROMISE_REJECTION\n}\n\nconst HANGING_PROMISE_REJECTION = 'HANGING_PROMISE_REJECTION'\n\nclass HangingPromiseRejectionError extends Error {\n public readonly digest = HANGING_PROMISE_REJECTION\n\n constructor(\n public readonly route: string,\n public readonly expression: string\n ) {\n super(\n `During prerendering, ${expression} rejects when the prerender is complete. Typically these errors are handled by React but if you move ${expression} to a different context by using \\`setTimeout\\`, \\`after\\`, or similar functions you may observe this error and you should handle it in that context. This occurred at route \"${route}\".`\n )\n }\n}\n\ntype AbortListeners = Array<(err: unknown) => void>\nconst abortListenersBySignal = new WeakMap<AbortSignal, AbortListeners>()\n\n/**\n * This function constructs a promise that will never resolve. This is primarily\n * useful for cacheComponents where we use promise resolution timing to determine which\n * parts of a render can be included in a prerender.\n *\n * @internal\n */\nexport function makeHangingPromise<T>(\n signal: AbortSignal,\n route: string,\n expression: string\n): Promise<T> {\n if (signal.aborted) {\n return Promise.reject(new HangingPromiseRejectionError(route, expression))\n } else {\n const hangingPromise = new Promise<T>((_, reject) => {\n const boundRejection = reject.bind(\n null,\n new HangingPromiseRejectionError(route, expression)\n )\n let currentListeners = abortListenersBySignal.get(signal)\n if (currentListeners) {\n currentListeners.push(boundRejection)\n } else {\n const listeners = [boundRejection]\n abortListenersBySignal.set(signal, listeners)\n signal.addEventListener(\n 'abort',\n () => {\n for (let i = 0; i < listeners.length; i++) {\n listeners[i]()\n }\n },\n { once: true }\n )\n }\n })\n // We are fine if no one actually awaits this promise. We shouldn't consider this an unhandled rejection so\n // we attach a noop catch handler here to suppress this warning. If you actually await somewhere or construct\n // your own promise out of it you'll need to ensure you handle the error when it rejects.\n hangingPromise.catch(ignoreReject)\n return hangingPromise\n }\n}\n\nfunction ignoreReject() {}\n\nexport function makeDevtoolsIOAwarePromise<T>(\n underlying: T,\n requestStore: RequestStore,\n stage: NonStaticRenderStage\n): Promise<T> {\n if (requestStore.stagedRendering) {\n // We resolve each stage in a timeout, so React DevTools will pick this up as IO.\n return requestStore.stagedRendering.delayUntilStage(\n stage,\n undefined,\n underlying\n )\n }\n // in React DevTools if we resolve in a setTimeout we will observe\n // the promise resolution as something that can suspend a boundary or root.\n return new Promise<T>((resolve) => {\n // Must use setTimeout to be considered IO React DevTools. setImmediate will not work.\n setTimeout(() => {\n resolve(underlying)\n }, 0)\n })\n}\n","const REACT_POSTPONE_TYPE: symbol = Symbol.for('react.postpone')\n\nexport function isPostpone(error: any): boolean {\n return (\n typeof error === 'object' &&\n error !== null &&\n error.$$typeof === REACT_POSTPONE_TYPE\n )\n}\n","// This has to be a shared module which is shared between client component error boundary and dynamic component\nconst BAILOUT_TO_CSR = 'BAILOUT_TO_CLIENT_SIDE_RENDERING'\n\n/** An error that should be thrown when we want to bail out to client-side rendering. */\nexport class BailoutToCSRError extends Error {\n public readonly digest = BAILOUT_TO_CSR\n\n constructor(public readonly reason: string) {\n super(`Bail out to client-side rendering: ${reason}`)\n }\n}\n\n/** Checks if a passed argument is an error that is thrown if we want to bail out to client-side rendering. */\nexport function isBailoutToCSRError(err: unknown): err is BailoutToCSRError {\n if (typeof err !== 'object' || err === null || !('digest' in err)) {\n return false\n }\n\n return err.digest === BAILOUT_TO_CSR\n}\n","import {\n isHTTPAccessFallbackError,\n type HTTPAccessFallbackError,\n} from './http-access-fallback/http-access-fallback'\nimport { isRedirectError, type RedirectError } from './redirect-error'\n\n/**\n * Returns true if the error is a navigation signal error. These errors are\n * thrown by user code to perform navigation operations and interrupt the React\n * render.\n */\nexport function isNextRouterError(\n error: unknown\n): error is RedirectError | HTTPAccessFallbackError {\n return isRedirectError(error) || isHTTPAccessFallbackError(error)\n}\n","const DYNAMIC_ERROR_CODE = 'DYNAMIC_SERVER_USAGE'\n\nexport class DynamicServerError extends Error {\n digest: typeof DYNAMIC_ERROR_CODE = DYNAMIC_ERROR_CODE\n\n constructor(public readonly description: string) {\n super(`Dynamic server usage: ${description}`)\n }\n}\n\nexport function isDynamicServerError(err: unknown): err is DynamicServerError {\n if (\n typeof err !== 'object' ||\n err === null ||\n !('digest' in err) ||\n typeof err.digest !== 'string'\n ) {\n return false\n }\n\n return err.digest === DYNAMIC_ERROR_CODE\n}\n","const NEXT_STATIC_GEN_BAILOUT = 'NEXT_STATIC_GEN_BAILOUT'\n\nexport class StaticGenBailoutError extends Error {\n public readonly code = NEXT_STATIC_GEN_BAILOUT\n}\n\nexport function isStaticGenBailoutError(\n error: unknown\n): error is StaticGenBailoutError {\n if (typeof error !== 'object' || error === null || !('code' in error)) {\n return false\n }\n\n return error.code === NEXT_STATIC_GEN_BAILOUT\n}\n","export const METADATA_BOUNDARY_NAME = '__next_metadata_boundary__'\nexport const VIEWPORT_BOUNDARY_NAME = '__next_viewport_boundary__'\nexport const OUTLET_BOUNDARY_NAME = '__next_outlet_boundary__'\nexport const ROOT_LAYOUT_BOUNDARY_NAME = '__next_root_layout_boundary__'\n","export type ScheduledFn<T = void> = () => T | PromiseLike<T>\nexport type SchedulerFn<T = void> = (cb: ScheduledFn<T>) => void\n\n/**\n * Schedules a function to be called on the next tick after the other promises\n * have been resolved.\n *\n * @param cb the function to schedule\n */\nexport const scheduleOnNextTick = (cb: ScheduledFn<void>) => {\n // We use Promise.resolve().then() here so that the operation is scheduled at\n // the end of the promise job queue, we then add it to the next process tick\n // to ensure it's evaluated afterwards.\n //\n // This was inspired by the implementation of the DataLoader interface: https://github.com/graphql/dataloader/blob/d336bd15282664e0be4b4a657cb796f09bafbc6b/src/index.js#L213-L255\n //\n Promise.resolve().then(() => {\n if (process.env.NEXT_RUNTIME === 'edge') {\n setTimeout(cb, 0)\n } else {\n process.nextTick(cb)\n }\n })\n}\n\n/**\n * Schedules a function to be called using `setImmediate` or `setTimeout` if\n * `setImmediate` is not available (like in the Edge runtime).\n *\n * @param cb the function to schedule\n */\nexport const scheduleImmediate = (cb: ScheduledFn<void>): void => {\n if (process.env.NEXT_RUNTIME === 'edge') {\n setTimeout(cb, 0)\n } else {\n setImmediate(cb)\n }\n}\n\n/**\n * returns a promise than resolves in a future task. There is no guarantee that the task it resolves in\n * will be the next task but if you await it you can at least be sure that the current task is over and\n * most usefully that the entire microtask queue of the current task has been emptied.\n */\nexport function atLeastOneTask() {\n return new Promise<void>((resolve) => scheduleImmediate(resolve))\n}\n\n/**\n * This utility function is extracted to make it easier to find places where we are doing\n * specific timing tricks to try to schedule work after React has rendered. This is especially\n * important at the moment because Next.js uses the edge builds of React which use setTimeout to\n * schedule work when you might expect that something like setImmediate would do the trick.\n *\n * Long term we should switch to the node versions of React rendering when possible and then\n * update this to use setImmediate rather than setTimeout\n */\nexport function waitAtLeastOneReactRenderTask(): Promise<void> {\n if (process.env.NEXT_RUNTIME === 'edge') {\n return new Promise((r) => setTimeout(r, 0))\n } else {\n return new Promise((r) => setImmediate(r))\n }\n}\n","export class InvariantError extends Error {\n constructor(message: string, options?: ErrorOptions) {\n super(\n `Invariant: ${message.endsWith('.') ? message : message + '.'} This is a bug in Next.js.`,\n options\n )\n this.name = 'InvariantError'\n }\n}\n","/**\n * The functions provided by this module are used to communicate certain properties\n * about the currently running code so that Next.js can make decisions on how to handle\n * the current execution in different rendering modes such as pre-rendering, resuming, and SSR.\n *\n * Today Next.js treats all code as potentially static. Certain APIs may only make sense when dynamically rendering.\n * Traditionally this meant deopting the entire render to dynamic however with PPR we can now deopt parts\n * of a React tree as dynamic while still keeping other parts static. There are really two different kinds of\n * Dynamic indications.\n *\n * The first is simply an intention to be dynamic. unstable_noStore is an example of this where\n * the currently executing code simply declares that the current scope is dynamic but if you use it\n * inside unstable_cache it can still be cached. This type of indication can be removed if we ever\n * make the default dynamic to begin with because the only way you would ever be static is inside\n * a cache scope which this indication does not affect.\n *\n * The second is an indication that a dynamic data source was read. This is a stronger form of dynamic\n * because it means that it is inappropriate to cache this at all. using a dynamic data source inside\n * unstable_cache should error. If you want to use some dynamic data inside unstable_cache you should\n * read that data outside the cache and pass it in as an argument to the cached function.\n */\n\nimport type { WorkStore } from '../app-render/work-async-storage.external'\nimport type {\n WorkUnitStore,\n PrerenderStoreLegacy,\n PrerenderStoreModern,\n PrerenderStoreModernRuntime,\n} from '../app-render/work-unit-async-storage.external'\n\n// Once postpone is in stable we should switch to importing the postpone export directly\nimport React from 'react'\n\nimport { DynamicServerError } from '../../client/components/hooks-server-context'\nimport { StaticGenBailoutError } from '../../client/components/static-generation-bailout'\nimport {\n getRuntimeStagePromise,\n throwForMissingRequestStore,\n workUnitAsyncStorage,\n} from './work-unit-async-storage.external'\nimport { workAsyncStorage } from '../app-render/work-async-storage.external'\nimport { makeHangingPromise } from '../dynamic-rendering-utils'\nimport {\n METADATA_BOUNDARY_NAME,\n VIEWPORT_BOUNDARY_NAME,\n OUTLET_BOUNDARY_NAME,\n ROOT_LAYOUT_BOUNDARY_NAME,\n} from '../../lib/framework/boundary-constants'\nimport { scheduleOnNextTick } from '../../lib/scheduler'\nimport { BailoutToCSRError } from '../../shared/lib/lazy-dynamic/bailout-to-csr'\nimport { InvariantError } from '../../shared/lib/invariant-error'\n\nconst hasPostpone = typeof React.unstable_postpone === 'function'\n\nexport type DynamicAccess = {\n /**\n * If debugging, this will contain the stack trace of where the dynamic access\n * occurred. This is used to provide more information to the user about why\n * their page is being rendered dynamically.\n */\n stack?: string\n\n /**\n * The expression that was accessed dynamically.\n */\n expression: string\n}\n\n// Stores dynamic reasons used during an RSC render.\nexport type DynamicTrackingState = {\n /**\n * When true, stack information will also be tracked during dynamic access.\n */\n readonly isDebugDynamicAccesses: boolean | undefined\n\n /**\n * The dynamic accesses that occurred during the render.\n */\n readonly dynamicAccesses: Array<DynamicAccess>\n\n syncDynamicErrorWithStack: null | Error\n}\n\n// Stores dynamic reasons used during an SSR render.\nexport type DynamicValidationState = {\n hasSuspenseAboveBody: boolean\n hasDynamicMetadata: boolean\n dynamicMetadata: null | Error\n hasDynamicViewport: boolean\n hasAllowedDynamic: boolean\n dynamicErrors: Array<Error>\n}\n\nexport function createDynamicTrackingState(\n isDebugDynamicAccesses: boolean | undefined\n): DynamicTrackingState {\n return {\n isDebugDynamicAccesses,\n dynamicAccesses: [],\n syncDynamicErrorWithStack: null,\n }\n}\n\nexport function createDynamicValidationState(): DynamicValidationState {\n return {\n hasSuspenseAboveBody: false,\n hasDynamicMetadata: false,\n dynamicMetadata: null,\n hasDynamicViewport: false,\n hasAllowedDynamic: false,\n dynamicErrors: [],\n }\n}\n\nexport function getFirstDynamicReason(\n trackingState: DynamicTrackingState\n): undefined | string {\n return trackingState.dynamicAccesses[0]?.expression\n}\n\n/**\n * This function communicates that the current scope should be treated as dynamic.\n *\n * In most cases this function is a no-op but if called during\n * a PPR prerender it will postpone the current sub-tree and calling\n * it during a normal prerender will cause the entire prerender to abort\n */\nexport function markCurrentScopeAsDynamic(\n store: WorkStore,\n workUnitStore: undefined | Exclude<WorkUnitStore, PrerenderStoreModern>,\n expression: string\n): void {\n if (workUnitStore) {\n switch (workUnitStore.type) {\n case 'cache':\n case 'unstable-cache':\n // Inside cache scopes, marking a scope as dynamic has no effect,\n // because the outer cache scope creates a cache boundary. This is\n // subtly different from reading a dynamic data source, which is\n // forbidden inside a cache scope.\n return\n case 'private-cache':\n // A private cache scope is already dynamic by definition.\n return\n case 'prerender-legacy':\n case 'prerender-ppr':\n case 'request':\n break\n default:\n workUnitStore satisfies never\n }\n }\n\n // If we're forcing dynamic rendering or we're forcing static rendering, we\n // don't need to do anything here because the entire page is already dynamic\n // or it's static and it should not throw or postpone here.\n if (store.forceDynamic || store.forceStatic) return\n\n if (store.dynamicShouldError) {\n throw new StaticGenBailoutError(\n `Route ${store.route} with \\`dynamic = \"error\"\\` couldn't be rendered statically because it used \\`${expression}\\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`\n )\n }\n\n if (workUnitStore) {\n switch (workUnitStore.type) {\n case 'prerender-ppr':\n return postponeWithTracking(\n store.route,\n expression,\n workUnitStore.dynamicTracking\n )\n case 'prerender-legacy':\n workUnitStore.revalidate = 0\n\n // We aren't prerendering, but we are generating a static page. We need\n // to bail out of static generation.\n const err = new DynamicServerError(\n `Route ${store.route} couldn't be rendered statically because it used ${expression}. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`\n )\n store.dynamicUsageDescription = expression\n store.dynamicUsageStack = err.stack\n\n throw err\n case 'request':\n if (process.env.NODE_ENV !== 'production') {\n workUnitStore.usedDynamic = true\n }\n break\n default:\n workUnitStore satisfies never\n }\n }\n}\n\n/**\n * This function is meant to be used when prerendering without cacheComponents or PPR.\n * When called during a build it will cause Next.js to consider the route as dynamic.\n *\n * @internal\n */\nexport function throwToInterruptStaticGeneration(\n expression: string,\n store: WorkStore,\n prerenderStore: PrerenderStoreLegacy\n): never {\n // We aren't prerendering but we are generating a static page. We need to bail out of static generation\n const err = new DynamicServerError(\n `Route ${store.route} couldn't be rendered statically because it used \\`${expression}\\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`\n )\n\n prerenderStore.revalidate = 0\n\n store.dynamicUsageDescription = expression\n store.dynamicUsageStack = err.stack\n\n throw err\n}\n\n/**\n * This function should be used to track whether something dynamic happened even when\n * we are in a dynamic render. This is useful for Dev where all renders are dynamic but\n * we still track whether dynamic APIs were accessed for helpful messaging\n *\n * @internal\n */\nexport function trackDynamicDataInDynamicRender(workUnitStore: WorkUnitStore) {\n switch (workUnitStore.type) {\n case 'cache':\n case 'unstable-cache':\n // Inside cache scopes, marking a scope as dynamic has no effect,\n // because the outer cache scope creates a cache boundary. This is\n // subtly different from reading a dynamic data source, which is\n // forbidden inside a cache scope.\n return\n case 'private-cache':\n // A private cache scope is already dynamic by definition.\n return\n case 'prerender':\n case 'prerender-runtime':\n case 'prerender-legacy':\n case 'prerender-ppr':\n case 'prerender-client':\n break\n case 'request':\n if (process.env.NODE_ENV !== 'production') {\n workUnitStore.usedDynamic = true\n }\n break\n default:\n workUnitStore satisfies never\n }\n}\n\nfunction abortOnSynchronousDynamicDataAccess(\n route: string,\n expression: string,\n prerenderStore: PrerenderStoreModern\n): void {\n const reason = `Route ${route} needs to bail out of prerendering at this point because it used ${expression}.`\n\n const error = createPrerenderInterruptedError(reason)\n\n prerenderStore.controller.abort(error)\n\n const dynamicTracking = prerenderStore.dynamicTracking\n if (dynamicTracking) {\n dynamicTracking.dynamicAccesses.push({\n // When we aren't debugging, we don't need to create another error for the\n // stack trace.\n stack: dynamicTracking.isDebugDynamicAccesses\n ? new Error().stack\n : undefined,\n expression,\n })\n }\n}\n\nexport function abortOnSynchronousPlatformIOAccess(\n route: string,\n expression: string,\n errorWithStack: Error,\n prerenderStore: PrerenderStoreModern\n): void {\n const dynamicTracking = prerenderStore.dynamicTracking\n abortOnSynchronousDynamicDataAccess(route, expression, prerenderStore)\n // It is important that we set this tracking value after aborting. Aborts are executed\n // synchronously except for the case where you abort during render itself. By setting this\n // value late we can use it to determine if any of the aborted tasks are the task that\n // called the sync IO expression in the first place.\n if (dynamicTracking) {\n if (dynamicTracking.syncDynamicErrorWithStack === null) {\n dynamicTracking.syncDynamicErrorWithStack = errorWithStack\n }\n }\n}\n\n/**\n * use this function when prerendering with cacheComponents. If we are doing a\n * prospective prerender we don't actually abort because we want to discover\n * all caches for the shell. If this is the actual prerender we do abort.\n *\n * This function accepts a prerenderStore but the caller should ensure we're\n * actually running in cacheComponents mode.\n *\n * @internal\n */\nexport function abortAndThrowOnSynchronousRequestDataAccess(\n route: string,\n expression: string,\n errorWithStack: Error,\n prerenderStore: PrerenderStoreModern\n): never {\n const prerenderSignal = prerenderStore.controller.signal\n if (prerenderSignal.aborted === false) {\n // TODO it would be better to move this aborted check into the callsite so we can avoid making\n // the error object when it isn't relevant to the aborting of the prerender however\n // since we need the throw semantics regardless of whether we abort it is easier to land\n // this way. See how this was handled with `abortOnSynchronousPlatformIOAccess` for a closer\n // to ideal implementation\n abortOnSynchronousDynamicDataAccess(route, expression, prerenderStore)\n // It is important that we set this tracking value after aborting. Aborts are executed\n // synchronously except for the case where you abort during render itself. By setting this\n // value late we can use it to determine if any of the aborted tasks are the task that\n // called the sync IO expression in the first place.\n const dynamicTracking = prerenderStore.dynamicTracking\n if (dynamicTracking) {\n if (dynamicTracking.syncDynamicErrorWithStack === null) {\n dynamicTracking.syncDynamicErrorWithStack = errorWithStack\n }\n }\n }\n throw createPrerenderInterruptedError(\n `Route ${route} needs to bail out of prerendering at this point because it used ${expression}.`\n )\n}\n\n/**\n * This component will call `React.postpone` that throws the postponed error.\n */\ntype PostponeProps = {\n reason: string\n route: string\n}\nexport function Postpone({ reason, route }: PostponeProps): never {\n const prerenderStore = workUnitAsyncStorage.getStore()\n const dynamicTracking =\n prerenderStore && prerenderStore.type === 'prerender-ppr'\n ? prerenderStore.dynamicTracking\n : null\n postponeWithTracking(route, reason, dynamicTracking)\n}\n\nexport function postponeWithTracking(\n route: string,\n expression: string,\n dynamicTracking: null | DynamicTrackingState\n): never {\n assertPostpone()\n if (dynamicTracking) {\n dynamicTracking.dynamicAccesses.push({\n // When we aren't debugging, we don't need to create another error for the\n // stack trace.\n stack: dynamicTracking.isDebugDynamicAccesses\n ? new Error().stack\n : undefined,\n expression,\n })\n }\n\n React.unstable_postpone(createPostponeReason(route, expression))\n}\n\nfunction createPostponeReason(route: string, expression: string) {\n return (\n `Route ${route} needs to bail out of prerendering at this point because it used ${expression}. ` +\n `React throws this special object to indicate where. It should not be caught by ` +\n `your own try/catch. Learn more: https://nextjs.org/docs/messages/ppr-caught-error`\n )\n}\n\nexport function isDynamicPostpone(err: unknown) {\n if (\n typeof err === 'object' &&\n err !== null &&\n typeof (err as any).message === 'string'\n ) {\n return isDynamicPostponeReason((err as any).message)\n }\n return false\n}\n\nfunction isDynamicPostponeReason(reason: string) {\n return (\n reason.includes(\n 'needs to bail out of prerendering at this point because it used'\n ) &&\n reason.includes(\n 'Learn more: https://nextjs.org/docs/messages/ppr-caught-error'\n )\n )\n}\n\nif (isDynamicPostponeReason(createPostponeReason('%%%', '^^^')) === false) {\n throw new Error(\n 'Invariant: isDynamicPostpone misidentified a postpone reason. This is a bug in Next.js'\n )\n}\n\nconst NEXT_PRERENDER_INTERRUPTED = 'NEXT_PRERENDER_INTERRUPTED'\n\nfunction createPrerenderInterruptedError(message: string): Error {\n const error = new Error(message)\n ;(error as any).digest = NEXT_PRERENDER_INTERRUPTED\n return error\n}\n\ntype DigestError = Error & {\n digest: string\n}\n\nexport function isPrerenderInterruptedError(\n error: unknown\n): error is DigestError {\n return (\n typeof error === 'object' &&\n error !== null &&\n (error as any).digest === NEXT_PRERENDER_INTERRUPTED &&\n 'name' in error &&\n 'message' in error &&\n error instanceof Error\n )\n}\n\nexport function accessedDynamicData(\n dynamicAccesses: Array<DynamicAccess>\n): boolean {\n return dynamicAccesses.length > 0\n}\n\nexport function consumeDynamicAccess(\n serverDynamic: DynamicTrackingState,\n clientDynamic: DynamicTrackingState\n): DynamicTrackingState['dynamicAccesses'] {\n // We mutate because we only call this once we are no longer writing\n // to the dynamicTrackingState and it's more efficient than creating a new\n // array.\n serverDynamic.dynamicAccesses.push(...clientDynamic.dynamicAccesses)\n return serverDynamic.dynamicAccesses\n}\n\nexport function formatDynamicAPIAccesses(\n dynamicAccesses: Array<DynamicAccess>\n): string[] {\n return dynamicAccesses\n .filter(\n (access): access is Required<DynamicAccess> =>\n typeof access.stack === 'string' && access.stack.length > 0\n )\n .map(({ expression, stack }) => {\n stack = stack\n .split('\\n')\n // Remove the \"Error: \" prefix from the first line of the stack trace as\n // well as the first 4 lines of the stack trace which is the distance\n // from the user code and the `new Error().stack` call.\n .slice(4)\n .filter((line) => {\n // Exclude Next.js internals from the stack trace.\n if (line.includes('node_modules/next/')) {\n return false\n }\n\n // Exclude anonymous functions from the stack trace.\n if (line.includes(' (<anonymous>)')) {\n return false\n }\n\n // Exclude Node.js internals from the stack trace.\n if (line.includes(' (node:')) {\n return false\n }\n\n return true\n })\n .join('\\n')\n return `Dynamic API Usage Debug - ${expression}:\\n${stack}`\n })\n}\n\nfunction assertPostpone() {\n if (!hasPostpone) {\n throw new Error(\n `Invariant: React.unstable_postpone is not defined. This suggests the wrong version of React was loaded. This is a bug in Next.js`\n )\n }\n}\n\n/**\n * This is a bit of a hack to allow us to abort a render using a Postpone instance instead of an Error which changes React's\n * abort semantics slightly.\n */\nexport function createRenderInBrowserAbortSignal(): AbortSignal {\n const controller = new AbortController()\n controller.abort(new BailoutToCSRError('Render in Browser'))\n return controller.signal\n}\n\n/**\n * In a prerender, we may end up with hanging Promises as inputs due them\n * stalling on connection() or because they're loading dynamic data. In that\n * case we need to abort the encoding of arguments since they'll never complete.\n */\nexport function createHangingInputAbortSignal(\n workUnitStore: WorkUnitStore\n): AbortSignal | undefined {\n switch (workUnitStore.type) {\n case 'prerender':\n case 'prerender-runtime':\n const controller = new AbortController()\n\n if (workUnitStore.cacheSignal) {\n // If we have a cacheSignal it means we're in a prospective render. If\n // the input we're waiting on is coming from another cache, we do want\n // to wait for it so that we can resolve this cache entry too.\n workUnitStore.cacheSignal.inputReady().then(() => {\n controller.abort()\n })\n } else {\n // Otherwise we're in the final render and we should already have all\n // our caches filled.\n // If the prerender uses stages, we have wait until the runtime stage,\n // at which point all runtime inputs will be resolved.\n // (otherwise, a runtime prerender might consider `cookies()` hanging\n // even though they'd resolve in the next task.)\n //\n // We might still be waiting on some microtasks so we\n // wait one tick before giving up. When we give up, we still want to\n // render the content of this cache as deeply as we can so that we can\n // suspend as deeply as possible in the tree or not at all if we don't\n // end up waiting for the input.\n const runtimeStagePromise = getRuntimeStagePromise(workUnitStore)\n if (runtimeStagePromise) {\n runtimeStagePromise.then(() =>\n scheduleOnNextTick(() => controller.abort())\n )\n } else {\n scheduleOnNextTick(() => controller.abort())\n }\n }\n\n return controller.signal\n case 'prerender-client':\n case 'prerender-ppr':\n case 'prerender-legacy':\n case 'request':\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n return undefined\n default:\n workUnitStore satisfies never\n }\n}\n\nexport function annotateDynamicAccess(\n expression: string,\n prerenderStore: PrerenderStoreModern\n) {\n const dynamicTracking = prerenderStore.dynamicTracking\n if (dynamicTracking) {\n dynamicTracking.dynamicAccesses.push({\n stack: dynamicTracking.isDebugDynamicAccesses\n ? new Error().stack\n : undefined,\n expression,\n })\n }\n}\n\nexport function useDynamicRouteParams(expression: string) {\n const workStore = workAsyncStorage.getStore()\n const workUnitStore = workUnitAsyncStorage.getStore()\n if (workStore && workUnitStore) {\n switch (workUnitStore.type) {\n case 'prerender-client':\n case 'prerender': {\n const fallbackParams = workUnitStore.fallbackRouteParams\n\n if (fallbackParams && fallbackParams.size > 0) {\n // We are in a prerender with cacheComponents semantics. We are going to\n // hang here and never resolve. This will cause the currently\n // rendering component to effectively be a dynamic hole.\n React.use(\n makeHangingPromise(\n workUnitStore.renderSignal,\n workStore.route,\n expression\n )\n )\n }\n break\n }\n case 'prerender-ppr': {\n const fallbackParams = workUnitStore.fallbackRouteParams\n if (fallbackParams && fallbackParams.size > 0) {\n return postponeWithTracking(\n workStore.route,\n expression,\n workUnitStore.dynamicTracking\n )\n }\n break\n }\n case 'prerender-runtime':\n throw new InvariantError(\n `\\`${expression}\\` was called during a runtime prerender. Next.js should be preventing ${expression} from being included in server components statically, but did not in this case.`\n )\n case 'cache':\n case 'private-cache':\n throw new InvariantError(\n `\\`${expression}\\` was called inside a cache scope. Next.js should be preventing ${expression} from being included in server components statically, but did not in this case.`\n )\n case 'prerender-legacy':\n case 'request':\n case 'unstable-cache':\n break\n default:\n workUnitStore satisfies never\n }\n }\n}\n\nexport function useDynamicSearchParams(expression: string) {\n const workStore = workAsyncStorage.getStore()\n const workUnitStore = workUnitAsyncStorage.getStore()\n\n if (!workStore) {\n // We assume pages router context and just return\n return\n }\n\n if (!workUnitStore) {\n throwForMissingRequestStore(expression)\n }\n\n switch (workUnitStore.type) {\n case 'prerender-client': {\n React.use(\n makeHangingPromise(\n workUnitStore.renderSignal,\n workStore.route,\n expression\n )\n )\n break\n }\n case 'prerender-legacy':\n case 'prerender-ppr': {\n if (workStore.forceStatic) {\n return\n }\n throw new BailoutToCSRError(expression)\n }\n case 'prerender':\n case 'prerender-runtime':\n throw new InvariantError(\n `\\`${expression}\\` was called from a Server Component. Next.js should be preventing ${expression} from being included in server components statically, but did not in this case.`\n )\n case 'cache':\n case 'unstable-cache':\n case 'private-cache':\n throw new InvariantError(\n `\\`${expression}\\` was called inside a cache scope. Next.js should be preventing ${expression} from being included in server components statically, but did not in this case.`\n )\n case 'request':\n return\n default:\n workUnitStore satisfies never\n }\n}\n\nconst hasSuspenseRegex = /\\n\\s+at Suspense \\(<anonymous>\\)/\n\n// Common implicit body tags that React will treat as body when placed directly in html\nconst bodyAndImplicitTags =\n 'body|div|main|section|article|aside|header|footer|nav|form|p|span|h1|h2|h3|h4|h5|h6'\n\n// Detects when RootLayoutBoundary (our framework marker component) appears\n// after Suspense in the component stack, indicating the root layout is wrapped\n// within a Suspense boundary. Ensures no body/html/implicit-body components are in between.\n//\n// Example matches:\n// at Suspense (<anonymous>)\n// at __next_root_layout_boundary__ (<anonymous>)\n//\n// Or with other components in between (but not body/html/implicit-body):\n// at Suspense (<anonymous>)\n// at SomeComponent (<anonymous>)\n// at __next_root_layout_boundary__ (<anonymous>)\nconst hasSuspenseBeforeRootLayoutWithoutBodyOrImplicitBodyRegex = new RegExp(\n `\\\\n\\\\s+at Suspense \\\\(<anonymous>\\\\)(?:(?!\\\\n\\\\s+at (?:${bodyAndImplicitTags}) \\\\(<anonymous>\\\\))[\\\\s\\\\S])*?\\\\n\\\\s+at ${ROOT_LAYOUT_BOUNDARY_NAME} \\\\([^\\\\n]*\\\\)`\n)\n\nconst hasMetadataRegex = new RegExp(\n `\\\\n\\\\s+at ${METADATA_BOUNDARY_NAME}[\\\\n\\\\s]`\n)\nconst hasViewportRegex = new RegExp(\n `\\\\n\\\\s+at ${VIEWPORT_BOUNDARY_NAME}[\\\\n\\\\s]`\n)\nconst hasOutletRegex = new RegExp(`\\\\n\\\\s+at ${OUTLET_BOUNDARY_NAME}[\\\\n\\\\s]`)\n\nexport function trackAllowedDynamicAccess(\n workStore: WorkStore,\n componentStack: string,\n dynamicValidation: DynamicValidationState,\n clientDynamic: DynamicTrackingState\n) {\n if (hasOutletRegex.test(componentStack)) {\n // We don't need to track that this is dynamic. It is only so when something else is also dynamic.\n return\n } else if (hasMetadataRegex.test(componentStack)) {\n dynamicValidation.hasDynamicMetadata = true\n return\n } else if (hasViewportRegex.test(componentStack)) {\n dynamicValidation.hasDynamicViewport = true\n return\n } else if (\n hasSuspenseBeforeRootLayoutWithoutBodyOrImplicitBodyRegex.test(\n componentStack\n )\n ) {\n // For Suspense within body, the prelude wouldn't be empty so it wouldn't violate the empty static shells rule.\n // But if you have Suspense above body, the prelude is empty but we allow that because having Suspense\n // is an explicit signal from the user that they acknowledge the empty shell and want dynamic rendering.\n dynamicValidation.hasAllowedDynamic = true\n dynamicValidation.hasSuspenseAboveBody = true\n return\n } else if (hasSuspenseRegex.test(componentStack)) {\n // this error had a Suspense boundary above it so we don't need to report it as a source\n // of disallowed\n dynamicValidation.hasAllowedDynamic = true\n return\n } else if (clientDynamic.syncDynamicErrorWithStack) {\n // This task was the task that called the sync error.\n dynamicValidation.dynamicErrors.push(\n clientDynamic.syncDynamicErrorWithStack\n )\n return\n } else {\n const message =\n `Route \"${workStore.route}\": Uncached data was accessed outside of ` +\n '<Suspense>. This delays the entire page from rendering, resulting in a ' +\n 'slow user experience. Learn more: ' +\n 'https://nextjs.org/docs/messages/blocking-route'\n const error = createErrorWithComponentOrOwnerStack(message, componentStack)\n dynamicValidation.dynamicErrors.push(error)\n return\n }\n}\n\nexport function trackDynamicHoleInRuntimeShell(\n workStore: WorkStore,\n componentStack: string,\n dynamicValidation: DynamicValidationState,\n clientDynamic: DynamicTrackingState\n) {\n if (hasOutletRegex.test(componentStack)) {\n // We don't need to track that this is dynamic. It is only so when something else is also dynamic.\n return\n } else if (hasMetadataRegex.test(componentStack)) {\n const message = `Route \"${workStore.route}\": Uncached data or \\`connection()\\` was accessed inside \\`generateMetadata\\`. Except for this instance, the page would have been entirely prerenderable which may have been the intended behavior. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-metadata`\n const error = createErrorWithComponentOrOwnerStack(message, componentStack)\n dynamicValidation.dynamicMetadata = error\n return\n } else if (hasViewportRegex.test(componentStack)) {\n const message = `Route \"${workStore.route}\": Uncached data or \\`connection()\\` was accessed inside \\`generateViewport\\`. This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/next-prerender-dynamic-viewport`\n const error = createErrorWithComponentOrOwnerStack(message, componentStack)\n dynamicValidation.dynamicErrors.push(error)\n return\n } else if (\n hasSuspenseBeforeRootLayoutWithoutBodyOrImplicitBodyRegex.test(\n componentStack\n )\n ) {\n // For Suspense within body, the prelude wouldn't be empty so it wouldn't violate the empty static shells rule.\n // But if you have Suspense above body, the prelude is empty but we allow that because having Suspense\n // is an explicit signal from the user that they acknowledge the empty shell and want dynamic rendering.\n dynamicValidation.hasAllowedDynamic = true\n dynamicValidation.hasSuspenseAboveBody = true\n return\n } else if (hasSuspenseRegex.test(componentStack)) {\n // this error had a Suspense boundary above it so we don't need to report it as a source\n // of disallowed\n dynamicValidation.hasAllowedDynamic = true\n return\n } else if (clientDynamic.syncDynamicErrorWithStack) {\n // This task was the task that called the sync error.\n dynamicValidation.dynamicErrors.push(\n clientDynamic.syncDynamicErrorWithStack\n )\n return\n } else {\n const message = `Route \"${workStore.route}\": Uncached data or \\`connection()\\` was accessed outside of \\`<Suspense>\\`. This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/blocking-route`\n const error = createErrorWithComponentOrOwnerStack(message, componentStack)\n dynamicValidation.dynamicErrors.push(error)\n return\n }\n}\n\nexport function trackDynamicHoleInStaticShell(\n workStore: WorkStore,\n componentStack: string,\n dynamicValidation: DynamicValidationState,\n clientDynamic: DynamicTrackingState\n) {\n if (hasOutletRegex.test(componentStack)) {\n // We don't need to track that this is dynamic. It is only so when something else is also dynamic.\n return\n } else if (hasMetadataRegex.test(componentStack)) {\n const message = `Route \"${workStore.route}\": Runtime data such as \\`cookies()\\`, \\`headers()\\`, \\`params\\`, or \\`searchParams\\` was accessed inside \\`generateMetadata\\` or you have file-based metadata such as icons that depend on dynamic params segments. Except for this instance, the page would have been entirely prerenderable which may have been the intended behavior. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-metadata`\n const error = createErrorWithComponentOrOwnerStack(message, componentStack)\n dynamicValidation.dynamicMetadata = error\n return\n } else if (hasViewportRegex.test(componentStack)) {\n const message = `Route \"${workStore.route}\": Runtime data such as \\`cookies()\\`, \\`headers()\\`, \\`params\\`, or \\`searchParams\\` was accessed inside \\`generateViewport\\`. This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/next-prerender-dynamic-viewport`\n const error = createErrorWithComponentOrOwnerStack(message, componentStack)\n dynamicValidation.dynamicErrors.push(error)\n return\n } else if (\n hasSuspenseBeforeRootLayoutWithoutBodyOrImplicitBodyRegex.test(\n componentStack\n )\n ) {\n // For Suspense within body, the prelude wouldn't be empty so it wouldn't violate the empty static shells rule.\n // But if you have Suspense above body, the prelude is empty but we allow that because having Suspense\n // is an explicit signal from the user that they acknowledge the empty shell and want dynamic rendering.\n dynamicValidation.hasAllowedDynamic = true\n dynamicValidation.hasSuspenseAboveBody = true\n return\n } else if (hasSuspenseRegex.test(componentStack)) {\n // this error had a Suspense boundary above it so we don't need to report it as a source\n // of disallowed\n dynamicValidation.hasAllowedDynamic = true\n return\n } else if (clientDynamic.syncDynamicErrorWithStack) {\n // This task was the task that called the sync error.\n dynamicValidation.dynamicErrors.push(\n clientDynamic.syncDynamicErrorWithStack\n )\n return\n } else {\n const message = `Route \"${workStore.route}\": Runtime data such as \\`cookies()\\`, \\`headers()\\`, \\`params\\`, or \\`searchParams\\` was accessed outside of \\`<Suspense>\\`. This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/blocking-route`\n const error = createErrorWithComponentOrOwnerStack(message, componentStack)\n dynamicValidation.dynamicErrors.push(error)\n return\n }\n}\n\n/**\n * In dev mode, we prefer using the owner stack, otherwise the provided\n * component stack is used.\n */\nfunction createErrorWithComponentOrOwnerStack(\n message: string,\n componentStack: string\n) {\n const ownerStack =\n process.env.NODE_ENV !== 'production' && React.captureOwnerStack\n ? React.captureOwnerStack()\n : null\n\n const error = new Error(message)\n // TODO go back to owner stack here if available. This is temporarily using componentStack to get the right\n //\n error.stack = error.name + ': ' + message + (ownerStack || componentStack)\n return error\n}\n\nexport enum PreludeState {\n Full = 0,\n Empty = 1,\n Errored = 2,\n}\n\nexport function logDisallowedDynamicError(\n workStore: WorkStore,\n error: Error\n): void {\n console.error(error)\n\n if (!workStore.dev) {\n if (workStore.hasReadableErrorStacks) {\n console.error(\n `To get a more detailed stack trace and pinpoint the issue, start the app in development mode by running \\`next dev\\`, then open \"${workStore.route}\" in your browser to investigate the error.`\n )\n } else {\n console.error(`To get a more detailed stack trace and pinpoint the issue, try one of the following:\n - Start the app in development mode by running \\`next dev\\`, then open \"${workStore.route}\" in your browser to investigate the error.\n - Rerun the production build with \\`next build --debug-prerender\\` to generate better stack traces.`)\n }\n }\n}\n\nexport function throwIfDisallowedDynamic(\n workStore: WorkStore,\n prelude: PreludeState,\n dynamicValidation: DynamicValidationState,\n serverDynamic: DynamicTrackingState\n): void {\n if (serverDynamic.syncDynamicErrorWithStack) {\n logDisallowedDynamicError(\n workStore,\n serverDynamic.syncDynamicErrorWithStack\n )\n throw new StaticGenBailoutError()\n }\n\n if (prelude !== PreludeState.Full) {\n if (dynamicValidation.hasSuspenseAboveBody) {\n // This route has opted into allowing fully dynamic rendering\n // by including a Suspense boundary above the body. In this case\n // a lack of a shell is not considered disallowed so we simply return\n return\n }\n\n // We didn't have any sync bailouts but there may be user code which\n // blocked the root. We would have captured these during the prerender\n // and can log them here and then terminate the build/validating render\n const dynamicErrors = dynamicValidation.dynamicErrors\n if (dynamicErrors.length > 0) {\n for (let i = 0; i < dynamicErrors.length; i++) {\n logDisallowedDynamicError(workStore, dynamicErrors[i])\n }\n\n throw new StaticGenBailoutError()\n }\n\n // If we got this far then the only other thing that could be blocking\n // the root is dynamic Viewport. If this is dynamic then\n // you need to opt into that by adding a Suspense boundary above the body\n // to indicate your are ok with fully dynamic rendering.\n if (dynamicValidation.hasDynamicViewport) {\n console.error(\n `Route \"${workStore.route}\" has a \\`generateViewport\\` that depends on Request data (\\`cookies()\\`, etc...) or uncached external data (\\`fetch(...)\\`, etc...) without explicitly allowing fully dynamic rendering. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-viewport`\n )\n throw new StaticGenBailoutError()\n }\n\n if (prelude === PreludeState.Empty) {\n // If we ever get this far then we messed up the tracking of invalid dynamic.\n // We still adhere to the constraint that you must produce a shell but invite the\n // user to report this as a bug in Next.js.\n console.error(\n `Route \"${workStore.route}\" did not produce a static shell and Next.js was unable to determine a reason. This is a bug in Next.js.`\n )\n throw new StaticGenBailoutError()\n }\n } else {\n if (\n dynamicValidation.hasAllowedDynamic === false &&\n dynamicValidation.hasDynamicMetadata\n ) {\n console.error(\n `Route \"${workStore.route}\" has a \\`generateMetadata\\` that depends on Request data (\\`cookies()\\`, etc...) or uncached external data (\\`fetch(...)\\`, etc...) when the rest of the route does not. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-metadata`\n )\n throw new StaticGenBailoutError()\n }\n }\n}\n\nexport function getStaticShellDisallowedDynamicReasons(\n workStore: WorkStore,\n prelude: PreludeState,\n dynamicValidation: DynamicValidationState\n): Array<Error> {\n if (dynamicValidation.hasSuspenseAboveBody) {\n // This route has opted into allowing fully dynamic rendering\n // by including a Suspense boundary above the body. In this case\n // a lack of a shell is not considered disallowed so we simply return\n return []\n }\n\n if (prelude !== PreludeState.Full) {\n // We didn't have any sync bailouts but there may be user code which\n // blocked the root. We would have captured these during the prerender\n // and can log them here and then terminate the build/validating render\n const dynamicErrors = dynamicValidation.dynamicErrors\n if (dynamicErrors.length > 0) {\n return dynamicErrors\n }\n\n if (prelude === PreludeState.Empty) {\n // If we ever get this far then we messed up the tracking of invalid dynamic.\n // We still adhere to the constraint that you must produce a shell but invite the\n // user to report this as a bug in Next.js.\n return [\n new InvariantError(\n `Route \"${workStore.route}\" did not produce a static shell and Next.js was unable to determine a reason.`\n ),\n ]\n }\n } else {\n // We have a prelude but we might still have dynamic metadata without any other dynamic access\n if (\n dynamicValidation.hasAllowedDynamic === false &&\n dynamicValidation.dynamicErrors.length === 0 &&\n dynamicValidation.dynamicMetadata\n ) {\n return [dynamicValidation.dynamicMetadata]\n }\n }\n // We had a non-empty prelude and there are no dynamic holes\n return []\n}\n\nexport function delayUntilRuntimeStage<T>(\n prerenderStore: PrerenderStoreModernRuntime,\n result: Promise<T>\n): Promise<T> {\n if (prerenderStore.runtimeStagePromise) {\n return prerenderStore.runtimeStagePromise.then(() => result)\n }\n return result\n}\n","import { isHangingPromiseRejectionError } from '../../server/dynamic-rendering-utils'\nimport { isPostpone } from '../../server/lib/router-utils/is-postpone'\nimport { isBailoutToCSRError } from '../../shared/lib/lazy-dynamic/bailout-to-csr'\nimport { isNextRouterError } from './is-next-router-error'\nimport {\n isDynamicPostpone,\n isPrerenderInterruptedError,\n} from '../../server/app-render/dynamic-rendering'\nimport { isDynamicServerError } from './hooks-server-context'\n\nexport function unstable_rethrow(error: unknown): void {\n if (\n isNextRouterError(error) ||\n isBailoutToCSRError(error) ||\n isDynamicServerError(error) ||\n isDynamicPostpone(error) ||\n isPostpone(error) ||\n isHangingPromiseRejectionError(error) ||\n isPrerenderInterruptedError(error)\n ) {\n throw error\n }\n\n if (error instanceof Error && 'cause' in error) {\n unstable_rethrow(error.cause)\n }\n}\n","/**\n * This function should be used to rethrow internal Next.js errors so that they can be handled by the framework.\n * When wrapping an API that uses errors to interrupt control flow, you should use this function before you do any error handling.\n * This function will rethrow the error if it is a Next.js error so it can be handled, otherwise it will do nothing.\n *\n * Read more: [Next.js Docs: `unstable_rethrow`](https://nextjs.org/docs/app/api-reference/functions/unstable_rethrow)\n */\nexport const unstable_rethrow =\n typeof window === 'undefined'\n ? (\n require('./unstable-rethrow.server') as typeof import('./unstable-rethrow.server')\n ).unstable_rethrow\n : (\n require('./unstable-rethrow.browser') as typeof import('./unstable-rethrow.browser')\n ).unstable_rethrow\n","import { ReadonlyURLSearchParams } from './readonly-url-search-params'\n\nexport function unstable_isUnrecognizedActionError(): boolean {\n throw new Error(\n '`unstable_isUnrecognizedActionError` can only be used on the client.'\n )\n}\n\nexport { redirect, permanentRedirect } from './redirect'\nexport { RedirectType } from './redirect-error'\nexport { notFound } from './not-found'\nexport { forbidden } from './forbidden'\nexport { unauthorized } from './unauthorized'\nexport { unstable_rethrow } from './unstable-rethrow'\nexport { ReadonlyURLSearchParams }\n","import type { Params } from '../../server/request/params'\n\nimport React, { useContext, useMemo, use } from 'react'\nimport {\n AppRouterContext,\n LayoutRouterContext,\n type AppRouterInstance,\n} from '../../shared/lib/app-router-context.shared-runtime'\nimport {\n SearchParamsContext,\n PathnameContext,\n PathParamsContext,\n NavigationPromisesContext,\n ReadonlyURLSearchParams,\n} from '../../shared/lib/hooks-client-context.shared-runtime'\nimport {\n computeSelectedLayoutSegment,\n getSelectedLayoutSegmentPath,\n} from '../../shared/lib/segment'\n\nconst useDynamicRouteParams =\n typeof window === 'undefined'\n ? (\n require('../../server/app-render/dynamic-rendering') as typeof import('../../server/app-render/dynamic-rendering')\n ).useDynamicRouteParams\n : undefined\n\nconst useDynamicSearchParams =\n typeof window === 'undefined'\n ? (\n require('../../server/app-render/dynamic-rendering') as typeof import('../../server/app-render/dynamic-rendering')\n ).useDynamicSearchParams\n : undefined\n\n/**\n * A [Client Component](https://nextjs.org/docs/app/building-your-application/rendering/client-components) hook\n * that lets you *read* the current URL's search parameters.\n *\n * Learn more about [`URLSearchParams` on MDN](https://developer.mozilla.org/docs/Web/API/URLSearchParams)\n *\n * @example\n * ```ts\n * \"use client\"\n * import { useSearchParams } from 'next/navigation'\n *\n * export default function Page() {\n * const searchParams = useSearchParams()\n * searchParams.get('foo') // returns 'bar' when ?foo=bar\n * // ...\n * }\n * ```\n *\n * Read more: [Next.js Docs: `useSearchParams`](https://nextjs.org/docs/app/api-reference/functions/use-search-params)\n */\n// Client components API\nexport function useSearchParams(): ReadonlyURLSearchParams {\n useDynamicSearchParams?.('useSearchParams()')\n\n const searchParams = useContext(SearchParamsContext)\n\n // In the case where this is `null`, the compat types added in\n // `next-env.d.ts` will add a new overload that changes the return type to\n // include `null`.\n const readonlySearchParams = useMemo((): ReadonlyURLSearchParams => {\n if (!searchParams) {\n // When the router is not ready in pages, we won't have the search params\n // available.\n return null!\n }\n\n return new ReadonlyURLSearchParams(searchParams)\n }, [searchParams])\n\n // Instrument with Suspense DevTools (dev-only)\n if (process.env.NODE_ENV !== 'production' && 'use' in React) {\n const navigationPromises = use(NavigationPromisesContext)\n if (navigationPromises) {\n return use(navigationPromises.searchParams)\n }\n }\n\n return readonlySearchParams\n}\n\n/**\n * A [Client Component](https://nextjs.org/docs/app/building-your-application/rendering/client-components) hook\n * that lets you read the current URL's pathname.\n *\n * @example\n * ```ts\n * \"use client\"\n * import { usePathname } from 'next/navigation'\n *\n * export default function Page() {\n * const pathname = usePathname() // returns \"/dashboard\" on /dashboard?foo=bar\n * // ...\n * }\n * ```\n *\n * Read more: [Next.js Docs: `usePathname`](https://nextjs.org/docs/app/api-reference/functions/use-pathname)\n */\n// Client components API\nexport function usePathname(): string {\n useDynamicRouteParams?.('usePathname()')\n\n // In the case where this is `null`, the compat types added in `next-env.d.ts`\n // will add a new overload that changes the return type to include `null`.\n const pathname = useContext(PathnameContext) as string\n\n // Instrument with Suspense DevTools (dev-only)\n if (process.env.NODE_ENV !== 'production' && 'use' in React) {\n const navigationPromises = use(NavigationPromisesContext)\n if (navigationPromises) {\n return use(navigationPromises.pathname)\n }\n }\n\n return pathname\n}\n\n// Client components API\nexport {\n ServerInsertedHTMLContext,\n useServerInsertedHTML,\n} from '../../shared/lib/server-inserted-html.shared-runtime'\n\n/**\n *\n * This hook allows you to programmatically change routes inside [Client Component](https://nextjs.org/docs/app/building-your-application/rendering/client-components).\n *\n * @example\n * ```ts\n * \"use client\"\n * import { useRouter } from 'next/navigation'\n *\n * export default function Page() {\n * const router = useRouter()\n * // ...\n * router.push('/dashboard') // Navigate to /dashboard\n * }\n * ```\n *\n * Read more: [Next.js Docs: `useRouter`](https://nextjs.org/docs/app/api-reference/functions/use-router)\n */\n// Client components API\nexport function useRouter(): AppRouterInstance {\n const router = useContext(AppRouterContext)\n if (router === null) {\n throw new Error('invariant expected app router to be mounted')\n }\n\n return router\n}\n\n/**\n * A [Client Component](https://nextjs.org/docs/app/building-your-application/rendering/client-components) hook\n * that lets you read a route's dynamic params filled in by the current URL.\n *\n * @example\n * ```ts\n * \"use client\"\n * import { useParams } from 'next/navigation'\n *\n * export default function Page() {\n * // on /dashboard/[team] where pathname is /dashboard/nextjs\n * const { team } = useParams() // team === \"nextjs\"\n * }\n * ```\n *\n * Read more: [Next.js Docs: `useParams`](https://nextjs.org/docs/app/api-reference/functions/use-params)\n */\n// Client components API\nexport function useParams<T extends Params = Params>(): T {\n useDynamicRouteParams?.('useParams()')\n\n const params = useContext(PathParamsContext) as T\n\n // Instrument with Suspense DevTools (dev-only)\n if (process.env.NODE_ENV !== 'production' && 'use' in React) {\n const navigationPromises = use(NavigationPromisesContext)\n if (navigationPromises) {\n return use(navigationPromises.params) as T\n }\n }\n\n return params\n}\n\n/**\n * A [Client Component](https://nextjs.org/docs/app/building-your-application/rendering/client-components) hook\n * that lets you read the active route segments **below** the Layout it is called from.\n *\n * @example\n * ```ts\n * 'use client'\n *\n * import { useSelectedLayoutSegments } from 'next/navigation'\n *\n * export default function ExampleClientComponent() {\n * const segments = useSelectedLayoutSegments()\n *\n * return (\n * <ul>\n * {segments.map((segment, index) => (\n * <li key={index}>{segment}</li>\n * ))}\n * </ul>\n * )\n * }\n * ```\n *\n * Read more: [Next.js Docs: `useSelectedLayoutSegments`](https://nextjs.org/docs/app/api-reference/functions/use-selected-layout-segments)\n */\n// Client components API\nexport function useSelectedLayoutSegments(\n parallelRouteKey: string = 'children'\n): string[] {\n useDynamicRouteParams?.('useSelectedLayoutSegments()')\n\n const context = useContext(LayoutRouterContext)\n // @ts-expect-error This only happens in `pages`. Type is overwritten in navigation.d.ts\n if (!context) return null\n\n // Instrument with Suspense DevTools (dev-only)\n if (process.env.NODE_ENV !== 'production' && 'use' in React) {\n const navigationPromises = use(NavigationPromisesContext)\n if (navigationPromises) {\n const promise =\n navigationPromises.selectedLayoutSegmentsPromises?.get(parallelRouteKey)\n if (promise) {\n // We should always have a promise here, but if we don't, it's not worth erroring over.\n // We just won't be able to instrument it, but can still provide the value.\n return use(promise)\n }\n }\n }\n\n return getSelectedLayoutSegmentPath(context.parentTree, parallelRouteKey)\n}\n\n/**\n * A [Client Component](https://nextjs.org/docs/app/building-your-application/rendering/client-components) hook\n * that lets you read the active route segment **one level below** the Layout it is called from.\n *\n * @example\n * ```ts\n * 'use client'\n * import { useSelectedLayoutSegment } from 'next/navigation'\n *\n * export default function ExampleClientComponent() {\n * const segment = useSelectedLayoutSegment()\n *\n * return <p>Active segment: {segment}</p>\n * }\n * ```\n *\n * Read more: [Next.js Docs: `useSelectedLayoutSegment`](https://nextjs.org/docs/app/api-reference/functions/use-selected-layout-segment)\n */\n// Client components API\nexport function useSelectedLayoutSegment(\n parallelRouteKey: string = 'children'\n): string | null {\n useDynamicRouteParams?.('useSelectedLayoutSegment()')\n const navigationPromises = useContext(NavigationPromisesContext)\n const selectedLayoutSegments = useSelectedLayoutSegments(parallelRouteKey)\n\n // Instrument with Suspense DevTools (dev-only)\n if (\n process.env.NODE_ENV !== 'production' &&\n navigationPromises &&\n 'use' in React\n ) {\n const promise =\n navigationPromises.selectedLayoutSegmentPromises?.get(parallelRouteKey)\n if (promise) {\n // We should always have a promise here, but if we don't, it's not worth erroring over.\n // We just won't be able to instrument it, but can still provide the value.\n return use(promise)\n }\n }\n\n return computeSelectedLayoutSegment(selectedLayoutSegments, parallelRouteKey)\n}\n\nexport { unstable_isUnrecognizedActionError } from './unrecognized-action-error'\n\n// Shared components APIs\nexport {\n // We need the same class that was used to instantiate the context value\n // Otherwise instanceof checks will fail in usercode\n ReadonlyURLSearchParams,\n}\nexport {\n notFound,\n forbidden,\n unauthorized,\n redirect,\n permanentRedirect,\n RedirectType,\n unstable_rethrow,\n} from './navigation.react-server'\n","module.exports = require('./dist/client/components/navigation')\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n [\n 'path',\n {\n d: 'M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z',\n key: '10ikf1',\n },\n ],\n];\n\n/**\n * @component @name Play\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/play\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Play = createLucideIcon('play', __iconNode);\n\nexport default Play;\n"],"names":["warnOnce","_","process","env","NODE_ENV","warnings","Set","msg","has","console","warn","add","getDeploymentId","getDeploymentIdQueryOrEmptyString","NEXT_DEPLOYMENT_ID","deploymentId","getImageBlurSvg","widthInt","heightInt","blurWidth","blurHeight","blurDataURL","objectFit","std","svgWidth","svgHeight","viewBox","preserveAspectRatio","VALID_LOADERS","imageConfigDefault","deviceSizes","imageSizes","path","loader","loaderFile","domains","disableStaticImages","minimumCacheTTL","formats","maximumRedirects","maximumResponseBody","dangerouslyAllowLocalIP","dangerouslyAllowSVG","contentSecurityPolicy","contentDispositionType","localPatterns","undefined","remotePatterns","qualities","unoptimized","getImgProps","VALID_LOADING_VALUES","INVALID_BACKGROUND_SIZE_VALUES","isStaticRequire","src","default","isStaticImageData","isStaticImport","allImgs","Map","perfObserver","getInt","x","Number","isFinite","NaN","test","parseInt","getWidths","allSizes","width","sizes","viewportWidthRe","percentSizes","match","exec","push","length","smallestRatio","Math","min","widths","filter","s","kind","map","w","find","p","generateImgAttrs","config","quality","startsWith","sep","includes","srcSet","last","i","join","priority","preload","loading","className","height","fill","style","overrideSrc","onLoad","onLoadingComplete","placeholder","fetchPriority","decoding","layout","objectPosition","lazyBoundary","lazyRoot","rest","_state","imgConf","showAltText","blurComplete","defaultLoader","c","sort","a","b","Error","isDefaultLoader","customImageLoader","obj","opts","layoutToStyle","intrinsic","maxWidth","responsive","layoutToSizes","layoutStyle","layoutSizes","staticSrc","staticImageData","JSON","stringify","ratio","round","isLazy","split","endsWith","qualityInt","output","position","isNaN","String","VALID_BLUR_EXT","urlStr","url","URL","err","pathname","search","legacyKey","legacyValue","Object","entries","window","PerformanceObserver","entryList","entry","getEntries","imgSrc","element","lcpImage","get","observe","type","buffered","error","imgStyle","assign","left","top","right","bottom","color","backgroundImage","backgroundSize","placeholderStyle","backgroundPosition","backgroundRepeat","imgAttributes","loadingFinal","fullUrl","e","location","href","set","props","meta","SideEffect","isServer","useClientOnlyLayoutEffect","useLayoutEffect","useClientOnlyEffect","useEffect","headManager","reduceComponentsToState","emitChange","mountedInstances","headElements","Children","toArray","Array","from","Boolean","updateHead","children","delete","_pendingUpdate","module","exports","require","vendored","HeadManagerContext","defaultHead","head","charSet","name","content","onlyReactElement","list","child","React","Fragment","concat","reduce","fragmentList","fragmentChild","METATYPES","unique","keys","tags","metaTypes","metaCategories","h","isUnique","hasKey","key","indexOf","slice","len","metatype","hasOwnProperty","category","categories","reduceComponents","headChildrenElements","reverse","srcMessage","cloneElement","Head","useContext","Effect","ImageConfigContext","RouterContext","findClosestQuality","q","prev","cur","abs","missingValues","NEXT_RUNTIME","hasLocalMatch","parsedSrc","hasRemoteMatch","hostname","encodeURIComponent","__next_img_default","useMergedRef","refA","refB","cleanupA","useRef","cleanupB","useCallback","current","cleanupFnA","cleanupFnB","applyRef","cleanup","Image","configEnv","__NEXT_IMAGE_OPTS","globalThis","__NEXT_IMAGE_IMPORTED","handleLoading","img","onLoadRef","onLoadingCompleteRef","setBlurComplete","sizesInput","decode","Promise","resolve","catch","then","parentElement","isConnected","event","Event","defineProperty","writable","value","prevented","stopped","nativeEvent","currentTarget","target","isDefaultPrevented","isPropagationStopped","persist","preventDefault","stopPropagation","origSrc","searchParams","getAttribute","widthViewportRatio","getBoundingClientRect","innerWidth","getComputedStyle","valid","heightModified","toString","widthModified","getDynamicProps","use","fetchpriority","ImageElement","forwardRef","setShowAltText","onError","forwardedRef","ownRef","complete","ref","data-nimg","ImagePreload","isAppRouter","as","imageSrcSet","crossOrigin","referrerPolicy","ReactDOM","link","rel","pagesRouter","configContext","useMemo","useState","imgMeta","getImageProps","imgProps","ACTION_HMR_REFRESH","ACTION_NAVIGATE","ACTION_REFRESH","ACTION_RESTORE","ACTION_SERVER_ACTION","ACTION_SERVER_PATCH","PrefetchKind","isThenable","promise","dispatchAppRouterAction","useActionQueue","dispatch","action","__DEV__","promisesWithDebugInfo","WeakMap","actionQueue","state","setState","useAppDevRenderingIndicator","appDevRenderingIndicator","stateWithDebugInfo","promiseWithDebugInfo","debugInfo","asyncState","_debugInfo","callServer","actionId","actionArgs","reject","startTransition","findSourceMapURL","basePath","__NEXT_ROUTER_BASEPATH","filename","document","origin","createServerReference","DEFAULT_SEGMENT_KEY","NOT_FOUND_SEGMENT_KEY","PAGE_SEGMENT_KEY","addSearchParamsIfPageSegment","computeSelectedLayoutSegment","getSegmentValue","getSelectedLayoutSegmentPath","isGroupSegment","isParallelRouteSegment","segment","isArray","isPageSegment","stringifiedQuery","segments","parallelRouteKey","rawSegment","tree","first","segmentPath","node","parallelRoutes","values","segmentValue","UnrecognizedActionError","unstable_isUnrecognizedActionError","constructor","args","ReadonlyURLSearchParams","ReadonlyURLSearchParamsError","URLSearchParams","append","RedirectStatusCode","REDIRECT_ERROR_CODE","RedirectType","isRedirectError","digest","errorCode","destination","status","at","statusCode","getRedirectError","getRedirectStatusCodeFromError","getRedirectTypeFromError","getURLFromRedirectError","permanentRedirect","redirect","actionAsyncStorage","TemporaryRedirect","getStore","isAction","replace","PermanentRedirect","HTTPAccessErrorStatus","HTTP_ERROR_FALLBACK_ERROR_CODE","getAccessFallbackErrorTypeByStatus","getAccessFallbackHTTPStatus","isHTTPAccessFallbackError","NOT_FOUND","FORBIDDEN","UNAUTHORIZED","ALLOWED_CODES","prefix","httpStatus","notFound","DIGEST","forbidden","__NEXT_EXPERIMENTAL_AUTH_INTERRUPTS","unauthorized","isHangingPromiseRejectionError","makeDevtoolsIOAwarePromise","makeHangingPromise","HANGING_PROMISE_REJECTION","HangingPromiseRejectionError","route","expression","abortListenersBySignal","signal","aborted","hangingPromise","boundRejection","bind","currentListeners","listeners","addEventListener","once","ignoreReject","underlying","requestStore","stage","stagedRendering","delayUntilStage","setTimeout","isPostpone","REACT_POSTPONE_TYPE","Symbol","for","$$typeof","BailoutToCSRError","isBailoutToCSRError","BAILOUT_TO_CSR","reason","isNextRouterError","DynamicServerError","isDynamicServerError","DYNAMIC_ERROR_CODE","description","StaticGenBailoutError","isStaticGenBailoutError","NEXT_STATIC_GEN_BAILOUT","code","METADATA_BOUNDARY_NAME","OUTLET_BOUNDARY_NAME","ROOT_LAYOUT_BOUNDARY_NAME","VIEWPORT_BOUNDARY_NAME","atLeastOneTask","scheduleImmediate","scheduleOnNextTick","waitAtLeastOneReactRenderTask","cb","nextTick","setImmediate","r","InvariantError","message","options","Postpone","PreludeState","abortAndThrowOnSynchronousRequestDataAccess","abortOnSynchronousPlatformIOAccess","accessedDynamicData","annotateDynamicAccess","consumeDynamicAccess","createDynamicTrackingState","createDynamicValidationState","createHangingInputAbortSignal","createRenderInBrowserAbortSignal","delayUntilRuntimeStage","formatDynamicAPIAccesses","getFirstDynamicReason","getStaticShellDisallowedDynamicReasons","isDynamicPostpone","isPrerenderInterruptedError","logDisallowedDynamicError","markCurrentScopeAsDynamic","postponeWithTracking","throwIfDisallowedDynamic","throwToInterruptStaticGeneration","trackAllowedDynamicAccess","trackDynamicDataInDynamicRender","trackDynamicHoleInRuntimeShell","trackDynamicHoleInStaticShell","useDynamicRouteParams","useDynamicSearchParams","hasPostpone","unstable_postpone","isDebugDynamicAccesses","dynamicAccesses","syncDynamicErrorWithStack","hasSuspenseAboveBody","hasDynamicMetadata","dynamicMetadata","hasDynamicViewport","hasAllowedDynamic","dynamicErrors","trackingState","store","workUnitStore","forceDynamic","forceStatic","dynamicShouldError","dynamicTracking","revalidate","dynamicUsageDescription","dynamicUsageStack","stack","usedDynamic","prerenderStore","abortOnSynchronousDynamicDataAccess","createPrerenderInterruptedError","controller","abort","errorWithStack","prerenderSignal","workUnitAsyncStorage","assertPostpone","createPostponeReason","isDynamicPostponeReason","NEXT_PRERENDER_INTERRUPTED","serverDynamic","clientDynamic","access","line","AbortController","cacheSignal","inputReady","runtimeStagePromise","getRuntimeStagePromise","workStore","workAsyncStorage","fallbackParams","fallbackRouteParams","size","renderSignal","throwForMissingRequestStore","hasSuspenseRegex","bodyAndImplicitTags","hasSuspenseBeforeRootLayoutWithoutBodyOrImplicitBodyRegex","RegExp","hasMetadataRegex","hasViewportRegex","hasOutletRegex","componentStack","dynamicValidation","createErrorWithComponentOrOwnerStack","ownerStack","captureOwnerStack","dev","hasReadableErrorStacks","prelude","result","unstable_rethrow","cause","ServerInsertedHTMLContext","useParams","usePathname","useRouter","useSearchParams","useSelectedLayoutSegment","useSelectedLayoutSegments","useServerInsertedHTML","SearchParamsContext","readonlySearchParams","navigationPromises","NavigationPromisesContext","PathnameContext","router","AppRouterContext","params","PathParamsContext","context","LayoutRouterContext","selectedLayoutSegmentsPromises","parentTree","selectedLayoutSegments","selectedLayoutSegmentPromises"],"mappings":"6CAKA,EAAQ,CAAC,CAHT,EAGY,OAHsB,AAAzB,CAA4B,EACjC,OAAO,GAAO,EAAI,UAAU,CAAG,EAAM,CAAE,QAAS,CAAI,CACxD,yGCOSA,WAAAA,qCAAAA,KAXT,IAAIA,EAAW,AAACC,IAAe,wFCEfW,eAAe,CAAA,kBAAfA,GAIAC,iCAAiC,CAAA,kBAAjCA,uEAJT,SAASD,IACd,MAAqC,CAA9BV,AAA8B,CACvC,CAEO,MAHUC,GAAG,AAGJU,CAHKC,GAQnB,MAAO,EACT,OATuC,wBCAhC,SAASE,EAAgB,UAC9BC,CAAQ,WACRC,CAAS,WACTC,CAAS,YACTC,CAAU,aACVC,CAAW,WACXC,CAAS,CAQV,EAEC,IAAME,EAAWL,EAAwB,GAAZA,EAAiBF,EACxCQ,EAAYL,EAAaA,AAAa,KAAKF,EAE3CQ,EACJF,GAAYC,EAAY,CAAC,aAAa,EAAED,EAAS,CAAC,EAAEC,EAAU,CAAC,CAAC,CAAG,GASrE,MAAO,CAAC,0CAA0C,EAAEC,QAAQ,yFAAyF,EAAEH,IAAI,+PAA+P,EAAEA,IAAI,+EARpYG,EACxB,OACc,GAMye,EAAEC,OANzfL,EACE,WAK2gB,AAJ7f,UAAdA,EACE,iBACA,MAE4iB,sCAAED,YAAY,MACpkB,AADolB,CA9BnlB,OAAA,CA8BklB,aA9BllB,CAAA,EAAA,aAAA,oCACeL,kBAAAA,qCAAAA,yFCHHY,aAAa,CAAA,kBAAbA,GA0IAC,kBAAkB,CAAA,kBAAlBA,uEA1IN,IAAMD,EAAgB,CAC3B,UACA,QACA,aACA,SACA,SACD,CAoIYC,EAA0C,CACrDC,YAAa,CAAC,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAK,CAC1DC,WAAY,CAAC,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAI,CAC3CC,KAAM,eACNC,OAAQ,UACRC,WAAY,GAIZC,QAAS,EAAE,CACXC,qBAAqB,EACrBC,gBAAiB,MACjBC,QAAS,CAAC,aAAa,CACvBC,iBAAkB,EAClBC,oBAAqB,IACrBC,yBAAyB,EACzBC,qBAAqB,EACrBC,sBAAuB,CAAC,6CAA6C,CAAC,CACtEC,uBAAwB,aACxBC,mBAAeC,EACfC,eAAgB,EAAE,CAClBC,UAAW,CAAC,GAAG,CACfC,aAAa,CACf,yGC2GgBC,cAAAA,qCAAAA,OA5QS,CAAA,CAAA,IAAA,WACO,CAAA,CAAA,IAAA,OACA,CAAA,CAAA,IAAA,MACG,CAAA,CAAA,IAAA,CAuF7BE,EAAiC,CACrC,eACA,OACA,OACA,kBACAN,EACD,CA4BD,SAASO,EACPC,CAAoC,EAEpC,OAAQA,KAAkCR,MAAZS,OAAO,AACvC,CAuBA,SAASM,EAAOC,CAAU,SACxB,AAAI,KAAa,IAANA,EACFA,EAEQ,KAHa,KAG1B,AAAuB,OAAhBA,EACFC,OAAOC,QAAQ,CAACF,GAAKA,EAAIG,IAEjB,UAAb,OAAOH,GAAkB,WAAWI,IAAI,CAACJ,GACpCK,CADwC,QAC/BL,EAAG,IAEdG,GACT,CA0GO,SAASf,EACd,KACEI,CAAG,OACHiB,CAAK,aACLtB,EAAc,EAAK,UACnBkD,GAAW,CAAK,SAChBC,GAAU,CAAK,SACfC,CAAO,WACPC,CAAS,SACTX,CAAO,OACPrB,CAAK,QACLiC,CAAM,MACNC,GAAO,CAAK,CACZC,OAAK,aACLC,CAAW,QACXC,CAAM,mBACNC,CAAiB,aACjBC,EAAc,OAAO,aACrBxF,CAAW,eACXyF,CAAa,UACbC,EAAW,OAAO,QAClBC,CAAM,WACN1F,CAAS,gBACT2F,CAAc,cACdC,CAAY,CACZC,UAAQ,CACR,GAAGC,EACQ,CACbC,CAKC,QAUD,IACI3B,EAqEAvE,EACAC,EAvEE,SAAEkG,CAAO,aAAEC,CAAW,cAAEC,CAAY,eAAEC,CAAa,CAAE,CAAGJ,EAE1DK,EAAIJ,GAAWzF,EAAAA,kBAAkB,CACrC,GAAI,aAAc6F,EAChBhC,CADmB,CACVgC,MACJ,CACL,IAAMrD,EAAW,IAAIqD,EAAE5F,WAAW,IAAK4F,EAAE3F,UAAU,CAAC,CAAC4F,IAAI,CAAC,CAACC,EAAGC,IAAMD,EAAIC,GAClE/F,EAAc4F,EAAE5F,WAAW,CAAC6F,IAAI,CAAC,CAACC,EAAGC,IAAMD,EAAIC,GAC/C7E,EAAY0E,EAAE1E,SAAS,EAAE2E,KAAK,CAACC,EAAGC,IAAMD,EAAIC,GAClDnC,EAAS,CAAE,GAAGgC,CAAC,CAAErD,uBAAUvC,YAAakB,CAAU,CACpD,CAEA,GAAI,KAAyB,IAAlByE,EACT,MAAM,CADkC,MAClC,cAEL,CAFK,AAAIK,MACR,yIADI,oBAAA,OAAA,kBAAA,gBAAA,EAEN,GAEF,IAAI7F,EAAgCmF,EAAKnF,MAAM,EAAIwF,CAGnD,QAAOL,EAAKnF,MAAM,CAClB,OAAQmF,EAAarB,MAAM,CAI3B,IAAMgC,EAAkB,uBAAwB9F,EAEhD,GAAI8F,GACF,GAAsB,UAAU,CADb,AACfrC,EAAOzD,MAAM,CACf,MAAM,OAAA,cAGL,CAHK,AAAI6F,MACR,CAAC,gBAAgB,EAAExE,EAChB,EADoB,2BAA2B;AAC/C,qEAAuE,CADvB,AACwB,EAFvE,CAEF,mBAFE,OAAA,mBAAA,eAAA,EAGN,EACF,KACK,CAIL,IAAM0E,EAAoB/F,EAC1BA,EAAS,AAACgG,IACR,GAAM,CAAEvC,OAAQzF,CAAC,CAAE,GAAGiI,EAAM,CAAGD,EAC/B,OAAOD,EAAkBE,EAC3B,CACF,CAEA,GAAIlB,EAAQ,CACK,QAAQ,CAAnBA,IACFR,GAAO,CAAA,EAUT,IAAMgC,EARoE,AAQtDL,CAPlBC,UAAW,CAAEC,SAAU,OAAQ9B,OAAQ,MAAO,EAC9C+B,WAAY,CAAEhE,MAAO,OAAQiC,OAAQ,MAAO,CAC9C,CAKiC,CAACS,EAAO,CACrCwB,IACF/B,EAAQ,CAAE,GAAGA,CAAK,CAAE,CADL,EACQ+B,CAAW,CAAC,EAErC,IAAMC,EARoD,AAQtCF,CAPlBD,WAAY,QACZ9B,KAAM,OACR,CAKiC,CAACQ,EAAO,CACrCyB,GAAe,CAAClE,IAClBA,EAAQkE,CADiB,AACjBA,CAEZ,CAEA,IAAIC,EAAY,GACZzH,EAAW4C,EAAOS,GAClBpD,EAAY2C,EAAO0C,GAGvB,GArPE,CAqPE9C,AAvPkBH,AAEnB,CAACA,CAqPeA,CAvP6B,GAG/B,UAAf,EACCD,KADMC,IACND,EAAgBC,QACfE,CARoCV,IAQlBQ,AARdA,EAAwBA,GAQVA,AARa,CAQM,CAkPhB,CACvB,IAAMqF,EAAkBtF,EAAgBC,GAAOA,EAAIC,OAAO,CAAGD,EAE7D,GAAI,CAACqF,EAAgBrF,GAAG,CACtB,CADwB,KAClB,OAAA,cAIL,CAJK,AAAIwE,MACR,CAAC,2IAA2I,EAAEc,KAAKC,SAAS,CAC1JF,GAAAA,CACC,EAHC,oBAAA,OAAA,mBAAA,gBAAA,CAIN,GAEF,GAAI,CAACA,EAAgBpC,MAAM,EAAI,CAACoC,EAAgBrE,KAAK,CACnD,CADqD,KAC/C,OAAA,cAIL,CAJK,AAAIwD,MACR,CAAC,wJAAwJ,EAAEc,KAAKC,SAAS,CACvKF,GAAAA,CACC,EAHC,oBAAA,OAAA,kBAAA,eAAA,EAIN,GAQF,GALAxH,EAAYwH,EAAgBxH,SAAS,CACrCC,EAAauH,EAAgBvH,UAAU,CACvCC,EAAcA,GAAesH,EAAgBtH,WAAW,CACxDqH,EAAYC,EAAgBrF,GAAG,CAE3B,CAACkD,EACH,GAAI,AAACvF,CADI,EACSC,GAGX,GAAID,GAHM,AAGM,CAACC,CAHK,CAGM,CACjC,IAAM4H,EAAQ7H,EAAW0H,EAAgBrE,KAAK,CAC9CpD,EAAY6D,KAAKgE,KAAK,CAACJ,EAAgBpC,MAAM,CAAGuC,EAClD,MAAO,GAAI,CAAC7H,GAAYC,EAAW,CACjC,IAAM4H,EAAQ5H,EAAYyH,EAAgBpC,MAAM,CAChDtF,EAAW8D,KAAKgE,KAAK,CAACJ,EAAgBrE,KAAK,CAAGwE,GAChD,MARE7H,EAAW0H,EAAgBrE,KAAK,CAChCpD,EAAYyH,EAAgBpC,MASlC,AATwC,CAYxC,IAAIyC,EACF,CAAC7C,GACD,CAACC,IACY,OAAZC,EAAAA,GAAsB,KAAmB,IAAZA,CAAY,CAAU,EAClD,CAAC/C,CANLA,EAAqB,UAAf,OAAOA,EAAmBA,EAAMoF,CAAAA,GAM1BpF,EAAIsC,UAAU,CAAC,UAAYtC,EAAIsC,UAAU,CAAC,QAAA,GAAU,CAE9D3C,EAAc,GACd+F,EAAS,IAEPtD,EAAOzC,WAAW,EAAE,CACtBA,GAAc,CAAA,EAGd8E,GACA,CAACrC,EAAOhD,mBAAmB,EAC3BY,EAAI2F,KAAK,CAAC,IAAK,EAAE,CAAC,EAAE,CAACC,QAAQ,CAAC,SAC9B,CAGAjG,GAAc,CAAA,EAGhB,IAAMkG,EAAatF,EAAO8B,GA6NpBqF,EAAWf,OAAOgB,MAAM,CAC5BzE,EACI,CACE6C,SAAU,WACV9C,OAAQ,OACRjC,MAAO,OACP4G,KAAM,EACNC,IAAK,EACLC,MAAO,EACPC,OAAQ,YACR/J,iBACA2F,CACF,EACA,CAAC,EACLM,EAAc,CAAC,EAAI,CAAE+D,MAAO,aAAc,EAC1C7E,GAGI8E,EACJ,AAAC/D,GAAgC,UAAhBX,EAWb,KAVgB,SAAhBA,EACE,CAAC,sCAAsC,EAAE7F,CAAAA,EAAAA,EAAAA,eAAAA,AAAe,EAAC,UACvDC,YACAC,YACAC,EACAC,aACAC,YAAaA,GAAe,GAC5BC,UAAW0J,EAAS1J,SAAS,AAC/B,GAAG,EAAE,CAAC,CACN,CAAC,KAAK,EAAEuF,EAAY,EAAE,CAAC,CAAC,AAG1B2E,EAAiB,AAACpI,EAA+B0C,QAAQ,CAC7DkF,EAAS1J,QAJ4C,CAInC,EAGO,SAAvB0J,EAAS1J,SAAS,CAChB,YAAY,AACZ,QAHF0J,EAAS1J,SAAS,CAKlBmK,EAAqCF,EACrC,gBACEC,EACAE,CANuD,kBAMnCV,EAAS/D,cAAc,EAAI,UAC/C0E,iBAAkB,4BAClBJ,CACF,EACA,CAAC,EAeCK,EAvfR,AAufwBnG,SAvffA,AAAiB,QACxBC,CAAM,CACNpC,KAAG,aACHL,CAAW,OACXqB,CAAK,SACLqB,CAAO,CACPpB,OAAK,QACLtC,CAAM,CACU,EAChB,GAAIgB,EAAa,CACf,IAAMlC,EAAeH,CAAAA,EAAAA,EAAAA,eAAAA,AAAe,IACpC,GAAI0C,EAAIsC,UAAU,CAAC,MAAQ,CAACtC,EAAIsC,UAAU,CAAC,OAAS7E,EAAc,CAChE,IAAM8E,EAAMvC,EAAIwC,QAAQ,CAAC,KAAO,IAAM,IACtCxC,EAAM,CAAA,EAAGA,EAAAA,EAAMuC,EAAI,IAAI,EAAE9E,EAAAA,CAAc,AACzC,CACA,MAAO,KAAEuC,EAAKyC,YAAQjD,EAAWyB,WAAOzB,CAAU,CACpD,CAEA,GAAM,QAAEmC,CAAM,MAAEG,CAAI,CAAE,CA7ExB,AA6E2BhB,SA7ElBA,AACP,aAAEtC,CAAW,CAAEuC,UAAQ,CAAe,CACtCC,CAAyB,CACzBC,CAAyB,EAEzB,GAAIA,EAAO,CAET,IAAMC,EAAkB,qBAClBC,EAAe,EAAE,CACvB,IAAK,IAAIC,EAAQA,EAAQF,EAAgBG,IAAI,CAACJ,IAC5CE,EAAaG,EADwCF,EACpC,CAACP,GAD0C,MACjCO,CAAK,CAAC,EAAE,GAErC,GAAID,EAAaI,MAAM,CAAE,CACvB,IAAMC,EAA4C,IAA5BC,KAAKC,GAAG,IAAIP,GAClC,MAAO,CACLQ,OAAQZ,EAASa,MAAM,CAAC,AAACC,GAAMA,GAAKrD,CAAW,CAAC,EAAE,CAAGgD,GACrDM,KAAM,GACR,CACF,CACA,MAAO,CAAEH,OAAQZ,EAAUe,KAAM,GAAI,CACvC,OACqB,AAArB,UAA+B,AAA3B,OAAOd,EACF,CAAEW,OAAQnD,EAAasD,KAAM,GAAI,EAkBnC,CAAEH,OAfM,IACV,IAAI3E,IAEL,AADA,AAQA,CAACgE,EAAe,EAARA,AAAU,EAAgB,CAACe,GAAG,CACpC,AAACC,GAAMjB,EAASkB,CADa,GACT,CAAEC,AAAD,GAAOA,GAAKF,IAAMjB,CAAQ,CAACA,EAASQ,MAAM,CAAG,EAAE,GAGzE,CACgBO,KAAM,GAAI,CAC7B,EAoCqCM,EAAQpB,EAAOC,GAC5CyB,EAlDmE,AAkD5Df,EAnD8D,AAmDvDJ,MAAM,CAAG,EAE7B,MAAO,CACLN,MAAO,AAACA,GAAkB,MAATa,EAAyBb,EAAV,QAChCwB,OAAQd,EACLI,GAAG,CACF,CAACC,EAAGW,IACF,CAAA,EAAGhE,EAAO,QAAEyD,MAAQpC,UAAKqC,EAASrB,MAAOgB,CAAE,GAAG,CAAC,EACpC,MAATF,EAAeE,EAAIW,EAAI,EAAA,EACtBb,EAAAA,CAAM,EAEZc,IAAI,CAAC,MAQR5C,IAAKrB,EAAO,QAAEyD,MAAQpC,UAAKqC,EAASrB,MAAOW,CAAM,CAACe,EAAK,AAAC,EAC1D,CACF,EA+cyC,QACrCN,MACApC,cACAL,EACAqB,MAAOrD,EACP0E,QAASwD,QACT5E,SACAtC,CACF,GAEM4J,EAAe7C,EAAS,OAAS3C,EA4BvC,MAAO,CAAE8F,MAde,CACtB,GAAG/E,CAAI,CACPf,QAASwF,gBACT/E,EACAxC,MAAOrD,EACPsF,OAAQrF,WACR6F,YACAT,EACAG,MAAO,CAAE,GAAGuE,CAAQ,CAAE,GAAGS,CAAgB,AAAC,EAC1ClH,MAAOqH,EAAcrH,KAAK,CAC1BwB,OAAQ6F,EAAc7F,MAAM,CAC5BzC,IAAKoD,GAAekF,EAActI,GAAG,AACvC,EAEgB8I,KADH,aAAEnJ,EAAamD,QAASA,GAAWD,cAAUU,OAAaL,CAAK,CACvD,CACvB,gCC3vBA,SAAS,EAAyB,CAAW,EACzC,GAAuB,YAAnB,OAAO,QAAwB,OAAO,KAE1C,IAAI,EAAoB,IAAI,QACxB,EAAmB,IAAI,QAE3B,MAAO,CAAC,EAA2B,SAAS,CAAW,EACnD,OAAO,EAAc,EAAmB,EAC5C,CAAC,CAAE,EACP,CA0BA,EAAQ,CAAC,CAzBT,EAyBY,OAzBH,AAA0B,CAAG,CAAE,CAAW,EAC/C,GAAI,CAAC,GAAe,GAAO,EAAI,UAAU,CAAE,OAAO,EAClD,GAAY,OAAR,GAA+B,UAAf,OAAO,GAAmC,YAAf,OAAO,EAAoB,MAAO,CAAE,QAAS,CAAI,EAEhG,IAAI,EAAQ,EAAyB,GAErC,GAAI,GAAS,EAAM,GAAG,CAAC,GAAM,OAAO,EAAM,GAAG,CAAC,GAE9C,IAAI,EAAS,CAAE,UAAW,IAAK,EAC3B,EAAwB,OAAO,cAAc,EAAI,OAAO,wBAAwB,CAEpF,IAAK,IAAI,KAAO,EACZ,EADiB,CACL,YAAR,GAAqB,OAAO,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,EAAK,GAAM,CACrE,IAAI,EAAO,EAAwB,OAAO,wBAAwB,CAAC,EAAK,GAAO,KAC3E,IAAS,EAAK,EAAN,CAAS,EAAI,EAAK,GAAA,AAAG,EAAG,OAAO,cAAc,CAAC,EAAQ,EAAK,GAClE,CAAM,CAAC,EAAI,CAAG,CAAG,CAAC,EAAI,AAC/B,CAOJ,OAJA,EAAO,OAAO,CAAG,EAEb,GAAO,EAAM,GAAG,CAAC,EAAK,GAEnB,CACX,yGCpBA,UAAA,qCAAwB6F,aAfuC,CAAA,CAAA,IAAA,GAYzDE,EAAuC,KAAO,EAGrC,EAHyCC,OAGhCH,EAAWF,CAAsB,EACvD,GAAM,EAJ0BG,KAAqC,MAI7DK,CAAW,yBAAEC,CAAuB,CAAE,CAAGT,EAEjD,SAASU,IACP,GAAIF,GAAeA,EAAYG,gBAAgB,CAAE,CAC/C,IAAMC,EAAeC,EAAAA,QAAQ,CAACC,OAAO,CACnCC,MAAMC,IAAI,CAACR,EAAYG,gBAAgB,EAA0B5H,MAAM,CACrEkI,UAGJT,EAAYU,UAAU,CAACT,EAAwBG,GACjD,CACF,QAGEJ,GAAaG,kBAAkBnM,IAAIwL,EAAMmB,QAAQ,EACjDT,IAGFN,EAA0B,KACxBI,GAAaG,kBAAkBnM,IAAIwL,EAAMmB,QAAQ,EAC1C,KACLX,GAAaG,kBAAkBS,OAAOpB,EAAMmB,QAAQ,CACtD,IAQFf,EAA0B,KACpBI,IACFA,EAAYa,OADG,OACW,CAAGX,CAAAA,EAExB,KACDF,IACFA,EAAYa,OADG,OACW,CAAGX,CAAAA,CAEjC,IAgBK,IACT,gCCxEAY,EAAOC,OAAO,CACZC,EAAQ,CAAA,CAAA,IAAA,GACRC,QAAQ,CAAC,QAAW,CAACC,kBAAkB,uFCkKzC,OAAmB,CAAA,kBAAnB,GA7JgBC,WAAW,CAAA,kBAAXA,0HAL4B,CAAA,CAAA,IAAA,YACzB,CAAA,CAAA,IAAA,QACgB,CAAA,CAAA,IAAA,GAG5B,SAASA,IAKd,MAJa,CACX,AAGKC,CAHL,EAAA,EAAA,GAAA,EAAC3B,OAAAA,CAAK4B,QAAQ,SAAY,WAC1B,CAAA,EAAA,EAAA,GAAA,EAAC5B,OAAAA,CAAK6B,KAAK,WAAWC,QAAQ,sBAAyB,YAG3D,AAFG,CAIH,SAASC,EACPC,CAAoC,CACpCC,CAA2C,QAG3C,AAAqB,UAAjB,OAAOA,GAAuC,UAAjB,AAA2B,OAApBA,EAC/BD,EAGLC,EAAMxD,IAAI,GAAKyD,EAAAA,OAAK,CAACC,QAAQ,CACxBH,CAD0B,CACrBI,MAAM,CAEhBF,EAAAA,OAAK,CAACtB,QAAQ,CAACC,OAAO,CAACoB,EAAMlC,KAAK,CAACmB,QAAQ,EAAEmB,MAAM,CAEjD,CACEC,EACAC,IAEA,AACE,AAAyB,iBAAlBA,EARsF,CASpE,UAAzB,AACA,OADOA,EAEAD,EAEFA,EAAaF,MAAM,CAACG,GAE7B,EAAE,GAIDP,EAAKI,MAAM,CAACH,EACrB,GAzCyB,CAAA,CAAA,IAAA,EAuBkF,CAoB3G,IAAMO,EAAY,CAAC,OAAQ,YAAa,UAAW,WAAW,CAsE9D,SAASiB,EACPC,CAAoD,EA/DpD,IAAMhB,EACAC,EACAC,EACAC,EA8DN,OAAOa,EACJrB,MAAM,CAACN,EAAkB,EAAE,EAC3B4B,OAAO,GACPvB,MAAM,CAACV,IAAciC,OAAO,IAC5B7K,MAAM,CAAC2J,GArEG,IAAIvO,MACJ,IAAIA,MACC,IAAIA,MACsC,CAAC,EAEtD,AAAC4O,IACN,IAAIC,EAAW,GACXC,GAAS,EAEb,GAAIF,EAAEG,GAAG,EAAqB,UAAjB,OAAOH,EAAEG,GAAG,EAAiBH,EAAEG,GAAG,CAACC,OAAO,CAAC,KAAO,EAAG,CAChEF,GAAS,EACT,IAAMC,EAAMH,EAAEG,GAAG,CAACE,KAAK,CAACL,EAAEG,GAAG,CAACC,OAAO,CAAC,KAAO,GACzCR,EAAKtO,GAAG,CAAC6O,GACXF,GADiB,AACN,EAEXL,EAAKnO,GAAG,CAAC0O,EAEb,CAGA,OAAQH,EAAErE,IAAI,EACZ,IAAK,QACL,IAAK,OACCkE,EAAKvO,GAAG,CAAC0O,EAAErE,IAAI,EACjBsE,CADoB,CACT,GAEXJ,EAAKpO,GAAG,CAACuO,EAAErE,IAAI,EAEjB,KACF,KAAK,OACH,IAAK,IAAI5E,EAAI,EAAGuJ,EAAMZ,EAAU/J,MAAM,CAAEoB,EAAIuJ,EAAKvJ,IAAK,CACpD,IAAMwJ,EAAWb,CAAS,CAAC3I,EAAE,CAC7B,GAAKiJ,CAAD,CAAG/C,KAAK,CAACuD,cAAc,CAACD,GAE5B,GAAiB,KAFsB,MAEX,CAAxBA,EACET,EAAUxO,GAAG,CAACiP,GAChBN,GAAW,EAEXH,EAAUrO,CAHiB,EAGd,CAAC8O,OAEX,CACL,IAAME,EAAWT,EAAE/C,KAAK,CAACsD,EAAS,CAC5BG,EAAaX,CAAc,CAACQ,EAAS,EAAI,IAAInP,GAC9CmP,EAAa,SAAbA,GAAuB,CAACL,CAAAA,CAAK,EAAMQ,EAAWpP,GAAG,CAACmP,GACrDR,EAAW,IAEXS,EAHgE,AAGrDjP,GAAG,CAACgP,GACfV,CAAc,CAACQ,EAAS,CAAGG,EAE/B,CACF,CAEJ,CAEA,OAAOT,CACT,IAeGY,OAAO,GACP1K,GAAG,CAAC,CAACqC,EAA4BzB,KAChC,IAAMoJ,EAAM3H,EAAE2H,GAAG,EAAIpJ,EAgBrB,OAAOqI,AAAP,EAAOA,OAAK,CAAC2B,CAAb,WAAyB,CAACvI,EAAG,KAAE2H,CAAI,EACrC,EACJ,KAkBA,EAZA,SAASa,AAAK,AAYCA,UAZC5C,CAAQ,CAAiC,EACvD,IAAMX,EAAcwD,CAAAA,EAAAA,EAAAA,UAAU,AAAVA,EAAWtC,EAAAA,kBAAkB,EACjD,MACE,CADF,EACE,EAAA,GAAA,EAACuC,EADH,AACGA,OAAM,CAAA,CACLxD,wBAAyBiD,EACzBlD,YAAaA,WAEZW,GAGP,sPClKAG,EAAOC,OAAO,CACZC,EAAQ,CAAA,CAAA,IAAA,GACRC,QAAQ,CAAC,QAAW,CAACyC,kBAAkB,+BCFzC5C,EAAOC,OAAO,CACZC,EAAQ,CAAA,CAAA,IAAA,GACRC,QAAQ,CAAC,QAAW,CAAC0C,aAAa,+BCM7B,SAASC,EACd5K,CAA2B,CAC3BD,CAAwC,EAExC,IAAM8K,EAAI7K,GAAW,UACrB,AAAKD,GAAQ1C,CAAT,UAAoB6B,OAGjBa,CAHyB,CAGlB1C,SAAS,CAACyL,MAAM,CAC5B,CAACgC,EAAMC,IAAS3L,KAAK4L,GAAG,CAACD,EAAMF,GAAKzL,KAAK4L,GAAG,CAACF,EAAOD,GAAKE,EAAMD,EAC/D,GAJOD,CAMX,0EAZgBD,qBAAAA,qCAAAA,2GCmGhB,UAAA,qCAAA,aA1GmC,CAAA,CAAA,IAAA,OACH,CAAA,CAAA,IAAA,GAEhC,SAAS9I,EAAc,QACrB/B,CAAM,KACNpC,CAAG,OACHgB,CAAK,SACLqB,CAAO,CACoB,EAC3B,GACErC,EAAIsC,UAAU,CAAC,MACftC,EAAIwC,QAAQ,CAAC,MACbJ,EAAO7C,aAAa,EAAEgC,SAAW,GACI,OAArCa,EAAO7C,aAAa,CAAC,EAAE,CAACgH,QAAQ,EACG,IACnC,CADAnE,EAAO7C,aAAa,CAAC,EAAE,CAACiH,MAAM,CAE9B,MAAM,OAAA,cAGL,CAHK,AAAIhC,MACR,CAAC,gBAAgB,EAAExE,EAChB,EADoB,0EAA0E;AAC9F,iFAAmF,CADY,AACX,EAFnF,CAEF,mBAFE,OAAA,mBAAA,gBAAA,CAGN,GA2EF,IAAMkN,EAAID,CAAAA,EAAAA,EAAAA,kBAAAA,AAAkB,EAAC5K,EAASD,GAElC3E,EAAeH,CAAAA,EAAAA,EAAAA,eAAAA,AAAe,IAClC,MAAO,CAAA,EAAG8E,EAAO1D,IAAI,CAAC,KAAK,EAAEkP,mBAAmB5N,GAAK,GAAG,EAAEgB,EAAM,GAAG,EAAEkM,EAAAA,EACnElN,EAAIsC,UAAU,CAAC,MAAQ7E,EAAe,CAAC,KAAK,EAAEA,EAAAA,CAAc,CAAG,GAAA,CAEnE,AADI,CAKJ0G,EAAc0J,kBAAkB,EAAG,MAEnC,EAAe1J,wGClGC2J,eAAAA,qCAAAA,aAT8B,CAAA,CAAA,IAAA,GASvC,SAASA,EACdC,CAAmB,CACnBC,CAAmB,EAEnB,IAAMC,EAAWC,CAAAA,EAAAA,EAAAA,MAAAA,AAAM,EAAsB,MACvCC,EAAWD,CAAAA,EAAAA,EAAAA,MAAAA,AAAM,EAAsB,MAS7C,MAAOE,CAAAA,EAAAA,EAAAA,WAAAA,AAAW,EAChB,AAACC,IACC,GAAgB,OAAZA,EAAkB,CACpB,IAAMC,EAAaL,EAASI,OAAO,CAC/BC,IACFL,EAASI,MADK,CACE,CAAG,KACnBC,KAEF,IAAMC,EAAaJ,EAASE,OAAO,CAC/BE,IACFJ,EAASE,MADK,CACE,CAAG,KACnBE,IAEJ,MACMR,CADC,GAEHE,EADQ,AACCI,OAAO,CAAGG,EAAST,EAAMM,EAAAA,EAEhCL,IACFG,EADQ,AACCE,OAAO,CAAGG,EAASR,EAAMK,EAAAA,CAGxC,EACA,CAACN,EAAMC,EAAK,CAEhB,CAEA,SAASQ,EACPT,CAAgC,CAChCM,CAAiB,EAEjB,GAAoB,YAAhB,OAAON,EAST,OADAA,EAAKM,OAAO,CAAGA,EACR,KACLN,EAAKM,OAAO,CAAG,IACjB,CAX8B,EAC9B,IAAMI,EAAUV,EAAKM,SACrB,AAAuB,YAAnB,AAA+B,OAAxBI,EACFA,EAEA,IAAMV,EAAK,KAEtB,CAMF,MANS,yTCySIW,QAAAA,qCAAAA,wDA1VN,CAAA,CAAA,IAAA,YACc,CAAA,CAAA,IAAA,YACJ,CAAA,CAAA,IAAA,QACW,CAAA,CAAA,IAAA,OAYO,CAAA,CAAA,IAAA,KACA,CAAA,CAAA,IAAA,IACV,CAAA,CAAA,IAAA,WACK,CAAA,CAAA,IAAA,WAGJ,CAAA,CAAA,IAAA,OACG,CAAA,CAAA,IAAA,EAGvBC,EAAyC,UAA7B/R,QAAQC,GAAG,CAAC+R,iBAAiB,6IAyB/C,SAASG,EACPC,CAA2B,CAC3BzL,CAA6B,CAC7B0L,CAAqD,CACrDC,CAA2E,CAC3EC,CAAqC,CACrCxP,CAAoB,CACpByP,CAA8B,EAE9B,IAAMpP,EAAMgP,GAAKhP,GACjB,CAAKgP,GAAD,AAAQA,CAAG,CAAC,kBAAkB,GAAKhP,IAGvCgP,CAH4C,AAGzC,CAAC,kBAAkB,CAAGhP,EAEzBkC,CADU,WAAY8M,EAAMA,EAAIK,MAAM,GAAKC,QAAQC,OAAO,EAAA,EACxDC,KAAK,CAAC,KAAO,GAAGC,IAAI,CAAC,KACrB,GAAI,AAACT,EAAIU,aAAa,EAAKV,EAAD,AAAKW,WAAW,EAW1C,AAX4C,GAQxB,AAAhBpM,SAAyB,IAC3B4L,EAAgB,IAEdF,GAAWZ,QAAS,CAItB,IAAMuB,EAAQ,IAAIC,MAAM,QACxBlJ,OAAOmJ,cAAc,CAACF,EAAO,SAAU,CAAEG,UAAU,EAAOC,MAAOhB,CAAI,GACrE,IAAIiB,GAAY,EACZC,EAAU,GACdjB,EAAUZ,OAAO,CAAC,CAChB,GAAGuB,CAAK,CACRO,YAAaP,EACbQ,cAAepB,EACfqB,OAAQrB,EACRsB,mBAAoB,IAAML,EAC1BM,qBAAsB,IAAML,EAC5BM,QAAS,KAAO,EAChBC,eAAgB,KACdR,GAAY,EACZL,EAAMa,cAAc,EACtB,EACAC,gBAAiB,KACfR,GAAU,EACVN,EAAMc,eAAe,EACvB,CACF,EACF,CACIxB,GAAsBb,SAAS,AACjCa,EAAqBb,OAAO,CAACW,GAkDjC,GACF,CAEA,SAASsC,EACP9N,CAAsB,SAEtB,AAAY+N,EAAAA,EAARzH,CAAW,CAIN,EAJS,aAIPtG,CAAc,EAIlB,CAAEgO,cAAehO,CAAc,CACxC,CA7IIqL,WAAmBC,qBAAqB,EAAG,EA+I/C,IAAM2C,EAAeC,CAAAA,EAAAA,EAAAA,QAAfD,EAAeC,AAAU,EAC7B,CACE,KACE1R,CAAG,AAHHyR,QAIAhP,CAAM,OACNxB,CAAK,QACLgC,CAAM,CACNjC,OAAK,UACLyC,CAAQ,WACRT,CAAS,OACTG,CAAK,eACLK,CAAa,aACbD,CAAW,SACXR,CAAO,aACPpD,CAAW,MACXuD,CAAI,CACJ+L,WAAS,sBACTC,CAAoB,iBACpBC,CAAe,gBACfwC,CAAc,YACdvC,CAAU,QACV/L,CAAM,SACNuO,CAAO,CACP,GAAG9N,EACJ,CACD+N,KAEA,IAAMC,EAAS1D,GAAAA,EAAAA,WAAAA,AAAW,EACxB,AAACY,IACMA,IAGD4C,CAHM,GAQR5C,EAAIhP,GAAG,AALI,CAKDgP,EAAIhP,GAAG,AAAHA,EAYZgP,EAAI+C,QAAQ,EAAE,AAChBhD,EACEC,EACAzL,EACA0L,EACAC,EACAC,EACAxP,EACAyP,GAGN,EACA,CACEpP,EACAuD,EACA0L,EACAC,EACAC,EACAyC,EACAjS,EACAyP,EACD,EAGG4C,EAAMlE,GAAAA,EAAAA,YAAAA,AAAY,EAAC+D,EAAcC,GAEvC,MACE,CAAA,AADF,EACE,EAAA,GAAA,EAAC9C,EADH,IACGA,CACE,GAAGlL,CAAI,CACP,GAAGwN,EAAgB9N,EAAc,CAIlCT,QAASA,EACT/B,MAAOA,EACPiC,OAAQA,EACRQ,SAAUA,EACVwO,YAAW/O,EAAO,OAAS,IAC3BF,UAAWA,EACXG,MAAOA,EAOPlC,MAAOA,EACPwB,OAAQA,EACRzC,IAAKA,EACLgS,IAAKA,EACL3O,OAAQ,AAACuM,IAEPb,EADYa,EAAMQ,UAEhBpB,GAF6B,CAG7BzL,EACA0L,EACAC,EACAC,EACAxP,EACAyP,EAEJ,EACAwC,QAAS,AAAChC,IAER+B,GAAe,GACK,SAAS,CAAzBpO,GAEF4L,EAAgB,IAEdyC,GACFA,EAAQhC,EAEZ,EAHe,CAMrB,GAGF,SAASsC,EAAa,aACpBC,CAAW,eACX7J,CAAa,CAId,EACC,IAAM1D,EAAgC,CACpCwN,GAAI,QACJC,YAAa/J,EAAc7F,MAAM,CACjChE,WAAY6J,EAAcrH,KAAK,CAC/BqR,YAAahK,EAAcgK,WAAW,CACtCC,eAAgBjK,EAAciK,cAAc,CAC5C,GAAGjB,EAAgBhJ,EAAc9E,aAAa,CAAC,AACjD,SAEA,AAAI2O,GAAeK,EAAAA,OAAQ,CAAC1P,OAAO,EAAE,AACnC0P,EAAAA,OAAQ,CAAC1P,OAAO,CAACwF,EAActI,GAAG,CAAE4E,GAC7B,MAIP,CAAA,EAAA,EAAA,GAAA,EAACgI,EAAAA,OAAI,CAAA,UACH,CAAA,EAAA,EAAA,GAAA,EAAC6F,EAAD,KAACA,CAOCC,IAAI,UAMJ/J,KAAML,EAAc7F,MAAM,MAAGjD,EAAY8I,EAActI,GAAG,CACzD,GAAG4E,CAAI,EAZN,UACA0D,EAActI,GAAG,CACjBsI,EAAc7F,MAAM,CACpB6F,EAAcrH,KAAK,GAa7B,CAOO,IAAMyN,EAAQgD,CAAAA,EAAAA,EAAAA,CAARhD,SAAQgD,AAAU,EAC7B,AADWhD,CACV7F,EAAOgJ,KACN,IAAMc,EAAc9F,CAAAA,EAAAA,EAAAA,UAAAA,AAAU,EAACG,EAAAA,aAAa,EAItC4F,EAAgB/F,CAAAA,EAAAA,EAAAA,UAAAA,AAAU,EAACE,EAAAA,kBAAkB,EAC7C3K,EAASyQ,CAAAA,EAAAA,EAAAA,OAAAA,AAAO,EAAC,KACrB,IAAMzO,EAAIuK,GAAaiE,GAAiBrU,EAAAA,kBAAkB,CAEpDwC,EAAW,IAAIqD,EAAE5F,WAAW,IAAK4F,EAAE3F,UAAU,CAAC,CAAC4F,IAAI,CAAC,CAACC,EAAGC,IAAMD,EAAIC,GAClE/F,EAAc4F,EAAE5F,WAAW,CAAC6F,IAAI,CAAC,CAACC,EAAGC,IAAMD,EAAIC,GAC/C7E,EAAY0E,EAAE1E,SAAS,EAAE2E,KAAK,CAACC,EAAGC,IAAMD,EAAIC,GAClD,MAAO,CACL,GAAGH,CAAC,UACJrD,cACAvC,YACAkB,EAKAH,cAEMqT,CADJ,EACmBrT,KADZsH,QAGX,CACF,EAJwB,AAEdzC,AAEP,CAACwO,CAFQrT,CAEM,EAEZ,QAAE8D,CAAM,CAJW,kBAITC,CAAiB,CAAE,CAAGuF,EAChCoG,EAAYf,CAAAA,EAAAA,EAAAA,MAAAA,AAAM,EAAC7K,GAEzB+F,CAAAA,EAAAA,EAAAA,SAAAA,AAAS,EAAC,KACR6F,EAAUZ,OAAO,CAAGhL,CACtB,EAAG,CAACA,EAAO,EAEX,IAAM6L,EAAuBhB,CAAAA,EAAAA,EAAAA,MAAAA,AAAM,EAAC5K,GAEpC8F,CAAAA,EAAAA,EAAAA,SAAAA,AAAS,EAAC,KACR8F,EAAqBb,OAAO,CAAG/K,CACjC,EAAG,CAACA,EAAkB,EAEtB,GAAM,CAACY,EAAciL,EAAgB,CAAG2D,CAAAA,EAAAA,EAAAA,QAAAA,AAAQ,GAAC,GAC3C,CAAC7O,EAAa0N,EAAe,CAAGmB,CAAAA,EAAAA,EAAAA,QAAAA,AAAQ,GAAC,GACzC,CAAEjK,MAAOP,CAAa,CAAEQ,KAAMiK,CAAO,CAAE,CAAGnT,CAAAA,EAAAA,EAAAA,WAAAA,AAAW,EAACiJ,EAAO,CACjE1E,cAAAA,EAAAA,OAAa,CACbH,QAAS5B,eACT8B,cACAD,CACF,GAEA,MACE,CADF,AACE,EAAA,EAAA,IAAA,EAAA,CADF,CACE,QAAA,CAAA,WAEI,CAAA,EAAA,EAAA,GAAA,EAACwN,EAAAA,CACE,GAAGnJ,CAAa,CACjB3I,YAAaoT,EAAQpT,WAAW,CAChC4D,YAAawP,EAAQxP,WAAW,CAChCL,KAAM6P,EAAQ7P,IAAI,CAClB+L,UAAWA,EACXC,qBAAsBA,EACtBC,gBAAiBA,EACjBwC,eAAgBA,EAChBvC,WAAYvG,EAAM5H,KAAK,CACvB+Q,IAAKH,IAGRkB,EAAQjQ,OAAO,CACd,CAAA,CADc,CACd,EAAA,GAAA,EAACoP,EAAAA,CADa,AAEZC,YAjEY,CAiECA,AAjEAQ,EAkEbrK,cAAeA,IAEf,OAGV,gTC/YF,OAAoB,CAAA,kBAApB,GAjBgB0K,aAAa,CAAA,kBAAbA,4FAbY,CAAA,CAAA,IAAA,OACN,CAAA,CAAA,IAAA,WAGI,CAAA,CAAA,IAAA,GASnB,SAASA,EAAcC,CAAoB,EAChD,GAAM,OAAEpK,CAAK,CAAE,CAAGjJ,CAAAA,EAAAA,EAAAA,WAAW,AAAXA,EAAYqT,EAAU,CACtC9O,cAAAA,EAAAA,OAAa,CAEbH,OAAAA,CAAsC,CAA7BpH,QAAQC,GAAG,CAAC+R,iBAAiB,qJACxC,GAIA,IAAK,GAAM,CAAC7C,EAAKiE,EAAM,GAAIrJ,OAAOC,OAAO,CAACiC,OAAQ,CAClCrJ,IAAVwQ,GACF,IADuB,GAChBnH,CAAK,CAACkD,EAA0B,CAG3C,MAAO,OAAElD,CAAM,CACjB,KAEA,EAAe6F,EAAAA,KAAK,kBCjCpB,EAAO,OAAO,CAAA,EAAA,CAAA,CAAA,8DKOZ,CAAA,AHAA,AEAA,CCCG,MAAA,CAAO,CAAC,CHDI,AGCJ,CHDI,AGCJ,AHDI,CAAA,AGCJ,CHDI,AGCJ,AAAkB,CHDd,AGCJ,AHD0B,CGC1B,AHDI,AAAsB,CAAA,AGC1B,AHDI,CAAsB,AAAtB,AGCJ,CAAA,AHDiC,AGCf,AHDd,CGCc,AAAlB,AHDI,GGIwB,CAAA,CAAA,CAAA,CAAA,CAAA,EAAX,CAAA,CAAA,CAAA,CAAA,CAAA,GACtB,EAAM,CAAA,CAAA,CAAN,AAAM,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,AAAe,CAAA,AAAf,CAAe,AAAf,CAAe,AAAf,CAAe,AAAN,CAAM,AAAN,yBCFvB,CAAA,CAAwB,MAAM,CAAA,GAAlB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,sDFFW,CAAA,UEIrB,CAAA,CAAU,CHRT,AGQS,CHRT,AGQS,CHRT,AGQS,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAY,CAAI,CAAA,CAAA,AAAU,CAAA,AAAV,CAAU,AAAV,CAAU,AAAV,CAAU,AAAV,CAAU,AAAV,CAAgB,AAAhB,CAAA,AAAiB,CAAA,kDHVtD,UACC,CGOF,AHPE,CGOF,AHPE,0GAMQ,SIelB,CJpBW,AGSX,ALHI,AMcJ,GAAM,CAAA,CAAA,CAAA,EAAA,EAAA,UAAA,AAAO,EAAA,CAAA,CAAA,MAAA,EAAA,cAAA,CAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,CAKO,CJpBF,oBAAA,CIqBZ,AJrBY,CIqBZ,AJrBY,CAAA,SIqBZ,EACY,EAAA,CCfD,SAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CDiBX,CAAA,GAAA,EAAA,CAAA,IAKF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,MAAA,KAGI,CAAA,CAAA,AACA,CADA,EACG,CAAA,CCjBT,ADiBS,AACH,CAAA,CAAA,IAAO,CAAA,AChBN,CDgBM,AChBN,ADiBD,CADO,AChBN,ADiBD,CADO,AChBN,ADiBD,CCjBC,ADiBD,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,AACR,CADQ,AACR,CAAA,AADQ,CACR,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,AACR,CADQ,CAAA,CAAA,QACR,CAAA,AAAa,CAAA,CAAA,AAA6C,CAA7C,AAA6C,CAA7C,AAA6C,CAAtB,AAAvB,CAAuB,AAAvB,CAAuB,AAAvB,CAAuB,AAAvB,CAAuB,AAAvB,CAAA,AAAuB,CAAA,AAAvB,CAA8B,AAA9B,CAA8B,AAA9B,CAA8B,AAA9B,CAA8B,AAAqB,AAAnD,CAA8B,AAA9B,AAAmD,CAArB,AAA9B,AAAmD,CAArB,AAAqB,AAAnD,CAA8B,AAAqB,CAArB,AAAqB,CAArB,AAAqB,CAArB,AAA4B,CAAjB,AAAiB,CAAA,CAAQ,AAAR,CAAI,AAAI,CAAJ,AAAI,AAC/E,CAD+E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAC/E,CAAA,AAAW,CAAA,CAAA,AAAa,CAAb,AAAa,CAAb,AAAa,CAAb,AAAa,CAAb,AAAa,CAAb,AAAa,CAAb,AAAa,CAAb,AAAa,CAAb,AAAa,CAAb,AAAa,AAAU,CAAvB,EACX,CAAA,CAAA,CAAI,CAAC,CAAA,CADsC,AACtC,CADsC,AACtC,AAAY,CAAZ,AAAa,CN1CC,AM0Cd,AAAa,CAAb,AAAa,CAAb,AAAa,CAAb,AAAa,CNzCxB,AMyCW,AAAa,CHzCT,AHAf,AMyCW,AFvCP,AEuCoB,AJ/CxB,CAAA,ACMe,AGyCJ,ANzCX,AIEI,AEuCoB,CJ/CxB,ACMe,AHAf,AIEI,AEuCoB,CFvCpB,AEuCoB,CAAA,GFvCpB,KJFe,CENZ,AESO,ADHC,CHCb,AEPK,ACMQ,ACGD,CJFZ,AGDuC,ADLzC,AGOK,ADMF,ADRY,ADNR,AESO,CDHC,ADNR,AESO,CJHK,AIGI,AFThB,AFOD,CEPC,AESgB,AJHJ,CACR,UAAA,CAAW,CKCuB,ALDvB,SAAqB,AAAT,CAAS,AGAjB,AAAhB,AHAwB,CGAR,AHAiB,AGAjC,AHAwB,CGAxB,AHAwB,SAA4B,OAAA,CAAA,CAAS,CAAlB,CGAxB,AHAwB,CAAA,AGAxB,CAAA,AHAwB,MAC1C,CKCL,ALDK,CKCL,ALDK,CKCL,ALDK,CKCL,ALDK,CKCL,CAAA,GLGC,IMmC6B,CAAA,CAAA,CAAA,CAAS,AAAL,CAAK,AAAE,AAAP,CAAO,AAAP,CAAO,AAAP,CAAO,AAAP,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAe,MAAA,CAAO,CAC/D,CAAA,CAAA,CAAG,CAAA,CAAA,AACL,CADK,AAEL,IACK,CAAA,CAAA,AAAS,CAAT,CAAA,CAAS,AAAT,CAAa,AAAb,CAAc,AAAd,CAAe,AAAf,CAAe,CAAA,AAAK,CAAL,AAAK,CAAL,AAAK,AAAK,CAAL,CAAA,CAAK,CAAA,EAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,EAAc,EAAK,CAAL,AAAK,CAAL,AAAK,CAAA,CAAA,CAAK,CAAC,CAAA,AACvD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,AAAY,CAAA,AAAZ,CAAY,AAAW,AAAvB,CAAY,AAAY,AAAxB,CAAY,AAAY,AAAxB,CAAgC,AAAR,AAAhB,AAAI,CAAJ,AAAgB,AAAQ,AAApB,CAAJ,AAAgB,AAAZ,CAAJ,AAAgB,AAAZ,CAAY,AC1C5C,AD0CgC,CAAA,AAAY,AJ/ChD,CI+CwD,AJ/CxD,AKKuB,CAAC,CAAA,CAAA,AAAkB,CAAlB,CAAA,CAAA,CAAA,CAAA,AACxB,CADwB,ALJxB,AImBE,ACdF,CADwB,CAAkB,CAAA,AACpC,CADoC,ALJ1C,AIoBI,ACfE,CAAA,ALLN,AKI0C,CLJ1C,AKKM,AADoC,CAAuB,CAC/C,CDeN,ACfM,CDeN,ACfM,CDeN,ACfM,CDeN,ACfM,CDeN,ACfM,OAAA,EAAuC,CAAA,WAAG,CDgBxD,AChBwD,ALJ5D,CAAA,AKI4D,AAAW,CAAX,ALJ5D,AAAe,AKIwD,CLJxD,AKIwD,CAAA,EAAS,CAAA,AAAG,CAAA,CAAA,CAAA,CAAA,CAAA,EACjF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,EAAc,EAAM,EAAN,CAAA,EACZ,CAAA,ADeA,CAAA,ACfA,CDeA,ACfA,CDeA,CAAA,CAAA,CAAA,CAAA,CAAA,CJpBJ,CAAA,AKMI,CDeA,ACfA,CDeA,ACfA,AACA,CDcA,ACfA,ADgBA,ACfA,CADA,ADeA,AACA,ACfA,CADA,ADeA,AACA,ACfA,CADA,ADeA,ACdA,ADeA,CCfA,ADcA,ACfA,ADgBA,CAAA,AADA,ACdA,AADA,CDeA,AACA,ACfA,CDcA,ACdA,CDcA,ACdA,CDcA,ACdW,CDcX,CCbE,ADaF,CAAA,ACbE,CDaF,AAEA,ACfE,CDeF,ACfE,KAAA,CAAA,CAAU,AAAY,CAAZ,AAAY,CAAZ,AAAY,AAAa,CAAzB,AAAY,AAAa,CAAzB,AAAY,AAAa,CAAb,AAAZ,AAAyB,CAAzB,AAAY,AAAa,CAAzB,AAAY,AAAa,CAAzB,AAAY,AAAa,CAAb,AAAZ,AAAyB,CAAb,AAAZ,AAAiC,CAArB,AAAZ,AAAkC,CAAtB,AAAuB,sBNVd,CAAA,QAAA,WAAS,CAAA,CAAA,CMUK,CAAA,CAC7C,CAAA,OAAA,EAAU,CAAA,CAAA,AAAQ,CAAR,AAAQ,CAClB,AADU,CDgBT,ACfD,AADU,CDgBT,ACfD,AADU,CACV,AAEF,AAHY,CACV,ADoBF,AClBA,AAHoB,CAClB,AAEF,ADkBA,CCpBE,AAEC,CAAA,AAFD,AAEC,CACJ,AAHG,AAEC,CAAA,CAAA,CAMP,CDeS,CAAA,CAAA,ICjBT,CDgBM,CAAA,CAAA,UChBI,CDiBD,ACjBe,CDiBf,ACjBe,CAAA,AAAa,CAAb,CAAA,CAAA,AAEjB,CDgBD,AChBC,AAFiB,AAG1B,CDeQ,AChBC,ADgBM,ACff,AAH0B,CAEjB,ADgBM,AClBW,CAAA,ADkBX,CClBW,ADkBX,AClBgC,CAArB,ADkBX,AClBgC,kDCN/C,CAAA,CAAA,CAAA,CAAA,AAAM,CAAN,CAAM,CAAA,CAAA,CAAO,AAAP,CAAO,AAAP,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,EAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAhBM,CAClC,AAeoC,CAfnC,AAemC,CAfnC,AAemC,CAfnC,AAemC,CAfnC,AAemC,CAfnC,AAemC,CAfnC,AAemC,CAfnC,AAemC,CAfnC,AAAQ,AAe2B,CAf3B,AAAE,AAeyB,CAAU,CAAA,AAfhC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAY,CAAA,CAAA,CAAA,CAAA,AAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CACzC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAQ,CAAA,AAAE,EAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,AAAZ,CAAY,CAAA,CAAA,CAAK,AAAL,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAC3C,oDCgBA,CAAA,CAAA,CAAA,CAAM,AAAN,CAAA,CAAM,CAAA,EAAS,CAAT,AAAS,CAAT,AAAS,CAAT,AAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,EAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAnBI,CAClC,AAkByC,CAlBxC,AAkBwC,CAlBxC,AAkBwC,CAlBxC,AAkBwC,CAlBxC,AAkBwC,CAlBxC,AAkBwC,CAlBxC,AAkBwC,CAlBxC,AAkBwC,CAlBxC,AAAQ,AAkBgC,CAlBhC,AAAE,AAkB8B,CAAU,CAAA,AAlBrC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAY,CAAA,CAAA,CAAA,CAAA,AAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CACzC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAQ,CAAA,AAAE,EAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAY,CAAA,CAAA,CAAA,CAAA,AAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CACzC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAQ,CAAA,AAAE,EAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAA4C,CAAA,CAAA,CAAA,CAAA,AAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CACzE,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAQ,CAAA,AAAE,EAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAW,CAAA,CAAA,CAAA,CAAA,AAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CACxC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAQ,CAAE,AAAF,EAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAA0C,CAAA,CAAA,CAAA,CAAA,AAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CACzE,sHCGawE,kBAAkB,CAAA,kBAAlBA,GAHAC,eAAe,CAAA,kBAAfA,GADAC,cAAc,CAAA,kBAAdA,GAEAC,cAAc,CAAA,kBAAdA,GAGAC,oBAAoB,CAAA,kBAApBA,GAFAC,mBAAmB,CAAA,kBAAnBA,GA2IDC,YAAY,CAAA,kBAAZA,uEA9IL,IAAMJ,EAAiB,UACjBD,EAAkB,WAClBE,EAAiB,UACjBE,EAAsB,eACtBL,EAAqB,cACrBI,EAAuB,gBAyI7B,IAAKE,IAAAA,WAAAA,CAAAA,UAAAA,GAAAA,OAAAA,wPChJL,SAASC,EACdC,CAAuB,EAEvB,OACc,OAAZA,GACmB,UAAnB,OAAOA,GACP,SAAUA,GACc,YAAxB,OAAOA,EAAQjE,IAAI,AAEvB,CAVC,OAAA,cAAA,CAAA,EAAA,aAAA,oCACegE,aAAAA,qCAAAA,2FCSAE,uBAAuB,CAAA,kBAAvBA,GAeAC,cAAc,CAAA,kBAAdA,4FA7BoB,CAAA,CAAA,IAAA,QACT,CAAA,CAAA,IAAA,GAWvBC,EAA4C,KAEzC,SAASF,EAAwBG,CAAsB,EAC5D,GAAiB,MAAM,CAAnBD,EACF,MAAM,OAAA,cAEL,CAFK,AAAIrP,MACR,2EADI,oBAAA,OAAA,mBAAA,gBAAA,CAEN,GAEFqP,EAASC,EACX,CAQO,SAASF,EACdM,CAAiC,EAEjC,GAAM,CAACC,EAAOC,EAAS,CAAGpJ,EAAAA,OAAK,CAAC8H,QAAQ,CAAeoB,EAAYC,KAAK,EAqBtEN,EAAW,AAACC,GACVI,EAAYL,QAAQ,CAACC,EAAQM,GAQjC,IAAMG,EAAqB1B,CAAAA,EAAAA,EAAAA,OAAAA,AAAO,EAAC,IAExBsB,EAuBR,CAACA,EAAM,EAEV,MAAOV,CAAAA,EAAAA,EAAAA,UAAAA,AAAU,EAACc,GACdhD,CAAAA,EAAAA,EAAAA,GAAAA,AAAG,EAACgD,GACJA,CACN,+TCzFsBK,aAAAA,qCAAAA,aAJU,CAAA,CAAA,IAAA,OACK,CAAA,CAAA,IAAA,OACG,CAAA,CAAA,IAAA,GAEjC,eAAeA,EAAWC,CAAgB,CAAEC,CAAiB,EAClE,OAAO,IAAIxF,QAAQ,CAACC,EAASwF,KAC3BC,CAAAA,EAAAA,EAAAA,eAAAA,AAAe,EAAC,KACdrB,CAAAA,EAAAA,EAAAA,uBAAAA,AAAuB,EAAC,CACtBpM,KAAM+L,EAAAA,oBAAoB,UAC1BuB,aACAC,UACAvF,SACAwF,CACF,EACF,EACF,EACF,yPCbaE,mBACXrY,QAAQC,GAAG,CAACC,QAAQ,KAAK,aACrB,SAASmY,SAFFA,QAEmBG,AAwB1B5V,QAxB0C,GAFnCyV,qCAAAA,iTCAJL,UAAU,CAAA,kBAAVA,EAAAA,UAAU,EAMVW,qBAAqB,CAAA,kBAArBA,EAAAA,qBAAqB,EALrBN,gBAAgB,CAAA,kBAAhBA,EAAAA,gBAAgB,8EADE,CAAA,CAAA,IAAA,OACM,CAAA,CAAA,IAAA,MAKK,CAAA,CAAA,IAAA,2BCTyI,IAAA,EAAA,EAAA,CAAA,CAAA,MAAsG,IAAM,EAAmC,CAAA,EAAA,EAAA,iBAAb,IAAa,AAAqB,EAAC,KAAxB,wCAAqE,EAAA,UAAU,CAAC,KAAK,EAAE,EAAA,gBAAgB,CAAC,4ECwBpa,CAAA,CAAA,CAAA,CAAA,AAAM,CAAN,CAAM,CAAA,EAAS,CAAA,AAAT,CAAS,AAAT,CAAS,AAAT,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,EAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CArBI,CAClC,AAoBwC,CAnBtC,AAmBsC,CAnBtC,AAmBsC,CAnBtC,AAmBsC,CAnBtC,AAmBsC,CAnBtC,AAmBsC,CAnBtC,AAmBsC,CAnBtC,AAmBsC,CAlBtC,AAkBsC,CAjBpC,AAiBoC,CAjBpC,AAiB8C,CAAA,AAjB3C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACH,GAAA,CAAA,AAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EACP,CAEJ,oDCQA,CAAA,CAAA,CAAA,CAAA,AAAM,CAAN,CAAM,CAAA,EAAY,CAAA,CAAA,CAAA,CAAZ,AAAY,CAAA,AAAZ,CAAY,AAAZ,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,EAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAhBC,CAClC,AAe+C,CAf9C,AAe8C,CAf9C,AAe8C,CAf9C,AAe8C,CAf9C,AAe8C,CAf9C,AAe8C,CAAA,AAf9C,CAAA,AAe8C,CAf9C,AAAQ,AAesC,CAftC,AAAE,AAeoC,CAAU,CAf3C,AAe2C,CAf3C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAkB,CAAA,CAAA,CAAA,CAAA,AAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAC/C,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAQ,CAAE,AAAF,EAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAY,CAAA,CAAA,CAAA,CAAA,AAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAC3C,6DCNO,SAAS,EAAY,CAAY,SACtC,AAAK,GAME,AAFO,AADK,CAHf,CAGoB,CAHb,MAGoB,CAAC,AAHd,MAGqB,KACd,KAAK,CAAC,KAElB,MAAM,CAAC,SAAS,GAAG,IAAM,EACxC,CAEO,SAAS,EAAW,CAAY,EACrC,GAAI,CAAC,EAAM,MAAO,GAGlB,IAAM,EAAa,EAAK,OAAO,CAAC,MAAO,KAGjC,EAAmB,EAAW,MAAM,CAAG,GAAK,EAAW,QAAQ,CAAC,KAClE,EAAW,KAAK,CAAC,EAAG,CAAC,GACrB,EAEE,EAAU,EAAgB,WAAW,CAAC,YAE5C,AAAgB,CAAC,GAAG,CAAhB,EAEF,AAAI,EAAK,QAAQ,CAAC,MAAQ,EAAK,MAAM,EAAI,EAAU,CAAP,CACrC,IAGT,AAAgB,AAJ2C,GAIxC,CAAf,EAAsB,IAGtB,EAAK,QAAQ,CAAC,MAAQ,AAAY,GAAG,GAC9B,EAAgB,EARqE,OAQ5D,CAAC,EAAG,GAGjC,CAHqC,CAGrB,OAH6B,EAGpB,CAAC,EAAG,EACtC,qDCrC+K,IAAA,EAAA,EAAA,CAAA,CAAA,MAAsG,IAAM,EAAmC,CAAA,EAAA,EAAA,iBAAb,IAAa,AAAqB,EAAC,KAAxB,wCAAqE,EAAA,UAAU,CAAC,KAAK,EAAE,EAAA,gBAAgB,CAAC,kFCAtP,IAAA,EAAA,EAAA,CAAA,CAAA,MAAsG,IAAM,EAAoC,CAAA,EAAA,EAAA,kBAAb,GAAa,AAAqB,EAAC,MAAxB,uCAAqE,EAAA,UAAU,CAAC,KAAK,EAAE,EAAA,gBAAgB,CAAC,+ECAzP,IAAA,EAAA,EAAA,CAAA,CAAA,MAAsG,IAAM,EAAmC,CAAA,EAAA,EAAA,iBAAb,IAAa,AAAqB,EAAC,KAAxB,wCAAqE,EAAA,UAAU,CAAC,KAAK,EAAE,EAAA,gBAAgB,CAAC,2CCA5I,IAAM,EAAmC,CAAA,EAAA,EAAA,iBAAb,IAAa,AAAqB,EAAC,KAAxB,wCAAqE,EAAA,UAAU,CAAC,KAAK,EAAE,EAAA,gBAAgB,CAAC,wICuFtZO,mBAAmB,CAAA,kBAAnBA,GACAC,qBAAqB,CAAA,kBAArBA,GAFAC,gBAAgB,CAAA,kBAAhBA,GAvEGC,4BAA4B,CAAA,kBAA5BA,GAgBAC,4BAA4B,CAAA,kBAA5BA,GA7BAC,eAAe,CAAA,kBAAfA,GAiDAC,4BAA4B,CAAA,kBAA5BA,AAAT,SAASA,EACdU,CAAuB,CACvBF,CAAwB,CACxBG,GAAQ,CAAI,CACZC,EAAwB,EAAE,MAEtBC,EACJ,GAAIF,EAEFE,EAAOH,CAAI,CAAC,CAFH,CAEK,CAACF,EAAiB,KAC3B,CAEL,IAAMM,EAAiBJ,CAAI,CAAC,EAAE,CAC9BG,EAAOC,EAAe5M,QAAQ,EAAIrD,OAAOkQ,MAAM,CAACD,EAAe,CAAC,EAAE,AACpE,CAEA,GAAI,CAACD,EAAM,OAAOD,EAGlB,IAAII,EAAejB,EAFHc,CAAI,CAAC,EAAE,QAIvB,AAAI,CAACG,CAF8Bb,EAEda,EAAaxU,UAAU,CAACoT,GACpCgB,GAGTA,EAAYpV,IAAI,CAACwV,GAEVhB,EACLa,CAP8D,CAQ9DL,GACA,EACAI,GAEJ,GA9EgBX,cAAc,CAAA,kBAAdA,GAKAC,sBAAsB,CAAA,kBAAtBA,uEATT,SAASH,EAAgBI,CAAgB,EAC9C,OAAOrM,MAAMsM,OAAO,CAACD,GAAWA,CAAO,CAAC,EAAE,CAAGA,CAC/C,CAEO,SAASF,EAAeE,CAAe,EAE5C,MAAsB,MAAfA,CAAO,CAAC,EAAE,EAAYA,EAAQrQ,QAAQ,CAAC,IAChD,CAEO,SAASoQ,EAAuBC,CAAe,EACpD,OAAOA,EAAQ3T,UAAU,CAAC,MAAoB,cAAZ2T,CACpC,CAEO,SAASN,EACdM,CAAgB,CAChBrF,CAA2D,EAI3D,GAFsBqF,CAElBE,CAF0B3T,QAAQ,CAACkT,GAEpB,CACjB,IAAMU,EAAmB9Q,KAAKC,SAAS,CAACqL,GACxC,MAA4B,OAArBwF,EACHV,EAAmB,IAAMU,EACzBV,CACN,CAEA,OAAOO,CACT,CAEO,SAASL,EACdS,CAAyB,CACzBC,CAAwB,EAExB,GAAI,CAACD,GAAgC,GAAG,CAAvBA,EAAS9U,MAAM,CAC9B,OAAO,KAIT,IAAMgV,EACiB,aAArBD,EACID,CAAQ,CAAC,EAAE,CACXA,CAAQ,CAACA,EAAS9U,MAAM,CAAG,EAAE,CAInC,OAAOgV,IAAef,EAAsB,KAAOe,CACrD,CAsCO,IAAMb,EAAmB,WACnBF,EAAsB,cACtBC,EAAwB,oGCxFxBsB,uBAAuB,CAAA,kBAAvBA,GAyBGC,kCAAkC,CAAA,kBAAlCA,sEAzBT,OAAMD,UAAgCvS,MAC3CyS,YAAY,GAAGC,CAAyC,CAAE,CACxD,KAAK,IAAIA,GACT,IAAI,CAACvM,IAAI,CAAG,yBACd,CACF,CAoBO,SAASqM,EACdvP,CAAc,EAEd,MAAO,CAAC,CACNA,CAAAA,GACiB,UAAjB,OAAOA,GACPA,aAAiBsP,CAAAA,CAAsB,AAE3C,sPC3Bc,OAAA,cAAA,CAAA,EAAA,aAAA,oCAaDI,0BAAAA,qCAAAA,IAZb,OAAMC,UAAqC5S,MACzCyS,aAAc,CACZ,KAAK,CACH,0JAEJ,CACF,CAMO,MAAME,UAAgCE,gBAE3CC,QAAS,CACP,MAAM,IAAIF,CACZ,CAEAnN,QAAS,CACP,MAAM,IAAImN,CACZ,CAEAxO,KAAM,CACJ,MAAM,IAAIwO,CACZ,CAEA/S,MAAO,CACL,MAAM,IAAI+S,CACZ,CACF,+TCpCYG,qBAAAA,qCAAAA,KAAL,MAAKA,IAAAA,iBAAAA,CAAAA,UAAAA,GAAAA,gGAAAA,6SCIAE,KAFCD,OAEDC,YAFoB,CAAA,kBAAnBD,GAEDC,YAAY,CAAA,kBAAZA,GAgBIC,eAAe,CAAA,kBAAfA,+EApBmB,CAAA,CAAA,IAAA,GAEtBF,EAAsB,gBAE5B,IAAKC,eAAAA,WAAAA,GAAAA,aAAAA,GAgBL,SAASC,EAAgBjQ,CAAc,EAC5C,GACmB,UAAjB,OAAOA,GACG,OAAVA,GACA,CAAE,CAAA,WAAYA,CAAAA,CAAI,EACM,UAAxB,AACA,OADOA,EAAMkQ,MAAM,CAEnB,OAAO,EAGT,IAAMA,EAASlQ,EAAMkQ,MAAM,CAAChS,KAAK,CAAC,KAC5B,CAACiS,EAAWrQ,EAAK,CAAGoQ,EACpBE,EAAcF,EAAO1L,KAAK,CAAC,EAAG,CAAC,GAAGrJ,IAAI,CAAC,KAGvCoV,EAAavX,OAFJkX,AAEWG,EAFJC,EAAE,CAAC,CAAC,IAI1B,OACEH,IAAcJ,IACJ,YAATjQ,GAA+B,IAA/BA,KAAsBA,CAAS,CAAK,EACd,UAAvB,OAAOsQ,GACP,CAAC7R,MAAMgS,IACPA,KAAcT,EAAAA,kBAAkB,AAEpC,8SC7BgBU,gBAAgB,CAAA,kBAAhBA,GA6EAC,8BAA8B,CAAA,kBAA9BA,GARAC,wBAAwB,CAAA,kBAAxBA,GARAC,uBAAuB,CAAA,kBAAvBA,GAhBAC,iBAAiB,CAAA,kBAAjBA,GAvBAC,QAAQ,CAAA,kBAARA,+EArCmB,CAAA,CAAA,IAAA,OAM5B,CAAA,CAAA,IAAA,GAEDC,EAGElO,EAAQ,CAAA,CAAA,IAAA,GACRkO,QAHN,OAAO1R,GAGiB,CAGnB,EAFDrH,KAJc,EAMJyY,EACd7R,CAAW,CACXmB,CAAkB,CAClByQ,EAAiCT,EAAAA,kBAAkB,CAACiB,iBAAiB,EAErE,IAAM/Q,EAAQ,OAAA,cAA8B,CAA9B,AAAIjD,MAAMgT,EAAAA,mBAAmB,EAA7B,oBAAA,OAAA,mBAAA,gBAAA,CAA6B,GAE3C,OADA/P,EAAMkQ,MAAM,CAAG,CAAA,EAAGH,EAAAA,mBAAmB,CAAC,CAAC,EAAEjQ,EAAK,CAAC,EAAEnB,EAAI,CAAC,EAAE4R,EAAW,CAAC,CAAC,CAC9DvQ,CACT,CAcO,SAAS6Q,EAEdlS,CAAW,CACXmB,CAAmB,EAMnB,EARA,IAQM0Q,EAAiB7R,EAJvBmB,GAI4BA,CAJnBgR,GAAoBE,YAJF,AAIcC,SACrCjB,EAAAA,YAAY,CAACnW,IAAI,CACjBmW,EAAAA,YAAY,CAACkB,OAAO,CAEUpB,EAAAA,kBAAkB,CAACiB,iBAAiB,CACxE,CAaO,SAASH,EAEdjS,CAAW,CACXmB,EAAqBkQ,EAAAA,UAFrB,EAEiC,CAACkB,OAAO,EAEzC,MAAMV,EAAiB7R,EAAKmB,EAAMgQ,EAAAA,CAJP,iBAIyB,CAACqB,iBAAiB,CACxE,CAUO,SAASR,EAAwB3Q,CAAc,QACpD,AAAKiQ,CAAAA,EAAAA,CAAD,CAACA,eAAAA,AAAe,EAACjQ,GAIdA,EAAMkQ,GAJgB,GAIV,CAAChS,KAAK,CAAC,KAAKsG,KAAK,CAAC,EAAG,CAAC,GAAGrJ,IAAI,CAAC,KAJb,IAKtC,CAEO,SAASuV,EAAyB1Q,CAAoB,EAC3D,GAAI,CAACiQ,GAAAA,EAAAA,eAAAA,AAAe,EAACjQ,GACnB,KAD2B,CACrB,OAAA,cAAiC,CAAjC,AAAIjD,MAAM,wBAAV,oBAAA,OAAA,mBAAA,gBAAA,CAAgC,GAGxC,OAAOiD,EAAMkQ,MAAM,CAAChS,KAAK,CAAC,IAAK,EAAE,CAAC,EAAE,AACtC,CAEO,SAASuS,EAA+BzQ,CAAoB,EACjE,GAAI,CAACiQ,GAAAA,EAAAA,eAAe,AAAfA,EAAgBjQ,GACnB,KAD2B,CACrB,OAAA,cAAiC,CAAjC,AAAIjD,MAAM,wBAAV,oBAAA,OAAA,mBAAA,gBAAA,CAAgC,GAGxC,OAAO/D,OAAOgH,EAAMkQ,MAAM,CAAChS,KAAK,CAAC,KAAKoS,EAAE,CAAC,CAAC,GAC5C,6SClGac,qBAAqB,CAAA,kBAArBA,GAQAC,8BAA8B,CAAA,kBAA9BA,GAuCGC,kCAAkC,CAAA,kBAAlCA,GAPAC,2BAA2B,CAAA,kBAA3BA,GAnBAC,yBAAyB,CAAA,kBAAzBA,uEArBT,IAAMJ,EAAwB,CACnCK,UAAW,IACXC,UAAW,IACXC,aAAc,GAChB,EAEMC,EAAgB,IAAIrc,IAAI2J,OAAOkQ,MAAM,CAACgC,IAE/BC,EAAiC,2BAavC,SAASG,EACdxR,CAAc,EAEd,GACmB,UAAjB,OAAOA,GACG,OAAVA,GACA,CAAE,CAAA,WAAYA,CAAAA,CAAI,EACM,UAAxB,AACA,OADOA,EAAMkQ,MAAM,CAEnB,OAAO,EAET,GAAM,CAAC2B,EAAQC,EAAW,CAAG9R,EAAMkQ,MAAM,CAAChS,KAAK,CAAC,KAEhD,OACE2T,IAAWR,GACXO,EAAcnc,GAAG,CAACuD,OAAO8Y,GAE7B,CAEO,SAASP,EACdvR,CAA8B,EAG9B,OAAOhH,OADYgH,AACL8R,EADW5B,MAAM,CAAChS,KAAK,CAAC,IAAI,CAAC,EAAE,CAE/C,CAEO,SAASoT,EACdjB,CAAc,EAEd,OAAQA,GACN,KAAK,IACH,MAAO,cACT,MAAK,IACH,MAAO,WACT,MAAK,IACH,MAAO,WACT,SACE,MACJ,CACF,+TCtCgB0B,WAAAA,qCAAAA,aAnBT,CAAA,CAAA,IAAA,EAiBDC,EAAS,CAAA,EAAGX,EAAAA,8BAA8B,CAAC,IAAI,CAAC,CAE/C,SAASU,IACd,IAAM/R,EAAQ,OAAA,cAAiB,CAAbjD,AAAJ,MAAUiV,GAAV,oBAAA,OAAA,mBAAA,gBAAA,CAAgB,EAG9B,OAFEhS,EAAkCkQ,MAAM,CAAG8B,EAEvChS,CACR,sPCNO,SAASiS,IAEZ,MAAM,OAAA,cAEL,CAFK,AAAIlV,MACR,CAAC,8GADG,CAC4G,CAAC,kBAD7G,OAAA,kBAAA,iBAAA,CAEN,EAMJ,0EAVgBkV,YAAAA,qCAAAA,KAFEZ,EAhBX,CAAA,CAAA,IAAA,EAgBWA,8BAA8B,CAAC,IAAI,CAAC,gPCG/C,SAASc,IAEZ,MAAM,OAAA,cAEL,CAFK,AAAIpV,MACR,CAAC,8GADG,CAC4G,CAAC,kBAD7G,OAAA,kBAAA,iBAAA,CAEN,EAMJ,0EAVgBoV,eAAAA,qCAAAA,KAFEd,EAjBX,CAAA,CAAA,IAAA,EAiBWA,8BAA8B,CAAC,IAAI,CAAC,wSCjBtCe,8BAA8B,CAAA,kBAA9BA,GA2EAC,0BAA0B,CAAA,kBAA1BA,GAxCAC,kBAAkB,CAAA,kBAAlBA,uEAnCT,SAASF,EACdvT,CAAY,QAEZ,AAAmB,UAAf,OAAOA,GAAoBA,AAAQ,QAAQ,CAAE,CAAA,WAAYA,GAItDA,AAJwD,EAIpDqR,CAJwD,KAIlD,GAAKqC,CACxB,CAEA,IAAMA,EAA4B,2BAElC,OAAMC,UAAqCzV,MAGzCyS,YACkBiD,CAAa,CACbC,CAAkB,CAClC,CACA,KAAK,CACH,CAAC,qBAAqB,EAAEA,EAAW,qGAAqG,EAAEA,EAAW,8KAA8K,EAAED,EAAM,EAAE,CAAC,EAAA,IAAA,CAJhUA,KAAAA,CAAAA,EAAAA,IAAAA,CACAC,UAAAA,CAAAA,EAAAA,IAAAA,CAJFxC,MAAAA,CAASqC,CASzB,CACF,CAGA,IAAMI,EAAyB,IAAInG,QAS5B,SAAS8F,EACdM,CAAmB,CACnBH,CAAa,CACbC,CAAkB,EAElB,GAAIE,EAAOC,OAAO,CAChB,CADkB,MACXhL,QAAQyF,MAAM,CAAC,IAAIkF,EAA6BC,EAAOC,GACzD,EACL,IAAMI,EAAiB,IAAIjL,QAAW,CAAC3S,EAAGoY,KACxC,IAAMyF,EAAiBzF,EAAO0F,IAAI,CAChC,KACA,IAAIR,EAA6BC,EAAOC,IAEtCO,EAAmBN,EAAuB/S,GAAG,CAACgT,GAClD,GAAIK,EACFA,EAAiBpZ,IAAI,CAACkZ,OACjB,CACL,CAHoB,GAGdG,EAAY,CAACH,EAAe,CAClCJ,EAAuBxR,GAAG,CAACyR,EAAQM,GACnCN,EAAOO,gBAAgB,CACrB,QACA,KACE,IAAK,IAAIjY,EAAI,EAAGA,EAAIgY,EAAUpZ,MAAM,CAAEoB,IAAK,AACzCgY,CAAS,CAAChY,EAAE,EAEhB,EACA,CAAEkY,MAAM,CAAK,EAEjB,CACF,GAKA,OADAN,EAAe/K,KAAK,CAACsL,GACdP,CACT,CACF,CAEA,SAASO,IAAgB,CAElB,SAAShB,EACdiB,CAAa,CACbC,CAA0B,CAC1BC,CAA2B,SAE3B,AAAID,EAAaE,eAAe,CAEvBF,CAFyB,CAEZE,eAAe,CAACC,eAAe,CACjDF,EACAzb,OACAub,GAKG,IAAIzL,QAAW,AAACC,IAErB6L,WAAW,KACT7L,EAAQwL,EACV,EAAG,EACL,EACF,yGCjGgBM,aAAAA,qCAAAA,KAFhB,IAAMC,EAA8BC,OAAOC,GAAG,CAAC,kBAExC,SAASH,EAAW5T,CAAU,EACnC,MACmB,UAAjB,OAAOA,GACPA,AAAU,UACVA,EAAMgU,QAAQ,GAAKH,CAEvB,wFCJaI,iBAAiB,CAAA,kBAAjBA,GASGC,mBAAmB,CAAA,kBAAnBA,uEAZhB,IAAMC,EAAiB,kCAGhB,OAAMF,UAA0BlX,MAGrCyS,YAA4B4E,CAAc,CAAE,CAC1C,KAAK,CAAC,CAAC,mCAAmC,EAAEA,EAAAA,CAAQ,EAAA,IAAA,CAD1BA,MAAAA,CAAAA,EAAAA,IAAAA,CAFZlE,MAAAA,CAASiE,CAIzB,CACF,CAGO,SAASD,EAAoBrV,CAAY,QAC3B,AAAnB,UAAI,OAAOA,GAA4B,OAARA,CAAgB,CAAE,CAAA,WAAYA,GAAE,AAIxDA,EAAIqR,CAJwD,KAIlD,GAAKiE,CACxB,yGCRgBE,oBAAAA,qCAAAA,aART,CAAA,CAAA,IAAA,MAC6C,CAAA,CAAA,IAAA,GAO7C,SAASA,EACdrU,CAAc,EAEd,MAAOiQ,CAAAA,EAAAA,EAAAA,eAAAA,AAAe,EAACjQ,IAAUwR,CAAAA,EAAAA,EAAAA,yBAAAA,AAAyB,EAACxR,EAC7D,6SCbasU,kBAAkB,CAAA,kBAAlBA,GAQGC,oBAAoB,CAAA,kBAApBA,uEAVhB,IAAMC,EAAqB,sBAEpB,OAAMF,UAA2BvX,MAGtCyS,YAA4BiF,CAAmB,CAAE,CAC/C,KAAK,CAAC,CAAC,sBAAsB,EAAEA,EAAAA,CAAa,EAAA,IAAA,CADlBA,WAAAA,CAAAA,EAAAA,IAAAA,CAF5BvE,MAAAA,CAAoCsE,CAIpC,CACF,CAEO,SAASD,EAAqB1V,CAAY,QAC/C,AACiB,UAAf,OAAOA,GACC,OAARA,CACA,CAAE,CAAA,WAAYA,GACQ,AADN,UAEhB,AADA,OAAOA,EAAIqR,MAAM,EAKZrR,EAAIqR,MAAM,GAAKsE,CACxB,8SCnBaE,qBAAqB,CAAA,kBAArBA,GAIGC,uBAAuB,CAAA,kBAAvBA,uEANhB,IAAMC,EAA0B,yBAEzB,OAAMF,UAA8B3X,wBAApC,KAAA,IAAA,GAAA,IAAA,CACW8X,IAAAA,CAAOD,EACzB,CAEO,SAASD,EACd3U,CAAc,QAEd,AAAqB,UAAjB,OAAOA,GAAsBA,AAAU,QAAQ,CAAE,CAAA,SAAUA,GAIxDA,EAJ4D,AAItD6U,GAJ0D,CAItD,GAAKD,CACxB,8SCdaE,sBAAsB,CAAA,kBAAtBA,GAEAC,oBAAoB,CAAA,kBAApBA,GACAC,yBAAyB,CAAA,kBAAzBA,GAFAC,sBAAsB,CAAA,kBAAtBA,uEADN,IAAMH,EAAyB,6BACzBG,EAAyB,6BACzBF,EAAuB,2BACvBC,EAA4B,sHCyCzBE,cAAc,CAAA,kBAAdA,GAbHC,iBAAiB,CAAA,kBAAjBA,GAtBAC,kBAAkB,CAAA,kBAAlBA,GAgDGC,6BAA6B,CAAA,kBAA7BA,uEAhDT,IAAMD,EAAsBE,AAAD,IAOhCzN,QAAQC,OAAO,GAAGE,IAAI,CAAC,KAInB7S,QAAQogB,QAAQ,CAACD,EAErB,EACF,EAQaH,EAAoB,AAACG,IAI9BE,aAAaF,EAEjB,EAOO,SAASJ,IACd,OAAO,IAAIrN,QAAc,AAACC,GAAYqN,EAAkBrN,GAC1D,CAWO,SAASuN,IAIZ,OAAO,IAAIxN,QAAQ,AAAC4N,GAAMD,aAAaC,GAE3C,yGC/DaC,iBAAAA,qCAAAA,IAAN,OAAMA,UAAuB3Y,MAClCyS,YAAYmG,CAAe,CAAEC,CAAsB,CAAE,CACnD,KAAK,CACH,CAAC,WAAW,EAAED,EAAQxX,QAAQ,CAAC,KAAOwX,EAAUA,EAAU,IAAI,0BAA0B,CAAC,CACzFC,GAEF,IAAI,CAAC1S,IAAI,CAAG,gBACd,CACF,gCCYC,OAAA,cAAA,CAAA,EAAA,aAAA,kBA01BW4S,KAthBID,OAshBJC,CAthBY,CAAA,kBAARD,GAshBJC,YAAY,CAAA,kBAAZA,GA3jBIC,2CAA2C,CAAA,kBAA3CA,GA7BAC,kCAAkC,CAAA,kBAAlCA,GA4JAC,mBAAmB,CAAA,kBAAnBA,GAkIAC,qBAAqB,CAAA,kBAArBA,GA5HAC,oBAAoB,CAAA,kBAApBA,GA3VAC,0BAA0B,CAAA,kBAA1BA,GAUAC,4BAA4B,CAAA,kBAA5BA,GAyZAC,6BAA6B,CAAA,kBAA7BA,GAXAC,gCAAgC,CAAA,kBAAhCA,GAkgBAC,sBAAsB,CAAA,kBAAtBA,IApjBAC,wBAAwB,CAAA,kBAAxBA,GAjVAC,qBAAqB,CAAA,kBAArBA,GAw1BAC,sCAAsC,CAAA,kBAAtCA,IA7kBAC,iBAAiB,CAAA,kBAAjBA,GAwCAC,2BAA2B,CAAA,kBAA3BA,GA+cAC,yBAAyB,CAAA,kBAAzBA,GArvBAC,yBAAyB,CAAA,kBAAzBA,GAkOAC,oBAAoB,CAAA,kBAApBA,GAsiBAC,wBAAwB,CAAA,kBAAxBA,IA9rBAC,gCAAgC,CAAA,kBAAhCA,GA8fAC,yBAAyB,CAAA,kBAAzBA,GAreAC,+BAA+B,CAAA,kBAA/BA,GAshBAC,8BAA8B,CAAA,kBAA9BA,GAiDAC,6BAA6B,CAAA,kBAA7BA,GAtOAC,qBAAqB,CAAA,kBAArBA,GAqDAC,sBAAsB,CAAA,kBAAtBA,kFAzlBE,CAAA,CAAA,IAAA,oCAEiB,CAAA,CAAA,IAAA,MACG,CAAA,CAAA,IAAA,OAK/B,CAAA,CAAA,IAAA,OAC0B,CAAA,CAAA,IAAA,OACE,CAAA,CAAA,IAAA,OAM5B,CAAA,CAAA,IAAA,OAC4B,CAAA,CAAA,IAAA,OACD,CAAA,CAAA,IAAA,OACH,CAAA,CAAA,IAAA,GAEzBC,EAAc,AAAmC,mBAA5BlU,EAAAA,OAAK,CAACmU,iBAAiB,CAyC3C,SAAStB,EACduB,CAA2C,EAE3C,MAAO,wBACLA,EACAC,gBAAiB,EAAE,CACnBC,0BAA2B,IAC7B,CACF,CAEO,SAASxB,IACd,MAAO,CACLyB,sBAAsB,EACtBC,oBAAoB,EACpBC,gBAAiB,KACjBC,oBAAoB,EACpBC,mBAAmB,EACnBC,cAAe,EACjB,AADmB,CAErB,CAEO,SAASzB,EACd0B,CAAmC,MAE5BA,EAAP,OAAA,AAAuC,OAAhCA,EAAAA,EAAcR,eAAe,CAAC,EAAA,AAAE,EAAA,KAAA,EAAhCQ,EAAkC1F,UAAU,AACrD,CASO,SAASqE,EACdsB,CAAgB,CAChBC,CAAuE,CACvE5F,CAAkB,EAElB,GAAI4F,EACF,OAAQA,EAAcxY,IADL,AACS,EACxB,IAAK,QACL,IAAK,iBAML,IAAK,gBADH,MAUJ,CAMF,GAAIuY,GAAME,YAAY,GAAIF,EAAMG,WAAW,EAAE,AAE7C,GAAIH,EAAMI,kBAAkB,CAC1B,CAD4B,KACtB,OAAA,cAEL,CAFK,IAAI/D,EAAAA,qBAAqB,CAC7B,CAAC,MAAM,EAAE2D,EAAM5F,KAAK,CAAC,8EAA8E,EAAEC,EAAW,4HAA4H,CAAC,EADzO,oBAAA,OAAA,mBAAA,eAAA,EAEN,GAGF,GAAI4F,EACF,OAAQA,EAAcxY,IADL,AACS,EACxB,IAAK,gBACH,OAAOkX,EACLqB,EAAM5F,KAAK,CACXC,EACA4F,EAAcI,eAAe,CAEjC,KAAK,mBACHJ,EAAcK,UAAU,CAAG,EAI3B,IAAM9Z,EAAM,OAAA,cAEX,CAFW,IAAIyV,EAAAA,kBAAkB,CAChC,CAAC,MAAM,EAAE+D,EAAM5F,KAAK,CAAC,iDAAiD,EAAEC,EAAW,2EAA2E,CAAC,EADrJ,oBAAA,OAAA,mBAAA,eAAA,EAEZ,EAIA,OAHA2F,EAAMO,uBAAuB,CAAGlG,EAChC2F,EAAMQ,iBAAiB,CAAGha,EAAIia,KAAK,CAE7Bja,CAQV,EAEJ,CAQO,SAASqY,EACdxE,CAAkB,CAClB2F,CAAgB,CAChBW,CAAoC,EAGpC,IAAMna,EAAM,OAAA,cAEX,CAFW,IAAIyV,EAAAA,kBAAkB,CAChC,CAAC,MAAM,EAAE+D,EAAM5F,KAAK,CAAC,mDAAmD,EAAEC,EAAW,6EAA6E,CAAC,EADzJ,oBAAA,OAAA,mBAAA,eAAA,EAEZ,EAOA,OALAsG,EAAeL,UAAU,CAAG,EAE5BN,EAAMO,uBAAuB,CAAGlG,EAChC2F,EAAMQ,iBAAiB,CAAGha,EAAIia,KAAK,CAE7Bja,CACR,CASO,SAASuY,EAAgCkB,CAA4B,EAC1E,OAAQA,EAAcxY,IAAI,EACxB,IAAK,QACL,IAAK,iBAML,IAAK,gBADH,MAiBJ,CACF,CAEA,SAASmZ,EACPxG,CAAa,CACbC,CAAkB,CAClBsG,CAAoC,EAIpC,IAAMhZ,EAAQkZ,EAFC,CAAC,MAAM,EAAEzG,EAAM,mBAEgB2B,8CAFiD,EAAE1B,EAAW,CAAC,CAAC,EAI9GsG,EAAeG,UAAU,CAACC,KAAK,CAACpZ,GAEhC,IAAM0Y,EAAkBM,EAAeN,eAAe,CAClDA,GACFA,EAAgBd,YADG,GACY,CAAC/d,IAAI,CAAC,CAGnCif,MAAOJ,EAAgBf,sBAAsB,CACrC5a,AAAJ,QAAY+b,KAAK,MACjB/gB,aACJ2a,CACF,EAEJ,CAEO,SAASsD,EACdvD,CAAa,CACbC,CAAkB,CAClB2G,CAAqB,CACrBL,CAAoC,EAEpC,IAAMN,EAAkBM,EAAeN,eAAe,CACtDO,EAAoCxG,EAAOC,EAAYsG,GAKnDN,GACgD,MAAM,CAApDA,EAAgBb,KADD,oBAC0B,GAC3Ca,EAAgBb,yBAAyB,CAAGwB,CAAAA,CAGlD,CAYO,SAAStD,EACdtD,CAAa,CACbC,CAAkB,CAClB2G,CAAqB,CACrBL,CAAoC,EAGpC,IAAgC,IAA5BM,AADoBN,EAAeG,UAAU,CAACvG,MAAM,CACpCC,OAAO,CAAY,CAMrCoG,EAAoCxG,EAAOC,EAAYsG,GAKvD,IAAMN,EAAkBM,EAAeN,eAAe,CAClDA,GACEA,AAA8C,MAAM,GAApCb,KADD,oBAC0B,GAC3Ca,EAAgBb,yBAAyB,CAAGwB,CAAAA,CAGlD,CACA,MAAMH,EACJ,CAAC,MAAM,EAAEzG,EAAM,iEAAiE,EAAEC,EAAW,CAAC,CAAC,CAEnG,CASO,SAASmD,EAAS,QAAEzB,CAAM,OAAE3B,CAAK,CAAiB,EACvD,IAAMuG,EAAiBO,EAAAA,oBAAoB,CAACvI,QAAQ,GAKpDgG,EAAqBvE,EAAO2B,EAH1B4E,GAA0C,GAGRN,eAHhBM,EAAelZ,IAAI,CACjCkZ,EAAeN,eAAe,CAC9B,KAER,CAEO,SAAS1B,EACdvE,CAAa,CACbC,CAAkB,CAClBgG,CAA4C,EAE5Cc,AAmIF,SAASA,GACP,GAAI,CAAC/B,EACH,MAAM,KADU,EACV,cAEL,CAFK,AAAI1a,MACR,CAAC,gIAAgI,CAAC,EAD9H,oBAAA,OAAA,mBAAA,gBAAA,CAEN,GAEJ,IAxIM2b,GACFA,EAAgBd,YADG,GACY,CAAC/d,IAAI,CAAC,CAGnCif,MAAOJ,EAAgBf,sBAAsB,CACzC,AAAI5a,QAAQ+b,KAAK,MACjB/gB,aACJ2a,CACF,GAGFnP,EAAAA,OAAK,CAACmU,iBAAiB,CAAC+B,EAAqBhH,EAAOC,GACtD,CAEA,SAAS+G,EAAqBhH,CAAa,CAAEC,CAAkB,EAC7D,MACE,CAAC,MAAM,EAAED,EAAM,iEAAiE,EAAEC,EAAW,kKAAE,CAAC,AAIpG,CAEO,EALH,CAAC,MAKWkE,EAAkB/X,CAAY,QAE3B,AADjB,UACE,OAAOA,GACPA,AAAQ,UACwB,UAAhC,AACA,OADQA,EAAY8W,OAAO,EAEpB+D,EAAyB7a,EAAY8W,AAXoC,CAAC,GACjF,CAAC,EAUkD,CAGvD,CAEA,SAAS+D,EAAwBtF,CAAc,EAC7C,OACEA,EAAOrZ,QAAQ,CACb,6CAlBgF,CAAC,sBAoBnFqZ,EAAOrZ,QAAQ,CACb,gEAGN,CAEA,IAAoE,IAAhE2e,EAAwBD,CAA+C,CAA1B,MAAO,QACtD,MAAM,OAAA,cAEL,CAFK,AAAI1c,MACR,0FADI,oBAAA,OAAA,mBAAA,gBAAA,CAEN,GAGF,IAAM4c,EAA6B,6BAEnC,SAAST,EAAgCvD,CAAe,EACtD,IAAM3V,EAAQ,OAAA,cAAkB,CAAlB,AAAIjD,MAAM4Y,GAAV,oBAAA,OAAA,mBAAA,gBAAA,CAAiB,GAE/B,OADE3V,EAAckQ,MAAM,CAAGyJ,EAClB3Z,CACT,CAMO,SAAS6W,EACd7W,CAAc,EAEd,MACmB,UAAjB,OAAOA,GACG,OAAVA,GACCA,EAAckQ,MAAM,GAAKyJ,GAC1B,SAAU3Z,GACV,YAAaA,GACbA,aAAiBjD,KAErB,CAEO,SAASkZ,EACd2B,CAAqC,EAErC,OAAOA,EAAgB9d,MAAM,CAAG,CAClC,CAEO,SAASqc,EACdyD,CAAmC,CACnCC,CAAmC,EAMnC,OADAD,EAAchC,eAAe,CAAC/d,IAAI,IAAIggB,EAAcjC,eAAe,EAC5DgC,EAAchC,eACvB,AADsC,CAG/B,SAASnB,EACdmB,CAAqC,EAErC,OAAOA,EACJzd,MAAM,CACL,AAAC2f,GACyB,UAAxB,OAAOA,EAAOhB,KAAK,EAAiBgB,EAAOhB,KAAK,CAAChf,MAAM,CAAG,GAE7DQ,GAAG,CAAC,CAAC,YAAEoY,CAAU,OAAEoG,CAAK,CAAE,IACzBA,EAAQA,EACL5a,KAAK,CAAC,MACP,AAGCsG,KAAK,CAAC,GACNrK,MAAM,CAAC,AAAC4f,KAEHA,EAAKhf,QAAQ,CAAC,uBAAuB,AAKrCgf,EAAKhf,QAAQ,CAAC,MAXoD,aAWjC,AAKjCgf,EAAKhf,QAAQ,CAAC,YAAY,CAM/BI,IAAI,CAAC,MACD,CAAC,0BAA0B,EAAEuX,EAAW;AAAG,EAAEoG,EAAAA,CAAO,EAEjE,CAcO,SAASvC,IACd,IAAM4C,EAAa,IAAIa,gBAEvB,OADAb,EAAWC,KAAK,CAAC,OAAA,cAA0C,CAA1C,IAAInF,EAAAA,iBAAiB,CAAC,qBAAtB,oBAAA,OAAA,mBAAA,gBAAA,CAAyC,IACnDkF,EAAWvG,MAAM,AAC1B,CAOO,SAAS0D,EACdgC,CAA4B,EAE5B,OAAQA,EAAcxY,IAAI,EACxB,IAAK,YACL,IAAK,oBACH,IAAMqZ,EAAa,IAAIa,gBAEvB,GAAI1B,EAAc2B,WAAW,CAI3B3B,CAJ6B,CAIf2B,WAAW,CAACC,UAAU,GAAGlS,IAAI,CAAC,KAC1CmR,EAAWC,KAAK,EAClB,OACK,CAaL,IAAMe,EAAsBC,GAAAA,EAAAA,sBAAAA,AAAsB,EAAC9B,GAC/C6B,EACFA,EAAoBnS,IAAI,CAAC,IACvBoN,CAAAA,EAAAA,EAAAA,GAFqB,eAErBA,AAAkB,EAAC,IAAM+D,EAAWC,KAAK,KAG3ChE,CAAAA,EAAAA,EAAAA,kBAAAA,AAAkB,EAAC,IAAM+D,EAAWC,KAAK,GAE7C,CAEA,OAAOD,EAAWvG,MAAM,AAC1B,KAAK,mBACL,IAAK,gBACL,IAAK,mBACL,IAAK,UACL,IAAK,QACL,IAAK,gBACL,IAAK,iBACH,MAGJ,CAHW7a,AAIb,CAEO,SAASme,EACdxD,CAAkB,CAClBsG,CAAoC,EAEpC,IAAMN,EAAkBM,EAAeN,eAAe,CAClDA,GACFA,EAAgBd,YADG,GACY,CAAC/d,IAAI,CAAC,CACnCif,MAAOJ,EAAgBf,sBAAsB,CACzC,AAAI5a,QAAQ+b,KAAK,MACjB/gB,aACJ2a,CACF,EAEJ,CAEO,SAAS6E,EAAsB7E,CAAkB,EACtD,IAAM2H,EAAYC,EAAAA,gBAAgB,CAACtJ,QAAQ,GACrCsH,EAAgBiB,EAAAA,oBAAoB,CAACvI,QAAQ,GACnD,GAAIqJ,GAAa/B,EACf,OAAQA,EAAcxY,IADQ,AACJ,EACxB,IAAK,mBACL,IAAK,YAAa,CAChB,IAAMya,EAAiBjC,EAAckC,mBAAmB,CAEpDD,GAAkBA,EAAeE,IAAI,CAAG,GAAG,AAI7ClX,EAAAA,OAAK,CAACuG,GAAG,CACPwI,CAAAA,EAAAA,EAAAA,kBAAkB,AAAlBA,EACEgG,EAAcoC,YAAY,CAC1BL,EAAU5H,KAAK,CACfC,IAIN,KACF,CACA,IAAK,gBAAiB,CACpB,IAAM6H,EAAiBjC,EAAckC,mBAAmB,CACxD,GAAID,GAAkBA,EAAeE,IAAI,CAAG,EAC1C,CAD6C,MACtCzD,EACLqD,EAAU5H,KAAK,CACfC,EACA4F,EAAcI,eAAe,EAGjC,KACF,CACA,IAAK,oBACH,MAAM,OAAA,cAEL,CAFK,IAAIhD,EAAAA,cAAc,CACtB,CAAC,EAAE,EAAEhD,EAAW,uEAAuE,EAAEA,EAAW,+EAA+E,CAAC,EADhL,oBAAA,OAAA,mBAAA,gBAAA,CAEN,EACF,KAAK,QACL,IAAK,gBACH,MAAM,OAAA,cAEL,CAFK,IAAIgD,EAAAA,cAAc,CACtB,CAAC,EAAE,EAAEhD,EAAW,iEAAiE,EAAEA,EAAW,+EAA+E,CAAC,EAD1K,oBAAA,OAAA,mBAAA,gBAAA,CAEN,EAOJ,CAEJ,CAEO,SAAS8E,EAAuB9E,CAAkB,EACvD,IAAM2H,EAAYC,EAAAA,gBAAgB,CAACtJ,QAAQ,GACrCsH,EAAgBiB,EAAAA,oBAAoB,CAACvI,QAAQ,GAEnD,GAAKqJ,CAAD,CASJ,OAJI,CAAC/B,CALW,EAMdqC,CAAAA,EAAAA,EAAAA,OADkB,oBACS,AAA3BA,EAA4BjI,GAGtB4F,EAAcxY,IAAI,EACxB,IAAK,mBACHyD,EAAAA,OAAK,CAACuG,GAAG,CACPwI,GAAAA,EAAAA,kBAAAA,AAAkB,EAChBgG,EAAcoC,YAAY,CAC1BL,EAAU5H,KAAK,CACfC,IAGJ,KAEF,KAAK,mBACL,IAAK,gBACH,GAAI2H,EAAU7B,WAAW,CACvB,CADyB,KAG3B,OAAM,OAAA,cAAiC,CAAjC,IAAIvE,EAAAA,iBAAiB,CAACvB,GAAtB,oBAAA,OAAA,mBAAA,gBAAA,CAAgC,EAExC,KAAK,YACL,IAAK,oBACH,MAAM,OAAA,cAEL,CAFK,IAAIgD,EAAAA,cAAc,CACtB,CAAC,EAAE,EAAEhD,EAAW,oEAAoE,EAAEA,EAAW,+EAA+E,CAAC,EAD7K,oBAAA,OAAA,mBAAA,gBAAA,CAEN,EACF,KAAK,QACL,IAAK,iBACL,IAAK,gBACH,MAAM,OAAA,cAEL,CAFK,IAAIgD,EAAAA,cAAc,CACtB,CAAC,EAAE,EAAEhD,EAAW,iEAAiE,EAAEA,EAAW,+EAA+E,CAAC,EAD1K,oBAAA,OAAA,mBAAA,gBAAA,CAEN,EACF,KAAK,UACH,MAGJ,CACF,CAEA,IAAMkI,EAAmB,mCAkBnBE,EAA4D,AAAIC,OACpE,CAAC,uDAAuD,EAAEF,oBAAoB,yCAAyC,+DAAE7F,EAAAA,yBAAyB,CAAC,cAAc,CAAC,EAG9JgG,EAAuBD,AAAJ,OACvB,CAAC,UAAU,EAAEjG,EAAAA,sBAAsB,CAAC,QAAQ,CAAC,EAEzCmG,EAAmB,AAAIF,OAC3B,CAAC,UAAU,EAAE9F,EAAAA,sBAAsB,CAAC,QAAQ,CAAC,EAEzCiG,EAAiB,AAAIH,OAAO,CAAC,UAAU,EAAEhG,EAAAA,oBAAoB,CAAC,QAAQ,CAAC,EAEtE,SAASoC,EACdkD,CAAoB,CACpBc,CAAsB,CACtBC,CAAyC,CACzCvB,CAAmC,EAEnC,IAAIqB,EAAe/hB,IAAI,CAACgiB,IAGjB,GAAIH,EAAiB7hB,IAAI,CAACgiB,GAHQ,AAGS,CAChDC,EAAkBrD,kBAAkB,EAAG,EACvC,MACF,CAAO,GAAIkD,EAAiB9hB,IAAI,CAACgiB,GAAiB,CAChDC,EAAkBnD,kBAAkB,EAAG,EACvC,MACF,CAAO,GACL6C,EAA0D3hB,IAAI,CAC5DgiB,GAEF,CAIAC,EAAkBlD,iBAAiB,CAAG,GACtCkD,EAAkBtD,oBAAoB,EAAG,EACzC,MACF,MAAO,GAAI8C,EAAiBzhB,IAAI,CAACgiB,GAAiB,CAGhDC,EAAkBlD,iBAAiB,CAAG,GACtC,MACF,KAMO,CANA,GAAI2B,EAAchC,yBAAyB,CAAE,YAElDuD,EAAkBjD,aAAa,CAACte,IAAI,CAClCggB,EAAchC,yBAAyB,EASzC,IAAM7X,EAAQqb,EAJZ,CAAC,OAAO,EAAEhB,EAAU5H,KAAK,CAAC,iBAIuBkD,gLAJkB,CAAC,CAIVwF,EAH1D,aAIFC,EAAkBjD,aAAa,CAACte,IAAI,CAACmG,EAEvC,EACF,CAEO,SAASqX,EACdgD,CAAoB,CACpBc,CAAsB,CACtBC,CAAyC,CACzCvB,CAAmC,EAEnC,IAAIqB,EAAe/hB,IAAI,CAACgiB,IAGjB,EAjBH,CAiBOH,EAAiB7hB,IAAI,CAACgiB,GAAiB,AAHT,CAMvCC,EAAkBpD,eAAe,CADnBqD,EACsBrb,AAFpB,CAAC,MAjBf,CAiBsB,EAAEqa,EAAU5H,KAAK,CAAC,iBACSkD,uQAD+Q,CAAC,CACvQwF,GAE5D,MACF,CAAO,GAAIF,EAAiB9hB,IAAI,CAACgiB,GAAiB,CAEhD,IAAMnb,EAAQqb,EADE,CAAC,OAAO,EAAEhB,EAAU5H,KAAK,CAAC,iBACSkD,2NADmO,CAAC,CAC3NwF,GAC5DC,EAAkBjD,aAAa,CAACte,IAAI,CAACmG,GACrC,MACF,CAAO,GACL8a,EAA0D3hB,IAAI,CAC5DgiB,GAEF,CAIAC,EAAkBlD,iBAAiB,EAAG,EACtCkD,EAAkBtD,oBAAoB,EAAG,EACzC,MACF,MAAO,GAAI8C,EAAiBzhB,IAAI,CAACgiB,GAAiB,CAGhDC,EAAkBlD,iBAAiB,EAAG,EACtC,MACF,KAMO,CANA,GAAI2B,EAAchC,yBAAyB,CAAE,YAElDuD,EAAkBjD,aAAa,CAACte,IAAI,CAClCggB,EAAchC,yBAAyB,EAKzC,IAAM7X,EAAQqb,EADE,CAAC,OAAO,EAAEhB,EAAU5H,KAAK,CAAC,iBACSkD,wMADgN,CAAC,CACxMwF,eAC5DC,EAAkBjD,aAAa,CAACte,IAAI,CAACmG,EAEvC,EACF,CAEO,SAASsX,EACd+C,CAAoB,CACpBc,CAAsB,CACtBC,CAAyC,CACzCvB,CAAmC,EAEnC,IAAIqB,EAAe/hB,IAAI,CAACgiB,IAGjB,GAAIH,EAAiB7hB,IAAI,CAACgiB,GAAiB,AAHT,CAMvCC,EAAkBpD,eAAe,CADnBqD,EADE,AAEoBrb,CAFnB,OAAO,EAAEqa,EAAU5H,KAAK,CAAC,iBACSkD,6YADqZ,CAAC,CAC7YwF,GAE5D,MACF,CAAO,GAAIF,EAAiB9hB,IAAI,CAACgiB,GAAiB,CAEhD,IAAMnb,EAAQqb,EADE,CAAC,OAAO,EAAEhB,EAAU5H,KAAK,CAAC,iBACSkD,4QADoR,CAAC,CAC5QwF,GAC5DC,EAAkBjD,aAAa,CAACte,IAAI,CAACmG,GACrC,MACF,CAAO,GACL8a,EAA0D3hB,IAAI,CAC5DgiB,GAEF,CAIAC,EAAkBlD,iBAAiB,EAAG,EACtCkD,EAAkBtD,oBAAoB,CAAG,GACzC,MACF,MAAO,GAAI8C,EAAiBzhB,IAAI,CAACgiB,GAAiB,CAGhDC,EAAkBlD,iBAAiB,EAAG,EACtC,MACF,KAMO,CANA,GAAI2B,EAAchC,yBAAyB,CAAE,YAElDuD,EAAkBjD,aAAa,CAACte,IAAI,CAClCggB,EAAchC,yBAAyB,EAKzC,IAAM7X,EAAQqb,EADE,CAAC,OAAO,EAAEhB,EAAU5H,KAAK,CAAC,iBACSkD,yPADiQ,CAAC,CACzPwF,eAC5DC,EAAkBjD,aAAa,CAACte,IAAI,CAACmG,EAEvC,EACF,CAMA,SAASqb,EACP1F,CAAe,CACfwF,CAAsB,EAOtB,IAAMnb,EAAQ,OAAA,cAAkB,CAAlB,AAAIjD,MAAM4Y,GAAV,oBAAA,OAAA,mBAAA,gBAAA,CAAiB,GAI/B,OADA3V,EAAM8Y,KAAK,CAAG9Y,EAAMkD,IAAI,CAAG,KAAOyS,EAAyBwF,EACpDnb,CACT,CAEO,IAAK8V,AAJmCwF,CAAAA,KAA2B,SAI9DxF,WAAAA,GAAAA,4CAAAA,GAML,SAASgB,EACduD,CAAoB,CACpBra,CAAY,EAEZtK,QAAQsK,KAAK,CAACA,GAETqa,EAAUmB,GAAG,EAAE,CACdnB,EAAUoB,sBAAsB,CAClC/lB,CADoC,OAC5BsK,KAAK,CACX,CAAC,iIAAiI,EAAEqa,EAAU5H,KAAK,CAAC,2CAA2C,CAAC,EAGlM/c,QAAQsK,KAAK,CAAC,CAAC;0EACqD,EAAEqa,EAAU5H,KAAK,CAAC;qGACS,CAAC,EAGtG,CAEO,SAASwE,GACdoD,CAAoB,CACpBqB,CAAqB,CACrBN,CAAyC,CACzCxB,CAAmC,EAEnC,GAAIA,EAAc/B,yBAAyB,CAKzC,CAL2C,KAC3Cf,EACEuD,EACAT,EAAc/B,yBAAyB,EAEnC,IAAInD,EAAAA,qBAAqB,CAGjC,GAAIgH,IAAAA,EAA+B,CACjC,GAAIN,EAAkBtD,oBAAoB,CAIxC,CAJ0C,MAU5C,IAAMK,EAAgBiD,EAAkBjD,aAAa,CACrD,GAAIA,EAAcre,MAAM,CAAG,EAAG,CAC5B,IAAK,IAAIoB,EAAI,EAAGA,EAAIid,EAAcre,MAAM,CAAEoB,IAAK,AAC7C4b,EAA0BuD,EAAWlC,CAAa,CAACjd,EAAE,CAGvD,OAAM,IAAIwZ,EAAAA,qBAAqB,AACjC,CAMA,GAAI0G,EAAkBnD,kBAAkB,CAItC,CAJwC,KACxCviB,QAAQsK,KAAK,CACX,CAAC,OAAO,EAAEqa,EAAU5H,KAAK,CAAC,8QAA8Q,CAAC,EAErS,IAAIiC,EAAAA,qBAAqB,CAGjC,GAAIgH,GAAgC,CAAhCA,EAOF,MAHAhmB,QAAQsK,KAAK,CACX,CAAC,OAAO,EAAEqa,EAAU5H,KAAK,CAAC,wGAAwG,CAAC,EAE/H,IAAIiC,EAAAA,qBAAqB,AAEnC,MACE,CADK,EAEH0G,CAAwC,MAAtBlD,iBAAiB,EACnCkD,EAAkBrD,kBAAkB,CAKpC,CAJA,KACAriB,QAAQsK,KAAK,CACX,CAAC,OAAO,EAAEqa,EAAU5H,KAAK,CAAC,8PAA8P,CAAC,EAErR,IAAIiC,EAAAA,qBAGhB,AAHqC,CAK9B,SAASiC,GACd0D,CAAoB,CACpBqB,CAAqB,CACrBN,CAAyC,EAEzC,GAAIA,EAAkBtD,oBAAoB,CAIxC,CAJ0C,KAInC,EAAE,CAGX,GAAI4D,IAAAA,EAA+B,CAIjC,IAAMvD,EAAgBiD,EAAkBjD,aAAa,CACrD,GAAIA,EAAcre,MAAM,CAAG,EACzB,CAD4B,MACrBqe,EAGT,GAAIuD,GAAgC,CAAhCA,EAIF,MAAO,CACL,OAAA,cAEC,CAFD,IAAIhG,EAAAA,cAAc,CAChB,CAAC,OAAO,EAAE2E,EAAU5H,KAAK,CAAC,8EAA8E,CAAC,EAD3G,oBAAA,OAAA,mBAAA,gBAAA,CAEA,GAGN,AAFK,MAIH,CAFK,GAGqC,IAAxC2I,EAAkBlD,iBAAiB,EACQ,IAA3CkD,EAAkBjD,aAAa,CAACre,MAAM,EACtCshB,EAAkBpD,eAAe,CAEjC,CADA,KACO,CAACoD,EAAkBpD,eAAe,CAAC,CAI9C,MAAO,EAAE,AACX,CAEO,SAASxB,GACdwC,CAA2C,CAC3C2C,CAAkB,SAElB,AAAI3C,EAAemB,mBAAmB,CAC7BnB,CAD+B,CAChBmB,mBAAmB,CAACnS,IAAI,CAAC,IAAM2T,GAEhDA,CACT,yGCr/BgBC,mBAAAA,qCAAAA,AAAT,SAASA,EAAiB5b,CAAc,EAC7C,GACEqU,CAAAA,EAAAA,EAAAA,iBAAAA,AAAiB,EAACrU,IAClBkU,GAAAA,EAAAA,mBAAAA,AAAmB,EAAClU,IACpBuU,CAAAA,EAAAA,EAAAA,oBAAAA,AAAoB,EAACvU,IACrB4W,CAAAA,EAAAA,EAAAA,iBAAAA,AAAiB,EAAC5W,IAClB4T,CAAAA,EAAAA,EAAAA,UAAAA,AAAU,EAAC5T,IACXoS,CAAAA,EAAAA,EAAAA,8BAAAA,AAA8B,EAACpS,IAC/B6W,CAAAA,EAAAA,EAAAA,2BAAAA,AAA2B,EAAC7W,GAE5B,KADA,CACMA,EAGJA,aAAiBjD,OAAS,UAAWiD,GACvC4b,EAAiB5b,EAD6B,AACvB6b,KAAK,CAEhC,aA1B+C,CAAA,CAAA,IAAA,OACpB,CAAA,CAAA,IAAA,OACS,CAAA,CAAA,IAAA,OACF,CAAA,CAAA,IAAA,OAI3B,CAAA,CAAA,IAAA,OAC8B,CAAA,CAAA,IAAA,uPCFpC,OAAA,cAAA,CAAA,EAAA,aAAA,oCACYD,mBAAAA,qCAAAA,KAAN,IAAMA,EAGLhZ,EAAQ,CAAA,CAAA,IAAA,GACRgZ,MAHN,OAAOxc,GAGe,GAEhBwD,KALY,GAKJ,8BACRgZ,gBAAgB,qPCAflM,uBAAuB,CAAA,kBAAvBA,EAAAA,uBAAuB,EALvBM,YAAY,CAAA,kBAAZA,EAAAA,YAAY,EAEZiC,SAAS,CAAA,kBAATA,EAAAA,SAAS,EADTF,QAAQ,CAAA,kBAARA,EAAAA,QAAQ,EAFEnB,iBAAiB,CAAA,kBAAjBA,EAAAA,iBAAiB,EAA3BC,QAAQ,CAAA,kBAARA,EAAAA,QAAQ,EAIRsB,YAAY,CAAA,kBAAZA,EAAAA,YAAY,EAVL5C,kCAAkC,CAAA,kBAAlCA,GAWPqM,gBAAgB,CAAA,kBAAhBA,EAAAA,gBAAgB,8EAbe,CAAA,CAAA,IAAA,OAQI,CAAA,CAAA,IAAA,OACf,CAAA,CAAA,IAAA,OACJ,CAAA,CAAA,IAAA,OACC,CAAA,CAAA,IAAA,OACG,CAAA,CAAA,IAAA,OACI,CAAA,CAAA,IAAA,GAX1B,SAASrM,IACd,MAAM,OAAA,cAEL,CAFK,AAAIxS,MACR,wEADI,oBAAA,OAAA,mBAAA,gBAAA,CAEN,EACF,8SC4RE2S,uBAAuB,CAAA,kBAAvBA,EAAAA,uBAAuB,EAQvBM,YAAY,CAAA,kBAAZA,EAAAA,YAAY,EAhLZ8L,yBAAyB,CAAA,kBAAzBA,EAAAA,yBAAyB,EA4KzB7J,SAAS,CAAA,kBAATA,EAAAA,SAAS,EADTF,QAAQ,CAAA,kBAARA,EAAAA,QAAQ,EAIRnB,iBAAiB,CAAA,kBAAjBA,EAAAA,iBAAiB,EADjBC,QAAQ,CAAA,kBAARA,EAAAA,QAAQ,EADRsB,YAAY,CAAA,kBAAZA,EAAAA,YAAY,EAXL5C,kCAAkC,CAAA,kBAAlCA,EAAAA,kCAAkC,EAezCqM,gBAAgB,CAAA,kBAAhBA,EAAAA,gBAAgB,EA/HFG,SAAS,CAAA,kBAATA,GAtEAC,WAAW,CAAA,kBAAXA,GA2CAC,SAAS,CAAA,kBAATA,GA1FAC,eAAe,CAAA,kBAAfA,GA4MAC,wBAAwB,CAAA,kBAAxBA,GA7CAC,yBAAyB,CAAA,kBAAzBA,GA3FdC,qBAAqB,CAAA,kBAArBA,EAAAA,qBAAqB,2FAzHyB,CAAA,CAAA,IAAA,QAKzC,CAAA,CAAA,IAAA,MAOA,CAAA,CAAA,IAAA,OAIA,CAAA,CAAA,IAAA,OA0GA,CAAA,CAAA,IAAA,OAgK4C,CAAA,CAAA,IAAA,OAgB5C,CAAA,CAAA,IAAA,GAxRD9E,EAGE3U,EAAQ,CAAA,CAAA,IAAA,GACR2U,WAHN,OAAOnY,GAGoB,CAGvBoY,EAFAzf,AAKE6K,EAAQ,CAAA,CAAA,CATI,GASJ,GACR4U,YAHN,OAAOpY,GAGqB,CAwBvB,EAvBDrH,KAJc,EA2BJmkB,IACd1E,IAAyB,qBAEzB,IAAMrO,EAAe/D,CAAAA,EAAAA,EAAAA,UAAAA,AAAU,EAACkX,EAAAA,mBAAmB,EAuBnD,MAlB6BlR,CAkBtBmR,AAlBsBnR,EAAAA,EAAAA,OAAO,AAAPA,EAAQ,IACnC,AAAKjC,EAME,EANH,EAMOuG,EAAAA,MANQ,iBAMe,CAACvG,GAH1B,KAIR,CAACA,EAAa,CAWnB,CAoBO,SAAS6S,IAed,OAAOld,AAdPyY,IAAwB,iBAIPnS,CAAAA,EAAAA,EAAAA,UAAAA,AAAU,EAACsX,EAAAA,eAAe,CAW7C,CA2BO,SAAST,IACd,IAAMU,EAASvX,CAAAA,EAAAA,EAAAA,UAAAA,AAAU,EAACwX,EAAAA,gBAAgB,EAC1C,GAAe,MAAM,CAAjBD,EACF,MAAM,OAAA,cAAwD,CAAxD,AAAI5f,MAAM,+CAAV,oBAAA,OAAA,mBAAA,gBAAA,CAAuD,GAG/D,OAAO4f,CACT,CAoBO,SAASZ,IAad,OAZAxE,AAYOsF,IAZiB,eAETzX,CAAAA,EAAAA,EAAAA,UAAAA,AAAU,EAAC0X,EAAAA,iBAAiB,CAW7C,CA4BO,SAASV,EACdvN,EAA2B,UAAU,EAErC0I,IAAwB,+BAExB,IAAMwF,EAAU3X,CAAAA,EAAAA,EAAAA,UAAU,AAAVA,EAAW4X,EAAAA,mBAAmB,SAE9C,AAAKD,EAgBE1O,CAAAA,CAhBH,CAgBGA,EAAAA,EAhBO,0BAgBPA,AAA4B,EAAC0O,EAAQG,UAAU,CAAErO,GAhBnC,IAiBvB,CAqBO,SAASsN,EACdtN,EAA2B,UAAU,EAErC0I,IAAwB,8BACGnS,CAAAA,EAAAA,EAAAA,UAAAA,AAAU,EAACqX,EAAAA,yBAAyB,EAC/D,IAAMU,EAAyBf,EAA0BvN,GAiBzD,MAAOV,GAAAA,EAAAA,4BAAAA,AAA4B,EAACgP,EAAwBtO,EAC9D,yOC1RA,EAAO,OAAO,CAAA,EAAA,CAAA,CAAA,+BCwBd,CAAA,CAAA,CAAA,CAAM,AAAN,CAAA,CAAM,CAAA,CAAA,CAAA,AAAO,CAAP,AAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,EAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CArBM,CAClC,AAoBoC,CAnBlC,AAmBkC,CAnBlC,AAmBkC,CAnBlC,AAmBkC,CAnBlC,AAmBkC,CAnBlC,AAmBkC,CAnBlC,AAmBkC,CAnBlC,AAmBkC,CAlBlC,AAkBkC,CAjBhC,AAiBgC,CAjBhC,AAiB0C,CAAA,AAjBvC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACH,GAAA,CAAA,AAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EACP,CAEJ","ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,35,36,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67]}
|