@aopslab/aops-server 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +202 -0
- package/NOTICE +6 -0
- package/README.md +21 -0
- package/aops-server-runtime.json +11 -0
- package/build/client/_app/immutable/chunks/2_TffmqH.js +1 -0
- package/build/client/_app/immutable/chunks/3DOfIKW0.js +1 -0
- package/build/client/_app/immutable/chunks/B2EkC-sy.js +1 -0
- package/build/client/_app/immutable/chunks/CMkIcmi1.js +2 -0
- package/build/client/_app/immutable/chunks/rqnVXeyB.js +1 -0
- package/build/client/_app/immutable/chunks/sZYZbj9W.js +1 -0
- package/build/client/_app/immutable/chunks/wbPk3Yxo.js +81 -0
- package/build/client/_app/immutable/entry/app.C7STLTX8.js +2 -0
- package/build/client/_app/immutable/entry/start.BC94hOaC.js +1 -0
- package/build/client/_app/immutable/nodes/0.BYBfjxZ5.js +1 -0
- package/build/client/_app/immutable/nodes/1.BNXFXajG.js +1 -0
- package/build/client/_app/version.json +1 -0
- package/build/env.js +70 -0
- package/build/env.js.map +1 -0
- package/build/handler.js +16 -0
- package/build/handler.js.map +1 -0
- package/build/index.js +139 -0
- package/build/index.js.map +1 -0
- package/build/server/chunks/0-RfB6m2nq.js +7 -0
- package/build/server/chunks/0-RfB6m2nq.js.map +1 -0
- package/build/server/chunks/1-_gg8Q0UT.js +9 -0
- package/build/server/chunks/1-_gg8Q0UT.js.map +1 -0
- package/build/server/chunks/_server.ts-6276EQIF.js +44 -0
- package/build/server/chunks/_server.ts-6276EQIF.js.map +1 -0
- package/build/server/chunks/_server.ts-B59WFQzX.js +174 -0
- package/build/server/chunks/_server.ts-B59WFQzX.js.map +1 -0
- package/build/server/chunks/_server.ts-BauJsLZI.js +40 -0
- package/build/server/chunks/_server.ts-BauJsLZI.js.map +1 -0
- package/build/server/chunks/_server.ts-BnGzJw2-.js +81 -0
- package/build/server/chunks/_server.ts-BnGzJw2-.js.map +1 -0
- package/build/server/chunks/_server.ts-CP7qM24V.js +34 -0
- package/build/server/chunks/_server.ts-CP7qM24V.js.map +1 -0
- package/build/server/chunks/_server.ts-Cbq_u99d.js +9 -0
- package/build/server/chunks/_server.ts-Cbq_u99d.js.map +1 -0
- package/build/server/chunks/_server.ts-Ch8fPT-o.js +92 -0
- package/build/server/chunks/_server.ts-Ch8fPT-o.js.map +1 -0
- package/build/server/chunks/_server.ts-Cv-yaXZI.js +7 -0
- package/build/server/chunks/_server.ts-Cv-yaXZI.js.map +1 -0
- package/build/server/chunks/_server.ts-D6lBwOON.js +34 -0
- package/build/server/chunks/_server.ts-D6lBwOON.js.map +1 -0
- package/build/server/chunks/_server.ts-D84K3pp9.js +11 -0
- package/build/server/chunks/_server.ts-D84K3pp9.js.map +1 -0
- package/build/server/chunks/_server.ts-DNzU1ToA.js +277 -0
- package/build/server/chunks/_server.ts-DNzU1ToA.js.map +1 -0
- package/build/server/chunks/_server.ts-DQQnw77t.js +17 -0
- package/build/server/chunks/_server.ts-DQQnw77t.js.map +1 -0
- package/build/server/chunks/_server.ts-DSxr5l15.js +18 -0
- package/build/server/chunks/_server.ts-DSxr5l15.js.map +1 -0
- package/build/server/chunks/_server.ts-DZYokvuR.js +80 -0
- package/build/server/chunks/_server.ts-DZYokvuR.js.map +1 -0
- package/build/server/chunks/_server.ts-Dcqwpz2t.js +144 -0
- package/build/server/chunks/_server.ts-Dcqwpz2t.js.map +1 -0
- package/build/server/chunks/_server.ts-Di9VJnF4.js +81 -0
- package/build/server/chunks/_server.ts-Di9VJnF4.js.map +1 -0
- package/build/server/chunks/_server.ts-FBEHFT8b.js +33 -0
- package/build/server/chunks/_server.ts-FBEHFT8b.js.map +1 -0
- package/build/server/chunks/_server.ts-gZytCuiJ.js +10 -0
- package/build/server/chunks/_server.ts-gZytCuiJ.js.map +1 -0
- package/build/server/chunks/_server.ts-tNULLyEO.js +261 -0
- package/build/server/chunks/_server.ts-tNULLyEO.js.map +1 -0
- package/build/server/chunks/agent-gateway-runtime-DTZ4SxaC.js +2598 -0
- package/build/server/chunks/agent-gateway-runtime-DTZ4SxaC.js.map +1 -0
- package/build/server/chunks/aops-runtime-config-wpVmg7T-.js +179 -0
- package/build/server/chunks/aops-runtime-config-wpVmg7T-.js.map +1 -0
- package/build/server/chunks/discovery-D9JnSgfu.js +894 -0
- package/build/server/chunks/discovery-D9JnSgfu.js.map +1 -0
- package/build/server/chunks/error.svelte-DgUOqi-L.js +45 -0
- package/build/server/chunks/error.svelte-DgUOqi-L.js.map +1 -0
- package/build/server/chunks/handler-BN3-p5rP.js +1733 -0
- package/build/server/chunks/handler-BN3-p5rP.js.map +1 -0
- package/build/server/chunks/hooks.server-C4wxiH5m.js +52 -0
- package/build/server/chunks/hooks.server-C4wxiH5m.js.map +1 -0
- package/build/server/chunks/index.js-nbqdVuWC.js +10698 -0
- package/build/server/chunks/index.js-nbqdVuWC.js.map +1 -0
- package/build/server/chunks/manifest.js-_Re-Wj-y.js +167 -0
- package/build/server/chunks/manifest.js-_Re-Wj-y.js.map +1 -0
- package/build/server/chunks/plugin-error-normalize-Bq14Qbz3.js +297 -0
- package/build/server/chunks/plugin-error-normalize-Bq14Qbz3.js.map +1 -0
- package/build/server/chunks/project-alias-DqE2v58Q.js +29 -0
- package/build/server/chunks/project-alias-DqE2v58Q.js.map +1 -0
- package/build/server/chunks/registry-5amIZito.js +289 -0
- package/build/server/chunks/registry-5amIZito.js.map +1 -0
- package/build/server/chunks/request-base-url-BDdrsaga.js +24 -0
- package/build/server/chunks/request-base-url-BDdrsaga.js.map +1 -0
- package/build/server/chunks/request-context-tNeFQjgb.js +422 -0
- package/build/server/chunks/request-context-tNeFQjgb.js.map +1 -0
- package/build/server/chunks/xf-result-BRDjvftr.js +17 -0
- package/build/server/chunks/xf-result-BRDjvftr.js.map +1 -0
- package/build/shims.js +33 -0
- package/build/shims.js.map +1 -0
- package/cockpit/.vite/manifest.json +198 -0
- package/cockpit/assets/dm-sans-latin-400-normal-BwCSEQnW.woff +0 -0
- package/cockpit/assets/dm-sans-latin-400-normal-CW0RaeGs.woff2 +0 -0
- package/cockpit/assets/dm-sans-latin-500-normal-B9HHJjqV.woff2 +0 -0
- package/cockpit/assets/dm-sans-latin-500-normal-Dr3UlScf.woff +0 -0
- package/cockpit/assets/dm-sans-latin-700-normal-CUSSCpQX.woff +0 -0
- package/cockpit/assets/dm-sans-latin-700-normal-DvUfVpUG.woff2 +0 -0
- package/cockpit/assets/dm-sans-latin-ext-400-normal-BjWJ59Pq.woff +0 -0
- package/cockpit/assets/dm-sans-latin-ext-400-normal-BtiwyxMk.woff2 +0 -0
- package/cockpit/assets/dm-sans-latin-ext-500-normal-BJfUCQsA.woff2 +0 -0
- package/cockpit/assets/dm-sans-latin-ext-500-normal-DR84L5F-.woff +0 -0
- package/cockpit/assets/dm-sans-latin-ext-700-normal-BLI3TTWz.woff +0 -0
- package/cockpit/assets/dm-sans-latin-ext-700-normal-CJIcxD6K.woff2 +0 -0
- package/cockpit/assets/index-DDswO4B1.css +1 -0
- package/cockpit/assets/index-bovtnZ98.js +18 -0
- package/cockpit/assets/jetbrains-mono-cyrillic-400-normal-BEIGL1Tu.woff2 +0 -0
- package/cockpit/assets/jetbrains-mono-cyrillic-400-normal-ugxPyKxw.woff +0 -0
- package/cockpit/assets/jetbrains-mono-greek-400-normal-B9oWc5Lo.woff +0 -0
- package/cockpit/assets/jetbrains-mono-greek-400-normal-C190GLew.woff2 +0 -0
- package/cockpit/assets/jetbrains-mono-latin-400-normal-6-qcROiO.woff +0 -0
- package/cockpit/assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2 +0 -0
- package/cockpit/assets/jetbrains-mono-latin-ext-400-normal-Bc8Ftmh3.woff2 +0 -0
- package/cockpit/assets/jetbrains-mono-latin-ext-400-normal-fXTG6kC5.woff +0 -0
- package/cockpit/assets/jetbrains-mono-vietnamese-400-normal-CqNFfHCs.woff +0 -0
- package/cockpit/assets/outfit-latin-400-normal-BGsTXAXT.woff2 +0 -0
- package/cockpit/assets/outfit-latin-400-normal-DMwTpYkH.woff +0 -0
- package/cockpit/assets/outfit-latin-600-normal-B7SfZ07L.woff2 +0 -0
- package/cockpit/assets/outfit-latin-600-normal-BEfTtDA7.woff +0 -0
- package/cockpit/assets/outfit-latin-ext-400-normal-5tcqmc2S.woff2 +0 -0
- package/cockpit/assets/outfit-latin-ext-400-normal-DHm7mdGe.woff +0 -0
- package/cockpit/assets/outfit-latin-ext-600-normal-B85nYjL1.woff2 +0 -0
- package/cockpit/assets/outfit-latin-ext-600-normal-CWJcPgd7.woff +0 -0
- package/cockpit/assets/unbounded-cyrillic-600-normal-B-s5c2Kn.woff +0 -0
- package/cockpit/assets/unbounded-cyrillic-600-normal-DW6uzIMB.woff2 +0 -0
- package/cockpit/assets/unbounded-latin-600-normal-BPdB_PEv.woff +0 -0
- package/cockpit/assets/unbounded-latin-600-normal-oRSANpZr.woff2 +0 -0
- package/cockpit/assets/unbounded-latin-ext-600-normal-0iZLtTDV.woff2 +0 -0
- package/cockpit/assets/unbounded-latin-ext-600-normal-ClMPf-bu.woff +0 -0
- package/cockpit/assets/unbounded-vietnamese-600-normal-BzfrgZ_C.woff +0 -0
- package/cockpit/assets/unbounded-vietnamese-600-normal-Cx2bTSHN.woff2 +0 -0
- package/cockpit/community.module-inventory.json +2389 -0
- package/cockpit/index.html +14 -0
- package/community-postgres.json +13 -0
- package/migrations/agentspace/0000_thin_carlie_cooper.sql +764 -0
- package/migrations/agentspace/meta/0000_snapshot.json +6885 -0
- package/migrations/agentspace/meta/_journal.json +13 -0
- package/migrations/chatv3/0000_dry_ego.sql +218 -0
- package/migrations/chatv3/0001_nosy_obadiah_stane.sql +35 -0
- package/migrations/chatv3/0002_narrow_darkhawk.sql +4 -0
- package/migrations/chatv3/0003_damp_zarek.sql +2 -0
- package/migrations/chatv3/0004_nervous_martin_li.sql +60 -0
- package/migrations/chatv3/0005_chatv3_server_encrypted_mode.sql +1 -0
- package/migrations/chatv3/meta/0000_snapshot.json +1887 -0
- package/migrations/chatv3/meta/0001_snapshot.json +2175 -0
- package/migrations/chatv3/meta/0002_snapshot.json +2229 -0
- package/migrations/chatv3/meta/0003_snapshot.json +2241 -0
- package/migrations/chatv3/meta/0004_snapshot.json +2746 -0
- package/migrations/chatv3/meta/_journal.json +48 -0
- package/migrations/docman/0000_curvy_valeria_richards.sql +257 -0
- package/migrations/docman/0001_massive_risque.sql +2 -0
- package/migrations/docman/0002_simple_logan.sql +50 -0
- package/migrations/docman/0003_quick_index.sql +45 -0
- package/migrations/docman/0004_known_summary.sql +9 -0
- package/migrations/docman/0005_vector_signal.sql +9 -0
- package/migrations/docman/0006_document_version_current_invariant.sql +15 -0
- package/migrations/docman/meta/_journal.json +55 -0
- package/migrations/projectman/0000_smooth_klaw.sql +257 -0
- package/migrations/projectman/0001_worthless_zodiak.sql +9 -0
- package/migrations/projectman/0002_board_rename.sql +108 -0
- package/migrations/projectman/0003_review_request.sql +62 -0
- package/migrations/projectman/0004_review_request_idempotency.sql +3 -0
- package/migrations/projectman/0005_allow_multi_sprint_per_task.sql +1 -0
- package/migrations/projectman/meta/_journal.json +48 -0
- package/migrations/sys/0000_loose_praxagora.sql +31 -0
- package/migrations/sys/0001_awesome_ronan.sql +2 -0
- package/migrations/sys/0002_steady_maximus.sql +2 -0
- package/migrations/sys/0003_escalating_rate_limiter.sql +2 -0
- package/migrations/sys/0004_rate_limiter_timestamptz.sql +22 -0
- package/migrations/sys/0005_sys_counters.sql +21 -0
- package/migrations/sys/meta/_journal.json +48 -0
- package/npm-shrinkwrap.json +4375 -0
- package/package.json +62 -0
- package/runtime/agentspace-host-adapter.mjs +64 -0
- package/runtime/agentspace-tooling.mjs +389 -0
- package/runtime/docman-host-adapter.mjs +177 -0
- package/runtime/docman-policy.mjs +450 -0
- package/runtime/docman-tooling.mjs +20 -0
- package/runtime/projectman-host-adapter.mjs +597 -0
- package/runtime/scope-context.mjs +99 -0
- package/scripts/community-host.mjs +626 -0
- package/scripts/community-migration-policy-v1.json +296 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-gateway-runtime-DTZ4SxaC.js","sources":["../../../.svelte-kit/output/server/chunks/agent-gateway-runtime.js"],"sourcesContent":["import { dispatchDomainRequest } from \"@aopslab/host-core\";\nimport { buildFederatedToolCatalog, validateManifest, buildAgentGatewayOpenApi } from \"@aopslab/manifest\";\nimport path from \"node:path\";\nimport { execFile } from \"node:child_process\";\nimport { createRequire } from \"node:module\";\nimport { pathToFileURL } from \"node:url\";\nimport { promisify } from \"node:util\";\nimport { createHash } from \"node:crypto\";\nimport { g as getLogger, h as hasProjectAliasValue } from \"./project-alias.js\";\nimport Ajv from \"ajv\";\nimport { z } from \"zod\";\nimport { a as getHostConfig, r as resetHostPluginRegistry, g as getHostPluginRegistry } from \"./registry.js\";\nfunction isRecord$3(value) {\n return Boolean(value) && typeof value === \"object\" && !Array.isArray(value);\n}\nfunction normalizeBaseUrl(value) {\n return value.trim().replace(/\\/+$/g, \"\");\n}\nfunction normalizeApiBasePath(value) {\n const raw = (value ?? \"/api\").trim();\n if (!raw) return \"/api\";\n return raw.startsWith(\"/\") ? raw.replace(/\\/+$/g, \"\") || \"/api\" : `/${raw.replace(/\\/+$/g, \"\")}`;\n}\nfunction normalizeDomain(value) {\n return String(value ?? \"\").trim().toLowerCase();\n}\nfunction normalizeToolId(value) {\n return String(value ?? \"\").trim().toLowerCase();\n}\nfunction normalizeSourceId(value) {\n if (!value) return void 0;\n const normalized = value.trim().toLowerCase();\n return normalized.length > 0 ? normalized : void 0;\n}\nfunction findTagValue(tags, prefix) {\n if (!Array.isArray(tags)) return void 0;\n const found = tags.find((tag) => typeof tag === \"string\" && tag.startsWith(prefix));\n if (!found) return void 0;\n const value = found.slice(prefix.length).trim().toLowerCase();\n return value.length > 0 ? value : void 0;\n}\nfunction toFriendlyResourceName(tool) {\n const tagged = findTagValue(tool.tags, \"resource:\");\n const raw = tagged ?? tool.operationId.split(\".\")[0] ?? \"resource\";\n return raw.replace(/[-_]+/g, \" \").trim();\n}\nfunction resolveOperationKind(tool) {\n return findTagValue(tool.tags, \"kind:\");\n}\nfunction buildToolSummary(tool) {\n const resource = toFriendlyResourceName(tool);\n const kind = resolveOperationKind(tool);\n if (kind === \"list\") return `List ${resource} records with optional filter and options.`;\n if (kind === \"get\") return `Get a ${resource} record by identifier.`;\n if (kind === \"create\") return `Create a ${resource} record from data payload.`;\n if (kind === \"update\") return `Update a ${resource} record.`;\n if (kind === \"delete\") return `Delete a ${resource} record by identifier.`;\n return `Run ${tool.operationId} on ${resource}.`;\n}\nfunction shouldRewriteSummary(summary) {\n const normalized = summary.trim();\n if (!normalized) return true;\n if (normalized.length > 96) return false;\n if (/[():]/.test(normalized)) return false;\n if (/\\b(alias|wrapper|route|compose|markdown|safe delete)\\b/i.test(normalized)) return false;\n return /^(list|get|create|update|remove|delete|add|set|link|unlink|record|attach|end|start|search)\\b/i.test(\n normalized\n );\n}\nfunction toCanonicalInvokeExamplePayload(operationKind, payload) {\n if (isRecord$3(payload) && hasInputEnvelope(payload)) {\n return payload;\n }\n if (operationKind === \"get\" && isRecord$3(payload)) {\n const id = normalizePathParamValue(payload.id);\n if (id) {\n const { id: _ignored, ...rest } = payload;\n return {\n pathParams: { id },\n ...Object.keys(rest).length > 0 ? { query: rest } : {}\n };\n }\n }\n const envelopeKey = operationKind === \"list\" || operationKind === \"get\" ? \"query\" : \"body\";\n return { [envelopeKey]: payload };\n}\nfunction normalizeToolExample(example, operationKind) {\n if (typeof example !== \"string\") return null;\n const raw = example.trim();\n if (!raw) return null;\n let payload;\n try {\n payload = JSON.parse(raw);\n } catch {\n }\n if (payload !== void 0) {\n return JSON.stringify(toCanonicalInvokeExamplePayload(operationKind, payload));\n }\n const inputMatch = raw.match(/--input\\\\s+'([^']+)'/) ?? raw.match(/--input\\\\s+\\\"([^\\\"]+)\\\"/) ?? raw.match(/--input\\\\s+([^\\\\s]+)/);\n if (!inputMatch || typeof inputMatch[1] !== \"string\") return null;\n const candidate = inputMatch[1].trim();\n if (!candidate) return null;\n try {\n payload = JSON.parse(candidate);\n return JSON.stringify(toCanonicalInvokeExamplePayload(operationKind, payload));\n } catch {\n return null;\n }\n}\nfunction normalizeToolExamples(examples, operationKind) {\n if (!Array.isArray(examples)) return void 0;\n const normalized = examples.map((entry) => normalizeToolExample(entry, operationKind)).filter((entry) => Boolean(entry));\n return normalized.length > 0 ? normalized : void 0;\n}\nfunction normalizeToolIdShape(tool) {\n const normalizedToolId = normalizeToolId(tool.toolId);\n const domain = normalizeDomain(tool.domain);\n if (!domain) return normalizedToolId;\n const duplicatedDomainPrefix = `${domain}.${domain}.`;\n if (normalizedToolId.startsWith(duplicatedDomainPrefix)) {\n return `${domain}.${normalizedToolId.slice(duplicatedDomainPrefix.length)}`;\n }\n return normalizedToolId;\n}\nfunction normalizeCatalogTool(tool) {\n const operationKind = resolveOperationKind(tool);\n const fallbackExamplesByToolId = {\n \"jsonexcel.json.to-excel\": ['{\"jsonFile\":\"data.json\",\"outputFile\":\"data.xlsx\"}'],\n \"jsonexcel.excel.to-json\": ['{\"excelFile\":\"data.xlsx\",\"outputFile\":\"data.json\"}']\n };\n const normalizedToolId = normalizeToolIdShape(tool);\n const examples = normalizeToolExamples(tool.examples, operationKind) ?? normalizeToolExamples(fallbackExamplesByToolId[normalizedToolId], operationKind);\n const summaryCandidate = typeof tool.summary === \"string\" ? tool.summary : \"\";\n const summary = shouldRewriteSummary(summaryCandidate) ? buildToolSummary(tool) : summaryCandidate;\n const titleCandidate = typeof tool.title === \"string\" ? tool.title : \"\";\n const title = shouldRewriteSummary(titleCandidate) ? summary : titleCandidate;\n return {\n ...tool,\n toolId: normalizedToolId,\n ...title ? { title } : {},\n ...summary ? { summary } : {},\n ...examples ? { examples } : {}\n };\n}\nfunction normalizePathParams(input) {\n if (!isRecord$3(input)) return {};\n const out = {};\n for (const [keyRaw, value] of Object.entries(input)) {\n const key = keyRaw.trim();\n if (!key) continue;\n if (value === void 0 || value === null) continue;\n out[key] = String(value);\n }\n return out;\n}\nfunction appendQueryParamValue(params, key, value) {\n if (value === void 0 || value === null) return;\n if (Array.isArray(value)) {\n for (const item of value) appendQueryParamValue(params, key, item);\n return;\n }\n if (typeof value === \"object\") {\n params.append(key, JSON.stringify(value));\n return;\n }\n params.append(key, String(value));\n}\nfunction normalizeQueryParams(input) {\n if (!isRecord$3(input)) return new URLSearchParams();\n const params = new URLSearchParams();\n for (const [keyRaw, value] of Object.entries(input)) {\n const key = keyRaw.trim();\n if (!key) continue;\n appendQueryParamValue(params, key, value);\n }\n return params;\n}\nfunction hasInputEnvelope(input) {\n return Object.prototype.hasOwnProperty.call(input, \"pathParams\") || Object.prototype.hasOwnProperty.call(input, \"params\") || Object.prototype.hasOwnProperty.call(input, \"query\") || Object.prototype.hasOwnProperty.call(input, \"body\") || Object.prototype.hasOwnProperty.call(input, \"context\");\n}\nfunction parseRouteInvokeInput(input) {\n if (!isRecord$3(input) || !hasInputEnvelope(input)) {\n return {\n pathParams: {},\n query: new URLSearchParams(),\n body: input,\n context: {}\n };\n }\n return {\n pathParams: normalizePathParams(input.pathParams ?? input.params),\n query: normalizeQueryParams(input.query),\n body: input.body,\n context: isRecord$3(input.context) ? input.context : {}\n };\n}\nfunction extractPathParamKeys(pattern) {\n const normalized = pattern.trim().replace(/^\\/+|\\/+$/g, \"\");\n if (!normalized) return [];\n return normalized.split(\"/\").map((segment) => segment.trim()).filter((segment) => segment.startsWith(\":\")).map((segment) => segment.slice(1).trim()).filter(Boolean);\n}\nfunction normalizePathParamValue(value) {\n if (value === void 0 || value === null) return void 0;\n const normalized = String(value).trim();\n return normalized.length > 0 ? normalized : void 0;\n}\nfunction findManifestForDomain$1(manifests, domain) {\n return manifests.find((manifest) => normalizeDomain(manifest.domain.id) === normalizeDomain(domain)) ?? null;\n}\nfunction normalizeAliasedArgName(value) {\n const normalized = value.trim();\n if (!normalized) return normalized;\n const parts = normalized.split(\".\").map((part) => part.trim()).filter(Boolean);\n return parts[parts.length - 1] ?? normalized;\n}\nfunction extractRouteParamAliases(tool, manifests) {\n const manifest = findManifestForDomain$1(manifests, tool.domain);\n const notes = manifest?.docs?.operations?.[tool.operationId]?.notes;\n if (!Array.isArray(notes) || notes.length === 0) return /* @__PURE__ */ new Map();\n const aliases = /* @__PURE__ */ new Map();\n for (const rawNote of notes) {\n const note = String(rawNote ?? \"\").trim();\n if (!note) continue;\n const match = note.match(/resolves\\s+([a-zA-Z0-9_.]+)\\s+from\\s+:([a-zA-Z0-9_]+)/i);\n if (!match) continue;\n const targetArg = normalizeAliasedArgName(match[1] ?? \"\");\n const pathKey = String(match[2] ?? \"\").trim();\n if (!targetArg || !pathKey) continue;\n aliases.set(targetArg, pathKey);\n }\n return aliases;\n}\nfunction normalizeInvokeInputForRoute(params) {\n const pathParamKeys = extractPathParamKeys(params.routePattern);\n const routeMethod = String(params.routeMethod ?? \"\").trim().toUpperCase();\n const shouldMoveBodyToQuery = routeMethod === \"GET\" || routeMethod === \"HEAD\";\n if (pathParamKeys.length === 0) {\n if (!shouldMoveBodyToQuery || !isRecord$3(params.parsedInput.body)) return params.parsedInput;\n const query2 = new URLSearchParams(params.parsedInput.query);\n for (const [keyRaw, value] of Object.entries(params.parsedInput.body)) {\n const key = keyRaw.trim();\n if (!key) continue;\n appendQueryParamValue(query2, key, value);\n }\n return {\n ...params.parsedInput,\n query: query2,\n body: void 0\n };\n }\n const pathParams = { ...params.parsedInput.pathParams };\n const body = isRecord$3(params.parsedInput.body) ? { ...params.parsedInput.body } : params.parsedInput.body;\n const bodyRecord = isRecord$3(body) ? body : null;\n for (const pathKey of pathParamKeys) {\n if (normalizePathParamValue(pathParams[pathKey])) continue;\n const fallbackValue = bodyRecord ? normalizePathParamValue(bodyRecord[pathKey]) : void 0;\n if (fallbackValue) {\n pathParams[pathKey] = fallbackValue;\n }\n }\n const aliases = extractRouteParamAliases(params.tool, params.manifests);\n if (bodyRecord) {\n for (const [targetArg, pathKey] of aliases.entries()) {\n if (!normalizePathParamValue(pathParams[pathKey])) {\n const targetValue = normalizePathParamValue(bodyRecord[targetArg]);\n if (targetValue) {\n pathParams[pathKey] = targetValue;\n }\n }\n const resolvedPathValue = normalizePathParamValue(pathParams[pathKey]);\n if (!resolvedPathValue) continue;\n if (!normalizePathParamValue(bodyRecord[targetArg])) {\n bodyRecord[targetArg] = resolvedPathValue;\n }\n if (targetArg !== pathKey && Object.prototype.hasOwnProperty.call(bodyRecord, pathKey)) {\n delete bodyRecord[pathKey];\n }\n }\n }\n const normalizedInput = {\n ...params.parsedInput,\n pathParams,\n body\n };\n if (!shouldMoveBodyToQuery || !isRecord$3(body)) {\n return normalizedInput;\n }\n const query = new URLSearchParams(normalizedInput.query);\n for (const [keyRaw, value] of Object.entries(body)) {\n const key = keyRaw.trim();\n if (!key || pathParamKeys.includes(key)) continue;\n appendQueryParamValue(query, key, value);\n }\n return {\n ...normalizedInput,\n query,\n body: void 0\n };\n}\nfunction patternToPathSegments(pattern, pathParams) {\n const normalized = pattern.trim().replace(/^\\/+|\\/+$/g, \"\");\n if (!normalized) return [];\n const parts = [];\n for (const segment of normalized.split(\"/\").map((raw) => raw.trim()).filter(Boolean)) {\n if (segment === \"*\") {\n const splat = pathParams.splat?.trim();\n if (!splat) continue;\n for (const part of splat.split(\"/\").map((raw) => raw.trim()).filter(Boolean)) {\n parts.push(encodeURIComponent(part));\n }\n continue;\n }\n if (segment.startsWith(\":\")) {\n const key = segment.slice(1).trim();\n const value = pathParams[key];\n if (!key || value === void 0 || value.trim().length === 0) {\n throw new Error(`tool_input_missing_path_param:${key || \"<empty>\"}`);\n }\n parts.push(encodeURIComponent(value.trim()));\n continue;\n }\n parts.push(segment);\n }\n return parts;\n}\nfunction normalizeRouteSummaryEntry(raw) {\n if (!isRecord$3(raw)) return null;\n const id = String(raw.id ?? \"\").trim();\n const method = String(raw.method ?? \"\").trim().toUpperCase();\n const pattern = String(raw.pattern ?? \"\").trim();\n const operation = String(raw.operation ?? \"\").trim();\n if (!id || !method || !pattern || !operation) return null;\n const summary = typeof raw.summary === \"string\" ? raw.summary.trim() : void 0;\n return {\n id,\n method,\n pattern,\n operation,\n summary: summary && summary.length > 0 ? summary : void 0\n };\n}\nfunction resolveHeaderBindingValue(binding) {\n let resolved;\n if (typeof binding.value === \"string\") {\n resolved = binding.value;\n } else if (typeof binding.fromEnv === \"string\" && binding.fromEnv.length > 0) {\n resolved = process.env[binding.fromEnv];\n }\n if ((!resolved || resolved.length === 0) && typeof binding.default === \"string\") {\n resolved = binding.default;\n }\n if ((!resolved || resolved.length === 0) && binding.required) {\n throw new Error(`agent_gateway_header_missing:${binding.fromEnv || \"<binding>\"}`);\n }\n if (!resolved || resolved.length === 0) return null;\n return resolved;\n}\nfunction resolveSourceHeaders(source) {\n const out = {};\n for (const [nameRaw, binding] of Object.entries(source.headers ?? {})) {\n const name = nameRaw.trim();\n if (!name) continue;\n const value = resolveHeaderBindingValue(binding);\n if (!value) continue;\n out[name] = value;\n }\n return out;\n}\nasync function parseFetchBody(response) {\n const contentType = response.headers.get(\"content-type\")?.toLowerCase() ?? \"\";\n if (contentType.includes(\"application/json\")) {\n try {\n return await response.json();\n } catch {\n return null;\n }\n }\n const text = await response.text();\n if (!text) return null;\n try {\n return JSON.parse(text);\n } catch {\n return text;\n }\n}\nfunction createTimeoutController(timeoutMs) {\n const controller = new AbortController();\n const timer = setTimeout(() => controller.abort(), timeoutMs);\n return {\n controller,\n cleanup: () => clearTimeout(timer)\n };\n}\nfunction pickResponseHeaders(response) {\n const out = {};\n for (const [key, value] of response.headers.entries()) {\n const normalized = key.trim().toLowerCase();\n if (!normalized || normalized === \"set-cookie\") continue;\n out[normalized] = value;\n }\n return out;\n}\nfunction toFederatedSourceFromRemote(source) {\n return {\n id: source.id,\n kind: source.kind,\n domain: source.domain,\n enabled: source.enabled,\n priority: source.priority,\n baseUrl: source.baseUrl,\n apiBasePath: source.apiBasePath\n };\n}\nfunction findDomainRouteByOperation(routes, operationId) {\n return routes.find((route) => route.operation === operationId) ?? null;\n}\nfunction findRemoteRouteByOperation(routes, operationId) {\n return routes.find((route) => route.operation === operationId) ?? null;\n}\nfunction chooseSourceForInvocation(tool, sourceId) {\n if (tool.sources.length === 0) {\n throw new Error(`tool_source_unavailable:${tool.toolId}`);\n }\n if (sourceId) {\n const explicit = tool.sources.find((source) => source.id === sourceId);\n if (!explicit) {\n throw new Error(`tool_source_not_found:${sourceId}`);\n }\n return explicit;\n }\n if (tool.defaultSourceId) {\n const preferred = tool.sources.find((source) => source.id === tool.defaultSourceId);\n if (preferred) return preferred;\n }\n return tool.sources[0];\n}\nfunction shouldFallbackFromLocalError(error) {\n const message = error instanceof Error ? error.message : String(error ?? \"unknown_error\");\n return message.startsWith(\"domain_not_registered:\") || message.startsWith(\"operation_route_not_found:\");\n}\nfunction findFirstRemoteSource(tool) {\n return tool.sources.find((source) => source.kind !== \"local-route\") ?? null;\n}\nconst runtimeImport = new Function(\"specifier\", \"return import(specifier)\");\nconst nodeRequire = createRequire(import.meta.url);\npromisify(execFile);\nlet manifestImportVersion = 0;\nfunction withImportVersion(specifier) {\n if (!specifier.startsWith(\"file://\")) return specifier;\n const url = new URL(specifier);\n url.searchParams.set(\"v\", String(manifestImportVersion));\n return url.href;\n}\nfunction resolveManifestModuleSpecifier(moduleName, configPath) {\n const trimmed = moduleName.trim();\n if (!trimmed) return trimmed;\n if (trimmed.startsWith(\"file://\")) return trimmed;\n if (trimmed.startsWith(\".\")) {\n const baseDir = configPath ? path.dirname(configPath) : process.cwd();\n return pathToFileURL(path.resolve(baseDir, trimmed)).href;\n }\n if (path.isAbsolute(trimmed)) {\n return pathToFileURL(trimmed).href;\n }\n const resolvePaths = [process.cwd(), path.resolve(process.cwd(), \"apps/aops-server\")];\n try {\n const resolved = nodeRequire.resolve(trimmed, { paths: resolvePaths });\n return pathToFileURL(resolved).href;\n } catch {\n return trimmed;\n }\n}\nfunction toManifestErrorCode(provider, error) {\n const message = error instanceof Error ? error.message : String(error ?? \"unknown_error\");\n return {\n sourceId: `manifest:${provider.id}`,\n error: message\n };\n}\nasync function loadManifestFromProvider(provider, configPath) {\n const specifier = resolveManifestModuleSpecifier(provider.module, configPath);\n const manifestRaw = await loadManifestFromCurrentProcess(specifier, provider);\n const validation = validateManifest(manifestRaw);\n if (!validation.ok) {\n const firstSemantic = validation.issues[0]?.message;\n const firstSchema = validation.zodIssues?.[0]?.message;\n throw new Error(`manifest_validation_failed:${provider.id}:${firstSemantic ?? firstSchema ?? \"invalid_manifest\"}`);\n }\n if (normalizeDomain(validation.manifest.domain.id) !== normalizeDomain(provider.domain)) {\n throw new Error(`manifest_domain_mismatch:${provider.id}:${validation.manifest.domain.id}:${provider.domain}`);\n }\n return validation.manifest;\n}\nasync function loadManifestFromCurrentProcess(specifier, provider) {\n const mod = await runtimeImport(withImportVersion(specifier));\n const exportCandidate = mod[provider.exportName] ?? (provider.exportName === \"default\" ? mod.default : void 0);\n if (exportCandidate === void 0) {\n throw new Error(`manifest_export_not_found:${provider.id}:${provider.exportName}`);\n }\n return typeof exportCandidate === \"function\" ? await Promise.resolve(\n exportCandidate(provider.options)\n ) : exportCandidate;\n}\nasync function fetchRemoteRoutes(source) {\n const baseUrl = normalizeBaseUrl(source.baseUrl);\n const apiBasePath = normalizeApiBasePath(source.apiBasePath);\n const url = `${baseUrl}${apiBasePath}/${source.domain}`;\n const headers = resolveSourceHeaders(source);\n const { controller, cleanup } = createTimeoutController(source.timeoutMs);\n try {\n const response = await fetch(url, {\n method: \"GET\",\n headers,\n signal: controller.signal\n });\n const body = await parseFetchBody(response);\n if (!response.ok) {\n throw new Error(`remote_route_fetch_failed:${response.status}:${url}`);\n }\n if (!isRecord$3(body) || !Array.isArray(body.routes)) {\n throw new Error(`remote_route_payload_invalid:${url}`);\n }\n return body.routes.map((route) => normalizeRouteSummaryEntry(route)).filter((route) => route !== null);\n } finally {\n cleanup();\n }\n}\nasync function buildGatewayCatalogSnapshot(params) {\n const { config } = params;\n const errors = [];\n const manifests = [];\n const domains = /* @__PURE__ */ new Set();\n if (config.catalog.enabled) {\n for (const provider of config.catalog.manifestProviders) {\n if (!provider.enabled) continue;\n try {\n const manifest = await loadManifestFromProvider(provider, params.configPath);\n manifests.push(manifest);\n domains.add(normalizeDomain(manifest.domain.id));\n } catch (error) {\n errors.push(toManifestErrorCode(provider, error));\n }\n }\n }\n for (const source of config.sources) {\n if (!source.enabled) continue;\n domains.add(normalizeDomain(source.domain));\n }\n const sources = config.sources.filter((source) => source.enabled).map((source) => toFederatedSourceFromRemote(source));\n if (config.includeLocal) {\n for (const domain of domains) {\n sources.push({\n id: \"local\",\n kind: \"local-route\",\n domain,\n enabled: true,\n priority: 0\n });\n }\n }\n const catalog = buildFederatedToolCatalog({\n manifests,\n sources\n });\n const normalizedCatalog = {\n ...catalog,\n tools: catalog.tools.map((tool) => normalizeCatalogTool(tool))\n };\n const toolsById = /* @__PURE__ */ new Map();\n for (const tool of normalizedCatalog.tools) {\n toolsById.set(normalizeToolId(tool.toolId), tool);\n }\n return {\n catalog: normalizedCatalog,\n manifests,\n errors,\n toolsById,\n loadedAt: (/* @__PURE__ */ new Date()).toISOString()\n };\n}\nconst INVOKE_REQUEST_DESCRIPTION = \"Send either the raw tool input JSON directly, or use the canonical envelope { sourceId?, input, preview?, apply?, confirm?, idempotencyKey? }. Use preview for preflight, apply for guarded writes, confirm for destructive writes, and idempotencyKey for best-effort guarded-write deduplication.\";\nfunction isRecord$2(value) {\n return Boolean(value) && typeof value === \"object\" && !Array.isArray(value);\n}\nfunction isEnvelopeOnlyInvokeSchema(schema) {\n if (!isRecord$2(schema)) return false;\n if (Array.isArray(schema.oneOf)) return false;\n if (schema.type !== \"object\") return false;\n const properties = isRecord$2(schema.properties) ? schema.properties : null;\n if (!properties || !Object.prototype.hasOwnProperty.call(properties, \"input\")) return false;\n const required = Array.isArray(schema.required) ? schema.required.filter((value) => typeof value === \"string\") : [];\n return required.includes(\"input\");\n}\nfunction normalizeInvokeSchema(schema) {\n if (!isEnvelopeOnlyInvokeSchema(schema)) return schema;\n const properties = isRecord$2(schema.properties) ? schema.properties : {};\n const rawInputSchema = properties.input ?? { type: \"object\", additionalProperties: true };\n const envelopeSchema = {\n ...schema,\n properties: {\n ...properties,\n ...Object.prototype.hasOwnProperty.call(properties, \"preview\") ? {} : { preview: { type: \"boolean\" } },\n ...Object.prototype.hasOwnProperty.call(properties, \"apply\") ? {} : { apply: { type: \"boolean\" } },\n ...Object.prototype.hasOwnProperty.call(properties, \"confirm\") ? {} : { confirm: { type: \"boolean\" } },\n ...Object.prototype.hasOwnProperty.call(properties, \"idempotencyKey\") ? {} : { idempotencyKey: { type: \"string\" } }\n }\n };\n return {\n description: typeof schema.description === \"string\" && schema.description.trim().length > 0 ? schema.description : INVOKE_REQUEST_DESCRIPTION,\n oneOf: [rawInputSchema, envelopeSchema]\n };\n}\nfunction normalizeAgentGatewayOpenApiDocument(document) {\n const paths = isRecord$2(document.paths) ? document.paths : null;\n if (!paths) return document;\n let changed = false;\n const normalizedPaths = {};\n for (const [pathKey, pathValue] of Object.entries(paths)) {\n if (!isRecord$2(pathValue) || !isRecord$2(pathValue.post)) {\n normalizedPaths[pathKey] = pathValue;\n continue;\n }\n const post = pathValue.post;\n const requestBody = isRecord$2(post.requestBody) ? post.requestBody : null;\n const content = requestBody && isRecord$2(requestBody.content) ? requestBody.content : null;\n const jsonContent = content && isRecord$2(content[\"application/json\"]) ? content[\"application/json\"] : null;\n const schema = jsonContent?.schema;\n const nextSchema = normalizeInvokeSchema(schema);\n if (nextSchema === schema) {\n normalizedPaths[pathKey] = pathValue;\n continue;\n }\n changed = true;\n normalizedPaths[pathKey] = {\n ...pathValue,\n post: {\n ...post,\n requestBody: {\n ...requestBody,\n content: {\n ...content,\n \"application/json\": {\n ...jsonContent,\n schema: nextSchema\n }\n }\n }\n }\n };\n }\n if (!changed) return document;\n return {\n ...document,\n paths: normalizedPaths\n };\n}\nconst AGENT_INVOKE_AUDIT_POLICY = {\n enabled: true,\n sink: \"structured-server-log\",\n persistence: \"best-effort\",\n events: [\"preview\", \"blocked\", \"success\", \"failure\", \"replayed\"],\n approvalMode: \"explicit-confirm-flag\"\n};\nconst GUARDED_WRITE_IDEMPOTENCY_MODE = \"best-effort-host-cache\";\nconst IDEMPOTENCY_ENTRY_TTL_MS = 10 * 60 * 1e3;\nconst idempotencyStore = /* @__PURE__ */ new Map();\nlet loggerPromise = null;\nfunction normalizeText$1(value) {\n if (typeof value !== \"string\") return \"\";\n const trimmed = value.trim();\n return trimmed.length > 0 ? trimmed : \"\";\n}\nfunction normalizeRoles(value) {\n if (!Array.isArray(value)) return void 0;\n const roles = value.map((entry) => normalizeText$1(entry)).filter(Boolean);\n return roles.length > 0 ? roles : void 0;\n}\nfunction isRecord$1(value) {\n return Boolean(value) && typeof value === \"object\" && !Array.isArray(value);\n}\nfunction cloneHeaders(headers) {\n if (!headers) return void 0;\n return { ...headers };\n}\nfunction cloneResult(result) {\n return {\n tool: { ...result.tool },\n status: result.status,\n data: result.data,\n headers: cloneHeaders(result.headers)\n };\n}\nfunction attachHeaders(result, headers) {\n return {\n ...cloneResult(result),\n headers: {\n ...result.headers ?? {},\n ...headers\n }\n };\n}\nfunction toCanonicalValue(value) {\n if (Array.isArray(value)) return value.map((entry) => toCanonicalValue(entry));\n if (!isRecord$1(value)) return value;\n const output = {};\n for (const key of Object.keys(value).sort((left, right) => left.localeCompare(right))) {\n const nextValue = toCanonicalValue(value[key]);\n if (nextValue === void 0) continue;\n output[key] = nextValue;\n }\n return output;\n}\nfunction stableStringify(value) {\n return JSON.stringify(toCanonicalValue(value));\n}\nfunction isGuardedWriteTool(tool) {\n const policy = isRecord$1(tool.policy) ? tool.policy : null;\n const safety = policy && isRecord$1(policy.safety) ? policy.safety : null;\n return safety?.applyRequired === true || safety?.destructive === true || safety?.confirmationRequired === true;\n}\nfunction buildApprovalMode(tool) {\n const policy = isRecord$1(tool.policy) ? tool.policy : null;\n const safety = policy && isRecord$1(policy.safety) ? policy.safety : null;\n return safety?.confirmationRequired === true ? \"explicit-confirm-flag\" : \"none\";\n}\nfunction buildInvokeFingerprint(selection) {\n const fingerprintInput = {\n toolId: selection.tool.toolId,\n requestedSourceId: selection.source.id,\n input: selection.args.input ?? null,\n context: {\n tenantId: normalizeText$1(selection.args.context?.tenantId) || null,\n scopeId: normalizeText$1(selection.args.context?.scopeId) || normalizeText$1(selection.args.context?.projectId) || null,\n locale: normalizeText$1(selection.args.context?.locale) || null,\n fallbackLocale: normalizeText$1(selection.args.context?.fallbackLocale) || null\n },\n apply: selection.args.apply === true,\n confirm: selection.args.confirm === true\n };\n return createHash(\"sha256\").update(stableStringify(fingerprintInput)).digest(\"hex\");\n}\nfunction buildRecommendedInvokeIdempotencyKey(selection) {\n const digest = buildInvokeFingerprint(selection).slice(0, 16);\n return `${selection.tool.toolId}:${digest}`;\n}\nfunction buildStoreKey(selection, idempotencyKey) {\n return [\n selection.tool.toolId,\n selection.source.id,\n normalizeText$1(selection.args.context?.tenantId) || \"tenant\",\n normalizeText$1(selection.args.context?.scopeId) || normalizeText$1(selection.args.context?.projectId) || \"scope\",\n idempotencyKey\n ].join(\"::\");\n}\nfunction cleanupExpiredEntries(now = Date.now()) {\n for (const [key, entry] of idempotencyStore.entries()) {\n if (entry.expiresAt > now) continue;\n idempotencyStore.delete(key);\n }\n}\nfunction buildIdempotencyPayload(selection, args) {\n return {\n tool: {\n ...selection.tool,\n sourceId: selection.source.id,\n sourceKind: selection.source.kind,\n sourceBaseUrl: selection.source.baseUrl,\n sourceApiBasePath: selection.source.apiBasePath\n },\n status: 409,\n data: {\n ok: false,\n error: args.error,\n toolId: selection.tool.toolId,\n domain: selection.tool.domain,\n operationId: selection.tool.operationId,\n message: args.message,\n idempotency: {\n mode: GUARDED_WRITE_IDEMPOTENCY_MODE,\n key: args.key,\n recommendedKey: args.recommendedKey\n }\n },\n headers: {\n \"x-agent-idempotency-status\": args.error === \"idempotency_in_progress\" ? \"in-progress\" : \"conflict\",\n \"x-agent-idempotency-key\": args.key\n }\n };\n}\nfunction isSuccessfulResult(result) {\n if (result.status >= 400) return false;\n if (!isRecord$1(result.data)) return true;\n return result.data.ok !== false;\n}\nfunction buildInvokeGovernancePreview(selection, requirements, options = {}) {\n const providedKey = normalizeText$1(selection.args.idempotencyKey);\n const guarded = isGuardedWriteTool(selection.tool);\n const overrideRecommendedKey = normalizeText$1(options.recommendedKey);\n const recommendedKey = guarded ? overrideRecommendedKey || buildRecommendedInvokeIdempotencyKey(selection) : null;\n const recommendedKeySource = guarded ? overrideRecommendedKey ? options.recommendedKeySource ?? \"domain-natural-key\" : \"host-derived\" : void 0;\n const nextIdempotencyKey = providedKey || recommendedKey || void 0;\n return {\n audit: AGENT_INVOKE_AUDIT_POLICY,\n approval: {\n mode: buildApprovalMode(selection.tool),\n required: requirements.confirmationRequired,\n satisfied: requirements.confirmationSatisfied,\n provided: selection.args.confirm === true\n },\n idempotency: {\n supported: isGuardedWriteTool(selection.tool),\n mode: isGuardedWriteTool(selection.tool) ? GUARDED_WRITE_IDEMPOTENCY_MODE : \"not-applicable\",\n provided: Boolean(providedKey),\n key: providedKey || null,\n recommendedKey,\n ...recommendedKeySource ? { recommendedKeySource } : {},\n enforced: false\n },\n ...nextIdempotencyKey ? { nextIdempotencyKey } : {}\n };\n}\nfunction reserveInvokeIdempotency(selection, options = {}) {\n const guarded = isGuardedWriteTool(selection.tool);\n const overrideRecommendedKey = normalizeText$1(options.recommendedKey);\n const recommendedKey = guarded ? overrideRecommendedKey || buildRecommendedInvokeIdempotencyKey(selection) : \"\";\n const key = normalizeText$1(selection.args.idempotencyKey) || normalizeText$1(options.effectiveKey);\n if (!guarded || selection.args.preview === true || !key) {\n return {\n kind: \"skip\",\n ...recommendedKey ? { recommendedKey } : {}\n };\n }\n cleanupExpiredEntries();\n const storeKey = buildStoreKey(selection, key);\n const fingerprint = buildInvokeFingerprint(selection);\n const existing = idempotencyStore.get(storeKey);\n if (existing) {\n if (existing.fingerprint !== fingerprint) {\n return {\n kind: \"resolved\",\n result: buildIdempotencyPayload(selection, {\n error: \"idempotency_key_conflict\",\n key,\n recommendedKey,\n message: `idempotency_key_conflict:${selection.tool.toolId}`\n }),\n idempotencyStatus: \"conflict\",\n recommendedKey\n };\n }\n if (existing.state === \"pending\") {\n return {\n kind: \"resolved\",\n result: buildIdempotencyPayload(selection, {\n error: \"idempotency_in_progress\",\n key,\n recommendedKey,\n message: `idempotency_in_progress:${selection.tool.toolId}`\n }),\n idempotencyStatus: \"in-progress\",\n recommendedKey\n };\n }\n if (existing.state === \"completed\" && existing.result) {\n return {\n kind: \"resolved\",\n result: attachHeaders(cloneResult(existing.result), {\n \"x-agent-idempotency-status\": \"replayed\",\n \"x-agent-idempotency-key\": key\n }),\n idempotencyStatus: \"replayed\",\n recommendedKey\n };\n }\n }\n idempotencyStore.set(storeKey, {\n fingerprint,\n expiresAt: Date.now() + IDEMPOTENCY_ENTRY_TTL_MS,\n state: \"pending\"\n });\n return {\n kind: \"active\",\n key,\n recommendedKey,\n settle(result) {\n if (isSuccessfulResult(result)) {\n idempotencyStore.set(storeKey, {\n fingerprint,\n expiresAt: Date.now() + IDEMPOTENCY_ENTRY_TTL_MS,\n state: \"completed\",\n result: attachHeaders(cloneResult(result), {\n \"x-agent-idempotency-status\": \"fresh\",\n \"x-agent-idempotency-key\": key\n })\n });\n return;\n }\n idempotencyStore.delete(storeKey);\n },\n release() {\n idempotencyStore.delete(storeKey);\n }\n };\n}\nasync function resolveAuditLogger() {\n if (!loggerPromise) {\n loggerPromise = getLogger({ level: \"info\", file: false, console: true }).catch(() => void 0);\n }\n return await loggerPromise;\n}\nfunction toFailureStatus(message) {\n if (message === \"unauthorized\") return 401;\n if (message === \"forbidden\") return 403;\n if (message.startsWith(\"apply_required:\") || message.startsWith(\"confirmation_required:\") || message === \"project_context_required\" || message === \"project_required\" || message.startsWith(\"missing_required_arg:\") || message.startsWith(\"unknown_input_arg:\") || message.startsWith(\"tool_input_schema_invalid:\") || message.startsWith(\"validation_failed:\") || message.startsWith(\"idempotency_in_progress:\") || message.startsWith(\"idempotency_key_conflict:\")) {\n return 409;\n }\n if (message.startsWith(\"tool_not_found:\")) return 404;\n return 500;\n}\nfunction buildInvokeFailureStatus(error) {\n const message = error instanceof Error ? error.message : String(error ?? \"unknown_error\");\n return toFailureStatus(message);\n}\nasync function writeAgentInvokeAuditEvent(event) {\n const payload = {\n owner: \"agent-gateway\",\n action: event.preview === true ? \"preview\" : \"invoke\",\n toolId: event.tool.toolId,\n domain: event.tool.domain,\n operationId: event.tool.operationId,\n requestedSourceId: normalizeText$1(event.requestedSourceId),\n effectiveSourceId: normalizeText$1(event.effectiveSourceId),\n result: event.outcome,\n status: event.status,\n durationMs: typeof event.durationMs === \"number\" && Number.isFinite(event.durationMs) ? event.durationMs : void 0,\n tenantId: normalizeText$1(event.context?.tenantId),\n scopeId: normalizeText$1(event.context?.scopeId) || normalizeText$1(event.context?.projectId),\n actorId: normalizeText$1(event.context?.principal && isRecord$1(event.context.principal) ? event.context.principal.id : void 0) || void 0,\n roles: normalizeRoles(event.context?.principal && isRecord$1(event.context.principal) ? event.context.principal.roles : void 0),\n preview: event.preview === true,\n apply: event.apply === true,\n confirm: event.confirm === true,\n approvalMode: buildApprovalMode(event.tool),\n idempotencyKey: normalizeText$1(event.idempotencyKey) || void 0,\n idempotencyStatus: event.idempotencyStatus,\n errorCode: normalizeText$1(event.errorCode) || void 0,\n audit: AGENT_INVOKE_AUDIT_POLICY\n };\n const message = `[agent-invoke:audit] ${payload.toolId} ${payload.result}`;\n try {\n const logger = await resolveAuditLogger();\n if (payload.result === \"failure\" || payload.result === \"blocked\") {\n if (logger?.warn) {\n await logger.warn(payload, message);\n return;\n }\n console.warn(message, payload);\n return;\n }\n if (logger?.info) {\n await logger.info(payload, message);\n return;\n }\n console.info(message, payload);\n } catch {\n if (payload.result === \"failure\" || payload.result === \"blocked\") {\n console.warn(message, payload);\n return;\n }\n console.info(message, payload);\n }\n}\nfunction normalizeText(value) {\n if (typeof value !== \"string\") return \"\";\n const trimmed = value.trim();\n return trimmed.length > 0 ? trimmed : \"\";\n}\nfunction normalizePositiveInteger(value) {\n if (typeof value === \"number\" && Number.isFinite(value) && value > 0) return Math.trunc(value);\n if (typeof value === \"string\") {\n const trimmed = value.trim();\n if (!trimmed) return void 0;\n const parsed = Number(trimmed);\n if (Number.isFinite(parsed) && parsed > 0) return Math.trunc(parsed);\n }\n return void 0;\n}\nfunction asRecord(value) {\n if (!value || typeof value !== \"object\" || Array.isArray(value)) return {};\n return value;\n}\nfunction asArray(value) {\n return Array.isArray(value) ? value : [];\n}\nfunction readCollection(input, collectionKey) {\n const payload = asRecord(input);\n if (Array.isArray(payload[collectionKey])) return payload[collectionKey];\n if (Array.isArray(payload.data)) return payload.data;\n const data = asRecord(payload.data);\n if (Array.isArray(data[collectionKey])) return data[collectionKey];\n return [];\n}\nfunction buildBulkPushPreview(args) {\n const payload = asRecord(args.input);\n const preset = args.presetOptional === false ? \"\" : normalizeText(payload.preset);\n const count = readCollection(payload, args.collectionKey).length;\n if (!preset && count <= 0) return void 0;\n return {\n kind: \"bulk-push\",\n summary: preset ? `Push ${args.targetLabel} from preset ${preset}.` : `Push ${count} ${args.targetLabel}.`,\n change: {\n action: \"bulk-push\",\n basis: \"payload-counts\"\n },\n ...preset ? { sourceMode: \"preset\", preset } : { sourceMode: \"inline-data\" },\n ...count > 0 ? { counts: { [args.collectionKey]: count } } : {}\n };\n}\nfunction buildUnitPushPreview(input) {\n const payload = asRecord(input);\n const preset = normalizeText(payload.preset);\n const data = asRecord(payload.data);\n const unitTypes = asArray(payload.unitTypes).length > 0 ? asArray(payload.unitTypes) : asArray(data.unitTypes);\n const units = asArray(payload.units).length > 0 ? asArray(payload.units) : asArray(data.units);\n const subUnits = units.reduce(\n (count, entry) => count + asArray(asRecord(entry).subUnits).length,\n 0\n );\n if (!preset && unitTypes.length <= 0 && units.length <= 0) return void 0;\n return {\n kind: \"bulk-push\",\n summary: preset ? `Push inventory units from preset ${preset}.` : `Push ${units.length} units across ${unitTypes.length} unit types.`,\n change: {\n action: \"bulk-push\",\n basis: \"payload-counts\"\n },\n ...preset ? { sourceMode: \"preset\", preset } : { sourceMode: \"inline-data\" },\n counts: {\n unitTypes: unitTypes.length,\n units: units.length,\n subUnits\n }\n };\n}\nfunction buildDeletePreview(input, key, label) {\n const payload = asRecord(input);\n const targetUid = normalizeText(payload[key]);\n if (!targetUid) return void 0;\n return {\n kind: \"delete-target\",\n summary: `Delete ${label} ${targetUid}.`,\n change: {\n action: \"delete\",\n basis: \"target-uid\"\n },\n target: {\n [key]: targetUid\n }\n };\n}\nfunction buildReceivingSourceRevisionKey(orderUid, revisionNumber) {\n return `${orderUid}::r${String(revisionNumber)}`;\n}\nfunction buildReceivingImportPreview(input) {\n const payload = asRecord(input);\n const handoff = asRecord(payload.handoff ?? payload.data ?? payload.input ?? payload);\n const orderUid = normalizeText(handoff.orderUid);\n const revisionNumber = normalizePositiveInteger(handoff.revisionNumber);\n if (!orderUid || !revisionNumber) return void 0;\n const lineCount = normalizePositiveInteger(handoff.lineCount) ?? asArray(handoff.lines).length;\n const sourceRevisionKey = buildReceivingSourceRevisionKey(orderUid, revisionNumber);\n return {\n kind: \"handoff-import\",\n summary: `Import receiving handoff for purchase order ${orderUid} revision ${revisionNumber}.`,\n change: {\n action: \"import\",\n basis: \"source-revision\"\n },\n target: {\n orderUid,\n revisionNumber,\n ...lineCount > 0 ? { lineCount } : {}\n },\n ...lineCount > 0 ? { counts: { lines: lineCount } } : {},\n idempotency: {\n owner: \"domain-natural-key\",\n recommendedKey: `inventory.receiving.import-purchase-order-handoff:${sourceRevisionKey}`,\n scope: \"orderUid+revisionNumber\"\n }\n };\n}\nfunction buildBomSheetPreview(operationId, input) {\n const payload = asRecord(input);\n const rows = asArray(payload.rows);\n const sheetName = normalizeText(payload.sheetName);\n if (rows.length <= 0 && !sheetName) return void 0;\n return {\n kind: \"sheet-import\",\n summary: operationId === \"bom.import-sheet-preview\" ? `Preview BOM sheet import for ${rows.length} rows.` : `Create BOM from sheet import with ${rows.length} rows.`,\n change: {\n action: \"import\",\n basis: \"sheet-rows\"\n },\n ...sheetName ? { target: { sheetName } } : {},\n counts: {\n rows: rows.length\n }\n };\n}\nfunction buildInventorySemanticPreview(operationId, input) {\n switch (operationId) {\n case \"category.push\":\n return buildBulkPushPreview({\n collectionKey: \"categories\",\n targetLabel: \"inventory categories\",\n input\n });\n case \"attribute-def.push\":\n return buildBulkPushPreview({\n collectionKey: \"attributeDefs\",\n targetLabel: \"attribute definitions\",\n input\n });\n case \"attribute-def.delete\":\n return buildDeletePreview(input, \"attributeDefUid\", \"attribute definition\");\n case \"category-attribute.push\":\n return buildBulkPushPreview({\n collectionKey: \"categoryAttributes\",\n targetLabel: \"category attribute bindings\",\n input\n });\n case \"manufacturer.push\":\n return buildBulkPushPreview({\n collectionKey: \"manufacturers\",\n targetLabel: \"manufacturers\",\n input,\n presetOptional: false\n });\n case \"distributor.push\":\n return buildBulkPushPreview({\n collectionKey: \"distributors\",\n targetLabel: \"distributors\",\n input,\n presetOptional: false\n });\n case \"supplier.push\":\n return buildBulkPushPreview({\n collectionKey: \"suppliers\",\n targetLabel: \"suppliers\",\n input,\n presetOptional: false\n });\n case \"unit.push\":\n return buildUnitPushPreview(input);\n case \"unit.delete\":\n return buildDeletePreview(input, \"unitUid\", \"inventory unit\");\n case \"subunit.delete\":\n return buildDeletePreview(input, \"subUnitUid\", \"inventory sub-unit\");\n case \"receiving.import-purchase-order-handoff\":\n return buildReceivingImportPreview(input);\n case \"bom.import-sheet-preview\":\n case \"bom.import-sheet-create\":\n return buildBomSheetPreview(operationId, input);\n default:\n return void 0;\n }\n}\nfunction buildAgentSemanticPreview(args) {\n if (normalizeText(args.domain).toLowerCase() !== \"inventory\") return void 0;\n return buildInventorySemanticPreview(args.operationId, args.input);\n}\nfunction resolveAgentSemanticIdempotencyKey(args) {\n return buildAgentSemanticPreview(args)?.idempotency?.recommendedKey;\n}\nconst schemaCacheByDomain = /* @__PURE__ */ new Map();\nconst TOOLING_CONTEXT_INPUT_KEYS = /* @__PURE__ */ new Set([\n \"projectId\",\n \"scopeId\",\n \"tenantId\",\n \"locale\",\n \"fallbackLocale\"\n]);\nfunction parseMaybeJson(value) {\n const trimmed = value.trim();\n if (!trimmed) return value;\n if (trimmed === \"true\") return true;\n if (trimmed === \"false\") return false;\n if (!Number.isNaN(Number(trimmed)) && trimmed !== \"\") return Number(trimmed);\n if (trimmed.startsWith(\"{\") && trimmed.endsWith(\"}\") || trimmed.startsWith(\"[\") && trimmed.endsWith(\"]\")) {\n try {\n return JSON.parse(trimmed);\n } catch {\n return value;\n }\n }\n return value;\n}\nfunction toQueryObject(query) {\n const out = {};\n for (const [key, value] of query.entries()) {\n out[key] = parseMaybeJson(value);\n }\n return out;\n}\nfunction toValidationPayload(parsedInput, tool, manifests = []) {\n const queryPayload = toQueryObject(parsedInput.query);\n const pathPayload = { ...parsedInput.pathParams };\n if (tool) {\n const aliases = extractRouteParamAliases(tool, manifests);\n for (const [targetArg, pathKey] of aliases.entries()) {\n const pathValue = pathPayload[pathKey];\n if (pathValue === void 0) continue;\n if (pathPayload[targetArg] === void 0) {\n pathPayload[targetArg] = pathValue;\n }\n if (targetArg !== pathKey) {\n delete pathPayload[pathKey];\n }\n }\n }\n if (isRecord$3(parsedInput.body)) {\n return {\n ...queryPayload,\n ...parsedInput.body,\n ...pathPayload\n };\n }\n const hasQueryOrPath = Object.keys(queryPayload).length > 0 || Object.keys(pathPayload).length > 0;\n if (!hasQueryOrPath) {\n return parsedInput.body === void 0 || parsedInput.body === null ? {} : parsedInput.body;\n }\n if (parsedInput.body === void 0 || parsedInput.body === null) {\n return { ...queryPayload, ...pathPayload };\n }\n return {\n ...queryPayload,\n ...pathPayload,\n body: parsedInput.body\n };\n}\nfunction normalizeArgName(value) {\n return String(value ?? \"\").trim();\n}\nfunction normalizeContractArgName(value) {\n return normalizeArgName(value);\n}\nfunction parseArgsFromOperationNotes(notes, marker) {\n if (!Array.isArray(notes)) return [];\n const normalizedMarker = marker.toLowerCase();\n const out = [];\n for (const rawNote of notes) {\n const note = String(rawNote ?? \"\").trim();\n if (!note) continue;\n const lowered = note.toLowerCase();\n if (!lowered.startsWith(normalizedMarker)) continue;\n const rawArgs = note.slice(normalizedMarker.length).trim();\n if (!rawArgs) continue;\n for (const argRaw of rawArgs.split(\",\")) {\n const normalized = normalizeContractArgName(argRaw);\n if (!normalized) continue;\n out.push(normalized);\n }\n }\n return [...new Set(out)];\n}\nfunction toSchemaArgContract(schema) {\n if (!isRecord$3(schema)) return null;\n if (schema.type !== \"object\") return null;\n const properties = isRecord$3(schema.properties) ? schema.properties : {};\n const propertyNames = Object.keys(properties).map((name) => normalizeContractArgName(name)).filter(Boolean);\n const requiredArgs = Array.isArray(schema.required) ? [...new Set(schema.required.map((value) => normalizeContractArgName(value)).filter(Boolean))] : [];\n const optionalArgs = propertyNames.filter((name) => !requiredArgs.includes(name));\n const disallowUnknownArgs = schema.additionalProperties === false;\n if (propertyNames.length === 0 && requiredArgs.length === 0) return null;\n return {\n requiredArgs,\n optionalArgs,\n disallowUnknownArgs\n };\n}\nfunction resolveOperationInputSchema(manifest, tool) {\n const schemaRef = normalizeArgName(tool.inputSchemaRef);\n if (!schemaRef) return null;\n const schemas = isRecord$3(manifest.contracts?.schemas) ? manifest.contracts.schemas : {};\n if (!isRecord$3(schemas)) return null;\n return schemas[schemaRef] ?? null;\n}\nfunction resolveToolArgContract(tool, manifests) {\n const manifest = findManifestForDomain(manifests, tool.domain);\n if (!manifest) return null;\n const notes = manifest.docs?.operations?.[tool.operationId]?.notes;\n const notesRequiredArgs = parseArgsFromOperationNotes(notes, \"required args:\");\n const notesOptionalArgs = parseArgsFromOperationNotes(notes, \"optional args:\");\n const schemaContract = toSchemaArgContract(resolveOperationInputSchema(manifest, tool));\n const requiredArgs = /* @__PURE__ */ new Set([...notesRequiredArgs, ...schemaContract?.requiredArgs ?? []]);\n const optionalArgs = /* @__PURE__ */ new Set([...notesOptionalArgs, ...schemaContract?.optionalArgs ?? []]);\n for (const required2 of requiredArgs) optionalArgs.delete(required2);\n const required = [...requiredArgs];\n const optional = [...optionalArgs];\n const disallowUnknownArgs = notesRequiredArgs.length > 0 || notesOptionalArgs.length > 0 || Boolean(schemaContract?.disallowUnknownArgs);\n if (required.length === 0 && optional.length === 0 && !disallowUnknownArgs) {\n return null;\n }\n return {\n requiredArgs: required,\n optionalArgs: optional,\n disallowUnknownArgs\n };\n}\nfunction hasNonEmptyValue(value) {\n if (value === void 0 || value === null) return false;\n if (typeof value === \"string\") return value.trim().length > 0;\n if (Array.isArray(value)) return value.length > 0;\n if (typeof value === \"object\") return Object.keys(value).length > 0;\n return true;\n}\nfunction hasRequiredArg(payload, context, argName) {\n if (argName === \"scopeId\") {\n return hasNonEmptyValue(payload.scopeId) || hasProjectAliasValue(payload, context?.projectId) || hasNonEmptyValue(context?.scopeId);\n }\n if (argName === \"projectId\") {\n return hasProjectAliasValue(payload, context?.projectId);\n }\n return hasNonEmptyValue(payload[argName]);\n}\nfunction toContractValidationPayload(parsedInput, tool, manifests, context) {\n const payload = toValidationPayload(parsedInput, tool, manifests);\n if (!isRecord$3(payload)) return null;\n const merged = { ...payload };\n if (!hasNonEmptyValue(merged.projectId) && hasNonEmptyValue(context?.projectId)) {\n merged.projectId = String(context?.projectId);\n }\n if (!hasNonEmptyValue(merged.scopeId)) {\n const resolvedScopeId = context?.scopeId ?? context?.projectId;\n if (hasNonEmptyValue(resolvedScopeId)) {\n merged.scopeId = String(resolvedScopeId);\n }\n }\n if (!hasNonEmptyValue(merged.tenantId) && hasNonEmptyValue(context?.tenantId)) {\n merged.tenantId = String(context?.tenantId);\n }\n if (!hasNonEmptyValue(merged.locale) && hasNonEmptyValue(context?.locale)) {\n merged.locale = String(context?.locale);\n }\n if (!hasNonEmptyValue(merged.fallbackLocale) && hasNonEmptyValue(context?.fallbackLocale)) {\n merged.fallbackLocale = String(context?.fallbackLocale);\n }\n return merged;\n}\nfunction toContractValidationSchema(contract, operationId, context) {\n const shape = {};\n for (const argName of contract.requiredArgs) shape[argName] = z.unknown().optional();\n for (const argName of contract.optionalArgs) shape[argName] = z.unknown().optional();\n for (const contextKey of TOOLING_CONTEXT_INPUT_KEYS) shape[contextKey] = z.unknown().optional();\n const base = contract.disallowUnknownArgs ? z.object(shape).strict() : z.object(shape).passthrough();\n return base.superRefine((payload, refineContext) => {\n for (const requiredArg of contract.requiredArgs) {\n if (hasRequiredArg(payload, context, requiredArg)) continue;\n refineContext.addIssue({\n code: z.ZodIssueCode.custom,\n message: `missing_required_arg:${requiredArg};operation:${operationId}`,\n path: [requiredArg]\n });\n }\n });\n}\nfunction formatContractValidationError(tool, error) {\n const firstIssue = error.issues[0];\n if (!firstIssue) return `validation_failed:${tool.operationId}`;\n if (firstIssue.message.startsWith(\"missing_required_arg:\")) return firstIssue.message;\n if (firstIssue.code === \"unrecognized_keys\") {\n const unknownArg = Array.isArray(firstIssue.keys) && firstIssue.keys ? firstIssue.keys?.[0] : void 0;\n if (unknownArg) {\n return `unknown_input_arg:${unknownArg};operation:${tool.operationId}`;\n }\n }\n return `validation_failed:${tool.operationId}`;\n}\nfunction resolveToolPolicyRecord(tool) {\n return isRecord$3(tool.policy) ? tool.policy : null;\n}\nfunction resolveToolPolicySafety(tool) {\n const policy = resolveToolPolicyRecord(tool);\n return policy && isRecord$3(policy.safety) ? policy.safety : {};\n}\nfunction resolveToolPolicyContext(tool) {\n const policy = resolveToolPolicyRecord(tool);\n return policy && isRecord$3(policy.context) ? policy.context : {};\n}\nfunction resolveToolPolicyAuth(tool) {\n const policy = resolveToolPolicyRecord(tool);\n return policy && isRecord$3(policy.auth) ? policy.auth : {};\n}\nfunction toNormalizedStringList(value) {\n if (!Array.isArray(value)) return [];\n return [...new Set(value.map((entry) => normalizeArgName(entry).toLowerCase()).filter(Boolean))];\n}\nfunction resolvePrincipalRecord(context) {\n return context?.principal && isRecord$3(context.principal) ? context.principal : null;\n}\nfunction hasAuthenticatedPrincipal(context) {\n const principal = resolvePrincipalRecord(context);\n if (!principal) return false;\n const principalId = normalizeArgName(principal.id ?? principal.userId);\n return principalId.length > 0;\n}\nfunction resolvePrincipalRoles(context) {\n return new Set(toNormalizedStringList(resolvePrincipalRecord(context)?.roles));\n}\nfunction resolvePrincipalCapabilities(context) {\n const principal = resolvePrincipalRecord(context);\n return new Set(toNormalizedStringList(principal?.permissions ?? principal?.capabilities));\n}\nfunction hasResolvedScopeContext(context) {\n return typeof context?.scopeId === \"string\" && context.scopeId.trim().length > 0 || typeof context?.projectId === \"string\" && context.projectId.trim().length > 0;\n}\nfunction resolveToolInvokeRequirements(params) {\n const auth = resolveToolPolicyAuth(params.tool);\n const safety = resolveToolPolicySafety(params.tool);\n const contextPolicy = resolveToolPolicyContext(params.tool);\n const rolesRequired = toNormalizedStringList(auth.roles);\n const capabilitiesRequired = toNormalizedStringList(auth.capabilities);\n const principalPresent = hasAuthenticatedPrincipal(params.context);\n const principalRoles = resolvePrincipalRoles(params.context);\n const principalCapabilities = resolvePrincipalCapabilities(params.context);\n const rolesSatisfied = rolesRequired.length === 0 || rolesRequired.some((role) => principalRoles.has(role));\n const capabilitiesSatisfied = capabilitiesRequired.length === 0 || principalCapabilities.has(\"*\") || capabilitiesRequired.some((capability) => principalCapabilities.has(capability));\n const authRequired = auth.required === true || rolesRequired.length > 0 || capabilitiesRequired.length > 0;\n const accessGrantRequired = rolesRequired.length > 0 || capabilitiesRequired.length > 0;\n const applyRequired = safety.applyRequired === true;\n const confirmationRequired = safety.confirmationRequired === true;\n const scopeRequired = contextPolicy.scopeRequired === true || contextPolicy.projectRequired === true;\n return {\n authRequired,\n principalPresent,\n authSatisfied: (!authRequired || principalPresent) && (!accessGrantRequired || rolesSatisfied || capabilitiesSatisfied),\n rolesRequired,\n rolesSatisfied,\n capabilitiesRequired,\n capabilitiesSatisfied,\n applyRequired,\n applySatisfied: !applyRequired || params.apply === true,\n confirmationRequired,\n confirmationSatisfied: !confirmationRequired || params.confirm === true,\n scopeRequired,\n scopeSatisfied: !scopeRequired || hasResolvedScopeContext(params.context)\n };\n}\nfunction validateToolInvokeSafety(params) {\n const requirements = resolveToolInvokeRequirements({\n tool: params.tool,\n apply: params.apply,\n confirm: params.confirm\n });\n if (!requirements.applySatisfied) {\n return {\n ok: false,\n message: `apply_required:${params.tool.toolId}`\n };\n }\n if (!requirements.confirmationSatisfied) {\n return {\n ok: false,\n message: `confirmation_required:${params.tool.toolId}`\n };\n }\n return { ok: true };\n}\nfunction validateToolInvokeAuthorization(params) {\n const requirements = resolveToolInvokeRequirements({\n tool: params.tool,\n context: params.context\n });\n if (requirements.authRequired && !requirements.principalPresent) {\n return {\n ok: false,\n message: \"unauthorized\"\n };\n }\n if (!requirements.authSatisfied) {\n return {\n ok: false,\n message: \"forbidden\"\n };\n }\n return { ok: true };\n}\nfunction validateToolInvokeScope(params) {\n const requirements = resolveToolInvokeRequirements({\n tool: params.tool,\n context: params.context\n });\n if (!requirements.scopeSatisfied) {\n return {\n ok: false,\n message: \"project_context_required\"\n };\n }\n return { ok: true };\n}\nfunction validateToolInputByContract(params) {\n const contract = resolveToolArgContract(params.tool, params.manifests);\n if (!contract) return { ok: true };\n const payload = toContractValidationPayload(params.parsedInput, params.tool, params.manifests, params.context);\n if (!payload) {\n if (contract.requiredArgs.length === 0) return { ok: true };\n const firstRequired = contract.requiredArgs[0] ?? \"input\";\n if (firstRequired === \"scopeId\" || firstRequired === \"projectId\") {\n return { ok: false, message: \"project_required\" };\n }\n return {\n ok: false,\n message: `missing_required_arg:${firstRequired};operation:${params.tool.operationId}`\n };\n }\n if ((contract.requiredArgs.includes(\"scopeId\") || contract.requiredArgs.includes(\"projectId\")) && !contract.requiredArgs.every(\n (argName) => argName === \"scopeId\" || argName === \"projectId\" ? hasRequiredArg(payload, params.context, argName) : true\n )) {\n return { ok: false, message: \"project_required\" };\n }\n const parsed = toContractValidationSchema(contract, params.tool.operationId, params.context).safeParse(payload);\n if (parsed.success) return { ok: true };\n return {\n ok: false,\n message: formatContractValidationError(params.tool, parsed.error)\n };\n}\nfunction formatSchemaErrors(errors) {\n if (!errors || errors.length === 0) return \"invalid_input\";\n const first = errors[0];\n const path2 = first.instancePath && first.instancePath.length > 0 ? first.instancePath : \"/\";\n const message = first.message ?? first.keyword;\n return `${path2} ${message}`.trim();\n}\nfunction findManifestForDomain(manifests, domain) {\n return manifests.find((manifest) => normalizeDomain(manifest.domain.id) === normalizeDomain(domain)) ?? null;\n}\nfunction buildDomainSchemaCache(domain, manifest) {\n const ajv = new Ajv({\n allErrors: true,\n strict: false,\n coerceTypes: false,\n allowUnionTypes: true\n });\n const schemas = isRecord$3(manifest.contracts?.schemas) ? manifest.contracts?.schemas : {};\n for (const [schemaRef, schema] of Object.entries(schemas ?? {})) {\n if (!schemaRef.trim()) continue;\n if (!isRecord$3(schema)) continue;\n ajv.addSchema(schema, `${domain}:${schemaRef.trim()}`);\n }\n const cache = {\n ajv,\n validators: /* @__PURE__ */ new Map()\n };\n schemaCacheByDomain.set(domain, cache);\n return cache;\n}\nfunction getDomainSchemaCache(domain, manifests) {\n const normalizedDomain = normalizeDomain(domain);\n if (!normalizedDomain) return null;\n const existing = schemaCacheByDomain.get(normalizedDomain);\n if (existing) return existing;\n const manifest = findManifestForDomain(manifests, normalizedDomain);\n if (!manifest) return null;\n return buildDomainSchemaCache(normalizedDomain, manifest);\n}\nfunction resetToolSchemaValidationCache(domain) {\n const normalizedDomain = normalizeDomain(\"\");\n if (normalizedDomain) {\n schemaCacheByDomain.delete(normalizedDomain);\n return;\n }\n schemaCacheByDomain.clear();\n}\nfunction resolveInputValidator(tool, manifests) {\n const schemaRef = typeof tool.inputSchemaRef === \"string\" ? tool.inputSchemaRef.trim() : \"\";\n if (!schemaRef) return null;\n const domain = normalizeDomain(tool.domain);\n const cache = getDomainSchemaCache(domain, manifests);\n if (!cache) return null;\n const schemaId = `${domain}:${schemaRef}`;\n const existing = cache.validators.get(schemaId);\n if (existing) return { validate: existing, schemaId };\n const validate = cache.ajv.getSchema(schemaId);\n if (!validate) return null;\n cache.validators.set(schemaId, validate);\n return { validate, schemaId };\n}\nfunction validateToolInputBySchema(params) {\n const validator = resolveInputValidator(params.tool, params.manifests);\n if (!validator) return { ok: true };\n const payload = toValidationPayload(params.parsedInput, params.tool, params.manifests);\n const valid = validator.validate(payload);\n if (valid) return { ok: true };\n const detail = formatSchemaErrors(validator.validate.errors);\n return {\n ok: false,\n message: `tool_input_schema_invalid:${params.tool.toolId}:${detail}`\n };\n}\nconst CATALOG_REFRESH_ERROR_PREFIXES = [\n \"tool_not_found:\",\n \"tool_source_unavailable:\",\n \"tool_source_not_found:\",\n \"domain_not_registered:\",\n \"operation_route_not_found:\"\n];\nconst LOCAL_RUNTIME_REFRESH_ERROR_PREFIXES = [\n \"domain_not_registered:\",\n \"operation_route_not_found:\"\n];\nconst MUTATING_ACTIVITY_OPERATION_PATTERN = /(^|[.])(create|update|remove|delete|archive|publish|add|save|upsert|write|link|attach|enqueue|start|stop|interrupt|cancel|approve|dispatch|operate|loop|work|restore|copy|rebase|zip|clean)([.-]|$)/;\nfunction resolveGatewayConfig(config) {\n return config ?? {\n enabled: true,\n includeLocal: true,\n sources: [],\n catalog: { enabled: false, manifestProviders: [] }\n };\n}\nfunction normalizeNonEmpty(value) {\n if (typeof value !== \"string\") return void 0;\n const normalized = value.trim();\n return normalized.length > 0 ? normalized : void 0;\n}\nfunction isRecord(value) {\n return Boolean(value) && typeof value === \"object\" && !Array.isArray(value);\n}\nfunction sanitizeActivityPayload(value, depth = 0) {\n if (depth > 3) return \"[truncated]\";\n if (typeof value === \"string\") {\n const normalized = value.trim();\n return normalized.length <= 400 ? normalized : `${normalized.slice(0, 397)}...`;\n }\n if (typeof value === \"number\" || typeof value === \"boolean\" || value === null || value === void 0) {\n return value;\n }\n if (Array.isArray(value)) {\n return value.slice(0, 12).map((entry) => sanitizeActivityPayload(entry, depth + 1));\n }\n if (!isRecord(value)) return String(value);\n const next = {};\n for (const [key, entry] of Object.entries(value)) {\n const lower = key.toLowerCase();\n if (lower.includes(\"token\") || lower.includes(\"secret\") || lower.includes(\"password\") || lower.includes(\"authorization\")) {\n continue;\n }\n next[key] = sanitizeActivityPayload(entry, depth + 1);\n }\n return next;\n}\nfunction maybePushActivityRef(target, type, id, label) {\n const normalizedId = normalizeNonEmpty(id);\n if (!normalizedId) return;\n if (target.some((entry) => entry.type === type && entry.id === normalizedId)) return;\n target.push({ type, id: normalizedId });\n}\nfunction collectActivityRefs(value, refs) {\n if (!isRecord(value)) return;\n maybePushActivityRef(refs, \"scope\", value.scopeId);\n maybePushActivityRef(refs, \"project\", value.projectId);\n maybePushActivityRef(refs, \"task\", value.taskId);\n maybePushActivityRef(refs, \"sprint\", value.sprintId);\n maybePushActivityRef(refs, \"microtask\", value.microtaskId);\n maybePushActivityRef(refs, \"issue\", value.issueId);\n maybePushActivityRef(refs, \"feedback\", value.feedbackId);\n maybePushActivityRef(refs, \"prompt\", value.promptId);\n maybePushActivityRef(refs, \"prompt-version\", value.promptVersionId);\n maybePushActivityRef(refs, \"skill\", value.skillId);\n maybePushActivityRef(refs, \"skill-version\", value.skillVersionId);\n maybePushActivityRef(refs, \"resource\", value.resourceId);\n maybePushActivityRef(refs, \"artifact\", value.artifactId);\n maybePushActivityRef(refs, \"run\", value.runId ?? value.runRecordId);\n maybePushActivityRef(refs, \"workflow\", value.workflowId ?? value.workflowInstanceId);\n maybePushActivityRef(refs, \"workflow-definition\", value.workflowDefinitionId);\n maybePushActivityRef(refs, \"document\", value.documentId);\n maybePushActivityRef(refs, \"document-version\", value.documentVersionId);\n maybePushActivityRef(refs, \"page\", value.pageId);\n maybePushActivityRef(refs, \"page-version\", value.pageVersionId);\n maybePushActivityRef(refs, \"section\", value.sectionId);\n if (isRecord(value.data)) collectActivityRefs(value.data, refs);\n if (isRecord(value.input)) collectActivityRefs(value.input, refs);\n if (isRecord(value.response)) collectActivityRefs(value.response, refs);\n if (isRecord(value.result)) collectActivityRefs(value.result, refs);\n}\nfunction resolveGatewayActivityAction(tool) {\n const segments = String(tool.operationId ?? \"\").split(\".\").filter(Boolean);\n return segments[segments.length - 1] ?? \"invoke\";\n}\nfunction summarizeGatewayActivity(tool, status) {\n const action = resolveGatewayActivityAction(tool);\n const entity = String(tool.toolId ?? tool.operationId ?? \"operation\").replace(/^aops\\./, \"\").replace(/^agentspace\\./, \"\").replace(/^tasker\\./, \"\").replace(/^projectman\\./, \"\").replace(/^docman\\./, \"\").replace(/^fileman\\./, \"\").split(\".\").slice(0, 2).join(\" \").replace(/[-_]+/g, \" \").trim() || \"operation\";\n const verbMap = {\n create: \"created\",\n add: \"added\",\n update: \"updated\",\n set: \"updated\",\n publish: \"published\",\n remove: \"removed\",\n delete: \"deleted\",\n restore: \"restored\",\n copy: \"copied\",\n rebase: \"rebased\",\n zip: \"archived\",\n clean: \"cleaned\",\n link: \"linked\",\n attach: \"attached\",\n enqueue: \"enqueued\",\n start: \"started\",\n stop: \"stopped\",\n cancel: \"cancelled\",\n interrupt: \"interrupted\",\n approve: \"approved\",\n save: \"saved\",\n write: \"written\",\n record: \"recorded\",\n store: \"stored\"\n };\n const actionKey = action.split(\"-\")[0] ?? action;\n const verb = verbMap[actionKey] ?? `${action.replace(/[-_]+/g, \" \")} completed`;\n return status === \"success\" ? `${entity} ${verb}` : `${entity} ${action.replace(/[-_]+/g, \" \")} failed`;\n}\nfunction shouldAppendDurableGatewayActivity(tool, args) {\n const normalizedToolId = normalizeToolId(tool.toolId);\n if (!normalizedToolId) return false;\n if (args.preview === true) return false;\n if (normalizedToolId.startsWith(\"agentspace.activity-item.\")) return false;\n if (args.apply !== true && args.confirm !== true) return false;\n return MUTATING_ACTIVITY_OPERATION_PATTERN.test(normalizedToolId) || MUTATING_ACTIVITY_OPERATION_PATTERN.test(String(tool.operationId ?? \"\").toLowerCase());\n}\nfunction resolveGatewayActivitySourceKind(context) {\n const candidate = normalizeNonEmpty(context?.activitySourceKind);\n if (candidate === \"aops-cli\" || candidate === \"desktop\" || candidate === \"runner\" || candidate === \"system\") {\n return candidate;\n }\n return \"system\";\n}\nfunction cloneStringList(values) {\n if (!Array.isArray(values)) return void 0;\n const normalized = values.map((value) => String(value ?? \"\").trim()).filter(Boolean);\n return normalized.length > 0 ? normalized : void 0;\n}\nfunction mergeStringLists(...lists) {\n const values = /* @__PURE__ */ new Set();\n for (const list of lists) {\n for (const entry of list ?? []) {\n const normalized = String(entry ?? \"\").trim();\n if (!normalized) continue;\n values.add(normalized);\n }\n }\n return values.size > 0 ? [...values] : void 0;\n}\nfunction toOperationDocs(value) {\n if (!value || typeof value !== \"object\" || Array.isArray(value)) return null;\n const input = value;\n const summary = typeof input.summary === \"string\" && input.summary.trim().length > 0 ? input.summary.trim() : void 0;\n const notes = cloneStringList(input.notes);\n const examples = cloneStringList(input.examples);\n const antiPatterns = cloneStringList(input.antiPatterns);\n const preconditions = cloneStringList(input.preconditions);\n const postconditions = cloneStringList(input.postconditions);\n const docs = {\n ...summary ? { summary } : {},\n ...notes ? { notes } : {},\n ...examples ? { examples } : {},\n ...antiPatterns ? { antiPatterns } : {},\n ...preconditions ? { preconditions } : {},\n ...postconditions ? { postconditions } : {}\n };\n return Object.keys(docs).length > 0 ? docs : null;\n}\nfunction toDomainDocs(value) {\n if (!value || typeof value !== \"object\" || Array.isArray(value)) return null;\n const input = value;\n const summary = typeof input.summary === \"string\" && input.summary.trim().length > 0 ? input.summary.trim() : void 0;\n const notes = cloneStringList(input.notes);\n const docs = {\n ...summary ? { summary } : {},\n ...notes ? { notes } : {}\n };\n return Object.keys(docs).length > 0 ? docs : null;\n}\nfunction buildDomainMetadataByDomain(snapshot, domain) {\n const normalizedDomain = normalizeDomain(domain ?? \"\");\n const metadataByDomain = {};\n for (const manifest of snapshot.manifests) {\n const manifestDomain = normalizeDomain(manifest.domain.id);\n if (!manifestDomain) continue;\n if (normalizedDomain.length > 0 && manifestDomain !== normalizedDomain) continue;\n const existing = metadataByDomain[manifestDomain];\n const domainDocs = toDomainDocs(manifest.docs?.domain);\n const resources = manifest.capabilities.resources ?? [];\n const resourceDocsMap = manifest.docs?.resources && typeof manifest.docs.resources === \"object\" && !Array.isArray(manifest.docs.resources) ? manifest.docs.resources : {};\n const mergedResources = new Map(\n (existing?.resources ?? []).map((resource) => [normalizeDomain(resource.resourceId), resource])\n );\n for (const resource of resources) {\n const resourceId = String(resource.resourceId ?? \"\").trim().toLowerCase();\n if (!resourceId) continue;\n const docEntryRaw = resourceDocsMap[resource.resourceId] ?? resourceDocsMap[resourceId];\n const docEntry = toDomainDocs(docEntryRaw);\n const current = mergedResources.get(resourceId);\n const title = current?.title ?? (String(resource.title ?? \"\").trim() || resourceId);\n const kind = current?.kind ?? (typeof resource.kind === \"string\" && resource.kind.trim().length > 0 ? resource.kind.trim() : void 0);\n const schemaRef = current?.schemaRef ?? (typeof resource.schemaRef === \"string\" && resource.schemaRef.trim().length > 0 ? resource.schemaRef.trim() : void 0);\n mergedResources.set(resourceId, {\n resourceId,\n title,\n kind,\n schemaRef,\n summary: current?.summary ?? docEntry?.summary,\n notes: mergeStringLists(current?.notes, docEntry?.notes)\n });\n }\n const description = existing?.description ?? (typeof manifest.domain.description === \"string\" && manifest.domain.description.trim().length > 0 ? manifest.domain.description.trim() : void 0);\n const summary = existing?.summary ?? domainDocs?.summary ?? description;\n const notes = mergeStringLists(existing?.notes, domainDocs?.notes);\n metadataByDomain[manifestDomain] = {\n domain: manifestDomain,\n displayName: existing?.displayName ?? (typeof manifest.domain.displayName === \"string\" && manifest.domain.displayName.trim().length > 0 ? manifest.domain.displayName.trim() : void 0),\n ...description ? { description } : {},\n ...summary ? { summary } : {},\n ...notes ? { notes } : {},\n ...mergedResources.size > 0 ? {\n resources: [...mergedResources.values()].sort((left, right) => left.title.localeCompare(right.title))\n } : {}\n };\n }\n return Object.keys(metadataByDomain).length > 0 ? metadataByDomain : void 0;\n}\nfunction buildOperationDocsByOperationId(snapshot, domain) {\n const normalizedDomain = normalizeDomain(domain ?? \"\");\n const docsByOperationId = {};\n for (const manifest of snapshot.manifests) {\n if (normalizedDomain.length > 0 && normalizeDomain(manifest.domain.id) !== normalizedDomain) continue;\n const operations = manifest.docs?.operations;\n if (!operations || typeof operations !== \"object\" || Array.isArray(operations)) continue;\n for (const [operationIdRaw, value] of Object.entries(operations)) {\n const operationId = String(operationIdRaw ?? \"\").trim().toLowerCase();\n if (!operationId) continue;\n const docs = toOperationDocs(value);\n if (!docs) continue;\n docsByOperationId[operationId] = docs;\n }\n }\n return Object.keys(docsByOperationId).length > 0 ? docsByOperationId : void 0;\n}\nfunction buildListResult(snapshot, domain) {\n const normalizedDomain = normalizeDomain(domain ?? \"\");\n const tools = normalizedDomain.length > 0 ? snapshot.catalog.tools.filter((tool) => normalizeDomain(tool.domain) === normalizedDomain) : snapshot.catalog.tools;\n const operationDocsByOperationId = buildOperationDocsByOperationId(snapshot, domain);\n const domainMetadataByDomain = buildDomainMetadataByDomain(snapshot, domain);\n return {\n catalogVersion: snapshot.catalog.catalogVersion,\n generatedAt: snapshot.catalog.generatedAt,\n tools,\n errors: snapshot.errors,\n ...operationDocsByOperationId ? { operationDocsByOperationId } : {},\n ...domainMetadataByDomain ? { domainMetadataByDomain } : {}\n };\n}\nfunction findToolInputJsonSchemaInManifests(snapshot, tool) {\n const inputSchemaRef = typeof tool.inputSchemaRef === \"string\" ? tool.inputSchemaRef.trim() : \"\";\n if (!inputSchemaRef) return null;\n const toolDomain = normalizeDomain(tool.domain);\n for (const manifest of snapshot.manifests) {\n if (normalizeDomain(manifest.domain.id) !== toolDomain) continue;\n const schema = manifest.contracts?.schemas?.[inputSchemaRef];\n if (schema && typeof schema === \"object\" && !Array.isArray(schema)) {\n return schema;\n }\n }\n return null;\n}\nfunction buildToolResponse(tool, source, status, data, headers) {\n return {\n tool: {\n ...tool,\n sourceId: source.id,\n sourceKind: source.kind,\n sourceBaseUrl: source.baseUrl,\n sourceApiBasePath: source.apiBasePath\n },\n status,\n data,\n headers\n };\n}\nfunction isSuccessfulInvokeResult(result) {\n if (result.status >= 400) return false;\n if (!result.data || typeof result.data !== \"object\" || Array.isArray(result.data)) return true;\n return result.data.ok !== false;\n}\nfunction appendPreviewQueryValue(target, key, value) {\n const existing = target[key];\n if (existing === void 0) {\n target[key] = value;\n return;\n }\n if (Array.isArray(existing)) {\n existing.push(value);\n return;\n }\n target[key] = [existing, value];\n}\nfunction toPreviewQueryObject(query) {\n const out = {};\n for (const [key, value] of query.entries()) {\n appendPreviewQueryValue(out, key, value);\n }\n return out;\n}\nfunction buildPreviewHeaders(context) {\n const headers = {};\n if (typeof context?.tenantId === \"string\" && context.tenantId.trim().length > 0) {\n headers[\"x-tenant-id\"] = context.tenantId.trim();\n }\n if (typeof context?.locale === \"string\" && context.locale.trim().length > 0) {\n headers[\"x-locale\"] = context.locale.trim();\n }\n if (typeof context?.fallbackLocale === \"string\" && context.fallbackLocale.trim().length > 0) {\n headers[\"x-fallback-locale\"] = context.fallbackLocale.trim();\n }\n if (typeof context?.projectId === \"string\" && context.projectId.trim().length > 0) {\n headers[\"x-project-id\"] = context.projectId.trim();\n }\n return headers;\n}\nasync function appendDurableGatewayActivityBestEffort(params) {\n const scopeId = normalizeNonEmpty(params.args.context?.scopeId);\n const projectId = normalizeNonEmpty(params.args.context?.projectId);\n if (!scopeId && !projectId) return;\n const resolvedScopeId = scopeId || projectId;\n const refs = [];\n maybePushActivityRef(refs, \"scope\", resolvedScopeId);\n maybePushActivityRef(refs, \"project\", projectId);\n collectActivityRefs(params.args.input, refs);\n collectActivityRefs(params.responseData, refs);\n const requestHeaders = new Headers();\n const tenantId = normalizeNonEmpty(params.args.context?.tenantId);\n if (tenantId) requestHeaders.set(\"x-tenant-id\", tenantId);\n const url = new URL(\"https://xf-host.local/api/agentspace/operations/activity-item/add-activity-item\");\n const payload = params.status === \"error\" ? {\n input: params.args.input,\n error: params.errorMessage ? { message: params.errorMessage } : void 0\n } : {\n input: params.args.input,\n result: params.responseData\n };\n try {\n await params.registry.ensureSetup(\"agentspace\");\n await dispatchDomainRequest({\n registry: params.registry,\n request: {\n method: \"POST\",\n domain: \"agentspace\",\n path: [\"operations\", \"activity-item\", \"add-activity-item\"],\n query: new URLSearchParams(),\n body: {\n data: {\n scopeId: resolvedScopeId,\n projectId,\n sourceKind: resolveGatewayActivitySourceKind(params.args.context),\n sourceId: params.tool.toolId,\n action: resolveGatewayActivityAction(params.tool),\n status: params.status,\n summary: summarizeGatewayActivity(params.tool, params.status),\n refs,\n payload: sanitizeActivityPayload(payload)\n }\n },\n headers: requestHeaders,\n url,\n context: {\n ...params.args.context ?? {},\n scopeId: resolvedScopeId,\n ...projectId ? { projectId } : {}\n }\n }\n });\n } catch {\n }\n}\nfunction buildPreflightInvokeBody(args, requirements, nextIdempotencyKey) {\n return {\n ...args.sourceId ? { sourceId: args.sourceId } : {},\n input: args.input ?? {},\n ...nextIdempotencyKey ? { idempotencyKey: nextIdempotencyKey } : {},\n ...requirements.applyRequired ? { apply: true } : {},\n ...requirements.confirmationRequired ? { confirm: true } : {}\n };\n}\nfunction buildToolInvokePreviewPayload(params) {\n const semantic = buildAgentSemanticPreview({\n domain: params.tool.domain,\n operationId: params.tool.operationId,\n input: params.parsedInput.body ?? params.args.input ?? {}\n });\n const requirements = resolveToolInvokeRequirements({\n tool: params.tool,\n context: params.context,\n apply: params.args.apply,\n confirm: params.args.confirm\n });\n const governance = buildInvokeGovernancePreview(\n {\n tool: params.tool,\n source: params.source,\n args: params.args\n },\n requirements,\n {\n recommendedKey: semantic?.idempotency?.recommendedKey,\n recommendedKeySource: semantic?.idempotency ? \"domain-natural-key\" : void 0\n }\n );\n const path2 = `/api/${normalizeDomain(params.tool.domain)}${params.pathSegments.length > 0 ? `/${params.pathSegments.join(\"/\")}` : \"\"}`;\n const headers = buildPreviewHeaders(params.context);\n return {\n ok: true,\n preview: true,\n mode: \"preflight\",\n ready: requirements.authSatisfied && requirements.scopeSatisfied && requirements.applySatisfied && requirements.confirmationSatisfied,\n tool: {\n toolId: params.tool.toolId,\n domain: params.tool.domain,\n operationId: params.tool.operationId,\n sourceId: params.source.id,\n sourceKind: params.source.kind\n },\n route: {\n method: params.route.method,\n pattern: params.route.pattern,\n path: path2,\n ...params.requestUrl ? { requestUrl: params.requestUrl } : {}\n },\n requirements: {\n auth: {\n required: requirements.authRequired,\n principalPresent: requirements.principalPresent,\n satisfied: requirements.authSatisfied,\n ...requirements.rolesRequired.length > 0 ? { roles: requirements.rolesRequired } : {},\n ...requirements.capabilitiesRequired.length > 0 ? { capabilities: requirements.capabilitiesRequired } : {}\n },\n scope: {\n required: requirements.scopeRequired,\n satisfied: requirements.scopeSatisfied,\n ...typeof params.context.scopeId === \"string\" && params.context.scopeId.trim().length > 0 ? { scopeId: params.context.scopeId.trim() } : typeof params.context.projectId === \"string\" && params.context.projectId.trim().length > 0 ? { projectId: params.context.projectId.trim() } : {}\n },\n apply: {\n required: requirements.applyRequired,\n satisfied: requirements.applySatisfied\n },\n confirm: {\n required: requirements.confirmationRequired,\n satisfied: requirements.confirmationSatisfied\n }\n },\n policy: params.tool.policy ?? null,\n audit: governance.audit,\n approval: governance.approval,\n idempotency: governance.idempotency,\n ...semantic ? { semantic } : {},\n normalizedInvoke: {\n pathParams: { ...params.parsedInput.pathParams },\n query: toPreviewQueryObject(params.parsedInput.query),\n body: params.parsedInput.body ?? null,\n context: params.context,\n headers\n },\n nextInvoke: {\n headers,\n body: buildPreflightInvokeBody(params.args, requirements, governance.nextIdempotencyKey)\n }\n };\n}\nfunction createAgentGateway(options) {\n const config = resolveGatewayConfig(options.config);\n let catalogSnapshotPromise = null;\n let latestCatalogSnapshot = null;\n function normalizeErrorMessage(error) {\n return error instanceof Error ? error.message : String(error ?? \"unknown_error\");\n }\n function shouldRefreshCatalogForError(error) {\n const message = normalizeErrorMessage(error);\n return CATALOG_REFRESH_ERROR_PREFIXES.some((prefix) => message.startsWith(prefix));\n }\n function shouldRefreshLocalRuntimeForError(error) {\n const message = normalizeErrorMessage(error);\n return LOCAL_RUNTIME_REFRESH_ERROR_PREFIXES.some((prefix) => message.startsWith(prefix));\n }\n function invalidateCatalogSnapshot() {\n catalogSnapshotPromise = null;\n latestCatalogSnapshot = null;\n resetToolSchemaValidationCache();\n }\n async function getCatalogSnapshot(params = {}) {\n if (params.forceRefresh) invalidateCatalogSnapshot();\n if (catalogSnapshotPromise) return catalogSnapshotPromise;\n const snapshotPromise = buildGatewayCatalogSnapshot({\n config,\n configPath: options.configPath\n }).then((snapshot) => {\n latestCatalogSnapshot = snapshot;\n return snapshot;\n }).catch((error) => {\n if (catalogSnapshotPromise === snapshotPromise) {\n catalogSnapshotPromise = null;\n latestCatalogSnapshot = null;\n }\n throw error;\n });\n catalogSnapshotPromise = snapshotPromise;\n return catalogSnapshotPromise;\n }\n async function refreshCatalogSnapshot() {\n return getCatalogSnapshot({ forceRefresh: true });\n }\n async function refreshLocalRuntimeSnapshot() {\n options.registryResetter?.();\n return refreshCatalogSnapshot();\n }\n function getDiagnostics() {\n return {\n enabled: config.enabled !== false,\n snapshotLoaded: latestCatalogSnapshot !== null,\n loadedAt: latestCatalogSnapshot?.loadedAt,\n catalogVersion: latestCatalogSnapshot?.catalog.catalogVersion,\n generatedAt: latestCatalogSnapshot?.catalog.generatedAt,\n toolCount: latestCatalogSnapshot?.catalog.tools.length ?? 0,\n errorCount: latestCatalogSnapshot?.errors.length ?? 0\n };\n }\n async function listTools(domain) {\n if (config.enabled === false) {\n return { catalogVersion: \"1.0.0\", generatedAt: (/* @__PURE__ */ new Date()).toISOString(), tools: [], errors: [] };\n }\n const snapshot = await getCatalogSnapshot();\n return buildListResult(snapshot, domain);\n }\n async function getToolInputJsonSchema(toolId) {\n if (config.enabled === false) return null;\n const normalized = normalizeToolId(toolId);\n const snapshot = await getCatalogSnapshot();\n const tool = snapshot.catalog.tools.find((entry) => normalizeToolId(entry.toolId) === normalized);\n if (!tool) return null;\n const manifestSchema = findToolInputJsonSchemaInManifests(snapshot, tool);\n if (manifestSchema) return manifestSchema;\n const registry = await options.registryResolver();\n const plugin = registry.get(normalizeDomain(tool.domain));\n if (!plugin) return null;\n const route = findDomainRouteByOperation(plugin.manifest.routes, tool.operationId);\n if (!route) return null;\n const schema = route.inputJsonSchema;\n return schema && typeof schema === \"object\" && !Array.isArray(schema) ? schema : null;\n }\n async function invokeLocalSource(snapshot, tool, source, args, invokeOptions) {\n const registry = await options.registryResolver();\n const domain = normalizeDomain(tool.domain);\n const plugin = registry.get(domain);\n if (!plugin) {\n throw new Error(`domain_not_registered:${domain}`);\n }\n await registry.ensureSetup(domain);\n const route = findDomainRouteByOperation(plugin.manifest.routes, tool.operationId);\n if (!route) {\n throw new Error(`operation_route_not_found:${domain}:${tool.operationId}`);\n }\n const parsedInput = normalizeInvokeInputForRoute({\n parsedInput: parseRouteInvokeInput(args.input),\n routePattern: route.pattern,\n routeMethod: route.method,\n tool,\n manifests: snapshot.manifests\n });\n const context = { ...parsedInput.context, ...args.context ?? {} };\n const authValidation = validateToolInvokeAuthorization({\n tool,\n context\n });\n if (!authValidation.ok && args.preview !== true) {\n throw new Error(authValidation.message);\n }\n const scopeValidation = validateToolInvokeScope({\n tool,\n context\n });\n if (!scopeValidation.ok && args.preview !== true) {\n throw new Error(scopeValidation.message);\n }\n const safetyValidation = validateToolInvokeSafety({\n tool,\n apply: args.apply,\n confirm: args.confirm\n });\n if (!safetyValidation.ok && args.preview !== true) {\n throw new Error(safetyValidation.message);\n }\n const contractValidation = validateToolInputByContract({\n tool,\n manifests: snapshot.manifests,\n parsedInput,\n context\n });\n if (!contractValidation.ok) {\n throw new Error(contractValidation.message);\n }\n const schemaValidation = validateToolInputBySchema({\n tool,\n manifests: snapshot.manifests,\n parsedInput\n });\n if (!schemaValidation.ok) {\n throw new Error(schemaValidation.message);\n }\n const pathSegments = patternToPathSegments(route.pattern, parsedInput.pathParams);\n const query = parsedInput.query;\n const url = new URL(`https://xf-host.local/api/${domain}${pathSegments.length > 0 ? `/${pathSegments.join(\"/\")}` : \"\"}`);\n for (const [key, value] of query.entries()) {\n url.searchParams.append(key, value);\n }\n if (args.preview === true) {\n return buildToolResponse(\n tool,\n source,\n 200,\n buildToolInvokePreviewPayload({\n tool,\n source,\n route,\n pathSegments,\n parsedInput,\n context,\n args\n })\n );\n }\n const requestHeaders = new Headers();\n if (typeof invokeOptions.effectiveIdempotencyKey === \"string\" && invokeOptions.effectiveIdempotencyKey.length > 0) {\n requestHeaders.set(\"x-idempotency-key\", invokeOptions.effectiveIdempotencyKey);\n }\n const response = await dispatchDomainRequest({\n registry,\n request: {\n method: route.method,\n domain,\n path: pathSegments,\n query,\n body: parsedInput.body,\n headers: requestHeaders,\n url,\n context\n }\n });\n return buildToolResponse(tool, source, response.status, response.data, response.headers);\n }\n async function invokeRemoteSource(snapshot, tool, source, args, invokeOptions) {\n const remoteSource = config.sources.find(\n (candidate) => candidate.enabled && candidate.id === source.id && normalizeDomain(candidate.domain) === normalizeDomain(tool.domain)\n );\n if (!remoteSource) {\n throw new Error(`tool_source_not_found:${source.id}`);\n }\n const routes = await fetchRemoteRoutes(remoteSource);\n const route = findRemoteRouteByOperation(routes, tool.operationId);\n if (!route) {\n throw new Error(`operation_route_not_found:${tool.domain}:${tool.operationId}`);\n }\n const parsedInput = normalizeInvokeInputForRoute({\n parsedInput: parseRouteInvokeInput(args.input),\n routePattern: route.pattern,\n routeMethod: route.method,\n tool,\n manifests: snapshot.manifests\n });\n const mergedContext = { ...parsedInput.context, ...args.context ?? {} };\n const authValidation = validateToolInvokeAuthorization({\n tool,\n context: mergedContext\n });\n if (!authValidation.ok && args.preview !== true) {\n throw new Error(authValidation.message);\n }\n const scopeValidation = validateToolInvokeScope({\n tool,\n context: mergedContext\n });\n if (!scopeValidation.ok && args.preview !== true) {\n throw new Error(scopeValidation.message);\n }\n const safetyValidation = validateToolInvokeSafety({\n tool,\n apply: args.apply,\n confirm: args.confirm\n });\n if (!safetyValidation.ok && args.preview !== true) {\n throw new Error(safetyValidation.message);\n }\n const contractValidation = validateToolInputByContract({\n tool,\n manifests: snapshot.manifests,\n parsedInput,\n context: mergedContext\n });\n if (!contractValidation.ok) {\n throw new Error(contractValidation.message);\n }\n const schemaValidation = validateToolInputBySchema({\n tool,\n manifests: snapshot.manifests,\n parsedInput\n });\n if (!schemaValidation.ok) {\n throw new Error(schemaValidation.message);\n }\n const pathSegments = patternToPathSegments(route.pattern, parsedInput.pathParams);\n const baseUrl = normalizeBaseUrl(remoteSource.baseUrl);\n const apiBasePath = normalizeApiBasePath(remoteSource.apiBasePath);\n const requestUrl = new URL(\n `${baseUrl}${apiBasePath}/${remoteSource.domain}${pathSegments.length > 0 ? `/${pathSegments.join(\"/\")}` : \"\"}`\n );\n for (const [key, value] of parsedInput.query.entries()) {\n requestUrl.searchParams.append(key, value);\n }\n if (args.preview === true) {\n return buildToolResponse(\n tool,\n source,\n 200,\n buildToolInvokePreviewPayload({\n tool,\n source,\n route,\n pathSegments,\n parsedInput,\n context: mergedContext,\n args,\n requestUrl: requestUrl.toString()\n })\n );\n }\n const headers = resolveSourceHeaders(remoteSource);\n if (typeof mergedContext.tenantId === \"string\" && mergedContext.tenantId.trim().length > 0) {\n headers[\"x-tenant-id\"] = mergedContext.tenantId;\n }\n if (typeof mergedContext.locale === \"string\" && mergedContext.locale.trim().length > 0) {\n headers[\"x-locale\"] = mergedContext.locale;\n }\n if (typeof mergedContext.fallbackLocale === \"string\" && mergedContext.fallbackLocale.trim().length > 0) {\n headers[\"x-fallback-locale\"] = mergedContext.fallbackLocale;\n }\n if (typeof mergedContext.projectId === \"string\" && mergedContext.projectId.trim().length > 0) {\n headers[\"x-project-id\"] = mergedContext.projectId.trim();\n }\n if (typeof invokeOptions.effectiveIdempotencyKey === \"string\" && invokeOptions.effectiveIdempotencyKey.length > 0) {\n headers[\"x-idempotency-key\"] = invokeOptions.effectiveIdempotencyKey;\n }\n const method = route.method.toUpperCase();\n let bodyPayload;\n if (method !== \"GET\" && method !== \"HEAD\" && parsedInput.body !== void 0) {\n headers[\"content-type\"] = \"application/json\";\n bodyPayload = JSON.stringify(parsedInput.body);\n }\n const { controller, cleanup } = createTimeoutController(remoteSource.timeoutMs);\n try {\n const response = await fetch(requestUrl, {\n method,\n headers,\n body: bodyPayload,\n signal: controller.signal\n });\n const responseData = await parseFetchBody(response);\n return buildToolResponse(tool, source, response.status, responseData, pickResponseHeaders(response));\n } finally {\n cleanup();\n }\n }\n async function resolveToolFromSnapshot(toolIdRaw) {\n const toolId = normalizeToolId(toolIdRaw);\n if (!toolId) throw new Error(\"tool_id_missing\");\n let snapshot = await getCatalogSnapshot();\n let tool = snapshot.toolsById.get(toolId);\n if (tool) {\n return { snapshot, toolId, tool };\n }\n snapshot = await refreshCatalogSnapshot();\n tool = snapshot.toolsById.get(toolId);\n if (!tool) {\n throw new Error(`tool_not_found:${toolIdRaw}`);\n }\n return { snapshot, toolId, tool };\n }\n async function invokeResolvedTool(snapshot, tool, args, sourceId, options2) {\n const source = chooseSourceForInvocation(tool, sourceId);\n if (source.kind === \"local-route\") {\n try {\n return await invokeLocalSource(snapshot, tool, source, args, {\n effectiveIdempotencyKey: options2.effectiveIdempotencyKey\n });\n } catch (error) {\n if (options2.preferRefreshOnLocalMiss && shouldRefreshLocalRuntimeForError(error)) {\n throw error;\n }\n if (sourceId || !shouldFallbackFromLocalError(error)) {\n throw error;\n }\n const fallbackSource = findFirstRemoteSource(tool);\n if (!fallbackSource) {\n throw error;\n }\n return invokeRemoteSource(snapshot, tool, fallbackSource, args, {\n effectiveIdempotencyKey: options2.effectiveIdempotencyKey\n });\n }\n }\n return invokeRemoteSource(snapshot, tool, source, args, {\n effectiveIdempotencyKey: options2.effectiveIdempotencyKey\n });\n }\n async function invokeTool(args) {\n if (config.enabled === false) {\n throw new Error(\"agent_gateway_disabled\");\n }\n const startedAt = Date.now();\n const { snapshot, toolId, tool } = await resolveToolFromSnapshot(args.toolId);\n const sourceId = normalizeSourceId(args.sourceId);\n const requestedSource = chooseSourceForInvocation(tool, sourceId);\n const semanticRecommendedIdempotencyKey = resolveAgentSemanticIdempotencyKey({\n domain: tool.domain,\n operationId: tool.operationId,\n input: args.input ?? {}\n });\n const effectiveIdempotencyKey = typeof args.idempotencyKey === \"string\" && args.idempotencyKey.trim().length > 0 ? args.idempotencyKey.trim() : semanticRecommendedIdempotencyKey;\n const reservation = reserveInvokeIdempotency({\n tool,\n source: requestedSource,\n args: {\n ...args,\n sourceId: requestedSource.id\n }\n }, {\n recommendedKey: semanticRecommendedIdempotencyKey,\n effectiveKey: effectiveIdempotencyKey\n });\n if (reservation.kind === \"resolved\") {\n await writeAgentInvokeAuditEvent({\n tool,\n requestedSourceId: requestedSource.id,\n effectiveSourceId: reservation.result.tool.sourceId,\n outcome: reservation.idempotencyStatus === \"replayed\" ? \"replayed\" : \"blocked\",\n status: reservation.result.status,\n durationMs: Date.now() - startedAt,\n context: args.context,\n apply: args.apply,\n confirm: args.confirm,\n idempotencyKey: effectiveIdempotencyKey,\n idempotencyStatus: reservation.idempotencyStatus,\n preview: args.preview,\n errorCode: reservation.idempotencyStatus === \"replayed\" ? void 0 : reservation.idempotencyStatus === \"conflict\" ? \"idempotency_key_conflict\" : \"idempotency_in_progress\"\n });\n return reservation.result;\n }\n try {\n let result;\n try {\n result = await invokeResolvedTool(snapshot, tool, args, sourceId, {\n preferRefreshOnLocalMiss: true,\n effectiveIdempotencyKey\n });\n } catch (error) {\n if (!shouldRefreshCatalogForError(error)) {\n throw error;\n }\n const refreshedSnapshot = shouldRefreshLocalRuntimeForError(error) ? await refreshLocalRuntimeSnapshot() : await refreshCatalogSnapshot();\n const refreshedTool = refreshedSnapshot.toolsById.get(toolId);\n if (!refreshedTool) {\n throw new Error(`tool_not_found:${args.toolId}`);\n }\n result = await invokeResolvedTool(refreshedSnapshot, refreshedTool, args, sourceId, {\n preferRefreshOnLocalMiss: false,\n effectiveIdempotencyKey\n });\n }\n if (reservation.kind === \"active\") {\n reservation.settle(result);\n }\n const responseResult = reservation.kind === \"active\" && effectiveIdempotencyKey ? {\n ...result,\n headers: {\n ...result.headers ?? {},\n \"x-agent-idempotency-status\": \"fresh\",\n \"x-agent-idempotency-key\": effectiveIdempotencyKey\n }\n } : result;\n await writeAgentInvokeAuditEvent({\n tool,\n requestedSourceId: requestedSource.id,\n effectiveSourceId: responseResult.tool.sourceId,\n outcome: args.preview === true ? \"preview\" : isSuccessfulInvokeResult(responseResult) ? \"success\" : \"failure\",\n status: responseResult.status,\n durationMs: Date.now() - startedAt,\n context: args.context,\n apply: args.apply,\n confirm: args.confirm,\n idempotencyKey: effectiveIdempotencyKey,\n idempotencyStatus: reservation.kind === \"active\" && effectiveIdempotencyKey ? \"fresh\" : void 0,\n preview: args.preview\n });\n if (shouldAppendDurableGatewayActivity(tool, args)) {\n await appendDurableGatewayActivityBestEffort({\n registry: await options.registryResolver(),\n tool,\n args,\n status: isSuccessfulInvokeResult(responseResult) ? \"success\" : \"error\",\n responseData: responseResult.data\n });\n }\n return responseResult;\n } catch (error) {\n if (reservation.kind === \"active\") {\n reservation.release();\n }\n await writeAgentInvokeAuditEvent({\n tool,\n requestedSourceId: requestedSource.id,\n effectiveSourceId: requestedSource.id,\n outcome: buildInvokeFailureStatus(error) === 409 ? \"blocked\" : \"failure\",\n status: buildInvokeFailureStatus(error),\n durationMs: Date.now() - startedAt,\n context: args.context,\n apply: args.apply,\n confirm: args.confirm,\n idempotencyKey: effectiveIdempotencyKey,\n preview: args.preview,\n errorCode: error instanceof Error ? error.message : String(error ?? \"unknown_error\")\n });\n if (shouldAppendDurableGatewayActivity(tool, args)) {\n await appendDurableGatewayActivityBestEffort({\n registry: await options.registryResolver(),\n tool,\n args,\n status: \"error\",\n errorMessage: error instanceof Error ? error.message : String(error ?? \"unknown_error\")\n });\n }\n throw error;\n }\n }\n async function getOpenApi(args = {}) {\n const snapshot = await getCatalogSnapshot();\n const normalizedDomain = normalizeDomain(args.domain ?? \"\");\n const manifests = normalizedDomain.length > 0 ? snapshot.manifests.filter((manifest) => normalizeDomain(manifest.domain?.id ?? \"\") === normalizedDomain) : snapshot.manifests;\n const tools = normalizedDomain.length > 0 ? snapshot.catalog.tools.filter((tool) => normalizeDomain(tool.domain) === normalizedDomain) : snapshot.catalog.tools;\n const catalog = {\n ...snapshot.catalog,\n tools\n };\n const document = buildAgentGatewayOpenApi({\n manifests,\n catalog,\n serverBaseUrl: args.serverBaseUrl\n });\n return normalizeAgentGatewayOpenApiDocument(document);\n }\n return {\n listTools,\n getToolInputJsonSchema,\n invokeTool,\n getOpenApi,\n getDiagnostics,\n refreshCatalogSnapshot,\n invalidateCatalogSnapshot\n };\n}\nlet singleton = null;\nfunction getAgentGateway() {\n if (singleton) return singleton;\n const config = getHostConfig();\n singleton = createAgentGateway({\n registryResolver: getHostPluginRegistry,\n registryResetter: resetHostPluginRegistry,\n config: config.agentGateway\n });\n return singleton;\n}\nfunction getAgentGatewayDiagnostics() {\n return singleton?.getDiagnostics() ?? {\n enabled: getHostConfig().agentGateway?.enabled !== false,\n snapshotLoaded: false,\n toolCount: 0,\n errorCount: 0\n };\n}\nexport {\n normalizeToolId as a,\n getAgentGatewayDiagnostics as b,\n getAgentGateway as g,\n normalizeDomain as n,\n resolveOperationKind as r\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;AAYA,SAAS,UAAU,CAAC,KAAK,EAAE;AAC3B,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;AAC7E;AACA,SAAS,gBAAgB,CAAC,KAAK,EAAE;AACjC,EAAE,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;AAC1C;AACA,SAAS,oBAAoB,CAAC,KAAK,EAAE;AACrC,EAAE,MAAM,GAAG,GAAG,CAAC,KAAK,IAAI,MAAM,EAAE,IAAI,EAAE;AACtC,EAAE,IAAI,CAAC,GAAG,EAAE,OAAO,MAAM;AACzB,EAAE,OAAO,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAClG;AACA,SAAS,eAAe,CAAC,KAAK,EAAE;AAChC,EAAE,OAAO,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE;AACjD;AACA,SAAS,eAAe,CAAC,KAAK,EAAE;AAChC,EAAE,OAAO,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE;AACjD;AACA,SAAS,iBAAiB,CAAC,KAAK,EAAE;AAClC,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,MAAM;AAC3B,EAAE,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE;AAC/C,EAAE,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,GAAG,UAAU,GAAG,MAAM;AACpD;AACA,SAAS,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE;AACpC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,MAAM;AACzC,EAAE,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AACrF,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,MAAM;AAC3B,EAAE,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE;AAC/D,EAAE,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,GAAG,MAAM;AAC1C;AACA,SAAS,sBAAsB,CAAC,IAAI,EAAE;AACtC,EAAE,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC;AACrD,EAAE,MAAM,GAAG,GAAG,MAAM,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU;AACpE,EAAE,OAAO,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE;AAC1C;AACA,SAAS,oBAAoB,CAAC,IAAI,EAAE;AACpC,EAAE,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC;AACzC;AACA,SAAS,gBAAgB,CAAC,IAAI,EAAE;AAChC,EAAE,MAAM,QAAQ,GAAG,sBAAsB,CAAC,IAAI,CAAC;AAC/C,EAAE,MAAM,IAAI,GAAG,oBAAoB,CAAC,IAAI,CAAC;AACzC,EAAE,IAAI,IAAI,KAAK,MAAM,EAAE,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,0CAA0C,CAAC;AAC1F,EAAE,IAAI,IAAI,KAAK,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,sBAAsB,CAAC;AACtE,EAAE,IAAI,IAAI,KAAK,QAAQ,EAAE,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,0BAA0B,CAAC;AAChF,EAAE,IAAI,IAAI,KAAK,QAAQ,EAAE,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC;AAC9D,EAAE,IAAI,IAAI,KAAK,QAAQ,EAAE,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,sBAAsB,CAAC;AAC5E,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;AAClD;AACA,SAAS,oBAAoB,CAAC,OAAO,EAAE;AACvC,EAAE,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE;AACnC,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,IAAI;AAC9B,EAAE,IAAI,UAAU,CAAC,MAAM,GAAG,EAAE,EAAE,OAAO,KAAK;AAC1C,EAAE,IAAI,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,OAAO,KAAK;AAC5C,EAAE,IAAI,yDAAyD,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,OAAO,KAAK;AAC9F,EAAE,OAAO,+FAA+F,CAAC,IAAI;AAC7G,IAAI;AACJ,GAAG;AACH;AACA,SAAS,+BAA+B,CAAC,aAAa,EAAE,OAAO,EAAE;AACjE,EAAE,IAAI,UAAU,CAAC,OAAO,CAAC,IAAI,gBAAgB,CAAC,OAAO,CAAC,EAAE;AACxD,IAAI,OAAO,OAAO;AAClB,EAAE;AACF,EAAE,IAAI,aAAa,KAAK,KAAK,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE;AACtD,IAAI,MAAM,EAAE,GAAG,uBAAuB,CAAC,OAAO,CAAC,EAAE,CAAC;AAClD,IAAI,IAAI,EAAE,EAAE;AACZ,MAAM,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO;AAC/C,MAAM,OAAO;AACb,QAAQ,UAAU,EAAE,EAAE,EAAE,EAAE;AAC1B,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG;AAC5D,OAAO;AACP,IAAI;AACJ,EAAE;AACF,EAAE,MAAM,WAAW,GAAG,aAAa,KAAK,MAAM,IAAI,aAAa,KAAK,KAAK,GAAG,OAAO,GAAG,MAAM;AAC5F,EAAE,OAAO,EAAE,CAAC,WAAW,GAAG,OAAO,EAAE;AACnC;AACA,SAAS,oBAAoB,CAAC,OAAO,EAAE,aAAa,EAAE;AACtD,EAAE,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,OAAO,IAAI;AAC9C,EAAE,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,EAAE;AAC5B,EAAE,IAAI,CAAC,GAAG,EAAE,OAAO,IAAI;AACvB,EAAE,IAAI,OAAO;AACb,EAAE,IAAI;AACN,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;AAC7B,EAAE,CAAC,CAAC,MAAM;AACV,EAAE;AACF,EAAE,IAAI,OAAO,KAAK,MAAM,EAAE;AAC1B,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC,+BAA+B,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;AAClF,EAAE;AACF,EAAE,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,sBAAsB,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,yBAAyB,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,sBAAsB,CAAC;AACnI,EAAE,IAAI,CAAC,UAAU,IAAI,OAAO,UAAU,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,OAAO,IAAI;AACnE,EAAE,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACxC,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,IAAI;AAC7B,EAAE,IAAI;AACN,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;AACnC,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC,+BAA+B,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;AAClF,EAAE,CAAC,CAAC,MAAM;AACV,IAAI,OAAO,IAAI;AACf,EAAE;AACF;AACA,SAAS,qBAAqB,CAAC,QAAQ,EAAE,aAAa,EAAE;AACxD,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,OAAO,MAAM;AAC7C,EAAE,MAAM,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,oBAAoB,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC;AAC1H,EAAE,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,GAAG,UAAU,GAAG,MAAM;AACpD;AACA,SAAS,oBAAoB,CAAC,IAAI,EAAE;AACpC,EAAE,MAAM,gBAAgB,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC;AACvD,EAAE,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC;AAC7C,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,gBAAgB;AACtC,EAAE,MAAM,sBAAsB,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;AACvD,EAAE,IAAI,gBAAgB,CAAC,UAAU,CAAC,sBAAsB,CAAC,EAAE;AAC3D,IAAI,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,gBAAgB,CAAC,KAAK,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC,CAAC;AAC/E,EAAE;AACF,EAAE,OAAO,gBAAgB;AACzB;AACA,SAAS,oBAAoB,CAAC,IAAI,EAAE;AACpC,EAAE,MAAM,aAAa,GAAG,oBAAoB,CAAC,IAAI,CAAC;AAClD,EAAE,MAAM,wBAAwB,GAAG;AACnC,IAAI,yBAAyB,EAAE,CAAC,mDAAmD,CAAC;AACpF,IAAI,yBAAyB,EAAE,CAAC,oDAAoD;AACpF,GAAG;AACH,EAAE,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,IAAI,CAAC;AACrD,EAAE,MAAM,QAAQ,GAAG,qBAAqB,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,IAAI,qBAAqB,CAAC,wBAAwB,CAAC,gBAAgB,CAAC,EAAE,aAAa,CAAC;AAC1J,EAAE,MAAM,gBAAgB,GAAG,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,GAAG,IAAI,CAAC,OAAO,GAAG,EAAE;AAC/E,EAAE,MAAM,OAAO,GAAG,oBAAoB,CAAC,gBAAgB,CAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,GAAG,gBAAgB;AACpG,EAAE,MAAM,cAAc,GAAG,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,GAAG,IAAI,CAAC,KAAK,GAAG,EAAE;AACzE,EAAE,MAAM,KAAK,GAAG,oBAAoB,CAAC,cAAc,CAAC,GAAG,OAAO,GAAG,cAAc;AAC/E,EAAE,OAAO;AACT,IAAI,GAAG,IAAI;AACX,IAAI,MAAM,EAAE,gBAAgB;AAC5B,IAAI,GAAG,KAAK,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE;AAC7B,IAAI,GAAG,OAAO,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE;AACjC,IAAI,GAAG,QAAQ,GAAG,EAAE,QAAQ,EAAE,GAAG;AACjC,GAAG;AACH;AACA,SAAS,mBAAmB,CAAC,KAAK,EAAE;AACpC,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE;AACnC,EAAE,MAAM,GAAG,GAAG,EAAE;AAChB,EAAE,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACvD,IAAI,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,EAAE;AAC7B,IAAI,IAAI,CAAC,GAAG,EAAE;AACd,IAAI,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,IAAI,EAAE;AAC5C,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;AAC5B,EAAE;AACF,EAAE,OAAO,GAAG;AACZ;AACA,SAAS,qBAAqB,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE;AACnD,EAAE,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,IAAI,EAAE;AAC1C,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAC5B,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,qBAAqB,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC;AACtE,IAAI;AACJ,EAAE;AACF,EAAE,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACjC,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC7C,IAAI;AACJ,EAAE;AACF,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;AACnC;AACA,SAAS,oBAAoB,CAAC,KAAK,EAAE;AACrC,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,OAAO,IAAI,eAAe,EAAE;AACtD,EAAE,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE;AACtC,EAAE,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACvD,IAAI,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,EAAE;AAC7B,IAAI,IAAI,CAAC,GAAG,EAAE;AACd,IAAI,qBAAqB,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC;AAC7C,EAAE;AACF,EAAE,OAAO,MAAM;AACf;AACA,SAAS,gBAAgB,CAAC,KAAK,EAAE;AACjC,EAAE,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC;AACpS;AACA,SAAS,qBAAqB,CAAC,KAAK,EAAE;AACtC,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE;AACtD,IAAI,OAAO;AACX,MAAM,UAAU,EAAE,EAAE;AACpB,MAAM,KAAK,EAAE,IAAI,eAAe,EAAE;AAClC,MAAM,IAAI,EAAE,KAAK;AACjB,MAAM,OAAO,EAAE;AACf,KAAK;AACL,EAAE;AACF,EAAE,OAAO;AACT,IAAI,UAAU,EAAE,mBAAmB,CAAC,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,MAAM,CAAC;AACrE,IAAI,KAAK,EAAE,oBAAoB,CAAC,KAAK,CAAC,KAAK,CAAC;AAC5C,IAAI,IAAI,EAAE,KAAK,CAAC,IAAI;AACpB,IAAI,OAAO,EAAE,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,OAAO,GAAG;AACzD,GAAG;AACH;AACA,SAAS,oBAAoB,CAAC,OAAO,EAAE;AACvC,EAAE,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC;AAC7D,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE;AAC5B,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;AACtK;AACA,SAAS,uBAAuB,CAAC,KAAK,EAAE;AACxC,EAAE,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,IAAI,EAAE,OAAO,MAAM;AACvD,EAAE,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE;AACzC,EAAE,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,GAAG,UAAU,GAAG,MAAM;AACpD;AACA,SAAS,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE;AACpD,EAAE,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAK,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,eAAe,CAAC,MAAM,CAAC,CAAC,IAAI,IAAI;AAC9G;AACA,SAAS,uBAAuB,CAAC,KAAK,EAAE;AACxC,EAAE,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE;AACjC,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,UAAU;AACpC,EAAE,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;AAChF,EAAE,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,UAAU;AAC9C;AACA,SAAS,wBAAwB,CAAC,IAAI,EAAE,SAAS,EAAE;AACnD,EAAE,MAAM,QAAQ,GAAG,uBAAuB,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC;AAClE,EAAE,MAAM,KAAK,GAAG,QAAQ,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,KAAK;AACrE,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,uBAAuB,IAAI,GAAG,EAAE;AACnF,EAAE,MAAM,OAAO,mBAAmB,IAAI,GAAG,EAAE;AAC3C,EAAE,KAAK,MAAM,OAAO,IAAI,KAAK,EAAE;AAC/B,IAAI,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;AAC7C,IAAI,IAAI,CAAC,IAAI,EAAE;AACf,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,wDAAwD,CAAC;AACtF,IAAI,IAAI,CAAC,KAAK,EAAE;AAChB,IAAI,MAAM,SAAS,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AAC7D,IAAI,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;AACjD,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,OAAO,EAAE;AAChC,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC;AACnC,EAAE;AACF,EAAE,OAAO,OAAO;AAChB;AACA,SAAS,4BAA4B,CAAC,MAAM,EAAE;AAC9C,EAAE,MAAM,aAAa,GAAG,oBAAoB,CAAC,MAAM,CAAC,YAAY,CAAC;AACjE,EAAE,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE;AAC3E,EAAE,MAAM,qBAAqB,GAAG,WAAW,KAAK,KAAK,IAAI,WAAW,KAAK,MAAM;AAC/E,EAAE,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;AAClC,IAAI,IAAI,CAAC,qBAAqB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,OAAO,MAAM,CAAC,WAAW;AACjG,IAAI,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC;AAChE,IAAI,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE;AAC3E,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,EAAE;AAC/B,MAAM,IAAI,CAAC,GAAG,EAAE;AAChB,MAAM,qBAAqB,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC;AAC/C,IAAI;AACJ,IAAI,OAAO;AACX,MAAM,GAAG,MAAM,CAAC,WAAW;AAC3B,MAAM,KAAK,EAAE,MAAM;AACnB,MAAM,IAAI,EAAE;AACZ,KAAK;AACL,EAAE;AACF,EAAE,MAAM,UAAU,GAAG,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC,UAAU,EAAE;AACzD,EAAE,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI;AAC7G,EAAE,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI;AACnD,EAAE,KAAK,MAAM,OAAO,IAAI,aAAa,EAAE;AACvC,IAAI,IAAI,uBAAuB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE;AACtD,IAAI,MAAM,aAAa,GAAG,UAAU,GAAG,uBAAuB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,MAAM;AAC5F,IAAI,IAAI,aAAa,EAAE;AACvB,MAAM,UAAU,CAAC,OAAO,CAAC,GAAG,aAAa;AACzC,IAAI;AACJ,EAAE;AACF,EAAE,MAAM,OAAO,GAAG,wBAAwB,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC;AACzE,EAAE,IAAI,UAAU,EAAE;AAClB,IAAI,KAAK,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE;AAC1D,MAAM,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE;AACzD,QAAQ,MAAM,WAAW,GAAG,uBAAuB,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;AAC1E,QAAQ,IAAI,WAAW,EAAE;AACzB,UAAU,UAAU,CAAC,OAAO,CAAC,GAAG,WAAW;AAC3C,QAAQ;AACR,MAAM;AACN,MAAM,MAAM,iBAAiB,GAAG,uBAAuB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AAC5E,MAAM,IAAI,CAAC,iBAAiB,EAAE;AAC9B,MAAM,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE;AAC3D,QAAQ,UAAU,CAAC,SAAS,CAAC,GAAG,iBAAiB;AACjD,MAAM;AACN,MAAM,IAAI,SAAS,KAAK,OAAO,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE;AAC9F,QAAQ,OAAO,UAAU,CAAC,OAAO,CAAC;AAClC,MAAM;AACN,IAAI;AACJ,EAAE;AACF,EAAE,MAAM,eAAe,GAAG;AAC1B,IAAI,GAAG,MAAM,CAAC,WAAW;AACzB,IAAI,UAAU;AACd,IAAI;AACJ,GAAG;AACH,EAAE,IAAI,CAAC,qBAAqB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;AACnD,IAAI,OAAO,eAAe;AAC1B,EAAE;AACF,EAAE,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC,eAAe,CAAC,KAAK,CAAC;AAC1D,EAAE,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AACtD,IAAI,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,EAAE;AAC7B,IAAI,IAAI,CAAC,GAAG,IAAI,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AAC7C,IAAI,qBAAqB,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC;AAC5C,EAAE;AACF,EAAE,OAAO;AACT,IAAI,GAAG,eAAe;AACtB,IAAI,KAAK;AACT,IAAI,IAAI,EAAE;AACV,GAAG;AACH;AACA,SAAS,qBAAqB,CAAC,OAAO,EAAE,UAAU,EAAE;AACpD,EAAE,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC;AAC7D,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE;AAC5B,EAAE,MAAM,KAAK,GAAG,EAAE;AAClB,EAAE,KAAK,MAAM,OAAO,IAAI,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;AACxF,IAAI,IAAI,OAAO,KAAK,GAAG,EAAE;AACzB,MAAM,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE;AAC5C,MAAM,IAAI,CAAC,KAAK,EAAE;AAClB,MAAM,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;AACpF,QAAQ,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;AAC5C,MAAM;AACN,MAAM;AACN,IAAI;AACJ,IAAI,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AACjC,MAAM,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACzC,MAAM,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC;AACnC,MAAM,IAAI,CAAC,GAAG,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;AACjE,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,8BAA8B,EAAE,GAAG,IAAI,SAAS,CAAC,CAAC,CAAC;AAC5E,MAAM;AACN,MAAM,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;AAClD,MAAM;AACN,IAAI;AACJ,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;AACvB,EAAE;AACF,EAAE,OAAO,KAAK;AACd;AACA,SAAS,0BAA0B,CAAC,GAAG,EAAE;AACzC,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,OAAO,IAAI;AACnC,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;AACxC,EAAE,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE;AAC9D,EAAE,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;AAClD,EAAE,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;AACtD,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,IAAI,CAAC,SAAS,EAAE,OAAO,IAAI;AAC3D,EAAE,MAAM,OAAO,GAAG,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,MAAM;AAC/E,EAAE,OAAO;AACT,IAAI,EAAE;AACN,IAAI,MAAM;AACV,IAAI,OAAO;AACX,IAAI,SAAS;AACb,IAAI,OAAO,EAAE,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,GAAG,OAAO,GAAG;AACvD,GAAG;AACH;AACA,SAAS,yBAAyB,CAAC,OAAO,EAAE;AAC5C,EAAE,IAAI,QAAQ;AACd,EAAE,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,EAAE;AACzC,IAAI,QAAQ,GAAG,OAAO,CAAC,KAAK;AAC5B,EAAE,CAAC,MAAM,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;AAChF,IAAI,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC;AAC3C,EAAE;AACF,EAAE,IAAI,CAAC,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,KAAK,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,EAAE;AACnF,IAAI,QAAQ,GAAG,OAAO,CAAC,OAAO;AAC9B,EAAE;AACF,EAAE,IAAI,CAAC,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,KAAK,OAAO,CAAC,QAAQ,EAAE;AAChE,IAAI,MAAM,IAAI,KAAK,CAAC,CAAC,6BAA6B,EAAE,OAAO,CAAC,OAAO,IAAI,WAAW,CAAC,CAAC,CAAC;AACrF,EAAE;AACF,EAAE,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,IAAI;AACrD,EAAE,OAAO,QAAQ;AACjB;AACA,SAAS,oBAAoB,CAAC,MAAM,EAAE;AACtC,EAAE,MAAM,GAAG,GAAG,EAAE;AAChB,EAAE,KAAK,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE;AACzE,IAAI,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE;AAC/B,IAAI,IAAI,CAAC,IAAI,EAAE;AACf,IAAI,MAAM,KAAK,GAAG,yBAAyB,CAAC,OAAO,CAAC;AACpD,IAAI,IAAI,CAAC,KAAK,EAAE;AAChB,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK;AACrB,EAAE;AACF,EAAE,OAAO,GAAG;AACZ;AACA,eAAe,cAAc,CAAC,QAAQ,EAAE;AACxC,EAAE,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE;AAC/E,EAAE,IAAI,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE;AAChD,IAAI,IAAI;AACR,MAAM,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE;AAClC,IAAI,CAAC,CAAC,MAAM;AACZ,MAAM,OAAO,IAAI;AACjB,IAAI;AACJ,EAAE;AACF,EAAE,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE;AACpC,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,IAAI;AACxB,EAAE,IAAI;AACN,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;AAC3B,EAAE,CAAC,CAAC,MAAM;AACV,IAAI,OAAO,IAAI;AACf,EAAE;AACF;AACA,SAAS,uBAAuB,CAAC,SAAS,EAAE;AAC5C,EAAE,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE;AAC1C,EAAE,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,UAAU,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC;AAC/D,EAAE,OAAO;AACT,IAAI,UAAU;AACd,IAAI,OAAO,EAAE,MAAM,YAAY,CAAC,KAAK;AACrC,GAAG;AACH;AACA,SAAS,mBAAmB,CAAC,QAAQ,EAAE;AACvC,EAAE,MAAM,GAAG,GAAG,EAAE;AAChB,EAAE,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE;AACzD,IAAI,MAAM,UAAU,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE;AAC/C,IAAI,IAAI,CAAC,UAAU,IAAI,UAAU,KAAK,YAAY,EAAE;AACpD,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,KAAK;AAC3B,EAAE;AACF,EAAE,OAAO,GAAG;AACZ;AACA,SAAS,2BAA2B,CAAC,MAAM,EAAE;AAC7C,EAAE,OAAO;AACT,IAAI,EAAE,EAAE,MAAM,CAAC,EAAE;AACjB,IAAI,IAAI,EAAE,MAAM,CAAC,IAAI;AACrB,IAAI,MAAM,EAAE,MAAM,CAAC,MAAM;AACzB,IAAI,OAAO,EAAE,MAAM,CAAC,OAAO;AAC3B,IAAI,QAAQ,EAAE,MAAM,CAAC,QAAQ;AAC7B,IAAI,OAAO,EAAE,MAAM,CAAC,OAAO;AAC3B,IAAI,WAAW,EAAE,MAAM,CAAC;AACxB,GAAG;AACH;AACA,SAAS,0BAA0B,CAAC,MAAM,EAAE,WAAW,EAAE;AACzD,EAAE,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,SAAS,KAAK,WAAW,CAAC,IAAI,IAAI;AACxE;AACA,SAAS,0BAA0B,CAAC,MAAM,EAAE,WAAW,EAAE;AACzD,EAAE,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,SAAS,KAAK,WAAW,CAAC,IAAI,IAAI;AACxE;AACA,SAAS,yBAAyB,CAAC,IAAI,EAAE,QAAQ,EAAE;AACnD,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;AACjC,IAAI,MAAM,IAAI,KAAK,CAAC,CAAC,wBAAwB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAC7D,EAAE;AACF,EAAE,IAAI,QAAQ,EAAE;AAChB,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,EAAE,KAAK,QAAQ,CAAC;AAC1E,IAAI,IAAI,CAAC,QAAQ,EAAE;AACnB,MAAM,MAAM,IAAI,KAAK,CAAC,CAAC,sBAAsB,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC1D,IAAI;AACJ,IAAI,OAAO,QAAQ;AACnB,EAAE;AACF,EAAE,IAAI,IAAI,CAAC,eAAe,EAAE;AAC5B,IAAI,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,EAAE,KAAK,IAAI,CAAC,eAAe,CAAC;AACvF,IAAI,IAAI,SAAS,EAAE,OAAO,SAAS;AACnC,EAAE;AACF,EAAE,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AACxB;AACA,SAAS,4BAA4B,CAAC,KAAK,EAAE;AAC7C,EAAE,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,IAAI,eAAe,CAAC;AAC3F,EAAE,OAAO,OAAO,CAAC,UAAU,CAAC,wBAAwB,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,4BAA4B,CAAC;AACzG;AACA,SAAS,qBAAqB,CAAC,IAAI,EAAE;AACrC,EAAE,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,KAAK,aAAa,CAAC,IAAI,IAAI;AAC7E;AACA,MAAM,aAAa,GAAG,IAAI,QAAQ,CAAC,WAAW,EAAE,0BAA0B,CAAC;AAC3E,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;AAClD,SAAS,CAAC,QAAQ,CAAC;AACnB,IAAI,qBAAqB,GAAG,CAAC;AAC7B,SAAS,iBAAiB,CAAC,SAAS,EAAE;AACtC,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,OAAO,SAAS;AACxD,EAAE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC;AAChC,EAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,qBAAqB,CAAC,CAAC;AAC1D,EAAE,OAAO,GAAG,CAAC,IAAI;AACjB;AACA,SAAS,8BAA8B,CAAC,UAAU,EAAE,UAAU,EAAE;AAChE,EAAE,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,EAAE;AACnC,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,OAAO;AAC9B,EAAE,IAAI,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,OAAO,OAAO;AACnD,EAAE,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AAC/B,IAAI,MAAM,OAAO,GAAG,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,GAAG,EAAE;AACzE,IAAI,OAAO,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI;AAC7D,EAAE;AACF,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;AAChC,IAAI,OAAO,aAAa,CAAC,OAAO,CAAC,CAAC,IAAI;AACtC,EAAE;AACF,EAAE,MAAM,YAAY,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,kBAAkB,CAAC,CAAC;AACvF,EAAE,IAAI;AACN,IAAI,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;AAC1E,IAAI,OAAO,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI;AACvC,EAAE,CAAC,CAAC,MAAM;AACV,IAAI,OAAO,OAAO;AAClB,EAAE;AACF;AACA,SAAS,mBAAmB,CAAC,QAAQ,EAAE,KAAK,EAAE;AAC9C,EAAE,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,IAAI,eAAe,CAAC;AAC3F,EAAE,OAAO;AACT,IAAI,QAAQ,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;AACvC,IAAI,KAAK,EAAE;AACX,GAAG;AACH;AACA,eAAe,wBAAwB,CAAC,QAAQ,EAAE,UAAU,EAAE;AAC9D,EAAE,MAAM,SAAS,GAAG,8BAA8B,CAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;AAC/E,EAAE,MAAM,WAAW,GAAG,MAAM,8BAA8B,CAAC,SAAS,EAAE,QAAQ,CAAC;AAC/E,EAAE,MAAM,UAAU,GAAG,gBAAgB,CAAC,WAAW,CAAC;AAClD,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE;AACtB,IAAI,MAAM,aAAa,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO;AACvD,IAAI,MAAM,WAAW,GAAG,UAAU,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,OAAO;AAC1D,IAAI,MAAM,IAAI,KAAK,CAAC,CAAC,2BAA2B,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,aAAa,IAAI,WAAW,IAAI,kBAAkB,CAAC,CAAC,CAAC;AACtH,EAAE;AACF,EAAE,IAAI,eAAe,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AAC3F,IAAI,MAAM,IAAI,KAAK,CAAC,CAAC,yBAAyB,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AAClH,EAAE;AACF,EAAE,OAAO,UAAU,CAAC,QAAQ;AAC5B;AACA,eAAe,8BAA8B,CAAC,SAAS,EAAE,QAAQ,EAAE;AACnE,EAAE,MAAM,GAAG,GAAG,MAAM,aAAa,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;AAC/D,EAAE,MAAM,eAAe,GAAG,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,QAAQ,CAAC,UAAU,KAAK,SAAS,GAAG,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC;AAChH,EAAE,IAAI,eAAe,KAAK,MAAM,EAAE;AAClC,IAAI,MAAM,IAAI,KAAK,CAAC,CAAC,0BAA0B,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;AACtF,EAAE;AACF,EAAE,OAAO,OAAO,eAAe,KAAK,UAAU,GAAG,MAAM,OAAO,CAAC,OAAO;AACtE,IAAI,eAAe,CAAC,QAAQ,CAAC,OAAO;AACpC,GAAG,GAAG,eAAe;AACrB;AACA,eAAe,iBAAiB,CAAC,MAAM,EAAE;AACzC,EAAE,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC;AAClD,EAAE,MAAM,WAAW,GAAG,oBAAoB,CAAC,MAAM,CAAC,WAAW,CAAC;AAC9D,EAAE,MAAM,GAAG,GAAG,CAAC,EAAE,OAAO,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;AACzD,EAAE,MAAM,OAAO,GAAG,oBAAoB,CAAC,MAAM,CAAC;AAC9C,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,uBAAuB,CAAC,MAAM,CAAC,SAAS,CAAC;AAC3E,EAAE,IAAI;AACN,IAAI,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;AACtC,MAAM,MAAM,EAAE,KAAK;AACnB,MAAM,OAAO;AACb,MAAM,MAAM,EAAE,UAAU,CAAC;AACzB,KAAK,CAAC;AACN,IAAI,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,QAAQ,CAAC;AAC/C,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;AACtB,MAAM,MAAM,IAAI,KAAK,CAAC,CAAC,0BAA0B,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AAC5E,IAAI;AACJ,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;AAC1D,MAAM,MAAM,IAAI,KAAK,CAAC,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAC,CAAC;AAC5D,IAAI;AACJ,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,0BAA0B,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,KAAK,IAAI,CAAC;AAC1G,EAAE,CAAC,SAAS;AACZ,IAAI,OAAO,EAAE;AACb,EAAE;AACF;AACA,eAAe,2BAA2B,CAAC,MAAM,EAAE;AACnD,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM;AAC3B,EAAE,MAAM,MAAM,GAAG,EAAE;AACnB,EAAE,MAAM,SAAS,GAAG,EAAE;AACtB,EAAE,MAAM,OAAO,mBAAmB,IAAI,GAAG,EAAE;AAC3C,EAAE,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE;AAC9B,IAAI,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,iBAAiB,EAAE;AAC7D,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;AAC7B,MAAM,IAAI;AACV,QAAQ,MAAM,QAAQ,GAAG,MAAM,wBAAwB,CAAC,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC;AACpF,QAAQ,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AAChC,QAAQ,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AACxD,MAAM,CAAC,CAAC,OAAO,KAAK,EAAE;AACtB,QAAQ,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AACzD,MAAM;AACN,IAAI;AACJ,EAAE;AACF,EAAE,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE;AACvC,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;AACzB,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC/C,EAAE;AACF,EAAE,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,2BAA2B,CAAC,MAAM,CAAC,CAAC;AACxH,EAAE,IAAI,MAAM,CAAC,YAAY,EAAE;AAC3B,IAAI,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;AAClC,MAAM,OAAO,CAAC,IAAI,CAAC;AACnB,QAAQ,EAAE,EAAE,OAAO;AACnB,QAAQ,IAAI,EAAE,aAAa;AAC3B,QAAQ,MAAM;AACd,QAAQ,OAAO,EAAE,IAAI;AACrB,QAAQ,QAAQ,EAAE;AAClB,OAAO,CAAC;AACR,IAAI;AACJ,EAAE;AACF,EAAE,MAAM,OAAO,GAAG,yBAAyB,CAAC;AAC5C,IAAI,SAAS;AACb,IAAI;AACJ,GAAG,CAAC;AACJ,EAAE,MAAM,iBAAiB,GAAG;AAC5B,IAAI,GAAG,OAAO;AACd,IAAI,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,oBAAoB,CAAC,IAAI,CAAC;AACjE,GAAG;AACH,EAAE,MAAM,SAAS,mBAAmB,IAAI,GAAG,EAAE;AAC7C,EAAE,KAAK,MAAM,IAAI,IAAI,iBAAiB,CAAC,KAAK,EAAE;AAC9C,IAAI,SAAS,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC;AACrD,EAAE;AACF,EAAE,OAAO;AACT,IAAI,OAAO,EAAE,iBAAiB;AAC9B,IAAI,SAAS;AACb,IAAI,MAAM;AACV,IAAI,SAAS;AACb,IAAI,QAAQ,EAAE,iBAAiB,IAAI,IAAI,EAAE,EAAE,WAAW;AACtD,GAAG;AACH;AACA,MAAM,0BAA0B,GAAG,qSAAqS;AACxU,SAAS,UAAU,CAAC,KAAK,EAAE;AAC3B,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;AAC7E;AACA,SAAS,0BAA0B,CAAC,MAAM,EAAE;AAC5C,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,OAAO,KAAK;AACvC,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK;AAC/C,EAAE,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,OAAO,KAAK;AAC5C,EAAE,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,UAAU,GAAG,IAAI;AAC7E,EAAE,IAAI,CAAC,UAAU,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,OAAO,KAAK;AAC7F,EAAE,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,OAAO,KAAK,KAAK,QAAQ,CAAC,GAAG,EAAE;AACrH,EAAE,OAAO,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC;AACnC;AACA,SAAS,qBAAqB,CAAC,MAAM,EAAE;AACvC,EAAE,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC,EAAE,OAAO,MAAM;AACxD,EAAE,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,UAAU,GAAG,EAAE;AAC3E,EAAE,MAAM,cAAc,GAAG,UAAU,CAAC,KAAK,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,oBAAoB,EAAE,IAAI,EAAE;AAC3F,EAAE,MAAM,cAAc,GAAG;AACzB,IAAI,GAAG,MAAM;AACb,IAAI,UAAU,EAAE;AAChB,MAAM,GAAG,UAAU;AACnB,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;AAC5G,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;AACxG,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;AAC5G,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,cAAc,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;AACvH;AACA,GAAG;AACH,EAAE,OAAO;AACT,IAAI,WAAW,EAAE,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,WAAW,GAAG,0BAA0B;AACjJ,IAAI,KAAK,EAAE,CAAC,cAAc,EAAE,cAAc;AAC1C,GAAG;AACH;AACA,SAAS,oCAAoC,CAAC,QAAQ,EAAE;AACxD,EAAE,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,KAAK,GAAG,IAAI;AAClE,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,QAAQ;AAC7B,EAAE,IAAI,OAAO,GAAG,KAAK;AACrB,EAAE,MAAM,eAAe,GAAG,EAAE;AAC5B,EAAE,KAAK,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAC5D,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;AAC/D,MAAM,eAAe,CAAC,OAAO,CAAC,GAAG,SAAS;AAC1C,MAAM;AACN,IAAI;AACJ,IAAI,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI;AAC/B,IAAI,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI;AAC9E,IAAI,MAAM,OAAO,GAAG,WAAW,IAAI,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,WAAW,CAAC,OAAO,GAAG,IAAI;AAC/F,IAAI,MAAM,WAAW,GAAG,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC,GAAG,IAAI;AAC/G,IAAI,MAAM,MAAM,GAAG,WAAW,EAAE,MAAM;AACtC,IAAI,MAAM,UAAU,GAAG,qBAAqB,CAAC,MAAM,CAAC;AACpD,IAAI,IAAI,UAAU,KAAK,MAAM,EAAE;AAC/B,MAAM,eAAe,CAAC,OAAO,CAAC,GAAG,SAAS;AAC1C,MAAM;AACN,IAAI;AACJ,IAAI,OAAO,GAAG,IAAI;AAClB,IAAI,eAAe,CAAC,OAAO,CAAC,GAAG;AAC/B,MAAM,GAAG,SAAS;AAClB,MAAM,IAAI,EAAE;AACZ,QAAQ,GAAG,IAAI;AACf,QAAQ,WAAW,EAAE;AACrB,UAAU,GAAG,WAAW;AACxB,UAAU,OAAO,EAAE;AACnB,YAAY,GAAG,OAAO;AACtB,YAAY,kBAAkB,EAAE;AAChC,cAAc,GAAG,WAAW;AAC5B,cAAc,MAAM,EAAE;AACtB;AACA;AACA;AACA;AACA,KAAK;AACL,EAAE;AACF,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,QAAQ;AAC/B,EAAE,OAAO;AACT,IAAI,GAAG,QAAQ;AACf,IAAI,KAAK,EAAE;AACX,GAAG;AACH;AACA,MAAM,yBAAyB,GAAG;AAClC,EAAE,OAAO,EAAE,IAAI;AACf,EAAE,IAAI,EAAE,uBAAuB;AAC/B,EAAE,WAAW,EAAE,aAAa;AAC5B,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC;AAClE,EAAE,YAAY,EAAE;AAChB,CAAC;AACD,MAAM,8BAA8B,GAAG,wBAAwB;AAC/D,MAAM,wBAAwB,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG;AAC9C,MAAM,gBAAgB,mBAAmB,IAAI,GAAG,EAAE;AAClD,IAAI,aAAa,GAAG,IAAI;AACxB,SAAS,eAAe,CAAC,KAAK,EAAE;AAChC,EAAE,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,OAAO,EAAE;AAC1C,EAAE,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE;AAC9B,EAAE,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,GAAG,OAAO,GAAG,EAAE;AAC1C;AACA,SAAS,cAAc,CAAC,KAAK,EAAE;AAC/B,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,MAAM;AAC1C,EAAE,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;AAC5E,EAAE,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,GAAG,MAAM;AAC1C;AACA,SAAS,UAAU,CAAC,KAAK,EAAE;AAC3B,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;AAC7E;AACA,SAAS,YAAY,CAAC,OAAO,EAAE;AAC/B,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,MAAM;AAC7B,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE;AACvB;AACA,SAAS,WAAW,CAAC,MAAM,EAAE;AAC7B,EAAE,OAAO;AACT,IAAI,IAAI,EAAE,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE;AAC5B,IAAI,MAAM,EAAE,MAAM,CAAC,MAAM;AACzB,IAAI,IAAI,EAAE,MAAM,CAAC,IAAI;AACrB,IAAI,OAAO,EAAE,YAAY,CAAC,MAAM,CAAC,OAAO;AACxC,GAAG;AACH;AACA,SAAS,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE;AACxC,EAAE,OAAO;AACT,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC;AAC1B,IAAI,OAAO,EAAE;AACb,MAAM,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE;AAC7B,MAAM,GAAG;AACT;AACA,GAAG;AACH;AACA,SAAS,gBAAgB,CAAC,KAAK,EAAE;AACjC,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAChF,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK;AACtC,EAAE,MAAM,MAAM,GAAG,EAAE;AACnB,EAAE,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE;AACzF,IAAI,MAAM,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAClD,IAAI,IAAI,SAAS,KAAK,MAAM,EAAE;AAC9B,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS;AAC3B,EAAE;AACF,EAAE,OAAO,MAAM;AACf;AACA,SAAS,eAAe,CAAC,KAAK,EAAE;AAChC,EAAE,OAAO,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAChD;AACA,SAAS,kBAAkB,CAAC,IAAI,EAAE;AAClC,EAAE,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI;AAC7D,EAAE,MAAM,MAAM,GAAG,MAAM,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,IAAI;AAC3E,EAAE,OAAO,MAAM,EAAE,aAAa,KAAK,IAAI,IAAI,MAAM,EAAE,WAAW,KAAK,IAAI,IAAI,MAAM,EAAE,oBAAoB,KAAK,IAAI;AAChH;AACA,SAAS,iBAAiB,CAAC,IAAI,EAAE;AACjC,EAAE,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI;AAC7D,EAAE,MAAM,MAAM,GAAG,MAAM,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,IAAI;AAC3E,EAAE,OAAO,MAAM,EAAE,oBAAoB,KAAK,IAAI,GAAG,uBAAuB,GAAG,MAAM;AACjF;AACA,SAAS,sBAAsB,CAAC,SAAS,EAAE;AAC3C,EAAE,MAAM,gBAAgB,GAAG;AAC3B,IAAI,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,MAAM;AACjC,IAAI,iBAAiB,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE;AAC1C,IAAI,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI;AACvC,IAAI,OAAO,EAAE;AACb,MAAM,QAAQ,EAAE,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,IAAI;AACzE,MAAM,OAAO,EAAE,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,IAAI;AAC7H,MAAM,MAAM,EAAE,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,IAAI;AACrE,MAAM,cAAc,EAAE,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,IAAI;AACjF,KAAK;AACL,IAAI,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI;AACxC,IAAI,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,OAAO,KAAK;AACxC,GAAG;AACH,EAAE,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;AACrF;AACA,SAAS,oCAAoC,CAAC,SAAS,EAAE;AACzD,EAAE,MAAM,MAAM,GAAG,sBAAsB,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;AAC/D,EAAE,OAAO,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AAC7C;AACA,SAAS,aAAa,CAAC,SAAS,EAAE,cAAc,EAAE;AAClD,EAAE,OAAO;AACT,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM;AACzB,IAAI,SAAS,CAAC,MAAM,CAAC,EAAE;AACvB,IAAI,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,QAAQ;AACjE,IAAI,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,OAAO;AACrH,IAAI;AACJ,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;AACd;AACA,SAAS,qBAAqB,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE;AACjD,EAAE,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,gBAAgB,CAAC,OAAO,EAAE,EAAE;AACzD,IAAI,IAAI,KAAK,CAAC,SAAS,GAAG,GAAG,EAAE;AAC/B,IAAI,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC;AAChC,EAAE;AACF;AACA,SAAS,uBAAuB,CAAC,SAAS,EAAE,IAAI,EAAE;AAClD,EAAE,OAAO;AACT,IAAI,IAAI,EAAE;AACV,MAAM,GAAG,SAAS,CAAC,IAAI;AACvB,MAAM,QAAQ,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE;AACnC,MAAM,UAAU,EAAE,SAAS,CAAC,MAAM,CAAC,IAAI;AACvC,MAAM,aAAa,EAAE,SAAS,CAAC,MAAM,CAAC,OAAO;AAC7C,MAAM,iBAAiB,EAAE,SAAS,CAAC,MAAM,CAAC;AAC1C,KAAK;AACL,IAAI,MAAM,EAAE,GAAG;AACf,IAAI,IAAI,EAAE;AACV,MAAM,EAAE,EAAE,KAAK;AACf,MAAM,KAAK,EAAE,IAAI,CAAC,KAAK;AACvB,MAAM,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,MAAM;AACnC,MAAM,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,MAAM;AACnC,MAAM,WAAW,EAAE,SAAS,CAAC,IAAI,CAAC,WAAW;AAC7C,MAAM,OAAO,EAAE,IAAI,CAAC,OAAO;AAC3B,MAAM,WAAW,EAAE;AACnB,QAAQ,IAAI,EAAE,8BAA8B;AAC5C,QAAQ,GAAG,EAAE,IAAI,CAAC,GAAG;AACrB,QAAQ,cAAc,EAAE,IAAI,CAAC;AAC7B;AACA,KAAK;AACL,IAAI,OAAO,EAAE;AACb,MAAM,4BAA4B,EAAE,IAAI,CAAC,KAAK,KAAK,yBAAyB,GAAG,aAAa,GAAG,UAAU;AACzG,MAAM,yBAAyB,EAAE,IAAI,CAAC;AACtC;AACA,GAAG;AACH;AACA,SAAS,kBAAkB,CAAC,MAAM,EAAE;AACpC,EAAE,IAAI,MAAM,CAAC,MAAM,IAAI,GAAG,EAAE,OAAO,KAAK;AACxC,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,IAAI;AAC3C,EAAE,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,KAAK;AACjC;AACA,SAAS,4BAA4B,CAAC,SAAS,EAAE,YAAY,EAAE,OAAO,GAAG,EAAE,EAAE;AAC7E,EAAE,MAAM,WAAW,GAAG,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC;AACpE,EAAE,MAAM,OAAO,GAAG,kBAAkB,CAAC,SAAS,CAAC,IAAI,CAAC;AACpD,EAAE,MAAM,sBAAsB,GAAG,eAAe,CAAC,OAAO,CAAC,cAAc,CAAC;AACxE,EAAE,MAAM,cAAc,GAAG,OAAO,GAAG,sBAAsB,IAAI,oCAAoC,CAAC,SAAS,CAAC,GAAG,IAAI;AACnH,EAAE,MAAM,oBAAoB,GAAG,OAAO,GAAG,sBAAsB,GAAG,OAAO,CAAC,oBAAoB,IAAI,oBAAoB,GAAG,cAAc,GAAG,MAAM;AAChJ,EAAE,MAAM,kBAAkB,GAAG,WAAW,IAAI,cAAc,IAAI,MAAM;AACpE,EAAE,OAAO;AACT,IAAI,KAAK,EAAE,yBAAyB;AACpC,IAAI,QAAQ,EAAE;AACd,MAAM,IAAI,EAAE,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAAC;AAC7C,MAAM,QAAQ,EAAE,YAAY,CAAC,oBAAoB;AACjD,MAAM,SAAS,EAAE,YAAY,CAAC,qBAAqB;AACnD,MAAM,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,OAAO,KAAK;AAC3C,KAAK;AACL,IAAI,WAAW,EAAE;AACjB,MAAM,SAAS,EAAE,kBAAkB,CAAC,SAAS,CAAC,IAAI,CAAC;AACnD,MAAM,IAAI,EAAE,kBAAkB,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,8BAA8B,GAAG,gBAAgB;AAClG,MAAM,QAAQ,EAAE,OAAO,CAAC,WAAW,CAAC;AACpC,MAAM,GAAG,EAAE,WAAW,IAAI,IAAI;AAC9B,MAAM,cAAc;AACpB,MAAM,GAAG,oBAAoB,GAAG,EAAE,oBAAoB,EAAE,GAAG,EAAE;AAC7D,MAAM,QAAQ,EAAE;AAChB,KAAK;AACL,IAAI,GAAG,kBAAkB,GAAG,EAAE,kBAAkB,EAAE,GAAG;AACrD,GAAG;AACH;AACA,SAAS,wBAAwB,CAAC,SAAS,EAAE,OAAO,GAAG,EAAE,EAAE;AAC3D,EAAE,MAAM,OAAO,GAAG,kBAAkB,CAAC,SAAS,CAAC,IAAI,CAAC;AACpD,EAAE,MAAM,sBAAsB,GAAG,eAAe,CAAC,OAAO,CAAC,cAAc,CAAC;AACxE,EAAE,MAAM,cAAc,GAAG,OAAO,GAAG,sBAAsB,IAAI,oCAAoC,CAAC,SAAS,CAAC,GAAG,EAAE;AACjH,EAAE,MAAM,GAAG,GAAG,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,eAAe,CAAC,OAAO,CAAC,YAAY,CAAC;AACrG,EAAE,IAAI,CAAC,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE;AAC3D,IAAI,OAAO;AACX,MAAM,IAAI,EAAE,MAAM;AAClB,MAAM,GAAG,cAAc,GAAG,EAAE,cAAc,EAAE,GAAG;AAC/C,KAAK;AACL,EAAE;AACF,EAAE,qBAAqB,EAAE;AACzB,EAAE,MAAM,QAAQ,GAAG,aAAa,CAAC,SAAS,EAAE,GAAG,CAAC;AAChD,EAAE,MAAM,WAAW,GAAG,sBAAsB,CAAC,SAAS,CAAC;AACvD,EAAE,MAAM,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC;AACjD,EAAE,IAAI,QAAQ,EAAE;AAChB,IAAI,IAAI,QAAQ,CAAC,WAAW,KAAK,WAAW,EAAE;AAC9C,MAAM,OAAO;AACb,QAAQ,IAAI,EAAE,UAAU;AACxB,QAAQ,MAAM,EAAE,uBAAuB,CAAC,SAAS,EAAE;AACnD,UAAU,KAAK,EAAE,0BAA0B;AAC3C,UAAU,GAAG;AACb,UAAU,cAAc;AACxB,UAAU,OAAO,EAAE,CAAC,yBAAyB,EAAE,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;AACrE,SAAS,CAAC;AACV,QAAQ,iBAAiB,EAAE,UAAU;AACrC,QAAQ;AACR,OAAO;AACP,IAAI;AACJ,IAAI,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,EAAE;AACtC,MAAM,OAAO;AACb,QAAQ,IAAI,EAAE,UAAU;AACxB,QAAQ,MAAM,EAAE,uBAAuB,CAAC,SAAS,EAAE;AACnD,UAAU,KAAK,EAAE,yBAAyB;AAC1C,UAAU,GAAG;AACb,UAAU,cAAc;AACxB,UAAU,OAAO,EAAE,CAAC,wBAAwB,EAAE,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;AACpE,SAAS,CAAC;AACV,QAAQ,iBAAiB,EAAE,aAAa;AACxC,QAAQ;AACR,OAAO;AACP,IAAI;AACJ,IAAI,IAAI,QAAQ,CAAC,KAAK,KAAK,WAAW,IAAI,QAAQ,CAAC,MAAM,EAAE;AAC3D,MAAM,OAAO;AACb,QAAQ,IAAI,EAAE,UAAU;AACxB,QAAQ,MAAM,EAAE,aAAa,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AAC5D,UAAU,4BAA4B,EAAE,UAAU;AAClD,UAAU,yBAAyB,EAAE;AACrC,SAAS,CAAC;AACV,QAAQ,iBAAiB,EAAE,UAAU;AACrC,QAAQ;AACR,OAAO;AACP,IAAI;AACJ,EAAE;AACF,EAAE,gBAAgB,CAAC,GAAG,CAAC,QAAQ,EAAE;AACjC,IAAI,WAAW;AACf,IAAI,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,wBAAwB;AACpD,IAAI,KAAK,EAAE;AACX,GAAG,CAAC;AACJ,EAAE,OAAO;AACT,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,GAAG;AACP,IAAI,cAAc;AAClB,IAAI,MAAM,CAAC,MAAM,EAAE;AACnB,MAAM,IAAI,kBAAkB,CAAC,MAAM,CAAC,EAAE;AACtC,QAAQ,gBAAgB,CAAC,GAAG,CAAC,QAAQ,EAAE;AACvC,UAAU,WAAW;AACrB,UAAU,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,wBAAwB;AAC1D,UAAU,KAAK,EAAE,WAAW;AAC5B,UAAU,MAAM,EAAE,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE;AACrD,YAAY,4BAA4B,EAAE,OAAO;AACjD,YAAY,yBAAyB,EAAE;AACvC,WAAW;AACX,SAAS,CAAC;AACV,QAAQ;AACR,MAAM;AACN,MAAM,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC;AACvC,IAAI,CAAC;AACL,IAAI,OAAO,GAAG;AACd,MAAM,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC;AACvC,IAAI;AACJ,GAAG;AACH;AACA,eAAe,kBAAkB,GAAG;AACpC,EAAE,IAAI,CAAC,aAAa,EAAE;AACtB,IAAI,aAAa,GAAG,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,MAAM,CAAC;AAChG,EAAE;AACF,EAAE,OAAO,MAAM,aAAa;AAC5B;AACA,SAAS,eAAe,CAAC,OAAO,EAAE;AAClC,EAAE,IAAI,OAAO,KAAK,cAAc,EAAE,OAAO,GAAG;AAC5C,EAAE,IAAI,OAAO,KAAK,WAAW,EAAE,OAAO,GAAG;AACzC,EAAE,IAAI,OAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,wBAAwB,CAAC,IAAI,OAAO,KAAK,0BAA0B,IAAI,OAAO,KAAK,kBAAkB,IAAI,OAAO,CAAC,UAAU,CAAC,uBAAuB,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,oBAAoB,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,4BAA4B,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,oBAAoB,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,0BAA0B,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,2BAA2B,CAAC,EAAE;AACzc,IAAI,OAAO,GAAG;AACd,EAAE;AACF,EAAE,IAAI,OAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,OAAO,GAAG;AACvD,EAAE,OAAO,GAAG;AACZ;AACA,SAAS,wBAAwB,CAAC,KAAK,EAAE;AACzC,EAAE,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,IAAI,eAAe,CAAC;AAC3F,EAAE,OAAO,eAAe,CAAC,OAAO,CAAC;AACjC;AACA,eAAe,0BAA0B,CAAC,KAAK,EAAE;AACjD,EAAE,MAAM,OAAO,GAAG;AAClB,IAAI,KAAK,EAAE,eAAe;AAC1B,IAAI,MAAM,EAAE,KAAK,CAAC,OAAO,KAAK,IAAI,GAAG,SAAS,GAAG,QAAQ;AACzD,IAAI,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM;AAC7B,IAAI,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM;AAC7B,IAAI,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,WAAW;AACvC,IAAI,iBAAiB,EAAE,eAAe,CAAC,KAAK,CAAC,iBAAiB,CAAC;AAC/D,IAAI,iBAAiB,EAAE,eAAe,CAAC,KAAK,CAAC,iBAAiB,CAAC;AAC/D,IAAI,MAAM,EAAE,KAAK,CAAC,OAAO;AACzB,IAAI,MAAM,EAAE,KAAK,CAAC,MAAM;AACxB,IAAI,UAAU,EAAE,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,UAAU,GAAG,MAAM;AACrH,IAAI,QAAQ,EAAE,eAAe,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC;AACtD,IAAI,OAAO,EAAE,eAAe,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,eAAe,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC;AACjG,IAAI,OAAO,EAAE,eAAe,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,IAAI,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,MAAM;AAC7I,IAAI,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,IAAI,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,GAAG,MAAM,CAAC;AACnI,IAAI,OAAO,EAAE,KAAK,CAAC,OAAO,KAAK,IAAI;AACnC,IAAI,KAAK,EAAE,KAAK,CAAC,KAAK,KAAK,IAAI;AAC/B,IAAI,OAAO,EAAE,KAAK,CAAC,OAAO,KAAK,IAAI;AACnC,IAAI,YAAY,EAAE,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC;AAC/C,IAAI,cAAc,EAAE,eAAe,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,MAAM;AACnE,IAAI,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;AAC9C,IAAI,SAAS,EAAE,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,MAAM;AACzD,IAAI,KAAK,EAAE;AACX,GAAG;AACH,EAAE,MAAM,OAAO,GAAG,CAAC,qBAAqB,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;AAC5E,EAAE,IAAI;AACN,IAAI,MAAM,MAAM,GAAG,MAAM,kBAAkB,EAAE;AAC7C,IAAI,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE;AACtE,MAAM,IAAI,MAAM,EAAE,IAAI,EAAE;AACxB,QAAQ,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC;AAC3C,QAAQ;AACR,MAAM;AACN,MAAM,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC;AACpC,MAAM;AACN,IAAI;AACJ,IAAI,IAAI,MAAM,EAAE,IAAI,EAAE;AACtB,MAAM,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC;AACzC,MAAM;AACN,IAAI;AACJ,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC;AAClC,EAAE,CAAC,CAAC,MAAM;AACV,IAAI,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE;AACtE,MAAM,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC;AACpC,MAAM;AACN,IAAI;AACJ,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC;AAClC,EAAE;AACF;AACA,SAAS,aAAa,CAAC,KAAK,EAAE;AAC9B,EAAE,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,OAAO,EAAE;AAC1C,EAAE,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE;AAC9B,EAAE,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,GAAG,OAAO,GAAG,EAAE;AAC1C;AACA,SAAS,wBAAwB,CAAC,KAAK,EAAE;AACzC,EAAE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;AAChG,EAAE,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACjC,IAAI,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE;AAChC,IAAI,IAAI,CAAC,OAAO,EAAE,OAAO,MAAM;AAC/B,IAAI,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC;AAClC,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;AACxE,EAAE;AACF,EAAE,OAAO,MAAM;AACf;AACA,SAAS,QAAQ,CAAC,KAAK,EAAE;AACzB,EAAE,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE;AAC5E,EAAE,OAAO,KAAK;AACd;AACA,SAAS,OAAO,CAAC,KAAK,EAAE;AACxB,EAAE,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE;AAC1C;AACA,SAAS,cAAc,CAAC,KAAK,EAAE,aAAa,EAAE;AAC9C,EAAE,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC;AACjC,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,EAAE,OAAO,OAAO,CAAC,aAAa,CAAC;AAC1E,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,OAAO,CAAC,IAAI;AACtD,EAAE,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC;AACrC,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,OAAO,IAAI,CAAC,aAAa,CAAC;AACpE,EAAE,OAAO,EAAE;AACX;AACA,SAAS,oBAAoB,CAAC,IAAI,EAAE;AACpC,EAAE,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;AACtC,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,KAAK,KAAK,GAAG,EAAE,GAAG,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC;AACnF,EAAE,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM;AAClE,EAAE,IAAI,CAAC,MAAM,IAAI,KAAK,IAAI,CAAC,EAAE,OAAO,MAAM;AAC1C,EAAE,OAAO;AACT,IAAI,IAAI,EAAE,WAAW;AACrB,IAAI,OAAO,EAAE,MAAM,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;AAC9G,IAAI,MAAM,EAAE;AACZ,MAAM,MAAM,EAAE,WAAW;AACzB,MAAM,KAAK,EAAE;AACb,KAAK;AACL,IAAI,GAAG,MAAM,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,aAAa,EAAE;AAChF,IAAI,GAAG,KAAK,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,GAAG,KAAK,EAAE,EAAE,GAAG;AACjE,GAAG;AACH;AACA,SAAS,oBAAoB,CAAC,KAAK,EAAE;AACrC,EAAE,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC;AACjC,EAAE,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC;AAC9C,EAAE,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC;AACrC,EAAE,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;AAChH,EAAE,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;AAChG,EAAE,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM;AAC/B,IAAI,CAAC,KAAK,EAAE,KAAK,KAAK,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM;AACtE,IAAI;AACJ,GAAG;AACH,EAAE,IAAI,CAAC,MAAM,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,OAAO,MAAM;AAC1E,EAAE,OAAO;AACT,IAAI,IAAI,EAAE,WAAW;AACrB,IAAI,OAAO,EAAE,MAAM,GAAG,CAAC,iCAAiC,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,cAAc,EAAE,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC;AACzI,IAAI,MAAM,EAAE;AACZ,MAAM,MAAM,EAAE,WAAW;AACzB,MAAM,KAAK,EAAE;AACb,KAAK;AACL,IAAI,GAAG,MAAM,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,aAAa,EAAE;AAChF,IAAI,MAAM,EAAE;AACZ,MAAM,SAAS,EAAE,SAAS,CAAC,MAAM;AACjC,MAAM,KAAK,EAAE,KAAK,CAAC,MAAM;AACzB,MAAM;AACN;AACA,GAAG;AACH;AACA,SAAS,kBAAkB,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE;AAC/C,EAAE,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC;AACjC,EAAE,MAAM,SAAS,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC/C,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,MAAM;AAC/B,EAAE,OAAO;AACT,IAAI,IAAI,EAAE,eAAe;AACzB,IAAI,OAAO,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;AAC5C,IAAI,MAAM,EAAE;AACZ,MAAM,MAAM,EAAE,QAAQ;AACtB,MAAM,KAAK,EAAE;AACb,KAAK;AACL,IAAI,MAAM,EAAE;AACZ,MAAM,CAAC,GAAG,GAAG;AACb;AACA,GAAG;AACH;AACA,SAAS,+BAA+B,CAAC,QAAQ,EAAE,cAAc,EAAE;AACnE,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC;AAClD;AACA,SAAS,2BAA2B,CAAC,KAAK,EAAE;AAC5C,EAAE,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC;AACjC,EAAE,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC;AACvF,EAAE,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC;AAClD,EAAE,MAAM,cAAc,GAAG,wBAAwB,CAAC,OAAO,CAAC,cAAc,CAAC;AACzE,EAAE,IAAI,CAAC,QAAQ,IAAI,CAAC,cAAc,EAAE,OAAO,MAAM;AACjD,EAAE,MAAM,SAAS,GAAG,wBAAwB,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM;AAChG,EAAE,MAAM,iBAAiB,GAAG,+BAA+B,CAAC,QAAQ,EAAE,cAAc,CAAC;AACrF,EAAE,OAAO;AACT,IAAI,IAAI,EAAE,gBAAgB;AAC1B,IAAI,OAAO,EAAE,CAAC,4CAA4C,EAAE,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC;AAClG,IAAI,MAAM,EAAE;AACZ,MAAM,MAAM,EAAE,QAAQ;AACtB,MAAM,KAAK,EAAE;AACb,KAAK;AACL,IAAI,MAAM,EAAE;AACZ,MAAM,QAAQ;AACd,MAAM,cAAc;AACpB,MAAM,GAAG,SAAS,GAAG,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG;AACzC,KAAK;AACL,IAAI,GAAG,SAAS,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE;AAC5D,IAAI,WAAW,EAAE;AACjB,MAAM,KAAK,EAAE,oBAAoB;AACjC,MAAM,cAAc,EAAE,CAAC,kDAAkD,EAAE,iBAAiB,CAAC,CAAC;AAC9F,MAAM,KAAK,EAAE;AACb;AACA,GAAG;AACH;AACA,SAAS,oBAAoB,CAAC,WAAW,EAAE,KAAK,EAAE;AAClD,EAAE,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC;AACjC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;AACpC,EAAE,MAAM,SAAS,GAAG,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC;AACpD,EAAE,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,MAAM;AACnD,EAAE,OAAO;AACT,IAAI,IAAI,EAAE,cAAc;AACxB,IAAI,OAAO,EAAE,WAAW,KAAK,0BAA0B,GAAG,CAAC,6BAA6B,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,kCAAkC,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;AACxK,IAAI,MAAM,EAAE;AACZ,MAAM,MAAM,EAAE,QAAQ;AACtB,MAAM,KAAK,EAAE;AACb,KAAK;AACL,IAAI,GAAG,SAAS,GAAG,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE;AACjD,IAAI,MAAM,EAAE;AACZ,MAAM,IAAI,EAAE,IAAI,CAAC;AACjB;AACA,GAAG;AACH;AACA,SAAS,6BAA6B,CAAC,WAAW,EAAE,KAAK,EAAE;AAC3D,EAAE,QAAQ,WAAW;AACrB,IAAI,KAAK,eAAe;AACxB,MAAM,OAAO,oBAAoB,CAAC;AAClC,QAAQ,aAAa,EAAE,YAAY;AACnC,QAAQ,WAAW,EAAE,sBAAsB;AAC3C,QAAQ;AACR,OAAO,CAAC;AACR,IAAI,KAAK,oBAAoB;AAC7B,MAAM,OAAO,oBAAoB,CAAC;AAClC,QAAQ,aAAa,EAAE,eAAe;AACtC,QAAQ,WAAW,EAAE,uBAAuB;AAC5C,QAAQ;AACR,OAAO,CAAC;AACR,IAAI,KAAK,sBAAsB;AAC/B,MAAM,OAAO,kBAAkB,CAAC,KAAK,EAAE,iBAAiB,EAAE,sBAAsB,CAAC;AACjF,IAAI,KAAK,yBAAyB;AAClC,MAAM,OAAO,oBAAoB,CAAC;AAClC,QAAQ,aAAa,EAAE,oBAAoB;AAC3C,QAAQ,WAAW,EAAE,6BAA6B;AAClD,QAAQ;AACR,OAAO,CAAC;AACR,IAAI,KAAK,mBAAmB;AAC5B,MAAM,OAAO,oBAAoB,CAAC;AAClC,QAAQ,aAAa,EAAE,eAAe;AACtC,QAAQ,WAAW,EAAE,eAAe;AACpC,QAAQ,KAAK;AACb,QAAQ,cAAc,EAAE;AACxB,OAAO,CAAC;AACR,IAAI,KAAK,kBAAkB;AAC3B,MAAM,OAAO,oBAAoB,CAAC;AAClC,QAAQ,aAAa,EAAE,cAAc;AACrC,QAAQ,WAAW,EAAE,cAAc;AACnC,QAAQ,KAAK;AACb,QAAQ,cAAc,EAAE;AACxB,OAAO,CAAC;AACR,IAAI,KAAK,eAAe;AACxB,MAAM,OAAO,oBAAoB,CAAC;AAClC,QAAQ,aAAa,EAAE,WAAW;AAClC,QAAQ,WAAW,EAAE,WAAW;AAChC,QAAQ,KAAK;AACb,QAAQ,cAAc,EAAE;AACxB,OAAO,CAAC;AACR,IAAI,KAAK,WAAW;AACpB,MAAM,OAAO,oBAAoB,CAAC,KAAK,CAAC;AACxC,IAAI,KAAK,aAAa;AACtB,MAAM,OAAO,kBAAkB,CAAC,KAAK,EAAE,SAAS,EAAE,gBAAgB,CAAC;AACnE,IAAI,KAAK,gBAAgB;AACzB,MAAM,OAAO,kBAAkB,CAAC,KAAK,EAAE,YAAY,EAAE,oBAAoB,CAAC;AAC1E,IAAI,KAAK,yCAAyC;AAClD,MAAM,OAAO,2BAA2B,CAAC,KAAK,CAAC;AAC/C,IAAI,KAAK,0BAA0B;AACnC,IAAI,KAAK,yBAAyB;AAClC,MAAM,OAAO,oBAAoB,CAAC,WAAW,EAAE,KAAK,CAAC;AACrD,IAAI;AACJ,MAAM,OAAO,MAAM;AACnB;AACA;AACA,SAAS,yBAAyB,CAAC,IAAI,EAAE;AACzC,EAAE,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,KAAK,WAAW,EAAE,OAAO,MAAM;AAC7E,EAAE,OAAO,6BAA6B,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC;AACpE;AACA,SAAS,kCAAkC,CAAC,IAAI,EAAE;AAClD,EAAE,OAAO,yBAAyB,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,cAAc;AACrE;AACA,MAAM,mBAAmB,mBAAmB,IAAI,GAAG,EAAE;AACrD,MAAM,0BAA0B,mBAAmB,IAAI,GAAG,CAAC;AAC3D,EAAE,WAAW;AACb,EAAE,SAAS;AACX,EAAE,UAAU;AACZ,EAAE,QAAQ;AACV,EAAE;AACF,CAAC,CAAC;AACF,SAAS,cAAc,CAAC,KAAK,EAAE;AAC/B,EAAE,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE;AAC9B,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,KAAK;AAC5B,EAAE,IAAI,OAAO,KAAK,MAAM,EAAE,OAAO,IAAI;AACrC,EAAE,IAAI,OAAO,KAAK,OAAO,EAAE,OAAO,KAAK;AACvC,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,OAAO,KAAK,EAAE,EAAE,OAAO,MAAM,CAAC,OAAO,CAAC;AAC9E,EAAE,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AAC5G,IAAI,IAAI;AACR,MAAM,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;AAChC,IAAI,CAAC,CAAC,MAAM;AACZ,MAAM,OAAO,KAAK;AAClB,IAAI;AACJ,EAAE;AACF,EAAE,OAAO,KAAK;AACd;AACA,SAAS,aAAa,CAAC,KAAK,EAAE;AAC9B,EAAE,MAAM,GAAG,GAAG,EAAE;AAChB,EAAE,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE;AAC9C,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC,KAAK,CAAC;AACpC,EAAE;AACF,EAAE,OAAO,GAAG;AACZ;AACA,SAAS,mBAAmB,CAAC,WAAW,EAAE,IAAI,EAAE,SAAS,GAAG,EAAE,EAAE;AAChE,EAAE,MAAM,YAAY,GAAG,aAAa,CAAC,WAAW,CAAC,KAAK,CAAC;AACvD,EAAE,MAAM,WAAW,GAAG,EAAE,GAAG,WAAW,CAAC,UAAU,EAAE;AACnD,EAAE,IAAI,IAAI,EAAE;AACZ,IAAI,MAAM,OAAO,GAAG,wBAAwB,CAAC,IAAI,EAAE,SAAS,CAAC;AAC7D,IAAI,KAAK,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE;AAC1D,MAAM,MAAM,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC;AAC5C,MAAM,IAAI,SAAS,KAAK,MAAM,EAAE;AAChC,MAAM,IAAI,WAAW,CAAC,SAAS,CAAC,KAAK,MAAM,EAAE;AAC7C,QAAQ,WAAW,CAAC,SAAS,CAAC,GAAG,SAAS;AAC1C,MAAM;AACN,MAAM,IAAI,SAAS,KAAK,OAAO,EAAE;AACjC,QAAQ,OAAO,WAAW,CAAC,OAAO,CAAC;AACnC,MAAM;AACN,IAAI;AACJ,EAAE;AACF,EAAE,IAAI,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE;AACpC,IAAI,OAAO;AACX,MAAM,GAAG,YAAY;AACrB,MAAM,GAAG,WAAW,CAAC,IAAI;AACzB,MAAM,GAAG;AACT,KAAK;AACL,EAAE;AACF,EAAE,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC;AACpG,EAAE,IAAI,CAAC,cAAc,EAAE;AACvB,IAAI,OAAO,WAAW,CAAC,IAAI,KAAK,MAAM,IAAI,WAAW,CAAC,IAAI,KAAK,IAAI,GAAG,EAAE,GAAG,WAAW,CAAC,IAAI;AAC3F,EAAE;AACF,EAAE,IAAI,WAAW,CAAC,IAAI,KAAK,MAAM,IAAI,WAAW,CAAC,IAAI,KAAK,IAAI,EAAE;AAChE,IAAI,OAAO,EAAE,GAAG,YAAY,EAAE,GAAG,WAAW,EAAE;AAC9C,EAAE;AACF,EAAE,OAAO;AACT,IAAI,GAAG,YAAY;AACnB,IAAI,GAAG,WAAW;AAClB,IAAI,IAAI,EAAE,WAAW,CAAC;AACtB,GAAG;AACH;AACA,SAAS,gBAAgB,CAAC,KAAK,EAAE;AACjC,EAAE,OAAO,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;AACnC;AACA,SAAS,wBAAwB,CAAC,KAAK,EAAE;AACzC,EAAE,OAAO,gBAAgB,CAAC,KAAK,CAAC;AAChC;AACA,SAAS,2BAA2B,CAAC,KAAK,EAAE,MAAM,EAAE;AACpD,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE;AACtC,EAAE,MAAM,gBAAgB,GAAG,MAAM,CAAC,WAAW,EAAE;AAC/C,EAAE,MAAM,GAAG,GAAG,EAAE;AAChB,EAAE,KAAK,MAAM,OAAO,IAAI,KAAK,EAAE;AAC/B,IAAI,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;AAC7C,IAAI,IAAI,CAAC,IAAI,EAAE;AACf,IAAI,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE;AACtC,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE;AAC/C,IAAI,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE;AAC9D,IAAI,IAAI,CAAC,OAAO,EAAE;AAClB,IAAI,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;AAC7C,MAAM,MAAM,UAAU,GAAG,wBAAwB,CAAC,MAAM,CAAC;AACzD,MAAM,IAAI,CAAC,UAAU,EAAE;AACvB,MAAM,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC;AAC1B,IAAI;AACJ,EAAE;AACF,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;AAC1B;AACA,SAAS,mBAAmB,CAAC,MAAM,EAAE;AACrC,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,OAAO,IAAI;AACtC,EAAE,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,OAAO,IAAI;AAC3C,EAAE,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,UAAU,GAAG,EAAE;AAC3E,EAAE,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;AAC7G,EAAE,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,wBAAwB,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE;AAC1J,EAAE,MAAM,YAAY,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACnF,EAAE,MAAM,mBAAmB,GAAG,MAAM,CAAC,oBAAoB,KAAK,KAAK;AACnE,EAAE,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,IAAI;AAC1E,EAAE,OAAO;AACT,IAAI,YAAY;AAChB,IAAI,YAAY;AAChB,IAAI;AACJ,GAAG;AACH;AACA,SAAS,2BAA2B,CAAC,QAAQ,EAAE,IAAI,EAAE;AACrD,EAAE,MAAM,SAAS,GAAG,gBAAgB,CAAC,IAAI,CAAC,cAAc,CAAC;AACzD,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,IAAI;AAC7B,EAAE,MAAM,OAAO,GAAG,UAAU,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,OAAO,GAAG,EAAE;AAC3F,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,OAAO,IAAI;AACvC,EAAE,OAAO,OAAO,CAAC,SAAS,CAAC,IAAI,IAAI;AACnC;AACA,SAAS,sBAAsB,CAAC,IAAI,EAAE,SAAS,EAAE;AACjD,EAAE,MAAM,QAAQ,GAAG,qBAAqB,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC;AAChE,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,IAAI;AAC5B,EAAE,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,KAAK;AACpE,EAAE,MAAM,iBAAiB,GAAG,2BAA2B,CAAC,KAAK,EAAE,gBAAgB,CAAC;AAChF,EAAE,MAAM,iBAAiB,GAAG,2BAA2B,CAAC,KAAK,EAAE,gBAAgB,CAAC;AAChF,EAAE,MAAM,cAAc,GAAG,mBAAmB,CAAC,2BAA2B,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AACzF,EAAE,MAAM,YAAY,mBAAmB,IAAI,GAAG,CAAC,CAAC,GAAG,iBAAiB,EAAE,GAAG,cAAc,EAAE,YAAY,IAAI,EAAE,CAAC,CAAC;AAC7G,EAAE,MAAM,YAAY,mBAAmB,IAAI,GAAG,CAAC,CAAC,GAAG,iBAAiB,EAAE,GAAG,cAAc,EAAE,YAAY,IAAI,EAAE,CAAC,CAAC;AAC7G,EAAE,KAAK,MAAM,SAAS,IAAI,YAAY,EAAE,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC;AACtE,EAAE,MAAM,QAAQ,GAAG,CAAC,GAAG,YAAY,CAAC;AACpC,EAAE,MAAM,QAAQ,GAAG,CAAC,GAAG,YAAY,CAAC;AACpC,EAAE,MAAM,mBAAmB,GAAG,iBAAiB,CAAC,MAAM,GAAG,CAAC,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,cAAc,EAAE,mBAAmB,CAAC;AAC1I,EAAE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,mBAAmB,EAAE;AAC9E,IAAI,OAAO,IAAI;AACf,EAAE;AACF,EAAE,OAAO;AACT,IAAI,YAAY,EAAE,QAAQ;AAC1B,IAAI,YAAY,EAAE,QAAQ;AAC1B,IAAI;AACJ,GAAG;AACH;AACA,SAAS,gBAAgB,CAAC,KAAK,EAAE;AACjC,EAAE,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,IAAI,EAAE,OAAO,KAAK;AACtD,EAAE,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;AAC/D,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC;AACnD,EAAE,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC;AACrE,EAAE,OAAO,IAAI;AACb;AACA,SAAS,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE;AACnD,EAAE,IAAI,OAAO,KAAK,SAAS,EAAE;AAC7B,IAAI,OAAO,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,IAAI,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC;AACvI,EAAE;AACF,EAAE,IAAI,OAAO,KAAK,WAAW,EAAE;AAC/B,IAAI,OAAO,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC;AAC5D,EAAE;AACF,EAAE,OAAO,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAC3C;AACA,SAAS,2BAA2B,CAAC,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE;AAC5E,EAAE,MAAM,OAAO,GAAG,mBAAmB,CAAC,WAAW,EAAE,IAAI,EAAE,SAAS,CAAC;AACnE,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,OAAO,IAAI;AACvC,EAAE,MAAM,MAAM,GAAG,EAAE,GAAG,OAAO,EAAE;AAC/B,EAAE,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,gBAAgB,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE;AACnF,IAAI,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC;AACjD,EAAE;AACF,EAAE,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;AACzC,IAAI,MAAM,eAAe,GAAG,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,SAAS;AAClE,IAAI,IAAI,gBAAgB,CAAC,eAAe,CAAC,EAAE;AAC3C,MAAM,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,eAAe,CAAC;AAC9C,IAAI;AACJ,EAAE;AACF,EAAE,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE;AACjF,IAAI,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC;AAC/C,EAAE;AACF,EAAE,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE;AAC7E,IAAI,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC;AAC3C,EAAE;AACF,EAAE,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,gBAAgB,CAAC,OAAO,EAAE,cAAc,CAAC,EAAE;AAC7F,IAAI,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,OAAO,EAAE,cAAc,CAAC;AAC3D,EAAE;AACF,EAAE,OAAO,MAAM;AACf;AACA,SAAS,0BAA0B,CAAC,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE;AACpE,EAAE,MAAM,KAAK,GAAG,EAAE;AAClB,EAAE,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;AACtF,EAAE,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;AACtF,EAAE,KAAK,MAAM,UAAU,IAAI,0BAA0B,EAAE,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;AACjG,EAAE,MAAM,IAAI,GAAG,QAAQ,CAAC,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE;AACtG,EAAE,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,aAAa,KAAK;AACtD,IAAI,KAAK,MAAM,WAAW,IAAI,QAAQ,CAAC,YAAY,EAAE;AACrD,MAAM,IAAI,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE;AACzD,MAAM,aAAa,CAAC,QAAQ,CAAC;AAC7B,QAAQ,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;AACnC,QAAQ,OAAO,EAAE,CAAC,qBAAqB,EAAE,WAAW,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;AAC/E,QAAQ,IAAI,EAAE,CAAC,WAAW;AAC1B,OAAO,CAAC;AACR,IAAI;AACJ,EAAE,CAAC,CAAC;AACJ;AACA,SAAS,6BAA6B,CAAC,IAAI,EAAE,KAAK,EAAE;AACpD,EAAE,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;AACpC,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,kBAAkB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AACjE,EAAE,IAAI,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,uBAAuB,CAAC,EAAE,OAAO,UAAU,CAAC,OAAO;AACvF,EAAE,IAAI,UAAU,CAAC,IAAI,KAAK,mBAAmB,EAAE;AAC/C,IAAI,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM;AACxG,IAAI,IAAI,UAAU,EAAE;AACpB,MAAM,OAAO,CAAC,kBAAkB,EAAE,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AAC5E,IAAI;AACJ,EAAE;AACF,EAAE,OAAO,CAAC,kBAAkB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AAChD;AACA,SAAS,uBAAuB,CAAC,IAAI,EAAE;AACvC,EAAE,OAAO,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI;AACrD;AACA,SAAS,uBAAuB,CAAC,IAAI,EAAE;AACvC,EAAE,MAAM,MAAM,GAAG,uBAAuB,CAAC,IAAI,CAAC;AAC9C,EAAE,OAAO,MAAM,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,EAAE;AACjE;AACA,SAAS,wBAAwB,CAAC,IAAI,EAAE;AACxC,EAAE,MAAM,MAAM,GAAG,uBAAuB,CAAC,IAAI,CAAC;AAC9C,EAAE,OAAO,MAAM,IAAI,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,OAAO,GAAG,EAAE;AACnE;AACA,SAAS,qBAAqB,CAAC,IAAI,EAAE;AACrC,EAAE,MAAM,MAAM,GAAG,uBAAuB,CAAC,IAAI,CAAC;AAC9C,EAAE,OAAO,MAAM,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,GAAG,EAAE;AAC7D;AACA,SAAS,sBAAsB,CAAC,KAAK,EAAE;AACvC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE;AACtC,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,gBAAgB,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AAClG;AACA,SAAS,sBAAsB,CAAC,OAAO,EAAE;AACzC,EAAE,OAAO,OAAO,EAAE,SAAS,IAAI,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI;AACvF;AACA,SAAS,yBAAyB,CAAC,OAAO,EAAE;AAC5C,EAAE,MAAM,SAAS,GAAG,sBAAsB,CAAC,OAAO,CAAC;AACnD,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,KAAK;AAC9B,EAAE,MAAM,WAAW,GAAG,gBAAgB,CAAC,SAAS,CAAC,EAAE,IAAI,SAAS,CAAC,MAAM,CAAC;AACxE,EAAE,OAAO,WAAW,CAAC,MAAM,GAAG,CAAC;AAC/B;AACA,SAAS,qBAAqB,CAAC,OAAO,EAAE;AACxC,EAAE,OAAO,IAAI,GAAG,CAAC,sBAAsB,CAAC,sBAAsB,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC;AAChF;AACA,SAAS,4BAA4B,CAAC,OAAO,EAAE;AAC/C,EAAE,MAAM,SAAS,GAAG,sBAAsB,CAAC,OAAO,CAAC;AACnD,EAAE,OAAO,IAAI,GAAG,CAAC,sBAAsB,CAAC,SAAS,EAAE,WAAW,IAAI,SAAS,EAAE,YAAY,CAAC,CAAC;AAC3F;AACA,SAAS,uBAAuB,CAAC,OAAO,EAAE;AAC1C,EAAE,OAAO,OAAO,OAAO,EAAE,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,OAAO,EAAE,SAAS,KAAK,QAAQ,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;AACnK;AACA,SAAS,6BAA6B,CAAC,MAAM,EAAE;AAC/C,EAAE,MAAM,IAAI,GAAG,qBAAqB,CAAC,MAAM,CAAC,IAAI,CAAC;AACjD,EAAE,MAAM,MAAM,GAAG,uBAAuB,CAAC,MAAM,CAAC,IAAI,CAAC;AACrD,EAAE,MAAM,aAAa,GAAG,wBAAwB,CAAC,MAAM,CAAC,IAAI,CAAC;AAC7D,EAAE,MAAM,aAAa,GAAG,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC;AAC1D,EAAE,MAAM,oBAAoB,GAAG,sBAAsB,CAAC,IAAI,CAAC,YAAY,CAAC;AACxE,EAAE,MAAM,gBAAgB,GAAG,yBAAyB,CAAC,MAAM,CAAC,OAAO,CAAC;AACpE,EAAE,MAAM,cAAc,GAAG,qBAAqB,CAAC,MAAM,CAAC,OAAO,CAAC;AAC9D,EAAE,MAAM,qBAAqB,GAAG,4BAA4B,CAAC,MAAM,CAAC,OAAO,CAAC;AAC5E,EAAE,MAAM,cAAc,GAAG,aAAa,CAAC,MAAM,KAAK,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC7G,EAAE,MAAM,qBAAqB,GAAG,oBAAoB,CAAC,MAAM,KAAK,CAAC,IAAI,qBAAqB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC,UAAU,KAAK,qBAAqB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AACvL,EAAE,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,oBAAoB,CAAC,MAAM,GAAG,CAAC;AAC5G,EAAE,MAAM,mBAAmB,GAAG,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,oBAAoB,CAAC,MAAM,GAAG,CAAC;AACzF,EAAE,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,KAAK,IAAI;AACrD,EAAE,MAAM,oBAAoB,GAAG,MAAM,CAAC,oBAAoB,KAAK,IAAI;AACnE,EAAE,MAAM,aAAa,GAAG,aAAa,CAAC,aAAa,KAAK,IAAI,IAAI,aAAa,CAAC,eAAe,KAAK,IAAI;AACtG,EAAE,OAAO;AACT,IAAI,YAAY;AAChB,IAAI,gBAAgB;AACpB,IAAI,aAAa,EAAE,CAAC,CAAC,YAAY,IAAI,gBAAgB,MAAM,CAAC,mBAAmB,IAAI,cAAc,IAAI,qBAAqB,CAAC;AAC3H,IAAI,aAAa;AACjB,IAAI,cAAc;AAClB,IAAI,oBAAoB;AACxB,IAAI,qBAAqB;AACzB,IAAI,aAAa;AACjB,IAAI,cAAc,EAAE,CAAC,aAAa,IAAI,MAAM,CAAC,KAAK,KAAK,IAAI;AAC3D,IAAI,oBAAoB;AACxB,IAAI,qBAAqB,EAAE,CAAC,oBAAoB,IAAI,MAAM,CAAC,OAAO,KAAK,IAAI;AAC3E,IAAI,aAAa;AACjB,IAAI,cAAc,EAAE,CAAC,aAAa,IAAI,uBAAuB,CAAC,MAAM,CAAC,OAAO;AAC5E,GAAG;AACH;AACA,SAAS,wBAAwB,CAAC,MAAM,EAAE;AAC1C,EAAE,MAAM,YAAY,GAAG,6BAA6B,CAAC;AACrD,IAAI,IAAI,EAAE,MAAM,CAAC,IAAI;AACrB,IAAI,KAAK,EAAE,MAAM,CAAC,KAAK;AACvB,IAAI,OAAO,EAAE,MAAM,CAAC;AACpB,GAAG,CAAC;AACJ,EAAE,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE;AACpC,IAAI,OAAO;AACX,MAAM,EAAE,EAAE,KAAK;AACf,MAAM,OAAO,EAAE,CAAC,eAAe,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;AACpD,KAAK;AACL,EAAE;AACF,EAAE,IAAI,CAAC,YAAY,CAAC,qBAAqB,EAAE;AAC3C,IAAI,OAAO;AACX,MAAM,EAAE,EAAE,KAAK;AACf,MAAM,OAAO,EAAE,CAAC,sBAAsB,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;AAC3D,KAAK;AACL,EAAE;AACF,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE;AACrB;AACA,SAAS,+BAA+B,CAAC,MAAM,EAAE;AACjD,EAAE,MAAM,YAAY,GAAG,6BAA6B,CAAC;AACrD,IAAI,IAAI,EAAE,MAAM,CAAC,IAAI;AACrB,IAAI,OAAO,EAAE,MAAM,CAAC;AACpB,GAAG,CAAC;AACJ,EAAE,IAAI,YAAY,CAAC,YAAY,IAAI,CAAC,YAAY,CAAC,gBAAgB,EAAE;AACnE,IAAI,OAAO;AACX,MAAM,EAAE,EAAE,KAAK;AACf,MAAM,OAAO,EAAE;AACf,KAAK;AACL,EAAE;AACF,EAAE,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE;AACnC,IAAI,OAAO;AACX,MAAM,EAAE,EAAE,KAAK;AACf,MAAM,OAAO,EAAE;AACf,KAAK;AACL,EAAE;AACF,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE;AACrB;AACA,SAAS,uBAAuB,CAAC,MAAM,EAAE;AACzC,EAAE,MAAM,YAAY,GAAG,6BAA6B,CAAC;AACrD,IAAI,IAAI,EAAE,MAAM,CAAC,IAAI;AACrB,IAAI,OAAO,EAAE,MAAM,CAAC;AACpB,GAAG,CAAC;AACJ,EAAE,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE;AACpC,IAAI,OAAO;AACX,MAAM,EAAE,EAAE,KAAK;AACf,MAAM,OAAO,EAAE;AACf,KAAK;AACL,EAAE;AACF,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE;AACrB;AACA,SAAS,2BAA2B,CAAC,MAAM,EAAE;AAC7C,EAAE,MAAM,QAAQ,GAAG,sBAAsB,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC;AACxE,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE;AACpC,EAAE,MAAM,OAAO,GAAG,2BAA2B,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC;AAChH,EAAE,IAAI,CAAC,OAAO,EAAE;AAChB,IAAI,IAAI,QAAQ,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE;AAC/D,IAAI,MAAM,aAAa,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,OAAO;AAC7D,IAAI,IAAI,aAAa,KAAK,SAAS,IAAI,aAAa,KAAK,WAAW,EAAE;AACtE,MAAM,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,kBAAkB,EAAE;AACvD,IAAI;AACJ,IAAI,OAAO;AACX,MAAM,EAAE,EAAE,KAAK;AACf,MAAM,OAAO,EAAE,CAAC,qBAAqB,EAAE,aAAa,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;AAC1F,KAAK;AACL,EAAE;AACF,EAAE,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK;AAChI,IAAI,CAAC,OAAO,KAAK,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,WAAW,GAAG,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG;AACvH,GAAG,EAAE;AACL,IAAI,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,kBAAkB,EAAE;AACrD,EAAE;AACF,EAAE,MAAM,MAAM,GAAG,0BAA0B,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC;AACjH,EAAE,IAAI,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE;AACzC,EAAE,OAAO;AACT,IAAI,EAAE,EAAE,KAAK;AACb,IAAI,OAAO,EAAE,6BAA6B,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK;AACpE,GAAG;AACH;AACA,SAAS,kBAAkB,CAAC,MAAM,EAAE;AACpC,EAAE,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,eAAe;AAC5D,EAAE,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC;AACzB,EAAE,MAAM,KAAK,GAAG,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,YAAY,GAAG,GAAG;AAC9F,EAAE,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO;AAChD,EAAE,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE;AACrC;AACA,SAAS,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE;AAClD,EAAE,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAK,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,eAAe,CAAC,MAAM,CAAC,CAAC,IAAI,IAAI;AAC9G;AACA,SAAS,sBAAsB,CAAC,MAAM,EAAE,QAAQ,EAAE;AAClD,EAAE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC;AACtB,IAAI,SAAS,EAAE,IAAI;AACnB,IAAI,MAAM,EAAE,KAAK;AACjB,IAAI,WAAW,EAAE,KAAK;AACtB,IAAI,eAAe,EAAE;AACrB,GAAG,CAAC;AACJ,EAAE,MAAM,OAAO,GAAG,UAAU,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,SAAS,EAAE,OAAO,GAAG,EAAE;AAC5F,EAAE,KAAK,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE;AACnE,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE;AAC3B,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;AAC7B,IAAI,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAC1D,EAAE;AACF,EAAE,MAAM,KAAK,GAAG;AAChB,IAAI,GAAG;AACP,IAAI,UAAU,kBAAkB,IAAI,GAAG;AACvC,GAAG;AACH,EAAE,mBAAmB,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC;AACxC,EAAE,OAAO,KAAK;AACd;AACA,SAAS,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE;AACjD,EAAE,MAAM,gBAAgB,GAAG,eAAe,CAAC,MAAM,CAAC;AAClD,EAAE,IAAI,CAAC,gBAAgB,EAAE,OAAO,IAAI;AACpC,EAAE,MAAM,QAAQ,GAAG,mBAAmB,CAAC,GAAG,CAAC,gBAAgB,CAAC;AAC5D,EAAE,IAAI,QAAQ,EAAE,OAAO,QAAQ;AAC/B,EAAE,MAAM,QAAQ,GAAG,qBAAqB,CAAC,SAAS,EAAE,gBAAgB,CAAC;AACrE,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,IAAI;AAC5B,EAAE,OAAO,sBAAsB,CAAC,gBAAgB,EAAE,QAAQ,CAAC;AAC3D;AACA,SAAS,8BAA8B,CAAC,MAAM,EAAE;AAChD,EAAE,MAAM,gBAAgB,GAAG,eAAe,CAAC,EAAE,CAAC;AAC9C,EAAE,IAAI,gBAAgB,EAAE;AACxB,IAAI,mBAAmB,CAAC,MAAM,CAAC,gBAAgB,CAAC;AAChD,IAAI;AACJ,EAAE;AACF,EAAE,mBAAmB,CAAC,KAAK,EAAE;AAC7B;AACA,SAAS,qBAAqB,CAAC,IAAI,EAAE,SAAS,EAAE;AAChD,EAAE,MAAM,SAAS,GAAG,OAAO,IAAI,CAAC,cAAc,KAAK,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE;AAC7F,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,IAAI;AAC7B,EAAE,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC;AAC7C,EAAE,MAAM,KAAK,GAAG,oBAAoB,CAAC,MAAM,EAAE,SAAS,CAAC;AACvD,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,IAAI;AACzB,EAAE,MAAM,QAAQ,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;AAC3C,EAAE,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC;AACjD,EAAE,IAAI,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE;AACvD,EAAE,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC;AAChD,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,IAAI;AAC5B,EAAE,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC;AAC1C,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE;AAC/B;AACA,SAAS,yBAAyB,CAAC,MAAM,EAAE;AAC3C,EAAE,MAAM,SAAS,GAAG,qBAAqB,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC;AACxE,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE;AACrC,EAAE,MAAM,OAAO,GAAG,mBAAmB,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC;AACxF,EAAE,MAAM,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;AAC3C,EAAE,IAAI,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE;AAChC,EAAE,MAAM,MAAM,GAAG,kBAAkB,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;AAC9D,EAAE,OAAO;AACT,IAAI,EAAE,EAAE,KAAK;AACb,IAAI,OAAO,EAAE,CAAC,0BAA0B,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC;AACvE,GAAG;AACH;AACA,MAAM,8BAA8B,GAAG;AACvC,EAAE,iBAAiB;AACnB,EAAE,0BAA0B;AAC5B,EAAE,wBAAwB;AAC1B,EAAE,wBAAwB;AAC1B,EAAE;AACF,CAAC;AACD,MAAM,oCAAoC,GAAG;AAC7C,EAAE,wBAAwB;AAC1B,EAAE;AACF,CAAC;AACD,MAAM,mCAAmC,GAAG,qMAAqM;AACjP,SAAS,oBAAoB,CAAC,MAAM,EAAE;AACtC,EAAE,OAAO,MAAM,IAAI;AACnB,IAAI,OAAO,EAAE,IAAI;AACjB,IAAI,YAAY,EAAE,IAAI;AACtB,IAAI,OAAO,EAAE,EAAE;AACf,IAAI,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAE;AACpD,GAAG;AACH;AACA,SAAS,iBAAiB,CAAC,KAAK,EAAE;AAClC,EAAE,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,OAAO,MAAM;AAC9C,EAAE,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE;AACjC,EAAE,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,GAAG,UAAU,GAAG,MAAM;AACpD;AACA,SAAS,QAAQ,CAAC,KAAK,EAAE;AACzB,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;AAC7E;AACA,SAAS,uBAAuB,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE;AACnD,EAAE,IAAI,KAAK,GAAG,CAAC,EAAE,OAAO,aAAa;AACrC,EAAE,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACjC,IAAI,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE;AACnC,IAAI,OAAO,UAAU,CAAC,MAAM,IAAI,GAAG,GAAG,UAAU,GAAG,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC;AACnF,EAAE;AACF,EAAE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,MAAM,EAAE;AACrG,IAAI,OAAO,KAAK;AAChB,EAAE;AACF,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAC5B,IAAI,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,uBAAuB,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;AACvF,EAAE;AACF,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,MAAM,CAAC,KAAK,CAAC;AAC5C,EAAE,MAAM,IAAI,GAAG,EAAE;AACjB,EAAE,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACpD,IAAI,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,EAAE;AACnC,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE;AAC9H,MAAM;AACN,IAAI;AACJ,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,uBAAuB,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC;AACzD,EAAE;AACF,EAAE,OAAO,IAAI;AACb;AACA,SAAS,oBAAoB,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE;AACvD,EAAE,MAAM,YAAY,GAAG,iBAAiB,CAAC,EAAE,CAAC;AAC5C,EAAE,IAAI,CAAC,YAAY,EAAE;AACrB,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,KAAK,IAAI,IAAI,KAAK,CAAC,EAAE,KAAK,YAAY,CAAC,EAAE;AAChF,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC;AACzC;AACA,SAAS,mBAAmB,CAAC,KAAK,EAAE,IAAI,EAAE;AAC1C,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;AACxB,EAAE,oBAAoB,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC;AACpD,EAAE,oBAAoB,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC;AACxD,EAAE,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;AAClD,EAAE,oBAAoB,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC;AACtD,EAAE,oBAAoB,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC;AAC5D,EAAE,oBAAoB,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC;AACpD,EAAE,oBAAoB,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC;AAC1D,EAAE,oBAAoB,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC;AACtD,EAAE,oBAAoB,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,CAAC,eAAe,CAAC;AACrE,EAAE,oBAAoB,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC;AACpD,EAAE,oBAAoB,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,CAAC,cAAc,CAAC;AACnE,EAAE,oBAAoB,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC;AAC1D,EAAE,oBAAoB,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC;AAC1D,EAAE,oBAAoB,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,WAAW,CAAC;AACrE,EAAE,oBAAoB,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,kBAAkB,CAAC;AACtF,EAAE,oBAAoB,CAAC,IAAI,EAAE,qBAAqB,EAAE,KAAK,CAAC,oBAAoB,CAAC;AAC/E,EAAE,oBAAoB,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC;AAC1D,EAAE,oBAAoB,CAAC,IAAI,EAAE,kBAAkB,EAAE,KAAK,CAAC,iBAAiB,CAAC;AACzE,EAAE,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;AAClD,EAAE,oBAAoB,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,CAAC,aAAa,CAAC;AACjE,EAAE,oBAAoB,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC;AACxD,EAAE,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,mBAAmB,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC;AACjE,EAAE,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,mBAAmB,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC;AACnE,EAAE,IAAI,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,mBAAmB,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC;AACzE,EAAE,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,mBAAmB,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC;AACrE;AACA,SAAS,4BAA4B,CAAC,IAAI,EAAE;AAC5C,EAAE,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;AAC5E,EAAE,OAAO,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,QAAQ;AAClD;AACA,SAAS,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE;AAChD,EAAE,MAAM,MAAM,GAAG,4BAA4B,CAAC,IAAI,CAAC;AACnD,EAAE,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,WAAW;AAClT,EAAE,MAAM,OAAO,GAAG;AAClB,IAAI,MAAM,EAAE,SAAS;AACrB,IAAI,GAAG,EAAE,OAAO;AAChB,IAAI,MAAM,EAAE,SAAS;AACrB,IAAI,GAAG,EAAE,SAAS;AAClB,IAAI,OAAO,EAAE,WAAW;AACxB,IAAI,MAAM,EAAE,SAAS;AACrB,IAAI,MAAM,EAAE,SAAS;AACrB,IAAI,OAAO,EAAE,UAAU;AACvB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,MAAM,EAAE,SAAS;AACrB,IAAI,GAAG,EAAE,UAAU;AACnB,IAAI,KAAK,EAAE,SAAS;AACpB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,MAAM,EAAE,UAAU;AACtB,IAAI,OAAO,EAAE,UAAU;AACvB,IAAI,KAAK,EAAE,SAAS;AACpB,IAAI,IAAI,EAAE,SAAS;AACnB,IAAI,MAAM,EAAE,WAAW;AACvB,IAAI,SAAS,EAAE,aAAa;AAC5B,IAAI,OAAO,EAAE,UAAU;AACvB,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,KAAK,EAAE,SAAS;AACpB,IAAI,MAAM,EAAE,UAAU;AACtB,IAAI,KAAK,EAAE;AACX,GAAG;AACH,EAAE,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM;AAClD,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC;AACjF,EAAE,OAAO,MAAM,KAAK,SAAS,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC;AACzG;AACA,SAAS,kCAAkC,CAAC,IAAI,EAAE,IAAI,EAAE;AACxD,EAAE,MAAM,gBAAgB,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC;AACvD,EAAE,IAAI,CAAC,gBAAgB,EAAE,OAAO,KAAK;AACrC,EAAE,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE,OAAO,KAAK;AACzC,EAAE,IAAI,gBAAgB,CAAC,UAAU,CAAC,2BAA2B,CAAC,EAAE,OAAO,KAAK;AAC5E,EAAE,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE,OAAO,KAAK;AAChE,EAAE,OAAO,mCAAmC,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,mCAAmC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;AAC7J;AACA,SAAS,gCAAgC,CAAC,OAAO,EAAE;AACnD,EAAE,MAAM,SAAS,GAAG,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,CAAC;AAClE,EAAE,IAAI,SAAS,KAAK,UAAU,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,QAAQ,EAAE;AAC/G,IAAI,OAAO,SAAS;AACpB,EAAE;AACF,EAAE,OAAO,QAAQ;AACjB;AACA,SAAS,eAAe,CAAC,MAAM,EAAE;AACjC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO,MAAM;AAC3C,EAAE,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;AACtF,EAAE,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,GAAG,UAAU,GAAG,MAAM;AACpD;AACA,SAAS,gBAAgB,CAAC,GAAG,KAAK,EAAE;AACpC,EAAE,MAAM,MAAM,mBAAmB,IAAI,GAAG,EAAE;AAC1C,EAAE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AAC5B,IAAI,KAAK,MAAM,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE;AACpC,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;AACnD,MAAM,IAAI,CAAC,UAAU,EAAE;AACvB,MAAM,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC;AAC5B,IAAI;AACJ,EAAE;AACF,EAAE,OAAO,MAAM,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,MAAM;AAC/C;AACA,SAAS,eAAe,CAAC,KAAK,EAAE;AAChC,EAAE,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,IAAI;AAC9E,EAAE,MAAM,KAAK,GAAG,KAAK;AACrB,EAAE,MAAM,OAAO,GAAG,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,MAAM;AACtH,EAAE,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC;AAC5C,EAAE,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC;AAClD,EAAE,MAAM,YAAY,GAAG,eAAe,CAAC,KAAK,CAAC,YAAY,CAAC;AAC1D,EAAE,MAAM,aAAa,GAAG,eAAe,CAAC,KAAK,CAAC,aAAa,CAAC;AAC5D,EAAE,MAAM,cAAc,GAAG,eAAe,CAAC,KAAK,CAAC,cAAc,CAAC;AAC9D,EAAE,MAAM,IAAI,GAAG;AACf,IAAI,GAAG,OAAO,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE;AACjC,IAAI,GAAG,KAAK,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE;AAC7B,IAAI,GAAG,QAAQ,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE;AACnC,IAAI,GAAG,YAAY,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE;AAC3C,IAAI,GAAG,aAAa,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE;AAC7C,IAAI,GAAG,cAAc,GAAG,EAAE,cAAc,EAAE,GAAG;AAC7C,GAAG;AACH,EAAE,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI;AACnD;AACA,SAAS,YAAY,CAAC,KAAK,EAAE;AAC7B,EAAE,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,IAAI;AAC9E,EAAE,MAAM,KAAK,GAAG,KAAK;AACrB,EAAE,MAAM,OAAO,GAAG,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,MAAM;AACtH,EAAE,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC;AAC5C,EAAE,MAAM,IAAI,GAAG;AACf,IAAI,GAAG,OAAO,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE;AACjC,IAAI,GAAG,KAAK,GAAG,EAAE,KAAK,EAAE,GAAG;AAC3B,GAAG;AACH,EAAE,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI;AACnD;AACA,SAAS,2BAA2B,CAAC,QAAQ,EAAE,MAAM,EAAE;AACvD,EAAE,MAAM,gBAAgB,GAAG,eAAe,CAAC,MAAM,IAAI,EAAE,CAAC;AACxD,EAAE,MAAM,gBAAgB,GAAG,EAAE;AAC7B,EAAE,KAAK,MAAM,QAAQ,IAAI,QAAQ,CAAC,SAAS,EAAE;AAC7C,IAAI,MAAM,cAAc,GAAG,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;AAC9D,IAAI,IAAI,CAAC,cAAc,EAAE;AACzB,IAAI,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,IAAI,cAAc,KAAK,gBAAgB,EAAE;AAC5E,IAAI,MAAM,QAAQ,GAAG,gBAAgB,CAAC,cAAc,CAAC;AACrD,IAAI,MAAM,UAAU,GAAG,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;AAC1D,IAAI,MAAM,SAAS,GAAG,QAAQ,CAAC,YAAY,CAAC,SAAS,IAAI,EAAE;AAC3D,IAAI,MAAM,eAAe,GAAG,QAAQ,CAAC,IAAI,EAAE,SAAS,IAAI,OAAO,QAAQ,CAAC,IAAI,CAAC,SAAS,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,GAAG,EAAE;AAC7K,IAAI,MAAM,eAAe,GAAG,IAAI,GAAG;AACnC,MAAM,CAAC,QAAQ,EAAE,SAAS,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,QAAQ,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC;AACpG,KAAK;AACL,IAAI,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;AACtC,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE;AAC/E,MAAM,IAAI,CAAC,UAAU,EAAE;AACvB,MAAM,MAAM,WAAW,GAAG,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,eAAe,CAAC,UAAU,CAAC;AAC7F,MAAM,MAAM,QAAQ,GAAG,YAAY,CAAC,WAAW,CAAC;AAChD,MAAM,MAAM,OAAO,GAAG,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC;AACrD,MAAM,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,KAAK,MAAM,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,UAAU,CAAC;AACzF,MAAM,MAAM,IAAI,GAAG,OAAO,EAAE,IAAI,KAAK,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,MAAM,CAAC;AAC1I,MAAM,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,KAAK,OAAO,QAAQ,CAAC,SAAS,KAAK,QAAQ,IAAI,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,MAAM,CAAC;AACnK,MAAM,eAAe,CAAC,GAAG,CAAC,UAAU,EAAE;AACtC,QAAQ,UAAU;AAClB,QAAQ,KAAK;AACb,QAAQ,IAAI;AACZ,QAAQ,SAAS;AACjB,QAAQ,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,OAAO;AACtD,QAAQ,KAAK,EAAE,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK;AAC/D,OAAO,CAAC;AACR,IAAI;AACJ,IAAI,MAAM,WAAW,GAAG,QAAQ,EAAE,WAAW,KAAK,OAAO,QAAQ,CAAC,MAAM,CAAC,WAAW,KAAK,QAAQ,IAAI,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,MAAM,CAAC;AACjM,IAAI,MAAM,OAAO,GAAG,QAAQ,EAAE,OAAO,IAAI,UAAU,EAAE,OAAO,IAAI,WAAW;AAC3E,IAAI,MAAM,KAAK,GAAG,gBAAgB,CAAC,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC;AACtE,IAAI,gBAAgB,CAAC,cAAc,CAAC,GAAG;AACvC,MAAM,MAAM,EAAE,cAAc;AAC5B,MAAM,WAAW,EAAE,QAAQ,EAAE,WAAW,KAAK,OAAO,QAAQ,CAAC,MAAM,CAAC,WAAW,KAAK,QAAQ,IAAI,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,MAAM,CAAC;AAC5L,MAAM,GAAG,WAAW,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE;AAC3C,MAAM,GAAG,OAAO,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE;AACnC,MAAM,GAAG,KAAK,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE;AAC/B,MAAM,GAAG,eAAe,CAAC,IAAI,GAAG,CAAC,GAAG;AACpC,QAAQ,SAAS,EAAE,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC;AAC5G,OAAO,GAAG;AACV,KAAK;AACL,EAAE;AACF,EAAE,OAAO,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,gBAAgB,GAAG,MAAM;AAC7E;AACA,SAAS,+BAA+B,CAAC,QAAQ,EAAE,MAAM,EAAE;AAC3D,EAAE,MAAM,gBAAgB,GAAG,eAAe,CAAC,MAAM,IAAI,EAAE,CAAC;AACxD,EAAE,MAAM,iBAAiB,GAAG,EAAE;AAC9B,EAAE,KAAK,MAAM,QAAQ,IAAI,QAAQ,CAAC,SAAS,EAAE;AAC7C,IAAI,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,IAAI,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,gBAAgB,EAAE;AACjG,IAAI,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,EAAE,UAAU;AAChD,IAAI,IAAI,CAAC,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;AACpF,IAAI,KAAK,MAAM,CAAC,cAAc,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;AACtE,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE;AAC3E,MAAM,IAAI,CAAC,WAAW,EAAE;AACxB,MAAM,MAAM,IAAI,GAAG,eAAe,CAAC,KAAK,CAAC;AACzC,MAAM,IAAI,CAAC,IAAI,EAAE;AACjB,MAAM,iBAAiB,CAAC,WAAW,CAAC,GAAG,IAAI;AAC3C,IAAI;AACJ,EAAE;AACF,EAAE,OAAO,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,iBAAiB,GAAG,MAAM;AAC/E;AACA,SAAS,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE;AAC3C,EAAE,MAAM,gBAAgB,GAAG,eAAe,CAAC,MAAM,IAAI,EAAE,CAAC;AACxD,EAAE,MAAM,KAAK,GAAG,gBAAgB,CAAC,MAAM,GAAG,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,gBAAgB,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK;AACjK,EAAE,MAAM,0BAA0B,GAAG,+BAA+B,CAAC,QAAQ,EAAE,MAAM,CAAC;AACtF,EAAE,MAAM,sBAAsB,GAAG,2BAA2B,CAAC,QAAQ,EAAE,MAAM,CAAC;AAC9E,EAAE,OAAO;AACT,IAAI,cAAc,EAAE,QAAQ,CAAC,OAAO,CAAC,cAAc;AACnD,IAAI,WAAW,EAAE,QAAQ,CAAC,OAAO,CAAC,WAAW;AAC7C,IAAI,KAAK;AACT,IAAI,MAAM,EAAE,QAAQ,CAAC,MAAM;AAC3B,IAAI,GAAG,0BAA0B,GAAG,EAAE,0BAA0B,EAAE,GAAG,EAAE;AACvE,IAAI,GAAG,sBAAsB,GAAG,EAAE,sBAAsB,EAAE,GAAG;AAC7D,GAAG;AACH;AACA,SAAS,kCAAkC,CAAC,QAAQ,EAAE,IAAI,EAAE;AAC5D,EAAE,MAAM,cAAc,GAAG,OAAO,IAAI,CAAC,cAAc,KAAK,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE;AAClG,EAAE,IAAI,CAAC,cAAc,EAAE,OAAO,IAAI;AAClC,EAAE,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC;AACjD,EAAE,KAAK,MAAM,QAAQ,IAAI,QAAQ,CAAC,SAAS,EAAE;AAC7C,IAAI,IAAI,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,UAAU,EAAE;AAC5D,IAAI,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,EAAE,OAAO,GAAG,cAAc,CAAC;AAChE,IAAI,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;AACxE,MAAM,OAAO,MAAM;AACnB,IAAI;AACJ,EAAE;AACF,EAAE,OAAO,IAAI;AACb;AACA,SAAS,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE;AAChE,EAAE,OAAO;AACT,IAAI,IAAI,EAAE;AACV,MAAM,GAAG,IAAI;AACb,MAAM,QAAQ,EAAE,MAAM,CAAC,EAAE;AACzB,MAAM,UAAU,EAAE,MAAM,CAAC,IAAI;AAC7B,MAAM,aAAa,EAAE,MAAM,CAAC,OAAO;AACnC,MAAM,iBAAiB,EAAE,MAAM,CAAC;AAChC,KAAK;AACL,IAAI,MAAM;AACV,IAAI,IAAI;AACR,IAAI;AACJ,GAAG;AACH;AACA,SAAS,wBAAwB,CAAC,MAAM,EAAE;AAC1C,EAAE,IAAI,MAAM,CAAC,MAAM,IAAI,GAAG,EAAE,OAAO,KAAK;AACxC,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,IAAI;AAChG,EAAE,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,KAAK;AACjC;AACA,SAAS,uBAAuB,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE;AACrD,EAAE,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC;AAC9B,EAAE,IAAI,QAAQ,KAAK,MAAM,EAAE;AAC3B,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK;AACvB,IAAI;AACJ,EAAE;AACF,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;AAC/B,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;AACxB,IAAI;AACJ,EAAE;AACF,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC;AACjC;AACA,SAAS,oBAAoB,CAAC,KAAK,EAAE;AACrC,EAAE,MAAM,GAAG,GAAG,EAAE;AAChB,EAAE,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE;AAC9C,IAAI,uBAAuB,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC;AAC5C,EAAE;AACF,EAAE,OAAO,GAAG;AACZ;AACA,SAAS,mBAAmB,CAAC,OAAO,EAAE;AACtC,EAAE,MAAM,OAAO,GAAG,EAAE;AACpB,EAAE,IAAI,OAAO,OAAO,EAAE,QAAQ,KAAK,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;AACnF,IAAI,OAAO,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE;AACpD,EAAE;AACF,EAAE,IAAI,OAAO,OAAO,EAAE,MAAM,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;AAC/E,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE;AAC/C,EAAE;AACF,EAAE,IAAI,OAAO,OAAO,EAAE,cAAc,KAAK,QAAQ,IAAI,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;AAC/F,IAAI,OAAO,CAAC,mBAAmB,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE;AAChE,EAAE;AACF,EAAE,IAAI,OAAO,OAAO,EAAE,SAAS,KAAK,QAAQ,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;AACrF,IAAI,OAAO,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE;AACtD,EAAE;AACF,EAAE,OAAO,OAAO;AAChB;AACA,eAAe,sCAAsC,CAAC,MAAM,EAAE;AAC9D,EAAE,MAAM,OAAO,GAAG,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC;AACjE,EAAE,MAAM,SAAS,GAAG,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC;AACrE,EAAE,IAAI,CAAC,OAAO,IAAI,CAAC,SAAS,EAAE;AAC9B,EAAE,MAAM,eAAe,GAAG,OAAO,IAAI,SAAS;AAC9C,EAAE,MAAM,IAAI,GAAG,EAAE;AACjB,EAAE,oBAAoB,CAAC,IAAI,EAAE,OAAO,EAAE,eAAe,CAAC;AACtD,EAAE,oBAAoB,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC;AAClD,EAAE,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC;AAC9C,EAAE,mBAAmB,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC;AAChD,EAAE,MAAM,cAAc,GAAG,IAAI,OAAO,EAAE;AACtC,EAAE,MAAM,QAAQ,GAAG,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;AACnE,EAAE,IAAI,QAAQ,EAAE,cAAc,CAAC,GAAG,CAAC,aAAa,EAAE,QAAQ,CAAC;AAC3D,EAAE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,iFAAiF,CAAC;AACxG,EAAE,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,KAAK,OAAO,GAAG;AAC9C,IAAI,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK;AAC5B,IAAI,KAAK,EAAE,MAAM,CAAC,YAAY,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,YAAY,EAAE,GAAG;AACpE,GAAG,GAAG;AACN,IAAI,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK;AAC5B,IAAI,MAAM,EAAE,MAAM,CAAC;AACnB,GAAG;AACH,EAAE,IAAI;AACN,IAAI,MAAM,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,YAAY,CAAC;AACnD,IAAI,MAAM,qBAAqB,CAAC;AAChC,MAAM,QAAQ,EAAE,MAAM,CAAC,QAAQ;AAC/B,MAAM,OAAO,EAAE;AACf,QAAQ,MAAM,EAAE,MAAM;AACtB,QAAQ,MAAM,EAAE,YAAY;AAC5B,QAAQ,IAAI,EAAE,CAAC,YAAY,EAAE,eAAe,EAAE,mBAAmB,CAAC;AAClE,QAAQ,KAAK,EAAE,IAAI,eAAe,EAAE;AACpC,QAAQ,IAAI,EAAE;AACd,UAAU,IAAI,EAAE;AAChB,YAAY,OAAO,EAAE,eAAe;AACpC,YAAY,SAAS;AACrB,YAAY,UAAU,EAAE,gCAAgC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;AAC7E,YAAY,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM;AACxC,YAAY,MAAM,EAAE,4BAA4B,CAAC,MAAM,CAAC,IAAI,CAAC;AAC7D,YAAY,MAAM,EAAE,MAAM,CAAC,MAAM;AACjC,YAAY,OAAO,EAAE,wBAAwB,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC;AACzE,YAAY,IAAI;AAChB,YAAY,OAAO,EAAE,uBAAuB,CAAC,OAAO;AACpD;AACA,SAAS;AACT,QAAQ,OAAO,EAAE,cAAc;AAC/B,QAAQ,GAAG;AACX,QAAQ,OAAO,EAAE;AACjB,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE;AACtC,UAAU,OAAO,EAAE,eAAe;AAClC,UAAU,GAAG,SAAS,GAAG,EAAE,SAAS,EAAE,GAAG;AACzC;AACA;AACA,KAAK,CAAC;AACN,EAAE,CAAC,CAAC,MAAM;AACV,EAAE;AACF;AACA,SAAS,wBAAwB,CAAC,IAAI,EAAE,YAAY,EAAE,kBAAkB,EAAE;AAC1E,EAAE,OAAO;AACT,IAAI,GAAG,IAAI,CAAC,QAAQ,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE;AACvD,IAAI,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE;AAC3B,IAAI,GAAG,kBAAkB,GAAG,EAAE,cAAc,EAAE,kBAAkB,EAAE,GAAG,EAAE;AACvE,IAAI,GAAG,YAAY,CAAC,aAAa,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE;AACxD,IAAI,GAAG,YAAY,CAAC,oBAAoB,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG;AAC/D,GAAG;AACH;AACA,SAAS,6BAA6B,CAAC,MAAM,EAAE;AAC/C,EAAE,MAAM,QAAQ,GAAG,yBAAyB,CAAC;AAC7C,IAAI,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM;AAC9B,IAAI,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW;AACxC,IAAI,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI;AAC3D,GAAG,CAAC;AACJ,EAAE,MAAM,YAAY,GAAG,6BAA6B,CAAC;AACrD,IAAI,IAAI,EAAE,MAAM,CAAC,IAAI;AACrB,IAAI,OAAO,EAAE,MAAM,CAAC,OAAO;AAC3B,IAAI,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK;AAC5B,IAAI,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC;AACzB,GAAG,CAAC;AACJ,EAAE,MAAM,UAAU,GAAG,4BAA4B;AACjD,IAAI;AACJ,MAAM,IAAI,EAAE,MAAM,CAAC,IAAI;AACvB,MAAM,MAAM,EAAE,MAAM,CAAC,MAAM;AAC3B,MAAM,IAAI,EAAE,MAAM,CAAC;AACnB,KAAK;AACL,IAAI,YAAY;AAChB,IAAI;AACJ,MAAM,cAAc,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc;AAC3D,MAAM,oBAAoB,EAAE,QAAQ,EAAE,WAAW,GAAG,oBAAoB,GAAG;AAC3E;AACA,GAAG;AACH,EAAE,MAAM,KAAK,GAAG,CAAC,KAAK,EAAE,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;AACzI,EAAE,MAAM,OAAO,GAAG,mBAAmB,CAAC,MAAM,CAAC,OAAO,CAAC;AACrD,EAAE,OAAO;AACT,IAAI,EAAE,EAAE,IAAI;AACZ,IAAI,OAAO,EAAE,IAAI;AACjB,IAAI,IAAI,EAAE,WAAW;AACrB,IAAI,KAAK,EAAE,YAAY,CAAC,aAAa,IAAI,YAAY,CAAC,cAAc,IAAI,YAAY,CAAC,cAAc,IAAI,YAAY,CAAC,qBAAqB;AACzI,IAAI,IAAI,EAAE;AACV,MAAM,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM;AAChC,MAAM,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM;AAChC,MAAM,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW;AAC1C,MAAM,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE;AAChC,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC;AAChC,KAAK;AACL,IAAI,KAAK,EAAE;AACX,MAAM,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM;AACjC,MAAM,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO;AACnC,MAAM,IAAI,EAAE,KAAK;AACjB,MAAM,GAAG,MAAM,CAAC,UAAU,GAAG,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,GAAG;AACjE,KAAK;AACL,IAAI,YAAY,EAAE;AAClB,MAAM,IAAI,EAAE;AACZ,QAAQ,QAAQ,EAAE,YAAY,CAAC,YAAY;AAC3C,QAAQ,gBAAgB,EAAE,YAAY,CAAC,gBAAgB;AACvD,QAAQ,SAAS,EAAE,YAAY,CAAC,aAAa;AAC7C,QAAQ,GAAG,YAAY,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,YAAY,CAAC,aAAa,EAAE,GAAG,EAAE;AAC7F,QAAQ,GAAG,YAAY,CAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,YAAY,EAAE,YAAY,CAAC,oBAAoB,EAAE,GAAG;AAChH,OAAO;AACP,MAAM,KAAK,EAAE;AACb,QAAQ,QAAQ,EAAE,YAAY,CAAC,aAAa;AAC5C,QAAQ,SAAS,EAAE,YAAY,CAAC,cAAc;AAC9C,QAAQ,GAAG,OAAO,MAAM,CAAC,OAAO,CAAC,OAAO,KAAK,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,GAAG,OAAO,MAAM,CAAC,OAAO,CAAC,SAAS,KAAK,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,GAAG;AAC/R,OAAO;AACP,MAAM,KAAK,EAAE;AACb,QAAQ,QAAQ,EAAE,YAAY,CAAC,aAAa;AAC5C,QAAQ,SAAS,EAAE,YAAY,CAAC;AAChC,OAAO;AACP,MAAM,OAAO,EAAE;AACf,QAAQ,QAAQ,EAAE,YAAY,CAAC,oBAAoB;AACnD,QAAQ,SAAS,EAAE,YAAY,CAAC;AAChC;AACA,KAAK;AACL,IAAI,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI;AACtC,IAAI,KAAK,EAAE,UAAU,CAAC,KAAK;AAC3B,IAAI,QAAQ,EAAE,UAAU,CAAC,QAAQ;AACjC,IAAI,WAAW,EAAE,UAAU,CAAC,WAAW;AACvC,IAAI,GAAG,QAAQ,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE;AACnC,IAAI,gBAAgB,EAAE;AACtB,MAAM,UAAU,EAAE,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC,UAAU,EAAE;AACtD,MAAM,KAAK,EAAE,oBAAoB,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC;AAC3D,MAAM,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,IAAI,IAAI;AAC3C,MAAM,OAAO,EAAE,MAAM,CAAC,OAAO;AAC7B,MAAM;AACN,KAAK;AACL,IAAI,UAAU,EAAE;AAChB,MAAM,OAAO;AACb,MAAM,IAAI,EAAE,wBAAwB,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,EAAE,UAAU,CAAC,kBAAkB;AAC7F;AACA,GAAG;AACH;AACA,SAAS,kBAAkB,CAAC,OAAO,EAAE;AACrC,EAAE,MAAM,MAAM,GAAG,oBAAoB,CAAC,OAAO,CAAC,MAAM,CAAC;AACrD,EAAE,IAAI,sBAAsB,GAAG,IAAI;AACnC,EAAE,IAAI,qBAAqB,GAAG,IAAI;AAClC,EAAE,SAAS,qBAAqB,CAAC,KAAK,EAAE;AACxC,IAAI,OAAO,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,IAAI,eAAe,CAAC;AACpF,EAAE;AACF,EAAE,SAAS,4BAA4B,CAAC,KAAK,EAAE;AAC/C,IAAI,MAAM,OAAO,GAAG,qBAAqB,CAAC,KAAK,CAAC;AAChD,IAAI,OAAO,8BAA8B,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AACtF,EAAE;AACF,EAAE,SAAS,iCAAiC,CAAC,KAAK,EAAE;AACpD,IAAI,MAAM,OAAO,GAAG,qBAAqB,CAAC,KAAK,CAAC;AAChD,IAAI,OAAO,oCAAoC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AAC5F,EAAE;AACF,EAAE,SAAS,yBAAyB,GAAG;AACvC,IAAI,sBAAsB,GAAG,IAAI;AACjC,IAAI,qBAAqB,GAAG,IAAI;AAChC,IAAI,8BAA8B,EAAE;AACpC,EAAE;AACF,EAAE,eAAe,kBAAkB,CAAC,MAAM,GAAG,EAAE,EAAE;AACjD,IAAI,IAAI,MAAM,CAAC,YAAY,EAAE,yBAAyB,EAAE;AACxD,IAAI,IAAI,sBAAsB,EAAE,OAAO,sBAAsB;AAC7D,IAAI,MAAM,eAAe,GAAG,2BAA2B,CAAC;AACxD,MAAM,MAAM;AACZ,MAAM,UAAU,EAAE,OAAO,CAAC;AAC1B,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAK;AAC1B,MAAM,qBAAqB,GAAG,QAAQ;AACtC,MAAM,OAAO,QAAQ;AACrB,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK;AACxB,MAAM,IAAI,sBAAsB,KAAK,eAAe,EAAE;AACtD,QAAQ,sBAAsB,GAAG,IAAI;AACrC,QAAQ,qBAAqB,GAAG,IAAI;AACpC,MAAM;AACN,MAAM,MAAM,KAAK;AACjB,IAAI,CAAC,CAAC;AACN,IAAI,sBAAsB,GAAG,eAAe;AAC5C,IAAI,OAAO,sBAAsB;AACjC,EAAE;AACF,EAAE,eAAe,sBAAsB,GAAG;AAC1C,IAAI,OAAO,kBAAkB,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;AACrD,EAAE;AACF,EAAE,eAAe,2BAA2B,GAAG;AAC/C,IAAI,OAAO,CAAC,gBAAgB,IAAI;AAChC,IAAI,OAAO,sBAAsB,EAAE;AACnC,EAAE;AACF,EAAE,SAAS,cAAc,GAAG;AAC5B,IAAI,OAAO;AACX,MAAM,OAAO,EAAE,MAAM,CAAC,OAAO,KAAK,KAAK;AACvC,MAAM,cAAc,EAAE,qBAAqB,KAAK,IAAI;AACpD,MAAM,QAAQ,EAAE,qBAAqB,EAAE,QAAQ;AAC/C,MAAM,cAAc,EAAE,qBAAqB,EAAE,OAAO,CAAC,cAAc;AACnE,MAAM,WAAW,EAAE,qBAAqB,EAAE,OAAO,CAAC,WAAW;AAC7D,MAAM,SAAS,EAAE,qBAAqB,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC;AACjE,MAAM,UAAU,EAAE,qBAAqB,EAAE,MAAM,CAAC,MAAM,IAAI;AAC1D,KAAK;AACL,EAAE;AACF,EAAE,eAAe,SAAS,CAAC,MAAM,EAAE;AACnC,IAAI,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,EAAE;AAClC,MAAM,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,WAAW,EAAE,iBAAiB,IAAI,IAAI,EAAE,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;AACxH,IAAI;AACJ,IAAI,MAAM,QAAQ,GAAG,MAAM,kBAAkB,EAAE;AAC/C,IAAI,OAAO,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC;AAC5C,EAAE;AACF,EAAE,eAAe,sBAAsB,CAAC,MAAM,EAAE;AAChD,IAAI,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,EAAE,OAAO,IAAI;AAC7C,IAAI,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,CAAC;AAC9C,IAAI,MAAM,QAAQ,GAAG,MAAM,kBAAkB,EAAE;AAC/C,IAAI,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,UAAU,CAAC;AACrG,IAAI,IAAI,CAAC,IAAI,EAAE,OAAO,IAAI;AAC1B,IAAI,MAAM,cAAc,GAAG,kCAAkC,CAAC,QAAQ,EAAE,IAAI,CAAC;AAC7E,IAAI,IAAI,cAAc,EAAE,OAAO,cAAc;AAC7C,IAAI,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,gBAAgB,EAAE;AACrD,IAAI,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC7D,IAAI,IAAI,CAAC,MAAM,EAAE,OAAO,IAAI;AAC5B,IAAI,MAAM,KAAK,GAAG,0BAA0B,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC;AACtF,IAAI,IAAI,CAAC,KAAK,EAAE,OAAO,IAAI;AAC3B,IAAI,MAAM,MAAM,GAAG,KAAK,CAAC,eAAe;AACxC,IAAI,OAAO,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,IAAI;AACzF,EAAE;AACF,EAAE,eAAe,iBAAiB,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;AAChF,IAAI,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,gBAAgB,EAAE;AACrD,IAAI,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC;AAC/C,IAAI,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;AACvC,IAAI,IAAI,CAAC,MAAM,EAAE;AACjB,MAAM,MAAM,IAAI,KAAK,CAAC,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC,CAAC;AACxD,IAAI;AACJ,IAAI,MAAM,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC;AACtC,IAAI,MAAM,KAAK,GAAG,0BAA0B,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC;AACtF,IAAI,IAAI,CAAC,KAAK,EAAE;AAChB,MAAM,MAAM,IAAI,KAAK,CAAC,CAAC,0BAA0B,EAAE,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;AAChF,IAAI;AACJ,IAAI,MAAM,WAAW,GAAG,4BAA4B,CAAC;AACrD,MAAM,WAAW,EAAE,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC;AACpD,MAAM,YAAY,EAAE,KAAK,CAAC,OAAO;AACjC,MAAM,WAAW,EAAE,KAAK,CAAC,MAAM;AAC/B,MAAM,IAAI;AACV,MAAM,SAAS,EAAE,QAAQ,CAAC;AAC1B,KAAK,CAAC;AACN,IAAI,MAAM,OAAO,GAAG,EAAE,GAAG,WAAW,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE;AACrE,IAAI,MAAM,cAAc,GAAG,+BAA+B,CAAC;AAC3D,MAAM,IAAI;AACV,MAAM;AACN,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,cAAc,CAAC,EAAE,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE;AACrD,MAAM,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC;AAC7C,IAAI;AACJ,IAAI,MAAM,eAAe,GAAG,uBAAuB,CAAC;AACpD,MAAM,IAAI;AACV,MAAM;AACN,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,eAAe,CAAC,EAAE,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE;AACtD,MAAM,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC;AAC9C,IAAI;AACJ,IAAI,MAAM,gBAAgB,GAAG,wBAAwB,CAAC;AACtD,MAAM,IAAI;AACV,MAAM,KAAK,EAAE,IAAI,CAAC,KAAK;AACvB,MAAM,OAAO,EAAE,IAAI,CAAC;AACpB,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,gBAAgB,CAAC,EAAE,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE;AACvD,MAAM,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC;AAC/C,IAAI;AACJ,IAAI,MAAM,kBAAkB,GAAG,2BAA2B,CAAC;AAC3D,MAAM,IAAI;AACV,MAAM,SAAS,EAAE,QAAQ,CAAC,SAAS;AACnC,MAAM,WAAW;AACjB,MAAM;AACN,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE;AAChC,MAAM,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,OAAO,CAAC;AACjD,IAAI;AACJ,IAAI,MAAM,gBAAgB,GAAG,yBAAyB,CAAC;AACvD,MAAM,IAAI;AACV,MAAM,SAAS,EAAE,QAAQ,CAAC,SAAS;AACnC,MAAM;AACN,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE;AAC9B,MAAM,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC;AAC/C,IAAI;AACJ,IAAI,MAAM,YAAY,GAAG,qBAAqB,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC,UAAU,CAAC;AACrF,IAAI,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK;AACnC,IAAI,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC,0BAA0B,EAAE,MAAM,CAAC,EAAE,YAAY,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAC5H,IAAI,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE;AAChD,MAAM,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC;AACzC,IAAI;AACJ,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE;AAC/B,MAAM,OAAO,iBAAiB;AAC9B,QAAQ,IAAI;AACZ,QAAQ,MAAM;AACd,QAAQ,GAAG;AACX,QAAQ,6BAA6B,CAAC;AACtC,UAAU,IAAI;AACd,UAAU,MAAM;AAChB,UAAU,KAAK;AACf,UAAU,YAAY;AACtB,UAAU,WAAW;AACrB,UAAU,OAAO;AACjB,UAAU;AACV,SAAS;AACT,OAAO;AACP,IAAI;AACJ,IAAI,MAAM,cAAc,GAAG,IAAI,OAAO,EAAE;AACxC,IAAI,IAAI,OAAO,aAAa,CAAC,uBAAuB,KAAK,QAAQ,IAAI,aAAa,CAAC,uBAAuB,CAAC,MAAM,GAAG,CAAC,EAAE;AACvH,MAAM,cAAc,CAAC,GAAG,CAAC,mBAAmB,EAAE,aAAa,CAAC,uBAAuB,CAAC;AACpF,IAAI;AACJ,IAAI,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CAAC;AACjD,MAAM,QAAQ;AACd,MAAM,OAAO,EAAE;AACf,QAAQ,MAAM,EAAE,KAAK,CAAC,MAAM;AAC5B,QAAQ,MAAM;AACd,QAAQ,IAAI,EAAE,YAAY;AAC1B,QAAQ,KAAK;AACb,QAAQ,IAAI,EAAE,WAAW,CAAC,IAAI;AAC9B,QAAQ,OAAO,EAAE,cAAc;AAC/B,QAAQ,GAAG;AACX,QAAQ;AACR;AACA,KAAK,CAAC;AACN,IAAI,OAAO,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC;AAC5F,EAAE;AACF,EAAE,eAAe,kBAAkB,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;AACjF,IAAI,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI;AAC5C,MAAM,CAAC,SAAS,KAAK,SAAS,CAAC,OAAO,IAAI,SAAS,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,IAAI,eAAe,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,eAAe,CAAC,IAAI,CAAC,MAAM;AACzI,KAAK;AACL,IAAI,IAAI,CAAC,YAAY,EAAE;AACvB,MAAM,MAAM,IAAI,KAAK,CAAC,CAAC,sBAAsB,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3D,IAAI;AACJ,IAAI,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,YAAY,CAAC;AACxD,IAAI,MAAM,KAAK,GAAG,0BAA0B,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC;AACtE,IAAI,IAAI,CAAC,KAAK,EAAE;AAChB,MAAM,MAAM,IAAI,KAAK,CAAC,CAAC,0BAA0B,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;AACrF,IAAI;AACJ,IAAI,MAAM,WAAW,GAAG,4BAA4B,CAAC;AACrD,MAAM,WAAW,EAAE,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC;AACpD,MAAM,YAAY,EAAE,KAAK,CAAC,OAAO;AACjC,MAAM,WAAW,EAAE,KAAK,CAAC,MAAM;AAC/B,MAAM,IAAI;AACV,MAAM,SAAS,EAAE,QAAQ,CAAC;AAC1B,KAAK,CAAC;AACN,IAAI,MAAM,aAAa,GAAG,EAAE,GAAG,WAAW,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE;AAC3E,IAAI,MAAM,cAAc,GAAG,+BAA+B,CAAC;AAC3D,MAAM,IAAI;AACV,MAAM,OAAO,EAAE;AACf,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,cAAc,CAAC,EAAE,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE;AACrD,MAAM,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC;AAC7C,IAAI;AACJ,IAAI,MAAM,eAAe,GAAG,uBAAuB,CAAC;AACpD,MAAM,IAAI;AACV,MAAM,OAAO,EAAE;AACf,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,eAAe,CAAC,EAAE,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE;AACtD,MAAM,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC;AAC9C,IAAI;AACJ,IAAI,MAAM,gBAAgB,GAAG,wBAAwB,CAAC;AACtD,MAAM,IAAI;AACV,MAAM,KAAK,EAAE,IAAI,CAAC,KAAK;AACvB,MAAM,OAAO,EAAE,IAAI,CAAC;AACpB,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,gBAAgB,CAAC,EAAE,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE;AACvD,MAAM,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC;AAC/C,IAAI;AACJ,IAAI,MAAM,kBAAkB,GAAG,2BAA2B,CAAC;AAC3D,MAAM,IAAI;AACV,MAAM,SAAS,EAAE,QAAQ,CAAC,SAAS;AACnC,MAAM,WAAW;AACjB,MAAM,OAAO,EAAE;AACf,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE;AAChC,MAAM,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,OAAO,CAAC;AACjD,IAAI;AACJ,IAAI,MAAM,gBAAgB,GAAG,yBAAyB,CAAC;AACvD,MAAM,IAAI;AACV,MAAM,SAAS,EAAE,QAAQ,CAAC,SAAS;AACnC,MAAM;AACN,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE;AAC9B,MAAM,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC;AAC/C,IAAI;AACJ,IAAI,MAAM,YAAY,GAAG,qBAAqB,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC,UAAU,CAAC;AACrF,IAAI,MAAM,OAAO,GAAG,gBAAgB,CAAC,YAAY,CAAC,OAAO,CAAC;AAC1D,IAAI,MAAM,WAAW,GAAG,oBAAoB,CAAC,YAAY,CAAC,WAAW,CAAC;AACtE,IAAI,MAAM,UAAU,GAAG,IAAI,GAAG;AAC9B,MAAM,CAAC,EAAE,OAAO,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACpH,KAAK;AACL,IAAI,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE;AAC5D,MAAM,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC;AAChD,IAAI;AACJ,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE;AAC/B,MAAM,OAAO,iBAAiB;AAC9B,QAAQ,IAAI;AACZ,QAAQ,MAAM;AACd,QAAQ,GAAG;AACX,QAAQ,6BAA6B,CAAC;AACtC,UAAU,IAAI;AACd,UAAU,MAAM;AAChB,UAAU,KAAK;AACf,UAAU,YAAY;AACtB,UAAU,WAAW;AACrB,UAAU,OAAO,EAAE,aAAa;AAChC,UAAU,IAAI;AACd,UAAU,UAAU,EAAE,UAAU,CAAC,QAAQ;AACzC,SAAS;AACT,OAAO;AACP,IAAI;AACJ,IAAI,MAAM,OAAO,GAAG,oBAAoB,CAAC,YAAY,CAAC;AACtD,IAAI,IAAI,OAAO,aAAa,CAAC,QAAQ,KAAK,QAAQ,IAAI,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;AAChG,MAAM,OAAO,CAAC,aAAa,CAAC,GAAG,aAAa,CAAC,QAAQ;AACrD,IAAI;AACJ,IAAI,IAAI,OAAO,aAAa,CAAC,MAAM,KAAK,QAAQ,IAAI,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;AAC5F,MAAM,OAAO,CAAC,UAAU,CAAC,GAAG,aAAa,CAAC,MAAM;AAChD,IAAI;AACJ,IAAI,IAAI,OAAO,aAAa,CAAC,cAAc,KAAK,QAAQ,IAAI,aAAa,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;AAC5G,MAAM,OAAO,CAAC,mBAAmB,CAAC,GAAG,aAAa,CAAC,cAAc;AACjE,IAAI;AACJ,IAAI,IAAI,OAAO,aAAa,CAAC,SAAS,KAAK,QAAQ,IAAI,aAAa,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;AAClG,MAAM,OAAO,CAAC,cAAc,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,IAAI,EAAE;AAC9D,IAAI;AACJ,IAAI,IAAI,OAAO,aAAa,CAAC,uBAAuB,KAAK,QAAQ,IAAI,aAAa,CAAC,uBAAuB,CAAC,MAAM,GAAG,CAAC,EAAE;AACvH,MAAM,OAAO,CAAC,mBAAmB,CAAC,GAAG,aAAa,CAAC,uBAAuB;AAC1E,IAAI;AACJ,IAAI,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE;AAC7C,IAAI,IAAI,WAAW;AACnB,IAAI,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,MAAM,IAAI,WAAW,CAAC,IAAI,KAAK,MAAM,EAAE;AAC9E,MAAM,OAAO,CAAC,cAAc,CAAC,GAAG,kBAAkB;AAClD,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC;AACpD,IAAI;AACJ,IAAI,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,uBAAuB,CAAC,YAAY,CAAC,SAAS,CAAC;AACnF,IAAI,IAAI;AACR,MAAM,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,UAAU,EAAE;AAC/C,QAAQ,MAAM;AACd,QAAQ,OAAO;AACf,QAAQ,IAAI,EAAE,WAAW;AACzB,QAAQ,MAAM,EAAE,UAAU,CAAC;AAC3B,OAAO,CAAC;AACR,MAAM,MAAM,YAAY,GAAG,MAAM,cAAc,CAAC,QAAQ,CAAC;AACzD,MAAM,OAAO,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,YAAY,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAC;AAC1G,IAAI,CAAC,SAAS;AACd,MAAM,OAAO,EAAE;AACf,IAAI;AACJ,EAAE;AACF,EAAE,eAAe,uBAAuB,CAAC,SAAS,EAAE;AACpD,IAAI,MAAM,MAAM,GAAG,eAAe,CAAC,SAAS,CAAC;AAC7C,IAAI,IAAI,CAAC,MAAM,EAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC;AACnD,IAAI,IAAI,QAAQ,GAAG,MAAM,kBAAkB,EAAE;AAC7C,IAAI,IAAI,IAAI,GAAG,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC;AAC7C,IAAI,IAAI,IAAI,EAAE;AACd,MAAM,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE;AACvC,IAAI;AACJ,IAAI,QAAQ,GAAG,MAAM,sBAAsB,EAAE;AAC7C,IAAI,IAAI,GAAG,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC;AACzC,IAAI,IAAI,CAAC,IAAI,EAAE;AACf,MAAM,MAAM,IAAI,KAAK,CAAC,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC,CAAC;AACpD,IAAI;AACJ,IAAI,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE;AACrC,EAAE;AACF,EAAE,eAAe,kBAAkB,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE;AAC9E,IAAI,MAAM,MAAM,GAAG,yBAAyB,CAAC,IAAI,EAAE,QAAQ,CAAC;AAC5D,IAAI,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE;AACvC,MAAM,IAAI;AACV,QAAQ,OAAO,MAAM,iBAAiB,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;AACrE,UAAU,uBAAuB,EAAE,QAAQ,CAAC;AAC5C,SAAS,CAAC;AACV,MAAM,CAAC,CAAC,OAAO,KAAK,EAAE;AACtB,QAAQ,IAAI,QAAQ,CAAC,wBAAwB,IAAI,iCAAiC,CAAC,KAAK,CAAC,EAAE;AAC3F,UAAU,MAAM,KAAK;AACrB,QAAQ;AACR,QAAQ,IAAI,QAAQ,IAAI,CAAC,4BAA4B,CAAC,KAAK,CAAC,EAAE;AAC9D,UAAU,MAAM,KAAK;AACrB,QAAQ;AACR,QAAQ,MAAM,cAAc,GAAG,qBAAqB,CAAC,IAAI,CAAC;AAC1D,QAAQ,IAAI,CAAC,cAAc,EAAE;AAC7B,UAAU,MAAM,KAAK;AACrB,QAAQ;AACR,QAAQ,OAAO,kBAAkB,CAAC,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;AACxE,UAAU,uBAAuB,EAAE,QAAQ,CAAC;AAC5C,SAAS,CAAC;AACV,MAAM;AACN,IAAI;AACJ,IAAI,OAAO,kBAAkB,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;AAC5D,MAAM,uBAAuB,EAAE,QAAQ,CAAC;AACxC,KAAK,CAAC;AACN,EAAE;AACF,EAAE,eAAe,UAAU,CAAC,IAAI,EAAE;AAClC,IAAI,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,EAAE;AAClC,MAAM,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC;AAC/C,IAAI;AACJ,IAAI,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE;AAChC,IAAI,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC;AACjF,IAAI,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC;AACrD,IAAI,MAAM,eAAe,GAAG,yBAAyB,CAAC,IAAI,EAAE,QAAQ,CAAC;AACrE,IAAI,MAAM,iCAAiC,GAAG,kCAAkC,CAAC;AACjF,MAAM,MAAM,EAAE,IAAI,CAAC,MAAM;AACzB,MAAM,WAAW,EAAE,IAAI,CAAC,WAAW;AACnC,MAAM,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI;AAC3B,KAAK,CAAC;AACN,IAAI,MAAM,uBAAuB,GAAG,OAAO,IAAI,CAAC,cAAc,KAAK,QAAQ,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,iCAAiC;AACrL,IAAI,MAAM,WAAW,GAAG,wBAAwB,CAAC;AACjD,MAAM,IAAI;AACV,MAAM,MAAM,EAAE,eAAe;AAC7B,MAAM,IAAI,EAAE;AACZ,QAAQ,GAAG,IAAI;AACf,QAAQ,QAAQ,EAAE,eAAe,CAAC;AAClC;AACA,KAAK,EAAE;AACP,MAAM,cAAc,EAAE,iCAAiC;AACvD,MAAM,YAAY,EAAE;AACpB,KAAK,CAAC;AACN,IAAI,IAAI,WAAW,CAAC,IAAI,KAAK,UAAU,EAAE;AACzC,MAAM,MAAM,0BAA0B,CAAC;AACvC,QAAQ,IAAI;AACZ,QAAQ,iBAAiB,EAAE,eAAe,CAAC,EAAE;AAC7C,QAAQ,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ;AAC3D,QAAQ,OAAO,EAAE,WAAW,CAAC,iBAAiB,KAAK,UAAU,GAAG,UAAU,GAAG,SAAS;AACtF,QAAQ,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,MAAM;AACzC,QAAQ,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;AAC1C,QAAQ,OAAO,EAAE,IAAI,CAAC,OAAO;AAC7B,QAAQ,KAAK,EAAE,IAAI,CAAC,KAAK;AACzB,QAAQ,OAAO,EAAE,IAAI,CAAC,OAAO;AAC7B,QAAQ,cAAc,EAAE,uBAAuB;AAC/C,QAAQ,iBAAiB,EAAE,WAAW,CAAC,iBAAiB;AACxD,QAAQ,OAAO,EAAE,IAAI,CAAC,OAAO;AAC7B,QAAQ,SAAS,EAAE,WAAW,CAAC,iBAAiB,KAAK,UAAU,GAAG,MAAM,GAAG,WAAW,CAAC,iBAAiB,KAAK,UAAU,GAAG,0BAA0B,GAAG;AACvJ,OAAO,CAAC;AACR,MAAM,OAAO,WAAW,CAAC,MAAM;AAC/B,IAAI;AACJ,IAAI,IAAI;AACR,MAAM,IAAI,MAAM;AAChB,MAAM,IAAI;AACV,QAAQ,MAAM,GAAG,MAAM,kBAAkB,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE;AAC1E,UAAU,wBAAwB,EAAE,IAAI;AACxC,UAAU;AACV,SAAS,CAAC;AACV,MAAM,CAAC,CAAC,OAAO,KAAK,EAAE;AACtB,QAAQ,IAAI,CAAC,4BAA4B,CAAC,KAAK,CAAC,EAAE;AAClD,UAAU,MAAM,KAAK;AACrB,QAAQ;AACR,QAAQ,MAAM,iBAAiB,GAAG,iCAAiC,CAAC,KAAK,CAAC,GAAG,MAAM,2BAA2B,EAAE,GAAG,MAAM,sBAAsB,EAAE;AACjJ,QAAQ,MAAM,aAAa,GAAG,iBAAiB,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC;AACrE,QAAQ,IAAI,CAAC,aAAa,EAAE;AAC5B,UAAU,MAAM,IAAI,KAAK,CAAC,CAAC,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAC1D,QAAQ;AACR,QAAQ,MAAM,GAAG,MAAM,kBAAkB,CAAC,iBAAiB,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE;AAC5F,UAAU,wBAAwB,EAAE,KAAK;AACzC,UAAU;AACV,SAAS,CAAC;AACV,MAAM;AACN,MAAM,IAAI,WAAW,CAAC,IAAI,KAAK,QAAQ,EAAE;AACzC,QAAQ,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC;AAClC,MAAM;AACN,MAAM,MAAM,cAAc,GAAG,WAAW,CAAC,IAAI,KAAK,QAAQ,IAAI,uBAAuB,GAAG;AACxF,QAAQ,GAAG,MAAM;AACjB,QAAQ,OAAO,EAAE;AACjB,UAAU,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE;AACjC,UAAU,4BAA4B,EAAE,OAAO;AAC/C,UAAU,yBAAyB,EAAE;AACrC;AACA,OAAO,GAAG,MAAM;AAChB,MAAM,MAAM,0BAA0B,CAAC;AACvC,QAAQ,IAAI;AACZ,QAAQ,iBAAiB,EAAE,eAAe,CAAC,EAAE;AAC7C,QAAQ,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,QAAQ;AACvD,QAAQ,OAAO,EAAE,IAAI,CAAC,OAAO,KAAK,IAAI,GAAG,SAAS,GAAG,wBAAwB,CAAC,cAAc,CAAC,GAAG,SAAS,GAAG,SAAS;AACrH,QAAQ,MAAM,EAAE,cAAc,CAAC,MAAM;AACrC,QAAQ,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;AAC1C,QAAQ,OAAO,EAAE,IAAI,CAAC,OAAO;AAC7B,QAAQ,KAAK,EAAE,IAAI,CAAC,KAAK;AACzB,QAAQ,OAAO,EAAE,IAAI,CAAC,OAAO;AAC7B,QAAQ,cAAc,EAAE,uBAAuB;AAC/C,QAAQ,iBAAiB,EAAE,WAAW,CAAC,IAAI,KAAK,QAAQ,IAAI,uBAAuB,GAAG,OAAO,GAAG,KAAK,CAAC;AACtG,QAAQ,OAAO,EAAE,IAAI,CAAC;AACtB,OAAO,CAAC;AACR,MAAM,IAAI,kCAAkC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE;AAC1D,QAAQ,MAAM,sCAAsC,CAAC;AACrD,UAAU,QAAQ,EAAE,MAAM,OAAO,CAAC,gBAAgB,EAAE;AACpD,UAAU,IAAI;AACd,UAAU,IAAI;AACd,UAAU,MAAM,EAAE,wBAAwB,CAAC,cAAc,CAAC,GAAG,SAAS,GAAG,OAAO;AAChF,UAAU,YAAY,EAAE,cAAc,CAAC;AACvC,SAAS,CAAC;AACV,MAAM;AACN,MAAM,OAAO,cAAc;AAC3B,IAAI,CAAC,CAAC,OAAO,KAAK,EAAE;AACpB,MAAM,IAAI,WAAW,CAAC,IAAI,KAAK,QAAQ,EAAE;AACzC,QAAQ,WAAW,CAAC,OAAO,EAAE;AAC7B,MAAM;AACN,MAAM,MAAM,0BAA0B,CAAC;AACvC,QAAQ,IAAI;AACZ,QAAQ,iBAAiB,EAAE,eAAe,CAAC,EAAE;AAC7C,QAAQ,iBAAiB,EAAE,eAAe,CAAC,EAAE;AAC7C,QAAQ,OAAO,EAAE,wBAAwB,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,SAAS,GAAG,SAAS;AAChF,QAAQ,MAAM,EAAE,wBAAwB,CAAC,KAAK,CAAC;AAC/C,QAAQ,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;AAC1C,QAAQ,OAAO,EAAE,IAAI,CAAC,OAAO;AAC7B,QAAQ,KAAK,EAAE,IAAI,CAAC,KAAK;AACzB,QAAQ,OAAO,EAAE,IAAI,CAAC,OAAO;AAC7B,QAAQ,cAAc,EAAE,uBAAuB;AAC/C,QAAQ,OAAO,EAAE,IAAI,CAAC,OAAO;AAC7B,QAAQ,SAAS,EAAE,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,IAAI,eAAe;AAC3F,OAAO,CAAC;AACR,MAAM,IAAI,kCAAkC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE;AAC1D,QAAQ,MAAM,sCAAsC,CAAC;AACrD,UAAU,QAAQ,EAAE,MAAM,OAAO,CAAC,gBAAgB,EAAE;AACpD,UAAU,IAAI;AACd,UAAU,IAAI;AACd,UAAU,MAAM,EAAE,OAAO;AACzB,UAAU,YAAY,EAAE,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,IAAI,eAAe;AAChG,SAAS,CAAC;AACV,MAAM;AACN,MAAM,MAAM,KAAK;AACjB,IAAI;AACJ,EAAE;AACF,EAAE,eAAe,UAAU,CAAC,IAAI,GAAG,EAAE,EAAE;AACvC,IAAI,MAAM,QAAQ,GAAG,MAAM,kBAAkB,EAAE;AAC/C,IAAI,MAAM,gBAAgB,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;AAC/D,IAAI,MAAM,SAAS,GAAG,gBAAgB,CAAC,MAAM,GAAG,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,KAAK,eAAe,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,gBAAgB,CAAC,GAAG,QAAQ,CAAC,SAAS;AACjL,IAAI,MAAM,KAAK,GAAG,gBAAgB,CAAC,MAAM,GAAG,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,gBAAgB,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK;AACnK,IAAI,MAAM,OAAO,GAAG;AACpB,MAAM,GAAG,QAAQ,CAAC,OAAO;AACzB,MAAM;AACN,KAAK;AACL,IAAI,MAAM,QAAQ,GAAG,wBAAwB,CAAC;AAC9C,MAAM,SAAS;AACf,MAAM,OAAO;AACb,MAAM,aAAa,EAAE,IAAI,CAAC;AAC1B,KAAK,CAAC;AACN,IAAI,OAAO,oCAAoC,CAAC,QAAQ,CAAC;AACzD,EAAE;AACF,EAAE,OAAO;AACT,IAAI,SAAS;AACb,IAAI,sBAAsB;AAC1B,IAAI,UAAU;AACd,IAAI,UAAU;AACd,IAAI,cAAc;AAClB,IAAI,sBAAsB;AAC1B,IAAI;AACJ,GAAG;AACH;AACA,IAAI,SAAS,GAAG,IAAI;AACpB,SAAS,eAAe,GAAG;AAC3B,EAAE,IAAI,SAAS,EAAE,OAAO,SAAS;AACjC,EAAE,MAAM,MAAM,GAAG,aAAa,EAAE;AAChC,EAAE,SAAS,GAAG,kBAAkB,CAAC;AACjC,IAAI,gBAAgB,EAAE,qBAAqB;AAC3C,IAAI,gBAAgB,EAAE,uBAAuB;AAC7C,IAAI,MAAM,EAAE,MAAM,CAAC;AACnB,GAAG,CAAC;AACJ,EAAE,OAAO,SAAS;AAClB;AACA,SAAS,0BAA0B,GAAG;AACtC,EAAE,OAAO,SAAS,EAAE,cAAc,EAAE,IAAI;AACxC,IAAI,OAAO,EAAE,aAAa,EAAE,CAAC,YAAY,EAAE,OAAO,KAAK,KAAK;AAC5D,IAAI,cAAc,EAAE,KAAK;AACzB,IAAI,SAAS,EAAE,CAAC;AAChB,IAAI,UAAU,EAAE;AAChB,GAAG;AACH;;;;"}
|