From 68154dc02dfe3596a87e9cbc3a8a7e6a2f93fd9d Mon Sep 17 00:00:00 2001 From: Rhys Sullivan <39114868+RhysSullivan@users.noreply.github.com> Date: Fri, 28 Aug 2026 23:05:57 -0700 Subject: [PATCH 1/4] Stamp verdict flips and failure reasons on health-check telemetry --- packages/core/sdk/src/connections.test.ts | 118 ++++++++++++++++++ packages/core/sdk/src/executor.ts | 40 ++++-- packages/core/sdk/src/health-check.ts | 34 +++++ packages/core/sdk/src/index.ts | 1 + packages/core/sdk/src/shared.ts | 1 + packages/plugins/graphql/src/sdk/plugin.ts | 13 ++ packages/plugins/mcp/src/sdk/discover.ts | 1 + packages/plugins/mcp/src/sdk/errors.ts | 4 + .../src/sdk/health-missing-credential.test.ts | 7 +- packages/plugins/mcp/src/sdk/plugin.ts | 22 ++++ packages/plugins/openapi/src/sdk/backing.ts | 5 + 11 files changed, 238 insertions(+), 8 deletions(-) diff --git a/packages/core/sdk/src/connections.test.ts b/packages/core/sdk/src/connections.test.ts index eb8a52ba88..fccb2ec894 100644 --- a/packages/core/sdk/src/connections.test.ts +++ b/packages/core/sdk/src/connections.test.ts @@ -11,6 +11,7 @@ import { Predicate, Result, Schema, + Tracer, } from "effect"; import { @@ -3124,3 +3125,120 @@ describe("health probe gate key integrity", () => { }), ); }); + +// --------------------------------------------------------------------------- +// Flip telemetry on the health span. `previous_status` + `changed` record +// which verdict a check REPLACED, so flapping (healthy↔degraded oscillation) +// is a queryable dimension instead of a per-connection diff over consecutive +// spans; `reason` carries the enumerable failure mechanism where the free-text +// `detail` can never go. Asserted through the span because the span IS the +// deliverable: nothing else user-visible changes. +// --------------------------------------------------------------------------- + +/** Records every span the program opens, so stamped attributes can be read + * back (same pattern as the MCP plugin's telemetry tests). */ +const recordingTracer = (spans: Array) => + Tracer.make({ + span: (options) => { + const span = new Tracer.NativeSpan(options); + spans.push(span); + return span; + }, + context: (primitive, fiber) => primitive["~effect/Effect/evaluate"](fiber), + }); + +describe("connections.checkHealth flip telemetry", () => { + const REF = { + owner: "org", + integration: INTEG, + name: ConnectionName.make("main"), + } as const; + + const lastHealthSpan = (spans: ReadonlyArray): Tracer.NativeSpan => { + const matches = spans.filter((span) => span.name === "executor.connection.health.check"); + const last = matches[matches.length - 1]; + expect(last).toBeDefined(); + // SAFETY: the expect above fails the test before this narrows undefined. + return last as Tracer.NativeSpan; + }; + + it.effect("stamps previous_status + changed=true when a probe replaces a verdict", () => + Effect.gen(function* () { + const spans: Array = []; + const { executor, stamp } = yield* makeHealthHarness(); + yield* stamp({ + last_health: { status: "degraded", checkedAt: Date.now() - STALE_MS, detail: "HTTP 502" }, + }); + + const result = yield* executor.connections + .checkHealth(REF) + .pipe(Effect.provideService(Tracer.Tracer, recordingTracer(spans))); + expect(result.status).toBe("healthy"); + + const span = lastHealthSpan(spans); + expect(span.attributes.get("executor.health.status")).toBe("healthy"); + expect(span.attributes.get("executor.health.previous_status")).toBe("degraded"); + expect(span.attributes.get("executor.health.changed")).toBe(true); + }), + ); + + it.effect("stamps changed=false when a probe reconfirms the persisted verdict", () => + Effect.gen(function* () { + const spans: Array = []; + const { executor, stamp } = yield* makeHealthHarness(); + yield* stamp({ + last_health: { status: "healthy", checkedAt: Date.now() - STALE_MS, detail: "probe ok" }, + }); + + yield* executor.connections + .checkHealth(REF) + .pipe(Effect.provideService(Tracer.Tracer, recordingTracer(spans))); + + const span = lastHealthSpan(spans); + expect(span.attributes.get("executor.health.previous_status")).toBe("healthy"); + expect(span.attributes.get("executor.health.changed")).toBe(false); + }), + ); + + it.effect("stamps neither flip key on a first-ever verdict", () => + Effect.gen(function* () { + const spans: Array = []; + const { executor } = yield* makeHealthHarness(); + + yield* executor.connections + .checkHealth(REF) + .pipe(Effect.provideService(Tracer.Tracer, recordingTracer(spans))); + + // Never-checked is not a flip: a fleet-wide first probe must not read + // as a wave of changes. + const span = lastHealthSpan(spans); + expect(span.attributes.has("executor.health.previous_status")).toBe(false); + expect(span.attributes.has("executor.health.changed")).toBe(false); + }), + ); + + it.effect("stamps the probe's reason on the span and persists it on the row", () => + Effect.gen(function* () { + const spans: Array = []; + const { executor, persisted } = yield* makeHealthHarness({ + probe: Effect.sync(() => ({ + status: "degraded" as const, + checkedAt: Date.now(), + detail: "upstream deadline exceeded", + reason: "probe_timeout" as const, + })), + }); + + const result = yield* executor.connections + .checkHealth(REF) + .pipe(Effect.provideService(Tracer.Tracer, recordingTracer(spans))); + expect(result.reason).toBe("probe_timeout"); + + const span = lastHealthSpan(spans); + expect(span.attributes.get("executor.health.reason")).toBe("probe_timeout"); + + const row = yield* persisted(); + expect(row?.lastHealth?.reason).toBe("probe_timeout"); + }), + ); +}); diff --git a/packages/core/sdk/src/executor.ts b/packages/core/sdk/src/executor.ts index d8afd12d23..1748d5f4c7 100644 --- a/packages/core/sdk/src/executor.ts +++ b/packages/core/sdk/src/executor.ts @@ -1003,6 +1003,7 @@ const deadGrantVerdict = ( detail: reauthState.oauthReauthRequiredDetail ?? "The authorization server rejected this connection's refresh token (invalid_grant). Reconnect to continue.", + reason: "credential_refresh_rejected", }; }; @@ -3152,10 +3153,11 @@ export const createExecutor = ({ + const toolSyncHealth = (cause: string): HealthCheckResult => ({ status: "degraded", checkedAt: Date.now(), - detail: `${toolSyncHealthDetailPrefix}: ${reason}`, + detail: `${toolSyncHealthDetailPrefix}: ${cause}`, + reason: "tool_sync_failed", }); const syncHealthReason = (result: ResolveToolsResult): string => @@ -4353,12 +4355,14 @@ export const createExecutor = => Effect.annotateCurrentSpan({ "executor.health.status": result.status, @@ -4434,6 +4449,13 @@ export const createExecutor = ) => readonly connection: string; readonly integration: string; }; - }) => Effect.Effect<{ readonly status: string; readonly detail?: string }> + }) => Effect.Effect<{ + readonly status: string; + readonly detail?: string; + readonly reason?: string; + }> )({ ctx: { httpClientLayer: permissiveClientLayer }, credential: { @@ -96,6 +100,7 @@ describe("MCP health check with an unresolved credential", () => { expect(health.status).not.toBe("healthy"); expect(health.status).toBe("expired"); expect(String(health.detail ?? "")).toContain("token"); + expect(health.reason).toBe("credential_missing"); }), ); diff --git a/packages/plugins/mcp/src/sdk/plugin.ts b/packages/plugins/mcp/src/sdk/plugin.ts index 96e9dc7ae6..ec4f53150e 100644 --- a/packages/plugins/mcp/src/sdk/plugin.ts +++ b/packages/plugins/mcp/src/sdk/plugin.ts @@ -47,6 +47,7 @@ import { createMcpConnectionPool } from "./connection-pool"; import { discoverTools } from "./discover"; import { McpConnectionError, + type McpConnectionFailureKind, McpOAuthReauthorizationRequired, McpToolDiscoveryError, } from "./errors"; @@ -98,6 +99,21 @@ const mcpLivenessFailureStatus = (failure: { return authWalled ? "expired" : "degraded"; }; +/** Enumerable failure MECHANISM for a failed liveness probe, beside the status + * classifier above: a hit deadline is `probe_timeout` (a slow-but-alive + * server, not a dead one), an HTTP verdict is `upstream_status`, and anything + * else (transport, protocol, config) is `probe_failed`. Structural fields + * only — never the message. */ +const mcpLivenessFailureReason = (failure: { + readonly httpStatus?: number; + readonly timedOut?: boolean; + readonly failureKind?: McpConnectionFailureKind; +}): "probe_timeout" | "upstream_status" | "probe_failed" => { + if (failure.timedOut === true || failure.failureKind === "timeout") return "probe_timeout"; + if (failure.httpStatus !== undefined) return "upstream_status"; + return "probe_failed"; +}; + const legacyOAuthClientSlugCandidate = (value: string): string | null => { const slug = value .trim() @@ -1648,6 +1664,7 @@ export const mcpPlugin = definePlugin((options?: McpPluginOptions) => { status: "expired" as const, checkedAt: Date.now(), detail: `Connection has no resolvable credential value for input(s): ${missing.join(", ")}.`, + reason: "credential_missing" as const, } satisfies HealthCheckResult; } } @@ -1671,6 +1688,7 @@ export const mcpPlugin = definePlugin((options?: McpPluginOptions) => { checkedAt: Date.now(), ...(error.httpStatus !== undefined ? { httpStatus: error.httpStatus } : {}), detail: error.message, + reason: mcpLivenessFailureReason(error), } satisfies HealthCheckResult), ), ); @@ -1682,6 +1700,7 @@ export const mcpPlugin = definePlugin((options?: McpPluginOptions) => { checkedAt: Date.now(), ...(error.httpStatus !== undefined ? { httpStatus: error.httpStatus } : {}), detail: error.message, + reason: mcpLivenessFailureReason(error), } satisfies HealthCheckResult), ), // Every failure above folds onto the SUCCESS channel, so without this @@ -1693,6 +1712,9 @@ export const mcpPlugin = definePlugin((options?: McpPluginOptions) => { ...("httpStatus" in result && result.httpStatus !== undefined ? { "mcp.health.http_status": result.httpStatus } : {}), + ...("reason" in result && result.reason !== undefined + ? { "mcp.health.reason": result.reason } + : {}), }), ), Effect.withSpan("mcp.plugin.check_health", { diff --git a/packages/plugins/openapi/src/sdk/backing.ts b/packages/plugins/openapi/src/sdk/backing.ts index fff125f77d..b7a54d4f43 100644 --- a/packages/plugins/openapi/src/sdk/backing.ts +++ b/packages/plugins/openapi/src/sdk/backing.ts @@ -934,6 +934,7 @@ export const checkHealthOpenApi = (input: { status: "expired", checkedAt, detail: `Connection "${input.credential.connection}" has no resolvable credential value.`, + reason: "credential_missing", } satisfies HealthCheckResult; } const rendered = renderAuthTemplate(template, input.credential.values); @@ -970,6 +971,7 @@ export const checkHealthOpenApi = (input: { status: "degraded", checkedAt, detail: scrubSecrets(`Health check request failed: ${probe.failure.message}`), + reason: "probe_failed", } satisfies HealthCheckResult; } @@ -1015,6 +1017,9 @@ export const checkHealthOpenApi = (input: { detail: scrubSecrets( extractOpenApiUpstreamMessage(probe.result.error, probe.result.status), ), + // Any non-healthy classification here came from the upstream's own + // HTTP verdict (2xx/401/403/other → classifyProbeResponse). + reason: "upstream_status" as const, }), } satisfies HealthCheckResult; }); From dec4ac86b2b42a6b9bd246c615013b701900cbec Mon Sep 17 00:00:00 2001 From: Rhys Sullivan <39114868+RhysSullivan@users.noreply.github.com> Date: Fri, 28 Aug 2026 23:21:52 -0700 Subject: [PATCH 2/4] Address review: honest flip semantics, structural failure discrimination --- packages/core/sdk/src/errors.ts | 7 ++ packages/core/sdk/src/executor.ts | 76 ++++++++++++++----- packages/core/sdk/src/health-check.ts | 3 + .../src/shell/smoke-harness-bundle.gen.ts | 2 +- .../plugins/graphql/src/sdk/plugin.test.ts | 6 ++ packages/plugins/graphql/src/sdk/plugin.ts | 10 ++- packages/plugins/mcp/src/sdk/discover.ts | 10 ++- 7 files changed, 89 insertions(+), 25 deletions(-) diff --git a/packages/core/sdk/src/errors.ts b/packages/core/sdk/src/errors.ts index 9922287f76..a732dcc145 100644 --- a/packages/core/sdk/src/errors.ts +++ b/packages/core/sdk/src/errors.ts @@ -228,6 +228,13 @@ export class CredentialResolutionError extends Schema.TaggedErrorClass { const cached = Option.getOrNull(decodeLastHealth(row.last_health)); - if (cached !== null && cached.status === "expired") return cached; + // A recorded dead grant IS a refresh rejection whatever the cached verdict + // says, so backfill the mechanism onto verdicts persisted before `reason` + // existed (or by writers that omit it) — otherwise every pre-existing dead + // grant would present reasonless spans indefinitely. + if (cached !== null && cached.status === "expired") { + return cached.reason !== undefined + ? cached + : { ...cached, reason: "credential_refresh_rejected" }; + } return { status: "expired", checkedAt: reauthState.oauthReauthRequiredAt, @@ -2133,6 +2141,7 @@ export const createExecutor = => Effect.gen(function* () { const owner = row.owner as Owner; - const reauth = (message: string): CredentialResolutionError => + const reauth = ( + message: string, + options?: { readonly credentialMissing?: boolean }, + ): CredentialResolutionError => new CredentialResolutionError({ owner, integration: IntegrationSlug.make(row.integration), name: ConnectionName.make(row.name), message, reauthRequired: true, + ...(options?.credentialMissing === true ? { credentialMissing: true } : {}), }); // A recorded invalid_grant is the AS's standing verdict on this grant: @@ -2442,7 +2455,9 @@ export const createExecutor = + failure.blockedByAdmin === true + ? "blocked_by_admin" + : failure.credentialMissing === true + ? "credential_missing" + : "credential_refresh_rejected"; + const healthFromCredentialResolutionFailure = ( failure: CredentialResolutionError, ): HealthCheckResult => @@ -4355,14 +4386,14 @@ export const createExecutor = {\n var __create = Object.create;\n var __defProp = Object.defineProperty;\n var __getOwnPropDesc = Object.getOwnPropertyDescriptor;\n var __getOwnPropNames = Object.getOwnPropertyNames;\n var __getProtoOf = Object.getPrototypeOf;\n var __hasOwnProp = Object.prototype.hasOwnProperty;\n var __commonJS = (cb, mod) => function __require() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n };\n var __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n };\n var __copyProps = (to2, from2, except, desc) => {\n if (from2 && typeof from2 === \"object\" || typeof from2 === \"function\") {\n for (let key of __getOwnPropNames(from2))\n if (!__hasOwnProp.call(to2, key) && key !== except)\n __defProp(to2, key, { get: () => from2[key], enumerable: !(desc = __getOwnPropDesc(from2, key)) || desc.enumerable });\n }\n return to2;\n };\n var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n ));\n\n // ../../../node_modules/.bun/react@19.2.5/node_modules/react/cjs/react.production.js\n var require_react_production = __commonJS({\n \"../../../node_modules/.bun/react@19.2.5/node_modules/react/cjs/react.production.js\"(exports) {\n \"use strict\";\n var REACT_ELEMENT_TYPE = /* @__PURE__ */ Symbol.for(\"react.transitional.element\");\n var REACT_PORTAL_TYPE = /* @__PURE__ */ Symbol.for(\"react.portal\");\n var REACT_FRAGMENT_TYPE = /* @__PURE__ */ Symbol.for(\"react.fragment\");\n var REACT_STRICT_MODE_TYPE = /* @__PURE__ */ Symbol.for(\"react.strict_mode\");\n var REACT_PROFILER_TYPE = /* @__PURE__ */ Symbol.for(\"react.profiler\");\n var REACT_CONSUMER_TYPE = /* @__PURE__ */ Symbol.for(\"react.consumer\");\n var REACT_CONTEXT_TYPE = /* @__PURE__ */ Symbol.for(\"react.context\");\n var REACT_FORWARD_REF_TYPE2 = /* @__PURE__ */ Symbol.for(\"react.forward_ref\");\n var REACT_SUSPENSE_TYPE = /* @__PURE__ */ Symbol.for(\"react.suspense\");\n var REACT_MEMO_TYPE2 = /* @__PURE__ */ Symbol.for(\"react.memo\");\n var REACT_LAZY_TYPE = /* @__PURE__ */ Symbol.for(\"react.lazy\");\n var REACT_ACTIVITY_TYPE = /* @__PURE__ */ Symbol.for(\"react.activity\");\n var MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\n function getIteratorFn(maybeIterable) {\n if (null === maybeIterable || \"object\" !== typeof maybeIterable) return null;\n maybeIterable = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[\"@@iterator\"];\n return \"function\" === typeof maybeIterable ? maybeIterable : null;\n }\n var ReactNoopUpdateQueue = {\n isMounted: function() {\n return false;\n },\n enqueueForceUpdate: function() {\n },\n enqueueReplaceState: function() {\n },\n enqueueSetState: function() {\n }\n };\n var assign2 = Object.assign;\n var emptyObject = {};\n function Component2(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n }\n Component2.prototype.isReactComponent = {};\n Component2.prototype.setState = function(partialState, callback) {\n if (\"object\" !== typeof partialState && \"function\" !== typeof partialState && null != partialState)\n throw Error(\n \"takes an object of state variables to update or a function which returns an object of state variables.\"\n );\n this.updater.enqueueSetState(this, partialState, callback, \"setState\");\n };\n Component2.prototype.forceUpdate = function(callback) {\n this.updater.enqueueForceUpdate(this, callback, \"forceUpdate\");\n };\n function ComponentDummy() {\n }\n ComponentDummy.prototype = Component2.prototype;\n function PureComponent6(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n }\n var pureComponentPrototype = PureComponent6.prototype = new ComponentDummy();\n pureComponentPrototype.constructor = PureComponent6;\n assign2(pureComponentPrototype, Component2.prototype);\n pureComponentPrototype.isPureReactComponent = true;\n var isArrayImpl = Array.isArray;\n function noop7() {\n }\n var ReactSharedInternals = { H: null, A: null, T: null, S: null };\n var hasOwnProperty = Object.prototype.hasOwnProperty;\n function ReactElement(type, key, props) {\n var refProp = props.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type,\n key,\n ref: void 0 !== refProp ? refProp : null,\n props\n };\n }\n function cloneAndReplaceKey(oldElement, newKey) {\n return ReactElement(oldElement.type, newKey, oldElement.props);\n }\n function isValidElement27(object) {\n return \"object\" === typeof object && null !== object && object.$$typeof === REACT_ELEMENT_TYPE;\n }\n function escape(key) {\n var escaperLookup = { \"=\": \"=0\", \":\": \"=2\" };\n return \"$\" + key.replace(/[=:]/g, function(match2) {\n return escaperLookup[match2];\n });\n }\n var userProvidedKeyEscapeRegex = /\\/+/g;\n function getElementKey(element, index2) {\n return \"object\" === typeof element && null !== element && null != element.key ? escape(\"\" + element.key) : index2.toString(36);\n }\n function resolveThenable(thenable) {\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw thenable.reason;\n default:\n switch (\"string\" === typeof thenable.status ? thenable.then(noop7, noop7) : (thenable.status = \"pending\", thenable.then(\n function(fulfilledValue) {\n \"pending\" === thenable.status && (thenable.status = \"fulfilled\", thenable.value = fulfilledValue);\n },\n function(error) {\n \"pending\" === thenable.status && (thenable.status = \"rejected\", thenable.reason = error);\n }\n )), thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw thenable.reason;\n }\n }\n throw thenable;\n }\n function mapIntoArray(children, array2, escapedPrefix, nameSoFar, callback) {\n var type = typeof children;\n if (\"undefined\" === type || \"boolean\" === type) children = null;\n var invokeCallback = false;\n if (null === children) invokeCallback = true;\n else\n switch (type) {\n case \"bigint\":\n case \"string\":\n case \"number\":\n invokeCallback = true;\n break;\n case \"object\":\n switch (children.$$typeof) {\n case REACT_ELEMENT_TYPE:\n case REACT_PORTAL_TYPE:\n invokeCallback = true;\n break;\n case REACT_LAZY_TYPE:\n return invokeCallback = children._init, mapIntoArray(\n invokeCallback(children._payload),\n array2,\n escapedPrefix,\n nameSoFar,\n callback\n );\n }\n }\n if (invokeCallback)\n return callback = callback(children), invokeCallback = \"\" === nameSoFar ? \".\" + getElementKey(children, 0) : nameSoFar, isArrayImpl(callback) ? (escapedPrefix = \"\", null != invokeCallback && (escapedPrefix = invokeCallback.replace(userProvidedKeyEscapeRegex, \"$&/\") + \"/\"), mapIntoArray(callback, array2, escapedPrefix, \"\", function(c2) {\n return c2;\n })) : null != callback && (isValidElement27(callback) && (callback = cloneAndReplaceKey(\n callback,\n escapedPrefix + (null == callback.key || children && children.key === callback.key ? \"\" : (\"\" + callback.key).replace(\n userProvidedKeyEscapeRegex,\n \"$&/\"\n ) + \"/\") + invokeCallback\n )), array2.push(callback)), 1;\n invokeCallback = 0;\n var nextNamePrefix = \"\" === nameSoFar ? \".\" : nameSoFar + \":\";\n if (isArrayImpl(children))\n for (var i = 0; i < children.length; i++)\n nameSoFar = children[i], type = nextNamePrefix + getElementKey(nameSoFar, i), invokeCallback += mapIntoArray(\n nameSoFar,\n array2,\n escapedPrefix,\n type,\n callback\n );\n else if (i = getIteratorFn(children), \"function\" === typeof i)\n for (children = i.call(children), i = 0; !(nameSoFar = children.next()).done; )\n nameSoFar = nameSoFar.value, type = nextNamePrefix + getElementKey(nameSoFar, i++), invokeCallback += mapIntoArray(\n nameSoFar,\n array2,\n escapedPrefix,\n type,\n callback\n );\n else if (\"object\" === type) {\n if (\"function\" === typeof children.then)\n return mapIntoArray(\n resolveThenable(children),\n array2,\n escapedPrefix,\n nameSoFar,\n callback\n );\n array2 = String(children);\n throw Error(\n \"Objects are not valid as a React child (found: \" + (\"[object Object]\" === array2 ? \"object with keys {\" + Object.keys(children).join(\", \") + \"}\" : array2) + \"). If you meant to render a collection of children, use an array instead.\"\n );\n }\n return invokeCallback;\n }\n function mapChildren(children, func, context) {\n if (null == children) return children;\n var result = [], count3 = 0;\n mapIntoArray(children, result, \"\", \"\", function(child) {\n return func.call(context, child, count3++);\n });\n return result;\n }\n function lazyInitializer(payload) {\n if (-1 === payload._status) {\n var ctor = payload._result;\n ctor = ctor();\n ctor.then(\n function(moduleObject) {\n if (0 === payload._status || -1 === payload._status)\n payload._status = 1, payload._result = moduleObject;\n },\n function(error) {\n if (0 === payload._status || -1 === payload._status)\n payload._status = 2, payload._result = error;\n }\n );\n -1 === payload._status && (payload._status = 0, payload._result = ctor);\n }\n if (1 === payload._status) return payload._result.default;\n throw payload._result;\n }\n var reportGlobalError = \"function\" === typeof reportError ? reportError : function(error) {\n if (\"object\" === typeof window && \"function\" === typeof window.ErrorEvent) {\n var event = new window.ErrorEvent(\"error\", {\n bubbles: true,\n cancelable: true,\n message: \"object\" === typeof error && null !== error && \"string\" === typeof error.message ? String(error.message) : String(error),\n error\n });\n if (!window.dispatchEvent(event)) return;\n } else if (\"object\" === typeof process && \"function\" === typeof process.emit) {\n process.emit(\"uncaughtException\", error);\n return;\n }\n console.error(error);\n };\n var Children8 = {\n map: mapChildren,\n forEach: function(children, forEachFunc, forEachContext) {\n mapChildren(\n children,\n function() {\n forEachFunc.apply(this, arguments);\n },\n forEachContext\n );\n },\n count: function(children) {\n var n = 0;\n mapChildren(children, function() {\n n++;\n });\n return n;\n },\n toArray: function(children) {\n return mapChildren(children, function(child) {\n return child;\n }) || [];\n },\n only: function(children) {\n if (!isValidElement27(children))\n throw Error(\n \"React.Children.only expected to receive a single React element child.\"\n );\n return children;\n }\n };\n exports.Activity = REACT_ACTIVITY_TYPE;\n exports.Children = Children8;\n exports.Component = Component2;\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.Profiler = REACT_PROFILER_TYPE;\n exports.PureComponent = PureComponent6;\n exports.StrictMode = REACT_STRICT_MODE_TYPE;\n exports.Suspense = REACT_SUSPENSE_TYPE;\n exports.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE = ReactSharedInternals;\n exports.__COMPILER_RUNTIME = {\n __proto__: null,\n c: function(size4) {\n return ReactSharedInternals.H.useMemoCache(size4);\n }\n };\n exports.cache = function(fn) {\n return function() {\n return fn.apply(null, arguments);\n };\n };\n exports.cacheSignal = function() {\n return null;\n };\n exports.cloneElement = function(element, config, children) {\n if (null === element || void 0 === element)\n throw Error(\n \"The argument must be a React element, but you passed \" + element + \".\"\n );\n var props = assign2({}, element.props), key = element.key;\n if (null != config)\n for (propName in void 0 !== config.key && (key = \"\" + config.key), config)\n !hasOwnProperty.call(config, propName) || \"key\" === propName || \"__self\" === propName || \"__source\" === propName || \"ref\" === propName && void 0 === config.ref || (props[propName] = config[propName]);\n var propName = arguments.length - 2;\n if (1 === propName) props.children = children;\n else if (1 < propName) {\n for (var childArray = Array(propName), i = 0; i < propName; i++)\n childArray[i] = arguments[i + 2];\n props.children = childArray;\n }\n return ReactElement(element.type, key, props);\n };\n exports.createContext = function(defaultValue) {\n defaultValue = {\n $$typeof: REACT_CONTEXT_TYPE,\n _currentValue: defaultValue,\n _currentValue2: defaultValue,\n _threadCount: 0,\n Provider: null,\n Consumer: null\n };\n defaultValue.Provider = defaultValue;\n defaultValue.Consumer = {\n $$typeof: REACT_CONSUMER_TYPE,\n _context: defaultValue\n };\n return defaultValue;\n };\n exports.createElement = function(type, config, children) {\n var propName, props = {}, key = null;\n if (null != config)\n for (propName in void 0 !== config.key && (key = \"\" + config.key), config)\n hasOwnProperty.call(config, propName) && \"key\" !== propName && \"__self\" !== propName && \"__source\" !== propName && (props[propName] = config[propName]);\n var childrenLength = arguments.length - 2;\n if (1 === childrenLength) props.children = children;\n else if (1 < childrenLength) {\n for (var childArray = Array(childrenLength), i = 0; i < childrenLength; i++)\n childArray[i] = arguments[i + 2];\n props.children = childArray;\n }\n if (type && type.defaultProps)\n for (propName in childrenLength = type.defaultProps, childrenLength)\n void 0 === props[propName] && (props[propName] = childrenLength[propName]);\n return ReactElement(type, key, props);\n };\n exports.createRef = function() {\n return { current: null };\n };\n exports.forwardRef = function(render2) {\n return { $$typeof: REACT_FORWARD_REF_TYPE2, render: render2 };\n };\n exports.isValidElement = isValidElement27;\n exports.lazy = function(ctor) {\n return {\n $$typeof: REACT_LAZY_TYPE,\n _payload: { _status: -1, _result: ctor },\n _init: lazyInitializer\n };\n };\n exports.memo = function(type, compare) {\n return {\n $$typeof: REACT_MEMO_TYPE2,\n type,\n compare: void 0 === compare ? null : compare\n };\n };\n exports.startTransition = function(scope) {\n var prevTransition = ReactSharedInternals.T, currentTransition = {};\n ReactSharedInternals.T = currentTransition;\n try {\n var returnValue = scope(), onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish && onStartTransitionFinish(currentTransition, returnValue);\n \"object\" === typeof returnValue && null !== returnValue && \"function\" === typeof returnValue.then && returnValue.then(noop7, reportGlobalError);\n } catch (error) {\n reportGlobalError(error);\n } finally {\n null !== prevTransition && null !== currentTransition.types && (prevTransition.types = currentTransition.types), ReactSharedInternals.T = prevTransition;\n }\n };\n exports.unstable_useCacheRefresh = function() {\n return ReactSharedInternals.H.useCacheRefresh();\n };\n exports.use = function(usable) {\n return ReactSharedInternals.H.use(usable);\n };\n exports.useActionState = function(action, initialState15, permalink) {\n return ReactSharedInternals.H.useActionState(action, initialState15, permalink);\n };\n exports.useCallback = function(callback, deps) {\n return ReactSharedInternals.H.useCallback(callback, deps);\n };\n exports.useContext = function(Context) {\n return ReactSharedInternals.H.useContext(Context);\n };\n exports.useDebugValue = function() {\n };\n exports.useDeferredValue = function(value, initialValue) {\n return ReactSharedInternals.H.useDeferredValue(value, initialValue);\n };\n exports.useEffect = function(create, deps) {\n return ReactSharedInternals.H.useEffect(create, deps);\n };\n exports.useEffectEvent = function(callback) {\n return ReactSharedInternals.H.useEffectEvent(callback);\n };\n exports.useId = function() {\n return ReactSharedInternals.H.useId();\n };\n exports.useImperativeHandle = function(ref, create, deps) {\n return ReactSharedInternals.H.useImperativeHandle(ref, create, deps);\n };\n exports.useInsertionEffect = function(create, deps) {\n return ReactSharedInternals.H.useInsertionEffect(create, deps);\n };\n exports.useLayoutEffect = function(create, deps) {\n return ReactSharedInternals.H.useLayoutEffect(create, deps);\n };\n exports.useMemo = function(create, deps) {\n return ReactSharedInternals.H.useMemo(create, deps);\n };\n exports.useOptimistic = function(passthrough, reducer) {\n return ReactSharedInternals.H.useOptimistic(passthrough, reducer);\n };\n exports.useReducer = function(reducer, initialArg, init) {\n return ReactSharedInternals.H.useReducer(reducer, initialArg, init);\n };\n exports.useRef = function(initialValue) {\n return ReactSharedInternals.H.useRef(initialValue);\n };\n exports.useState = function(initialState15) {\n return ReactSharedInternals.H.useState(initialState15);\n };\n exports.useSyncExternalStore = function(subscribe2, getSnapshot, getServerSnapshot) {\n return ReactSharedInternals.H.useSyncExternalStore(\n subscribe2,\n getSnapshot,\n getServerSnapshot\n );\n };\n exports.useTransition = function() {\n return ReactSharedInternals.H.useTransition();\n };\n exports.version = \"19.2.5\";\n }\n });\n\n // ../../../node_modules/.bun/react@19.2.5/node_modules/react/index.js\n var require_react = __commonJS({\n \"../../../node_modules/.bun/react@19.2.5/node_modules/react/index.js\"(exports, module) {\n \"use strict\";\n if (true) {\n module.exports = require_react_production();\n } else {\n module.exports = null;\n }\n }\n });\n\n // ../../../node_modules/.bun/react-dom@19.2.5+3f10a4be4e334a9b/node_modules/react-dom/cjs/react-dom.production.js\n var require_react_dom_production = __commonJS({\n \"../../../node_modules/.bun/react-dom@19.2.5+3f10a4be4e334a9b/node_modules/react-dom/cjs/react-dom.production.js\"(exports) {\n \"use strict\";\n var React134 = require_react();\n function formatProdErrorMessage3(code) {\n var url = \"https://react.dev/errors/\" + code;\n if (1 < arguments.length) {\n url += \"?args[]=\" + encodeURIComponent(arguments[1]);\n for (var i = 2; i < arguments.length; i++)\n url += \"&args[]=\" + encodeURIComponent(arguments[i]);\n }\n return \"Minified React error #\" + code + \"; visit \" + url + \" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\";\n }\n function noop7() {\n }\n var Internals = {\n d: {\n f: noop7,\n r: function() {\n throw Error(formatProdErrorMessage3(522));\n },\n D: noop7,\n C: noop7,\n L: noop7,\n m: noop7,\n X: noop7,\n S: noop7,\n M: noop7\n },\n p: 0,\n findDOMNode: null\n };\n var REACT_PORTAL_TYPE = /* @__PURE__ */ Symbol.for(\"react.portal\");\n function createPortal$1(children, containerInfo, implementation) {\n var key = 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null;\n return {\n $$typeof: REACT_PORTAL_TYPE,\n key: null == key ? null : \"\" + key,\n children,\n containerInfo,\n implementation\n };\n }\n var ReactSharedInternals = React134.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;\n function getCrossOriginStringAs(as, input2) {\n if (\"font\" === as) return \"\";\n if (\"string\" === typeof input2)\n return \"use-credentials\" === input2 ? input2 : \"\";\n }\n exports.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE = Internals;\n exports.createPortal = function(children, container) {\n var key = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null;\n if (!container || 1 !== container.nodeType && 9 !== container.nodeType && 11 !== container.nodeType)\n throw Error(formatProdErrorMessage3(299));\n return createPortal$1(children, container, null, key);\n };\n exports.flushSync = function(fn) {\n var previousTransition = ReactSharedInternals.T, previousUpdatePriority = Internals.p;\n try {\n if (ReactSharedInternals.T = null, Internals.p = 2, fn) return fn();\n } finally {\n ReactSharedInternals.T = previousTransition, Internals.p = previousUpdatePriority, Internals.d.f();\n }\n };\n exports.preconnect = function(href, options2) {\n \"string\" === typeof href && (options2 ? (options2 = options2.crossOrigin, options2 = \"string\" === typeof options2 ? \"use-credentials\" === options2 ? options2 : \"\" : void 0) : options2 = null, Internals.d.C(href, options2));\n };\n exports.prefetchDNS = function(href) {\n \"string\" === typeof href && Internals.d.D(href);\n };\n exports.preinit = function(href, options2) {\n if (\"string\" === typeof href && options2 && \"string\" === typeof options2.as) {\n var as = options2.as, crossOrigin = getCrossOriginStringAs(as, options2.crossOrigin), integrity = \"string\" === typeof options2.integrity ? options2.integrity : void 0, fetchPriority = \"string\" === typeof options2.fetchPriority ? options2.fetchPriority : void 0;\n \"style\" === as ? Internals.d.S(\n href,\n \"string\" === typeof options2.precedence ? options2.precedence : void 0,\n {\n crossOrigin,\n integrity,\n fetchPriority\n }\n ) : \"script\" === as && Internals.d.X(href, {\n crossOrigin,\n integrity,\n fetchPriority,\n nonce: \"string\" === typeof options2.nonce ? options2.nonce : void 0\n });\n }\n };\n exports.preinitModule = function(href, options2) {\n if (\"string\" === typeof href)\n if (\"object\" === typeof options2 && null !== options2) {\n if (null == options2.as || \"script\" === options2.as) {\n var crossOrigin = getCrossOriginStringAs(\n options2.as,\n options2.crossOrigin\n );\n Internals.d.M(href, {\n crossOrigin,\n integrity: \"string\" === typeof options2.integrity ? options2.integrity : void 0,\n nonce: \"string\" === typeof options2.nonce ? options2.nonce : void 0\n });\n }\n } else null == options2 && Internals.d.M(href);\n };\n exports.preload = function(href, options2) {\n if (\"string\" === typeof href && \"object\" === typeof options2 && null !== options2 && \"string\" === typeof options2.as) {\n var as = options2.as, crossOrigin = getCrossOriginStringAs(as, options2.crossOrigin);\n Internals.d.L(href, as, {\n crossOrigin,\n integrity: \"string\" === typeof options2.integrity ? options2.integrity : void 0,\n nonce: \"string\" === typeof options2.nonce ? options2.nonce : void 0,\n type: \"string\" === typeof options2.type ? options2.type : void 0,\n fetchPriority: \"string\" === typeof options2.fetchPriority ? options2.fetchPriority : void 0,\n referrerPolicy: \"string\" === typeof options2.referrerPolicy ? options2.referrerPolicy : void 0,\n imageSrcSet: \"string\" === typeof options2.imageSrcSet ? options2.imageSrcSet : void 0,\n imageSizes: \"string\" === typeof options2.imageSizes ? options2.imageSizes : void 0,\n media: \"string\" === typeof options2.media ? options2.media : void 0\n });\n }\n };\n exports.preloadModule = function(href, options2) {\n if (\"string\" === typeof href)\n if (options2) {\n var crossOrigin = getCrossOriginStringAs(options2.as, options2.crossOrigin);\n Internals.d.m(href, {\n as: \"string\" === typeof options2.as && \"script\" !== options2.as ? options2.as : void 0,\n crossOrigin,\n integrity: \"string\" === typeof options2.integrity ? options2.integrity : void 0\n });\n } else Internals.d.m(href);\n };\n exports.requestFormReset = function(form) {\n Internals.d.r(form);\n };\n exports.unstable_batchedUpdates = function(fn, a2) {\n return fn(a2);\n };\n exports.useFormState = function(action, initialState15, permalink) {\n return ReactSharedInternals.H.useFormState(action, initialState15, permalink);\n };\n exports.useFormStatus = function() {\n return ReactSharedInternals.H.useHostTransitionStatus();\n };\n exports.version = \"19.2.5\";\n }\n });\n\n // ../../../node_modules/.bun/react-dom@19.2.5+3f10a4be4e334a9b/node_modules/react-dom/index.js\n var require_react_dom = __commonJS({\n \"../../../node_modules/.bun/react-dom@19.2.5+3f10a4be4e334a9b/node_modules/react-dom/index.js\"(exports, module) {\n \"use strict\";\n function checkDCE() {\n if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === \"undefined\" || typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== \"function\") {\n return;\n }\n if (false) {\n throw new Error(\"^_^\");\n }\n try {\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n console.error(err);\n }\n }\n if (true) {\n checkDCE();\n module.exports = require_react_dom_production();\n } else {\n module.exports = null;\n }\n }\n });\n\n // ../../../node_modules/.bun/react-dom@19.2.5+3f10a4be4e334a9b/node_modules/react-dom/cjs/react-dom-server-legacy.browser.production.js\n var require_react_dom_server_legacy_browser_production = __commonJS({\n \"../../../node_modules/.bun/react-dom@19.2.5+3f10a4be4e334a9b/node_modules/react-dom/cjs/react-dom-server-legacy.browser.production.js\"(exports) {\n \"use strict\";\n var React134 = require_react();\n var ReactDOM5 = require_react_dom();\n function formatProdErrorMessage3(code) {\n var url = \"https://react.dev/errors/\" + code;\n if (1 < arguments.length) {\n url += \"?args[]=\" + encodeURIComponent(arguments[1]);\n for (var i = 2; i < arguments.length; i++)\n url += \"&args[]=\" + encodeURIComponent(arguments[i]);\n }\n return \"Minified React error #\" + code + \"; visit \" + url + \" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\";\n }\n var REACT_ELEMENT_TYPE = /* @__PURE__ */ Symbol.for(\"react.transitional.element\");\n var REACT_PORTAL_TYPE = /* @__PURE__ */ Symbol.for(\"react.portal\");\n var REACT_FRAGMENT_TYPE = /* @__PURE__ */ Symbol.for(\"react.fragment\");\n var REACT_STRICT_MODE_TYPE = /* @__PURE__ */ Symbol.for(\"react.strict_mode\");\n var REACT_PROFILER_TYPE = /* @__PURE__ */ Symbol.for(\"react.profiler\");\n var REACT_CONSUMER_TYPE = /* @__PURE__ */ Symbol.for(\"react.consumer\");\n var REACT_CONTEXT_TYPE = /* @__PURE__ */ Symbol.for(\"react.context\");\n var REACT_FORWARD_REF_TYPE2 = /* @__PURE__ */ Symbol.for(\"react.forward_ref\");\n var REACT_SUSPENSE_TYPE = /* @__PURE__ */ Symbol.for(\"react.suspense\");\n var REACT_SUSPENSE_LIST_TYPE = /* @__PURE__ */ Symbol.for(\"react.suspense_list\");\n var REACT_MEMO_TYPE2 = /* @__PURE__ */ Symbol.for(\"react.memo\");\n var REACT_LAZY_TYPE = /* @__PURE__ */ Symbol.for(\"react.lazy\");\n var REACT_SCOPE_TYPE = /* @__PURE__ */ Symbol.for(\"react.scope\");\n var REACT_ACTIVITY_TYPE = /* @__PURE__ */ Symbol.for(\"react.activity\");\n var REACT_LEGACY_HIDDEN_TYPE = /* @__PURE__ */ Symbol.for(\"react.legacy_hidden\");\n var REACT_MEMO_CACHE_SENTINEL = /* @__PURE__ */ Symbol.for(\"react.memo_cache_sentinel\");\n var REACT_VIEW_TRANSITION_TYPE = /* @__PURE__ */ Symbol.for(\"react.view_transition\");\n var MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\n function getIteratorFn(maybeIterable) {\n if (null === maybeIterable || \"object\" !== typeof maybeIterable) return null;\n maybeIterable = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[\"@@iterator\"];\n return \"function\" === typeof maybeIterable ? maybeIterable : null;\n }\n var isArrayImpl = Array.isArray;\n function murmurhash3_32_gc(key, seed2) {\n var remainder = key.length & 3;\n var bytes = key.length - remainder;\n var h1 = seed2;\n for (seed2 = 0; seed2 < bytes; ) {\n var k1 = key.charCodeAt(seed2) & 255 | (key.charCodeAt(++seed2) & 255) << 8 | (key.charCodeAt(++seed2) & 255) << 16 | (key.charCodeAt(++seed2) & 255) << 24;\n ++seed2;\n k1 = 3432918353 * (k1 & 65535) + ((3432918353 * (k1 >>> 16) & 65535) << 16) & 4294967295;\n k1 = k1 << 15 | k1 >>> 17;\n k1 = 461845907 * (k1 & 65535) + ((461845907 * (k1 >>> 16) & 65535) << 16) & 4294967295;\n h1 ^= k1;\n h1 = h1 << 13 | h1 >>> 19;\n h1 = 5 * (h1 & 65535) + ((5 * (h1 >>> 16) & 65535) << 16) & 4294967295;\n h1 = (h1 & 65535) + 27492 + (((h1 >>> 16) + 58964 & 65535) << 16);\n }\n k1 = 0;\n switch (remainder) {\n case 3:\n k1 ^= (key.charCodeAt(seed2 + 2) & 255) << 16;\n case 2:\n k1 ^= (key.charCodeAt(seed2 + 1) & 255) << 8;\n case 1:\n k1 ^= key.charCodeAt(seed2) & 255, k1 = 3432918353 * (k1 & 65535) + ((3432918353 * (k1 >>> 16) & 65535) << 16) & 4294967295, k1 = k1 << 15 | k1 >>> 17, h1 ^= 461845907 * (k1 & 65535) + ((461845907 * (k1 >>> 16) & 65535) << 16) & 4294967295;\n }\n h1 ^= key.length;\n h1 ^= h1 >>> 16;\n h1 = 2246822507 * (h1 & 65535) + ((2246822507 * (h1 >>> 16) & 65535) << 16) & 4294967295;\n h1 ^= h1 >>> 13;\n h1 = 3266489909 * (h1 & 65535) + ((3266489909 * (h1 >>> 16) & 65535) << 16) & 4294967295;\n return (h1 ^ h1 >>> 16) >>> 0;\n }\n var assign2 = Object.assign;\n var hasOwnProperty = Object.prototype.hasOwnProperty;\n var VALID_ATTRIBUTE_NAME_REGEX = RegExp(\n \"^[:A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD][:A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]*$\"\n );\n var illegalAttributeNameCache = {};\n var validatedAttributeNameCache = {};\n function isAttributeNameSafe(attributeName) {\n if (hasOwnProperty.call(validatedAttributeNameCache, attributeName))\n return true;\n if (hasOwnProperty.call(illegalAttributeNameCache, attributeName)) return false;\n if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName))\n return validatedAttributeNameCache[attributeName] = true;\n illegalAttributeNameCache[attributeName] = true;\n return false;\n }\n var unitlessNumbers = new Set(\n \"animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp\".split(\n \" \"\n )\n );\n var aliases = /* @__PURE__ */ new Map([\n [\"acceptCharset\", \"accept-charset\"],\n [\"htmlFor\", \"for\"],\n [\"httpEquiv\", \"http-equiv\"],\n [\"crossOrigin\", \"crossorigin\"],\n [\"accentHeight\", \"accent-height\"],\n [\"alignmentBaseline\", \"alignment-baseline\"],\n [\"arabicForm\", \"arabic-form\"],\n [\"baselineShift\", \"baseline-shift\"],\n [\"capHeight\", \"cap-height\"],\n [\"clipPath\", \"clip-path\"],\n [\"clipRule\", \"clip-rule\"],\n [\"colorInterpolation\", \"color-interpolation\"],\n [\"colorInterpolationFilters\", \"color-interpolation-filters\"],\n [\"colorProfile\", \"color-profile\"],\n [\"colorRendering\", \"color-rendering\"],\n [\"dominantBaseline\", \"dominant-baseline\"],\n [\"enableBackground\", \"enable-background\"],\n [\"fillOpacity\", \"fill-opacity\"],\n [\"fillRule\", \"fill-rule\"],\n [\"floodColor\", \"flood-color\"],\n [\"floodOpacity\", \"flood-opacity\"],\n [\"fontFamily\", \"font-family\"],\n [\"fontSize\", \"font-size\"],\n [\"fontSizeAdjust\", \"font-size-adjust\"],\n [\"fontStretch\", \"font-stretch\"],\n [\"fontStyle\", \"font-style\"],\n [\"fontVariant\", \"font-variant\"],\n [\"fontWeight\", \"font-weight\"],\n [\"glyphName\", \"glyph-name\"],\n [\"glyphOrientationHorizontal\", \"glyph-orientation-horizontal\"],\n [\"glyphOrientationVertical\", \"glyph-orientation-vertical\"],\n [\"horizAdvX\", \"horiz-adv-x\"],\n [\"horizOriginX\", \"horiz-origin-x\"],\n [\"imageRendering\", \"image-rendering\"],\n [\"letterSpacing\", \"letter-spacing\"],\n [\"lightingColor\", \"lighting-color\"],\n [\"markerEnd\", \"marker-end\"],\n [\"markerMid\", \"marker-mid\"],\n [\"markerStart\", \"marker-start\"],\n [\"overlinePosition\", \"overline-position\"],\n [\"overlineThickness\", \"overline-thickness\"],\n [\"paintOrder\", \"paint-order\"],\n [\"panose-1\", \"panose-1\"],\n [\"pointerEvents\", \"pointer-events\"],\n [\"renderingIntent\", \"rendering-intent\"],\n [\"shapeRendering\", \"shape-rendering\"],\n [\"stopColor\", \"stop-color\"],\n [\"stopOpacity\", \"stop-opacity\"],\n [\"strikethroughPosition\", \"strikethrough-position\"],\n [\"strikethroughThickness\", \"strikethrough-thickness\"],\n [\"strokeDasharray\", \"stroke-dasharray\"],\n [\"strokeDashoffset\", \"stroke-dashoffset\"],\n [\"strokeLinecap\", \"stroke-linecap\"],\n [\"strokeLinejoin\", \"stroke-linejoin\"],\n [\"strokeMiterlimit\", \"stroke-miterlimit\"],\n [\"strokeOpacity\", \"stroke-opacity\"],\n [\"strokeWidth\", \"stroke-width\"],\n [\"textAnchor\", \"text-anchor\"],\n [\"textDecoration\", \"text-decoration\"],\n [\"textRendering\", \"text-rendering\"],\n [\"transformOrigin\", \"transform-origin\"],\n [\"underlinePosition\", \"underline-position\"],\n [\"underlineThickness\", \"underline-thickness\"],\n [\"unicodeBidi\", \"unicode-bidi\"],\n [\"unicodeRange\", \"unicode-range\"],\n [\"unitsPerEm\", \"units-per-em\"],\n [\"vAlphabetic\", \"v-alphabetic\"],\n [\"vHanging\", \"v-hanging\"],\n [\"vIdeographic\", \"v-ideographic\"],\n [\"vMathematical\", \"v-mathematical\"],\n [\"vectorEffect\", \"vector-effect\"],\n [\"vertAdvY\", \"vert-adv-y\"],\n [\"vertOriginX\", \"vert-origin-x\"],\n [\"vertOriginY\", \"vert-origin-y\"],\n [\"wordSpacing\", \"word-spacing\"],\n [\"writingMode\", \"writing-mode\"],\n [\"xmlnsXlink\", \"xmlns:xlink\"],\n [\"xHeight\", \"x-height\"]\n ]);\n var matchHtmlRegExp = /[\"'&<>]/;\n function escapeTextForBrowser(text) {\n if (\"boolean\" === typeof text || \"number\" === typeof text || \"bigint\" === typeof text)\n return \"\" + text;\n text = \"\" + text;\n var match2 = matchHtmlRegExp.exec(text);\n if (match2) {\n var html = \"\", index2, lastIndex = 0;\n for (index2 = match2.index; index2 < text.length; index2++) {\n switch (text.charCodeAt(index2)) {\n case 34:\n match2 = \""\";\n break;\n case 38:\n match2 = \"&\";\n break;\n case 39:\n match2 = \"'\";\n break;\n case 60:\n match2 = \"<\";\n break;\n case 62:\n match2 = \">\";\n break;\n default:\n continue;\n }\n lastIndex !== index2 && (html += text.slice(lastIndex, index2));\n lastIndex = index2 + 1;\n html += match2;\n }\n text = lastIndex !== index2 ? html + text.slice(lastIndex, index2) : html;\n }\n return text;\n }\n var uppercasePattern = /([A-Z])/g;\n var msPattern = /^ms-/;\n var isJavaScriptProtocol = /^[\\u0000-\\u001F ]*j[\\r\\n\\t]*a[\\r\\n\\t]*v[\\r\\n\\t]*a[\\r\\n\\t]*s[\\r\\n\\t]*c[\\r\\n\\t]*r[\\r\\n\\t]*i[\\r\\n\\t]*p[\\r\\n\\t]*t[\\r\\n\\t]*:/i;\n function sanitizeURL(url) {\n return isJavaScriptProtocol.test(\"\" + url) ? \"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')\" : url;\n }\n var ReactSharedInternals = React134.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;\n var ReactDOMSharedInternals = ReactDOM5.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;\n var sharedNotPendingObject = {\n pending: false,\n data: null,\n method: null,\n action: null\n };\n var previousDispatcher = ReactDOMSharedInternals.d;\n ReactDOMSharedInternals.d = {\n f: previousDispatcher.f,\n r: previousDispatcher.r,\n D: prefetchDNS,\n C: preconnect,\n L: preload,\n m: preloadModule,\n X: preinitScript,\n S: preinitStyle,\n M: preinitModuleScript\n };\n var PRELOAD_NO_CREDS = [];\n var currentlyFlushingRenderState = null;\n var scriptRegex = /(<\\/|<)(s)(cript)/gi;\n function scriptReplacer(match2, prefix3, s2, suffix3) {\n return \"\" + prefix3 + (\"s\" === s2 ? \"\\\\u0073\" : \"\\\\u0053\") + suffix3;\n }\n function createResumableState(identifierPrefix, externalRuntimeConfig, bootstrapScriptContent, bootstrapScripts, bootstrapModules) {\n return {\n idPrefix: void 0 === identifierPrefix ? \"\" : identifierPrefix,\n nextFormID: 0,\n streamingFormat: 0,\n bootstrapScriptContent,\n bootstrapScripts,\n bootstrapModules,\n instructions: 0,\n hasBody: false,\n hasHtml: false,\n unknownResources: {},\n dnsResources: {},\n connectResources: { default: {}, anonymous: {}, credentials: {} },\n imageResources: {},\n styleResources: {},\n scriptResources: {},\n moduleUnknownResources: {},\n moduleScriptResources: {}\n };\n }\n function createFormatContext(insertionMode, selectedValue, tagScope, viewTransition) {\n return {\n insertionMode,\n selectedValue,\n tagScope,\n viewTransition\n };\n }\n function getChildFormatContext(parentContext, type, props) {\n var subtreeScope = parentContext.tagScope & -25;\n switch (type) {\n case \"noscript\":\n return createFormatContext(2, null, subtreeScope | 1, null);\n case \"select\":\n return createFormatContext(\n 2,\n null != props.value ? props.value : props.defaultValue,\n subtreeScope,\n null\n );\n case \"svg\":\n return createFormatContext(4, null, subtreeScope, null);\n case \"picture\":\n return createFormatContext(2, null, subtreeScope | 2, null);\n case \"math\":\n return createFormatContext(5, null, subtreeScope, null);\n case \"foreignObject\":\n return createFormatContext(2, null, subtreeScope, null);\n case \"table\":\n return createFormatContext(6, null, subtreeScope, null);\n case \"thead\":\n case \"tbody\":\n case \"tfoot\":\n return createFormatContext(7, null, subtreeScope, null);\n case \"colgroup\":\n return createFormatContext(9, null, subtreeScope, null);\n case \"tr\":\n return createFormatContext(8, null, subtreeScope, null);\n case \"head\":\n if (2 > parentContext.insertionMode)\n return createFormatContext(3, null, subtreeScope, null);\n break;\n case \"html\":\n if (0 === parentContext.insertionMode)\n return createFormatContext(1, null, subtreeScope, null);\n }\n return 6 <= parentContext.insertionMode || 2 > parentContext.insertionMode ? createFormatContext(2, null, subtreeScope, null) : parentContext.tagScope !== subtreeScope ? createFormatContext(\n parentContext.insertionMode,\n parentContext.selectedValue,\n subtreeScope,\n null\n ) : parentContext;\n }\n function getSuspenseViewTransition(parentViewTransition) {\n return null === parentViewTransition ? null : {\n update: parentViewTransition.update,\n enter: \"none\",\n exit: \"none\",\n share: parentViewTransition.update,\n name: parentViewTransition.autoName,\n autoName: parentViewTransition.autoName,\n nameIdx: 0\n };\n }\n function getSuspenseFallbackFormatContext(resumableState, parentContext) {\n parentContext.tagScope & 32 && (resumableState.instructions |= 128);\n return createFormatContext(\n parentContext.insertionMode,\n parentContext.selectedValue,\n parentContext.tagScope | 12,\n getSuspenseViewTransition(parentContext.viewTransition)\n );\n }\n function getSuspenseContentFormatContext(resumableState, parentContext) {\n resumableState = getSuspenseViewTransition(parentContext.viewTransition);\n var subtreeScope = parentContext.tagScope | 16;\n null !== resumableState && \"none\" !== resumableState.share && (subtreeScope |= 64);\n return createFormatContext(\n parentContext.insertionMode,\n parentContext.selectedValue,\n subtreeScope,\n resumableState\n );\n }\n var styleNameCache = /* @__PURE__ */ new Map();\n function pushStyleAttribute(target, style) {\n if (\"object\" !== typeof style) throw Error(formatProdErrorMessage3(62));\n var isFirst = true, styleName;\n for (styleName in style)\n if (hasOwnProperty.call(style, styleName)) {\n var styleValue = style[styleName];\n if (null != styleValue && \"boolean\" !== typeof styleValue && \"\" !== styleValue) {\n if (0 === styleName.indexOf(\"--\")) {\n var nameChunk = escapeTextForBrowser(styleName);\n styleValue = escapeTextForBrowser((\"\" + styleValue).trim());\n } else\n nameChunk = styleNameCache.get(styleName), void 0 === nameChunk && (nameChunk = escapeTextForBrowser(\n styleName.replace(uppercasePattern, \"-$1\").toLowerCase().replace(msPattern, \"-ms-\")\n ), styleNameCache.set(styleName, nameChunk)), styleValue = \"number\" === typeof styleValue ? 0 === styleValue || unitlessNumbers.has(styleName) ? \"\" + styleValue : styleValue + \"px\" : escapeTextForBrowser((\"\" + styleValue).trim());\n isFirst ? (isFirst = false, target.push(' style=\"', nameChunk, \":\", styleValue)) : target.push(\";\", nameChunk, \":\", styleValue);\n }\n }\n isFirst || target.push('\"');\n }\n function pushBooleanAttribute(target, name, value) {\n value && \"function\" !== typeof value && \"symbol\" !== typeof value && target.push(\" \", name, '=\"\"');\n }\n function pushStringAttribute(target, name, value) {\n \"function\" !== typeof value && \"symbol\" !== typeof value && \"boolean\" !== typeof value && target.push(\" \", name, '=\"', escapeTextForBrowser(value), '\"');\n }\n var actionJavaScriptURL = escapeTextForBrowser(\n \"javascript:throw new Error('React form unexpectedly submitted.')\"\n );\n function pushAdditionalFormField(value, key) {\n this.push('\");\n }\n function validateAdditionalFormField(value) {\n if (\"string\" !== typeof value) throw Error(formatProdErrorMessage3(480));\n }\n function getCustomFormFields(resumableState, formAction) {\n if (\"function\" === typeof formAction.$$FORM_ACTION) {\n var id = resumableState.nextFormID++;\n resumableState = resumableState.idPrefix + id;\n try {\n var customFields = formAction.$$FORM_ACTION(resumableState);\n if (customFields) {\n var formData = customFields.data;\n null != formData && formData.forEach(validateAdditionalFormField);\n }\n return customFields;\n } catch (x2) {\n if (\"object\" === typeof x2 && null !== x2 && \"function\" === typeof x2.then)\n throw x2;\n }\n }\n return null;\n }\n function pushFormActionAttribute(target, resumableState, renderState, formAction, formEncType, formMethod, formTarget, name) {\n var formData = null;\n if (\"function\" === typeof formAction) {\n var customFields = getCustomFormFields(resumableState, formAction);\n null !== customFields ? (name = customFields.name, formAction = customFields.action || \"\", formEncType = customFields.encType, formMethod = customFields.method, formTarget = customFields.target, formData = customFields.data) : (target.push(\" \", \"formAction\", '=\"', actionJavaScriptURL, '\"'), formTarget = formMethod = formEncType = formAction = name = null, injectFormReplayingRuntime(resumableState, renderState));\n }\n null != name && pushAttribute(target, \"name\", name);\n null != formAction && pushAttribute(target, \"formAction\", formAction);\n null != formEncType && pushAttribute(target, \"formEncType\", formEncType);\n null != formMethod && pushAttribute(target, \"formMethod\", formMethod);\n null != formTarget && pushAttribute(target, \"formTarget\", formTarget);\n return formData;\n }\n function pushAttribute(target, name, value) {\n switch (name) {\n case \"className\":\n pushStringAttribute(target, \"class\", value);\n break;\n case \"tabIndex\":\n pushStringAttribute(target, \"tabindex\", value);\n break;\n case \"dir\":\n case \"role\":\n case \"viewBox\":\n case \"width\":\n case \"height\":\n pushStringAttribute(target, name, value);\n break;\n case \"style\":\n pushStyleAttribute(target, value);\n break;\n case \"src\":\n case \"href\":\n if (\"\" === value) break;\n case \"action\":\n case \"formAction\":\n if (null == value || \"function\" === typeof value || \"symbol\" === typeof value || \"boolean\" === typeof value)\n break;\n value = sanitizeURL(\"\" + value);\n target.push(\" \", name, '=\"', escapeTextForBrowser(value), '\"');\n break;\n case \"defaultValue\":\n case \"defaultChecked\":\n case \"innerHTML\":\n case \"suppressContentEditableWarning\":\n case \"suppressHydrationWarning\":\n case \"ref\":\n break;\n case \"autoFocus\":\n case \"multiple\":\n case \"muted\":\n pushBooleanAttribute(target, name.toLowerCase(), value);\n break;\n case \"xlinkHref\":\n if (\"function\" === typeof value || \"symbol\" === typeof value || \"boolean\" === typeof value)\n break;\n value = sanitizeURL(\"\" + value);\n target.push(\" \", \"xlink:href\", '=\"', escapeTextForBrowser(value), '\"');\n break;\n case \"contentEditable\":\n case \"spellCheck\":\n case \"draggable\":\n case \"value\":\n case \"autoReverse\":\n case \"externalResourcesRequired\":\n case \"focusable\":\n case \"preserveAlpha\":\n \"function\" !== typeof value && \"symbol\" !== typeof value && target.push(\" \", name, '=\"', escapeTextForBrowser(value), '\"');\n break;\n case \"inert\":\n case \"allowFullScreen\":\n case \"async\":\n case \"autoPlay\":\n case \"controls\":\n case \"default\":\n case \"defer\":\n case \"disabled\":\n case \"disablePictureInPicture\":\n case \"disableRemotePlayback\":\n case \"formNoValidate\":\n case \"hidden\":\n case \"loop\":\n case \"noModule\":\n case \"noValidate\":\n case \"open\":\n case \"playsInline\":\n case \"readOnly\":\n case \"required\":\n case \"reversed\":\n case \"scoped\":\n case \"seamless\":\n case \"itemScope\":\n value && \"function\" !== typeof value && \"symbol\" !== typeof value && target.push(\" \", name, '=\"\"');\n break;\n case \"capture\":\n case \"download\":\n true === value ? target.push(\" \", name, '=\"\"') : false !== value && \"function\" !== typeof value && \"symbol\" !== typeof value && target.push(\" \", name, '=\"', escapeTextForBrowser(value), '\"');\n break;\n case \"cols\":\n case \"rows\":\n case \"size\":\n case \"span\":\n \"function\" !== typeof value && \"symbol\" !== typeof value && !isNaN(value) && 1 <= value && target.push(\" \", name, '=\"', escapeTextForBrowser(value), '\"');\n break;\n case \"rowSpan\":\n case \"start\":\n \"function\" === typeof value || \"symbol\" === typeof value || isNaN(value) || target.push(\" \", name, '=\"', escapeTextForBrowser(value), '\"');\n break;\n case \"xlinkActuate\":\n pushStringAttribute(target, \"xlink:actuate\", value);\n break;\n case \"xlinkArcrole\":\n pushStringAttribute(target, \"xlink:arcrole\", value);\n break;\n case \"xlinkRole\":\n pushStringAttribute(target, \"xlink:role\", value);\n break;\n case \"xlinkShow\":\n pushStringAttribute(target, \"xlink:show\", value);\n break;\n case \"xlinkTitle\":\n pushStringAttribute(target, \"xlink:title\", value);\n break;\n case \"xlinkType\":\n pushStringAttribute(target, \"xlink:type\", value);\n break;\n case \"xmlBase\":\n pushStringAttribute(target, \"xml:base\", value);\n break;\n case \"xmlLang\":\n pushStringAttribute(target, \"xml:lang\", value);\n break;\n case \"xmlSpace\":\n pushStringAttribute(target, \"xml:space\", value);\n break;\n default:\n if (!(2 < name.length) || \"o\" !== name[0] && \"O\" !== name[0] || \"n\" !== name[1] && \"N\" !== name[1]) {\n if (name = aliases.get(name) || name, isAttributeNameSafe(name)) {\n switch (typeof value) {\n case \"function\":\n case \"symbol\":\n return;\n case \"boolean\":\n var prefix$8 = name.toLowerCase().slice(0, 5);\n if (\"data-\" !== prefix$8 && \"aria-\" !== prefix$8) return;\n }\n target.push(\" \", name, '=\"', escapeTextForBrowser(value), '\"');\n }\n }\n }\n }\n function pushInnerHTML(target, innerHTML, children) {\n if (null != innerHTML) {\n if (null != children) throw Error(formatProdErrorMessage3(60));\n if (\"object\" !== typeof innerHTML || !(\"__html\" in innerHTML))\n throw Error(formatProdErrorMessage3(61));\n innerHTML = innerHTML.__html;\n null !== innerHTML && void 0 !== innerHTML && target.push(\"\" + innerHTML);\n }\n }\n function flattenOptionChildren(children) {\n var content = \"\";\n React134.Children.forEach(children, function(child) {\n null != child && (content += child);\n });\n return content;\n }\n function injectFormReplayingRuntime(resumableState, renderState) {\n if (0 === (resumableState.instructions & 16)) {\n resumableState.instructions |= 16;\n var preamble = renderState.preamble, bootstrapChunks = renderState.bootstrapChunks;\n (preamble.htmlChunks || preamble.headChunks) && 0 === bootstrapChunks.length ? (bootstrapChunks.push(renderState.startInlineScript), pushCompletedShellIdAttribute(bootstrapChunks, resumableState), bootstrapChunks.push(\n \">\",\n `addEventListener(\"submit\",function(a){if(!a.defaultPrevented){var c=a.target,d=a.submitter,e=c.action,b=d;if(d){var f=d.getAttribute(\"formAction\");null!=f&&(e=f,b=null)}\"javascript:throw new Error('React form unexpectedly submitted.')\"===e&&(a.preventDefault(),b?(a=document.createElement(\"input\"),a.name=b.name,a.value=b.value,b.parentNode.insertBefore(a,b),b=new FormData(c),a.parentNode.removeChild(a)):b=new FormData(c),a=c.ownerDocument||c,(a.$$reactFormReplay=a.$$reactFormReplay||[]).push(c,d,b))}});`,\n \"<\\/script>\"\n )) : bootstrapChunks.unshift(\n renderState.startInlineScript,\n \">\",\n `addEventListener(\"submit\",function(a){if(!a.defaultPrevented){var c=a.target,d=a.submitter,e=c.action,b=d;if(d){var f=d.getAttribute(\"formAction\");null!=f&&(e=f,b=null)}\"javascript:throw new Error('React form unexpectedly submitted.')\"===e&&(a.preventDefault(),b?(a=document.createElement(\"input\"),a.name=b.name,a.value=b.value,b.parentNode.insertBefore(a,b),b=new FormData(c),a.parentNode.removeChild(a)):b=new FormData(c),a=c.ownerDocument||c,(a.$$reactFormReplay=a.$$reactFormReplay||[]).push(c,d,b))}});`,\n \"<\\/script>\"\n );\n }\n }\n function pushLinkImpl(target, props) {\n target.push(startChunkForTag(\"link\"));\n for (var propKey in props)\n if (hasOwnProperty.call(props, propKey)) {\n var propValue = props[propKey];\n if (null != propValue)\n switch (propKey) {\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n throw Error(formatProdErrorMessage3(399, \"link\"));\n default:\n pushAttribute(target, propKey, propValue);\n }\n }\n target.push(\"/>\");\n return null;\n }\n var styleRegex = /(<\\/|<)(s)(tyle)/gi;\n function styleReplacer(match2, prefix3, s2, suffix3) {\n return \"\" + prefix3 + (\"s\" === s2 ? \"\\\\73 \" : \"\\\\53 \") + suffix3;\n }\n function pushSelfClosing(target, props, tag) {\n target.push(startChunkForTag(tag));\n for (var propKey in props)\n if (hasOwnProperty.call(props, propKey)) {\n var propValue = props[propKey];\n if (null != propValue)\n switch (propKey) {\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n throw Error(formatProdErrorMessage3(399, tag));\n default:\n pushAttribute(target, propKey, propValue);\n }\n }\n target.push(\"/>\");\n return null;\n }\n function pushTitleImpl(target, props) {\n target.push(startChunkForTag(\"title\"));\n var children = null, innerHTML = null, propKey;\n for (propKey in props)\n if (hasOwnProperty.call(props, propKey)) {\n var propValue = props[propKey];\n if (null != propValue)\n switch (propKey) {\n case \"children\":\n children = propValue;\n break;\n case \"dangerouslySetInnerHTML\":\n innerHTML = propValue;\n break;\n default:\n pushAttribute(target, propKey, propValue);\n }\n }\n target.push(\">\");\n props = Array.isArray(children) ? 2 > children.length ? children[0] : null : children;\n \"function\" !== typeof props && \"symbol\" !== typeof props && null !== props && void 0 !== props && target.push(escapeTextForBrowser(\"\" + props));\n pushInnerHTML(target, innerHTML, children);\n target.push(endChunkForTag(\"title\"));\n return null;\n }\n function pushScriptImpl(target, props) {\n target.push(startChunkForTag(\"script\"));\n var children = null, innerHTML = null, propKey;\n for (propKey in props)\n if (hasOwnProperty.call(props, propKey)) {\n var propValue = props[propKey];\n if (null != propValue)\n switch (propKey) {\n case \"children\":\n children = propValue;\n break;\n case \"dangerouslySetInnerHTML\":\n innerHTML = propValue;\n break;\n default:\n pushAttribute(target, propKey, propValue);\n }\n }\n target.push(\">\");\n pushInnerHTML(target, innerHTML, children);\n \"string\" === typeof children && target.push((\"\" + children).replace(scriptRegex, scriptReplacer));\n target.push(endChunkForTag(\"script\"));\n return null;\n }\n function pushStartSingletonElement(target, props, tag) {\n target.push(startChunkForTag(tag));\n var innerHTML = tag = null, propKey;\n for (propKey in props)\n if (hasOwnProperty.call(props, propKey)) {\n var propValue = props[propKey];\n if (null != propValue)\n switch (propKey) {\n case \"children\":\n tag = propValue;\n break;\n case \"dangerouslySetInnerHTML\":\n innerHTML = propValue;\n break;\n default:\n pushAttribute(target, propKey, propValue);\n }\n }\n target.push(\">\");\n pushInnerHTML(target, innerHTML, tag);\n return tag;\n }\n function pushStartGenericElement(target, props, tag) {\n target.push(startChunkForTag(tag));\n var innerHTML = tag = null, propKey;\n for (propKey in props)\n if (hasOwnProperty.call(props, propKey)) {\n var propValue = props[propKey];\n if (null != propValue)\n switch (propKey) {\n case \"children\":\n tag = propValue;\n break;\n case \"dangerouslySetInnerHTML\":\n innerHTML = propValue;\n break;\n default:\n pushAttribute(target, propKey, propValue);\n }\n }\n target.push(\">\");\n pushInnerHTML(target, innerHTML, tag);\n return \"string\" === typeof tag ? (target.push(escapeTextForBrowser(tag)), null) : tag;\n }\n var VALID_TAG_REGEX = /^[a-zA-Z][a-zA-Z:_\\.\\-\\d]*$/;\n var validatedTagCache = /* @__PURE__ */ new Map();\n function startChunkForTag(tag) {\n var tagStartChunk = validatedTagCache.get(tag);\n if (void 0 === tagStartChunk) {\n if (!VALID_TAG_REGEX.test(tag))\n throw Error(formatProdErrorMessage3(65, tag));\n tagStartChunk = \"<\" + tag;\n validatedTagCache.set(tag, tagStartChunk);\n }\n return tagStartChunk;\n }\n function pushStartInstance(target$jscomp$0, type, props, resumableState, renderState, preambleState, hoistableState, formatContext, textEmbedded) {\n switch (type) {\n case \"div\":\n case \"span\":\n case \"svg\":\n case \"path\":\n break;\n case \"a\":\n target$jscomp$0.push(startChunkForTag(\"a\"));\n var children = null, innerHTML = null, propKey;\n for (propKey in props)\n if (hasOwnProperty.call(props, propKey)) {\n var propValue = props[propKey];\n if (null != propValue)\n switch (propKey) {\n case \"children\":\n children = propValue;\n break;\n case \"dangerouslySetInnerHTML\":\n innerHTML = propValue;\n break;\n case \"href\":\n \"\" === propValue ? pushStringAttribute(target$jscomp$0, \"href\", \"\") : pushAttribute(target$jscomp$0, propKey, propValue);\n break;\n default:\n pushAttribute(target$jscomp$0, propKey, propValue);\n }\n }\n target$jscomp$0.push(\">\");\n pushInnerHTML(target$jscomp$0, innerHTML, children);\n if (\"string\" === typeof children) {\n target$jscomp$0.push(escapeTextForBrowser(children));\n var JSCompiler_inline_result = null;\n } else JSCompiler_inline_result = children;\n return JSCompiler_inline_result;\n case \"g\":\n case \"p\":\n case \"li\":\n break;\n case \"select\":\n target$jscomp$0.push(startChunkForTag(\"select\"));\n var children$jscomp$0 = null, innerHTML$jscomp$0 = null, propKey$jscomp$0;\n for (propKey$jscomp$0 in props)\n if (hasOwnProperty.call(props, propKey$jscomp$0)) {\n var propValue$jscomp$0 = props[propKey$jscomp$0];\n if (null != propValue$jscomp$0)\n switch (propKey$jscomp$0) {\n case \"children\":\n children$jscomp$0 = propValue$jscomp$0;\n break;\n case \"dangerouslySetInnerHTML\":\n innerHTML$jscomp$0 = propValue$jscomp$0;\n break;\n case \"defaultValue\":\n case \"value\":\n break;\n default:\n pushAttribute(\n target$jscomp$0,\n propKey$jscomp$0,\n propValue$jscomp$0\n );\n }\n }\n target$jscomp$0.push(\">\");\n pushInnerHTML(target$jscomp$0, innerHTML$jscomp$0, children$jscomp$0);\n return children$jscomp$0;\n case \"option\":\n var selectedValue = formatContext.selectedValue;\n target$jscomp$0.push(startChunkForTag(\"option\"));\n var children$jscomp$1 = null, value = null, selected = null, innerHTML$jscomp$1 = null, propKey$jscomp$1;\n for (propKey$jscomp$1 in props)\n if (hasOwnProperty.call(props, propKey$jscomp$1)) {\n var propValue$jscomp$1 = props[propKey$jscomp$1];\n if (null != propValue$jscomp$1)\n switch (propKey$jscomp$1) {\n case \"children\":\n children$jscomp$1 = propValue$jscomp$1;\n break;\n case \"selected\":\n selected = propValue$jscomp$1;\n break;\n case \"dangerouslySetInnerHTML\":\n innerHTML$jscomp$1 = propValue$jscomp$1;\n break;\n case \"value\":\n value = propValue$jscomp$1;\n default:\n pushAttribute(\n target$jscomp$0,\n propKey$jscomp$1,\n propValue$jscomp$1\n );\n }\n }\n if (null != selectedValue) {\n var stringValue = null !== value ? \"\" + value : flattenOptionChildren(children$jscomp$1);\n if (isArrayImpl(selectedValue))\n for (var i = 0; i < selectedValue.length; i++) {\n if (\"\" + selectedValue[i] === stringValue) {\n target$jscomp$0.push(' selected=\"\"');\n break;\n }\n }\n else\n \"\" + selectedValue === stringValue && target$jscomp$0.push(' selected=\"\"');\n } else selected && target$jscomp$0.push(' selected=\"\"');\n target$jscomp$0.push(\">\");\n pushInnerHTML(target$jscomp$0, innerHTML$jscomp$1, children$jscomp$1);\n return children$jscomp$1;\n case \"textarea\":\n target$jscomp$0.push(startChunkForTag(\"textarea\"));\n var value$jscomp$0 = null, defaultValue = null, children$jscomp$2 = null, propKey$jscomp$2;\n for (propKey$jscomp$2 in props)\n if (hasOwnProperty.call(props, propKey$jscomp$2)) {\n var propValue$jscomp$2 = props[propKey$jscomp$2];\n if (null != propValue$jscomp$2)\n switch (propKey$jscomp$2) {\n case \"children\":\n children$jscomp$2 = propValue$jscomp$2;\n break;\n case \"value\":\n value$jscomp$0 = propValue$jscomp$2;\n break;\n case \"defaultValue\":\n defaultValue = propValue$jscomp$2;\n break;\n case \"dangerouslySetInnerHTML\":\n throw Error(formatProdErrorMessage3(91));\n default:\n pushAttribute(\n target$jscomp$0,\n propKey$jscomp$2,\n propValue$jscomp$2\n );\n }\n }\n null === value$jscomp$0 && null !== defaultValue && (value$jscomp$0 = defaultValue);\n target$jscomp$0.push(\">\");\n if (null != children$jscomp$2) {\n if (null != value$jscomp$0) throw Error(formatProdErrorMessage3(92));\n if (isArrayImpl(children$jscomp$2)) {\n if (1 < children$jscomp$2.length)\n throw Error(formatProdErrorMessage3(93));\n value$jscomp$0 = \"\" + children$jscomp$2[0];\n }\n value$jscomp$0 = \"\" + children$jscomp$2;\n }\n \"string\" === typeof value$jscomp$0 && \"\\n\" === value$jscomp$0[0] && target$jscomp$0.push(\"\\n\");\n null !== value$jscomp$0 && target$jscomp$0.push(escapeTextForBrowser(\"\" + value$jscomp$0));\n return null;\n case \"input\":\n target$jscomp$0.push(startChunkForTag(\"input\"));\n var name = null, formAction = null, formEncType = null, formMethod = null, formTarget = null, value$jscomp$1 = null, defaultValue$jscomp$0 = null, checked = null, defaultChecked = null, propKey$jscomp$3;\n for (propKey$jscomp$3 in props)\n if (hasOwnProperty.call(props, propKey$jscomp$3)) {\n var propValue$jscomp$3 = props[propKey$jscomp$3];\n if (null != propValue$jscomp$3)\n switch (propKey$jscomp$3) {\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n throw Error(formatProdErrorMessage3(399, \"input\"));\n case \"name\":\n name = propValue$jscomp$3;\n break;\n case \"formAction\":\n formAction = propValue$jscomp$3;\n break;\n case \"formEncType\":\n formEncType = propValue$jscomp$3;\n break;\n case \"formMethod\":\n formMethod = propValue$jscomp$3;\n break;\n case \"formTarget\":\n formTarget = propValue$jscomp$3;\n break;\n case \"defaultChecked\":\n defaultChecked = propValue$jscomp$3;\n break;\n case \"defaultValue\":\n defaultValue$jscomp$0 = propValue$jscomp$3;\n break;\n case \"checked\":\n checked = propValue$jscomp$3;\n break;\n case \"value\":\n value$jscomp$1 = propValue$jscomp$3;\n break;\n default:\n pushAttribute(\n target$jscomp$0,\n propKey$jscomp$3,\n propValue$jscomp$3\n );\n }\n }\n var formData = pushFormActionAttribute(\n target$jscomp$0,\n resumableState,\n renderState,\n formAction,\n formEncType,\n formMethod,\n formTarget,\n name\n );\n null !== checked ? pushBooleanAttribute(target$jscomp$0, \"checked\", checked) : null !== defaultChecked && pushBooleanAttribute(target$jscomp$0, \"checked\", defaultChecked);\n null !== value$jscomp$1 ? pushAttribute(target$jscomp$0, \"value\", value$jscomp$1) : null !== defaultValue$jscomp$0 && pushAttribute(target$jscomp$0, \"value\", defaultValue$jscomp$0);\n target$jscomp$0.push(\"/>\");\n null != formData && formData.forEach(pushAdditionalFormField, target$jscomp$0);\n return null;\n case \"button\":\n target$jscomp$0.push(startChunkForTag(\"button\"));\n var children$jscomp$3 = null, innerHTML$jscomp$2 = null, name$jscomp$0 = null, formAction$jscomp$0 = null, formEncType$jscomp$0 = null, formMethod$jscomp$0 = null, formTarget$jscomp$0 = null, propKey$jscomp$4;\n for (propKey$jscomp$4 in props)\n if (hasOwnProperty.call(props, propKey$jscomp$4)) {\n var propValue$jscomp$4 = props[propKey$jscomp$4];\n if (null != propValue$jscomp$4)\n switch (propKey$jscomp$4) {\n case \"children\":\n children$jscomp$3 = propValue$jscomp$4;\n break;\n case \"dangerouslySetInnerHTML\":\n innerHTML$jscomp$2 = propValue$jscomp$4;\n break;\n case \"name\":\n name$jscomp$0 = propValue$jscomp$4;\n break;\n case \"formAction\":\n formAction$jscomp$0 = propValue$jscomp$4;\n break;\n case \"formEncType\":\n formEncType$jscomp$0 = propValue$jscomp$4;\n break;\n case \"formMethod\":\n formMethod$jscomp$0 = propValue$jscomp$4;\n break;\n case \"formTarget\":\n formTarget$jscomp$0 = propValue$jscomp$4;\n break;\n default:\n pushAttribute(\n target$jscomp$0,\n propKey$jscomp$4,\n propValue$jscomp$4\n );\n }\n }\n var formData$jscomp$0 = pushFormActionAttribute(\n target$jscomp$0,\n resumableState,\n renderState,\n formAction$jscomp$0,\n formEncType$jscomp$0,\n formMethod$jscomp$0,\n formTarget$jscomp$0,\n name$jscomp$0\n );\n target$jscomp$0.push(\">\");\n null != formData$jscomp$0 && formData$jscomp$0.forEach(pushAdditionalFormField, target$jscomp$0);\n pushInnerHTML(target$jscomp$0, innerHTML$jscomp$2, children$jscomp$3);\n if (\"string\" === typeof children$jscomp$3) {\n target$jscomp$0.push(escapeTextForBrowser(children$jscomp$3));\n var JSCompiler_inline_result$jscomp$0 = null;\n } else JSCompiler_inline_result$jscomp$0 = children$jscomp$3;\n return JSCompiler_inline_result$jscomp$0;\n case \"form\":\n target$jscomp$0.push(startChunkForTag(\"form\"));\n var children$jscomp$4 = null, innerHTML$jscomp$3 = null, formAction$jscomp$1 = null, formEncType$jscomp$1 = null, formMethod$jscomp$1 = null, formTarget$jscomp$1 = null, propKey$jscomp$5;\n for (propKey$jscomp$5 in props)\n if (hasOwnProperty.call(props, propKey$jscomp$5)) {\n var propValue$jscomp$5 = props[propKey$jscomp$5];\n if (null != propValue$jscomp$5)\n switch (propKey$jscomp$5) {\n case \"children\":\n children$jscomp$4 = propValue$jscomp$5;\n break;\n case \"dangerouslySetInnerHTML\":\n innerHTML$jscomp$3 = propValue$jscomp$5;\n break;\n case \"action\":\n formAction$jscomp$1 = propValue$jscomp$5;\n break;\n case \"encType\":\n formEncType$jscomp$1 = propValue$jscomp$5;\n break;\n case \"method\":\n formMethod$jscomp$1 = propValue$jscomp$5;\n break;\n case \"target\":\n formTarget$jscomp$1 = propValue$jscomp$5;\n break;\n default:\n pushAttribute(\n target$jscomp$0,\n propKey$jscomp$5,\n propValue$jscomp$5\n );\n }\n }\n var formData$jscomp$1 = null, formActionName = null;\n if (\"function\" === typeof formAction$jscomp$1) {\n var customFields = getCustomFormFields(\n resumableState,\n formAction$jscomp$1\n );\n null !== customFields ? (formAction$jscomp$1 = customFields.action || \"\", formEncType$jscomp$1 = customFields.encType, formMethod$jscomp$1 = customFields.method, formTarget$jscomp$1 = customFields.target, formData$jscomp$1 = customFields.data, formActionName = customFields.name) : (target$jscomp$0.push(\n \" \",\n \"action\",\n '=\"',\n actionJavaScriptURL,\n '\"'\n ), formTarget$jscomp$1 = formMethod$jscomp$1 = formEncType$jscomp$1 = formAction$jscomp$1 = null, injectFormReplayingRuntime(resumableState, renderState));\n }\n null != formAction$jscomp$1 && pushAttribute(target$jscomp$0, \"action\", formAction$jscomp$1);\n null != formEncType$jscomp$1 && pushAttribute(target$jscomp$0, \"encType\", formEncType$jscomp$1);\n null != formMethod$jscomp$1 && pushAttribute(target$jscomp$0, \"method\", formMethod$jscomp$1);\n null != formTarget$jscomp$1 && pushAttribute(target$jscomp$0, \"target\", formTarget$jscomp$1);\n target$jscomp$0.push(\">\");\n null !== formActionName && (target$jscomp$0.push('\"), null != formData$jscomp$1 && formData$jscomp$1.forEach(pushAdditionalFormField, target$jscomp$0));\n pushInnerHTML(target$jscomp$0, innerHTML$jscomp$3, children$jscomp$4);\n if (\"string\" === typeof children$jscomp$4) {\n target$jscomp$0.push(escapeTextForBrowser(children$jscomp$4));\n var JSCompiler_inline_result$jscomp$1 = null;\n } else JSCompiler_inline_result$jscomp$1 = children$jscomp$4;\n return JSCompiler_inline_result$jscomp$1;\n case \"menuitem\":\n target$jscomp$0.push(startChunkForTag(\"menuitem\"));\n for (var propKey$jscomp$6 in props)\n if (hasOwnProperty.call(props, propKey$jscomp$6)) {\n var propValue$jscomp$6 = props[propKey$jscomp$6];\n if (null != propValue$jscomp$6)\n switch (propKey$jscomp$6) {\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n throw Error(formatProdErrorMessage3(400));\n default:\n pushAttribute(\n target$jscomp$0,\n propKey$jscomp$6,\n propValue$jscomp$6\n );\n }\n }\n target$jscomp$0.push(\">\");\n return null;\n case \"object\":\n target$jscomp$0.push(startChunkForTag(\"object\"));\n var children$jscomp$5 = null, innerHTML$jscomp$4 = null, propKey$jscomp$7;\n for (propKey$jscomp$7 in props)\n if (hasOwnProperty.call(props, propKey$jscomp$7)) {\n var propValue$jscomp$7 = props[propKey$jscomp$7];\n if (null != propValue$jscomp$7)\n switch (propKey$jscomp$7) {\n case \"children\":\n children$jscomp$5 = propValue$jscomp$7;\n break;\n case \"dangerouslySetInnerHTML\":\n innerHTML$jscomp$4 = propValue$jscomp$7;\n break;\n case \"data\":\n var sanitizedValue = sanitizeURL(\"\" + propValue$jscomp$7);\n if (\"\" === sanitizedValue) break;\n target$jscomp$0.push(\n \" \",\n \"data\",\n '=\"',\n escapeTextForBrowser(sanitizedValue),\n '\"'\n );\n break;\n default:\n pushAttribute(\n target$jscomp$0,\n propKey$jscomp$7,\n propValue$jscomp$7\n );\n }\n }\n target$jscomp$0.push(\">\");\n pushInnerHTML(target$jscomp$0, innerHTML$jscomp$4, children$jscomp$5);\n if (\"string\" === typeof children$jscomp$5) {\n target$jscomp$0.push(escapeTextForBrowser(children$jscomp$5));\n var JSCompiler_inline_result$jscomp$2 = null;\n } else JSCompiler_inline_result$jscomp$2 = children$jscomp$5;\n return JSCompiler_inline_result$jscomp$2;\n case \"title\":\n var noscriptTagInScope = formatContext.tagScope & 1, isFallback = formatContext.tagScope & 4;\n if (4 === formatContext.insertionMode || noscriptTagInScope || null != props.itemProp)\n var JSCompiler_inline_result$jscomp$3 = pushTitleImpl(\n target$jscomp$0,\n props\n );\n else\n isFallback ? JSCompiler_inline_result$jscomp$3 = null : (pushTitleImpl(renderState.hoistableChunks, props), JSCompiler_inline_result$jscomp$3 = void 0);\n return JSCompiler_inline_result$jscomp$3;\n case \"link\":\n var noscriptTagInScope$jscomp$0 = formatContext.tagScope & 1, isFallback$jscomp$0 = formatContext.tagScope & 4, rel = props.rel, href = props.href, precedence = props.precedence;\n if (4 === formatContext.insertionMode || noscriptTagInScope$jscomp$0 || null != props.itemProp || \"string\" !== typeof rel || \"string\" !== typeof href || \"\" === href) {\n pushLinkImpl(target$jscomp$0, props);\n var JSCompiler_inline_result$jscomp$4 = null;\n } else if (\"stylesheet\" === props.rel)\n if (\"string\" !== typeof precedence || null != props.disabled || props.onLoad || props.onError)\n JSCompiler_inline_result$jscomp$4 = pushLinkImpl(\n target$jscomp$0,\n props\n );\n else {\n var styleQueue = renderState.styles.get(precedence), resourceState = resumableState.styleResources.hasOwnProperty(href) ? resumableState.styleResources[href] : void 0;\n if (null !== resourceState) {\n resumableState.styleResources[href] = null;\n styleQueue || (styleQueue = {\n precedence: escapeTextForBrowser(precedence),\n rules: [],\n hrefs: [],\n sheets: /* @__PURE__ */ new Map()\n }, renderState.styles.set(precedence, styleQueue));\n var resource = {\n state: 0,\n props: assign2({}, props, {\n \"data-precedence\": props.precedence,\n precedence: null\n })\n };\n if (resourceState) {\n 2 === resourceState.length && adoptPreloadCredentials(resource.props, resourceState);\n var preloadResource = renderState.preloads.stylesheets.get(href);\n preloadResource && 0 < preloadResource.length ? preloadResource.length = 0 : resource.state = 1;\n }\n styleQueue.sheets.set(href, resource);\n hoistableState && hoistableState.stylesheets.add(resource);\n } else if (styleQueue) {\n var resource$9 = styleQueue.sheets.get(href);\n resource$9 && hoistableState && hoistableState.stylesheets.add(resource$9);\n }\n textEmbedded && target$jscomp$0.push(\"\");\n JSCompiler_inline_result$jscomp$4 = null;\n }\n else\n props.onLoad || props.onError ? JSCompiler_inline_result$jscomp$4 = pushLinkImpl(\n target$jscomp$0,\n props\n ) : (textEmbedded && target$jscomp$0.push(\"\"), JSCompiler_inline_result$jscomp$4 = isFallback$jscomp$0 ? null : pushLinkImpl(renderState.hoistableChunks, props));\n return JSCompiler_inline_result$jscomp$4;\n case \"script\":\n var noscriptTagInScope$jscomp$1 = formatContext.tagScope & 1, asyncProp = props.async;\n if (\"string\" !== typeof props.src || !props.src || !asyncProp || \"function\" === typeof asyncProp || \"symbol\" === typeof asyncProp || props.onLoad || props.onError || 4 === formatContext.insertionMode || noscriptTagInScope$jscomp$1 || null != props.itemProp)\n var JSCompiler_inline_result$jscomp$5 = pushScriptImpl(\n target$jscomp$0,\n props\n );\n else {\n var key = props.src;\n if (\"module\" === props.type) {\n var resources = resumableState.moduleScriptResources;\n var preloads = renderState.preloads.moduleScripts;\n } else\n resources = resumableState.scriptResources, preloads = renderState.preloads.scripts;\n var resourceState$jscomp$0 = resources.hasOwnProperty(key) ? resources[key] : void 0;\n if (null !== resourceState$jscomp$0) {\n resources[key] = null;\n var scriptProps = props;\n if (resourceState$jscomp$0) {\n 2 === resourceState$jscomp$0.length && (scriptProps = assign2({}, props), adoptPreloadCredentials(scriptProps, resourceState$jscomp$0));\n var preloadResource$jscomp$0 = preloads.get(key);\n preloadResource$jscomp$0 && (preloadResource$jscomp$0.length = 0);\n }\n var resource$jscomp$0 = [];\n renderState.scripts.add(resource$jscomp$0);\n pushScriptImpl(resource$jscomp$0, scriptProps);\n }\n textEmbedded && target$jscomp$0.push(\"\");\n JSCompiler_inline_result$jscomp$5 = null;\n }\n return JSCompiler_inline_result$jscomp$5;\n case \"style\":\n var noscriptTagInScope$jscomp$2 = formatContext.tagScope & 1, precedence$jscomp$0 = props.precedence, href$jscomp$0 = props.href, nonce = props.nonce;\n if (4 === formatContext.insertionMode || noscriptTagInScope$jscomp$2 || null != props.itemProp || \"string\" !== typeof precedence$jscomp$0 || \"string\" !== typeof href$jscomp$0 || \"\" === href$jscomp$0) {\n target$jscomp$0.push(startChunkForTag(\"style\"));\n var children$jscomp$6 = null, innerHTML$jscomp$5 = null, propKey$jscomp$8;\n for (propKey$jscomp$8 in props)\n if (hasOwnProperty.call(props, propKey$jscomp$8)) {\n var propValue$jscomp$8 = props[propKey$jscomp$8];\n if (null != propValue$jscomp$8)\n switch (propKey$jscomp$8) {\n case \"children\":\n children$jscomp$6 = propValue$jscomp$8;\n break;\n case \"dangerouslySetInnerHTML\":\n innerHTML$jscomp$5 = propValue$jscomp$8;\n break;\n default:\n pushAttribute(\n target$jscomp$0,\n propKey$jscomp$8,\n propValue$jscomp$8\n );\n }\n }\n target$jscomp$0.push(\">\");\n var child = Array.isArray(children$jscomp$6) ? 2 > children$jscomp$6.length ? children$jscomp$6[0] : null : children$jscomp$6;\n \"function\" !== typeof child && \"symbol\" !== typeof child && null !== child && void 0 !== child && target$jscomp$0.push((\"\" + child).replace(styleRegex, styleReplacer));\n pushInnerHTML(target$jscomp$0, innerHTML$jscomp$5, children$jscomp$6);\n target$jscomp$0.push(endChunkForTag(\"style\"));\n var JSCompiler_inline_result$jscomp$6 = null;\n } else {\n var styleQueue$jscomp$0 = renderState.styles.get(precedence$jscomp$0);\n if (null !== (resumableState.styleResources.hasOwnProperty(href$jscomp$0) ? resumableState.styleResources[href$jscomp$0] : void 0)) {\n resumableState.styleResources[href$jscomp$0] = null;\n styleQueue$jscomp$0 || (styleQueue$jscomp$0 = {\n precedence: escapeTextForBrowser(precedence$jscomp$0),\n rules: [],\n hrefs: [],\n sheets: /* @__PURE__ */ new Map()\n }, renderState.styles.set(precedence$jscomp$0, styleQueue$jscomp$0));\n var nonceStyle = renderState.nonce.style;\n if (!nonceStyle || nonceStyle === nonce) {\n styleQueue$jscomp$0.hrefs.push(escapeTextForBrowser(href$jscomp$0));\n var target = styleQueue$jscomp$0.rules, children$jscomp$7 = null, innerHTML$jscomp$6 = null, propKey$jscomp$9;\n for (propKey$jscomp$9 in props)\n if (hasOwnProperty.call(props, propKey$jscomp$9)) {\n var propValue$jscomp$9 = props[propKey$jscomp$9];\n if (null != propValue$jscomp$9)\n switch (propKey$jscomp$9) {\n case \"children\":\n children$jscomp$7 = propValue$jscomp$9;\n break;\n case \"dangerouslySetInnerHTML\":\n innerHTML$jscomp$6 = propValue$jscomp$9;\n }\n }\n var child$jscomp$0 = Array.isArray(children$jscomp$7) ? 2 > children$jscomp$7.length ? children$jscomp$7[0] : null : children$jscomp$7;\n \"function\" !== typeof child$jscomp$0 && \"symbol\" !== typeof child$jscomp$0 && null !== child$jscomp$0 && void 0 !== child$jscomp$0 && target.push(\n (\"\" + child$jscomp$0).replace(styleRegex, styleReplacer)\n );\n pushInnerHTML(target, innerHTML$jscomp$6, children$jscomp$7);\n }\n }\n styleQueue$jscomp$0 && hoistableState && hoistableState.styles.add(styleQueue$jscomp$0);\n textEmbedded && target$jscomp$0.push(\"\");\n JSCompiler_inline_result$jscomp$6 = void 0;\n }\n return JSCompiler_inline_result$jscomp$6;\n case \"meta\":\n var noscriptTagInScope$jscomp$3 = formatContext.tagScope & 1, isFallback$jscomp$1 = formatContext.tagScope & 4;\n if (4 === formatContext.insertionMode || noscriptTagInScope$jscomp$3 || null != props.itemProp)\n var JSCompiler_inline_result$jscomp$7 = pushSelfClosing(\n target$jscomp$0,\n props,\n \"meta\"\n );\n else\n textEmbedded && target$jscomp$0.push(\"\"), JSCompiler_inline_result$jscomp$7 = isFallback$jscomp$1 ? null : \"string\" === typeof props.charSet ? pushSelfClosing(renderState.charsetChunks, props, \"meta\") : \"viewport\" === props.name ? pushSelfClosing(renderState.viewportChunks, props, \"meta\") : pushSelfClosing(renderState.hoistableChunks, props, \"meta\");\n return JSCompiler_inline_result$jscomp$7;\n case \"listing\":\n case \"pre\":\n target$jscomp$0.push(startChunkForTag(type));\n var children$jscomp$8 = null, innerHTML$jscomp$7 = null, propKey$jscomp$10;\n for (propKey$jscomp$10 in props)\n if (hasOwnProperty.call(props, propKey$jscomp$10)) {\n var propValue$jscomp$10 = props[propKey$jscomp$10];\n if (null != propValue$jscomp$10)\n switch (propKey$jscomp$10) {\n case \"children\":\n children$jscomp$8 = propValue$jscomp$10;\n break;\n case \"dangerouslySetInnerHTML\":\n innerHTML$jscomp$7 = propValue$jscomp$10;\n break;\n default:\n pushAttribute(\n target$jscomp$0,\n propKey$jscomp$10,\n propValue$jscomp$10\n );\n }\n }\n target$jscomp$0.push(\">\");\n if (null != innerHTML$jscomp$7) {\n if (null != children$jscomp$8) throw Error(formatProdErrorMessage3(60));\n if (\"object\" !== typeof innerHTML$jscomp$7 || !(\"__html\" in innerHTML$jscomp$7))\n throw Error(formatProdErrorMessage3(61));\n var html = innerHTML$jscomp$7.__html;\n null !== html && void 0 !== html && (\"string\" === typeof html && 0 < html.length && \"\\n\" === html[0] ? target$jscomp$0.push(\"\\n\", html) : target$jscomp$0.push(\"\" + html));\n }\n \"string\" === typeof children$jscomp$8 && \"\\n\" === children$jscomp$8[0] && target$jscomp$0.push(\"\\n\");\n return children$jscomp$8;\n case \"img\":\n var pictureOrNoScriptTagInScope = formatContext.tagScope & 3, src = props.src, srcSet = props.srcSet;\n if (!(\"lazy\" === props.loading || !src && !srcSet || \"string\" !== typeof src && null != src || \"string\" !== typeof srcSet && null != srcSet || \"low\" === props.fetchPriority || pictureOrNoScriptTagInScope) && (\"string\" !== typeof src || \":\" !== src[4] || \"d\" !== src[0] && \"D\" !== src[0] || \"a\" !== src[1] && \"A\" !== src[1] || \"t\" !== src[2] && \"T\" !== src[2] || \"a\" !== src[3] && \"A\" !== src[3]) && (\"string\" !== typeof srcSet || \":\" !== srcSet[4] || \"d\" !== srcSet[0] && \"D\" !== srcSet[0] || \"a\" !== srcSet[1] && \"A\" !== srcSet[1] || \"t\" !== srcSet[2] && \"T\" !== srcSet[2] || \"a\" !== srcSet[3] && \"A\" !== srcSet[3])) {\n null !== hoistableState && formatContext.tagScope & 64 && (hoistableState.suspenseyImages = true);\n var sizes = \"string\" === typeof props.sizes ? props.sizes : void 0, key$jscomp$0 = srcSet ? srcSet + \"\\n\" + (sizes || \"\") : src, promotablePreloads = renderState.preloads.images, resource$jscomp$1 = promotablePreloads.get(key$jscomp$0);\n if (resource$jscomp$1) {\n if (\"high\" === props.fetchPriority || 10 > renderState.highImagePreloads.size)\n promotablePreloads.delete(key$jscomp$0), renderState.highImagePreloads.add(resource$jscomp$1);\n } else if (!resumableState.imageResources.hasOwnProperty(key$jscomp$0)) {\n resumableState.imageResources[key$jscomp$0] = PRELOAD_NO_CREDS;\n var input2 = props.crossOrigin;\n var JSCompiler_inline_result$jscomp$8 = \"string\" === typeof input2 ? \"use-credentials\" === input2 ? input2 : \"\" : void 0;\n var headers = renderState.headers, header;\n headers && 0 < headers.remainingCapacity && \"string\" !== typeof props.srcSet && (\"high\" === props.fetchPriority || 500 > headers.highImagePreloads.length) && (header = getPreloadAsHeader(src, \"image\", {\n imageSrcSet: props.srcSet,\n imageSizes: props.sizes,\n crossOrigin: JSCompiler_inline_result$jscomp$8,\n integrity: props.integrity,\n nonce: props.nonce,\n type: props.type,\n fetchPriority: props.fetchPriority,\n referrerPolicy: props.refererPolicy\n }), 0 <= (headers.remainingCapacity -= header.length + 2)) ? (renderState.resets.image[key$jscomp$0] = PRELOAD_NO_CREDS, headers.highImagePreloads && (headers.highImagePreloads += \", \"), headers.highImagePreloads += header) : (resource$jscomp$1 = [], pushLinkImpl(resource$jscomp$1, {\n rel: \"preload\",\n as: \"image\",\n href: srcSet ? void 0 : src,\n imageSrcSet: srcSet,\n imageSizes: sizes,\n crossOrigin: JSCompiler_inline_result$jscomp$8,\n integrity: props.integrity,\n type: props.type,\n fetchPriority: props.fetchPriority,\n referrerPolicy: props.referrerPolicy\n }), \"high\" === props.fetchPriority || 10 > renderState.highImagePreloads.size ? renderState.highImagePreloads.add(resource$jscomp$1) : (renderState.bulkPreloads.add(resource$jscomp$1), promotablePreloads.set(key$jscomp$0, resource$jscomp$1)));\n }\n }\n return pushSelfClosing(target$jscomp$0, props, \"img\");\n case \"base\":\n case \"area\":\n case \"br\":\n case \"col\":\n case \"embed\":\n case \"hr\":\n case \"keygen\":\n case \"param\":\n case \"source\":\n case \"track\":\n case \"wbr\":\n return pushSelfClosing(target$jscomp$0, props, type);\n case \"annotation-xml\":\n case \"color-profile\":\n case \"font-face\":\n case \"font-face-src\":\n case \"font-face-uri\":\n case \"font-face-format\":\n case \"font-face-name\":\n case \"missing-glyph\":\n break;\n case \"head\":\n if (2 > formatContext.insertionMode) {\n var preamble = preambleState || renderState.preamble;\n if (preamble.headChunks)\n throw Error(formatProdErrorMessage3(545, \"``\"));\n null !== preambleState && target$jscomp$0.push(\"\");\n preamble.headChunks = [];\n var JSCompiler_inline_result$jscomp$9 = pushStartSingletonElement(\n preamble.headChunks,\n props,\n \"head\"\n );\n } else\n JSCompiler_inline_result$jscomp$9 = pushStartGenericElement(\n target$jscomp$0,\n props,\n \"head\"\n );\n return JSCompiler_inline_result$jscomp$9;\n case \"body\":\n if (2 > formatContext.insertionMode) {\n var preamble$jscomp$0 = preambleState || renderState.preamble;\n if (preamble$jscomp$0.bodyChunks)\n throw Error(formatProdErrorMessage3(545, \"``\"));\n null !== preambleState && target$jscomp$0.push(\"\");\n preamble$jscomp$0.bodyChunks = [];\n var JSCompiler_inline_result$jscomp$10 = pushStartSingletonElement(\n preamble$jscomp$0.bodyChunks,\n props,\n \"body\"\n );\n } else\n JSCompiler_inline_result$jscomp$10 = pushStartGenericElement(\n target$jscomp$0,\n props,\n \"body\"\n );\n return JSCompiler_inline_result$jscomp$10;\n case \"html\":\n if (0 === formatContext.insertionMode) {\n var preamble$jscomp$1 = preambleState || renderState.preamble;\n if (preamble$jscomp$1.htmlChunks)\n throw Error(formatProdErrorMessage3(545, \"``\"));\n null !== preambleState && target$jscomp$0.push(\"\");\n preamble$jscomp$1.htmlChunks = [\"\"];\n var JSCompiler_inline_result$jscomp$11 = pushStartSingletonElement(\n preamble$jscomp$1.htmlChunks,\n props,\n \"html\"\n );\n } else\n JSCompiler_inline_result$jscomp$11 = pushStartGenericElement(\n target$jscomp$0,\n props,\n \"html\"\n );\n return JSCompiler_inline_result$jscomp$11;\n default:\n if (-1 !== type.indexOf(\"-\")) {\n target$jscomp$0.push(startChunkForTag(type));\n var children$jscomp$9 = null, innerHTML$jscomp$8 = null, propKey$jscomp$11;\n for (propKey$jscomp$11 in props)\n if (hasOwnProperty.call(props, propKey$jscomp$11)) {\n var propValue$jscomp$11 = props[propKey$jscomp$11];\n if (null != propValue$jscomp$11) {\n var attributeName = propKey$jscomp$11;\n switch (propKey$jscomp$11) {\n case \"children\":\n children$jscomp$9 = propValue$jscomp$11;\n break;\n case \"dangerouslySetInnerHTML\":\n innerHTML$jscomp$8 = propValue$jscomp$11;\n break;\n case \"style\":\n pushStyleAttribute(target$jscomp$0, propValue$jscomp$11);\n break;\n case \"suppressContentEditableWarning\":\n case \"suppressHydrationWarning\":\n case \"ref\":\n break;\n case \"className\":\n attributeName = \"class\";\n default:\n if (isAttributeNameSafe(propKey$jscomp$11) && \"function\" !== typeof propValue$jscomp$11 && \"symbol\" !== typeof propValue$jscomp$11 && false !== propValue$jscomp$11) {\n if (true === propValue$jscomp$11) propValue$jscomp$11 = \"\";\n else if (\"object\" === typeof propValue$jscomp$11) continue;\n target$jscomp$0.push(\n \" \",\n attributeName,\n '=\"',\n escapeTextForBrowser(propValue$jscomp$11),\n '\"'\n );\n }\n }\n }\n }\n target$jscomp$0.push(\">\");\n pushInnerHTML(target$jscomp$0, innerHTML$jscomp$8, children$jscomp$9);\n return children$jscomp$9;\n }\n }\n return pushStartGenericElement(target$jscomp$0, props, type);\n }\n var endTagCache = /* @__PURE__ */ new Map();\n function endChunkForTag(tag) {\n var chunk = endTagCache.get(tag);\n void 0 === chunk && (chunk = \"\", endTagCache.set(tag, chunk));\n return chunk;\n }\n function hoistPreambleState(renderState, preambleState) {\n renderState = renderState.preamble;\n null === renderState.htmlChunks && preambleState.htmlChunks && (renderState.htmlChunks = preambleState.htmlChunks);\n null === renderState.headChunks && preambleState.headChunks && (renderState.headChunks = preambleState.headChunks);\n null === renderState.bodyChunks && preambleState.bodyChunks && (renderState.bodyChunks = preambleState.bodyChunks);\n }\n function writeBootstrap(destination, renderState) {\n renderState = renderState.bootstrapChunks;\n for (var i = 0; i < renderState.length - 1; i++)\n destination.push(renderState[i]);\n return i < renderState.length ? (i = renderState[i], renderState.length = 0, destination.push(i)) : true;\n }\n function writeStartPendingSuspenseBoundary(destination, renderState, id) {\n destination.push('');\n }\n function writeStartSegment(destination, renderState, formatContext, id) {\n switch (formatContext.insertionMode) {\n case 0:\n case 1:\n case 3:\n case 2:\n return destination.push('