@lokascript/compilation-service 3.3.0 → 4.0.1
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/CHANGELOG.md +199 -1
- package/dist/{chunk-AMTQUPKJ.js → chunk-GWYYJAZY.js} +76 -293
- package/dist/chunk-GWYYJAZY.js.map +1 -0
- package/dist/http.cjs +147 -33187
- package/dist/http.cjs.map +1 -1
- package/dist/http.d.cts +1 -1
- package/dist/http.d.ts +1 -1
- package/dist/http.js +2 -22
- package/dist/http.js.map +1 -1
- package/dist/index.cjs +141 -33166
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3 -45
- package/dist/index.d.ts +3 -45
- package/dist/index.js +1 -6
- package/dist/index.js.map +1 -1
- package/dist/{service-Da54XrEI.d.cts → service-2lEnO5hA.d.cts} +35 -73
- package/dist/{service-Da54XrEI.d.ts → service-2lEnO5hA.d.ts} +35 -73
- package/package.json +11 -7
- package/dist/chunk-AMTQUPKJ.js.map +0 -1
- package/dist/chunk-GBPMR66W.js +0 -23
- package/dist/chunk-GBPMR66W.js.map +0 -1
- package/dist/chunk-IFSCZ7JT.js +0 -85
- package/dist/chunk-IFSCZ7JT.js.map +0 -1
- package/dist/chunk-PEL4Z7TK.js +0 -58
- package/dist/chunk-PEL4Z7TK.js.map +0 -1
- package/dist/core-parser-adapter-W5UPZR4X-QSTMJ42V.js +0 -12
- package/dist/core-parser-adapter-W5UPZR4X-QSTMJ42V.js.map +0 -1
- package/dist/dist-6EMM5HXE.js +0 -4463
- package/dist/dist-6EMM5HXE.js.map +0 -1
- package/dist/dist-OK2I5ODH.js +0 -27680
- package/dist/dist-OK2I5ODH.js.map +0 -1
- package/dist/multilingual-TCFUREGW.js +0 -485
- package/dist/multilingual-TCFUREGW.js.map +0 -1
- package/dist/semantic-adapter-JAAALHRO-WXAFQY4T.js +0 -12
- package/dist/semantic-adapter-JAAALHRO-WXAFQY4T.js.map +0 -1
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/commands/manifest.ts","../../src/parser/parser-constants.ts","../../src/parser/tokenizer.ts","../../src/utils/debug.ts","../../src/parser/pratt-parser.ts","../../src/core/scope-hooks.ts","../../src/parser/extensions.ts","../../src/parser/token-predicates.ts","../../src/parser/helpers/ast-helpers.ts","../../src/ast/legacy.ts","../../src/parser/helpers/parsing-helpers.ts","../../src/parser/command-node-builder.ts","../../src/parser/command-parsers/event-commands.ts","../../src/parser/command-parsers/control-flow-commands.ts","../../src/parser/command-parsers/animation-commands.ts","../../src/parser/command-parsers/dom-commands.ts","../../src/parser/command-parsers/async-commands.ts","../../src/parser/command-parsers/variable-commands.ts","../../src/parser/command-parsers/navigation-commands.ts","../../src/parser/command-parsers/declared-commands.ts","../../src/parser/command-parsers/utility-commands.ts","../../src/parser/command-grammar.ts","../../src/parser/parser.ts","../../src/types/hooks.ts","../../src/types/result.ts","../../src/core/context.ts","../../src/utils/element-check.ts","../../src/utils/beep.ts","../../src/commands/helpers/variable-access.ts","../../src/commands/helpers/target-elements.ts","../../src/expressions/type-registry.ts","../../src/expressions/type-helpers.ts","../../src/types/type-guards.ts","../../src/expressions/property-access-utils.ts","../../src/expressions/validation-helpers.ts","../../src/expressions/conversion/index.ts","../../src/expressions/references/index.ts","../../src/validation/lightweight-validators.ts","../../src/performance/expression-cache.ts","../../src/performance/integration.ts","../../src/expressions/shared/number-utils.ts","../../src/expressions/shared/comparison-utils.ts","../../src/expressions/shared/validation-utils.ts","../../src/expressions/shared/index.ts","../../src/expressions/logical/index.ts","../../src/expressions/properties/index.ts","../../src/expressions/collection/index.ts","../../src/parser/runtime.ts","../../src/runtime/cleanup-registry.ts","../../src/registry/event-source-registry.ts","../../src/runtime/command-adapter.ts","../../src/registry/index.ts","../../src/registry/runtime-integration.ts","../../src/runtime/runtime-base.ts","../../src/core/expression-registry.ts","../../src/expressions/base-expression.ts","../../src/expressions/special/index.ts","../../src/expressions/mathematical/index.ts","../../src/expressions/bundles/core-expressions.ts","../../src/expressions/positional/index.ts","../../src/expressions/bundles/common-expressions.ts","../../src/expressions/bundles/full-expressions.ts","../../src/expressions/index.ts","../../../node_modules/tslib/tslib.es6.js","../../src/commands/decorators/index.ts","../../src/commands/helpers/element-resolution.ts","../../src/commands/helpers/visibility-target-parser.ts","../../src/commands/dom/visibility-base.ts","../../src/commands/dom/hide.ts","../../src/commands/dom/show.ts","../../src/commands/helpers/attribute-manipulation.ts","../../src/commands/helpers/duration-parsing.ts","../../src/commands/helpers/batch-dom-operations.ts","../../src/commands/helpers/class-manipulation.ts","../../src/commands/helpers/style-manipulation.ts","../../src/commands/helpers/selector-type-detection.ts","../../src/commands/helpers/input-validator.ts","../../src/commands/dom/dom-modification-base.ts","../../src/commands/dom/add.ts","../../src/commands/helpers/dom-mutation.ts","../../src/commands/dom/remove.ts","../../src/commands/helpers/smart-element.ts","../../src/commands/helpers/temporal-modifiers.ts","../../src/commands/helpers/element-property-access.ts","../../src/ast/guards.ts","../../src/commands/helpers/property-target.ts","../../src/commands/dom/toggle.ts","../../src/commands/dom/put.ts","../../src/commands/dom/make.ts","../../src/commands/dom/empty.ts","../../src/commands/dom/open.ts","../../src/commands/dom/close.ts","../../src/commands/dom/select.ts","../../src/commands/dom/reset.ts","../../src/lib/dom-globals-shim.ts","../../../node_modules/morphlex/dist/morphlex.js","../../src/lib/morph-adapter.ts","../../src/lib/view-transitions.ts","../../src/lib/swap-executor.ts","../../src/commands/dom/swap.ts","../../src/validation/partial-validator.ts","../../src/validation/partial-warning-formatter.ts","../../src/commands/helpers/event-helpers.ts","../../src/commands/dom/process-partials.ts","../../src/commands/helpers/event-waiting.ts","../../src/commands/async/wait.ts","../../src/commands/async/fetch.ts","../../src/commands/helpers/attribute-target.ts","../../src/commands/helpers/write-target.ts","../../src/commands/data/set.ts","../../src/commands/data/get.ts","../../src/commands/helpers/numeric-target-parser.ts","../../src/commands/data/increment.ts","../../src/commands/data/clear.ts","../../src/commands/utility/log.ts","../../src/commands/events/trigger.ts","../../src/commands/navigation/go.ts","../../src/commands/helpers/url-validation.ts","../../src/commands/helpers/url-argument-parser.ts","../../src/commands/navigation/push-url.ts","../../src/commands/navigation/scroll-to.ts","../../src/commands/helpers/body-ops.ts","../../src/commands/helpers/condition-helpers.ts","../../src/commands/control-flow/if.ts","../../src/commands/helpers/loop-executor.ts","../../src/commands/control-flow/repeat.ts","../../src/commands/control-flow/signal-base.ts","../../src/commands/control-flow/break.ts","../../src/commands/control-flow/continue.ts","../../src/commands/control-flow/halt.ts","../../src/commands/control-flow/return.ts","../../src/commands/control-flow/exit.ts","../../src/commands/control-flow/throw.ts","../../src/commands/execution/call.ts","../../src/commands/execution/focus.ts","../../src/commands/execution/blur.ts","../../src/commands/execution/pseudo-command.ts","../../src/commands/content/insertion-base.ts","../../src/commands/content/append.ts","../../src/commands/content/prepend.ts","../../src/commands/animation/transition.ts","../../src/commands/animation/measure.ts","../../src/commands/animation/settle.ts","../../src/commands/animation/start-view-transition.ts","../../src/commands/animation/take.ts","../../src/commands/advanced/js.ts","../../src/commands/data/default.ts","../../src/commands/utility/tell.ts","../../src/commands/utility/copy.ts","../../src/commands/helpers/slots.ts","../../src/commands/utility/pick.ts","../../src/commands/utility/beep.ts","../../src/commands/utility/breakpoint.ts","../../src/commands/behaviors/install.ts","../../src/commands/templates/render.ts","../../src/runtime/runtime.ts","../../src/parser/semantic-integration.ts","../../src/utils/debug-events.ts","../../src/version.ts","../../src/behaviors/history-swap.ts","../../src/behaviors/boosted.ts","../../src/dom/detect-language.ts","../../src/dom/attribute-processor.ts","../../src/debug/debug-controller.ts","../../src/api/hyperscript-api.ts","../../src/api/lokascript-api.ts","../../src/ast-utils/interchange/from-core.ts","../../src/ast-utils/interchange/to-core.ts","../../src/ast-utils/interchange/lsp.ts","../../src/debug/index.ts","../../src/runtime/plugin.ts","../../src/multilingual/bridge.ts","../../src/lse/index.ts","../../intent/src/types.ts","../../intent/src/diagnostics.ts","../../intent/src/schema.ts","../../intent/src/inference/infer-roles.ts","../../intent/src/ir/references.ts","../../intent/src/ir/parser.ts","../../intent/src/ir/renderer.ts","../../intent/src/ir/protocol.ts","../../src/parser/semantic-integration.ts","../../src/utils/debug.ts","../../src/multilingual/bridge.ts","../../src/multilingual/schema-roles.ts","../../src/multilingual/index.ts","../../aot-compiler/src/compiler/core-parser-adapter.ts","../../aot-compiler/src/compiler/semantic-adapter.ts","../../aot-compiler/dist/core-parser-adapter-W5UPZR4X.js","../../aot-compiler/dist/semantic-adapter-JAAALHRO.js","../../aot-compiler/src/scanner/html-scanner.ts","../../aot-compiler/src/compiler/analyzer.ts","../../aot-compiler/src/optimizations/class-batching.ts","../../aot-compiler/src/optimizations/index.ts","../../aot-compiler/src/optimizations/init-prerender.ts","../../aot-compiler/src/transforms/expression-transforms.ts","../../aot-compiler/src/transforms/command-transforms.ts","../../aot-compiler/src/transforms/event-transforms.ts","../../aot-compiler/src/compiler/aot-compiler.ts","../../aot-compiler/src/index.ts","../src/index.ts","../src/diff/diff.ts","../src/scoring/score.ts","../src/input/detect.ts","../src/input/normalize.ts","../src/validation/inert-shapes.ts","../src/validation/gates.ts","../src/compile/bridge.ts","../src/compile/cache.ts","../src/operations/extract.ts","../src/renderers/html-fixture.ts","../src/renderers/playwright.ts","../src/renderers/renderer-helpers.ts","../src/renderers/react.ts","../src/renderers/vue.ts","../src/renderers/svelte.ts","../src/service.ts","../src/input/json-schema.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nvar ownKeys = function(o) {\r\n ownKeys = Object.getOwnPropertyNames || function (o) {\r\n var ar = [];\r\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\r\n return ar;\r\n };\r\n return ownKeys(o);\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n var r, s = 0;\r\n function next() {\r\n while (r = env.stack.pop()) {\r\n try {\r\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n if (r.dispose) {\r\n var result = r.dispose.call(r.value);\r\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n else s |= 1;\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\r\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\r\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\r\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\r\n });\r\n }\r\n return path;\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __esDecorate: __esDecorate,\r\n __runInitializers: __runInitializers,\r\n __propKey: __propKey,\r\n __setFunctionName: __setFunctionName,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n __rewriteRelativeImportExtension: __rewriteRelativeImportExtension,\r\n};\r\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"// src/morphlex.ts\nvar SUPPORTS_MOVE_BEFORE = \"moveBefore\" in Element.prototype;\nvar ELEMENT_NODE_TYPE = 1;\nvar TEXT_NODE_TYPE = 3;\nvar IS_PARENT_NODE_TYPE = [\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 1,\n 0\n];\nvar Operation = {\n EqualNode: 0,\n SameElement: 1,\n SameNode: 2\n};\nvar candidateNodes = new Set;\nvar candidateElements = new Set;\nvar candidateElementsWithIds = new Set;\nvar unmatchedNodes = new Set;\nvar unmatchedElements = new Set;\nvar whitespaceNodes = new Set;\nfunction morphDocument(from, to, options) {\n if (typeof to === \"string\")\n to = parseDocument(to);\n morph(from.documentElement, to.documentElement, options);\n}\nfunction morph(from, to, options = {}) {\n if (typeof to === \"string\")\n to = parseFragment(to).childNodes;\n if (!options.preserveChanges && isParentNode(from))\n flagDirtyInputs(from);\n new Morph(options).morph(from, to);\n}\nfunction morphInner(from, to, options = {}) {\n if (typeof to === \"string\") {\n const fragment = parseFragment(to);\n if (fragment.firstChild && fragment.childNodes.length === 1 && fragment.firstChild.nodeType === ELEMENT_NODE_TYPE) {\n to = fragment.firstChild;\n } else {\n throw new Error(\"[Morphlex] The string was not a valid HTML element.\");\n }\n }\n if (from.nodeType === ELEMENT_NODE_TYPE && to.nodeType === ELEMENT_NODE_TYPE && from.localName === to.localName) {\n if (isParentNode(from))\n flagDirtyInputs(from);\n new Morph(options).visitChildNodes(from, to);\n } else {\n throw new Error(\"[Morphlex] You can only do an inner morph with matching elements.\");\n }\n}\nfunction flagDirtyInputs(node) {\n for (const input of node.querySelectorAll(\"input\")) {\n if (input.name && input.value !== input.defaultValue || input.checked !== input.defaultChecked) {\n input.setAttribute(\"morphlex-dirty\", \"\");\n }\n }\n for (const element of node.querySelectorAll(\"option\")) {\n if (element.value && element.selected !== element.defaultSelected) {\n element.setAttribute(\"morphlex-dirty\", \"\");\n }\n }\n for (const element of node.querySelectorAll(\"textarea\")) {\n if (element.value !== element.defaultValue) {\n element.setAttribute(\"morphlex-dirty\", \"\");\n }\n }\n}\nfunction parseFragment(string) {\n const template = document.createElement(\"template\");\n template.innerHTML = string.trim();\n return template.content;\n}\nfunction parseDocument(string) {\n const parser = new DOMParser;\n return parser.parseFromString(string.trim(), \"text/html\");\n}\nfunction moveBefore(parent, node, insertionPoint) {\n if (node === insertionPoint)\n return;\n if (node.parentNode === parent) {\n if (node.nextSibling === insertionPoint)\n return;\n if (SUPPORTS_MOVE_BEFORE) {\n parent.moveBefore(node, insertionPoint);\n return;\n }\n }\n parent.insertBefore(node, insertionPoint);\n}\n\nclass Morph {\n #idArrayMap = new WeakMap;\n #idSetMap = new WeakMap;\n #options;\n constructor(options = {}) {\n this.#options = options;\n }\n morph(from, to) {\n if (isParentNode(from)) {\n this.#mapIdSets(from);\n }\n if (to instanceof NodeList) {\n this.#mapIdArraysForEach(to);\n this.#morphOneToMany(from, to);\n } else if (isParentNode(to)) {\n this.#mapIdArrays(to);\n this.#morphOneToOne(from, to);\n }\n }\n #morphOneToMany(from, to) {\n const length = to.length;\n if (length === 0) {\n this.#removeNode(from);\n } else if (length === 1) {\n this.#morphOneToOne(from, to[0]);\n } else if (length > 1) {\n const newNodes = [...to];\n this.#morphOneToOne(from, newNodes.shift());\n const insertionPoint = from.nextSibling;\n const parent = from.parentNode || document;\n for (let i = 0;i < newNodes.length; i++) {\n const newNode = newNodes[i];\n if (this.#options.beforeNodeAdded?.(parent, newNode, insertionPoint) ?? true) {\n parent.insertBefore(newNode, insertionPoint);\n this.#options.afterNodeAdded?.(newNode);\n }\n }\n }\n }\n #morphOneToOne(from, to) {\n if (from === to)\n return;\n if (from.isEqualNode(to))\n return;\n if (from.nodeType === ELEMENT_NODE_TYPE && to.nodeType === ELEMENT_NODE_TYPE) {\n if (from.localName === to.localName) {\n this.#morphMatchingElements(from, to);\n } else {\n this.#morphNonMatchingElements(from, to);\n }\n } else {\n this.#morphOtherNode(from, to);\n }\n }\n #morphMatchingElements(from, to) {\n if (!(this.#options.beforeNodeVisited?.(from, to) ?? true))\n return;\n if (from.hasAttributes() || to.hasAttributes()) {\n this.#visitAttributes(from, to);\n }\n if (from.localName === \"textarea\" && to.localName === \"textarea\") {\n this.#visitTextArea(from, to);\n } else if (from.hasChildNodes() || to.hasChildNodes()) {\n this.visitChildNodes(from, to);\n }\n this.#options.afterNodeVisited?.(from, to);\n }\n #morphNonMatchingElements(from, to) {\n if (!(this.#options.beforeNodeVisited?.(from, to) ?? true))\n return;\n this.#replaceNode(from, to);\n this.#options.afterNodeVisited?.(from, to);\n }\n #morphOtherNode(from, to) {\n if (!(this.#options.beforeNodeVisited?.(from, to) ?? true))\n return;\n if (from.nodeType === to.nodeType && from.nodeValue !== null && to.nodeValue !== null) {\n from.nodeValue = to.nodeValue;\n } else {\n this.#replaceNode(from, to);\n }\n this.#options.afterNodeVisited?.(from, to);\n }\n #visitAttributes(from, to) {\n if (from.hasAttribute(\"morphlex-dirty\")) {\n from.removeAttribute(\"morphlex-dirty\");\n }\n for (const { name, value } of to.attributes) {\n if (name === \"value\") {\n if (isInputElement(from) && from.value !== value) {\n if (!this.#options.preserveChanges || from.value === from.defaultValue) {\n from.value = value;\n }\n }\n }\n if (name === \"selected\") {\n if (isOptionElement(from) && !from.selected) {\n if (!this.#options.preserveChanges || from.selected === from.defaultSelected) {\n from.selected = true;\n }\n }\n }\n if (name === \"checked\") {\n if (isInputElement(from) && !from.checked) {\n if (!this.#options.preserveChanges || from.checked === from.defaultChecked) {\n from.checked = true;\n }\n }\n }\n const oldValue = from.getAttribute(name);\n if (oldValue !== value && (this.#options.beforeAttributeUpdated?.(from, name, value) ?? true)) {\n from.setAttribute(name, value);\n this.#options.afterAttributeUpdated?.(from, name, oldValue);\n }\n }\n for (const { name, value } of from.attributes) {\n if (!to.hasAttribute(name)) {\n if (name === \"selected\") {\n if (isOptionElement(from) && from.selected) {\n if (!this.#options.preserveChanges || from.selected === from.defaultSelected) {\n from.selected = false;\n }\n }\n }\n if (name === \"checked\") {\n if (isInputElement(from) && from.checked) {\n if (!this.#options.preserveChanges || from.checked === from.defaultChecked) {\n from.checked = false;\n }\n }\n }\n if (this.#options.beforeAttributeUpdated?.(from, name, null) ?? true) {\n from.removeAttribute(name);\n this.#options.afterAttributeUpdated?.(from, name, value);\n }\n }\n }\n }\n #visitTextArea(from, to) {\n const newTextContent = to.textContent || \"\";\n const isModified = from.value !== from.defaultValue;\n if (from.textContent !== newTextContent) {\n from.textContent = newTextContent;\n }\n if (this.#options.preserveChanges && isModified)\n return;\n from.value = from.defaultValue;\n }\n visitChildNodes(from, to) {\n if (!(this.#options.beforeChildrenVisited?.(from) ?? true))\n return;\n const parent = from;\n const fromChildNodes = [...from.childNodes];\n const toChildNodes = [...to.childNodes];\n candidateNodes.clear();\n candidateElements.clear();\n candidateElementsWithIds.clear();\n unmatchedNodes.clear();\n unmatchedElements.clear();\n whitespaceNodes.clear();\n const seq = [];\n const matches = [];\n const op = [];\n const nodeTypeMap = [];\n const candidateNodeTypeMap = [];\n const localNameMap = [];\n const candidateLocalNameMap = [];\n for (let i = 0;i < fromChildNodes.length; i++) {\n const candidate = fromChildNodes[i];\n const nodeType = candidate.nodeType;\n candidateNodeTypeMap[i] = nodeType;\n if (nodeType === ELEMENT_NODE_TYPE) {\n candidateLocalNameMap[i] = candidate.localName;\n if (candidate.id !== \"\") {\n candidateElementsWithIds.add(i);\n } else {\n candidateElements.add(i);\n }\n } else if (nodeType === TEXT_NODE_TYPE && candidate.textContent?.trim() === \"\") {\n whitespaceNodes.add(i);\n } else {\n candidateNodes.add(i);\n }\n }\n for (let i = 0;i < toChildNodes.length; i++) {\n const node = toChildNodes[i];\n const nodeType = node.nodeType;\n nodeTypeMap[i] = nodeType;\n if (nodeType === ELEMENT_NODE_TYPE) {\n localNameMap[i] = node.localName;\n unmatchedElements.add(i);\n } else if (nodeType === TEXT_NODE_TYPE && node.textContent?.trim() === \"\") {\n continue;\n } else {\n unmatchedNodes.add(i);\n }\n }\n for (const unmatchedIndex of unmatchedElements) {\n const localName = localNameMap[unmatchedIndex];\n const element = toChildNodes[unmatchedIndex];\n for (const candidateIndex of candidateElements) {\n if (localName !== candidateLocalNameMap[candidateIndex])\n continue;\n const candidate = fromChildNodes[candidateIndex];\n if (candidate.isEqualNode(element)) {\n matches[unmatchedIndex] = candidateIndex;\n op[unmatchedIndex] = Operation.EqualNode;\n seq[candidateIndex] = unmatchedIndex;\n candidateElements.delete(candidateIndex);\n unmatchedElements.delete(unmatchedIndex);\n break;\n }\n }\n }\n for (const unmatchedIndex of unmatchedElements) {\n const element = toChildNodes[unmatchedIndex];\n const id = element.id;\n const idArray = this.#idArrayMap.get(element);\n if (id === \"\" && !idArray)\n continue;\n candidateLoop:\n for (const candidateIndex of candidateElementsWithIds) {\n const candidate = fromChildNodes[candidateIndex];\n if (localNameMap[unmatchedIndex] === candidateLocalNameMap[candidateIndex]) {\n if (id !== \"\" && id === candidate.id) {\n matches[unmatchedIndex] = candidateIndex;\n op[unmatchedIndex] = Operation.SameElement;\n seq[candidateIndex] = unmatchedIndex;\n candidateElementsWithIds.delete(candidateIndex);\n unmatchedElements.delete(unmatchedIndex);\n break candidateLoop;\n }\n if (idArray) {\n const candidateIdSet = this.#idSetMap.get(candidate);\n if (candidateIdSet) {\n for (let i = 0;i < idArray.length; i++) {\n const arrayId = idArray[i];\n if (candidateIdSet.has(arrayId)) {\n matches[unmatchedIndex] = candidateIndex;\n op[unmatchedIndex] = Operation.SameElement;\n seq[candidateIndex] = unmatchedIndex;\n candidateElementsWithIds.delete(candidateIndex);\n unmatchedElements.delete(unmatchedIndex);\n break candidateLoop;\n }\n }\n }\n }\n }\n }\n }\n for (const unmatchedIndex of unmatchedElements) {\n const element = toChildNodes[unmatchedIndex];\n const name = element.getAttribute(\"name\");\n const href = element.getAttribute(\"href\");\n const src = element.getAttribute(\"src\");\n for (const candidateIndex of candidateElements) {\n const candidate = fromChildNodes[candidateIndex];\n if (localNameMap[unmatchedIndex] === candidateLocalNameMap[candidateIndex] && (name && name === candidate.getAttribute(\"name\") || href && href === candidate.getAttribute(\"href\") || src && src === candidate.getAttribute(\"src\"))) {\n matches[unmatchedIndex] = candidateIndex;\n seq[candidateIndex] = unmatchedIndex;\n op[unmatchedIndex] = Operation.SameElement;\n candidateElements.delete(candidateIndex);\n unmatchedElements.delete(unmatchedIndex);\n break;\n }\n }\n }\n for (const unmatchedIndex of unmatchedElements) {\n const element = toChildNodes[unmatchedIndex];\n const localName = localNameMap[unmatchedIndex];\n for (const candidateIndex of candidateElements) {\n const candidate = fromChildNodes[candidateIndex];\n const candidateLocalName = candidateLocalNameMap[candidateIndex];\n if (localName === candidateLocalName) {\n if (localName === \"input\" && candidate.type !== element.type) {\n continue;\n }\n matches[unmatchedIndex] = candidateIndex;\n seq[candidateIndex] = unmatchedIndex;\n op[unmatchedIndex] = Operation.SameElement;\n candidateElements.delete(candidateIndex);\n unmatchedElements.delete(unmatchedIndex);\n break;\n }\n }\n }\n for (const unmatchedIndex of unmatchedNodes) {\n const node = toChildNodes[unmatchedIndex];\n for (const candidateIndex of candidateNodes) {\n const candidate = fromChildNodes[candidateIndex];\n if (candidate.isEqualNode(node)) {\n matches[unmatchedIndex] = candidateIndex;\n op[unmatchedIndex] = Operation.EqualNode;\n seq[candidateIndex] = unmatchedIndex;\n candidateNodes.delete(candidateIndex);\n unmatchedNodes.delete(unmatchedIndex);\n break;\n }\n }\n }\n for (const unmatchedIndex of unmatchedNodes) {\n const nodeType = nodeTypeMap[unmatchedIndex];\n for (const candidateIndex of candidateNodes) {\n if (nodeType === candidateNodeTypeMap[candidateIndex]) {\n matches[unmatchedIndex] = candidateIndex;\n op[unmatchedIndex] = Operation.SameNode;\n seq[candidateIndex] = unmatchedIndex;\n candidateNodes.delete(candidateIndex);\n unmatchedNodes.delete(unmatchedIndex);\n break;\n }\n }\n }\n for (const i of candidateNodes)\n this.#removeNode(fromChildNodes[i]);\n for (const i of whitespaceNodes)\n this.#removeNode(fromChildNodes[i]);\n for (const i of candidateElements)\n this.#removeNode(fromChildNodes[i]);\n for (const i of candidateElementsWithIds)\n this.#removeNode(fromChildNodes[i]);\n const lisIndices = longestIncreasingSubsequence(matches);\n const shouldNotMove = new Array(fromChildNodes.length);\n for (let i = 0;i < lisIndices.length; i++) {\n shouldNotMove[matches[lisIndices[i]]] = true;\n }\n let insertionPoint = parent.firstChild;\n for (let i = 0;i < toChildNodes.length; i++) {\n const node = toChildNodes[i];\n const matchInd = matches[i];\n if (matchInd !== undefined) {\n const match = fromChildNodes[matchInd];\n const operation = op[i];\n if (!shouldNotMove[matchInd]) {\n moveBefore(parent, match, insertionPoint);\n }\n if (operation === Operation.EqualNode) {} else if (operation === Operation.SameElement) {\n this.#morphMatchingElements(match, node);\n } else {\n this.#morphOneToOne(match, node);\n }\n insertionPoint = match.nextSibling;\n } else {\n if (this.#options.beforeNodeAdded?.(parent, node, insertionPoint) ?? true) {\n parent.insertBefore(node, insertionPoint);\n this.#options.afterNodeAdded?.(node);\n insertionPoint = node.nextSibling;\n }\n }\n }\n this.#options.afterChildrenVisited?.(from);\n }\n #replaceNode(node, newNode) {\n const parent = node.parentNode || document;\n const insertionPoint = node;\n if ((this.#options.beforeNodeRemoved?.(node) ?? true) && (this.#options.beforeNodeAdded?.(parent, newNode, insertionPoint) ?? true)) {\n parent.insertBefore(newNode, insertionPoint);\n this.#options.afterNodeAdded?.(newNode);\n node.remove();\n this.#options.afterNodeRemoved?.(node);\n }\n }\n #removeNode(node) {\n if (this.#options.beforeNodeRemoved?.(node) ?? true) {\n node.remove();\n this.#options.afterNodeRemoved?.(node);\n }\n }\n #mapIdArraysForEach(nodeList) {\n for (const childNode of nodeList) {\n if (isParentNode(childNode)) {\n this.#mapIdArrays(childNode);\n }\n }\n }\n #mapIdArrays(node) {\n const idArrayMap = this.#idArrayMap;\n for (const element of node.querySelectorAll(\"[id]\")) {\n const id = element.id;\n if (id === \"\")\n continue;\n let currentElement = element;\n while (currentElement) {\n const idArray = idArrayMap.get(currentElement);\n if (idArray) {\n idArray.push(id);\n } else {\n idArrayMap.set(currentElement, [id]);\n }\n if (currentElement === node)\n break;\n currentElement = currentElement.parentElement;\n }\n }\n }\n #mapIdSets(node) {\n const idSetMap = this.#idSetMap;\n for (const element of node.querySelectorAll(\"[id]\")) {\n const id = element.id;\n if (id === \"\")\n continue;\n let currentElement = element;\n while (currentElement) {\n const idSet = idSetMap.get(currentElement);\n if (idSet) {\n idSet.add(id);\n } else {\n idSetMap.set(currentElement, new Set([id]));\n }\n if (currentElement === node)\n break;\n currentElement = currentElement.parentElement;\n }\n }\n }\n}\nfunction isInputElement(element) {\n return element.localName === \"input\";\n}\nfunction isOptionElement(element) {\n return element.localName === \"option\";\n}\nfunction isParentNode(node) {\n return !!IS_PARENT_NODE_TYPE[node.nodeType];\n}\nfunction longestIncreasingSubsequence(sequence) {\n const n = sequence.length;\n if (n === 0)\n return [];\n const smallestEnding = [];\n const indices = [];\n const prev = new Array(n);\n for (let i = 0;i < n; i++) {\n const val = sequence[i];\n if (val === undefined)\n continue;\n let left = 0;\n let right = smallestEnding.length;\n while (left < right) {\n const mid = Math.floor((left + right) / 2);\n if (smallestEnding[mid] < val)\n left = mid + 1;\n else\n right = mid;\n }\n prev[i] = left > 0 ? indices[left - 1] : -1;\n if (left === smallestEnding.length) {\n smallestEnding.push(val);\n indices.push(i);\n } else {\n smallestEnding[left] = val;\n indices[left] = i;\n }\n }\n const result = [];\n if (indices.length === 0)\n return result;\n let curr = indices[indices.length - 1];\n while (curr !== undefined && curr !== -1) {\n result.unshift(curr);\n curr = prev[curr];\n }\n return result;\n}\nexport {\n morphInner,\n morphDocument,\n morph\n};\n\n//# debugId=3F4BCB911DEC843864756E2164756E21\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"/**\n * Universal UI Intent Types\n *\n * Canonical semantic representation for DSL commands. Language-neutral —\n * captures the MEANING of commands independent of surface syntax.\n *\n * These types are domain-agnostic and work for any DSL (hyperscript, SQL,\n * voice commands, animations, etc.) and any target framework (React, Vue,\n * Alpine, vanilla JS).\n */\n\nimport type { Diagnostic } from './diagnostics';\n\n// =============================================================================\n// Action & Role\n// =============================================================================\n\n/**\n * The command/operation in a DSL (e.g., 'toggle', 'fetch', 'select').\n */\nexport type ActionType = string;\n\n/**\n * The grammatical function of a part of a command (e.g., 'patient', 'destination').\n */\nexport type SemanticRole = string;\n\n// =============================================================================\n// Semantic Values (7 types)\n// =============================================================================\n\nexport type SemanticValue =\n LiteralValue | SelectorValue | ReferenceValue | PropertyPathValue | ExpressionValue | FlagValue;\n\n/** Expected value types for role tokens. */\nexport type ExpectedType = SemanticValue['type'];\n\nexport interface LiteralValue {\n readonly type: 'literal';\n readonly value: string | number | boolean;\n readonly dataType?: 'string' | 'number' | 'boolean' | 'duration';\n}\n\nexport interface SelectorValue {\n readonly type: 'selector';\n readonly value: string;\n readonly selectorKind?: 'id' | 'class' | 'attribute' | 'element' | 'complex' | 'identifier';\n}\n\nexport interface ReferenceValue {\n readonly type: 'reference';\n readonly value: string;\n}\n\nexport interface PropertyPathValue {\n readonly type: 'property-path';\n readonly object: SemanticValue;\n readonly property: string;\n}\n\nexport interface ExpressionValue {\n readonly type: 'expression';\n readonly raw: string;\n}\n\nexport interface FlagValue {\n readonly type: 'flag';\n readonly name: string;\n readonly enabled: boolean;\n}\n\n// =============================================================================\n// Annotations & Protocol Diagnostics (v1.2)\n// =============================================================================\n\n/** A metadata annotation on a node (v1.2). */\nexport interface Annotation {\n readonly name: string;\n readonly value?: string;\n}\n\n/**\n * A type constraint diagnostic attached to a node (v1.2).\n * Named `ProtocolDiagnostic` to avoid collision with the `Diagnostic` type.\n *\n * Uses `severity` (not `level`) to match the `Diagnostic` type convention.\n * The wire-format equivalent, `ProtocolDiagnosticJSON`, uses `level` per the\n * LSE protocol spec — this is intentional and kept separate.\n */\nexport interface ProtocolDiagnostic {\n readonly severity: 'error' | 'warning' | 'info';\n readonly role: string;\n readonly message: string;\n readonly code: string;\n}\n\n/** Async coordination variant (v1.2). */\nexport type AsyncVariant = 'all' | 'race';\n\n/** A single arm in a match command (v1.2). */\nexport interface MatchArm {\n readonly pattern: SemanticValue;\n readonly body: SemanticNode[];\n}\n\n// =============================================================================\n// Semantic Nodes (5 kinds)\n// =============================================================================\n\n/** Base interface for all semantic nodes. */\nexport interface SemanticNode {\n readonly kind: 'command' | 'event-handler' | 'conditional' | 'compound' | 'loop';\n readonly action: ActionType;\n readonly roles: ReadonlyMap<SemanticRole, SemanticValue>;\n readonly metadata?: SemanticMetadata;\n readonly annotations?: readonly Annotation[];\n readonly diagnostics?: readonly Diagnostic[];\n}\n\nexport interface SemanticMetadata {\n readonly sourceLanguage?: string;\n readonly sourceText?: string;\n readonly sourcePosition?: SourcePosition;\n readonly patternId?: string;\n readonly confidence?: number;\n}\n\nexport interface SourcePosition {\n readonly start: number;\n readonly end: number;\n readonly line?: number;\n readonly column?: number;\n}\n\n/** A single DSL command. */\nexport interface CommandSemanticNode extends SemanticNode {\n readonly kind: 'command';\n readonly body?: readonly SemanticNode[];\n readonly catchBranch?: readonly SemanticNode[];\n readonly finallyBranch?: readonly SemanticNode[];\n readonly asyncVariant?: AsyncVariant;\n readonly asyncBody?: readonly SemanticNode[];\n readonly arms?: readonly MatchArm[];\n readonly defaultArm?: readonly SemanticNode[];\n}\n\n/** Trigger-based commands (e.g., \"on click\"). */\nexport interface EventHandlerSemanticNode extends SemanticNode {\n readonly kind: 'event-handler';\n readonly body: SemanticNode[];\n readonly eventModifiers?: EventModifiers;\n readonly additionalEvents?: readonly SemanticValue[];\n readonly parameterNames?: readonly string[];\n}\n\nexport interface EventModifiers {\n readonly once?: boolean;\n readonly debounce?: number;\n readonly throttle?: number;\n readonly queue?: 'first' | 'last' | 'all' | 'none';\n readonly from?: SemanticValue;\n}\n\n/** Conditional: \"if [condition] then [body] else [body]\". */\nexport interface ConditionalSemanticNode extends SemanticNode {\n readonly kind: 'conditional';\n readonly thenBranch: SemanticNode[];\n readonly elseBranch?: SemanticNode[];\n}\n\n/** Multiple chained statements. */\nexport interface CompoundSemanticNode extends SemanticNode {\n readonly kind: 'compound';\n readonly statements: SemanticNode[];\n readonly chainType: 'then' | 'and' | 'async' | 'sequential' | 'pipe';\n}\n\n/** Loop variant discriminant. */\nexport type LoopVariant = 'forever' | 'times' | 'for' | 'while' | 'until';\n\n/** Repeat/for/while loops. */\nexport interface LoopSemanticNode extends SemanticNode {\n readonly kind: 'loop';\n readonly loopVariant: LoopVariant;\n readonly body: SemanticNode[];\n readonly loopVariable?: string;\n readonly indexVariable?: string;\n}\n\n/** Versioned envelope for multi-node LSE documents (v1.2). */\nexport interface LSEEnvelope {\n readonly lseVersion: string;\n readonly features?: readonly string[];\n readonly nodes: readonly SemanticNode[];\n}\n\n// =============================================================================\n// Factory Functions\n// =============================================================================\n\nexport function createLiteral(\n value: string | number | boolean,\n dataType?: 'string' | 'number' | 'boolean' | 'duration'\n): LiteralValue {\n return dataType ? { type: 'literal', value, dataType } : { type: 'literal', value };\n}\n\nexport function createSelector(\n value: string,\n selectorKind?: SelectorValue['selectorKind']\n): SelectorValue {\n return selectorKind ? { type: 'selector', value, selectorKind } : { type: 'selector', value };\n}\n\nexport function createReference(value: string): ReferenceValue {\n return { type: 'reference', value };\n}\n\nexport function createPropertyPath(object: SemanticValue, property: string): PropertyPathValue {\n return { type: 'property-path', object, property };\n}\n\nexport function createExpression(raw: string): ExpressionValue {\n return { type: 'expression', raw };\n}\n\nexport function createFlag(name: string, enabled: boolean = true): FlagValue {\n return { type: 'flag', name, enabled };\n}\n\nexport function createCommandNode(\n action: ActionType,\n roles: Record<SemanticRole, SemanticValue> | Map<SemanticRole, SemanticValue>,\n metadata?: SemanticMetadata\n): CommandSemanticNode {\n const rolesMap = roles instanceof Map ? roles : new Map(Object.entries(roles));\n const node: CommandSemanticNode = { kind: 'command', action, roles: rolesMap };\n return metadata ? { ...node, metadata } : node;\n}\n\nexport function createEventHandlerNode(\n action: ActionType,\n roles: Record<SemanticRole, SemanticValue> | Map<SemanticRole, SemanticValue>,\n body: SemanticNode[],\n metadata?: SemanticMetadata,\n eventModifiers?: EventModifiers\n): EventHandlerSemanticNode {\n const rolesMap = roles instanceof Map ? roles : new Map(Object.entries(roles));\n return {\n kind: 'event-handler',\n action,\n roles: rolesMap,\n body,\n ...(eventModifiers && { eventModifiers }),\n ...(metadata && { metadata }),\n };\n}\n\nexport function createConditionalNode(\n action: ActionType,\n roles: Record<SemanticRole, SemanticValue> | Map<SemanticRole, SemanticValue>,\n thenBranch: SemanticNode[],\n elseBranch?: SemanticNode[],\n metadata?: SemanticMetadata\n): ConditionalSemanticNode {\n const rolesMap = roles instanceof Map ? roles : new Map(Object.entries(roles));\n return {\n kind: 'conditional',\n action,\n roles: rolesMap,\n thenBranch,\n ...(elseBranch && { elseBranch }),\n ...(metadata && { metadata }),\n };\n}\n\nexport function createCompoundNode(\n statements: SemanticNode[],\n chainType: CompoundSemanticNode['chainType'] = 'sequential',\n metadata?: SemanticMetadata\n): CompoundSemanticNode {\n const base = {\n kind: 'compound' as const,\n action: 'compound' as const,\n roles: new Map(),\n statements,\n chainType,\n };\n return metadata ? { ...base, metadata } : base;\n}\n\nexport function createLoopNode(\n action: ActionType,\n roles: Record<SemanticRole, SemanticValue> | Map<SemanticRole, SemanticValue>,\n loopVariant: LoopVariant,\n body: SemanticNode[],\n loopVariable?: string,\n indexVariable?: string,\n metadata?: SemanticMetadata\n): LoopSemanticNode {\n const rolesMap = roles instanceof Map ? roles : new Map(Object.entries(roles));\n return {\n kind: 'loop',\n action,\n roles: rolesMap,\n loopVariant,\n body,\n ...(loopVariable && { loopVariable }),\n ...(indexVariable && { indexVariable }),\n ...(metadata && { metadata }),\n };\n}\n\nexport function createTryNode(\n body: SemanticNode[],\n catchBranch?: SemanticNode[],\n finallyBranch?: SemanticNode[],\n metadata?: SemanticMetadata\n): CommandSemanticNode {\n return {\n kind: 'command',\n action: 'try',\n roles: new Map(),\n body,\n ...(catchBranch && catchBranch.length > 0 ? { catchBranch } : {}),\n ...(finallyBranch && finallyBranch.length > 0 ? { finallyBranch } : {}),\n ...(metadata ? { metadata } : {}),\n };\n}\n\nexport function createAsyncNode(\n variant: AsyncVariant,\n asyncBody: SemanticNode[],\n metadata?: SemanticMetadata\n): CommandSemanticNode {\n return {\n kind: 'command',\n action: variant,\n roles: new Map(),\n asyncVariant: variant,\n asyncBody,\n ...(metadata ? { metadata } : {}),\n };\n}\n\nexport function createMatchNode(\n roles: Record<SemanticRole, SemanticValue> | Map<SemanticRole, SemanticValue>,\n arms: MatchArm[],\n defaultArm?: SemanticNode[],\n metadata?: SemanticMetadata\n): CommandSemanticNode {\n const rolesMap = roles instanceof Map ? roles : new Map(Object.entries(roles));\n return {\n kind: 'command',\n action: 'match',\n roles: rolesMap,\n arms,\n ...(defaultArm && defaultArm.length > 0 ? { defaultArm } : {}),\n ...(metadata ? { metadata } : {}),\n };\n}\n\n// =============================================================================\n// Value Extraction Helpers\n// =============================================================================\n\n/**\n * Extract a string representation from any SemanticValue.\n */\nexport function extractValue(value: SemanticValue): string {\n if (value.type === 'flag') return value.name;\n if ('raw' in value && value.raw !== undefined) return String(value.raw);\n if ('value' in value && value.value !== undefined) return String(value.value);\n if (value.type === 'property-path') return `${extractValue(value.object)}.${value.property}`;\n return '';\n}\n\n/**\n * Get the typed `SemanticValue` for a named role on a SemanticNode.\n * Returns `undefined` if the role is missing.\n *\n * Use this when you need the structured value (e.g. to branch on\n * `value.type`, read `value.selectorKind`, etc.). See {@link extractRoleValue}\n * for the string-convenience companion.\n */\nexport function getRoleValue(node: SemanticNode, role: string): SemanticValue | undefined {\n return node.roles.get(role);\n}\n\n/**\n * Extract a string representation from a named role on a SemanticNode.\n * Returns empty string if the role is missing.\n *\n * String-convenience companion to {@link getRoleValue}. Use this when you\n * just want a stringified role value; use `getRoleValue` when you need to\n * inspect the typed `SemanticValue` (e.g. to branch on `value.type`).\n */\nexport function extractRoleValue(node: SemanticNode, role: string): string {\n const value = node.roles.get(role);\n if (!value) return '';\n return extractValue(value);\n}\n","/**\n * Structured Error Diagnostics\n *\n * Generic diagnostic types for reporting errors, warnings, and hints\n * during parsing, validation, and compilation. These provide richer feedback\n * than simple error strings, enabling:\n *\n * - Severity levels (error, warning, info)\n * - Machine-readable error codes\n * - Source location tracking\n * - Actionable suggestions\n * - Programmatic fix lookup\n */\n\n// =============================================================================\n// Diagnostic Types\n// =============================================================================\n\n/**\n * Severity level for a diagnostic.\n */\nexport type DiagnosticSeverity = 'error' | 'warning' | 'info';\n\n/**\n * A structured diagnostic message.\n *\n * Diagnostics provide rich error information beyond simple strings.\n * They're used for parser errors, validation warnings, and hints.\n */\nexport interface Diagnostic {\n /** Human-readable message */\n readonly message: string;\n\n /** Severity level */\n readonly severity: DiagnosticSeverity;\n\n /** Machine-readable code for programmatic handling (e.g., 'parse-error', 'missing-role') */\n readonly code?: string;\n\n /**\n * The role this diagnostic is about (e.g. `patient`). The wire format's\n * `Diagnostic` shape requires it, so it must survive a protocol-JSON round-trip.\n */\n readonly role?: string;\n\n /** 1-based line number in source */\n readonly line?: number;\n\n /** 0-based column offset in line */\n readonly column?: number;\n\n /** Original source text that triggered the diagnostic */\n readonly source?: string;\n\n /** Actionable suggestions for fixing the issue */\n readonly suggestions?: readonly string[];\n}\n\n/**\n * Result of a diagnostic-aware validation.\n */\nexport interface DiagnosticResult {\n /** Whether validation passed (no errors, though warnings/info may exist) */\n readonly ok: boolean;\n\n /** All diagnostics, including errors, warnings, and info */\n readonly diagnostics: readonly Diagnostic[];\n\n /** Convenience: count of each severity level */\n readonly summary: DiagnosticSummary;\n}\n\n/**\n * Summary counts by severity.\n */\nexport interface DiagnosticSummary {\n readonly errors: number;\n readonly warnings: number;\n readonly infos: number;\n}\n\n// =============================================================================\n// Diagnostic Collector\n// =============================================================================\n\n/**\n * Collects diagnostics during a parsing/validation/compilation pass.\n *\n * @example\n * ```typescript\n * const collector = createDiagnosticCollector();\n * collector.error('Unknown command: foo', { code: 'unknown-command', line: 3 });\n * const result = collector.toResult();\n * ```\n */\nexport interface DiagnosticCollector {\n /** Message-first form: `error(message, options?)` */\n error(message: string, options?: DiagnosticOptions): void;\n /** Code-first form: `error(code, message, options?)` — useful at call sites where the code is the stable key */\n error(code: string, message: string, options?: DiagnosticOptions): void;\n warning(message: string, options?: DiagnosticOptions): void;\n info(message: string, options?: DiagnosticOptions): void;\n add(diagnostic: Diagnostic): void;\n hasErrors(): boolean;\n getDiagnostics(): readonly Diagnostic[];\n toResult(): DiagnosticResult;\n}\n\n/**\n * Options for adding a diagnostic via the collector's convenience methods.\n */\nexport interface DiagnosticOptions {\n readonly code?: string;\n readonly line?: number;\n readonly column?: number;\n readonly source?: string;\n readonly suggestions?: readonly string[];\n}\n\n// =============================================================================\n// Factory\n// =============================================================================\n\n/**\n * Create a new diagnostic collector.\n */\nexport function createDiagnosticCollector(): DiagnosticCollector {\n const diagnostics: Diagnostic[] = [];\n\n function addWithSeverity(\n severity: DiagnosticSeverity,\n message: string,\n options?: DiagnosticOptions\n ): void {\n const diag: Diagnostic = {\n message,\n severity,\n ...(options?.code != null && { code: options.code }),\n ...(options?.line != null && { line: options.line }),\n ...(options?.column != null && { column: options.column }),\n ...(options?.source != null && { source: options.source }),\n ...(options?.suggestions != null &&\n options.suggestions.length > 0 && { suggestions: options.suggestions }),\n };\n diagnostics.push(diag);\n }\n\n return {\n error(\n messageOrCode: string,\n messageOrOptions?: string | DiagnosticOptions,\n options?: DiagnosticOptions\n ) {\n if (typeof messageOrOptions === 'string') {\n // Code-first form: error(code, message, options?)\n addWithSeverity('error', messageOrOptions, { ...options, code: messageOrCode });\n } else {\n // Message-first form: error(message, options?)\n addWithSeverity('error', messageOrCode, messageOrOptions);\n }\n },\n warning(message, options) {\n addWithSeverity('warning', message, options);\n },\n info(message, options) {\n addWithSeverity('info', message, options);\n },\n add(diagnostic) {\n diagnostics.push(diagnostic);\n },\n hasErrors() {\n return diagnostics.some(d => d.severity === 'error');\n },\n getDiagnostics() {\n return diagnostics;\n },\n toResult(): DiagnosticResult {\n let errors = 0;\n let warnings = 0;\n let infos = 0;\n for (const d of diagnostics) {\n if (d.severity === 'error') errors++;\n else if (d.severity === 'warning') warnings++;\n else infos++;\n }\n return {\n ok: errors === 0,\n diagnostics,\n summary: { errors, warnings, infos },\n };\n },\n };\n}\n\n// =============================================================================\n// Helpers\n// =============================================================================\n\n/**\n * Create a diagnostic from an Error object.\n */\nexport function fromError(\n error: unknown,\n options?: Omit<DiagnosticOptions, 'code'> & { code?: string }\n): Diagnostic {\n const message = error instanceof Error ? error.message : String(error);\n return {\n message,\n severity: 'error',\n ...(options?.code != null && { code: options.code }),\n ...(options?.line != null && { line: options.line }),\n ...(options?.column != null && { column: options.column }),\n ...(options?.source != null && { source: options.source }),\n ...(options?.suggestions != null &&\n options.suggestions.length > 0 && { suggestions: options.suggestions }),\n };\n}\n\n/**\n * Filter diagnostics by severity.\n */\nexport function filterBySeverity(\n diagnostics: readonly Diagnostic[],\n severity: DiagnosticSeverity\n): readonly Diagnostic[] {\n return diagnostics.filter(d => d.severity === severity);\n}\n","/**\n * Command Schema Types\n *\n * Defines the structure of DSL commands for pattern generation and validation.\n * Language-neutral — describes semantic structure, not surface syntax.\n */\n\nimport type { ActionType, SemanticRole, SemanticValue, ExpectedType } from './types';\n\nexport interface CommandSchema {\n readonly action: ActionType;\n readonly description: string;\n readonly roles: RoleSpec[];\n readonly primaryRole: SemanticRole;\n readonly category: string;\n readonly hasBody?: boolean;\n readonly notes?: string;\n /**\n * Identifier tokens that may appear in the core parser's positional `args`\n * but are not bound to any role — e.g., scroll's `top|bottom|smoothly`.\n * These are skipped when scanning args for role values.\n */\n readonly argSkipTokens?: ReadonlyArray<string>;\n /**\n * Which role consumes the core parser's `target` field (the trailing\n * `on X` / `to X` / `from X` captured separately from args). Defaults to\n * `'destination'`. Set to `'source'` for commands like `remove .x from #y`.\n */\n readonly targetRole?: SemanticRole;\n}\n\nexport interface RoleSpec {\n readonly role: SemanticRole;\n readonly description: string;\n readonly required: boolean;\n readonly expectedTypes: Array<ExpectedType>;\n readonly default?: SemanticValue;\n /**\n * Ordering priority for SVO (Subject-Verb-Object) languages.\n * **Higher values appear EARLIER** in the surface form (descending sort).\n *\n * Example — `select <columns> from <source> where <condition>`:\n * `columns: 2, source: 1, condition: 0`\n *\n * Pick values so the most \"central\" role is highest and optional / trailing\n * clauses are lowest. When adding a role between two existing ones, bump all\n * higher positions rather than using fractional numbers.\n */\n readonly svoPosition?: number;\n /**\n * Ordering priority for SOV (Subject-Object-Verb) languages.\n * **Higher values appear EARLIER** in the surface form (descending sort).\n *\n * Same convention as {@link svoPosition} — the verb is appended last by the\n * pattern generator, so role positions order the pre-verb material.\n */\n readonly sovPosition?: number;\n /**\n * Per-language primary marker keyword for this role.\n *\n * - Non-empty string (e.g., `'to'`) — the canonical marker.\n * - Empty string `''` — explicitly no marker (bare positional arg).\n * - Multi-word strings (e.g., `'partials in'`) — match consecutive identifier tokens.\n * - `undefined` — the language profile's default marker for the role applies.\n *\n * For roles that accept multiple alternate markers (e.g., `put`'s\n * `into|before|after`), declare the alternates separately in {@link markerVariants}.\n */\n readonly markerOverride?: Record<string, string>;\n /**\n * Additional alternate marker keywords for this role, beyond {@link markerOverride}.\n * Used by schema-driven role inference to recognize any of the listed markers as\n * signaling this role; the matched marker is recorded in {@link methodCarrier} if set.\n *\n * Pattern-generation consumers typically read only `markerOverride`; this field is\n * specifically for bridge-side inference (see `inferRolesFromSchema`).\n */\n readonly markerVariants?: Record<string, readonly string[]>;\n /**\n * Per-language marker to use when RENDERING, overriding {@link markerOverride}\n * and the profile default. Empty string `''` means \"render this role bare\" —\n * for a marker that exists to help the parser but is not written by hand\n * (SQL's `insert` takes its values with no `set` before them, though the\n * profile gives the `values` role that marker).\n *\n * The key `'*'` is a blanket statement about the PROFILE default marker, so\n * it ranks below a per-language {@link markerOverride}: `{ '*': '' }` renders\n * the role bare in every language except those with an explicit override.\n * Full precedence: `renderOverride[lang]` → `markerOverride[lang]` →\n * `renderOverride['*']` → profile default.\n */\n readonly renderOverride?: Record<string, string>;\n readonly markerPosition?: 'before' | 'after';\n /**\n * Per-language override of {@link markerPosition}, for languages whose marker\n * sits on the other side of its value than their word order implies.\n *\n * Resolution when rendering: this → {@link markerPosition} → the profile's\n * marker position for the role → the word-order default (SOV: after, else before).\n */\n readonly markerPositionOverride?: Record<string, 'before' | 'after'>;\n /**\n * Which side of the verb this role renders on in SOV languages.\n *\n * SOV puts roles before the verb by default (`preVerb`). `postVerb` moves this\n * role after it — e.g. summarize's format renders `content 要約 として format`,\n * not `content として format 要約`. Ignored for non-SOV languages.\n */\n readonly sovSlot?: 'preVerb' | 'postVerb';\n /**\n * Wrap this role's value in double quotes when rendering, if it contains\n * whitespace and is not already quoted. For free-text roles (a question, a\n * prompt) whose value would otherwise be re-parsed as several tokens.\n */\n readonly quoteMultiword?: boolean;\n readonly greedy?: boolean;\n readonly selectorKinds?: ReadonlyArray<'id' | 'class' | 'attribute' | 'element' | 'complex'>;\n /**\n * When this role's marker has alternates (via {@link markerVariants}), the\n * matched marker keyword is recorded as a literal in the role named here.\n * Used by `put` to expose `into|before|after` as the `method` role.\n */\n readonly methodCarrier?: SemanticRole;\n}\n\n/**\n * Helper to create a command schema with sensible defaults.\n *\n * @throws TypeError when `schema` is missing `action` or `roles`, or when they\n * have the wrong shape. The types catch this for TypeScript callers; the\n * runtime check exists so JavaScript callers and hand-built objects fail with\n * a message naming the field instead of a `roles[0] of undefined` crash from\n * deep inside the package.\n */\nexport function defineCommand(\n schema: Partial<CommandSchema> & Pick<CommandSchema, 'action' | 'roles'>\n): CommandSchema {\n if (typeof schema !== 'object' || schema === null) {\n throw new TypeError(`defineCommand: expected a schema object, got ${describeValue(schema)}.`);\n }\n if (typeof schema.action !== 'string' || schema.action.length === 0) {\n throw new TypeError(\n `defineCommand: 'action' must be a non-empty string (got ${describeValue(schema.action)}).`\n );\n }\n if (!Array.isArray(schema.roles)) {\n throw new TypeError(\n `defineCommand(\"${schema.action}\"): 'roles' must be an array of RoleSpec ` +\n `(got ${describeValue(schema.roles)}). Build entries with defineRole().`\n );\n }\n for (const [index, role] of schema.roles.entries()) {\n if (typeof role !== 'object' || role === null || typeof role.role !== 'string') {\n throw new TypeError(\n `defineCommand(\"${schema.action}\"): roles[${index}] must be a RoleSpec with a string ` +\n `'role' field (got ${describeValue(role)}). Build it with defineRole().`\n );\n }\n }\n\n return {\n description: schema.description || `${schema.action} command`,\n category: schema.category || 'general',\n primaryRole: schema.primaryRole || schema.roles[0]?.role || 'patient',\n ...schema,\n action: schema.action,\n roles: schema.roles,\n } as CommandSchema;\n}\n\n/**\n * Helper to create a role spec with sensible defaults.\n */\nexport function defineRole(\n role: Partial<RoleSpec> & Pick<RoleSpec, 'role' | 'required' | 'expectedTypes'>\n): RoleSpec {\n return {\n description: role.description || `${role.role} role`,\n ...role,\n role: role.role,\n required: role.required,\n expectedTypes: role.expectedTypes,\n };\n}\n\n/**\n * Look up a role spec by name within a command schema.\n * Returns `undefined` if no role with that name exists.\n *\n * @example\n * const spec = getRoleSpec(toggleSchema, 'patient');\n * if (spec?.required) { ... }\n */\nexport function getRoleSpec(schema: CommandSchema, role: string): RoleSpec | undefined {\n // Contract is already \"undefined when not found\", so a malformed schema\n // answers the same question rather than throwing.\n if (!schema || !Array.isArray(schema.roles)) return undefined;\n return schema.roles.find(r => r.role === role);\n}\n\n/** Render a value for an error message without dumping large objects. */\nfunction describeValue(value: unknown): string {\n if (value === null) return 'null';\n if (Array.isArray(value)) return `an array of length ${value.length}`;\n if (typeof value === 'string') return `the string ${JSON.stringify(value)}`;\n if (typeof value === 'object') return 'an object';\n return typeof value === 'undefined' ? 'undefined' : String(value);\n}\n","/**\n * Schema-driven role inference.\n *\n * Maps a parser's positional args + modifiers + target → a role-keyed map,\n * driven by a `CommandSchema`. Used by IR bridges (core's `from-core.ts`,\n * framework's `from-interchange.ts`) to convert positional ASTs into the\n * role-based semantic IR without hand-rolling per-command switch cases.\n *\n * The function is generic over input/output value types via a small `ValueAdapter`\n * interface so callers with different node shapes (InterchangeNode, structural\n * INode, SemanticValue) can all share the same role-mapping logic.\n *\n * The schema-driven inference operates on the **English form** only (the surface\n * form the core hyperscript parser produces); per-language profile defaults\n * are not consulted here.\n */\nimport type { CommandSchema, RoleSpec } from '../schema';\nimport type { SemanticRole } from '../types';\n\n/**\n * Adapter interface that abstracts over the caller's node shape.\n *\n * @typeParam T - The input value type (e.g., `InterchangeNode`, `INode`).\n * @typeParam V - The output role-value type (e.g., `InterchangeNode`, `SemanticValue`).\n */\nexport interface ValueAdapter<T, V> {\n /**\n * If `node` is an identifier, return its keyword string; otherwise return\n * `undefined`. Used to match marker keywords and skip-tokens against args.\n */\n getIdentifierName(node: T): string | undefined;\n /**\n * Convert an input node to the output role-value type.\n */\n convertValue(node: T): V;\n /**\n * Wrap a raw string as a literal output value (used for `methodCarrier`\n * literals and for string-shaped modifier values).\n */\n createLiteralValue(text: string): V;\n}\n\n/**\n * Infer semantic roles from a `CommandSchema` plus the parser's positional\n * args, modifier object, and trailing-target node.\n *\n * Returns the role map (possibly empty). Returns `null` only if the schema is\n * not applicable (currently never — the function always returns a map).\n *\n * @example\n * ```ts\n * const roles = inferRolesFromSchema(toggleSchema, args, modifiers, target, adapter);\n * // → { patient: <args[0]>, destination: <target> }\n * ```\n */\nexport function inferRolesFromSchema<T, V>(\n schema: CommandSchema,\n args: readonly T[],\n modifiers: Readonly<Record<string, unknown>> | undefined,\n target: T | undefined,\n adapter: ValueAdapter<T, V>\n): Record<SemanticRole, V> {\n const roles: Record<SemanticRole, V> = {};\n const skipTokens = new Set(schema.argSkipTokens ?? []);\n const usedArgIndices = new Set<number>();\n\n // Pass 1: marker-keyed roles (modifier hit, then marker-in-args).\n // Iterate in declaration order so methodCarrier writes happen alongside their owning role.\n for (const role of schema.roles) {\n const markers = englishMarkers(role);\n if (markers.length === 0) continue; // No marker → handled in pass 2\n\n // Try modifiers first.\n let matched = tryModifierMarkers(role, markers, modifiers, adapter);\n\n // Fall back to scanning args for marker-in-args (e.g., scroll's `to`).\n if (!matched) {\n matched = tryArgMarkers(role, markers, args, skipTokens, usedArgIndices, adapter);\n }\n\n if (matched) {\n roles[role.role] = matched.value;\n if (role.methodCarrier) {\n roles[role.methodCarrier] = adapter.createLiteralValue(matched.matchedMarker);\n }\n }\n }\n\n // Pass 2: target field → targetRole (default 'destination').\n // Done before the positional pass so the target-filled role isn't also\n // considered for a positional arg slot.\n if (target !== undefined) {\n const tgtRole = schema.targetRole ?? 'destination';\n if (roles[tgtRole] === undefined) {\n roles[tgtRole] = adapter.convertValue(target);\n }\n }\n\n // Pass 3: positional (no-marker, not-yet-filled) roles, ordered by\n // svoPosition ASCENDING (semantic's convention — lower number = earlier\n // in surface form, matches `sortRolesByWordOrder` in @lokascript/semantic).\n const positionalRoles = schema.roles\n .filter(r => englishMarkers(r).length === 0 && roles[r.role] === undefined)\n .sort((a, b) => (a.svoPosition ?? 99) - (b.svoPosition ?? 99));\n\n let cursor = 0;\n for (const role of positionalRoles) {\n while (cursor < args.length) {\n if (usedArgIndices.has(cursor)) {\n cursor++;\n continue;\n }\n const name = adapter.getIdentifierName(args[cursor]);\n if (name !== undefined && skipTokens.has(name)) {\n cursor++;\n continue;\n }\n roles[role.role] = adapter.convertValue(args[cursor]);\n usedArgIndices.add(cursor);\n cursor++;\n break;\n }\n }\n\n return roles;\n}\n\n/**\n * Return the role's English marker(s). Empty array means \"positional\"\n * (either explicit empty string `''` or no `markerOverride.en` at all).\n */\nfunction englishMarkers(role: RoleSpec): readonly string[] {\n const primary = role.markerOverride?.en;\n const variants = role.markerVariants?.en ?? [];\n\n const out: string[] = [];\n if (typeof primary === 'string' && primary !== '') out.push(primary);\n for (const v of variants) if (v !== '') out.push(v);\n return out;\n}\n\ninterface MarkerMatch<V> {\n readonly value: V;\n readonly matchedMarker: string;\n}\n\n/**\n * Look up each candidate marker as a key in the modifiers object. Returns the\n * first hit. Modifier values may be nodes (objects with `type`) or strings.\n */\nfunction tryModifierMarkers<T, V>(\n _role: RoleSpec,\n markers: readonly string[],\n modifiers: Readonly<Record<string, unknown>> | undefined,\n adapter: ValueAdapter<T, V>\n): MarkerMatch<V> | undefined {\n if (!modifiers) return undefined;\n for (const m of markers) {\n if (!(m in modifiers)) continue;\n const raw = modifiers[m];\n if (raw === undefined || raw === null) continue;\n if (typeof raw === 'string') {\n return { value: adapter.createLiteralValue(raw), matchedMarker: m };\n }\n if (typeof raw === 'object' && 'type' in (raw as object)) {\n return { value: adapter.convertValue(raw as T), matchedMarker: m };\n }\n }\n return undefined;\n}\n\n/**\n * Scan args for a marker token (or multi-word marker phrase) followed by a\n * non-skip value arg. Mutates `usedArgIndices` to record consumed positions.\n *\n * Longest-match-first ordering ensures e.g. `partials in` matches before a\n * bare `in` would.\n */\nfunction tryArgMarkers<T, V>(\n _role: RoleSpec,\n markers: readonly string[],\n args: readonly T[],\n skipTokens: ReadonlySet<string>,\n usedArgIndices: Set<number>,\n adapter: ValueAdapter<T, V>\n): MarkerMatch<V> | undefined {\n const sorted = [...markers].sort((a, b) => b.split(/\\s+/).length - a.split(/\\s+/).length);\n\n for (const marker of sorted) {\n const words = marker.split(/\\s+/).filter(w => w.length > 0);\n if (words.length === 0) continue;\n\n for (let i = 0; i + words.length <= args.length; i++) {\n // Check that `args[i..i+words.length)` are unused identifiers matching `words`.\n let allMatch = true;\n for (let w = 0; w < words.length; w++) {\n if (usedArgIndices.has(i + w)) {\n allMatch = false;\n break;\n }\n const name = adapter.getIdentifierName(args[i + w]);\n if (name !== words[w]) {\n allMatch = false;\n break;\n }\n }\n if (!allMatch) continue;\n\n // Find the next non-used, non-skip arg as the role value.\n for (let v = i + words.length; v < args.length; v++) {\n if (usedArgIndices.has(v)) continue;\n const name = adapter.getIdentifierName(args[v]);\n if (name !== undefined && skipTokens.has(name)) continue;\n\n for (let w = 0; w < words.length; w++) usedArgIndices.add(i + w);\n usedArgIndices.add(v);\n return { value: adapter.convertValue(args[v]), matchedMarker: marker };\n }\n }\n }\n\n return undefined;\n}\n","/**\n * Reference Validation\n *\n * Configurable validation for reference values (me, you, it, result, etc.).\n * Domain DSLs can provide custom reference sets.\n */\n\n/** Default set of valid references for hyperscript-style DSLs. */\nexport const DEFAULT_REFERENCES: ReadonlySet<string> = new Set([\n 'me',\n 'you',\n 'it',\n 'result',\n 'event',\n 'target',\n 'body',\n // DOM context globals — as reference-typed as `body`, and already advertised as\n // references by core's REFERENCE_KEYWORDS and the parser's PROPERTY_ACCESS_BASES.\n // Without them here, a foreign surface (ja ドキュメント, es documento) lexes as a\n // keyword but fails isValidReference, degrades to a literal, and leaks verbatim.\n 'document',\n 'window',\n 'detail',\n]);\n\n/**\n * Check if a value is a valid reference name.\n *\n * @param value - The string to check\n * @param referenceSet - Custom reference set (defaults to DEFAULT_REFERENCES)\n */\nexport function isValidReference(\n value: string,\n referenceSet: ReadonlySet<string> = DEFAULT_REFERENCES\n): boolean {\n return referenceSet.has(value);\n}\n","/**\n * Explicit Syntax Parser\n *\n * Parses the universal [command role:value ...] bracket syntax.\n * Domain-agnostic — schema validation is injectable via ParseExplicitOptions.\n *\n * Three parsing levels matching the ABNF grammar:\n * parseDocument() → parseCompound() → parseExplicit()\n * (multi-line) (chain ops) (single bracket)\n */\n\nimport type {\n SemanticNode,\n SemanticValue,\n SemanticRole,\n ActionType,\n LoopVariant,\n Annotation,\n LSEEnvelope,\n CompoundSemanticNode,\n} from '../types';\nimport {\n createCommandNode,\n createEventHandlerNode,\n createConditionalNode,\n createLoopNode,\n createCompoundNode,\n createSelector,\n createLiteral,\n createReference,\n createFlag,\n} from '../types';\nimport type { Diagnostic } from '../diagnostics';\nimport type { ParseExplicitOptions } from './types';\nimport { isValidReference, DEFAULT_REFERENCES } from './references';\n\n/**\n * Structural role names whose bracket-enclosed values are nested commands.\n *\n * In these roles a value starting with `[` is ALWAYS a nested command; write an\n * attribute selector as a selector literal (`<[data-active]/>`). Prior to v2.0 the\n * parser guessed from the inner content, which silently dropped zero-argument\n * commands — `[halt]` is both a valid command and a valid attribute selector.\n */\nexport const STRUCTURAL_ROLES = new Set([\n 'body',\n 'then',\n 'else',\n 'condition',\n 'loop-body',\n 'variable',\n 'catch',\n 'finally',\n]);\n\n/**\n * Loop commands, and the attributes the renderer writes beside a loop head's\n * roles (`[repeat quantity:3 loop-variant:times loop-body:[…]]`). The\n * attributes describe the LOOP, not a role of its command's schema, so schema\n * validation must not reject them: it did, so the renderer's own loop output\n * could not be parsed back once a schema was supplied.\n */\nconst LOOP_COMMANDS = new Set(['repeat', 'for']);\nconst LOOP_ATTRIBUTES = new Set(['loop-variant', 'index-variable']);\n\n// =============================================================================\n// Explicit Syntax Parser\n// =============================================================================\n\nexport function parseExplicit(input: string, options: ParseExplicitOptions = {}): SemanticNode {\n const trimmed = input.trim();\n const collect = options.collectDiagnostics === true;\n const diagnostics: Diagnostic[] = [];\n\n if (!trimmed.startsWith('[') || !trimmed.endsWith(']')) {\n throw new Error('Explicit syntax must be wrapped in brackets: [command role:value ...]');\n }\n\n const content = trimmed.slice(1, -1).trim();\n if (!content) {\n throw new Error('Empty explicit statement');\n }\n\n const tokens = tokenizeExplicit(content);\n if (tokens.length === 0) {\n throw new Error('No command specified in explicit statement');\n }\n\n const command = tokens[0].toLowerCase() as ActionType;\n const roles = new Map<SemanticRole, SemanticValue>();\n const refSet = options.referenceSet ?? DEFAULT_REFERENCES;\n\n const schema = options.schemaLookup?.getSchema(command);\n // Build a Set for O(1) membership checks across all role tokens in this parse call.\n // For single lookups outside a parse loop, use getRoleSpec() from schema.ts instead.\n const validRoleNames = schema ? new Set(schema.roles.map(r => r.role)) : null;\n\n for (let i = 1; i < tokens.length; i++) {\n const token = tokens[i];\n\n if (token.startsWith('+') || token.startsWith('~')) {\n const enabled = token.startsWith('+');\n const flagName = token.slice(1);\n if (!flagName) {\n if (collect) {\n diagnostics.push({\n severity: 'error',\n code: 'EMPTY_FLAG',\n message: `Empty flag name: \"${token}\"`,\n source: 'schema',\n });\n continue;\n }\n throw new Error(`Empty flag name: \"${token}\"`);\n }\n if (validRoleNames && !validRoleNames.has(flagName as SemanticRole)) {\n if (collect) {\n diagnostics.push({\n severity: 'error',\n code: 'UNKNOWN_FLAG',\n message: `Unknown flag \"${flagName}\" for command \"${command}\"`,\n source: 'schema',\n suggestions: [...validRoleNames].map(r => `+${r}`),\n });\n roles.set(flagName as SemanticRole, createFlag(flagName, enabled));\n continue;\n }\n throw new Error(\n `Unknown flag \"${flagName}\" for command \"${command}\". Valid roles: ${[...validRoleNames].join(', ')}`\n );\n }\n roles.set(flagName as SemanticRole, createFlag(flagName, enabled));\n continue;\n }\n\n const colonIndex = token.indexOf(':');\n\n if (colonIndex === -1) {\n if (collect) {\n diagnostics.push({\n severity: 'error',\n code: 'INVALID_ROLE_FORMAT',\n message: `Invalid role format: \"${token}\". Expected role:value or +flag`,\n source: 'schema',\n });\n continue;\n }\n throw new Error(`Invalid role format: \"${token}\". Expected role:value or +flag`);\n }\n\n const roleName = token.slice(0, colonIndex);\n\n if (\n validRoleNames &&\n !STRUCTURAL_ROLES.has(roleName) &&\n !(LOOP_COMMANDS.has(command) && LOOP_ATTRIBUTES.has(roleName)) &&\n !validRoleNames.has(roleName as SemanticRole)\n ) {\n if (collect) {\n diagnostics.push({\n severity: 'error',\n code: 'UNKNOWN_ROLE',\n message: `Unknown role \"${roleName}\" for command \"${command}\"`,\n source: 'schema',\n suggestions: [...validRoleNames],\n });\n } else {\n throw new Error(\n `Unknown role \"${roleName}\" for command \"${command}\". Valid roles: ${[...validRoleNames].join(', ')}`\n );\n }\n }\n\n const role = roleName as SemanticRole;\n const valueStr = token.slice(colonIndex + 1);\n\n // In a structural role, `[...]` is always a nested command.\n if (STRUCTURAL_ROLES.has(roleName) && valueStr.startsWith('[')) {\n const nestedEnd = findMatchingBracket(token, colonIndex + 1);\n const nestedSyntax = token.slice(colonIndex + 1, nestedEnd + 1);\n roles.set(role, { type: 'expression', raw: nestedSyntax });\n continue;\n }\n\n const value = parseExplicitValue(valueStr, refSet);\n roles.set(role, value);\n }\n\n if (schema && command !== 'on') {\n for (const roleSpec of schema.roles) {\n if (roleSpec.required && !roles.has(roleSpec.role as SemanticRole) && !roleSpec.default) {\n if (collect) {\n diagnostics.push({\n severity: 'error',\n code: 'MISSING_REQUIRED_ROLE',\n message: `Missing required role \"${roleSpec.role}\" for command \"${command}\": ${roleSpec.description}`,\n source: 'schema',\n });\n } else {\n throw new Error(\n `Missing required role \"${roleSpec.role}\" for command \"${command}\": ${roleSpec.description}`\n );\n }\n }\n }\n }\n\n const attachDiagnostics = (node: SemanticNode): SemanticNode => {\n if (diagnostics.length === 0) return node;\n return { ...node, diagnostics };\n };\n\n switch (command) {\n case 'on': {\n const eventValue = roles.get('event');\n if (!eventValue) {\n if (collect) {\n diagnostics.push({\n severity: 'error',\n code: 'MISSING_EVENT_ROLE',\n message: 'Event handler requires event role: [on event:click ...]',\n source: 'schema',\n });\n return attachDiagnostics(\n createEventHandlerNode('on', roles, [], { sourceLanguage: 'explicit' })\n );\n }\n throw new Error('Event handler requires event role: [on event:click ...]');\n }\n const body = extractStructuralBody(roles, 'body', options);\n roles.delete('body' as SemanticRole);\n return attachDiagnostics(\n createEventHandlerNode('on', roles, body, { sourceLanguage: 'explicit' })\n );\n }\n\n case 'if': {\n const thenBranch = extractStructuralBody(roles, 'then', options);\n const elseBranch = extractStructuralBody(roles, 'else', options);\n roles.delete('then' as SemanticRole);\n roles.delete('else' as SemanticRole);\n return attachDiagnostics(\n createConditionalNode(\n command,\n roles,\n thenBranch,\n elseBranch.length > 0 ? elseBranch : undefined,\n { sourceLanguage: 'explicit' }\n )\n );\n }\n\n // `for item in …` is a loop too (the semantic parser builds `for` loops).\n case 'repeat':\n case 'for': {\n const loopBody = extractStructuralBody(roles, 'loop-body', options);\n const loopVariantValue = roles.get('loop-variant' as SemanticRole);\n const variableValue = roles.get('variable' as SemanticRole);\n const indexVariableValue = roles.get('index-variable' as SemanticRole);\n\n roles.delete('loop-body' as SemanticRole);\n roles.delete('loop-variant' as SemanticRole);\n roles.delete('variable' as SemanticRole);\n roles.delete('index-variable' as SemanticRole);\n\n let variant: LoopVariant;\n if (\n loopVariantValue &&\n loopVariantValue.type === 'literal' &&\n typeof loopVariantValue.value === 'string'\n ) {\n variant = loopVariantValue.value as LoopVariant;\n } else if (roles.has('quantity' as SemanticRole)) {\n variant = 'times';\n } else if (roles.has('source' as SemanticRole)) {\n variant = 'for';\n } else if (roles.has('condition' as SemanticRole)) {\n variant = 'while';\n } else {\n variant = 'forever';\n }\n\n const loopVariable =\n variableValue?.type === 'literal' && typeof variableValue.value === 'string'\n ? variableValue.value\n : variableValue?.type === 'expression'\n ? variableValue.raw\n : undefined;\n const indexVariable =\n indexVariableValue?.type === 'literal' && typeof indexVariableValue.value === 'string'\n ? indexVariableValue.value\n : undefined;\n\n return attachDiagnostics(\n createLoopNode(command, roles, variant, loopBody, loopVariable, indexVariable, {\n sourceLanguage: 'explicit',\n })\n );\n }\n\n default:\n return attachDiagnostics(createCommandNode(command, roles, { sourceLanguage: 'explicit' }));\n }\n}\n\nexport function isExplicitSyntax(input: string): boolean {\n const trimmed = input.trim();\n return trimmed.startsWith('[') && trimmed.endsWith(']');\n}\n\n// =============================================================================\n// Compound Statement Parsing\n// =============================================================================\n\nconst CHAIN_KEYWORDS = new Set(['then', 'and', 'async', 'sequential']);\n\nfunction splitCompoundSegments(input: string): {\n segments: string[];\n chainType: CompoundSemanticNode['chainType'] | null;\n} {\n const segments: string[] = [];\n let chainType: CompoundSemanticNode['chainType'] | null = null;\n let current = '';\n let bracketDepth = 0;\n let inString = false;\n let stringChar = '';\n\n for (let i = 0; i < input.length; i++) {\n const char = input[i];\n\n if (inString) {\n current += char;\n if (char === stringChar && input[i - 1] !== '\\\\') inString = false;\n continue;\n }\n\n if (char === '\"' || char === \"'\") {\n inString = true;\n stringChar = char;\n current += char;\n continue;\n }\n\n if (char === '[') {\n bracketDepth++;\n current += char;\n continue;\n }\n if (char === ']') {\n bracketDepth--;\n current += char;\n if (bracketDepth === 0) {\n const rest = input.slice(i + 1);\n const pipeMatch = rest.match(/^\\s*\\|>\\s*/);\n if (pipeMatch) {\n segments.push(current.trim());\n current = '';\n chainType ??= 'pipe';\n i += pipeMatch[0].length;\n continue;\n }\n const keywordMatch = rest.match(/^\\s+(then|and|async|sequential)\\s+/);\n if (keywordMatch && CHAIN_KEYWORDS.has(keywordMatch[1])) {\n segments.push(current.trim());\n current = '';\n chainType ??= keywordMatch[1] as CompoundSemanticNode['chainType'];\n i += keywordMatch[0].length;\n continue;\n }\n }\n continue;\n }\n\n current += char;\n }\n\n if (current.trim()) segments.push(current.trim());\n return { segments, chainType };\n}\n\nexport function parseCompound(input: string, options?: ParseExplicitOptions): SemanticNode {\n const trimmed = input.trim();\n const { annotations, remainder } = extractAnnotations(trimmed);\n const { segments, chainType } = splitCompoundSegments(remainder);\n\n let node: SemanticNode;\n if (segments.length <= 1) {\n node = parseExplicit(segments[0] || remainder, options);\n } else {\n const statements = segments.map(seg => parseExplicit(seg, options));\n node = createCompoundNode(statements, chainType ?? 'sequential');\n }\n\n if (annotations.length > 0) return { ...node, annotations };\n return node;\n}\n\n// =============================================================================\n// Annotation Parsing\n// =============================================================================\n\nfunction extractAnnotations(input: string): { annotations: Annotation[]; remainder: string } {\n const annotations: Annotation[] = [];\n let pos = 0;\n\n while (pos < input.length) {\n while (pos < input.length && (input[pos] === ' ' || input[pos] === '\\t')) pos++;\n if (pos >= input.length || input[pos] !== '@') break;\n\n pos++;\n const nameStart = pos;\n while (pos < input.length && /[A-Za-z0-9\\-_]/.test(input[pos])) pos++;\n const name = input.slice(nameStart, pos);\n if (!name) break;\n\n let value: string | undefined;\n if (pos < input.length && input[pos] === '(') {\n pos++;\n const valueStart = pos;\n if (pos < input.length && (input[pos] === '\"' || input[pos] === \"'\")) {\n const quote = input[pos];\n pos++;\n while (pos < input.length && input[pos] !== quote) {\n if (input[pos] === '\\\\') pos++;\n pos++;\n }\n pos++;\n value = input.slice(valueStart + 1, pos - 1);\n } else {\n while (pos < input.length && input[pos] !== ')') pos++;\n value = input.slice(valueStart, pos);\n }\n if (pos < input.length && input[pos] === ')') pos++;\n }\n\n annotations.push(value !== undefined ? { name, value } : { name });\n }\n\n return { annotations, remainder: input.slice(pos).trim() };\n}\n\n// =============================================================================\n// Document Parsing\n// =============================================================================\n\nconst VERSION_HEADER_RE = /^#!lse\\s+(\\d+\\.\\d+(?:\\.\\d+)?)\\s*$/;\n\nexport function parseDocument(input: string, options?: ParseExplicitOptions): LSEEnvelope {\n const lines = input.split('\\n');\n let lseVersion = '1.0';\n const nodes: SemanticNode[] = [];\n let startLine = 0;\n\n for (let i = 0; i < lines.length; i++) {\n const trimmed = lines[i].trim();\n if (!trimmed) continue;\n const versionMatch = trimmed.match(VERSION_HEADER_RE);\n if (versionMatch) {\n lseVersion = versionMatch[1];\n startLine = i + 1;\n }\n break;\n }\n\n for (let i = startLine; i < lines.length; i++) {\n const trimmed = lines[i].trim();\n if (!trimmed) continue;\n if (trimmed.startsWith('//') || (trimmed.startsWith('#') && !trimmed.startsWith('#!')))\n continue;\n nodes.push(parseCompound(trimmed, options));\n }\n\n return { lseVersion, nodes };\n}\n\n// =============================================================================\n// Detection Helpers\n// =============================================================================\n\nexport function isCompoundSyntax(input: string): boolean {\n const { segments } = splitCompoundSegments(input.trim());\n return segments.length > 1;\n}\n\nexport function isDocumentSyntax(input: string): boolean {\n const trimmed = input.trim();\n if (trimmed.includes('\\n')) return true;\n if (VERSION_HEADER_RE.test(trimmed)) return true;\n if (trimmed.startsWith('//') || (trimmed.startsWith('#') && !trimmed.startsWith('#!')))\n return true;\n return false;\n}\n\n// =============================================================================\n// Internal Helpers\n// =============================================================================\n\nfunction extractStructuralBody(\n roles: Map<SemanticRole, SemanticValue>,\n roleName: string,\n options: ParseExplicitOptions\n): SemanticNode[] {\n const value = roles.get(roleName as SemanticRole);\n if (!value) return [];\n if (value.type === 'expression') return [parseExplicit(value.raw, options)];\n return [];\n}\n\n/** Whether a combinator appears outside any quoted span. */\nfunction hasUnquotedCombinator(value: string): boolean {\n let quote = '';\n for (const ch of value) {\n if (quote) {\n if (ch === quote) quote = '';\n continue;\n }\n if (ch === '\"' || ch === \"'\") {\n quote = ch;\n continue;\n }\n if (ch === ' ' || ch === '>' || ch === '+' || ch === '~' || ch === ',') return true;\n }\n return false;\n}\n\n/**\n * Infers a selector's kind. Combinators are tested first, so `.a > .b` is\n * `complex` rather than `class`. A combinator inside a quoted span does not\n * count, so `[aria-label=\"Close menu\"]` is `attribute`.\n */\nfunction inferSelectorKind(\n value: string\n): 'id' | 'class' | 'attribute' | 'element' | 'complex' | undefined {\n if (!value) return undefined;\n if (hasUnquotedCombinator(value)) return 'complex';\n if (value.startsWith('#')) return 'id';\n if (value.startsWith('.')) return 'class';\n if (value.startsWith('[')) return 'attribute';\n if (value.startsWith('*')) return 'element';\n return undefined;\n}\n\n/** Expands the escape sequences defined by the grammar: \\\\ \\\" \\' \\n \\r \\t */\nfunction unescapeString(s: string): string {\n if (!s.includes('\\\\')) return s;\n\n let out = '';\n for (let i = 0; i < s.length; i++) {\n if (s[i] === '\\\\' && i + 1 < s.length) {\n const next = s[i + 1];\n const mapped =\n next === '\\\\'\n ? '\\\\'\n : next === '\"'\n ? '\"'\n : next === \"'\"\n ? \"'\"\n : next === 'n'\n ? '\\n'\n : next === 'r'\n ? '\\r'\n : next === 't'\n ? '\\t'\n : '';\n if (mapped) {\n out += mapped;\n i++;\n continue;\n }\n }\n out += s[i];\n }\n return out;\n}\n\n/**\n * Splits on spaces at bracket-depth 0, outside quoted strings, and outside\n * selector literals (`<...selector.../>`). The branch order is normative: the\n * string check precedes the selector check, so a `/>` inside a quoted string does\n * not close the literal. A `<` opens a selector literal only at the start of a\n * value — when the token buffer is empty or ends with `:`.\n */\nfunction tokenizeExplicit(content: string): string[] {\n const tokens: string[] = [];\n let current = '';\n let inString = false;\n let stringChar = '';\n let inSelector = false;\n let bracketDepth = 0;\n\n for (let i = 0; i < content.length; i++) {\n const char = content[i];\n if (inString) {\n current += char;\n if (char === stringChar) {\n // Even backslash count means the quote closes the string.\n let backslashes = 0;\n for (let j = i - 1; j >= 0 && content[j] === '\\\\'; j--) backslashes++;\n if (backslashes % 2 === 0) inString = false;\n }\n continue;\n }\n if (char === '\"' || char === \"'\") {\n inString = true;\n stringChar = char;\n current += char;\n continue;\n }\n if (inSelector) {\n current += char;\n if (char === '>' && current.endsWith('/>')) inSelector = false;\n continue;\n }\n if (char === '<' && (current === '' || current.endsWith(':'))) {\n inSelector = true;\n current += char;\n continue;\n }\n if (char === '[') {\n bracketDepth++;\n current += char;\n continue;\n }\n if (char === ']') {\n bracketDepth--;\n current += char;\n continue;\n }\n if (char === ' ' && bracketDepth === 0) {\n if (current) {\n tokens.push(current);\n current = '';\n }\n continue;\n }\n current += char;\n }\n\n if (current) tokens.push(current);\n return tokens;\n}\n\nfunction parseExplicitValue(valueStr: string, referenceSet: ReadonlySet<string>): SemanticValue {\n // Selector literal — the delimiters force selector interpretation.\n if (valueStr.startsWith('<')) {\n if (!valueStr.endsWith('/>')) {\n throw new Error(`Unterminated selector literal: \"${valueStr}\". Expected a closing \"/>\"`);\n }\n const inner = valueStr.slice(1, -2);\n if (!inner) throw new Error(`Empty selector literal: \"${valueStr}\"`);\n return createSelector(inner, inferSelectorKind(inner));\n }\n if (\n valueStr.startsWith('#') ||\n valueStr.startsWith('.') ||\n valueStr.startsWith('[') ||\n valueStr.startsWith('@') ||\n valueStr.startsWith('*')\n ) {\n return createSelector(valueStr, inferSelectorKind(valueStr));\n }\n if (valueStr.startsWith('\"') || valueStr.startsWith(\"'\")) {\n return createLiteral(unescapeString(valueStr.slice(1, -1)), 'string');\n }\n if (valueStr === 'true') return createLiteral(true, 'boolean');\n if (valueStr === 'false') return createLiteral(false, 'boolean');\n const lowerRef = valueStr.toLowerCase();\n if (isValidReference(lowerRef, referenceSet)) return createReference(lowerRef);\n const numMatch = valueStr.match(/^(-?\\d+(?:\\.\\d+)?)(ms|s|m|h)?$/);\n if (numMatch) {\n const num = parseFloat(numMatch[1]);\n const suffix = numMatch[2];\n if (suffix) return createLiteral(valueStr, 'duration');\n return createLiteral(num, 'number');\n }\n return createLiteral(valueStr);\n}\n\nfunction findMatchingBracket(str: string, start: number): number {\n let depth = 0;\n for (let i = start; i < str.length; i++) {\n if (str[i] === '[') depth++;\n else if (str[i] === ']') {\n depth--;\n if (depth === 0) return i;\n }\n }\n return str.length - 1;\n}\n","/**\n * Explicit Syntax Renderer\n *\n * Serializes SemanticNode to the universal [command role:value ...] bracket syntax.\n * Zero dependencies beyond core types — no language-specific logic.\n */\n\nimport type {\n SemanticNode,\n SemanticValue,\n CommandSemanticNode,\n CompoundSemanticNode,\n EventHandlerSemanticNode,\n ConditionalSemanticNode,\n LoopSemanticNode,\n LSEEnvelope,\n} from '../types';\n\n/**\n * Render a semantic node as explicit bracket syntax.\n *\n * @example\n * ```typescript\n * renderExplicit(node) // \"[toggle patient:.active destination:#button]\"\n * renderExplicit(annotatedNode) // \"@timeout(5s) [fetch source:\\\"/api/users\\\"]\"\n * ```\n */\nexport function renderExplicit(node: SemanticNode): string {\n let result: string;\n\n if (node.kind === 'compound') {\n const compoundNode = node as CompoundSemanticNode;\n result = compoundNode.statements\n .map(stmt => renderExplicit(stmt))\n .join(` ${compoundNode.chainType} `);\n } else {\n result = renderBracketCommand(node);\n }\n\n if (node.annotations && node.annotations.length > 0) {\n const annParts = node.annotations.map(ann =>\n ann.value !== undefined ? `@${ann.name}(${ann.value})` : `@${ann.name}`\n );\n return annParts.join(' ') + ' ' + result;\n }\n\n return result;\n}\n\n/**\n * Render an LSEEnvelope as a multi-line document string.\n */\nexport function renderDocument(envelope: LSEEnvelope): string {\n const lines: string[] = [];\n if (envelope.lseVersion && envelope.lseVersion !== '1.0') {\n lines.push(`#!lse ${envelope.lseVersion}`);\n }\n for (const node of envelope.nodes) {\n lines.push(renderExplicit(node));\n }\n return lines.join('\\n');\n}\n\n// =============================================================================\n// Internal Helpers\n// =============================================================================\n\nfunction renderBracketCommand(node: SemanticNode): string {\n const parts: string[] = [node.action];\n\n for (const [role, value] of node.roles) {\n if (value.type === 'flag') {\n parts.push(value.enabled ? `+${value.name}` : `~${value.name}`);\n } else {\n parts.push(`${role}:${valueToString(value)}`);\n }\n }\n\n if (node.kind === 'event-handler') {\n const eventNode = node as EventHandlerSemanticNode;\n if (eventNode.body && eventNode.body.length > 0) {\n parts.push(`body:${eventNode.body.map(n => renderExplicit(n)).join(' ')}`);\n }\n }\n\n if (node.kind === 'conditional') {\n const condNode = node as ConditionalSemanticNode;\n if (condNode.thenBranch && condNode.thenBranch.length > 0) {\n parts.push(`then:${condNode.thenBranch.map(n => renderExplicit(n)).join(' ')}`);\n }\n if (condNode.elseBranch && condNode.elseBranch.length > 0) {\n parts.push(`else:${condNode.elseBranch.map(n => renderExplicit(n)).join(' ')}`);\n }\n }\n\n if (node.kind === 'loop') {\n const loopNode = node as LoopSemanticNode;\n if (loopNode.loopVariant) parts.push(`loop-variant:${loopNode.loopVariant}`);\n if (loopNode.loopVariable) parts.push(`variable:${loopNode.loopVariable}`);\n if (loopNode.indexVariable) parts.push(`index-variable:${loopNode.indexVariable}`);\n if (loopNode.body && loopNode.body.length > 0) {\n parts.push(`loop-body:${loopNode.body.map(n => renderExplicit(n)).join(' ')}`);\n }\n }\n\n if (node.kind === 'command') {\n const cmd = node as CommandSemanticNode;\n if (cmd.body && cmd.body.length > 0)\n parts.push(`body:${cmd.body.map(n => renderExplicit(n)).join(' ')}`);\n if (cmd.catchBranch && cmd.catchBranch.length > 0)\n parts.push(`catch:${cmd.catchBranch.map(n => renderExplicit(n)).join(' ')}`);\n if (cmd.finallyBranch && cmd.finallyBranch.length > 0)\n parts.push(`finally:${cmd.finallyBranch.map(n => renderExplicit(n)).join(' ')}`);\n if (cmd.asyncVariant) parts.push(`async-variant:${cmd.asyncVariant}`);\n if (cmd.asyncBody && cmd.asyncBody.length > 0)\n parts.push(`async-body:${cmd.asyncBody.map(n => renderExplicit(n)).join(' ')}`);\n }\n\n return `[${parts.join(' ')}]`;\n}\n\n/**\n * Whether a selector must be wrapped in `<.../>` to survive a re-parse.\n *\n * A bare token re-classifies as a selector only if it starts with one of\n * `# . @ *`. A space would split the token, and a leading `[` in a structural\n * role would re-parse as a nested command — so both must wrap.\n */\nfunction needsSelectorWrap(value: string): boolean {\n if (value.includes(' ')) return true;\n const first = value[0];\n return !(first === '#' || first === '.' || first === '@' || first === '*');\n}\n\nfunction valueToString(value: SemanticValue): string {\n switch (value.type) {\n case 'literal':\n if (typeof value.value === 'string') {\n // JSON.stringify escapes backslashes and quotes; a raw `\"${v}\"` would emit\n // an unparseable literal for a value containing a quote.\n if (value.dataType === 'string' || /\\s/.test(value.value))\n return JSON.stringify(value.value);\n return value.value;\n }\n return String(value.value);\n case 'selector':\n if (!value.value) return value.value;\n return needsSelectorWrap(value.value) ? `<${value.value}/>` : value.value;\n case 'reference':\n return value.value;\n case 'property-path':\n return `${valueToString(value.object)}'s ${value.property}`;\n case 'expression':\n return value.raw;\n case 'flag':\n return value.name;\n }\n}\n","/**\n * Protocol JSON Serialization\n *\n * Converts between TypeScript SemanticNode (internal representation) and\n * the protocol wire format defined in protocol/spec/wire-format.md.\n *\n * Use toProtocolJSON() to serialize for tool-to-tool interchange.\n * Use fromProtocolJSON() to deserialize from protocol-conformant sources.\n */\n\nimport type {\n SemanticNode,\n SemanticValue,\n SemanticRole,\n CommandSemanticNode,\n EventHandlerSemanticNode,\n CompoundSemanticNode,\n ConditionalSemanticNode,\n LoopSemanticNode,\n LoopVariant,\n AsyncVariant,\n LSEEnvelope,\n} from '../types';\nimport {\n createCommandNode,\n createEventHandlerNode,\n createCompoundNode,\n createConditionalNode,\n createLoopNode,\n createTryNode,\n createAsyncNode,\n createMatchNode,\n createSelector,\n createLiteral,\n createReference,\n createExpression,\n createFlag,\n extractValue,\n} from '../types';\nimport type {\n ProtocolNodeJSON,\n ProtocolValueJSON,\n ProtocolDiagnosticJSON,\n ProtocolChainType,\n IRDiagnostic,\n LSEEnvelopeJSON,\n} from './types';\n\n// =============================================================================\n// Serialization: SemanticNode → ProtocolNodeJSON\n// =============================================================================\n\nexport function toProtocolJSON(node: SemanticNode): ProtocolNodeJSON {\n const roles = rolesToProtocol(node.roles);\n let result: ProtocolNodeJSON;\n\n switch (node.kind) {\n case 'command': {\n const cmd = node as CommandSemanticNode;\n result = { kind: 'command', action: node.action, roles };\n if (cmd.body && cmd.body.length > 0) result.body = cmd.body.map(toProtocolJSON);\n if (cmd.catchBranch && cmd.catchBranch.length > 0)\n result.catchBranch = cmd.catchBranch.map(toProtocolJSON);\n if (cmd.finallyBranch && cmd.finallyBranch.length > 0)\n result.finallyBranch = cmd.finallyBranch.map(toProtocolJSON);\n if (cmd.asyncVariant) result.asyncVariant = cmd.asyncVariant;\n if (cmd.asyncBody && cmd.asyncBody.length > 0)\n result.asyncBody = cmd.asyncBody.map(toProtocolJSON);\n if (cmd.arms && cmd.arms.length > 0) {\n result.arms = cmd.arms.map(arm => ({\n pattern: valueToProtocol(arm.pattern),\n body: arm.body.map(toProtocolJSON),\n }));\n }\n if (cmd.defaultArm && cmd.defaultArm.length > 0)\n result.defaultArm = cmd.defaultArm.map(toProtocolJSON);\n break;\n }\n case 'event-handler': {\n const eh = node as EventHandlerSemanticNode;\n\n // Emit compact form with `trigger` sugar when it's lossless. The compact\n // form is `{action: bodyAction, roles: bodyRoles, trigger: {event, modifiers?}}`\n // and deserializes back to an identical event-handler node via the\n // `if (json.trigger)` branch in fromProtocolJSON. The compact form is\n // also the only form the runtime dispatch path currently executes\n // correctly for most commands — see examples/llm-native-todo-demo.\n if (canEmitCompactTrigger(eh)) {\n const body = eh.body[0] as CommandSemanticNode;\n const eventValue = eh.roles.get('event' as SemanticRole);\n // Safe because canEmitCompactTrigger verified type + value.\n const eventName = (eventValue as { value: string }).value;\n\n const trigger: { event: string; modifiers?: Record<string, unknown> } = {\n event: eventName,\n };\n const triggerModifiers = serializeEventModifiers(eh.eventModifiers);\n if (triggerModifiers) trigger.modifiers = triggerModifiers;\n\n result = {\n action: body.action,\n roles: rolesToProtocol(body.roles),\n trigger,\n };\n break;\n }\n\n // Fallback: verbose form (multi-command body, nested control flow,\n // additional events, parameter names, annotations on body, etc.)\n result = {\n kind: 'event-handler',\n action: node.action,\n roles,\n body: eh.body.map(toProtocolJSON),\n };\n break;\n }\n case 'compound': {\n const c = node as CompoundSemanticNode;\n result = {\n kind: 'compound',\n action: 'compound',\n statements: c.statements.map(toProtocolJSON),\n chainType: c.chainType,\n } as ProtocolNodeJSON;\n break;\n }\n case 'conditional': {\n const cond = node as ConditionalSemanticNode;\n result = { kind: 'command', action: node.action, roles };\n result.thenBranch = cond.thenBranch.map(toProtocolJSON);\n if (cond.elseBranch && cond.elseBranch.length > 0)\n result.elseBranch = cond.elseBranch.map(toProtocolJSON);\n break;\n }\n case 'loop': {\n const loop = node as LoopSemanticNode;\n result = { kind: 'command', action: node.action, roles };\n result.loopVariant = loop.loopVariant;\n result.loopBody = loop.body.map(toProtocolJSON);\n if (loop.loopVariable) result.loopVariable = loop.loopVariable;\n if (loop.indexVariable) result.indexVariable = loop.indexVariable;\n break;\n }\n }\n\n if (node.annotations && node.annotations.length > 0) {\n result.annotations = node.annotations.map(a =>\n a.value !== undefined ? { name: a.name, value: a.value } : { name: a.name }\n );\n }\n\n if (node.diagnostics && node.diagnostics.length > 0) {\n result.diagnostics = node.diagnostics.map(d => {\n const json: ProtocolDiagnosticJSON = { level: d.severity, message: d.message };\n // `role` is part of the wire format's Diagnostic shape; dropping it here\n // silently lost which role a type-constraint diagnostic was about.\n if (d.role) json.role = d.role;\n if (d.code) json.code = d.code;\n if (d.source) json.source = d.source;\n if (d.suggestions && d.suggestions.length > 0) json.suggestions = [...d.suggestions];\n return json;\n });\n }\n\n return result;\n}\n\nfunction rolesToProtocol(\n roles: ReadonlyMap<SemanticRole, SemanticValue>\n): Record<string, ProtocolValueJSON> {\n const result: Record<string, ProtocolValueJSON> = {};\n for (const [role, value] of roles) result[role] = valueToProtocol(value);\n return result;\n}\n\nfunction valueToProtocol(value: SemanticValue): ProtocolValueJSON {\n switch (value.type) {\n case 'selector': {\n const PROTOCOL_SELECTOR_KINDS = new Set([\n 'id',\n 'class',\n 'attribute',\n 'element',\n 'complex',\n ] as const);\n const sk = 'selectorKind' in value ? value.selectorKind : undefined;\n const sv: ProtocolValueJSON = { type: 'selector', value: value.value };\n if (sk && PROTOCOL_SELECTOR_KINDS.has(sk as 'id'))\n sv.selectorKind = sk as 'id' | 'class' | 'attribute' | 'element' | 'complex';\n return sv;\n }\n case 'literal':\n return value.dataType\n ? { type: 'literal', value: value.value, dataType: value.dataType }\n : { type: 'literal', value: value.value };\n case 'reference':\n return { type: 'reference', value: value.value };\n case 'expression':\n return { type: 'expression', raw: value.raw };\n case 'property-path':\n return { type: 'expression', raw: extractValue(value) };\n case 'flag':\n return { type: 'flag', name: value.name, enabled: value.enabled };\n }\n}\n\n/**\n * Decide whether an event-handler node can be emitted in the compact\n * `{action, roles, trigger}` form without losing information.\n *\n * The compact form is lossless when the event-handler wraps exactly one plain\n * command, uses a simple literal event name, and carries no metadata that\n * compact form can't represent (body-level annotations, additional events,\n * parameter names, etc.). Round-trip: `fromProtocolJSON(compact)` rebuilds an\n * equivalent event-handler via the `if (json.trigger)` branch.\n */\nfunction canEmitCompactTrigger(eh: EventHandlerSemanticNode): boolean {\n // Must wrap exactly one body node and that node must be a plain command.\n if (!eh.body || eh.body.length !== 1) return false;\n const body = eh.body[0];\n if (body.kind !== 'command') return false;\n\n // The body command must not carry its own control flow or v1.2 extensions.\n const cmd = body as CommandSemanticNode;\n if (cmd.body && cmd.body.length > 0) return false;\n if (cmd.catchBranch && cmd.catchBranch.length > 0) return false;\n if (cmd.finallyBranch && cmd.finallyBranch.length > 0) return false;\n if (cmd.asyncVariant) return false;\n if (cmd.asyncBody && cmd.asyncBody.length > 0) return false;\n if (cmd.arms && cmd.arms.length > 0) return false;\n if (cmd.defaultArm && cmd.defaultArm.length > 0) return false;\n\n // Event handler must expose a simple literal string event name.\n const eventValue = eh.roles.get('event' as SemanticRole);\n if (!eventValue || eventValue.type !== 'literal') return false;\n if (typeof (eventValue as { value: unknown }).value !== 'string') return false;\n\n // The body command must NOT have its own `event` role — in compact form\n // `roles.event` is reserved for the trigger and would collide on re-parse.\n if (cmd.roles.has('event' as SemanticRole)) return false;\n\n // Event handler must not carry features compact form cannot represent.\n if (eh.additionalEvents && eh.additionalEvents.length > 0) return false;\n if (eh.parameterNames && eh.parameterNames.length > 0) return false;\n\n // Annotations/diagnostics: compact form collapses event-handler and body\n // command into one node, so only EH-level annotations round-trip. If either\n // the EH or the body command carries annotations/diagnostics, fall back\n // to verbose form to preserve them losslessly.\n if (eh.annotations && eh.annotations.length > 0) return false;\n if (eh.diagnostics && eh.diagnostics.length > 0) return false;\n if (cmd.annotations && cmd.annotations.length > 0) return false;\n if (cmd.diagnostics && cmd.diagnostics.length > 0) return false;\n\n return true;\n}\n\n/**\n * Serialize EventModifiers to the shape expected by `trigger.modifiers` in the\n * wire format. Returns undefined when there are no modifiers, so the caller\n * can omit the field entirely.\n *\n * `from` is a SemanticValue reference and is not round-trip-safe through the\n * trigger sugar path; if present, it signals that canEmitCompactTrigger\n * should have rejected the node. We still emit the simple keys here so\n * partial information survives if the caller bypasses the guard.\n */\nfunction serializeEventModifiers(\n mods: EventHandlerSemanticNode['eventModifiers']\n): Record<string, unknown> | undefined {\n if (!mods) return undefined;\n const out: Record<string, unknown> = {};\n if (mods.once) out.once = true;\n if (typeof mods.debounce === 'number') out.debounce = mods.debounce;\n if (typeof mods.throttle === 'number') out.throttle = mods.throttle;\n if (mods.queue) out.queue = mods.queue;\n return Object.keys(out).length > 0 ? out : undefined;\n}\n\n// =============================================================================\n// Deserialization: ProtocolNodeJSON → SemanticNode\n// =============================================================================\n\nexport function fromProtocolJSON(json: ProtocolNodeJSON): SemanticNode {\n const roles = new Map<SemanticRole, SemanticValue>(\n Object.entries(json.roles ?? {}).map(([role, val]) => [role, valueFromProtocol(val)])\n );\n\n const annotations = json.annotations?.map(a =>\n a.value !== undefined ? { name: a.name, value: a.value } : { name: a.name }\n );\n const diagnostics = json.diagnostics?.map(d => ({\n severity: d.level as 'error' | 'warning' | 'info',\n message: d.message,\n ...(d.role ? { role: d.role } : {}),\n ...(d.code ? { code: d.code } : {}),\n ...(d.source ? { source: d.source } : {}),\n ...(d.suggestions && d.suggestions.length > 0 ? { suggestions: d.suggestions } : {}),\n }));\n\n if (json.trigger) {\n const eventName = json.trigger.event;\n roles.set('event' as SemanticRole, createLiteral(eventName, 'string'));\n const bodyRoles = new Map(roles);\n bodyRoles.delete('event' as SemanticRole);\n const bodyNode = createCommandNode(json.action, bodyRoles);\n const node = createEventHandlerNode(\n 'on',\n roles,\n [bodyNode],\n { sourceLanguage: 'json' },\n (json.trigger.modifiers as Record<string, unknown> | undefined) ?? {}\n );\n return applyV12Metadata(node, annotations, diagnostics);\n }\n\n const kind = json.kind ?? 'command';\n\n if (kind === 'event-handler') {\n const body = (json.body ?? []).map(fromProtocolJSON);\n return applyV12Metadata(\n createEventHandlerNode(json.action, roles, body),\n annotations,\n diagnostics\n );\n }\n\n if (kind === 'compound') {\n const statements = (json.statements ?? []).map(fromProtocolJSON);\n return applyV12Metadata(\n createCompoundNode(statements, (json.chainType ?? 'sequential') as ProtocolChainType),\n annotations,\n diagnostics\n );\n }\n\n if (json.thenBranch && json.thenBranch.length > 0) {\n const thenBranch = json.thenBranch.map(fromProtocolJSON);\n const elseBranch = json.elseBranch ? json.elseBranch.map(fromProtocolJSON) : undefined;\n return applyV12Metadata(\n createConditionalNode(json.action, roles, thenBranch, elseBranch),\n annotations,\n diagnostics\n );\n }\n\n if (json.loopVariant) {\n const loopBody = (json.loopBody ?? []).map(fromProtocolJSON);\n return applyV12Metadata(\n createLoopNode(\n json.action,\n roles,\n json.loopVariant as LoopVariant,\n loopBody,\n json.loopVariable,\n json.indexVariable\n ),\n annotations,\n diagnostics\n );\n }\n\n if (json.catchBranch || json.finallyBranch) {\n const body = (json.body ?? []).map(fromProtocolJSON);\n const catchBranch = json.catchBranch ? json.catchBranch.map(fromProtocolJSON) : undefined;\n const finallyBranch = json.finallyBranch ? json.finallyBranch.map(fromProtocolJSON) : undefined;\n return applyV12Metadata(\n createTryNode(body, catchBranch, finallyBranch),\n annotations,\n diagnostics\n );\n }\n\n if (json.asyncVariant) {\n const asyncBody = (json.asyncBody ?? []).map(fromProtocolJSON);\n return applyV12Metadata(\n createAsyncNode(json.asyncVariant as AsyncVariant, asyncBody),\n annotations,\n diagnostics\n );\n }\n\n if (json.arms && json.arms.length > 0) {\n const arms = json.arms.map(arm => ({\n pattern: valueFromProtocol(arm.pattern),\n body: arm.body.map(fromProtocolJSON),\n }));\n const defaultArm = json.defaultArm ? json.defaultArm.map(fromProtocolJSON) : undefined;\n return applyV12Metadata(createMatchNode(roles, arms, defaultArm), annotations, diagnostics);\n }\n\n if (json.body && json.body.length > 0 && kind === 'command') {\n return applyV12Metadata(\n createTryNode(json.body.map(fromProtocolJSON)),\n annotations,\n diagnostics\n );\n }\n\n return applyV12Metadata(createCommandNode(json.action, roles), annotations, diagnostics);\n}\n\nfunction applyV12Metadata(\n node: SemanticNode,\n annotations: Array<{ name: string; value?: string }> | undefined,\n diagnostics:\n | Array<{\n severity: 'error' | 'warning' | 'info';\n message: string;\n code?: string;\n source?: string;\n suggestions?: string[];\n }>\n | undefined\n): SemanticNode {\n if ((!annotations || annotations.length === 0) && (!diagnostics || diagnostics.length === 0))\n return node;\n return {\n ...node,\n ...(annotations && annotations.length > 0 ? { annotations } : {}),\n ...(diagnostics && diagnostics.length > 0 ? { diagnostics } : {}),\n };\n}\n\nfunction valueFromProtocol(value: ProtocolValueJSON): SemanticValue {\n switch (value.type) {\n case 'selector':\n return createSelector(String(value.value ?? ''), value.selectorKind);\n case 'literal':\n return createLiteral(\n value.value !== undefined ? value.value : '',\n value.dataType as 'string' | 'number' | 'boolean' | 'duration' | undefined\n );\n case 'reference':\n return createReference(String(value.value ?? ''));\n case 'expression':\n return createExpression(value.raw ?? String(value.value ?? ''));\n case 'flag':\n return createFlag(\n value.name ?? String(value.value ?? ''),\n value.enabled ?? (typeof value.value === 'boolean' ? value.value : true)\n );\n case 'property-path':\n return createExpression(String(value.value ?? value.raw ?? ''));\n }\n}\n\n// =============================================================================\n// Envelope (v1.2)\n// =============================================================================\n\nexport function toEnvelopeJSON(envelope: LSEEnvelope): LSEEnvelopeJSON {\n const result: LSEEnvelopeJSON = {\n lseVersion: envelope.lseVersion,\n nodes: envelope.nodes.map(toProtocolJSON),\n };\n if (envelope.features && envelope.features.length > 0) result.features = [...envelope.features];\n return result;\n}\n\nexport function fromEnvelopeJSON(json: LSEEnvelopeJSON): LSEEnvelope {\n return {\n lseVersion: json.lseVersion,\n ...(json.features && json.features.length > 0 ? { features: json.features } : {}),\n nodes: json.nodes.map(fromProtocolJSON),\n };\n}\n\nexport function isEnvelope(json: unknown): json is LSEEnvelopeJSON {\n return (\n typeof json === 'object' &&\n json !== null &&\n 'lseVersion' in json &&\n 'nodes' in json &&\n Array.isArray((json as Record<string, unknown>).nodes)\n );\n}\n\n// =============================================================================\n// Validation\n// =============================================================================\n\nconst VALID_KINDS = new Set(['command', 'event-handler', 'compound']);\nconst VALID_VALUE_TYPES = new Set([\n 'selector',\n 'literal',\n 'reference',\n 'expression',\n 'property-path',\n 'flag',\n]);\nconst VALID_CHAIN_TYPES = new Set(['then', 'and', 'async', 'sequential', 'pipe']);\nconst VALID_ASYNC_VARIANTS = new Set(['all', 'race']);\nconst VALID_DIAGNOSTIC_LEVELS = new Set(['error', 'warning', 'info']);\n\nexport function validateProtocolJSON(json: unknown): IRDiagnostic[] {\n const diagnostics: IRDiagnostic[] = [];\n\n if (typeof json !== 'object' || json === null) {\n return [{ severity: 'error', code: 'INVALID_ROOT', message: 'Root must be a JSON object' }];\n }\n\n const node = json as Record<string, unknown>;\n const kind = 'kind' in node ? String(node.kind) : 'command';\n\n if ('kind' in node && !VALID_KINDS.has(kind)) {\n diagnostics.push({\n severity: 'error',\n code: 'INVALID_KIND',\n message: `Invalid kind \"${node.kind}\". Must be one of: command, event-handler, compound`,\n });\n }\n\n if (!('action' in node)) {\n diagnostics.push({\n severity: 'error',\n code: 'MISSING_ACTION',\n message: 'Missing required field: action',\n });\n } else if (typeof node.action !== 'string' || node.action.length === 0) {\n diagnostics.push({\n severity: 'error',\n code: 'INVALID_ACTION',\n message: 'action must be a non-empty string',\n });\n }\n\n if (!('roles' in node) && kind !== 'compound') {\n diagnostics.push({\n severity: 'error',\n code: 'MISSING_ROLES',\n message: 'Missing required field: roles',\n });\n } else if (\n 'roles' in node &&\n (typeof node.roles !== 'object' || node.roles === null || Array.isArray(node.roles))\n ) {\n diagnostics.push({\n severity: 'error',\n code: 'INVALID_ROLES',\n message: 'roles must be a plain object',\n });\n } else if ('roles' in node && node.roles) {\n for (const [role, value] of Object.entries(node.roles as Record<string, unknown>)) {\n if (typeof value !== 'object' || value === null) {\n diagnostics.push({\n severity: 'error',\n code: 'INVALID_ROLE_VALUE',\n message: `Role \"${role}\" value must be an object`,\n });\n continue;\n }\n const v = value as Record<string, unknown>;\n if (!('type' in v) || !VALID_VALUE_TYPES.has(String(v.type))) {\n diagnostics.push({\n severity: 'error',\n code: 'INVALID_VALUE_TYPE',\n message: `Role \"${role}\" has invalid type \"${v.type}\"`,\n });\n }\n if (v.type === 'flag') {\n if (typeof v.name !== 'string' && !('value' in v))\n diagnostics.push({\n severity: 'error',\n code: 'MISSING_FLAG_NAME',\n message: `Flag role \"${role}\" missing required field: name (or value)`,\n });\n if (typeof v.enabled !== 'boolean' && !('value' in v))\n diagnostics.push({\n severity: 'error',\n code: 'MISSING_FLAG_ENABLED',\n message: `Flag role \"${role}\" missing required field: enabled (or value)`,\n });\n }\n if (v.type === 'expression' && typeof v.raw !== 'string' && !('value' in v)) {\n diagnostics.push({\n severity: 'error',\n code: 'MISSING_EXPRESSION_RAW',\n message: `Expression role \"${role}\" missing required field: raw (or value)`,\n });\n }\n }\n }\n\n if ('trigger' in node && node.trigger) {\n const trigger = node.trigger as Record<string, unknown>;\n if (typeof trigger !== 'object' || trigger === null) {\n diagnostics.push({\n severity: 'error',\n code: 'INVALID_TRIGGER',\n message: 'trigger must be an object',\n });\n } else if (!trigger.event || typeof trigger.event !== 'string') {\n diagnostics.push({\n severity: 'error',\n code: 'INVALID_TRIGGER',\n message: 'trigger.event is required and must be a non-empty string',\n });\n }\n }\n\n if (kind === 'event-handler' && !('trigger' in node)) {\n if (!('body' in node) || !Array.isArray(node.body)) {\n diagnostics.push({\n severity: 'error',\n code: 'MISSING_BODY',\n message: 'event-handler node requires a body array',\n });\n }\n }\n\n if (kind === 'compound') {\n if (!('statements' in node) || !Array.isArray(node.statements)) {\n diagnostics.push({\n severity: 'error',\n code: 'MISSING_STATEMENTS',\n message: 'compound node requires a statements array',\n });\n }\n if ('chainType' in node && !VALID_CHAIN_TYPES.has(String(node.chainType))) {\n diagnostics.push({\n severity: 'error',\n code: 'INVALID_CHAIN_TYPE',\n message: `Invalid chainType \"${node.chainType}\"`,\n });\n }\n }\n\n if ('diagnostics' in node && !Array.isArray(node.diagnostics)) {\n diagnostics.push({\n severity: 'error',\n code: 'INVALID_DIAGNOSTICS',\n message: 'diagnostics must be an array',\n });\n }\n\n if ('annotations' in node) {\n if (!Array.isArray(node.annotations)) {\n diagnostics.push({\n severity: 'error',\n code: 'INVALID_ANNOTATIONS',\n message: 'annotations must be an array',\n });\n } else {\n for (let i = 0; i < (node.annotations as unknown[]).length; i++) {\n const a = (node.annotations as unknown[])[i] as Record<string, unknown> | null;\n if (!a || typeof a !== 'object') {\n diagnostics.push({\n severity: 'error',\n code: 'INVALID_ANNOTATION_ENTRY',\n message: `annotations[${i}] must be an object`,\n });\n continue;\n }\n if (typeof a.name !== 'string' || a.name.length === 0)\n diagnostics.push({\n severity: 'error',\n code: 'MISSING_ANNOTATION_NAME',\n message: `annotations[${i}] missing required field: name`,\n });\n }\n }\n }\n\n if ('asyncVariant' in node && !VALID_ASYNC_VARIANTS.has(String(node.asyncVariant))) {\n diagnostics.push({\n severity: 'error',\n code: 'INVALID_ASYNC_VARIANT',\n message: `Invalid asyncVariant \"${node.asyncVariant}\". Must be \"all\" or \"race\"`,\n });\n }\n\n if ('arms' in node) {\n if (!Array.isArray(node.arms)) {\n diagnostics.push({\n severity: 'error',\n code: 'INVALID_ARMS',\n message: 'arms must be an array',\n });\n } else {\n for (let i = 0; i < (node.arms as unknown[]).length; i++) {\n const arm = (node.arms as unknown[])[i] as Record<string, unknown> | null;\n if (!arm || typeof arm !== 'object') {\n diagnostics.push({\n severity: 'error',\n code: 'INVALID_ARM_ENTRY',\n message: `arms[${i}] must be an object`,\n });\n continue;\n }\n if (!arm.pattern || typeof arm.pattern !== 'object')\n diagnostics.push({\n severity: 'error',\n code: 'MISSING_ARM_PATTERN',\n message: `arms[${i}] missing required field: pattern`,\n });\n if (!Array.isArray(arm.body))\n diagnostics.push({\n severity: 'error',\n code: 'MISSING_ARM_BODY',\n message: `arms[${i}] missing required field: body (array)`,\n });\n }\n }\n }\n\n if ('diagnostics' in node && Array.isArray(node.diagnostics)) {\n for (let i = 0; i < (node.diagnostics as unknown[]).length; i++) {\n const d = (node.diagnostics as unknown[])[i] as Record<string, unknown> | null;\n if (!d || typeof d !== 'object') {\n diagnostics.push({\n severity: 'error',\n code: 'INVALID_DIAGNOSTIC_ENTRY',\n message: `diagnostics[${i}] must be an object`,\n });\n continue;\n }\n if (!VALID_DIAGNOSTIC_LEVELS.has(String(d.level)))\n diagnostics.push({\n severity: 'error',\n code: 'INVALID_DIAGNOSTIC_LEVEL',\n message: `diagnostics[${i}].level must be \"error\", \"warning\", or \"info\"`,\n });\n if (typeof d.message !== 'string')\n diagnostics.push({\n severity: 'error',\n code: 'MISSING_DIAGNOSTIC_MESSAGE',\n message: `diagnostics[${i}] missing required field: message`,\n });\n }\n }\n\n return diagnostics;\n}\n",null,null,null,null,null,"/**\n * Core Parser Adapter\n *\n * Bridges @hyperfixi/core's parser output into AOT ASTNode types.\n * Delegates AST conversion to the shared interchange format (fromCoreAST)\n * exported by @hyperfixi/core.\n */\n\nimport type { ASTNode } from '../types/aot-types.js';\n\n// =============================================================================\n// CORE TYPES (imported dynamically)\n// =============================================================================\n\n// Locally-declared types to avoid requiring the peer dependency at compile time.\n\ninterface CoreCompileResult {\n ok: boolean;\n ast?: CoreASTNode;\n errors?: Array<{ message: string }>;\n}\n\ninterface CoreASTNode {\n type: string;\n [key: string]: unknown;\n}\n\ninterface CoreHyperscriptAPI {\n compileSync(\n code: string,\n options?: { language?: string; traditional?: boolean }\n ): CoreCompileResult;\n}\n\n/** Interchange converter function signature, as this package consumes it. */\ntype InterchangeConverter = (node: CoreASTNode) => ASTNode;\n\n/**\n * `fromCoreAST` as core actually exports it: schema-driven role inference is\n * injected, so the engine keeps no dependency on the multilingual front-end.\n */\ntype RawInterchangeConverter = (node: CoreASTNode, options?: { inferRoles?: unknown }) => ASTNode;\n\n// =============================================================================\n// CORE PARSER ADAPTER\n// =============================================================================\n\n/**\n * Adapts @hyperfixi/core's compileSync() output into the Parser interface\n * expected by AOTCompiler.\n */\nexport class CoreParserAdapter {\n private api: CoreHyperscriptAPI;\n private converter: InterchangeConverter;\n\n constructor(api: CoreHyperscriptAPI, converter: InterchangeConverter) {\n this.api = api;\n this.converter = converter;\n }\n\n /**\n * Parse hyperscript code to an AOT-compatible AST.\n */\n parse(code: string, language?: string): ASTNode {\n const result = this.api.compileSync(code, {\n language: language ?? 'en',\n traditional: true,\n });\n\n if (!result.ok || !result.ast) {\n throw new Error(result.errors?.[0]?.message ?? `Core parser failed for: ${code}`);\n }\n\n return this.converter(result.ast);\n }\n}\n\n// =============================================================================\n// STANDALONE CONVERTER (backward compat)\n// =============================================================================\n\n/**\n * Module-level converter, set by createCoreParserAdapter().\n * Falls back to a passthrough if not yet initialized (shouldn't happen in practice).\n */\nlet _converter: InterchangeConverter | null = null;\n\n/**\n * Convert a core parser AST node to an AOT AST node.\n *\n * Delegates to `fromCoreAST` from `@hyperfixi/core`'s interchange format.\n * This function is available after `createCoreParserAdapter()` has been called.\n *\n * @deprecated Import `fromCoreAST` from `@hyperfixi/core` directly instead.\n */\nexport function convertCoreASTToAOT(node: CoreASTNode): ASTNode {\n if (_converter) return _converter(node);\n // Should not reach here — factory sets _converter before anything uses it\n return node as ASTNode;\n}\n\n// =============================================================================\n// FACTORY FUNCTION\n// =============================================================================\n\n/**\n * Create a CoreParserAdapter by dynamically importing @hyperfixi/core.\n * Throws if the package is not available.\n */\nexport async function createCoreParserAdapter(): Promise<CoreParserAdapter> {\n const core = await import('@hyperfixi/core');\n // The core package exports `hyperscript` with compileSync\n const api = core.hyperscript ?? core.default ?? core;\n\n if (!api?.compileSync) {\n throw new Error(\n '@hyperfixi/core does not export compileSync. ' +\n 'Ensure @hyperfixi/core >= 1.0.0 is installed.'\n );\n }\n\n // Use the interchange converter from core\n const rawConverter = (core as Record<string, unknown>).fromCoreAST as RawInterchangeConverter;\n if (!rawConverter) {\n throw new Error(\n '@hyperfixi/core does not export fromCoreAST. ' +\n 'Ensure @hyperfixi/core >= 1.3.0 is installed.'\n );\n }\n\n // Role inference is injected (see RawInterchangeConverter). Codegen reads\n // `node.roles` in two dozen places, so a converter without the inferrer would\n // emit silently wrong JS for every command but `set` and `go` — fail loudly\n // instead of degrading.\n let inferRoles: unknown;\n try {\n ({ schemaRoleInferrer: inferRoles } = await import('@hyperfixi/core/multilingual'));\n } catch {\n throw new Error(\n 'AOT compilation requires @hyperfixi/core/multilingual for schema-driven role ' +\n 'inference, which needs the @lokascript/semantic peer dependency. Without it ' +\n 'the compiler would emit code with roles missing for all but `set` and `go`.'\n );\n }\n const converter: InterchangeConverter = node => rawConverter(node, { inferRoles });\n\n // Cache for standalone convertCoreASTToAOT()\n _converter = converter;\n\n return new CoreParserAdapter(api as unknown as CoreHyperscriptAPI, converter);\n}\n","/**\n * Semantic Parser Adapter\n *\n * Bridges @lokascript/semantic's parse output into AOT ASTNode types.\n * Delegates AST conversion to the shared interchange format (fromSemanticAST)\n * exported by @lokascript/semantic.\n */\n\nimport type { ASTNode } from '../types/aot-types.js';\n\n// =============================================================================\n// SEMANTIC TYPES (imported dynamically)\n// =============================================================================\n\n// These mirror the types from @lokascript/semantic but are declared locally\n// so the adapter can be compiled without the optional peer dependency.\n\ninterface SemanticAnalysisResult {\n confidence: number;\n node?: SemanticNodeLike;\n errors?: string[];\n}\n\ninterface SemanticAnalyzerLike {\n analyze(input: string, language: string): SemanticAnalysisResult;\n supportsLanguage(language: string): boolean;\n}\n\ninterface SemanticNodeLike {\n kind: string;\n action: string;\n roles: ReadonlyMap<string, unknown>;\n metadata?: { confidence?: number };\n body?: SemanticNodeLike[];\n eventModifiers?: Record<string, unknown>;\n parameterNames?: readonly string[];\n thenBranch?: SemanticNodeLike[];\n elseBranch?: SemanticNodeLike[];\n statements?: SemanticNodeLike[];\n loopVariant?: string;\n loopVariable?: string;\n indexVariable?: string;\n}\n\ninterface ASTBuilderLike {\n build(node: SemanticNodeLike): SemanticASTNodeLike;\n warnings: string[];\n}\n\ninterface SemanticASTNodeLike {\n type: string;\n [key: string]: unknown;\n}\n\ntype ParseWithConfidenceFn = (\n code: string,\n language: string\n) => { node: SemanticNodeLike | null; confidence: number; error: string | undefined };\n\n/** Interchange converter function signature */\ntype InterchangeConverter = (node: SemanticASTNodeLike) => ASTNode;\n\n// =============================================================================\n// SEMANTIC PARSER ADAPTER\n// =============================================================================\n\n/**\n * Adapts @lokascript/semantic into the SemanticParser interface expected by\n * AOTCompiler.\n *\n * Uses `parseWithConfidence()` for analysis — this is the full semantic parser\n * (not just the pattern matcher), so it correctly handles event handlers with\n * body commands, compound statements, etc.\n */\nexport class SemanticParserAdapter {\n private analyzer: SemanticAnalyzerLike;\n private ASTBuilderClass: new () => ASTBuilderLike;\n private parseWithConfidenceFn: ParseWithConfidenceFn;\n private converter: InterchangeConverter;\n\n constructor(\n analyzer: SemanticAnalyzerLike,\n ASTBuilderClass: new () => ASTBuilderLike,\n parseWithConfidenceFn: ParseWithConfidenceFn,\n converter: InterchangeConverter\n ) {\n this.analyzer = analyzer;\n this.ASTBuilderClass = ASTBuilderClass;\n this.parseWithConfidenceFn = parseWithConfidenceFn;\n this.converter = converter;\n }\n\n /**\n * Analyze code in the given language.\n * Uses the full semantic parser (parseWithConfidence) which correctly\n * returns event-handler nodes with body commands.\n */\n analyze(\n code: string,\n language: string\n ): { node?: unknown; confidence: number; errors?: string[] } {\n try {\n const result = this.parseWithConfidenceFn(code, language);\n return {\n node: result.node ?? undefined,\n confidence: result.confidence,\n errors: result.error ? [result.error] : undefined,\n };\n } catch (error) {\n return {\n confidence: 0,\n errors: [error instanceof Error ? error.message : String(error)],\n };\n }\n }\n\n /**\n * Build an AOT-compatible AST from the SemanticNode.\n * Converts the semantic package's AST format to AOT types via interchange.\n */\n buildAST(node: unknown): { ast: ASTNode; warnings: string[] } {\n const semanticNode = node as SemanticNodeLike;\n\n const builder = new this.ASTBuilderClass();\n const semanticAST = builder.build(semanticNode);\n const aotAST = this.converter(semanticAST);\n\n return { ast: aotAST, warnings: builder.warnings };\n }\n\n /**\n * Check if the given language is supported.\n */\n supportsLanguage(language: string): boolean {\n return this.analyzer.supportsLanguage(language);\n }\n}\n\n// =============================================================================\n// STANDALONE CONVERTER (backward compat)\n// =============================================================================\n\nlet _converter: InterchangeConverter | null = null;\n\n/**\n * Convert a semantic package AST node to an AOT AST node.\n *\n * Delegates to `fromSemanticAST` from `@lokascript/semantic`'s interchange format.\n * This function is available after `createSemanticAdapter()` has been called.\n *\n * @deprecated Import `fromSemanticAST` from `@lokascript/semantic` directly instead.\n */\nexport function convertSemanticASTToAOT(node: SemanticASTNodeLike): ASTNode {\n if (_converter) return _converter(node);\n return node as ASTNode;\n}\n\n// =============================================================================\n// FACTORY FUNCTION\n// =============================================================================\n\n/**\n * Create a SemanticParserAdapter by dynamically importing @lokascript/semantic.\n * Throws if the package is not available.\n */\nexport async function createSemanticAdapter(): Promise<SemanticParserAdapter> {\n const semantic = await import('@lokascript/semantic');\n const ASTBuilderClass = semantic.ASTBuilder;\n const parseWithConfidence = semantic.parseWithConfidence;\n const isLanguageRegistered = semantic.isLanguageRegistered;\n\n // Build a lightweight analyzer-like object — just supportsLanguage is read\n // by SemanticParserAdapter; analyze() goes through parseWithConfidence directly.\n const analyzer: SemanticAnalyzerLike = {\n analyze() {\n // Not used by SemanticParserAdapter; analysis goes through parseWithConfidenceFn.\n throw new Error('SemanticParserAdapter routes analyze() through parseWithConfidence.');\n },\n supportsLanguage(language: string) {\n return isLanguageRegistered(language);\n },\n };\n\n // Use the interchange converter from semantic\n const converter = (semantic as Record<string, unknown>).fromSemanticAST as InterchangeConverter;\n if (!converter) {\n throw new Error(\n '@lokascript/semantic does not export fromSemanticAST. ' +\n 'Ensure @lokascript/semantic >= 1.3.0 is installed.'\n );\n }\n\n // Cache for standalone convertSemanticASTToAOT()\n _converter = converter;\n\n return new SemanticParserAdapter(\n analyzer,\n ASTBuilderClass as unknown as new () => ASTBuilderLike,\n parseWithConfidence as unknown as ParseWithConfidenceFn,\n converter\n );\n}\n","import {\n CoreParserAdapter,\n convertCoreASTToAOT,\n createCoreParserAdapter\n} from \"./chunk-HU765WG6.js\";\nexport {\n CoreParserAdapter,\n convertCoreASTToAOT,\n createCoreParserAdapter\n};\n//# sourceMappingURL=core-parser-adapter-W5UPZR4X.js.map","import {\n SemanticParserAdapter,\n convertSemanticASTToAOT,\n createSemanticAdapter\n} from \"./chunk-MMZ3JFI7.js\";\nexport {\n SemanticParserAdapter,\n convertSemanticASTToAOT,\n createSemanticAdapter\n};\n//# sourceMappingURL=semantic-adapter-JAAALHRO.js.map","/**\n * HTML Scanner\n *\n * Extracts hyperscript code from HTML files and other source formats.\n * Supports _ attributes, data-hs attributes, and script tags.\n */\n\nimport type {\n ExtractedScript,\n SourceLocation,\n ScannerOptions,\n ScanResult,\n} from '../types/aot-types.js';\n\n// =============================================================================\n// DEFAULT OPTIONS\n// =============================================================================\n\nconst DEFAULT_OPTIONS: Required<ScannerOptions> = {\n attributeNames: ['_', 'data-hs', 'data-hyperscript'],\n includeScriptTags: true,\n defaultLanguage: 'en',\n};\n\n// =============================================================================\n// REGEX PATTERNS\n// =============================================================================\n\n/**\n * Match an HTML attribute with its value.\n * Handles: attr=\"value\", attr='value', attr=value\n */\nfunction createAttributeRegex(attrName: string): RegExp {\n const escaped = attrName.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n return new RegExp(`${escaped}\\\\s*=\\\\s*(?:\"([^\"]*?)\"|'([^']*?)'|([^\\\\s>]+))`, 'gi');\n}\n\n/**\n * Match an HTML element with its attributes.\n */\nconst ELEMENT_REGEX = /<([a-z][a-z0-9-]*)\\s+([^>]*?)>/gi;\n\n/**\n * Match script tags with type=\"text/hyperscript\".\n */\nconst SCRIPT_TAG_REGEX =\n /<script\\s+[^>]*type\\s*=\\s*[\"']text\\/hyperscript[\"'][^>]*>([\\s\\S]*?)<\\/script>/gi;\n\n/**\n * Extract id attribute from element.\n */\nconst ID_REGEX = /\\bid\\s*=\\s*[\"']([^\"']+)[\"']/i;\n\n/**\n * Extract class attribute from element.\n */\nconst CLASS_REGEX = /\\bclass\\s*=\\s*[\"']([^\"']+)[\"']/i;\n\n/**\n * Extract lang attribute from element.\n */\nconst LANG_REGEX = /\\blang\\s*=\\s*[\"']([^\"']+)[\"']/i;\n\n// =============================================================================\n// HTML SCANNER CLASS\n// =============================================================================\n\n/**\n * Scanner for extracting hyperscript from HTML sources.\n */\nexport class HTMLScanner {\n private options: Required<ScannerOptions>;\n private attributeRegexes: Map<string, RegExp>;\n\n constructor(options: ScannerOptions = {}) {\n this.options = { ...DEFAULT_OPTIONS, ...options };\n this.attributeRegexes = new Map();\n\n for (const attr of this.options.attributeNames) {\n this.attributeRegexes.set(attr, createAttributeRegex(attr));\n }\n }\n\n /**\n * Extract hyperscript from HTML source code.\n */\n extract(source: string, filename: string): ExtractedScript[] {\n const scripts: ExtractedScript[] = [];\n\n // Extract from attributes\n scripts.push(...this.extractFromAttributes(source, filename));\n\n // Extract from script tags\n if (this.options.includeScriptTags) {\n scripts.push(...this.extractFromScriptTags(source, filename));\n }\n\n return scripts;\n }\n\n /**\n * Extract hyperscript from element attributes.\n */\n private extractFromAttributes(source: string, filename: string): ExtractedScript[] {\n const scripts: ExtractedScript[] = [];\n let elementMatch: RegExpExecArray | null;\n\n // Reset regex state\n ELEMENT_REGEX.lastIndex = 0;\n\n while ((elementMatch = ELEMENT_REGEX.exec(source)) !== null) {\n const tagName = elementMatch[1];\n const attributes = elementMatch[2];\n const elementStart = elementMatch.index;\n\n // Calculate line/column for this element\n const location = this.calculateLocation(source, elementStart, filename);\n\n // Check each hyperscript attribute\n for (const [attrName, regex] of this.attributeRegexes) {\n regex.lastIndex = 0;\n const attrMatch = regex.exec(attributes);\n\n if (attrMatch) {\n // Value can be in groups 1, 2, or 3 depending on quote style\n const code = attrMatch[1] ?? attrMatch[2] ?? attrMatch[3];\n\n if (code && code.trim()) {\n // Get element identifiers\n const elementId = this.extractId(attributes);\n const elementSelector = this.buildSelector(tagName, attributes, elementId);\n const language = this.extractLanguage(attributes) ?? this.options.defaultLanguage;\n\n // Decode HTML entities\n const decodedCode = this.decodeHTMLEntities(code);\n\n scripts.push({\n code: decodedCode,\n location: {\n ...location,\n column: location.column + attrMatch.index,\n },\n elementId,\n elementSelector,\n language,\n attributeName: attrName,\n });\n }\n }\n }\n }\n\n return scripts;\n }\n\n /**\n * Extract hyperscript from script tags.\n */\n private extractFromScriptTags(source: string, filename: string): ExtractedScript[] {\n const scripts: ExtractedScript[] = [];\n let match: RegExpExecArray | null;\n\n // Reset regex state\n SCRIPT_TAG_REGEX.lastIndex = 0;\n\n while ((match = SCRIPT_TAG_REGEX.exec(source)) !== null) {\n const code = match[1].trim();\n\n if (code) {\n const location = this.calculateLocation(source, match.index, filename);\n\n scripts.push({\n code,\n location,\n language: this.options.defaultLanguage,\n attributeName: 'script',\n });\n }\n }\n\n return scripts;\n }\n\n /**\n * Calculate line and column from character offset.\n */\n private calculateLocation(source: string, offset: number, filename: string): SourceLocation {\n const before = source.slice(0, offset);\n const lines = before.split('\\n');\n const line = lines.length;\n const column = (lines[lines.length - 1]?.length ?? 0) + 1;\n\n return { file: filename, line, column };\n }\n\n /**\n * Extract ID from attributes string.\n */\n private extractId(attributes: string): string | undefined {\n const match = ID_REGEX.exec(attributes);\n return match?.[1];\n }\n\n /**\n * Extract language from attributes string.\n */\n private extractLanguage(attributes: string): string | undefined {\n const match = LANG_REGEX.exec(attributes);\n return match?.[1];\n }\n\n /**\n * Build a CSS selector for an element.\n */\n private buildSelector(tagName: string, attributes: string, elementId?: string): string {\n // Prefer ID selector\n if (elementId) {\n return `#${elementId}`;\n }\n\n // Build selector from tag and classes\n let selector = tagName;\n\n const classMatch = CLASS_REGEX.exec(attributes);\n if (classMatch) {\n const classes = classMatch[1].split(/\\s+/).filter(Boolean);\n if (classes.length > 0) {\n selector += '.' + classes.join('.');\n }\n }\n\n // Add attribute selector as fallback\n for (const attrName of this.options.attributeNames) {\n if (attributes.includes(attrName + '=')) {\n selector += `[${attrName}]`;\n break;\n }\n }\n\n return selector;\n }\n\n /**\n * Decode HTML entities in attribute values.\n */\n private decodeHTMLEntities(text: string): string {\n return text\n .replace(/"/g, '\"')\n .replace(/'/g, \"'\")\n .replace(/</g, '<')\n .replace(/>/g, '>')\n .replace(/&/g, '&')\n .replace(/&#(\\d+);/g, (_, code) => String.fromCharCode(parseInt(code, 10)))\n .replace(/&#x([0-9a-f]+);/gi, (_, code) => String.fromCharCode(parseInt(code, 16)));\n }\n}\n\n// =============================================================================\n// VUE SCANNER\n// =============================================================================\n\n/**\n * Scanner for Vue Single File Components.\n */\nexport class VueScanner extends HTMLScanner {\n /**\n * Extract hyperscript from Vue SFC.\n */\n extract(source: string, filename: string): ExtractedScript[] {\n // Extract template section\n const templateMatch = /<template[^>]*>([\\s\\S]*?)<\\/template>/i.exec(source);\n\n if (!templateMatch) {\n return [];\n }\n\n const template = templateMatch[1];\n const templateOffset = templateMatch.index + templateMatch[0].indexOf('>') + 1;\n\n // Extract from template content\n const scripts = super.extract(template, filename);\n\n // Adjust line numbers for template offset\n const linesBefore = source.slice(0, templateOffset).split('\\n').length - 1;\n\n for (const script of scripts) {\n script.location.line += linesBefore;\n }\n\n return scripts;\n }\n}\n\n// =============================================================================\n// SVELTE SCANNER\n// =============================================================================\n\n/**\n * Scanner for Svelte components.\n */\nexport class SvelteScanner extends HTMLScanner {\n /**\n * Extract hyperscript from Svelte component.\n * Svelte components are HTML-like, so we can use the base scanner\n * but need to exclude script and style blocks.\n */\n extract(source: string, filename: string): ExtractedScript[] {\n // Remove script and style blocks\n let cleanedSource = source\n .replace(/<script[^>]*>[\\s\\S]*?<\\/script>/gi, match => ' '.repeat(match.length))\n .replace(/<style[^>]*>[\\s\\S]*?<\\/style>/gi, match => ' '.repeat(match.length));\n\n return super.extract(cleanedSource, filename);\n }\n}\n\n// =============================================================================\n// JSX SCANNER\n// =============================================================================\n\n/**\n * Scanner for JSX/TSX files.\n */\nexport class JSXScanner {\n private options: Required<ScannerOptions>;\n\n constructor(options: ScannerOptions = {}) {\n this.options = { ...DEFAULT_OPTIONS, ...options };\n }\n\n /**\n * Extract hyperscript from JSX source.\n * Handles both regular attributes and spread attributes.\n */\n extract(source: string, filename: string): ExtractedScript[] {\n const scripts: ExtractedScript[] = [];\n\n // Match JSX hyperscript attributes: _=\"code\" or _={'code'} or _={`code`}\n for (const attrName of this.options.attributeNames) {\n const escaped = attrName.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n\n // String literal value: _=\"...\"\n const stringRegex = new RegExp(`${escaped}\\\\s*=\\\\s*[\"']([^\"']+)[\"']`, 'g');\n let match: RegExpExecArray | null;\n\n while ((match = stringRegex.exec(source)) !== null) {\n const code = match[1];\n if (code && code.trim()) {\n scripts.push({\n code,\n location: this.calculateLocation(source, match.index, filename),\n language: this.options.defaultLanguage,\n attributeName: attrName,\n });\n }\n }\n\n // Template literal value: _={`...`}\n const templateRegex = new RegExp(`${escaped}\\\\s*=\\\\s*\\\\{\\\\s*\\`([^\\`]+)\\`\\\\s*\\\\}`, 'g');\n\n while ((match = templateRegex.exec(source)) !== null) {\n const code = match[1];\n if (code && code.trim()) {\n scripts.push({\n code,\n location: this.calculateLocation(source, match.index, filename),\n language: this.options.defaultLanguage,\n attributeName: attrName,\n });\n }\n }\n\n // String expression value: _={'...'} or _={\"...\"}\n const exprRegex = new RegExp(`${escaped}\\\\s*=\\\\s*\\\\{\\\\s*[\"']([^\"']+)[\"']\\\\s*\\\\}`, 'g');\n\n while ((match = exprRegex.exec(source)) !== null) {\n const code = match[1];\n if (code && code.trim()) {\n scripts.push({\n code,\n location: this.calculateLocation(source, match.index, filename),\n language: this.options.defaultLanguage,\n attributeName: attrName,\n });\n }\n }\n }\n\n return scripts;\n }\n\n /**\n * Calculate line and column from character offset.\n */\n private calculateLocation(source: string, offset: number, filename: string): SourceLocation {\n const before = source.slice(0, offset);\n const lines = before.split('\\n');\n const line = lines.length;\n const column = (lines[lines.length - 1]?.length ?? 0) + 1;\n\n return { file: filename, line, column };\n }\n}\n\n// =============================================================================\n// MULTI-FILE SCANNER\n// =============================================================================\n\n/**\n * Scan multiple files for hyperscript.\n */\nexport async function scanFiles(\n files: string[],\n readFile: (path: string) => Promise<string>,\n options: ScannerOptions = {}\n): Promise<ScanResult> {\n const result: ScanResult = {\n scripts: [],\n files: [],\n errors: [],\n };\n\n const htmlScanner = new HTMLScanner(options);\n const vueScanner = new VueScanner(options);\n const svelteScanner = new SvelteScanner(options);\n const jsxScanner = new JSXScanner(options);\n\n for (const file of files) {\n try {\n const content = await readFile(file);\n let scripts: ExtractedScript[] = [];\n\n if (file.endsWith('.vue')) {\n scripts = vueScanner.extract(content, file);\n } else if (file.endsWith('.svelte')) {\n scripts = svelteScanner.extract(content, file);\n } else if (file.match(/\\.(jsx|tsx)$/)) {\n scripts = jsxScanner.extract(content, file);\n } else if (file.match(/\\.(html|htm)$/)) {\n scripts = htmlScanner.extract(content, file);\n }\n\n result.scripts.push(...scripts);\n result.files.push(file);\n } catch (error) {\n result.errors.push({\n file,\n error: error instanceof Error ? error.message : String(error),\n });\n }\n }\n\n return result;\n}\n\n// =============================================================================\n// CONVENIENCE EXPORTS\n// =============================================================================\n\n/**\n * Create a scanner for the appropriate file type.\n */\nexport function createScanner(\n filename: string,\n options?: ScannerOptions\n): HTMLScanner | JSXScanner {\n if (filename.endsWith('.vue')) {\n return new VueScanner(options);\n }\n if (filename.endsWith('.svelte')) {\n return new SvelteScanner(options);\n }\n if (filename.match(/\\.(jsx|tsx)$/)) {\n return new JSXScanner(options);\n }\n return new HTMLScanner(options);\n}\n\nexport default HTMLScanner;\n","/**\n * Static Analyzer\n *\n * Performs static analysis on hyperscript AST to gather information\n * for optimization and code generation.\n */\n\nimport type {\n ASTNode,\n AnalysisResult,\n VariableInfo,\n SelectorInfo,\n SourceLocation,\n CommandNode,\n EventHandlerNode,\n IdentifierNode,\n IfNode,\n RepeatNode,\n ForEachNode,\n WhileNode,\n VariableNode,\n SelectorNode,\n BinaryExpressionNode,\n CallExpressionNode,\n} from '../types/aot-types.js';\n\n// =============================================================================\n// ANALYZER CLASS\n// =============================================================================\n\n/**\n * Static analyzer for hyperscript AST.\n */\nexport class Analyzer {\n /**\n * Analyze an AST and return analysis results.\n */\n analyze(ast: ASTNode): AnalysisResult {\n const visitor = new AnalysisVisitor();\n visitor.visit(ast);\n return visitor.getResult();\n }\n}\n\n// =============================================================================\n// ANALYSIS VISITOR\n// =============================================================================\n\n/**\n * Visitor that walks the AST and collects analysis data.\n */\nclass AnalysisVisitor {\n private commandsUsed = new Set<string>();\n private localVars = new Map<string, VariableInfo>();\n private globalVars = new Map<string, VariableInfo>();\n private contextVars = new Set<string>();\n private pureExpressions: ASTNode[] = [];\n private dynamicExpressions: ASTNode[] = [];\n private selectors: SelectorInfo[] = [];\n private selectorMap = new Map<string, SelectorInfo>();\n private domQueries: string[] = [];\n private eventTypes: string[] = [];\n private behaviors: string[] = [];\n private runtimeHelpers = new Set<string>();\n private warnings: string[] = [];\n\n private hasAsync = false;\n private hasLoops = false;\n private hasConditionals = false;\n private canThrow = false;\n private currentNestingDepth = 0;\n private maxNestingDepth = 0;\n\n private currentLocation?: SourceLocation;\n\n /**\n * Visit an AST node and its children.\n */\n visit(node: ASTNode): void {\n if (!node) return;\n\n switch (node.type) {\n case 'event':\n this.visitEvent(node as EventHandlerNode);\n break;\n case 'command':\n this.visitCommand(node as CommandNode);\n break;\n case 'if':\n this.visitIf(node as IfNode);\n break;\n case 'repeat':\n this.visitRepeat(node as RepeatNode);\n break;\n case 'foreach':\n this.visitForEach(node as ForEachNode);\n break;\n case 'while':\n this.visitWhile(node as WhileNode);\n break;\n case 'variable':\n this.visitVariable(node as VariableNode, 'read');\n break;\n case 'selector':\n this.visitSelector(node as SelectorNode);\n break;\n case 'binary':\n this.visitBinary(node as BinaryExpressionNode);\n break;\n case 'call':\n this.visitCall(node as CallExpressionNode);\n break;\n case 'identifier':\n this.visitIdentifier(node as IdentifierNode);\n break;\n default:\n // Visit children for other node types\n this.visitChildren(node);\n }\n }\n\n /**\n * Get the analysis result.\n */\n getResult(): AnalysisResult {\n return {\n commandsUsed: this.commandsUsed,\n variables: {\n locals: this.localVars,\n globals: this.globalVars,\n contextVars: this.contextVars,\n },\n expressions: {\n pure: this.pureExpressions,\n dynamic: this.dynamicExpressions,\n selectors: this.selectors,\n },\n controlFlow: {\n hasAsync: this.hasAsync,\n hasLoops: this.hasLoops,\n hasConditionals: this.hasConditionals,\n canThrow: this.canThrow,\n maxNestingDepth: this.maxNestingDepth,\n },\n dependencies: {\n domQueries: [...new Set(this.domQueries)],\n eventTypes: [...new Set(this.eventTypes)],\n behaviors: [...new Set(this.behaviors)],\n runtimeHelpers: Array.from(this.runtimeHelpers),\n },\n warnings: this.warnings,\n };\n }\n\n // ===========================================================================\n // VISITOR METHODS\n // ===========================================================================\n\n private visitEvent(node: EventHandlerNode): void {\n this.eventTypes.push(node.event);\n\n // Check for event modifiers that need runtime helpers\n if (node.modifiers?.debounce) {\n this.runtimeHelpers.add('debounce');\n }\n if (node.modifiers?.throttle) {\n this.runtimeHelpers.add('throttle');\n }\n\n // Visit body\n if (node.body) {\n for (const child of node.body) {\n this.visit(child);\n }\n }\n }\n\n private visitCommand(node: CommandNode): void {\n this.commandsUsed.add(node.name);\n\n // A bare variable a command writes (`set x to 5`, `increment x`) is the\n // handler's local, as a loop's item is: its reads compile to the store its\n // write does, not to a JS variable of that name, which throws.\n if (['set', 'increment', 'decrement', 'default'].includes(node.name)) {\n const target = node.roles?.destination ?? node.roles?.patient ?? node.args?.[0];\n const name = target?.type === 'identifier' ? (target as IdentifierNode).value : undefined;\n if (name && /^[A-Za-z_]\\w*$/.test(name)) {\n this.registerVariable(name, 'local', 'write');\n }\n }\n\n // Track commands that need runtime helpers\n switch (node.name) {\n case 'fetch':\n this.hasAsync = true;\n this.runtimeHelpers.add('fetchJSON');\n this.runtimeHelpers.add('fetchText');\n break;\n case 'wait':\n case 'settle':\n this.hasAsync = true;\n this.runtimeHelpers.add('wait');\n break;\n case 'toggle':\n this.runtimeHelpers.add('toggle');\n break;\n case 'set':\n this.runtimeHelpers.add('setProp');\n break;\n case 'put':\n this.runtimeHelpers.add('put');\n break;\n case 'increment':\n case 'decrement':\n this.runtimeHelpers.add('setProp');\n break;\n case 'send':\n case 'trigger':\n this.runtimeHelpers.add('send');\n break;\n case 'halt':\n case 'exit':\n this.canThrow = true;\n break;\n case 'throw':\n this.canThrow = true;\n break;\n case 'call':\n // May need behavior lookup\n if (node.args?.[0]?.type === 'identifier') {\n this.behaviors.push((node.args[0] as IdentifierNode).value);\n }\n break;\n }\n\n // Visit arguments and target\n if (node.args) {\n for (const arg of node.args) {\n this.visit(arg);\n }\n }\n if (node.target) {\n this.visit(node.target);\n }\n }\n\n private visitIf(node: IfNode): void {\n this.hasConditionals = true;\n this.enterNesting();\n\n this.visit(node.condition);\n\n for (const child of node.thenBranch) {\n this.visit(child);\n }\n\n if (node.elseIfBranches) {\n for (const branch of node.elseIfBranches) {\n this.visit(branch.condition);\n for (const child of branch.body) {\n this.visit(child);\n }\n }\n }\n\n if (node.elseBranch) {\n for (const child of node.elseBranch) {\n this.visit(child);\n }\n }\n\n this.exitNesting();\n }\n\n private visitRepeat(node: RepeatNode): void {\n this.hasLoops = true;\n this.enterNesting();\n\n if (node.count && typeof node.count !== 'number') {\n this.visit(node.count);\n }\n if (node.whileCondition) {\n this.visit(node.whileCondition);\n }\n // `until event` yields a tick after every pass, so the handler awaits.\n if (node.untilEvent !== undefined) {\n this.hasAsync = true;\n this.runtimeHelpers.add('wait');\n if (node.untilEventTarget) this.visit(node.untilEventTarget);\n }\n this.visitLoopBody(node);\n\n this.exitNesting();\n }\n\n private visitForEach(node: ForEachNode): void {\n this.hasLoops = true;\n this.enterNesting();\n\n // Register loop variable as local\n this.registerVariable(node.itemName, 'local', 'write');\n\n this.visit(node.collection);\n this.visitLoopBody(node);\n\n this.exitNesting();\n }\n\n private visitWhile(node: WhileNode): void {\n this.hasLoops = true;\n this.enterNesting();\n\n this.visit(node.condition);\n this.visitLoopBody(node);\n\n this.exitNesting();\n }\n\n /** The parts every loop form shares: its `index` local, body, and `else`. */\n private visitLoopBody(node: RepeatNode | ForEachNode | WhileNode): void {\n if (node.indexName) {\n this.registerVariable(node.indexName, 'local', 'write');\n }\n for (const child of [...node.body, ...(node.elseBody ?? [])]) {\n this.visit(child);\n }\n }\n\n private visitVariable(node: VariableNode, access: 'read' | 'write'): void {\n const name =\n node.name.startsWith(':') || node.name.startsWith('$') ? node.name.slice(1) : node.name;\n\n this.registerVariable(name, node.scope, access);\n }\n\n private visitSelector(node: SelectorNode): void {\n const selector = node.value;\n\n // Track for selector caching optimization\n if (!this.selectorMap.has(selector)) {\n const info: SelectorInfo = {\n selector,\n usages: [],\n isId: selector.startsWith('#') && !selector.includes(' '),\n canCache: this.canCacheSelector(selector),\n };\n this.selectorMap.set(selector, info);\n this.selectors.push(info);\n }\n\n this.selectorMap\n .get(selector)!\n .usages.push(this.currentLocation ?? { file: '', line: 0, column: 0 });\n this.domQueries.push(selector);\n\n // Pure if it's a simple selector without pseudo-elements\n if (this.isPureSelector(selector)) {\n this.pureExpressions.push(node);\n } else {\n this.dynamicExpressions.push(node);\n }\n }\n\n private visitBinary(node: BinaryExpressionNode): void {\n this.visit(node.left);\n this.visit(node.right);\n\n // Check if this is a pure expression\n if (this.isPureExpression(node)) {\n this.pureExpressions.push(node);\n }\n\n // Some operators need runtime helpers\n switch (node.operator) {\n case 'contains':\n this.runtimeHelpers.add('contains');\n break;\n case 'matches':\n this.runtimeHelpers.add('matches');\n break;\n }\n }\n\n private visitCall(node: CallExpressionNode): void {\n this.visit(node.callee);\n if (node.args) {\n for (const arg of node.args) {\n this.visit(arg);\n }\n }\n\n // Mark as dynamic expression\n this.dynamicExpressions.push(node);\n }\n\n private visitIdentifier(node: IdentifierNode): void {\n const value = node.value ?? node.name;\n\n if (!value) return;\n\n // Track context variable usage\n switch (value) {\n case 'me':\n case 'my':\n this.contextVars.add('me');\n break;\n case 'you':\n case 'your':\n this.contextVars.add('you');\n break;\n case 'it':\n case 'result':\n this.contextVars.add('it');\n break;\n case 'event':\n this.contextVars.add('event');\n break;\n case 'body':\n case 'document':\n case 'window':\n // Global references - always available\n break;\n default:\n // Could be a behavior or external reference\n if (value.charAt(0) === value.charAt(0).toUpperCase()) {\n this.behaviors.push(value);\n }\n }\n }\n\n // ===========================================================================\n // HELPER METHODS\n // ===========================================================================\n\n private visitChildren(node: ASTNode): void {\n for (const key of Object.keys(node)) {\n const value = node[key];\n if (value && typeof value === 'object') {\n if (Array.isArray(value)) {\n for (const item of value) {\n if (item && typeof item === 'object' && 'type' in item) {\n this.visit(item as ASTNode);\n }\n }\n } else if ('type' in value) {\n this.visit(value as ASTNode);\n }\n }\n }\n }\n\n private registerVariable(\n name: string,\n scope: 'local' | 'global' | 'element',\n access: 'read' | 'write'\n ): void {\n const map = scope === 'global' ? this.globalVars : this.localVars;\n\n if (!map.has(name)) {\n map.set(name, {\n name,\n scope,\n reads: [],\n writes: [],\n type: 'unknown',\n });\n }\n\n const info = map.get(name)!;\n const location = this.currentLocation ?? { file: '', line: 0, column: 0 };\n\n if (access === 'read') {\n info.reads.push(location);\n } else {\n info.writes.push(location);\n }\n }\n\n private enterNesting(): void {\n this.currentNestingDepth++;\n this.maxNestingDepth = Math.max(this.maxNestingDepth, this.currentNestingDepth);\n }\n\n private exitNesting(): void {\n this.currentNestingDepth--;\n }\n\n private canCacheSelector(selector: string): boolean {\n // Can cache simple selectors that don't change\n // Cannot cache if it uses :not(), :has(), or other dynamic pseudo-classes\n const dynamicPseudo =\n /:(not|has|is|where|nth-|first-|last-|only-|empty|focus|hover|active|visited)/i;\n return !dynamicPseudo.test(selector);\n }\n\n private isPureSelector(selector: string): boolean {\n // Pure selectors are static ID or class selectors\n return /^[#.][a-zA-Z_][a-zA-Z0-9_-]*$/.test(selector);\n }\n\n private isPureExpression(node: ASTNode): boolean {\n if (!node) return true;\n\n switch (node.type) {\n case 'literal':\n return true;\n case 'identifier': {\n const value = (node as IdentifierNode).value;\n // Context variables are not pure (they change per invocation)\n return !['me', 'you', 'it', 'result', 'event'].includes(value ?? '');\n }\n case 'binary': {\n const bin = node as BinaryExpressionNode;\n return this.isPureExpression(bin.left) && this.isPureExpression(bin.right);\n }\n default:\n return false;\n }\n }\n}\n\n// =============================================================================\n// CONVENIENCE FUNCTIONS\n// =============================================================================\n\n/**\n * Analyze an AST and return results.\n */\nexport function analyze(ast: ASTNode): AnalysisResult {\n const analyzer = new Analyzer();\n return analyzer.analyze(ast);\n}\n\n/**\n * Check if an AST contains async operations.\n */\nexport function hasAsyncOperations(ast: ASTNode): boolean {\n const result = analyze(ast);\n return result.controlFlow.hasAsync;\n}\n\n/**\n * Get all commands used in an AST.\n */\nexport function getCommandsUsed(ast: ASTNode): string[] {\n const result = analyze(ast);\n return Array.from(result.commandsUsed);\n}\n\n/**\n * Get required runtime helpers for an AST.\n */\nexport function getRequiredHelpers(ast: ASTNode): string[] {\n const result = analyze(ast);\n return result.dependencies.runtimeHelpers;\n}\n\nexport default Analyzer;\n","/**\n * Class Batching Optimization Pass\n *\n * Detects consecutive classList.add/remove/toggle commands targeting the same\n * element and merges them into a single BatchedClassOpsNode. This reduces DOM\n * mutations by leveraging the varargs form of classList.add() and classList.remove().\n *\n * Example:\n * add .active on me → then add .visible on me → then add .highlighted on me\n * Becomes:\n * _ctx.me.classList.add('active', 'visible', 'highlighted') // 1 mutation instead of 3\n */\n\nimport type {\n ASTNode,\n CommandNode,\n EventHandlerNode,\n IdentifierNode,\n SelectorNode,\n AnalysisResult,\n OptimizationPass,\n BatchedClassOpsNode,\n IfNode,\n RepeatNode,\n ForEachNode,\n WhileNode,\n} from '../types/aot-types.js';\n\n// Commands eligible for batching, each with the slot core's parser puts its\n// target in (`add … to`, `remove … from`, `toggle … on`).\nconst TARGET_SLOTS: ReadonlyMap<string, string> = new Map([\n ['add', 'to'],\n ['remove', 'from'],\n ['toggle', 'on'],\n]);\n\ntype ClassOp = { command: 'add' | 'remove' | 'toggle'; className: string };\n\n/**\n * Extract a class name from a command node if it's a simple class operation.\n * Returns null if the command is not a simple class add/remove/toggle.\n */\nfunction extractClassOp(node: ASTNode): ClassOp | null {\n if (node.type !== 'command') return null;\n\n const cmd = node as CommandNode;\n if (!TARGET_SLOTS.has(cmd.name)) return null;\n\n const args = cmd.args ?? [];\n if (args.length === 0) return null;\n\n const arg = args[0];\n if (arg.type !== 'selector') return null;\n\n const selector = (arg as SelectorNode).value;\n if (!selector.startsWith('.')) return null;\n\n const className = selector.slice(1);\n if (!className) return null;\n\n return { command: cmd.name as ClassOp['command'], className };\n}\n\n/**\n * The node a class command acts on: its `target`, or the slot core's parser and\n * semantic's buildAST put it in. Reading only `target`, which neither sets,\n * batched `add .a to #d1 then add .b to #d1` onto me.\n */\nfunction classTarget(cmd: CommandNode): ASTNode | undefined {\n if (cmd.target) return cmd.target;\n const slot = cmd.modifiers?.[TARGET_SLOTS.get(cmd.name)!];\n return slot && typeof slot === 'object' && 'type' in slot ? (slot as ASTNode) : undefined;\n}\n\n/**\n * What a run of class commands can share: `me` (implicit or written) or one id.\n * Null for any other target, which is never batched. A class or query target\n * names every match, and both engines query it again for each command, so a\n * class the first command removes changes what the next one reaches (`remove\n * .item from .item then add .b to .item` adds .b to nothing).\n */\nfunction batchTargetKey(cmd: CommandNode): string | null {\n const target = classTarget(cmd);\n if (!target) return 'me';\n if (target.type === 'identifier' && (target as IdentifierNode).value === 'me') return 'me';\n if (target.type === 'selector' && /^#[\\w-]+$/.test((target as SelectorNode).value)) {\n return (target as SelectorNode).value;\n }\n return null;\n}\n\n/** The JavaScript for a run's target (see batchTargetKey). */\nfunction resolveTarget(key: string): string {\n return key === 'me' ? '_ctx.me' : `document.getElementById('${key.slice(1)}')`;\n}\n\n/**\n * Whether adding `op` to a run would reorder it. A batch applies its adds, then\n * its removes, then its toggles, which keeps the source order only while no\n * class meets two kinds of op: `toggle .a then add .a` leaves .a on, and\n * add-first took it off.\n */\nfunction reordersClass(run: ASTNode[], op: ClassOp): boolean {\n return run.some(node => {\n const other = extractClassOp(node)!;\n return other.command !== op.command && other.className === op.className;\n });\n}\n\n/**\n * Create a BatchedClassOpsNode from a run of class commands on one target.\n */\nfunction createBatchNode(run: ASTNode[], targetKey: string): BatchedClassOpsNode {\n const adds: string[] = [];\n const removes: string[] = [];\n const toggles: string[] = [];\n\n for (const node of run) {\n const op = extractClassOp(node)!;\n switch (op.command) {\n case 'add':\n adds.push(op.className);\n break;\n case 'remove':\n removes.push(op.className);\n break;\n case 'toggle':\n toggles.push(op.className);\n break;\n }\n }\n\n return {\n type: 'batchedClassOps',\n target: resolveTarget(targetKey),\n adds,\n removes,\n toggles,\n };\n}\n\n/**\n * Process a body array, batching consecutive class operations on the same target.\n */\nfunction batchBody(nodes: ASTNode[]): ASTNode[] {\n const result: ASTNode[] = [];\n let currentRun: ASTNode[] = [];\n let runKey = '';\n\n function flushRun() {\n if (currentRun.length >= 2) {\n result.push(createBatchNode(currentRun, runKey));\n } else if (currentRun.length === 1) {\n result.push(currentRun[0]);\n }\n currentRun = [];\n }\n\n for (const node of nodes) {\n const op = extractClassOp(node);\n const key = op && batchTargetKey(node as CommandNode);\n if (op && key) {\n // A class op: it joins the run if it shares the target and keeps the order\n if (currentRun.length > 0 && key === runKey && !reordersClass(currentRun, op)) {\n currentRun.push(node);\n } else {\n flushRun();\n currentRun = [node];\n runKey = key;\n }\n } else {\n flushRun();\n result.push(node);\n }\n }\n\n flushRun();\n return result;\n}\n\n/**\n * Recursively walk the AST and batch class operations in all body arrays.\n */\nfunction walkAndBatch(node: ASTNode): ASTNode {\n switch (node.type) {\n case 'event': {\n const event = node as EventHandlerNode;\n if (event.body && event.body.length > 0) {\n return { ...event, body: batchBody(event.body).map(walkAndBatch) };\n }\n return node;\n }\n case 'if': {\n const ifNode = node as IfNode;\n const result: Record<string, unknown> = { ...ifNode };\n result.thenBranch = batchBody(ifNode.thenBranch).map(walkAndBatch);\n if (ifNode.elseBranch) {\n result.elseBranch = batchBody(ifNode.elseBranch).map(walkAndBatch);\n }\n if (ifNode.elseIfBranches) {\n result.elseIfBranches = ifNode.elseIfBranches.map(branch => ({\n condition: branch.condition,\n body: batchBody(branch.body).map(walkAndBatch),\n }));\n }\n return result as ASTNode;\n }\n case 'repeat': {\n const repeat = node as RepeatNode;\n return { ...repeat, body: batchBody(repeat.body).map(walkAndBatch) } as ASTNode;\n }\n case 'foreach': {\n const forEach = node as ForEachNode;\n return { ...forEach, body: batchBody(forEach.body).map(walkAndBatch) } as ASTNode;\n }\n case 'while': {\n const whileNode = node as WhileNode;\n return { ...whileNode, body: batchBody(whileNode.body).map(walkAndBatch) } as ASTNode;\n }\n default:\n return node;\n }\n}\n\n/**\n * Optimization pass that batches consecutive class manipulation commands\n * targeting the same element into single compound DOM operations.\n */\nexport class ClassBatchingPass implements OptimizationPass {\n readonly name = 'class-batching';\n\n shouldRun(analysis: AnalysisResult): boolean {\n // Only run if at least one class manipulation command is used\n return (\n analysis.commandsUsed.has('add') ||\n analysis.commandsUsed.has('remove') ||\n analysis.commandsUsed.has('toggle')\n );\n }\n\n transform(ast: ASTNode, _analysis: AnalysisResult): ASTNode {\n return walkAndBatch(ast);\n }\n}\n","/**\n * Optimization Passes\n *\n * AST optimization passes that run before code generation.\n */\n\nimport type {\n ASTNode,\n CommandNode,\n OptimizationPass,\n OptimizedAST,\n AnalysisResult,\n BinaryExpressionNode,\n LiteralNode,\n RepeatNode,\n SelectorNode,\n SequenceNode,\n} from '../types/aot-types.js';\nimport { ClassBatchingPass } from './class-batching.js';\n\n// =============================================================================\n// CONSTANT FOLDING PASS\n// =============================================================================\n\n/**\n * Evaluates constant expressions at compile time.\n *\n * Examples:\n * 5 + 3 → 8\n * \"hello\" & \" world\" → \"hello world\"\n * true and false → false\n */\nexport class ConstantFoldingPass implements OptimizationPass {\n readonly name = 'constant-folding';\n\n shouldRun(analysis: AnalysisResult): boolean {\n // Run if there are pure expressions\n return analysis.expressions.pure.length > 0;\n }\n\n transform(ast: ASTNode, _analysis: AnalysisResult): ASTNode {\n return this.foldNode(ast);\n }\n\n private foldNode(node: ASTNode): ASTNode {\n if (!node) return node;\n\n // Process children first (bottom-up)\n const processed = this.processChildren(node);\n\n // Try to fold binary expressions\n if (processed.type === 'binary') {\n return this.foldBinary(processed as BinaryExpressionNode);\n }\n\n return processed;\n }\n\n private processChildren(node: ASTNode): ASTNode {\n const result: Record<string, unknown> = { ...node };\n\n for (const key of Object.keys(node)) {\n const value = node[key];\n\n if (Array.isArray(value)) {\n result[key] = value.map(item =>\n item && typeof item === 'object' && 'type' in item ? this.foldNode(item as ASTNode) : item\n );\n } else if (value && typeof value === 'object' && 'type' in value) {\n result[key] = this.foldNode(value as ASTNode);\n }\n }\n\n return result as ASTNode;\n }\n\n private foldBinary(node: BinaryExpressionNode): ASTNode {\n const left = node.left;\n const right = node.right;\n\n // Both must be literals to fold\n if (left.type !== 'literal' || right.type !== 'literal') {\n return node;\n }\n\n const leftVal = (left as LiteralNode).value;\n const rightVal = (right as LiteralNode).value;\n\n let result: unknown;\n\n switch (node.operator) {\n // Arithmetic\n case '+':\n if (typeof leftVal === 'number' && typeof rightVal === 'number') {\n result = leftVal + rightVal;\n }\n break;\n case '-':\n if (typeof leftVal === 'number' && typeof rightVal === 'number') {\n result = leftVal - rightVal;\n }\n break;\n case '*':\n if (typeof leftVal === 'number' && typeof rightVal === 'number') {\n result = leftVal * rightVal;\n }\n break;\n case '/':\n if (typeof leftVal === 'number' && typeof rightVal === 'number' && rightVal !== 0) {\n result = leftVal / rightVal;\n }\n break;\n case '%':\n if (typeof leftVal === 'number' && typeof rightVal === 'number' && rightVal !== 0) {\n result = leftVal % rightVal;\n }\n break;\n\n // String concatenation\n case '&':\n result = String(leftVal) + String(rightVal);\n break;\n\n // Logical\n case 'and':\n case '&&':\n result = leftVal && rightVal;\n break;\n case 'or':\n case '||':\n result = leftVal || rightVal;\n break;\n\n // Comparison\n case 'is':\n case '==':\n result = leftVal === rightVal;\n break;\n case 'is not':\n case '!=':\n result = leftVal !== rightVal;\n break;\n case '<':\n if (typeof leftVal === 'number' && typeof rightVal === 'number') {\n result = leftVal < rightVal;\n }\n break;\n case '>':\n if (typeof leftVal === 'number' && typeof rightVal === 'number') {\n result = leftVal > rightVal;\n }\n break;\n case '<=':\n if (typeof leftVal === 'number' && typeof rightVal === 'number') {\n result = leftVal <= rightVal;\n }\n break;\n case '>=':\n if (typeof leftVal === 'number' && typeof rightVal === 'number') {\n result = leftVal >= rightVal;\n }\n break;\n }\n\n if (result !== undefined) {\n return {\n type: 'literal',\n value: result,\n } as LiteralNode;\n }\n\n return node;\n }\n}\n\n// =============================================================================\n// SELECTOR CACHING PASS\n// =============================================================================\n\n/**\n * Identifies selectors that are used multiple times and marks them for caching.\n *\n * This pass adds metadata to selector nodes that the code generator can use\n * to generate cached selector lookups.\n */\nexport class SelectorCachingPass implements OptimizationPass {\n readonly name = 'selector-caching';\n\n shouldRun(analysis: AnalysisResult): boolean {\n // Run if there are multiple selector usages\n return analysis.expressions.selectors.some(s => s.usages.length > 1 && s.canCache);\n }\n\n transform(ast: ASTNode, analysis: AnalysisResult): ASTNode {\n // Build set of selectors to cache\n const selectorsToCache = new Set<string>();\n\n for (const info of analysis.expressions.selectors) {\n if (info.usages.length > 1 && info.canCache) {\n selectorsToCache.add(info.selector);\n }\n }\n\n if (selectorsToCache.size === 0) {\n return ast;\n }\n\n // Mark selector nodes for caching\n return this.markSelectors(ast, selectorsToCache);\n }\n\n private markSelectors(node: ASTNode, toCache: Set<string>): ASTNode {\n if (!node) return node;\n\n // Mark selector nodes\n if (node.type === 'selector') {\n const selector = (node as SelectorNode).value;\n if (toCache.has(selector)) {\n return {\n ...node,\n _cached: true,\n _cacheKey: this.generateCacheKey(selector),\n };\n }\n return node;\n }\n\n // Process children\n const result: Record<string, unknown> = { ...node };\n\n for (const key of Object.keys(node)) {\n const value = node[key];\n\n if (Array.isArray(value)) {\n result[key] = value.map(item =>\n item && typeof item === 'object' && 'type' in item\n ? this.markSelectors(item as ASTNode, toCache)\n : item\n );\n } else if (value && typeof value === 'object' && 'type' in value) {\n result[key] = this.markSelectors(value as ASTNode, toCache);\n }\n }\n\n return result as ASTNode;\n }\n\n private generateCacheKey(selector: string): string {\n // Generate a short cache key from the selector\n return (\n '_sel_' +\n selector\n .replace(/[^a-zA-Z0-9]/g, '_')\n .replace(/_+/g, '_')\n .slice(0, 20)\n );\n }\n}\n\n// =============================================================================\n// DEAD CODE ELIMINATION PASS\n// =============================================================================\n\n/**\n * Removes unreachable code after halt, exit, return, or throw.\n */\nexport class DeadCodeEliminationPass implements OptimizationPass {\n readonly name = 'dead-code-elimination';\n\n shouldRun(analysis: AnalysisResult): boolean {\n // Run if there are control flow statements\n return analysis.controlFlow.canThrow;\n }\n\n transform(ast: ASTNode, _analysis: AnalysisResult): ASTNode {\n return this.eliminateDeadCode(ast) as ASTNode;\n }\n\n private eliminateDeadCode(node: ASTNode | ASTNode[]): ASTNode | ASTNode[] {\n if (!node) return node;\n\n // Process arrays (command sequences)\n if (Array.isArray(node)) {\n return this.eliminateFromArray(node);\n }\n\n // Process body arrays in nodes\n const result: Record<string, unknown> = { ...node };\n\n for (const key of ['body', 'thenBranch', 'elseBranch']) {\n const value = node[key];\n if (Array.isArray(value)) {\n result[key] = this.eliminateFromArray(value as ASTNode[]);\n }\n }\n\n // Process children\n for (const key of Object.keys(node)) {\n if (['body', 'thenBranch', 'elseBranch'].includes(key)) continue;\n\n const value = node[key];\n if (value && typeof value === 'object' && 'type' in value) {\n result[key] = this.eliminateDeadCode(value as ASTNode);\n }\n }\n\n return result as ASTNode;\n }\n\n private eliminateFromArray(nodes: ASTNode[]): ASTNode[] {\n const result: ASTNode[] = [];\n\n for (const node of nodes) {\n const processed = this.eliminateDeadCode(node);\n result.push(processed as ASTNode);\n\n // Check if this terminates execution\n if (this.isTerminator(node)) {\n // Everything after this is dead code\n break;\n }\n }\n\n return result;\n }\n\n private isTerminator(node: ASTNode): boolean {\n if (node.type === 'command') {\n return ['halt', 'exit', 'return', 'throw'].includes((node as CommandNode).name);\n }\n return false;\n }\n}\n\n// =============================================================================\n// LOOP UNROLLING PASS\n// =============================================================================\n\n/**\n * Unrolls small fixed-count loops.\n *\n * Example:\n * repeat 3 times add .active end\n * Becomes:\n * add .active\n * add .active\n * add .active\n */\nexport class LoopUnrollingPass implements OptimizationPass {\n readonly name = 'loop-unrolling';\n\n private maxUnrollCount = 5;\n\n shouldRun(analysis: AnalysisResult): boolean {\n return analysis.controlFlow.hasLoops;\n }\n\n transform(ast: ASTNode, _analysis: AnalysisResult): ASTNode {\n return this.unrollLoops(ast);\n }\n\n private unrollLoops(node: ASTNode): ASTNode {\n if (!node) return node;\n\n // Check if this is an unrollable repeat\n if (node.type === 'repeat') {\n const unrolled = this.tryUnroll(node);\n if (unrolled) {\n return unrolled;\n }\n }\n\n // Process children\n const result: Record<string, unknown> = { ...node };\n\n for (const key of Object.keys(node)) {\n const value = node[key];\n\n if (Array.isArray(value)) {\n result[key] = value.map(item =>\n item && typeof item === 'object' && 'type' in item\n ? this.unrollLoops(item as ASTNode)\n : item\n );\n } else if (value && typeof value === 'object' && 'type' in value) {\n result[key] = this.unrollLoops(value as ASTNode);\n }\n }\n\n return result as ASTNode;\n }\n\n private tryUnroll(node: ASTNode): ASTNode | null {\n const repeatNode = node as RepeatNode;\n\n // Must have a fixed numeric count\n if (typeof repeatNode.count !== 'number') {\n return null;\n }\n\n const count = repeatNode.count;\n const body = repeatNode.body ?? [];\n\n // Don't unroll if too many iterations\n if (count > this.maxUnrollCount) {\n return null;\n }\n\n // Don't unroll if body is too large\n if (body.length > 3) {\n return null;\n }\n\n // Don't unroll if body uses 'index' variable\n if (this.usesIndex(body)) {\n return null;\n }\n\n // Nor a loop that names its index, or whose `else` runs when count is 0\n if (repeatNode.indexName !== undefined || repeatNode.elseBody !== undefined) {\n return null;\n }\n\n // Unroll: create sequence of body copies\n const unrolled: ASTNode[] = [];\n for (let i = 0; i < count; i++) {\n unrolled.push(...this.cloneBody(body));\n }\n\n return {\n type: 'sequence',\n commands: unrolled,\n _unrolled: true,\n } as SequenceNode;\n }\n\n private usesIndex(nodes: ASTNode[]): boolean {\n for (const node of nodes) {\n if (this.nodeUsesIndex(node)) {\n return true;\n }\n }\n return false;\n }\n\n private nodeUsesIndex(node: ASTNode): boolean {\n if (!node) return false;\n\n // Check identifiers\n if (node.type === 'identifier') {\n if (node.value === 'index' || node.value === ':index') {\n return true;\n }\n }\n if (node.type === 'variable') {\n if (node.name === 'index' || node.name === ':index') {\n return true;\n }\n }\n\n // Check children\n for (const key of Object.keys(node)) {\n const value = node[key];\n if (Array.isArray(value)) {\n for (const item of value) {\n if (item && typeof item === 'object' && 'type' in item) {\n if (this.nodeUsesIndex(item as ASTNode)) {\n return true;\n }\n }\n }\n } else if (value && typeof value === 'object' && 'type' in value) {\n if (this.nodeUsesIndex(value as ASTNode)) {\n return true;\n }\n }\n }\n\n return false;\n }\n\n private cloneBody(nodes: ASTNode[]): ASTNode[] {\n return JSON.parse(JSON.stringify(nodes));\n }\n}\n\n// =============================================================================\n// OPTIMIZATION PIPELINE\n// =============================================================================\n\n/**\n * Runs all optimization passes on an AST.\n */\nexport class OptimizationPipeline {\n private passes: OptimizationPass[] = [\n new ConstantFoldingPass(),\n new SelectorCachingPass(),\n new DeadCodeEliminationPass(),\n new ClassBatchingPass(),\n new LoopUnrollingPass(),\n ];\n\n /**\n * Run all applicable optimizations on the AST.\n */\n optimize(ast: ASTNode, analysis: AnalysisResult, level: 0 | 1 | 2 = 2): OptimizedAST {\n if (level === 0) {\n return ast as OptimizedAST;\n }\n\n let current = ast;\n const appliedOptimizations: string[] = [];\n\n const passesToRun =\n level === 1\n ? this.passes.slice(0, 2) // Basic: constant folding and selector caching\n : this.passes; // Full: all passes\n\n for (const pass of passesToRun) {\n if (pass.shouldRun(analysis)) {\n current = pass.transform(current, analysis);\n appliedOptimizations.push(pass.name);\n }\n }\n\n return {\n ...current,\n _optimizations: appliedOptimizations,\n } as OptimizedAST;\n }\n\n /**\n * Add a custom optimization pass.\n */\n addPass(pass: OptimizationPass): void {\n this.passes.push(pass);\n }\n}\n\n// =============================================================================\n// CONVENIENCE EXPORTS\n// =============================================================================\n\n/**\n * Create a default optimization pipeline.\n */\nexport function createOptimizer(): OptimizationPipeline {\n return /*#__PURE__*/ new OptimizationPipeline();\n}\n\n/**\n * Optimize an AST with default settings.\n */\nexport function optimize(\n ast: ASTNode,\n analysis: AnalysisResult,\n level: 0 | 1 | 2 = 2\n): OptimizedAST {\n const pipeline = new OptimizationPipeline();\n return pipeline.optimize(ast, analysis, level);\n}\n\nexport default OptimizationPipeline;\n","/**\n * Init Block Pre-Rendering\n *\n * Analyzes init blocks for pure/static DOM writes and applies them directly\n * to the HTML template at build time, eliminating flash-of-empty-content.\n *\n * Pure commands are those that:\n * - Write to the DOM (put, add class, remove class, set attribute)\n * - Target a statically-known #id selector\n * - Use literal values (not variables, expressions, or function calls)\n *\n * Pre-rendered commands are stripped from the init block in the output HTML.\n * Impure commands remain for normal runtime execution.\n */\n\nimport type {\n ASTNode,\n CommandNode,\n SelectorNode,\n LiteralNode,\n PreRenderResult,\n} from '../types/aot-types.js';\n\n// =============================================================================\n// PURITY ANALYSIS\n// =============================================================================\n\n/**\n * A command classified as pure and safe to pre-render.\n */\nexport interface PureCommand {\n type: 'addClass' | 'removeClass' | 'putContent' | 'setAttribute';\n /** CSS ID selector target (without #) */\n targetId: string;\n /** Value to apply */\n value: string;\n /** For setAttribute: attribute name */\n attrName?: string;\n}\n\n/**\n * Classify a command as pure (pre-renderable) or impure.\n * Only #id targets are supported — class/complex selectors are left for runtime.\n */\nexport function classifyCommand(node: ASTNode): PureCommand | null {\n if (node.type !== 'command') return null;\n const cmd = node as CommandNode;\n\n switch (cmd.name) {\n case 'add':\n return classifyAddCommand(cmd);\n case 'remove':\n return classifyRemoveCommand(cmd);\n case 'put':\n return classifyPutCommand(cmd);\n case 'set':\n return classifySetCommand(cmd);\n default:\n return null;\n }\n}\n\nfunction getIdTarget(cmd: CommandNode): string | null {\n if (!cmd.target) return null;\n if (cmd.target.type !== 'selector') return null;\n const sel = (cmd.target as SelectorNode).value;\n if (!sel.startsWith('#')) return null;\n return sel.slice(1);\n}\n\nfunction classifyAddCommand(cmd: CommandNode): PureCommand | null {\n const targetId = getIdTarget(cmd);\n if (!targetId) return null;\n\n const args = cmd.args ?? [];\n if (args.length === 0) return null;\n\n const arg = args[0];\n if (arg.type !== 'selector') return null;\n const val = (arg as SelectorNode).value;\n if (!val.startsWith('.')) return null;\n\n return { type: 'addClass', targetId, value: val.slice(1) };\n}\n\nfunction classifyRemoveCommand(cmd: CommandNode): PureCommand | null {\n const targetId = getIdTarget(cmd);\n if (!targetId) return null;\n\n const args = cmd.args ?? [];\n if (args.length === 0) return null;\n\n const arg = args[0];\n if (arg.type !== 'selector') return null;\n const val = (arg as SelectorNode).value;\n if (!val.startsWith('.')) return null;\n\n return { type: 'removeClass', targetId, value: val.slice(1) };\n}\n\nfunction classifyPutCommand(cmd: CommandNode): PureCommand | null {\n const targetId = getIdTarget(cmd);\n if (!targetId) return null;\n\n const args = cmd.args ?? [];\n if (args.length === 0) return null;\n\n const arg = args[0];\n if (arg.type !== 'literal') return null;\n const val = (arg as LiteralNode).value;\n if (typeof val !== 'string') return null;\n\n return { type: 'putContent', targetId, value: val };\n}\n\nfunction classifySetCommand(cmd: CommandNode): PureCommand | null {\n // Only support set @attr to 'value' form\n const targetId = getIdTarget(cmd);\n if (!targetId) return null;\n\n const args = cmd.args ?? [];\n if (args.length < 2) return null;\n\n // First arg should be identifier starting with @\n const attrArg = args[0];\n if (attrArg.type !== 'identifier') return null;\n const attrValue = (attrArg as { value?: string }).value;\n if (!attrValue || !attrValue.startsWith('@')) return null;\n const attrName = attrValue.slice(1);\n\n // Second arg should be literal value\n const valArg = args[1];\n if (valArg.type !== 'literal') return null;\n const val = (valArg as LiteralNode).value;\n if (typeof val !== 'string' && typeof val !== 'number') return null;\n\n return { type: 'setAttribute', targetId, value: String(val), attrName };\n}\n\n/**\n * Classify all commands in an init block as pure or impure.\n */\nexport function classifyInitCommands(commands: ASTNode[]): {\n pure: { index: number; command: PureCommand }[];\n impure: { index: number; node: ASTNode }[];\n} {\n const pure: { index: number; command: PureCommand }[] = [];\n const impure: { index: number; node: ASTNode }[] = [];\n\n for (let i = 0; i < commands.length; i++) {\n const classified = classifyCommand(commands[i]);\n if (classified) {\n pure.push({ index: i, command: classified });\n } else {\n impure.push({ index: i, node: commands[i] });\n }\n }\n\n return { pure, impure };\n}\n\n// =============================================================================\n// HTML MUTATION\n// =============================================================================\n\n/**\n * Apply a pure command to an HTML string, modifying the target element in-place.\n * Returns the modified HTML, or the original if the target element was not found.\n */\nexport function applyPureCommand(html: string, cmd: PureCommand): string {\n switch (cmd.type) {\n case 'addClass':\n return addClassToElement(html, cmd.targetId, cmd.value);\n case 'removeClass':\n return removeClassFromElement(html, cmd.targetId, cmd.value);\n case 'putContent':\n return putContentIntoElement(html, cmd.targetId, cmd.value);\n case 'setAttribute':\n return setAttributeOnElement(html, cmd.targetId, cmd.attrName!, cmd.value);\n default:\n return html;\n }\n}\n\n/**\n * Find an element by ID in HTML and apply a transform to its opening tag.\n * Returns original HTML if element not found.\n */\nfunction transformElementById(\n html: string,\n id: string,\n transform: (openingTag: string) => string\n): string {\n // Match opening tag containing id=\"<id>\"\n const idPattern = new RegExp(`(<[^>]*\\\\bid=[\"']${escapeRegExp(id)}[\"'][^>]*>)`, 'i');\n const match = html.match(idPattern);\n if (!match) return html;\n\n return html.replace(match[1], transform(match[1]));\n}\n\nfunction addClassToElement(html: string, id: string, className: string): string {\n return transformElementById(html, id, tag => {\n const classMatch = tag.match(/\\bclass=[\"']([^\"']*)[\"']/i);\n if (classMatch) {\n const existing = classMatch[1];\n const classes = existing.split(/\\s+/).filter(Boolean);\n if (!classes.includes(className)) {\n classes.push(className);\n }\n return tag.replace(classMatch[0], `class=\"${classes.join(' ')}\"`);\n }\n // No existing class attribute — add one before the closing >\n return tag.replace(/>$/, ` class=\"${className}\">`);\n });\n}\n\nfunction removeClassFromElement(html: string, id: string, className: string): string {\n return transformElementById(html, id, tag => {\n const classMatch = tag.match(/\\bclass=[\"']([^\"']*)[\"']/i);\n if (!classMatch) return tag;\n const classes = classMatch[1].split(/\\s+/).filter(c => c !== className);\n if (classes.length === 0) {\n return tag.replace(classMatch[0], '').replace(/\\s+>/, '>');\n }\n return tag.replace(classMatch[0], `class=\"${classes.join(' ')}\"`);\n });\n}\n\nfunction putContentIntoElement(html: string, id: string, content: string): string {\n // Match opening tag, then capture everything until matching closing tag\n const idPattern = new RegExp(\n `(<[a-zA-Z][^>]*\\\\bid=[\"']${escapeRegExp(id)}[\"'][^>]*>)((?:(?!<\\\\/[a-zA-Z]).)*?)(<\\\\/[a-zA-Z][^>]*>)`,\n 'is'\n );\n const match = html.match(idPattern);\n if (!match) return html;\n\n return html.replace(match[0], `${match[1]}${escapeHtml(content)}${match[3]}`);\n}\n\nfunction setAttributeOnElement(html: string, id: string, attrName: string, value: string): string {\n return transformElementById(html, id, tag => {\n const attrPattern = new RegExp(`\\\\b${escapeRegExp(attrName)}=[\"'][^\"']*[\"']`, 'i');\n const attrMatch = tag.match(attrPattern);\n if (attrMatch) {\n return tag.replace(attrMatch[0], `${attrName}=\"${escapeHtml(value)}\"`);\n }\n return tag.replace(/>$/, ` ${attrName}=\"${escapeHtml(value)}\">`);\n });\n}\n\n// =============================================================================\n// UTILITIES\n// =============================================================================\n\nfunction escapeRegExp(str: string): string {\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n}\n\nfunction escapeHtml(str: string): string {\n return str\n .replace(/&/g, '&')\n .replace(/</g, '<')\n .replace(/>/g, '>')\n .replace(/\"/g, '"');\n}\n\n// =============================================================================\n// PUBLIC API\n// =============================================================================\n\n/**\n * Pre-render pure init commands into an HTML template.\n *\n * @param html - The HTML template string\n * @param initCommands - Parsed commands from an init block\n * @returns Modified HTML, remaining impure commands, and count of pre-rendered commands\n */\nexport function preRenderInitBlock(html: string, initCommands: ASTNode[]): PreRenderResult {\n const { pure, impure } = classifyInitCommands(initCommands);\n\n let modifiedHtml = html;\n let preRenderedCount = 0;\n\n for (const { command } of pure) {\n const before = modifiedHtml;\n modifiedHtml = applyPureCommand(modifiedHtml, command);\n if (modifiedHtml !== before) {\n preRenderedCount++;\n }\n }\n\n return {\n html: modifiedHtml,\n remainingInitCommands: impure.map(i => i.node),\n preRenderedCount,\n };\n}\n","/**\n * Expression Transforms\n *\n * Transforms hyperscript expression AST nodes to JavaScript code.\n */\n\nimport type {\n ASTNode,\n CodegenContext,\n LiteralNode,\n IdentifierNode,\n SelectorNode,\n VariableNode,\n BinaryExpressionNode,\n UnaryExpressionNode,\n TypeCheckNode,\n MemberExpressionNode,\n PossessiveNode,\n CallExpressionNode,\n PositionalNode,\n ConditionalNode,\n ArrayExpressionNode,\n ObjectExpressionNode,\n TemplateNode,\n} from '../types/aot-types.js';\n\n// =============================================================================\n// SANITIZATION UTILITIES\n// =============================================================================\n\n/**\n * Sanitize a class name for safe interpolation into JavaScript string literals.\n */\nexport function sanitizeClassName(name: string): string | null {\n // CSS class names: must start with letter, underscore, or hyphen\n // followed by letters, digits, underscores, or hyphens\n if (!/^-?[a-zA-Z_][a-zA-Z0-9_-]*$/.test(name)) {\n return null;\n }\n return name;\n}\n\n/**\n * Sanitize a CSS selector for safe interpolation into JavaScript string literals.\n */\nexport function sanitizeSelector(selector: string): string {\n return selector\n .replace(/\\\\/g, '\\\\\\\\')\n .replace(/'/g, \"\\\\'\")\n .replace(/\"/g, '\\\\\"')\n .replace(/\\n/g, '\\\\n')\n .replace(/\\r/g, '\\\\r')\n .replace(/\\0/g, '');\n}\n\n/**\n * Sanitize an identifier for use as a JavaScript variable name.\n */\nexport function sanitizeIdentifier(name: string): string {\n // Replace invalid characters with underscores\n return name.replace(/[^a-zA-Z0-9_$]/g, '_');\n}\n\n// =============================================================================\n// EXPRESSION CODEGEN CLASS\n// =============================================================================\n\n/**\n * Code generator for expressions.\n */\nexport class ExpressionCodegen {\n private ctx: CodegenContext;\n\n constructor(ctx: CodegenContext) {\n this.ctx = ctx;\n }\n\n /**\n * Generate JavaScript code for an expression.\n */\n generate(node: ASTNode): string {\n if (!node) {\n return 'undefined';\n }\n\n switch (node.type) {\n case 'literal':\n return this.generateLiteral(node as LiteralNode);\n\n case 'identifier':\n return this.generateIdentifier(node as IdentifierNode);\n\n case 'selector':\n return this.generateSelector(node as SelectorNode);\n\n case 'variable':\n return this.generateVariable(node as VariableNode);\n\n case 'binary':\n return this.generateBinary(node as BinaryExpressionNode);\n\n case 'member':\n return this.generateMember(node as MemberExpressionNode);\n\n case 'possessive':\n return this.generatePossessive(node as PossessiveNode);\n\n case 'call':\n return this.generateCall(node as CallExpressionNode);\n\n case 'positional':\n return this.generatePositional(node as PositionalNode);\n\n case 'array':\n return this.generateArray(node);\n\n case 'object':\n return this.generateObject(node);\n\n case 'template':\n return this.generateTemplate(node);\n\n case 'unary':\n return this.generateUnary(node);\n\n case 'typeCheck':\n return this.generateTypeCheck(node);\n\n case 'conditional':\n return this.generateConditional(node);\n\n case 'sequence':\n return 'undefined';\n\n default:\n // Unknown node type - return as-is if it has a value\n if ('value' in node) {\n return JSON.stringify(node.value);\n }\n throw new Error(`Unknown expression type: ${node.type}`);\n }\n }\n\n // ===========================================================================\n // LITERAL EXPRESSIONS\n // ===========================================================================\n\n private generateLiteral(node: LiteralNode): string {\n const value = node.value;\n\n if (value === null) {\n return 'null';\n }\n if (value === undefined) {\n return 'undefined';\n }\n if (typeof value === 'string') {\n return JSON.stringify(value);\n }\n if (typeof value === 'number') {\n return String(value);\n }\n if (typeof value === 'boolean') {\n return String(value);\n }\n\n return JSON.stringify(value);\n }\n\n // ===========================================================================\n // IDENTIFIER EXPRESSIONS\n // ===========================================================================\n\n private generateIdentifier(node: IdentifierNode): string {\n const name = node.value ?? node.name ?? '';\n\n // Context variables\n switch (name) {\n case 'me':\n case 'my':\n return '_ctx.me';\n case 'you':\n case 'your':\n return '_ctx.you';\n case 'it':\n case 'result':\n return '_ctx.it';\n case 'event':\n return '_ctx.event';\n case 'body':\n return 'document.body';\n case 'document':\n return 'document';\n case 'window':\n return 'window';\n case 'true':\n return 'true';\n case 'false':\n return 'false';\n case 'null':\n return 'null';\n case 'undefined':\n return 'undefined';\n default:\n // Check if it's a local variable reference\n if (name.startsWith(':')) {\n const varName = sanitizeIdentifier(name.slice(1));\n return `_ctx.locals.get('${varName}')`;\n }\n // Global variable reference\n if (name.startsWith('$') || name.startsWith('::')) {\n const varName = sanitizeIdentifier(name.replace(/^(\\$|::)/, ''));\n this.ctx.requireHelper('globals');\n return `_rt.globals.get('${varName}')`;\n }\n // A loop's item or index (`for x in …`, `index i`): the loop writes it\n // to `_ctx.locals` each pass, so a bare JS `x` would throw.\n if (this.ctx.analysis?.variables?.locals?.get(name)?.scope === 'local') {\n return `_ctx.locals.get('${sanitizeIdentifier(name)}')`;\n }\n // Plain identifier - assume it's defined elsewhere\n return sanitizeIdentifier(name);\n }\n }\n\n // ===========================================================================\n // SELECTOR EXPRESSIONS\n // ===========================================================================\n\n private generateSelector(node: SelectorNode): string {\n const selector = node.value;\n const sanitized = sanitizeSelector(selector);\n\n // Check if we can use a cached selector\n if (this.ctx.canCacheSelector(selector)) {\n return this.ctx.getCachedSelector(selector);\n }\n\n // ID selector optimization\n if (selector.startsWith('#') && !selector.includes(' ') && !selector.includes('.')) {\n const id = selector.slice(1);\n return `document.getElementById('${sanitizeSelector(id)}')`;\n }\n\n // General selector\n return `document.querySelector('${sanitized}')`;\n }\n\n // ===========================================================================\n // VARIABLE EXPRESSIONS\n // ===========================================================================\n\n private generateVariable(node: VariableNode): string {\n const name = node.name;\n const varName = sanitizeIdentifier(\n name.startsWith(':') || name.startsWith('$') ? name.slice(1) : name\n );\n\n switch (node.scope) {\n case 'local':\n return `_ctx.locals.get('${varName}')`;\n case 'global':\n this.ctx.requireHelper('globals');\n return `_rt.globals.get('${varName}')`;\n case 'element':\n // `:x` lives in the element's own store, not on the element: `:title`\n // as a property would read the element's title.\n this.ctx.requireHelper('elementVars');\n return `_rt.elementVars(_ctx.me).get('${varName}')`;\n default:\n return `_ctx.locals.get('${varName}')`;\n }\n }\n\n // ===========================================================================\n // BINARY EXPRESSIONS\n // ===========================================================================\n\n private generateBinary(node: BinaryExpressionNode): string {\n const left = this.generate(node.left);\n const right = this.generate(node.right);\n const op = node.operator;\n\n // Map hyperscript operators to JavaScript\n switch (op) {\n // Equality, with core's phrase forms of each (`n is equal to 3`).\n case 'is':\n case '==':\n case 'am':\n case 'equals':\n case 'is equal':\n case 'is equal to':\n return `(${left} === ${right})`;\n case 'is not':\n case '!=':\n case 'is not equal':\n case 'is not equal to':\n return `(${left} !== ${right})`;\n case 'really equals':\n case 'is really':\n case 'is really equal to':\n return `(${left} === ${right})`;\n case 'is not really':\n case 'is not really equal to':\n return `(${left} !== ${right})`;\n\n // Comparison. Left as is, `(n is greater than 2)` is not JavaScript.\n case '<':\n case '>':\n case '<=':\n case '>=':\n return `(${left} ${op} ${right})`;\n case 'is less than':\n return `(${left} < ${right})`;\n case 'is greater than':\n return `(${left} > ${right})`;\n case 'is less than or equal to':\n return `(${left} <= ${right})`;\n case 'is greater than or equal to':\n return `(${left} >= ${right})`;\n\n // Arithmetic\n case '+':\n case '-':\n case '*':\n case '/':\n case '%':\n return `(${left} ${op} ${right})`;\n // Hyperscript's word for `%`; left as is, `(n mod 2)` is not JavaScript.\n case 'mod':\n return `(${left} % ${right})`;\n\n // Logical\n case 'and':\n case '&&':\n return `(${left} && ${right})`;\n case 'or':\n case '||':\n return `(${left} || ${right})`;\n\n // String/collection operators\n case 'contains':\n case 'contain':\n case 'includes':\n case 'include':\n this.ctx.requireHelper('contains');\n return `_rt.contains(${left}, ${right})`;\n case 'does not contain':\n case 'do not contain':\n case 'does not contains':\n case 'does not include':\n this.ctx.requireHelper('contains');\n return `!_rt.contains(${left}, ${right})`;\n\n // `matches` tests a selector, so a selector operand stays a string: the\n // element it would query is not a selector (`_rt.matches(el, el)`).\n case 'matches':\n case 'match':\n this.ctx.requireHelper('matches');\n return `_rt.matches(${left}, ${this.selectorText(node.right, right)})`;\n case 'does not match':\n case 'do not match':\n this.ctx.requireHelper('matches');\n return `!_rt.matches(${left}, ${this.selectorText(node.right, right)})`;\n\n // Membership, `n is in [1, 3]`: the right side contains the left.\n case 'is in':\n case 'am in':\n this.ctx.requireHelper('contains');\n return `_rt.contains(${right}, ${left})`;\n case 'is not in':\n case 'am not in':\n this.ctx.requireHelper('contains');\n return `!_rt.contains(${right}, ${left})`;\n\n case 'starts with':\n return `${left}.startsWith(${right})`;\n\n case 'ends with':\n return `${left}.endsWith(${right})`;\n\n // A scoped query, `<li/> in #list`: the matches inside the scope, as\n // both engines read it. JavaScript's `in` (the default below) tests a\n // property KEY, so `(document.querySelector('li') in …)` matched nothing.\n case 'in':\n if (node.left.type === 'selector') {\n const query = sanitizeSelector((node.left as SelectorNode).value);\n return `${right}.querySelectorAll('${query}')`;\n }\n return `(${left} ${op} ${right})`;\n\n // Class check\n case 'has':\n // \"element has .class\" pattern\n if (node.right.type === 'selector') {\n const sel = (node.right as SelectorNode).value;\n if (sel.startsWith('.')) {\n const className = sanitizeClassName(sel.slice(1));\n if (className) {\n return `${left}.classList.contains('${className}')`;\n }\n }\n }\n this.ctx.requireHelper('contains');\n return `_rt.contains(${left}, ${right})`;\n\n // Type check\n case 'is a':\n case 'is an':\n return `(typeof ${left} === ${right} || ${left} instanceof ${right})`;\n\n case 'is not a':\n case 'is not an':\n return `(typeof ${left} !== ${right} && !(${left} instanceof ${right}))`;\n\n // Concatenation\n case '&':\n return `(String(${left}) + String(${right}))`;\n\n default:\n // Unknown operator - use as-is\n return `(${left} ${op} ${right})`;\n }\n }\n\n /** A selector operand as its quoted text; any other operand as generated. */\n private selectorText(node: ASTNode, generated: string): string {\n return node.type === 'selector'\n ? `'${sanitizeSelector((node as SelectorNode).value)}'`\n : generated;\n }\n\n // ===========================================================================\n // MEMBER EXPRESSIONS\n // ===========================================================================\n\n private generateMember(node: MemberExpressionNode): string {\n const object = this.generate(node.object);\n\n // A non-computed property is a name, whichever way the converter hands it\n // over: a string, or an identifier node (`#d1.value`, from core's parser\n // and semantic's buildAST alike). Only a computed one is an expression.\n // Reading every identifier node as computed compiled `#d1.value` to\n // `document.getElementById('d1')[value]`, which throws: `value` is not a\n // variable.\n const property = node.property as string | IdentifierNode;\n const prop =\n typeof property === 'string'\n ? property\n : !node.computed && property.type === 'identifier'\n ? (property.value ?? property.name)\n : undefined;\n if (prop !== undefined) {\n // Style property (*opacity, *color, etc.)\n if (prop.startsWith('*')) {\n const styleProp = prop.slice(1);\n return `${object}.style.${styleProp}`;\n }\n\n // Attribute (@disabled, @checked, etc.)\n if (prop.startsWith('@')) {\n const attrName = prop.slice(1);\n return `${object}.getAttribute('${sanitizeSelector(attrName)}')`;\n }\n\n // Computed property\n if (node.computed) {\n return `${object}[${JSON.stringify(prop)}]`;\n }\n\n return `${object}.${sanitizeIdentifier(prop)}`;\n }\n\n // Computed property with expression\n const propExpr = this.generate(node.property as ASTNode);\n return `${object}[${propExpr}]`;\n }\n\n // ===========================================================================\n // POSSESSIVE EXPRESSIONS\n // ===========================================================================\n\n private generatePossessive(node: PossessiveNode): string {\n const object = this.generate(node.object);\n const property = node.property;\n\n // Style property (*opacity, etc.)\n if (property.startsWith('*')) {\n const styleProp = property.slice(1);\n return `${object}.style.${styleProp}`;\n }\n\n // Attribute (@disabled, etc.)\n if (property.startsWith('@')) {\n const attrName = property.slice(1);\n return `${object}.getAttribute('${sanitizeSelector(attrName)}')`;\n }\n\n // Form values pseudo-property\n if (property === 'values') {\n this.ctx.requireHelper('getValues');\n return `_rt.getValues(${object})`;\n }\n\n // Common DOM properties\n const domProps = [\n 'value',\n 'textContent',\n 'innerHTML',\n 'innerText',\n 'outerHTML',\n 'checked',\n 'disabled',\n 'selected',\n 'hidden',\n 'src',\n 'href',\n 'id',\n 'className',\n 'classList',\n 'parentElement',\n 'parentNode',\n 'children',\n 'firstChild',\n 'lastChild',\n 'nextSibling',\n 'previousSibling',\n 'nextElementSibling',\n 'previousElementSibling',\n 'offsetWidth',\n 'offsetHeight',\n 'offsetTop',\n 'offsetLeft',\n 'clientWidth',\n 'clientHeight',\n 'scrollWidth',\n 'scrollHeight',\n 'scrollTop',\n 'scrollLeft',\n ];\n\n if (domProps.includes(property)) {\n return `${object}.${property}`;\n }\n\n // General property access - try property first, then attribute\n this.ctx.requireHelper('getProp');\n return `_rt.getProp(${object}, '${sanitizeSelector(property)}')`;\n }\n\n // ===========================================================================\n // CALL EXPRESSIONS\n // ===========================================================================\n\n private generateCall(node: CallExpressionNode): string {\n const args = (node.args ?? []).map(arg => this.generate(arg)).join(', ');\n\n // Method call\n if (node.callee.type === 'member' || node.callee.type === 'possessive') {\n const memberNode = node.callee as MemberExpressionNode | PossessiveNode;\n const object = this.generate(memberNode.object);\n const method =\n typeof memberNode.property === 'string'\n ? memberNode.property\n : this.generate(memberNode.property as ASTNode);\n\n if (typeof memberNode.property === 'string') {\n return `${object}.${sanitizeIdentifier(memberNode.property)}(${args})`;\n }\n return `${object}[${method}](${args})`;\n }\n\n // Direct function call\n const callee = this.generate(node.callee);\n return `${callee}(${args})`;\n }\n\n // ===========================================================================\n // POSITIONAL EXPRESSIONS\n // ===========================================================================\n\n private generatePositional(node: PositionalNode): string {\n const position = node.position;\n const target = node.target ? this.generate(node.target) : null;\n\n switch (position) {\n case 'first':\n if (target) {\n // first in collection\n if (node.target?.type === 'selector') {\n const sel = (node.target as SelectorNode).value;\n return `document.querySelector('${sanitizeSelector(sel)}')`;\n }\n this.ctx.requireHelper('first');\n return `_rt.first(${target})`;\n }\n return '_ctx.me';\n\n case 'last':\n if (target) {\n if (node.target?.type === 'selector') {\n const sel = (node.target as SelectorNode).value;\n const sanitized = sanitizeSelector(sel);\n return `(()=>{const _els=document.querySelectorAll('${sanitized}');return _els[_els.length-1]})()`;\n }\n this.ctx.requireHelper('last');\n return `_rt.last(${target})`;\n }\n return '_ctx.me';\n\n case 'random':\n if (target) {\n this.ctx.requireHelper('random');\n return `_rt.random(${target})`;\n }\n return '_ctx.me';\n\n case 'next':\n return '_ctx.me.nextElementSibling';\n\n case 'previous':\n return '_ctx.me.previousElementSibling';\n\n case 'closest':\n if (target && node.target?.type === 'selector') {\n const sel = (node.target as SelectorNode).value;\n return `_ctx.me.closest('${sanitizeSelector(sel)}')`;\n }\n if (target) {\n return `_ctx.me.closest(${target})`;\n }\n return '_ctx.me.parentElement';\n\n case 'parent':\n return '_ctx.me.parentElement';\n\n default:\n throw new Error(`Unknown positional: ${position}`);\n }\n }\n\n // ===========================================================================\n // ARRAY EXPRESSIONS\n // ===========================================================================\n\n private generateArray(node: ArrayExpressionNode): string {\n const elements = node.elements ?? [];\n const items = elements.map(el => this.generate(el)).join(', ');\n return `[${items}]`;\n }\n\n // ===========================================================================\n // OBJECT EXPRESSIONS\n // ===========================================================================\n\n private generateObject(node: ObjectExpressionNode): string {\n const properties = node.properties ?? [];\n const pairs = properties\n .map(prop => {\n const key =\n typeof prop.key === 'string' ? JSON.stringify(prop.key) : this.generate(prop.key);\n const value = this.generate(prop.value);\n return `${key}: ${value}`;\n })\n .join(', ');\n return `{${pairs}}`;\n }\n\n // ===========================================================================\n // TEMPLATE EXPRESSIONS\n // ===========================================================================\n\n private generateTemplate(node: TemplateNode): string {\n const parts = node.parts ?? [];\n const segments = parts\n .map(part => {\n if (typeof part === 'string') {\n return part.replace(/`/g, '\\\\`').replace(/\\$/g, '\\\\$');\n }\n return '${' + this.generate(part) + '}';\n })\n .join('');\n return '`' + segments + '`';\n }\n\n // ===========================================================================\n // UNARY EXPRESSIONS\n // ===========================================================================\n\n /** `x is a Number`, as both engines test it: see the runtime's `typeCheck`. */\n private generateTypeCheck(node: TypeCheckNode): string {\n this.ctx.requireHelper('typeCheck');\n const test = `_rt.typeCheck(${this.generate(node.value)}, ${JSON.stringify(node.typeName)}, ${node.nullOk})`;\n return node.negated ? `!${test}` : test;\n }\n\n private generateUnary(node: UnaryExpressionNode): string {\n const operand = this.generate(node.operand);\n\n switch (node.operator) {\n case 'not':\n case '!':\n return `!${operand}`;\n case '-':\n return `-${operand}`;\n case '+':\n return `+${operand}`;\n case 'no':\n return `!${operand}`;\n // Core's postfix tests. Left as is, `exists#d1` is not JavaScript.\n case 'exists':\n case 'some':\n this.ctx.requireHelper('exists');\n return `_rt.exists(${operand})`;\n case 'does not exist':\n this.ctx.requireHelper('exists');\n return `!_rt.exists(${operand})`;\n case 'is empty':\n this.ctx.requireHelper('isEmpty');\n return `_rt.isEmpty(${operand})`;\n case 'is not empty':\n this.ctx.requireHelper('isEmpty');\n return `!_rt.isEmpty(${operand})`;\n case 'beep!':\n // Report the value the way BeepCodegen reports the command's, then hand\n // it on. The default below would emit `beep!<operand>`, which is not JS.\n return `((v) => (console.log('%c[beep]', 'color: orange; font-weight: bold', v), v))(${operand})`;\n default:\n return `${node.operator}${operand}`;\n }\n }\n\n // ===========================================================================\n // CONDITIONAL EXPRESSIONS\n // ===========================================================================\n\n private generateConditional(node: ConditionalNode): string {\n const condition = this.generate(node.condition);\n const consequent = this.generate(node.consequent);\n const alternate = this.generate(node.alternate);\n return `(${condition} ? ${consequent} : ${alternate})`;\n }\n}\n\n// =============================================================================\n// CONVENIENCE FUNCTION\n// =============================================================================\n\n/**\n * Generate JavaScript code for an expression.\n */\nexport function generateExpression(node: ASTNode, ctx: CodegenContext): string {\n const codegen = new ExpressionCodegen(ctx);\n return codegen.generate(node);\n}\n\nexport default ExpressionCodegen;\n","/**\n * Command Transforms\n *\n * Transforms hyperscript command AST nodes to JavaScript code.\n * Each command has a dedicated code generator.\n */\n\nimport type {\n BinaryExpressionNode,\n ASTNode,\n CommandNode,\n CodegenContext,\n GeneratedExpression,\n HtmlLiteralNode,\n IdentifierNode,\n LiteralNode,\n SelectorNode,\n VariableNode,\n PossessiveNode,\n IfNode,\n RepeatNode,\n ForEachNode,\n WhileNode,\n} from '../types/aot-types.js';\nimport {\n ExpressionCodegen,\n sanitizeClassName,\n sanitizeSelector,\n sanitizeIdentifier,\n} from './expression-transforms.js';\n\n// =============================================================================\n// COMMAND CODEGEN INTERFACE\n// =============================================================================\n\n/**\n * Interface for command code generators.\n */\nexport interface CommandCodegen {\n /** Command name this generator handles */\n readonly command: string;\n\n /** Generate JavaScript for this command */\n generate(node: CommandNode, ctx: CodegenContext): GeneratedExpression | null;\n}\n\nconst isNode = (value: unknown): value is ASTNode =>\n typeof value === 'object' && value !== null && 'type' in value;\n\n/**\n * The node a command acts on. Core's parser, and semantic's buildAST, which\n * emits core's shape, put it in a slot: the first arg (`hide #d1`) or the\n * modifier named for its preposition (`toggle .a on #d1`). `node.target` is an\n * older spelling few producers set, so a codegen that read only it compiled an\n * explicit target to `me` (add's and remove's moved in Arc 3 step 3).\n */\nfunction commandTarget(node: CommandNode, ...slots: string[]): ASTNode | undefined {\n if (node.target) return node.target;\n for (const slot of slots) {\n const found = slot === 'arg' ? node.args?.[0] : node.modifiers?.[slot];\n if (isNode(found)) return found;\n }\n return undefined;\n}\n\n// =============================================================================\n// COMMAND GENERATOR IMPLEMENTATIONS\n// =============================================================================\n\n/** A scoped query, `<li/> in #list`: a query on the left of `in`. */\nfunction isScopedQuery(node: ASTNode | undefined): boolean {\n const binary = node as BinaryExpressionNode | undefined;\n return binary?.type === 'binary' && binary.operator === 'in' && binary.left.type === 'selector';\n}\n\n/**\n * A target that names every match, as `querySelectorAll`: a class, tag or\n * attribute query, or a scoped query (`<li/> in #list`, its matches inside the\n * scope). Both engines act on each match (`add .a to .items` adds to every\n * one); `document.querySelector` reached the first. Null for an id, which\n * names one element on both engines even when it is duplicated, and for any\n * other target.\n */\nfunction allMatches(node: ASTNode | undefined, ctx: CodegenContext): string | null {\n if (isScopedQuery(node)) return ctx.generateExpression(node!);\n if (node?.type !== 'selector') return null;\n const selector = (node as SelectorNode).value;\n return /^#[\\w-]+$/.test(selector)\n ? null\n : `document.querySelectorAll('${sanitizeSelector(selector)}')`;\n}\n\n/** `op` applied to every element the target names, or to `me` when there is none. */\nfunction forEachTarget(\n node: ASTNode | undefined,\n ctx: CodegenContext,\n op: (el: string) => string\n): string {\n const all = allMatches(node, ctx);\n if (all) return `${all}.forEach(el => ${op('el')})`;\n return op(node ? ctx.generateExpression(node) : '_ctx.me');\n}\n\n/**\n * Toggle command: toggle .class [on target]\n */\nclass ToggleCodegen implements CommandCodegen {\n readonly command = 'toggle';\n\n generate(node: CommandNode, ctx: CodegenContext): GeneratedExpression | null {\n const args = node.args ?? [];\n if (args.length === 0) return null;\n\n const targetNode = commandTarget(node, 'on');\n\n const arg = args[0];\n\n // Class toggle: .active\n if (arg.type === 'selector') {\n const selector = (arg as SelectorNode).value;\n if (selector.startsWith('.')) {\n const className = sanitizeClassName(selector.slice(1));\n if (!className) return null;\n\n // On the target. (This branch toggled the class name read as a TAG\n // selector, `querySelectorAll('active')`, whatever the target was.)\n return {\n code: forEachTarget(targetNode, ctx, el => `${el}.classList.toggle('${className}')`),\n async: false,\n sideEffects: true,\n };\n }\n }\n\n // Attribute toggle: @disabled\n if (arg.type === 'identifier') {\n const value = (arg as { value?: string }).value ?? '';\n if (value.startsWith('@')) {\n const attrName = value.slice(1);\n ctx.requireHelper('toggleAttr');\n return {\n code: forEachTarget(\n targetNode,\n ctx,\n el => `_rt.toggleAttr(${el}, '${sanitizeSelector(attrName)}')`\n ),\n async: false,\n sideEffects: true,\n };\n }\n }\n\n // Generic toggle\n ctx.requireHelper('toggle');\n return {\n code: forEachTarget(\n targetNode,\n ctx,\n el => `_rt.toggle(${ctx.generateExpression(arg)}, ${el})`\n ),\n async: false,\n sideEffects: true,\n };\n }\n}\n\n/**\n * Add command: add .class [to target]\n */\nclass AddCodegen implements CommandCodegen {\n readonly command = 'add';\n\n generate(node: CommandNode, ctx: CodegenContext): GeneratedExpression | null {\n const args = node.args ?? [];\n if (args.length === 0) return null;\n\n // The target is the `to` slot (Arc 3 step 3); `node.target` is the\n // semantic path's spelling of the same thing.\n const targetSlot = node.target ?? (node.modifiers as Record<string, ASTNode> | undefined)?.to;\n const target = targetSlot ? ctx.generateExpression(targetSlot) : '_ctx.me';\n\n const arg = args[0];\n\n // Class add: .active\n if (arg.type === 'selector') {\n const selector = (arg as SelectorNode).value;\n if (selector.startsWith('.')) {\n const className = sanitizeClassName(selector.slice(1));\n if (!className) return null;\n\n return {\n code: forEachTarget(targetSlot, ctx, el => `${el}.classList.add('${className}')`),\n async: false,\n sideEffects: true,\n };\n }\n }\n\n // HTML element creation: <div.class/>\n if (arg.type === 'htmlLiteral') {\n const tagNode = arg as HtmlLiteralNode;\n const tag = tagNode.tag ?? 'div';\n const classes = tagNode.classes ?? [];\n const id = tagNode.id;\n\n let code = `(() => { const _el = document.createElement('${tag}');`;\n if (classes.length > 0) {\n code += ` _el.className = '${classes.join(' ')}';`;\n }\n if (id) {\n code += ` _el.id = '${id}';`;\n }\n code += ` ${target}.appendChild(_el); return _el; })()`;\n\n return { code, async: false, sideEffects: true };\n }\n\n // Attribute add\n ctx.requireHelper('addClass');\n return {\n code: forEachTarget(\n targetSlot,\n ctx,\n el => `_rt.addClass(${el}, ${ctx.generateExpression(arg)})`\n ),\n async: false,\n sideEffects: true,\n };\n }\n}\n\n/**\n * Remove command: remove .class [from target] or remove element\n */\nclass RemoveCodegen implements CommandCodegen {\n readonly command = 'remove';\n\n generate(node: CommandNode, ctx: CodegenContext): GeneratedExpression | null {\n const args = node.args ?? [];\n\n // No args = remove the element itself\n if (args.length === 0) {\n // The target is the `from` slot (Arc 3 step 3); `node.target` is the\n // semantic path's spelling of the same thing.\n const targetSlot =\n node.target ?? (node.modifiers as Record<string, ASTNode> | undefined)?.from;\n return {\n code: forEachTarget(targetSlot, ctx, el => `${el}.remove()`),\n async: false,\n sideEffects: true,\n };\n }\n\n // The target is the `from` slot (Arc 3 step 3); `node.target` is the\n // semantic path's spelling of the same thing.\n const targetSlot = node.target ?? (node.modifiers as Record<string, ASTNode> | undefined)?.from;\n\n const arg = args[0];\n\n // `remove #d1`, `remove el`: the operand is the element to remove. Only a\n // class (`.x`) or an attribute (`@x`) is removed FROM something (`me`).\n const isElement =\n arg.type === 'selector'\n ? !/^[.@]/.test((arg as SelectorNode).value)\n : (arg.type === 'identifier' &&\n !String((arg as IdentifierNode).value ?? '').startsWith('@')) ||\n arg.type === 'variable' ||\n isScopedQuery(arg);\n if (!targetSlot && isElement) {\n return {\n code: forEachTarget(arg, ctx, el => `${el}.remove()`),\n async: false,\n sideEffects: true,\n };\n }\n\n // Class remove: .active\n if (arg.type === 'selector') {\n const selector = (arg as SelectorNode).value;\n if (selector.startsWith('.')) {\n const className = sanitizeClassName(selector.slice(1));\n if (!className) return null;\n\n return {\n code: forEachTarget(targetSlot, ctx, el => `${el}.classList.remove('${className}')`),\n async: false,\n sideEffects: true,\n };\n }\n }\n\n ctx.requireHelper('removeClass');\n return {\n code: forEachTarget(\n targetSlot,\n ctx,\n el => `_rt.removeClass(${el}, ${ctx.generateExpression(arg)})`\n ),\n async: false,\n sideEffects: true,\n };\n }\n}\n\n/**\n * Where a variable lives, as both engines keep it: `$x` globally, `:x` in its\n * element's store (it persists across the handler's runs), a bare `x` for one\n * run. The converters carry `:x` as a `variable` (scope `element`); `$x` and a\n * bare `x` arrive as identifiers. The key drops the sigil, as every read's\n * does. Null for anything that is not a variable (an element, a property).\n */\nfunction variableStore(\n node: ASTNode,\n ctx: CodegenContext\n): { read: string; write: (value: string) => string } | null {\n let name: string;\n let scope: VariableNode['scope'];\n if (node.type === 'variable') {\n name = (node as VariableNode).name;\n scope = (node as VariableNode).scope;\n } else if (node.type === 'identifier') {\n name = (node as IdentifierNode).value ?? (node as IdentifierNode).name ?? '';\n if (/^(\\$|::)/.test(name)) scope = 'global';\n else if (/^[A-Za-z_]\\w*$/.test(name)) scope = 'local';\n else return null;\n } else {\n return null;\n }\n const key = sanitizeIdentifier(name.replace(/^(\\$|::|:)/, ''));\n if (scope === 'global') {\n ctx.requireHelper('globals');\n return { read: `_rt.globals.get('${key}')`, write: v => `_rt.globals.set('${key}', ${v})` };\n }\n if (scope === 'element') {\n ctx.requireHelper('elementVars');\n const store = `_rt.elementVars(_ctx.me)`;\n return { read: `${store}.get('${key}')`, write: v => `${store}.set('${key}', ${v})` };\n }\n return { read: `_ctx.locals.get('${key}')`, write: v => `_ctx.locals.set('${key}', ${v})` };\n}\n\n/**\n * Set command: set :var to value or set element's property to value\n */\nclass SetCodegen implements CommandCodegen {\n readonly command = 'set';\n\n generate(node: CommandNode, ctx: CodegenContext): GeneratedExpression | null {\n const args = node.args ?? [];\n const modifiers = node.modifiers as Record<string, ASTNode> | undefined;\n const roles = node.roles;\n\n // Resolve target and value from roles, modifiers, or args\n const targetNode = roles?.destination ?? args[0];\n const valueNode = roles?.patient ?? (modifiers?.to as ASTNode) ?? args[1];\n\n if (!targetNode || !valueNode) return null;\n\n const value = ctx.generateExpression(valueNode);\n\n // A variable. An identifier target (`set $x`, `set x`) returned null\n // here, so every set of a variable was dropped from the handler.\n const store = variableStore(targetNode, ctx);\n if (store) return { code: store.write(value), async: false, sideEffects: true };\n\n // Property assignment: element's property\n if (targetNode.type === 'possessive') {\n const possessive = targetNode as PossessiveNode;\n const obj = ctx.generateExpression(possessive.object);\n const prop = possessive.property;\n\n // Style property\n if (prop.startsWith('*')) {\n const styleProp = prop.slice(1);\n return {\n code: `${obj}.style.${styleProp} = ${value}`,\n async: false,\n sideEffects: true,\n };\n }\n\n // Attribute\n if (prop.startsWith('@')) {\n const attrName = prop.slice(1);\n return {\n code: `${obj}.setAttribute('${sanitizeSelector(attrName)}', ${value})`,\n async: false,\n sideEffects: true,\n };\n }\n\n return {\n code: `${obj}.${sanitizeIdentifier(prop)} = ${value}`,\n async: false,\n sideEffects: true,\n };\n }\n\n // Member expression assignment\n if (targetNode.type === 'member') {\n const memberCode = ctx.generateExpression(targetNode);\n return {\n code: `${memberCode} = ${value}`,\n async: false,\n sideEffects: true,\n };\n }\n\n return null;\n }\n}\n\n/**\n * Put command: put value into/before/after target\n */\nclass PutCodegen implements CommandCodegen {\n readonly command = 'put';\n\n generate(node: CommandNode, ctx: CodegenContext): GeneratedExpression | null {\n const args = node.args ?? [];\n const roles = node.roles;\n const modifiers = node.modifiers as Record<string, unknown> | undefined;\n\n // Resolve content from roles or args\n const contentNode = roles?.patient ?? args[0];\n if (!contentNode) return null;\n\n const content = ctx.generateExpression(contentNode as ASTNode);\n\n // Resolve target: from roles, or from the modifier value, or from node.target\n let targetNode: ASTNode | undefined = roles?.destination;\n if (!targetNode && modifiers) {\n // Semantic parser uses modifier keys as position: modifiers.into = target, modifiers.before = target\n for (const key of ['into', 'before', 'after']) {\n if (modifiers[key] && typeof modifiers[key] === 'object') {\n targetNode = modifiers[key] as ASTNode;\n break;\n }\n }\n }\n targetNode ??= node.target;\n const into = (op: (el: string) => string): string => forEachTarget(targetNode, ctx, op);\n\n // Detect position: from roles.method, modifier keys, or modifiers.position\n let modifier = 'into';\n if (roles?.method && (roles.method as { value?: unknown }).value) {\n modifier = String((roles.method as { value?: unknown }).value);\n } else if (modifiers) {\n if (modifiers.before) modifier = 'before';\n else if (modifiers.after) modifier = 'after';\n else if (typeof modifiers.position === 'string') modifier = modifiers.position;\n }\n\n switch (modifier) {\n case 'into':\n return {\n code: into(el => `${el}.innerHTML = ${content}`),\n async: false,\n sideEffects: true,\n };\n case 'before':\n return {\n code: into(el => `${el}.insertAdjacentHTML('beforebegin', ${content})`),\n async: false,\n sideEffects: true,\n };\n case 'after':\n return {\n code: into(el => `${el}.insertAdjacentHTML('afterend', ${content})`),\n async: false,\n sideEffects: true,\n };\n case 'at start of':\n case 'start':\n return {\n code: into(el => `${el}.insertAdjacentHTML('afterbegin', ${content})`),\n async: false,\n sideEffects: true,\n };\n case 'at end of':\n case 'end':\n return {\n code: into(el => `${el}.insertAdjacentHTML('beforeend', ${content})`),\n async: false,\n sideEffects: true,\n };\n default:\n return {\n code: into(el => `${el}.innerHTML = ${content}`),\n async: false,\n sideEffects: true,\n };\n }\n }\n}\n\n/**\n * Show command: show [target]\n */\nclass ShowCodegen implements CommandCodegen {\n readonly command = 'show';\n\n generate(node: CommandNode, ctx: CodegenContext): GeneratedExpression {\n const targetNode = commandTarget(node, 'arg');\n\n return {\n code: forEachTarget(targetNode, ctx, el => `${el}.style.display = ''`),\n async: false,\n sideEffects: true,\n };\n }\n}\n\n/**\n * Hide command: hide [target]\n */\nclass HideCodegen implements CommandCodegen {\n readonly command = 'hide';\n\n generate(node: CommandNode, ctx: CodegenContext): GeneratedExpression {\n const targetNode = commandTarget(node, 'arg');\n\n return {\n code: forEachTarget(targetNode, ctx, el => `${el}.style.display = 'none'`),\n async: false,\n sideEffects: true,\n };\n }\n}\n\n/**\n * Empty command: empty [target]. Removes the children of each element the\n * target names (`empty #list`, `empty .box`), as both engines do. It had no\n * codegen, so the handler compiled to nothing.\n */\nclass EmptyCodegen implements CommandCodegen {\n readonly command = 'empty';\n\n generate(node: CommandNode, ctx: CodegenContext): GeneratedExpression {\n const targetNode = commandTarget(node, 'arg');\n\n return {\n code: forEachTarget(targetNode, ctx, el => `${el}.replaceChildren()`),\n async: false,\n sideEffects: true,\n };\n }\n}\n\n/**\n * Focus command: focus [target]\n */\nclass FocusCodegen implements CommandCodegen {\n readonly command = 'focus';\n\n generate(node: CommandNode, ctx: CodegenContext): GeneratedExpression {\n const targetNode = commandTarget(node, 'arg');\n const target = targetNode ? ctx.generateExpression(targetNode) : '_ctx.me';\n\n return {\n code: `${target}.focus()`,\n async: false,\n sideEffects: true,\n };\n }\n}\n\n/**\n * Blur command: blur [target]\n */\nclass BlurCodegen implements CommandCodegen {\n readonly command = 'blur';\n\n generate(node: CommandNode, ctx: CodegenContext): GeneratedExpression {\n const targetNode = commandTarget(node, 'arg');\n const target = targetNode ? ctx.generateExpression(targetNode) : '_ctx.me';\n\n return {\n code: `${target}.blur()`,\n async: false,\n sideEffects: true,\n };\n }\n}\n\n/**\n * Log command: log value [, value2, ...]\n */\nclass LogCodegen implements CommandCodegen {\n readonly command = 'log';\n\n generate(node: CommandNode, ctx: CodegenContext): GeneratedExpression {\n const args = node.args ?? [];\n const values = args.map(arg => ctx.generateExpression(arg)).join(', ');\n\n return {\n code: `console.log(${values || \"''\"})`,\n async: false,\n sideEffects: true,\n };\n }\n}\n\n/**\n * Wait command: wait 100ms or wait for event\n */\nclass WaitCodegen implements CommandCodegen {\n readonly command = 'wait';\n\n generate(node: CommandNode, ctx: CodegenContext): GeneratedExpression | null {\n const args = node.args ?? [];\n const roles = node.roles;\n\n const arg = (roles?.duration ?? args[0]) as ASTNode | undefined;\n if (!arg) return null;\n\n // Duration wait: wait 100ms\n if (arg.type === 'literal') {\n const value = (arg as LiteralNode).value;\n if (typeof value === 'number') {\n ctx.requireHelper('wait');\n return {\n code: `await _rt.wait(${value})`,\n async: true,\n sideEffects: false,\n };\n }\n // String duration like \"100ms\"\n if (typeof value === 'string') {\n const ms = parseDuration(value);\n if (ms !== null) {\n ctx.requireHelper('wait');\n return {\n code: `await _rt.wait(${ms})`,\n async: true,\n sideEffects: false,\n };\n }\n }\n }\n\n // Expression duration\n const duration = ctx.generateExpression(arg);\n ctx.requireHelper('wait');\n return {\n code: `await _rt.wait(${duration})`,\n async: true,\n sideEffects: false,\n };\n }\n}\n\n/**\n * Fetch command: fetch url [as json/text/html]\n */\nclass FetchCodegen implements CommandCodegen {\n readonly command = 'fetch';\n\n generate(node: CommandNode, ctx: CodegenContext): GeneratedExpression | null {\n const args = node.args ?? [];\n const roles = node.roles;\n const modifiers = node.modifiers as Record<string, unknown> | undefined;\n\n // Resolve URL from roles or args\n const urlNode = roles?.source ?? args[0];\n if (!urlNode) return null;\n\n const url = ctx.generateExpression(urlNode as ASTNode);\n\n // Resolve response format from roles, modifiers (node or string)\n let format = 'text';\n if (roles?.responseType) {\n const rt = roles.responseType as { value?: unknown; name?: string };\n format = String(rt.name ?? rt.value ?? 'text');\n } else if (modifiers?.as) {\n const asVal = modifiers.as;\n if (typeof asVal === 'string') {\n format = asVal;\n } else if (typeof asVal === 'object' && asVal !== null) {\n format = String(\n (asVal as { name?: string; value?: unknown }).name ??\n (asVal as { value?: unknown }).value ??\n 'text'\n );\n }\n }\n\n switch (format) {\n case 'json':\n ctx.requireHelper('fetchJSON');\n return {\n code: `_ctx.it = await _rt.fetchJSON(${url})`,\n async: true,\n sideEffects: true,\n };\n case 'html':\n ctx.requireHelper('fetchHTML');\n return {\n code: `_ctx.it = await _rt.fetchHTML(${url})`,\n async: true,\n sideEffects: true,\n };\n case 'text':\n default:\n ctx.requireHelper('fetchText');\n return {\n code: `_ctx.it = await _rt.fetchText(${url})`,\n async: true,\n sideEffects: true,\n };\n }\n }\n}\n\n/**\n * Send/Trigger command: send eventName [to target]\n */\nclass SendCodegen implements CommandCodegen {\n readonly command = 'send';\n\n generate(node: CommandNode, ctx: CodegenContext): GeneratedExpression | null {\n const args = node.args ?? [];\n if (args.length === 0) return null;\n\n const eventName = ctx.generateExpression(args[0]);\n const targetNode = commandTarget(node, 'on', 'to');\n\n const detail = args.length > 1 ? ctx.generateExpression(args[1]) : 'undefined';\n\n ctx.requireHelper('send');\n return {\n code: forEachTarget(targetNode, ctx, el => `_rt.send(${el}, ${eventName}, ${detail})`),\n async: false,\n sideEffects: true,\n };\n }\n}\n\n/**\n * Increment command: increment :var [by amount]\n */\nclass IncrementCodegen implements CommandCodegen {\n readonly command = 'increment';\n\n generate(node: CommandNode, ctx: CodegenContext): GeneratedExpression | null {\n const args = node.args ?? [];\n const roles = node.roles;\n const modifiers = node.modifiers as Record<string, unknown> | undefined;\n\n const target = roles?.destination ?? roles?.patient ?? args[0];\n if (!target) return null;\n\n // Resolve amount from roles.quantity, modifiers.by, or args[1]\n const amountNode = roles?.quantity ?? (modifiers?.by as ASTNode) ?? args[1];\n const amount = amountNode ? ctx.generateExpression(amountNode as ASTNode) : '1';\n\n // A variable, read as a number (`\"5\"` counts to 6 on both engines, not\n // `\"51\"`); anything else is an element whose text is counted.\n const store = variableStore(target, ctx);\n if (store) {\n const code = store.write(`(Number(${store.read}) || 0) + ${amount}`);\n return { code, async: false, sideEffects: true };\n }\n\n // Element textContent\n const targetCode = ctx.generateExpression(target);\n return {\n code: `${targetCode}.textContent = (parseFloat(${targetCode}.textContent) || 0) + ${amount}`,\n async: false,\n sideEffects: true,\n };\n }\n}\n\n/**\n * Decrement command: decrement :var [by amount]\n */\nclass DecrementCodegen implements CommandCodegen {\n readonly command = 'decrement';\n\n generate(node: CommandNode, ctx: CodegenContext): GeneratedExpression | null {\n const args = node.args ?? [];\n const roles = node.roles;\n const modifiers = node.modifiers as Record<string, unknown> | undefined;\n\n const target = roles?.destination ?? roles?.patient ?? args[0];\n if (!target) return null;\n\n // Resolve amount from roles.quantity, modifiers.by, or args[1]\n const amountNode = roles?.quantity ?? (modifiers?.by as ASTNode) ?? args[1];\n const amount = amountNode ? ctx.generateExpression(amountNode as ASTNode) : '1';\n\n // A variable, read as a number (`\"5\"` counts to 6 on both engines, not\n // `\"51\"`); anything else is an element whose text is counted.\n const store = variableStore(target, ctx);\n if (store) {\n const code = store.write(`(Number(${store.read}) || 0) - ${amount}`);\n return { code, async: false, sideEffects: true };\n }\n\n // Element textContent\n const targetCode = ctx.generateExpression(target);\n return {\n code: `${targetCode}.textContent = (parseFloat(${targetCode}.textContent) || 0) - ${amount}`,\n async: false,\n sideEffects: true,\n };\n }\n}\n\n/**\n * Halt command: halt (prevents default and stops execution)\n */\nclass HaltCodegen implements CommandCodegen {\n readonly command = 'halt';\n\n generate(_node: CommandNode, ctx: CodegenContext): GeneratedExpression {\n ctx.requireHelper('HALT');\n return {\n code: `throw _rt.HALT`,\n async: false,\n sideEffects: true,\n };\n }\n}\n\n/**\n * Exit command: exit (stops execution without preventing default)\n */\nclass ExitCodegen implements CommandCodegen {\n readonly command = 'exit';\n\n generate(_node: CommandNode, ctx: CodegenContext): GeneratedExpression {\n ctx.requireHelper('EXIT');\n return {\n code: `throw _rt.EXIT`,\n async: false,\n sideEffects: true,\n };\n }\n}\n\n/**\n * Return command: return [value]\n */\nclass ReturnCodegen implements CommandCodegen {\n readonly command = 'return';\n\n generate(node: CommandNode, ctx: CodegenContext): GeneratedExpression {\n const args = node.args ?? [];\n const value = args.length > 0 ? ctx.generateExpression(args[0]) : 'undefined';\n\n return {\n code: `return ${value}`,\n async: false,\n sideEffects: true,\n };\n }\n}\n\n/**\n * Call command: call function() or call behavior\n */\nclass CallCodegen implements CommandCodegen {\n readonly command = 'call';\n\n generate(node: CommandNode, ctx: CodegenContext): GeneratedExpression | null {\n const args = node.args ?? [];\n if (args.length === 0) return null;\n\n const fn = ctx.generateExpression(args[0]);\n return {\n code: fn,\n async: false,\n sideEffects: true,\n };\n }\n}\n\n/**\n * Scroll command: scroll [to target] or scroll target into view\n */\nconst SCROLL_BLOCK: Record<string, string> = {\n top: 'start',\n middle: 'center',\n bottom: 'end',\n nearest: 'nearest',\n};\nconst SCROLL_INLINE: Record<string, string> = { left: 'start', center: 'center', right: 'end' };\n\n/**\n * The scrollIntoView options of a `go`/`scroll`: its position (`top` is block\n * `start`, `right` inline `end`, as both engines map them) and its behavior.\n * Core's parser and semantic's buildAST write both slots as string nodes;\n * `smooth` is an older semantic flag.\n */\nfunction scrollOptions(modifiers: Record<string, unknown> | undefined): string {\n const word = (slot: string): string | undefined => {\n const value = (modifiers?.[slot] as { value?: unknown } | undefined)?.value;\n return typeof value === 'string' ? value : undefined;\n };\n const position = word('position') ?? '';\n const options: string[] = [];\n if (SCROLL_BLOCK[position]) options.push(`block: '${SCROLL_BLOCK[position]}'`);\n if (SCROLL_INLINE[position]) options.push(`inline: '${SCROLL_INLINE[position]}'`);\n const behavior = modifiers?.smooth ? 'smooth' : word('behavior');\n options.push(\n `behavior: '${behavior === 'smooth' || behavior === 'instant' ? behavior : 'auto'}'`\n );\n return `{ ${options.join(', ')} }`;\n}\n\nclass ScrollCodegen implements CommandCodegen {\n readonly command = 'scroll';\n\n generate(node: CommandNode, ctx: CodegenContext): GeneratedExpression {\n // Core's parser writes the element of `scroll to top of #d1` to `of`.\n const targetNode = commandTarget(node, 'arg', 'of');\n const target = targetNode ? ctx.generateExpression(targetNode) : '_ctx.me';\n\n return {\n code: `${target}.scrollIntoView(${scrollOptions(node.modifiers)})`,\n async: false,\n sideEffects: true,\n };\n }\n}\n\n/**\n * Take command: take .class [from others]\n */\nclass TakeCodegen implements CommandCodegen {\n readonly command = 'take';\n\n generate(node: CommandNode, ctx: CodegenContext): GeneratedExpression | null {\n const args = node.args ?? [];\n if (args.length === 0) return null;\n\n const arg = args[0];\n if (arg.type !== 'selector') return null;\n\n const selector = (arg as SelectorNode).value;\n if (!selector.startsWith('.')) return null;\n\n const className = sanitizeClassName(selector.slice(1));\n if (!className) return null;\n\n // `take .a from #tabs`: from those elements, then to me.\n const source = commandTarget(node, 'from');\n if (source) {\n // A class query is every match; any other source may hold several too.\n let from = allMatches(source, ctx);\n if (!from) {\n ctx.requireHelper('toArray');\n from = `_rt.toArray(${ctx.generateExpression(source)})`;\n }\n return {\n code: `(() => { ${from}.forEach(el => el.classList.remove('${className}')); _ctx.me.classList.add('${className}'); })()`,\n async: false,\n sideEffects: true,\n };\n }\n\n // Remove from siblings, add to me\n return {\n code: `(() => { const _me = _ctx.me; _me.parentElement?.querySelectorAll('.${className}').forEach(el => el.classList.remove('${className}')); _me.classList.add('${className}'); })()`,\n async: false,\n sideEffects: true,\n };\n }\n}\n\n// =============================================================================\n// CONTROL FLOW GENERATORS\n// =============================================================================\n\n/**\n * Generate code for if/else statements.\n */\nexport function generateIf(\n node: IfNode,\n ctx: CodegenContext,\n generateBody: (nodes: ASTNode[]) => string\n): string {\n const exprCodegen = new ExpressionCodegen(ctx);\n const condition = exprCodegen.generate(node.condition);\n const thenBody = generateBody(node.thenBranch);\n\n let code = `if (${condition}) {\\n${thenBody}\\n}`;\n\n // Handle else-if branches\n if (node.elseIfBranches) {\n for (const branch of node.elseIfBranches) {\n const branchCondition = exprCodegen.generate(branch.condition);\n const branchBody = generateBody(branch.body);\n code += ` else if (${branchCondition}) {\\n${branchBody}\\n}`;\n }\n }\n\n // Handle else branch\n if (node.elseBranch) {\n const elseBody = generateBody(node.elseBranch);\n code += ` else {\\n${elseBody}\\n}`;\n }\n\n return code;\n}\n\n/**\n * The parts of one compiled loop. Every form shares one skeleton, so `index`,\n * `else` and `continue` behave the same in each, as they do in upstream's\n * single `RepeatLoopCommand`.\n */\ninterface LoopParts {\n /** Tested before each pass, or after it when `bottomTested`. */\n readonly test: string;\n /** `repeat … while/until <cond> end`: the first pass runs untested. */\n readonly bottomTested?: boolean;\n /** Runs after every pass, a `continue` included: `until event` yields a tick here. */\n readonly step?: string;\n /** Opens each pass, before the index: a for-in's item local. */\n readonly enter?: string;\n /** `index i`: the local set to the pass number, counting from 0. */\n readonly indexName?: string;\n readonly body: string;\n /** `else`: runs when no pass ran. */\n readonly elseBody?: string;\n}\n\nfunction emitLoop(parts: LoopParts): string {\n const pass = [\n ...(parts.elseBody !== undefined ? ['_ran = true;'] : []),\n ...(parts.enter ? [parts.enter] : []),\n ...(parts.indexName ? [`_ctx.locals.set('${sanitizeIdentifier(parts.indexName)}', _i);`] : []),\n parts.body,\n ].join('\\n');\n const step = parts.step ? `_i++, ${parts.step}` : '_i++';\n const loop = parts.bottomTested\n ? // A `continue` jumps straight to the test, so the counter moves there.\n `let _i = 0;\\ndo {\\n${pass}\\n} while ((${step}, ${parts.test}));`\n : `for (let _i = 0; ${parts.test}; ${step}) {\\n${pass}\\n}`;\n if (parts.elseBody === undefined) return parts.bottomTested ? `{\\n${loop}\\n}` : loop;\n return `{\\nlet _ran = false;\\n${loop}\\nif (!_ran) {\\n${parts.elseBody}\\n}\\n}`;\n}\n\n/**\n * Generate code for repeat loops: counted, `until event`, and forever.\n */\nexport function generateRepeat(\n node: RepeatNode,\n ctx: CodegenContext,\n generateBody: (nodes: ASTNode[]) => string\n): string {\n const exprCodegen = new ExpressionCodegen(ctx);\n const shared = {\n indexName: node.indexName,\n body: generateBody(node.body),\n elseBody: node.elseBody ? generateBody(node.elseBody) : undefined,\n };\n\n // Fixed count: repeat 5 times. `index` is readable in every pass unless the\n // loop names its own.\n if (node.count !== undefined) {\n const count =\n typeof node.count === 'number' ? String(node.count) : exprCodegen.generate(node.count);\n return emitLoop({ ...shared, test: `_i < ${count}`, indexName: node.indexName ?? 'index' });\n }\n\n // While condition: repeat while condition\n if (node.whileCondition) {\n return emitLoop({ ...shared, test: exprCodegen.generate(node.whileCondition) });\n }\n\n // `repeat until event e from t`: upstream listens once on `t` (the element\n // when absent) and yields a tick after every pass, so the event can arrive.\n // Without the tick the loop spins forever and the page hangs.\n if (node.untilEvent !== undefined) {\n ctx.requireHelper('wait');\n const target = node.untilEventTarget ? exprCodegen.generate(node.untilEventTarget) : '_ctx.me';\n return `{\nlet _fired = false;\n${target}.addEventListener(${JSON.stringify(node.untilEvent)}, () => { _fired = true; }, { once: true });\n${emitLoop({ ...shared, test: '!_fired', step: 'await _rt.wait(0)' })}\n}`;\n }\n\n // Forever: only a `break`, `exit` or `halt` in the body ends it.\n return emitLoop({ ...shared, test: 'true' });\n}\n\n/**\n * Generate code for for-each loops.\n */\nexport function generateForEach(\n node: ForEachNode,\n ctx: CodegenContext,\n generateBody: (nodes: ASTNode[]) => string\n): string {\n const exprCodegen = new ExpressionCodegen(ctx);\n // A selector expression compiles to its FIRST match; a loop runs over them all.\n const source = node.collection;\n const collection =\n source.type === 'selector' && !String(source.value).startsWith('#')\n ? `document.querySelectorAll('${sanitizeSelector(String(source.value))}')`\n : exprCodegen.generate(source);\n const itemName = sanitizeIdentifier(node.itemName);\n\n return `{\n const _collection = ${collection};\n const _arr = _collection == null ? [] : Array.isArray(_collection) ? _collection : Array.from(_collection);\n${emitLoop({\n test: '_i < _arr.length',\n enter: `_ctx.locals.set('${itemName}', _arr[_i]);`,\n indexName: node.indexName ?? 'index',\n body: generateBody(node.body),\n elseBody: node.elseBody ? generateBody(node.elseBody) : undefined,\n})}\n}`;\n}\n\n/**\n * Generate code for while loops: `repeat while`, `repeat until` (a negated\n * test), and their bottom-tested forms.\n */\nexport function generateWhile(\n node: WhileNode,\n ctx: CodegenContext,\n generateBody: (nodes: ASTNode[]) => string\n): string {\n const exprCodegen = new ExpressionCodegen(ctx);\n return emitLoop({\n test: exprCodegen.generate(node.condition),\n bottomTested: node.bottomTested,\n indexName: node.indexName,\n body: generateBody(node.body),\n elseBody: node.elseBody ? generateBody(node.elseBody) : undefined,\n });\n}\n\n// =============================================================================\n// ADDITIONAL COMMAND IMPLEMENTATIONS\n// =============================================================================\n\n/**\n * Unless command: unless condition (negated if — generates guard check)\n */\nclass UnlessCodegen implements CommandCodegen {\n readonly command = 'unless';\n\n generate(node: CommandNode, ctx: CodegenContext): GeneratedExpression | null {\n const args = node.args ?? [];\n if (args.length === 0) return null;\n\n const condition = ctx.generateExpression(args[0]);\n return {\n code: `if (!(${condition}))`,\n async: false,\n sideEffects: false,\n };\n }\n}\n\n/**\n * Throw command: throw \"message\" or throw expression\n */\nclass ThrowCodegen implements CommandCodegen {\n readonly command = 'throw';\n\n generate(node: CommandNode, ctx: CodegenContext): GeneratedExpression {\n const args = node.args ?? [];\n const value = args.length > 0 ? ctx.generateExpression(args[0]) : \"'Error'\";\n\n return {\n code: `throw new Error(${value})`,\n async: false,\n sideEffects: true,\n };\n }\n}\n\n/**\n * Default command: default :var to value (set if undefined/null)\n */\nclass DefaultCodegen implements CommandCodegen {\n readonly command = 'default';\n\n generate(node: CommandNode, ctx: CodegenContext): GeneratedExpression | null {\n const args = node.args ?? [];\n const roles = node.roles;\n const modifiers = node.modifiers as Record<string, ASTNode> | undefined;\n\n const targetNode = roles?.destination ?? args[0];\n const valueNode = roles?.patient ?? (modifiers?.to as ASTNode) ?? args[1];\n\n if (!targetNode || !valueNode) return null;\n\n const value = ctx.generateExpression(valueNode);\n\n const store = variableStore(targetNode, ctx);\n if (store) {\n const code = `if (${store.read} == null) ${store.write(value)}`;\n return { code, async: false, sideEffects: true };\n }\n\n return null;\n }\n}\n\n/**\n * Go command: go back, go forward, or go to a URL or an element\n */\nclass GoCodegen implements CommandCodegen {\n readonly command = 'go';\n\n generate(node: CommandNode, ctx: CodegenContext): GeneratedExpression | null {\n const args = node.args ?? [];\n const roles = node.roles;\n // The core parser's slots (Arc 3 step 3): `back` is a flag, `url` the\n // destination, `in` marks `in new window`; the semantic path names a\n // destination role or a positional argument.\n const mods = node.modifiers as Record<string, ASTNode> | undefined;\n if (mods?.back) {\n return { code: 'history.back()', async: false, sideEffects: true };\n }\n\n // A position or a behavior makes a go a scroll: `go to the top of #d1`\n // scrolled the element with no position, and `smoothly` was ignored.\n if (mods?.position || mods?.behavior) {\n const element = roles?.destination ?? args[0];\n if (!element) return null;\n return {\n code: `${ctx.generateExpression(element)}.scrollIntoView(${scrollOptions(mods)})`,\n async: false,\n sideEffects: true,\n };\n }\n\n const target = mods?.url ?? roles?.destination ?? args[0];\n if (!target) return null;\n\n // go back / go forward\n if (target.type === 'identifier') {\n const name = (target as IdentifierNode).value;\n if (name === 'back') {\n return { code: 'history.back()', async: false, sideEffects: true };\n }\n if (name === 'forward') {\n return { code: 'history.forward()', async: false, sideEffects: true };\n }\n }\n\n // Any other destination is read at run time, as upstream reads it: an\n // element scrolls into view (`go to #d1` assigned the element to\n // `location.href`), and `in new window` opens one (it was ignored).\n ctx.requireHelper('go');\n const newWindow = mods?.in !== undefined ? ', true' : '';\n return {\n code: `_rt.go(${ctx.generateExpression(target)}${newWindow})`,\n async: false,\n sideEffects: true,\n };\n }\n}\n\n/**\n * Append command: append content to target\n */\nclass AppendCodegen implements CommandCodegen {\n readonly command = 'append';\n\n generate(node: CommandNode, ctx: CodegenContext): GeneratedExpression | null {\n const args = node.args ?? [];\n const roles = node.roles;\n\n const contentNode = roles?.patient ?? args[0];\n if (!contentNode) return null;\n\n const content = ctx.generateExpression(contentNode);\n const targetNode = commandTarget(node, 'to');\n const target = targetNode ? ctx.generateExpression(targetNode) : '_ctx.me';\n\n return {\n code: `${target}.insertAdjacentHTML('beforeend', ${content})`,\n async: false,\n sideEffects: true,\n };\n }\n}\n\n/**\n * Pick command: pick random item from collection\n */\nclass PickCodegen implements CommandCodegen {\n readonly command = 'pick';\n\n generate(node: CommandNode, ctx: CodegenContext): GeneratedExpression | null {\n const args = node.args ?? [];\n const roles = node.roles;\n\n const collection = roles?.source ?? args[0];\n if (!collection) return null;\n\n const arr = ctx.generateExpression(collection);\n return {\n code: `_ctx.it = (() => { const _a = ${arr}; return _a[Math.floor(Math.random() * _a.length)]; })()`,\n async: false,\n sideEffects: true,\n };\n }\n}\n\n/**\n * Push URL command: push url to browser history\n */\nclass PushUrlCodegen implements CommandCodegen {\n readonly command = 'push-url';\n\n generate(node: CommandNode, ctx: CodegenContext): GeneratedExpression | null {\n const args = node.args ?? [];\n const roles = node.roles;\n\n const urlNode = roles?.destination ?? args[0];\n if (!urlNode) return null;\n\n const url = ctx.generateExpression(urlNode);\n return {\n code: `history.pushState({}, '', ${url})`,\n async: false,\n sideEffects: true,\n };\n }\n}\n\n/**\n * Replace URL command: replace url in browser history\n */\nclass ReplaceUrlCodegen implements CommandCodegen {\n readonly command = 'replace-url';\n\n generate(node: CommandNode, ctx: CodegenContext): GeneratedExpression | null {\n const args = node.args ?? [];\n const roles = node.roles;\n\n const urlNode = roles?.destination ?? args[0];\n if (!urlNode) return null;\n\n const url = ctx.generateExpression(urlNode);\n return {\n code: `history.replaceState({}, '', ${url})`,\n async: false,\n sideEffects: true,\n };\n }\n}\n\n/**\n * Get command: get expression (evaluates and stores in `it`/`result`)\n */\nclass GetCodegen implements CommandCodegen {\n readonly command = 'get';\n\n generate(node: CommandNode, ctx: CodegenContext): GeneratedExpression | null {\n const args = node.args ?? [];\n const roles = node.roles;\n\n const expr = roles?.patient ?? args[0];\n if (!expr) return null;\n\n const value = ctx.generateExpression(expr);\n return {\n code: `_ctx.it = _ctx.result = ${value}`,\n async: false,\n sideEffects: true,\n };\n }\n}\n\n/**\n * Break command: break out of a loop\n */\nclass BreakCodegen implements CommandCodegen {\n readonly command = 'break';\n\n generate(_node: CommandNode, _ctx: CodegenContext): GeneratedExpression {\n return {\n code: 'break',\n async: false,\n sideEffects: false,\n };\n }\n}\n\n/**\n * Continue command: skip to next iteration of a loop\n */\nclass ContinueCodegen implements CommandCodegen {\n readonly command = 'continue';\n\n generate(_node: CommandNode, _ctx: CodegenContext): GeneratedExpression {\n return {\n code: 'continue',\n async: false,\n sideEffects: false,\n };\n }\n}\n\n/**\n * Beep command: debug helper — logs expression with formatting\n */\nclass BeepCodegen implements CommandCodegen {\n readonly command = 'beep';\n\n generate(node: CommandNode, ctx: CodegenContext): GeneratedExpression {\n const args = node.args ?? [];\n const roles = node.roles;\n\n const expr = roles?.patient ?? args[0];\n if (!expr) {\n return {\n code: `console.log('%c[beep]', 'color: orange; font-weight: bold')`,\n async: false,\n sideEffects: true,\n };\n }\n\n const value = ctx.generateExpression(expr);\n return {\n code: `console.log('%c[beep]', 'color: orange; font-weight: bold', ${value})`,\n async: false,\n sideEffects: true,\n };\n }\n}\n\n/**\n * Js command: inline JavaScript block — passes through code string\n */\nclass JsCodegen implements CommandCodegen {\n readonly command = 'js';\n\n generate(node: CommandNode, ctx: CodegenContext): GeneratedExpression | null {\n const args = node.args ?? [];\n const roles = node.roles;\n\n // The js command body is typically passed as a literal string or the first arg\n const bodyNode = roles?.patient ?? args[0];\n if (!bodyNode) return null;\n\n if (bodyNode.type === 'literal') {\n const code = (bodyNode as LiteralNode).value;\n if (typeof code === 'string') {\n // Inline the JS directly — it runs in handler scope with _ctx available\n return {\n code: `(function(_ctx) { ${code} })(_ctx)`,\n async: false,\n sideEffects: true,\n };\n }\n }\n\n // Expression form: evaluate and store result\n const value = ctx.generateExpression(bodyNode);\n return {\n code: `_ctx.it = _ctx.result = ${value}`,\n async: false,\n sideEffects: true,\n };\n }\n}\n\n/**\n * Copy command: copy text to clipboard\n */\nclass CopyCodegen implements CommandCodegen {\n readonly command = 'copy';\n\n generate(node: CommandNode, ctx: CodegenContext): GeneratedExpression | null {\n const args = node.args ?? [];\n const roles = node.roles;\n\n const contentNode = roles?.patient ?? args[0];\n if (!contentNode) return null;\n\n const content = ctx.generateExpression(contentNode);\n return {\n code: `await navigator.clipboard.writeText(String(${content}))`,\n async: true,\n sideEffects: true,\n };\n }\n}\n\n/**\n * Make command: create a DOM element — `make <tag/> then ...`\n */\nclass MakeCodegen implements CommandCodegen {\n readonly command = 'make';\n\n generate(node: CommandNode, ctx: CodegenContext): GeneratedExpression | null {\n const args = node.args ?? [];\n const roles = node.roles;\n\n const targetNode = roles?.patient ?? args[0];\n if (!targetNode) return null;\n\n // HTML literal: make <div.foo#bar/>\n if (targetNode.type === 'htmlLiteral') {\n const tagNode = targetNode as HtmlLiteralNode;\n const tag = tagNode.tag ?? 'div';\n const classes = tagNode.classes ?? [];\n const id = tagNode.id;\n const attrs = tagNode.attributes ?? {};\n\n let code = `(() => { const _el = document.createElement('${tag}');`;\n if (classes.length > 0) {\n code += ` _el.className = '${classes.join(' ')}';`;\n }\n if (id) {\n code += ` _el.id = '${sanitizeIdentifier(id)}';`;\n }\n for (const [attr, val] of Object.entries(attrs)) {\n code += ` _el.setAttribute('${sanitizeSelector(attr)}', '${sanitizeSelector(val)}');`;\n }\n code += ` return _el; })()`;\n\n return {\n code: `_ctx.it = _ctx.result = ${code}`,\n async: false,\n sideEffects: true,\n };\n }\n\n // String tag name: make \"div\"\n if (targetNode.type === 'literal') {\n const tag = (targetNode as LiteralNode).value;\n if (typeof tag === 'string') {\n return {\n code: `_ctx.it = _ctx.result = document.createElement('${sanitizeSelector(tag)}')`,\n async: false,\n sideEffects: true,\n };\n }\n }\n\n // Dynamic: make expr\n const expr = ctx.generateExpression(targetNode);\n return {\n code: `_ctx.it = _ctx.result = document.createElement(${expr})`,\n async: false,\n sideEffects: true,\n };\n }\n}\n\n// =============================================================================\n// SWAP / MORPH COMMANDS\n// =============================================================================\n\n/**\n * Swap command: swap [strategy] of target with content\n *\n * Strategies: innerHTML (default), outerHTML, beforeBegin, afterBegin, beforeEnd, afterEnd, delete, morph\n */\nclass SwapCodegen implements CommandCodegen {\n readonly command = 'swap';\n\n generate(node: CommandNode, ctx: CodegenContext): GeneratedExpression | null {\n const args = node.args ?? [];\n const roles = node.roles;\n\n // delete strategy: swap delete target\n if (\n args.length > 0 &&\n args[0].type === 'identifier' &&\n (args[0] as IdentifierNode).value === 'delete'\n ) {\n const targetNode = args[1] ?? node.target;\n if (!targetNode) return null;\n const target = ctx.generateExpression(targetNode);\n return { code: `${target}.remove()`, async: false, sideEffects: true };\n }\n\n const contentNode = roles?.patient ?? args[args.length - 1];\n const targetNode = roles?.destination ?? node.target ?? args[0];\n\n if (!targetNode || !contentNode) return null;\n\n const target = ctx.generateExpression(targetNode);\n const content = ctx.generateExpression(contentNode);\n\n // Determine strategy from modifiers or args\n const strategy = this.resolveStrategy(node, args);\n\n switch (strategy) {\n case 'outerHTML':\n return { code: `${target}.outerHTML = ${content}`, async: false, sideEffects: true };\n case 'beforebegin':\n return {\n code: `${target}.insertAdjacentHTML('beforebegin', ${content})`,\n async: false,\n sideEffects: true,\n };\n case 'afterbegin':\n return {\n code: `${target}.insertAdjacentHTML('afterbegin', ${content})`,\n async: false,\n sideEffects: true,\n };\n case 'beforeend':\n return {\n code: `${target}.insertAdjacentHTML('beforeend', ${content})`,\n async: false,\n sideEffects: true,\n };\n case 'afterend':\n return {\n code: `${target}.insertAdjacentHTML('afterend', ${content})`,\n async: false,\n sideEffects: true,\n };\n case 'morph':\n ctx.requireHelper('morph');\n return { code: `_rt.morph(${target}, ${content})`, async: false, sideEffects: true };\n case 'innerHTML':\n default:\n return { code: `${target}.innerHTML = ${content}`, async: false, sideEffects: true };\n }\n }\n\n private resolveStrategy(node: CommandNode, args: ASTNode[]): string {\n // Check modifiers for strategy\n const mods = node.modifiers as Record<string, unknown> | undefined;\n if (mods?.strategy && typeof mods.strategy === 'string') return mods.strategy.toLowerCase();\n\n // Check first arg for strategy keyword\n if (args.length >= 2 && args[0].type === 'identifier') {\n const name = ((args[0] as IdentifierNode).value ?? '').toLowerCase();\n const strategies: Record<string, string> = {\n innerhtml: 'innerHTML',\n outerhtml: 'outerHTML',\n morph: 'morph',\n beforebegin: 'beforebegin',\n afterbegin: 'afterbegin',\n beforeend: 'beforeend',\n afterend: 'afterend',\n into: 'innerHTML',\n over: 'outerHTML',\n };\n if (strategies[name]) return strategies[name];\n }\n\n return 'innerHTML';\n }\n}\n\n/**\n * Morph command: morph target with content (intelligent DOM diffing)\n */\nclass MorphCodegen implements CommandCodegen {\n readonly command = 'morph';\n\n generate(node: CommandNode, ctx: CodegenContext): GeneratedExpression | null {\n const args = node.args ?? [];\n const roles = node.roles;\n\n const targetNode = roles?.destination ?? node.target ?? args[0];\n const contentNode = roles?.patient ?? args[args.length > 1 ? args.length - 1 : 0];\n\n if (!targetNode) return null;\n\n const target = ctx.generateExpression(targetNode);\n ctx.requireHelper('morph');\n\n if (!contentNode || contentNode === targetNode) {\n return { code: `_rt.morph(${target}, '')`, async: false, sideEffects: true };\n }\n\n const content = ctx.generateExpression(contentNode);\n return { code: `_rt.morph(${target}, ${content})`, async: false, sideEffects: true };\n }\n}\n\n// =============================================================================\n// ANIMATION COMMANDS (transition, measure, settle)\n// =============================================================================\n\n/**\n * Transition command: transition property to value [over duration] [with timing]\n *\n * Generates CSS transition setup + transitionend listener.\n */\nclass TransitionCodegen implements CommandCodegen {\n readonly command = 'transition';\n\n generate(node: CommandNode, ctx: CodegenContext): GeneratedExpression | null {\n const args = node.args ?? [];\n const roles = node.roles;\n const mods = node.modifiers as Record<string, ASTNode | unknown> | undefined;\n\n const propertyNode = roles?.patient ?? args[0];\n if (!propertyNode) return null;\n\n const property = ctx.generateExpression(propertyNode);\n\n // Get value from 'to' modifier or second arg\n const valueNode = (mods?.to as ASTNode | undefined) ?? args[1];\n if (!valueNode) return null;\n\n const value = ctx.generateExpression(valueNode);\n const target = node.target ? ctx.generateExpression(node.target) : '_ctx.me';\n\n // Duration from 'over' modifier\n const durationNode = mods?.over as ASTNode | undefined;\n const duration = durationNode ? ctx.generateExpression(durationNode) : '300';\n\n // Timing from 'with' modifier\n const timingNode = mods?.with as ASTNode | undefined;\n const timing = timingNode ? ctx.generateExpression(timingNode) : \"'ease'\";\n\n ctx.requireHelper('transition');\n return {\n code: `await _rt.transition(${target}, ${property}, ${value}, ${duration}, ${timing})`,\n async: true,\n sideEffects: true,\n };\n }\n}\n\n/**\n * Measure command: measure [target] [property]\n *\n * Measures element dimensions and stores in `it`/`result`.\n */\nclass MeasureCodegen implements CommandCodegen {\n readonly command = 'measure';\n\n generate(node: CommandNode, ctx: CodegenContext): GeneratedExpression | null {\n const args = node.args ?? [];\n const roles = node.roles;\n\n const target = node.target ? ctx.generateExpression(node.target) : '_ctx.me';\n\n // Determine property to measure\n const propNode = roles?.patient ?? args[0];\n if (!propNode) {\n // No property — measure all (getBoundingClientRect)\n return {\n code: `_ctx.it = _ctx.result = ${target}.getBoundingClientRect()`,\n async: false,\n sideEffects: true,\n };\n }\n\n if (propNode.type === 'identifier') {\n const propName = (propNode as IdentifierNode).value ?? '';\n // Common measurement shortcuts\n const rectProps = ['width', 'height', 'top', 'left', 'right', 'bottom', 'x', 'y'];\n if (rectProps.includes(propName.toLowerCase())) {\n return {\n code: `_ctx.it = _ctx.result = ${target}.getBoundingClientRect().${propName.toLowerCase()}`,\n async: false,\n sideEffects: true,\n };\n }\n }\n\n const prop = ctx.generateExpression(propNode);\n ctx.requireHelper('measure');\n return {\n code: `_ctx.it = _ctx.result = _rt.measure(${target}, ${prop})`,\n async: false,\n sideEffects: true,\n };\n }\n}\n\n/**\n * Settle command: settle [target] [for timeout]\n *\n * Waits for CSS transitions/animations to complete.\n */\nclass SettleCodegen implements CommandCodegen {\n readonly command = 'settle';\n\n generate(node: CommandNode, ctx: CodegenContext): GeneratedExpression {\n const targetNode = commandTarget(node, 'arg');\n const target = targetNode ? ctx.generateExpression(targetNode) : '_ctx.me';\n const mods = node.modifiers as Record<string, ASTNode | unknown> | undefined;\n\n const timeoutNode = mods?.for as ASTNode | undefined;\n const timeout = timeoutNode ? ctx.generateExpression(timeoutNode) : '5000';\n\n ctx.requireHelper('settle');\n return {\n code: `await _rt.settle(${target}, ${timeout})`,\n async: true,\n sideEffects: true,\n };\n }\n}\n\n// =============================================================================\n// EXECUTION COMMANDS (tell, async)\n// =============================================================================\n\n/**\n * Tell command: tell target command [command ...]\n *\n * Executes body commands with `me` rebound to the target element.\n * In AOT, generates a scoped block.\n */\nclass TellCodegen implements CommandCodegen {\n readonly command = 'tell';\n\n generate(node: CommandNode, ctx: CodegenContext): GeneratedExpression | null {\n const args = node.args ?? [];\n const roles = node.roles;\n\n const targetNode = roles?.destination ?? args[0];\n if (!targetNode) return null;\n\n const target = ctx.generateExpression(targetNode);\n\n // Generate a scoped block that rebinds _ctx.me\n return {\n code: `{ const _prevMe = _ctx.me; _ctx.me = ${target}; _ctx.you = ${target};`,\n async: false,\n sideEffects: true,\n };\n }\n}\n\n/**\n * Async command: async command [command ...]\n *\n * Wraps body in a fire-and-forget async IIFE.\n */\nclass AsyncCodegen implements CommandCodegen {\n readonly command = 'async';\n\n generate(_node: CommandNode, _ctx: CodegenContext): GeneratedExpression {\n // The async command wraps its body in a fire-and-forget async IIFE.\n // The actual body commands are generated by the event handler codegen.\n // Here we just signal the start of the async block.\n return {\n code: `(async () => {`,\n async: false, // The outer handler doesn't await this\n sideEffects: true,\n };\n }\n}\n\n// =============================================================================\n// BEHAVIOR & TEMPLATE COMMANDS (install, render)\n// =============================================================================\n\n/**\n * Install command: install BehaviorName [(params)] [on target]\n *\n * Installs a named behavior on an element.\n */\nclass InstallCodegen implements CommandCodegen {\n readonly command = 'install';\n\n generate(node: CommandNode, ctx: CodegenContext): GeneratedExpression | null {\n const args = node.args ?? [];\n const roles = node.roles;\n\n const behaviorNode = roles?.patient ?? args[0];\n if (!behaviorNode) return null;\n\n const target = node.target ? ctx.generateExpression(node.target) : '_ctx.me';\n\n // Extract behavior name\n let behaviorName: string;\n if (behaviorNode.type === 'identifier') {\n behaviorName = (behaviorNode as IdentifierNode).value ?? '';\n } else if (behaviorNode.type === 'literal') {\n behaviorName = String((behaviorNode as LiteralNode).value);\n } else {\n behaviorName = ctx.generateExpression(behaviorNode);\n ctx.requireHelper('installBehavior');\n return {\n code: `_rt.installBehavior(${target}, ${behaviorName})`,\n async: false,\n sideEffects: true,\n };\n }\n\n ctx.requireHelper('installBehavior');\n\n // Check for parameters (second arg could be an object)\n const paramsNode = args.length > 1 ? args[1] : undefined;\n if (paramsNode && paramsNode.type === 'object') {\n const params = ctx.generateExpression(paramsNode);\n return {\n code: `_rt.installBehavior(${target}, '${sanitizeIdentifier(behaviorName)}', ${params})`,\n async: false,\n sideEffects: true,\n };\n }\n\n return {\n code: `_rt.installBehavior(${target}, '${sanitizeIdentifier(behaviorName)}')`,\n async: false,\n sideEffects: true,\n };\n }\n}\n\n/**\n * Render command: render template [with variables]\n *\n * Renders a template with variable interpolation.\n */\nclass RenderCodegen implements CommandCodegen {\n readonly command = 'render';\n\n generate(node: CommandNode, ctx: CodegenContext): GeneratedExpression | null {\n const args = node.args ?? [];\n const roles = node.roles;\n const mods = node.modifiers as Record<string, ASTNode | unknown> | undefined;\n\n const templateNode = roles?.patient ?? args[0];\n if (!templateNode) return null;\n\n const template = ctx.generateExpression(templateNode);\n const target = node.target ? ctx.generateExpression(node.target) : '_ctx.me';\n\n // Check for 'with' modifier or second arg for variables\n const varsNode = (mods?.with as ASTNode | undefined) ?? (args.length > 1 ? args[1] : undefined);\n\n ctx.requireHelper('render');\n\n if (varsNode) {\n const vars = ctx.generateExpression(varsNode);\n return {\n code: `${target}.innerHTML = _rt.render(${template}, ${vars})`,\n async: false,\n sideEffects: true,\n };\n }\n\n return {\n code: `${target}.innerHTML = _rt.render(${template}, {})`,\n async: false,\n sideEffects: true,\n };\n }\n}\n\n// =============================================================================\n// COMMAND REGISTRY\n// =============================================================================\n\n/**\n * Registry of command code generators.\n */\nexport const commandCodegens = new Map<string, CommandCodegen>([\n ['toggle', new ToggleCodegen()],\n ['add', new AddCodegen()],\n ['remove', new RemoveCodegen()],\n ['set', new SetCodegen()],\n ['put', new PutCodegen()],\n ['show', new ShowCodegen()],\n ['hide', new HideCodegen()],\n ['empty', new EmptyCodegen()],\n ['focus', new FocusCodegen()],\n ['blur', new BlurCodegen()],\n ['log', new LogCodegen()],\n ['wait', new WaitCodegen()],\n ['fetch', new FetchCodegen()],\n ['send', new SendCodegen()],\n ['trigger', new SendCodegen()], // Alias\n ['increment', new IncrementCodegen()],\n ['decrement', new DecrementCodegen()],\n ['halt', new HaltCodegen()],\n ['exit', new ExitCodegen()],\n ['return', new ReturnCodegen()],\n ['call', new CallCodegen()],\n ['scroll', new ScrollCodegen()],\n ['take', new TakeCodegen()],\n ['unless', new UnlessCodegen()],\n ['throw', new ThrowCodegen()],\n ['default', new DefaultCodegen()],\n ['go', new GoCodegen()],\n ['append', new AppendCodegen()],\n ['pick', new PickCodegen()],\n ['push-url', new PushUrlCodegen()],\n ['replace-url', new ReplaceUrlCodegen()],\n ['get', new GetCodegen()],\n ['break', new BreakCodegen()],\n ['continue', new ContinueCodegen()],\n ['beep', new BeepCodegen()],\n ['js', new JsCodegen()],\n ['copy', new CopyCodegen()],\n ['make', new MakeCodegen()],\n // Phase 1 additions\n ['swap', new SwapCodegen()],\n ['morph', new MorphCodegen()],\n ['transition', new TransitionCodegen()],\n ['measure', new MeasureCodegen()],\n ['settle', new SettleCodegen()],\n ['tell', new TellCodegen()],\n ['async', new AsyncCodegen()],\n ['install', new InstallCodegen()],\n ['render', new RenderCodegen()],\n]);\n\n/**\n * Generate code for a command.\n */\nexport function generateCommand(\n node: CommandNode,\n ctx: CodegenContext\n): GeneratedExpression | null {\n const codegen = commandCodegens.get(node.name);\n if (!codegen) {\n return null;\n }\n return codegen.generate(node, ctx);\n}\n\n// =============================================================================\n// UTILITY FUNCTIONS\n// =============================================================================\n\n/**\n * Parse a duration string like \"100ms\" or \"2s\" to milliseconds.\n */\nfunction parseDuration(duration: string): number | null {\n const match = /^(\\d+(?:\\.\\d+)?)\\s*(ms|s|m|h)?$/i.exec(duration.trim());\n if (!match) return null;\n\n const value = parseFloat(match[1]);\n const unit = (match[2] ?? 'ms').toLowerCase();\n\n switch (unit) {\n case 'ms':\n return value;\n case 's':\n return value * 1000;\n case 'm':\n return value * 60000;\n case 'h':\n return value * 3600000;\n default:\n return value;\n }\n}\n\nexport default commandCodegens;\n","/**\n * Event Handler Transforms\n *\n * Generates complete event handler code including event binding,\n * modifier handling, and cleanup.\n */\n\nimport type {\n ASTNode,\n EventHandlerNode,\n CommandNode,\n BatchedClassOpsNode,\n CodegenContext,\n GeneratedHandler,\n AnalysisResult,\n EventModifiers,\n IfNode,\n RepeatNode,\n ForEachNode,\n WhileNode,\n SequenceNode,\n} from '../types/aot-types.js';\nimport { sanitizeSelector } from './expression-transforms.js';\nimport {\n generateCommand,\n generateIf,\n generateRepeat,\n generateForEach,\n generateWhile,\n} from './command-transforms.js';\n\n// =============================================================================\n// EVENT HANDLER CODEGEN\n// =============================================================================\n\n/**\n * Code generator for event handlers.\n */\nexport class EventHandlerCodegen {\n private ctx: CodegenContext;\n private analysis: AnalysisResult;\n\n constructor(ctx: CodegenContext, analysis: AnalysisResult) {\n this.ctx = ctx;\n this.analysis = analysis;\n }\n\n /**\n * Generate complete code for an event handler.\n */\n generate(node: EventHandlerNode): GeneratedHandler {\n const eventName = node.event;\n const modifiers = node.modifiers ?? {};\n const body = node.body ?? [];\n\n // Generate the handler function body\n const bodyCode = this.generateBody(body);\n const isAsync = this.analysis.controlFlow.hasAsync;\n\n // Build event listener options\n const listenerOptions = this.buildListenerOptions(modifiers);\n\n // Generate modifier handling code\n const modifierCode = this.generateModifierCode(modifiers);\n\n // Generate the complete handler function\n const handlerCode = this.generateHandlerFunction(eventName, bodyCode, modifierCode, isAsync);\n\n // Generate binding code\n const bindingCode = this.generateBindingCode(eventName, modifiers, listenerOptions);\n\n // Generate cleanup code\n const cleanup = this.generateCleanupCode(eventName, modifiers);\n\n // Collect required imports\n const imports = this.collectImports();\n\n return {\n handlerCode,\n bindingCode,\n cleanup,\n async: isAsync,\n imports,\n };\n }\n\n // ===========================================================================\n // BODY GENERATION\n // ===========================================================================\n\n /**\n * Generate code for the handler body.\n */\n private generateBody(nodes: ASTNode[]): string {\n const statements: string[] = [];\n\n for (const node of nodes) {\n const code = this.generateNode(node);\n if (code) {\n statements.push(code);\n }\n }\n\n return statements.join('\\n');\n }\n\n /**\n * Generate code for a single AST node.\n */\n private generateNode(node: ASTNode): string | null {\n switch (node.type) {\n case 'command':\n return this.generateCommandCode(node as CommandNode);\n\n case 'if':\n return generateIf(node as IfNode, this.ctx, nodes => this.generateBody(nodes));\n\n case 'repeat':\n return generateRepeat(node as RepeatNode, this.ctx, nodes => this.generateBody(nodes));\n\n case 'foreach':\n return generateForEach(node as ForEachNode, this.ctx, nodes => this.generateBody(nodes));\n\n case 'while':\n return generateWhile(node as WhileNode, this.ctx, nodes => this.generateBody(nodes));\n\n case 'sequence':\n // A counted loop LoopUnrollingPass unrolled: its passes, in order. With\n // no case here the whole loop compiled to nothing.\n return this.generateBody((node as SequenceNode).commands);\n\n case 'event': {\n // Nested event node (from CommandSequence conversion) — inline its body\n const nested = node as EventHandlerNode;\n return this.generateBody(nested.body ?? []);\n }\n\n case 'batchedClassOps': {\n const batch = node as BatchedClassOpsNode;\n const lines: string[] = [];\n if (batch.adds.length > 0) {\n lines.push(`${batch.target}.classList.add(${batch.adds.map(c => `'${c}'`).join(', ')})`);\n }\n if (batch.removes.length > 0) {\n lines.push(\n `${batch.target}.classList.remove(${batch.removes.map(c => `'${c}'`).join(', ')})`\n );\n }\n for (const t of batch.toggles) {\n lines.push(`${batch.target}.classList.toggle('${t}')`);\n }\n return lines.join(';\\n');\n }\n\n default:\n // Unknown node type\n return null;\n }\n }\n\n /**\n * Generate code for a command.\n */\n private generateCommandCode(node: CommandNode): string | null {\n const result = generateCommand(node, this.ctx);\n if (!result) {\n return null;\n }\n return result.code;\n }\n\n // ===========================================================================\n // MODIFIER HANDLING\n // ===========================================================================\n\n /**\n * Build AddEventListenerOptions from modifiers.\n */\n private buildListenerOptions(modifiers: EventModifiers): AddEventListenerOptions {\n const options: AddEventListenerOptions = {};\n\n if (modifiers.once) {\n options.once = true;\n }\n if (modifiers.passive) {\n options.passive = true;\n }\n if (modifiers.capture) {\n options.capture = true;\n }\n\n return options;\n }\n\n /**\n * Generate code for event modifiers (prevent, stop).\n */\n private generateModifierCode(modifiers: EventModifiers): string {\n const code: string[] = [];\n\n if (modifiers.prevent) {\n code.push('_event.preventDefault();');\n }\n if (modifiers.stop) {\n code.push('_event.stopPropagation();');\n }\n\n return code.join('\\n');\n }\n\n // ===========================================================================\n // HANDLER FUNCTION GENERATION\n // ===========================================================================\n\n /**\n * Generate the complete handler function.\n */\n private generateHandlerFunction(\n _eventName: string,\n bodyCode: string,\n modifierCode: string,\n isAsync: boolean\n ): string {\n const asyncKeyword = isAsync ? 'async ' : '';\n const handlerId = this.ctx.handlerId;\n\n // Build context initialization\n const contextInit = `const _ctx = _rt.createContext(_event, this);`;\n\n // Combine modifier code and body\n const combinedBody = [modifierCode, bodyCode].filter(Boolean).join('\\n');\n\n // Wrap in try-catch for halt/exit handling\n const needsTryCatch = this.analysis.controlFlow.canThrow;\n\n let functionBody: string;\n\n if (needsTryCatch) {\n functionBody = `${contextInit}\n try {\n ${combinedBody}\n } catch (_e) {\n if (_e === _rt.HALT) {\n _event.preventDefault();\n return;\n }\n if (_e === _rt.EXIT) {\n return;\n }\n throw _e;\n }`;\n } else {\n functionBody = `${contextInit}\n ${combinedBody}`;\n }\n\n return `${asyncKeyword}function _handler_${handlerId}(_event) {\n ${functionBody}\n}`;\n }\n\n // ===========================================================================\n // BINDING CODE GENERATION\n // ===========================================================================\n\n /**\n * Generate code to bind the handler to an element.\n */\n private generateBindingCode(\n eventName: string,\n modifiers: EventModifiers,\n options: AddEventListenerOptions\n ): string {\n const handlerId = this.ctx.handlerId;\n const event = JSON.stringify(eventName);\n\n // Build handler reference (may be wrapped)\n let handler = `_handler_${handlerId}`;\n\n // Apply debounce wrapper\n if (modifiers.debounce) {\n this.ctx.requireHelper('debounce');\n handler = `_rt.debounce(${handler}, ${modifiers.debounce})`;\n }\n\n // Apply throttle wrapper\n if (modifiers.throttle) {\n this.ctx.requireHelper('throttle');\n handler = `_rt.throttle(${handler}, ${modifiers.throttle})`;\n }\n\n // Build options argument\n const optionsKeys = Object.keys(options).filter(k => (options as Record<string, unknown>)[k]);\n const optionsArg =\n optionsKeys.length > 0 ? `, { ${optionsKeys.map(k => `${k}: true`).join(', ')} }` : '';\n\n // Event delegation\n if (modifiers.from) {\n const delegateSelector = JSON.stringify(modifiers.from);\n this.ctx.requireHelper('delegate');\n return `_rt.delegate(_el, ${event}, ${delegateSelector}, ${handler}${optionsArg});`;\n }\n\n return `_el.addEventListener(${event}, ${handler}${optionsArg});`;\n }\n\n // ===========================================================================\n // CLEANUP CODE GENERATION\n // ===========================================================================\n\n /**\n * Generate cleanup code for removing the handler.\n */\n private generateCleanupCode(eventName: string, modifiers: EventModifiers): string | null {\n // No cleanup needed for once handlers\n if (modifiers.once) {\n return null;\n }\n\n const handlerId = this.ctx.handlerId;\n const event = JSON.stringify(eventName);\n const capture = modifiers.capture ? ', true' : '';\n\n return `_el.removeEventListener(${event}, _handler_${handlerId}${capture});`;\n }\n\n // ===========================================================================\n // IMPORTS COLLECTION\n // ===========================================================================\n\n /**\n * Collect required runtime imports.\n */\n private collectImports(): string[] {\n const imports = ['createContext'];\n\n // Add helpers from context\n for (const helper of this.ctx.requiredHelpers) {\n if (!imports.includes(helper)) {\n imports.push(helper);\n }\n }\n\n // Add helpers from analysis\n for (const helper of this.analysis.dependencies.runtimeHelpers) {\n if (!imports.includes(helper)) {\n imports.push(helper);\n }\n }\n\n return imports;\n }\n}\n\n// =============================================================================\n// CONVENIENCE FUNCTIONS\n// =============================================================================\n\n/**\n * Generate a complete event handler.\n */\nexport function generateEventHandler(\n node: EventHandlerNode,\n ctx: CodegenContext,\n analysis: AnalysisResult\n): GeneratedHandler {\n const codegen = new EventHandlerCodegen(ctx, analysis);\n return codegen.generate(node);\n}\n\n/**\n * Generate binding code for multiple handlers.\n */\nexport function generateBindings(\n handlers: Array<{\n selector: string;\n eventName: string;\n handlerId: string;\n options?: AddEventListenerOptions;\n }>\n): string {\n const bindings: string[] = [];\n\n for (const { selector, eventName, handlerId, options } of handlers) {\n const sanitized = sanitizeSelector(selector);\n const event = JSON.stringify(eventName);\n\n const optionsKeys = options\n ? Object.keys(options).filter(k => (options as Record<string, unknown>)[k])\n : [];\n const optionsArg =\n optionsKeys.length > 0 ? `, { ${optionsKeys.map(k => `${k}: true`).join(', ')} }` : '';\n\n bindings.push(\n `document.querySelectorAll('${sanitized}').forEach(_el => _el.addEventListener(${event}, _handler_${handlerId}${optionsArg}));`\n );\n }\n\n return bindings.join('\\n');\n}\n\n/**\n * Generate initialization code that runs when DOM is ready.\n */\nexport function generateInitialization(\n handlers: Array<{\n selector: string;\n eventName: string;\n handlerId: string;\n options?: AddEventListenerOptions;\n }>\n): string {\n const bindings = generateBindings(handlers);\n\n return `_rt.ready(() => {\n${bindings}\n});`;\n}\n\nexport default EventHandlerCodegen;\n","/**\n * AOT Compiler\n *\n * Main orchestrator for the Ahead-of-Time compilation process.\n * Coordinates extraction, parsing, analysis, optimization, and code generation.\n */\n\nimport type {\n ASTNode,\n ExtractedScript,\n CompileOptions,\n CompilationResult,\n BatchCompilationResult,\n CodegenContext,\n CodegenOptions,\n AnalysisResult,\n CompiledHandler,\n FallbackScript,\n EventHandlerNode,\n PreRenderResult,\n} from '../types/aot-types.js';\nimport { HTMLScanner, VueScanner, SvelteScanner, JSXScanner } from '../scanner/html-scanner.js';\nimport { Analyzer } from './analyzer.js';\nimport { OptimizationPipeline } from '../optimizations/index.js';\nimport { preRenderInitBlock } from '../optimizations/init-prerender.js';\nimport { ExpressionCodegen } from '../transforms/expression-transforms.js';\nimport { EventHandlerCodegen } from '../transforms/event-transforms.js';\nimport {\n isExplicitSyntax,\n parseExplicit,\n fromProtocolJSON,\n semanticNodeToRuntimeAST,\n} from '@lokascript/framework';\n\n// =============================================================================\n// DEFAULT OPTIONS\n// =============================================================================\n\nconst DEFAULT_COMPILE_OPTIONS: Required<CompileOptions> = {\n language: 'en',\n confidenceThreshold: 0.7,\n debug: false,\n codegen: {\n target: 'es2020',\n mode: 'esm',\n minify: false,\n sourceMaps: true,\n runtimeImport: '@hyperfixi/aot-compiler/runtime',\n preserveComments: false,\n debugMode: false,\n },\n optimizationLevel: 2,\n};\n\nconst DEFAULT_CODEGEN_OPTIONS: CodegenOptions = {\n target: 'es2020',\n mode: 'esm',\n minify: false,\n sourceMaps: true,\n runtimeImport: '@hyperfixi/aot-compiler/runtime',\n preserveComments: false,\n debugMode: false,\n};\n\n// =============================================================================\n// PARSER INTERFACE\n// =============================================================================\n\n/**\n * Parser interface for parsing hyperscript.\n * Can be backed by traditional or semantic parser.\n */\ninterface Parser {\n parse(code: string, language?: string): ASTNode;\n}\n\n/**\n * Optional semantic parser integration.\n */\ninterface SemanticParser {\n analyze(\n code: string,\n language: string\n ): { node?: unknown; confidence: number; errors?: string[] };\n buildAST(node: unknown): { ast: ASTNode; warnings: string[] };\n supportsLanguage(language: string): boolean;\n}\n\n// =============================================================================\n// AOT COMPILER CLASS\n// =============================================================================\n\n/**\n * Main AOT compiler class.\n */\nexport class AOTCompiler {\n private parser: Parser | null = null;\n private semanticParser: SemanticParser | null = null;\n private analyzer = new Analyzer();\n private optimizer = new OptimizationPipeline();\n\n private usedIds = new Set<string>();\n\n /**\n * Set the traditional parser instance.\n */\n setParser(parser: Parser): void {\n this.parser = parser;\n }\n\n /**\n * Set the semantic parser for multilingual support.\n */\n setSemanticParser(parser: SemanticParser): void {\n this.semanticParser = parser;\n }\n\n /**\n * Reset compiler state between compilations.\n */\n reset(): void {\n this.usedIds.clear();\n }\n\n // ===========================================================================\n // EXTRACTION\n // ===========================================================================\n\n /**\n * Extract hyperscript from source code.\n */\n extract(source: string, filename: string): ExtractedScript[] {\n const scanner = this.createScanner(filename);\n return scanner.extract(source, filename);\n }\n\n /**\n * Create appropriate scanner for file type.\n */\n private createScanner(filename: string): HTMLScanner | JSXScanner {\n if (filename.endsWith('.vue')) {\n return new VueScanner();\n }\n if (filename.endsWith('.svelte')) {\n return new SvelteScanner();\n }\n if (filename.match(/\\.(jsx|tsx)$/)) {\n return new JSXScanner();\n }\n return new HTMLScanner();\n }\n\n // ===========================================================================\n // PARSING\n // ===========================================================================\n\n /**\n * Parse a hyperscript string to AST.\n * Supports natural language, explicit bracket syntax, and JSON input.\n */\n parse(code: string, options: CompileOptions = {}): ASTNode | null {\n const { language = 'en', confidenceThreshold = 0.7, debug = false } = options;\n\n let ast: ASTNode | null = null;\n\n // Try explicit bracket syntax (language-agnostic, no parsers needed)\n if (isExplicitSyntax(code)) {\n try {\n const node = parseExplicit(code);\n ast = semanticNodeToRuntimeAST(node) as ASTNode;\n if (debug) {\n console.log(`[aot] Parsed explicit syntax: \"${code}\"`);\n }\n } catch (error) {\n if (debug) {\n console.log(`[aot] Explicit parse error for \"${code}\":`, error);\n }\n }\n if (ast) return this.ensureEventHandler(ast);\n }\n\n // Try JSON input\n if (this.looksLikeJSON(code)) {\n try {\n const json = JSON.parse(code.trim());\n const node = fromProtocolJSON(json);\n ast = semanticNodeToRuntimeAST(node) as ASTNode;\n if (debug) {\n console.log(`[aot] Parsed JSON input: \"${code.slice(0, 80)}...\"`);\n }\n } catch (error) {\n if (debug) {\n console.log(`[aot] JSON parse error for \"${code.slice(0, 80)}\":`, error);\n }\n }\n if (ast) return this.ensureEventHandler(ast);\n }\n\n // Try semantic parser for non-English\n if (language !== 'en' && this.semanticParser?.supportsLanguage(language)) {\n const result = this.semanticParser.analyze(code, language);\n\n if (result.node && result.confidence >= confidenceThreshold) {\n const { ast: semanticAst, warnings } = this.semanticParser.buildAST(result.node);\n\n if (debug && warnings.length > 0) {\n console.log(`[aot] Semantic warnings for \"${code}\":`, warnings);\n }\n\n ast = semanticAst;\n } else if (debug) {\n console.log(\n `[aot] Semantic parse failed for \"${code}\": ${result.errors?.join(', ') || 'low confidence'}`\n );\n }\n }\n\n // Fall back to traditional parser\n if (!ast && this.parser) {\n try {\n ast = this.parser.parse(code, language);\n } catch (error) {\n if (debug) {\n console.log(`[aot] Parse error for \"${code}\":`, error);\n }\n }\n }\n\n // No parser available - create a simple AST wrapper\n if (!ast) {\n ast = this.createSimpleAST(code);\n }\n\n return this.ensureEventHandler(ast);\n }\n\n /**\n * Create a simple AST from code (for testing without full parser).\n */\n private createSimpleAST(code: string): ASTNode | null {\n // Try to detect basic patterns\n const eventMatch = /^on\\s+(\\w+)(?:\\.(\\w+))?\\s+(.+)$/i.exec(code.trim());\n\n if (eventMatch) {\n const [, eventName, modifier, body] = eventMatch;\n return {\n type: 'event',\n event: eventName,\n modifiers: modifier ? { [modifier]: true } : {},\n body: [this.parseSimpleCommand(body)].filter(Boolean),\n } as EventHandlerNode;\n }\n\n // Try as simple command\n const cmd = this.parseSimpleCommand(code);\n if (cmd) {\n return {\n type: 'event',\n event: 'click',\n body: [cmd],\n } as EventHandlerNode;\n }\n\n return null;\n }\n\n /**\n * Parse a simple command (for testing).\n */\n private parseSimpleCommand(code: string): ASTNode | null {\n const trimmed = code.trim();\n\n // toggle .class\n const toggleMatch = /^toggle\\s+\\.([a-zA-Z_][a-zA-Z0-9_-]*)$/i.exec(trimmed);\n if (toggleMatch) {\n return {\n type: 'command',\n name: 'toggle',\n args: [{ type: 'selector', value: '.' + toggleMatch[1] }],\n };\n }\n\n // add .class\n const addMatch = /^add\\s+\\.([a-zA-Z_][a-zA-Z0-9_-]*)$/i.exec(trimmed);\n if (addMatch) {\n return {\n type: 'command',\n name: 'add',\n args: [{ type: 'selector', value: '.' + addMatch[1] }],\n };\n }\n\n // remove .class\n const removeMatch = /^remove\\s+\\.([a-zA-Z_][a-zA-Z0-9_-]*)$/i.exec(trimmed);\n if (removeMatch) {\n return {\n type: 'command',\n name: 'remove',\n args: [{ type: 'selector', value: '.' + removeMatch[1] }],\n };\n }\n\n // show/hide/focus/blur\n if (/^show$/i.test(trimmed)) {\n return { type: 'command', name: 'show', args: [] };\n }\n if (/^hide$/i.test(trimmed)) {\n return { type: 'command', name: 'hide', args: [] };\n }\n if (/^focus$/i.test(trimmed)) {\n return { type: 'command', name: 'focus', args: [] };\n }\n if (/^blur$/i.test(trimmed)) {\n return { type: 'command', name: 'blur', args: [] };\n }\n\n // set :var to value\n const setMatch = /^set\\s+:(\\w+)\\s+to\\s+(.+)$/i.exec(trimmed);\n if (setMatch) {\n const [, varName, valueStr] = setMatch;\n return {\n type: 'command',\n name: 'set',\n args: [{ type: 'variable', name: ':' + varName, scope: 'local' }],\n modifiers: { to: this.parseSimpleValue(valueStr) },\n };\n }\n\n // increment/decrement :var\n const incrMatch = /^(increment|decrement)\\s+:(\\w+)$/i.exec(trimmed);\n if (incrMatch) {\n const [, cmd, varName] = incrMatch;\n return {\n type: 'command',\n name: cmd.toLowerCase(),\n args: [{ type: 'variable', name: ':' + varName, scope: 'local' }],\n };\n }\n\n // wait Nms / wait Ns\n const waitMatch = /^wait\\s+(\\d+(?:\\.\\d+)?)(ms|s)$/i.exec(trimmed);\n if (waitMatch) {\n const [, value, unit] = waitMatch;\n const ms = unit.toLowerCase() === 's' ? parseFloat(value) * 1000 : parseFloat(value);\n return {\n type: 'command',\n name: 'wait',\n args: [{ type: 'literal', value: ms }],\n };\n }\n\n // log \"string\" or log value\n const logMatch = /^log\\s+(.+)$/i.exec(trimmed);\n if (logMatch) {\n return {\n type: 'command',\n name: 'log',\n args: [this.parseSimpleValue(logMatch[1])],\n };\n }\n\n // send \"event\" [to target]\n const sendMatch = /^send\\s+\"([^\"]+)\"(?:\\s+to\\s+(\\w+))?$/i.exec(trimmed);\n if (sendMatch) {\n const [, eventName, target] = sendMatch;\n const node: ASTNode = {\n type: 'command',\n name: 'send',\n args: [{ type: 'literal', value: eventName }],\n };\n if (target) {\n (node as Record<string, unknown>).target = { type: 'identifier', value: target };\n }\n return node;\n }\n\n // fetch url [as json/text/html]\n const fetchMatch = /^fetch\\s+(\\S+)(?:\\s+as\\s+(\\w+))?$/i.exec(trimmed);\n if (fetchMatch) {\n const [, url, format] = fetchMatch;\n const node: ASTNode = {\n type: 'command',\n name: 'fetch',\n args: [{ type: 'literal', value: url }],\n };\n if (format) {\n (node as Record<string, unknown>).modifiers = { as: format };\n }\n return node;\n }\n\n // put value into target\n const putMatch = /^put\\s+\"([^\"]+)\"\\s+(into|before|after)\\s+(\\S+)$/i.exec(trimmed);\n if (putMatch) {\n const [, content, position, target] = putMatch;\n return {\n type: 'command',\n name: 'put',\n args: [{ type: 'literal', value: content }],\n modifiers: { position, [position]: this.parseSimpleValue(target) },\n };\n }\n\n return null;\n }\n\n /**\n * Parse a simple value string to an AST node.\n */\n private parseSimpleValue(valueStr: string): ASTNode {\n const trimmed = valueStr.trim();\n\n // Quoted string\n const strMatch = /^\"([^\"]*)\"$/.exec(trimmed) ?? /^'([^']*)'$/.exec(trimmed);\n if (strMatch) {\n return { type: 'literal', value: strMatch[1] };\n }\n\n // Number\n if (/^-?\\d+(\\.\\d+)?$/.test(trimmed)) {\n return { type: 'literal', value: parseFloat(trimmed) };\n }\n\n // Boolean\n if (trimmed === 'true') return { type: 'literal', value: true };\n if (trimmed === 'false') return { type: 'literal', value: false };\n\n // Selector (#id or .class)\n if (/^[#.][a-zA-Z_]/.test(trimmed)) {\n return { type: 'selector', value: trimmed };\n }\n\n // Local variable\n if (trimmed.startsWith(':')) {\n return { type: 'variable', name: trimmed, scope: 'local' };\n }\n\n // Identifier\n return { type: 'identifier', value: trimmed };\n }\n\n // ===========================================================================\n // EXPLICIT / JSON INPUT HELPERS\n // ===========================================================================\n\n /**\n * Check if input looks like JSON (LLM JSON format).\n */\n private looksLikeJSON(code: string): boolean {\n const trimmed = code.trim();\n return trimmed.startsWith('{') && trimmed.includes('\"action\"');\n }\n\n /**\n * Ensure top-level node is always an event handler.\n * The codegen pipeline (EventHandlerCodegen) requires this.\n */\n private ensureEventHandler(ast: ASTNode | null): ASTNode | null {\n if (ast && ast.type !== 'event') {\n return {\n type: 'event',\n event: 'click',\n modifiers: {},\n body: [ast],\n } as EventHandlerNode;\n }\n return ast;\n }\n\n // ===========================================================================\n // ANALYSIS\n // ===========================================================================\n\n /**\n * Analyze an AST for optimization and code generation.\n */\n analyze(ast: ASTNode): AnalysisResult {\n return this.analyzer.analyze(ast);\n }\n\n // ===========================================================================\n // INIT PRE-RENDERING\n // ===========================================================================\n\n /**\n * Pre-render pure init block commands into an HTML template at build time.\n *\n * Analyzes init block commands for purity (static DOM writes with literal\n * values targeting #id selectors) and applies them directly to the HTML.\n * Impure commands are preserved for normal runtime execution.\n *\n * @param html - The HTML template string\n * @param initCommands - Parsed commands from an init block\n * @returns Modified HTML, remaining impure commands, and count of pre-rendered commands\n */\n preRenderInit(html: string, initCommands: ASTNode[]): PreRenderResult {\n return preRenderInitBlock(html, initCommands);\n }\n\n /**\n * Extract init blocks from HTML, pre-render pure commands, and return modified HTML.\n * This is a higher-level convenience that combines extraction, parsing, and pre-rendering.\n *\n * @param html - The HTML template string\n * @param options - Compile options (language, etc.)\n * @returns Modified HTML with pre-rendered init effects and compilation results\n */\n preRenderInitBlocks(\n html: string,\n options: CompileOptions = {}\n ): { html: string; preRenderedCount: number; remainingScripts: ExtractedScript[] } {\n const scripts = this.extract(html, 'template.html');\n let modifiedHtml = html;\n let totalPreRendered = 0;\n const remainingScripts: ExtractedScript[] = [];\n\n for (const script of scripts) {\n // Parse the script to AST\n const ast = this.parse(script.code, {\n ...options,\n language: script.language ?? options.language ?? 'en',\n });\n if (!ast) {\n remainingScripts.push(script);\n continue;\n }\n\n // Extract init block body (top-level event handler with 'init' event)\n const eventNode = ast as EventHandlerNode;\n if (eventNode.type === 'event' && eventNode.event === 'init' && eventNode.body) {\n const result = preRenderInitBlock(modifiedHtml, eventNode.body);\n modifiedHtml = result.html;\n totalPreRendered += result.preRenderedCount;\n\n // If there are remaining commands, keep a modified script\n if (result.remainingInitCommands.length > 0) {\n remainingScripts.push(script);\n }\n // If all commands were pre-rendered, the script is fully consumed\n } else {\n // Not an init block — keep as-is\n remainingScripts.push(script);\n }\n }\n\n return {\n html: modifiedHtml,\n preRenderedCount: totalPreRendered,\n remainingScripts,\n };\n }\n\n // ===========================================================================\n // COMPILATION\n // ===========================================================================\n\n /**\n * Compile a single hyperscript string to JavaScript.\n */\n compileScript(code: string, options: CompileOptions = {}): CompilationResult {\n const mergedOptions = { ...DEFAULT_COMPILE_OPTIONS, ...options };\n\n // Parse\n const ast = this.parse(code, mergedOptions);\n if (!ast) {\n return {\n success: false,\n errors: ['Failed to parse hyperscript'],\n warnings: [],\n metadata: {\n handlerId: '',\n parserUsed: 'traditional',\n commandsUsed: [],\n optimizationsApplied: [],\n needsRuntime: true,\n runtimeHelpers: [],\n },\n };\n }\n\n // Analyze\n const analysis = this.analyze(ast);\n\n // Optimize\n const optimized = this.optimizer.optimize(ast, analysis, mergedOptions.optimizationLevel ?? 2);\n\n // Generate handler ID\n const handlerId = this.generateHandlerId(ast, code);\n\n // Create codegen context\n const ctx = this.createCodegenContext(handlerId, analysis, mergedOptions);\n\n // Generate code\n const generated = this.generateCode(optimized, ctx, analysis);\n\n // Merge codegen-reported imports with context-required helpers\n const allHelpers = new Set([...ctx.requiredHelpers, ...generated.imports]);\n\n // Silent-failure detection: warn if event handler has body commands\n // but generated code has no actual command output\n if (optimized.type === 'event') {\n const eventNode = optimized as EventHandlerNode;\n const bodyLen = eventNode.body?.length ?? 0;\n if (bodyLen > 0 && generated.code) {\n const handlerMatch = /function\\s+_handler_\\w+\\(_event\\)\\s*\\{([\\s\\S]*)\\}\\s*$/.exec(\n generated.code\n );\n if (handlerMatch) {\n const bodyContent = handlerMatch[1]\n .replace(/const _ctx\\s*=\\s*[^;]*;/g, '')\n .replace(/const _el\\s*=\\s*[^;]*;/g, '')\n .trim();\n if (!bodyContent) {\n analysis.warnings.push(\n `Event handler body appears empty despite ${bodyLen} parsed command(s). ` +\n `This may indicate a code generation failure for: \"${code}\"`\n );\n }\n }\n }\n }\n\n return {\n success: true,\n code: generated.code,\n warnings: analysis.warnings,\n metadata: {\n handlerId,\n parserUsed: mergedOptions.language !== 'en' ? 'semantic' : 'traditional',\n language: mergedOptions.language,\n commandsUsed: Array.from(analysis.commandsUsed),\n optimizationsApplied: (optimized as { _optimizations?: string[] })._optimizations ?? [],\n needsRuntime: allHelpers.size > 0,\n runtimeHelpers: Array.from(allHelpers),\n },\n };\n }\n\n /**\n * Compile a pre-parsed AST to JavaScript.\n * Skips parsing entirely — accepts an interchange-format ASTNode directly.\n * Use this when the AST has already been produced by a semantic parser,\n * explicit syntax parser, or other external source.\n */\n compileAST(ast: ASTNode, options: CompileOptions = {}): CompilationResult {\n const mergedOptions = { ...DEFAULT_COMPILE_OPTIONS, ...options };\n\n // Normalize: ensure top-level node is an event handler\n let normalized = ast;\n if (normalized.type !== 'event') {\n normalized = {\n type: 'event',\n event: 'click',\n modifiers: {},\n body: [normalized],\n } as EventHandlerNode;\n }\n\n // Analyze\n const analysis = this.analyze(normalized);\n\n // Optimize\n const optimized = this.optimizer.optimize(\n normalized,\n analysis,\n mergedOptions.optimizationLevel ?? 2\n );\n\n // Generate handler ID (use JSON hash since we have no source string)\n const sourceHint = JSON.stringify(ast).slice(0, 200);\n const handlerId = this.generateHandlerId(optimized, sourceHint);\n\n // Create codegen context\n const ctx = this.createCodegenContext(handlerId, analysis, mergedOptions);\n\n // Generate code\n const generated = this.generateCode(optimized, ctx, analysis);\n\n // Merge helpers\n const allHelpers = new Set([...ctx.requiredHelpers, ...generated.imports]);\n\n // Silent-failure detection\n if (optimized.type === 'event') {\n const eventNode = optimized as EventHandlerNode;\n const bodyLen = eventNode.body?.length ?? 0;\n if (bodyLen > 0 && generated.code) {\n const handlerMatch = /function\\s+_handler_\\w+\\(_event\\)\\s*\\{([\\s\\S]*)\\}\\s*$/.exec(\n generated.code\n );\n if (handlerMatch) {\n const bodyContent = handlerMatch[1]\n .replace(/const _ctx\\s*=\\s*[^;]*;/g, '')\n .replace(/const _el\\s*=\\s*[^;]*;/g, '')\n .trim();\n if (!bodyContent) {\n analysis.warnings.push(\n `Event handler body appears empty despite ${bodyLen} parsed command(s). ` +\n `This may indicate a code generation failure for pre-parsed AST.`\n );\n }\n }\n }\n }\n\n return {\n success: true,\n code: generated.code,\n warnings: analysis.warnings,\n metadata: {\n handlerId,\n parserUsed: 'traditional', // pre-parsed, no parser involved\n language: mergedOptions.language,\n commandsUsed: Array.from(analysis.commandsUsed),\n optimizationsApplied: (optimized as { _optimizations?: string[] })._optimizations ?? [],\n needsRuntime: allHelpers.size > 0,\n runtimeHelpers: Array.from(allHelpers),\n },\n };\n }\n\n /**\n * Compile explicit bracket syntax or LLM JSON to JavaScript.\n * Uses the framework IR directly — no semantic or traditional parser needed.\n */\n compileExplicit(code: string, options: CompileOptions = {}): CompilationResult {\n try {\n const ast = isExplicitSyntax(code)\n ? (semanticNodeToRuntimeAST(parseExplicit(code)) as ASTNode)\n : (semanticNodeToRuntimeAST(fromProtocolJSON(JSON.parse(code.trim()))) as ASTNode);\n\n return this.compileAST(ast, options);\n } catch (error) {\n return {\n success: false,\n errors: [error instanceof Error ? error.message : String(error)],\n warnings: [],\n metadata: {\n handlerId: '',\n parserUsed: 'traditional',\n commandsUsed: [],\n optimizationsApplied: [],\n needsRuntime: false,\n runtimeHelpers: [],\n },\n };\n }\n }\n\n /**\n * Compile multiple extracted scripts.\n */\n compile(scripts: ExtractedScript[], options: CompileOptions = {}): BatchCompilationResult {\n const handlers: CompiledHandler[] = [];\n const fallbacks: FallbackScript[] = [];\n const allImports = new Set<string>();\n\n for (const script of scripts) {\n const scriptOptions = {\n ...options,\n language: script.language ?? options.language ?? 'en',\n };\n\n const result = this.compileScript(script.code, scriptOptions);\n\n if (result.success && result.code) {\n handlers.push({\n id: result.metadata.handlerId,\n source: script.code,\n events: this.extractEvents(result.code),\n code: result.code,\n binding: {\n elementId: script.elementId,\n elementSelector: script.elementSelector,\n },\n });\n\n for (const helper of result.metadata.runtimeHelpers) {\n allImports.add(helper);\n }\n } else {\n fallbacks.push({\n id: `fallback_${fallbacks.length}`,\n script: script.code,\n reason: result.errors?.join(', ') ?? 'Unknown error',\n location: script.location,\n });\n }\n }\n\n // Generate combined code\n const combinedCode = this.generateCombinedCode(handlers, Array.from(allImports), options);\n\n return {\n handlers,\n code: combinedCode,\n fallbacks,\n stats: {\n total: scripts.length,\n compiled: handlers.length,\n fallbacks: fallbacks.length,\n totalSize: combinedCode.length,\n runtimeSize: this.estimateRuntimeSize(allImports),\n },\n };\n }\n\n // ===========================================================================\n // CODE GENERATION\n // ===========================================================================\n\n /**\n * Generate JavaScript code from an optimized AST.\n */\n private generateCode(\n ast: ASTNode,\n ctx: CodegenContext,\n analysis: AnalysisResult\n ): { code: string; imports: string[] } {\n // Event handler\n if (ast.type === 'event') {\n const eventCodegen = new EventHandlerCodegen(ctx, analysis);\n const generated = eventCodegen.generate(ast as EventHandlerNode);\n return {\n code: generated.handlerCode,\n imports: generated.imports,\n };\n }\n\n // Command sequence or other\n const exprCodegen = new ExpressionCodegen(ctx);\n return {\n code: exprCodegen.generate(ast),\n imports: Array.from(ctx.requiredHelpers),\n };\n }\n\n /**\n * Generate combined code for multiple handlers.\n */\n private generateCombinedCode(\n handlers: CompiledHandler[],\n imports: string[],\n options: CompileOptions\n ): string {\n const codegenOptions = { ...DEFAULT_CODEGEN_OPTIONS, ...options.codegen };\n const lines: string[] = [];\n\n // Ensure 'ready' is always included (binding code requires it)\n const allImports = [...new Set([...imports, 'ready'])];\n\n // Import statement and runtime alias\n const importList = allImports.join(', ');\n if (codegenOptions.mode === 'iife') {\n lines.push('(function() {');\n lines.push(\"var _ls = typeof lokascriptRuntime !== 'undefined' ? lokascriptRuntime : {};\");\n lines.push('var _rt = { ' + allImports.map(i => `${i}: _ls.${i}`).join(', ') + ' };');\n } else {\n if (codegenOptions.mode === 'esm') {\n lines.push(`import { ${importList} } from '${codegenOptions.runtimeImport}';`);\n } else if (codegenOptions.mode === 'cjs') {\n lines.push(`const { ${importList} } = require('${codegenOptions.runtimeImport}');`);\n }\n lines.push('const _rt = { ' + allImports.map(i => `${i}: ${i}`).join(', ') + ' };');\n }\n lines.push('');\n\n // Handler functions\n for (const handler of handlers) {\n if (codegenOptions.preserveComments) {\n lines.push(`// Original: ${handler.source}`);\n }\n lines.push(handler.code);\n lines.push('');\n }\n\n // Binding code\n lines.push('// Bind handlers to elements');\n lines.push('_rt.ready(() => {');\n\n for (const handler of handlers) {\n const selector = handler.binding.elementId\n ? `#${handler.binding.elementId}`\n : (handler.binding.elementSelector ?? '[_]');\n\n for (const event of handler.events) {\n lines.push(` document.querySelectorAll('${selector}').forEach(_el => {`);\n lines.push(` _el.addEventListener('${event}', _handler_${handler.id});`);\n lines.push(' });');\n }\n }\n\n lines.push('});');\n\n // Close IIFE wrapper\n if (codegenOptions.mode === 'iife') {\n lines.push('})();');\n }\n\n return lines.join('\\n');\n }\n\n // ===========================================================================\n // HELPERS\n // ===========================================================================\n\n /**\n * Generate a unique handler ID.\n */\n private generateHandlerId(ast: ASTNode, code: string): string {\n // Get event name if available\n const event = (ast as EventHandlerNode).event ?? 'handler';\n\n // Get primary command\n const body = (ast as { body?: ASTNode[] }).body ?? [];\n const firstCmd = body[0] as { name?: string } | undefined;\n const command = firstCmd?.name ?? 'action';\n\n // Hash the code for uniqueness\n let hash = 5381;\n for (let i = 0; i < code.length; i++) {\n hash = ((hash << 5) + hash) ^ code.charCodeAt(i);\n }\n const hashStr = Math.abs(hash).toString(36).slice(0, 4);\n\n // Generate ID\n let id = `${event}_${command}_${hashStr}`;\n\n // Handle collisions\n let suffix = 0;\n while (this.usedIds.has(id)) {\n id = `${event}_${command}_${hashStr}${suffix++}`;\n }\n\n this.usedIds.add(id);\n return id;\n }\n\n /**\n * Create a codegen context.\n */\n private createCodegenContext(\n handlerId: string,\n analysis: AnalysisResult,\n options: CompileOptions\n ): CodegenContext {\n const requiredHelpers = new Set<string>();\n let idCounter = 0;\n\n const exprCodegenRef: { current: ExpressionCodegen | null } = { current: null };\n\n const ctx: CodegenContext = {\n handlerId,\n generateId: (prefix = '_id') => `${prefix}_${idCounter++}`,\n generateExpression: (node: ASTNode) => {\n if (!exprCodegenRef.current) {\n exprCodegenRef.current = new ExpressionCodegen(ctx);\n }\n return exprCodegenRef.current.generate(node);\n },\n implicitTarget: '_ctx.me',\n localVarDeclarations: '',\n // A selector is queried each time it is evaluated, as on both engines. The\n // cache named a variable nothing declared (`_sel__d1_0`: a handler naming\n // #d1 twice threw), and a declared one goes stale when the handler\n // replaces the element.\n canCacheSelector: () => false,\n getCachedSelector: (selector: string) => `document.querySelector('${selector}')`,\n requireHelper: (name: string) => {\n requiredHelpers.add(name);\n },\n requiredHelpers,\n analysis,\n options: { ...DEFAULT_CODEGEN_OPTIONS, ...options.codegen },\n };\n\n return ctx;\n }\n\n /**\n * Extract event names from generated code.\n */\n private extractEvents(code: string): string[] {\n const events: string[] = [];\n const match = /function\\s+_handler_\\w+\\s*\\(\\s*_event\\s*\\)/.exec(code);\n if (match) {\n // Default to click if we can't determine\n events.push('click');\n }\n return events.length > 0 ? events : ['click'];\n }\n\n /**\n * Estimate runtime size based on required helpers.\n */\n private estimateRuntimeSize(imports: Set<string>): number {\n // Rough estimates in bytes\n const helperSizes: Record<string, number> = {\n createContext: 200,\n HALT: 50,\n EXIT: 50,\n globals: 100,\n toggle: 150,\n toggleAttr: 100,\n addClass: 80,\n removeClass: 80,\n getProp: 120,\n setProp: 120,\n getValues: 180,\n contains: 150,\n matches: 50,\n debounce: 150,\n throttle: 150,\n wait: 80,\n send: 150,\n delegate: 200,\n fetchJSON: 150,\n fetchText: 150,\n fetchHTML: 180,\n ready: 100,\n };\n\n let total = 500; // Base runtime overhead\n for (const helper of imports) {\n total += helperSizes[helper] ?? 100;\n }\n return total;\n }\n}\n\n// =============================================================================\n// CONVENIENCE EXPORTS\n// =============================================================================\n\n/**\n * Create a new AOT compiler instance.\n */\nexport function createCompiler(): AOTCompiler {\n return new AOTCompiler();\n}\n\n/**\n * Compile hyperscript code to JavaScript (convenience function).\n */\nexport async function compileHyperscript(code: string, options?: CompileOptions): Promise<string> {\n const compiler = new AOTCompiler();\n const result = compiler.compileScript(code, options);\n\n if (!result.success) {\n throw new Error(result.errors?.join(', ') ?? 'Compilation failed');\n }\n\n return result.code ?? '';\n}\n\n/**\n * Create an AOT compiler with both core and semantic parsers wired up.\n * Dynamically imports @hyperfixi/core and @lokascript/semantic if available.\n */\nexport async function createMultilingualCompiler(): Promise<AOTCompiler> {\n const compiler = new AOTCompiler();\n\n try {\n const { createCoreParserAdapter } = await import('./core-parser-adapter.js');\n compiler.setParser(await createCoreParserAdapter());\n } catch {\n /* @hyperfixi/core not available */\n }\n\n try {\n const { createSemanticAdapter } = await import('./semantic-adapter.js');\n compiler.setSemanticParser(await createSemanticAdapter());\n } catch {\n /* @lokascript/semantic not available */\n }\n\n return compiler;\n}\n\nexport default AOTCompiler;\n","/**\n * @hyperfixi/aot-compiler\n *\n * Ahead-of-Time compiler for LokaScript/hyperscript.\n * Transforms hyperscript to optimized JavaScript at build time.\n *\n * @example\n * ```typescript\n * import { AOTCompiler, compileHyperscript } from '@hyperfixi/aot-compiler';\n *\n * // Simple usage\n * const js = await compileHyperscript('on click toggle .active');\n *\n * // Full compiler usage\n * const compiler = new AOTCompiler();\n * const scripts = compiler.extract(htmlSource, 'index.html');\n * const result = compiler.compile(scripts, { language: 'en' });\n * console.log(result.code);\n * ```\n */\n\n// =============================================================================\n// MAIN EXPORTS\n// =============================================================================\n\nexport {\n AOTCompiler,\n createCompiler,\n compileHyperscript,\n createMultilingualCompiler,\n} from './compiler/aot-compiler.js';\n\nexport { Analyzer, analyze } from './compiler/analyzer.js';\n\nexport { SemanticParserAdapter, createSemanticAdapter } from './compiler/semantic-adapter.js';\n\nexport { CoreParserAdapter, createCoreParserAdapter } from './compiler/core-parser-adapter.js';\n\nexport {\n OptimizationPipeline,\n ConstantFoldingPass,\n SelectorCachingPass,\n DeadCodeEliminationPass,\n LoopUnrollingPass,\n createOptimizer,\n optimize,\n} from './optimizations/index.js';\n\n// =============================================================================\n// SCANNER EXPORTS\n// =============================================================================\n\nexport {\n HTMLScanner,\n VueScanner,\n SvelteScanner,\n JSXScanner,\n scanFiles,\n createScanner,\n} from './scanner/html-scanner.js';\n\n// =============================================================================\n// TRANSFORM EXPORTS\n// =============================================================================\n\nexport {\n ExpressionCodegen,\n generateExpression,\n sanitizeClassName,\n sanitizeSelector,\n sanitizeIdentifier,\n} from './transforms/expression-transforms.js';\n\nexport {\n commandCodegens,\n generateCommand,\n generateIf,\n generateRepeat,\n generateForEach,\n generateWhile,\n} from './transforms/command-transforms.js';\n\nexport {\n EventHandlerCodegen,\n generateEventHandler,\n generateBindings,\n generateInitialization,\n} from './transforms/event-transforms.js';\n\n// =============================================================================\n// TYPE EXPORTS\n// =============================================================================\n\nexport type {\n // Source extraction\n SourceLocation,\n ExtractedScript,\n ScannerOptions,\n ScanResult,\n\n // AST types\n ASTNode,\n EventHandlerNode,\n CommandNode,\n LiteralNode,\n IdentifierNode,\n SelectorNode,\n VariableNode,\n BinaryExpressionNode,\n UnaryExpressionNode,\n MemberExpressionNode,\n PossessiveNode,\n CallExpressionNode,\n PositionalNode,\n IfNode,\n RepeatNode,\n ForEachNode,\n WhileNode,\n\n // Event modifiers\n EventModifiers,\n\n // Analysis\n VariableInfo,\n SelectorInfo,\n AnalysisResult,\n\n // Code generation\n CodegenOptions,\n GeneratedExpression,\n GeneratedHandler,\n GeneratedCode,\n CodegenContext,\n SourceMap,\n\n // Optimization\n OptimizationPass,\n OptimizedAST,\n\n // Compilation\n CompileOptions,\n ParseResult,\n ParseError,\n CompilationResult,\n BatchCompilationResult,\n CompiledHandler,\n FallbackScript,\n\n // Runtime\n ExecutionContext,\n CompiledBehavior,\n\n // CLI\n CLICompileOptions,\n CLIAnalyzeOptions,\n} from './types/aot-types.js';\n\n// =============================================================================\n// VERSION\n// =============================================================================\n\nexport const VERSION = '1.0.0';\n","/**\n * @lokascript/compilation-service\n *\n * Semantic compilation service for LokaScript.\n * Validates and compiles hyperscript from 24 languages, explicit syntax, or LLM JSON.\n * Generates behavior-level tests from semantic analysis.\n * Generates framework components (React, Vue, Svelte) from abstract operations.\n */\n\n// Main service\nexport { CompilationService } from './service.js';\n\n// Types\nexport type {\n CompileRequest,\n CompileResponse,\n ValidationResponse,\n TranslateRequest,\n TranslateResponse,\n TestRequest,\n TestResponse,\n GeneratedTestOutput,\n ComponentRequest,\n ComponentResponse,\n DiffRequest,\n DiffResponse,\n DiffInput,\n TriggerDiff,\n OperationDiff,\n OperationChangeKind,\n ServiceOptions,\n SemanticJSON,\n SemanticJSONValue,\n Diagnostic,\n InputFormat,\n} from './types.js';\n\n// Input utilities (for custom pipelines)\nexport { detectFormat } from './input/detect.js';\nexport { validateSemanticJSON, jsonToSemanticNode } from './input/json-schema.js';\n\n// Cache (for custom configurations)\nexport { SemanticCache, generateCacheKey } from './compile/cache.js';\n\n// Abstract operations (for custom renderers / Phase 3 codegen targets)\nexport type {\n AbstractOperation,\n TargetRef,\n BehaviorSpec,\n ToggleClassOp,\n AddClassOp,\n RemoveClassOp,\n SetContentOp,\n AppendContentOp,\n ShowOp,\n HideOp,\n SetVariableOp,\n IncrementOp,\n DecrementOp,\n NavigateOp,\n FetchOp,\n WaitOp,\n TriggerEventOp,\n FocusOp,\n BlurOp,\n LogOp,\n} from './operations/types.js';\nexport { extractOperations } from './operations/extract.js';\n\n// Diff engine (for custom pipelines)\nexport { diffBehaviors, canonicalizeOp } from './diff/diff.js';\n\n// Fidelity scoring (agent-era arc 4) — scorers live in @lokascript/semantic/fidelity\nexport { scoreNodes } from './scoring/score.js';\nexport type {\n ScoreRequest,\n ScoreResponse,\n FidelityScores,\n FidelityReport,\n} from './scoring/score.js';\n\n// Test renderers\nexport { PlaywrightRenderer } from './renderers/playwright.js';\nexport type { TestRenderer, TestRenderOptions, GeneratedTest } from './renderers/types.js';\n\n// Component renderers\nexport { ReactRenderer } from './renderers/react.js';\nexport { VueRenderer } from './renderers/vue.js';\nexport { SvelteRenderer } from './renderers/svelte.js';\nexport type {\n ComponentRenderer,\n ComponentRenderOptions,\n GeneratedComponent,\n} from './renderers/component-types.js';\n","/**\n * Semantic Diff Engine\n *\n * Compares two BehaviorSpecs at the abstract operation level.\n * Uses LCS (longest common subsequence) for operation-level diffing\n * and post-processes to detect reorderings.\n */\n\nimport type { AbstractOperation, BehaviorSpec } from '../operations/types.js';\nimport type { TriggerDiff, OperationDiff, OperationChangeKind } from './types.js';\n\n// =============================================================================\n// Public API\n// =============================================================================\n\nexport interface DiffResult {\n identical: boolean;\n trigger: TriggerDiff | null;\n operations: OperationDiff[];\n summary: string;\n}\n\n/**\n * Compare two BehaviorSpecs and produce a structured diff.\n */\nexport function diffBehaviors(a: BehaviorSpec, b: BehaviorSpec): DiffResult {\n const triggerDiff = diffTrigger(a, b);\n const opDiffs = diffOperations(a.operations, b.operations);\n\n const identical = triggerDiff === null && opDiffs.every(d => d.kind === 'unchanged');\n const summary = generateSummary(triggerDiff, opDiffs);\n\n return { identical, trigger: triggerDiff, operations: opDiffs, summary };\n}\n\n// =============================================================================\n// Trigger Comparison\n// =============================================================================\n\nfunction diffTrigger(a: BehaviorSpec, b: BehaviorSpec): TriggerDiff | null {\n const changes: string[] = [];\n\n if (a.trigger.event !== b.trigger.event) {\n changes.push(`event: ${a.trigger.event} → ${b.trigger.event}`);\n }\n\n // Compare modifiers\n const aModKeys = Object.keys(a.trigger.modifiers ?? {}).sort();\n const bModKeys = Object.keys(b.trigger.modifiers ?? {}).sort();\n const aMods = a.trigger.modifiers ?? {};\n const bMods = b.trigger.modifiers ?? {};\n\n for (const key of new Set([...aModKeys, ...bModKeys])) {\n const aVal = aMods[key];\n const bVal = bMods[key];\n if (aVal === undefined) {\n changes.push(`added modifier: ${key}`);\n } else if (bVal === undefined) {\n changes.push(`removed modifier: ${key}`);\n } else if (JSON.stringify(aVal) !== JSON.stringify(bVal)) {\n changes.push(`modifier ${key}: ${JSON.stringify(aVal)} → ${JSON.stringify(bVal)}`);\n }\n }\n\n if (changes.length === 0) return null;\n\n return {\n a: { event: a.trigger.event, modifiers: a.trigger.modifiers },\n b: { event: b.trigger.event, modifiers: b.trigger.modifiers },\n changes,\n };\n}\n\n// =============================================================================\n// Operation Comparison (LCS-based)\n// =============================================================================\n\nfunction diffOperations(a: AbstractOperation[], b: AbstractOperation[]): OperationDiff[] {\n const aKeys = a.map(canonicalizeOp);\n const bKeys = b.map(canonicalizeOp);\n\n // Build LCS table\n const lcs = computeLCS(aKeys, bKeys);\n\n // Walk the LCS to produce diffs\n const rawDiffs = buildDiffFromLCS(a, b, aKeys, bKeys, lcs);\n\n // Post-process: detect reorderings among added/removed pairs\n return detectReorderings(rawDiffs);\n}\n\n/**\n * Compute LCS length table.\n */\nfunction computeLCS(a: string[], b: string[]): number[][] {\n const m = a.length;\n const n = b.length;\n const dp: number[][] = Array.from({ length: m + 1 }, () => new Array(n + 1).fill(0));\n\n for (let i = 1; i <= m; i++) {\n for (let j = 1; j <= n; j++) {\n if (a[i - 1] === b[j - 1]) {\n dp[i][j] = dp[i - 1][j - 1] + 1;\n } else {\n dp[i][j] = Math.max(dp[i - 1][j], dp[i][j - 1]);\n }\n }\n }\n\n return dp;\n}\n\n/**\n * Walk the LCS table backwards to produce raw diffs.\n */\nfunction buildDiffFromLCS(\n a: AbstractOperation[],\n b: AbstractOperation[],\n aKeys: string[],\n bKeys: string[],\n dp: number[][]\n): OperationDiff[] {\n const diffs: OperationDiff[] = [];\n let i = a.length;\n let j = b.length;\n\n while (i > 0 || j > 0) {\n if (i > 0 && j > 0 && aKeys[i - 1] === bKeys[j - 1]) {\n // Match — unchanged\n diffs.push({\n kind: 'unchanged',\n index: { a: i - 1, b: j - 1 },\n a: a[i - 1],\n b: b[j - 1],\n });\n i--;\n j--;\n } else if (j > 0 && (i === 0 || dp[i][j - 1] >= dp[i - 1][j])) {\n // Added in b\n diffs.push({\n kind: 'added',\n index: { b: j - 1 },\n b: b[j - 1],\n });\n j--;\n } else {\n // Removed from a\n diffs.push({\n kind: 'removed',\n index: { a: i - 1 },\n a: a[i - 1],\n });\n i--;\n }\n }\n\n return diffs.reverse();\n}\n\n/**\n * Post-process raw diffs to detect reorderings and field-level changes.\n *\n * A reordering is when an operation appears in both sides but at different\n * positions (shows as removed+added pair with the same canonical key).\n *\n * A change is when an operation at the same position has the same op type\n * but different fields (shows as removed+added pair with the same op type).\n */\nfunction detectReorderings(diffs: OperationDiff[]): OperationDiff[] {\n const removed: OperationDiff[] = [];\n const added: OperationDiff[] = [];\n const result: OperationDiff[] = [];\n\n // Separate removed and added\n for (const d of diffs) {\n if (d.kind === 'removed') removed.push(d);\n else if (d.kind === 'added') added.push(d);\n else result.push(d);\n }\n\n // Match removed/added pairs\n const usedRemoved = new Set<number>();\n const usedAdded = new Set<number>();\n\n // First pass: exact matches (reorderings)\n for (let ri = 0; ri < removed.length; ri++) {\n if (usedRemoved.has(ri)) continue;\n const rKey = canonicalizeOp(removed[ri].a!);\n for (let ai = 0; ai < added.length; ai++) {\n if (usedAdded.has(ai)) continue;\n const aKey = canonicalizeOp(added[ai].b!);\n if (rKey === aKey) {\n usedRemoved.add(ri);\n usedAdded.add(ai);\n result.push({\n kind: 'reordered',\n index: { a: removed[ri].index.a, b: added[ai].index.b },\n a: removed[ri].a,\n b: added[ai].b,\n });\n break;\n }\n }\n }\n\n // Second pass: same op type → changed\n for (let ri = 0; ri < removed.length; ri++) {\n if (usedRemoved.has(ri)) continue;\n for (let ai = 0; ai < added.length; ai++) {\n if (usedAdded.has(ai)) continue;\n if (removed[ri].a!.op === added[ai].b!.op) {\n usedRemoved.add(ri);\n usedAdded.add(ai);\n result.push({\n kind: 'changed',\n index: { a: removed[ri].index.a, b: added[ai].index.b },\n a: removed[ri].a,\n b: added[ai].b,\n changes: describeChanges(removed[ri].a!, added[ai].b!),\n });\n break;\n }\n }\n }\n\n // Remaining unmatched\n for (let ri = 0; ri < removed.length; ri++) {\n if (!usedRemoved.has(ri)) result.push(removed[ri]);\n }\n for (let ai = 0; ai < added.length; ai++) {\n if (!usedAdded.has(ai)) result.push(added[ai]);\n }\n\n // Sort by position for stable output\n result.sort((x, y) => {\n const xPos = x.index.a ?? x.index.b ?? 0;\n const yPos = y.index.a ?? y.index.b ?? 0;\n return xPos - yPos;\n });\n\n return result;\n}\n\n// =============================================================================\n// Canonicalization\n// =============================================================================\n\n/**\n * Produce a deterministic string key for an AbstractOperation.\n * Two operations with the same key are semantically identical.\n */\nexport function canonicalizeOp(op: AbstractOperation): string {\n const parts: string[] = [op.op];\n\n switch (op.op) {\n case 'toggleClass':\n case 'addClass':\n case 'removeClass':\n parts.push(op.className, canonicalizeTarget(op.target));\n break;\n case 'setContent':\n parts.push(op.content, canonicalizeTarget(op.target), op.position);\n break;\n case 'appendContent':\n parts.push(op.content, canonicalizeTarget(op.target));\n break;\n case 'show':\n case 'hide':\n case 'focus':\n case 'blur':\n parts.push(canonicalizeTarget(op.target));\n break;\n case 'setVariable':\n parts.push(op.name, op.value, op.scope);\n break;\n case 'increment':\n case 'decrement':\n parts.push(canonicalizeTarget(op.target), String(op.amount));\n break;\n case 'navigate':\n parts.push(op.url);\n break;\n case 'historyBack':\n case 'historyForward':\n break;\n case 'fetch':\n parts.push(op.url, op.format, op.target ? canonicalizeTarget(op.target) : '');\n break;\n case 'wait':\n parts.push(String(op.durationMs));\n break;\n case 'triggerEvent':\n parts.push(op.eventName, canonicalizeTarget(op.target), op.detail ?? '');\n break;\n case 'log':\n parts.push(...op.values);\n break;\n }\n\n return parts.join('|');\n}\n\nfunction canonicalizeTarget(t: { kind: string; value?: string }): string {\n return t.kind === 'self' ? 'self' : `${t.kind}:${(t as { value?: string }).value ?? ''}`;\n}\n\n// =============================================================================\n// Change Description\n// =============================================================================\n\nfunction describeChanges(a: AbstractOperation, b: AbstractOperation): string[] {\n const changes: string[] = [];\n const aObj = a as unknown as Record<string, unknown>;\n const bObj = b as unknown as Record<string, unknown>;\n\n // Compare all fields except 'op'\n const allKeys = new Set([...Object.keys(aObj), ...Object.keys(bObj)]);\n for (const key of allKeys) {\n if (key === 'op') continue;\n const aVal = JSON.stringify(aObj[key]);\n const bVal = JSON.stringify(bObj[key]);\n if (aVal !== bVal) {\n changes.push(`${key}: ${formatValue(aObj[key])} → ${formatValue(bObj[key])}`);\n }\n }\n\n return changes;\n}\n\nfunction formatValue(v: unknown): string {\n if (v === undefined) return '(none)';\n if (typeof v === 'object' && v !== null) {\n const obj = v as Record<string, unknown>;\n if ('kind' in obj) return obj.kind === 'self' ? 'self' : `${obj.kind}:${obj.value ?? ''}`;\n return JSON.stringify(v);\n }\n return String(v);\n}\n\n// =============================================================================\n// Summary Generation\n// =============================================================================\n\nfunction generateSummary(trigger: TriggerDiff | null, opDiffs: OperationDiff[]): string {\n const parts: string[] = [];\n\n if (!trigger && opDiffs.every(d => d.kind === 'unchanged')) {\n return 'No semantic change';\n }\n\n if (trigger) {\n parts.push(`Trigger: ${trigger.changes.join(', ')}`);\n }\n\n const counts: Record<OperationChangeKind, number> = {\n added: 0,\n removed: 0,\n changed: 0,\n reordered: 0,\n unchanged: 0,\n };\n for (const d of opDiffs) counts[d.kind]++;\n\n const opParts: string[] = [];\n if (counts.added > 0) opParts.push(`${counts.added} added`);\n if (counts.removed > 0) opParts.push(`${counts.removed} removed`);\n if (counts.changed > 0) opParts.push(`${counts.changed} changed`);\n if (counts.reordered > 0) opParts.push(`${counts.reordered} reordered`);\n\n if (opParts.length > 0) {\n parts.push(`Operations: ${opParts.join(', ')}`);\n }\n\n return parts.join('. ');\n}\n","/**\n * Structural fidelity scoring — `scoreFidelity()` (agent-era arc 4).\n *\n * The scorer itself (`scoreNodes` and its report types) lives in\n * `@lokascript/semantic/fidelity` since arc 5 slice 2, so the language\n * server's translate-with-verification request and this service share ONE\n * implementation; this module re-exports it for API compatibility and adds\n * the service-level request/response shapes. See that module for signal\n * semantics; docs/FIDELITY.md for the methodology.\n */\n\nimport type { Diagnostic } from '../types.js';\nimport type { DiffInput } from '../diff/types.js';\nimport type { FidelityReport } from '@lokascript/semantic/fidelity';\n\nexport { scoreNodes } from '@lokascript/semantic/fidelity';\nexport type { FidelityReport, FidelityScores } from '@lokascript/semantic/fidelity';\n\n/** Score request — a candidate scored against a reference. Sides accept the\n * same input formats as diff/compile and may be in different languages. */\nexport interface ScoreRequest {\n reference: DiffInput;\n candidate: DiffInput;\n /** Minimum confidence for natural language parsing (default 0.7) */\n confidence?: number;\n}\n\nexport interface ScoreResponse extends Partial<FidelityReport> {\n /** Whether both sides parsed successfully. */\n ok: boolean;\n diagnostics: Diagnostic[];\n /**\n * False when the reference parse left tokens unconsumed (UNCONSUMED_INPUT):\n * the scores then compare only what parsed, and `faithful` is false.\n */\n referenceComplete?: boolean;\n /** The same, for the candidate. */\n candidateComplete?: boolean;\n}\n","/**\n * Input format detection.\n *\n * Determines whether input is natural language, explicit syntax, or LLM JSON.\n */\n\nimport type { InputFormat } from '../types.js';\n\n/**\n * Detect the input format from a string.\n */\nexport function detectFormat(input: string): InputFormat {\n const trimmed = input.trim();\n\n // Explicit syntax: [command role:value ...]\n if (trimmed.startsWith('[') && trimmed.endsWith(']')) {\n return 'explicit';\n }\n\n // LLM JSON: { \"action\": \"...\", ... }\n if (trimmed.startsWith('{')) {\n try {\n const parsed = JSON.parse(trimmed);\n if (parsed && typeof parsed === 'object' && typeof parsed.action === 'string') {\n return 'json';\n }\n } catch {\n // Not valid JSON — fall through to natural language\n }\n }\n\n return 'natural';\n}\n","/**\n * Input normalization.\n *\n * Converts any input format (natural language, explicit syntax, LLM JSON)\n * to a SemanticNode for downstream validation and compilation.\n */\n\nimport type { CompileRequest, NormalizeResult, SemanticJSON, Diagnostic } from '../types.js';\nimport { detectFormat } from './detect.js';\nimport { validateProtocolJSON, fromProtocolJSON } from '@lokascript/framework';\n\n// =============================================================================\n// Dynamic imports (resolved at service creation time)\n// =============================================================================\n\n/** Semantic package functions, injected by CompilationService.create() */\nexport interface SemanticFunctions {\n parseSemantic: (\n code: string,\n language: string\n ) => { node: unknown; confidence: number; error?: string };\n parseExplicit: (input: string) => unknown;\n isExplicitSyntax: (input: string) => boolean;\n}\n\nlet _semantic: SemanticFunctions | null = null;\n\n/** Initialize with semantic package functions. */\nexport function initNormalizer(semantic: SemanticFunctions): void {\n _semantic = semantic;\n}\n\n// =============================================================================\n// Normalization\n// =============================================================================\n\n/**\n * Normalize any input format to a SemanticNode.\n */\nexport function normalize(request: CompileRequest): NormalizeResult {\n if (!_semantic) {\n throw new Error('Normalizer not initialized. Call initNormalizer() first.');\n }\n\n // Determine which input format we're working with\n if (request.semantic) {\n return normalizeJSON(request.semantic);\n }\n\n const input = request.code ?? request.explicit;\n if (!input) {\n return {\n node: null,\n confidence: 0,\n format: 'natural',\n diagnostics: [\n {\n severity: 'error',\n code: 'NO_INPUT',\n message: 'No input provided. Supply one of: code, explicit, or semantic.',\n },\n ],\n };\n }\n\n const format = request.explicit ? 'explicit' : detectFormat(input);\n\n switch (format) {\n case 'explicit':\n return normalizeExplicit(input);\n case 'json':\n return normalizeJSON(JSON.parse(input.trim()) as SemanticJSON);\n case 'natural':\n return normalizeNatural(input, request.language ?? 'en');\n }\n}\n\n// =============================================================================\n// Format-Specific Normalization\n// =============================================================================\n\n/** Shape of the diagnostics the semantic parser attaches to its nodes. */\ninterface NodeDiagnostic {\n severity?: string;\n code?: string;\n message?: string;\n}\n\n/**\n * Lift warning/error diagnostics off the parsed node into the response.\n *\n * The semantic parser deliberately parses leniently — it records problems as\n * node-level diagnostics instead of failing (e.g. `unconsumed-input` when\n * `add .x #el` drops `#el` and the destination silently defaults to `me`,\n * hoisted to the top node from any depth). Until 2026-08 this function never\n * read them, so `validate()` reported ok with ZERO diagnostics for parses the\n * parser itself had flagged — the agent-bench probe measured 18/37 plausible\n * phrasings misbehaving with nothing for the validate/repair loop to react to\n * (arc 3b, AGENT_ERA_ROADMAP.md). `info` entries stay behind: they are match\n * commentary (\"pattern matched: …\"), not actionable signal.\n */\nfunction liftNodeDiagnostics(node: unknown, diagnostics: Diagnostic[]): void {\n const nodeDiags = (node as { diagnostics?: NodeDiagnostic[] }).diagnostics;\n if (!Array.isArray(nodeDiags)) return;\n for (const d of nodeDiags) {\n if (d.severity !== 'warning' && d.severity !== 'error') continue;\n const diag: Diagnostic = {\n severity: d.severity,\n // Parser codes are kebab-case; this surface uses UPPER_SNAKE (PARSE_ERROR &c).\n code: (d.code ?? 'PARSE_DIAGNOSTIC').replace(/-/g, '_').toUpperCase(),\n message: d.message ?? 'parser diagnostic',\n };\n if (d.code === 'unconsumed-input') {\n diag.suggestion =\n 'Dropped tokens were parsed but bound to no role — usually a missing role ' +\n \"marker (e.g. 'to'/'on'/'from' before the target), so the role fell back to \" +\n 'a default like `me`. Compare the returned roles against your intent.';\n }\n diagnostics.push(diag);\n }\n}\n\nfunction normalizeNatural(code: string, language: string): NormalizeResult {\n const diagnostics: Diagnostic[] = [];\n\n try {\n const result = _semantic!.parseSemantic(code, language);\n\n if (result.error) {\n diagnostics.push({\n severity: 'error',\n code: 'PARSE_ERROR',\n message: result.error,\n });\n }\n\n if (!result.node) {\n diagnostics.push({\n severity: 'error',\n code: 'PARSE_FAILED',\n message: `Failed to parse \"${code}\" as ${language} hyperscript.`,\n suggestion: 'Check syntax or try explicit syntax: [command role:value ...]',\n });\n return { node: null, confidence: result.confidence, format: 'natural', diagnostics };\n }\n\n liftNodeDiagnostics(result.node, diagnostics);\n\n return {\n node: result.node,\n confidence: result.confidence,\n format: 'natural',\n diagnostics,\n };\n } catch (error) {\n diagnostics.push({\n severity: 'error',\n code: 'PARSE_EXCEPTION',\n message: error instanceof Error ? error.message : String(error),\n });\n return { node: null, confidence: 0, format: 'natural', diagnostics };\n }\n}\n\nfunction normalizeExplicit(input: string): NormalizeResult {\n const diagnostics: Diagnostic[] = [];\n\n try {\n const node = _semantic!.parseExplicit(input);\n return {\n node,\n confidence: 1.0,\n format: 'explicit',\n diagnostics,\n };\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n const hasRoleGuidance =\n message.includes('Valid roles') || message.includes('Missing required role');\n diagnostics.push({\n severity: 'error',\n code: 'EXPLICIT_PARSE_ERROR',\n message,\n suggestion: hasRoleGuidance\n ? undefined\n : 'Use format: [command role:value ...] e.g. [toggle patient:.active]. Use get_command_docs(command) to see valid roles.',\n });\n return { node: null, confidence: 0, format: 'explicit', diagnostics };\n }\n}\n\nfunction normalizeJSON(input: SemanticJSON): NormalizeResult {\n // Validate structure (unified protocol JSON validator accepts optional kind + trigger)\n const validationErrors = validateProtocolJSON(input);\n if (validationErrors.some(d => d.severity === 'error')) {\n return {\n node: null,\n confidence: 0,\n format: 'json',\n diagnostics: validationErrors,\n };\n }\n\n // Convert to SemanticNode (unified path accepts optional kind + trigger)\n const node = fromProtocolJSON(input as any);\n return {\n node,\n confidence: 1.0,\n format: 'json',\n diagnostics: validationErrors, // May contain warnings\n };\n}\n","/**\n * Inert-shape heuristics — Gate 4 of the validation pipeline (arc 3b).\n *\n * A parse can consume every token at confidence 1.0 and still be provably\n * useless at runtime: the agent-bench probe found five plausible phrasings\n * that do exactly that (silent no-op, or effect on the wrong element) with\n * nothing in the response for the validate/repair loop to react to. Each left\n * a distinctive fingerprint in the IR; this gate matches those fingerprints\n * and emits WARNINGS — never errors, and never a confidence change, so parse\n * outcomes are byte-identical and only the diagnostics array grows (the same\n * contract as the arc-3b unconsumed-input propagation).\n *\n * Checks are deliberately narrow — a fingerprint each, not a general theory of\n * inertness — because a false warning teaches an agent to distrust warnings.\n * The known-remaining silent phrasings these do NOT cover are valid code with\n * different intent (e.g. `add .hidden to #menu`), which no compile-time check\n * can catch; that is IR-vs-intent review's job.\n */\n\nimport type { Diagnostic } from '../types.js';\n\n/** Quantifier words that read as \"the matched set\" in English but parse as a\n * bare identifier, making `all.todo` an undefined property access at runtime.\n * Spaced (`all .todo`), the target is the identifier `all` alone and the\n * selector is left unread (both engines read a spaced `.todo` as a class). */\nconst QUANTIFIER = /^(all|every|each)\\.(\\S+)$/;\nconst BARE_QUANTIFIER = /^(all|every|each)$/;\n\n/** Predicate words that, mis-tokenized as class selectors inside a condition\n * (`#box .has class .danger`), silently make the condition falsy. The pattern\n * requires the word to stand alone — real utility classes like `.is-active`\n * do not match. */\nconst PREDICATE_AS_CLASS = /(^|\\s)\\.(has|is|contains|matches|includes)(\\s|$)/;\n\ninterface RoleValueLike {\n type?: string;\n value?: unknown;\n raw?: string;\n /** property-path values carry object + property instead of value. */\n property?: string;\n}\n\ninterface NodeLike {\n action?: string;\n roles?: ReadonlyMap<string, unknown>;\n body?: unknown[];\n}\n\nfunction valueString(v: RoleValueLike): string {\n return String(v.value ?? v.raw ?? '');\n}\n\n/**\n * Walk a SemanticNode (recursing into command bodies) and return warnings for\n * shapes that are known to execute as no-ops or mis-bindings.\n */\nexport function checkInertShapes(node: unknown): Diagnostic[] {\n const out: Diagnostic[] = [];\n walk(node, out);\n return out;\n}\n\nfunction walk(node: unknown, out: Diagnostic[]): void {\n if (!node || typeof node !== 'object') return;\n const n = node as NodeLike;\n\n if (n.roles && typeof n.roles.entries === 'function') {\n for (const [role, raw] of n.roles.entries()) {\n const v = (raw ?? {}) as RoleValueLike;\n const s = valueString(v);\n\n // `add .done to all .todo` → destination expression `all.todo`:\n // identifier `all` is undefined at runtime, so the effect lands on the\n // default target (usually `me`) or nowhere.\n const q = v.type === 'expression' ? QUANTIFIER.exec(s) : null;\n if (q && (role === 'destination' || role === 'source')) {\n out.push({\n severity: 'warning',\n code: 'INERT_QUANTIFIER_TARGET',\n message: `${role} parsed as property access \"${s}\" — \"${q[1]}\" is an undefined identifier at runtime, so this ${role} will not resolve.`,\n suggestion: `Selectors already address every match: write the bare selector (e.g. \".${q[2]}\") without \"${q[1]}\".`,\n });\n continue;\n }\n if (\n v.type === 'expression' &&\n BARE_QUANTIFIER.test(s) &&\n (role === 'destination' || role === 'source')\n ) {\n out.push({\n severity: 'warning',\n code: 'INERT_QUANTIFIER_TARGET',\n message: `${role} parsed as the identifier \"${s}\", which is undefined at runtime, so this ${role} will not resolve; the selector after it is not read.`,\n suggestion: `Selectors already address every match: write the selector alone, without \"${s}\".`,\n });\n continue;\n }\n\n // `if #box has class .danger` → condition `#box .has class .danger`:\n // the predicate word became a class selector, the condition evaluates\n // falsy, and the body silently never runs.\n if (role === 'condition' && v.type === 'expression' && PREDICATE_AS_CLASS.test(s)) {\n const word = PREDICATE_AS_CLASS.exec(s)?.[2];\n out.push({\n severity: 'warning',\n code: 'HALF_PARSED_CONDITION',\n message: `condition parsed \".${word}\" as a class selector (full condition: \"${s}\") — it will evaluate falsy and the body will never run.`,\n suggestion: 'For class tests use `matches`: `if #box matches .danger`.',\n });\n continue;\n }\n\n // `add .modal-open to <body/>` → selector \"<body/>\": query-literal\n // syntax is the traditional parser's; on this path it reaches\n // querySelector verbatim, which throws (swallowed) — a silent no-op.\n if (v.type === 'selector' && s.startsWith('<')) {\n out.push({\n severity: 'warning',\n code: 'UNSUPPORTED_QUERY_LITERAL',\n message: `${role} selector \"${s}\" uses query-literal syntax, which this parser does not support — at runtime it is an invalid CSS selector and matches nothing.`,\n suggestion: `Use a plain CSS selector instead (e.g. \"${s.replace(/^<|\\/?>$/g, '')}\").`,\n });\n continue;\n }\n\n // `set the text of #output to \"…\"` → property-path `#output.text`:\n // `.text` is not a DOM-visible property on ordinary elements, so the\n // write is an invisible expando.\n if (n.action === 'set' && v.type === 'property-path' && v.property === 'text') {\n out.push({\n severity: 'warning',\n code: 'INERT_PROPERTY_WRITE',\n message: `set targets property \"text\" — on most elements this is not a DOM property, so the write usually changes nothing visible.`,\n suggestion:\n 'Use `textContent` (`set the textContent of #el to …`) or `put \"…\" into #el`.',\n });\n }\n }\n }\n\n if (Array.isArray(n.body)) for (const child of n.body) walk(child, out);\n}\n","/**\n * Validation pipeline.\n *\n * Sequential gates that validate a parsed SemanticNode before compilation.\n * Each gate can add diagnostics; errors block compilation.\n */\n\nimport type { Diagnostic } from '../types.js';\nimport { checkInertShapes } from './inert-shapes.js';\n\n// =============================================================================\n// Dynamic imports\n// =============================================================================\n\n/** Semantic validation functions, injected by CompilationService.create() */\nexport interface ValidationFunctions {\n validateSemanticResult: (result: unknown) => {\n valid: boolean;\n errors: Array<{ code: string; message: string; role?: string; severity: string }>;\n warnings: Array<{ code: string; message: string; role?: string; severity: string }>;\n confidenceAdjustment: number;\n suggestions: string[];\n };\n}\n\nlet _validators: ValidationFunctions | null = null;\n\n/** Initialize with validation functions. */\nexport function initValidation(validators: ValidationFunctions): void {\n _validators = validators;\n}\n\n// =============================================================================\n// Validation Pipeline\n// =============================================================================\n\nexport interface GateResult {\n pass: boolean;\n diagnostics: Diagnostic[];\n adjustedConfidence: number;\n}\n\n/**\n * Run all validation gates on a parsed semantic node.\n */\nexport function runValidationGates(\n node: unknown,\n confidence: number,\n confidenceThreshold: number\n): GateResult {\n const diagnostics: Diagnostic[] = [];\n let adjustedConfidence = confidence;\n\n // Gate 1: Parse success\n if (!node) {\n diagnostics.push({\n severity: 'error',\n code: 'PARSE_FAILED',\n message: 'No semantic node produced from input.',\n });\n return { pass: false, diagnostics, adjustedConfidence: 0 };\n }\n\n // Gate 2: Confidence threshold\n if (confidence < confidenceThreshold) {\n diagnostics.push({\n severity: 'error',\n code: 'LOW_CONFIDENCE',\n message: `Parse confidence ${confidence.toFixed(2)} is below threshold ${confidenceThreshold.toFixed(2)}.`,\n suggestion: 'Try explicit syntax [command role:value ...] for unambiguous input.',\n });\n return { pass: false, diagnostics, adjustedConfidence: confidence };\n }\n\n // Gate 3: Schema validation\n if (_validators) {\n const semanticResult = nodeToParseResult(node);\n if (semanticResult) {\n const validation = _validators.validateSemanticResult(semanticResult);\n\n // Convert errors\n for (const err of validation.errors) {\n diagnostics.push({\n severity: 'error',\n code: err.code,\n message: err.message,\n });\n }\n\n // Convert warnings\n for (const warn of validation.warnings) {\n diagnostics.push({\n severity: 'warning',\n code: warn.code,\n message: warn.message,\n });\n }\n\n // Add suggestions\n for (const suggestion of validation.suggestions) {\n diagnostics.push({\n severity: 'info',\n code: 'SUGGESTION',\n message: suggestion,\n });\n }\n\n // Adjust confidence\n adjustedConfidence = Math.max(0, Math.min(1, confidence + validation.confidenceAdjustment));\n\n if (!validation.valid) {\n return { pass: false, diagnostics, adjustedConfidence };\n }\n }\n }\n\n // Gate 4: inert-shape heuristics (arc 3b). Warnings only — a parse that\n // consumed everything at full confidence can still be provably useless at\n // runtime, and without a diagnostic the validate/repair loop never hears\n // about it. Never affects pass/confidence.\n diagnostics.push(...checkInertShapes(node));\n\n return { pass: true, diagnostics, adjustedConfidence };\n}\n\n// =============================================================================\n// Helpers\n// =============================================================================\n\n/**\n * Convert a SemanticNode to the SemanticParseResult format expected by\n * validateSemanticResult(). The validator expects { action, arguments, confidence }.\n */\nfunction nodeToParseResult(node: unknown): unknown {\n const n = node as {\n kind?: string;\n action?: string;\n roles?: ReadonlyMap<string, unknown>;\n };\n\n if (!n.action) return null;\n\n // For event handlers, validate the body commands instead\n const action = n.action === 'on' ? null : n.action;\n if (!action) return null;\n\n // Convert roles map to arguments array\n const args: unknown[] = [];\n if (n.roles && typeof n.roles.entries === 'function') {\n for (const [role, value] of n.roles.entries()) {\n args.push({ role, ...(value as Record<string, unknown>) });\n }\n }\n\n return {\n action,\n arguments: args,\n confidence: 1.0,\n };\n}\n","/**\n * Compilation bridge.\n *\n * Converts a validated SemanticNode to AOT-compatible ASTNode\n * and compiles it to JavaScript.\n */\n\n// =============================================================================\n// Dynamic imports\n// =============================================================================\n\n/** AST building functions, injected by CompilationService.create() */\nexport interface BridgeFunctions {\n ASTBuilder: new () => { build(node: unknown): unknown; warnings: string[] };\n fromSemanticAST: (node: unknown) => unknown;\n}\n\n/** AOT compiler interface */\nexport interface AOTCompilerLike {\n compileAST(\n ast: unknown,\n options?: Record<string, unknown>\n ): {\n success: boolean;\n code?: string;\n warnings: string[];\n metadata: {\n handlerId: string;\n parserUsed: string;\n language?: string;\n commandsUsed: string[];\n optimizationsApplied: string[];\n needsRuntime: boolean;\n runtimeHelpers: string[];\n };\n errors?: string[];\n };\n}\n\nlet _bridge: BridgeFunctions | null = null;\nlet _compiler: AOTCompilerLike | null = null;\n\n/** Initialize with AST building functions and compiler. */\nexport function initBridge(bridge: BridgeFunctions, compiler: AOTCompilerLike): void {\n _bridge = bridge;\n _compiler = compiler;\n}\n\n// =============================================================================\n// Bridge\n// =============================================================================\n\nexport interface BridgeResult {\n success: boolean;\n code?: string;\n helpers: string[];\n warnings: string[];\n errors: string[];\n}\n\n/**\n * Compile a SemanticNode to JavaScript via the AOT pipeline.\n *\n * SemanticNode → ASTBuilder.build() → fromSemanticAST() → compiler.compileAST()\n */\nexport function compileSemanticNode(\n node: unknown,\n options: {\n language?: string;\n optimization?: 0 | 1 | 2;\n target?: 'esm' | 'iife';\n minify?: boolean;\n } = {}\n): BridgeResult {\n if (!_bridge || !_compiler) {\n throw new Error('Bridge not initialized. Call initBridge() first.');\n }\n\n const errors: string[] = [];\n const warnings: string[] = [];\n\n // Step 1: Build semantic AST\n let semanticAST: unknown;\n try {\n const builder = new _bridge.ASTBuilder();\n semanticAST = builder.build(node);\n warnings.push(...builder.warnings);\n } catch (error) {\n errors.push(`AST build failed: ${error instanceof Error ? error.message : String(error)}`);\n return { success: false, helpers: [], warnings, errors };\n }\n\n // Step 2: Convert to interchange format\n let interchangeAST: unknown;\n try {\n interchangeAST = _bridge.fromSemanticAST(semanticAST);\n } catch (error) {\n errors.push(\n `Interchange conversion failed: ${error instanceof Error ? error.message : String(error)}`\n );\n return { success: false, helpers: [], warnings, errors };\n }\n\n // Step 3: Compile via AOT\n try {\n const result = _compiler.compileAST(interchangeAST, {\n language: options.language ?? 'en',\n optimizationLevel: options.optimization ?? 2,\n codegen: {\n mode: options.target ?? 'esm',\n minify: options.minify ?? false,\n },\n });\n\n if (!result.success) {\n return {\n success: false,\n helpers: [],\n warnings: [...warnings, ...result.warnings],\n errors: [...errors, ...(result.errors ?? ['Compilation failed'])],\n };\n }\n\n return {\n success: true,\n code: result.code,\n helpers: result.metadata.runtimeHelpers,\n warnings: [...warnings, ...result.warnings],\n errors,\n };\n } catch (error) {\n errors.push(\n `AOT compilation failed: ${error instanceof Error ? error.message : String(error)}`\n );\n return { success: false, helpers: [], warnings, errors };\n }\n}\n","/**\n * Semantic-keyed LRU cache.\n *\n * Caches compilation results keyed by canonical semantic representation.\n * Different input languages that produce the same semantics hit the same cache.\n */\n\nimport type { CompileResponse } from '../types.js';\n\n/**\n * Simple LRU cache using Map insertion order.\n */\nexport class SemanticCache {\n private cache: Map<string, CompileResponse>;\n private readonly maxSize: number;\n\n /** Cache hit/miss statistics */\n hits = 0;\n misses = 0;\n\n constructor(maxSize = 500) {\n this.maxSize = maxSize;\n this.cache = new Map();\n }\n\n /**\n * Get a cached response, or undefined if not cached.\n */\n get(key: string): CompileResponse | undefined {\n const entry = this.cache.get(key);\n if (entry) {\n this.hits++;\n // Move to end (most recently used)\n this.cache.delete(key);\n this.cache.set(key, entry);\n return entry;\n }\n this.misses++;\n return undefined;\n }\n\n /**\n * Store a response in the cache.\n */\n set(key: string, value: CompileResponse): void {\n // Delete first to reset insertion order\n this.cache.delete(key);\n\n // Evict oldest if at capacity\n if (this.cache.size >= this.maxSize) {\n const oldest = this.cache.keys().next().value;\n if (oldest !== undefined) {\n this.cache.delete(oldest);\n }\n }\n\n this.cache.set(key, value);\n }\n\n /** Current cache size */\n get size(): number {\n return this.cache.size;\n }\n\n /** Clear all entries */\n clear(): void {\n this.cache.clear();\n this.hits = 0;\n this.misses = 0;\n }\n}\n\n// =============================================================================\n// Cache Key Generation\n// =============================================================================\n\n/**\n * Generate a canonical cache key from a semantic node and compilation options.\n *\n * The key is based on semantic identity, not syntax — so the same behavior\n * described in English, Japanese, or explicit syntax produces the same key.\n */\nexport function generateCacheKey(\n node: unknown,\n options: { optimization?: number; target?: string; minify?: boolean }\n): string {\n const canonical = canonicalize(node);\n const optKey = `${options.optimization ?? 2}:${options.target ?? 'esm'}:${options.minify ?? false}`;\n return `${canonical}|${optKey}`;\n}\n\n/**\n * Canonicalize a SemanticNode to a deterministic string.\n */\nfunction canonicalize(node: unknown): string {\n if (!node || typeof node !== 'object') return String(node);\n\n const n = node as Record<string, unknown>;\n const parts: string[] = [];\n\n // Action\n if (n.action) parts.push(`a:${n.action}`);\n if (n.kind) parts.push(`k:${n.kind}`);\n\n // Roles (sorted for determinism)\n if (n.roles && typeof (n.roles as Map<string, unknown>).entries === 'function') {\n const roles = n.roles as ReadonlyMap<string, unknown>;\n const sortedRoles = [...roles.entries()].sort(([a], [b]) => a.localeCompare(b));\n for (const [role, value] of sortedRoles) {\n parts.push(`r:${role}=${canonicalizeValue(value)}`);\n }\n }\n\n // Body (for event handlers)\n if (Array.isArray(n.body)) {\n parts.push(`b:[${n.body.map(canonicalize).join(',')}]`);\n }\n\n // Trigger/event modifiers\n if (n.eventModifiers && typeof n.eventModifiers === 'object') {\n const mods = Object.entries(n.eventModifiers as Record<string, unknown>)\n .sort(([a], [b]) => a.localeCompare(b))\n .map(([k, v]) => `${k}=${v}`)\n .join(',');\n if (mods) parts.push(`m:${mods}`);\n }\n\n return parts.join(';');\n}\n\nfunction canonicalizeValue(value: unknown): string {\n if (!value || typeof value !== 'object') return String(value);\n const v = value as Record<string, unknown>;\n return `${v.type}:${v.value ?? v.raw ?? ''}`;\n}\n","/**\n * Operation Extraction\n *\n * Converts a SemanticNode (from the parsing pipeline) into a BehaviorSpec\n * containing abstract operations. This is the bridge between semantic roles\n * and framework-agnostic behavior descriptions.\n */\n\nimport type { AbstractOperation, BehaviorSpec, TargetRef } from './types.js';\n\n// =============================================================================\n// Internal Types (mirrors SemanticNode shape without importing semantic types)\n// =============================================================================\n\ninterface RoleValue {\n type?: string;\n value?: unknown;\n raw?: string;\n selectorKind?: string;\n dataType?: string;\n scope?: string;\n}\n\ninterface NodeLike {\n kind?: string;\n action?: string;\n roles?: ReadonlyMap<string, RoleValue>;\n body?: NodeLike[];\n eventModifiers?: Record<string, unknown>;\n metadata?: { sourceText?: string };\n}\n\n// =============================================================================\n// Public API\n// =============================================================================\n\n/**\n * Extract abstract operations from a semantic node.\n *\n * Handles event handlers (extracts trigger + recurses into body)\n * and standalone commands.\n */\nexport function extractOperations(node: unknown): BehaviorSpec {\n const n = node as NodeLike;\n if (!n || typeof n !== 'object') {\n return emptySpec();\n }\n\n // Event handler: extract trigger and recurse into body\n if (n.kind === 'event-handler' || n.action === 'on') {\n return extractEventHandler(n);\n }\n\n // Standalone command: wrap with default trigger\n const ops = extractCommand(n);\n return {\n trigger: { event: 'click' },\n triggerTarget: { kind: 'self' },\n operations: ops,\n async: ops.some(isAsyncOp),\n source: n.metadata?.sourceText,\n };\n}\n\n// =============================================================================\n// Event Handler Extraction\n// =============================================================================\n\nfunction extractEventHandler(n: NodeLike): BehaviorSpec {\n // A colon-qualified event is an expression (`raw`), not a literal (`value`).\n const eventRole = n.roles?.get('event') as (RoleValue & { raw?: unknown }) | undefined;\n const named = eventRole?.value ?? eventRole?.raw;\n const eventName = typeof named === 'string' && named.length > 0 ? named : 'click';\n\n const operations: AbstractOperation[] = [];\n\n if (n.body && Array.isArray(n.body)) {\n for (const child of n.body) {\n operations.push(...extractCommand(child));\n }\n }\n\n return {\n trigger: {\n event: eventName,\n modifiers: n.eventModifiers,\n },\n triggerTarget: { kind: 'self' },\n operations,\n async: operations.some(isAsyncOp),\n source: n.metadata?.sourceText,\n };\n}\n\n// =============================================================================\n// Command Extraction\n// =============================================================================\n\nfunction extractCommand(n: NodeLike): AbstractOperation[] {\n const action = n.action;\n if (!action || action === 'on') return [];\n\n const roles = n.roles;\n\n switch (action) {\n // --- DOM Class ---\n case 'toggle':\n return extractClassOp('toggleClass', roles);\n case 'add':\n return extractClassOp('addClass', roles);\n case 'remove':\n return extractClassOp('removeClass', roles);\n\n // --- DOM Content ---\n case 'put':\n return extractPut(roles);\n case 'append':\n return extractAppend(roles);\n\n // --- DOM Visibility ---\n case 'show':\n return extractVisibility('show', roles);\n case 'hide':\n return extractVisibility('hide', roles);\n\n // --- Variables ---\n case 'set':\n return extractSet(roles);\n case 'increment':\n return extractIncrDecr('increment', roles);\n case 'decrement':\n return extractIncrDecr('decrement', roles);\n\n // --- Navigation ---\n case 'go':\n return extractGo(roles);\n\n // --- Async ---\n case 'fetch':\n return extractFetch(roles);\n case 'wait':\n return extractWait(roles);\n\n // --- Events ---\n case 'send':\n case 'trigger':\n return extractTriggerEvent(roles);\n\n // --- Focus ---\n case 'focus':\n return [{ op: 'focus', target: resolveTarget(roles, 'patient') }];\n case 'blur':\n return [{ op: 'blur', target: resolveTarget(roles, 'patient') }];\n\n // --- Utility ---\n case 'log':\n return extractLog(roles);\n\n default:\n return [];\n }\n}\n\n// =============================================================================\n// Per-Command Extractors\n// =============================================================================\n\nfunction extractClassOp(\n op: 'toggleClass' | 'addClass' | 'removeClass',\n roles: ReadonlyMap<string, RoleValue> | undefined\n): AbstractOperation[] {\n const patient = roles?.get('patient');\n if (!patient) return [];\n\n const value = String(patient.value ?? '');\n const className = value.startsWith('.') ? value.slice(1) : value;\n if (!className) return [];\n\n const target = resolveTarget(roles, op === 'removeClass' ? 'source' : 'destination');\n\n return [{ op, className, target }];\n}\n\nfunction extractPut(roles: ReadonlyMap<string, RoleValue> | undefined): AbstractOperation[] {\n const patient = roles?.get('patient');\n if (!patient) return [];\n\n const content = String(patient.value ?? patient.raw ?? '');\n const target = resolveTarget(roles, 'destination');\n\n // Determine position from method role\n const method = roles?.get('method');\n let position: 'into' | 'before' | 'after' | 'start' | 'end' = 'into';\n if (method?.value) {\n const m = String(method.value);\n if (m === 'before') position = 'before';\n else if (m === 'after') position = 'after';\n else if (m === 'start' || m === 'at start of') position = 'start';\n else if (m === 'end' || m === 'at end of') position = 'end';\n }\n\n return [{ op: 'setContent', content, target, position }];\n}\n\nfunction extractAppend(roles: ReadonlyMap<string, RoleValue> | undefined): AbstractOperation[] {\n const patient = roles?.get('patient');\n if (!patient) return [];\n\n const content = String(patient.value ?? patient.raw ?? '');\n const target = resolveTarget(roles, 'destination');\n\n return [{ op: 'appendContent', content, target }];\n}\n\nfunction extractVisibility(\n op: 'show' | 'hide',\n roles: ReadonlyMap<string, RoleValue> | undefined\n): AbstractOperation[] {\n const target = resolveTarget(roles, 'patient');\n return [{ op, target }];\n}\n\nfunction extractSet(roles: ReadonlyMap<string, RoleValue> | undefined): AbstractOperation[] {\n const destination = roles?.get('destination');\n const patient = roles?.get('patient');\n\n if (!destination && !patient) return [];\n\n // Variable assignment: set :count to 5\n const targetRole = destination ?? patient;\n const valueRole = destination ? patient : undefined;\n\n const name = String(targetRole?.value ?? '');\n const value = valueRole ? String(valueRole.value ?? '') : '';\n const scope = (targetRole?.scope ?? 'local') as 'local' | 'element' | 'global';\n\n return [{ op: 'setVariable', name, value, scope }];\n}\n\nfunction extractIncrDecr(\n op: 'increment' | 'decrement',\n roles: ReadonlyMap<string, RoleValue> | undefined\n): AbstractOperation[] {\n const target = resolveTarget(roles, 'patient');\n\n // Amount from quantity role\n const quantity = roles?.get('quantity');\n const amount = quantity?.value ? Number(quantity.value) : 1;\n\n return [{ op, target, amount }];\n}\n\nfunction extractGo(roles: ReadonlyMap<string, RoleValue> | undefined): AbstractOperation[] {\n const destination = roles?.get('destination');\n if (!destination) return [];\n\n const url = String(destination.value ?? '');\n\n if (url === 'back') return [{ op: 'historyBack' }];\n if (url === 'forward') return [{ op: 'historyForward' }];\n\n return [{ op: 'navigate', url }];\n}\n\nfunction extractFetch(roles: ReadonlyMap<string, RoleValue> | undefined): AbstractOperation[] {\n const source = roles?.get('source');\n if (!source) return [];\n\n const url = String(source.value ?? source.raw ?? '');\n\n const responseType = roles?.get('responseType');\n let format: 'json' | 'text' | 'html' = 'text';\n if (responseType?.value) {\n const f = String(responseType.value);\n if (f === 'json') format = 'json';\n else if (f === 'html') format = 'html';\n }\n\n const destRole = roles?.get('destination');\n const target = destRole ? resolveTargetFromRole(destRole) : undefined;\n\n return [{ op: 'fetch', url, format, target }];\n}\n\nfunction extractWait(roles: ReadonlyMap<string, RoleValue> | undefined): AbstractOperation[] {\n const duration = roles?.get('duration') ?? roles?.get('patient');\n if (!duration) return [];\n\n let ms = 0;\n const val = duration.value;\n if (typeof val === 'number') {\n ms = val;\n } else if (typeof val === 'string') {\n ms = parseDurationMs(val);\n }\n\n return [{ op: 'wait', durationMs: ms }];\n}\n\nfunction extractTriggerEvent(\n roles: ReadonlyMap<string, RoleValue> | undefined\n): AbstractOperation[] {\n const patient = roles?.get('patient');\n if (!patient) return [];\n\n const eventName = String(patient.value ?? '');\n const target = resolveTarget(roles, 'destination');\n\n return [{ op: 'triggerEvent', eventName, target }];\n}\n\nfunction extractLog(roles: ReadonlyMap<string, RoleValue> | undefined): AbstractOperation[] {\n const patient = roles?.get('patient');\n const values: string[] = [];\n\n if (patient) {\n values.push(String(patient.value ?? patient.raw ?? ''));\n }\n\n return [{ op: 'log', values }];\n}\n\n// =============================================================================\n// Helpers\n// =============================================================================\n\n/**\n * Resolve a target reference from the roles map.\n * Falls back to { kind: 'self' } if the role is missing or defaults to 'me'.\n */\nfunction resolveTarget(\n roles: ReadonlyMap<string, RoleValue> | undefined,\n roleName: string\n): TargetRef {\n const role = roles?.get(roleName);\n if (!role) return { kind: 'self' };\n return resolveTargetFromRole(role);\n}\n\nfunction resolveTargetFromRole(role: RoleValue): TargetRef {\n const value = String(role.value ?? '');\n\n // Reference to self\n if (role.type === 'reference' && (value === 'me' || value === 'it')) {\n return { kind: 'self' };\n }\n\n // Variable reference\n if (value.startsWith(':') || role.scope) {\n return { kind: 'variable', value };\n }\n\n // CSS selector\n if (\n role.type === 'selector' ||\n value.startsWith('#') ||\n value.startsWith('.') ||\n value.startsWith('[')\n ) {\n return { kind: 'selector', value };\n }\n\n // Literal URL or other value — treat as selector if it looks like one\n if (value) {\n return { kind: 'selector', value };\n }\n\n return { kind: 'self' };\n}\n\nfunction isAsyncOp(op: AbstractOperation): boolean {\n return op.op === 'fetch' || op.op === 'wait';\n}\n\nfunction parseDurationMs(value: string): number {\n const match = value.match(/^(\\d+(?:\\.\\d+)?)\\s*(ms|s|m|h)?$/);\n if (!match) return 0;\n\n const num = parseFloat(match[1]);\n const unit = match[2] ?? 'ms';\n\n switch (unit) {\n case 'ms':\n return num;\n case 's':\n return num * 1000;\n case 'm':\n return num * 60000;\n case 'h':\n return num * 3600000;\n default:\n return num;\n }\n}\n\nfunction emptySpec(): BehaviorSpec {\n return {\n trigger: { event: 'click' },\n triggerTarget: { kind: 'self' },\n operations: [],\n async: false,\n };\n}\n","/**\n * HTML Fixture Generator\n *\n * Generates minimal HTML pages that contain all elements referenced\n * by a BehaviorSpec. Used by test renderers to create test fixtures.\n */\n\nimport type { AbstractOperation, BehaviorSpec, TargetRef } from '../operations/types.js';\n\n// =============================================================================\n// Public API\n// =============================================================================\n\n/**\n * Generate a minimal HTML fixture for a behavior spec.\n *\n * @param spec - The behavior to create a fixture for\n * @param hyperscript - Original hyperscript source to embed as `_=\"...\"` attribute\n */\nexport function generateFixture(spec: BehaviorSpec, hyperscript?: string): string {\n const elements = collectElements(spec);\n const triggerSelector = targetToSelector(spec.triggerTarget);\n\n // When trigger is 'self', the hyperscript attribute goes on the first\n // operation target (since 'self' means the element the script is on).\n // When trigger is a specific selector, check if it matches an operation target.\n const triggerIsSeparate =\n triggerSelector !== null && !elements.some(e => e.selector === triggerSelector);\n\n // Track whether the _= attribute has been placed on an element\n let hyperscriptPlaced = false;\n\n const lines: string[] = [];\n\n // Add initial styles for visibility tests\n if (needsInitialStyles(spec.operations)) {\n lines.push('<style>');\n for (const op of spec.operations) {\n if (op.op === 'hide') {\n const sel = targetToSelector(op.target);\n if (sel) lines.push(` ${sel} { display: block; }`);\n }\n if (op.op === 'show') {\n const sel = targetToSelector(op.target);\n if (sel) lines.push(` ${sel} { display: none; }`);\n }\n }\n lines.push('</style>');\n }\n\n // Generate elements\n if (triggerIsSeparate) {\n // Trigger element is separate from targets\n const triggerEl = createTriggerElement(triggerSelector!, hyperscript);\n lines.push(triggerEl);\n hyperscriptPlaced = true;\n }\n\n for (const el of elements) {\n // Place _= attribute on this element if:\n // 1. It matches the trigger selector, OR\n // 2. Trigger is 'self' and this is the first element (hasn't been placed yet)\n const isTrigger =\n (!triggerIsSeparate && el.selector === triggerSelector) ||\n (triggerSelector === null && !hyperscriptPlaced);\n const attrs = isTrigger && hyperscript ? ` _=\"${escapeAttr(hyperscript)}\"` : '';\n if (isTrigger && hyperscript) hyperscriptPlaced = true;\n const extraClasses = getInitialClasses(el.selector, spec.operations);\n\n let tag = el.tag;\n let className = el.className;\n if (extraClasses.length > 0) {\n className = className ? `${className} ${extraClasses.join(' ')}` : extraClasses.join(' ');\n }\n\n const classAttr = className ? ` class=\"${className}\"` : '';\n const idAttr = el.id ? ` id=\"${el.id}\"` : '';\n\n if (tag === 'input') {\n lines.push(`<${tag}${idAttr}${classAttr}${attrs} />`);\n } else {\n const content = el.defaultContent ?? '';\n lines.push(`<${tag}${idAttr}${classAttr}${attrs}>${content}</${tag}>`);\n }\n }\n\n // If trigger is self and no explicit elements, create a self-targeting button\n if (elements.length === 0 && spec.triggerTarget.kind === 'self') {\n const attr = hyperscript ? ` _=\"${escapeAttr(hyperscript)}\"` : '';\n lines.push(`<button id=\"trigger\"${attr}>Click me</button>`);\n }\n\n return lines.join('\\n');\n}\n\n// =============================================================================\n// Element Collection\n// =============================================================================\n\ninterface FixtureElement {\n selector: string;\n id?: string;\n className?: string;\n tag: string;\n defaultContent?: string;\n}\n\nfunction collectElements(spec: BehaviorSpec): FixtureElement[] {\n const seen = new Set<string>();\n const elements: FixtureElement[] = [];\n\n for (const op of spec.operations) {\n for (const ref of getTargetRefs(op)) {\n if (ref.kind !== 'selector') continue;\n if (seen.has(ref.value)) continue;\n seen.add(ref.value);\n\n elements.push(selectorToElement(ref.value));\n }\n }\n\n return elements;\n}\n\nfunction getTargetRefs(op: AbstractOperation): TargetRef[] {\n const refs: TargetRef[] = [];\n\n if ('target' in op && op.target) {\n refs.push(op.target as TargetRef);\n }\n\n return refs;\n}\n\nfunction selectorToElement(selector: string): FixtureElement {\n // ID selector: #foo\n if (selector.startsWith('#')) {\n const id = selector.slice(1);\n return {\n selector,\n id,\n tag: inferTagFromId(id),\n defaultContent: inferContent(id),\n };\n }\n\n // Class selector: .foo\n if (selector.startsWith('.')) {\n const className = selector.slice(1);\n return {\n selector,\n className,\n tag: 'div',\n defaultContent: className,\n };\n }\n\n // Attribute or complex selector — use div\n return {\n selector,\n tag: 'div',\n defaultContent: '',\n };\n}\n\n// =============================================================================\n// Smart Element Type Inference\n// =============================================================================\n\nconst BUTTON_IDS = new Set(['btn', 'button', 'submit', 'trigger', 'action']);\nconst INPUT_IDS = new Set(['input', 'search', 'email', 'text', 'field', 'query']);\nconst FORM_IDS = new Set(['form', 'signup', 'login']);\nconst DIALOG_IDS = new Set(['modal', 'dialog', 'popup', 'overlay']);\nconst LIST_IDS = new Set(['list', 'items', 'results', 'options']);\n\nfunction inferTagFromId(id: string): string {\n const lower = id.toLowerCase();\n if (BUTTON_IDS.has(lower)) return 'button';\n if (INPUT_IDS.has(lower)) return 'input';\n if (FORM_IDS.has(lower)) return 'form';\n if (DIALOG_IDS.has(lower)) return 'div';\n if (LIST_IDS.has(lower)) return 'ul';\n return 'div';\n}\n\nfunction inferContent(id: string): string {\n const lower = id.toLowerCase();\n if (BUTTON_IDS.has(lower)) return 'Click';\n if (INPUT_IDS.has(lower)) return '';\n if (LIST_IDS.has(lower)) return '';\n // Capitalize first letter\n return id.charAt(0).toUpperCase() + id.slice(1);\n}\n\n// =============================================================================\n// Helpers\n// =============================================================================\n\nfunction createTriggerElement(selector: string, hyperscript?: string): string {\n const attr = hyperscript ? ` _=\"${escapeAttr(hyperscript)}\"` : '';\n // If the trigger selector refers to an existing element type, use it\n if (selector.startsWith('#')) {\n const id = selector.slice(1);\n return `<button id=\"${id}\"${attr}>Click</button>`;\n }\n return `<button id=\"trigger\"${attr}>Click</button>`;\n}\n\nfunction targetToSelector(ref: TargetRef): string | null {\n if (ref.kind === 'selector') return ref.value;\n if (ref.kind === 'self') return null;\n return null;\n}\n\nfunction needsInitialStyles(ops: AbstractOperation[]): boolean {\n return ops.some(op => op.op === 'hide' || op.op === 'show');\n}\n\nfunction getInitialClasses(selector: string, ops: AbstractOperation[]): string[] {\n const classes: string[] = [];\n for (const op of ops) {\n if (op.op === 'removeClass' && 'target' in op) {\n const targetSel = targetToSelector(op.target);\n if (targetSel === selector || (op.target.kind === 'self' && selector === null)) {\n classes.push(op.className);\n }\n }\n }\n return classes;\n}\n\nfunction escapeAttr(s: string): string {\n return s\n .replace(/&/g, '&')\n .replace(/\"/g, '"')\n .replace(/</g, '<')\n .replace(/>/g, '>');\n}\n","/**\n * Playwright Test Renderer\n *\n * Generates complete Playwright test files from BehaviorSpecs.\n * Each generated test creates an HTML fixture, triggers the behavior,\n * and asserts the expected DOM changes.\n */\n\nimport type { AbstractOperation, BehaviorSpec, TargetRef } from '../operations/types.js';\nimport type { TestRenderer, TestRenderOptions, GeneratedTest } from './types.js';\nimport { generateFixture } from './html-fixture.js';\n\n// =============================================================================\n// Renderer\n// =============================================================================\n\nexport class PlaywrightRenderer implements TestRenderer {\n readonly framework = 'playwright';\n\n render(spec: BehaviorSpec, options: TestRenderOptions = {}): GeneratedTest {\n const testName = options.testName ?? generateTestName(spec);\n const html = generateFixture(spec, options.hyperscript);\n\n const lines: string[] = [];\n\n // Import\n lines.push(\"import { test, expect } from '@playwright/test';\");\n lines.push('');\n\n // Test\n lines.push(`test('${escapeString(testName)}', async ({ page }) => {`);\n\n // Setup fixture\n lines.push(` await page.setContent(\\`${escapeTemplate(wrapHtml(html))}\\`);`);\n\n // Load runtime or compiled JS\n if (options.executionMode === 'compiled' && options.compiledJs) {\n lines.push(\n ` await page.addScriptTag({ content: \\`${escapeTemplate(options.compiledJs)}\\` });`\n );\n } else {\n const bundlePath =\n options.bundlePath ?? './node_modules/@hyperfixi/core/dist/lokascript-browser.js';\n lines.push(` await page.addScriptTag({ path: '${escapeString(bundlePath)}' });`);\n lines.push(\" await page.waitForFunction(() => document.querySelector('[_]') !== null);\");\n // Wait for LokaScript to process attributes\n lines.push(' await page.waitForTimeout(100);');\n }\n lines.push('');\n\n // Determine trigger locator\n const triggerLocator = getTriggerLocator(spec);\n\n // Generate assertions for each operation\n for (const op of spec.operations) {\n const assertions = generateAssertions(op, spec, triggerLocator);\n lines.push(...assertions.map(l => ` ${l}`));\n }\n\n lines.push('});');\n lines.push('');\n\n return {\n name: testName,\n code: lines.join('\\n'),\n html,\n framework: 'playwright',\n operations: spec.operations,\n };\n }\n}\n\n// =============================================================================\n// Assertion Generation\n// =============================================================================\n\nfunction generateAssertions(\n op: AbstractOperation,\n spec: BehaviorSpec,\n triggerLocator: string\n): string[] {\n switch (op.op) {\n case 'toggleClass':\n return generateToggleClassAssertions(op, spec, triggerLocator);\n case 'addClass':\n return generateAddClassAssertions(op, spec, triggerLocator);\n case 'removeClass':\n return generateRemoveClassAssertions(op, spec, triggerLocator);\n case 'setContent':\n return generateSetContentAssertions(op, spec, triggerLocator);\n case 'appendContent':\n return generateAppendContentAssertions(op, spec, triggerLocator);\n case 'show':\n return generateShowAssertions(op, spec, triggerLocator);\n case 'hide':\n return generateHideAssertions(op, spec, triggerLocator);\n case 'navigate':\n return generateNavigateAssertions(op, spec, triggerLocator);\n case 'focus':\n return generateFocusAssertions(op, spec, triggerLocator);\n case 'blur':\n return generateBlurAssertions(op, spec, triggerLocator);\n case 'triggerEvent':\n return generateTriggerEventAssertions(op, spec, triggerLocator);\n case 'fetch':\n return generateFetchAssertions(op, spec, triggerLocator);\n case 'wait':\n return generateWaitAssertions(op);\n case 'setVariable':\n case 'increment':\n case 'decrement':\n return generateVariableAssertions(op, spec, triggerLocator);\n case 'log':\n return generateLogAssertions(op, spec, triggerLocator);\n default:\n return [`// Unsupported operation: ${(op as AbstractOperation).op}`];\n }\n}\n\n// --- DOM Class ---\n\nfunction generateToggleClassAssertions(\n op: { className: string; target: TargetRef },\n spec: BehaviorSpec,\n triggerLocator: string\n): string[] {\n const locator = targetToLocator(op.target, spec);\n const lines: string[] = [];\n\n lines.push(`// Toggle .${op.className}`);\n lines.push(`await ${triggerLocator}.${triggerAction(spec)};`);\n if (spec.async) lines.push('await page.waitForTimeout(100);');\n lines.push(`await expect(${locator}).toHaveClass(/${op.className}/);`);\n lines.push('');\n lines.push(`// Toggle back`);\n lines.push(`await ${triggerLocator}.${triggerAction(spec)};`);\n if (spec.async) lines.push('await page.waitForTimeout(100);');\n lines.push(`await expect(${locator}).not.toHaveClass(/${op.className}/);`);\n\n return lines;\n}\n\nfunction generateAddClassAssertions(\n op: { className: string; target: TargetRef },\n spec: BehaviorSpec,\n triggerLocator: string\n): string[] {\n const locator = targetToLocator(op.target, spec);\n return [\n `// Add .${op.className}`,\n `await ${triggerLocator}.${triggerAction(spec)};`,\n ...(spec.async ? ['await page.waitForTimeout(100);'] : []),\n `await expect(${locator}).toHaveClass(/${op.className}/);`,\n ];\n}\n\nfunction generateRemoveClassAssertions(\n op: { className: string; target: TargetRef },\n spec: BehaviorSpec,\n triggerLocator: string\n): string[] {\n const locator = targetToLocator(op.target, spec);\n return [\n `// Remove .${op.className} (should have it initially)`,\n `await expect(${locator}).toHaveClass(/${op.className}/);`,\n `await ${triggerLocator}.${triggerAction(spec)};`,\n ...(spec.async ? ['await page.waitForTimeout(100);'] : []),\n `await expect(${locator}).not.toHaveClass(/${op.className}/);`,\n ];\n}\n\n// --- DOM Content ---\n\nfunction generateSetContentAssertions(\n op: { content: string; target: TargetRef },\n spec: BehaviorSpec,\n triggerLocator: string\n): string[] {\n const locator = targetToLocator(op.target, spec);\n return [\n `// Put \"${op.content}\" into element`,\n `await ${triggerLocator}.${triggerAction(spec)};`,\n ...(spec.async ? ['await page.waitForTimeout(100);'] : []),\n `await expect(${locator}).toContainText('${escapeString(op.content)}');`,\n ];\n}\n\nfunction generateAppendContentAssertions(\n op: { content: string; target: TargetRef },\n spec: BehaviorSpec,\n triggerLocator: string\n): string[] {\n const locator = targetToLocator(op.target, spec);\n return [\n `// Append \"${op.content}\"`,\n `await ${triggerLocator}.${triggerAction(spec)};`,\n ...(spec.async ? ['await page.waitForTimeout(100);'] : []),\n `await expect(${locator}).toContainText('${escapeString(op.content)}');`,\n ];\n}\n\n// --- DOM Visibility ---\n\nfunction generateShowAssertions(\n op: { target: TargetRef },\n spec: BehaviorSpec,\n triggerLocator: string\n): string[] {\n const locator = targetToLocator(op.target, spec);\n return [\n '// Show element (initially hidden)',\n `await expect(${locator}).not.toBeVisible();`,\n `await ${triggerLocator}.${triggerAction(spec)};`,\n ...(spec.async ? ['await page.waitForTimeout(100);'] : []),\n `await expect(${locator}).toBeVisible();`,\n ];\n}\n\nfunction generateHideAssertions(\n op: { target: TargetRef },\n spec: BehaviorSpec,\n triggerLocator: string\n): string[] {\n const locator = targetToLocator(op.target, spec);\n return [\n '// Hide element (initially visible)',\n `await expect(${locator}).toBeVisible();`,\n `await ${triggerLocator}.${triggerAction(spec)};`,\n ...(spec.async ? ['await page.waitForTimeout(100);'] : []),\n `await expect(${locator}).not.toBeVisible();`,\n ];\n}\n\n// --- Navigation ---\n\nfunction generateNavigateAssertions(\n op: { url: string },\n spec: BehaviorSpec,\n triggerLocator: string\n): string[] {\n return [\n `// Navigate to ${op.url}`,\n `// Note: Navigation will change the page URL`,\n `await ${triggerLocator}.${triggerAction(spec)};`,\n `await page.waitForURL('**${op.url}**');`,\n ];\n}\n\n// --- Focus ---\n\nfunction generateFocusAssertions(\n op: { target: TargetRef },\n spec: BehaviorSpec,\n triggerLocator: string\n): string[] {\n const locator = targetToLocator(op.target, spec);\n return [\n '// Focus element',\n `await ${triggerLocator}.${triggerAction(spec)};`,\n ...(spec.async ? ['await page.waitForTimeout(100);'] : []),\n `await expect(${locator}).toBeFocused();`,\n ];\n}\n\nfunction generateBlurAssertions(\n op: { target: TargetRef },\n spec: BehaviorSpec,\n triggerLocator: string\n): string[] {\n const locator = targetToLocator(op.target, spec);\n return [\n '// Blur element',\n `await ${locator}.focus();`,\n `await expect(${locator}).toBeFocused();`,\n `await ${triggerLocator}.${triggerAction(spec)};`,\n ...(spec.async ? ['await page.waitForTimeout(100);'] : []),\n `await expect(${locator}).not.toBeFocused();`,\n ];\n}\n\n// --- Events ---\n\nfunction generateTriggerEventAssertions(\n op: { eventName: string; target: TargetRef },\n spec: BehaviorSpec,\n triggerLocator: string\n): string[] {\n return [\n `// Trigger '${op.eventName}' event`,\n `const eventReceived = page.evaluate((sel) => {`,\n ` return new Promise<boolean>((resolve) => {`,\n ` const el = document.querySelector(sel) ?? document.body;`,\n ` el.addEventListener('${escapeString(op.eventName)}', () => resolve(true), { once: true });`,\n ` setTimeout(() => resolve(false), 2000);`,\n ` });`,\n `}, '${escapeString(targetToCssSelector(op.target))}');`,\n `await ${triggerLocator}.${triggerAction(spec)};`,\n `expect(await eventReceived).toBe(true);`,\n ];\n}\n\n// --- Async ---\n\nfunction generateFetchAssertions(\n op: { url: string; format: string; target?: TargetRef },\n spec: BehaviorSpec,\n triggerLocator: string\n): string[] {\n const lines: string[] = [];\n\n lines.push(`// Fetch ${op.url} as ${op.format}`);\n\n // Mock the network request\n if (op.format === 'json') {\n lines.push(`await page.route('**${op.url}**', route => {`);\n lines.push(` route.fulfill({`);\n lines.push(` contentType: 'application/json',`);\n lines.push(` body: JSON.stringify({ data: 'mock' }),`);\n lines.push(` });`);\n lines.push(`});`);\n } else if (op.format === 'html') {\n lines.push(`await page.route('**${op.url}**', route => {`);\n lines.push(` route.fulfill({`);\n lines.push(` contentType: 'text/html',`);\n lines.push(` body: '<div>Mock HTML</div>',`);\n lines.push(` });`);\n lines.push(`});`);\n } else {\n lines.push(`await page.route('**${op.url}**', route => {`);\n lines.push(` route.fulfill({`);\n lines.push(` contentType: 'text/plain',`);\n lines.push(` body: 'Mock response',`);\n lines.push(` });`);\n lines.push(`});`);\n }\n\n lines.push(`await ${triggerLocator}.${triggerAction(spec)};`);\n lines.push('await page.waitForTimeout(500);');\n\n // If there's a target, verify content was placed\n if (op.target) {\n const locator = targetToLocator(op.target, spec);\n lines.push(`await expect(${locator}).not.toBeEmpty();`);\n }\n\n return lines;\n}\n\nfunction generateWaitAssertions(op: { durationMs: number }): string[] {\n return [`// Wait ${op.durationMs}ms`, `// (no assertion — wait is a timing operation)`];\n}\n\n// --- Variables ---\n\nfunction generateVariableAssertions(\n op: AbstractOperation,\n spec: BehaviorSpec,\n triggerLocator: string\n): string[] {\n // Variable operations don't have direct DOM assertions\n // but we can verify the behavior executed without errors\n return [\n `// ${op.op} (variable operation — verify no errors)`,\n 'const errors: string[] = [];',\n \"page.on('pageerror', (err) => errors.push(err.message));\",\n `await ${triggerLocator}.${triggerAction(spec)};`,\n ...(spec.async ? ['await page.waitForTimeout(100);'] : []),\n 'expect(errors).toHaveLength(0);',\n ];\n}\n\n// --- Utility ---\n\nfunction generateLogAssertions(\n op: { values: string[] },\n spec: BehaviorSpec,\n triggerLocator: string\n): string[] {\n return [\n `// Log: ${op.values.join(', ')}`,\n 'const logs: string[] = [];',\n \"page.on('console', msg => { if (msg.type() === 'log') logs.push(msg.text()); });\",\n `await ${triggerLocator}.${triggerAction(spec)};`,\n ...(spec.async ? ['await page.waitForTimeout(100);'] : []),\n 'expect(logs.length).toBeGreaterThan(0);',\n ];\n}\n\n// =============================================================================\n// Helpers\n// =============================================================================\n\nfunction generateTestName(spec: BehaviorSpec): string {\n if (spec.source) return spec.source;\n\n const parts: string[] = [];\n parts.push(`on ${spec.trigger.event}`);\n\n for (const op of spec.operations) {\n parts.push(describeOp(op));\n }\n\n return parts.join(' ');\n}\n\nfunction describeOp(op: AbstractOperation): string {\n switch (op.op) {\n case 'toggleClass':\n return `toggle .${op.className}${describeTarget(op.target)}`;\n case 'addClass':\n return `add .${op.className}${describeTarget(op.target)}`;\n case 'removeClass':\n return `remove .${op.className}${describeTarget(op.target)}`;\n case 'setContent':\n return `put \"${op.content}\"${describeTarget(op.target)}`;\n case 'appendContent':\n return `append \"${op.content}\"${describeTarget(op.target)}`;\n case 'show':\n return `show${describeTarget(op.target)}`;\n case 'hide':\n return `hide${describeTarget(op.target)}`;\n case 'navigate':\n return `go to ${op.url}`;\n case 'focus':\n return `focus${describeTarget(op.target)}`;\n case 'blur':\n return `blur${describeTarget(op.target)}`;\n case 'fetch':\n return `fetch ${op.url} as ${op.format}`;\n case 'wait':\n return `wait ${op.durationMs}ms`;\n case 'setVariable':\n return `set ${op.name} to ${op.value}`;\n case 'increment':\n return `increment${describeTarget(op.target)}`;\n case 'decrement':\n return `decrement${describeTarget(op.target)}`;\n case 'triggerEvent':\n return `trigger ${op.eventName}${describeTarget(op.target)}`;\n case 'log':\n return `log ${op.values.join(', ')}`;\n case 'historyBack':\n return 'go back';\n case 'historyForward':\n return 'go forward';\n default:\n return (op as AbstractOperation).op;\n }\n}\n\nfunction describeTarget(target: TargetRef): string {\n if (target.kind === 'self') return '';\n if (target.kind === 'selector') return ` on ${target.value}`;\n if (target.kind === 'variable') return ` on ${target.value}`;\n return '';\n}\n\nfunction getTriggerLocator(spec: BehaviorSpec): string {\n if (spec.triggerTarget.kind === 'selector') {\n return `page.locator('${escapeString(spec.triggerTarget.value)}')`;\n }\n\n // Self — find the element with the _=\"...\" attribute\n // If operations have a target, use that; otherwise use a generic trigger\n for (const op of spec.operations) {\n if ('target' in op && (op as { target: TargetRef }).target.kind === 'selector') {\n const t = (op as { target: TargetRef }).target;\n if (t.kind === 'selector') {\n return `page.locator('${escapeString(t.value)}')`;\n }\n }\n }\n\n return \"page.locator('[_]')\";\n}\n\nfunction targetToLocator(target: TargetRef, spec: BehaviorSpec): string {\n if (target.kind === 'selector') {\n return `page.locator('${escapeString(target.value)}')`;\n }\n if (target.kind === 'self') {\n return getTriggerLocator(spec);\n }\n // Variable target — fall back to trigger\n return getTriggerLocator(spec);\n}\n\nfunction targetToCssSelector(target: TargetRef): string {\n if (target.kind === 'selector') return target.value;\n if (target.kind === 'self') return '[_]';\n return 'body';\n}\n\nfunction triggerAction(spec: BehaviorSpec): string {\n const event = spec.trigger.event;\n switch (event) {\n case 'click':\n return 'click()';\n case 'dblclick':\n return 'dblclick()';\n case 'mouseenter':\n return 'hover()';\n case 'mouseover':\n return 'hover()';\n case 'focus':\n return 'focus()';\n case 'blur':\n return 'blur()';\n case 'keydown':\n case 'keyup':\n case 'keypress':\n return \"press('Enter')\";\n case 'input':\n case 'change':\n return \"fill('test')\";\n case 'submit':\n return 'click()';\n default:\n return `dispatchEvent(new Event('${escapeString(event)}'))`;\n }\n}\n\nfunction wrapHtml(body: string): string {\n return `<!DOCTYPE html>\\n<html>\\n<body>\\n${body}\\n</body>\\n</html>`;\n}\n\nfunction escapeString(s: string): string {\n return s.replace(/\\\\/g, '\\\\\\\\').replace(/'/g, \"\\\\'\");\n}\n\nfunction escapeTemplate(s: string): string {\n return s.replace(/`/g, '\\\\`').replace(/\\$\\{/g, '\\\\${');\n}\n","/**\n * Shared Renderer Helpers\n *\n * Pure utility functions used by React, Vue, and Svelte component renderers.\n * Framework-agnostic: naming, type inference, tag inference, string escaping.\n */\n\nimport type { BehaviorSpec, TargetRef } from '../operations/types.js';\n\n// =============================================================================\n// String Utilities\n// =============================================================================\n\nexport function capitalize(s: string): string {\n if (!s) return s;\n return s.charAt(0).toUpperCase() + s.slice(1);\n}\n\nexport function escapeString(s: string): string {\n return s.replace(/\\\\/g, '\\\\\\\\').replace(/'/g, \"\\\\'\");\n}\n\nexport function isNumeric(s: string): boolean {\n return /^-?\\d+(\\.\\d+)?$/.test(s);\n}\n\nexport function cleanVarName(name: string): string {\n return name.replace(/^:/, '').replace(/[^a-zA-Z0-9]/g, '');\n}\n\n// =============================================================================\n// Target Helpers\n// =============================================================================\n\nexport function targetKey(target: TargetRef): string {\n if (target.kind === 'self') return 'self';\n return target.value;\n}\n\nexport function stateKey(prefix: string, name: string, target: TargetRef): string {\n return `${prefix}:${name}:${targetKey(target)}`;\n}\n\nexport function targetStateName(target: TargetRef, suffix: string): string {\n if (target.kind === 'selector') {\n const clean = target.value.replace(/^[#.]/, '');\n return clean + suffix;\n }\n return suffix.toLowerCase();\n}\n\nexport function targetRefName(target: TargetRef): string {\n if (target.kind === 'selector') {\n const clean = target.value.replace(/^[#.]/, '');\n return clean + 'Ref';\n }\n return 'elementRef';\n}\n\n// =============================================================================\n// Type Inference\n// =============================================================================\n\nexport function inferType(value: string): string {\n if (isNumeric(value)) return '<number>';\n if (value === 'true' || value === 'false') return '<boolean>';\n return '<string>';\n}\n\nexport function inferInitial(value: string, typeAnn: string): string {\n if (typeAnn === '<number>') return isNumeric(value) ? value : '0';\n if (typeAnn === '<boolean>') return value === 'true' ? 'true' : 'false';\n return `'${escapeString(value)}'`;\n}\n\n// =============================================================================\n// Tag and Selector Inference\n// =============================================================================\n\nexport function selectorToTag(selector: string): string {\n if (selector.startsWith('#')) {\n const id = selector.slice(1).toLowerCase();\n if (['btn', 'button', 'submit', 'trigger'].includes(id)) return 'button';\n if (['input', 'search', 'email', 'text', 'field'].includes(id)) return 'input';\n if (['form', 'signup', 'login'].includes(id)) return 'form';\n return 'div';\n }\n return 'div';\n}\n\nexport function inferTriggerTag(spec: BehaviorSpec): string {\n if (spec.triggerTarget.kind === 'selector') {\n return selectorToTag(spec.triggerTarget.value);\n }\n if (spec.trigger.event === 'submit') return 'form';\n if (spec.trigger.event === 'input' || spec.trigger.event === 'change') return 'input';\n return 'button';\n}\n\nexport function inferTriggerContent(spec: BehaviorSpec): string {\n const tag = inferTriggerTag(spec);\n if (tag === 'input' || tag === 'form') return '';\n if (spec.triggerTarget.kind === 'selector') {\n const id = spec.triggerTarget.value.replace(/^[#.]/, '');\n return capitalize(id);\n }\n return 'Click';\n}\n\n// =============================================================================\n// Component Naming\n// =============================================================================\n\nexport function generateComponentName(spec: BehaviorSpec): string {\n if (spec.operations.length === 0) return 'Component';\n\n const parts: string[] = [];\n const firstOp = spec.operations[0];\n\n switch (firstOp.op) {\n case 'toggleClass':\n parts.push('Toggle', capitalize(firstOp.className));\n break;\n case 'addClass':\n parts.push('Add', capitalize(firstOp.className));\n break;\n case 'removeClass':\n parts.push('Remove', capitalize(firstOp.className));\n break;\n case 'show':\n parts.push('Show');\n appendTargetName(parts, firstOp.target);\n break;\n case 'hide':\n parts.push('Hide');\n appendTargetName(parts, firstOp.target);\n break;\n case 'setContent':\n parts.push('SetContent');\n appendTargetName(parts, firstOp.target);\n break;\n case 'navigate':\n parts.push('NavigateTo');\n parts.push(capitalize(firstOp.url.replace(/[^a-zA-Z0-9]/g, '')));\n break;\n case 'fetch':\n parts.push('FetchData');\n break;\n case 'increment':\n parts.push('Increment');\n appendTargetName(parts, firstOp.target);\n break;\n case 'decrement':\n parts.push('Decrement');\n appendTargetName(parts, firstOp.target);\n break;\n case 'focus':\n parts.push('Focus');\n appendTargetName(parts, firstOp.target);\n break;\n default:\n parts.push('Component');\n }\n\n if (spec.trigger.event !== 'click') {\n parts.push('On', capitalize(spec.trigger.event));\n }\n\n return parts.join('') || 'Component';\n}\n\nfunction appendTargetName(parts: string[], target: TargetRef): void {\n if (target.kind === 'selector') {\n const clean = target.value.replace(/^[#.]/, '');\n parts.push(capitalize(clean));\n }\n}\n\n// =============================================================================\n// Class State Extraction\n// =============================================================================\n\n/**\n * Find class operations on the trigger element ('self') and look up their state variable names.\n * Works with any renderer's stateMap as long as keys follow the `target:class:className` pattern.\n */\nexport function getSelfClassStates(\n spec: BehaviorSpec,\n stateMap: Map<string, string>\n): { stateName: string; className: string }[] {\n const result: { stateName: string; className: string }[] = [];\n for (const op of spec.operations) {\n if (\n (op.op === 'toggleClass' || op.op === 'addClass' || op.op === 'removeClass') &&\n op.target.kind === 'self'\n ) {\n const stateVar = stateMap.get('self:class:' + op.className);\n if (stateVar) {\n result.push({ stateName: stateVar, className: op.className });\n }\n }\n }\n return result;\n}\n","/**\n * React Component Renderer\n *\n * Generates complete React functional components from BehaviorSpecs.\n * Maps abstract operations to React hooks (useState, useRef, useCallback) and JSX.\n */\n\nimport type { AbstractOperation, BehaviorSpec, TargetRef } from '../operations/types.js';\nimport type {\n ComponentRenderer,\n ComponentRenderOptions,\n GeneratedComponent,\n} from './component-types.js';\nimport {\n capitalize,\n cleanVarName,\n escapeString,\n generateComponentName,\n getSelfClassStates,\n inferInitial,\n inferTriggerContent,\n inferTriggerTag,\n inferType,\n isNumeric,\n selectorToTag,\n stateKey,\n targetKey,\n targetRefName,\n targetStateName,\n} from './renderer-helpers.js';\n\n// =============================================================================\n// Renderer\n// =============================================================================\n\nexport class ReactRenderer implements ComponentRenderer {\n readonly framework = 'react';\n\n render(spec: BehaviorSpec, options: ComponentRenderOptions = {}): GeneratedComponent {\n const componentName = options.componentName ?? generateComponentName(spec);\n const ts = options.typescript !== false;\n\n // Pre-pass: analyze what hooks and state we need\n const analysis = analyzeOperations(spec);\n\n const lines: string[] = [];\n\n // Imports\n const hooksList = [...analysis.hooks];\n if (hooksList.length > 0) {\n lines.push(`import { ${hooksList.join(', ')} } from 'react';`);\n }\n lines.push('');\n\n // Component function\n const propsType = ts ? '()' : '()';\n lines.push(`export function ${componentName}${propsType} {`);\n\n // State declarations\n for (const state of analysis.states) {\n const typeAnn = ts ? state.typeAnnotation : '';\n lines.push(\n ` const [${state.name}, ${state.setter}] = useState${typeAnn}(${state.initialValue});`\n );\n }\n\n // Ref declarations\n for (const ref of analysis.refs) {\n const typeAnn = ts ? ref.typeAnnotation : '';\n lines.push(` const ${ref.name} = useRef${typeAnn}(null);`);\n }\n\n if (analysis.states.length > 0 || analysis.refs.length > 0) {\n lines.push('');\n }\n\n // Event handler\n const handlerName = `handle${capitalize(spec.trigger.event)}`;\n const asyncPrefix = spec.async ? 'async ' : '';\n lines.push(` const ${handlerName} = useCallback(${asyncPrefix}() => {`);\n\n for (const op of spec.operations) {\n const opLines = generateOperationCode(op, analysis);\n for (const l of opLines) {\n lines.push(` ${l}`);\n }\n }\n\n lines.push(' }, []);');\n lines.push('');\n\n // JSX return\n lines.push(' return (');\n const jsx = generateJSX(spec, analysis, handlerName);\n for (const l of jsx) {\n lines.push(` ${l}`);\n }\n lines.push(' );');\n lines.push('}');\n lines.push('');\n\n return {\n name: componentName,\n code: lines.join('\\n'),\n framework: 'react',\n operations: spec.operations,\n hooks: hooksList,\n };\n }\n}\n\n// =============================================================================\n// Operation Analysis (pre-pass)\n// =============================================================================\n\ninterface StateDecl {\n name: string;\n setter: string;\n typeAnnotation: string;\n initialValue: string;\n /** The target selector this state is associated with */\n targetKey: string;\n}\n\ninterface RefDecl {\n name: string;\n typeAnnotation: string;\n targetKey: string;\n}\n\ninterface OperationAnalysis {\n hooks: Set<string>;\n states: StateDecl[];\n refs: RefDecl[];\n /** Map from target key → state variable name */\n stateMap: Map<string, string>;\n /** Map from target key → ref variable name */\n refMap: Map<string, string>;\n}\n\nfunction analyzeOperations(spec: BehaviorSpec): OperationAnalysis {\n const hooks = new Set<string>();\n const states: StateDecl[] = [];\n const refs: RefDecl[] = [];\n const stateMap = new Map<string, string>();\n const refMap = new Map<string, string>();\n const seenStates = new Set<string>();\n\n // Always need useCallback for the handler\n hooks.add('useCallback');\n\n for (const op of spec.operations) {\n switch (op.op) {\n case 'toggleClass': {\n const key = stateKey('has', op.className, op.target);\n if (!seenStates.has(key)) {\n seenStates.add(key);\n hooks.add('useState');\n const name = `has${capitalize(op.className)}`;\n states.push({\n name,\n setter: `set${capitalize(name)}`,\n typeAnnotation: '<boolean>',\n initialValue: 'false',\n targetKey: targetKey(op.target),\n });\n stateMap.set(targetKey(op.target) + ':class:' + op.className, name);\n }\n break;\n }\n\n case 'addClass':\n case 'removeClass': {\n const key = stateKey('has', op.className, op.target);\n if (!seenStates.has(key)) {\n seenStates.add(key);\n hooks.add('useState');\n const name = `has${capitalize(op.className)}`;\n const initial = op.op === 'removeClass' ? 'true' : 'false';\n states.push({\n name,\n setter: `set${capitalize(name)}`,\n typeAnnotation: '<boolean>',\n initialValue: initial,\n targetKey: targetKey(op.target),\n });\n stateMap.set(targetKey(op.target) + ':class:' + op.className, name);\n }\n break;\n }\n\n case 'show':\n case 'hide': {\n const tk = targetKey(op.target);\n const key = 'visible:' + tk;\n if (!seenStates.has(key)) {\n seenStates.add(key);\n hooks.add('useState');\n const name = targetStateName(op.target, 'Visible');\n states.push({\n name,\n setter: `set${capitalize(name)}`,\n typeAnnotation: '<boolean>',\n initialValue: op.op === 'hide' ? 'true' : 'false',\n targetKey: tk,\n });\n stateMap.set(tk + ':visible', name);\n }\n break;\n }\n\n case 'setContent':\n case 'appendContent': {\n const tk = targetKey(op.target);\n const key = 'content:' + tk;\n if (!seenStates.has(key)) {\n seenStates.add(key);\n hooks.add('useState');\n const name = targetStateName(op.target, 'Content');\n states.push({\n name,\n setter: `set${capitalize(name)}`,\n typeAnnotation: '<string>',\n initialValue: \"''\",\n targetKey: tk,\n });\n stateMap.set(tk + ':content', name);\n }\n break;\n }\n\n case 'setVariable': {\n const key = 'var:' + op.name;\n if (!seenStates.has(key)) {\n seenStates.add(key);\n hooks.add('useState');\n const name = cleanVarName(op.name);\n const typeAnn = inferType(op.value);\n states.push({\n name,\n setter: `set${capitalize(name)}`,\n typeAnnotation: typeAnn,\n initialValue: inferInitial(op.value, typeAnn),\n targetKey: 'var:' + op.name,\n });\n stateMap.set('var:' + op.name, name);\n }\n break;\n }\n\n case 'increment':\n case 'decrement': {\n const tk = targetKey(op.target);\n const key = 'num:' + tk;\n if (!seenStates.has(key)) {\n seenStates.add(key);\n hooks.add('useState');\n const name = targetStateName(op.target, 'Count');\n states.push({\n name,\n setter: `set${capitalize(name)}`,\n typeAnnotation: '<number>',\n initialValue: '0',\n targetKey: tk,\n });\n stateMap.set(tk + ':num', name);\n }\n break;\n }\n\n case 'fetch': {\n // Need state for the fetched data\n if (op.target) {\n const tk = targetKey(op.target);\n const key = 'content:' + tk;\n if (!seenStates.has(key)) {\n seenStates.add(key);\n hooks.add('useState');\n const name = targetStateName(op.target, 'Content');\n states.push({\n name,\n setter: `set${capitalize(name)}`,\n typeAnnotation: '<string>',\n initialValue: \"''\",\n targetKey: tk,\n });\n stateMap.set(tk + ':content', name);\n }\n }\n break;\n }\n\n case 'focus':\n case 'blur': {\n const tk = targetKey(op.target);\n if (!refMap.has(tk)) {\n hooks.add('useRef');\n const name = targetRefName(op.target);\n refs.push({\n name,\n typeAnnotation: '<HTMLElement>',\n targetKey: tk,\n });\n refMap.set(tk, name);\n }\n break;\n }\n\n case 'triggerEvent': {\n const tk = targetKey(op.target);\n if (!refMap.has(tk)) {\n hooks.add('useRef');\n const name = targetRefName(op.target);\n refs.push({\n name,\n typeAnnotation: '<HTMLElement>',\n targetKey: tk,\n });\n refMap.set(tk, name);\n }\n break;\n }\n\n // navigate, historyBack, historyForward, wait, log — no state/refs needed\n }\n }\n\n return { hooks, states, refs, stateMap, refMap };\n}\n\n// =============================================================================\n// Operation Code Generation\n// =============================================================================\n\nfunction generateOperationCode(op: AbstractOperation, analysis: OperationAnalysis): string[] {\n switch (op.op) {\n case 'toggleClass': {\n const stateVar = analysis.stateMap.get(targetKey(op.target) + ':class:' + op.className);\n const setter = stateVar ? `set${capitalize(stateVar)}` : 'setState';\n return [`${setter}(prev => !prev);`];\n }\n\n case 'addClass': {\n const stateVar = analysis.stateMap.get(targetKey(op.target) + ':class:' + op.className);\n const setter = stateVar ? `set${capitalize(stateVar)}` : 'setState';\n return [`${setter}(true);`];\n }\n\n case 'removeClass': {\n const stateVar = analysis.stateMap.get(targetKey(op.target) + ':class:' + op.className);\n const setter = stateVar ? `set${capitalize(stateVar)}` : 'setState';\n return [`${setter}(false);`];\n }\n\n case 'show': {\n const stateVar = analysis.stateMap.get(targetKey(op.target) + ':visible');\n const setter = stateVar ? `set${capitalize(stateVar)}` : 'setVisible';\n return [`${setter}(true);`];\n }\n\n case 'hide': {\n const stateVar = analysis.stateMap.get(targetKey(op.target) + ':visible');\n const setter = stateVar ? `set${capitalize(stateVar)}` : 'setVisible';\n return [`${setter}(false);`];\n }\n\n case 'setContent': {\n const stateVar = analysis.stateMap.get(targetKey(op.target) + ':content');\n const setter = stateVar ? `set${capitalize(stateVar)}` : 'setContent';\n return [`${setter}('${escapeString(op.content)}');`];\n }\n\n case 'appendContent': {\n const stateVar = analysis.stateMap.get(targetKey(op.target) + ':content');\n const setter = stateVar ? `set${capitalize(stateVar)}` : 'setContent';\n return [`${setter}(prev => prev + '${escapeString(op.content)}');`];\n }\n\n case 'setVariable': {\n const stateVar = analysis.stateMap.get('var:' + op.name);\n const setter = stateVar ? `set${capitalize(stateVar)}` : 'setValue';\n const val = isNumeric(op.value) ? op.value : `'${escapeString(op.value)}'`;\n return [`${setter}(${val});`];\n }\n\n case 'increment': {\n const stateVar = analysis.stateMap.get(targetKey(op.target) + ':num');\n const setter = stateVar ? `set${capitalize(stateVar)}` : 'setCount';\n return [`${setter}(prev => prev + ${op.amount});`];\n }\n\n case 'decrement': {\n const stateVar = analysis.stateMap.get(targetKey(op.target) + ':num');\n const setter = stateVar ? `set${capitalize(stateVar)}` : 'setCount';\n return [`${setter}(prev => prev - ${op.amount});`];\n }\n\n case 'navigate':\n return [`window.location.href = '${escapeString(op.url)}';`];\n\n case 'historyBack':\n return ['window.history.back();'];\n\n case 'historyForward':\n return ['window.history.forward();'];\n\n case 'fetch': {\n const lines: string[] = [];\n lines.push(`const response = await fetch('${escapeString(op.url)}');`);\n if (op.format === 'json') {\n lines.push('const data = await response.json();');\n } else if (op.format === 'html') {\n lines.push('const data = await response.text();');\n } else {\n lines.push('const data = await response.text();');\n }\n if (op.target) {\n const stateVar = analysis.stateMap.get(targetKey(op.target) + ':content');\n const setter = stateVar ? `set${capitalize(stateVar)}` : 'setContent';\n if (op.format === 'json') {\n lines.push(`${setter}(JSON.stringify(data));`);\n } else {\n lines.push(`${setter}(data);`);\n }\n }\n return lines;\n }\n\n case 'wait':\n return [`await new Promise(resolve => setTimeout(resolve, ${op.durationMs}));`];\n\n case 'focus': {\n const refName = analysis.refMap.get(targetKey(op.target));\n return [`${refName ?? 'ref'}?.current?.focus();`];\n }\n\n case 'blur': {\n const refName = analysis.refMap.get(targetKey(op.target));\n return [`${refName ?? 'ref'}?.current?.blur();`];\n }\n\n case 'triggerEvent': {\n const refName = analysis.refMap.get(targetKey(op.target));\n return [\n `${refName ?? 'ref'}?.current?.dispatchEvent(new CustomEvent('${escapeString(op.eventName)}', { bubbles: true }));`,\n ];\n }\n\n case 'log':\n return [`console.log(${op.values.map(v => `'${escapeString(v)}'`).join(', ')});`];\n\n default:\n return [`// Unsupported: ${(op as AbstractOperation).op}`];\n }\n}\n\n// =============================================================================\n// JSX Generation\n// =============================================================================\n\nfunction generateJSX(\n spec: BehaviorSpec,\n analysis: OperationAnalysis,\n handlerName: string\n): string[] {\n const lines: string[] = [];\n const elements = collectJSXElements(spec, analysis);\n const eventProp = eventToReactProp(spec.trigger.event);\n\n const needsFragment = elements.length > 1 || elements.length === 0;\n\n if (needsFragment) lines.push('<>');\n\n // Trigger element\n const triggerTag = inferTriggerTag(spec);\n const triggerAttrs: string[] = [`${eventProp}={${handlerName}}`];\n\n // If trigger is 'self' and there are class operations on self, add className\n const selfClassStates = getSelfClassStates(spec, analysis.stateMap);\n if (selfClassStates.length > 0) {\n const classExpr = selfClassStates\n .map(s => `\\${${s.stateName} ? '${s.className}' : ''}`)\n .join(' ')\n .trim();\n triggerAttrs.push(`className={\\`${classExpr}\\`.trim()}`);\n }\n\n const indent = needsFragment ? ' ' : '';\n lines.push(\n `${indent}<${triggerTag} ${triggerAttrs.join(' ')}>${inferTriggerContent(spec)}</${triggerTag}>`\n );\n\n // Target elements (that aren't the trigger)\n for (const el of elements) {\n const elLines = renderJSXElement(el, analysis);\n for (const l of elLines) {\n lines.push(`${indent}${l}`);\n }\n }\n\n if (needsFragment) lines.push('</>');\n\n return lines;\n}\n\ninterface JSXElement {\n selector: string;\n tag: string;\n id?: string;\n className?: string;\n content?: string;\n /** Operations targeting this element */\n ops: AbstractOperation[];\n}\n\nfunction collectJSXElements(spec: BehaviorSpec, _analysis: OperationAnalysis): JSXElement[] {\n const seen = new Set<string>();\n const elements: JSXElement[] = [];\n\n for (const op of spec.operations) {\n if (!('target' in op)) continue;\n const target = (op as { target: TargetRef }).target;\n if (target.kind !== 'selector') continue;\n\n // Skip if this is the trigger element (it's rendered separately)\n if (spec.triggerTarget.kind === 'selector' && spec.triggerTarget.value === target.value)\n continue;\n\n const sel = target.value;\n if (seen.has(sel)) {\n // Add op to existing element\n const existing = elements.find(e => e.selector === sel);\n if (existing) existing.ops.push(op);\n continue;\n }\n seen.add(sel);\n\n const tag = selectorToTag(sel);\n const id = sel.startsWith('#') ? sel.slice(1) : undefined;\n const cls = sel.startsWith('.') ? sel.slice(1) : undefined;\n\n elements.push({\n selector: sel,\n tag,\n id,\n className: cls,\n ops: [op],\n });\n }\n\n return elements;\n}\n\nfunction renderJSXElement(el: JSXElement, analysis: OperationAnalysis): string[] {\n const lines: string[] = [];\n const attrs: string[] = [];\n\n if (el.id) attrs.push(`id=\"${el.id}\"`);\n\n // Check for class state on this element\n const classStates: { stateName: string; className: string }[] = [];\n for (const op of el.ops) {\n if (op.op === 'toggleClass' || op.op === 'addClass' || op.op === 'removeClass') {\n const stateVar = analysis.stateMap.get(el.selector + ':class:' + op.className);\n if (stateVar) {\n classStates.push({ stateName: stateVar, className: op.className });\n }\n }\n }\n\n if (classStates.length > 0) {\n const parts = classStates.map(s => `\\${${s.stateName} ? '${s.className}' : ''}`);\n if (el.className) {\n attrs.push(`className={\\`${el.className} ${parts.join(' ')}\\`.trim()}`);\n } else {\n attrs.push(`className={\\`${parts.join(' ')}\\`.trim()}`);\n }\n } else if (el.className) {\n attrs.push(`className=\"${el.className}\"`);\n }\n\n // Check for ref on this element\n const refName = analysis.refMap.get(el.selector);\n if (refName) {\n attrs.push(`ref={${refName}}`);\n }\n\n // Check for visibility state\n const visState = analysis.stateMap.get(el.selector + ':visible');\n\n // Check for content state\n const contentState = analysis.stateMap.get(el.selector + ':content');\n\n // Check for numeric state\n const numState = analysis.stateMap.get(el.selector + ':num');\n\n const attrStr = attrs.length > 0 ? ' ' + attrs.join(' ') : '';\n const content = contentState\n ? `{${contentState}}`\n : numState\n ? `{${numState}}`\n : (el.content ?? el.id ?? '');\n\n const elementLine = `<${el.tag}${attrStr}>${content}</${el.tag}>`;\n\n if (visState) {\n lines.push(`{${visState} && ${elementLine}}`);\n } else {\n lines.push(elementLine);\n }\n\n return lines;\n}\n\n// =============================================================================\n// React-specific Helpers\n// =============================================================================\n\nfunction eventToReactProp(event: string): string {\n switch (event) {\n case 'click':\n return 'onClick';\n case 'dblclick':\n return 'onDoubleClick';\n case 'mouseenter':\n return 'onMouseEnter';\n case 'mouseover':\n return 'onMouseOver';\n case 'mouseleave':\n return 'onMouseLeave';\n case 'focus':\n return 'onFocus';\n case 'blur':\n return 'onBlur';\n case 'keydown':\n return 'onKeyDown';\n case 'keyup':\n return 'onKeyUp';\n case 'keypress':\n return 'onKeyPress';\n case 'input':\n return 'onInput';\n case 'change':\n return 'onChange';\n case 'submit':\n return 'onSubmit';\n default:\n return `on${capitalize(event)}`;\n }\n}\n","/**\n * Vue 3 Component Renderer\n *\n * Generates Vue 3 Single File Components (SFC) with Composition API\n * (<script setup>) from BehaviorSpecs.\n * Maps abstract operations to Vue refs and template directives.\n */\n\nimport type { AbstractOperation, BehaviorSpec, TargetRef } from '../operations/types.js';\nimport type {\n ComponentRenderer,\n ComponentRenderOptions,\n GeneratedComponent,\n} from './component-types.js';\nimport {\n capitalize,\n cleanVarName,\n escapeString,\n generateComponentName,\n getSelfClassStates,\n inferInitial,\n inferTriggerContent,\n inferTriggerTag,\n inferType,\n isNumeric,\n selectorToTag,\n stateKey,\n targetKey,\n targetRefName,\n targetStateName,\n} from './renderer-helpers.js';\n\n// =============================================================================\n// Renderer\n// =============================================================================\n\nexport class VueRenderer implements ComponentRenderer {\n readonly framework = 'vue';\n\n render(spec: BehaviorSpec, options: ComponentRenderOptions = {}): GeneratedComponent {\n const componentName = options.componentName ?? generateComponentName(spec);\n const ts = options.typescript !== false;\n\n const analysis = analyzeOperations(spec);\n\n // -- <script setup> block --\n const scriptLines: string[] = [];\n\n // Imports\n const vueImports: string[] = [];\n if (analysis.states.length > 0 || analysis.refs.length > 0) {\n vueImports.push('ref');\n }\n if (vueImports.length > 0) {\n scriptLines.push(`import { ${vueImports.join(', ')} } from 'vue'`);\n scriptLines.push('');\n }\n\n // State declarations\n for (const state of analysis.states) {\n if (ts) {\n scriptLines.push(`const ${state.name} = ref${state.typeAnnotation}(${state.initialValue})`);\n } else {\n scriptLines.push(`const ${state.name} = ref(${state.initialValue})`);\n }\n }\n\n // Ref declarations\n for (const r of analysis.refs) {\n if (ts) {\n scriptLines.push(`const ${r.name} = ref<HTMLElement | null>(null)`);\n } else {\n scriptLines.push(`const ${r.name} = ref(null)`);\n }\n }\n\n if (analysis.states.length > 0 || analysis.refs.length > 0) {\n scriptLines.push('');\n }\n\n // Event handler\n const handlerName = `handle${capitalize(spec.trigger.event)}`;\n const asyncPrefix = spec.async ? 'async ' : '';\n scriptLines.push(`${asyncPrefix}function ${handlerName}() {`);\n\n for (const op of spec.operations) {\n const opLines = generateOperationCode(op, analysis);\n for (const l of opLines) {\n scriptLines.push(` ${l}`);\n }\n }\n\n scriptLines.push('}');\n\n // -- <template> block --\n const templateLines = generateTemplate(spec, analysis, handlerName);\n\n // -- Combine SFC --\n const langAttr = ts ? ' lang=\"ts\"' : '';\n const lines: string[] = [];\n lines.push(`<script setup${langAttr}>`);\n for (const l of scriptLines) {\n lines.push(l);\n }\n lines.push('</script>');\n lines.push('');\n lines.push('<template>');\n for (const l of templateLines) {\n lines.push(` ${l}`);\n }\n lines.push('</template>');\n lines.push('');\n\n const hooks = vueImports.length > 0 ? [...vueImports] : [];\n\n return {\n name: componentName,\n code: lines.join('\\n'),\n framework: 'vue',\n operations: spec.operations,\n hooks,\n };\n }\n}\n\n// =============================================================================\n// Operation Analysis\n// =============================================================================\n\ninterface VueStateDecl {\n name: string;\n typeAnnotation: string;\n initialValue: string;\n targetKey: string;\n}\n\ninterface VueRefDecl {\n name: string;\n targetKey: string;\n}\n\ninterface VueAnalysis {\n states: VueStateDecl[];\n refs: VueRefDecl[];\n stateMap: Map<string, string>;\n refMap: Map<string, string>;\n}\n\nfunction analyzeOperations(spec: BehaviorSpec): VueAnalysis {\n const states: VueStateDecl[] = [];\n const refs: VueRefDecl[] = [];\n const stateMap = new Map<string, string>();\n const refMap = new Map<string, string>();\n const seenStates = new Set<string>();\n\n for (const op of spec.operations) {\n switch (op.op) {\n case 'toggleClass': {\n const key = stateKey('has', op.className, op.target);\n if (!seenStates.has(key)) {\n seenStates.add(key);\n const name = `has${capitalize(op.className)}`;\n states.push({\n name,\n typeAnnotation: '<boolean>',\n initialValue: 'false',\n targetKey: targetKey(op.target),\n });\n stateMap.set(targetKey(op.target) + ':class:' + op.className, name);\n }\n break;\n }\n\n case 'addClass':\n case 'removeClass': {\n const key = stateKey('has', op.className, op.target);\n if (!seenStates.has(key)) {\n seenStates.add(key);\n const name = `has${capitalize(op.className)}`;\n const initial = op.op === 'removeClass' ? 'true' : 'false';\n states.push({\n name,\n typeAnnotation: '<boolean>',\n initialValue: initial,\n targetKey: targetKey(op.target),\n });\n stateMap.set(targetKey(op.target) + ':class:' + op.className, name);\n }\n break;\n }\n\n case 'show':\n case 'hide': {\n const tk = targetKey(op.target);\n const key = 'visible:' + tk;\n if (!seenStates.has(key)) {\n seenStates.add(key);\n const name = targetStateName(op.target, 'Visible');\n states.push({\n name,\n typeAnnotation: '<boolean>',\n initialValue: op.op === 'hide' ? 'true' : 'false',\n targetKey: tk,\n });\n stateMap.set(tk + ':visible', name);\n }\n break;\n }\n\n case 'setContent':\n case 'appendContent': {\n const tk = targetKey(op.target);\n const key = 'content:' + tk;\n if (!seenStates.has(key)) {\n seenStates.add(key);\n const name = targetStateName(op.target, 'Content');\n states.push({\n name,\n typeAnnotation: '<string>',\n initialValue: \"''\",\n targetKey: tk,\n });\n stateMap.set(tk + ':content', name);\n }\n break;\n }\n\n case 'setVariable': {\n const key = 'var:' + op.name;\n if (!seenStates.has(key)) {\n seenStates.add(key);\n const name = cleanVarName(op.name);\n const typeAnn = inferType(op.value);\n states.push({\n name,\n typeAnnotation: typeAnn,\n initialValue: inferInitial(op.value, typeAnn),\n targetKey: 'var:' + op.name,\n });\n stateMap.set('var:' + op.name, name);\n }\n break;\n }\n\n case 'increment':\n case 'decrement': {\n const tk = targetKey(op.target);\n const key = 'num:' + tk;\n if (!seenStates.has(key)) {\n seenStates.add(key);\n const name = targetStateName(op.target, 'Count');\n states.push({\n name,\n typeAnnotation: '<number>',\n initialValue: '0',\n targetKey: tk,\n });\n stateMap.set(tk + ':num', name);\n }\n break;\n }\n\n case 'fetch': {\n if (op.target) {\n const tk = targetKey(op.target);\n const key = 'content:' + tk;\n if (!seenStates.has(key)) {\n seenStates.add(key);\n const name = targetStateName(op.target, 'Content');\n states.push({\n name,\n typeAnnotation: '<string>',\n initialValue: \"''\",\n targetKey: tk,\n });\n stateMap.set(tk + ':content', name);\n }\n }\n break;\n }\n\n case 'focus':\n case 'blur': {\n const tk = targetKey(op.target);\n if (!refMap.has(tk)) {\n const name = targetRefName(op.target);\n refs.push({ name, targetKey: tk });\n refMap.set(tk, name);\n }\n break;\n }\n\n case 'triggerEvent': {\n const tk = targetKey(op.target);\n if (!refMap.has(tk)) {\n const name = targetRefName(op.target);\n refs.push({ name, targetKey: tk });\n refMap.set(tk, name);\n }\n break;\n }\n }\n }\n\n return { states, refs, stateMap, refMap };\n}\n\n// =============================================================================\n// Operation Code Generation (Vue: .value mutation)\n// =============================================================================\n\nfunction generateOperationCode(op: AbstractOperation, analysis: VueAnalysis): string[] {\n switch (op.op) {\n case 'toggleClass': {\n const stateVar = analysis.stateMap.get(targetKey(op.target) + ':class:' + op.className);\n return [`${stateVar ?? 'state'}.value = !${stateVar ?? 'state'}.value`];\n }\n\n case 'addClass': {\n const stateVar = analysis.stateMap.get(targetKey(op.target) + ':class:' + op.className);\n return [`${stateVar ?? 'state'}.value = true`];\n }\n\n case 'removeClass': {\n const stateVar = analysis.stateMap.get(targetKey(op.target) + ':class:' + op.className);\n return [`${stateVar ?? 'state'}.value = false`];\n }\n\n case 'show': {\n const stateVar = analysis.stateMap.get(targetKey(op.target) + ':visible');\n return [`${stateVar ?? 'visible'}.value = true`];\n }\n\n case 'hide': {\n const stateVar = analysis.stateMap.get(targetKey(op.target) + ':visible');\n return [`${stateVar ?? 'visible'}.value = false`];\n }\n\n case 'setContent': {\n const stateVar = analysis.stateMap.get(targetKey(op.target) + ':content');\n return [`${stateVar ?? 'content'}.value = '${escapeString(op.content)}'`];\n }\n\n case 'appendContent': {\n const stateVar = analysis.stateMap.get(targetKey(op.target) + ':content');\n return [`${stateVar ?? 'content'}.value += '${escapeString(op.content)}'`];\n }\n\n case 'setVariable': {\n const stateVar = analysis.stateMap.get('var:' + op.name);\n const val = isNumeric(op.value) ? op.value : `'${escapeString(op.value)}'`;\n return [`${stateVar ?? 'value'}.value = ${val}`];\n }\n\n case 'increment': {\n const stateVar = analysis.stateMap.get(targetKey(op.target) + ':num');\n return [`${stateVar ?? 'count'}.value += ${op.amount}`];\n }\n\n case 'decrement': {\n const stateVar = analysis.stateMap.get(targetKey(op.target) + ':num');\n return [`${stateVar ?? 'count'}.value -= ${op.amount}`];\n }\n\n case 'navigate':\n return [`window.location.href = '${escapeString(op.url)}'`];\n\n case 'historyBack':\n return ['window.history.back()'];\n\n case 'historyForward':\n return ['window.history.forward()'];\n\n case 'fetch': {\n const lines: string[] = [];\n lines.push(`const response = await fetch('${escapeString(op.url)}')`);\n if (op.format === 'json') {\n lines.push('const data = await response.json()');\n } else {\n lines.push('const data = await response.text()');\n }\n if (op.target) {\n const stateVar = analysis.stateMap.get(targetKey(op.target) + ':content');\n if (op.format === 'json') {\n lines.push(`${stateVar ?? 'content'}.value = JSON.stringify(data)`);\n } else {\n lines.push(`${stateVar ?? 'content'}.value = data`);\n }\n }\n return lines;\n }\n\n case 'wait':\n return [`await new Promise(resolve => setTimeout(resolve, ${op.durationMs}))`];\n\n case 'focus': {\n const refName = analysis.refMap.get(targetKey(op.target));\n return [`${refName ?? 'ref'}.value?.focus()`];\n }\n\n case 'blur': {\n const refName = analysis.refMap.get(targetKey(op.target));\n return [`${refName ?? 'ref'}.value?.blur()`];\n }\n\n case 'triggerEvent': {\n const refName = analysis.refMap.get(targetKey(op.target));\n return [\n `${refName ?? 'ref'}.value?.dispatchEvent(new CustomEvent('${escapeString(op.eventName)}', { bubbles: true }))`,\n ];\n }\n\n case 'log':\n return [`console.log(${op.values.map(v => `'${escapeString(v)}'`).join(', ')})`];\n\n default:\n return [`// Unsupported: ${(op as AbstractOperation).op}`];\n }\n}\n\n// =============================================================================\n// Template Generation\n// =============================================================================\n\nfunction generateTemplate(\n spec: BehaviorSpec,\n analysis: VueAnalysis,\n handlerName: string\n): string[] {\n const lines: string[] = [];\n const elements = collectTargetElements(spec);\n const eventDirective = `@${spec.trigger.event}`;\n\n // Trigger element\n const triggerTag = inferTriggerTag(spec);\n const triggerAttrs: string[] = [`${eventDirective}=\"${handlerName}\"`];\n\n // Class bindings on trigger\n const selfClassStates = getSelfClassStates(spec, analysis.stateMap);\n if (selfClassStates.length > 0) {\n const classObj = selfClassStates.map(s => `${s.className}: ${s.stateName}`).join(', ');\n triggerAttrs.push(`:class=\"{ ${classObj} }\"`);\n }\n\n const triggerContent = inferTriggerContent(spec);\n lines.push(`<${triggerTag} ${triggerAttrs.join(' ')}>${triggerContent}</${triggerTag}>`);\n\n // Target elements\n for (const el of elements) {\n const elLines = renderVueElement(el, analysis);\n for (const l of elLines) {\n lines.push(l);\n }\n }\n\n return lines;\n}\n\ninterface TemplateElement {\n selector: string;\n tag: string;\n id?: string;\n className?: string;\n ops: AbstractOperation[];\n}\n\nfunction collectTargetElements(spec: BehaviorSpec): TemplateElement[] {\n const seen = new Set<string>();\n const elements: TemplateElement[] = [];\n\n for (const op of spec.operations) {\n if (!('target' in op)) continue;\n const target = (op as { target: TargetRef }).target;\n if (target.kind !== 'selector') continue;\n\n if (spec.triggerTarget.kind === 'selector' && spec.triggerTarget.value === target.value)\n continue;\n\n const sel = target.value;\n if (seen.has(sel)) {\n const existing = elements.find(e => e.selector === sel);\n if (existing) existing.ops.push(op);\n continue;\n }\n seen.add(sel);\n\n const tag = selectorToTag(sel);\n const id = sel.startsWith('#') ? sel.slice(1) : undefined;\n const cls = sel.startsWith('.') ? sel.slice(1) : undefined;\n\n elements.push({ selector: sel, tag, id, className: cls, ops: [op] });\n }\n\n return elements;\n}\n\nfunction renderVueElement(el: TemplateElement, analysis: VueAnalysis): string[] {\n const lines: string[] = [];\n const attrs: string[] = [];\n\n if (el.id) attrs.push(`id=\"${el.id}\"`);\n\n // Class bindings\n const classStates: { stateName: string; className: string }[] = [];\n for (const op of el.ops) {\n if (op.op === 'toggleClass' || op.op === 'addClass' || op.op === 'removeClass') {\n const stateVar = analysis.stateMap.get(el.selector + ':class:' + op.className);\n if (stateVar) {\n classStates.push({ stateName: stateVar, className: op.className });\n }\n }\n }\n\n if (classStates.length > 0) {\n const classObj = classStates.map(s => `${s.className}: ${s.stateName}`).join(', ');\n if (el.className) {\n attrs.push(`class=\"${el.className}\"`);\n attrs.push(`:class=\"{ ${classObj} }\"`);\n } else {\n attrs.push(`:class=\"{ ${classObj} }\"`);\n }\n } else if (el.className) {\n attrs.push(`class=\"${el.className}\"`);\n }\n\n // Ref binding\n const refName = analysis.refMap.get(el.selector);\n if (refName) {\n attrs.push(`ref=\"${refName}\"`);\n }\n\n // Visibility\n const visState = analysis.stateMap.get(el.selector + ':visible');\n\n // Content\n const contentState = analysis.stateMap.get(el.selector + ':content');\n const numState = analysis.stateMap.get(el.selector + ':num');\n\n const attrStr = attrs.length > 0 ? ' ' + attrs.join(' ') : '';\n const content = contentState\n ? `{{ ${contentState} }}`\n : numState\n ? `{{ ${numState} }}`\n : (el.id ?? '');\n\n if (visState) {\n lines.push(`<${el.tag}${attrStr} v-if=\"${visState}\">${content}</${el.tag}>`);\n } else {\n lines.push(`<${el.tag}${attrStr}>${content}</${el.tag}>`);\n }\n\n return lines;\n}\n","/**\n * Svelte 5 Component Renderer\n *\n * Generates Svelte 5 components with runes ($state, $derived, $effect)\n * from BehaviorSpecs.\n * Maps abstract operations to direct state mutation and Svelte template syntax.\n */\n\nimport type { AbstractOperation, BehaviorSpec, TargetRef } from '../operations/types.js';\nimport type {\n ComponentRenderer,\n ComponentRenderOptions,\n GeneratedComponent,\n} from './component-types.js';\nimport {\n capitalize,\n cleanVarName,\n escapeString,\n generateComponentName,\n getSelfClassStates,\n inferInitial,\n inferTriggerContent,\n inferTriggerTag,\n inferType,\n isNumeric,\n selectorToTag,\n stateKey,\n targetKey,\n targetRefName,\n targetStateName,\n} from './renderer-helpers.js';\n\n// =============================================================================\n// Renderer\n// =============================================================================\n\nexport class SvelteRenderer implements ComponentRenderer {\n readonly framework = 'svelte';\n\n render(spec: BehaviorSpec, options: ComponentRenderOptions = {}): GeneratedComponent {\n const componentName = options.componentName ?? generateComponentName(spec);\n const ts = options.typescript !== false;\n\n const analysis = analyzeOperations(spec, ts);\n\n // -- <script> block --\n const scriptLines: string[] = [];\n\n // State declarations ($state runes — no imports needed)\n for (const state of analysis.states) {\n scriptLines.push(`let ${state.name} = $state(${state.initialValue})`);\n }\n\n // Ref declarations (plain variables, bound via bind:this)\n for (const r of analysis.refs) {\n if (ts) {\n scriptLines.push(`let ${r.name}: HTMLElement`);\n } else {\n scriptLines.push(`let ${r.name}`);\n }\n }\n\n if (analysis.states.length > 0 || analysis.refs.length > 0) {\n scriptLines.push('');\n }\n\n // Event handler\n const handlerName = `handle${capitalize(spec.trigger.event)}`;\n const asyncPrefix = spec.async ? 'async ' : '';\n scriptLines.push(`${asyncPrefix}function ${handlerName}() {`);\n\n for (const op of spec.operations) {\n const opLines = generateOperationCode(op, analysis);\n for (const l of opLines) {\n scriptLines.push(` ${l}`);\n }\n }\n\n scriptLines.push('}');\n\n // -- Template --\n const templateLines = generateTemplate(spec, analysis, handlerName);\n\n // -- Combine --\n const langAttr = ts ? ' lang=\"ts\"' : '';\n const lines: string[] = [];\n lines.push(`<script${langAttr}>`);\n for (const l of scriptLines) {\n lines.push(` ${l}`);\n }\n lines.push('</script>');\n lines.push('');\n for (const l of templateLines) {\n lines.push(l);\n }\n lines.push('');\n\n // Track which runes are used\n const hooks: string[] = [];\n if (analysis.states.length > 0) hooks.push('$state');\n\n return {\n name: componentName,\n code: lines.join('\\n'),\n framework: 'svelte',\n operations: spec.operations,\n hooks,\n };\n }\n}\n\n// =============================================================================\n// Operation Analysis\n// =============================================================================\n\ninterface SvelteStateDecl {\n name: string;\n initialValue: string;\n targetKey: string;\n}\n\ninterface SvelteRefDecl {\n name: string;\n targetKey: string;\n}\n\ninterface SvelteAnalysis {\n states: SvelteStateDecl[];\n refs: SvelteRefDecl[];\n stateMap: Map<string, string>;\n refMap: Map<string, string>;\n ts: boolean;\n}\n\nfunction analyzeOperations(spec: BehaviorSpec, ts: boolean): SvelteAnalysis {\n const states: SvelteStateDecl[] = [];\n const refs: SvelteRefDecl[] = [];\n const stateMap = new Map<string, string>();\n const refMap = new Map<string, string>();\n const seenStates = new Set<string>();\n\n for (const op of spec.operations) {\n switch (op.op) {\n case 'toggleClass': {\n const key = stateKey('has', op.className, op.target);\n if (!seenStates.has(key)) {\n seenStates.add(key);\n const name = `has${capitalize(op.className)}`;\n states.push({ name, initialValue: 'false', targetKey: targetKey(op.target) });\n stateMap.set(targetKey(op.target) + ':class:' + op.className, name);\n }\n break;\n }\n\n case 'addClass':\n case 'removeClass': {\n const key = stateKey('has', op.className, op.target);\n if (!seenStates.has(key)) {\n seenStates.add(key);\n const name = `has${capitalize(op.className)}`;\n const initial = op.op === 'removeClass' ? 'true' : 'false';\n states.push({ name, initialValue: initial, targetKey: targetKey(op.target) });\n stateMap.set(targetKey(op.target) + ':class:' + op.className, name);\n }\n break;\n }\n\n case 'show':\n case 'hide': {\n const tk = targetKey(op.target);\n const key = 'visible:' + tk;\n if (!seenStates.has(key)) {\n seenStates.add(key);\n const name = targetStateName(op.target, 'Visible');\n states.push({\n name,\n initialValue: op.op === 'hide' ? 'true' : 'false',\n targetKey: tk,\n });\n stateMap.set(tk + ':visible', name);\n }\n break;\n }\n\n case 'setContent':\n case 'appendContent': {\n const tk = targetKey(op.target);\n const key = 'content:' + tk;\n if (!seenStates.has(key)) {\n seenStates.add(key);\n const name = targetStateName(op.target, 'Content');\n states.push({ name, initialValue: \"''\", targetKey: tk });\n stateMap.set(tk + ':content', name);\n }\n break;\n }\n\n case 'setVariable': {\n const key = 'var:' + op.name;\n if (!seenStates.has(key)) {\n seenStates.add(key);\n const name = cleanVarName(op.name);\n const typeAnn = inferType(op.value);\n states.push({\n name,\n initialValue: inferInitial(op.value, typeAnn),\n targetKey: 'var:' + op.name,\n });\n stateMap.set('var:' + op.name, name);\n }\n break;\n }\n\n case 'increment':\n case 'decrement': {\n const tk = targetKey(op.target);\n const key = 'num:' + tk;\n if (!seenStates.has(key)) {\n seenStates.add(key);\n const name = targetStateName(op.target, 'Count');\n states.push({ name, initialValue: '0', targetKey: tk });\n stateMap.set(tk + ':num', name);\n }\n break;\n }\n\n case 'fetch': {\n if (op.target) {\n const tk = targetKey(op.target);\n const key = 'content:' + tk;\n if (!seenStates.has(key)) {\n seenStates.add(key);\n const name = targetStateName(op.target, 'Content');\n states.push({ name, initialValue: \"''\", targetKey: tk });\n stateMap.set(tk + ':content', name);\n }\n }\n break;\n }\n\n case 'focus':\n case 'blur': {\n const tk = targetKey(op.target);\n if (!refMap.has(tk)) {\n const name = targetRefName(op.target);\n refs.push({ name, targetKey: tk });\n refMap.set(tk, name);\n }\n break;\n }\n\n case 'triggerEvent': {\n const tk = targetKey(op.target);\n if (!refMap.has(tk)) {\n const name = targetRefName(op.target);\n refs.push({ name, targetKey: tk });\n refMap.set(tk, name);\n }\n break;\n }\n }\n }\n\n return { states, refs, stateMap, refMap, ts };\n}\n\n// =============================================================================\n// Operation Code Generation (Svelte: direct mutation)\n// =============================================================================\n\nfunction generateOperationCode(op: AbstractOperation, analysis: SvelteAnalysis): string[] {\n switch (op.op) {\n case 'toggleClass': {\n const stateVar = analysis.stateMap.get(targetKey(op.target) + ':class:' + op.className);\n return [`${stateVar ?? 'state'} = !${stateVar ?? 'state'}`];\n }\n\n case 'addClass': {\n const stateVar = analysis.stateMap.get(targetKey(op.target) + ':class:' + op.className);\n return [`${stateVar ?? 'state'} = true`];\n }\n\n case 'removeClass': {\n const stateVar = analysis.stateMap.get(targetKey(op.target) + ':class:' + op.className);\n return [`${stateVar ?? 'state'} = false`];\n }\n\n case 'show': {\n const stateVar = analysis.stateMap.get(targetKey(op.target) + ':visible');\n return [`${stateVar ?? 'visible'} = true`];\n }\n\n case 'hide': {\n const stateVar = analysis.stateMap.get(targetKey(op.target) + ':visible');\n return [`${stateVar ?? 'visible'} = false`];\n }\n\n case 'setContent': {\n const stateVar = analysis.stateMap.get(targetKey(op.target) + ':content');\n return [`${stateVar ?? 'content'} = '${escapeString(op.content)}'`];\n }\n\n case 'appendContent': {\n const stateVar = analysis.stateMap.get(targetKey(op.target) + ':content');\n return [`${stateVar ?? 'content'} += '${escapeString(op.content)}'`];\n }\n\n case 'setVariable': {\n const stateVar = analysis.stateMap.get('var:' + op.name);\n const val = isNumeric(op.value) ? op.value : `'${escapeString(op.value)}'`;\n return [`${stateVar ?? 'value'} = ${val}`];\n }\n\n case 'increment': {\n const stateVar = analysis.stateMap.get(targetKey(op.target) + ':num');\n return [`${stateVar ?? 'count'} += ${op.amount}`];\n }\n\n case 'decrement': {\n const stateVar = analysis.stateMap.get(targetKey(op.target) + ':num');\n return [`${stateVar ?? 'count'} -= ${op.amount}`];\n }\n\n case 'navigate':\n return [`window.location.href = '${escapeString(op.url)}'`];\n\n case 'historyBack':\n return ['window.history.back()'];\n\n case 'historyForward':\n return ['window.history.forward()'];\n\n case 'fetch': {\n const lines: string[] = [];\n lines.push(`const response = await fetch('${escapeString(op.url)}')`);\n if (op.format === 'json') {\n lines.push('const data = await response.json()');\n } else {\n lines.push('const data = await response.text()');\n }\n if (op.target) {\n const stateVar = analysis.stateMap.get(targetKey(op.target) + ':content');\n if (op.format === 'json') {\n lines.push(`${stateVar ?? 'content'} = JSON.stringify(data)`);\n } else {\n lines.push(`${stateVar ?? 'content'} = data`);\n }\n }\n return lines;\n }\n\n case 'wait':\n return [`await new Promise(resolve => setTimeout(resolve, ${op.durationMs}))`];\n\n case 'focus': {\n const refName = analysis.refMap.get(targetKey(op.target));\n return [`${refName ?? 'ref'}?.focus()`];\n }\n\n case 'blur': {\n const refName = analysis.refMap.get(targetKey(op.target));\n return [`${refName ?? 'ref'}?.blur()`];\n }\n\n case 'triggerEvent': {\n const refName = analysis.refMap.get(targetKey(op.target));\n return [\n `${refName ?? 'ref'}?.dispatchEvent(new CustomEvent('${escapeString(op.eventName)}', { bubbles: true }))`,\n ];\n }\n\n case 'log':\n return [`console.log(${op.values.map(v => `'${escapeString(v)}'`).join(', ')})`];\n\n default:\n return [`// Unsupported: ${(op as AbstractOperation).op}`];\n }\n}\n\n// =============================================================================\n// Template Generation\n// =============================================================================\n\nfunction generateTemplate(\n spec: BehaviorSpec,\n analysis: SvelteAnalysis,\n handlerName: string\n): string[] {\n const lines: string[] = [];\n const elements = collectTargetElements(spec);\n const eventAttr = `on${spec.trigger.event}`;\n\n // Trigger element\n const triggerTag = inferTriggerTag(spec);\n const triggerAttrs: string[] = [`${eventAttr}={${handlerName}}`];\n\n // Class directives on trigger\n const selfClassStates = getSelfClassStates(spec, analysis.stateMap);\n for (const s of selfClassStates) {\n triggerAttrs.push(`class:${s.className}={${s.stateName}}`);\n }\n\n const triggerContent = inferTriggerContent(spec);\n lines.push(`<${triggerTag} ${triggerAttrs.join(' ')}>${triggerContent}</${triggerTag}>`);\n\n // Target elements\n for (const el of elements) {\n const elLines = renderSvelteElement(el, analysis);\n for (const l of elLines) {\n lines.push(l);\n }\n }\n\n return lines;\n}\n\ninterface TemplateElement {\n selector: string;\n tag: string;\n id?: string;\n className?: string;\n ops: AbstractOperation[];\n}\n\nfunction collectTargetElements(spec: BehaviorSpec): TemplateElement[] {\n const seen = new Set<string>();\n const elements: TemplateElement[] = [];\n\n for (const op of spec.operations) {\n if (!('target' in op)) continue;\n const target = (op as { target: TargetRef }).target;\n if (target.kind !== 'selector') continue;\n\n if (spec.triggerTarget.kind === 'selector' && spec.triggerTarget.value === target.value)\n continue;\n\n const sel = target.value;\n if (seen.has(sel)) {\n const existing = elements.find(e => e.selector === sel);\n if (existing) existing.ops.push(op);\n continue;\n }\n seen.add(sel);\n\n const tag = selectorToTag(sel);\n const id = sel.startsWith('#') ? sel.slice(1) : undefined;\n const cls = sel.startsWith('.') ? sel.slice(1) : undefined;\n\n elements.push({ selector: sel, tag, id, className: cls, ops: [op] });\n }\n\n return elements;\n}\n\nfunction renderSvelteElement(el: TemplateElement, analysis: SvelteAnalysis): string[] {\n const lines: string[] = [];\n const attrs: string[] = [];\n\n if (el.id) attrs.push(`id=\"${el.id}\"`);\n\n // Class directives\n const classStates: { stateName: string; className: string }[] = [];\n for (const op of el.ops) {\n if (op.op === 'toggleClass' || op.op === 'addClass' || op.op === 'removeClass') {\n const stateVar = analysis.stateMap.get(el.selector + ':class:' + op.className);\n if (stateVar) {\n classStates.push({ stateName: stateVar, className: op.className });\n }\n }\n }\n\n if (el.className) {\n attrs.push(`class=\"${el.className}\"`);\n }\n for (const s of classStates) {\n attrs.push(`class:${s.className}={${s.stateName}}`);\n }\n\n // Ref binding\n const refName = analysis.refMap.get(el.selector);\n if (refName) {\n attrs.push(`bind:this={${refName}}`);\n }\n\n // Visibility\n const visState = analysis.stateMap.get(el.selector + ':visible');\n\n // Content\n const contentState = analysis.stateMap.get(el.selector + ':content');\n const numState = analysis.stateMap.get(el.selector + ':num');\n\n const attrStr = attrs.length > 0 ? ' ' + attrs.join(' ') : '';\n const content = contentState ? `{${contentState}}` : numState ? `{${numState}}` : (el.id ?? '');\n\n const elementLine = `<${el.tag}${attrStr}>${content}</${el.tag}>`;\n\n if (visState) {\n lines.push(`{#if ${visState}}`);\n lines.push(` ${elementLine}`);\n lines.push('{/if}');\n } else {\n lines.push(elementLine);\n }\n\n return lines;\n}\n","/**\n * CompilationService — the main orchestrator.\n *\n * Accepts hyperscript in three formats (natural language, explicit syntax, LLM JSON),\n * validates through semantic schemas, and compiles to optimized JavaScript.\n */\n\nimport type {\n CompileRequest,\n CompileResponse,\n ValidationResponse,\n TranslateRequest,\n TranslateResponse,\n TestRequest,\n TestResponse,\n ComponentRequest,\n ComponentResponse,\n DiffRequest,\n DiffResponse,\n GenerateRequest,\n GenerateResponse,\n ServiceOptions,\n SemanticJSON,\n SemanticJSONValue,\n Diagnostic,\n} from './types.js';\nimport { diffBehaviors } from './diff/diff.js';\nimport { scoreNodes, type ScoreRequest, type ScoreResponse } from './scoring/score.js';\nimport { normalize, initNormalizer } from './input/normalize.js';\nimport {\n runValidationGates,\n initValidation,\n type ValidationFunctions,\n} from './validation/gates.js';\nimport {\n compileSemanticNode,\n initBridge,\n type BridgeFunctions,\n type AOTCompilerLike,\n} from './compile/bridge.js';\nimport { SemanticCache, generateCacheKey } from './compile/cache.js';\nimport { extractOperations } from './operations/extract.js';\nimport { PlaywrightRenderer } from './renderers/playwright.js';\nimport { ReactRenderer } from './renderers/react.js';\nimport { VueRenderer } from './renderers/vue.js';\nimport { SvelteRenderer } from './renderers/svelte.js';\nimport type { TestRenderer } from './renderers/types.js';\nimport type { ComponentRenderer } from './renderers/component-types.js';\n\n// =============================================================================\n// Service\n// =============================================================================\n\n/** semantic's `findTranslationCollisions`, as the service calls it. */\ntype TranslationCollisionsFn = (\n code: string,\n from: string,\n to: string\n) => ReadonlyArray<{\n readonly name: string;\n readonly occurrences: ReadonlyArray<unknown>;\n readonly rename: string | undefined;\n readonly message: string;\n}>;\n\nexport class CompilationService {\n private cache: SemanticCache;\n private confidenceThreshold: number;\n private translateFn: ((code: string, from: string, to: string) => string) | null = null;\n private translationCollisionsFn: TranslationCollisionsFn | null = null;\n private testRenderers: Map<string, TestRenderer>;\n private componentRenderers: Map<string, ComponentRenderer>;\n\n private constructor(options: ServiceOptions = {}) {\n this.confidenceThreshold = options.confidenceThreshold ?? 0.7;\n this.cache = new SemanticCache(options.cacheSize ?? 500);\n\n // Initialize renderer registries with defaults\n this.testRenderers = new Map<string, TestRenderer>(\n Object.entries(options.testRenderers ?? { playwright: new PlaywrightRenderer() })\n );\n this.componentRenderers = new Map<string, ComponentRenderer>(\n Object.entries(\n options.componentRenderers ?? {\n react: new ReactRenderer(),\n vue: new VueRenderer(),\n svelte: new SvelteRenderer(),\n }\n )\n );\n }\n\n /**\n * Register a test renderer for a given framework.\n */\n registerTestRenderer(framework: string, renderer: TestRenderer): void {\n this.testRenderers.set(framework, renderer);\n }\n\n /**\n * Register a component renderer for a given framework.\n */\n registerComponentRenderer(framework: string, renderer: ComponentRenderer): void {\n this.componentRenderers.set(framework, renderer);\n }\n\n /**\n * Create a CompilationService by dynamically importing dependencies.\n *\n * This async factory resolves @lokascript/semantic and @hyperfixi/aot-compiler\n * at runtime, following the same pattern as createMultilingualCompiler().\n */\n static async create(options: ServiceOptions = {}): Promise<CompilationService> {\n const service = new CompilationService(options);\n\n // Import semantic package\n const semantic = await import('@lokascript/semantic');\n\n // Initialize normalizer with semantic parsing functions\n initNormalizer({\n parseSemantic: semantic.parseSemantic,\n parseExplicit: semantic.parseExplicit,\n isExplicitSyntax: semantic.isExplicitSyntax,\n });\n\n // Initialize validation with schema validator\n // Cast needed: our interface uses `unknown` to avoid importing semantic types\n initValidation({\n validateSemanticResult:\n semantic.validateSemanticResult as ValidationFunctions['validateSemanticResult'],\n });\n\n // Import AOT compiler\n const aot = await import('@hyperfixi/aot-compiler');\n const compiler = aot.createCompiler();\n\n // Initialize bridge with AST builder and compiler\n // Cast needed: our interfaces use `unknown` to avoid direct type dependencies\n initBridge(\n {\n ASTBuilder: semantic.ASTBuilder as unknown as BridgeFunctions['ASTBuilder'],\n fromSemanticAST: semantic.fromSemanticAST as unknown as BridgeFunctions['fromSemanticAST'],\n },\n compiler as unknown as AOTCompilerLike\n );\n\n // Store translate function\n service.translateFn = semantic.translate;\n service.translationCollisionsFn = semantic.findTranslationCollisions;\n\n return service;\n }\n\n // ===========================================================================\n // Public API\n // ===========================================================================\n\n /**\n * Compile hyperscript to JavaScript.\n *\n * Accepts any of three input formats:\n * - `code` + `language`: Natural language hyperscript\n * - `explicit`: Bracket syntax [command role:value ...]\n * - `semantic`: LLM JSON { action, roles, trigger }\n *\n * Returns compiled JS, semantic representation, and diagnostics.\n */\n compile(request: CompileRequest): CompileResponse {\n const diagnostics: Diagnostic[] = [];\n\n // Step 1: Normalize input to SemanticNode\n const normalized = normalize(request);\n diagnostics.push(...normalized.diagnostics);\n\n if (!normalized.node) {\n return { ok: false, diagnostics };\n }\n\n // Step 2: Validate\n const threshold = request.confidence ?? this.confidenceThreshold;\n const gateResult = runValidationGates(normalized.node, normalized.confidence, threshold);\n diagnostics.push(...gateResult.diagnostics);\n\n if (!gateResult.pass) {\n return {\n ok: false,\n confidence: gateResult.adjustedConfidence,\n diagnostics,\n };\n }\n\n // Step 3: Check cache\n const cacheKey = generateCacheKey(normalized.node, {\n optimization: request.optimization,\n target: request.target,\n minify: request.minify,\n });\n\n const cached = this.cache.get(cacheKey);\n if (cached) {\n // Merge current diagnostics with cached (warnings may differ)\n return {\n ...cached,\n confidence: gateResult.adjustedConfidence,\n diagnostics: [...diagnostics, ...cached.diagnostics.filter(d => d.severity !== 'error')],\n };\n }\n\n // Step 4: Compile\n const result = compileSemanticNode(normalized.node, {\n language: request.language,\n optimization: request.optimization,\n target: request.target,\n minify: request.minify,\n });\n\n // Convert bridge warnings/errors to diagnostics\n for (const warning of result.warnings) {\n diagnostics.push({ severity: 'warning', code: 'COMPILE_WARNING', message: warning });\n }\n for (const error of result.errors) {\n diagnostics.push({ severity: 'error', code: 'COMPILE_ERROR', message: error });\n }\n\n if (!result.success) {\n return { ok: false, diagnostics };\n }\n\n // Step 5: Assemble response\n const semanticJSON = nodeToSemanticJSON(normalized.node);\n const response: CompileResponse = {\n ok: true,\n js: result.code,\n helpers: result.helpers,\n size: result.code ? new TextEncoder().encode(result.code).length : 0,\n semantic: semanticJSON,\n confidence: gateResult.adjustedConfidence,\n diagnostics,\n };\n\n // Step 6: Cache\n this.cache.set(cacheKey, response);\n\n return response;\n }\n\n /**\n * Validate input without compiling.\n * Returns semantic representation and diagnostics.\n */\n validate(request: CompileRequest): ValidationResponse {\n const diagnostics: Diagnostic[] = [];\n\n // Normalize\n const normalized = normalize(request);\n diagnostics.push(...normalized.diagnostics);\n\n if (!normalized.node) {\n return { ok: false, diagnostics };\n }\n\n // Validate\n const threshold = request.confidence ?? this.confidenceThreshold;\n const gateResult = runValidationGates(normalized.node, normalized.confidence, threshold);\n diagnostics.push(...gateResult.diagnostics);\n\n const semanticJSON = gateResult.pass ? nodeToSemanticJSON(normalized.node) : undefined;\n\n return {\n ok: gateResult.pass,\n semantic: semanticJSON,\n confidence: gateResult.adjustedConfidence,\n diagnostics,\n };\n }\n\n /**\n * Translate hyperscript between languages.\n */\n translate(request: TranslateRequest): TranslateResponse {\n if (!this.translateFn) {\n return {\n ok: false,\n diagnostics: [\n {\n severity: 'error',\n code: 'NOT_INITIALIZED',\n message: 'Translation not available.',\n },\n ],\n };\n }\n\n try {\n const result = this.translateFn(request.code, request.from, request.to);\n\n // Arc 5's verified-translation badge: score the rendering against its\n // source (cross-language scoreFidelity). Advisory — verification can\n // fail to parse without flipping ok, and its diagnostics stay inside it.\n let verification: ScoreResponse | undefined;\n if (request.verify !== false) {\n verification = this.scoreFidelity({\n reference: { code: request.code, language: request.from },\n candidate: { code: result, language: request.to },\n });\n }\n\n return {\n ok: true,\n code: result,\n ...(verification !== undefined ? { verification } : {}),\n diagnostics: this.translationCollisions(request),\n };\n } catch (error) {\n return {\n ok: false,\n diagnostics: [\n {\n severity: 'error',\n code: 'TRANSLATE_ERROR',\n message: error instanceof Error ? error.message : String(error),\n },\n ],\n };\n }\n }\n\n /**\n * A variable of the source that the target language reads as a value word\n * (tl `ako` is `me`): the translation reads the value, and no spelling of\n * the name tells them apart, so the fix is a rename before translating.\n */\n private translationCollisions(request: TranslateRequest): Diagnostic[] {\n const findings = this.translationCollisionsFn?.(request.code, request.from, request.to) ?? [];\n return findings.map(finding => ({\n severity: 'warning' as const,\n code: 'NAME_COLLISION',\n message: finding.message,\n suggestion: finding.rename\n ? `Rename \\`${finding.name}\\` to \\`${finding.rename}\\` in the source (${finding.occurrences.length} place(s)), then translate.`\n : `Rename \\`${finding.name}\\` in the source, then translate.`,\n }));\n }\n\n /**\n * Generate behavior-level tests from hyperscript.\n *\n * Parses the input, extracts abstract operations (what the behavior does),\n * and renders them as test code in the requested framework.\n */\n generateTests(request: TestRequest): TestResponse {\n const diagnostics: Diagnostic[] = [];\n\n // Step 1: Normalize input to SemanticNode (reuse existing pipeline)\n const normalized = normalize({\n code: request.code,\n explicit: request.explicit,\n semantic: request.semantic,\n language: request.language,\n confidence: request.confidence,\n });\n diagnostics.push(...normalized.diagnostics);\n\n if (!normalized.node) {\n return { ok: false, tests: [], operations: [], diagnostics };\n }\n\n // Step 2: Validate\n const threshold = request.confidence ?? this.confidenceThreshold;\n const gateResult = runValidationGates(normalized.node, normalized.confidence, threshold);\n diagnostics.push(...gateResult.diagnostics);\n\n if (!gateResult.pass) {\n return { ok: false, tests: [], operations: [], diagnostics };\n }\n\n // Step 3: Extract abstract operations\n const spec = extractOperations(normalized.node);\n\n if (spec.operations.length === 0) {\n diagnostics.push({\n severity: 'warning',\n code: 'NO_OPERATIONS',\n message: 'No testable operations extracted from the input.',\n });\n return { ok: false, tests: [], operations: [], diagnostics };\n }\n\n // Attach source hyperscript for test naming\n if (!spec.source && request.code) {\n spec.source = request.code;\n }\n\n // Step 4: Render tests\n const frameworkName = request.framework ?? 'playwright';\n const renderer = this.testRenderers.get(frameworkName);\n if (!renderer) {\n diagnostics.push({\n severity: 'error',\n code: 'UNKNOWN_FRAMEWORK',\n message: `No test renderer registered for framework '${frameworkName}'. Available: ${[...this.testRenderers.keys()].join(', ')}`,\n });\n return { ok: false, tests: [], operations: [], diagnostics };\n }\n\n // Optionally compile for 'compiled' execution mode\n let compiledJs: string | undefined;\n if (request.executionMode === 'compiled') {\n const compileResult = this.compile({\n code: request.code,\n explicit: request.explicit,\n semantic: request.semantic,\n language: request.language,\n });\n if (compileResult.ok && compileResult.js) {\n compiledJs = compileResult.js;\n }\n }\n\n const generated = renderer.render(spec, {\n testName: request.testName,\n executionMode: request.executionMode,\n bundlePath: request.bundlePath,\n hyperscript: request.code ?? request.explicit,\n compiledJs,\n });\n\n const semanticJSON = nodeToSemanticJSON(normalized.node);\n\n return {\n ok: true,\n tests: [\n {\n name: generated.name,\n code: generated.code,\n html: generated.html,\n framework: generated.framework,\n },\n ],\n operations: spec.operations,\n semantic: semanticJSON,\n diagnostics,\n };\n }\n\n /**\n * Generate a framework component from hyperscript.\n *\n * Parses the input, extracts abstract operations, and renders\n * them as a framework-specific component (React, Vue, or Svelte).\n */\n generateComponent(request: ComponentRequest): ComponentResponse {\n const diagnostics: Diagnostic[] = [];\n\n // Step 1: Normalize input to SemanticNode\n const normalized = normalize({\n code: request.code,\n explicit: request.explicit,\n semantic: request.semantic,\n language: request.language,\n confidence: request.confidence,\n });\n diagnostics.push(...normalized.diagnostics);\n\n if (!normalized.node) {\n return { ok: false, operations: [], diagnostics };\n }\n\n // Step 2: Validate\n const threshold = request.confidence ?? this.confidenceThreshold;\n const gateResult = runValidationGates(normalized.node, normalized.confidence, threshold);\n diagnostics.push(...gateResult.diagnostics);\n\n if (!gateResult.pass) {\n return { ok: false, operations: [], diagnostics };\n }\n\n // Step 3: Extract abstract operations\n const spec = extractOperations(normalized.node);\n\n if (spec.operations.length === 0) {\n diagnostics.push({\n severity: 'warning',\n code: 'NO_OPERATIONS',\n message: 'No operations extracted from the input.',\n });\n return { ok: false, operations: [], diagnostics };\n }\n\n if (!spec.source && request.code) {\n spec.source = request.code;\n }\n\n // Step 4: Render component\n const frameworkName = request.framework ?? 'react';\n const renderer = this.componentRenderers.get(frameworkName);\n if (!renderer) {\n diagnostics.push({\n severity: 'error',\n code: 'UNKNOWN_FRAMEWORK',\n message: `No component renderer registered for framework '${frameworkName}'. Available: ${[...this.componentRenderers.keys()].join(', ')}`,\n });\n return { ok: false, operations: [], diagnostics };\n }\n const generated = renderer.render(spec, {\n componentName: request.componentName,\n typescript: request.typescript,\n });\n\n const semanticJSON = nodeToSemanticJSON(normalized.node);\n\n return {\n ok: true,\n component: {\n name: generated.name,\n code: generated.code,\n hooks: generated.hooks,\n framework: generated.framework,\n },\n operations: spec.operations,\n semantic: semanticJSON,\n diagnostics,\n };\n }\n\n /**\n * Compare two hyperscript inputs at the behavior level.\n *\n * Both sides are independently normalized and validated, then compared\n * as abstract operations. Same behavior in different languages → identical.\n */\n diff(request: DiffRequest): DiffResponse {\n const diagnostics: Diagnostic[] = [];\n const threshold = request.confidence ?? this.confidenceThreshold;\n\n // Normalize both sides independently\n const normA = normalize({\n code: request.a.code,\n explicit: request.a.explicit,\n semantic: request.a.semantic,\n language: request.a.language,\n confidence: request.confidence,\n });\n diagnostics.push(...normA.diagnostics.map(d => ({ ...d, message: `[a] ${d.message}` })));\n\n const normB = normalize({\n code: request.b.code,\n explicit: request.b.explicit,\n semantic: request.b.semantic,\n language: request.b.language,\n confidence: request.confidence,\n });\n diagnostics.push(...normB.diagnostics.map(d => ({ ...d, message: `[b] ${d.message}` })));\n\n if (!normA.node || !normB.node) {\n return {\n ok: false,\n identical: false,\n trigger: null,\n operations: [],\n summary: 'Parse failed',\n diagnostics,\n };\n }\n\n // Validate both sides\n const gateA = runValidationGates(normA.node, normA.confidence, threshold);\n diagnostics.push(...gateA.diagnostics.map(d => ({ ...d, message: `[a] ${d.message}` })));\n\n const gateB = runValidationGates(normB.node, normB.confidence, threshold);\n diagnostics.push(...gateB.diagnostics.map(d => ({ ...d, message: `[b] ${d.message}` })));\n\n if (!gateA.pass || !gateB.pass) {\n return {\n ok: false,\n identical: false,\n trigger: null,\n operations: [],\n summary: 'Validation failed',\n diagnostics,\n };\n }\n\n // Extract operations from both\n const specA = extractOperations(normA.node);\n const specB = extractOperations(normB.node);\n\n // Diff\n const result = diffBehaviors(specA, specB);\n\n return {\n ok: true,\n identical: result.identical,\n trigger: result.trigger,\n operations: result.operations,\n summary: result.summary,\n diagnostics,\n };\n }\n\n /**\n * Score a candidate against a reference for structural fidelity — the\n * multilingual ratchet's scorers (docs/FIDELITY.md) applied to one pair of\n * inputs. Sides accept any input format and may be in different languages;\n * see src/scoring/score.ts for signal semantics. Complementary to diff():\n * diff answers \"identical, and where not?\", this answers \"how faithful, and\n * what exactly is missing or hallucinated?\".\n */\n scoreFidelity(request: ScoreRequest): ScoreResponse {\n const diagnostics: Diagnostic[] = [];\n const threshold = request.confidence ?? this.confidenceThreshold;\n\n const normRef = normalize({ ...request.reference, confidence: request.confidence });\n diagnostics.push(\n ...normRef.diagnostics.map(d => ({ ...d, message: `[reference] ${d.message}` }))\n );\n const normCand = normalize({ ...request.candidate, confidence: request.confidence });\n diagnostics.push(\n ...normCand.diagnostics.map(d => ({ ...d, message: `[candidate] ${d.message}` }))\n );\n\n if (!normRef.node || !normCand.node) {\n return { ok: false, diagnostics };\n }\n\n const gateRef = runValidationGates(normRef.node, normRef.confidence, threshold);\n const gateCand = runValidationGates(normCand.node, normCand.confidence, threshold);\n diagnostics.push(\n ...gateRef.diagnostics.map(d => ({ ...d, message: `[reference] ${d.message}` }))\n );\n diagnostics.push(\n ...gateCand.diagnostics.map(d => ({ ...d, message: `[candidate] ${d.message}` }))\n );\n if (!gateRef.pass || !gateCand.pass) {\n return { ok: false, diagnostics };\n }\n\n // A side whose parse left tokens unconsumed was scored on a TRUNCATED\n // node, so every score compares less than was written. Scoring a\n // translation against a truncated reference is how `on load click() me`\n // → `ロード を で` came out faithful 1.0 on every axis: both sides had\n // dropped the same command. The scores stay as measured; `faithful` — the\n // claim \"this rendering is structurally exact\" — needs both parses whole.\n const truncated = (...lists: Diagnostic[][]): boolean =>\n lists.some(ds => ds.some(d => d.code === 'UNCONSUMED_INPUT'));\n const referenceComplete = !truncated(normRef.diagnostics, gateRef.diagnostics);\n const candidateComplete = !truncated(normCand.diagnostics, gateCand.diagnostics);\n if (!referenceComplete || !candidateComplete) {\n const sides = [!referenceComplete && 'reference', !candidateComplete && 'candidate']\n .filter(Boolean)\n .join(' and ');\n diagnostics.push({\n severity: 'warning',\n code: 'INCOMPLETE_PARSE',\n message: `The ${sides} parse left tokens unconsumed, so the scores compare only what parsed; not faithful.`,\n suggestion:\n 'The unconsumed tokens are named in the UNCONSUMED_INPUT diagnostics above. ' +\n 'If the reference is truncated, a translation of it drops the same clause.',\n });\n }\n\n const report = scoreNodes(normRef.node, normCand.node);\n return {\n ok: true,\n diagnostics,\n ...report,\n faithful: report.faithful && referenceComplete && candidateComplete,\n referenceComplete,\n candidateComplete,\n };\n }\n\n /**\n * Generate a target-specific output from LSE (bracket syntax or protocol JSON).\n *\n * Accepts LSE produced by an LLM (via `lse_generate_with_correction` MCP tool),\n * validates it, and renders to the requested target format.\n *\n * Targets:\n * - 'js' — compiled JavaScript (default)\n * - 'react' — React component\n * - 'vue' — Vue component\n * - 'svelte' — Svelte component\n * - 'intent-element' — HTML snippet with embedded `<lse-intent>` JSON\n */\n async generate(request: GenerateRequest): Promise<GenerateResponse> {\n const { lse, target = 'js', task } = request;\n const diagnostics: Diagnostic[] = [];\n\n const isJSON = lse.trimStart().startsWith('{');\n\n // ── intent-element: validate via @lokascript/intent, render HTML ───────\n if (target === 'intent-element') {\n try {\n const { parseExplicit, toProtocolJSON, validateProtocolJSON, fromProtocolJSON } =\n await import('@lokascript/framework');\n\n let node: import('@lokascript/framework').SemanticNode | null = null;\n\n if (isJSON) {\n let parsed: unknown;\n try {\n parsed = JSON.parse(lse);\n } catch {\n return {\n ok: false,\n diagnostics: [\n { severity: 'error', code: 'INVALID_JSON', message: 'LSE is not valid JSON' },\n ],\n };\n }\n const protoDiags = validateProtocolJSON(parsed as Record<string, unknown>);\n for (const d of protoDiags) {\n diagnostics.push({\n severity: d.severity as 'error' | 'warning' | 'info',\n code: d.code,\n message: d.message,\n });\n }\n if (!protoDiags.some(d => d.severity === 'error')) {\n node = fromProtocolJSON(parsed as Parameters<typeof fromProtocolJSON>[0]);\n }\n } else {\n try {\n node = parseExplicit(lse);\n } catch (e) {\n return {\n ok: false,\n diagnostics: [\n {\n severity: 'error',\n code: 'PARSE_ERROR',\n message: e instanceof Error ? e.message : String(e),\n },\n ],\n };\n }\n }\n\n if (!node) {\n return { ok: false, diagnostics };\n }\n\n const protocol = toProtocolJSON(node);\n const protocolStr = JSON.stringify(protocol, null, 2);\n const taskComment = task ? `<!-- Task: ${task.replace(/-->/g, '-\\\\->')} -->\\n` : '';\n\n // Infer a declarative trigger attribute from the node.\n //\n // - event-handler nodes carry their event name in roles.get('event')\n // as a literal (wire-format trigger sugar is unwrapped into this\n // shape by fromProtocolJSON). Emit trigger=\"<event>\".\n // - Everything else gets trigger=\"load\" — the element fires\n // validation+execution on connect. This matches the default\n // behavior and is the safest choice when no event is specified.\n let triggerAttr = 'load';\n if (node.kind === 'event-handler') {\n const eventValue = node.roles.get('event');\n if (\n eventValue &&\n eventValue.type === 'literal' &&\n typeof eventValue.value === 'string' &&\n eventValue.value.length > 0\n ) {\n triggerAttr = eventValue.value;\n }\n }\n const escapedTrigger = triggerAttr.replace(/\"/g, '"');\n\n const output = [\n `${taskComment}<lse-intent trigger=\"${escapedTrigger}\">`,\n ` <script type=\"application/lse+json\">`,\n protocolStr\n .split('\\n')\n .map(l => ` ${l}`)\n .join('\\n'),\n ` </script>`,\n `</lse-intent>`,\n ].join('\\n');\n\n const semanticJSON = nodeToSemanticJSON(node);\n\n return { ok: true, output, protocol: semanticJSON, diagnostics };\n } catch (e) {\n return {\n ok: false,\n diagnostics: [\n {\n severity: 'error',\n code: 'INTERNAL_ERROR',\n message: e instanceof Error ? e.message : String(e),\n },\n ],\n };\n }\n }\n\n // ── framework targets: delegate to existing pipeline ───────────────────\n\n const componentTargets = ['react', 'vue', 'svelte'] as const;\n type ComponentTarget = (typeof componentTargets)[number];\n\n if ((componentTargets as readonly string[]).includes(target)) {\n const componentRequest: ComponentRequest = isJSON\n ? { semantic: JSON.parse(lse) as SemanticJSON }\n : { explicit: lse };\n const result = this.generateComponent({\n ...componentRequest,\n framework: target as ComponentTarget,\n });\n return {\n ok: result.ok,\n output: result.component?.code,\n protocol: result.semantic,\n diagnostics: result.diagnostics,\n };\n }\n\n // ── js (default): compile to JavaScript ────────────────────────────────\n\n const compileRequest: CompileRequest = isJSON\n ? { semantic: JSON.parse(lse) as SemanticJSON }\n : { explicit: lse };\n const result = this.compile(compileRequest);\n return {\n ok: result.ok,\n output: result.js,\n protocol: result.semantic,\n diagnostics: result.diagnostics,\n };\n }\n\n /**\n * Get cache statistics.\n */\n getCacheStats(): { size: number; hits: number; misses: number; hitRate: number } {\n const total = this.cache.hits + this.cache.misses;\n return {\n size: this.cache.size,\n hits: this.cache.hits,\n misses: this.cache.misses,\n hitRate: total > 0 ? this.cache.hits / total : 0,\n };\n }\n\n /**\n * Clear the compilation cache.\n */\n clearCache(): void {\n this.cache.clear();\n }\n}\n\n// =============================================================================\n// Helpers\n// =============================================================================\n\n/**\n * Flatten a SemanticValue (possibly nested property-path) to a string.\n */\nfunction extractSemanticValueString(v: unknown): string {\n if (!v || typeof v !== 'object') return '';\n const sv = v as {\n type?: string;\n value?: unknown;\n raw?: string;\n object?: unknown;\n property?: string;\n };\n if (sv.type === 'property-path') {\n return `${extractSemanticValueString(sv.object)}.${sv.property ?? ''}`;\n }\n return String(sv.value ?? sv.raw ?? '');\n}\n\n/**\n * Convert a SemanticNode to SemanticJSON for the response.\n */\nfunction nodeToSemanticJSON(node: unknown): SemanticJSON | undefined {\n if (!node || typeof node !== 'object') return undefined;\n\n const n = node as {\n kind?: string;\n action?: string;\n roles?: ReadonlyMap<string, unknown>;\n body?: unknown[];\n eventModifiers?: Record<string, unknown>;\n };\n\n if (!n.action) return undefined;\n\n const roles: Record<string, SemanticJSONValue> = {};\n\n if (n.roles && typeof n.roles.entries === 'function') {\n for (const [role, value] of n.roles.entries()) {\n if (role === 'event') continue; // Handled via trigger\n const v = value as { type?: string; value?: unknown; raw?: string };\n if (v && v.type) {\n if (v.type === 'property-path') {\n roles[role] = {\n type: 'property-path',\n value: extractSemanticValueString(v),\n };\n } else {\n const valueType = v.type as SemanticJSONValue['type'];\n roles[role] = {\n type: (['selector', 'literal', 'reference', 'expression'].includes(valueType)\n ? valueType\n : 'literal') as SemanticJSONValue['type'],\n value: (v.value ?? v.raw ?? '') as string | number | boolean,\n };\n }\n }\n }\n }\n\n // Handle event handlers\n if (n.kind === 'event-handler' || n.action === 'on') {\n const eventRole =\n n.roles && typeof n.roles.get === 'function'\n ? (n.roles.get('event') as { value?: unknown; raw?: unknown } | undefined)\n : undefined;\n\n // For event handlers, return the body command's semantic JSON\n if (n.body && n.body.length > 0) {\n const bodyJSON = nodeToSemanticJSON(n.body[0]);\n if (bodyJSON) {\n bodyJSON.trigger = {\n event: eventNameOf(eventRole),\n modifiers: n.eventModifiers,\n };\n return bodyJSON;\n }\n }\n\n return {\n action: n.action,\n roles,\n trigger: {\n event: eventNameOf(eventRole),\n modifiers: n.eventModifiers,\n },\n };\n }\n\n return { action: n.action, roles };\n}\n\n/**\n * The event name of a handler's `event` role. A colon-qualified event\n * (`htmx:beforeRequest`, `draggable:start`) arrives as an `expression` with\n * `raw`, not a literal with `value`, and reading `value` alone reported every\n * one of them as `click`.\n */\nexport function eventNameOf(eventRole: { value?: unknown; raw?: unknown } | undefined): string {\n const name = eventRole?.value ?? eventRole?.raw;\n return typeof name === 'string' && name.length > 0 ? name : 'click';\n}\n","/**\n * LLM JSON input validation and conversion.\n *\n * Re-exports from @lokascript/framework/ir — the canonical IR layer.\n */\n\nexport {\n validateSemanticJSON,\n jsonToSemanticNode,\n semanticNodeToJSON,\n} from '@lokascript/framework/ir';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwOO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SEhKS,kBAAe;AAC7B,SAAO;IACL,OAAO;IACP,UAAU;IACV,MAAM;IACN,QAAQ;IACR,QAAQ,CAAA;;AAEZ;AAEM,SAAU,SAAS,OAAa;AACpC,QAAM,YAAY,gBAAe;AACjC,YAAU,QAAQ;AAElB,QAAM,cAAc,MAAM;AAE1B,SAAO,UAAU,WAAW,aAAa;AACvC,mBAAe,SAAS;AAExB,QAAI,UAAU,YAAY;AAAa;AAEvC,UAAM,OAAO,MAAM,UAAU,QAAQ;AAGrC,QAAI,SAAS,OAAO,KAAK,WAAW,CAAC,MAAM,KAAK;AAC9C,sBAAgB,SAAS;AACzB;IACF;AAGA,QAAI,SAAS,KAAK;AAChB,qBAAe,SAAS;AACxB;IACF;AAEA,QAAI,SAAS,OAAO,SAAS,KAAK;AAEhC,YAAM,WAAW,KAAK,WAAW,CAAC;AAClC,YAAM,YAAY,UAAU,OAAO,UAAU,OAAO,SAAS,CAAC;AAC9D,YAAM,eACJ,aAAa,OACb,aAYA,CAAC,KAAK,KAAK,UAAU,MAAM,UAAU,WAAW,CAAC,KAAK,GAAG,MACxD,UAAU,SAAS,UAAU,cAC5B,UAAU,SAAS,UAAU,YAE7B,UAAU,UAAU,OACpB,UAAU,UAAU,OACpB,UAAU,UAAU;AAExB,UAAI,cAAc;AAEhB,cAAM,QAAQ,UAAU;AACxB,gBAAQ,SAAS;AACjB,gBAAQ,SAAS;AACjB,iBAAS,WAAW,UAAU,UAAU,MAAM,KAAK;MACrD,OAAO;AAEL,uBAAe,SAAS;MAC1B;AACA;IACF;AAGA,QAAI,SAAS,KAAK;AAChB,8BAAwB,SAAS;AACjC;IACF;AAGA,QAAI,SAAS,KAAK;AAGhB,UAAI,wBAAwB,SAAS,GAAG;AACtC,+BAAuB,SAAS;MAClC,OAAO;AAEL,yBAAiB,SAAS;MAC5B;AACA;IACF;AAGA,QAAI,SAAS,KAAK;AAChB,0BAAoB,SAAS;AAC7B;IACF;AAEA,QAAI,SAAS,KAAK;AAEhB,YAAM,WAAW,KAAK,WAAW,CAAC;AAClC,UAAI,aAAa,KAAK;AAEpB,cAAM,QAAQ,UAAU;AACxB,gBAAQ,SAAS;AACjB,gBAAQ,SAAS;AACjB,iBAAS,WAAW,UAAU,UAAU,MAAM,KAAK;AACnD;MACF;AAIA,YAAM,YAAY,UAAU,OAAO,UAAU,OAAO,SAAS,CAAC;AAE9D,YAAM,4BAA4B,oBAAI,IAAI;QACxC;QACA;QACA;QACA;QACA;QACA;QAGA;QAEA;QACA;QACA;QACA;QACA;QACA;QAIA;QAGA;QACA;MACD,CAAA;AAED,YAAM,mBACJ,aACA,UAAU,SAAS,UAAU,cAC7B,SAAS,IAAI,UAAU,MAAM,YAAW,CAAE;AAE5C,YAAM,mBACJ,aACA,UAAU,SAAS,UAAU,cAC7B,0BAA0B,IAAI,UAAU,MAAM,YAAW,CAAE;AAC7D,YAAM,uBACJ,CAAC,aACA,UAAU,SAAS,UAAU,YAE5B,UAAU,UAAU,OACpB,UAAU,UAAU,OACtB,oBACA,oBACA,UAAU,UAAU,OACpB,UAAU,UAAU,OACpB,UAAU,UAAU,OACpB,UAAU,UAAU,OACpB,UAAU,UAAU;AAItB,YAAM,mBAAmB,aAAa,UAAU,QAAQ,UAAU;AAElE,UACE,wBACA,CAAC,qBAGA,QAAQ,KAAK,SAAS,CAAC,KAAK,KAAK,SAAS,MAAM,OAAO,KAAK,SAAS,MAAM,MAC5E;AACA,4BAAoB,SAAS;AAC7B;MACF;IAEF;AAGA,QAAI,SAAS,KAAK;AAChB,qBAAe,SAAS;AACxB;IACF;AAGA,QAAI,SAAS,KAAK;AAQhB,cAAQ,SAAS;AACjB,eAAS,WAAW,UAAU,UAAU,GAAG;AAC3C;IACF;AAGA,QAAI,SAAS,KAAK;AAChB,cAAQ,SAAS;AACjB,eAAS,WAAW,UAAU,UAAU,GAAG;AAC3C;IACF;AAEA,QAAI,SAAS,KAAK;AAEhB,YAAM,YAAY,UAAU,OAAO,UAAU,OAAO,SAAS,CAAC;AAG9D,YAAM,mBACJ,aACA,UAAU,SAAS,UAAU,cAC7B,WAAW,IAAI,UAAU,KAAK,KAC9B,UAAU,OAAO,UAAU,KAC3B,UAAU,OAAO,UAAU,OAAO,SAAS,CAAC,GAAG,UAAU;AAE3D,YAAM,iBACJ,cACC,UAAU,SAAS,UAAU,cAC5B,UAAU,UAAU,OACpB,UAAU,UAAU,QACtB,CAAC;AAGH,UAAI,gBAAgB;AAElB,gBAAQ,SAAS;AACjB,iBAAS,WAAW,UAAU,UAAU,GAAG;MAC7C,OAAO;AAEL,YAAI,kBAAkB;AAEpB,kBAAQ,SAAS;AACjB,mBAAS,WAAW,UAAU,QAAQ,GAAG;QAC3C,OAAO;AAGL,kBAAQ,SAAS;AACjB,mBAAS,WAAW,UAAU,UAAU,GAAG;QAC7C;MACF;AACA;IACF;AAGA,QAAI,SAAS,KAAK;AAChB,cAAQ,SAAS;AACjB,eAAS,WAAW,UAAU,UAAU,GAAG;AAC3C;IACF;AAGA,QAAI,SAAS,KAAK;AAChB,YAAM,WAAW,KAAK,WAAW,CAAC;AAElC,UACG,YAAY,OAAO,YAAY,OAC/B,YAAY,OAAO,YAAY,OAChC,aAAa,KACb;AACA,+BAAuB,SAAS;AAChC;MACF;IAEF;AAGA,QAAI,eAAe,IAAI,GAAG;AACxB,uBAAiB,SAAS;AAC1B;IACF;AAGA,QAAI,QAAQ,OAAO,QAAQ,KAAK;AAE9B,2BAAqB,SAAS;AAC9B;IACF;AAGA,QAAK,QAAQ,OAAO,QAAQ,OAAS,QAAQ,OAAO,QAAQ,OAAQ,SAAS,KAAK;AAChF,yBAAmB,SAAS;AAC5B;IACF;AAGA,aAAS,WAAW,UAAU,SAAS,IAAI;AAC3C,YAAQ,SAAS;EACnB;AAMA,SAAO,UAAU;AACnB;AAEA,SAAS,KAAK,WAAsB,SAAiB,GAAC;AACpD,QAAMA,OAAM,UAAU,WAAW;AACjC,SAAOA,OAAM,UAAU,MAAM,SAAS,UAAU,MAAMA,IAAG,IAAI;AAC/D;AAEA,SAAS,QAAQ,WAAoB;AACnC,QAAM,OAAO,UAAU,MAAM,UAAU,QAAQ;AAC/C,YAAU;AAEV,MAAI,SAAS,MAAM;AACjB,cAAU;AACV,cAAU,SAAS;EACrB,WAAW,SAAS,MAAM;AAExB,UAAM,WACJ,UAAU,WAAW,UAAU,MAAM,SAAS,UAAU,MAAM,UAAU,QAAQ,IAAI;AACtF,QAAI,aAAa,MAAM;AAErB,gBAAU;IACZ;AACA,cAAU;AACV,cAAU,SAAS;EACrB,OAAO;AACL,cAAU;EACZ;AAEA,SAAO;AACT;AAEA,SAAS,eAAe,WAAoB;AAC1C,QAAM,QAAQ,UAAU;AACxB,QAAM,cAAc,MAAM;AAE1B,SAAO,UAAU,WAAW,aAAa;AACvC,UAAM,OAAO,MAAM,UAAU,QAAQ;AAErC,QAAI,SAAS,OAAO,SAAS,OAAQ,SAAS,QAAQ,SAAS,MAAM;AACnE,cAAQ,SAAS;IACnB,OAAO;AACL;IACF;EACF;AACF;AAEA,SAAS,SACP,WACA,MACA,OACA,OACA,KAAY;AAEZ,QAAM,aAAa,SAAS,UAAU,WAAW,MAAM;AACvD,QAAM,WAAkB,UAAU;AAGlC,MAAI,cAAc,UAAU,SAAS,MAAM;AAC3C,MAAI,UAAU,QAAW;AAEvB,kBAAc,aAAa,UAAU,OAAO,KAAK,EAAE;EACrD;AAEA,QAAM,QAAuC;IAC3C;IACA;IACA,OAAO;IACP,KAAK;IACL,MAAM,kBAAkB,WAAW,UAAU;IAC7C,QAAQ;;AAGV,YAAU,OAAO,KAAK,KAAK;AAC7B;AAcM,SAAU,aAAa,OAAe,QAAc;AACxD,MAAI,OAAO;AACX,MAAI,YAAY;AAChB,QAAM,QAAQ,KAAK,IAAI,QAAQ,MAAM,MAAM;AAC3C,WAAS,IAAI,GAAG,IAAI,OAAO,KAAK;AAC9B,UAAM,OAAO,MAAM,CAAC;AACpB,QAAI,SAAS,MAAM;AACjB;AACA,kBAAY;IACd,WAAW,SAAS,MAAM;AACxB;AAEA,UAAI,IAAI,IAAI,MAAM,UAAU,MAAM,IAAI,CAAC,MAAM,MAAM;AACjD;MACF;AACA,kBAAY;IACd;EACF;AACA,SAAO,EAAE,MAAM,QAAQ,SAAS,UAAS;AAC3C;AAEA,SAAS,kBAAkB,WAAsB,UAAgB;AAC/D,SAAO,aAAa,UAAU,OAAO,QAAQ,EAAE;AACjD;AAEA,SAAS,gBAAgB,WAAoB;AAC3C,QAAM,QAAQ,UAAU;AACxB,MAAI,QAAQ;AAGZ,UAAQ,SAAS;AACjB,UAAQ,SAAS;AAGjB,SAAO,UAAU,WAAW,UAAU,MAAM,QAAQ;AAClD,UAAM,OAAO,UAAU,MAAM,UAAU,QAAQ;AAC/C,QAAI,SAAS;AAAM;AACnB,aAAS,QAAQ,SAAS;EAC5B;AAEA,WAAS,WAAW,UAAU,SAAS,OAAO,OAAO,KAAK;AAC5D;AAEA,SAAS,eAAe,WAAoB;AAC1C,QAAM,QAAQ,UAAU;AACxB,QAAM,QAAQ,QAAQ,SAAS;AAC/B,MAAI,QAAQ;AAEZ,SAAO,UAAU,WAAW,UAAU,MAAM,QAAQ;AAClD,UAAM,OAAO,QAAQ,SAAS;AAC9B,aAAS;AAET,QAAI,SAAS;AAAO;AACpB,QAAI,SAAS,MAAM;AAEjB,UAAI,UAAU,WAAW,UAAU,MAAM,QAAQ;AAC/C,iBAAS,QAAQ,SAAS;MAC5B;IACF;EACF;AAEA,WAAS,WAAW,UAAU,QAAQ,OAAO,KAAK;AACpD;AAEA,SAAS,wBAAwB,WAAoB;AACnD,QAAM,QAAQ,UAAU;AACxB,UAAQ,SAAS;AACjB,MAAI,QAAQ;AAEZ,SAAO,UAAU,WAAW,UAAU,MAAM,QAAQ;AAClD,UAAM,OAAO,UAAU,MAAM,UAAU,QAAQ;AAE/C,QAAI,SAAS,KAAK;AAChB,cAAQ,SAAS;AACjB;IACF;AAEA,QAAI,SAAS,MAAM;AAEjB,cAAQ,SAAS;AACjB,UAAI,UAAU,WAAW,UAAU,MAAM,QAAQ;AAC/C,cAAM,UAAU,QAAQ,SAAS;AAEjC,gBAAQ,SAAO;UACb,KAAK;AACH,qBAAS;AACT;UACF,KAAK;AACH,qBAAS;AACT;UACF,KAAK;AACH,qBAAS;AACT;UACF,KAAK;AACH,qBAAS;AACT;UACF,KAAK;AACH,qBAAS;AACT;UACF;AACE,qBAAS;;MAEf;IACF,OAAO;AACL,eAAS,QAAQ,SAAS;IAC5B;EACF;AAGA,MAAI,UAAU,YAAY,UAAU,MAAM,UAAU,CAAC,UAAU,MAAM,SAAS,GAAG,GAAG;AAClF,UAAM,IAAI,MACR,yCAAyC,UAAU,IAAI,YAAY,UAAU,SAAS,MAAM,MAAM,EAAE;EAExG;AAEA,WAAS,WAAW,UAAU,UAAU,OAAO,KAAK;AACtD;AAEA,SAAS,oBAAoB,WAAoB;AAC/C,QAAM,QAAQ,UAAU;AACxB,QAAMC,UAAS,QAAQ,SAAS;AAChC,MAAI,QAAQA;AAIZ,MAAI,UAAU,WAAW,UAAU,MAAM,UAAU,UAAU,MAAM,UAAU,QAAQ,MAAM,KAAK;AAC9F,aAAS,QAAQ,SAAS;AAC1B,WAAO,UAAU,WAAW,UAAU,MAAM,QAAQ;AAClD,YAAM,KAAK,UAAU,MAAM,UAAU,QAAQ;AAC7C,eAAS,QAAQ,SAAS;AAC1B,UAAI,OAAO;AAAK;IAClB;AACA,aAAS,WAAW,UAAU,UAAU,OAAO,KAAK;AACpD;EACF;AAEA,SAAO,UAAU,WAAW,UAAU,MAAM,QAAQ;AAClD,UAAM,OAAO,UAAU,MAAM,UAAU,QAAQ;AAC/C,QAAI,SAAS,MAAM;AAKjB,cAAQ,SAAS;AACjB,UAAI,UAAU,WAAW,UAAU,MAAM,QAAQ;AAC/C,iBAAS,QAAQ,SAAS;MAC5B;IACF,WAAW,eAAe,IAAI,KAAK,SAAS,OAAO,SAAS,OAAO,SAAS,KAAK;AAC/E,eAAS,QAAQ,SAAS;IAC5B,OAAO;AACL;IACF;EACF;AAEA,WAAS,WAAW,UAAU,UAAU,OAAO,KAAK;AACtD;AAEA,SAAS,uBAAuB,WAAoB;AAClD,QAAM,QAAQ,UAAU;AAIxB,MAAI,wBAAwB,SAAS,GAAG;AACtC,2BAAuB,WAAW,KAAK;AACvC;EACF;AAEA,MAAI,QAAQ;AAGZ,WAAS,QAAQ,SAAS;AAG1B,SAAO,UAAU,WAAW,UAAU,MAAM,SAAS,GAAG;AACtD,UAAM,OAAO,UAAU,MAAM,UAAU,QAAQ;AAC/C,UAAM,WAAW,UAAU,MAAM,UAAU,WAAW,CAAC;AAEvD,aAAS,QAAQ,SAAS;AAG1B,QAAI,SAAS,OAAO,aAAa,KAAK;AACpC,eAAS,QAAQ,SAAS;AAC1B;IACF;EACF;AAEA,WAAS,WAAW,UAAU,UAAU,OAAO,KAAK;AACtD;AAQA,SAAS,uBAAuB,WAAsB,OAAa;AACjE,QAAM,QAAQ,UAAU;AACxB,MAAI,QAAQ;AACZ,MAAI,QAAQ;AACZ,MAAI,QAAQ;AAEZ,SAAO,UAAU,WAAW,MAAM,QAAQ;AACxC,UAAM,KAAK,MAAM,UAAU,QAAQ;AAEnC,QAAI,OAAO;AACT,eAAS,QAAQ,SAAS;AAC1B,UAAI,OAAO;AAAO,gBAAQ;AAC1B;IACF;AACA,QAAI,OAAO,OAAO,OAAO,KAAK;AAC5B,cAAQ;AACR,eAAS,QAAQ,SAAS;AAC1B;IACF;AAEA,QAAI,OAAO,KAAK;AACd,YAAM,OAAO,MAAM,UAAU,WAAW,CAAC;AACzC,UAAI,SAAS,KAAK;AAEhB,eAAO,UAAU,WAAW,MAAM,UAAU,MAAM,UAAU,QAAQ,MAAM,KAAK;AAC7E,mBAAS,QAAQ,SAAS;QAC5B;AACA,YAAI,UAAU,WAAW,MAAM;AAAQ,mBAAS,QAAQ,SAAS;AACjE;AACA,YAAI,SAAS;AAAG;AAChB;MACF;AAEA,UAAI,YAAY;AAChB,UAAI,WAAW;AACf,aAAO,UAAU,WAAW,MAAM,QAAQ;AACxC,cAAM,KAAK,MAAM,UAAU,QAAQ;AACnC,YAAI,UAAU;AACZ,mBAAS,QAAQ,SAAS;AAC1B,cAAI,OAAO;AAAU,uBAAW;AAChC;QACF;AACA,YAAI,OAAO,OAAO,OAAO,KAAK;AAC5B,qBAAW;AACX,mBAAS,QAAQ,SAAS;AAC1B;QACF;AACA,YAAI,OAAO,KAAK;AACd,sBAAY,MAAM,UAAU,WAAW,CAAC,MAAM;AAC9C,mBAAS,QAAQ,SAAS;AAC1B;QACF;AACA,iBAAS,QAAQ,SAAS;MAC5B;AACA,UAAI,CAAC;AAAW;AAChB,UAAI,SAAS;AAAG;AAChB;IACF;AAGA,aAAS,QAAQ,SAAS;EAC5B;AAEA,WAAS,WAAW,UAAU,UAAU,OAAO,KAAK;AACtD;AAEA,SAAS,eAAe,WAAoB;AAC1C,QAAM,QAAQ,UAAU;AACxB,MAAI,QAAQ,QAAQ,SAAS;AAE7B,SAAO,UAAU,WAAW,UAAU,MAAM,QAAQ;AAClD,UAAM,OAAO,UAAU,MAAM,UAAU,QAAQ;AAC/C,QAAI,eAAe,IAAI,KAAK,SAAS,OAAO,SAAS,KAAK;AACxD,eAAS,QAAQ,SAAS;IAC5B,OAAO;AACL;IACF;EACF;AAEA,WAAS,WAAW,UAAU,QAAQ,OAAO,KAAK;AACpD;AAEA,SAAS,iBAAiB,WAAoB;AAC5C,QAAM,QAAQ,UAAU;AACxB,MAAI,QAAQ;AAGZ,QAAM,OAAO,UAAU,MAAM,UAAU,QAAQ;AAC/C,OAAK,SAAS,OAAO,SAAS,QAAQ,KAAK,WAAW,CAAC,MAAM,KAAK;AAChE,YAAQ;AACR,YAAQ,SAAS;AACjB,YAAQ,SAAS;AACjB,aAAS,WAAW,UAAU,UAAU,OAAO,KAAK;AACpD;EACF;AAGA,QAAM,UAAU,UAAU,MAAM,UAAU,UAAU,UAAU,UAAU,WAAW,CAAC;AACpF,QAAM,YAAY,UAAU,MAAM,UAAU,UAAU,UAAU,UAAU,WAAW,CAAC;AAEtF,MAAI,CAAC,OAAO,KAAK,EAAE,SAAS,SAAS,GAAG;AACtC,YAAQ;AACR,YAAQ,SAAS;AACjB,YAAQ,SAAS;AACjB,YAAQ,SAAS;EACnB,WACE,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,EAAE,SAAS,OAAO,GAC/F;AACA,YAAQ;AACR,YAAQ,SAAS;AACjB,YAAQ,SAAS;EACnB,OAAO;AACL,YAAQ,QAAQ,SAAS;EAC3B;AAGA,WAAS,WAAW,UAAU,UAAU,OAAO,KAAK;AACtD;AAEA,SAAS,qBAAqB,WAAoB;AAChD,QAAM,QAAQ,UAAU;AACxB,QAAM,QAAQ,UAAU;AACxB,QAAM,cAAc,MAAM;AAC1B,MAAI,QAAQ;AAGZ,SAAO,UAAU,WAAW,aAAa;AACvC,UAAM,OAAO,MAAM,UAAU,QAAQ;AACrC,QAAI,QAAQ,OAAO,QAAQ,KAAK;AAC9B,eAAS,QAAQ,SAAS;IAC5B,OAAO;AACL;IACF;EACF;AAGA,MACE,UAAU,WAAW,eACrB,MAAM,UAAU,QAAQ,MAAM,OAE9B,EAAE,UAAU,WAAW,IAAI,eAAe,MAAM,UAAU,WAAW,CAAC,MAAM,MAC5E;AACA,aAAS,QAAQ,SAAS;AAC1B,WAAO,UAAU,WAAW,aAAa;AACvC,YAAM,OAAO,MAAM,UAAU,QAAQ;AACrC,UAAI,QAAQ,OAAO,QAAQ,KAAK;AAC9B,iBAAS,QAAQ,SAAS;MAC5B,OAAO;AACL;MACF;IACF;EACF;AAGA,MAAI,UAAU,WAAW,aAAa;AACpC,UAAM,UAAU,MAAM,UAAU,QAAQ;AACxC,QAAI,YAAY,OAAO,YAAY,KAAK;AACtC,YAAM,WAAW,UAAU,WAAW,IAAI,cAAc,MAAM,UAAU,WAAW,CAAC,IAAI;AACxF,YAAM,YAAY,UAAU,WAAW,IAAI,cAAc,MAAM,UAAU,WAAW,CAAC,IAAI;AAGzF,YAAM,iBAAiB,YAAY,OAAO,YAAY;AACtD,YAAM,oBACH,aAAa,OAAO,aAAa,QAAQ,aAAa,OAAO,aAAa;AAE7E,UAAI,kBAAkB,kBAAkB;AACtC,iBAAS,QAAQ,SAAS;AAG1B,YAAI,MAAM,UAAU,QAAQ,MAAM,OAAO,MAAM,UAAU,QAAQ,MAAM,KAAK;AAC1E,mBAAS,QAAQ,SAAS;QAC5B;AAGA,eAAO,UAAU,WAAW,aAAa;AACvC,gBAAM,OAAO,MAAM,UAAU,QAAQ;AACrC,cAAI,QAAQ,OAAO,QAAQ,KAAK;AAC9B,qBAAS,QAAQ,SAAS;UAC5B,OAAO;AACL;UACF;QACF;MACF;IACF;EACF;AAGA,QAAM,YAAY,UAAU;AAC5B,MAAI,OAAO;AACX,SAAO,UAAU,WAAW,aAAa;AACvC,UAAM,OAAO,MAAM,UAAU,QAAQ;AACrC,QAAK,QAAQ,OAAO,QAAQ,OAAS,QAAQ,OAAO,QAAQ,KAAM;AAChE,cAAQ,QAAQ,SAAS;IAC3B,OAAO;AACL;IACF;EACF;AAEA,MAAI,WAAW,IAAI,IAAI,GAAG;AACxB,aAAS,WAAW,UAAU,MAAM,QAAQ,MAAM,KAAK;EACzD,OAAO;AAEL,cAAU,WAAW;AACrB,aAAS,WAAW,UAAU,QAAQ,OAAO,KAAK;EACpD;AACF;AAEA,SAAS,mBAAmB,WAAoB;AAC9C,QAAM,QAAQ,UAAU;AACxB,QAAM,QAAQ,UAAU;AACxB,QAAM,cAAc,MAAM;AAC1B,MAAI,QAAQ;AAEZ,SAAO,UAAU,WAAW,aAAa;AACvC,UAAM,OAAO,MAAM,UAAU,QAAQ;AAGrC,QACG,QAAQ,OAAO,QAAQ,OACvB,QAAQ,OAAO,QAAQ,OACvB,QAAQ,OAAO,QAAQ,OACxB,SAAS,OACT,SAAS,KACT;AACA,eAAS,QAAQ,SAAS;IAC5B,OAAO;AACL;IACF;EACF;AAGA,QAAM,WAAW,4BAA4B,WAAW,OAAO,KAAK;AACpE,MAAI,UAAU;AACZ;EACF;AAGA,QAAM,OAAO,mBAAmB,KAAK;AACrC,WAAS,WAAW,MAAM,OAAO,KAAK;AACxC;AAEA,SAAS,uBAAuB,WAAoB;AAClD,QAAM,QAAQ,UAAU;AACxB,QAAM,QAAQ,UAAU;AACxB,QAAM,cAAc,MAAM;AAG1B,UAAQ,SAAS;AAEjB,MAAI,QAAQ;AAGZ,SAAO,UAAU,WAAW,aAAa;AACvC,UAAM,OAAO,MAAM,UAAU,QAAQ;AACrC,QACG,QAAQ,OAAO,QAAQ,OACvB,QAAQ,OAAO,QAAQ,OACvB,QAAQ,OAAO,QAAQ,OACxB,SAAS,KACT;AACA,eAAS,QAAQ,SAAS;IAC5B,OAAO;AACL;IACF;EACF;AAEA,WAAS,WAAW,UAAU,YAAY,OAAO,KAAK;AACxD;AAEA,SAAS,4BACP,WACA,WACA,OAAa;AAEb,QAAM,aAAa,UAAU,YAAW;AACxC,QAAM,mBAAmB,UAAU;AAGnC,MAAI,cAAc,QAAQ,cAAc,MAAM;AAC5C,WAAO;EACT;AAIA,QAAM,YAAY,UAAU,OAAO,UAAU,OAAO,SAAS,CAAC;AAC9D,MACE,cACC,UAAU,SAAS,UAAU,cAAc,UAAU,SAAS,UAAU,WACzE;AACA,UAAM,WACJ,UAAU,WAAW,UAAU,MAAM,SAAS,UAAU,MAAM,UAAU,QAAQ,IAAI;AACtF,QAAI,aAAa,OAAO,aAAa,KAAK;AAExC,aAAO;IACT;EACF;AAGA,iBAAe,SAAS;AAGxB,MAAI,WAAW;AACf,SAAO,UAAU,WAAW,UAAU,MAAM,QAAQ;AAClD,UAAM,OAAO,UAAU,MAAM,UAAU,QAAQ;AAC/C,QACG,QAAQ,OAAO,QAAQ,OACvB,QAAQ,OAAO,QAAQ,OACvB,QAAQ,OAAO,QAAQ,OACxB,SAAS,OACT,SAAS,KACT;AACA,kBAAY,QAAQ,SAAS;IAC/B,OAAO;AACL;IACF;EACF;AAEA,MAAI,UAAU;AACZ,UAAM,YAAY,SAAS,YAAW;AACtC,UAAM,WAAW,GAAG,UAAU,IAAI,SAAS;AAG3C,UAAM,eAAe,4BAA4B,WAAW,YAAY,WAAW,KAAK;AACxF,QAAI,cAAc;AAChB,aAAO;IACT;AAGA,UAAM,kBAAkB,wBAAwB,WAAW,YAAY,SAAS;AAChF,QAAI,iBAAiB;AACnB,eAAS,WAAW,UAAU,UAAU,iBAAiB,KAAK;AAC9D,aAAO;IACT;AAGA,QAAI,qBAAqB,IAAI,QAAQ,GAAG;AACtC,eAAS,WAAW,UAAU,UAAU,UAAU,KAAK;AACvD,aAAO;IACT;EACF;AAGA,MAAI,qBAAqB,IAAI,UAAU,GAAG;AACxC,cAAU,WAAW;AACrB,aAAS,WAAW,UAAU,UAAU,WAAW,KAAK;AACxD,WAAO;EACT;AAGA,YAAU,WAAW;AACrB,SAAO;AACT;AAEA,SAAS,4BACP,WACA,WACA,YACA,OAAa;AAEb,QAAM,aAAa,UAAU,YAAW;AACxC,QAAM,cAAc,WAAW,YAAW;AAG1C,MAAI,eAAe,MAAM;AAEvB,UAAM,kBAAkB,UAAU;AAGlC,QAAI,gBAAgB,OAAO;AACzB,qBAAe,SAAS;AACxB,UAAI,YAAY;AAChB,aAAO,UAAU,WAAW,UAAU,MAAM,QAAQ;AAClD,cAAM,OAAO,UAAU,MAAM,UAAU,QAAQ;AAC/C,YACG,QAAQ,OAAO,QAAQ,OACvB,QAAQ,OAAO,QAAQ,OACvB,QAAQ,OAAO,QAAQ,OACxB,SAAS,OACT,SAAS,KACT;AACA,uBAAa,QAAQ,SAAS;QAChC,OAAO;AACL;QACF;MACF;AAEA,YAAM,aAAa,UAAU,YAAW;AACxC,UAAI,eAAe,WAAW,eAAe,OAAO;AAElD,uBAAe,SAAS;AACxB,YAAI,aAAa;AACjB,eAAO,UAAU,WAAW,UAAU,MAAM,QAAQ;AAClD,gBAAM,OAAO,UAAU,MAAM,UAAU,QAAQ;AAC/C,cACG,QAAQ,OAAO,QAAQ,OACvB,QAAQ,OAAO,QAAQ,OACvB,QAAQ,OAAO,QAAQ,OACxB,SAAS,OACT,SAAS,KACT;AACA,0BAAc,QAAQ,SAAS;UACjC,OAAO;AACL;UACF;QACF;AAEA,cAAM,cAAc,WAAW,YAAW;AAC1C,YAAI,gBAAgB,MAAM;AACxB,gBAAM,WAAW,UAAU,UAAU;AACrC,mBAAS,WAAW,UAAU,YAAY,UAAU,KAAK;AACzD,iBAAO;QACT;MACF;AAEA,gBAAU,WAAW;AACrB,aAAO;IACT;AAGA,QAAI,gBAAgB,WAAW,gBAAgB,OAAO;AACpD,qBAAe,SAAS;AACxB,UAAI,YAAY;AAChB,aAAO,UAAU,WAAW,UAAU,MAAM,QAAQ;AAClD,cAAM,OAAO,UAAU,MAAM,UAAU,QAAQ;AAC/C,YACG,QAAQ,OAAO,QAAQ,OACvB,QAAQ,OAAO,QAAQ,OACvB,QAAQ,OAAO,QAAQ,OACxB,SAAS,OACT,SAAS,KACT;AACA,uBAAa,QAAQ,SAAS;QAChC,OAAO;AACL;QACF;MACF;AAEA,YAAM,aAAa,UAAU,YAAW;AACxC,UAAI,eAAe,MAAM;AACvB,cAAM,WAAW,MAAM,WAAW;AAClC,iBAAS,WAAW,UAAU,YAAY,UAAU,KAAK;AACzD,eAAO;MACT;AAEA,gBAAU,WAAW;AACrB,aAAO;IACT;EACF;AAEA,SAAO;AACT;AASA,SAAS,mBAAmB,OAAa;AACvC,QAAM,aAAa,MAAM,YAAW;AAGpC,MAAI,eAAe,aAAa,eAAe,YAAY;AACzD,WAAO,UAAU;EACnB;AACA,MAAI,kBAAkB,IAAI,UAAU,GAAG;AACrC,WAAO,UAAU;EACnB;AACA,MAAI,uBAAuB,IAAI,KAAK,KAAK,uBAAuB,IAAI,UAAU,GAAG;AAC/E,WAAO,UAAU;EACnB;AACA,MAAI,qBAAqB,IAAI,UAAU,GAAG;AACxC,WAAO,UAAU;EACnB;AAGA,SAAO,UAAU;AACnB;AAGA,SAAS,QAAQ,MAAY;AAC3B,SAAO,WAAW,KAAK,IAAI;AAC7B;AAEA,SAAS,eAAe,MAAY;AAClC,SAAO,cAAc,KAAK,IAAI;AAChC;AAQA,SAAS,wBAAwB,WAAoB;AACnD,QAAM,QAAQ,UAAU;AACxB,QAAM,UAAU,MAAM,UAAU,WAAW,CAAC;AAC5C,MAAI,CAAC,WAAW,CAAC,WAAW,KAAK,OAAO;AAAG,WAAO;AAClD,MAAI,IAAI,UAAU,WAAW;AAC7B,MAAI,MAAM;AACV,SAAO,IAAI,MAAM,UAAU,eAAe,KAAK,MAAM,CAAC,CAAC,GAAG;AACxD,WAAO,MAAM,CAAC;AACd;EACF;AACA,SAAO,IAAI,SAAS,KAAK,MAAM,QAAQ,OAAO,MAAM,KAAK,CAAC,MAAM;AAClE;AAEA,SAAS,wBAAwB,WAAoB;AAGnD,MAAI,wBAAwB,SAAS;AAAG,WAAO;AAI/C,MAAID,OAAM,UAAU,WAAW;AAC/B,MAAI,oBAAoB;AAExB,SAAOA,OAAM,UAAU,MAAM,QAAQ;AACnC,UAAM,OAAO,UAAU,MAAMA,IAAG;AAGhC,QAAI,SAAS,OAAOA,OAAM,IAAI,UAAU,MAAM,UAAU,UAAU,MAAMA,OAAM,CAAC,MAAM,KAAK;AACxF,aAAO;IACT;AAIA,QACE,eAAe,IAAI,KACnB,SAAS,OACT,SAAS,OACT,SAAS,OACT,SAAS,OACT,SAAS,OACT,SAAS,OACT,SAAS,OACT,SAAS,OACT,SAAS,OACT,SAAS,OACT,SAAS,OACT,SAAS,OACT,SAAS,OACT,SAAS,OACT,SAAS,OACT,SAAS,OACT,SAAS,OACT,SAAS,OACT,SAAS,OACT,SAAS,OACT,SAAS,OACT,SAAS,OACT,SAAS,KACT;AACA,0BAAoB;AACpB,MAAAA;IACF,WAAW,SAAS,OAAO,SAAS,KAAM;AAExC,MAAAA;IACF,OAAO;AAEL,aAAO;IACT;AAGA,QAAIA,OAAM,UAAU,WAAW,IAAI;AACjC,aAAO;IACT;EACF;AAGA,SAAO;AACT;AAMA,SAAS,wBACP,WACA,WACA,YAAkB;AAElB,QAAM,mBAAmB,UAAU;AACnC,MAAI,WAAW,GAAG,SAAS,IAAI,UAAU;AACzC,MAAI,sBAAsB,UAAU;AACpC,QAAM,QAAQ,CAAC,WAAW,UAAU;AAGpC,QAAM,WAAW;AAEjB,SAAO,MAAM,SAAS,UAAU;AAE9B,mBAAe,SAAS;AAExB,QAAI,UAAU,YAAY,UAAU,MAAM,QAAQ;AAChD;IACF;AAEA,QAAI,WAAW;AAEf,WAAO,UAAU,WAAW,UAAU,MAAM,QAAQ;AAClD,YAAM,OAAO,UAAU,MAAM,UAAU,QAAQ;AAG/C,UAAK,QAAQ,OAAO,QAAQ,OAAS,QAAQ,OAAO,QAAQ,KAAM;AAChE,oBAAY,QAAQ,SAAS;MAC/B,OAAO;AACL;MACF;IACF;AAEA,QAAI,CAAC,UAAU;AACb;IACF;AAGA,UAAM,KAAK,SAAS,YAAW,CAAE;AACjC,UAAM,cAAc,MAAM,KAAK,GAAG;AAGlC,QAAI,qBAAqB,IAAI,WAAW,GAAG;AACzC,iBAAW;AACX,4BAAsB,UAAU;IAElC;EAKF;AAGA,MAAI,qBAAqB,IAAI,QAAQ,KAAK,aAAa,GAAG,SAAS,IAAI,UAAU,IAAI;AAEnF,cAAU,WAAW;AACrB,WAAO;EACT;AAGA,YAAU,WAAW;AACrB,SAAO;AACT;AAEA,SAAS,eAAe,MAAY;AAClC,SAAO,8BAA8B,SAAS,IAAI;AACpD;AChwCA,SAAS,oBAAiB;AAExB,MAAI,OAAO,iBAAiB,aAAa;AACvC,QAAI;AACF,YAAM,KAAK;AACX,YAAM,UAAU,GAAG,QAAQ,iBAAiB,KAAK,GAAG,QAAQ,kBAAkB;AAC9E,UAAI,YAAY,OAAO,YAAY;AAAQ,eAAO;IAEpD,QAAQ;IAER;EACF;AAGA,MAAI,OAAO,WAAW,eAAgB,OAAe,qBAAqB;AACxE,WAAO;EACT;AAGA,MAAI,OAAO,YAAY,eAAe,QAAQ,KAAK,oBAAoB,QAAQ;AAC7E,WAAO;EACT;AAEA,SAAO;AACT;AC6EM,SAAU,kBAAkB,WAAiC;AACjE,QAAM,SAAS,oBAAI,IAAG;AACtB,aAAW,YAAY,WAAW;AAChC,eAAW,CAAC,KAAK,KAAK,KAAK,UAAU;AACnC,YAAM,WAAW,OAAO,IAAI,GAAG;AAC/B,UAAI,UAAU;AAEZ,eAAO,IAAI,KAAK;UACd,QAAQ,MAAM,UAAU,SAAS;UACjC,OAAO,MAAM,SAAS,SAAS;QAChC,CAAA;MACH,OAAO;AACL,eAAO,IAAI,KAAK,EAAE,GAAG,MAAK,CAAE;MAC9B;IACF;EACF;AACA,SAAO;AACT;AAoIM,SAAU,UAAU,IAAY,SAAsB;AAC1D,SAAO;IACL,OAAO;MACL,IAAI,CAAC,IAAI,KAAK,CAAC;MACf,SACE,YACC,CAAC,MAAM,OAAO,QAAO;AACpB,cAAM,QAAQ,IAAI,UAAU,KAAK,CAAC;AAClC,eAAO;UACL,MAAM;UACN,UAAU,MAAM;UAChB;UACA;UACA,OAAO,KAAK;UACZ,KAAK,MAAM,OAAO,MAAM;UACxB,MAAM,KAAK,QAAQ,MAAM;UACzB,QAAQ,KAAK,UAAU,MAAM;;MAEjC;IACH;;AAEL;AAMM,SAAU,WAAW,IAAY,SAAsB;AAC3D,SAAO;IACL,OAAO;MACL,IAAI,CAAC,KAAK,GAAG,EAAE;MACf,UAEG,CAAC,MAAM,OAAO,QAAO;AACpB,cAAM,QAAQ,IAAI,UAAU,EAAE;AAC9B,eAAO;UACL,MAAM;UACN,UAAU,MAAM;UAChB;UACA;UACA,OAAO,KAAK;UACZ,KAAK,MAAM,OAAO,MAAM;UACxB,MAAM,KAAK,QAAQ,MAAM;UACzB,QAAQ,KAAK,UAAU,MAAM;;MAEjC;IACH;;AAEL;AAMM,SAAU,OAAO,IAAY,SAAuB;AACxD,SAAO;IACL,QAAQ;MACN;MACA,SACE,YACC,CAAC,OAAO,QAAO;AACd,cAAM,UAAU,IAAI,UAAU,EAAE;AAChC,eAAO;UACL,MAAM;UACN,UAAU,MAAM;UAChB;UACA,UAAU;UACV,QAAQ;UACR,OAAO,MAAM;UACb,KAAK,QAAQ,OAAO,MAAM;UAC1B,MAAM,MAAM;UACZ,QAAQ,MAAM;;MAElB;IACH;;AAEL;AAmVA,SAAS,qBAAqB,SAAgB;AAC5C,SAAO,CAAC,MAAM,QAAQ,QAAO;AAC3B,UAAM,YAAY,IAAI,QAAO;AAC7B,QAAI,CAAC,aAAa,CAAC,UAAU,OAAO;AAClC,YAAM,IAAI,MACR,6CAA6C,UAAU,SAAS,EAAE,mBAAmB;IAEzF;AAEA,QAAI,SAAS;AACb,UAAM,SAAS,IAAI,KAAI;AACvB,QAAI,UAAU,OAAO,UAAU,KAAK;AAClC,UAAI,QAAO;AACX,eAAS;IACX;AACA,WAAO;MACL,MAAM;MACN,OAAO;MACP,UAAU,UAAU;MACpB;MACA;MACA,OAAO,KAAK;MACZ,KAAK,UAAU;;EAEnB;AACF;SAgBgB,eAAe,KAAmB,QAAgB,eAAa;AAC7E,MAAI,QAAQ,IAAI,UAAU,KAAK;AAC/B,MAAI,IAAI,KAAI,GAAI,UAAU,MAAM;AAC9B,UAAM,UAAU,IAAI,QAAO;AAC3B,UAAM,QAAQ,IAAI,UAAU,KAAK;AACjC,YAAQ;MACN,MAAM;MACN,UAAU;MACV,MAAM;MACN,OAAO;MACP,OAAO,MAAM;MACb,KAAK,MAAM,OAAO,QAAQ;MAC1B,MAAM,MAAM,QAAQ,QAAQ;MAC5B,QAAQ,MAAM,UAAU,QAAQ;;EAEpC;AACA,SAAO;AACT;AAWA,SAAS,UAAU,MAAe,OAAc,KAAiB;AAC/D,QAAM,QAAQ,eAAe,GAAG;AAChC,SAAO;IACL,MAAM;IACN,UAAU,MAAM;IAChB;IACA;IACA,OAAO,KAAK;IACZ,KAAK,MAAM,OAAO,MAAM;IACxB,MAAM,KAAK,QAAQ,MAAM;IACzB,QAAQ,KAAK,UAAU,MAAM;;AAEjC;AC9tBA,SAAS,OAAO,MAAcE,MAAY;AACxC,MAAI,OAAO,YAAY,aAAa;AAClC,YAAQ,MAAM,eAAe,IAAI,WAAWA,IAAG;EACjD;AACF;AAEM,SAAU,wBAAwB,MAAqB;AAC3D,qBAAmB,IAAI,IAAI;AAC3B,SAAO,MAAM,mBAAmB,OAAO,IAAI;AAC7C;AACM,SAAU,uBAAuB,MAAoB;AACzD,oBAAkB,IAAI,IAAI;AAC1B,SAAO,MAAM,kBAAkB,OAAO,IAAI;AAC5C;AACM,SAAU,uBAAuB,MAAoB;AACzD,oBAAkB,IAAI,IAAI;AAC1B,SAAO,MAAM,kBAAkB,OAAO,IAAI;AAC5C;AACM,SAAU,sBAAsB,MAAmB;AACvD,mBAAiB,IAAI,IAAI;AACzB,SAAO,MAAM,iBAAiB,OAAO,IAAI;AAC3C;AAWM,SAAU,iBAAiB,MAAc,SAAyB;AACtE,MAAI,kBAAkB,SAAS;AAAG;AAClC,aAAW,QAAQ,mBAAmB;AACpC,QAAI;AACF,WAAK,MAAM,OAAO;IACpB,SAASA,MAAK;AACZ,aAAO,kBAAkBA,IAAG;IAC9B;EACF;AACF;SACgB,iBAAiB,MAAc,OAAgB,SAAyB;AACtF,MAAI,kBAAkB,SAAS;AAAG;AAClC,aAAW,QAAQ,mBAAmB;AACpC,QAAI;AACF,WAAK,MAAM,OAAO,OAAO;IAC3B,SAASA,MAAK;AACZ,aAAO,kBAAkBA,IAAG;IAC9B;EACF;AACF;AACM,SAAU,gBAAgB,MAAc,SAAyB;AACrE,MAAI,iBAAiB,SAAS;AAAG;AACjC,aAAW,QAAQ,kBAAkB;AACnC,QAAI;AACF,WAAK,MAAM,OAAO;IACpB,SAASA,MAAK;AACZ,aAAO,iBAAiBA,IAAG;IAC7B;EACF;AACF;SAMgB,UAAU,SAA2B,MAAc,OAAc;AAC/E,UAAQ,QAAQ,IAAI,MAAM,KAAK;AAC/B,MAAI,mBAAmB,SAAS;AAAG;AACnC,aAAW,QAAQ,oBAAoB;AACrC,QAAI;AACF,WAAK,MAAM,OAAO,OAAO;IAC3B,SAASA,MAAK;AACZ,aAAO,mBAAmBA,IAAG;IAC/B;EACF;AACF;SASgB,qBAAkB;AAChC,SAAO;IACL,kBAAkB,MAAM,KAAK,kBAAkB;IAC/C,iBAAiB,MAAM,KAAK,iBAAiB;IAC7C,iBAAiB,MAAM,KAAK,iBAAiB;IAC7C,gBAAgB,MAAM,KAAK,gBAAgB;;AAE/C;AACM,SAAU,kBAAkB,UAAqC;AACrE,qBAAmB,MAAK;AACxB,aAAW,KAAK,SAAS,oBAAoB,CAAA;AAAI,uBAAmB,IAAI,CAAC;AACzE,oBAAkB,MAAK;AACvB,aAAW,KAAK,SAAS,mBAAmB,CAAA;AAAI,sBAAkB,IAAI,CAAC;AACvE,oBAAkB,MAAK;AACvB,aAAW,KAAK,SAAS,mBAAmB,CAAA;AAAI,sBAAkB,IAAI,CAAC;AACvE,mBAAiB,MAAK;AACtB,aAAW,KAAK,SAAS,kBAAkB,CAAA;AAAI,qBAAiB,IAAI,CAAC;AACvE;ACtBM,SAAU,qBAAqB,MAAY;AAC/C,SAAO,iBAAiB,IAAI,KAAK,YAAW,CAAE;AAChD;AAMM,SAAU,2BAA2B,MAAY;AACrD,SAAO,gBAAgB,IAAI,IAAI;AACjC;AAQM,SAAU,wBAAwB,MAAY;AAClD,SAAO,aAAa,IAAI,IAAI;AAC9B;SA8NgB,6BAA0B;AACxC,MAAI,OAAO,eAAe,aAAa;AACrC,UAAM,IAAI;AACV,UAAM,WAAW,EAAE,UAAU;AAE7B,QACE,YACA,OAAO,aAAa,YACpB,OAAQ,SAA2C,oBAAoB,YACvE;AACA,aAAO;IACT;AACA,MAAE,UAAU,IAAI;EAClB;AACA,SAAO;AACT;ACtVM,SAAU,UAAU,OAAY;AACpC,MAAI,MAAM,SAAS,UAAU;AAAY,WAAO;AAChD,SAAO,SAAS,IAAI,MAAM,MAAM,YAAW,CAAE;AAC/C;AAKM,SAAUC,YAAU,OAAY;AACpC,MAAI,MAAM,SAAS,UAAU;AAAY,WAAO;AAChD,SAAO,mBAAmB,IAAI,MAAM,MAAM,YAAW,CAAE;AACzD;AAKM,SAAU,QAAQ,OAAY;AAClC,MAAI,MAAM,SAAS,UAAU;AAAY,WAAO;AAChD,SAAO,WAAW,IAAI,MAAM,MAAM,YAAW,CAAE;AACjD;AAKM,SAAU,aAAa,OAAY;AACvC,MAAI,MAAM,SAAS,UAAU;AAAY,WAAO;AAChD,SAAO,aAAa,IAAI,MAAM,MAAM,YAAW,CAAE;AACnD;AAoBM,SAAU,qBAAqB,OAAY;AAE/C,MAAI,MAAM,SAAS,UAAU,UAAU;AACrC,WAAO,qBAAqB,IAAI,MAAM,MAAM,YAAW,CAAE;EAC3D;AAEA,SAAO,qBAAqB,IAAI,MAAM,MAAM,YAAW,CAAE;AAC3D;AAUM,SAAU,iBAAiB,OAAY;AAC3C,SAAO,MAAM,SAAS,UAAU;AAClC;AAKM,SAAU,WAAW,OAAY;AACrC,SAAO,MAAM,SAAS,UAAU;AAClC;AAMM,SAAU,gBAAgB,OAAY;AAC1C,MAAI,MAAM,SAAS,UAAU;AAAU,WAAO;AAE9C,SAAO,CAAC,MAAM,MAAM,WAAW,GAAG;AACpC;AAKM,SAAU,UAAU,OAAY;AACpC,SACE,MAAM,SAAS,UAAU,UACzB,MAAM,SAAS,UAAU,UACzB,MAAM,SAAS,UAAU;AAE7B;AAYM,SAAU,YAAY,OAAY;AACtC,SAAO,MAAM,SAAS,UAAU;AAClC;AAKM,SAAU,iBAAiB,OAAY;AAC3C,SAAO,MAAM,SAAS,UAAU;AAClC;AAKM,SAAU,SAAS,OAAY;AACnC,SAAO,MAAM,SAAS,UAAU;AAClC;AAKM,SAAU,UAAU,OAAY;AACpC,SAAO,MAAM,SAAS,UAAU;AAClC;AAUM,SAAU,aAAa,OAAY;AACvC,MAAI,MAAM,SAAS,UAAU;AAAY,WAAO;AAEhD,QAAM,aAAa,MAAM,MAAM,YAAW;AAC1C,SACE,CAAC,SAAS,IAAI,UAAU,KACxB,CAAC,mBAAmB,IAAI,UAAU,KAClC,CAAC,WAAW,IAAI,UAAU,KAC1B,CAAC,aAAa,IAAI,UAAU;AAEhC;AAKM,SAAUC,WAAS,OAAY;AACnC,SAAO,MAAM,SAAS,UAAU;AAClC;AAKM,SAAUC,WAAS,OAAY;AACnC,SAAO,MAAM,SAAS,UAAU;AAClC;AAKM,SAAUC,YAAU,OAAY;AAEpC,MAAI,MAAM,SAAS,UAAU,YAAY;AACvC,UAAMC,KAAI,MAAM;AAChB,WAAOA,OAAM,UAAUA,OAAM,WAAWA,OAAM,UAAUA,OAAM;EAChE;AACA,SAAO;AACT;AAKM,SAAU,kBAAkB,OAAY;AAC5C,SAAO,MAAM,SAAS,UAAU;AAClC;AAKM,SAAU,iBAAiB,OAAY;AAE3C,SAAO,MAAM,SAAS,UAAU,YAAY,MAAM,MAAM,WAAW,GAAG;AACxE;AAKM,SAAU,aAAa,OAAY;AACvC,SAAO,MAAM,SAAS,UAAU,YAAY,MAAM,MAAM,WAAW,GAAG;AACxE;AAKM,SAAU,gBAAgB,OAAY;AAC1C,SAAO,MAAM,SAAS,UAAU,YAAY,MAAM,MAAM,WAAW,GAAG;AACxE;AAKM,SAAU,cAAc,OAAY;AACxC,MAAI,MAAM,SAAS,UAAU;AAAU,WAAO;AAE9C,SAAO,CAAC,MAAM,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,MAAM,WAAW,GAAG;AACpE;AAaM,SAAU,gBAAgB,OAAY;AAC1C,MAAI,MAAM,SAAS,UAAU;AAAU,WAAO;AAE9C,QAAM,aAAa,MAAM,MAAM,YAAW;AAC1C,SAAO,CAAC,kBAAkB,IAAI,UAAU,KAAK,CAAC,qBAAqB,IAAI,UAAU;AACnF;AA0FM,SAAU,oBAAoB,OAAY;AAC9C,QAAM,QAAQ,MAAM,MAAM,YAAW;AACrC,SACE,UAAU,UAAU,UAAU,SAAS,UAAU,UAAU,UAAU,SAAS,UAAU;AAE5F;SCtTgB,cAAc,OAAgB,KAAaP,MAAa;AACtE,SAAO;IACL,MAAM;IACN;IACA;IACA,OAAOA,KAAI;IACX,KAAKA,KAAI;IACT,MAAMA,KAAI;IACV,QAAQA,KAAI;;AAEhB;AASM,SAAU,iBAAiB,MAAcA,MAAa;AAC1D,SAAO;IACL,MAAM;IACN;IACA,OAAOA,KAAI;IACX,KAAKA,KAAI;IACT,MAAMA,KAAI;IACV,QAAQA,KAAI;;AAEhB;AAWM,SAAU,uBACd,UACA,MACA,OACAA,MAAa;AAEb,SAAO;IACL,MAAM;IACN;IACA;IACA;IACA,OAAOA,KAAI;IACX,KAAKA,KAAI;IACT,MAAMA,KAAI;IACV,QAAQA,KAAI;;AAEhB;AAWM,SAAU,sBACd,UACA,UACAC,SACAD,MAAa;AAEb,SAAO;IACL,MAAM;IACN;IACA;IACA,QAAAC;IACA,OAAOD,KAAI;IACX,KAAKA,KAAI;IACT,MAAMA,KAAI;IACV,QAAQA,KAAI;;AAEhB;SAUgB,qBACd,QACA,MACAA,MAAa;AAEb,SAAO;IACL,MAAM;IACN;IACA,WAAW;IACX,OAAOA,KAAI;IACX,KAAKA,KAAI;IACT,MAAMA,KAAI;IACV,QAAQA,KAAI;;AAEhB;AAWM,SAAU,uBACd,QACA,UACA,UACAA,MAAa;AAEb,SAAO;IACL,MAAM;IACN;IACA;IACA;IACA,OAAOA,KAAI;IACX,KAAKA,KAAI;IACT,MAAMA,KAAI;IACV,QAAQA,KAAI;;AAEhB;AASM,SAAU,eAAe,OAAeA,MAAa;AACzD,SAAO;IACL,MAAM;IACN;IACA,OAAOA,KAAI;IACX,KAAKA,KAAI;IACT,MAAMA,KAAI;IACV,QAAQA,KAAI;;AAEhB;SAUgB,2BACd,QACA,UACAA,MAAa;AAEb,SAAO;IACL,MAAM;IACN;IACA;IACA,OAAOA,KAAI;IACX,KAAKA,KAAI;IACT,MAAMA,KAAI;IACV,QAAQA,KAAI;;AAEhB;AAWM,SAAU,YAAY,UAAqBA,MAAa;AAC5D,SAAO;IACL,MAAM;IACN;IACA,OAAOA,KAAI;IACX,KAAKA,KAAI;IACT,MAAMA,KAAI;IACV,QAAQA,KAAI;;AAEhB;AAYM,SAAU,oBAAoB,OAAeA,MAAa;AAC9D,SAAO;IACL,MAAM;IACN;IACA,OAAOA,KAAI;IACX,KAAKA,KAAI;IACT,MAAMA,KAAI;IACV,QAAQA,KAAI;;AAEhB;AASM,SAAU,oBACd,YACAA,MAAa;AAEb,SAAO;IACL,MAAM;IACN;IACA,OAAOA,KAAI;IACX,KAAKA,KAAI;IACT,MAAMA,KAAI;IACV,QAAQA,KAAI;;AAEhB;AASM,SAAU,mBAAmB,UAAqBA,MAAa;AACnE,SAAO;IACL,MAAM;IACN;IACA,OAAOA,KAAI;IACX,KAAKA,KAAI;IACT,MAAMA,KAAI;IACV,QAAQA,KAAI;;AAEhB;SAUgB,2BACd,UACA,QACAA,MAAa;AAEb,SAAO;IACL,MAAM;IACN;IACA;IACA,OAAOA,KAAI;IACX,KAAKA,KAAI;IACT,MAAMA,KAAI;IACV,QAAQA,KAAI;;AAEhB;AAQM,SAAU,sBAAsB,UAAmB;AACvD,SAAO;IACL,MAAM;IACN;IACA,OAAO,SAAS,CAAC,GAAG,SAAS;IAC7B,KAAK,SAAS,SAAS,SAAS,CAAC,GAAG,OAAO;IAC3C,MAAM,SAAS,CAAC,GAAG,QAAQ;IAC3B,QAAQ,SAAS,CAAC,GAAG,UAAU;;AAEnC;AAWM,SAAU,gBAAgBA,MAAa;AAC3C,SAAO;IACL,MAAM;IACN,MAAM;IACN,OAAOA,KAAI;IACX,KAAKA,KAAI;IACT,MAAMA,KAAI;IACV,QAAQA,KAAI;;AAEhB;SAMgB,uBAAuBA,MAAe,SAAiB,QAAe;AACpF,QAAM,aAA8B;IAClC;IACA,UAAU;IACV,MAAM;IACN,MAAMA,KAAI;IACV,QAAQA,KAAI;IACZ,GAAI,UAAU,EAAE,OAAM;;AAExB,SAAO;IACL,MAAM;IACN,MAAM;IACN,MAAM,CAAA;IACN,aAAa,CAAC,UAAU;IACxB,OAAOA,KAAI;IACX,KAAKA,KAAI;IACT,MAAMA,KAAI;IACV,QAAQA,KAAI;;AAEhB;AAOM,SAAU,yBAAyB,MAAcA,MAAa;AAClE,SAAO;IACL,MAAM;IACN;IACA,MAAM,CAAA;IACN,SAAS;IACT,OAAOA,KAAI;IACX,KAAKA,KAAI;IACT,MAAMA,KAAI;IACV,QAAQA,KAAI;;AAEhB;AAQM,SAAU,kBAAkB,YAAqB;AACrD,QAAM,MAAM,yCAAoC,WAAW,MAAM,aAAa;AAE9E,MAAI,WAAW,WAAW,GAAG;AAC3B,UAAM,MAAM,+DAA0D;AACtE,WAAO;MACL,MAAM;MACN,MAAM;MACN,OAAO;MACP,KAAK;MACL,MAAM;MACN,QAAQ;;EAEZ;AAEA,MAAI,WAAW,WAAW,GAAG;AAC3B,UAAM,MAAM,8DAAyD,WAAW,CAAC,EAAE,IAAI,GAAG;AAC1F,WAAO,WAAW,CAAC;EACrB;AAEA,QAAM,cAA2B;IAC/B,MAAM;IACN;IACA,OAAO,WAAW,CAAC,GAAG,SAAS;IAC/B,KAAK,WAAW,WAAW,SAAS,CAAC,GAAG,OAAO;IAC/C,MAAM,WAAW,CAAC,GAAG,QAAQ;IAC7B,QAAQ,WAAW,CAAC,GAAG,UAAU;;AAGnC,QAAM,MACJ,yDAAoD,WAAW,MAAM,qBAAqB,YAAY,IAAI,EAAE;AAE9G,SAAO;AACT;AClXM,SAAU,aAAa,MAAa;AACxC,SAAO;AACT;AAGM,SAAU,cAAc,OAAyB;AACrD,SAAO;AACT;AAGM,SAAU,mBAAmB,MAAU;AAC3C,SAAO;AACT;AAwCM,SAAU,mBAAmB,OAAiD;AAClF,SAAO;AACT;AAUM,SAAU,qBAAqB,MAAa;AAChD,SAAO;AACT;AAYM,SAAU,qBAAqB,MAA8C;AACjF,SAAO;AACT;AC/HM,SAAU,UAAU,OAA0B,UAAkB;AACpE,MAAI,CAAC;AAAO,WAAO;AACnB,SAAO,SAAS,KAAK,QAAM,MAAM,UAAU,MAAM,MAAM,MAAM,YAAW,MAAO,EAAE;AACnF;SAqDgB,kBACd,KACA,uBAAiC,CAAA,GAAE;AAGnC,MAAI,IAAI,QAAO,GAAI;AACjB,WAAO;EACT;AAGA,aAAW,WAAW,2BAA2B;AAC/C,QAAI,IAAI,MAAM,OAAO,GAAG;AACtB,aAAO;IACT;EACF;AAGA,aAAW,WAAW,sBAAsB;AAC1C,QAAI,IAAI,MAAM,OAAO,GAAG;AACtB,aAAO;IACT;EACF;AAGA,MAAI,IAAI,eAAc,GAAI;AACxB,WAAO;EACT;AAEA,SAAO;AACT;SAkEgB,iBACd,KACA,uBAAiC,CAAA,GAAE;AAEnC,MAAI,kBAAkB,KAAK,oBAAoB,GAAG;AAChD,WAAO;EACT;AAEA,SAAO,IAAI,gBAAe;AAC5B;AAsFM,SAAU,oBAAoB,KAAkB;AACpD,MAAI,CAAC,IAAI,oBAAmB;AAAI,WAAO;AAEvC,MAAI,OAAO,IAAI,QAAO,EAAG;AAEzB,SAAO,IAAI,MAAM,GAAG,KAAK,CAAC,IAAI,QAAO,GAAI;AACvC,YAAQ;AACR,QAAI,QAAO;AACX,QAAI,IAAI,oBAAmB,GAAI;AAC7B,cAAQ,IAAI,QAAO,EAAG;IACxB;EACF;AAEA,SAAO;AACT;AAYM,SAAU,uBAAuB,KAAoB,SAAe;AACxE,MAAI,IAAI,MAAM,OAAO,GAAG;AACtB,QAAI,QAAO;AACX,WAAO;EACT;AACA,SAAO;AACT;AAWM,SAAU,wBAAwB,KAAkB;AAIxD,QAAM,aAAa,IAAI,aAAY;AACnC,MAAI;AAEJ,MAAI,IAAI,oBAAmB,GAAI;AAC7B,UAAM,WAAW,IAAI,KAAI,EAAG;AAC5B,QAAI,QAAO;AACX,QAAI,IAAI,MAAM,GAAG,GAAG;AAClB,UAAI,QAAO;AACX,aAAO;IACT,OAAO;AACL,UAAI,gBAAgB,UAAU;IAChC;EACF;AAEA,QAAM,QAAQ,IAAI,gBAAe;AACjC,SAAO,SAAS,SAAY,EAAE,MAAM,MAAK,IAAK,EAAE,MAAK;AACvD;AAQM,SAAU,qBAAqB,KAAkB;AACrD,MAAI,IAAI,MAAM,GAAG;AAAG,WAAO;AAC3B,MAAI,CAAC,IAAI,oBAAmB;AAAI,WAAO;AACvC,QAAM,OAAO,IAAI,OAAO,CAAC;AACzB,SAAO,SAAS,QAAQ,KAAK,UAAU;AACzC;SAYgB,oBACd,KACA,YACAQ,UAAe;AAEf,QAAM,aAAsD,CAAA;AAC5D,QAAM,WAAW,IAAI,YAAW;AAEhC,KAAG;AACD,QAAI,CAAC,IAAI,oBAAmB;AAAI;AAEhC,UAAM,WAAW,IAAI,QAAO;AAC5B,UAAM,MAAe;MACnB,MAAM;MACN,MAAM,SAAS;MACf,OAAO,SAAS;MAChB,KAAK,SAAS;MACd,MAAM,SAAS;MACf,QAAQ,SAAS;;AAGnB,QAAI,QAAQ,KAAK,uCAAuCA,QAAO,kBAAkB;AAEjF,UAAM,QAAQ,WAAU;AACxB,QAAI,OAAO;AACT,iBAAW,KAAK,EAAE,KAAK,MAAK,CAAE;IAChC;EACF,SAAS,IAAI,MAAM,GAAG,KAAK,CAAC,IAAI,QAAO;AAEvC,QAAM,SAAS,IAAI,YAAW;AAC9B,SAAO;IACL,MAAM;IACN;IACA,OAAO,SAAS;IAChB,KAAK,OAAO;IACZ,MAAM,SAAS;IACf,QAAQ,SAAS;;AAErB;AAQM,SAAU,gBACd,MACA,MAA8B;AAE9B,SAAO,MAAM,UAAU,UAAU,MAAM,UAAU,OAAO,KAAK,UAAU,KAAK;AAC9E;AEhXM,SAAU,oBACd,KACA,gBAA8B;AAK9B,QAAM,UAAqB,CAAA;AAG3B,MAAI,YAAY;AAChB,QAAM,aAAa,IAAI,KAAI,EAAG,SAAS;AACvC,QAAM,YAAY,IAAI,KAAI,EAAG,QAAQ;AACrC,QAAM,cAAc,IAAI,KAAI,EAAG,UAAU;AAGzC,MAAI,IAAI,oBAAmB,GAAI;AAC7B,gBAAY,IAAI,QAAO,EAAG;AAG1B,WAAO,IAAI,MAAM,GAAG,KAAK,CAAC,IAAI,QAAO,GAAI;AACvC,UAAI,QAAO;AACX,mBAAa;AAEb,UAAI,IAAI,oBAAmB,GAAI;AAC7B,qBAAa,IAAI,QAAO,EAAG;MAC7B;IACF;AAGA,QAAI,IAAI,MAAM,GAAG,GAAG;AAClB,UAAI,QAAO;AAEX,YAAM,aAAwB,CAAA;AAE9B,aAAO,CAAC,IAAI,QAAO,KAAM,CAAC,IAAI,MAAM,GAAG,GAAG;AACxC,cAAM,EAAE,MAAM,MAAK,IAAK,wBAAwB,GAAG;AAEnD,YAAI,SAAS,QAAW;AAEtB,qBAAW,KAAK;YACd,MAAM;YACN,YAAY;cACV;gBACE,KAAK,EAAE,MAAM,cAAc,KAAI;gBAC/B;cACD;YACF;YACD,OAAO,MAAM;YACb,KAAK,MAAM;YACX,MAAM,MAAM;YACZ,QAAQ,MAAM;UACJ,CAAA;QACd,OAAO;AACL,qBAAW,KAAK,KAAK;QACvB;AAEA,YAAI,IAAI,MAAM,GAAG,GAAG;AAClB,cAAI,QAAO;QACb,WAAW,CAAC,IAAI,MAAM,GAAG,GAAG;AAC1B;QACF;MACF;AAGA,UAAI,IAAI,MAAM,GAAG,GAAG;AAClB,YAAI,QAAO;MACb;AAGA,cAAQ,KAAK;QACX,MAAM;QACN,MAAM;QACN,MAAM;QACN,OAAO;QACP,KAAK,IAAI,YAAW,EAAG;QACvB,MAAM;QACN,QAAQ;MACE,CAAA;IACd,OAAO;AAEL,cAAQ,KAAK;QACX,MAAM;QACN,OAAO;QACP,OAAO;QACP,KAAK,IAAI,YAAW,EAAG;QACvB,MAAM;QACN,QAAQ;MACE,CAAA;IACd;EACF;AAYA,QAAM,YAAuB,CAAC,GAAG,OAAO;AACxC,QAAM,YAAyC,CAAA;AAC/C,SAAO,CAAC,kBAAkB,GAAG,GAAG;AAC9B,QAAI,IAAI,MAAM,SAAS,EAAE,KAAK,IAAI,MAAM,SAAS,EAAE,GAAG;AAKpD,UAAI,UAAU,IAAI;AAAG;AACrB,UAAI,QAAO;AACX,YAAM,SAAS,iBAAiB,KAAK,CAAC,SAAS,IAAI,CAAC;AACpD,UAAI;AAAQ,kBAAU,IAAI,IAAI;AAC9B;IACF;AACA,QAAI,IAAI,MAAM,SAAS,IAAI,GAAG;AAC5B,UAAI,QAAO;AACX,YAAM,QAAmB,CAAA;AACzB,aAAO,CAAC,kBAAkB,KAAK,CAAC,SAAS,IAAI,SAAS,EAAE,CAAC,GAAG;AAC1D,cAAMC,UAAS,IAAI,aAAY;AAC/B,cAAM,OAAO,IAAI,aAAY;AAC7B,YAAI;AAAM,gBAAM,KAAK,IAAI;AACzB,YAAI,IAAI,aAAY,MAAOA;AAAQ,cAAI,QAAO;MAChD;AACA,YAAM,QAAQ,MAAM,CAAC;AACrB,YAAM,OAAO,MAAM,MAAM,SAAS,CAAC;AACnC,gBAAU,MAAM,IAAI,mBAAmB;QACrC,MAAM;QACN,UAAU;QACV,GAAI,OAAO,UAAU,SAAY,EAAE,OAAO,MAAM,MAAK,IAAK,CAAA;QAC1D,GAAI,MAAM,QAAQ,SAAY,EAAE,KAAK,KAAK,IAAG,IAAK,CAAA;QAClD,GAAI,OAAO,SAAS,SAAY,EAAE,MAAM,MAAM,KAAI,IAAK,CAAA;QACvD,GAAI,OAAO,WAAW,SAAY,EAAE,QAAQ,MAAM,OAAM,IAAK,CAAA;MAC9D,CAAA;AACD;IACF;AACA,UAAM,SAAS,IAAI,aAAY;AAC/B,UAAM,OAAO,IAAI,aAAY;AAC7B,QAAI;AAAM,gBAAU,KAAK,IAAI;AAQ7B,QAAI,IAAI,aAAY,MAAO,QAAQ;AACjC,UAAI,QAAO;IACb;EACF;AAEA,QAAM,UAAU,mBAAmB,eAAmC,cAAc,EAAE,SACpF,GAAG,SAAS;AAEd,MAAI,OAAO,KAAK,SAAS,EAAE,SAAS;AAAG,YAAQ,cAAc,SAAS;AACtE,SAAO,QAAQ,SAAS,IAAI,YAAW,CAAE,EAAE,MAAK;AAClD;ACpKM,SAAU,iBACd,KACA,gBAA8B;AAO9B,QAAM,UAAU,mBAAmB,eAAuB,cAAc;AACxE,MAAI,IAAI,MAAM,SAAS,GAAG,GAAG;AAC3B,UAAM,WAAW,IAAI,QAAO;AAC5B,UAAM,OAAO,IAAI,MAAM,SAAS,KAAK,IAAI,IAAI,QAAO,IAAK;AACzD,YAAQ,aACN,OACA,mBAAmB;MACjB,MAAM;MACN,OAAO;MACP,OAAO,SAAS;MAChB,KAAK,KAAK;MACV,MAAM,SAAS;MACf,QAAQ,SAAS;IAClB,CAAA,CAAC;EAEN;AACA,SAAO,QAAQ,SAAS,IAAI,YAAW,CAAE,EAAE,MAAK;AAClD;AAiCM,SAAU,mBAAmB,KAAoB,cAAmB;AACxE,QAAM,OAAkB,CAAA;AACxB,MAAI,WAAmB;AACvB,MAAI,YAA2B;AAC/B,MAAI,cAA8B;AAClC,MAAI,YAA4B;AAChC,MAAI,aAA6B;AACjC,MAAI,WAA0B;AAC9B,MAAI,QAAwB;AAG5B,MAAI,IAAI,MAAM,SAAS,GAAG,GAAG;AAC3B,QAAI,QAAO;AACX,eAAW,SAAS;AAGpB,UAAM,aAAa,IAAI,KAAI;AAC3B,QAAI,iBAAiB,UAAU,GAAG;AAChC,iBAAW,WAAW;AACtB,UAAI,QAAO;IACb;AAEA,QAAI,IAAI,MAAM,SAAS,EAAE,GAAG;AAC1B,UAAI,QAAO;AACX,mBAAa,IAAI,gBAAe;IAClC;EACF,WAAW,IAAI,MAAM,SAAS,EAAE,GAAG;AACjC,QAAI,QAAO;AACX,eAAW,SAAS;AACpB,eAAW;AACX,iBAAa,IAAI,gBAAe;EAClC,WAAW,IAAI,MAAM,SAAS,KAAK,GAAG;AACpC,QAAI,QAAO;AACX,eAAW,SAAS;AACpB,gBAAY,IAAI,gBAAe;EACjC,WAAW,IAAI,MAAM,SAAS,KAAK,GAAG;AACpC,QAAI,QAAO;AACX,eAAW,SAAS;AAGpB,QAAI,IAAI,MAAM,SAAS,KAAK,GAAG;AAC7B,UAAI,QAAO;AACX,iBAAW;AAGX,YAAM,aAAa,IAAI,KAAI;AAC3B,YAAM,MAAM,gDAAyC;QACnD,OAAO,WAAW;QAClB,MAAM,WAAW;MAClB,CAAA;AAGD,UAAI,iBAAiB,UAAU,KAAK,QAAQ,UAAU,GAAG;AACvD,oBAAY,WAAW;AACvB,YAAI,QAAO;AACX,cAAM,MAAM,0BAAqB,WAAW,eAAe,IAAI,KAAI,EAAG,KAAK;MAC7E,OAAO;AACL,cAAM,IAAI,MAAM,mCAAmC;MACrD;AAGA,YAAM,MAAM,iDAA0C,IAAI,KAAI,EAAG,KAAK;AACtE,UAAI,IAAI,MAAM,SAAS,IAAI,GAAG;AAC5B,cAAM,MAAM,mCAA8B;AAC1C,YAAI,QAAO;AACX,cAAM,MAAM,oDAA6C,IAAI,KAAI,EAAG,KAAK;AAGzE,YAAI,uBAAuB,KAAK,SAAS,GAAG,GAAG;AAC7C,gBAAM,MAAM,kCAA6B;QAC3C;AAEA,cAAM,gBAAgB,IAAI,KAAI;AAC9B,cAAM,MAAM,mDAA4C;UACtD,OAAO,cAAc;UACrB,MAAM,cAAc;UACpB,UAAU,cAAc;QACzB,CAAA;AACD,sBAAc,IAAI,aAAY;AAC9B,cAAM,MAAM,2CAAsC,WAAW;MAC/D,OAAO;AACL,cAAM,MAAM,iDAA4C;MAC1D;IACF,OAAO;AAEL,kBAAY,IAAI,gBAAe;IACjC;EACF,WAAW,IAAI,MAAM,SAAS,OAAO,GAAG;AACtC,QAAI,QAAO;AACX,eAAW,SAAS;EACtB,WAAW,IAAI,eAAc,KAAM,IAAI,UAAU,IAAI,KAAI,EAAG,KAAK,GAAG;AAMlE,eAAW,SAAS;EACtB,OAAO;AAEL,YAAQ,IAAI,gBAAe;AAC3B,QAAI,IAAI,MAAM,SAAS,KAAK,GAAG;AAC7B,UAAI,QAAO;AACX,iBAAW,SAAS;IACtB;EACF;AAIA,MAAI,gBAA+B;AACnC,MAAI,IAAI,MAAM,SAAS,IAAI,GAAG;AAE5B,UAAM,YAAY,IAAI,OAAO,CAAC;AAC9B,QAAI,aAAa,UAAU,MAAM,YAAW,MAAO,SAAS,OAAO;AACjE,UAAI,QAAO;AACX,UAAI,QAAO;AACX,sBAAgB,SAAS;IAC3B;EAEF,WAAW,IAAI,MAAM,SAAS,KAAK,GAAG;AACpC,QAAI,QAAO;AACX,UAAM,aAAa,IAAI,KAAI;AAC3B,QAAI,iBAAiB,UAAU,GAAG;AAChC,sBAAgB,WAAW;AAC3B,UAAI,QAAO;IACb,OAAO;AACL,sBAAgB,SAAS;IAC3B;EACF;AAOA,MAAI;AACJ,MAAI,eAAiC;AACrC,MAAI,eAAe;AAEnB,MAAI,aAAa,SAAS,SAAS;AACjC,UAAM,SAAS,IAAI,gBAAe;AAClC,eAAW,OAAO;AAElB,QAAI,OAAO,eAAe,QAAQ;AAChC,UAAI,QAAO;AACX,qBAAe,IAAI,yBAAwB;IAC7C,WAAW,OAAO,eAAe,WAAW,OAAO,eAAe,SAAS;AAEzE,qBAAe;AACf,iBAAW,OAAO;AAClB,UAAI,QAAO;AACX,kBAAY,IAAI,gBAAe;AAC/B,UAAI,IAAI,MAAM,KAAK,GAAG;AACpB,YAAI,QAAO;MACb,WAAW,CAAC,IAAI,aAAY,GAAI;AAC9B,cAAM,IAAI,MAAM,sCAAsC;MACxD;IACF;EAEF,OAAO;AACL,UAAM,SAAS,IAAI,+BAA8B;AACjD,eAAW,OAAO;AAClB,QAAI,OAAO,SAAS;AAClB,UAAI,QAAO;AACX,qBAAe,IAAI,yBAAwB;IAC7C;EACF;AAUA,QAAMT,OAAM;IACV,OAAO,aAAa;IACpB,KAAK,aAAa;IAClB,MAAM,aAAa;IACnB,QAAQ,aAAa;;AAEvB,QAAM,YAA4C;IAChD,UAAU,mBAAmB,oBAAoB,UAAUA,IAAG,CAAC;;AAEjE,MAAI;AAAU,cAAU,KAAK,IAAI,mBAAmB,oBAAoB,UAAUA,IAAG,CAAC;AACtF,MAAI;AAAY,cAAU,IAAI,IAAI;AAClC,MAAI;AAAO,cAAU,OAAO,IAAI;AAChC,MAAI;AAAW,cAAU,aAAa,UAAU,UAAU,OAAO,IAAI;AACrE,MAAI;AAAW,cAAU,OAAO,IAAI,mBAAmB,oBAAoB,WAAWA,IAAG,CAAC;AAC1F,MAAI;AAAa,cAAU,MAAM,IAAI;AACrC,MAAI;AACF,cAAU,OAAO,IAAI,mBAAmB,oBAAoB,eAAeA,IAAG,CAAC;AACjF,OAAK,KAAK,YAAY,UAAU,EAAE,GAAGA,MAAK,KAAKA,KAAI,OAAO,EAAC,CAAE,CAAC;AAC9D,MAAI,iBAAiB,MAAM;AACzB,SAAK,KAAK,YAAY,cAAc,EAAE,GAAGA,MAAK,KAAKA,KAAI,OAAO,EAAC,CAAE,CAAC;EACpE;AACA,QAAM,UAAU,mBAAmB,KAAe,YAAY,EAC3D,SAAS,GAAG,IAAI,EAChB,cAAc,SAAS;AAC1B,MAAI,cAAc;AAChB,YAAQ,aACN,gBACA,mBAAmB;MACjB,MAAM;MACN,OAAO;MACP,GAAGA;IACJ,CAAA,CAAC;EAEN;AACA,SAAO,QAAQ,SAAS,IAAI,YAAW,CAAE,EAAE,MAAK;AAClD;AA0BA,SAAS,sBAAsB,KAAoB,YAAmB;AACpE,QAAM,WAAsB,CAAA;AAC5B,QAAM,eAAe,MACnB,IAAI,MAAM,SAAS,GAAG,KAAM,cAAc,IAAI,MAAM,SAAS,IAAI;AAEnE,SAAO,CAAC,IAAI,QAAO,KAAM,CAAC,aAAY,GAAI;AAOxC,QAAI,UAAU,IAAI,KAAI,CAAE,GAAG;AACzB,UAAI,QAAO;AACX;IACF;AACA,QAAI,CAAC,IAAI,eAAc,KAAM,CAAC,IAAI,UAAU,IAAI,KAAI,EAAG,KAAK;AAAG;AAC/D,QAAI,QAAO;AACX,UAAM,MAAM,IAAI,aAAY;AAC5B,QAAI,KAAK;AACP,eAAS,KAAK,GAAG;IACnB;AAKA,QAAI,IAAI,MAAM,SAAS,IAAI,KAAK,IAAI,MAAM,SAAS,GAAG,KAAK,IAAI,MAAM,GAAG,GAAG;AACzE,UAAI,QAAO;IACb;EACF;AAEA,SAAO;AACT;AAwEA,SAAS,mBAAmB,KAAoB,WAAyB,OAAY;AACnF,MAAI,cAAc,MAAM;AACtB,WAAO;EACT;AACA,MAAI,oBAAoB,IAAI,UAAU,OAAO,cAAW,KAAQ,EAAE,GAAG;AACnE,WAAO;EACT;AACA,SAAO,IAAI,eAAc,KAAM,IAAI,UAAU,MAAM,OAAO,YAAW,CAAE;AACzE;AAEM,SAAU,eAAe,KAAoB,cAAmB;AACpE,QAAM,OAAkB,CAAA;AAiCxB,MAAI,UAAU;AACd,QAAM,kBAAkB,IAAI,aAAY;AACxC,QAAM,mBAAmB;AACzB,MAAI,cAA4B;AAChC,WAAS,IAAI,GAAG,IAAI,oBAAoB,CAAC,IAAI,QAAO,GAAI,KAAK;AAC3D,UAAM,QAAQ,IAAI,KAAI;AACtB,QAAI,MAAM,UAAU,SAAS,MAAM;AACjC,gBAAU;AACV;IACF;AAEA,QACE,MAAM,UAAU,SAAS,OACzB,MAAM,UAAU,SAAS,YACzB,MAAM,UAAU,SAAS,OACzB,MAAM,UAAU,SAAS,IACzB;AACA;IACF;AAEA,QACE,MAAM,SAAS,UACf,MAAM,SAAS,aAAa,QAC5B,mBAAmB,KAAK,aAAa,KAAK,GAC1C;AACA;IACF;AACA,QAAI,CAAC,UAAU,KAAK,GAAG;AACrB,oBAAc;IAChB;AACA,QAAI,QAAO;EACb;AACA,MAAI,gBAAgB,eAAe;AASnC,MAAI,0BAA0B;AAC9B,MAAI,CAAC,SAAS;AACZ,UAAM,gBAAgB,IAAI,aAAY;AACtC,UAAM,kBAAkB,aAAa;AACrC,UAAM,eAAe;AAGrB,QAAI,uBAAuB;AAO3B,QAAI,YAA0B;AAG9B,WAAO,CAAC,IAAI,QAAO,KAAM,IAAI,UAAU,gBAAgB,cAAc;AACnE,YAAM,QAAQ,IAAI,KAAI;AACtB,YAAM,aAAa,MAAM,OAAO,YAAW;AAa3C,UAAI,wBAAwB,MAAM,SAAS,UAAa,MAAM,SAAS,iBAAiB;AACtF;MACF;AAGA,UACE,eAAe,SAAS,YACxB,eAAe,SAAS,OACxB,eAAe,SAAS,IACxB;AACA;MACF;AAMA,UAAI,eAAe,SAAS,QAAQ,eAAe,SAAS,KAAK;AAE/D,YAAI,MAAM,SAAS,iBAAiB;AAClC,oCAA0B;QAC5B;AACA;MACF;AAGA,UAAI,mBAAmB,KAAK,WAAW,KAAK,GAAG;AAG7C,YAAI,MAAM,SAAS,UAAa,MAAM,SAAS,iBAAiB;AAC9D,oCAA0B;AAC1B;QACF;AAEA,+BAAuB;MACzB;AAEA,UAAI,CAAC,UAAU,KAAK,GAAG;AACrB,oBAAY;MACd;AACA,UAAI,QAAO;IACb;AAEA,QAAI,gBAAgB,aAAa;EACnC;AAEA,QAAM,cAAc,WAAW;AAE/B,MAAI;AACJ,MAAI,aAAa;AAIf,gBAAY,IAAI,gBAAe;EACjC,OAAO;AAGL,UAAM,kBAA6B,CAAA;AACnC,UAAM,gBAAgB;AACtB,QAAI,aAAa;AAWjB,QAAI,sBAAsB;AAE1B,WACE,CAAC,IAAI,QAAO,KACZ,CAAC,IAAI,MAAM,SAAS,IAAI,MACvB,uBAAwB,CAAC,IAAI,eAAc,KAAM,CAAC,IAAI,UAAU,IAAI,KAAI,EAAG,KAAK,MACjF,aAAa,eACb;AACA,4BAAsB;AACtB,YAAM,YAAY,IAAI,aAAY;AAGlC,sBAAgB,KAAK,IAAI,gBAAe,CAAE;AAG1C,UAAI,IAAI,aAAY,MAAO,WAAW;AAEpC,YAAI,QAAO;MACb;AACA;IACF;AAGA,QAAI,gBAAgB,WAAW,GAAG;AAChC,YAAM,IAAI,MAAM,oCAAoC;IACtD,WAAW,gBAAgB,WAAW,GAAG;AACvC,kBAAY,gBAAgB,CAAC;IAC/B,OAAO;AAEL,kBAAY;QACV,MAAM;QACN,QAAQ;QACR,OAAO,gBAAgB,CAAC,EAAE;QAC1B,KAAK,gBAAgB,gBAAgB,SAAS,CAAC,EAAE;QACjD,MAAM,aAAa;QACnB,QAAQ,aAAa;;IAEzB;EACF;AAEA,OAAK,KAAK,SAAS;AAEnB,MAAI,aAAa;AAUf,2BAAuB,KAAK,SAAS,IAAI;AAGzC,UAAM,eAA0B,sBAAsB,KAAK,IAAI;AAG/D,QAAI,aAAa,WAAW,KAAK,IAAI,QAAO,GAAI;AAC9C,YAAM,IAAI,MAAM,wEAAwE;IAC1F;AAGA,SAAK,KACH,YAAY,cAAc;MACxB,OAAO,aAAa;MACpB,KAAK,IAAI,YAAW,EAAG;MACvB,MAAM,aAAa;MACnB,QAAQ,aAAa;IACtB,CAAA,CAAC;AAKJ,QAAI,iBAAiB;AAErB,QAAI,IAAI,MAAM,SAAS,IAAI,GAAG;AAC5B,UAAI,QAAO;AAGX,UAAI,IAAI,MAAM,SAAS,EAAE,GAAG;AAG1B,cAAM,UAAU,IAAI,KAAI;AACxB,YAAI,QAAO;AACX,cAAM,gBAAgB,eAAe,KAAK,OAAO;AAGjD,aAAK,KACH,YAAY,CAAC,aAAa,GAAG;UAC3B,OAAO,QAAQ;UACf,KAAK,IAAI,YAAW,EAAG;UACvB,MAAM,QAAQ;UACd,QAAQ,QAAQ;QACjB,CAAA,CAAC;AAGJ,yBAAiB;MACnB,OAAO;AAEL,cAAM,eAA0B,sBAAsB,KAAK,KAAK;AAGhE,aAAK,KACH,YAAY,cAAc;UACxB,OAAO,aAAa;UACpB,KAAK,IAAI,YAAW,EAAG;UACvB,MAAM,aAAa;UACnB,QAAQ,aAAa;QACtB,CAAA,CAAC;MAEN;IACF;AAkBA,QAAI,CAAC,kBAAkB,CAAC,IAAI,aAAY,GAAI;AAC1C,UAAI,QAAQ,SAAS,KAAK,+BAA+B;IAC3D;EACF,OAAO;AAGL,QAAI,IAAI,eAAc,KAAM,IAAI,UAAU,IAAI,KAAI,EAAG,KAAK,GAAG;AAC3D,UAAI,QAAO;AACX,YAAM,gBAAgB,IAAI,aAAY;AAGtC,WAAK,KACH,YAAY,CAAC,aAAa,GAAG;QAC3B,OAAO,aAAa;QACpB,KAAK,IAAI,YAAW,EAAG;QACvB,MAAM,aAAa;QACnB,QAAQ,aAAa;MACtB,CAAA,CAAC;IAEN,OAAO;AACL,YAAM,IAAI,MAAM,yDAAyD;IAC3E;EACF;AAEA,SAAO,mBAAmB,KAAsB,YAAY,EACzD,SAAS,GAAG,IAAI,EAChB,SAAS,IAAI,YAAW,CAAE,EAC1B,MAAK;AACV;AAyBM,SAAU,gBAAgB,KAAoB,cAAmB;AACrE,MAAI,WAA0B;AAC9B,MAAI,aAA6B;AAGjC,MAAI,IAAI,MAAM,SAAS,IAAI,GAAG;AAC5B,QAAI,QAAO;EACb;AAGA,QAAM,aAAa,IAAI,KAAI;AAC3B,MAAI,iBAAiB,UAAU,GAAG;AAChC,eAAW,WAAW;AACtB,QAAI,QAAO;EACb,OAAO;AACL,UAAM,IAAI,MAAM,oCAAoC;EACtD;AAGA,MAAI,CAAC,IAAI,MAAM,SAAS,EAAE,GAAG;AAC3B,UAAM,IAAI,MAAM,+CAA+C;EACjE;AACA,MAAI,QAAO;AAGX,eAAa,IAAI,gBAAe;AAChC,MAAI,CAAC,YAAY;AACf,UAAM,IAAI,MAAM,2CAA2C;EAC7D;AAGA,MAAI,gBAA+B;AACnC,MAAI,IAAI,MAAM,SAAS,IAAI,GAAG;AAC5B,UAAM,YAAY,IAAI,OAAO,CAAC;AAC9B,QAAI,aAAa,UAAU,MAAM,YAAW,MAAO,SAAS,OAAO;AACjE,UAAI,QAAO;AACX,UAAI,QAAO;AACX,sBAAgB,SAAS;IAC3B;EACF,WAAW,IAAI,MAAM,SAAS,KAAK,GAAG;AACpC,QAAI,QAAO;AACX,UAAM,aAAa,IAAI,KAAI;AAC3B,QAAI,iBAAiB,UAAU,GAAG;AAChC,sBAAgB,WAAW;AAC3B,UAAI,QAAO;IACb,OAAO;AACL,sBAAgB,SAAS;IAC3B;EACF;AAGA,QAAM,WAAsB,IAAI,yBAAyB,KAAK;AAS9D,QAAMA,OAAM;IACV,OAAO,aAAa;IACpB,KAAK,aAAa;IAClB,MAAM,aAAa;IACnB,QAAQ,aAAa;;AAEvB,QAAM,YAA4C;IAChD,UAAU,mBAAmB,oBAAoB,SAAS,KAAKA,IAAG,CAAC;IACnE,KAAK,mBAAmB,oBAAoB,UAAUA,IAAG,CAAC;IAC1D,IAAI;;AAEN,MAAI;AACF,cAAU,OAAO,IAAI,mBAAmB,oBAAoB,eAAeA,IAAG,CAAC;AAGjF,SAAO,mBAAmB,KAAe,EAAE,GAAG,cAAc,OAAO,SAAQ,CAAE,EAC1E,SAAS,YAAY,UAAU,EAAE,GAAGA,MAAK,KAAKA,KAAI,OAAO,EAAC,CAAE,CAAC,EAC7D,cAAc,SAAS,EACvB,SAAS,IAAI,YAAW,CAAE,EAC1B,MAAK;AACV;AC50BM,SAAU,oBAAoB,KAAoB,gBAA8B;AAOpF,QAAM,OAAkB,CAAA;AACxB,QAAM,YAAgC,CAAA;AAItC,MAAI,IAAI,iBAAgB,KAAM,IAAI,gBAAe,KAAM,IAAI,MAAM,GAAG,GAAG;AAErE,UAAM,SAAS,IAAI,aAAY;AAC/B,SAAK,KAAK,MAAM;AAQhB,QAAI,IAAI,MAAM,GAAG,GAAG;AAElB,UAAI,IAAI,oBAAmB,GAAI;AAC7B,cAAM,WAAW,IAAI,QAAO;AAE5B,aAAK,KAAK;UACR,MAAM;UACN,MAAM,MAAM,SAAS;UACrB,OAAO,SAAS,QAAQ;UACxB,KAAK,SAAS;UACd,MAAM,SAAS;UACf,QAAQ,SAAS;QACA,CAAA;MACrB;IACF,WAAW,IAAI,oBAAmB,GAAI;AACpC,YAAM,WAAW,IAAI,aAAY;AACjC,WAAK,KAAK,QAAQ;IACpB;EACF,WAAW,IAAI,oBAAmB,GAAI;AAEpC,UAAM,WAAW,IAAI,aAAY;AACjC,SAAK,KAAK,QAAQ;EACpB;AAGA,MAAI,IAAI,MAAM,KAAK,GAAG;AACpB,QAAI,IAAI,MAAM,KAAK,GAAG;AACpB,UAAI,IAAI,oBAAmB,GAAI;AAC7B,cAAM,eAAe,IAAI,QAAO;AAChC,kBAAU,KAAK,IAAI,mBAAmB;UACpC,MAAM;UACN,MAAM,aAAa;UACnB,OAAO,aAAa;UACpB,KAAK,aAAa;UAClB,MAAM,aAAa;UACnB,QAAQ,aAAa;QACtB,CAAA;MACH;IACF;EACF;AAEA,QAAM,UAAU,mBAAmB,eAA0B,cAAc,EACxE,SAAS,GAAG,IAAI,EAChB,SAAS,IAAI,YAAW,CAAE;AAE7B,MAAI,OAAO,KAAK,SAAS,EAAE,SAAS,GAAG;AACrC,YAAQ,cAAc,SAAS;EACjC;AAEA,SAAO,QAAQ,MAAK;AACtB;AAuDM,SAAU,uBAAuB,KAAoB,cAAmB;AAC5E,QAAM,QAA0B,CAAA;AAChC,KAAG;AACD,UAAM,KAAK,oBAAoB,GAAG,CAAC;EACrC,SAAS,kBAAkB,GAAG;AAE9B,QAAM,CAAC,OAAO,GAAG,IAAI,IAAI;AACzB,QAAM,OAAkB,MAAM,QAAQ,CAAC,MAAM,OAAO,MAAM,QAAQ,IAAI,CAAC,MAAM,QAAQ;AACrF,QAAM,YAAmC,EAAE,IAAI,MAAM,GAAoB;AACzE,MAAI,MAAM;AAAM,cAAU,MAAM,IAAI,MAAM;AAC1C,MAAI,KAAK,SAAS;AAAG,cAAU,OAAO,IAAI,UAAU,IAAI;AAOxD,WAAS,IAAI,GAAG,IAAI,KAAK,CAAC,IAAI,QAAO,GAAI,KAAK;AAC5C,QAAI,IAAI,MAAM,MAAM,KAAK,CAAC,UAAU,MAAM,GAAG;AAC3C,UAAI,QAAO;AACX,gBAAU,MAAM,IAAI,IAAI,gBAAe;IACzC,WAAW,IAAI,MAAM,OAAO,KAAK,CAAC,UAAU,OAAO,GAAG;AACpD,UAAI,QAAO;AACX,gBAAU,OAAO,IAAI,IAAI,gBAAe;IAC1C,WAAW,IAAI,MAAM,SAAS,IAAI,KAAK,CAAC,UAAU,MAAM,GAAG;AACzD,UAAI,QAAO;AACX,gBAAU,MAAM,IAAI,IAAI,aAAY;IACtC,OAAO;AACL;IACF;EACF;AAEA,SAAO,mBAAmB,KAAmB,YAAY,EACtD,SAAS,GAAG,IAAI,EAChB,cAAc,SAAS,EACvB,SAAS,IAAI,YAAW,CAAE,EAC1B,MAAK;AACV;AAEA,SAAS,oBAAoB,KAAkB;AAC7C,QAAM,EAAE,OAAO,SAAQ,IAAK,wBAAwB,GAAG;AAEvD,MAAI,OAAuB;AAC3B,MAAI,IAAI,MAAM,MAAM,GAAG;AACrB,QAAI,QAAO;AACX,WAAO,IAAI,gBAAe;EAC5B;AAEA,MAAI,CAAC,IAAI,MAAM,SAAS,EAAE,GAAG;AAC3B,UAAM,IAAI,MAAM,4DAA4D;EAC9E;AACA,MAAI,QAAO;AAYX,QAAM,KAAK,IAAI,gBAAe;AAC9B,SAAO,EAAE,OAAO,UAAU,MAAM,GAAE;AACpC;AASA,SAAS,wBAAwB,KAAkB;AACjD,QAAM,OAAO,IAAI,KAAI;AAErB,MAAI,CAAC,QAAQ,UAAU,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,GAAG;AACnD,UAAM,IAAI,MAAM,4CAA4C;EAC9D;AACA,QAAM,OAAO,IAAI,gBAAe;AAChC,QAAM,QAAQ,qBAAqB,IAAI;AACvC,MAAI;AAAO,WAAO,EAAE,OAAO,MAAM,OAAO,UAAU,aAAa,MAAM,MAAM,MAAM,GAAG,EAAC;AAErF,MAAI,OAAO;AACX,MAAI,IAAI,MAAM,GAAG,GAAG;AAClB,WAAO;AACP,QAAI,QAAO;EACb;AACA,QAAM,aAAa,oBAAoB,GAAG;AAC1C,MAAI,CAAC;AAAY,UAAM,IAAI,MAAM,4CAA4C;AAC7E,SAAO,EAAE,OAAO,MAAM,UAAU,aAAa,OAAO,YAAY,MAAM,GAAG,EAAC;AAC5E;AAQA,SAAS,qBAAqB,MAAa;AACzC,QAAM,IAAI;AAWV,UAAQ,EAAE,MAAI;IACZ,KAAK;AACH,aAAO,OAAO,EAAE,UAAU,YAAY,EAAE,MAAM,WAAW,GAAG,IACxD,EAAE,OAAO,MAAM,MAAM,EAAE,MAAK,IAC5B;IACN,KAAK;AACH,aAAO,OAAO,EAAE,SAAS,YAAY,CAAC,aAAa,IAAI,EAAE,IAAI,IACzD,EAAE,OAAO,MAAM,MAAM,EAAE,KAAI,IAC3B;IACN,KAAK;IACL,KAAK;AACH,aAAO,CAAC,EAAE,YAAY,EAAE,UAAU,OAAO,EAAE,UAAU,SAAS,WAC1D,EAAE,OAAO,EAAE,QAAQ,MAAM,EAAE,SAAS,KAAI,IACxC;IACN,KAAK,oBAAoB;AACvB,UAAI,EAAE,aAAa,QAAQ,CAAC,EAAE,QAAQ,CAAC,EAAE;AAAO,eAAO;AACvD,YAAM,QAAQ,qBAAqB,EAAE,IAAI;AACzC,aAAO,SAAS,CAAC,MAAM,QAAQ,EAAE,OAAO,EAAE,OAAO,MAAM,MAAM,KAAI,IAAK;IACxE;IACA,KAAK;AACH,aAAO,EAAE,UAAU,OAAO,EAAE,UAAU,SAAS,WAC3C,EAAE,OAAO,EAAE,QAAQ,MAAM,EAAE,SAAS,KAAI,IACxC;IACN;AACE,aAAO;;AAEb;AAEA,SAAS,aAAa,MAAc,MAAa,KAAkB;AACjE,SAAO;IACL,MAAM;IACN,OAAO;IACP,OAAO,KAAK,SAAS;IACrB,KAAK,IAAI,YAAW,EAAG;IACvB,MAAM,KAAK;IACX,QAAQ,KAAK;;AAEjB;AAOA,SAAS,kBAAkB,KAAkB;AAC3C,MAAI,IAAI,QAAO,KAAM,UAAU,IAAI,KAAI,CAAE;AAAG,WAAO;AACnD,MAAI,UAAU,IAAI,KAAI,GAAI,CAAC,QAAQ,SAAS,SAAS,IAAI,CAAC;AAAG,WAAO;AACpE,SAAO,CAAC,kBAAkB,KAAK,CAAC,SAAS,WAAW,IAAI,CAAC;AAC3D;AAGA,SAAS,UAAU,OAAuB;AACxC,QAAM,QAAQ,CAAC,MAAc,WAAoB;IAC/C,KAAK;MACH,MAAM;MACN;MACA,OAAO,MAAM;MACb,KAAK,MAAM;MACX,MAAM,MAAM;MACZ,QAAQ,MAAM;IACJ;IACZ;EACD;AACD,QAAM,WAAW,MAAM,IAAI,UAAO;AAChC,UAAM,aAAa,CAAC,MAAM,YAAY,KAAK,QAAQ,GAAG,MAAM,MAAM,KAAK,EAAE,CAAC;AAC1E,QAAI,KAAK;AAAO,iBAAW,KAAK,MAAM,SAAS,KAAK,KAAK,CAAC;AAC1D,QAAI,KAAK;AAAM,iBAAW,KAAK,MAAM,QAAQ,KAAK,IAAI,CAAC;AACvD,WAAO;MACL,MAAM;MACN;MACA,QAAQ,KAAK,SAAS,KAAK,UAAU;MACrC,KAAK,KAAK,GAAG;MACb,OAAO,KAAK,SAAS,KAAK,UAAU;MACpC,SAAS,KAAK,SAAS,KAAK,UAAU;;EAE1C,CAAC;AACD,QAAM,UAAU,SAAS,CAAC;AAC1B,QAAM,SAAS,SAAS,SAAS,SAAS,CAAC;AAC3C,SAAO;IACL,MAAM;IACN;IACA,OAAO,QAAQ;IACf,KAAK,OAAO;IACZ,MAAM,QAAQ;IACd,QAAQ,QAAQ;;AAEpB;AAiBM,SAAU,kBACd,KACA,gBAA8B;AAE9B,MAAI,CAAC,IAAI,MAAM,MAAM,GAAG;AACtB,UAAM,IAAI,MACR,uFAAuF;EAE3F;AACA,MAAI,CAAC,IAAI,MAAM,YAAY,GAAG;AAC5B,UAAM,IAAI,MAAM,mCAAmC;EACrD;AAEA,QAAM,YAA8B,CAAA;AAGpC,MAAI,IAAI,MAAM,OAAO,GAAG;AACtB,UAAM,WAAW,IAAI,aAAY;AACjC,cAAU,iBAAiB;EAC7B;AAGA,QAAM,OAAO,IAAI,yBAAyB,uBAAuB;AAEjE,SAAO,mBAAmB,eAAwB,cAAc,EAC7D,SAAS,GAAG,IAAI,EAChB,cAAc,SAAS,EACvB,SAAS,IAAI,YAAW,CAAE,EAC1B,MAAK;AACV;ACxXA,SAAS,gBAAgB,OAAa;AACpC,SAAO,mBAAmB,EAAE,MAAM,WAAW,OAAO,KAAK,MAAK,CAAE;AAClE;AAiBA,SAAS,kBAAkB,KAAkB;AAC3C,QAAM,YAA4C,CAAA;AAElD,MAAI,uBAAuB,KAAK,SAAS,GAAG,GAAG;AAC7C,UAAM,WAAW,IAAI,gBAAe;AACpC,QAAI;AAAU,gBAAU,KAAK,IAAI;AACjC,WAAO;EACT;AAEA,MAAI,CAAC,IAAI,MAAM,SAAS,KAAK;AAAG,WAAO;AACvC,MAAI,QAAO;AAEX,QAAM,aAAa,IAAI,KAAI;AAC3B,MAAI,CAAC,cAAc,CAAC,iBAAiB,UAAU;AAAG,WAAO;AACzD,MAAI,QAAO;AAIX,MAAI,YAAY,WAAW;AAC3B,MAAI,IAAI,MAAM,GAAG,GAAG;AAClB,QAAI,QAAO;AACX,UAAM,SAAS,IAAI,KAAI;AACvB,QAAI,UAAU,iBAAiB,MAAM,GAAG;AACtC,UAAI,QAAO;AACX,kBAAY,GAAG,SAAS,IAAI,OAAO,KAAK;IAC1C;EACF;AAKA,YAAU,OAAO,IAAI,gBAAgB,SAAS;AAO9C,MAAI,uBAAuB,KAAK,SAAS,IAAI,GAAG;AAC9C,UAAM,SAAS,iBAAiB,GAAG;AACnC,QAAI;AAAQ,gBAAU,MAAM,IAAI;EAClC;AAEA,SAAO;AACT;AAoBM,SAAU,mBAAmB,KAAoB,gBAA8B;AACnF,QAAM,OAAkB,CAAA;AAIxB,QAAM,WAAW,iBAAiB,KAAK,CAAC,SAAS,IAAI,CAAC;AACtD,MAAI,UAAU;AACZ,SAAK,KAAK,QAAQ;EACpB;AAGA,QAAM,YAA+B,CAAA;AACrC,MAAI,uBAAuB,KAAK,SAAS,IAAI,GAAG;AAC9C,UAAM,YAAY,iBAAiB,GAAG;AACtC,QAAI;AAAW,gBAAU,MAAM,IAAI;EACrC;AAEA,SAAO,mBAAmB,eAAyB,cAAc,EAC9D,SAAS,GAAG,IAAI,EAChB,cAAc,SAAS,EACvB,SAAS,IAAI,YAAW,CAAE,EAC1B,MAAK;AACV;AA0BA,SAASU,eAAa,YAAmB;AACvC,QAAM,OACJ,OAAO,eAAe,WAClB,aACC,YAA+C;AACtD,SAAO,SAAS,WAAW,SAAS,cAAc,OAAO;AAC3D;AAEM,SAAU,mBAAmB,KAAoB,gBAA8B;AACnF,QAAM,OAAkB,CAAA;AACxB,QAAM,YAA+B,CAAA;AAWrC,MAAI,IAAI,MAAM,SAAS,OAAO,GAAG;AAC/B,QAAI,QAAO;AAKX,UAAM,OAAkB,CAAA;AACxB,UAAM,WAAW,iBAAiB,KAAK,CAAC,SAAS,GAAG,CAAC;AAErD,QAAI,YAAY,SAAS,SAAS,sBAAsB,SAAS,aAAa,OAAO;AACnF,UAAI,SAAS;AAAM,aAAK,KAAK,SAAS,IAAI;AAC1C,UAAI,SAAS;AAAO,aAAK,KAAK,SAAS,KAAK;IAC9C,OAAO;AACL,UAAI;AAAU,aAAK,KAAK,QAAQ;AAChC,6BAAuB,KAAK,SAAS,GAAG;AACxC,YAAM,YAAY,iBAAiB,KAAK,CAAC,SAAS,MAAM,SAAS,IAAI,SAAS,GAAG,CAAC;AAClF,UAAI;AAAW,aAAK,KAAK,SAAS;IACpC;AACA,UAAM,QAAQ,KAAK,CAAC;AACpB,UAAM,OAAO,KAAK,KAAK,SAAS,CAAC;AACjC,cAAU,SAAS,IAAI,mBAAmB;MACxC,MAAM;MACN,UAAU;MACV,GAAI,OAAO,UAAU,SAAY,EAAE,OAAO,MAAM,MAAK,IAAK,CAAA;MAC1D,GAAI,MAAM,QAAQ,SAAY,EAAE,KAAK,KAAK,IAAG,IAAK,CAAA;MAClD,GAAI,OAAO,SAAS,SAAY,EAAE,MAAM,MAAM,KAAI,IAAK,CAAA;MACvD,GAAI,OAAO,WAAW,SAAY,EAAE,QAAQ,MAAM,OAAM,IAAK,CAAA;IAC9D,CAAA;EACH,OAAO;AASL,UAAM,WAAW,iBAAiB,KAAK,CAAC,SAAS,MAAM,SAAS,EAAE,CAAC;AASnE,UAAM,OAAO,UAAU,SAAS,iBAAiBA,eAAa,SAAS,UAAU,IAAI;AACrF,QAAI,YAAY,SAAS,UAAa,SAAS,YAAY;AACzD,WAAK,KAAK,SAAS,UAAU;AAC7B,gBAAU,IAAI,IAAI,gBAAgB,IAAI;IACxC,WACE,UAAU,SAAS,sBACnB,SAAS,aAAa,QACtB,SAAS,MAAM,SAAS,cACxB,OAAO,SAAS,KAAK,UAAU,YAC/B,SAAS,KAAK,MAAM,WAAW,GAAG,KAClC,SAAS,OACT;AAKA,WAAK,KAAK,SAAS,IAAI;AACvB,gBAAU,IAAI,IAAI,SAAS;IAC7B,WAAW,UAAU;AACnB,WAAK,KAAK,QAAQ;IACpB;AACA,QAAI,SAAS,UAAa,IAAI,MAAM,OAAO,GAAG;AAC5C,UAAI,QAAO;AACX,gBAAU,IAAI,IAAI,gBAAgB,OAAO;IAC3C;EACF;AAIA,MAAI,uBAAuB,KAAK,SAAS,IAAI,KAAK,uBAAuB,KAAK,SAAS,EAAE,GAAG;AAC1F,UAAM,YAAY,iBAAiB,GAAG;AACtC,QAAI;AAAW,gBAAU,IAAI,IAAI;EACnC;AAEA,SAAO,mBAAmB,eAAyB,cAAc,EAC9D,SAAS,GAAG,IAAI,EAChB,cAAc,EAAE,GAAG,WAAW,GAAG,kBAAkB,GAAG,EAAC,CAAE,EACzD,SAAS,IAAI,YAAW,CAAE,EAC1B,MAAK;AACV;AA4BM,SAAU,iBAAiB,KAAoB,gBAA8B;AACjF,QAAM,OAAkB,CAAA;AACxB,QAAM,YAA6B,CAAA;AAGnC,QAAM,UAAU,iBAAiB,KAAK,CAAC,SAAS,MAAM,SAAS,GAAG,CAAC;AACnE,MAAI,SAAS;AACX,SAAK,KAAK,OAAO;EACnB;AAMA,MAAI,uBAAuB,KAAK,SAAS,IAAI,GAAG;AAC9C,UAAM,YAAY,iBAAiB,KAAK,CAAC,SAAS,GAAG,CAAC;AACtD,QAAI;AAAW,gBAAU,MAAM,IAAI;EACrC;AAIA,MAAI,uBAAuB,KAAK,SAAS,GAAG,GAAG;AAC7C,UAAM,YAAY,iBAAiB,GAAG;AACtC,QAAI,WAAW;AACb,gBAAU,KAAK,IAAI;IACrB;EACF;AAEA,SAAO,mBAAmB,eAAuB,cAAc,EAC5D,SAAS,GAAG,IAAI,EAChB,cAAc,SAAS,EACvB,SAAS,IAAI,YAAW,CAAE,EAC1B,MAAK;AACV;AASA,SAAS,wBACP,KAAkB;AAElB,MAAI,CAAC,IAAI,MAAM,OAAO;AAAG,WAAO,CAAA;AAChC,MAAI,QAAO;AACX,MAAI,CAAC,IAAI,MAAM,MAAM,GAAG;AACtB,UAAM,IAAI,MAAM,0CAA0C;EAC5D;AACA,MAAI,CAAC,IAAI,MAAM,YAAY,GAAG;AAC5B,UAAM,IAAI,MAAM,0CAA0C;EAC5D;AACA,SAAO,EAAE,gBAAgB,gBAAgB,YAAY,EAAC;AACxD;AAkCM,SAAU,oBAAoB,KAAoB,gBAA8B;AACpF,MAAI,CAAC,IAAI,MAAM,UAAU,GAAG;AAC1B,WAAO;EACT;AAKA,QAAM,OAAkB,CAAA;AACxB,MAAI,QAAO;AACX,MAAI,uBAAuB,KAAK,SAAS,EAAE,GAAG;AAC5C,UAAM,aAAa,iBAAiB,KAAK,CAAC,OAAO,CAAC;AAClD,QAAI,YAAY;AACd,WAAK,KAAK,UAAU;IACtB;EACF;AACA,QAAM,YAAY,wBAAwB,GAAG;AAC7C,QAAM,UAAU,mBAAmB,eAA0B,cAAc,EAAE,SAAS,GAAG,IAAI;AAC7F,MAAI,OAAO,KAAK,SAAS,EAAE,SAAS;AAAG,YAAQ,cAAc,SAAS;AAEtE,SAAO,QAAQ,SAAS,IAAI,YAAW,CAAE,EAAE,MAAK;AAClD;AAqBM,SAAU,gBAAgB,KAAoB,cAAmB;AACrE,QAAM,OAAkB,CAAA;AAGxB,MAAI,IAAI,MAAM,GAAG,GAAG;AAGlB,SAAK,KAAK,IAAI,sBAAqB,CAAE;EACvC,OAAO;AAEL,UAAM,WAAW,iBAAiB,KAAK,CAAC,SAAS,EAAE,CAAC;AACpD,QAAI,UAAU;AACZ,WAAK,KAAK,QAAQ;IACpB;EACF;AAGA,QAAM,YAA4B,CAAA;AAClC,MAAI,uBAAuB,KAAK,SAAS,EAAE,GAAG;AAC5C,UAAM,YAAY,iBAAiB,GAAG;AACtC,QAAI;AAAW,gBAAU,IAAI,IAAI;EACnC;AAEA,SAAO,mBAAmB,KAAY,YAAY,EAC/C,SAAS,GAAG,IAAI,EAChB,cAAc,SAAS,EACvB,SAAS,IAAI,YAAW,CAAE,EAC1B,MAAK;AACV;AAyBM,SAAU,gBAAgB,KAAoB,gBAA8B;AAEhF,QAAM,cAAc,IAAI,gBAAe;AAEvC,MAAI,CAAC,aAAa;AAChB,QAAI,SAAS,yCAAyC;AACtD,WAAO;EACT;AAGA,QAAM,eAAe,IAAI,KAAI;AAE7B,MACE,CAAC,gBACD,CAAE,uBAA6C,SAAS,aAAa,KAAK,GAC1E;AACA,QAAI,SACF,+BAA+B,uBAAuB,KAAK,IAAI,CAAC,gCAAgC,cAAc,KAAK,EAAE;AAEvH,WAAO;EACT;AAEA,MAAI,YAAY,IAAI,QAAO,EAAG;AAI9B,QAAM,iBAAiB,UAAU,YAAW;AAC5C,MAAI,mBAAmB,iBAAiB,mBAAmB,mBAAmB;AAC5E,gBAAY,eAAe;EAC7B,WAAW,mBAAmB,eAAe,mBAAmB,iBAAiB;AAC/E,gBAAY,eAAe;EAC7B,WAAW,cAAc,eAAe,IAAI;AAG1C,QAAI,IAAI,MAAM,SAAS,KAAK,KAAK,IAAI,MAAM,SAAS,GAAG,GAAG;AACxD,6BAAuB,KAAK,SAAS,GAAG;AACxC,UAAI,IAAI,MAAM,SAAS,KAAK,GAAG;AAC7B,YAAI,QAAO;AACX,YAAI,IAAI,MAAM,SAAS,EAAE,GAAG;AAC1B,cAAI,QAAO;AACX,sBAAY,eAAe;QAC7B;MACF;IACF,WAAW,IAAI,MAAM,SAAS,GAAG,GAAG;AAClC,UAAI,QAAO;AACX,UAAI,IAAI,MAAM,SAAS,EAAE,GAAG;AAC1B,YAAI,QAAO;AACX,oBAAY,eAAe;MAC7B;IACF;EACF;AAGA,QAAM,aAAa,IAAI,gBAAe;AAEtC,MAAI,CAAC,YAAY;AACf,QAAI,SAAS,gEAAgE;AAC7E,WAAO;EACT;AAUA,SAAO,mBAAmB,eAAsB,cAAc,EAC3D,SAAS,WAAW,EACpB,aAAa,WAA6B,UAA4B,EACtE,SAAS,IAAI,YAAW,CAAE,EAC1B,MAAK;AACV;AAsCM,SAAU,iBAAiB,KAAoB,gBAA8B;AAQjF,QAAM,OAAkB,CAAA;AACxB,QAAM,YAAuC,CAAA;AAE7C,MAAI,CAAC,IAAI,QAAO,GAAI;AAClB,UAAM,UAAU,IAAI,KAAI;AACxB,UAAM,aAAa,SAAS,OAAO,YAAW;AAC9C,QAAI,cAAc,uBAAuB,SAAS,UAAU,GAAG;AAC7D,UAAI,QAAO;AACX,gBAAU,UAAU,IAAI,gBAAgB,UAAU;IACpD;EACF;AAGA,QAAM,WAAY,UAAU,UAAU,GAAuC,UAAU;AAIvF,yBAAuB,KAAK,SAAS,EAAE;AAEvC,QAAM,aAAa,WAAW,IAAI,gBAAe,IAAK,iBAAiB,KAAK,CAAC,SAAS,IAAI,CAAC;AAC3F,MAAI;AAAY,SAAK,KAAK,UAAU;AAKpC,QAAM,UAAU,eAAe,SAAS;AACxC,MACE,CAAC,aACA,uBAAuB,KAAK,SAAS,IAAI,KACvC,WAAW,uBAAuB,KAAK,SAAS,EAAE,IACrD;AACA,UAAM,cAAc,iBAAiB,KAAK,CAAC,OAAO,CAAC;AACnD,QAAI;AAAa,gBAAU,MAAM,IAAI;EACvC;AAIA,MAAI,WAAW,UAAU,MAAM,MAAM,QAAW;AAC9C,QAAI,SAAS,6CAA6C;EAC5D;AAEA,SAAO,mBAAmB,eAAiC,cAAc,EACtE,SAAS,GAAG,IAAI,EAChB,cAAc,EAAE,GAAG,WAAW,GAAG,wBAAwB,GAAG,EAAC,CAAE,EAC/D,SAAS,IAAI,YAAW,CAAE,EAC1B,MAAK;AACV;AA0CM,SAAU,qBAAqB,KAAoB,gBAA8B;AACrF,QAAM,OAAkB,CAAA;AACxB,QAAM,YAAsC,CAAA;AAK5C,MACE,CAAC,kBAAkB,KAAK,CAAC,SAAS,SAAS,CAAC,KAC5C,CAAC,IAAI,MAAM,SAAS,IAAI,KACxB,CAAC,IAAI,MAAM,OAAO,KAClB,CAAC,IAAI,MAAM,SAAS,IAAI,GACxB;AACA,UAAM,SAAS,IAAI,gBAAe;AAClC,QAAI;AAAQ,WAAK,KAAK,MAAM;EAC9B;AAEA,MAAI,uBAAuB,KAAK,SAAS,IAAI,GAAG;AAC9C,UAAM,WAAW,IAAI,gBAAe;AACpC,UAAM,OAAO,aAAa,QAAQ;AAClC,QAAI,SAAS,MAAM;AACjB,gBAAU,MAAM,IAAI,gBAAgB,IAAI;IAC1C;EACF;AAEA,QAAM,UAAU,mBAAmB,eAAgC,cAAc,EAC9E,SAAS,GAAG,IAAI,EAChB,SAAS,IAAI,YAAW,CAAE;AAC7B,MAAI,OAAO,KAAK,SAAS,EAAE,SAAS;AAAG,YAAQ,cAAc,SAAS;AACtE,SAAO,QAAQ,MAAK;AACtB;AASA,SAAS,aAAa,MAAgC;AACpD,MAAI,CAAC;AAAM,WAAO;AAClB,QAAM,MACJ,OAAO,KAAK,SAAS,WAAW,KAAK,OAAO,OAAO,KAAK,UAAU,WAAW,KAAK,QAAQ;AAC5F,SAAO,QAAQ,OAAO,OAAO,IAAI,QAAQ,OAAO,EAAE;AACpD;AC1qBM,SAAU,iBAAiB,KAAoB,cAAmB;AACtE,QAAM,OAAkB,CAAA;AAKxB,QAAM,oBACJ,IAAI,oBAAmB,KACvB,IAAI,aAAY,KAChB,IAAI,gBAAe,KACnB,IAAI,MAAM,GAAG,KACZ,IAAI,oBAAmB,KAAM,CAAC,IAAI,MAAM,KAAK,KAAK,CAAC,kBAAkB,GAAG;AAC3E,MAAI,mBAAmB;AAErB,UAAM,WAAW,IAAI,gBAAe;AACpC,SAAK,KAAK,QAAQ;AAElB,WAAO,mBAAmB,KAAa,YAAY,EAChD,SAAS,GAAG,IAAI,EAChB,SAAQ,EACR,SAAS,IAAI,YAAW,CAAE,EAC1B,MAAK;EACV;AAGA,MAAI,IAAI,MAAM,KAAK,GAAG;AACpB,QAAI,QAAO;AASX,UAAM,eAEF,CAAA;AAEJ,OAAG;AAGD,UAAI,IAAI,oBAAmB,KAAM,IAAI,aAAY,KAAM,IAAI,MAAM,GAAG,GAAG;AACrE,qBAAa,KAAK,EAAE,MAAM,YAAY,MAAM,IAAI,gBAAe,EAAE,CAAE;AACnE,YAAI,IAAI,MAAM,IAAI,GAAG;AACnB,cAAI,QAAO;AACX;QACF;AACA;MACF;AAGA,YAAM,aAAa,IAAI,KAAI;AAC3B,UAAI,CAAC,iBAAiB,UAAU,GAAG;AACjC,cAAM,IAAI,MAAM,6CAA6C;MAC/D;AACA,YAAM,YAAY,WAAW;AAC7B,UAAI,QAAO;AAGX,YAAM,cAAwB,CAAA;AAC9B,UAAI,IAAI,MAAM,GAAG,GAAG;AAClB,YAAI,QAAO;AAGX,eAAO,CAAC,IAAI,QAAO,KAAM,CAAC,IAAI,MAAM,GAAG,GAAG;AACxC,gBAAM,aAAa,IAAI,KAAI;AAC3B,cAAI,iBAAiB,UAAU,GAAG;AAChC,wBAAY,KAAK,WAAW,KAAK;AACjC,gBAAI,QAAO;AAGX,gBAAI,IAAI,MAAM,GAAG,GAAG;AAClB,kBAAI,QAAO;YACb;UACF,OAAO;AACL;UACF;QACF;AAGA,YAAI,CAAC,IAAI,MAAM,GAAG,GAAG;AACnB,gBAAM,IAAI,MAAM,qCAAqC;QACvD;AACA,YAAI,QAAO;MACb;AAEA,mBAAa,KAAK,EAAE,MAAM,SAAS,MAAM,WAAW,QAAQ,YAAW,CAAE;AAGzE,UAAI,IAAI,MAAM,IAAI,GAAG;AACnB,YAAI,QAAO;AACX;MACF,OAAO;AACL;MACF;IACF,SAAS,CAAC,IAAI,QAAO;AAGrB,QAAI,cAA8B;AAClC,QAAI,IAAI,MAAM,SAAS,IAAI,GAAG;AAC5B,UAAI,QAAO;AAGX,6BAAuB,KAAK,SAAS,GAAG;AAGxC,oBAAc,IAAI,aAAY;IAChC;AASA,UAAM,WAAW;MACf,OAAO,aAAa;MACpB,KAAK,IAAI,YAAW,EAAG;MACvB,MAAM,aAAa;MACnB,QAAQ,aAAa;;AAEvB,SAAK,KACH,mBACE,aAAa,IAAI,SACf,IAAI,SAAS,aACT,oBACE,CAAC,EAAE,KAAK,iBAAiB,YAAY,QAAQ,GAAG,OAAO,IAAI,KAAI,CAAE,GACjE,QAAQ,IAEV,oBACE;MACE;QACE,KAAK,iBAAiB,QAAQ,QAAQ;QACtC,OAAO,cAAc,IAAI,MAAM,IAAI,IAAI,IAAI,KAAK,QAAQ;MACzD;MACD;QACE,KAAK,iBAAiB,QAAQ,QAAQ;QACtC,OAAO,mBACL,IAAI,OAAO,IAAI,WAAS,cAAc,OAAO,IAAI,KAAK,KAAK,QAAQ,CAAC,GACpE,QAAQ;MAEX;IACF,GACD,QAAQ,CACT,GAEP,QAAQ,CACT;AAGH,QAAI,aAAa;AACf,WAAK,KAAK,WAAW;IACvB;EACF;AAEA,SAAO,mBAAmB,KAAa,YAAY,EAChD,SAAS,GAAG,IAAI,EAChB,SAAQ,EACR,SAAS,IAAI,YAAW,CAAE,EAC1B,MAAK;AACV;AAmBM,SAAU,oBAAoB,KAAoB,cAAmB;AACzE,QAAM,OAAkB,CAAA;AAGxB,MAAI,CAAC,IAAI,oBAAmB,GAAI;AAC9B,UAAM,IAAI,MAAM,wCAAwC;EAC1D;AAEA,QAAM,eAAe,IAAI,QAAO,EAAG;AACnC,QAAM,YAAY,IAAI,SAAQ;AAC9B,OAAK,KACH,iBAAiB,cAAc;IAC7B,OAAO,UAAU;IACjB,KAAK,UAAU;IACf,MAAM,UAAU;IAChB,QAAQ,UAAU;EACnB,CAAA,CAAC;AAIJ,MAAI,IAAI,MAAM,GAAG,GAAG;AAClB,QAAI,QAAO;AAGX,UAAM,SAAmD,CAAA;AAEzD,WAAO,CAAC,IAAI,QAAO,KAAM,CAAC,IAAI,MAAM,GAAG,GAAG;AACxC,aAAO,KAAK,wBAAwB,GAAG,CAAC;AAGxC,UAAI,IAAI,MAAM,GAAG,GAAG;AAClB,YAAI,QAAO;MACb,WAAW,CAAC,IAAI,MAAM,GAAG,GAAG;AAE1B;MACF;IACF;AAGA,QAAI,CAAC,IAAI,MAAM,GAAG,GAAG;AACnB,YAAM,IAAI,MAAM,wCAAwC;IAC1D;AACA,QAAI,QAAO;AAGX,QAAI,OAAO,SAAS,GAAG;AACrB,YAAM,WAAW;QACf,OAAO,aAAa;QACpB,KAAK,IAAI,YAAW,EAAG;QACvB,MAAM,aAAa;QACnB,QAAQ,aAAa;;AAEvB,WAAK,KACH,oBACE,OAAO,IAAI,YAAU;QACnB,KAAK,MAAM,OACP,iBAAiB,MAAM,MAAM,QAAQ,IACrC,cAAc,eAAe,eAAe,QAAQ;QACxD,OAAO,MAAM;MACd,EAAC,GACF,QAAQ,CACT;IAEL;EACF;AAEA,SAAO,mBAAmB,KAAgB,YAAY,EACnD,SAAS,GAAG,IAAI,EAChB,SAAS,IAAI,YAAW,CAAE,EAC1B,MAAK;AACV;AC5PM,SAAU,mBAAmB,KAAkB;AACnD,MAAI,CAAC,IAAI,MAAM,GAAG;AAAG,WAAO;AAE5B,MAAI,QAAO;AAEX,MAAI,IAAI,MAAM,GAAG,GAAG;AAElB,QAAI,QAAO;AACX,UAAMC,YAAW,IAAI,QAAO;AAC5B,WAAO;MACL,MAAM;MACN,MAAMA,UAAS;MACf,OAAO;MACP,OAAOA,UAAS,QAAQ;MACxB,KAAKA,UAAS;;EAElB;AAGA,QAAM,WAAW,IAAI,QAAO;AAC5B,SAAO;IACL,MAAM;IACN,MAAM,SAAS;IACf,OAAO;IACP,OAAO,SAAS,QAAQ;IACxB,KAAK,SAAS;;AAElB;AAMM,SAAU,oBAAoB,KAAkB;AACpD,MAAI,CAAC,IAAI,MAAM,SAAS,MAAM,KAAK,CAAC,IAAI,MAAM,SAAS,KAAK;AAAG,WAAO;AAEtE,QAAM,aAAa,IAAI,QAAO;AAC9B,QAAM,gBAAgB,IAAI,QAAO;AACjC,SAAO;IACL,MAAM;IACN,MAAM,cAAc;IACpB,OAAO,WAAW;IAClB,OAAO,WAAW;IAClB,KAAK,cAAc;;AAEvB;AASM,SAAU,sBAAsB,KAAoB,eAAqB;AAC7E,MAAI,CAAC,IAAI,MAAM,SAAS,GAAG;AAAG,WAAO;AAErC,QAAM,cAAc,IAAI,aAAY;AACpC,MAAI,QAAO;AAMX,QAAM,eAAe,IAAI,gBAAe;AACxC,MAAI,CAAC,cAAc;AACjB,QAAI,gBAAgB,WAAW;AAC/B,WAAO;EACT;AAMA,QAAM,UAAU;AAChB,MAAI,QAAQ,SAAS,sBAAsB,QAAQ,aAAa,SAAS,IAAI;AAC3E,UAAM,WAAW,QAAQ;AACzB,UAAM,SAAS,QAAQ;AACvB,WAAO,2BAA2B,UAAU,QAAQ;MAClD,OAAO,SAAS,SAAS;MACzB,KAAM,OAAmB,OAAO;MAChC,MAAM,SAAS,QAAQ;MACvB,QAAQ,SAAS,UAAU;IAC5B,CAAA;EACH;AAGA,MAAI,IAAI,MAAM,SAAS,EAAE,GAAG;AAC1B,WAAO;EACT;AAGA,MAAI,gBAAgB,WAAW;AAC/B,SAAO;AACT;AAQM,SAAU,oBAAoB,KAAkB;AAKpD,MAAI,IAAI,MAAM,GAAG,GAAG;AAClB,UAAM,WAAW,IAAI,QAAO;AAC5B,WAAO;MACL,YAAY;QACV,MAAM;QACN,MAAM,SAAS;QACf,OAAO;QACP,OAAO,SAAS;QAChB,KAAK,SAAS;MACf;MACD,QAAQ,CAAA;;EAEZ;AAGA,QAAM,eAA0B,CAAA;AAChC,SACE,CAAC,IAAI,QAAO,KACZ,CAAC,IAAI,MAAM,SAAS,EAAE,KACtB,CAAC,IAAI,MAAM,SAAS,IAAI,KACxB,CAAC,IAAI,MAAM,SAAS,GAAG,KACvB,CAAC,IAAI,MAAM,SAAS,IAAI,KACxB,CAAC,IAAI,MAAM,SAAS,GAAG,GACvB;AACA,iBAAa,KAAK,IAAI,aAAY,CAAE;EACtC;AAEA,MAAI,aAAa,WAAW,GAAG;AAC7B,WAAO,EAAE,YAAY,MAAM,QAAQ,CAAA,EAAE;EACvC;AAGA,MAAI,aAAa,UAAU,GAAG;AAE5B,UAAM,UAAU,CAAC,MAAe,QAC7B,KAAiC,GAAG;AAEvC,QACE,QAAQ,aAAa,CAAC,GAAG,OAAO,MAAM,SAAS,OAC/C,QAAQ,aAAa,CAAC,GAAG,OAAO,MAAM,SAAS,IAC/C;AACA,YAAM,YAAY,aAAa,CAAC;AAChC,YAAM,cAAc,aAAa,CAAC;AAElC,aAAO;QACL,YAAY,2BACV,iBAAiB,QAAQ,WAAW,OAAO,KAAK,QAAQ,WAAW,MAAM,KAAK,IAAI;UAChF,OAAO,UAAU,SAAS;UAC1B,KAAK,UAAU,OAAO;UACtB,MAAM,UAAU,QAAQ;UACxB,QAAQ,UAAU,UAAU;QAC7B,CAAA,GACD;UACE,MAAM,YAAY,SAAS,eAAe,eAAe;UACzD,OAAO,QAAQ,aAAa,OAAO,KAAK,QAAQ,aAAa,MAAM,KAAK;UACxE,OAAO,YAAY,SAAS;UAC5B,KAAK,YAAY,OAAO;UACxB,MAAM,YAAY;UAClB,QAAQ,YAAY;WAEtB;UACE,OAAO,aAAa,CAAC,EAAE,SAAS;UAChC,KAAK,YAAY,OAAO;UACxB,MAAM,aAAa,CAAC,EAAE,QAAQ;UAC9B,QAAQ,aAAa,CAAC,EAAE,UAAU;SACnC;QAEH,QAAQ,CAAA;;IAEZ;EACF;AAEA,MAAI,aAAa,WAAW,GAAG;AAC7B,WAAO,EAAE,YAAY,aAAa,CAAC,GAAG,QAAQ,CAAA,EAAE;EAClD;AAGA,SAAO,EAAE,YAAY,MAAM,QAAQ,aAAY;AACjD;AAEM,SAAU,gBAAgB,KAAoB,gBAA8B;AAChF,QAAM,gBAAgB,IAAI,aAAY;AACtC,MAAI,mBAAmC;AACvC,MAAI,iBAA4B,CAAA;AAGhC,MAAI;AACF,uBACE,mBAAmB,GAAG,KACtB,oBAAoB,GAAG,KACvB,sBAAsB,KAAK,aAAa;AAG1C,QAAI,CAAC,kBAAkB;AACrB,yBAAmB,IAAI,gBAAe;IACxC;EACF,QAAQ;AACN,QAAI,gBAAgB,aAAa;AACjC,uBAAmB;EACrB;AAGA,MAAI,CAAC,kBAAkB;AACrB,UAAM,WAAW,oBAAoB,GAAG;AACxC,uBAAmB,SAAS;AAC5B,qBAAiB,SAAS;EAC5B;AAEA,MAAI,kBAAkB;AACpB,uBAAmB,0BAA0B,gBAAgB;EAC/D;AAGA,MAAI,CAAC,IAAI,MAAM,SAAS,EAAE,GAAG;AAC3B,UAAM,QAAQ,IAAI,QAAO,IAAK,iBAAiB,IAAI,KAAI,EAAG;AAC1D,UAAM,IAAI,MAAM,wCAAwC,KAAK,EAAE;EACjE;AACA,MAAI,QAAO;AAGX,QAAM,QAAQ,IAAI,gBAAe,KAAM,IAAI,aAAY;AASvD,MAAI;AACJ,MAAI,IAAI,MAAM,SAAS,EAAE,KAAK,4BAA4B,IAAI,OAAO,CAAC,CAAC,GAAG;AACxE,QAAI,QAAO;AACX,kBAAc,iBAAiB,GAAG;EACpC;AAGA,QAAM,YAAuB,CAAA;AAC7B,MAAI,kBAAkB;AACpB,cAAU,KAAK,gBAAgB;EACjC,WAAW,eAAe,SAAS,GAAG;AACpC,cAAU,KAAK,GAAG,cAAc;EAClC;AAMA,QAAM,UAAU,mBAAmB,eAAsB,cAAc,EAAE,SAAS,GAAG,SAAS;AAC9F,MAAI,OAAO;AACT,YAAQ,aAAa,MAAM,KAAuB;EACpD;AACA,MAAI,aAAa;AAGf,YAAQ,aAAa,MAAM,WAA6B;EAC1D;AACA,SAAO,QAAQ,SAAS,IAAI,YAAW,CAAE,EAAE,MAAK;AAClD;AA2BA,SAAS,0BAA0B,QAAe;AAChD,QAAM,oBAAoB,CAAC,SAA6C;AACtE,QAAI,CAAC,QAAQ,KAAK,SAAS;AAAY,aAAO;AAC9C,UAAM,QAAS,KAA6B;AAC5C,QAAI,OAAO,UAAU,YAAY,CAAC,MAAM,WAAW,GAAG;AAAG,aAAO;AAChE,WAAO,iBAAiB,OAAO;MAC7B,OAAO,KAAK,SAAS;MACrB,KAAK,KAAK,OAAO;MACjB,MAAM,KAAK,QAAQ;MACnB,QAAQ,KAAK,UAAU;IACxB,CAAA;EACH;AACA,QAAMX,OAAM;IACV,OAAO,OAAO,SAAS;IACvB,KAAK,OAAO,OAAO;IACnB,MAAM,OAAO,QAAQ;IACrB,QAAQ,OAAO,UAAU;;AAI3B,QAAM,OAAO,kBAAkB,MAAM;AACrC,MAAI;AAAM,WAAO;AAGjB,MAAI,OAAO,SAAS,sBAAsB,OAAO,aAAa,SAAS,IAAI;AACzE,UAAM,WAAW,kBAAkB,OAAO,IAA2B;AACrE,QAAI;AAAU,aAAO,2BAA2B,UAAU,OAAO,OAAkBA,IAAG;EACxF;AAGA,MAAI,OAAO,SAAS,wBAAwB;AAC1C,UAAM,WAAW,kBAAkB,OAAO,QAA+B;AACzE,QAAI;AAAU,aAAO,2BAA2B,UAAU,OAAO,QAAmBA,IAAG;EACzF;AAEA,SAAO;AACT;AAQA,SAAS,4BAA4B,OAAmB;AACtD,MAAI,CAAC;AAAO,WAAO;AACnB,MAAI,MAAM,SAAS;AAAY,WAAO;AACtC,MAAI,MAAM,MAAM,WAAW,GAAG;AAAG,WAAO;AACxC,SAAO,iBAAiB,IAAI,MAAM,KAAK;AACzC;AAyCM,SAAU,+BAA+B,KAAoB,cAAmB;AACpF,QAAM,cAAc,aAAa;AACjC,QAAM,cAAc,gBAAgB;AACpC,QAAM,WAAW,cAAc,MAAM;AAGrC,MAAI,YAAY;AAChB,MAAI,IAAI,MAAM,SAAS,MAAM,GAAG;AAC9B,gBAAY;AACZ,QAAI,QAAO;EACb;AAGA,QAAM,SAAS,IAAI,gBAAe;AAClC,MAAI,CAAC,QAAQ;AACX,UAAM,IAAI,MAAM,yCAAyC,WAAW,EAAE;EACxE;AAGA,MAAI;AACJ,MAAI,IAAI,MAAM,SAAS,EAAE,GAAG;AAC1B,QAAI,QAAO;AACX,UAAM,eAAe,IAAI,gBAAe;AACxC,QAAI,CAAC,cAAc;AACjB,YAAM,IAAI,MAAM,iCAAiC,WAAW,UAAU;IACxE;AACA,aAAS;EACX,OAAO;AAEL,UAAMA,OAAM;MACV,OAAO,aAAa;MACpB,KAAK,IAAI,SAAQ,EAAG;MACpB,MAAM,aAAa;MACnB,QAAQ,aAAa;;AAEvB,aAAS,cAAc,GAAG,KAAKA,IAAG;EACpC;AAGA,MAAI,kBAAkB;AACtB,MAAI,aAAa,OAAO,SAAS,cAAc;AAC7C,sBAAkB;MAChB,GAAG;MACH,OAAO;;EAEX;AAGA,QAAMA,OAAM;IACV,OAAO,aAAa;IACpB,KAAK,IAAI,SAAQ,EAAG;IACpB,MAAM,aAAa;IACnB,QAAQ,aAAa;;AAEvB,QAAM,aAAa,uBAAuB,UAAU,QAAQ,QAAQA,IAAG;AAItE,aAA2C,gBAAgB;AAO5D,SACE,mBAAmB,KAAY,YAAY,EACxC,SAAS,KAAK,EACd,SAAS,eAAe,EAGxB,aAAa,MAAM,UAAuC,EAC1D,oBAAoB,WAAW,EAC/B,SAAS,EAAE,KAAK,IAAI,SAAQ,EAAG,IAAG,CAAE,EACpC,MAAK;AAEZ;ACjdA,SAAS,WAAW,OAAe,KAAqD;AACtF,SAAO;IACL,MAAM;IACN;IACA,OAAO,IAAI;IACX,KAAK,IAAI;IACT,MAAM,IAAI;IACV,QAAQ,IAAI;;AAEhB;AAcA,SAAS,SAAS,KAAkB;AAClC,MAAI,IAAI,QAAO;AAAI,WAAO;AAC1B,QAAM,SAAS,IAAI;AACnB,QAAM,OAAO,IAAI,aAAY;AAC7B,SAAO,IAAI,YAAY,SAAS,SAAY;AAC9C;AAEM,SAAU,eACd,KACA,gBAA8B;AAE9B,QAAM,OAAkB,CAAA;AACxB,QAAM,YAA2B,CAAA;AACjC,SAAO,CAAC,kBAAkB,KAAK,CAAC,QAAQ,SAAS,SAAS,SAAS,CAAC,GAAG;AACrE,UAAM,MAAM,IAAI,KAAI;AACpB,UAAM,OAAO,IAAI,eAAe,IAAI,KAAK,EAAE,YAAW;AACtD,QAAI,SAAS,QAAQ,SAAS,OAAO;AACnC,UAAI,QAAO;AACX;IACF;AACA,SAAK,SAAS,UAAU,SAAS,cAAc,KAAK,WAAW,KAAK,CAAC,UAAU,KAAK;AAClF,UAAI,QAAO;AACX,gBAAU,IAAI,IAAI,WAAW,MAAM,GAAG;AACtC;IACF;AACA,QAAI,SAAS,OAAO;AAClB,UAAI,QAAO;AACX,YAAM,MAAM,gBAAgB,GAAG,IAAI,iBAAiB,GAAG,IAAI,SAAS,GAAG;AACvE,UAAI;AAAK,kBAAU,MAAM;AACzB;IACF;AACA,QAAI,SAAS,MAAM;AAEjB,UAAI,QAAO;AACX,YAAM,QAAQ,IAAI,KAAI;AACtB,YAAM,QAAkB,CAAA;AACxB,aAAO,CAAC,IAAI,QAAO,KAAM,CAAC,OAAO,QAAQ,EAAE,SAAS,IAAI,KAAI,EAAG,MAAM,YAAW,CAAE,GAAG;AACnF,cAAM,KAAK,IAAI,QAAO,EAAG,MAAM,YAAW,CAAE;MAC9C;AACA,gBAAU,KAAK,WAAW,MAAM,KAAK,GAAG,KAAK,MAAM,OAAO,KAAK;AAC/D;IACF;AACA,QAAI,aAAa,IAAI,IAAI,KAAK,CAAC,UAAU,UAAU;AACjD,UAAI,QAAO;AACX,gBAAU,WAAW,WAAW,MAAM,GAAG;AACzC;IACF;AACA,QAAI,SAAS,MAAM;AACjB,UAAI,QAAO;AACX,UAAI,IAAI,eAAe,IAAI,KAAI,EAAG,KAAK,EAAE,YAAW,MAAO;AAAO,YAAI,QAAO;AAC7E,YAAM,SAAS,SAAS,GAAG;AAC3B,UAAI;AAAQ,kBAAU,KAAK;AAC3B;IACF;AACA,QAAI,SAAS,cAAc,SAAS,aAAa;AAC/C,UAAI,QAAO;AACX,gBAAU,WAAW,WACnB,SAAS,aAAa,WAAW,WACjC,GAAG;AAEL;IACF;AACA,QAAI,IAAI,UAAU,OAAO,IAAI,UAAU,OAAO,IAAI,SAAS,UAAU;AACnE,UAAI,OAAO;AACX,UAAI,IAAI,UAAU,OAAO,IAAI,UAAU,KAAK;AAC1C,YAAI,QAAO;AACX,YAAI,IAAI,UAAU;AAAK,iBAAO;MAChC;AACA,YAAM,SAAS,IAAI,KAAI;AACvB,UAAI,OAAO,SAAS;AAAU;AAC9B,UAAI,QAAO;AACX,UAAI,MAAM,OAAO;AACjB,YAAM,OAAO,IAAI,KAAI;AACrB,UAAI,CAAC,IAAI,QAAO,KAAM,KAAK,UAAU,QAAQ,KAAK,UAAU,OAAO;AACjE,cAAM,IAAI,QAAO,EAAG;AACtB,gBAAU,KAAK,mBAAmB;QAChC,MAAM;QACN,OAAO,OAAO,OAAO,OAAO,KAAK;QACjC,KAAK,OAAO;QACZ,OAAO,IAAI;QACX;QACA,MAAM,IAAI;QACV,QAAQ,IAAI;MACb,CAAA;AACD;IACF;AACA,QAAI,KAAK,WAAW,KAAK,CAAC,UAAU,MAAM,CAAC,UAAU,KAAK;AACxD,UAAI,gBAAgB,GAAG,GAAG;AACxB,cAAM,MAAM,iBAAiB,GAAG;AAChC,YAAI,KAAK;AACP,eAAK,KAAK,GAAG;AACb;QACF;MACF;AACA,YAAM,SAAS,SAAS,GAAG;AAC3B,UAAI,QAAQ;AACV,aAAK,KAAK,MAAM;AAChB;MACF;IACF;AACA;EACF;AACA,SAAO,mBAAmB,eAAqB,cAAc,EAC1D,SAAS,GAAG,IAAI,EAChB,cAAc,SAAS,EACvB,SAAS,IAAI,YAAW,CAAE,EAC1B,MAAK;AACV;AAoCA,SAAS,iBAAiB,KAAkB;AAC1C,WAAS,IAAI,GAAG,IAAI,IAAI,KAAK;AAC3B,UAAM,MAAM,IAAI,OAAO,CAAC;AACxB,QAAI,CAAC;AAAK,aAAO;AACjB,UAAM,YAAY,IAAI,eAAe,IAAI,KAAK,EAAE,YAAW;AAC3D,QAAI,cAAc;AAAM,aAAO;AAC/B,QAAI,wBAAwB,IAAI,SAAS;AAAG,aAAO;EACrD;AACA,SAAO;AACT;AAmCM,SAAU,mBACd,KACA,gBAA8B;AAE9B,MAAI,IAAI,QAAO;AAAI,WAAO;AAC1B,MAAI,IAAI,eAAe,IAAI,KAAI,EAAG,KAAK,EAAE,YAAW,MAAO,MAAM;AAC/D,WAAO,cAAc,KAAK,cAAc;EAC1C;AACA,MAAI,iBAAiB,GAAG,GAAG;AACzB,WAAO,cAAc,KAAK,cAAc;EAC1C;AACA,SAAO;AACT;AAOA,SAAS,mBAAmB,KAAoB,WAA4B;AAC1E,QAAM,MAAM,IAAI,KAAI;AACpB,QAAM,OAAO,IAAI,eAAe,IAAI,KAAK,EAAE,YAAW;AACtD,MAAI,SAAS,cAAc,SAAS;AAAa,WAAO;AACxD,MAAI,QAAO;AACX,YAAU,WAAW,WACnB,SAAS,aAAa,WAAW,WACjC,GAAG;AAEL,SAAO;AACT;AAYA,SAAS,cAAc,KAAoB,gBAA8B;AACvE,QAAM,OAAkB,CAAA;AACxB,QAAM,YAA+B,CAAA;AACrC,MAAI,QAAO;AACX,SAAO,CAAC,kBAAkB,KAAK,CAAC,QAAQ,SAAS,SAAS,SAAS,CAAC,GAAG;AACrE,UAAM,MAAM,IAAI,KAAI;AACpB,UAAM,OAAO,IAAI,eAAe,IAAI,KAAK,EAAE,YAAW;AACtD,QAAI,SAAS,OAAO;AAClB,UAAI,QAAO;AACX;IACF;AACA,QAAI,iBAAiB,IAAI,IAAI,KAAK,CAAC,UAAU,UAAU;AACrD,UAAI,QAAO;AACX,gBAAU,WAAW,WAAW,MAAM,GAAG;AACzC;IACF;AACA,QAAI,SAAS,MAAM;AACjB,UAAI,QAAO;AACX,YAAM,SAAS,iBAAiB,KAAK,WAAW;AAChD,UAAI;AAAQ,kBAAU,KAAK;AAC3B;IACF;AACA,QAAI,mBAAmB,KAAK,SAAS;AAAG;AACxC,QAAI,KAAK,WAAW,KAAK,CAAC,UAAU,IAAI;AACtC,YAAM,SAAS,iBAAiB,KAAK,WAAW;AAChD,UAAI,QAAQ;AACV,aAAK,KAAK,MAAM;AAChB;MACF;IACF;AACA;EACF;AACA,SAAO,mBAAmB,eAAyB,cAAc,EAC9D,SAAS,GAAG,IAAI,EAChB,cAAc,SAAS,EACvB,SAAS,IAAI,YAAW,CAAE,EAC1B,MAAK;AACV;AAOA,SAAS,cAAc,KAAoB,gBAA8B;AACvE,QAAM,OAAkB,CAAA;AACxB,QAAM,YAA+B,CAAA;AACrC,SAAO,CAAC,kBAAkB,KAAK,CAAC,QAAQ,SAAS,SAAS,SAAS,CAAC,GAAG;AACrE,UAAM,MAAM,IAAI,KAAI;AACpB,UAAM,OAAO,IAAI,eAAe,IAAI,KAAK,EAAE,YAAW;AACtD,QAAI,kBAAkB,IAAI,IAAI,GAAG;AAC/B,UAAI,QAAO;AACX,gBAAU,YAAY,WAAW,MAAM,GAAG;AAC1C;IACF;AACA,QAAI,SAAS,MAAM;AACjB,UAAI,QAAO;AACX,UAAI,OAAO;AACX,YAAM,UAAU,IAAI,KAAI;AACxB,UAAI,QAAQ,UAAU,OAAO,QAAQ,UAAU,KAAK;AAClD,YAAI,QAAO;AACX,YAAI,QAAQ,UAAU;AAAK,iBAAO;MACpC;AACA,YAAM,SAAS,IAAI,KAAI;AACvB,UAAI,OAAO,SAAS,UAAU;AAC5B,YAAI,QAAO;AACX,cAAM,OAAO,IAAI,KAAI;AACrB,YAAI,MAAM,OAAO;AACjB,YAAI,CAAC,IAAI,QAAO,KAAM,KAAK,UAAU,QAAQ,KAAK,UAAU,OAAO,KAAK;AACtE,gBAAM,IAAI,QAAO,EAAG;QACtB;AACA,kBAAU,KAAK,mBAAmB;UAChC,MAAM;UACN,OAAO,OAAO,OAAO,OAAO,KAAK;UACjC,KAAK,OAAO;UACZ,OAAO,OAAO;UACd;UACA,MAAM,OAAO;UACb,QAAQ,OAAO;QAChB,CAAA;MACH,OAAO;AACL,cAAM,SAAS,iBAAiB,KAAK,WAAW;AAChD,YAAI;AAAQ,oBAAU,KAAK;MAC7B;AACA;IACF;AACA,QAAI,mBAAmB,KAAK,SAAS;AAAG;AACxC,QAAI,KAAK,WAAW,GAAG;AACrB,YAAM,SAAS,iBAAiB,KAAK,WAAW;AAChD,UAAI,QAAQ;AACV,aAAK,KAAK,MAAM;AAChB;MACF;IACF;AACA;EACF;AACA,SAAO,mBAAmB,eAAyB,cAAc,EAC9D,SAAS,GAAG,IAAI,EAChB,cAAc,SAAS,EACvB,SAAS,IAAI,YAAW,CAAE,EAC1B,MAAK;AACV;AAaM,SAAU,iBAAiB,KAAoB,gBAA8B;AACjF,QAAM,OAAkB,CAAA;AACxB,QAAM,YAAyC,CAAA;AAC/C,yBAAuB,KAAK,KAAK;AACjC,MAAI,CAAC,IAAI,QAAO,KAAM,gBAAgB,GAAG,GAAG;AAC1C,UAAM,MAAM,iBAAiB,GAAG;AAChC,QAAI;AAAK,WAAK,KAAK,GAAG;EACxB,OAAO;AACL,UAAM,MAAM,iBAAiB,KAAK,CAAC,MAAM,CAAC;AAC1C,QAAI;AAAK,WAAK,KAAK,GAAG;EACxB;AACA,MAAI,uBAAuB,KAAK,MAAM,GAAG;AACvC,2BAAuB,KAAK,OAAO;AACnC,UAAM,QAAQ,iBAAiB,GAAG;AAClC,QAAI;AAAO,gBAAU,OAAO,IAAI;EAClC;AACA,SAAO,mBAAmB,eAAmC,cAAc,EACxE,SAAS,GAAG,IAAI,EAChB,cAAc,SAAS,EACvB,SAAS,IAAI,YAAW,CAAE,EAC1B,MAAK;AACV;ACxYA,SAAS,mBAAmB,KAAoB,SAAuB;AACrE,MAAI,IAAI,QAAO;AAAI,WAAO;AAC1B,QAAM,OAAO,IAAI,KAAI;AACrB,MAAI,IAAI,eAAc,KAAM,IAAI,OAAO,CAAC,GAAG,UAAU;AAAK,WAAO;AACjE,MAAI,gBAAgB,MAAM,IAAI,OAAO,CAAC,CAAC;AAAG,WAAO;AACjD,MAAI,kBAAkB,KAAK,CAAC,SAAS,WAAW,IAAI,CAAC;AAAG,WAAO;AAC/D,SAAO,UAAU,MAAM,CAAC,GAAG,QAAQ,OAAO,CAAC;AAC7C;AASM,SAAU,qBACd,KACA,cACA,MACA,SAAuB;AAEvB,QAAM,OAAkB,CAAA;AACxB,QAAM,YAAyC,CAAA;AAE/C,MAAI,QAAQ,eAAe,QAAQ;AACjC,UAAM,eAAe,QAAQ,gBAAgB,CAAA;AAC7C,WAAO,CAAC,mBAAmB,KAAK,OAAO,GAAG;AACxC,YAAM,OAAO,QAAQ,eAAe,eAAe,IAAI,gBAAe,IAAK,IAAI,aAAY;AAC3F,UAAI,CAAC;AAAM;AACX,WAAK,KAAK,IAAI;AAOd,UAAI,IAAI,MAAM,GAAG;AAAG;AACpB,UAAI,QAAQ,eAAe;AAAW;AAItC,YAAMY,QAAQ,KAA0C;AACxD,UAAI,KAAK,SAAS,gBAAgBA,SAAQ,aAAa,SAASA,MAAK,YAAW,CAAE;AAAG;AACrF,YAAM,OAAO,IAAI,KAAI;AACrB,UAAI,QAAQ,aAAa,SAAS,KAAK,MAAM,YAAW,CAAE,GAAG;AAC3D,YAAI,QAAO;AACX,aAAK,KAAK,IAAI,iBAAiB,KAAK,KAAK,CAAC;AAC1C;MACF;AACA;IACF;EACF;AAEA,QAAM,YAAY,IAAI,IAAI,QAAQ,aAAa,CAAA,CAAE;AACjD,QAAM,YAAY,IAAI,IAAI,QAAQ,aAAa,CAAA,CAAE;AACjD,SAAO,CAAC,IAAI,QAAO,KAAM,UAAU,IAAI,KAAI,GAAI,CAAC,GAAG,QAAQ,OAAO,CAAC,GAAG;AACpE,UAAM,UAAU,IAAI,QAAO,EAAG;AAC9B,UAAM,MAAM,IAAI,eAAe,OAAO,EAAE,YAAW;AACnD,QAAI,QACF,UAAU,IAAI,GAAG,KAAK,qBAAqB,GAAG,IAC1C,oBAAoB,KAAK,MAAM,IAAI,gBAAe,GAAI,IAAI,IAC1D,IAAI,gBAAe;AACzB,QAAI,SAAS,UAAU,IAAI,GAAG,KAAK,IAAI,MAAM,GAAG,GAAG;AACjD,YAAM,WAAsB,CAAC,KAAK;AAClC,aAAO,IAAI,MAAM,GAAG,GAAG;AACrB,cAAM,OAAO,IAAI,gBAAe;AAChC,YAAI,CAAC;AAAM;AACX,iBAAS,KAAK,IAAI;MACpB;AACA,YAAM,QAAQ,SAAS,CAAC;AACxB,YAAM,OAAO,SAAS,SAAS,SAAS,CAAC;AACzC,cAAQ;QACN,MAAM;QACN;QACA,OAAO,MAAM;QACb,KAAK,KAAK;QACV,MAAM,MAAM;QACZ,QAAQ,MAAM;;IAElB;AAEA,QAAI;AAAO,gBAAU,GAAkC,IAAI;EAC7D;AAEA,QAAM,UAAU,mBAAmB,KAAK,YAAY,EACjD,SAAS,IAAI,EACb,SAAS,GAAG,IAAI;AACnB,MAAI,OAAO,KAAK,SAAS,EAAE,SAAS;AAAG,YAAQ,cAAc,SAAS;AACtE,SAAO,QAAQ,SAAS,IAAI,YAAW,CAAE,EAAE,MAAK;AAClD;ACTA,SAAS,kBAAkB,MAAoB;AAC7C,SAAO;IACL,MAAM;IACN,OAAO,KAAK;IACZ,OAAO,KAAK,SAAS;IACrB,KAAK,KAAK,OAAO;IACjB,MAAM,KAAK,QAAQ;IACnB,QAAQ,KAAK,UAAU;;AAE3B;AAMM,SAAU,qBACd,KACA,gBAA8B;AAE9B,QAAMC,SAAQ,yBAAyB,IAAI,eAAe,KAAK,YAAW,CAAE;AAC5E,SAAOA,SAAQA,OAAM,KAAK,cAAc,IAAI;AAC9C;AAmBA,SAAS,qBAAqB,KAAoB,gBAA8B;AAC9E,SAAO,qBACL,KACA,kBAAkB,cAAc,GAChC,eAAe,KAAK,YAAW,GAC/B,wBAAwB;AAE5B;AAYM,SAAU,gBAAgB,KAAkB;AAChD,QAAM,MAAM,IAAI,KAAI;AACpB,MAAI,IAAI,UAAU;AAAK,WAAO;AAC9B,MAAI,IAAI,oBAAmB,GAAI;AAC7B,UAAM,OAAO,IAAI,OAAO,CAAC;AACzB,WAAO,CAAC,CAAC,QAAQ,KAAK,UAAU,OAAO,KAAK,UAAU,IAAI;EAC5D;AACA,SAAO;AACT;AA8CM,SAAU,iBAAiB,KAAkB;AACjD,QAAM,WAAW,IAAI,aAAY;AACjC,QAAM,WAAW,IAAI,KAAI;AACzB,MAAI,OAAO;AACX,MAAI,OAAqB;AAEzB,SAAO,CAAC,IAAI,QAAO,GAAI;AACrB,UAAM,MAAM,IAAI,KAAI;AAGpB,QAAI,QAAQ,IAAI,UAAU,KAAK;AAAK;AAIpC,QAAI,IAAI,UAAU,OAAO,IAAI,OAAO,CAAC,GAAG,UAAU,KAAK;AACrD,UAAI,QAAO;AACX,UAAI,OAAO,IAAI,QAAO;AACtB,UAAI,QAAQ;AACZ,aAAO,CAAC,IAAI,QAAO,KAAM,QAAQ,GAAG;AAClC,eAAO,IAAI,QAAO;AAClB,YAAI,KAAK,UAAU;AAAK;iBACf,KAAK,UAAU;AAAK;MAC/B;AAEA,cAAQ,IAAI,cAAc,IAAI,OAAO,KAAK,GAAG;AAC7C,aAAO;AACP;IACF;AAEA,QAAI,eAAe,IAAI,IAAI,KAAK;AAAG;AAEnC,WAAO,IAAI,QAAO;AAClB,YAAQ,KAAK;EACf;AAEA,MAAI,CAAC,QAAQ,SAAS,KAAK;AACzB,QAAI,gBAAgB,QAAQ;AAC5B,WAAO;EACT;AAMA,QAAM,OAAO;IACX,OAAO,SAAS;IAChB,KAAK,OAAO,KAAK,MAAM,SAAS;IAChC,MAAM,SAAS;IACf,QAAQ,SAAS;;AAGnB,MAAI,KAAK,SAAS,IAAI,GAAG;AACvB,WAAO,EAAE,MAAM,mBAAmB,OAAO,MAAM,GAAG,KAAI;EACxD;AACA,SAAO,EAAE,MAAM,WAAW,OAAO,MAAM,KAAK,MAAM,GAAG,KAAI;AAC3D;AAqBM,SAAU,kBAAkB,KAAoB,cAAmB;AACvE,QAAM,YAA8B,CAAA;AAKpC,MAAI,MAAsB;AAC1B,MAAI,CAAC,IAAI,QAAO,KAAM,gBAAgB,GAAG,GAAG;AAC1C,UAAM,iBAAiB,GAAG;EAC5B;AACA,MAAI,CAAC,KAAK;AACR,UAAM,IAAI,aAAY;EACxB;AACA,MAAI,CAAC,KAAK;AACR,QAAI,SAAS,sBAAsB;AACnC,WAAO,mBAAmB,KAAc,YAAY,EAAE,SAAS,IAAI,YAAW,CAAE,EAAE,MAAK;EACzF;AAIA,MAAI,CAAC,IAAI,QAAO,KAAM,IAAI,MAAM,GAAG,GAAG;AACpC,cAAU,MAAM,IAAI,IAAI,aAAY;EACtC;AAGA,WAAS,IAAI,GAAG,IAAI,KAAK,CAAC,IAAI,QAAO,GAAI,KAAK;AAC5C,QAAI,IAAI,MAAM,IAAI,KAAK,CAAC,UAAU,IAAI,GAAG;AACvC,UAAI,QAAO;AAEX,UAAI,CAAC,IAAI,QAAO,GAAI;AAClB,+BAAuB,KAAK,GAAG,KAAK,uBAAuB,KAAK,IAAI;MACtE;AACA,gBAAU,IAAI,IAAI,IAAI,aAAY;AAClC;IACF;AAEA,QAAI,IAAI,MAAM,MAAM,KAAK,CAAC,UAAU,MAAM,GAAG;AAC3C,UAAI,QAAO;AACX,UAAI,qBAAqB,GAAG,GAAG;AAG7B,kBAAU,MAAM,IAAI,oBAClB,KACA,MAAM,IAAI,aAAY,GACtB,OAAO;MAEX,OAAO;AACL,kBAAU,MAAM,IAAI,IAAI,aAAY;MACtC;AACA;IACF;AAIA,QAAI,IAAI,MAAM,IAAI,KAAK,CAAC,UAAU,YAAY,GAAG;AAC/C,YAAM,KAAK,IAAI,OAAO,CAAC;AACvB,YAAM,KAAK,IAAI,OAAO,CAAC;AACvB,UAAI,IAAI,UAAU,SAAS,IAAI,UAAU,SAAS;AAChD,cAAM,UAAU,IAAI,QAAO;AAC3B,YAAI,QAAO;AACX,cAAM,aAAa,IAAI,QAAO;AAC9B,kBAAU,YAAY,IAAI,mBAAmB;UAC3C,MAAM;UACN,OAAO;UACP,OAAO,QAAQ;UACf,KAAK,WAAW;UAChB,MAAM,QAAQ;UACd,QAAQ,QAAQ;QACjB,CAAA;AACD;MACF;IACF;AAEA;EACF;AAEA,QAAM,UAAU,mBAAmB,KAAc,YAAY,EAC1D,SAAS,GAAG,EACZ,SAAS,IAAI,YAAW,CAAE;AAE7B,MAAI,OAAO,KAAK,SAAS,EAAE,SAAS,GAAG;AACrC,YAAQ,cAAc,SAAS;EACjC;AAEA,SAAO,QAAQ,MAAK;AACtB;AAiCA,SAAS,kBAAkB,KAAoB,UAAgB;AAC7D,QAAM,QAAQ,IAAI,cAAc,QAAQ;AACxC,MAAI,CAAC,OAAO;AAEV,WAAO;EACT;AAEA,MAAI,IAAI;AACR,SAAO,IAAI,MAAM,QAAQ;AACvB,UAAM,KAAK,MAAM,CAAC;AAGlB,QAAI,OAAO,OAAO,OAAO,YAAY,OAAO,UAAU;AACpD;AACA,aAAO,IAAI,MAAM,UAAU,MAAM,CAAC,MAAM,IAAI;AAC1C,YAAI,MAAM,CAAC,MAAM;AAAM;AACvB;MACF;AACA;AACA;IACF;AAGA,QAAI,OAAO,KAAK;AACd;AACA,aAAO,IAAI,MAAM,UAAU,MAAM,CAAC,MAAM,KAAK;AAC3C,YAAI,MAAM,CAAC,MAAM;AAAM;AACvB;MACF;AACA;AACA;IACF;AAGA,QAAI,OAAO,KAAK;AACd;AACA,aAAO,IAAI,MAAM,UAAU,MAAM,CAAC,MAAM,KAAK;AAC3C,YAAI,MAAM,CAAC,MAAM;AAAM;AACvB;MACF;AACA;AACA;IACF;AAGA,QAAI,OAAO,OAAO,IAAI,IAAI,MAAM,UAAU,MAAM,IAAI,CAAC,MAAM,KAAK;AAC9D,WAAK;AACL,aAAO,IAAI,MAAM,UAAU,MAAM,CAAC,MAAM;AAAM;AAC9C;IACF;AAGA,QAAI,OAAO,OAAO,IAAI,IAAI,MAAM,UAAU,MAAM,IAAI,CAAC,MAAM,KAAK;AAC9D,WAAK;AACL,aACE,IAAI,MAAM,UACV,EAAE,MAAM,CAAC,MAAM,OAAO,IAAI,IAAI,MAAM,UAAU,MAAM,IAAI,CAAC,MAAM;AAE/D;AACF,WAAK;AACL;IACF;AAGA,SACG,OAAO,OAAO,OAAO,QACtB,IAAI,KAAK,MAAM,UACf,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,YAAW,MAAO,OACxC;AAEA,YAAM,SAAS,MAAM,KAAK,CAAC,eAAe,KAAK,MAAM,IAAI,CAAC,CAAC;AAE3D,YAAM,QAAQ,IAAI,KAAK,MAAM,UAAU,CAAC,eAAe,KAAK,MAAM,IAAI,CAAC,CAAC;AACxE,UAAI,UAAU,OAAO;AACnB,eAAO,WAAW;MACpB;IACF;AAEA;EACF;AAGA,SAAO,WAAW,MAAM;AAC1B;AAEM,SAAU,eAAe,KAAoB,gBAA8B;AAC/E,QAAM,aAAuB,CAAA;AAG7B,MAAI,IAAI,MAAM,GAAG,GAAG;AAClB,WAAO,CAAC,IAAI,MAAM,GAAG,KAAK,CAAC,IAAI,QAAO,GAAI;AAExC,UAAI,IAAI,oBAAmB,GAAI;AAC7B,mBAAW,KAAK,IAAI,QAAO,EAAG,KAAK;MACrC;AAEA,UAAI,MAAM,GAAG;IACf;AACA,QAAI,QAAQ,KAAK,gCAAgC;EACnD;AAGA,QAAM,cAAc,IAAI,KAAI,EAAG;AAM/B,QAAM,YAAY,kBAAkB,KAAK,WAAW;AAKpD,SAAO,CAAC,IAAI,QAAO,KAAM,CAAC,IAAI,MAAM,SAAS,GAAG,GAAG;AAEjD,QAAI,IAAI,KAAI,EAAG,SAAS;AAAW;AACnC,QAAI,QAAO;EACb;AACA,MAAI,QAAQ,SAAS,KAAK,iCAAiC;AAG3D,QAAM,WAAW,IAAI,cAAc,aAAa,SAAS;AACzD,QAAM,OAAO,SAAS,KAAI;AAG1B,QAAM,WAAoB;IACxB,MAAM;IACN,OAAO;IACP,OAAO,eAAe;IACtB,KAAK,IAAI,YAAW,EAAG;;AAGzB,QAAM,aAAsB;IAC1B,MAAM;IACN,UAAU,WAAW,IAAI,QAAM;MAC7B,MAAM;MACN,OAAO;MACP,OAAO,eAAe;MACtB,KAAK,eAAe;IACrB,EAAC;IACF,OAAO,eAAe;IACtB,KAAK,IAAI,YAAW,EAAG;;AAGzB,SAAO,mBAAmB,eAAqB,cAAc,EAC1D,SAAS,UAAU,UAAU,EAC7B,SAAS,IAAI,YAAW,CAAE,EAC1B,MAAK;AACV;AAoBM,SAAU,iBAAiB,KAAoB,gBAA8B;AAEjF,QAAM,SAAS,IAAI,gBAAe;AAElC,MAAI,CAAC,QAAQ;AACX,UAAM,IAAI,MAAM,2CAA2C;EAC7D;AAaA,MAAI,IAAI,MAAM,SAAS,EAAE,GAAG;AAC1B,QAAI,QAAO;EACb;AAGA,QAAM,WAAsB,CAAA;AAK5B,SAAO,CAAC,IAAI,QAAO,GAAI;AAErB,QAAI,IAAI,eAAc,GAAI;AACxB,YAAM,OAAO,IAAI,KAAI,EAAG;AACxB,UAAI;AAGF,YAAI,QAAO;AACX,cAAM,MAAM,IAAI,aAAY;AAC5B,YAAI,KAAK;AACP,mBAAS,KAAK,GAAG;QACnB,OAAO;AACL;QACF;MACF,SAAS,OAAO;AAKd,YAAI,SACF,IAAI,IAAI,qCAAqC,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,CAAC,EAAE;AAEvG;MACF;AAOA,UAAI,IAAI,MAAM,SAAS,GAAG,KAAK,IAAI,MAAM,SAAS,IAAI,GAAG;AACvD;MACF;AAgBA,UAAI,IAAI,MAAM,SAAS,IAAI,GAAG;AAC5B;MACF;AACA,UAAI,IAAI,MAAM,SAAS,GAAG,GAAG;AAC3B,YAAI,QAAO;AACX;MACF;AAGA,UAAI,IAAI,eAAc,GAAI;AACxB;MACF;AAGA;IACF,OAAO;AAEL;IACF;EACF;AAEA,MAAI,SAAS,WAAW,GAAG;AACzB,UAAM,IAAI,MAAM,6DAA6D;EAC/E;AAEA,SAAO,mBAAmB,eAAuB,cAAc,EAC5D,SAAS,QAAQ,GAAG,QAAQ,EAC5B,SAAS,IAAI,YAAW,CAAE,EAC1B,MAAK;AACV;AAqBM,SAAU,iBAAiB,KAAoB,gBAA8B;AACjF,QAAM,UAAU,mBAAmB,eAAuB,cAAc;AAGxE,yBAAuB,KAAK,SAAS,GAAG;AAExC,QAAM,eAAe,IAAI,KAAI;AAC7B,QAAM,cAAc,aAAa;AAGjC,QAAM,oBAAoB,CAAC,UACzB,mBAAmB;IACjB,MAAM;IACN;IACA,OAAO,eAAe;IACtB,KAAK,eAAe;EACrB,CAAA;AAGH,QAAM,gBAAgB,MAAc;AAClC,QAAI,CAAC,IAAI,MAAM,MAAM,MAAM,GAAG;AAC5B,YAAM,IAAI,MAAM,wDAAwD;IAC1E;AACA,WAAO,IAAI,gBAAe;EAC5B;AAGA,MAAI,gBAAgB,SAAS;AAC3B,QAAI,QAAO;AAIX,UAAM,QAAQ,IAAI,aAAY;AAC9B,UAAM,SAAS,cAAa;AAC5B,WAAO,QACJ,SAAS,MAAM,EACf,aAAa,WAAW,kBAAkB,OAAO,CAAC,EAClD,aAAa,SAAS,KAAuB,EAC7C,SAAS,IAAI,YAAW,CAAE,EAC1B,MAAK;EACV;AAGA,MAAI,gBAAgB,QAAQ;AAC1B,QAAI,QAAO;AACX,UAAM,QAAQ,IAAI,aAAY;AAC9B,UAAM,SAAS,cAAa;AAC5B,WAAO,QACJ,SAAS,MAAM,EACf,aAAa,WAAW,kBAAkB,MAAM,CAAC,EACjD,aAAa,SAAS,KAAuB,EAC7C,SAAS,IAAI,YAAW,CAAE,EAC1B,MAAK;EACV;AAGA,MAAI,gBAAgB,UAAU;AAC5B,QAAI,QAAO;AAKX,QAAI;AACJ,QAAI,CAAC,IAAI,MAAM,IAAI,KAAK,CAAC,IAAI,MAAM,MAAM,GAAG;AAC1C,kBAAY,IAAI,aAAY;IAC9B;AACA,UAAM,SAAS,cAAa;AAC5B,UAAM,IAAI,QAAQ,SAAS,MAAM,EAAE,aAAa,WAAW,kBAAkB,QAAQ,CAAC;AACtF,QAAI;AAAW,QAAE,aAAa,SAAS,SAAS;AAChD,WAAO,EAAE,SAAS,IAAI,YAAW,CAAE,EAAE,MAAK;EAC5C;AAGA,MACE,gBAAgB,UAChB,gBAAgB,WAChB,gBAAgB,eAChB,gBAAgB,cAChB;AACA,QAAI,QAAO;AAEX,QAAI,MAAM,MAAM,MAAM;AAGtB,QAAI;AACJ,QAAI,IAAI,MAAM,OAAO,GAAG;AACtB,mBAAa,kBAAkB,OAAO;IACxC,OAAO;AACL,mBAAa,IAAI,aAAY;IAC/B;AAGA,QAAI;AACJ,QAAI,kBAAkB;AACtB,QAAI,IAAI,MAAM,IAAI,KAAK,IAAI,MAAM,IAAI,GAAG;AACtC,UAAI,IAAI,MAAM,KAAK,GAAG;AACpB,0BAAkB;MACpB,OAAO;AACL,mBAAW,IAAI,aAAY;MAC7B;IACF;AAIA,QAAI,OAAO;AACX,QAAI,IAAI,MAAM,WAAW;AAAG,aAAO;aAC1B,IAAI,MAAM,WAAW;AAAG,aAAO;AAExC,UAAM,SAAS,cAAa;AAC5B,UAAM,IAAI,QACP,SAAS,MAAM,EACf,aAAa,WAAW,kBAAkB,OAAO,CAAC,EAClD,aAAa,cAAc,UAAU,EACrC,aAAa,aAAa,kBAAkB,IAAI,CAAC;AACpD,QAAI,iBAAiB;AACnB,QAAE,aAAa,YAAY,kBAAkB,KAAK,CAAC;IACrD,WAAW,UAAU;AACnB,QAAE,aAAa,YAAY,QAAQ;IACrC;AACA,WAAO,EAAE,SAAS,IAAI,YAAW,CAAE,EAAE,MAAK;EAC5C;AAGA,MAAI,gBAAgB,WAAW,gBAAgB,WAAW;AACxD,QAAI,QAAO;AACX,QAAI,MAAM,IAAI;AACd,UAAM,QAAQ,IAAI,aAAY;AAE9B,QAAI;AACJ,QAAI,IAAI,cAAc,GAAG,GAAG;AAC1B,cAAQ,IAAI,QAAO,EAAG;IACxB;AAEA,UAAM,SAAS,cAAa;AAC5B,UAAM,IAAI,QACP,SAAS,MAAM,EACf,aAAa,WAAW,kBAAkB,gBAAgB,UAAU,UAAU,SAAS,CAAC,EACxF,aAAa,SAAS,KAAK;AAC9B,QAAI;AAAO,QAAE,aAAa,SAAS,kBAAkB,KAAK,CAAC;AAC3D,WAAO,EAAE,SAAS,IAAI,YAAW,CAAE,EAAE,MAAK;EAC5C;AAGA,SAAO,qBAAqB,KAAK,cAAc;AACjD;ACnoBM,SAAU,UAAU,aAAmB;AAC3C,SAAO,gBAAgB,YAAY,YAAW,CAAE,KAAK;AACvD;AChDA,SAAS,cAAc,SAAe;AACpC,MAAI,QAAQ,SAAS,IAAI;AAAG,WAAO,SAAS,SAAS,EAAE;AACvD,MAAI,QAAQ,SAAS,SAAS;AAAG,WAAO,WAAW,OAAO,IAAI;AAC9D,MAAI,QAAQ,SAAS,SAAS;AAAG,WAAO,WAAW,OAAO,IAAI;AAC9D,MAAI,QAAQ,SAAS,OAAO;AAAG,WAAO,WAAW,OAAO,IAAI;AAC5D,MAAI,QAAQ,SAAS,MAAM;AAAG,WAAO,WAAW,OAAO,IAAI;AAC3D,MAAI,QAAQ,SAAS,GAAG;AAAG,WAAO,WAAW,OAAO,IAAI;AACxD,SAAO,SAAS,SAAS,EAAE;AAC7B;AA2iJM,SAAU,MAAM,OAAe,SAAuB;AAC1D,QAAM,SAAS,SAAS,KAAK;AAC7B,QAAM,SAAS,IAAI,OAAO,QAAQ,SAAS,KAAK;AAChD,QAAM,SAAS,OAAO,MAAK;AAC3B,SAAO;AACT;AEtkJM,SAAU,GAAM,OAAQ;AAC5B,SAAO,EAAE,IAAI,MAAM,MAAK;AAC1B;AASM,SAAU,IAAO,OAAQ;AAC7B,SAAO,EAAE,IAAI,OAAO,MAAK;AAC3B;AAgDM,SAAU,KAAW,QAAoB;AAC7C,SAAO,OAAO,OAAO;AACvB;AAYM,SAAU,SAAS,OAAc;AACrC,SACE,OAAO,UAAU,YACjB,UAAU,QACV,UAAU,SACV,OAAQ,MAA0B,SAAS,YAC3C,CAAC,QAAQ,QAAQ,SAAS,YAAY,QAAQ,EAAE,SAAU,MAA0B,IAAI;AAE5F;AC3NM,SAAU,mBAAmB,SAAgB;AACjD,MAAI,MAAM,cAAc,IAAI,OAAO;AACnC,MAAI,CAAC,KAAK;AACR,UAAM,oBAAI,IAAG;AACb,kBAAc,IAAI,SAAS,GAAG;EAChC;AACA,SAAO;AACT;AAQM,SAAU,kBAAkB,SAAyB;AACzD,QAAM,QAAS,QAAuC;AACtD,MAAI;AAAO,WAAO;AAClB,SAAO,QAAQ,cAAc,UAAU,QAAQ,KAAK;AACtD;AAOM,SAAU,cAAc,SAA2B,MAAY;AACnE,QAAM,QAAQ,kBAAkB,OAAO;AACvC,MAAI,CAAC;AAAO,WAAO;AACnB,kBAAgB,MAAM,OAAO;AAC7B,SAAO,mBAAmB,KAAK,EAAE,IAAI,IAAI;AAC3C;SAMgB,cAAc,SAA2B,MAAc,OAAc;AACnF,QAAM,QAAQ,kBAAkB,OAAO;AACvC,MAAI,CAAC;AAAO;AACZ,qBAAmB,KAAK,EAAE,IAAI,MAAM,KAAK;AACzC,mBAAiB,MAAM,OAAO,OAAO;AACvC;AAOM,SAAU,cACd,SACA,SAA0B;AAE1B,SAAO;IACL,IAAI,WAAW;IACf,OAAO,WAAW;IAClB,IAAI;IACJ,KAAK;IACL,QAAQ;IACR,QAAQ,oBAAI,IAAG;IACf,SAAS,WAAW;;AAExB;SAKgB,mBAAgB;AAC9B,SAAO;AACT;AAKM,SAAU,mBACd,QACA,SAAwB;AAExB,SAAO;IACL,IAAI,WAAW,OAAO;IAEtB,OAAQ,OAAsC,SAAS,OAAO,MAAM,WAAW;IAC/E,IAAI;IACJ,KAAK;IACL,QAAQ;IACR,QAAQ,oBAAI,IAAG;IACf,SAAS,OAAO;IAChB;;AAEJ;ACrFM,SAAUC,gBAAc,OAAc;AAC1C,SACE,UAAU,QACV,OAAO,UAAU,YACjB,cAAc,SACb,MAAc,aAAa,KAC5B,aAAa,SACb,OAAQ,MAAc,YAAY,YAClC,eAAe;AAEnB;AAyDM,SAAU,iBAAiB,OAAc;AAC7C,MAAI,UAAU,QAAQ,OAAO,UAAU;AAAU,WAAO;AACxD,QAAM,WAAY,MAAiC;AACnD,SAAO,aAAa,KAAK,aAAa,KAAK,aAAa;AAC1D;AAuBM,SAAU,WAAW,OAAc;AACvC,SACE,UAAU,QACV,OAAO,UAAU,YACjB,YAAY,SACZ,OAAQ,MAAc,WAAW,aAChC,OAAO,YAAY,SAAS,OAAQ,MAAc,SAAS;AAEhE;AAYM,SAAU,mBAAmB,OAAc;AAC/C,SACE,UAAU,QACV,OAAO,UAAU,YACjB,cAAc,SACb,MAAc,aAAa,MAC5B,gBAAgB;AAEpB;AChIM,SAAU,WAAW,IAAa,QAA0B;AAChE,QAAM,UAAU,OAAO,IAAI,iBAAiB;AAC5C,QAAM,QAAQ,QAAQ,OAAO,YAAU,SAAS,IAAI,OAAO,KAAK,CAAC;AACjE,MAAI,MAAM,WAAW;AAAG,WAAO;AAE/B,UAAQ,MAAM,8BAAuB;AACrC,aAAW,UAAU,OAAO;AAC1B,YAAQ,IAAI,UAAU,OAAO,KAAK;AAClC,YAAQ,IAAI,SAAS,OAAO,IAAI;AAChC,YAAQ,IAAI,mBAAmB,OAAO,cAAc;AACpD,YAAQ,IAAI,KAAK;EACnB;AACA,UAAQ,SAAQ;AAChB,SAAO;AACT;AAGA,SAAS,SAAS,IAAa,OAAc;AAC3C,QAAM,SAAS;AACf,MAAI,OAAO,gBAAgB,cAAc,OAAO,QAAQ,kBAAkB;AAAY,WAAO;AAC7F,SAAO,OAAO,cACZ,IAAI,YAAY,oBAAoB;IAClC,SAAS;IACT,YAAY;IACZ,QAAQ,EAAE,SAAS,IAAI,MAAK;EAC7B,CAAA,CAAC;AAEN;AAEM,SAAU,kBAAkB,OAAc;AAC9C,SAAO,EAAE,OAAO,MAAM,OAAO,KAAK,GAAG,gBAAgB,iBAAiB,KAAK,EAAC;AAC9E;AAEA,SAAS,OAAO,OAAc;AAC5B,MAAI,UAAU;AAAM,WAAO;AAC3B,MAAI,UAAU;AAAW,WAAO;AAChC,MAAI,MAAM,QAAQ,KAAK;AAAG,WAAO;AACjC,MAAIA,gBAAc,KAAK;AAAG,WAAO;AACjC,MAAI,OAAO,YAAY,eAAe,iBAAiB;AAAS,WAAO;AACvE,MAAI,OAAO,SAAS,eAAe,iBAAiB;AAAM,WAAO;AACjE,MAAI,iBAAiB;AAAO,WAAO;AACnC,MAAI,iBAAiB;AAAM,WAAO;AAClC,MAAI,iBAAiB;AAAQ,WAAO;AACpC,SAAO,OAAO;AAChB;AAEA,SAAS,iBAAiB,OAAc;AACtC,MAAI,UAAU;AAAM,WAAO;AAC3B,MAAI,UAAU;AAAW,WAAO;AAChC,MAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,WAAO,SAAS,MAAM,MAAM,MAAM,MAC/B,MAAM,GAAG,CAAC,EACV,IAAI,CAAAP,OAAK,iBAAiBA,EAAC,CAAC,EAC5B,KAAK,IAAI,CAAC,GAAG,MAAM,SAAS,IAAI,QAAQ,EAAE;EAC/C;AACA,MAAIO,gBAAc,KAAK,GAAG;AACxB,UAAM,KAAK;AACX,UAAM,MAAM,GAAG,QAAQ,YAAW;AAClC,UAAM,KAAK,GAAG,KAAK,IAAI,GAAG,EAAE,KAAK;AACjC,UAAM,UAAU,GAAG,YAAY,IAAI,GAAG,UAAU,MAAM,GAAG,EAAE,KAAK,GAAG,CAAC,KAAK;AACzE,WAAO,IAAI,GAAG,GAAG,EAAE,GAAG,OAAO;EAC/B;AACA,MAAI,iBAAiB;AAAO,WAAO,UAAU,MAAM,OAAO;AAC1D,MAAI,OAAO,UAAU;AACnB,WAAO,MAAM,SAAS,KAAK,IAAI,MAAM,UAAU,GAAG,EAAE,CAAC,SAAS,IAAI,KAAK;AACzE,MAAI,OAAO,UAAU,UAAU;AAC7B,QAAI;AACF,YAAM,OAAO,OAAO,KAAK,KAAK;AAC9B,aAAO,WAAW,KAAK,MAAM,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,GAAG,KAAK,SAAS,IAAI,QAAQ,EAAE;IAC9E,QAAQ;AACN,aAAO;IACT;EACF;AACA,SAAO,OAAO,KAAK;AACrB;ACnEM,SAAU,gBAAgB,OAAc;AAC5C,MAAI,UAAU,QAAQ,UAAU,QAAW;AACzC,WAAO;EACT;AAEA,MAAI,OAAO,UAAU,UAAU;AAC7B,WAAO,SAAS,KAAK,IAAI,QAAQ;EACnC;AAEA,MAAI,OAAO,UAAU,UAAU;AAC7B,UAAM,SAAS,WAAW,KAAK;AAC/B,WAAO;EACT;AAEA,MAAI,OAAO,UAAU,WAAW;AAC9B,WAAO,QAAQ,IAAI;EACrB;AAEA,MAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,WAAO,MAAM;EACf;AAEA,MAAI,OAAO,UAAU,UAAU;AAE7B,QAAI,YAAY,SAAS,OAAO,MAAM,WAAW,UAAU;AACzD,aAAO,MAAM;IACf;AACA,QAAI,OAAO,MAAM,YAAY,YAAY;AACvC,YAAM,SAAS,MAAM,QAAO;AAC5B,UAAI,OAAO,WAAW,UAAU;AAC9B,eAAO;MACT;IACF;AAEA,WAAO;EACT;AAEA,SAAO;AACT;AAQM,SAAU,cAAc,OAAc;AAC1C,SAAO,OAAO,UAAU,WAAW,QAAQ,WAAW,OAAO,KAAK,CAAC;AACrE;AAQM,SAAU,aAAa,OAAc;AACzC,MAAIA,gBAAc,KAAK,GAAG;AACxB,UAAM,UAAU;AAChB,WAAO,aAAa,QAAQ,SAAS,QAAQ,WAAW;EAC1D;AACA,SAAO,QAAQ,cAAc,KAAK,IAAI;AACxC;SAgBgB,iBACd,MACA,SACA,gBAAuB;AAGvB,MAAI,mBAAmB,WAAW;AAChC,WAAO,cAAc,SAAS,IAAI;EACpC;AAGA,MAAI,mBAAmB,YAAY,QAAQ,WAAW,QAAQ,QAAQ,IAAI,IAAI,GAAG;AAC/E,WAAO,QAAQ,QAAQ,IAAI,IAAI;EACjC;AAGA,MAAI,mBAAmB,YAAY,QAAQ,UAAU,QAAQ,OAAO,IAAI,IAAI,GAAG;AAC7E,oBAAgB,MAAM,OAAO;AAC7B,WAAO,QAAQ,OAAO,IAAI,IAAI;EAChC;AAGA,MAAI,QAAQ,WAAW,QAAQ,QAAQ,IAAI,IAAI,GAAG;AAChD,WAAO,QAAQ,QAAQ,IAAI,IAAI;EACjC;AAGA,MAAI,QAAQ,aAAa,QAAQ,UAAU,IAAI,IAAI,GAAG;AACpD,WAAO,QAAQ,UAAU,IAAI,IAAI;EACnC;AAGA,MAAI,mBAAmB,YAAY,QAAQ,UAAU,QAAQ,OAAO,IAAI,IAAI,GAAG;AAC7E,oBAAgB,MAAM,OAAO;AAC7B,WAAO,QAAQ,OAAO,IAAI,IAAI;EAChC;AAGA,MAAI,OAAO,WAAW,eAAe,QAAQ,QAAQ;AACnD,WAAQ,OAAe,IAAI;EAC7B;AACA,MAAI,OAAO,eAAe,eAAe,QAAQ,YAAY;AAC3D,WAAQ,WAAmB,IAAI;EACjC;AAGA,SAAO;AACT;AAkBM,SAAU,iBACd,MACA,OACA,SACA,gBAAuB;AAGvB,MAAI,mBAAmB,WAAW;AAChC,kBAAc,SAAS,MAAM,KAAK;AAClC;EACF;AAGA,MAAI,mBAAmB,UAAU;AAC/B,cAAU,SAAS,MAAM,KAAK;AAE9B,QAAI,OAAO,WAAW,aAAa;AAChC,aAAe,IAAI,IAAI;IAC1B;AACA;EACF;AAMA,MAAI,KAAK,WAAW,GAAG,GAAG;AACxB,UAAM,OAAO,KAAK,MAAM,CAAC;AACzB,cAAU,SAAS,MAAM,KAAK;AAC9B;EACF;AAGA,MAAI,QAAQ,UAAU,QAAQ,OAAO,IAAI,IAAI,GAAG;AAC9C,YAAQ,OAAO,IAAI,MAAM,KAAK;AAC9B,qBAAiB,MAAM,OAAO,OAAO;AACrC;EACF;AAGA,MAAI,QAAQ,WAAW,QAAQ,QAAQ,IAAI,IAAI,GAAG;AAChD,cAAU,SAAS,MAAM,KAAK;AAE9B,QAAI,OAAO,WAAW,eAAe,QAAQ,QAAQ;AAClD,aAAe,IAAI,IAAI;IAC1B;AACA;EACF;AAGA,MAAI,QAAQ,aAAa,QAAQ,UAAU,IAAI,IAAI,GAAG;AACpD,YAAQ,UAAU,IAAI,MAAM,KAAK;AACjC;EACF;AAGA,MAAI,OAAO,WAAW,eAAe,QAAQ,QAAQ;AAClD,WAAe,IAAI,IAAI;AAExB,cAAU,SAAS,MAAM,KAAK;AAC9B;EACF;AAGA,UAAQ,OAAO,IAAI,MAAM,KAAK;AAC9B,mBAAiB,MAAM,OAAO,OAAO;AACvC;AASM,SAAU,kBAAkB,YAAoB,SAAyB;AAC7E,MAAI,eAAe,MAAM;AACvB,WAAO,QAAQ;EACjB,WAAW,eAAe,MAAM;AAC9B,WAAO,QAAQ;EACjB,WAAW,eAAe,OAAO;AAC/B,WAAO,QAAQ;EACjB,OAAO;AAEL,WAAO,iBAAiB,YAAY,OAAO;EAC7C;AACF;AAeM,SAAU,wBAAwB,cAAsB,SAAyB;AACrF,QAAM,QAAQ,aAAa,MAAM,GAAG;AACpC,QAAM,aAAa,MAAM,CAAC;AAC1B,QAAM,WAAW,MAAM,CAAC;AAExB,QAAM,UAAU,kBAAkB,YAAY,OAAO;AAErD,MAAI,CAAC,SAAS;AACZ,WAAO;EACT;AAGA,QAAM,QAAS,QAAoC,QAAQ;AAC3D,SAAO,gBAAgB,KAAK;AAC9B;SASgB,wBACd,cACA,OACA,SAAyB;AAEzB,QAAM,QAAQ,aAAa,MAAM,GAAG;AACpC,QAAM,aAAa,MAAM,CAAC;AAC1B,QAAM,WAAW,MAAM,CAAC;AAExB,QAAM,UAAU,kBAAkB,YAAY,OAAO;AAErD,MAAI,SAAS;AACV,YAAoC,QAAQ,IAAI;EACnD;AACF;AAOM,SAAU,cAAc,OAAc;AAC1C,SACE,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,KAAK,KAAK,CAACA,gBAAc,KAAK;AAEhG;AAkBM,SAAU,uBACd,QACA,UACA,OACA,SAAyB;AAGzB,MAAI,OAAO,WAAW,UAAU;AAC9B,WAAO;EACT;AAGA,MAAIA,gBAAc,MAAM,GAAG;AACzB,UAAM,UAAU;AAChB,QAAI,UAAU,WAAW,GAAG;AAAG,aAAO,aAAa,QAAQ,aAAa,SAAS,MAAM,CAAC,CAAC,CAAC;AAC1F,QAAI,UAAU;AAEZ,UACE,SAAS,WAAW,OAAO,KAC3B,CAAC,MAAM,SAAS,SAAS,OAAO,OAAO,MAAM,EAAE,SAAS,QAAQ,GAChE;AACA,eAAO,aAAa,QAAQ,aAAa,QAAQ,CAAC;MACpD,OAAO;AACL,eAAO,aAAc,QAAgB,QAAQ,CAAC;MAChD;IACF,OAAO;AAEL,aAAO,aAAa,OAAO;IAC7B;EACF;AAGA,MAAI,YAAY,cAAc,MAAM,GAAG;AACrC,WAAO,aAAa,OAAO,QAAQ,CAAC;EACtC;AAGA,MAAI,OAAO,WAAW,UAAU;AAE9B,QAAI,UAAU,WAAW;AACvB,aAAO,aAAa,iBAAiB,QAAQ,SAAS,SAAS,CAAC;IAClE;AACA,QAAI,UAAU,UAAU;AACtB,aAAO,aAAa,iBAAiB,QAAQ,SAAS,QAAQ,CAAC;IACjE;AAGA,QAAI,OAAO,SAAS,GAAG,GAAG;AACxB,aAAO,wBAAwB,QAAQ,OAAO;IAChD;AAGA,QAAI,WAAW,QAAQ,QAAQ,IAAI;AACjC,aAAO,gBAAiB,QAAQ,GAAW,SAAS,CAAC;IACvD,WAAW,WAAW,MAAM;AAC1B,aAAO,gBAAgB,QAAQ,MAAM,CAAC;IACxC,WAAW,WAAW,SAAS,QAAQ,KAAK;AAC1C,aAAO,gBAAiB,QAAQ,IAAY,SAAS,CAAC;IACxD;AAGA,WAAO,aAAa,iBAAiB,QAAQ,OAAO,CAAC;EACvD;AAEA,SAAO,aAAa,MAAM;AAC5B;AAiBM,SAAU,eACd,QACA,UACA,OACA,UACA,SAAyB;AAGzB,MAAIA,gBAAc,MAAM,GAAG;AACzB,UAAM,UAAU;AAChB,QAAI,UAAU,WAAW,GAAG,GAAG;AAC7B,cAAQ,aAAa,SAAS,MAAM,CAAC,GAAG,OAAO,QAAQ,CAAC;AACxD;IACF;AACA,QAAI,UAAU;AAEZ,UACE,SAAS,WAAW,OAAO,KAC3B,CAAC,MAAM,SAAS,SAAS,OAAO,OAAO,MAAM,EAAE,SAAS,QAAQ,GAChE;AACA,gBAAQ,aAAa,UAAU,OAAO,QAAQ,CAAC;MACjD,OAAO;AACJ,gBAAgB,QAAQ,IAAI;MAC/B;IACF,OAAO;AAEL,UAAI,WAAW,WAAY,QAAgB,UAAU,QAAW;AAC7D,gBAAgB,QAAQ,OAAO,QAAQ;MAC1C,OAAO;AACL,gBAAQ,cAAc,OAAO,QAAQ;MACvC;IACF;AACA;EACF;AAGA,MAAI,YAAY,cAAc,MAAM,GAAG;AACrC,WAAO,QAAQ,IAAI;AACnB;EACF;AAGA,MAAI,OAAO,WAAW,UAAU;AAE9B,QAAI,UAAU,WAAW;AACvB,uBAAiB,QAAQ,UAAU,SAAS,SAAS;AACrD;IACF;AACA,QAAI,UAAU,UAAU;AACtB,uBAAiB,QAAQ,UAAU,SAAS,QAAQ;AACpD;IACF;AAGA,QAAI,OAAO,SAAS,GAAG,GAAG;AACxB,8BAAwB,QAAQ,UAAU,OAAO;AACjD;IACF;AAGA,QAAI,WAAW,QAAQ,QAAQ,IAAI;AAChC,cAAQ,GAAW,QAAQ;AAC5B;IACF,WAAW,WAAW,MAAM;AAC1B,aAAO,OAAO,SAAS,EAAE,IAAI,SAAQ,CAAE;AACvC;IACF,WAAW,WAAW,SAAS,QAAQ,KAAK;AACzC,cAAQ,IAAY,QAAQ;AAC7B;IACF;AAGA,qBAAiB,QAAQ,UAAU,OAAO;EAC5C;AACF;SC5bgB,sBACd,SACA,UACA,WAAmB;AAGnB,MAAI,aAAa,OAAO,aAAa,YAAY,CAAC,SAAS,WAAW,GAAG,GAAG;AAC1E,WAAO;EACT;AAEA,SAAO,MAAM,QAAQ,OAAO,IAAK,QAAQ,CAAC,KAAK,OAAQ;AACzD;AAaM,SAAU,oBAAoB,UAAgB;AAClD,MAAI,OAAO,aAAa;AAAa,UAAM,IAAI,MAAM,mBAAmB;AACxE,QAAM,WAAW,MAAM,KAAK,SAAS,iBAAiB,QAAQ,CAAC,EAAE,OAAO,CAAC,MACvEA,gBAAc,CAAC,CAAC;AAElB,MAAI,CAAC,SAAS;AAAQ,UAAM,IAAI,MAAM,iBAAiB,QAAQ,GAAG;AAClE,SAAO;AACT;AAaM,SAAU,sBAAsB,OAAc;AAClD,MAAIA,gBAAc,KAAK;AAAG,WAAO,CAAC,KAAoB;AACtD,MAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,UAAM,WAAW,MAAM,OAAOA,eAAa;AAC3C,WAAO,SAAS,SAAS,IAAI,WAAW;EAC1C;AACA,MAAI,OAAO,aAAa,eAAe,iBAAiB,UAAU;AAChE,UAAM,WAAW,MAAM,KAAK,KAAK,EAAE,OAAOA,eAAa;AACvD,WAAO,SAAS,SAAS,IAAI,WAAW;EAC1C;AACA,SAAO;AACT;AAYM,SAAU,oBAAoB,OAAc;AAChD,MAAIA,gBAAc,KAAK;AAAG,WAAO,CAAC,KAAoB;AACtD,MAAI,MAAM,QAAQ,KAAK,KAAK,MAAM,SAAS,KAAK,MAAM,MAAM,CAAAP,OAAKO,gBAAcP,EAAC,CAAC,GAAG;AAClF,WAAO;EACT;AACA,MACE,SACA,OAAO,UAAU,YACjB,OAAQ,MAA+B,WAAW,YAClD,OAAQ,MAA6B,SAAS,YAC9C;AACA,UAAM,OAAO,MAAM,KAAK,KAA2B,EAAE,OAAO,CAACA,OAC3DO,gBAAcP,EAAC,CAAC;AAElB,WAAO,KAAK,SAAS,OAAO;EAC9B;AACA,SAAO;AACT;AEtHM,SAAU,SAAS,OAAc;AACrC,QAAM,aAAa,uBAAuB,IAAI,QAAQ;AACtD,SAAO,aAAa,WAAW,OAAO,KAAK,IAAI,OAAO,UAAU;AAClE;AAOM,SAAU,SAAS,OAAc;AACrC,QAAM,aAAa,uBAAuB,IAAI,QAAQ;AACtD,SAAO,aAAa,WAAW,OAAO,KAAK,IAAI,OAAO,UAAU;AAClE;AAOM,SAAU,UAAU,OAAc;AACtC,QAAM,WAAW,uBAAuB,IAAI,SAAS;AACrD,SAAO,WAAW,SAAS,OAAO,KAAK,IAAI,OAAO,UAAU;AAC9D;AAOM,SAAU,SAAS,OAAc;AACrC,QAAM,aAAa,uBAAuB,IAAI,QAAQ;AACtD,SAAO,aAAa,WAAW,OAAO,KAAK,IAAI,OAAO,UAAU,YAAY,UAAU;AACxF;AAOM,SAAU,WAAW,OAAc;AACvC,QAAM,WAAW,uBAAuB,IAAI,UAAU;AACtD,SAAO,WAAW,SAAS,OAAO,KAAK,IAAI,OAAO,UAAU;AAC9D;ACnDM,SAAUQ,iBAAe,IAAW;AACxC,SACE,OAAO,QAAQ,OAAO,OAAO,YAAY,aAAa,MAAO,GAAe,YAAY;AAE5F;AAmBM,SAAUD,gBAAc,IAAW;AACvC,SACE,OAAO,QACP,OAAO,OAAO,YACd,cAAc,MACb,GAAY,aAAa,KAC1B,WAAW;AAEf;AA8BM,SAAUE,kBAAgB,IAAW;AACzC,SACE,OAAO,QACP,OAAO,OAAO,eACd,OAAO,OAAO,YACd,aAAa,MACZ,GAAe,YAAY;AAEhC;AC3DM,SAAU,UAAU,OAAc;AACtC,SAAO,iBAAiB;AAC1B;AAKM,SAAU,cAAc,OAAc;AAC1C,SAAO,iBAAiB;AAC1B;AAwFM,SAAU,gBAAgB,SAAkB,UAAgB;AAEhE,MAAI,mBAAmB,IAAI,SAAS,YAAW,CAAE,GAAG;AAClD,WAAO,QAAQ,aAAa,QAAQ;EACtC;AAEA,SAAO,QAAQ,aAAa,QAAQ;AACtC;AASM,SAAU,aAAa,SAAkB,UAAgB;AAC7D,SAAO,QAAQ,aAAa,QAAQ;AACtC;AA8CA,SAAS,kBAAkB,IAAW;AACpC,MAAI,cAAc;AAAiB,WAAO,IAAI,SAAS,EAAE;AACzD,QAAM,KAAK,IAAI,SAAQ;AACvB,KAAG,iBAAiB,yBAAyB,EAAE,QAAQ,CAAC,UAAkB;AACxE,UAAM,OAAO,MAAM,aAAa,MAAM;AACtC,QAAI,QAAQ,WAAW;AAAO,SAAG,OAAO,MAAO,MAA2B,KAAK;EACjF,CAAC;AACD,SAAO;AACT;AAuBA,SAAS,qBAAqB,SAAkB,WAAiB;AAC/D,MAAI,CAAC,cAAc,OAAO;AAAG,WAAO;AACpC,MAAI,UAAU,WAAW,WAAW,GAAG;AACrC,WAAO,iBAAiB,OAAO,EAAE,iBAAiB,UAAU,MAAM,YAAY,MAAM,CAAC,KAAK;EAC5F;AACA,QAAM,QAAQ,UAAU,QAAQ,aAAa,CAAC,IAAI,MAAc,EAAE,YAAW,CAAE;AAC/E,SAAQ,QAAQ,MAAwD,KAAK;AAC/E;AAEM,SAAUC,qBAAmB,SAAkB,UAAgB;AAEnE,MAAI,SAAS,WAAW,GAAG,GAAG;AAC5B,WAAO,qBAAqB,SAAS,SAAS,MAAM,CAAC,CAAC;EACxD;AAGA,MAAI,SAAS,WAAW,WAAW,GAAG;AACpC,UAAM,cAAc,SAAS,MAAM,YAAY,MAAM;AACrD,QAAI,cAAc,OAAO,GAAG;AAC1B,YAAM,gBAAgB,iBAAiB,OAAO;AAC9C,aAAO,cAAc,iBAAiB,WAAW;IACnD;AACA,WAAO;EACT;AAGA,MAAI,SAAS,WAAW,GAAG,GAAG;AAC5B,UAAM,WAAW,SAAS,MAAM,CAAC;AACjC,WAAO,gBAAgB,SAAS,QAAQ;EAC1C;AAGA,QAAM,iBAAiB,uBAAuB,SAAS,YAAW,CAAE;AACpE,MAAI,gBAAgB;AAClB,WAAO,eAAe,OAAO;EAC/B;AAGA,MAAI,aAAa,SAAS,QAAQ,GAAG;AACnC,WAAO,gBAAgB,SAAS,QAAQ;EAC1C;AAGA,QAAM,QAAS,QAA+C,QAAQ;AAKtE,MAAI,WAAW,KAAK,GAAG;AACrB,WAAQ,MAAmB,KAAK,OAAO;EACzC;AAEA,SAAO;AACT;AChPA,SAAS,aAAa,GAAS;AAC7B,SAAO,aAAa,CAAC,KAAK,OAAO,CAAC;AACpC;AAWM,SAAU,iBACd,MACA,UACA,gBACA,UAAiB;AAEjB,MAAI,KAAK,WAAW,UAAU;AAC5B,UAAM,UAAU,WAAW,KAAK,QAAQ,MAAM;AAC9C,WAAO,GAAG,cAAc,qBAAqB,aAAa,QAAQ,CAAC,YAAY,aAAa,IAAI,KAAK,GAAG,GAAG,OAAO;EACpH;AACA,SAAO;AACT;AA8BM,SAAU,oBACd,MACAC,QACA,gBACA,SAAgB;AAEhB,MAAI,OAAO,KAAKA,MAAK,MAAM,UAAU;AACnC,UAAM,OAAO,WAAW,YAAYA,SAAQ,CAAC;AAC7C,WAAO,GAAG,cAAc,IAAI,IAAI;EAClC;AACA,SAAO;AACT;AAKM,SAAU,oBACd,MACAA,QACA,gBACA,SAAgB;AAEhB,MAAI,OAAO,KAAKA,MAAK,MAAM,UAAU;AACnC,UAAM,OAAO;AACb,WAAO,GAAG,cAAc,IAAI,IAAI;EAClC;AACA,SAAO;AACT;SAmEgB,wBACd,MACA,gBACA,SAAe;AAEf,SACE,iBAAiB,MAAM,GAAG,gBAAgB,OAAO,KACjD,oBAAoB,MAAM,GAAG,gBAAgB,OAAO;AAExD;AAWM,SAAU,gBAAgB,MAAiB,gBAAsB;AACrE,SAAO,iBAAiB,MAAM,GAAG,gBAAgB,aAAa;AAChE;SAMgB,iBAAc;AAC5B,SAAO;AACT;AAcM,SAAU,gBACd,MACA,SACA,gBACA,UAAiB;AAEjB,MAAI,KAAK,SAAS,SAAS;AACzB,UAAM,UAAU,WAAW,KAAK,QAAQ,MAAM;AAE9C,UAAM,SAAS,YAAY,IAAI,QAAQ,OAAO,OAAO;AACrD,WAAO,GAAG,cAAc,6BAA6B,MAAM,YAAY,YAAY,IAAI,KAAK,GAAG,GAAG,OAAO;EAC3G;AACA,SAAO;AACT;AAWM,SAAU,iBACd,MACA,KACA,KACA,gBACA,UAAiB;AAEjB,MAAI,KAAK,SAAS,OAAO,KAAK,SAAS,KAAK;AAC1C,UAAM,UAAU,WAAW,KAAK,QAAQ,MAAM;AAC9C,WAAO,GAAG,cAAc,aAAa,GAAG,IAAI,GAAG,aAAa,OAAO;EACrE;AACA,SAAO;AACT;ACsBA,SAAS,uBAAuB,YAAkB;AAEhD,eAAa,WAAW,QAAQ,OAAO,EAAE;AAGzC,MAAI,CAAC,mBAAmB,KAAK,UAAU,GAAG;AACxC,UAAM,IAAI,MAAM,uCAAuC;EACzD;AAIA,MAAI;AACF,UAAM,SAAS,IAAI,SAAS,yBAAyB,UAAU,GAAG,EAAC;AAGnE,QAAI,CAAC,SAAS,MAAM,KAAK,CAAC,SAAS,MAAgB,GAAG;AACpD,YAAM,IAAI,MAAM,gDAAgD;IAClE;AAEA,WAAO;EACT,SAAS,OAAO;AACd,UAAM,IAAI,MACR,sCAAsC,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,CAAC,EAAE;EAElG;AACF;AAsBA,SAAS,uBAAuB,MAAqB;AACnD,QAAM,SAAkC,CAAA;AACxC,QAAM,WAAW,KAAK,iBAAiB,yBAAyB;AAEhE,WAAS,QAAQ,aAAU;AACzB,UAAM,QAAQ;AACd,QAAI,MAAM,MAAM;AACd,YAAM,QAAQ,cAAc,KAAK;AACjC,UAAI,UAAU,QAAW;AACvB,YAAI,OAAO,MAAM,IAAI,MAAM,QAAW;AAEpC,cAAI,CAAC,MAAM,QAAQ,OAAO,MAAM,IAAI,CAAC,GAAG;AACtC,mBAAO,MAAM,IAAI,IAAI,CAAC,OAAO,MAAM,IAAI,CAAC;UAC1C;AACC,iBAAO,MAAM,IAAI,EAAgB,KAAK,KAAK;QAC9C,OAAO;AACL,iBAAO,MAAM,IAAI,IAAI;QACvB;MACF;IACF;EACF,CAAC;AAED,SAAO;AACT;AAEA,SAAS,cAAc,OAAiE;AACtF,MAAI,iBAAiB,kBAAkB;AACrC,YAAQ,MAAM,MAAI;MAChB,KAAK;AACH,eAAO,MAAM;MACf,KAAK;AACH,eAAO,MAAM,UAAU,MAAM,QAAQ;MACvC,KAAK;MACL,KAAK;AACH,eAAO,MAAM;MACf,KAAK;MACL,KAAK;AACH,eAAO,MAAM;MACf,KAAK;AACH,eAAO,MAAM;MACf;AACE,eAAO,MAAM;;EAEnB;AAEA,MAAI,iBAAiB,mBAAmB;AACtC,QAAI,MAAM,UAAU;AAClB,aAAO,MAAM,KAAK,MAAM,eAAe,EAAE,IAAI,YAAU,OAAO,KAAK;IACrE;AACA,WAAO,MAAM;EACf;AAEA,SAAO,MAAM;AACf;AAEA,SAAS,oBAAoB,MAAY;AACvC,QAAM,QAAQ,KAAK,MAAM,oBAAoB;AAC7C,MAAI,OAAO;AAET,WAAO,EAAE,WAAW,MAAM,CAAC,IAAI,SAAS,MAAM,CAAC,GAAG,EAAE,IAAI,EAAC;EAC3D;AACA,SAAO,CAAA;AACT;SA+BgB,aAAa,OAAgB,MAAc,SAA0B;AACnF,MAAI,OAAO,SAAS,UAAU;AAC5B,UAAM,IAAI,MAAM,kCAAkC;EACpD;AAIA,MAAI,KAAK,WAAW,OAAO,GAAG;AAC5B,UAAM,EAAE,UAAS,IAAK,oBAAoB,IAAI;AAC9C,UAAM,MAAM,mBAAmB,OAAO,KAAK;AAC3C,WAAO,IAAI,QAAQ,aAAa,CAAC;EACnC;AAIA,MAAI,SAAS,MAAM;AACjB,WAAO;EACT;AAGA,MAAI,YAAY,mBAAmB,IAAI;AACvC,MAAI,WAAW;AACb,WAAO,UAAU,OAAO,OAAO;EACjC;AAEA,QAAM,cAAc,aAAa,KAAK,YAAW,CAAE;AACnD,MAAI,aAAa;AACf,gBAAY,mBAAmB,WAAW;AAC1C,QAAI,WAAW;AACb,aAAO,UAAU,OAAO,OAAO;IACjC;EACF;AAIA,QAAM,QAAQ,iBAAiB,YAAY,IAAI;AAC/C,MAAI,OAAO,UAAU,YAAY;AAC/B,WAAQ,MAA6B,OAAO,OAAO;EACrD;AACA,aAAW,YAAY,iBAAiB,YAAY,kBAAkB;AACpE,UAAM,WAAW,SAAS,MAAM,KAAK;AACrC,QAAI,aAAa,QAAW;AAC1B,aAAO;IACT;EACF;AAGA,UAAQ,KAAK,4BAA4B,IAAI,EAAE;AAC/C,SAAO;AACT;ACtJA,SAAS,eAAe,QAAqB,UAAgB;AAC3D,MAAI,SAAS,WAAW,WAAW,GAAG;AACpC,UAAM,cAAc,SAAS,UAAU,CAAC;AACxC,WAAO,iBAAiB,MAAM,EAAE,iBAAiB,WAAW,KAAK;EACnE;AACA,QAAM,QAAQ,SAAS,QAAQ,aAAa,CAAC,IAAI,MAAc,EAAE,YAAW,CAAE;AAC9E,SAAQ,OAAO,MAAwD,KAAK;AAC9E;ACjTA,SAAS,sBACP,MACA,SACA,MACA,cAAwB,CAAA,GAAE;AAE1B,SAAO;IACL;IACA;IACA;IACA,GAAI,QAAQ,EAAE,KAAI;;AAEtB;AA4CA,SAAS,6BAA0B;AACjC,SAAO,uBAAuB;IAC5B,UAAU,CAAC,WAAyC;MAClD,SAAS;MACT,MAAM;;EAET,CAAA;AACH;AAgBM,SAAU,sBACd,UAAkC,CAAA,GAAE;AAEpC,MAAI,gBAAgB;AAClB,WAAO,2BAA0B;EACnC;AAEA,SAAO,uBAAuB;IAC5B,UAAU,CAAC,UAA4C;AAErD,UAAI,QAAQ,aAAa,UAAU,UAAa,UAAU,OAAO;AAC/D,eAAO,EAAE,SAAS,MAAM,MAAM,OAAS;MACzC;AAGA,UAAI,OAAO,UAAU,UAAU;AAC7B,eAAO;UACL,SAAS;UACT,OAAO,sBACL,iBACA,6BAA6B,OAAO,KAAK,EAAE;;MAGjD;AAGA,UAAI,QAAQ,cAAc,UAAa,MAAM,SAAS,QAAQ,WAAW;AACvE,eAAO;UACL,SAAS;UACT,OAAO,sBACL,iBACA,2BAA2B,QAAQ,SAAS,kBAAkB;;MAGpE;AAGA,UAAI,QAAQ,cAAc,UAAa,MAAM,SAAS,QAAQ,WAAW;AACvE,eAAO;UACL,SAAS;UACT,OAAO,sBACL,iBACA,0BAA0B,QAAQ,SAAS,kBAAkB;;MAGnE;AAGA,UAAI,QAAQ,WAAW,CAAC,QAAQ,QAAQ,KAAK,KAAK,GAAG;AAEnD,YAAI,QAAQ,QAAQ,OAAO,WAAW,GAAG,KAAK,QAAQ,QAAQ,OAAO,SAAS,GAAG,GAAG;AAClF,gBAAM,WAAW,QAAQ,QAAQ,OAAO,MAAM,GAAG,EAAE;AACnD,iBAAO;YACL,SAAS;YACT,OAAO,sBACL,iBACA,aAAa,QAAQ,gBAAgB,KAAK,GAAG;;QAGnD;AAEA,eAAO;UACL,SAAS;UACT,OAAO,sBACL,oBACA,wCAAwC;;MAG9C;AAEA,aAAO,EAAE,SAAS,MAAM,MAAM,MAAK;IACrC;IACA,GAAI,QAAQ,eAAe,EAAE,aAAa,QAAQ,YAAW;EAC9D,CAAA;AACH;AAKM,SAAU,sBACd,QACA,SAA0C;AAE1C,MAAI,gBAAgB;AAClB,WAAO,2BAA0B;EACnC;AAEA,QAAM,YAAY,uBAAuB;IACvC,UAAU,CAAC,UAAoC;AAC7C,UAAI,OAAO,UAAU,YAAY,UAAU,QAAQ,MAAM,QAAQ,KAAK,GAAG;AACvE,eAAO;UACL,SAAS;UACT,OAAO,sBACL,iBACA,6BAA6B,OAAO,KAAK,EAAE;;MAGjD;AAEA,YAAM,MAAM;AACZ,YAAM,SAAkC,CAAA;AAGxC,UAAI,SAAS,QAAQ;AACnB,cAAM,cAAc,OAAO,KAAK,MAAM;AACtC,cAAM,aAAa,OAAO,KAAK,GAAG;AAClC,cAAM,YAAY,WAAW,OAAO,SAAO,CAAC,YAAY,SAAS,GAAG,CAAC;AAErE,YAAI,UAAU,SAAS,GAAG;AACxB,iBAAO;YACL,SAAS;YACT,OAAO,sBACL,iBACA,0BAA0B,UAAU,KAAK,IAAI,CAAC,EAAE;;QAGtD;MACF;AAGA,iBAAW,CAAC,WAAWC,UAAS,KAAK,OAAO,QAAQ,MAAM,GAAG;AAC3D,cAAM,aAAa,IAAI,SAAS;AAChC,cAAM,cAAc,aAAa;AAKjC,YAAI,CAAC,eAAe,CAAEA,WAAkB,aAAa;AACnD,iBAAO;YACL,SAAS;YACT,OAAO,sBACL,oBACA,mBAAmB,SAAS,gBAC5B,SAAS;;QAGf;AAEA,cAAM,cAAcA,WAAU,SAAS,UAAU;AAEjD,YAAI,CAAC,YAAY,SAAS;AACxB,gBAAM,YAAY,YAAY,MAAO,OACjC,GAAG,SAAS,IAAI,YAAY,MAAO,IAAI,KACvC;AACJ,iBAAO;YACL,SAAS;YACT,OAAO,sBACL,oBACA,YAAY,MAAO,WAAW,UAAU,SAAS,uBACjD,SAAS;;QAGf;AAGA,YAAI,YAAY,SAAS,QAAW;AAClC,iBAAO,SAAS,IAAI,YAAY;QAClC;MACF;AAEA,aAAO,EAAE,SAAS,MAAM,MAAM,OAAM;IACtC;EACD,CAAA;AAGA,YAAkB,SAAS,MAAM,sBAAsB,QAAQ,EAAE,QAAQ,KAAI,CAAE;AAEhF,SAAO;AAGT;AAKM,SAAU,qBAAwB,eAAkC;AACxE,MAAI,gBAAgB;AAClB,WAAO,2BAA0B;EACnC;AAEA,SAAO,uBAAuB;IAC5B,UAAU,CAAC,UAAyC;AAClD,UAAI,CAAC,MAAM,QAAQ,KAAK,GAAG;AACzB,eAAO;UACL,SAAS;UACT,OAAO,sBAAsB,iBAAiB,4BAA4B,OAAO,KAAK,EAAE;;MAE5F;AAEA,YAAM,SAAc,CAAA;AAEpB,eAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACrC,cAAM,aAAa,cAAc,SAAS,MAAM,CAAC,CAAC;AAClD,YAAI,CAAC,WAAW,SAAS;AACvB,gBAAM,YAAY,WAAW,MAAO,OAAO,GAAG,CAAC,IAAI,WAAW,MAAO,IAAI,KAAK,GAAG,CAAC;AAClF,iBAAO;YACL,SAAS;YACT,OAAO,sBAAsB,iBAAiB,WAAW,MAAO,SAAS,SAAS;;QAEtF;AACA,eAAO,KAAK,WAAW,IAAK;MAC9B;AAEA,aAAO,EAAE,SAAS,MAAM,MAAM,OAAM;IACtC;EACD,CAAA;AACH;AAKM,SAAU,qBACd,YAAa;AAEb,MAAI,gBAAgB;AAClB,WAAO,2BAA0B;EACnC;AAEA,SAAO,uBAAuB;IAC5B,UAAU,CACR,UAC4F;AAC5F,UAAI,CAAC,MAAM,QAAQ,KAAK,GAAG;AACzB,eAAO;UACL,SAAS;UACT,OAAO,sBAAsB,iBAAiB,4BAA4B,OAAO,KAAK,EAAE;;MAE5F;AAEA,UAAI,MAAM,WAAW,WAAW,QAAQ;AACtC,eAAO;UACL,SAAS;UACT,OAAO,sBACL,iBACA,4BAA4B,WAAW,MAAM,qBAAqB,MAAM,MAAM,EAAE;;MAGtF;AAEA,YAAM,SAAoB,CAAA;AAE1B,eAAS,IAAI,GAAG,IAAI,WAAW,QAAQ,KAAK;AAC1C,cAAM,aAAa,WAAW,CAAC,EAAE,SAAS,MAAM,CAAC,CAAC;AAClD,YAAI,CAAC,WAAW,SAAS;AACvB,gBAAM,YAAY,WAAW,MAAO,OAAO,GAAG,CAAC,IAAI,WAAW,MAAO,IAAI,KAAK,GAAG,CAAC;AAClF,iBAAO;YACL,SAAS;YACT,OAAO,sBAAsB,iBAAiB,WAAW,MAAO,SAAS,SAAS;;QAEtF;AACA,eAAO,KAAK,WAAW,IAAI;MAC7B;AAEA,aAAO;QACL,SAAS;QACT,MAAM;;IAEV;EACD,CAAA;AACH;AAKM,SAAU,qBAAwB,YAAiC;AACvE,MAAI,gBAAgB;AAClB,WAAO,2BAA0B;EACnC;AAEA,SAAO,uBAAuB;IAC5B,UAAU,CAAC,UAAuC;AAChD,YAAM,SAAmB,CAAA;AAEzB,iBAAW,aAAa,YAAY;AAClC,cAAM,SAAS,UAAU,SAAS,KAAK;AACvC,YAAI,OAAO,SAAS;AAClB,iBAAO;QACT;AACA,eAAO,KAAK,OAAO,MAAO,OAAO;MACnC;AAEA,aAAO;QACL,SAAS;QACT,OAAO,sBAAsB,iBAAiB,qCAAqC;;IAEvF;EACD,CAAA;AACH;AAKM,SAAU,uBACd,cAAe;AAEf,MAAI,gBAAgB;AAClB,WAAO,2BAA0B;EACnC;AAEA,SAAO,uBAAuB;IAC5B,UAAU,CAAC,UAAuC;AAChD,UAAI,UAAU,cAAc;AAC1B,eAAO,EAAE,SAAS,MAAM,MAAM,MAAU;MAC1C;AAEA,aAAO;QACL,SAAS;QACT,OAAO,sBACL,iBACA,YAAY,KAAK,UAAU,YAAY,CAAC,cAAc,KAAK,UAAU,KAAK,CAAC,EAAE;;IAGnF;EACD,CAAA;AACH;AASM,SAAU,sBACd,UAA0C,CAAA,GAAE;AAE5C,MAAI,gBAAgB;AAClB,WAAO,2BAA0B;EACnC;AAEA,SAAO,uBAAuB;IAC5B,UAAU,CAAC,UAA4C;AACrD,YAAM,MAAM,OAAO,KAAK;AACxB,UAAI,MAAM,GAAG,GAAG;AACd,eAAO;UACL,SAAS;UACT,OAAO,sBACL,iBACA,6BAA6B,OAAO,KAAK,EAAE;;MAGjD;AAEA,UAAI,QAAQ,QAAQ,UAAa,MAAM,QAAQ,KAAK;AAClD,eAAO;UACL,SAAS;UACT,OAAO,sBAAsB,iBAAiB,2BAA2B,QAAQ,GAAG,EAAE;;MAE1F;AAEA,UAAI,QAAQ,QAAQ,UAAa,MAAM,QAAQ,KAAK;AAClD,eAAO;UACL,SAAS;UACT,OAAO,sBAAsB,iBAAiB,0BAA0B,QAAQ,GAAG,EAAE;;MAEzF;AAEA,aAAO,EAAE,SAAS,MAAM,MAAM,IAAG;IACnC;EACD,CAAA;AACH;SAKgB,yBAAsB;AACpC,MAAI,gBAAgB;AAClB,WAAO,2BAA0B;EACnC;AAEA,SAAO,uBAAuB;IAC5B,UAAU,CAAC,UAA6C;AACtD,UAAI,OAAO,UAAU,WAAW;AAC9B,eAAO;UACL,SAAS;UACT,OAAO,sBACL,iBACA,8BAA8B,OAAO,KAAK,EAAE;;MAGlD;AAEA,aAAO,EAAE,SAAS,MAAM,MAAM,MAAK;IACrC;EACD,CAAA;AACH;SAKgB,sBACd,WACA,eAAe,4BAA0B;AAEzC,MAAI,gBAAgB;AAClB,WAAO,2BAA0B;EACnC;AAEA,SAAO,uBAAuB;IAC5B,UAAU,CAAC,UAAuC;AAChD,UAAI,UAAU,KAAK,GAAG;AACpB,eAAO,EAAE,SAAS,MAAM,MAAM,MAAU;MAC1C;AAEA,aAAO;QACL,SAAS;QACT,OAAO,sBAAsB,iBAAiB,YAAY;;IAE9D;EACD,CAAA;AACH;AAwMM,SAAU,sBACd,cACA,gBAAmC;AAEnC,MAAI,gBAAgB;AAClB,WAAO,2BAA0B;EACnC;AAEA,SAAO,uBAAuB;IAC5B,UAAU,CAAC,UAAkD;AAC3D,UAAI,OAAO,UAAU,YAAY,UAAU,QAAQ,MAAM,QAAQ,KAAK,GAAG;AACvE,eAAO;UACL,SAAS;UACT,OAAO,sBACL,iBACA,oCAAoC,OAAO,KAAK,EAAE;;MAGxD;AAEA,YAAM,MAAM;AACZ,YAAM,SAA8B,CAAA;AAGpC,iBAAW,CAAC,KAAK,GAAG,KAAK,OAAO,QAAQ,GAAG,GAAG;AAC5C,cAAM,YAAY,aAAa,SAAS,GAAG;AAC3C,YAAI,CAAC,UAAU,SAAS;AACtB,iBAAO;YACL,SAAS;YACT,OAAO,sBACL,oBACA,gBAAgB,GAAG,MAAM,UAAU,MAAO,OAAO,IACjD,GAAG;;QAGT;AAEA,cAAM,cAAc,eAAe,SAAS,GAAG;AAC/C,YAAI,CAAC,YAAY,SAAS;AACxB,gBAAM,YAAY,YAAY,MAAO,OAAO,GAAG,GAAG,IAAI,YAAY,MAAO,IAAI,KAAK;AAClF,iBAAO;YACL,SAAS;YACT,OAAO,sBAAsB,iBAAiB,YAAY,MAAO,SAAS,SAAS;;QAEvF;AAEA,eAAO,GAAG,IAAI,YAAY;MAC5B;AAEA,aAAO,EAAE,SAAS,MAAM,MAAM,OAAsB;IACtD;EACD,CAAA;AACH;AAKM,SAAU,oBACd,QAAS;AAET,MAAI,gBAAgB;AAClB,WAAO,2BAA0B;EACnC;AAEA,SAAO,uBAAuB;IAC5B,UAAU,CAAC,UAA+C;AACxD,UAAI,OAAO,UAAU,YAAY,OAAO,UAAU,YAAY,OAAO,UAAU,WAAW;AACxF,eAAO;UACL,SAAS;UACT,OAAO,sBACL,iBACA,6BAA6B,OAAO,KAAK,EAAE;;MAGjD;AAEA,UAAI,CAAE,OAAkD,SAAS,KAAK,GAAG;AACvE,eAAO;UACL,SAAS;UACT,OAAO,sBACL,iBACA,oBAAoB,OAAO,KAAK,IAAI,CAAC,gBAAgB,KAAK,GAAG;;MAGnE;AAEA,aAAO,EAAE,SAAS,MAAM,MAAM,MAAkB;IAClD;EACD,CAAA;AACH;AE7qBM,SAAU,iBAAiB,SAAkB,UAAgB;AACjE,SAAO,YAAY,QAAQ,SAAS,QAAQ;AAC9C;SAqDgB,iBAAc;AAE5B,cAAY,QAAO;AAGnB,QAAM,UAAU,mBAAmB,WAAU;AAG7C,MAAI,QAAQ,cAAc,KAAK,OAAO,MAAM;AAE1C,uBAAmB,MAAK;EAC1B;AACF;AAKM,SAAU,kBAAkB,aAAqB,KAAK;AAC1D,MAAI,iBAAiB;AACnB,kBAAc,eAAe;EAC/B;AAEA,oBAAkB,YAAY,gBAAgB,UAAU;AAC1D;AC1KM,SAAU,SAAS,OAAgB,SAAe;AACtD,MAAI,OAAO,UAAU,UAAU;AAC7B,QAAI,CAAC,OAAO,SAAS,KAAK,GAAG;AAC3B,YAAM,IAAI,MAAM,GAAG,OAAO,iCAAiC,KAAK,EAAE;IACpE;AACA,WAAO;EACT;AAEA,MAAI,OAAO,UAAU,UAAU;AAC7B,UAAM,UAAU,MAAM,KAAI;AAC1B,QAAI,YAAY,IAAI;AAClB,aAAO;IACT;AACA,UAAM,MAAM,WAAW,OAAO;AAC9B,QAAI,MAAM,GAAG,GAAG;AACd,YAAM,IAAI,MAAM,GAAG,OAAO,oCAAoC,KAAK,GAAG;IACxE;AACA,WAAO;EACT;AAEA,MAAI,OAAO,UAAU,WAAW;AAC9B,WAAO,QAAQ,IAAI;EACrB;AAEA,MAAI,UAAU,QAAQ,UAAU,QAAW;AACzC,WAAO;EACT;AAGA,MAAI,OAAO,UAAU,YAAY,UAAU,MAAM;AAG/C,QAAI,MAAM,QAAQ,KAAK,KAAK,MAAM,WAAW,GAAG;AAC9C,YAAM,QAAQ,MAAM,CAAC;AACrB,UAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,cAAM,IAAI,MAAM,GAAG,OAAO,8CAA8C;MAC1E;AACA,aAAO,SAAS,OAAO,OAAO;IAChC;AAGA,UAAM,MAAM;AACZ,QAAI,OAAO,IAAI,gBAAgB,YAAY,WAAW,KAAK;AACzD,YAAM,OAAO,IAAI,SAAS,IAAI;AAC9B,UAAI,SAAS,QAAQ,SAAS,QAAW;AACvC,cAAM,UAAU,OAAO,IAAI,EAAE,KAAI;AACjC,YAAI,YAAY;AAAI,iBAAO;AAC3B,cAAM,MAAM,WAAW,OAAO;AAC9B,YAAI,CAAC,MAAM,GAAG;AAAG,iBAAO;MAC1B;IACF;AAEA,UAAM,YAAa,MAAiC,QAAO;AAC3D,QAAI,OAAO,cAAc,YAAY,OAAO,SAAS,SAAS,GAAG;AAC/D,aAAO;IACT;EACF;AAEA,QAAM,IAAI,MAAM,GAAG,OAAO,mCAAmC,OAAO,KAAK,EAAE;AAC7E;AASM,SAAU,eAAe,OAAc;AAC3C,MAAI,OAAO,UAAU,UAAU;AAC7B,WAAO,OAAO,SAAS,KAAK,IAAI,QAAQ;EAC1C;AAEA,MAAI,OAAO,UAAU,UAAU;AAC7B,UAAM,UAAU,MAAM,KAAI;AAC1B,QAAI,YAAY;AAAI,aAAO;AAC3B,UAAM,MAAM,WAAW,OAAO;AAC9B,WAAO,MAAM,GAAG,IAAI,OAAO;EAC7B;AAEA,MAAI,OAAO,UAAU,WAAW;AAC9B,WAAO,QAAQ,IAAI;EACrB;AAEA,MAAI,UAAU,QAAQ,UAAU,QAAW;AACzC,WAAO;EACT;AAEA,SAAO;AACT;AAUM,SAAU,aAAa,KAAa,WAAiB;AACzD,MAAI,CAAC,OAAO,SAAS,GAAG,GAAG;AACzB,QAAI,OAAO,MAAM,GAAG,GAAG;AACrB,YAAM,IAAI,MAAM,GAAG,SAAS,oCAAoC;IAClE;AACA,UAAM,IAAI,MACR,GAAG,SAAS,kCAAkC,MAAM,IAAI,aAAa,WAAW,EAAE;EAEtF;AACA,SAAO;AACT;AAcM,SAAU,aAAa,OAAc;AACzC,MAAI;AACF,aAAS,OAAO,GAAG;AACnB,WAAO;EACT,QAAQ;AACN,WAAO;EACT;AACF;AA6BM,SAAU,WAAW,MAAc,OAAe,gBAAyB,MAAI;AACnF,MAAI,UAAU,GAAG;AACf,QAAI,eAAe;AACjB,aAAO,SAAS,IAAI,MAAM,OAAO,IAAI,WAAW;IAClD;AACA,UAAM,IAAI,MAAM,kBAAkB;EACpC;AACA,SAAO,OAAO;AAChB;AAUM,SAAU,WAAW,MAAc,OAAa;AACpD,MAAI,UAAU,GAAG;AACf,UAAM,IAAI,MAAM,gBAAgB;EAClC;AACA,SAAO,OAAO;AAChB;SC9KgB,cACd,MACA,OACA,UAA4B;AAG5B,MAAI,aAAa,OAAO;AACtB,WAAO,SAAS;EAClB;AACA,MAAI,aAAa,OAAO;AACtB,WAAO,SAAS;EAClB;AAGA,MAAI,QAAQ,QAAQ,SAAS,MAAM;AACjC,WAAO,eAAe,MAAM,OAAO,QAAQ;EAC7C;AAGA,QAAM,CAAC,SAAS,QAAQ,IAAI,mBAAmB,MAAM,KAAK;AAE1D,UAAQ,UAAQ;IACd,KAAK;AACH,aAAO,UAAU;IACnB,KAAK;AACH,aAAO,UAAU;IACnB,KAAK;AACH,aAAO,WAAW;IACpB,KAAK;AACH,aAAO,WAAW;IACpB,KAAK;AACH,aAAO,gBAAgB,MAAM,KAAK;IACpC,KAAK;AACH,aAAO,CAAC,gBAAgB,MAAM,KAAK;IACrC;AACE,aAAO;;AAEb;AAKA,SAAS,eAAe,MAAe,OAAgB,UAA4B;AACjF,QAAM,gBAAgB,QAAQ;AAC9B,QAAM,iBAAiB,SAAS;AAGhC,MAAI,iBAAiB,gBAAgB;AACnC,YAAQ,UAAQ;MACd,KAAK;MACL,KAAK;MACL,KAAK;AACH,eAAO;MACT,KAAK;MACL,KAAK;MACL,KAAK;AACH,eAAO;MACT;AACE,eAAO;;EAEb;AAGA,UAAQ,UAAQ;IACd,KAAK;AACH,aAAO;IACT,KAAK;AACH,aAAO;IACT,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;AACH,aAAO;IACT;AACE,aAAO;;AAEb;AAMA,SAAS,gBAAgB,MAAe,OAAc;AAEpD,MAAI,SAAS,OAAO;AAClB,WAAO;EACT;AAGA,MAAI,OAAO,SAAS,OAAO,OAAO;AAEhC,QAAI,OAAO,SAAS,UAAU;AAC5B,aAAO,SAAS;IAClB;AAEA,QAAI,OAAO,SAAS,UAAU;AAC5B,aAAO,SAAS;IAClB;AAEA,WAAO;EACT;AAKA,MAAI,OAAO,SAAS,YAAY,OAAO,UAAU,UAAU;AACzD,UAAM,WAAW,WAAW,KAAK;AACjC,WAAO,CAAC,MAAM,QAAQ,KAAK,SAAS;EACtC;AACA,MAAI,OAAO,SAAS,YAAY,OAAO,UAAU,UAAU;AACzD,UAAM,UAAU,WAAW,IAAI;AAC/B,WAAO,CAAC,MAAM,OAAO,KAAK,YAAY;EACxC;AAGA,MAAI,OAAO,SAAS,WAAW;AAC7B,WAAO,gBAAgB,OAAO,IAAI,GAAG,KAAK;EAC5C;AACA,MAAI,OAAO,UAAU,WAAW;AAC9B,WAAO,gBAAgB,MAAM,QAAQ,IAAI,CAAC;EAC5C;AAGA,SAAO,OAAO,IAAI,MAAM,OAAO,KAAK;AACtC;AAUM,SAAU,mBACd,MACA,OAAc;AAGd,MAAI,OAAO,SAAS,YAAY,OAAO,UAAU,UAAU;AACzD,WAAO,CAAC,MAAM,KAAK;EACrB;AAGA,MAAI,OAAO,SAAS,YAAY,OAAO,UAAU,UAAU;AACzD,UAAMC,WAAU,WAAW,IAAI;AAC/B,UAAMC,YAAW,WAAW,KAAK;AACjC,QAAI,CAAC,MAAMD,QAAO,KAAK,CAAC,MAAMC,SAAQ,GAAG;AACvC,aAAO,CAACD,UAASC,SAAQ;IAC3B;AACA,WAAO,CAAC,MAAM,KAAK;EACrB;AAGA,QAAM,UAAU,eAAe,IAAI;AACnC,QAAM,WAAW,eAAe,KAAK;AAErC,MAAI,YAAY,QAAQ,aAAa,MAAM;AACzC,WAAO,CAAC,SAAS,QAAQ;EAC3B;AAGA,SAAO,CAAC,OAAO,IAAI,GAAG,OAAO,KAAK,CAAC;AACrC;SC9KgB,cAAW;AACzB,SAAO;IACL,SAAS;IACT,QAAQ,CAAA;IACR,aAAa,CAAA;;AAEjB;SAQgB,cACd,QACA,cAAwB,CAAA,GAAE;AAE1B,SAAO;IACL,SAAS;IACT;IACA;;AAEJ;AAUM,SAAU,YACd,MACA,SACA,cAAwB,CAAA,GACxB,WAAyC,SAAO;AAEhD,SAAO,EAAE,MAAM,SAAS,aAAa,SAAQ;AAC/C;AASM,SAAU,oBAAoB,OAAc;AAChD,MAAI,UAAU,QAAQ,UAAU,QAAW;AACzC,WAAO,cACL,CAAC,YAAY,oBAAoB,4BAA4B,CAAC,GAC9D,CAAC,gDAAgD,CAAC;EAEtD;AAEA,MAAI,OAAO,UAAU,UAAU;AAC7B,WAAO,cACL,CAAC,YAAY,iBAAiB,wBAAwB,OAAO,KAAK,EAAE,CAAC,GACrE,CAAC,gDAAgD,CAAC;EAEtD;AAEA,QAAM,MAAM;AAGZ,MAAI,EAAE,UAAU,QAAQ,EAAE,WAAW,MAAM;AACzC,UAAM,UAAU,CAAA;AAChB,QAAI,EAAE,UAAU;AAAM,cAAQ,KAAK,MAAM;AACzC,QAAI,EAAE,WAAW;AAAM,cAAQ,KAAK,OAAO;AAC3C,WAAO,cACL;MACE,YACE,oBACA,WAAW,QAAQ,KAAK,OAAO,CAAC,WAAW,QAAQ,SAAS,IAAI,MAAM,EAAE,EAAE;IAE7E,GACD,CAAC,uCAAuC,CAAC;EAE7C;AAEA,SAAO,YAAW;AACpB;SCRgB,gBACd,YACA,UACA,MACA,QACA,WACA,UAAmB,MACnB,OAAa;AAeb,SAAO;AACT;AChGA,SAAS,aAAa,OAAc;AAClC,SACE,UAAU,QACV,OAAO,UAAU,YACjB,cAAe,SACd,MAA+B,aAAa;AAEjD;AAodA,SAAS,YAAY,OAAc;AACjC,MAAI,SAAS;AAAM,WAAO;AAC1B,MAAI,MAAM,QAAQ,KAAK;AAAG,WAAO,MAAM,SAAS;AAChD,MAAI,OAAO,aAAa,eAAe,iBAAiB;AAAU,WAAO,MAAM,SAAS;AACxF,SAAO;AACT;ACxdA,SAAS,oBAAoB,SAAkB,UAAgB;AAC7D,MAAI,mBAAmB,SAAS;AAC9B,WAAOJ,qBAAmB,SAAS,QAAQ;EAC7C;AACA,MAAI,SAAS,OAAO,GAAG;AACrB,QAAI,aAAa,IAAI,QAAQ;AAAG,aAAO;AACvC,WAAQ,QAAoC,QAAQ;EACtD;AACA,SAAQ,QAAoC,QAAQ;AACtD;AAWM,SAAU,qBAAqBV,IAAU;AAC7C,MAAI;AACJ,MAAI,MAAM,QAAQA,EAAC,GAAG;AACpB,YAAQA;EACV,WACG,OAAO,aAAa,eAAeA,cAAa,YAChD,OAAO,mBAAmB,eAAeA,cAAa,gBACvD;AACA,YAAQ,MAAM,KAAKA,EAAuB;EAC5C,OAAO;AACL,WAAO;EACT;AACA,MAAI,MAAM,WAAW;AAAG,WAAO;AAC/B,SAAO,MAAM,MACX,UACE,gBAAgB,WACf,QAAQ,QACP,OAAO,SAAS,YACf,KAAgB,gBAAgB,UACjC,CAAC,MAAM,QAAQ,IAAI,CAAE;AAE7B;AC7BM,SAAU,gBAAgB,OAAc;AAC5C,MAAI,MAAM,QAAQ,KAAK;AAAG,WAAO;AACjC,MAAI,SAAS;AAAM,WAAO,CAAA;AAC1B,MAAI,OAAO,UAAU;AAAU,WAAO,CAAC,KAAK;AAC5C,MAAI,iBAAiB,YAAY,iBAAiB,gBAAgB;AAChE,WAAO,MAAM,KAAK,KAA2B;EAC/C;AACA,MAAI,OAAQ,MAAc,WAAW,UAAU;AAC7C,WAAO,MAAM,KAAK,KAA2B;EAC/C;AACA,SAAO,CAAC,KAAK;AACf;AAQO,eAAe,cACpB,YACA,WACA,YAA4D;AAE5D,QAAM,MAAM,gBAAgB,UAAU;AACtC,QAAM,MAAiB,CAAA;AACvB,aAAW,WAAW,KAAK;AACzB,UAAMe,MAAK,MAAM,WAAW,WAAW,OAAO;AAC9C,QAAIA;AAAI,UAAI,KAAK,OAAO;EAC1B;AACA,SAAO;AACT;AAGO,eAAe,iBACpB,YACA,SACA,OACA,YAA4D;AAE5D,QAAM,MAAM,CAAC,GAAG,gBAAgB,UAAU,CAAC;AAC3C,QAAM,OAAO,MAAM,QAAQ,IAAI,IAAI,IAAI,QAAM,WAAW,SAAS,EAAE,CAAC,CAAC;AACrE,QAAM,UAAU,IAAI,IAAI,CAAC,GAAG,MAAM,CAAC;AACnC,UAAQ,KAAK,CAAC,GAAG,MAAK;AACpB,UAAM,KAAK,KAAK,CAAC;AACjB,UAAM,KAAK,KAAK,CAAC;AACjB,QAAI,OAAO;AAAI,aAAO;AACtB,QAAI,MAAM;AAAM,aAAO;AACvB,QAAI,MAAM;AAAM,aAAO;AACvB,WAAO,KAAK,KAAK,KAAK;EACxB,CAAC;AACD,QAAM,SAAS,QAAQ,IAAI,OAAK,IAAI,CAAC,CAAC;AACtC,SAAO,UAAU,SAAS,OAAO,QAAO,IAAK;AAC/C;AAGO,eAAe,iBACpB,YACA,MACA,YAA4D;AAE5D,QAAM,MAAM,gBAAgB,UAAU;AACtC,SAAO,QAAQ,IAAI,IAAI,IAAI,QAAM,WAAW,MAAM,EAAE,CAAC,CAAC;AACxD;AAGM,SAAU,gBAAgB,OAAgB,WAAkB;AAChE,MAAI,SAAS;AAAM,WAAO,CAAA;AAC1B,QAAM,MAAM,OAAO,KAAK;AACxB,QAAM,MAAM,aAAa,OAAO,KAAK,OAAO,SAAS;AACrD,SAAO,IAAI,MAAM,GAAG;AACtB;AAGM,SAAU,iBAAiB,OAAgB,WAAkB;AACjE,QAAM,MAAM,gBAAgB,KAAK;AACjC,QAAM,MAAM,aAAa,OAAO,KAAK,OAAO,SAAS;AACrD,SAAO,IAAI,IAAI,CAAAf,OAAMA,MAAK,OAAO,KAAK,OAAOA,EAAC,CAAE,EAAE,KAAK,GAAG;AAC5D;ACpCA,SAAS,QAAQ,SAA2B,MAAY;AACtD,QAAM,OAAO,QAAQ,UAAU,IAAI,IAAI;AACvC,MAAI,CAAC,MAAM;AACT,UAAM,IAAI,MACR,eAAe,IAAI,+UAKU;EAEjC;AACA,SAAO;AACT;AAOA,SAAS,kBAAkB,QAAW;AACpC,MAAI,UAAU,OAAO,WAAW,YAAY,aAAa,QAAQ;AAC/D,QAAI,OAAO;AAAS,aAAO,WAAW,SAAS,OAAO,QAAQ;AAC9D,UAAM,SAAS,OAAO,UAAU,CAAA;AAChC,UAAM,eAAe,OAAO,SAAS,IAAI,OAAO,CAAC,EAAE,UAAU;AAC7D,UAAM,IAAI,MAAM,YAAY;EAC9B;AACA,SAAO;AACT;AAwGA,eAAe,cAAc,MAAqB,SAAyB;AACzE,UAAQ,KAAK,MAAI;IACf,KAAK;AACH,aAAO,gBAAgB,IAAI;IAE7B,KAAK;AACH,aAAO,mBAAmB,MAAM,OAAO;IAEzC,KAAK;AACH,aAAO,yBAAyB,MAAM,OAAO;IAE/C,KAAK;AACH,aAAO,yBAAyB,MAAM,OAAO;IAE/C,KAAK;AACH,aAAO,0BAA0B,MAAM,OAAO;IAEhD,KAAK;AACH,aAAO,4BAA4B,MAAM,OAAO;IAElD,KAAK;AACH,aAAO,6BAA6B,MAAM,OAAO;IAEnD,KAAK;AACH,aAAO,wBAAwB,MAAM,OAAO;IAE9C,KAAK;AACH,aAAO,yBAAyB,MAAM,OAAO;IAQ/C,KAAK;AACH,aAAO,uBAAuB,MAAM,OAAO;IAE7C,KAAK;AACH,aAAO,uBAAuB,MAAM,OAAO;IAE7C,KAAK;AACH,aAAO,iBAAiB,MAAM,OAAO;IAQvC,KAAK;AACH,aAAO,yBAAyB,MAAM,OAAO;IAE/C,KAAK;AACH,aAAO,6BAA6B,MAAM,OAAO;IAEnD,KAAK;AACH,aAAO,qBAAqB,MAAM,OAAO;IAE3C,KAAK;AACH,aAAO,8BAA8B,MAAM,OAAO;IAIpD,KAAK;AACH,aAAO,KAAK;IAGd,KAAK;AACH,aAAO,yBAAyB,MAAM,OAAO;IAC/C,KAAK;AACH,aAAO,0BAA0B,MAAM,OAAO;IAChD,KAAK;AACH,aAAO,4BAA4B,MAAM,OAAO;IAClD,KAAK;AACH,aAAO,iCAAiC,MAAM,OAAO;IACvD,KAAK;AACH,aAAO,4BAA4B,MAAM,OAAO;IAClD,KAAK;AACH,aAAO,0BAA0B,MAAM,OAAO;IAChD,KAAK;AACH,aAAO,wBAAwB,MAAM,OAAO;IAE9C,SAAS;AACP,YAAM,cAAqB;AAC3B,YAAM,IAAI,MACR,sCAAsC,OAAQ,YAAmC,IAAI,CAAC,EAAE;IAE5F;;AAEJ;AAeO,eAAe,YAAY,MAAe,SAAyB;AACxE,MAAI,CAAC,MAAM;AACT,UAAM,IAAI,MAAM,4CAA4C;EAC9D;AAOA,MAAI,KAAK,SAAS,WAAW;AAC3B,WAAQ,KAAqB;EAC/B;AAGA,MAAI,KAAK,SAAS,cAAc;AAC9B,WAAO,mBAAmB,MAAwB,OAAO;EAC3D;AAEA,MAAI,mBAAmB,IAAI,KAAK,IAAI,GAAG;AACrC,WAAO,cAAc,MAAuB,OAAO;EACrD;AAKA,QAAM,kBAAkB,2BAA2B,KAAK,IAAI;AAC5D,MAAI,iBAAiB;AACnB,WAAO,gBAAgB,aAAa,IAAI,GAAG,OAAO;EACpD;AACA,QAAM,IAAI,MAAM,0BAA0B,KAAK,IAAI,EAAE;AACvD;AASO,eAAe,sBACpB,MACA,SAAyB;AAEzB,MAAI;AACF,UAAM,QAAQ,MAAM,YAAY,MAAM,OAAO;AAC7C,WAAO,GAAG,KAAK;EACjB,SAAS,GAAG;AACV,QAAI,aAAa,OAAO;AACtB,YAAM,QAAQ;AACd,UAAI,MAAM,QAAQ;AAChB,eAAO,IAAI,EAAE,MAAM,OAAM,CAAqB;MAChD;AACA,UAAI,MAAM,QAAQ;AAChB,eAAO,IAAI,EAAE,MAAM,QAAQ,aAAa,MAAM,YAAW,CAAqB;MAChF;AACA,UAAI,MAAM,SAAS;AACjB,eAAO,IAAI,EAAE,MAAM,QAAO,CAAqB;MACjD;AACA,UAAI,MAAM,YAAY;AACpB,eAAO,IAAI,EAAE,MAAM,WAAU,CAAqB;MACpD;AACA,UAAI,MAAM,UAAU;AAClB,eAAO,IAAI,EAAE,MAAM,UAAU,aAAa,MAAM,YAAW,CAAqB;MAClF;IACF;AACA,UAAM;EACR;AACF;AAgEM,SAAU,uBAAuB,MAAe,SAAyB;AAC7E,QAAM,OAAgB,MAAM;AAC5B,MAAI,OAAO,SAAS,YAAY,wBAAwB,IAAI,IAAI,GAAG;AACjE,WAAO,kBAAkB,MAA2B,OAAO;EAC7D;AACA,QAAM,IAAI,iBAAiB,OAAO,SAAS,WAAW,OAAO,SAAS;AACxE;AASA,SAAS,kBAAkB,MAAyB,SAAyB;AAC3E,UAAQ,KAAK,MAAI;IACf,KAAK;IACL,KAAK;AACH,aAAO,KAAK;IACd,KAAK;AACH,aAAO,qBAAqB,MAAM,OAAO;IAC3C,KAAK;AACH,aAAO,sBAAsB,KAAK,MAAM,SAAS,KAAK,KAAK;IAC7D,KAAK;AACH,aAAO,4BAA4B,KAAK,aAAa,OAAO;IAC9D,KAAK;AACH,aAAO,KAAK,SAAS,IAAI,QAAM,uBAAuB,IAAI,OAAO,CAAC;IACpE,KAAK;AACH,aAAO,0BAA0B,MAAM,OAAO;IAChD,KAAK,gBAAgB;AACnB,YAAM,QAAQ,uBAAuB,KAAK,YAAY,OAAO;AAC7D,aAAO,aAAa,OAAO,sBAAsB,KAAK,UAAU,GAAG,OAAO;IAC5E;IACA,KAAK;AACH,aAAO,GAAG,uBAAuB,KAAK,YAAY,OAAO,CAAC,GAAG,KAAK,IAAI;IACxE,KAAK;AACH,aAAO,wBAAwB,MAAM,OAAO;IAC9C,KAAK,oBAAoB;AAIvB,YAAM,MAAM,uBAAuB,KAAK,QAAQ,OAAO;AACvD,UAAI,OAAO;AAAM,eAAO;AACxB,UACE,eAAe,WACf,MAAM,QAAQ,GAAG,KAChB,OAAO,SAAS,eAAe,eAAe,MAC/C;AACA,cAAM,IAAI,iBAAiB,kBAAkB;MAC/C;AAKA,YAAM,OAAO,KAAK,WACd,OAAO,uBAAuB,KAAK,UAAU,OAAO,CAAC,IACnD,KAAK,SAA+B;AAC1C,YAAM,QAAS,IAAgC,IAAI;AACnD,aAAO,OAAO,UAAU,aACnB,MAAuC,KAAK,GAAG,IAChD;IACN;IACA,SAAS;AACP,YAAM,cAAqB;AAC3B,YAAM,IAAI,iBAAiB,OAAQ,YAAmC,QAAQ,SAAS,CAAC;IAC1F;;AAEJ;AAIA,SAAS,sBAAsB,MAAc,SAA2B,OAAc;AACpF,MAAI,SAAS,QAAQ,SAAS,QAAQ,SAAS;AAAK,WAAO,QAAQ;AACnE,MAAI,SAAS,SAAS,SAAS,UAAU,SAAS;AAAY,WAAO,QAAQ;AAC7E,MAAI,SAAS,QAAQ,SAAS;AAAO,WAAO,QAAQ,MAAM,QAAQ;AAElE,MAAI,SAAS;AAAU,WAAO,QAAQ,UAAU,QAAQ;AACxD,MAAI,SAAS;AAAU,WAAO,OAAO,WAAW,cAAc,SAAS;AACvE,MAAI,SAAS;AAAY,WAAO,OAAO,aAAa,cAAc,WAAW;AAE7E,MAAI,UAAU;AAAW,WAAO,cAAc,SAAS,IAAI;AAC3D,MAAI,QAAQ,QAAQ,IAAI,IAAI;AAAG,WAAO,QAAQ,OAAO,IAAI,IAAI;AAC7D,MAAI,QAAQ,SAAS,IAAI,IAAI;AAAG,WAAO,QAAQ,QAAQ,IAAI,IAAI;AAC/D,MAAI,KAAK,WAAW,GAAG,KAAK,QAAQ,SAAS,IAAI,KAAK,MAAM,CAAC,CAAC;AAC5D,WAAO,QAAQ,QAAQ,IAAI,KAAK,MAAM,CAAC,CAAC;AAG1C,MAAI,SAAS,UAAU,OAAO,aAAa;AAAa,WAAO,SAAS;AACxE,MAAI,SAAS;AAAU,WAAQ,QAA6C,OAAO,UAAU;AAC7F,MAAI,SAAS;AACX,WAAQ,QAA0D,OAAO,QAAQ,UAAU;AAC7F,MAAK,QAAgB,IAAI,MAAM;AAAW,WAAQ,QAAgB,IAAI;AACtE,MAAI,OAAO,eAAe,eAAe,QAAQ;AAC/C,WAAQ,WAAuC,IAAI;AACrD,SAAO;AACT;AAGA,SAAS,4BAA4B,aAAqB,SAAyB;AACjF,UAAQ,aAAW;IACjB,KAAK;AACH,aAAO,QAAQ;IACjB,KAAK;AACH,aAAO,QAAQ;IACjB,KAAK;AACH,aAAO,QAAQ,MAAM,QAAQ;IAC/B,KAAK;AACH,aAAQ,QAAgB;IAC1B,KAAK;AACH,aAAQ,QAAgB,UAAW,QAAgB,OAAO,UAAU,QAAQ;IAC9E;AACE,YAAM,IAAI,iBAAiB,kBAAkB;;AAEnD;AAGA,SAAS,0BACP,MACA,SAAyB;AAEzB,QAAM,SAAkC,CAAA;AACxC,aAAW,YAAY,KAAK,YAAY;AACtC,UAAM,UAAU,SAAS;AACzB,QAAI;AACJ,QAAI,QAAQ,SAAS,cAAc;AACjC,YAAM,QAAQ;IAChB,WAAW,QAAQ,SAAS,aAAa,QAAQ,cAAc,UAAU;AAIvE,YAAM,OAAO,QAAQ,KAAK;IAC5B,OAAO;AACL,YAAM,OAAO,uBAAuB,SAAS,OAAO,CAAC;IACvD;AACA,WAAO,GAAG,IAAI,uBAAuB,SAAS,OAAO,OAAO;EAC9D;AACA,SAAO;AACT;AAOA,SAAS,qBAAqB,MAAoB,SAAyB;AACzE,QAAM,MAAM,KAAK;AACjB,MAAI,OAAO,QAAQ;AAAU,UAAM,IAAI,iBAAiB,UAAU;AAElE,MAAI,CAAC,KAAK,aAAa,qBAAqB,KAAK,GAAG,GAAG;AACrD,UAAM,IAAI,iBAAiB,UAAU;EACvC;AAGA,MAAI,KAAK,aAAa,SAAS,KAAK,GAAG,GAAG;AACxC,UAAM,EAAE,UAAU,OAAO,UAAAgB,UAAQ,IAAK,gCAAgC,KAAK,OAAO;AAClF,UAAMC,WAAU,uBAAuB,MAAM,KAAK;AAClD,UAAMC,OACH,SAAS,IAA4C,kBACrD,OAAO,aAAa,cAAc,WAAW;AAChD,QAAI,CAACA;AAAK,YAAM,IAAI,iBAAiB,UAAU;AAC/C,IAAAF,UAAS,QAAQ,CAAC,IAAI,MAAM,GAAG,aAAa,oBAAoB,OAAO,CAAC,CAAC,CAAC;AAC1E,QAAI;AACF,aAAO,MAAM,KAAKE,KAAI,iBAAiBD,QAAO,CAAC;IACjD;AACE,MAAAD,UAAS,QAAQ,QAAM,GAAG,gBAAgB,kBAAkB,CAAC;IAC/D;EACF;AAEA,QAAM,WACJ,CAAC,KAAK,aAAa,IAAI,SAAS,GAAG,IAAI,gCAAgC,KAAK,OAAO,IAAI;AACzF,QAAM,UAAU,uBAAuB,MAAM,QAAQ;AACrD,QAAM,MACH,SAAS,IAA4C,kBACrD,OAAO,aAAa,cAAc,WAAW;AAChD,MAAI,CAAC;AAAK,UAAM,IAAI,iBAAiB,UAAU;AAC/C,QAAM,WAAW,MAAM,KAAK,IAAI,iBAAiB,OAAO,CAAC;AACzD,SAAO,sBAAsB,UAAU,UAAU,KAAK,SAAS;AACjE;AAOM,SAAU,iCACd,QACA,SAAyB;AAEzB,QAAM,SAAS,MAAM,MAAM;AAC3B,MAAI,CAAC,OAAO,WAAW,CAAC,OAAO,MAAM;AACnC,UAAMrB,OAAM,OAAO,SAAS,OAAO,SAAS,CAAC;AAC7C,UAAM,IAAI,MAAM,+BAA+BA,MAAK,WAAW,eAAe,EAAE;EAClF;AACA,SAAO,uBAAuB,OAAO,MAAiB,OAAO;AAC/D;AAEO,eAAe,6BACpB,QACA,SAAyB;AAEzB,QAAM,SAAS,MAAM,MAAM;AAC3B,MAAI,CAAC,OAAO,WAAW,CAAC,OAAO,MAAM;AACnC,UAAMA,OAAM,OAAO,SAAS,OAAO,SAAS,CAAC;AAC7C,UAAM,IAAI,MAAM,+BAA+BA,MAAK,WAAW,eAAe,EAAE;EAClF;AAOA,QAAM,MAAM,QAAQ,WAAW,UAAU,EAAE,GAAG,SAAS,UAAU,MAAM,iBAAgB,EAAE;AAGzF,SAAO,YAAY,OAAO,MAAiB,GAAG;AAChD;AAGA,eAAe,mBAAgB;AAG7B,MAAI,CAAC,oBAAoB;AACvB,UAAM,MAAM,MAAM,QAAA,QAAA,EAAA,KAAA,WAAA;AAAA,aAAA;IAAA,CAAA;AAClB,yBAAqB,IAAI,6BAA4B;EACvD;AACA,SAAO;AACT;AAKA,SAAS,gBAAgB,MAAiB;AACxC,SAAO,KAAK;AACd;AAMA,eAAe,mBAAmB,MAAsB,SAAyB;AAC/E,QAAM,OAAO,KAAK;AAalB,MAAI,KAAK,WAAW,GAAG,GAAG;AACxB,qBAAiB,KAAK,MAAM,CAAC,GAAG,OAAO;EACzC,WAAY,KAA4B,UAAU,UAAU;AAC1D,qBAAiB,MAAM,OAAO;EAChC;AAIA,MAAI,SAAS,QAAQ,SAAS,QAAQ,SAAS,KAAK;AAClD,WAAO,sBAAsB,GAAG,SAAS,OAAO;EAClD;AACA,MAAI,SAAS,SAAS,SAAS,UAAU,SAAS,YAAY;AAC5D,WAAO,sBAAsB,IAAI,SAAS,OAAO;EACnD;AACA,MAAI,SAAS,QAAQ,SAAS,OAAO;AACnC,WAAO,sBAAsB,GAAG,SAAS,OAAO;EAClD;AACA,MAAI,SAAS,UAAU;AACrB,WAAO,sBAAsB,OAAO,SAAS,OAAO;EACtD;AACA,MAAI,SAAS,UAAU;AACrB,WAAO,sBAAsB,OAAO,SAAS,OAAO;EACtD;AACA,MAAI,SAAS,YAAY;AACvB,WAAO,sBAAsB,SAAS,SAAS,OAAO;EACxD;AAQA,MAAK,KAA4B,UAAU,YAAY,QAAQ,SAAS,IAAI,IAAI,GAAG;AAEjF,WAAO,QAAQ,QAAQ,IAAI,IAAI;EACjC;AAIA,MAAK,KAA4B,UAAU,WAAW;AACpD,WAAO,cAAc,SAAS,IAAI;EACpC;AACA,MAAI,QAAQ,UAAU,QAAQ,OAAO,IAAI,IAAI,GAAG;AAC9C,oBAAgB,MAAM,OAAO;AAC7B,WAAO,QAAQ,OAAO,IAAI,IAAI;EAChC;AACA,MAAI,QAAQ,WAAW,QAAQ,QAAQ,IAAI,IAAI,GAAG;AAChD,WAAO,QAAQ,QAAQ,IAAI,IAAI;EACjC;AACA,MAAI,KAAK,WAAW,GAAG,KAAK,QAAQ,WAAW,QAAQ,QAAQ,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG;AAIjF,WAAO,QAAQ,QAAQ,IAAI,KAAK,MAAM,CAAC,CAAC;EAC1C;AAUA,MAAI,SAAS,UAAU,OAAO,aAAa,aAAa;AACtD,WAAO,SAAS;EAClB;AAUA,MAAI,SAAS,UAAU;AACrB,WAAQ,QAA6C,OAAO,UAAU;EACxE;AACA,MAAI,SAAS,UAAU;AACrB,WAAQ,QAA0D,OAAO,QAAQ,UAAU;EAC7F;AACA,MAAK,QAAgB,IAAI,MAAM,QAAW;AAExC,WAAQ,QAAgB,IAAI;EAC9B;AACA,MAAI,OAAO,eAAe,eAAe,QAAQ,YAAY;AAG3D,WAAQ,WAAuC,IAAI;EACrD;AACA,SAAO;AACT;AAOA,eAAe,yBACb,MACA,SAAyB;AAEzB,QAAM,WAAW,KAAK;AACtB,QAAM,YAAY,KAAK;AACvB,QAAM,WAAW,KAAK;AAMtB,MAAI,aAAa,KAAK;AACpB,UAAM,QAAQ,MAAM,YAAY,KAAK,OAAO,OAAO;AACnD,QAAI,UAAU,SAAS,gBAAgB,OAAO,SAAS,SAAS,UAAU;AACxE,YAAM,OAAe,SAAS;AAC9B,UAAI,KAAK,WAAW,GAAG,GAAG;AACxB,kBAAU,SAAS,KAAK,MAAM,CAAC,GAAG,KAAK;MACzC,WAAW,SAAS,UAAU,UAAU;AACtC,kBAAU,SAAS,MAAM,KAAK;MAChC,WAAW,SAAS,UAAU,WAAW;AACvC,sBAAc,SAAS,MAAM,KAAK;MACpC,OAAO;AACL,YAAI,CAAC,QAAQ;AAAS,kBAA8C,SAAS,oBAAI,IAAG;AACpF,gBAAQ,OAAQ,IAAI,MAAM,KAAK;MACjC;AACA,aAAO;IACT;AACA,UAAM,IAAI,MACR,yDAAyD,UAAU,QAAQ,WAAW,IAAI;EAE9F;AAGA,MAAI,aAAa,SAAS,aAAa,QAAQ;AAC7C,UAAMwB,QAAO,MAAM,YAAY,KAAK,MAAM,OAAO;AACjD,QACEA,iBAAgB,WAChB,UAAU,SAAS,cACnB,OAAO,UAAU,UAAU,YAC3B,UAAU,MAAM,WAAW,GAAG,GAC9B;AACA,aAAOA,MAAK,UAAU,SAAS,UAAU,MAAM,MAAM,CAAC,CAAC;IACzD;AACA,WAAO;EACT;AAQA,MAAI,aAAa,QAAQ,aAAa,SAAS;AAC7C,UAAM,UACJ,UAAU,SAAS,oBAAoB,SAAS,QAAQ,SAAS,eAC7D,SAAS,OAAO,OAChB;AACN,SAAK,YAAY,WAAW,YAAY,WAAW,MAAM,QAAQ,SAAS,SAAS,GAAG;AACpF,YAAM,YAAY,SAAS,UAAU,CAAC;AACtC,UAAI,WAAW,SAAS,cAAc,OAAO,UAAU,UAAU,UAAU;AACzE,cAAM,OAAO,MAAM,YAAY,KAAK,OAAO,OAAO;AAClD,YAAI,QAAQ,OAAQ,KAAa,qBAAqB,YAAY;AAChE,gBAAM,MAAM,MAAM,KAAM,KAAiB,iBAAiB,UAAU,KAAK,CAAC;AAC1E,cAAI,IAAI,WAAW;AAAG,mBAAO;AAC7B,iBAAO,YAAY,UAAU,IAAI,CAAC,IAAI,IAAI,IAAI,SAAS,CAAC;QAC1D;MACF;IACF;AASA,QACE,UAAU,SAAS,cACnB,OAAO,SAAS,UAAU,aACzB,SAAS,aAAc,aAAa,QAAQ,SAAS,MAAM,WAAW,GAAG,IAC1E;AACA,YAAM,OAAO,MAAM,YAAY,KAAK,OAAO,OAAO;AAClD,YAAM,QAAQ,QAAQ,OAAQ,KAAa,qBAAqB,aAAa,OAAO;AACpF,UAAI,OAAO;AACT,cAAM,QAAQ,SAAS,YACnB,SAAS,QACT,uBAAuB,UAAU,SAAS,KAAK;AACnD,eAAO,MAAM,KAAM,MAAkB,iBAAiB,KAAK,CAAC;MAC9D;IACF;EACF;AAKA,MACE,aAAa,QACb,UAAU,SAAS,cACnB,OAAO,SAAS,UAAU,YAC1B,qBAAqB,KAAK,SAAS,KAAK,GACxC;AACA,UAAM,KAAK,MAAM,YAAY,KAAK,OAAO,OAAO;AAChD,WAAO,QAAQ,SAAS,UAAU,EAAE,SAClC,SACA,SAAS,MAAM,MAAM,CAAC,GACtB,EAAiB;EAErB;AAQA,MAAI,aAAa,MAAM;AAIrB,QAAI,UAAU,SAAS,mBAAmB;AACxC,YAAM,SAAS,MAAM,YAAY,KAAK,OAAO,OAAO;AACpD,UAAI,UAAU;AAAM,eAAO;AAC3B,aAAO,QAAQ,SAAS,YAAY,EAAE,SAAS,SAAS,QAAQ,IAAI,SAAS,aAAa,EAAE;IAC9F;AACA,UAAM,OAAO,eAAe,KAAK,IAAI;AACrC,QAAI,MAAM;AACR,YAAM,SAAS,MAAM,YAAY,KAAK,OAAO,OAAO;AACpD,UAAI,MAAe;AACnB,iBAAW,OAAO,MAAM;AACtB,YAAI,OAAO;AAAM,iBAAO;AAIxB,YAAI,qBAAqB,GAAG,KAAK,EAAE,OAAQ,MAAiB;AAC1D,gBAAM,MAAM,QAAQ,SAAS,YAAY,EAAE,SAAS,SAAS,KAAK,GAAG;AACrE;QACF;AACA,cAAM,UAAU,GAAG,IAAIT,qBAAmB,KAAK,GAAG,IAAK,IAAY,GAAG;MACxE;AACA,aAAO,OAAO,QAAQ,aAAc,IAAY,KAAK,MAAM,IAAI;IACjE;EACF;AAEA,QAAM,OAAO,MAAM,YAAY,KAAK,MAAM,OAAO;AAOjD,MAAI,aAAa,OAAO;AACtB,QAAI,CAAC;AAAM,aAAO;AAClB,UAAMU,SAAQ,MAAM,YAAY,KAAK,OAAO,OAAO;AACnD,WAAO,QAAQ,SAAS,KAAK,EAAE,SAAS,SAAS,MAAMA,MAAK;EAC9D;AAEA,MAAI,aAAa,MAAM;AACrB,QAAI;AAAM,aAAO;AACjB,UAAMA,SAAQ,MAAM,YAAY,KAAK,OAAO,OAAO;AACnD,WAAO,QAAQ,SAAS,IAAI,EAAE,SAAS,SAAS,MAAMA,MAAK;EAC7D;AAGA,QAAM,QAAQ,MAAM,YAAY,KAAK,OAAO,OAAO;AAInD,QAAM,UAAU,CAACpB,OAAyB,OAAOA,OAAM,WAAWA,GAAE,YAAW,IAAKA;AACpF,QAAM,IAAI,KAAK,eAAe,QAAQ,IAAI,IAAI;AAC9C,QAAM,IAAI,KAAK,eAAe,QAAQ,KAAK,IAAI;AAG/C,UAAQ,UAAQ;IACd,KAAK,KAAK;AASR,UAAK,KAAqC,eAAe;AACvD,eAAO,aAAa,IAAI,IAAI,cAAc,KAAK;MACjD;AAEA,UAAI,OAAO,SAAS,YAAY,OAAO,UAAU,UAAU;AACzD,eAAO,OAAO,QAAQ,EAAE,IAAI,OAAO,SAAS,EAAE;MAChD;AAKA,UAAI,MAAM,QAAQ,IAAI,GAAG;AACvB,eAAO,MAAM,QAAQ,KAAK,IAAI,CAAC,GAAG,MAAM,GAAG,KAAK,IAAI,CAAC,GAAG,MAAM,KAAK;MACrE;AACA,aAAO,kBACL,MAAM,QAAQ,SAAS,UAAU,EAAE,SAAS,SAAgB,EAAE,MAAM,MAAK,CAAE,CAAC;IAEhF;IACA,KAAK;AAEH,UAAK,KAAqC,eAAe;AACvD,eAAO,aAAa,IAAI,IAAI,cAAc,KAAK;MACjD;AACA,aAAO,kBACL,MAAM,QAAQ,SAAS,aAAa,EAAE,SAAS,SAAgB,EAAE,MAAM,MAAK,CAAE,CAAC;IAEnF,KAAK;AACH,aAAO,kBACL,MAAM,QAAQ,SAAS,gBAAgB,EAAE,SAAS,SAAgB,EAAE,MAAM,MAAK,CAAE,CAAC;IAEtF,KAAK;AACH,aAAO,kBACL,MAAM,QAAQ,SAAS,UAAU,EAAE,SAAS,SAAgB,EAAE,MAAM,MAAK,CAAE,CAAC;IAEhF,KAAK;IACL,KAAK;AACH,aAAO,kBACL,MAAM,QAAQ,SAAS,QAAQ,EAAE,SAAS,SAAgB,EAAE,MAAM,MAAK,CAAE,CAAC;IAE9E,KAAK;IACL,KAAK;AACH,aAAO,kBACL,MAAM,QAAQ,SAAS,OAAO,EAAE,SAAS,SAAgB,EAAE,MAAM,MAAK,CAAE,CAAC;IAG7E,KAAK;IACL,KAAK;AACH,aAAO,QAAQ,SAAS,aAAa,EAAE,SAAS,SAAS,MAAM,KAAK;IACtE,KAAK;IACL,KAAK;AACH,aAAO,QAAQ,SAAS,UAAU,EAAE,SAAS,SAAS,MAAM,KAAK;IACnE,KAAK;IACL,KAAK;AACH,aAAO,QAAQ,SAAS,oBAAoB,EAAE,SAAS,SAAS,MAAM,KAAK;IAC7E,KAAK;IACL,KAAK;AACH,aAAO,QAAQ,SAAS,iBAAiB,EAAE,SAAS,SAAS,MAAM,KAAK;IAC1E,KAAK;AACH,aAAO,QAAQ,SAAS,QAAQ,EAAE,SAAS,SAAS,GAAG,CAAC;IAC1D,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK,eAAe;AAIlB,YAAM,KAAK,wBAAwB,MAAM,MAAM,KAAK;AACpD,aAAO,OAAO,SAAY,KAAK,QAAQ,SAAS,QAAQ,EAAE,SAAS,SAAS,GAAG,CAAC;IAClF;IACA,KAAK;AACH,aAAO,QAAQ,SAAS,WAAW,EAAE,SAAS,SAAS,GAAG,CAAC;IAC7D,KAAK;IACL,KAAK;IACL,KAAK,mBAAmB;AACtB,YAAM,KAAK,wBAAwB,MAAM,MAAM,KAAK;AACpD,aAAO,OAAO,SAAY,CAAC,KAAK,QAAQ,SAAS,WAAW,EAAE,SAAS,SAAS,GAAG,CAAC;IACtF;IACA,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;AACH,aAAO,QAAQ,SAAS,cAAc,EAAE,SAAS,SAAS,GAAG,CAAC;IAChE,KAAK;IACL,KAAK;IACL,KAAK;AACH,aAAO,QAAQ,SAAS,iBAAiB,EAAE,SAAS,SAAS,GAAG,CAAC;IAEnE,KAAK;AAEH,aAAO,QAAQ,SAAS,IAAI,EAAE,SAAS,SAAS,MAAM,sBAAsB,KAAK,CAAC;IAEpF,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;AACH,aAAO,QAAQ,SAAS,UAAU,EAAE,SAAS,SAAS,GAAG,CAAC;IAE5D,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;AACH,aAAO,QAAQ,SAAS,gBAAgB,EAAE,SAAS,SAAS,GAAG,CAAC;IAElE,KAAK;AACH,aAAO,QAAQ,SAAS,YAAY,EAAE,SAAS,SAAS,GAAG,CAAC;IAE9D,KAAK;AACH,aAAO,QAAQ,SAAS,UAAU,EAAE,SAAS,SAAS,GAAG,CAAC;IAE5D,KAAK,uBAAuB;AAC1B,YAAM,IAAI,MAAM,QAAQ,SAAS,YAAY,EAAE,SAAS,SAAS,GAAG,CAAC;AACrE,aAAO,CAAC;IACV;IAEA,KAAK,qBAAqB;AACxB,YAAM,IAAI,MAAM,QAAQ,SAAS,UAAU,EAAE,SAAS,SAAS,GAAG,CAAC;AACnE,aAAO,CAAC;IACV;IAEA,KAAK;IACL,KAAK;AACH,aAAO,QAAQ,SAAS,SAAS,EAAE,SAAS,SAAS,GAAG,cAAc,KAAK,OAAO,CAAC,CAAC;IAEtF,KAAK;IACL,KAAK,gBAAgB;AACnB,YAAM,IAAI,MAAM,QAAQ,SAAS,SAAS,EAAE,SAC1C,SACA,GACA,cAAc,KAAK,OAAO,CAAC,CAAC;AAE9B,aAAO,CAAC;IACV;IAEA,KAAK;IACL,KAAK;IACL,KAAK;AACH,aAAO,KAAK,MAAM,KAAK;IAEzB,KAAK;IACL,KAAK;AACH,aAAO,CAAC,KAAK,MAAM,KAAK;IAE1B,KAAK;AAEH,aAAO,SAAS,OAAO,UAAU,WAAW,MAAM,IAAI,IAAI;IAI5D,KAAK;AACH,aAAO,cAAc,MAAM,OAAO,KAAK,2BAA2B;IACpE,KAAK;AACH,aAAO,CAAC,cAAc,MAAM,OAAO,KAAK,2BAA2B;IACrE,KAAK;AACH,aAAO,cAAc,MAAM,OAAO,KAAK,2BAA2B;IACpE,KAAK;AACH,aAAO,CAAC,cAAc,MAAM,OAAO,KAAK,2BAA2B;IAErE;AACE,YAAM,IAAI,MAAM,4BAA4B,QAAQ,EAAE;;AAE5D;AAQA,SAAS,eAAe,MAAa;AACnC,QAAM,IAAI;AAOV,MAAI,CAAC;AAAG,WAAO;AACf,MAAI,EAAE,SAAS,gBAAgB,OAAO,EAAE,SAAS;AAAU,WAAO,CAAC,EAAE,IAAI;AACzE,MAAI,EAAE,SAAS,sBAAsB,CAAC,EAAE,UAAU;AAChD,UAAM,UAAU,eAAe,EAAE,MAAM;AACvC,QAAI,CAAC;AAAS,aAAO;AACrB,UAAM,OAAO,EAAE;AACf,UAAM,WACJ,MAAM,SAAS,gBAAgB,OAAO,KAAK,SAAS,WAChD,KAAK,OACL,OAAO,MAAM,UAAU,WACrB,KAAK,QACL;AACR,QAAI,YAAY;AAAM,aAAO;AAC7B,WAAO,CAAC,GAAG,SAAS,QAAQ;EAC9B;AACA,SAAO;AACT;AAMA,SAAS,KAAK,MAAe,WAAkB;AAC7C,MAAI,MAAM,QAAQ,SAAS;AAAG,WAAO,UAAU,SAAS,IAAI;AAC5D,MAAI,OAAO,cAAc;AAAU,WAAO,UAAU,SAAS,OAAO,IAAI,CAAC;AAGzE,MAAI,gBAAgB,QAAQ,qBAAqB,MAAM;AACrD,WAAO,SAAS,aAAa,UAAU,SAAS,IAAI;EACtD;AACA,SAAO,aAAa,QAAQ,OAAO,cAAc,YAAa,QAAiB;AACjF;AAQA,SAAS,cAAc,WAAoB,WAAkB;AAC3D,QAAM,IAAI;AACV,MAAI,KAAK,EAAE,SAAS,cAAc,OAAO,EAAE,UAAU;AAAU,WAAO,EAAE;AACxE,SAAO;AACT;AASA,SAAS,wBACP,MACA,MACA,OAAc;AAEd,MAAI,UAAU;AAAW,WAAO;AAChC,QAAM,KAAK,KAAK;AAChB,MAAI,CAAC,MAAM,GAAG,SAAS,gBAAgB,OAAO,GAAG,SAAS;AAAU,WAAO;AAC3E,MAAI,QAAQ,QAAQ,OAAO,SAAS;AAAU,WAAO;AACrD,QAAM,OAAQ,KAAiC,GAAG,IAAI;AACtD,SAAO,OAAO,SAAS,YAAY,SAAS,OAAO;AACrD;AAMA,SAAS,cAAc,GAAY,GAAY,MAAY;AACzD,SAAO,aAAa,QAAQ,aAAa,SAAS,EAAE,wBAAwB,CAAC,IAAI,UAAU;AAC7F;AAQA,SAAS,sBAAsB,QAAe;AAC5C,MAAI,OAAO,WAAW;AAAU,WAAO;AACvC,MAAI,UAAU,OAAO,WAAW,UAAU;AACxC,UAAM,IAAI;AACV,QAAI,OAAO,EAAE,SAAS;AAAU,aAAO,EAAE;AACzC,QAAI,OAAO,EAAE,UAAU;AAAU,aAAO,EAAE;EAC5C;AACA,SAAO,OAAO,MAAM;AACtB;AAMA,eAAe,yBACb,MACA,SAAyB;AAEzB,QAAM,QAAQ,MAAM,YAAY,KAAK,YAAY,OAAO;AACxD,QAAM,WAAW,sBAAsB,KAAK,UAAU;AACtD,SAAO,QAAQ,SAAS,IAAI,EAAE,SAAS,SAAS,OAAO,QAAQ;AACjE;AAKA,eAAe,0BACb,MACA,SAAyB;AAEzB,QAAM,QAAQ,MAAM,YAAY,KAAK,OAAO,OAAO;AACnD,QAAM,MAAM,MAAM,YAAY,KAAK,KAAK,OAAO;AAC/C,QAAM,MAAM,MAAM,YAAY,KAAK,KAAK,OAAO;AAE/C,QAAM,KAAK,CAACA,OAAyB,OAAOA,OAAM,WAAWA,GAAE,YAAW,IAAKA;AAC/E,QAAM,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,eAAe,CAAC,GAAG,KAAK,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,GAAG;AACxF,QAAM,UAAW,MAAM,mBAAmB,QAAQ,SAAS,SAAS,GAAG,IAAI,EAAE;AAC7E,SAAO,KAAK,UAAU,CAAC,UAAU;AACnC;AAUA,eAAe,4BACb,MACA,SAAyB;AAEzB,QAAM,QAAQ,MAAM,YAAY,KAAK,OAAO,OAAO;AACnD,QAAM,WAAW,OAAO,KAAK,QAAQ;AACrC,QAAM,SAAS,KAAK,WAAW;AAE/B,QAAM,UAAU,UAAU,OAAO,UAAU,MAAM;AACjD,SAAO,KAAK,UAAU,CAAC,UAAU;AACnC;AAEA,SAAS,UAAU,OAAgB,UAAkB,QAAe;AAIlE,MAAI,SAAS,QAAQ;AAAQ,WAAO;AACpC,QAAM,MAAM,OAAO,UAAU,SAAS,KAAK,KAAK,EAAE,MAAM,GAAG,EAAE;AAC7D,MAAI,QAAQ;AAAU,WAAO;AAC7B,QAAM,OAAQ,WAAmB,QAAQ;AACzC,SAAO,OAAO,SAAS,cAAc,iBAAiB;AACxD;AAQA,eAAe,yBACb,MACA,SAAyB;AAEzB,QAAM,WAAsB,CAAA;AAC5B,aAAW,MAAM,KAAK,UAAU;AAC9B,aAAS,KAAK,MAAM,YAAY,IAAI,OAAO,CAAC;EAC9C;AACA,SAAO;AACT;AAGA,eAAe,0BACb,MACA,SAAyB;AAEzB,QAAM,SAAkC,CAAA;AACxC,aAAW,YAAY,KAAK,YAAY;AACtC,UAAM,UAAU,SAAS;AACzB,QAAI;AACJ,QAAI,QAAQ,SAAS,cAAc;AACjC,YAAM,QAAQ;IAChB,WAAW,QAAQ,SAAS,aAAa,QAAQ,cAAc,UAAU;AACvE,YAAM,QAAQ;IAChB,OAAO;AACL,YAAM,OAAO,MAAM,YAAY,SAAS,OAAO,CAAC;IAClD;AACA,WAAO,GAAG,IAAI,MAAM,YAAY,SAAS,OAAO,OAAO;EACzD;AACA,SAAO;AACT;AAUA,SAAS,wBACP,MACA,SAAyB;AAEzB,QAAM,SAAS,KAAK,cAAc,CAAA;AAClC,SAAO,IAAI,SAAmB;AAC5B,UAAM,SAAS,IAAI,IAAI,QAAQ,UAAU,oBAAI,IAAG,CAAE;AAClD,WAAO,QAAQ,CAAC,MAAM,MAAM,OAAO,IAAI,MAAM,KAAK,CAAC,CAAC,CAAC;AACrD,UAAM,eAAe,EAAE,GAAG,SAAS,OAAM;AACzC,QAAI;AACF,aAAO,uBAAuB,KAAK,MAAM,YAAY;IACvD,SAAS,GAAG;AACV,UAAI,aAAa,kBAAkB;AACjC,eAAO,YAAY,KAAK,MAAM,YAAY;MAC5C;AACA,YAAM;IACR;EACF;AACF;AAMA,eAAe,0BACb,MACA,SAAyB;AAEzB,QAAM,QAAQ,MAAM,YAAY,KAAK,YAAY,OAAO;AACxD,SAAO,GAAG,KAAK,GAAG,KAAK,IAAI;AAC7B;AAEA,eAAe,4BACb,MACA,SAAyB;AAEzB,QAAM,gBAAgB,KAAK;AAC3B,MAAI,QAAQ,MAAM,QAAQ,cAAc,SAAS;AAC/C,WAAO,QAAQ,GAAG,aAAa,aAAa;EAC9C;AACA,SAAO,IAAI,aAAa;AAC1B;AAOA,eAAe,iCACb,MACA,SAAyB;AAEzB,QAAMqB,gBAAe,KAAK;AAC1B,MAAIA,eAAc,SAAS,cAAc;AACvC,UAAM,IAAI,MAAM,6DAA6D;EAC/E;AACA,QAAM,eAAuBA,cAAa;AAM1C,QAAM,SAAS,MAAM,YAAY,KAAK,QAAQ,OAAO;AACrD,MAAI,UAAU;AAAM,WAAO;AAO3B,SAAO,QAAQ,SAAS,YAAY,EAAE,SAAS,SAAS,QAAQ,YAAY;AAC9E;AAOA,eAAe,4BACb,MACA,SAAyB;AAEzB,MAAI,WAAmB,KAAK;AAG5B,aAAW,MAAM,aACf,UACA,sCACA,OAAO,QAAQ,YAAW;AACxB,QAAI;AACF,UAAI,QAAQ,KAAK,OAAO;AAAG,eAAO;AAClC,UAAI,QAAQ,SAAS,GAAG,GAAG;AACzB,cAAM,QAAQ,QAAQ,MAAM,GAAG;AAC/B,YAAIC,SAAa,wBAAwB,MAAM,CAAC,GAAG,OAAO;AAC1D,iBAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACrC,cAAIA,UAAS;AAAM;AACnB,UAAAA,SAAQA,OAAM,MAAM,CAAC,CAAC;QACxB;AACA,eAAO,OAAOA,UAAS,EAAE;MAC3B;AACA,YAAM,QAAQ,wBAAwB,SAAS,OAAO;AACtD,aAAO,OAAO,SAAS,EAAE;IAC3B,QAAQ;AACN,aAAO;IACT;EACF,CAAC;AAIH,aAAW,MAAM,aACf,UACA,kCACA,OAAO,QAAQ,WAAW,cAAa;AACrC,UAAM,OAAO,aAAa;AAC1B,QAAI;AACF,YAAM,SAAS,MAAM,6BAA6B,MAAM,OAAO;AAC/D,aAAO,OAAO,MAAM;IACtB,QAAQ;AACN,aAAO;IACT;EACF,CAAC;AAGH,SAAO;AACT;AAGA,SAAS,wBAAwB,SAAiB,SAAyB;AACzE,MAAI,QAAQ,QAAQ,IAAI,OAAO,GAAG;AAChC,oBAAgB,SAAS,OAAO;AAChC,WAAO,QAAQ,OAAO,IAAI,OAAO;EACnC;AACA,MAAI,YAAY,QAAQ,QAAQ;AAAI,WAAO,QAAQ;AACnD,MAAI,YAAY,SAAS,QAAQ;AAAK,WAAO,QAAQ;AAQrD,MAAI,YAAY,MAAM;AACpB,UAAMtB,KAAI,QAAQ,MAAM,QAAQ;AAChC,QAAIA;AAAG,aAAOA;EAChB;AACA,MAAI,YAAY,UAAU;AACxB,UAAMA,KAAI,QAAQ,UAAU,QAAQ;AACpC,QAAIA;AAAG,aAAOA;EAChB;AACA,MAAI,OAAO,WAAW,eAAe,YAAY;AAAU,WAAO;AAClE,MAAI,QAAQ,SAAS,IAAI,OAAO;AAAG,WAAO,QAAQ,QAAQ,IAAI,OAAO;AACrE,SAAO;AACT;AAGA,eAAe,aACb,KACA,OACA,UAA4D;AAE5D,QAAM,UAAyE,CAAA;AAC/E,MAAI;AACJ,UAAQ,IAAI,MAAM,KAAK,GAAG,OAAO,MAAM;AACrC,YAAQ,KAAK;MACX,OAAO,EAAE;MACT,QAAQ,EAAE,CAAC,EAAE;MACb,aAAa,MAAM,SAAS,EAAE,CAAC,GAAG,GAAG,EAAE,MAAM,CAAC,CAAC;IAChD,CAAA;EACH;AACA,MAAI,SAAS;AACb,WAAS,IAAI,QAAQ,SAAS,GAAG,KAAK,GAAG,KAAK;AAC5C,UAAM,EAAE,OAAAW,QAAO,QAAQ,YAAW,IAAK,QAAQ,CAAC;AAChD,aAAS,OAAO,UAAU,GAAGA,MAAK,IAAI,cAAc,OAAO,UAAUA,SAAQ,MAAM;EACrF;AACA,SAAO;AACT;AAWA,eAAe,6BACb,MACA,SAAyB;AAEzB,QAAM,aAAa,MAAM,YAAY,KAAK,YAAY,OAAO;AAM7D,MAAI,cAAc,MAAM;AACtB,WAAO;EACT;AAGA,QAAM,aAAa,OAAO,SAAkB,OAAiC;AAC3E,UAAM,iBAAiB,EAAE,GAAG,SAAS,GAAE;AACvC,WAAO,YAAY,SAAS,cAAc;EAC5C;AAEA,UAAQ,KAAK,UAAQ;IACnB,KAAK;AACH,aAAO,cAAc,YAAY,KAAK,OAAO,UAAU;IAEzD,KAAK;AACH,aAAO,iBAAiB,YAAY,KAAK,OAAO,KAAK,SAAS,OAAO,UAAU;IAEjF,KAAK;AACH,aAAO,iBAAiB,YAAY,KAAK,OAAO,UAAU;IAE5D,KAAK,YAAY;AACf,YAAM,MAAM,MAAM,YAAY,KAAK,OAAO,OAAO;AACjD,aAAO,gBAAgB,YAAY,GAAG;IACxC;IAEA,KAAK,aAAa;AAChB,YAAM,MAAM,MAAM,YAAY,KAAK,OAAO,OAAO;AACjD,aAAO,iBAAiB,YAAY,GAAG;IACzC;IAEA;AACE,YAAM,IAAI,MAAM,gCAAgC,KAAK,QAAQ,EAAE;;AAErE;AAaA,eAAe,wBACb,MACA,SAAyB;AAEzB,QAAM,cAAc,KAAK,WAAW,KAAK;AACzC,MAAI,CAAC,aAAa;AAChB,UAAM,IAAI,MAAM,8CAA8C,KAAK,QAAQ,GAAG;EAChF;AACA,QAAM,QAAQ,MAAM,YAAY,aAAa,OAAO;AAEpD,UAAQ,KAAK,UAAQ;IACnB,KAAK;IACL,KAAK;AACH,aAAO,mBAAmB,IAAI,SAAS,SAAS,KAAK;IAEvD,KAAK;AAEH,iBAAW,QAAQ,IAAI,CAAC,KAAK,CAAC;AAC9B,aAAO;IAET,KAAK;AACH,aAAO,mBAAmB,GAAG,SAAS,SAAS,KAAK;IAEtD,KAAK;AACH,aAAO,CAAC;IAEV,KAAK;AACH,aAAO,CAAC;IAEV,KAAK;IACL,KAAK;AAEH,aAAO,mBAAmB,OAAO,SAAS,SAAS,KAAK;IAE1D,KAAK;AACH,aAAO,mBAAmB,aAAa,SAAS,SAAS,KAAK;IAEhE,KAAK;AACH,aAAO,mBAAmB,QAAQ,SAAS,SAAS,KAAK;IAE3D,KAAK;AACH,aAAO,mBAAmB,WAAW,SAAS,SAAS,KAAK;IAE9D;AACE,YAAM,IAAI,MAAM,2BAA2B,KAAK,QAAQ,EAAE;;AAEhE;AAiBA,eAAe,yBACb,MACA,SAAyB;AAEzB,QAAM,SAAS,MAAM,YAAY,KAAK,QAAQ,OAAO;AAErD,MAAI,KAAK,UAAU;AAEjB,UAAM,WAAW,MAAM,YAAY,KAAK,UAAU,OAAO;AAGzD,QAAI,MAAM,QAAQ,MAAM,KAAK,OAAO,aAAa,YAAY,WAAW,GAAG;AACzE,aAAO,OAAO,OAAO,SAAS,QAAQ;IACxC;AACA,WAAO,SAAS,QAAQ;EAC1B,OAAO;AAKL,UAAM,OAAQ,KAAK,SAA+B;AAClD,WAAO,qBAAqB,QAAQ,MAAM,OAAO;EACnD;AACF;AAUA,SAAS,qBAAqB,QAAa,cAAsB,SAAyB;AAExF,MAAI,OAAO,iBAAiB,YAAY,aAAa,WAAW,GAAG,GAAG;AACpE,UAAM,WAAW,aAAa,UAAU,CAAC;AACzC,QAAI,UAAU,OAAO,OAAO,iBAAiB,YAAY;AACvD,aAAO,OAAO,aAAa,QAAQ;IACrC;AACA,WAAO;EACT;AAMA,MAAI,kBAAkB,WAAW,OAAO,iBAAiB,UAAU;AACjE,WAAOD,qBAAmB,QAAQ,YAAY;EAChD;AAOA,MAAI,qBAAqB,MAAM,KAAK,EAAE,gBAAiB,SAAoB;AACzE,WAAO,QAAQ,SAAS,YAAY,EAAE,SAAS,SAAS,QAAQ,YAAY;EAC9E;AAEA,SAAO,SAAS,YAAY;AAC9B;AAWA,eAAe,uBACb,MACA,SAAyB;AAEzB,MAAI,SAAS,MAAM,YAAY,KAAK,QAAQ,OAAO;AASnD,aAAW,WAAW,OAAO,KAAK,QAAQ,EAAE,MAAM,GAAG,GAAG;AACtD,QAAI,UAAU;AAAM,aAAO;AAC3B,aAAS,MAAM,qBAAqB,QAAQ,SAAS,OAAO;EAC9D;AACA,SAAO;AACT;AASA,eAAe,gBACb,UACA,UACA,SAAyB;AAEzB,MAAI,CAAC,iBAAiB,IAAI,QAAQ,GAAG;AACnC,WAAO,QAAQ,IAAI,SAAS,IAAI,SAAO,YAAY,KAAK,OAAO,CAAC,CAAC;EACnE;AACA,SAAO,QAAQ,IACb,SAAS,IAAI,SAAM;AACjB,QAAI,IAAI,SAAS,gBAAiB,IAAY;AAAM,aAAQ,IAAY;AACxE,QAAI,IAAI,SAAS,cAAe,IAAY;AAAO,aAAQ,IAAY;AACvE,WAAO,YAAY,KAAK,OAAO;EACjC,CAAC,CAAC;AAEN;AAkBA,SAAS,cAAc,OAAc;AACnC,MAAI,iBAAiB;AAAS,WAAO;AACrC,MAAI,MAAM,QAAQ,KAAK;AAAG,WAAO,MAAM,CAAC,aAAa,UAAU,MAAM,CAAC,IAAI;AAC1E,SAAO;AACT;AAEA,eAAe,uBACb,MACA,SAAyB;AAEzB,QAAM,SAAS,MAAM,YAAY,KAAK,QAAQ,OAAO;AAKrD,MAAI,KAAK,iBAAiB,OAAO,WAAW,YAAY;AACtD,UAAM,gBAAgB,MAAM,QAAQ,IAAI,KAAK,UAAU,IAAI,SAAO,YAAY,KAAK,OAAO,CAAC,CAAC;AAC5F,WAAO,IAAK,OAA+C,GAAG,aAAa;EAC7E;AAIA,MAAI,KAAK,OAAO,SAAS,cAAc;AACrC,UAAM,WAAW,KAAK,OAAO;AAC7B,UAAM,OAAO,MAAM,gBAAgB,KAAK,WAAW,UAAU,OAAO;AAEpE,YAAQ,UAAQ;MACd,KAAK;AAEH,YAAI,KAAK,WAAW;AAClB,gBAAM,QAAQ,cAAc,MAAM,YAAY,KAAK,WAAW,OAAO,CAAC,KAAK;AAC3E,iBAAO,sBAAsB,QAAQ,SAAS,SAAS,KAAK,CAAC,GAAG,KAAK;QACvE;AACA,eAAO,sBAAsB,QAAQ,SAAS,SAAS,GAAG,IAAI;MAChE,KAAK;MACL,KAAK,QAAQ;AAKX,cAAM,SAAU,KACb;AACH,YAAI,QAAQ;AACV,gBAAM,OAAO,OAAO,OAChB,cAAc,MAAM,YAAY,OAAO,MAAM,OAAO,CAAC,IACpD,QAAQ;AACb,gBAAM,SAAS,OAAO,SAClB,cAAc,MAAM,YAAY,OAAO,QAAQ,OAAO,CAAC,IACvD;AACJ,gBAAM,QAAQ,OAAO,QAAQ,MAAM,YAAY,OAAO,OAAO,OAAO,IAAI;AACxE,iBAAO,QAAQ,SAAS,QAAQ,EAAE,SAAS,SAAS,KAAK,CAAC,GAAG,MAAM;YACjE;YACA;YACA,UAAU,OAAO;YACjB,UAAU,OAAO;UAClB,CAAA;QACH;AACA,eAAO,QAAQ,SAAS,QAAQ,EAAE,SAAS,SAAS,GAAG,IAAI;MAC7D;MACA,KAAK;AACH,eAAO,QAAQ,SAAS,OAAO,EAAE,SAAS,SAAS,GAAG,IAAI;MAC5D,KAAK;AACH,eAAO,QAAQ,SAAS,MAAM,EAAE,SAAS,SAAS,GAAG,IAAI;MAC3D;AACE,YAAI,OAAO,WAAW,YAAY;AAChC,iBAAO,OAAO,GAAG,IAAI;QACvB;AACA,cAAM,IAAI,MAAM,6BAA6B,QAAQ,EAAE;;EAE7D;AAKA,MAAI,OAAO,WAAW,YAAY;AAChC,UAAM,gBAAgB,MAAM,QAAQ,IAAI,KAAK,UAAU,IAAI,SAAO,YAAY,KAAK,OAAO,CAAC,CAAC;AAC5F,QAAI,KAAK,OAAO,SAAS,sBAAsB,KAAK,OAAO,QAAQ;AACjE,YAAM,UAAU,MAAM,YAAY,KAAK,OAAO,QAAQ,OAAO;AAC7D,aAAO,OAAO,MAAM,SAAS,aAAa;IAC5C;AACA,WAAO,OAAO,GAAG,aAAa;EAChC;AAEA,QAAM,IAAI,MAAM,0BAA0B;AAC5C;AAmBA,eAAe,iBAAiB,MAAoB,SAAyB;AAC3E,MAAI,WAAW,KAAK;AAMpB,MAAI,OAAO,aAAa,YAAY,CAAC,KAAK,aAAa,qBAAqB,KAAK,QAAQ,GAAG;AAC1F,WAAO,sBAAsB,SAAS,SAAS,SAAS,SAAS,MAAM,CAAC,CAAC;EAC3E;AAKA,MAAI,OAAO,aAAa,YAAY,KAAK,aAAa,SAAS,KAAK,QAAQ,GAAG;AAC7E,UAAM,EAAE,UAAU,OAAO,SAAQ,IAAK,MAAM,4BAA4B,UAAU,OAAO;AACzF,UAAMO,WAAU,uBAAuB,MAAM,KAAK;AAClD,aAAS,QAAQ,CAAC,IAAI,MAAM,GAAG,aAAa,oBAAoB,OAAO,CAAC,CAAC,CAAC;AAC1E,QAAI;AAIF,aAAO,MAAM,sBAAsB,oBAAoB,SAAS,SAASA,QAAO;IAClF;AACE,eAAS,QAAQ,QAAM,GAAG,gBAAgB,kBAAkB,CAAC;IAC/D;EACF;AAGA,MAAI,OAAO,aAAa,YAAY,CAAC,KAAK,aAAa,SAAS,SAAS,GAAG,GAAG;AAC7E,eAAW,MAAM,4BAA4B,UAAU,OAAO;EAChE;AAEA,QAAM,UAAU,OAAO,aAAa,WAAW,uBAAuB,MAAM,QAAQ,IAAI;AACxF,QAAM,SAAS,MAAM,sBAAsB,oBAAoB,SAAS,SAAS,OAAO;AAExF,SAAO,sBAAsB,QAAQ,UAAU,KAAK,SAAS;AAC/D;AASA,eAAe,yBACb,MACA,SAAyB;AAEzB,UAAQ,KAAK,aAAW;IACtB,KAAK;IACL,KAAK;IACL,KAAK;AACH,aAAO,QAAQ,SAAS,KAAK,WAAW,EAAE,SAAS,OAAO;IAK5D,KAAK;IACL,KAAK;IACL,KAAK;AACH,aAAO,sBAAsB,GAAG,SAAS,OAAO;IAClD,KAAK;IACL,KAAK;AACH,aAAO,sBAAsB,IAAI,SAAS,OAAO;IACnD,KAAK;AACH,aAAO,sBAAsB,GAAG,SAAS,OAAO;IAClD,KAAK;AACH,aAAQ,QAAgB;IAC1B,KAAK;AACH,aACG,QAAgB,UAChB,QAAgB,OAAO,UACxB,sBAAsB,GAAG,SAAS,OAAO;IAM7C,KAAK;AACH,aAAO,OAAO,aAAa,cAAc,SAAS,OAAO;IAC3D,KAAK;AACH,aAAO,sBAAsB,SAAS,SAAS,OAAO;IACxD,KAAK;AACH,aAAO,sBAAsB,OAAO,SAAS,OAAO;IACtD;AACE,aAAO;;AAEb;AAmBA,SAAS,kBAAkB,UAAgB;AACzC,SAAO,SAAS,QAAQ,uBAAuB,OAAO;AACxD;AAcA,SAAS,sBAAsB,UAAgB;AAC7C,QAAMvB,UAAS,SAAS,CAAC;AACzB,SAAOA,UAAS,SAAS,MAAM,CAAC,EAAE,QAAQ,oBAAoB,MAAM;AACtE;AASA,SAAS,uBAAuB,MAAoB,UAAgB;AAClE,MAAI,CAAC,KAAK,aAAa,SAAS,WAAW,GAAG,KAAK,CAAC,SAAS,SAAS,GAAG,GAAG;AAC1E,WAAO,sBAAsB,QAAQ;EACvC;AACA,SAAO,kBAAkB,QAAQ;AACnC;AAOA,SAAS,gCAAgC,UAAkB,SAAyB;AAClF,SAAO,SAAS,QAAQ,gBAAgB,CAAC,IAAI,UAC3C,OAAO,iCAAiC,MAAM,KAAI,GAAI,OAAO,KAAK,EAAE,CAAC;AAEzE;AACA,SAAS,4BAA4B,UAAkB,SAAyB;AAC9E,SAAO,aAAa,UAAU,gBAAgB,OAAO,IAAY,UAC/D,OAAQ,MAAM,6BAA6B,MAAM,KAAI,GAAI,OAAO,KAAM,EAAE,CAAC;AAE7E;AAgBA,SAAS,qBAAqB,UAAgB;AAC5C,QAAM,OAAkD,CAAA;AACxD,MAAI,OAAO;AACX,MAAI;AACJ,sBAAoB,YAAY;AAChC,UAAQ,IAAI,oBAAoB,KAAK,QAAQ,OAAO,MAAM;AACxD,QAAI,EAAE,QAAQ;AAAM,WAAK,KAAK,EAAE,KAAK,SAAS,MAAM,MAAM,EAAE,KAAK,EAAC,CAAE;AACpE,SAAK,KAAK,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,EAAC,CAAE;AAChC,WAAO,EAAE,QAAQ,EAAE,CAAC,EAAE;EACxB;AACA,MAAI,OAAO,SAAS;AAAQ,SAAK,KAAK,EAAE,KAAK,SAAS,MAAM,IAAI,EAAC,CAAE;AACnE,SAAO;AACT;AAOA,SAAS,iBACP,MACA,QAAiB;AAEjB,MAAI,MAAM;AACV,QAAM,WAAsB,CAAA;AAC5B,MAAI,KAAK;AACT,aAAW,KAAK,MAAM;AACpB,QAAI,SAAS,GAAG;AACd,aAAO,EAAE;AACT;IACF;AACA,UAAMM,KAAI,OAAO,IAAI;AACrB,QAAI,UAAUA,EAAC,GAAG;AAChB,aAAO,sBAAsB,SAAS,MAAM;AAC5C,eAAS,KAAKA,EAAC;IACjB,OAAO;AACL,aAAO,OAAOA,MAAK,EAAE;IACvB;EACF;AACA,SAAO,EAAE,UAAU,KAAK,SAAQ;AAClC;AAEA,eAAe,4BACb,UACA,SAAyB;AAEzB,QAAM,OAAO,qBAAqB,QAAQ;AAC1C,QAAM,SAAS,MAAM,QAAQ,IAC3B,KACG,OAAO,CAAC,MAA6B,UAAU,CAAC,EAChD,IAAI,OAAK,6BAA6B,EAAE,MAAM,OAAO,CAAC,CAAC;AAE5D,SAAO,iBAAiB,MAAM,MAAM;AACtC;AAEA,SAAS,gCACP,UACA,SAAyB;AAEzB,QAAM,OAAO,qBAAqB,QAAQ;AAG1C,QAAM,SAAS,KACZ,OAAO,CAAC,MAA6B,UAAU,CAAC,EAChD,IAAI,OAAK,iCAAiC,EAAE,MAAM,OAAO,CAAC;AAC7D,SAAO,iBAAiB,MAAM,MAAM;AACtC;AAKA,eAAe,6BACb,MACA,SAAyB;AAEzB,QAAM,SAAS,MAAM,YAAY,KAAK,QAAQ,OAAO;AAGrD,QAAM,eAAgB,KAAK,SAA+B;AAE1D,SAAO,QAAQ,SAAS,YAAY,EAAE,SAAS,SAAS,QAAQ,YAAY;AAC9E;AAKA,eAAe,qBACb,MACA,SAAyB;AAGzB,SAAO;IACL,OAAO,KAAK;IACZ,UAAU,KAAK;IACf,UAAU,KAAK;IACf,SAAS,OAAO,UAAgB;AAE9B,YAAM,eAAe;QACnB,GAAG;QACH;QACA,QAAQ,MAAM;QACd,eAAe,MAAM;;AAIvB,iBAAWC,YAAW,KAAK,UAAU;AACnC,cAAM,YAAYA,UAAS,YAAY;MACzC;IACF;;AAEJ;AAKA,eAAe,8BACb,MACA,SAAyB;AAEzB,QAAM,OAAO,MAAM,YAAY,KAAK,MAAM,OAAO;AAEjD,MAAI,MAAM;AACR,WAAO,YAAY,KAAK,YAAY,OAAO;EAC7C,WAAW,KAAK,WAAW;AACzB,WAAO,YAAY,KAAK,WAAW,OAAO;EAC5C;AAEA,SAAO;AACT;SEnxDgB,4BAAyB;AACvC,SAAO,IAAI,oBAAmB;AAChC;AE1RM,SAAU,eAAe,SAG9B;AACC,QAAM,WAAW,SAAS,YAAY,IAAI,kBAAiB;AAC3D,QAAM,eAAe,SAAS,gBAAgB,0BAAyB;AAEvE,QAAM,mBAAmB,oBAAI,IAAG;AAEhC,QAAM,WAA+B;IACnC;IACA;IAEA,IAAI,QAAwB;AAC1B,UAAI,iBAAiB,IAAI,OAAO,IAAI,GAAG;AACrC,cAAM,QAAQ,gCAAgC,OAAO,IAAI,wBAAwB;AACjF;MACF;AAGA,UAAI,OAAO,UAAU;AACnB,mBAAWA,YAAW,OAAO,UAAU;AACrC,mBAAS,SAASA,QAAO;QAC3B;MACF;AAGA,UAAI,OAAO,cAAc;AACvB,mBAAW,UAAU,OAAO,cAAc;AACxC,uBAAa,SAAS,OAAO,MAAM,MAAM;QAC3C;MACF;AAGA,aAAO,QAAQ,QAAQ;AAEvB,uBAAiB,IAAI,OAAO,IAAI;IAClC;IAEA,QAAK;AAGH,uBAAiB,MAAK;IACxB;;AAGF,SAAO;AACT;SAUgB,qBAAkB;AAChC,MAAI,CAAC,iBAAiB;AACpB,sBAAkB,eAAc;EAClC;AACA,SAAO;AACT;AE7HA,SAAS,WAAW,KAAY;AAC9B,QAAM,IAAK,KAAmC;AAC9C,SAAO,MAAM,WAAW,MAAM;AAChC;AA6BA,SAAS,kBAAkB,KAAY;AACrC,SAAO,QAAQ,QAAQ,OAAO,QAAQ,YAAY,aAAa,OAAO,cAAc;AACtF;AAYA,SAAS,uBAAuB,MAAe,MAAmB,oBAAI,IAAG,GAAE;AACzE,MAAI,SAAS,QAAQ,OAAO,SAAS;AAAU,WAAO;AACtD,MAAI,MAAM,QAAQ,IAAI,GAAG;AACvB,eAAW,QAAQ;AAAM,6BAAuB,MAAM,GAAG;AACzD,WAAO;EACT;AACA,QAAM,MAAM;AACZ,MAAI,IAAI,SAAS,gBAAgB,OAAO,IAAI,SAAS,UAAU;AAC7D,QAAI,IAAI,IAAI,IAAI;EAClB;AACA,aAAW,OAAO,OAAO,KAAK,GAAG,GAAG;AAElC,QAAI,QAAQ,WAAW,QAAQ,SAAS,QAAQ,UAAU,QAAQ;AAAU;AAC5E,2BAAuB,IAAI,GAAG,GAAG,GAAG;EACtC;AACA,SAAO;AACT;ACxCM,SAAU,4BACX,YAAmE;AAEtE,QAAM,MAAM,oBAAI,IAAG;AACnB,aAAW,YAAY,YAAY;AACjC,eAAW,CAAC,MAAM,IAAI,KAAK,OAAO,QAAQ,QAAQ,GAAG;AACnD,UAAI,IAAI,MAAM,IAA2C;IAC3D;EACF;AACA,SAAO;AACT;SE0WgB,gCAA6B;AAC3C,SAAO,IAAI,wBAAuB;AACpC;SAEgB,gCAA6B;AAC3C,SAAO,IAAI,wBAAuB;AACpC;SAEgB,iCAA8B;AAC5C,SAAO,IAAI,yBAAwB;AACrC;SAEgB,sCAAmC;AACjD,SAAO,IAAI,8BAA6B;AAC1C;SC9GgB,2BAAwB;AACtC,SAAO,IAAI,mBAAkB;AAC/B;SAEgB,8BAA2B;AACzC,SAAO,IAAI,sBAAqB;AAClC;SAEgB,iCAA8B;AAC5C,SAAO,IAAI,yBAAwB;AACrC;SAEgB,2BAAwB;AACtC,SAAO,IAAI,mBAAkB;AAC/B;SAEgB,yBAAsB;AACpC,SAAO,IAAI,iBAAgB;AAC7B;SAEgB,wBAAqB;AACnC,SAAO,IAAI,gBAAe;AAC5B;SCvUgB,qBAAkB;AAChC,SAAO,yBACL,uBACA,oBACA,oBACA,uBAAuB;AAE3B;ACsQA,SAAS,qBAAqB,cAAuB,UAAgB;AAEnE,MAAI,UAAU,aAAa;AAG3B,SAAO,SAAS;AACd,QAAI,QAAQ,QAAQ,QAAQ,GAAG;AAC7B,aAAO;IACT;AAEA,UAAM,QAAQ,QAAQ,cAAc,QAAQ;AAC5C,QAAI,OAAO;AACT,aAAO;IACT;AACA,cAAU,QAAQ;EACpB;AAGA,QAAM,SAAS,aAAa;AAC5B,MAAI,UAAU,WAAW,SAAS,iBAAiB;AACjD,WAAO,qBAAqB,QAAQ,QAAQ;EAC9C;AAEA,SAAO;AACT;AAEA,SAAS,yBAAyB,cAAuB,UAAgB;AAEvE,MAAI,UAAU,aAAa;AAG3B,SAAO,SAAS;AAEd,UAAM,cAAc,MAAM,KAAK,QAAQ,iBAAiB,QAAQ,CAAC,EAAE,QAAO;AAC1E,QAAI,YAAY,SAAS,GAAG;AAC1B,aAAO,YAAY,CAAC;IACtB;AAGA,QAAI,QAAQ,QAAQ,QAAQ,GAAG;AAC7B,aAAO;IACT;AAEA,cAAU,QAAQ;EACpB;AAGA,QAAM,SAAS,aAAa;AAC5B,MAAI,UAAU,WAAW,SAAS,iBAAiB;AACjD,WAAO,yBAAyB,QAAQ,QAAQ;EAClD;AAEA,SAAO;AACT;AAWA,SAAS,iBACP,OACA,MACA,OACA,MAAa;AAEb,QAAM,UAAU,KAAK,iBAAiB,KAAK;AAC3C,WAAS,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK;AACvC,UAAM,MAAM,QAAQ,CAAC;AACrB,QAAI,IAAI,wBAAwB,KAAK,MAAM,6BAA6B;AACtE,aAAO;IACT;EACF;AACA,SAAO,OAAQ,QAAQ,CAAC,IAAgC;AAC1D;AAEA,SAAS,mBACP,OACA,MACA,OACA,MAAa;AAEb,QAAM,UAAU,KAAK,iBAAiB,KAAK;AAC3C,WAAS,IAAI,QAAQ,SAAS,GAAG,KAAK,GAAG,KAAK;AAC5C,UAAM,MAAM,QAAQ,CAAC;AACrB,QAAI,IAAI,wBAAwB,KAAK,MAAM,6BAA6B;AACtE,aAAO;IACT;EACF;AACA,SAAO,OAAQ,QAAQ,QAAQ,SAAS,CAAC,IAAgC;AAC3E;AAEA,SAAS,iBACP,OACA,WACA,OACA,MAAa;AAEb,QAAM,QAAQ,MAAM,KAAM,aAAmC,CAAA,CAAE;AAC/D,QAAM,UAAqB,CAAA;AAC3B,aAAW,OAAO,OAAO;AACvB,QAAK,IAAI,WAAW,IAAI,QAAQ,KAAK,KAAM,QAAQ,OAAO;AACxD,cAAQ,KAAK,GAAG;IAClB;EACF;AACA,WAAS,IAAI,GAAG,IAAI,QAAQ,SAAS,GAAG,KAAK;AAC3C,QAAI,QAAQ,CAAC,MAAM,OAAO;AACxB,aAAO,QAAQ,IAAI,CAAC;IACtB;EACF;AACA,MAAI,MAAM;AACR,UAAM,QAAQ,QAAQ,CAAC;AACvB,QAAI,SAAS,MAAM,WAAW,MAAM,QAAQ,KAAK,GAAG;AAClD,aAAO;IACT;EACF;AACA,SAAO;AACT;AAGA,SAAS,aACP,OACA,UACA,SACA,SAAgB;AAEhB,MAAI,QAAQ,UAAU;AACpB,QAAI,QAAQ,SAAS;AAAM,aAAO;AAClC,UAAM,QAAQ,UACV,MAAM,KAAK,QAAQ,KAA0B,IAC7C,MAAM,KAAK,QAAQ,KAA0B,EAAE,QAAO;AAC1D,WAAO,iBAAiB,OAAO,OAAO,UAAU,CAAC,CAAC,QAAQ,QAAQ;EACpE;AACA,QAAM,OACH,QAAQ,WAA8B,OAAO,aAAa,cAAc,SAAS,OAAO;AAC3F,MAAI,CAAC;AAAM,WAAO;AAClB,SAAO,UACH,iBAAiB,OAAO,MAAM,UAAU,CAAC,CAAC,QAAQ,QAAQ,IAC1D,mBAAmB,OAAO,MAAM,UAAU,CAAC,CAAC,QAAQ,QAAQ;AAClE;AAkGA,SAAS,+BACP,cACA,UACA,WAAkB;AAGlB,QAAM,UAAU,MAAM,KAAK,UAAU,iBAAiB,QAAQ,CAAC;AAG/D,QAAM,gBAAgB,mBAAmB,YAAY;AAGrD,aAAW,WAAW,SAAS;AAC7B,UAAM,WAAW,mBAAmB,OAAO;AAC3C,QAAI,WAAW,eAAe;AAC5B,aAAO;IACT;EACF;AAEA,SAAO;AACT;AAEA,SAAS,mCACP,cACA,UACA,WAAkB;AAGlB,QAAM,UAAU,MAAM,KAAK,UAAU,iBAAiB,QAAQ,CAAC;AAG/D,QAAM,gBAAgB,mBAAmB,YAAY;AAGrD,WAAS,IAAI,QAAQ,SAAS,GAAG,KAAK,GAAG,KAAK;AAC5C,UAAM,UAAU,QAAQ,CAAC;AACzB,UAAM,WAAW,mBAAmB,OAAO;AAC3C,QAAI,WAAW,eAAe;AAC5B,aAAO;IACT;EACF;AAEA,SAAO;AACT;AAEA,SAAS,mBAAmB,SAAgB;AAI1C,MAAI,WAAW;AACf,MAAI,UAA0B;AAE9B,SAAO,WAAW,QAAQ,eAAe;AACvC,UAAM,WAAW,MAAM,KAAK,QAAQ,cAAc,QAAQ;AAC1D,gBAAY,SAAS,QAAQ,OAAO;AACpC,cAAU,QAAQ;AAClB,gBAAY;EACd;AAEA,SAAO;AACT;SC5jBgB,uBAAoB;AAClC,SAAO,yBACL,uBACA,oBACA,oBACA,yBACA,uBACA,qBAAqB;AAEzB;SCJgB,qBAAkB;AAChC,SAAO,yBACL,uBACA,oBACA,oBACA,yBACA,uBACA,uBACA,qBAAqB;AAEzB;SCoCgB,+BAA4B;AAC1C,SAAO,yBACL,uBACA,oBACA,uBACA,uBACA,uBACA,oBACA,uBAAuB;AAE3B;AClCO,SAAS,aAAa,MAAM,cAAc,YAAY,WAAW,cAAc,mBAAmB;AACrG,WAAS,OAAO,GAAG;AAAE,QAAI,MAAM,UAAU,OAAO,MAAM,WAAY,OAAM,IAAI,UAAU,mBAAmB;AAAG,WAAO;EAAG;AACtH,MAAI,OAAO,UAAU,MAAM,MAAM,SAAS,WAAW,QAAQ,SAAS,WAAW,QAAQ;AACzF,MAAI,SAAS,CAAC,gBAAgB,OAAO,UAAU,QAAQ,IAAI,OAAO,KAAK,YAAY;AACnF,MAAI,aAAa,iBAAiB,SAAS,OAAO,yBAAyB,QAAQ,UAAU,IAAI,IAAI,CAAA;AACrG,MAAI,GAAG,OAAO;AACd,WAAS,IAAI,WAAW,SAAS,GAAG,KAAK,GAAG,KAAK;AAC7C,QAAI,UAAU,CAAA;AACd,aAAS,KAAK,UAAW,SAAQ,CAAC,IAAI,MAAM,WAAW,CAAA,IAAK,UAAU,CAAC;AACvE,aAAS,KAAK,UAAU,OAAQ,SAAQ,OAAO,CAAC,IAAI,UAAU,OAAO,CAAC;AACtE,YAAQ,iBAAiB,SAAU,GAAG;AAAE,UAAI,KAAM,OAAM,IAAI,UAAU,wDAAwD;AAAG,wBAAkB,KAAK,OAAO,KAAK,IAAI,CAAC;IAAG;AAC5K,QAAI,UAAS,GAAI,WAAW,CAAC,GAAG,SAAS,aAAa,EAAE,KAAK,WAAW,KAAK,KAAK,WAAW,IAAG,IAAK,WAAW,GAAG,GAAG,OAAO;AAC7H,QAAI,SAAS,YAAY;AACrB,UAAI,WAAW,OAAQ;AACvB,UAAI,WAAW,QAAQ,OAAO,WAAW,SAAU,OAAM,IAAI,UAAU,iBAAiB;AACxF,UAAI,IAAI,OAAO,OAAO,GAAG,EAAG,YAAW,MAAM;AAC7C,UAAI,IAAI,OAAO,OAAO,GAAG,EAAG,YAAW,MAAM;AAC7C,UAAI,IAAI,OAAO,OAAO,IAAI,EAAG,cAAa,QAAQ,CAAC;IACvD,WACS,IAAI,OAAO,MAAM,GAAG;AACzB,UAAI,SAAS,QAAS,cAAa,QAAQ,CAAC;UACvC,YAAW,GAAG,IAAI;IAC3B;EACJ;AACA,MAAI,OAAQ,QAAO,eAAe,QAAQ,UAAU,MAAM,UAAU;AACpE,SAAO;AACX;AAEO,SAAS,kBAAkB,SAAS,cAAc,OAAO;AAC5D,MAAI,WAAW,UAAU,SAAS;AAClC,WAAS,IAAI,GAAG,IAAI,aAAa,QAAQ,KAAK;AAC1C,YAAQ,WAAW,aAAa,CAAC,EAAE,KAAK,SAAS,KAAK,IAAI,aAAa,CAAC,EAAE,KAAK,OAAO;EAC1F;AACA,SAAO,WAAW,QAAQ;AAC9B;AAMO,SAAS,kBAAkB,GAAG,MAAMP,SAAQ;AAC/C,MAAI,OAAO,SAAS,SAAU,QAAO,KAAK,cAAc,IAAI,OAAO,KAAK,aAAa,GAAG,IAAI;AAC5F,SAAO,OAAO,eAAe,GAAG,QAAQ,EAAE,cAAc,MAAM,OAAOA,UAAS,GAAG,OAAOA,SAAQ,KAAK,IAAI,IAAI,KAAI,CAAE;AACvH;AC1CM,SAAU,QAAQ6B,SAAqB;AAC3C,SAAO,SACL,QACA,SAA8B;AAG9B,WAAO,eAAe,OAAO,WAAW,QAAQ;MAC9C,OAAOA,QAAO;MACd,UAAU;MACV,YAAY;IACb,CAAA;AAGD;EACF;AACF;AA4EM,SAAU,YAA8C,UAAW;AACvE,SAAO,EAAE,GAAG,SAAQ;AACtB;AAkBM,SAAU,cAA0C,cAAe;AACvE,SAAO,MAAM,IAAI,aAAY;AAC/B;ACjKA,SAAS,QAAQ,aAAiC,SAAe;AAC/D,SAAO,cAAc,IAAI,WAAW,KAAK,OAAO,KAAK;AACvD;SAiBgB,eACd,QACA,SACA,aAAoB;AAGpB,MAAIhB,gBAAc,MAAM,GAAG;AACzB,WAAO;EACT;AAGA,MAAI,CAAC,QAAQ;AACX,UAAM,KAAK,QAAQ;AACnB,QAAI,CAAC,IAAI;AACP,YAAM,IAAI,MACR,QACE,aACA,8EAAyE,CAC1E;IAEL;AACA,WAAO,cAAc,EAAE;EACzB;AAGA,MAAI,OAAO,WAAW,UAAU;AAC9B,UAAM,UAAU,OAAO,KAAI;AAG3B,QAAI,YAAY,MAAM;AACpB,UAAI,CAAC,QAAQ,IAAI;AACf,cAAM,IAAI,MAAM,QAAQ,aAAa,yCAAyC,CAAC;MACjF;AACA,aAAO,cAAc,QAAQ,EAAE;IACjC;AAEA,QAAI,YAAY,MAAM;AACpB,UAAI,CAACA,gBAAc,QAAQ,EAAE,GAAG;AAC9B,cAAM,IAAI,MAAM,QAAQ,aAAa,8CAA8C,CAAC;MACtF;AACA,aAAO,QAAQ;IACjB;AAEA,QAAI,YAAY,OAAO;AACrB,UAAI,CAAC,QAAQ,KAAK;AAChB,cAAM,IAAI,MAAM,QAAQ,aAAa,0CAA0C,CAAC;MAClF;AACA,aAAO,cAAc,QAAQ,GAAG;IAClC;AAGA,UAAM,MACH,QAAQ,IAAY,kBAAkB,OAAO,aAAa,cAAc,WAAW;AACtF,QAAI,CAAC,KAAK;AACR,YAAM,IAAI,MAAM,QAAQ,aAAa,0DAAqD,CAAC;IAC7F;AACA,UAAM,UAAU,IAAI,cAAc,OAAO;AACzC,QAAI,CAAC,SAAS;AACZ,YAAM,IAAI,MAAM,QAAQ,aAAa,oCAAoC,OAAO,EAAE,CAAC;IACrF;AACA,QAAI,CAACA,gBAAc,OAAO,GAAG;AAC3B,YAAM,IAAI,MAAM,QAAQ,aAAa,4CAA4C,OAAO,EAAE,CAAC;IAC7F;AACA,WAAO;EACT;AAEA,QAAM,IAAI,MAAM,QAAQ,aAAa,wBAAwB,OAAO,MAAM,EAAE,CAAC;AAC/E;AASM,SAAU,gBACd,QACA,SAAiD;AAGjD,MAAI,MAAM,QAAQ,MAAM,GAAG;AACzB,WAAO,OAAO,OAAOA,eAAa;EACpC;AAMA,MAAI,WAAW,MAAM,GAAG;AACtB,WAAO,MAAM,KAAK,MAA4B,EAAE,OAAOA,eAAa;EACtE;AAGA,MAAIA,gBAAc,MAAM,GAAG;AACzB,WAAO,CAAC,MAAqB;EAC/B;AAGA,MAAI,CAAC,QAAQ;AACX,UAAM,KAAK,QAAQ;AACnB,QAAI,CAAC,IAAI;AACP,aAAO,CAAA;IACT;AACA,WAAOA,gBAAc,EAAE,IAAI,CAAC,EAAiB,IAAI,CAAA;EACnD;AAGA,MAAI,OAAO,WAAW,UAAU;AAC9B,UAAM,UAAU,OAAO,KAAI;AAG3B,QAAI,YAAY,MAAM;AACpB,aAAO,QAAQ,MAAMA,gBAAc,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAiB,IAAI,CAAA;IACjF;AACA,QAAI,YAAY,MAAM;AACpB,aAAOA,gBAAc,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAiB,IAAI,CAAA;IACnE;AACA,QAAI,YAAY,OAAO;AACrB,aAAO,QAAQ,OAAOA,gBAAc,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAkB,IAAI,CAAA;IACpF;AAGA,UAAM,MACH,QAAQ,IAAY,kBAAkB,OAAO,aAAa,cAAc,WAAW;AACtF,QAAI,KAAK;AAEP,UAAI,WAAW;AACf,UAAI,SAAS,WAAW,GAAG,KAAK,SAAS,SAAS,IAAI,GAAG;AACvD,mBAAW,SAAS,MAAM,GAAG,EAAE,EAAE,KAAI;MACvC;AACA,YAAM,WAAW,IAAI,iBAAiB,QAAQ;AAC9C,aAAO,MAAM,KAAK,QAAQ,EAAE,OAAOA,eAAa;IAClD;EACF;AAEA,SAAO,CAAA;AACT;AASM,SAAU,cAAc,OAAc;AAC1C,MAAIA,gBAAc,KAAK,GAAG;AACxB,WAAO;EACT;AACA,QAAM,IAAI,MAAM,6BAA6B;AAC/C;SA+DgB,kBACd,YACA,SACA,aAAoB;AAEpB,UAAQ,WAAW,YAAW,GAAE;IAC9B,KAAK;IACL,KAAK;AACH,UAAI,CAAC,QAAQ;AAAI,cAAM,IAAI,MAAM,QAAQ,aAAa,4BAA4B,CAAC;AACnF,UAAI,CAACA,gBAAc,QAAQ,EAAE;AAC3B,cAAM,IAAI,MAAM,QAAQ,aAAa,kCAAkC,CAAC;AAC1E,aAAO,QAAQ;IAEjB,KAAK;IACL,KAAK;AACH,UAAI,CAAC,QAAQ;AAAI,cAAM,IAAI,MAAM,QAAQ,aAAa,0BAA0B,CAAC;AACjF,UAAI,CAACA,gBAAc,QAAQ,EAAE;AAC3B,cAAM,IAAI,MAAM,QAAQ,aAAa,kCAAkC,CAAC;AAC1E,aAAO,QAAQ;IAEjB,KAAK;IACL,KAAK;AACH,UAAI,CAAC,QAAQ;AAAK,cAAM,IAAI,MAAM,QAAQ,aAAa,6BAA6B,CAAC;AACrF,UAAI,CAACA,gBAAc,QAAQ,GAAG;AAC5B,cAAM,IAAI,MAAM,QAAQ,aAAa,mCAAmC,CAAC;AAC3E,aAAO,QAAQ;IAEjB;AACE,YAAM,IAAI,MAAM,QAAQ,aAAa,uBAAuB,UAAU,EAAE,CAAC;;AAE/E;AAmCO,eAAe,uBACpB,MAEA,WACA,SACA,aACA,UAAiC,CAAA,GACjC,WAAmC;AAEnC,MAAI,gBAAgB;AAGpB,OAAK,CAAC,iBAAiB,cAAc,WAAW,MAAM,QAAQ,uBAAuB,WAAW;AAC9F,UAAM,gBAAgB,UAAU,QAAQ,mBAAmB;AAC3D,QAAI,eAAe;AACjB,sBAAgB,CAAC,aAAa;IAChC;EACF;AAGA,MAAI,CAAC,iBAAiB,cAAc,WAAW,GAAG;AAChD,QAAI,CAAC,QAAQ,IAAI;AACf,YAAM,IAAI,MAAM,GAAG,WAAW,sDAAsD;IACtF;AACA,QAAI,CAACA,gBAAc,QAAQ,EAAE,GAAG;AAC9B,YAAM,IAAI,MAAM,GAAG,WAAW,6CAA6C;IAC7E;AACA,WAAO,CAAC,QAAQ,EAAiB;EACnC;AAEA,QAAM,UAAyB,CAAA;AAE/B,aAAW,OAAO,eAAe;AAC/B,UAAM,YAAY,MAAM,UAAU,SAAS,KAAK,OAAO;AAGvD,QAAI,cAAc,MAAO,OAAO,cAAc,YAAY,UAAU,KAAI,MAAO,IAAK;AAClF;IACF;AAEA,QAAIA,gBAAc,SAAS,GAAG;AAC5B,cAAQ,KAAK,SAAwB;IACvC,WAAW,WAAW,SAAS,GAAG;AAKhC,YAAM,WAAW,MAAM,KAAK,SAA+B,EAAE,OAC3DA,eAAa;AAEf,cAAQ,KAAK,GAAG,QAAQ;IAC1B,WAAW,MAAM,QAAQ,SAAS,GAAG;AACnC,YAAM,WAAW,UAAU,OAAOA,eAAa;AAC/C,cAAQ,KAAK,GAAG,QAAQ;IAC1B,WAAW,OAAO,cAAc,UAAU;AACxC,UAAI;AAEF,YAAI,WAAW;AACf,YAAI,SAAS,WAAW,GAAG,KAAK,SAAS,SAAS,IAAI,GAAG;AACvD,qBAAW,SAAS,MAAM,GAAG,EAAE,EAAE,KAAI;QACvC;AAEA,cAAM,MACH,QAAQ,IAAY,kBAAkB,OAAO,aAAa,cAAc,WAAW;AACtF,YAAI,CAAC,KAAK;AACR,gBAAM,IAAI,MAAM,qDAAqD;QACvE;AACA,cAAM,WAAW,IAAI,iBAAiB,QAAQ;AAC9C,cAAM,WAAW,MAAM,KAAK,QAAQ,EAAE,OAAOA,eAAa;AAC1D,gBAAQ,KAAK,GAAG,QAAQ;MAC1B,SAAS,OAAO;AACd,cAAM,IAAI,MACR,0BAA0B,SAAS,OAAO,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,CAAC,EAAE;MAEtG;IACF,WAAW,aAAa,MAAM;AAI5B;IACF,OAAO;AACL,YAAM,IAAI,MACR,WAAW,WAAW,sDAAsD,OAAO,SAAS,EAAE;IAElG;EACF;AAGA,MAAI,QAAQ,WAAW,GAAG;AACxB,QAAI,CAAC,QAAQ,IAAI;AACf,YAAM,IAAI,MAAM,GAAG,WAAW,sDAAsD;IACtF;AACA,QAAI,CAACA,gBAAc,QAAQ,EAAE,GAAG;AAC9B,YAAM,IAAI,MAAM,GAAG,WAAW,6CAA6C;IAC7E;AACA,WAAO,CAAC,QAAQ,EAAiB;EACnC;AAEA,SAAO;AACT;AC7XO,eAAe,qBACpB,KACA,WACA,SACA,aAAmB;AAEnB,QAAM,UAAU,MAAM,uBAAuB,IAAI,MAAM,WAAW,SAAS,WAAW;AACtF,SAAO,EAAE,QAAO;AAClB;AAuBO,eAAe,qBACpB,SACA,WACA,WACA,SAAyB;AAEzB,QAAM,UAAyB,CAAA;AAC/B,QAAM,YAA2B,CAAA;AACjC,QAAM,aAAa,QAAQ;AAE3B,MAAI;AACF,eAAW,WAAW,SAAS;AAC7B,cAAQ,KAAK;AACb,YAAM,QAAQ,MAAM,UAAU,SAAS,WAAW,OAAO;AACzD,OAAC,QAAQ,UAAU,WAAW,KAAK,OAAO;IAC5C;EACF;AACE,YAAQ,KAAK;EACf;AAEA,SAAO,EAAE,SAAS,UAAS;AAC7B;AIhEM,SAAU,kBAAkB,YAAkB;AAClD,QAAM,UAAU,WAAW,KAAI;AAG/B,MAAI,QAAQ,WAAW,IAAI,KAAK,QAAQ,SAAS,GAAG,GAAG;AACrD,WAAO;EACT;AAGA,MAAI,QAAQ,WAAW,GAAG,GAAG;AAC3B,WAAO;EACT;AAEA,SAAO;AACT;AAcM,SAAU,eAAe,YAAkB;AAC/C,QAAM,UAAU,WAAW,KAAI;AAG/B,MAAI,QAAQ,WAAW,IAAI,KAAK,QAAQ,SAAS,GAAG,GAAG;AACrD,UAAM,QAAQ,QAAQ,MAAM,GAAG,EAAE;AACjC,UAAM,aAAa,MAAM,QAAQ,GAAG;AAEpC,QAAI,eAAe,IAAI;AAErB,aAAO,EAAE,MAAM,MAAM,KAAI,EAAE;IAC7B;AAGA,UAAM,OAAO,MAAM,MAAM,GAAG,UAAU,EAAE,KAAI;AAC5C,QAAI,QAAQ,MAAM,MAAM,aAAa,CAAC,EAAE,KAAI;AAG5C,QACG,MAAM,WAAW,GAAG,KAAK,MAAM,SAAS,GAAG,KAC3C,MAAM,WAAW,GAAG,KAAK,MAAM,SAAS,GAAG,GAC5C;AACA,cAAQ,MAAM,MAAM,GAAG,EAAE;IAC3B;AAEA,WAAO,EAAE,MAAM,MAAK;EACtB;AAGA,MAAI,QAAQ,WAAW,GAAG,GAAG;AAC3B,WAAO,EAAE,MAAM,QAAQ,UAAU,CAAC,EAAE,KAAI,EAAE;EAC5C;AAEA,QAAM,IAAI,MAAM,6BAA6B,UAAU,EAAE;AAC3D;AAeM,SAAU,mBAAmB,YAAkB;AACnD,SAAO,eAAe,UAAU,EAAE;AACpC;AAgBM,SAAU,wBAAwB,YAAkB;AACxD,QAAM,SAAS,eAAe,UAAU;AACxC,SAAO,EAAE,MAAM,OAAO,MAAM,OAAO,OAAO,SAAS,GAAE;AACvD;ACtGA,SAAS,yBAAyB,OAAa;AAC7C,QAAM,UAAU,MAAM,KAAI;AAC1B,QAAM,QAAQ,QAAQ,MAAM,yDAAyD;AAErF,MAAI,CAAC,OAAO;AACV,WAAO;EACT;AAEA,QAAM,SAAS,WAAW,MAAM,CAAC,CAAC;AAClC,QAAM,QAAQ,MAAM,CAAC,KAAK,MAAM,YAAW;AAG3C,MAAI,SAAS,QAAQ,SAAS,iBAAiB,SAAS,gBAAgB;AACtE,WAAO,EAAE,QAAQ,cAAc,KAAK,MAAM,MAAM,EAAC;EACnD,WAAW,SAAS,OAAO,SAAS,SAAS,SAAS,YAAY,SAAS,WAAW;AACpF,WAAO,EAAE,QAAQ,cAAc,KAAK,MAAM,SAAS,GAAI,EAAC;EAC1D;AAEA,SAAO;AACT;SAagB,cAAc,OAAgB,YAAY,KAAG;AAE3D,MAAI,OAAO,UAAU,UAAU;AAC7B,WAAO,KAAK,IAAI,GAAG,KAAK,MAAM,KAAK,CAAC;EACtC;AAGA,MAAI,OAAO,UAAU,UAAU;AAC7B,UAAM,SAAS,yBAAyB,KAAK;AAC7C,WAAO,SAAS,OAAO,eAAe;EACxC;AAEA,SAAO;AACT;AAWM,SAAU,oBAAoB,OAAc;AAEhD,MAAI,OAAO,UAAU,UAAU;AAC7B,QAAI,QAAQ;AAAG,YAAM,IAAI,MAAM,uBAAuB;AACtD,WAAO,KAAK,MAAM,KAAK;EACzB;AAGA,MAAI,OAAO,UAAU,UAAU;AAC7B,UAAM,SAAS,yBAAyB,KAAK;AAC7C,QAAI,CAAC,QAAQ;AACX,YAAM,IAAI,MAAM,6BAA6B,KAAK,GAAG;IACvD;AACA,WAAO,OAAO;EAChB;AAEA,QAAM,IAAI,MAAM,0BAA0B,OAAO,KAAK,EAAE;AAC1D;AAUM,SAAU,kBAAkB,gBAAsB;AACtD,MAAI,CAAC,kBAAkB,mBAAmB,QAAQ;AAChD,WAAO,CAAC,CAAC;EACX;AAEA,SAAO,eAAe,MAAM,GAAG,EAAE,IAAI,cAAW;AAC9C,UAAM,QAAQ,WAAW,SAAS,KAAI,CAAE;AACxC,QAAI,MAAM,KAAK;AAAG,aAAO;AAGzB,QAAI,SAAS,SAAS,GAAG,KAAK,CAAC,SAAS,SAAS,IAAI,GAAG;AACtD,aAAO,QAAQ;IACjB;AACA,WAAO;EACT,CAAC;AACH;AAWM,SAAU,0BAA0B,WAAqB,QAAgB;AAC7E,MAAI,UAAU;AAEd,WAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AACzC,UAAM,WAAW,UAAU,CAAC,KAAK;AACjC,UAAM,QAAQ,OAAO,CAAC,KAAK;AAC3B,UAAM,YAAY,WAAW;AAC7B,cAAU,KAAK,IAAI,SAAS,SAAS;EACvC;AAEA,SAAO;AACT;AAUM,SAAU,aAAa,KAAW;AACtC,SAAO,IAAI,QAAQ,YAAY,KAAK,EAAE,YAAW;AACnD;AChIM,SAAU,WACd,SACA,WAA+B;AAE/B,aAAW,WAAW,SAAS;AAC7B,cAAU,OAAO;EACnB;AACA,SAAO;AACT;SAWgB,gBACd,SACA,OACA,WAAwC;AAExC,aAAW,WAAW,SAAS;AAC7B,eAAW,QAAQ,OAAO;AACxB,gBAAU,SAAS,IAAI;IACzB;EACF;AACA,SAAO;AACT;AAcM,SAAU,gBAAgB,SAAwB,SAAiB;AACvE,SAAO,gBAAgB,SAAS,SAAS,CAAC,SAAS,cAAa;AAC9D,QAAI,CAAC,QAAQ,UAAU,SAAS,SAAS,GAAG;AAC1C,cAAQ,UAAU,IAAI,SAAS;IACjC;EACF,CAAC;AACH;AAUM,SAAU,mBAAmB,SAAwB,SAAiB;AAC1E,SAAO,gBAAgB,SAAS,SAAS,CAAC,SAAS,cAAa;AAC9D,YAAQ,UAAU,OAAO,SAAS;EACpC,CAAC;AACH;AASM,SAAU,mBAAmB,SAAwB,SAAiB;AAC1E,SAAO,gBAAgB,SAAS,SAAS,CAAC,SAAS,cAAa;AAC9D,YAAQ,UAAU,OAAO,SAAS;EACpC,CAAC;AACH;SAcgB,kBACd,SACA,MACA,OAAa;AAEb,SAAO,WAAW,SAAS,aAAU;AACnC,YAAQ,aAAa,MAAM,KAAK;EAClC,CAAC;AACH;AASM,SAAU,qBAAqB,SAAwB,MAAY;AACvE,SAAO,WAAW,SAAS,aAAU;AACnC,YAAQ,gBAAgB,IAAI;EAC9B,CAAC;AACH;SAkBgB,qBACd,SACA,MACA,OAAc;AAEd,SAAO,WAAW,SAAS,aAAU;AACnC,oBAAgB,SAAS,MAAM,KAAK;EACtC,CAAC;AACH;SAUgB,gBAAgB,SAAsB,MAAc,OAAc;AAChF,QAAMiB,gBAAe,QAAQ,aAAa,IAAI;AAE9C,MAAI,UAAU,QAAW;AAEvB,QAAIA,iBAAgB,QAAQ,aAAa,IAAI,MAAM,OAAO;AACxD,cAAQ,gBAAgB,IAAI;IAC9B,OAAO;AACL,cAAQ,aAAa,MAAM,KAAK;IAClC;EACF,OAAO;AAEL,QAAIA,eAAc;AAChB,cAAQ,gBAAgB,IAAI;IAC9B,OAAO;AACL,cAAQ,aAAa,MAAM,EAAE;IAC/B;EACF;AACF;AAYA,SAAS,kBAAkB,UAAgB;AACzC,SAAO,SAAS,WAAW,IAAI,IAAI,WAAW,aAAa,QAAQ;AACrE;AASM,SAAU,eACd,SACA,QAA8B;AAE9B,QAAM,UAAU,OAAO,QAAQ,MAAM;AACrC,SAAO,gBAAgB,SAAS,SAAS,CAAC,SAAS,CAAC,UAAU,KAAK,MAAK;AACtE,YAAQ,MAAM,YAAY,kBAAkB,QAAQ,GAAG,KAAK;EAC9D,CAAC;AACH;AASM,SAAU,kBAAkB,SAAwB,YAAoB;AAC5E,SAAO,gBAAgB,SAAS,YAAY,CAAC,SAAS,aAAY;AAChE,YAAQ,MAAM,eAAe,kBAAkB,QAAQ,CAAC;EAC1D,CAAC;AACH;AC9MM,SAAU,aAAa,YAAmB;AAC9C,MAAI,CAAC,YAAY;AACf,WAAO,CAAA;EACT;AAEA,MAAI,OAAO,eAAe,UAAU;AAElC,WAAO,WACJ,KAAI,EACJ,MAAM,QAAQ,EACd,IAAI,SAAM;AACT,YAAM,UAAU,IAAI,KAAI;AAExB,aAAO,QAAQ,WAAW,GAAG,IAAI,QAAQ,UAAU,CAAC,IAAI;IAC1D,CAAC,EACA,OAAO,SAAO,IAAI,SAAS,KAAK,iBAAiB,GAAG,CAAC;EAC1D;AAEA,MAAI,MAAM,QAAQ,UAAU,GAAG;AAC7B,WAAO,WACJ,IAAI,SAAM;AACT,YAAMC,OAAM,OAAO,GAAG,EAAE,KAAI;AAC5B,aAAOA,KAAI,WAAW,GAAG,IAAIA,KAAI,UAAU,CAAC,IAAIA;IAClD,CAAC,EACA,OAAO,SAAO,IAAI,SAAS,KAAK,iBAAiB,GAAG,CAAC;EAC1D;AAGA,QAAM,MAAM,OAAO,UAAU,EAAE,KAAI;AACnC,QAAM,WAAW,IAAI,WAAW,GAAG,IAAI,IAAI,UAAU,CAAC,IAAI;AAC1D,SAAO,SAAS,SAAS,KAAK,iBAAiB,QAAQ,IAAI,CAAC,QAAQ,IAAI,CAAA;AAC1E;AAWM,SAAU,eAAe,WAAiB;AAC9C,QAAM,UAAU,UAAU,KAAI;AAC9B,SAAO,cAAc,KAAK,OAAO;AACnC;AAQM,SAAU,yBAAyB,WAAiB;AACxD,QAAM,UAAU,UAAU,KAAI;AAC9B,QAAM,QAAQ,QAAQ,MAAM,YAAY;AACxC,SAAO,QAAQ,MAAM,CAAC,EAAE,KAAI,IAAK;AACnC;AAgBM,SAAU,iBAAiB,WAAiB;AAChD,MAAI,CAAC,aAAa,UAAU,KAAI,EAAG,WAAW,GAAG;AAC/C,WAAO;EACT;AAEA,QAAM,UAAU,UAAU,KAAI;AAG9B,MAAI,eAAe,OAAO,GAAG;AAC3B,WAAO;EACT;AAGA,QAAM,oBAAoB;AAC1B,SAAO,kBAAkB,KAAK,OAAO;AACvC;AAgCM,SAAU,sBACd,SACA,SAA+B;AAE/B,SAAO,QACJ,IAAI,SAAM;AACT,QAAI,eAAe,GAAG,GAAG;AACvB,YAAM,UAAU,yBAAyB,GAAG;AAE5C,YAAM,QAAQ,QAAQ,OAAO,IAAI,OAAO,KAAK,QAAQ,QAAQ,IAAI,OAAO;AACxE,UAAI,UAAU,UAAa,UAAU,MAAM;AACzC,eAAO,OAAO,KAAK;MACrB;AAEA,YAAM,QAAQ,2BAA2B,OAAO,wBAAwB;AACxE,aAAO;IACT;AACA,WAAO;EACT,CAAC,EACA,OAAO,SAAO,IAAI,SAAS,CAAC;AACjC;AClIM,SAAU,iBAAiB,YAAkB;AACjD,QAAM,UAAU,WAAW,KAAI;AAE/B,MAAI,CAAC,QAAQ,WAAW,GAAG,GAAG;AAC5B,WAAO;EACT;AAEA,QAAM,WAAW,QAAQ,UAAU,CAAC,EAAE,KAAI;AAC1C,MAAI,CAAC,UAAU;AACb,WAAO;EACT;AAEA,SAAO,EAAE,SAAQ;AACnB;AAQM,SAAU,oBAAoB,OAAa;AAC/C,SAAO,OAAO,UAAU,YAAY,MAAM,KAAI,EAAG,WAAW,GAAG;AACjE;AAaM,SAAU,2BAA2B,YAAkB;AAC3D,QAAM,SAAS,iBAAiB,UAAU;AAC1C,MAAI,CAAC;AAAQ,WAAO;AAEpB,QAAM,sBAA+C,CAAC,WAAW,cAAc,SAAS;AACxF,QAAM,WAAW,OAAO,SAAS,YAAW;AAE5C,MAAI,oBAAoB,SAAS,QAAiC,GAAG;AACnE,WAAO;EACT;AAEA,SAAO;AACT;AASM,SAAU,sBAAsB,SAAsB,UAAgB;AAC1E,SAAO,OAAO,iBAAiB,OAAO,EAAE,iBAAiB,QAAQ;AACnE;SAYgB,cAAc,SAAsB,UAAkB,OAAa;AACjF,UAAQ,MAAM,YAAY,UAAU,KAAK;AAC3C;AAuBM,SAAU,kBAAkB,SAAsB,UAA+B;AACrF,QAAM,eAAe,OAAO,iBAAiB,OAAO;AAEpD,UAAQ,UAAQ;IACd,KAAK;AACH,UAAI,aAAa,YAAY,QAAQ;AAEnC,cAAM,kBAAkB,QAAQ,QAAQ,mBAAmB;AAC3D,gBAAQ,MAAM,UAAU;AACxB,eAAO,QAAQ,QAAQ;MACzB,OAAO;AAEL,gBAAQ,QAAQ,kBAAkB,aAAa;AAC/C,gBAAQ,MAAM,UAAU;MAC1B;AACA;IAEF,KAAK;AACH,cAAQ,MAAM,aAAa,aAAa,eAAe,WAAW,YAAY;AAC9E;IAEF,KAAK;AACH,cAAQ,MAAM,UAAU,WAAW,aAAa,OAAO,MAAM,IAAI,MAAM;AACvE;;AAEN;ACxDM,SAAU,kBAAkB,KAAW;AAC3C,MAAI,OAAO,QAAQ;AAAU,WAAO;AACpC,QAAM,QAAQ,IAAI,YAAW;AAC7B,SAAO,mBAAmB,SAAS,KAAwB;AAC7D;AAYM,SAAU,uBAAuB,UAAgB;AACrD,MAAI,OAAO,aAAa;AAAU,WAAO;AACzC,QAAM,QAAQ,SAAS,YAAW;AAClC,SAAO,mBAAmB,KAAK,SAAO,MAAM,SAAS,GAAG,CAAC;AAC3D;AAeM,SAAU,qBAAqB,MAAa;AAChD,MAAI,CAAC,QAAQ,OAAO,SAAS,UAAU;AACrC,WAAO;EACT;AAEA,QAAM,UAAU;AAGhB,MAAI,OAAO,QAAQ,aAAa,UAAU;AACxC,WAAO,QAAQ;EACjB;AAGA,MAAI,OAAO,QAAQ,UAAU,UAAU;AACrC,WAAO,QAAQ;EACjB;AAGA,MAAI,OAAO,QAAQ,SAAS,UAAU;AACpC,WAAO,QAAQ;EACjB;AAEA,SAAO;AACT;AAcM,SAAU,oBAAoB,MAAa;AAC/C,MAAI,CAAC,QAAQ,OAAO,SAAS,UAAU;AACrC,WAAO;EACT;AAEA,QAAM,UAAU;AAChB,QAAM,WAAW,QAAQ;AAGzB,MAAI,aAAa,cAAc,aAAa,iBAAiB,aAAa,iBAAiB;AACzF,WAAO;EACT;AAGA,QAAM,QAAQ,qBAAqB,IAAI;AACvC,SAAO,OAAO,UAAU,YAAY,MAAM,WAAW,GAAG;AAC1D;AAqCM,SAAU,0BAA0B,MAAa;AACrD,MAAI,CAAC,QAAQ,OAAO,SAAS,UAAU;AACrC,WAAO;EACT;AAEA,QAAM,UAAU;AAChB,QAAM,WAAW,QAAQ;AAGzB,MAAI,aAAa,cAAc,aAAa,iBAAiB,aAAa,eAAe;AACvF,WAAO;EACT;AAGA,QAAM,QAAQ,qBAAqB,IAAI;AACvC,SAAO,OAAO,UAAU,YAAY,MAAM,WAAW,GAAG;AAC1D;AAYM,SAAU,wBAAwB,MAAa;AACnD,MAAI,CAAC,QAAQ,OAAO,SAAS,UAAU;AACrC,WAAO;EACT;AAEA,QAAM,UAAU;AAGhB,MAAI,QAAQ,SAAS,mBAAmB;AACtC,WAAO;EACT;AAGA,MAAI,QAAQ,SAAS,cAAc,QAAQ,SAAS,eAAe;AACjE,UAAM,QAAQ,qBAAqB,IAAI;AACvC,WAAO,OAAO,UAAU,YAAY,MAAM,WAAW,GAAG;EAC1D;AAEA,SAAO;AACT;AAQM,SAAU,sBAAsB,MAAa;AACjD,QAAM,UAAU;AAChB,MAAI,QAAQ,SAAS,mBAAmB;AACtC,WAAO,IAAI,QAAQ,aAAa;EAClC;AACA,SAAO,qBAAqB,IAAI;AAClC;AAUM,SAAU,uBAAuB,MAAa;AAClD,MAAI,CAAC,QAAQ,OAAO,SAAS,UAAU;AACrC,WAAO;EACT;AAEA,QAAM,UAAU;AAEhB,MAAI,QAAQ,SAAS,cAAc;AACjC,WAAO;EACT;AAEA,QAAM,OAAO,QAAQ;AACrB,SAAO,OAAO,SAAS,YAAY,kBAAkB,IAAI;AAC3D;AAmDO,eAAe,iBACpB,UACA,WACA,SAAyB;AAIzB,MAAI,oBAAoB,QAAQ,GAAG;AACjC,WAAO;MACL,OAAO,qBAAqB,QAAQ;MACpC,mBAAmB;;EAEvB;AAIA,MAAI,0BAA0B,QAAQ,GAAG;AACvC,WAAO;MACL,OAAO,qBAAqB,QAAQ;MACpC,mBAAmB;;EAEvB;AAIA,MAAI,wBAAwB,QAAQ,GAAG;AACrC,WAAO;MACL,OAAO,sBAAsB,QAAQ;MACrC,mBAAmB;;EAEvB;AAGA,SAAO;IACL,OAAO,MAAM,UAAU,SAAS,UAAU,OAAO;IACjD,mBAAmB;;AAEvB;ACzTM,SAAU,mBAAmB,SAAkB;AACnD,SAAO,MAAM,QAAQ,OAAO,KAAK,QAAQ,SAAS,KAAK,QAAQ,MAAM,OAAKlB,gBAAc,CAAC,CAAC;AAC5F;SAoEgB,mBAAmB,KAAgB,YAAoB,GAAC;AACtE,SACE,MAAM,QAAQ,GAAG,KACjB,IAAI,UAAU,aACd,IAAI,MAAM,UAAQ,OAAO,SAAS,YAAY,KAAK,SAAS,CAAC;AAEjE;AAqDM,SAAU,YAA8B,MAAe,SAAqB;AAChF,SAAO,OAAO,SAAS,YAAY,QAAQ,SAAS,IAAS;AAC/D;AGvKM,SAAU,iBAAiB,UAA0B;AACzD,QAAM,SAAS,YAAY,QAAQ;AACnC,MAAI,WAAW,QAAW;AAKxB,UAAM,IAAI,MACR,8BAA8B,QAAQ,uBAAuB,OAAO,KAAK,WAAW,EAAE,KAAK,IAAI,CAAC,GAAG;EAEvG;AACA,SAAO;AACT;AAUM,SAAU,cAAc,KAAW;AACvC,SAAO,IAAI,SAAS,GAAG,KAAK,IAAI,SAAS,GAAG;AAC9C;SAyBgB,cACd,QACA,SACA,UAA+B;AAE/B,MAAI,aAAa,WAAW;AAC1B,kBAAc,QAAQ,OAAO;AAC7B;EACF;AAKA,MAAI,iBAAiB,OAAO,GAAG;AAC7B,kBAAc,QAAQ,SAAS,QAAQ;EACzC,OAAO;AACL,eAAW,QAAQ,SAAmB,QAAQ;EAChD;AACF;SASgB,sBACd,QACA,SACA,UAA0B;AAE1B,gBAAc,QAAQ,SAAS,iBAAiB,QAAQ,CAAC;AAC3D;AAQA,SAAS,cAAc,QAAqB,SAAsB;AAChE,MAAI,iBAAiB,OAAO,GAAG;AAC7B,WAAO,YAAY;AACnB,WAAO,YAAY,OAAO;EAC5B,OAAO;AACL,QAAI,cAAc,OAAO,GAAG;AAC1B,aAAO,YAAY;IACrB,OAAO;AACL,aAAO,cAAc;IACvB;EACF;AACF;AASA,SAAS,cAAc,QAAqB,SAAe,UAA+B;AACxF,UAAQ,UAAQ;IACd,KAAK;AACH,aAAO,eAAe,aAAa,SAAS,MAAM;AAClD;IACF,KAAK;AACH,aAAO,aAAa,SAAS,OAAO,UAAU;AAC9C;IACF,KAAK;AACH,aAAO,YAAY,OAAO;AAC1B;IACF,KAAK;AACH,aAAO,eAAe,aAAa,SAAS,OAAO,WAAW;AAC9D;;AAEN;AASA,SAAS,WAAW,QAAqB,SAAiB,UAA+B;AAEvF,QAAM,cAAc;AAIpB,QAAM,QAAkD;IACtD;IACA;IACA;IACA;;AAEF,MAAI,CAAC,MAAM,SAAS,WAAW,GAAG;AAChC,UAAM,IAAI,MACR,4BAA4B,QAAQ,sBAAsB,MAAM,KAAK,IAAI,CAAC,kBAAkB;EAEhG;AACA,MAAI,cAAc,OAAO,GAAG;AAC1B,WAAO,mBAAmB,aAAa,OAAO;EAChD,OAAO;AACL,WAAO,mBAAmB,aAAa,OAAO;EAChD;AACF;AAUA,SAAS,aAAa,QAAqB,SAAsB,KAAgB;AAC/E,QAAM,IAAI;AACV,MAAI,OAAO,EAAE,eAAe,cAAc,QAAQ,eAAe,OAAO,aAAa;AACnF,QAAI;AACF,QAAE,WAAW,SAAS,GAAG;AACzB;IACF,QAAQ;IAER;EACF;AACA,SAAO,aAAa,SAAS,GAAG;AAClC;SAqBgB,sBACd,QACA,UACA,UAA+B;AAE/B,UAAQ,UAAQ;IACd,KAAK;AACH,iBAAW,MAAM;AAAU,qBAAa,QAAQ,IAAI,IAAI;AACxD;IACF,KAAK;AAGH,eAAS,IAAI,SAAS,SAAS,GAAG,KAAK,GAAG,KAAK;AAC7C,qBAAa,QAAQ,SAAS,CAAC,GAAG,OAAO,UAAU;MACrD;AACA;IACF,KAAK,eAAe;AAClB,YAAM,SAAS,OAAO;AACtB,UAAI,CAAC;AAAQ;AACb,iBAAW,MAAM;AAAU,qBAAa,QAAQ,IAAI,MAAM;AAC1D;IACF;IACA,KAAK,YAAY;AACf,YAAM,SAAS,OAAO;AACtB,UAAI,CAAC;AAAQ;AAGb,eAAS,IAAI,SAAS,SAAS,GAAG,KAAK,GAAG,KAAK;AAC7C,qBAAa,QAAQ,SAAS,CAAC,GAAG,OAAO,WAAW;MACtD;AACA;IACF;IACA,KAAK;AAGH,aAAO,YAAY;AACnB,iBAAW,MAAM;AAAU,qBAAa,QAAQ,IAAI,IAAI;AACxD;;AAEN;AAiBM,SAAU,cAAc,SAAoB;AAChD,MAAI,QAAQ,YAAY;AACtB,YAAQ,OAAM;AACd,WAAO;EACT;AACA,SAAO;AACT;AEnQM,SAAU,uBAAuB,UAAuB;AAC5D,MAAI,SAAS,WAAW;AAAG,WAAO;AAElC,QAAM,WAAW,SAAS,CAAC,EAAE;AAC7B,QAAM,cAAc,SAAS,MAAM,QAAM,GAAG,YAAY,QAAQ;AAEhE,MAAI,CAAC;AAAa,WAAO;AAEzB,UAAQ,UAAQ;IACd,KAAK;AACH,aAAO;IACT,KAAK;AACH,aAAO;IACT,KAAK;AACH,aAAO;IACT,KAAK,WAAW;AAEd,YAAM,gBAAgB,SACnB,IAAI,QAAM,GAAG,QAAQ,SAAS,CAAC,EAC/B,OAAO,CAAC,WAAyC,WAAW,IAAI;AACnE,aAAO,cAAc,SAAS,IAAI,YAAY;IAChD;IACA;AACE,aAAO;;AAEb;AAWM,SAAU,2BAA2B,UAAuB;AAChE,MAAI,SAAS,WAAW;AAAG,WAAO,CAAA;AAElC,QAAM,WAAW,SAAS,CAAC,EAAE;AAE7B,MAAI,aAAa,WAAW;AAE1B,WAAO,SACJ,IAAI,QAAM,GAAG,QAAQ,SAAS,CAAC,EAC/B,OAAO,CAAC,WAAyC,WAAW,IAAI;EACrE;AAEA,SAAO;AACT;AAiBM,SAAU,aAAa,QAA2B,MAAgB;AACtE,MAAI,OAAO,MAAM;AACf,WAAO,MAAK;EACd,OAAO;AACL,QAAI,SAAS,SAAS;AACpB,aAAO,UAAS;IAClB,OAAO;AACL,aAAO,KAAI;IACb;EACF;AACF;AAcM,SAAU,cAAc,SAA2B;AACvD,UAAQ,OAAO,CAAC,QAAQ;AAC1B;AAkBM,SAAU,aAAa,QAAyB;AACpD,MAAI,SAAS,kBAAkB,QAAQ;AACrC,WAAO,KAAI;EACb,OAAO;AACL,WAAO,MAAK;AAGZ,QAAI,gBAAgB,UAAU,OAAQ,OAAe,eAAe,YAAY;AAC9E,UAAI;AACD,eAAe,WAAU;AAC1B;MACF,QAAQ;MAER;IACF;AAGA,UAAM,aAAa,IAAI,WAAW,SAAS;MACzC,MAAM;MACN,SAAS;MACT,YAAY;IACb,CAAA;AACD,WAAO,cAAc,UAAU;EACjC;AACF;AAyDM,SAAU,gBAAgB,SAAoB;AAClD,SAAO,QAAQ,YAAY;AAC7B;AAQM,SAAU,iBAAiB,SAAoB;AACnD,SAAO,QAAQ,YAAY;AAC7B;SCjNgB,kBACd,SACA,YACA,YAAkB;AAElB,SAAO,MAAK;AACV,QAAI,eAAe,SAAS;AAC1B,cAAQ,UAAU,OAAO,UAAU;IACrC,WAAW,eAAe,aAAa;AACrC,sBAAgB,SAAS,UAAU;IACrC;EACF;AACF;AAwBM,SAAU,uBACd,SACA,YACA,YACA,UAAgB;AAEhB,QAAM,SAAS,kBAAkB,SAAS,YAAY,UAAU;AAChE,QAAM,YAAY,WAAW,QAAQ,QAAQ;AAE7C,SAAO,MAAK;AACV,iBAAa,SAAS;EACxB;AACF;AAyBM,SAAU,oBACd,SACA,YACA,YACA,WAAiB;AAEjB,QAAM,SAAS,kBAAkB,SAAS,YAAY,UAAU;AAEhE,QAAM,UAAU,MAAK;AACnB,WAAM;AACN,YAAQ,oBAAoB,WAAW,OAAO;EAChD;AAEA,UAAQ,iBAAiB,WAAW,SAAS,EAAE,MAAM,KAAI,CAAE;AAE3D,SAAO,MAAK;AACV,YAAQ,oBAAoB,WAAW,OAAO;EAChD;AACF;ACtGM,SAAU,mBAAmB,SAAsB,UAAgB;AAEvE,MAAI,SAAS,WAAW,GAAG,GAAG;AAC5B,WAAO,QAAQ,aAAa,SAAS,UAAU,CAAC,CAAC;EACnD;AAGA,UAAQ,UAAQ;IACd,KAAK;AACH,aAAO,QAAQ;IACjB,KAAK;AACH,aAAO,QAAQ;IACjB,KAAK;AACH,aAAO,QAAQ;IACjB,KAAK;AACH,aAAO,QAAQ;IACjB,KAAK;AACH,aAAO,QAAQ;IACjB,KAAK;AACH,aAAO,WAAW,UAAW,QAA6B,QAAQ;IACpE,KAAK;AACH,aAAO,aAAa,UAAW,QAA6B,UAAU;;AAI1E,MAAI,SAAS,SAAS,GAAG,GAAG;AAC1B,UAAM,QAAQ,SAAS,MAAM,GAAG;AAChC,QAAI,QAAiB;AACrB,eAAW,QAAQ,OAAO;AACxB,UAAI,UAAU,UAAa,UAAU;AAAM;AAC3C,cAAS,MAAkC,IAAI;IACjD;AACA,WAAO;EACT;AAGA,MAAI,SAAS,SAAS,GAAG,KAAK,YAAY,QAAQ,OAAO;AACvD,WACE,QAAQ,MAAM,iBAAiB,QAAQ,KACtC,QAAQ,MAA6C,QAAQ;EAElE;AAEA,SAAQ,QAA+C,QAAQ;AACjE;SAoBgB,mBAAmB,SAAsB,UAAkB,OAAc;AAEvF,MAAI,SAAS,WAAW,GAAG,GAAG;AAC5B,UAAM,WAAW,SAAS,UAAU,CAAC;AAErC,QAAI,UAAU,OAAO;AACnB,cAAQ,gBAAgB,QAAQ;IAClC,WAAW,UAAU,MAAM;AACzB,cAAQ,aAAa,UAAU,EAAE;IACnC,OAAO;AACL,cAAQ,aAAa,UAAU,OAAO,KAAK,CAAC;IAC9C;AACA;EACF;AAEA,QAAM,WAAW,OAAO,KAAK;AAC7B,UAAQ,UAAQ;IACd,KAAK;AACH,cAAQ,cAAc;AACtB;IACF,KAAK;AACH,cAAQ,YAAY;AACpB;IACF,KAAK;AACH,cAAQ,YAAY;AACpB;IACF,KAAK;AACH,cAAQ,KAAK;AACb;IACF,KAAK;AACH,cAAQ,YAAY;AACpB;IACF,KAAK;AACH,UAAI,WAAW;AAAU,gBAA6B,QAAQ;AAC9D;IACF,KAAK;AACH,UAAI,aAAa;AAAU,gBAA6B,UAAU,QAAQ,KAAK;AAC/E;;AAIJ,MAAI,SAAS,SAAS,GAAG,GAAG;AAC1B,UAAM,QAAQ,SAAS,MAAM,GAAG;AAChC,QAAI,SAAkB;AACtB,aAAS,IAAI,GAAG,IAAI,MAAM,SAAS,GAAG,KAAK;AACzC,eAAU,OAAmC,MAAM,CAAC,CAAC;AACrD,UAAI,WAAW,UAAa,WAAW;AAAM;IAC/C;AACC,WAAmC,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI;AAC/D;EACF;AAGA,MAAI,SAAS,SAAS,GAAG,KAAK,YAAY,QAAQ,OAAO;AACvD,YAAQ,MAAM,YAAY,UAAU,QAAQ;AAC5C;EACF;AAEA,MAAI;AACD,YAA+C,QAAQ,IAAI;EAC9D,SAAS,OAAO;AACd,QAAI,EACF,iBAAiB,cAChB,MAAM,QAAQ,SAAS,eAAe,KAAK,MAAM,QAAQ,SAAS,WAAW,KAC7E;AACD,YAAM,IAAI,MACR,wBAAwB,QAAQ,MAAM,iBAAiB,QAAQ,MAAM,UAAU,eAAe,EAAE;IAEpG;EACF;AACF;AAWM,SAAU,gBAAgB,SAAoB;AAClD,SAAO,WAAW,UAAW,QAA6B,QAAQ,QAAQ;AAC5E;AAWM,SAAU,gBAAgB,SAAsB,OAAc;AAClE,MAAI,WAAW,SAAS;AACrB,YAA6B,QAAQ,OAAO,KAAK;EACpD,OAAO;AACL,YAAQ,cAAc,OAAO,KAAK;EACpC;AACF;AAUM,SAAU,QAAQ,OAAc;AACpC,SAAO,UAAU,UAAa,UAAU,QAAQ,UAAU;AAC5D;AAUM,SAAU,cAAc,OAAc;AAC1C,MAAI,OAAO,UAAU,YAAY,UAAU,QAAQ,MAAM,QAAQ,KAAK;AAAG,WAAO;AAChF,MAAIA,gBAAc,KAAK,KAAK,iBAAiB;AAAM,WAAO;AAC1D,QAAM,QAAQ,OAAO,eAAe,KAAK;AACzC,SAAO,UAAU,OAAO,aAAa,UAAU;AACjD;AC3LM,SAAU,OAAO,OAAc;AACnC,SACE,CAAC,CAAC,SAAS,OAAO,UAAU,YAAY,OAAQ,MAA6B,SAAS;AAE1F;AAWM,SAAU,aACd,OACA,MAAO;AAEP,SAAO,OAAO,KAAK,KAAK,MAAM,SAAS;AACzC;AA+BM,SAAU,cAAc,OAAc;AAC1C,SAAO,aAAa,OAAO,SAAS;AACtC;AAmBM,SAAUmB,6BAA2B,OAAc;AACvD,MAAI,CAAC,aAAa,OAAO,sBAAsB;AAAG,WAAO;AACzD,QAAM,WAAqB,MAAiC;AAC5D,SAAO,OAAO,aAAa,YAAY,aAAa;AACtD;AAUM,SAAUC,uBAAqB,OAAc;AACjD,MAAI,CAAC,aAAa,OAAO,gBAAgB;AAAG,WAAO;AACnD,QAAM,WAAqB,MAAiC;AAC5D,MAAI,OAAO,aAAa;AAAU,WAAO;AACzC,SACE,OAAO,aAAa,YACpB,aAAa,QACb,OAAQ,SAAgC,SAAS;AAErD;AClDM,SAAU,uBAAuB,OAAc;AACnD,SAAO,OAAO,UAAU,YAAY,QAAQ,KAAK,KAAK;AACxD;AAGO,eAAe,8BACpB,MACA,WACA,SAAyB;AAMzB,QAAM,WAAY,KAAK,UAA4C;AACnE,MAAI,CAAC;AAAU,WAAO;AAEtB,MAAI,UAAU,MAAM,UAAU,SAAS,KAAK,QAAQ,OAAO;AAC3D,MAAI,MAAM,QAAQ,OAAO;AAAG,cAAU,QAAQ,CAAC;AAC/C,MAAI,CAACpB,gBAAc,OAAO;AAAG,WAAO;AAEpC,SAAO,EAAE,SAAiC,SAAQ;AACpD;AAGO,eAAe,oCACpB,MACA,WACA,SAAyB;AAGzB,QAAM,WACJ,OAAO,KAAK,aAAa,WACrB,KAAK,WACJ,KAAK,UAA0C;AACtD,MAAI,CAAC;AAAU,WAAO;AAEtB,MAAI,UAAU,MAAM,UAAU,SAAS,KAAK,QAAQ,OAAO;AAC3D,MAAI,MAAM,QAAQ,OAAO;AAAG,cAAU,QAAQ,CAAC;AAC/C,MAAI,CAACA,gBAAc,OAAO;AAAG,WAAO;AAEpC,SAAO,EAAE,SAAiC,SAAQ;AACpD;AAGM,SAAU,gCACd,OACA,SAAyB;AAEzB,QAAM,QAAQ,MAAM,MAAM,OAAO;AACjC,MAAI,CAAC;AAAO,WAAO;AAEnB,MAAI;AACF,UAAM,UAAU,eAAe,MAAM,CAAC,EAAE,KAAI,GAAI,OAAO;AACvD,WAAO,EAAE,SAAS,UAAU,MAAM,CAAC,EAAE,KAAI,EAAE;EAC7C,QAAQ;AACN,WAAO;EACT;AACF;AAgBO,eAAe,yBACpB,MACA,WACA,SAAyB;AAGzB,MAAI,2BAA2B,IAAI,GAAG;AACpC,WAAO,8BAA8B,MAAM,WAAW,OAAO;EAC/D;AAGA,MAAI,qBAAqB,IAAI,GAAG;AAC9B,WAAO,oCAAoC,MAAM,WAAW,OAAO;EACrE;AAIA,QAAM,UAAU;AAChB,MAAI,SAAS,SAAS,0BAA0B,SAAS,SAAS,oBAAoB;AACpF,UAAM,aAAa,QAAQ;AAC3B,UAAMc,gBAAe,QAAQ;AAC7B,QAAI,UAAU,MAAM,UAAU,SAAS,YAAY,OAAO;AAC1D,QAAI,MAAM,QAAQ,OAAO;AAAG,gBAAU,QAAQ,CAAC;AAC/C,QAAI,CAACd,gBAAc,OAAO;AAAG,aAAO;AAIpC,UAAM,eAAgBc,eAAc,QAAQA,eAAc;AAO1D,QAAI,CAAC;AAAc,aAAO;AAC1B,WAAO,EAAE,SAAiC,UAAU,aAAY;EAClE;AAEA,SAAO;AACT;AAUM,SAAU,mBAAmB,QAAsB;AACvD,QAAM,EAAE,SAAS,SAAQ,IAAK;AAG9B,MAAI,SAAS,WAAW,GAAG,GAAG;AAC5B,UAAM,YAAY,SAAS,UAAU,CAAC;AACtC,WAAO,sBAAsB,SAAS,SAAS;EACjD;AAEA,SAAOX,qBAAmB,SAAS,QAAQ;AAC7C;AAUM,SAAU,oBAAoB,QAAwB,OAAc;AACxE,QAAM,EAAE,SAAS,SAAQ,IAAK;AAG9B,MAAI,SAAS,WAAW,GAAG,GAAG;AAC5B,UAAM,YAAY,SAAS,UAAU,CAAC;AACtC,kBAAc,SAAS,WAAW,OAAO,KAAK,CAAC;AAC/C;EACF;AAEA,qBAAmB,SAAS,UAAU,KAAK;AAC7C;AAGM,SAAU,qBAAqB,QAAsB;AACzD,QAAM,UAAU,mBAAmB,MAAM;AACzC,QAAM,OAAO,OAAO;AAGpB,QAAM,WAAW,KAAK,WAAW,GAAG,IAAI,KAAK,UAAU,CAAC,IAAI;AAG5D,MACE,OAAO,YAAY,aACnB,WAAW,IAAI,QAAQ,KACvB,WAAW,IAAI,SAAS,YAAW,CAAE,GACrC;AACA,UAAMkB,OAAM,CAAC;AACb,wBAAoB,QAAQA,IAAG;AAC/B,WAAOA;EACT;AAGA,MAAI,OAAO,YAAY,UAAU;AAC/B,UAAMA,OAAM,YAAY,IAAI,IAAI;AAChC,wBAAoB,QAAQA,IAAG;AAC/B,WAAOA;EACT;AAGA,MAAI,OAAO,YAAY,UAAU;AAC/B,UAAM,MAAM,QAAQ,IAAI;AACxB,UAAM,SAAU,OAAO,QAAgB,GAAG;AAC1C,QAAI,YAAY,MAAM,WAAW,QAAW;AAC1C,0BAAoB,QAAQ,MAAM;AAClC,aAAO;IACT;AACC,WAAO,QAAgB,GAAG,IAAI;AAC/B,wBAAoB,QAAQ,EAAE;AAC9B,WAAO;EACT;AAGA,QAAM,MAAM,CAAC;AACb,sBAAoB,QAAQ,GAAG;AAC/B,SAAO;AACT;ACvLA,eAAe,eACb,WACA,WACA,SAAyB;AAEzB,MAAI,CAAC,WAAW;AAAI,WAAO;AAC3B,QAAM,UAAU,MAAM,UAAU,SAAS,UAAU,IAAI,OAAO;AAC9D,SAAO,OAAO,YAAY,YAAY,QAAQ,YAAW,MAAO,UAAU,UAAU;AACtF;AAGA,eAAe,uBACb,WACA,WACA,SAAyB;AAEzB,MAAI;AACJ,MAAI;AACJ,MAAI,WAAW,KAAK;AAClB,UAAM,MAAM,MAAM,UAAU,SAAS,UAAU,KAAK,OAAO;AAC3D,eACE,OAAO,QAAQ,WAAW,MAAM,OAAO,QAAQ,WAAW,cAAc,GAAG,IAAI;EACnF;AACA,MAAI,WAAW,OAAO;AACpB,UAAM,MAAM,MAAM,UAAU,SAAS,UAAU,OAAO,OAAO;AAC7D,QAAI,OAAO,QAAQ;AAAU,mBAAa;EAC5C;AACA,SAAO,EAAE,UAAU,WAAU;AAC/B;AAGA,SAAS,qBACP,YACA,UAAiB;AAEjB,QAAM,eAAgB,UAAsC;AAC5D,QAAM,YAAY,uBAAuB,QAAQ;AAEjD,MACErB,gBAAc,UAAU,KACvB,MAAM,QAAQ,UAAU,KAAK,WAAW,MAAM,QAAMA,gBAAc,EAAE,CAAC,GACtE;AACA,WAAO,EAAE,MAAM,WAAW,YAAY,GAAE;EAC1C;AACA,MAAI,aAAa,cAAc;AAC7B,WAAO,EAAE,MAAM,WAAW,YAAY,aAAY;EACpD;AACA,MAAI,OAAO,eAAe,UAAU;AAClC,UAAM,OAAO,WAAW,KAAI;AAC5B,QAAI,KAAK,WAAW,GAAG,KAAK,KAAK,WAAW,IAAI;AAC9C,aAAO,EAAE,MAAM,aAAa,YAAY,KAAI;AAC9C,QAAI,KAAK,WAAW,GAAG;AAAG,aAAO,EAAE,MAAM,gBAAgB,YAAY,KAAI;AACzE,QAAI,KAAK,WAAW,GAAG;AAAG,aAAO,EAAE,MAAM,SAAS,YAAY,KAAI;AAClE,QAAI,KAAK,WAAW,GAAG,KAAK,uBAAuB,IAAI;AACrD,aAAO,EAAE,MAAM,WAAW,YAAY,KAAI;AAC5C,WAAO,EAAE,MAAM,SAAS,YAAY,KAAI;EAC1C;AACA,SAAO,EAAE,MAAM,SAAS,YAAY,GAAE;AACxC;ACuMA,SAAS,cAAc,OAAyB;AAC9C,QAAM,WAAW,SAAS,uBAAsB;AAChD,aAAW,QAAQ,OAAO;AACxB,QAAI,iBAAiB,IAAI,GAAG;AAC1B,eAAS,OAAO,IAAI;AACpB;IACF;AACA,UAAM,WAAW,SAAS,cAAc,UAAU;AAClD,aAAS,YAAY,SAAS,OAAO,KAAK,OAAO,IAAI;AACrD,aAAS,OAAO,SAAS,OAAO;EAClC;AACA,SAAO;AACT;AC/UA,SAAS,WAAW,OAAa;AAC/B,SAAO,MAAM,QAAQ,YAAY,OAAK,YAAY,CAAC,CAAC;AACtD;AASA,eAAe,mBAAmB,MAAc,SAAyB;AACvE,MAAI,CAAC,KAAK,SAAS,GAAG;AAAG,WAAO;AAChC,QAAM,KAAK;AACX,QAAM,eAAuE,CAAA;AAC7E,MAAI;AACJ,UAAQ,IAAI,GAAG,KAAK,IAAI,OAAO,MAAM;AACnC,QAAI,OAAO,EAAE,CAAC;AACd,QAAI;AACF,YAAM,QAAQ,MAAM,6BAA6B,EAAE,CAAC,EAAE,KAAI,GAAI,OAAO;AACrE,UAAI,UAAU,UAAa,UAAU;AAAM,eAAO,WAAW,OAAO,KAAK,CAAC;IAC5E,QAAQ;IAER;AACA,iBAAa,KAAK,EAAE,OAAO,EAAE,OAAO,QAAQ,EAAE,CAAC,EAAE,QAAQ,KAAI,CAAE;EACjE;AACA,MAAI,SAAS;AACb,WAAS,IAAI,aAAa,SAAS,GAAG,KAAK,GAAG,KAAK;AACjD,UAAM,EAAE,OAAAI,QAAO,QAAQ,KAAI,IAAK,aAAa,CAAC;AAC9C,aAAS,OAAO,MAAM,GAAGA,MAAK,IAAI,OAAO,OAAO,MAAMA,SAAQ,MAAM;EACtE;AACA,SAAO;AACT;AAWA,SAAS,iBAAiB,MAAY;AACpC,QAAM,UAAU,KAAK,MAAM,GAAG,EAAE;AAChC,MAAI,UAAU;AACd,MAAI,YAAY;AAEhB,QAAM,WAAW,QAAQ,MAAM,yBAAyB;AACxD,MAAI,UAAU;AACZ,cAAU,SAAS,CAAC;AACpB,gBAAY,QAAQ,MAAM,SAAS,CAAC,EAAE,MAAM;EAC9C;AAEA,QAAM,UAAU,SAAS,cAAc,OAAO;AAC9C,QAAM,QAAQ,UAAU,MAAM,UAAU;AAExC,aAAW,QAAQ,OAAO;AACxB,QAAI,KAAK,WAAW,GAAG,GAAG;AACxB,YAAM,KAAK,KAAK,MAAM,CAAC;AACvB,UAAI;AAAI,gBAAQ,KAAK;IACvB,WAAW,KAAK,WAAW,GAAG,GAAG;AAC/B,YAAM,YAAY,KAAK,MAAM,CAAC;AAC9B,UAAI;AAAW,gBAAQ,UAAU,IAAI,SAAS;IAChD;EACF;AAEA,SAAO;AACT;AAOA,SAAS,sBAAsB,MAAY;AACzC,QAAM,WAAW,SAAS,cAAc,UAAU;AAClD,WAAS,YAAY,KAAK,KAAI;AAC9B,QAAM,eAAe,SAAS,QAAQ;AACtC,MAAI,gBAAgBJ,gBAAc,YAAY;AAAG,WAAO;AAExD,QAAM,UAAU,SAAS,cAAc,KAAK;AAC5C,UAAQ,YAAY,KAAK,KAAI;AAC7B,QAAM,QAAQ,QAAQ;AACtB,SAAO,SAASA,gBAAc,KAAK,IAAI,QAAQ;AACjD;AAGA,SAAS,oBACP,WACA,MACA,SAA8B;AAE9B,MAAIA,gBAAc,SAAS;AAAG,WAAO;AAcrC,MAAI,OAAO,cAAc,YAAY;AACnC,UAAM,OAAO;AACb,WAAO,KAAK,WAAW,IAAI,IAAI,KAAI,IAAK,IAAI,KAAK,GAAG,IAAI;EAC1D;AAEA,QAAM,OAAO,OAAO,SAAS;AAC7B,MAAI;AAEJ,MAAI,OAAO,WAAW;AACpB,kBAAe,OAA8C,IAAI;AACnE,MAAI,CAAC,eAAe,OAAO,WAAW;AACpC,kBAAe,OAAmC,IAAI;AACxD,MAAI,CAAC,eAAe,QAAQ,WAAW,IAAI,IAAI;AAC7C,kBAAc,QAAQ,UAAU,IAAI,IAAI;AAE1C,MAAI,CAAC,eAAe,OAAO,gBAAgB,YAAY;AACrD,UAAM,IAAI,MAAM,gBAAgB,IAAI,kCAAkC;EACxE;AAEA,SAAO,KAAK,WAAW,IAAI,IAAI,YAAW,IAAK,IAAI,YAAY,GAAG,IAAI;AACxE;AAGA,eAAe,uBACb,SACA,WACA,SAA8B;AAE9B,MAAI,CAAC;AAAS,WAAO,CAAA;AACrB,MAAI,QAAQ,SAAS,kBAAkB,MAAM,QAAQ,QAAQ,IAAI,GAAG;AAClE,UAAM,UAAqB,CAAA;AAC3B,eAAW,OAAO,QAAQ,MAAM;AAC9B,cAAQ,KAAK,MAAM,UAAU,SAAS,KAAK,OAAO,CAAC;IACrD;AACA,WAAO;EACT;AACA,QAAM,QAAQ,MAAM,UAAU,SAAS,SAAS,OAAO;AACvD,SAAO,MAAM,QAAQ,KAAK,IAAI,QAAQ,CAAC,KAAK;AAC9C;AAGA,eAAe,oBACb,WACA,WACA,SAA8B;AAE9B,MAAI,CAAC;AAAW,WAAO;AAGvB,OACG,UAAU,SAAS,YAAY,UAAU,SAAS,iBACnD,OAAQ,UAAsC,SAAS,UACvD;AACA,WAAQ,UAAsC;EAChD;AACA,QAAM,QAAQ,MAAM,UAAU,SAAS,WAAW,OAAO;AACzD,SAAO,OAAO,UAAU,WAAW,QAAQ;AAC7C;AElJA,SAAS,aAAa,MAAa;AACjC,MAAI,OAAO,SAAS;AAAU,WAAO;AACrC,QAAM,aAAa,KAAK,YAAW,EAAG,KAAI;AAC1C,MAAI,eAAe,eAAe,eAAe;AAAY,WAAO;AACpE,MAAI,eAAe;AAAS,WAAO;AACnC,SAAO;AACT;AAEA,eAAe,gBACb,MACA,WACA,WACA,SAAyB;AAEzB,MAAI,WAAW,IAAI;AACjB,UAAM,OAAO,aAAa,MAAM,UAAU,SAAS,UAAU,IAAI,OAAO,CAAC;AACzE,QAAI;AAAM,aAAO;EACnB;AAQA,aAAW,OAAO,MAAM;AACtB,UAAM,IAAI;AACV,QAAI,GAAG,SAAS;AAAgB;AAChC,UAAM,aAAa,EAAE;AACrB,UAAM,OAAO,aAAa,YAAY,QAAQ,YAAY,KAAK;AAC/D,QAAI;AAAM,aAAO;EACnB;AAEA,WAAS,IAAI,GAAG,IAAI,KAAK,SAAS,GAAG,KAAK;AACxC,UAAM,MAAM,KAAK,CAAC;AAClB,QAAI,KAAK,SAAS,gBAAiB,IAAI,MAAiB,YAAW,MAAO,MAAM;AAC9E,YAAM,OAAO,MAAM,UAAU,SAAS,KAAK,IAAI,CAAC,GAAG,OAAO;AAC1D,UAAI,OAAO,SAAS,UAAU;AAC5B,cAAM,aAAa,KAAK,YAAW,EAAG,KAAI;AAC1C,YAAI,eAAe,eAAe,eAAe;AAAY,iBAAO;AACpE,YAAI,eAAe;AAAS,iBAAO;MACrC;IACF;EACF;AACA,SAAO;AACT;AAGA,SAASsB,mBAAiB,IAAe;AACvC,SAAO,GAAG,aAAa,SAAS;AAClC;ACzDA,SAAS,iBAAiB,IAAe;AACvC,SAAO,GAAG,aAAa,SAAS;AAClC;ACVA,SAAS,mBAAmB,IAAe;AACzC,QAAM,MAAM,GAAG;AACf,SAAO,QAAQ,WAAW,QAAQ;AACpC;ACNA,SAAS,cAAc,IAAe;AACpC,SAAO,GAAG,YAAY;AACxB;AClBA,SAAS,mBAAgB;AACvB,MAAI,OAAQ,WAAqC,YAAY,aAAa;AACvE,eAAqC,UAAU,MAAA;;EAClD;AACA,SAAO;AACT;ACcA,SAAS,MAAM,MAAM,IAAI,UAAU,CAAA,GAAI;AACrC,MAAI,OAAO,OAAO;AAChB,SAAK,cAAc,EAAE,EAAE;AACzB,MAAI,CAAC,QAAQ,mBAAmB,aAAa,IAAI;AAC/C,oBAAgB,IAAI;AACtB,MAAI,MAAM,OAAO,EAAE,MAAM,MAAM,EAAE;AACnC;AACA,SAAS,WAAW,MAAM,IAAI,UAAU,CAAA,GAAI;AAC1C,MAAI,OAAO,OAAO,UAAU;AAC1B,UAAM,WAAW,cAAc,EAAE;AACjC,QAAI,SAAS,cAAc,SAAS,WAAW,WAAW,KAAK,SAAS,WAAW,aAAa,mBAAmB;AACjH,WAAK,SAAS;IAChB,OAAO;AACL,YAAM,IAAI,MAAM,qDAAqD;IACvE;EACF;AACA,MAAI,KAAK,aAAa,qBAAqB,GAAG,aAAa,qBAAqB,KAAK,cAAc,GAAG,WAAW;AAC/G,QAAI,aAAa,IAAI;AACnB,sBAAgB,IAAI;AACtB,QAAI,MAAM,OAAO,EAAE,gBAAgB,MAAM,EAAE;EAC7C,OAAO;AACL,UAAM,IAAI,MAAM,mEAAmE;EACrF;AACF;AACA,SAAS,gBAAgB,MAAM;AAC7B,aAAW,SAAS,KAAK,iBAAiB,OAAO,GAAG;AAClD,QAAI,MAAM,QAAQ,MAAM,UAAU,MAAM,gBAAgB,MAAM,YAAY,MAAM,gBAAgB;AAC9F,YAAM,aAAa,kBAAkB,EAAE;IACzC;EACF;AACA,aAAW,WAAW,KAAK,iBAAiB,QAAQ,GAAG;AACrD,QAAI,QAAQ,SAAS,QAAQ,aAAa,QAAQ,iBAAiB;AACjE,cAAQ,aAAa,kBAAkB,EAAE;IAC3C;EACF;AACA,aAAW,WAAW,KAAK,iBAAiB,UAAU,GAAG;AACvD,QAAI,QAAQ,UAAU,QAAQ,cAAc;AAC1C,cAAQ,aAAa,kBAAkB,EAAE;IAC3C;EACF;AACF;AACA,SAAS,cAAc,QAAQ;AAC7B,QAAM,WAAW,SAAS,cAAc,UAAU;AAClD,WAAS,YAAY,OAAO,KAAI;AAChC,SAAO,SAAS;AAClB;AAKA,SAAS,WAAW,QAAQ,MAAM,gBAAgB;AAChD,MAAI,SAAS;AACX;AACF,MAAI,KAAK,eAAe,QAAQ;AAC9B,QAAI,KAAK,gBAAgB;AACvB;AACF,QAAI,sBAAsB;AACxB,aAAO,WAAW,MAAM,cAAc;AACtC;IACF;EACF;AACA,SAAO,aAAa,MAAM,cAAc;AAC1C;AAmaA,SAAS,eAAe,SAAS;AAC/B,SAAO,QAAQ,cAAc;AAC/B;AACA,SAAS,gBAAgB,SAAS;AAChC,SAAO,QAAQ,cAAc;AAC/B;AACA,SAAS,aAAa,MAAM;AAC1B,SAAO,CAAC,CAAC,oBAAoB,KAAK,QAAQ;AAC5C;AACA,SAAS,6BAA6B,UAAU;AAC9C,QAAM,IAAI,SAAS;AACnB,MAAI,MAAM;AACR,WAAO,CAAA;AACT,QAAM,iBAAiB,CAAA;AACvB,QAAM,UAAU,CAAA;AAChB,QAAM,OAAO,IAAI,MAAM,CAAC;AACxB,WAAS,IAAI,GAAE,IAAI,GAAG,KAAK;AACzB,UAAM,MAAM,SAAS,CAAC;AACtB,QAAI,QAAQ;AACV;AACF,QAAI,OAAO;AACX,QAAI,QAAQ,eAAe;AAC3B,WAAO,OAAO,OAAO;AACnB,YAAM,MAAM,KAAK,OAAO,OAAO,SAAS,CAAC;AACzC,UAAI,eAAe,GAAG,IAAI;AACxB,eAAO,MAAM;;AAEb,gBAAQ;IACZ;AACA,SAAK,CAAC,IAAI,OAAO,IAAI,QAAQ,OAAO,CAAC,IAAI;AACzC,QAAI,SAAS,eAAe,QAAQ;AAClC,qBAAe,KAAK,GAAG;AACvB,cAAQ,KAAK,CAAC;IAChB,OAAO;AACL,qBAAe,IAAI,IAAI;AACvB,cAAQ,IAAI,IAAI;IAClB;EACF;AACA,QAAM,SAAS,CAAA;AACf,MAAI,QAAQ,WAAW;AACrB,WAAO;AACT,MAAI,OAAO,QAAQ,QAAQ,SAAS,CAAC;AACrC,SAAO,SAAS,UAAa,SAAS,IAAI;AACxC,WAAO,QAAQ,IAAI;AACnB,WAAO,KAAK,IAAI;EAClB;AACA,SAAO;AACT;AC9hBA,SAAS,kBAAkB,SAAsB;AAG/C,SAAO,EAAE,iBAAuC,SAAS,mBAAmB,KAAK;AACnF;ACQA,SAAS,yBAAsB;AAC7B,MAAI,OAAO,aAAa;AAAa,WAAO;AAC5C,QAAM,KAAM,SACT;AAIH,SAAO,OAAO,OAAO,aAAa,GAAG,KAAK,QAAQ,IAAI;AACxD;SAEgB,6BAA0B;AACxC,SAAO,OAAO,uBAAsB,MAAO;AAC7C;AAYA,eAAe,OACb,UACA,SAA+B;AAE/B,QAAM,QAAQ,uBAAsB;AACpC,MAAI,CAAC,OAAO;AACV,UAAM,SAAQ;AACd;EACF;AACA,QAAM,SAAS,YAAW;AACxB,UAAM,SAAQ;EAChB;AACA,MAAI;AACJ,MAAI,SAAS,gBAAgB;AAI3B,QAAI;AACF,mBAAc,MAAuD;QACnE;QACA,OAAO,CAAC,QAAQ,cAAc;MAC/B,CAAA;IACH,QAAQ;AACN,mBAAa,MAAM,MAAM;IAC3B;EACF,OAAO;AACL,iBAAa,MAAM,MAAM;EAC3B;AAIA,QAAM,WAAW;AACnB;AAEA,eAAe,QAAK;AAClB,MAAI;AAAY;AAChB,eAAa;AACb,MAAI;AACF,WAAO,MAAM,SAAS,GAAG;AACvB,YAAM,OAAO,MAAM,MAAK;AACxB,UAAI;AACF,cAAM,OAAO,KAAK,UAAU,KAAK,OAAO;AACxC,aAAK,QAAO;MACd,SAAS,OAAO;AACd,aAAK,OAAO,KAAK;MACnB;IACF;EACF;AACE,iBAAa;EACf;AACF;AAUM,SAAU,mBACd,UACA,SAA+B;AAE/B,SAAO,IAAI,QAAQ,CAAC,SAAS,WAAU;AACrC,UAAM,KAAK,EAAE,UAAU,SAAS,SAAS,OAAM,CAAE;AACjD,UAAK,EAAG,MAAM,MAAM;EACtB,CAAC;AACH;AC/CA,SAAS,gBAAgB,SAA+B,SAAe;AACrE,MAAI;AACJ,MAAI,OAAO,YAAY,UAAU;AAC/B,UAAM,WAAW,SAAS,cAAc,UAAU;AAClD,aAAS,YAAY;AACrB,WAAO,SAAS,QAAQ;AACxB,QAAI,CAAC,QAAQ,KAAK;AAAoB,aAAO;EAC/C,OAAO;AACL,WAAO,QAAQ,UAAU,IAAI;EAC/B;AACA,SAAO,KAAK,YAAY,WAAWtB,gBAAc,IAAI,IAAK,OAAuB;AACnF;AAEM,SAAU,YACd,QACA,SACA,UACA,cAA2B;AAE3B,QAAM,aAAa,YAAY,QAAQ,CAACA,gBAAc,OAAO,IAAI,UAAU;AAC3E,QAAM,YAAYA,gBAAc,OAAO,IAAK,UAA0B;AAEtE,UAAQ,UAAQ;IACd,KAAK,cAAc;AAMjB,YAAM,OAAO,YAAY,OAAO,gBAAgB,SAAS,OAAO,OAAO,IAAI;AAC3E,kBAAY,QAAQ,QAAQ,SAAS,OAAO,eAAe,SAAS,YAAY;AAChF;IACF;IAEA,KAAK;AACH,UAAI,YAAY,MAAM;AACpB,YAAI;AACF,uBAAa,WAAW,QAAQ,aAAa,YAAY,YAAY;QACvE,SAAS,OAAO;AAEd,kBAAQ,KAAK,wDAAwD,KAAK;AAC1E,cAAI,WAAW;AACb,mBAAO,YAAY;AACnB,mBAAO,YAAY,SAAS;UAC9B,OAAO;AACL,mBAAO,YAAY;UACrB;QACF;MACF;AACA;IAEF,KAAK;AACH,UAAI,YAAY,MAAM;AACpB,YAAI;AACF,uBAAa,MAAM,QAAQ,aAAa,YAAY,YAAY;QAClE,SAAS,OAAO;AACd,kBAAQ,KAAK,wDAAwD,KAAK;AAC1E,cAAI,WAAW;AACb,mBAAO,YAAY,SAAS;UAC9B,OAAO;AACL,mBAAO,YAAY;UACrB;QACF;MACF;AACA;IAEF,KAAK;AACH,UAAI,WAAW;AACb,eAAO,YAAY;AACnB,eAAO,YAAY,SAAS;MAC9B,OAAO;AACL,eAAO,YAAY;MACrB;AACA;IAEF,KAAK;AACH,UAAI,WAAW;AACb,eAAO,YAAY,SAAS;MAC9B,OAAO;AACL,eAAO,YAAY;MACrB;AACA;IAEF,KAAK;AACH,UAAI,WAAW;AACb,eAAO,eAAe,aAAa,WAAW,MAAM;MACtD,OAAO;AACL,eAAO,mBAAmB,eAAe,UAAU;MACrD;AACA;IAEF,KAAK;AACH,UAAI,WAAW;AACb,eAAO,aAAa,WAAW,OAAO,UAAU;MAClD,OAAO;AACL,eAAO,mBAAmB,cAAc,UAAU;MACpD;AACA;IAEF,KAAK;AACH,UAAI,WAAW;AACb,eAAO,YAAY,SAAS;MAC9B,OAAO;AACL,eAAO,mBAAmB,aAAa,UAAU;MACnD;AACA;IAEF,KAAK;AACH,UAAI,WAAW;AACb,eAAO,eAAe,aAAa,WAAW,OAAO,WAAW;MAClE,OAAO;AACL,eAAO,mBAAmB,YAAY,UAAU;MAClD;AACA;IAEF,KAAK;AACH,aAAO,OAAM;AACb;IAEF,KAAK;AACH;IAEF;AACE,YAAM,IAAI,MAAM,uCAAuC,QAAQ,GAAG;;AAExE;AAOO,eAAe,0BACpB,SACA,SACA,UACA,UAAgC,CAAA,GAAE;AAElC,QAAM,EAAE,cAAc,oBAAoB,MAAK,IAAK;AAEpD,QAAM,cAAc,MAAK;AACvB,eAAW,UAAU,SAAS;AAC5B,kBAAY,QAAQ,SAAS,UAAU,YAAY;IACrD;EACF;AAEA,MAAI,qBAAqB,2BAA0B,GAAI;AACrD,UAAM,mBAAmB,WAAW;EACtC,OAAO;AACL,gBAAW;EACb;AACF;AAOM,SAAU,eAAe,OAAc;AAC3C,MAAI,UAAU,QAAQ,UAAU,QAAW;AACzC,WAAO;EACT;AACA,MAAIA,gBAAc,KAAK,GAAG;AACxB,WAAO;EACT;AACA,MAAI,mBAAmB,KAAK,GAAG;AAC7B,UAAM,WAAW;AACjB,UAAM,MAAM,SAAS,cAAc,KAAK;AACxC,QAAI,YAAY,SAAS,UAAU,IAAI,CAAC;AACxC,WAAO,IAAI;EACb;AACA,SAAO,OAAO,KAAK;AACrB;AC9KA,SAAS,YAAY,MAAa;AAChC,MAAI,aAAa,MAAM,SAAS,KAAK,OAAO,KAAK,UAAU;AAAU,WAAO,KAAK;AACjF,MAAI,aAAa,MAAM,QAAQ;AAAG,WAAO,KAAK;AAC9C,MAAI,aAAa,MAAM,YAAY;AAAG,WAAO,KAAK;AAClD,SAAO;AACT;AAEA,eAAe,eACb,UACA,SAAyB;AAEzB,QAAM,WAAW,gBAAgB,YAAY,QAAW,OAAO;AAE/D,MAAI,SAAS,WAAW,GAAG;AACzB,UAAM,eAAe,WAAW,cAAc,QAAQ,MAAM;AAC5D,UAAM,IAAI,MAAM,sCAAsC,YAAY,EAAE;EACtE;AAEA,SAAO;AACT;ACiCA,SAAS,YAAS;AAEhB,MAAI,OAAO,WAAW,eAAgB,OAAe,oBAAoB;AACvE,WAAO;EACT;AAGA,MAAI,OAAO,YAAY,eAAe,QAAQ,KAAK,aAAa,cAAc;AAC5E,WAAO;EACT;AAGA,SAAO;AACT;AAiCM,SAAU,2BAA2BgB,SAA8C;AACvF,iBAAe,EAAE,GAAG,cAAc,GAAGA,QAAM;AAC7C;SAKgB,6BAA0B;AACxC,SAAO,EAAE,GAAG,aAAY;AAC1B;SAKgB,+BAA4B;AAC1C,iBAAe,EAAE,GAAG,0BAAyB;AAC/C;AAKA,SAAS,mBAAmB,QAAc;AACxC,QAAM,aAAa,EAAE,GAAG,aAAY;AAGpC,MAAI,aAAa,iBAAiB;AAChC,eAAW,YAAY,aAAa,iBAAiB;AACnD,UAAI,qBAAqB,QAAQ,SAAS,MAAM,GAAG;AACjD,eAAO,EAAE,GAAG,YAAY,GAAG,SAAS,OAAM;MAC5C;IACF;EACF;AAEA,SAAO;AACT;AAKA,SAAS,qBAAqB,QAAgB,SAAe;AAC3D,MAAI,YAAY;AAAK,WAAO;AAC5B,MAAI,QAAQ,SAAS,GAAG,GAAG;AAEzB,UAAM,UAAU,QAAQ,QAAQ,sBAAsB,MAAM,EAAE,QAAQ,OAAO,IAAI;AACjF,UAAM,QAAQ,IAAI,OAAO,MAAM,UAAU,GAAG;AAC5C,WAAO,MAAM,KAAK,MAAM;EAC1B;AACA,SAAO,WAAW;AACpB;SAqBgB,uBACd,MACA,iBAAyB,IAAE;AAE3B,QAAMA,UAAS,mBAAmB,cAAc;AAGhD,MAAI,CAACA,QAAO,SAAS;AACnB,WAAO,kBAAiB;EAC1B;AAGA,MAAIA,QAAO,gBAAgB,KAAK,aAAW,qBAAqB,gBAAgB,OAAO,CAAC,GAAG;AACzF,WAAO,kBAAiB;EAC1B;AAEA,QAAM,SAAmC,CAAA;AAGzC,QAAM,eAAe,KAAK,MAAM,kBAAkB;AAClD,MAAI,gBAAgB,CAACA,QAAO,iBAAiB,SAAS,SAAS,GAAG;AAChE,WAAO,KAAK;MACV,UAAU;MACV,UAAU;MACV,SAAS;MACT,SAAS;MACT,YAAY;MACZ;MACA,OAAO;IACR,CAAA;EACH;AAIA,MAAI,OAAO,aAAa,aAAa;AAEnC,WAAO,kBAAkB,MAAM,gBAAgBA,OAAM;EACvD;AAIA,aAAW,CAAC,SAAS,IAAI,KAAK,OAAO,QAAQ,wBAAwB,GAAG;AACtE,QAAIA,QAAO,iBAAiB,SAAS,OAAO;AAAG;AAG/C,UAAM,QAAQ,IAAI,OAAO,IAAI,OAAO,UAAU,IAAI;AAClD,UAAM,UAAU,KAAK,MAAM,KAAK;AAChC,UAAM,QAAQ,SAAS,UAAU;AAEjC,QAAI,QAAQ,GAAG;AACb,aAAO,KAAK;QACV,UAAU;QACV,UAAU,KAAK;QACf,SAAS;QACT,SAAS,KAAK;QACd,YAAY,KAAK,cAAc,eAAe,OAAO;QACrD;QACA;MACD,CAAA;IACH;EACF;AAEA,QAAM,YAAY,SAAS,cAAc,KAAK;AAC9C,YAAU,YAAY;AAGtB,MAAIA,QAAO,eAAe,WAAW;AACnC,eAAW,CAAC,SAAS,IAAI,KAAK,OAAO,QAAQ,4BAA4B,GAAG;AAC1E,UAAIA,QAAO,iBAAiB,SAAS,OAAO;AAAG;AAE/C,YAAM,WAAW,UAAU,iBAAiB,OAAO;AACnD,YAAM,QAAQ,SAAS;AAEvB,UAAI,QAAQ,GAAG;AACb,eAAO,KAAK;UACV,UAAUA,QAAO,eAAe,WAAW,aAAa;UACxD,UAAU,KAAK;UACf,SAAS;UACT,SAAS,KAAK;UACd,YAAY,KAAK,cAAc,gBAAgB,OAAO;UACtD;UACA;QACD,CAAA;MACH;IACF;EACF;AAGA,MAAIA,QAAO,eAAe,UAAU;AAClC,eAAW,CAAC,SAAS,IAAI,KAAK,OAAO,QAAQ,gBAAgB,GAAG;AAC9D,UAAIA,QAAO,iBAAiB,SAAS,OAAO;AAAG;AAE/C,YAAM,WAAW,UAAU,iBAAiB,OAAO;AACnD,YAAM,QAAQ,SAAS;AAEvB,UAAI,QAAQ,GAAG;AACb,eAAO,KAAK;UACV,UAAU;UACV,UAAU,KAAK;UACf,SAAS;UACT,SAAS,KAAK;UACd,YACE,KAAK,cAAc,SAAS,OAAO;UACrC;UACA;QACD,CAAA;MACH;IACF;EACF;AAGA,MAAIA,QAAO,4BAA4B;AACrC,eAAW,WAAWA,QAAO,4BAA4B;AACvD,UAAIA,QAAO,iBAAiB,SAAS,OAAO;AAAG;AAE/C,YAAM,WAAW,UAAU,iBAAiB,OAAO;AACnD,YAAM,QAAQ,SAAS;AAEvB,UAAI,QAAQ,GAAG;AACb,eAAO,KAAK;UACV,UAAU;UACV,UAAU;UACV,SAAS;UACT,SAAS,QAAQ,OAAO;UACxB,YAAY,WAAW,OAAO;UAC9B;UACA;QACD,CAAA;MACH;IACF;EACF;AAGA,MAAIA,QAAO,8BAA8B;AACvC,eAAW,WAAWA,QAAO,8BAA8B;AACzD,UAAIA,QAAO,iBAAiB,SAAS,OAAO;AAAG;AAE/C,YAAM,WAAW,UAAU,iBAAiB,OAAO;AACnD,YAAM,QAAQ,SAAS;AAEvB,UAAI,QAAQ,GAAG;AACb,eAAO,KAAK;UACV,UAAU;UACV,UAAU;UACV,SAAS;UACT,SAAS,QAAQ,OAAO;UACxB,YAAY,gBAAgB,OAAO;UACnC;UACA;QACD,CAAA;MACH;IACF;EACF;AAGA,MAAIA,QAAO,iBAAiB;AAC1B,UAAM,eAAeA,QAAO,gBAAgB,MAAM,cAAc;AAChE,WAAO,KAAK,GAAG,YAAY;EAC7B;AAEA,SAAO,aAAa,MAAM;AAC5B;AAMA,SAAS,kBACP,MACA,gBACAA,SAA+B;AAE/B,QAAM,SAAmC,CAAA;AAGzC,aAAW,CAAC,SAAS,IAAI,KAAK,OAAO,QAAQ,wBAAwB,GAAG;AACtE,QAAIA,QAAO,iBAAiB,SAAS,OAAO;AAAG;AAE/C,UAAM,QAAQ,IAAI,OAAO,IAAI,OAAO,UAAU,IAAI;AAClD,UAAM,UAAU,KAAK,MAAM,KAAK;AAChC,UAAM,QAAQ,SAAS,UAAU;AAEjC,QAAI,QAAQ,GAAG;AACb,aAAO,KAAK;QACV,UAAU;QACV,UAAU,KAAK;QACf,SAAS;QACT,SAAS,KAAK;QACd,YAAY,KAAK,cAAc,eAAe,OAAO;QACrD;QACA;MACD,CAAA;IACH;EACF;AAGA,MAAIA,QAAO,eAAe,WAAW;AACnC,eAAW,CAAC,SAAS,IAAI,KAAK,OAAO,QAAQ,4BAA4B,GAAG;AAC1E,UAAIA,QAAO,iBAAiB,SAAS,OAAO;AAAG;AAE/C,YAAM,QAAQ,IAAI,OAAO,IAAI,OAAO,UAAU,IAAI;AAClD,YAAM,UAAU,KAAK,MAAM,KAAK;AAChC,YAAM,QAAQ,SAAS,UAAU;AAEjC,UAAI,QAAQ,GAAG;AACb,eAAO,KAAK;UACV,UAAUA,QAAO,eAAe,WAAW,aAAa;UACxD,UAAU,KAAK;UACf,SAAS;UACT,SAAS,KAAK;UACd,YAAY,KAAK,cAAc,gBAAgB,OAAO;UACtD;UACA;QACD,CAAA;MACH;IACF;EACF;AAEA,SAAO,aAAa,MAAM;AAC5B;AASA,SAAS,oBAAiB;AACxB,SAAO;IACL,OAAO;IACP,QAAQ,CAAA;IACR,YAAY,EAAE,UAAU,CAAA,GAAI,YAAY,CAAA,GAAI,SAAS,CAAA,EAAE;IACvD,aAAa;IACb,eAAe;;AAEnB;AAKA,SAAS,aAAa,QAAgC;AACpD,QAAM,aAAa;IACjB,UAAU,OAAO,OAAO,OAAK,EAAE,aAAa,UAAU;IACtD,YAAY,OAAO,OAAO,OAAK,EAAE,aAAa,YAAY;IAC1D,SAAS,OAAO,OAAO,OAAK,EAAE,aAAa,SAAS;;AAGtD,SAAO;IACL,OAAO,WAAW,SAAS,WAAW;IACtC;IACA;IACA,aAAa,OAAO;IACpB,eAAe;;AAEnB;ACjcA,SAAS,wBAAqB;AAC5B,SAAO,OAAO,WAAW,eAAe,OAAO,YAAY;AAC7D;AAgBM,SAAU,8BAA8B,QAA+B;AAC3E,MAAI,OAAO,gBAAgB;AAAG;AAE9B,MAAI,sBAAqB,GAAI;AAC3B,uBAAmB,MAAM;EAC3B,OAAO;AACL,sBAAkB,MAAM;EAC1B;AACF;AAKA,SAAS,mBAAmB,QAA+B;AAEzD,UAAQ,eACN,8CAA8C,OAAO,WAAW,mBAChE,OAAO,MAAM;AAIf,kBAAgB,MAAM;AAGtB,MAAI,OAAO,WAAW,SAAS,SAAS,GAAG;AACzC,YAAQ,MACN,KAAK,eAAe,QAAQ,qBAAqB,OAAO,WAAW,SAAS,MAAM,KAClF,OAAO,QAAQ;AAEjB,eAAW,SAAS,OAAO,WAAW,UAAU;AAC9C,sBAAgB,KAAK;IACvB;AACA,YAAQ,SAAQ;EAClB;AAGA,MAAI,OAAO,WAAW,WAAW,SAAS,GAAG;AAC3C,YAAQ,MACN,KAAK,eAAe,UAAU,uBAAuB,OAAO,WAAW,WAAW,MAAM,KACxF,OAAO,UAAU;AAEnB,eAAW,SAAS,OAAO,WAAW,YAAY;AAChD,sBAAgB,KAAK;IACvB;AACA,YAAQ,SAAQ;EAClB;AAGA,MAAI,OAAO,WAAW,QAAQ,SAAS,GAAG;AACxC,YAAQ,MACN,KAAK,eAAe,OAAO,cAAc,OAAO,WAAW,QAAQ,MAAM,KACzE,OAAO,OAAO;AAEhB,eAAW,SAAS,OAAO,WAAW,SAAS;AAC7C,sBAAgB,KAAK;IACvB;AACA,YAAQ,SAAQ;EAClB;AAEA,UAAQ,SAAQ;AAClB;AAKA,SAAS,gBAAgB,QAA+B;AACtD,QAAM,QAAkB,CAAA;AACxB,QAAM,SAAmB,CAAA;AAEzB,MAAI,OAAO,WAAW,SAAS,SAAS,GAAG;AACzC,UAAM,KAAK,KAAK,OAAO,WAAW,SAAS,MAAM,aAAa;AAC9D,WAAO,KAAK,OAAO,UAAU,OAAO,MAAM;EAC5C;AAEA,MAAI,OAAO,WAAW,WAAW,SAAS,GAAG;AAC3C,QAAI,MAAM,SAAS;AAAG,YAAM,KAAK,IAAI;AACrC,UAAM,KAAK,KAAK,OAAO,WAAW,WAAW,MAAM,eAAe;AAClE,WAAO,KAAK,OAAO,YAAY,OAAO,MAAM;EAC9C;AAEA,MAAI,OAAO,WAAW,QAAQ,SAAS,GAAG;AACxC,QAAI,MAAM,SAAS;AAAG,YAAM,KAAK,IAAI;AACrC,UAAM,KAAK,KAAK,OAAO,WAAW,QAAQ,MAAM,eAAe;AAC/D,WAAO,KAAK,OAAO,SAAS,OAAO,MAAM;EAC3C;AAEA,MAAI,MAAM,SAAS,GAAG;AACpB,YAAQ,IAAI,UAAU,MAAM,KAAK,EAAE,CAAC,IAAI,GAAG,MAAM;EACnD;AACF;AAKA,SAAS,gBAAgB,OAA6B;AACpD,QAAM,WAAW,MAAM,QAAQ,IAAI,OAAO,MAAM,KAAK,kBAAkB;AACvE,QAAM,cAAc,MAAM,QAAQ,IAAI,CAAC,OAAO,OAAO,OAAO,MAAM,IAAI,CAAA;AAEtE,UAAQ,IACN,QAAQ,MAAM,OAAO,IAAI,QAAQ,OAAO,MAAM,OAAO,IACrD,OAAO,SACP,GAAG,aACH,OAAO,MAAM;AAGf,UAAQ,IAAI,mBAAmB,MAAM,UAAU,IAAI,OAAO,UAAU;AAEpE,MAAI,MAAM,gBAAgB;AACxB,YAAQ,IAAI,mBAAmB,MAAM,cAAc,IAAI,OAAO,QAAQ,OAAO,MAAM;EACrF;AACF;AAKA,SAAS,kBAAkB,QAA+B;AACxD,UAAQ,KAAK,4CAA4C,OAAO,WAAW,iBAAiB;AAG5F,QAAM,eAAyB,CAAA;AAC/B,MAAI,OAAO,WAAW,SAAS,SAAS,GAAG;AACzC,iBAAa,KAAK,GAAG,OAAO,WAAW,SAAS,MAAM,WAAW;EACnE;AACA,MAAI,OAAO,WAAW,WAAW,SAAS,GAAG;AAC3C,iBAAa,KAAK,GAAG,OAAO,WAAW,WAAW,MAAM,aAAa;EACvE;AACA,MAAI,OAAO,WAAW,QAAQ,SAAS,GAAG;AACxC,iBAAa,KAAK,GAAG,OAAO,WAAW,QAAQ,MAAM,aAAa;EACpE;AACA,UAAQ,KAAK,YAAY,aAAa,KAAK,IAAI,CAAC,EAAE;AAGlD,aAAW,SAAS,OAAO,QAAQ;AACjC,UAAM,OAAO,eAAe,MAAM,QAAQ;AAC1C,UAAM,QAAQ,gBAAgB,MAAM,QAAQ;AAC5C,UAAM,WAAW,MAAM,QAAQ,IAAI,KAAK,MAAM,KAAK,OAAO;AAC1D,UAAM,YAAY,MAAM,iBAAiB,aAAa,MAAM,cAAc,MAAM;AAEhF,YAAQ,KAAK,KAAK,IAAI,KAAK,KAAK,MAAM,MAAM,OAAO,IAAI,QAAQ,GAAG,SAAS,EAAE;AAC7E,YAAQ,KAAK,SAAS,MAAM,OAAO,EAAE;AACrC,YAAQ,KAAK,cAAc,MAAM,UAAU,EAAE;EAC/C;AACF;AASM,SAAU,oBAAoB,OAA6B;AAC/D,QAAM,WAAW,MAAM,QAAQ,IAAI,KAAK,MAAM,KAAK,OAAO;AAC1D,QAAM,YAAY,MAAM,iBAAiB,aAAa,MAAM,cAAc,MAAM;AAChF,QAAM,OAAO,eAAe,MAAM,QAAQ;AAC1C,QAAM,QAAQ,gBAAgB,MAAM,QAAQ;AAE5C,SAAO,GAAG,IAAI,KAAK,KAAK,MAAM,MAAM,OAAO,IAAI,QAAQ,GAAG,SAAS,KAAK,MAAM,OAAO;AACvF;AAKM,SAAU,sBAAsB,QAA+B;AACnE,SAAO,OAAO,OAAO,IAAI,mBAAmB;AAC9C;AAKM,SAAU,oBAAoB,QAA+B;AACjE,MAAI,OAAO,gBAAgB,GAAG;AAC5B,WAAO;EACT;AAEA,QAAM,QAAkB,CAAA;AACxB,MAAI,OAAO,WAAW,SAAS,SAAS,GAAG;AACzC,UAAM,KAAK,GAAG,OAAO,WAAW,SAAS,MAAM,WAAW;EAC5D;AACA,MAAI,OAAO,WAAW,WAAW,SAAS,GAAG;AAC3C,UAAM,KAAK,GAAG,OAAO,WAAW,WAAW,MAAM,aAAa;EAChE;AACA,MAAI,OAAO,WAAW,QAAQ,SAAS,GAAG;AACxC,UAAM,KAAK,GAAG,OAAO,WAAW,QAAQ,MAAM,aAAa;EAC7D;AAEA,SAAO,uBAAuB,MAAM,KAAK,IAAI,CAAC;AAChD;AChOM,SAAU,kBACd,WACA,QACA,UAAwB,CAAA,GAAE;AAE1B,SAAO,IAAI,YAAY,WAAW;IAChC,QAAQ,WAAW,SAAY,SAAS,CAAA;IACxC,SAAS,QAAQ,YAAY,SAAY,QAAQ,UAAU;IAC3D,YAAY,QAAQ,eAAe,SAAY,QAAQ,aAAa;IACpE,UAAU,QAAQ,aAAa,SAAY,QAAQ,WAAW;EAC/D,CAAA;AACH;AAUM,SAAU,gBAAgB,OAAa;AAC3C,QAAM,UAAU,MAAM,KAAI;AAG1B,MAAI,QAAQ,KAAK,OAAO,GAAG;AACzB,WAAO,SAAS,SAAS,EAAE;EAC7B;AAGA,MAAI,aAAa,KAAK,OAAO,GAAG;AAC9B,WAAO,WAAW,OAAO;EAC3B;AAGA,MAAI,YAAY;AAAQ,WAAO;AAC/B,MAAI,YAAY;AAAS,WAAO;AAGhC,MAAI,YAAY;AAAQ,WAAO;AAC/B,MAAI,YAAY;AAAa,WAAO;AAGpC,MACG,QAAQ,WAAW,GAAG,KAAK,QAAQ,SAAS,GAAG,KAC/C,QAAQ,WAAW,GAAG,KAAK,QAAQ,SAAS,GAAG,GAChD;AACA,WAAO,QAAQ,MAAM,GAAG,EAAE;EAC5B;AAGA,SAAO;AACT;AAWM,SAAU,oBACd,QACA,WACA,SAAkB,CAAA,GAClB,UAAwB,CAAA,GAAE;AAE1B,QAAM,QAAQ,kBAAkB,WAAW,QAAQ,OAAO;AAC1D,SAAO,cAAc,KAAK;AAC1B,SAAO;AACT;AAcM,SAAU,wBACd,QACA,WACA,SAAkB,CAAA,GAClB,UAAwB,CAAA,GAAE;AAG1B,QAAM,kBAAkB,oBAAoB,QAAQ,cAAc,SAAS,IAAI,QAAQ,OAAO;AAG9F,QAAM,iBAAiB,oBAAoB,QAAQ,aAAa,SAAS,IAAI,QAAQ,OAAO;AAE5F,SAAO;IACL,YAAY;IACZ,WAAW;;AAEf;AC/CM,SAAU,gBAAgB,MAAY;AAC1C,QAAM,WAA4B,CAAA;AAClC,QAAM,YAAY,SAAS,cAAc,KAAK;AAC9C,YAAU,YAAY;AACtB,QAAM,kBAAkB,UAAU,iBAAiB,YAAY;AAE/D,aAAW,WAAW,iBAAiB;AACrC,UAAM,SAAS,QAAQ,aAAa,QAAQ;AAC5C,QAAI,CAAC,QAAQ;AACX,YAAM,QAAQ,yEAAyE;AACvF;IACF;AAEA,UAAM,eAAe,QAAQ,aAAa,UAAU,GAAG,YAAW,KAAM;AACxE,UAAM,WAAW,aAAa,YAAY,KAAK;AAC/C,UAAM,UAAU,QAAQ;AAExB,aAAS,KAAK,EAAE,QAAQ,UAAU,QAAO,CAAE;EAC7C;AAEA,SAAO;AACT;AAEA,SAAS,mBACP,SACA,cAA2B;AAE3B,QAAM,EAAE,QAAQ,UAAU,QAAO,IAAK;AAEtC,QAAM,gBAAgB,SAAS,cAAc,MAAM;AACnD,MAAI,CAAC,iBAAiB,CAAChB,gBAAc,aAAa,GAAG;AACnD,WAAO,EAAE,SAAS,OAAO,OAAO,WAAW,MAAM,cAAa;EAChE;AAEA,MAAI;AACF,YAAQ,UAAQ;MACd,KAAK;AACH,qBAAa,WAAW,eAAe,SAAS,YAAY;AAC5D;MACF,KAAK;AACH,qBAAa,MAAM,eAAe,SAAS,YAAY;AACvD;MACF,KAAK;AACH,sBAAc,YAAY;AAC1B;MACF,KAAK;AACH,sBAAc,YAAY;AAC1B;MACF,KAAK;AACH,sBAAc,mBAAmB,eAAe,OAAO;AACvD;MACF,KAAK;AACH,sBAAc,mBAAmB,cAAc,OAAO;AACtD;MACF,KAAK;AACH,sBAAc,mBAAmB,aAAa,OAAO;AACrD;MACF,KAAK;AACH,sBAAc,mBAAmB,YAAY,OAAO;AACpD;MACF,KAAK;AACH,sBAAc,OAAM;AACpB;MACF,KAAK;AACH;MACF;AACE,eAAO,EAAE,SAAS,OAAO,OAAO,qBAAqB,QAAQ,IAAG;;AAGpE,WAAO,EAAE,SAAS,KAAI;EACxB,SAASZ,MAAK;AACZ,WAAO,EAAE,SAAS,OAAO,OAAO,OAAOA,IAAG,EAAC;EAC7C;AACF;AAEM,SAAU,gBAAgB,MAAc,cAA2B;AACvE,QAAM,WAAW,gBAAgB,IAAI;AACrC,QAAM4B,UAAS,2BAA0B;AACzC,QAAM,SAAgC;IACpC,OAAO;IACP,SAAS,CAAA;IACT,QAAQ,CAAA;IACR,oBAAoB,CAAA;IACpB,mBAAmB,CAAA;;AAGrB,aAAW,WAAW,UAAU;AAE9B,QAAIA,QAAO,SAAS;AAClB,YAAM,aAAa,uBAAuB,QAAQ,SAAS,QAAQ,MAAM;AAEzE,UAAI,WAAW,cAAc,GAAG;AAE9B,YAAIA,QAAO,cAAc;AACvB,wCAA8B,UAAU;QAC1C;AAGA,eAAO,mBAAmB,KAAK,GAAG,sBAAsB,UAAU,CAAC;AACnE,eAAO,kBAAmB,QAAQ,MAAM,IAAI;MAC9C;IACF;AAGA,UAAM,aAAa,mBAAmB,SAAS,YAAY;AAE3D,QAAI,WAAW,SAAS;AACtB,aAAO;AACP,aAAO,QAAQ,KAAK,QAAQ,MAAM;IACpC,WAAW,WAAW,OAAO;AAC3B,aAAO,OAAO,KAAK,GAAG,QAAQ,MAAM,KAAK,WAAW,KAAK,EAAE;IAC7D;EACF;AAEA,SAAO;AACT;ACvJM,SAAU,aACd,QACA,WACA,SACA,QAAoB;AAEpB,MAAI,CAAC,QAAQ;AACX,WAAO,QAAQ,OAAO,IAAI,MAAM,kCAAkC,CAAC;EACrE;AAEA,SAAO,IAAI,QAAQ,aAAU;AAG3B,UAAM,UAAU,MAAK;AACnB,aAAO,EAAE,OAAO,MAAM,UAAU,OAAO,WAAW,KAAI,CAAE;IAC1D;AAEA,UAAM,UAAU,MAAK;AACnB,aAAO,oBAAoB,WAAW,OAAO;AAE7C,UAAI;AAAQ,eAAO,oBAAoB,SAAS,OAAO;IACzD;AAEA,UAAM,SAAS,sBAA0C,SAAS,OAAO;AAEzE,UAAM,UAAU,CAAC,UAAgB;AAC/B,aAAO,EAAE,OAAmB,UAAU,OAAO,WAAW,MAAK,CAAE;IACjE;AAGA,QAAI,QAAQ,SAAS;AACnB,cAAQ,EAAE,OAAO,MAAM,UAAU,OAAO,WAAW,KAAI,CAAE;AACzD;IACF;AAEA,WAAO,iBAAiB,WAAW,OAAO;AAC1C,QAAI;AAAQ,aAAO,iBAAiB,SAAS,OAAO;EAOtD,CAAC;AACH;AAQM,SAAU,YAAY,IAAU;AACpC,SAAO,IAAI,QAAQ,aAAW,WAAW,SAAS,EAAE,CAAC;AACvD;SAiBgB,qBACd,SACA,UACA,UAAgB;AAEhB,SAAO,IAAI,QAAQ,aAAU;AAC3B,UAAM,QAAQ,CAAC,MAAsB;AACnC,UAAI,EAAE,WAAW,WAAW,EAAE,iBAAiB,UAAU;AACvD,eAAO,EAAE,WAAW,MAAM,WAAW,MAAK,CAAE;MAC9C;IACF;AAEA,UAAM,WAAW,CAAC,MAAsB;AACtC,UAAI,EAAE,WAAW,WAAW,EAAE,iBAAiB,UAAU;AACvD,eAAO,EAAE,WAAW,OAAO,WAAW,KAAI,CAAE;MAC9C;IACF;AAEA,UAAM,UAAU,MAAK;AACnB,cAAQ,oBAAoB,iBAAiB,KAAK;AAClD,cAAQ,oBAAoB,oBAAoB,QAAQ;AACxD,mBAAa,SAAS;IACxB;AAEA,UAAM,SAAS,sBAA4C,SAAS,OAAO;AAE3E,YAAQ,iBAAiB,iBAAiB,KAAK;AAC/C,YAAQ,iBAAiB,oBAAoB,QAAQ;AAGrD,UAAM,YAAY,WAAW,MAAK;AAChC,aAAO,EAAE,WAAW,MAAM,WAAW,MAAK,CAAE;IAC9C,GAAG,WAAW,EAAE;EAClB,CAAC;AACH;SAiBgB,yBACd,SACA,uBACA,aAAmB;AAGnB,MAAI,yBAAyB,GAAG;AAC9B,WAAO,QAAQ,QAAQ,EAAE,WAAW,MAAM,MAAM,UAAkB,CAAE;EACtE;AAEA,SAAO,IAAI,QAAQ,aAAU;AAC3B,UAAM,kBAAkB,CAAC,UAAgB;AACvC,UAAI,MAAM,WAAW,SAAS;AAC5B,eAAO,EAAE,WAAW,MAAM,MAAM,aAAY,CAAE;MAChD;IACF;AAEA,UAAM,iBAAiB,CAAC,UAAgB;AACtC,UAAI,MAAM,WAAW,SAAS;AAC5B,eAAO,EAAE,WAAW,MAAM,MAAM,YAAW,CAAE;MAC/C;IACF;AAEA,UAAM,UAAU,MAAK;AACnB,cAAQ,oBAAoB,iBAAiB,eAAe;AAC5D,cAAQ,oBAAoB,gBAAgB,cAAc;AAC1D,mBAAa,kBAAkB;AAC/B,mBAAa,aAAa;IAC5B;AAEA,UAAM,SAAS,sBAA2C,SAAS,OAAO;AAE1E,YAAQ,iBAAiB,iBAAiB,eAAe;AACzD,YAAQ,iBAAiB,gBAAgB,cAAc;AAGvD,UAAM,qBAAqB,WAAW,MAAK;AACzC,aAAO,EAAE,WAAW,MAAM,MAAM,UAAS,CAAE;IAC7C,GAAG,wBAAwB,EAAE;AAG7B,UAAM,gBAAgB,WAAW,MAAK;AACpC,aAAO,EAAE,WAAW,OAAO,MAAM,UAAS,CAAE;IAC9C,GAAG,WAAW;EAChB,CAAC;AACH;AAkEM,SAAU,sBACd,SACA,SAA2B;AAE3B,MAAI,YAAY;AAChB,SAAO,CAAC,WAAa;AACnB,QAAI,CAAC,WAAW;AACd,kBAAY;AACZ,cAAO;AACP,cAAQ,MAAM;IAChB;EACF;AACF;AE7LM,SAAU,oBAAoB,QAAc;AAChD,QAAM,YAAY,OAAO,MAAM;AAC/B,SAAO,sBAAsB,KAAK,OAAK,EAAE,KAAK,SAAS,CAAC;AAC1D;AC1EA,eAAe,kBACb,MACA,WACA,SAAyB;AAEzB,QAAM,QAAQ,MAAM,UAAU,SAAS,MAAM,OAAO;AACpD,QAAM,KAAK,MAAM,QAAQ,KAAK,IAAI,MAAM,CAAC,IAAI;AAC7C,SAAOhB,gBAAc,EAAE,IAAK,KAAqB;AACnD;AAYO,eAAe,4BACpB,MACA,WACA,SACA,qBAAiD;AAEjD,QAAM,IAAI;AAIV,MAAI,GAAG,SAAS,mBAAmB;AACjC,UAAM,WAAW,MAAM,oBAAmB;AAC1C,WAAO,EAAE,UAAU,MAAM,EAAE,cAAuB;EACpD;AAGA,MAAI,GAAG,SAAS,sBAAsB,EAAE,aAAa,QAAQ,EAAE,MAAM,SAAS,mBAAmB;AAC/F,UAAM,UAAU,MAAM,kBAAkB,EAAE,OAAkB,WAAW,OAAO;AAC9E,QAAI;AAAS,aAAO,EAAE,UAAU,CAAC,OAAO,GAAG,MAAM,EAAE,KAAK,cAAuB;EACjF;AAGA,MAAI,GAAG,SAAS,sBAAsB,EAAE,UAAU,SAAS,mBAAmB;AAC5E,UAAM,UAAU,MAAM,kBAAkB,EAAE,QAAmB,WAAW,OAAO;AAC/E,QAAI;AAAS,aAAO,EAAE,UAAU,CAAC,OAAO,GAAG,MAAM,EAAE,SAAS,cAAuB;EACrF;AAEA,SAAO;AACT;ACNO,eAAe,mBACpB,MACA,WACA,SACA,SAA2B;AAE3B,MAAI,CAAC;AAAM,WAAO;AAElB,QAAM,IAAI;AACV,QAAM,WAAW,EAAE;AAKnB,MAAI,QAAQ,eAAe,UAAU;AACnC,UAAM,SAAS,wBAAwB,QAAQ;AAC/C,QAAI;AAAQ,aAAO,EAAE,MAAM,cAAc,MAAuB,OAAM;EACxE;AAIA,MAAI,QAAQ,kBAAkB,aAAa,cAAc,OAAO,EAAE,UAAU,UAAU;AACpF,WAAO,EAAE,MAAM,YAAY,UAAU,EAAE,MAAK;EAC9C;AAMA,QAAM,YAAY,MAAM,4BACtB,MACA,WACA,SACA,QAAQ,aAAa;AAEvB,MAAI,WAAW;AACb,WAAO,EAAE,MAAM,aAAa,UAAU,UAAU,UAAU,MAAM,UAAU,KAAI;EAChF;AAGA,QAAM,WAAW,MAAM,yBAAyB,MAAiB,WAAW,OAAO;AACnF,MAAI,UAAU;AAGZ,QAAI,QAAQ,cAAc,SAAS,SAAS,WAAW,GAAG,GAAG;AAC3D,aAAO,EAAE,MAAM,SAAS,SAAS,SAAS,SAAS,UAAU,SAAS,SAAS,UAAU,CAAC,EAAC;IAC7F;AACA,WAAO,EAAE,MAAM,YAAY,QAAQ,SAAQ;EAC7C;AAQA,MAAI,QAAQ,qBAAqB;AAC/B,UAAM,SAAS,qBAAqB,CAAC;AACrC,QAAI,QAAQ;AACV,YAAM,QAAQ,MAAM,UAAU,SAAS,OAAO,OAAkB,OAAO;AACvE,YAAM,UAAU,MAAM,QAAQ,KAAK,IAAI,MAAM,CAAC,IAAI;AAClD,UAAI,OAAO,QAAQA,gBAAc,OAAO,GAAG;AACzC,eAAO,EAAE,MAAM,YAAY,QAAQ,EAAE,SAAS,UAAU,OAAO,KAAI,EAAE;MACvE;AACA,UAAI,cAAc,KAAK,GAAG;AACxB,eAAO,EAAE,MAAM,UAAU,WAAW,OAAO,UAAU,OAAO,KAAI;MAClE;IACF;EACF;AAKA,MACE,QAAQ,kBACP,aAAa,gBAAgB,aAAa,cAAc,aAAa,aACtE,OAAO,EAAE,SAAS,UAClB;AACA,UAAM,WAAW,EAAE;AACnB,UAAM,QAAQ,aAAa,aAAa,aAAa,WAAW,WAAW;AAC3E,WAAO,EAAE,MAAM,YAAY,MAAM,EAAE,MAAM,MAAK;EAChD;AAEA,SAAO;AACT;AAOA,SAAS,qBACP,GAA0B;AAE1B,QAAM,CAAC,OAAO,UAAU,IAAI,IAC1B,EAAE,SAAS,yBACP,CAAC,EAAE,QAAQ,EAAE,UAAU,KAAK,IAC5B,EAAE,SAAS,yBACT,CAAC,EAAE,QAAQ,EAAE,UAAU,KAAK,IAC5B,EAAE,SAAS,sBAAsB,EAAE,aAAa,OAC9C,CAAC,EAAE,OAAO,EAAE,MAAM,IAAI,IACtB,CAAC,QAAW,QAAW,KAAK;AACtC,QAAM,OAAQ,UAA4D;AAC1E,MAAI,CAAC,SAAS,OAAO,SAAS,YAAY,CAAC,qBAAqB,KAAK,IAAI;AAAG,WAAO;AACnF,SAAO,EAAE,OAAO,MAAM,KAAI;AAC5B;AC7GA,SAAS,WAAW,QAAqB,OAAc;AACrD,UAAQ,OAAO,MAAI;IACjB,KAAK;AACH,aAAO,EAAE,MAAM,cAAc,MAAM,OAAO,MAAM,OAAO,QAAQ,OAAO,OAAM;IAC9E,KAAK;AACH,aAAO,EAAE,MAAM,aAAa,UAAU,OAAO,UAAU,MAAM,OAAO,MAAM,MAAK;IACjF,KAAK;AACH,aAAO;QACL,MAAM;QACN,SAAS,OAAO;QAChB,UAAU,OAAO;QACjB,OAAO,OAAO,KAAK;;IAEvB,KAAK;AACH,aAAO;QACL,MAAM;QACN,SAAS,OAAO,OAAO;QACvB,UAAU,OAAO,OAAO;QACxB;;IAEJ,KAAK;AACH,aAAO;QACL,MAAM;QACN,WAAW,OAAO;QAClB,UAAU,OAAO;QACjB;;IAEJ;AACE,YAAM,IAAI,MAAM,uCAAuC,OAAO,IAAI,GAAG;;AAE3E;AEpDA,SAAS,YAAY,MAAa;AAChC,MAAI,CAAC,QAAQ,OAAO,SAAS;AAAU,WAAO;AAC9C,SAAO,KAAK,QAAQ;AACtB;AAOA,SAAS,eAAe,MAAa;AACnC,QAAM,IAAI;AAOV,QAAM,QACJ,EAAE,SAAS,yBACP,EAAE,SACF,EAAE,SAAS,0BACT,EAAE,SAAS,sBACX,EAAE,SAAS,mBACX,EAAE,SACF;AACR,MAAI,CAAC,SAAS,EAAE;AAAU,WAAO;AACjC,QAAM,IAAI,EAAE;AACZ,QAAM,OAAO,OAAO,MAAM,WAAW,IAAI,OAAO,GAAG,SAAS,WAAW,EAAE,OAAO;AAChF,MAAI,CAAC,QAAQ,CAAC,sBAAsB,KAAK,IAAI;AAAG,WAAO;AACvD,SAAO,EAAE,OAAO,KAAI;AACtB;AAeO,eAAe,wBACpB,KACA,WACA,SACA,aAAmB;AAEnB,MAAI,CAAC,IAAI,QAAQ,IAAI,KAAK,WAAW,GAAG;AACtC,UAAM,IAAI,MAAM,GAAG,WAAW,4BAA4B;EAC5D;AAGA,QAAM,YAAY,IAAI,KAAK,CAAC;AAC5B,MAAI;AACJ,MAAI;AACJ,MAAI;AACJ,MAAI;AAGJ,QAAM,WAAW,YAAY,SAAS;AAEtC,MAAI,aAAa,cAAc;AAC7B,aAAU,UAAkB;AAC5B,QAAK,UAAkB,OAAO;AAC5B,uBAAkB,UAAkB;IACtC;EACF,WAAW,aAAa,WAAW;AACjC,aAAU,UAAkB;EAC9B,OAAO;AAIL,UAAM,SAAS,wBAAwB,QAAQ;AAC/C,UAAM,YAAY,SACd,OACA,MAAM,4BAA4B,WAAW,WAAW,SAAS,YAC/D,QAAQ,KAAK,CAAC,QAAQ,EAAiB,IAAI,CAAA,CAAE;AAEnD,UAAM,OAAO,UAAU,YAAY,OAAO,eAAe,SAAS;AAClE,UAAM,QAAQ,OAAO,MAAM,UAAU,SAAS,KAAK,OAAO,OAAO,IAAI;AACrE,UAAM,eAAe,MAAM,QAAQ,KAAK,IAAI,MAAM,CAAC,IAAI;AACvD,QAAI,WAAW,SAAS,CAAC,GAAG;AAI1B,eAAS,UAAU,SAAS,CAAC;AAC7B,iBAAW,IAAI,UAAU,IAAI;IAC/B,WAAW,QAAQA,gBAAc,YAAY,GAAG;AAO9C,eAAS;AACT,iBAAW,KAAK;IAClB,WAAW,QAAQ,cAAc,KAAK,GAAG;AAGvC,eAAS;AACT,iBAAW,KAAK;IAClB,WAAW,QAAQ;AACjB,YAAM,aAAa,MAAM,UAAU,SAAS,WAAW,OAAO;AAC9D,YAAM,eACJ,OAAO,eAAe,WAClB,aACA,cAAc,OACZ,IACA,OAAO,UAAU,KAAK;AAC9B,eAAS;AACT,oBAAc,EAAE,MAAM,WAAW,QAAQ,aAAY;IACvD,OAAO;AACL,YAAM,YAAY,MAAM,UAAU,SAAS,WAAW,OAAO;AAC7D,UAAI,MAAM,QAAQ,SAAS,KAAK,UAAU,SAAS,GAAG;AACpD,iBAAS,UAAU,CAAC;MACtB,OAAO;AACL,iBAAS;MACX;IACF;EACF;AAGA,MAAI,SAAS;AACb,MAAI,QAAwC;AAE5C,WAAS,IAAI,GAAG,IAAI,IAAI,KAAK,QAAQ,KAAK;AACxC,UAAM,MAAM,IAAI,KAAK,CAAC;AACtB,QAAI,cAAc,GAAG,GAAG;AACtB,YAAM,eAAe,IAAI;AACzB,UAAI,iBAAiB,UAAU;AAC7B,gBAAQ;MACV,WAAW,OAAO,iBAAiB,UAAU;AAC3C,iBAAS;MACX;IACF,WAAW,KAAK;AACd,YAAM,YAAY,MAAM,UAAU,SAAS,KAAK,OAAO;AACvD,UAAI,OAAO,cAAc,UAAU;AACjC,iBAAS;MACX,WAAW,aAAa,MAAM;AAE5B,iBAAS;MACX;IACF;EACF;AAaA,QAAM,aAAa,IAAI,WAAW;AAClC,MAAI,YAAY;AACd,UAAM,QACJ,YAAY,UAAU,MAAM,YACvB,WAAmC,QACpC,MAAM,UAAU,SAAS,YAAY,OAAO;AAClD,aAAS,cAAc,KAAK;EAC9B;AAEA,SAAO;IACL;IACA;IACA,GAAI,YAAY,EAAE,SAAQ;IAC1B,GAAI,SAAS,EAAE,MAAK;IACpB,GAAI,eAAe,EAAE,YAAW;;AAEpC;AEvKA,SAAS,iBAAiB,MAAyC;AAIjE,MAAI,CAAC;AAAM,WAAO;AAClB,QAAM,OAAO,KAAK;AAClB,QAAM,OAAO,KAAK;AAClB,MAAI,OAAO,SAAS,YAAY,SAAS;AAAI,WAAO;AAEpD,MAAI,SAAS,cAAc,SAAS,cAAc;AAChD,WAAO,EAAE,MAAM,OAAO,KAAK,MAA2B;EACxD;AAIA,MAAI,SAAS,oBAAoB;AAC/B,QAAI,KAAK,WAAW,GAAG;AAAG,aAAO,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,OAAO,UAAS;AACxE,QAAI,KAAK,WAAW,GAAG;AAAG,aAAO,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,OAAO,SAAQ;EACzE;AAEA,SAAO;AACT;AAEA,SAAS,mBACP,IAAe;AAEf,QAAM,MAAM,GAAG;AACf,SAAO,QAAQ,WAAW,QAAQ,cAAc,QAAQ;AAC1D;SI5DgB,YAAY,KAAc,aAAqB,WAAkB;AAC/E,QAAM,cAAc,YAAY,WAAW,SAAS,KAAK;AAGzD,MAAI,QAAQ,QAAQ,QAAQ,QAAW;AACrC,UAAM,IAAI,MAAM,eAAe,WAAW,qBAAqB,WAAW,EAAE;EAC9E;AAGA,MAAI,OAAO,QAAQ,UAAU;AAC3B,UAAM,IAAI,MACR,eAAe,WAAW,+BAA+B,OAAO,GAAG,KAAK,OAAO,GAAG,CAAC,KAAK,WAAW,EAAE;EAEzG;AAGA,MAAI,IAAI,KAAI,MAAO,IAAI;AACrB,UAAM,IAAI,MAAM,eAAe,WAAW,yBAAyB,WAAW,EAAE;EAClF;AAGA,MAAI,QAAQ,aAAa;AACvB,UAAM,IAAI,MACR,eAAe,WAAW,iEAAiE,WAAW,EAAE;EAE5G;AAGA,MAAI,QAAQ,QAAQ;AAClB,UAAM,IAAI,MACR,eAAe,WAAW,4DAA4D,WAAW,EAAE;EAEvG;AAEA,SAAO;AACT;AAYM,SAAU,cAAc,KAAW;AACvC,MAAI;AACF,UAAM,SAAS,IAAI,IAAI,KAAK,OAAO,SAAS,MAAM;AAClD,WAAO,OAAO,WAAW,OAAO,SAAS;EAC3C,QAAQ;AACN,WAAO;EACT;AACF;ACnEO,eAAe,kBACpB,KACA,WACA,SACA,aAAmB;AAInB,QAAM,EAAE,MAAM,UAAS,IAAK;AAC5B,MAAI,CAAC,QAAQ,KAAK,WAAW,GAAG;AAC9B,UAAM,IAAI,MAAM,GAAG,WAAW,kCAAkC;EAClE;AACA,QAAM,MAAM,OAAO,MAAM,UAAU,SAAS,KAAK,CAAC,GAAG,OAAO,CAAC;AAC7D,QAAM,QAAQ,WAAW,QACrB,OAAO,MAAM,UAAU,SAAS,UAAU,OAAO,OAAO,CAAC,IACzD;AAEJ,QAAM,eAAe,YAAY,KAAK,aAAa,YAAY,KAAK,MAAM,EAAE;AAE5E,SAAO,EAAE,KAAK,cAAc,MAAK;AACnC;AGhBM,SAAU,OAAO,KAAgBI,QAAa;AAClD,QAAM,KAAK,IAAI,SAASA,MAAK;AAC7B,MAAI,CAAC,IAAI;AACP,UAAM,OAAO,IAAI,eAAe;AAChC,UAAM,IAAI,MACR,GAAG,IAAI,cAAcA,MAAK,mEAA8D;EAE5F;AACA,SAAO;AACT;AAGM,SAAU,QAAQ,KAAgB,MAAY;AAClD,QAAM,MAAY,CAAA;AAClB,WAAS,IAAI,MAAM,IAAI,IAAI,KAAK,QAAQ;AAAK,QAAI,KAAK,OAAO,KAAK,CAAC,CAAC;AACpE,SAAO;AACT;ACJM,SAAU,kBAAkB,WAAoB,SAAyB;AAE7E,MAAI,OAAO,cAAc,WAAW;AAClC,WAAO;EACT;AAGA,MAAI,OAAO,cAAc,YAAY;AACnC,WAAO;EACT;AAGA,MAAI,qBAAqB,SAAS;AAChC,UAAM,IAAI,MAAM,mEAAmE;EACrF;AAGA,MAAI,OAAO,cAAc,UAAU;AAEjC,QAAI,cAAc;AAAM,aAAO,QAAQ,QAAQ,EAAE;AACjD,QAAI,cAAc;AAAM,aAAO,QAAQ,QAAQ,EAAE;AACjD,QAAI,cAAc;AAAO,aAAO,QAAQ,QAAQ,GAAG;AAGnD,UAAM,QAAQ,iBAAiB,WAAW,OAAO;AAGjD,QAAI,UAAU,QAAW;AACvB,aAAO,QAAQ,KAAK;IACtB;AAGA,WAAO,QAAQ,SAAS;EAC1B;AAGA,SAAO,QAAQ,SAAS;AAC1B;AEmCO,eAAe,YACpBY,SACA,SACA,SACA,MAAQ;AAER,QAAM,gBAAgBA,QAAO,iBAAiB;AAC9C,MAAI,aAAa;AACjB,MAAI,aAAsB;AAC1B,MAAI,cAAc;AAGlB,MAAIA,QAAO,YAAY;AACrB,IAAAA,QAAO,WAAW,OAAO,iBACvBA,QAAO,WAAW,WAClBA,QAAO,WAAW,SAClB,EAAE,MAAM,KAAI,CAAE;EAElB;AAEA,MAAI;AACF,WAAO,aAAa,eAAe;AAEjC,YAAM,iBAAiB,MAAMA,QAAO,eAAe,OAAO;AAC1D,UAAI,CAAC;AAAgB;AAGrB,UAAIA,QAAO,iBAAiB;AAC1B,cAAMA,QAAO,gBAAgB,SAAS,OAAO;MAC/C;AAGA,UAAI,QAAQ,iBAAiB,QAAQ,QAAQ;AAC3C,gBAAQ,OAAO,IAAI,QAAQ,eAAe,UAAU;MACtD;AAMA,YAAM,UAAU,MAAM,KAAK,OAAO;AAClC,UAAI,CAAC,KAAK,OAAO,GAAG;AAClB,cAAM,SAAS,QAAQ;AACvB,YAAI,OAAO,SAAS,SAAS;AAC3B,wBAAc;AACd;QACF;AACA,YAAI,OAAO,SAAS,YAAY;AAC9B;AACA,kBAAQ,QAAQ;AAEhB,cAAIA,QAAO,SAAS,eAAe;AACjC,kBAAM,IAAI,QAAQ,aAAW,WAAW,SAAS,CAAC,CAAC;UACrD;AACA;QACF;AACA,eAAO,EAAE,YAAY,YAAY,aAAa,OAAM;MACtD;AACA,mBAAa,QAAQ;AAErB;AACA,cAAQ,QAAQ;AAGhB,UAAIA,QAAO,SAAS,eAAe;AACjC,cAAM,IAAI,QAAQ,aAAW,WAAW,SAAS,CAAC,CAAC;MACrD;IACF;EACF;AAEE,QAAIA,QAAO,cAAc,CAAC,QAAQ,YAAY;AAC5C,MAAAA,QAAO,WAAW,OAAO,oBACvBA,QAAO,WAAW,WAClBA,QAAO,WAAW,OAAO;IAE7B;EACF;AAEA,SAAO,EAAE,YAAY,YAAY,YAAW;AAC9C;SAKgB,oBACd,YACA,cACA,eAAsB;AAEtB,QAAM,UAAgC;IACpC,OAAO;IACP;IACA;IACA;;AAGF,QAAMA,UAAqB;IACzB,MAAM;IACN,gBAAgB,SAAO,IAAI,SAAS,IAAI,YAAY,UAAU;IAC9D,iBAAiB,CAAC,KAAK,YAAW;AAChC,UAAI,OAAO,IAAI,aAAa,IAAI,KAAK;AACrC,UAAI,IAAI,gBAAgB,QAAQ,QAAQ;AACtC,gBAAQ,OAAO,IAAI,IAAI,cAAc,IAAI,IAAI;MAC/C;IACF;;AAGF,SAAO,EAAE,QAAAA,SAAQ,QAAO;AAC1B;AAKM,SAAU,sBACd,OACA,eAAsB;AAEtB,QAAM,UAAgC;IACpC,OAAO;IACP;IACA;;AAGF,QAAMA,UAAqB;IACzB,MAAM;IACN,gBAAgB,SAAO,IAAI,SAAS,IAAI,SAAS;IACjD,iBAAiB,CAAC,MAAM,YAAW;AAEjC,aAAO,OAAO,SAAS,EAAE,IAAI,KAAK,QAAQ,EAAC,CAAE;IAC/C;;AAGF,SAAO,EAAE,QAAAA,SAAQ,QAAO;AAC1B;AAKM,SAAU,sBACd,eACAO,oBACA,SACA,eAAsB;AAEtB,QAAM,UAAgC;IACpC,OAAO;IACP;IACA;;AAGF,QAAMP,UAAqB;IACzB,MAAM;IACN,gBAAgB,MAAMO,mBAAkB,eAAe,OAAO;;AAGhE,SAAO,EAAE,QAAAP,SAAQ,QAAO;AAC1B;AAKM,SAAU,sBACd,eACAO,oBACA,SACA,eAAsB;AAEtB,QAAM,UAAgC;IACpC,OAAO;IACP;IACA;;AAGF,QAAMP,UAAqB;IACzB,MAAM;IAGN,gBAAgB,MAAK;AACnB,YAAM,MAAMO,mBAAkB,eAAe,OAAO;AACpD,aAAO,eAAe,UAAU,IAAI,KAAK,WAAS,CAAC,KAAK,IAAI,CAAC;IAC/D;;AAGF,SAAO,EAAE,QAAAP,SAAQ,QAAO;AAC1B;SAKgB,2BACd,WACA,aACA,eAAsB;AAEtB,QAAM,UAAgC;IACpC,OAAO;IACP,YAAY;IACZ;;AAGF,QAAMA,UAAqB;IACzB,MAAM;IACN,gBAAgB,SAAO,CAAC,IAAI;IAC5B,YAAY;MACV;MACA,QAAQ;MACR,SAAS,MAAK;AACZ,gBAAQ,aAAa;MACvB;IACD;;AAGH,SAAO,EAAE,QAAAA,SAAQ,QAAO;AAC1B;SAKgB,wBACd,eACA,gBAAgB,KAAK;AAErB,QAAM,UAAgC;IACpC,OAAO;IACP;;AAGF,QAAMA,UAAqB;IACzB,MAAM;IACN;IACA,gBAAgB,MAAM;;AAGxB,SAAO,EAAE,QAAAA,SAAQ,QAAO;AAC1B;AClQA,eAAeQ,WACb,MACA,WACA,SAAyB;AAEzB,MAAI,CAAC;AAAM,WAAO;AAGlB,QAAM,IAAa;AACnB,MAAI,aAAa,GAAG,QAAQ;AAAG,WAAO,EAAE;AACxC,MAAI,aAAa,GAAG,SAAS,KAAK,OAAO,EAAE,UAAU;AAAU,WAAO,EAAE;AACxE,MAAI,aAAa,GAAG,YAAY;AAAG,WAAO,EAAE;AAC5C,QAAM/B,KAAI,MAAM,UAAU,SAAS,MAAM,OAAO;AAChD,SAAO,OAAOA,OAAM,WAAWA,KAAI;AACrC;AAQA,SAAS,cAAc,OAAc;AACnC,SAAO,OAAQ,OAA8B,qBAAqB;AACpE;AAUA,eAAe,sBACb,WACA,SAA8B;AAE9B,MAAI,OAAO,cAAc;AAAY,WAAO,QAAQ,MAAO,UAA2B,CAAE;AACxF,SAAO,kBAAkB,WAAW,OAAO;AAC7C;AASA,SAAS,UAAU,OAAc;AAC/B,QAAM,QAAQ,OAAO,KAAK;AAC1B,SAAO,OAAO,MAAM,KAAK,IAAI,IAAI;AACnC;SWiTgB,sBAAmB;AACjC,SAAO,IAAI,cAAa;AAC1B;AC1WA,SAAS,aAAa,SAAgB;AACpC,SAAOO,gBAAc,OAAO,IAAK,UAA0B,OAAO,OAAO;AAC3E;AASA,SAAS,iBAAiB,QAAqB,SAAgB;AAC7D,UAAQ,OAAO,MAAI;IACjB,KAAK;AACH,aAAO,EAAE,MAAM,YAAY,UAAU,OAAO,UAAU,QAAO;IAC/D,KAAK;AACH,aAAO,EAAE,MAAM,aAAa,UAAU,OAAO,UAAU,MAAM,OAAO,MAAM,QAAO;IACnF,KAAK;AACH,aAAO,EAAE,MAAM,YAAY,UAAU,OAAO,QAAQ,QAAO;IAC7D,KAAK;AACH,aAAO,EAAE,MAAM,YAAY,MAAM,OAAO,MAAM,OAAO,OAAO,OAAO,QAAO;IAC5E;AACE,YAAM,IAAI,MAAM,kCAAkC,OAAO,IAAI,GAAG;;AAEtE;AGtCA,SAAS,gBAAgB,MAAa;AACpC,MAAI,CAAC,QAAQ,OAAO,SAAS;AAAU,WAAO;AAC9C,QAAM,IAAI;AAQV,MAAI,EAAE,SAAS,gBAAgB,OAAO,EAAE,SAAS,YAAY,EAAE,MAAM;AACnE,WAAO,EAAE,UAAU,EAAE,KAAI;EAC3B;AAEA,MAAI,EAAE,SAAS,oBAAoB,EAAE,SAAS,oBAAoB;AAGhE,UAAM,OAAO,EAAE;AACf,UAAM,OACJ,OAAO,SAAS,WACZ,OACA,OAAQ,MAA6B,SAAS,WAC3C,KAA0B,OAC3B;AACR,QAAI;AAAM,aAAO,EAAE,UAAU,MAAM,YAAY,EAAE,OAAM;EACzD;AAEA,SAAO;AACT;AA6CA,SAAS,WAAW,OAAc;AAChC,MAAI,MAAM,QAAQ,KAAK,KAAK,WAAW,KAAK,GAAG;AAC7C,WAAO,MAAM,KAAK,KAA2B,EAAE,OAAOA,eAAa;EACrE;AACA,SAAOA,gBAAc,KAAK,IAAI,CAAC,KAAoB,IAAI,CAAA;AACzD;AAMA,eAAe,QACb,MACA,WACA,SAAyB;AAEzB,QAAM,QAAQ,MAAM,UAAU,SAAS,MAAM,OAAO;AACpD,QAAM,OAAQ,KAA4B;AAC1C,MAAI,UAAU,UAAa,KAAK,SAAS,gBAAgB,OAAO,SAAS;AAAU,WAAO;AAC1F,SAAO;AACT;AAOA,SAAS,oBAAoB,KAAW;AACtC,MAAI;AACJ,aAAW,QAAQ,IAAI,MAAM,GAAG,GAAG;AACjC,UAAM,QAAQ,CAAC,GAAG,KAAK,SAAS,sBAAsB,CAAC,EAAE,IACvD,OAAK,WAAW,EAAE,CAAC,CAAE,KAAK,EAAE,CAAC,MAAM,MAAM,MAAO,EAAE;AAEpD,QAAI,MAAM,SAAS;AAAG,gBAAU,KAAK,IAAI,WAAW,GAAG,MAAM,CAAC,KAAM,MAAM,CAAC,KAAK,EAAE;EACpF;AACA,SAAO;AACT;AMlGA,SAAS,qBACP,MAAyC;AAEzC,MAAI,OAAO,MAAM,MAAM;AAAoB,WAAO;AAClD,QAAM,OAAO,KAAK,MAAM;AACxB,MAAI,OAAO,SAAS;AAAU,WAAO;AACrC,MAAI,KAAK,WAAW,GAAG;AAAG,WAAO,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,OAAO,UAAS;AACxE,MAAI,KAAK,WAAW,GAAG;AAAG,WAAO,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,OAAO,SAAQ;AACvE,SAAO;AACT;AAGA,SAAS,eAAe,QAAqB,OAAc;AACzD,UAAQ,OAAO,MAAI;IACjB,KAAK;AACH,aAAO,EAAE,MAAM,aAAa,UAAU,OAAO,UAAU,MAAM,OAAO,MAAM,MAAK;IACjF,KAAK;AACH,aAAO;QACL,MAAM;QACN,SAAS,OAAO,OAAO;QACvB,UAAU,OAAO,OAAO;QACxB;;IAEJ,KAAK,YAAY;AAMf,YAAM,gBAAgB,OAAO,KAAK,WAAW,GAAG;AAChD,YAAM,OAAO,gBAAgB,OAAO,KAAK,MAAM,CAAC,IAAI,OAAO;AAC3D,YAAM,QAAQ,gBAAgB,WAAW,OAAO;AAChD,aAAO,EAAE,MAAM,YAAY,MAAM,OAAO,GAAI,QAAQ,EAAE,MAAK,IAAK,CAAA,EAAG;IACrE;IACA;AACE,YAAM,IAAI,MAAM,2CAA2C,OAAO,IAAI,GAAG;;AAE/E;AGnGM,SAAU,YAAY,MAAkC,MAAY;AACxE,MAAI,CAAC;AAAM,UAAM,IAAI,MAAM,GAAG,IAAI,cAAc;AAChD,SAAO;AACT;AAGM,SAAU,aACd,WACA,SACA,MACA,MAAY;AAEZ,SAAO,UAAU,SAAS,YAAY,MAAM,IAAI,GAAG,OAAO;AAC5D;SI4VgB,uBAAoB;AAClC,SAAO,IAAI,eAAc;AAC3B;SCwPgB,sBAAmB;AACjC,SAAO,IAAI,cAAa;AAC1B;AC9YA,SAAS,yBAAyB,UAA2B;AAC3D,aAAW,SAAS,kBAAkB;AACpC,QAAI,MAAM;AAAsB;AAChC,UAAM,UAAU,kBAAkB,MAAM,IAAI;AAC5C,QAAI,CAAC,SAAS;AACZ,YAAM,IAAI,MACR,2BAA2B,MAAM,IAAI,uHAC4C;IAErF;AACA,aAAS,SAAS,QAAO,CAAE;EAC7B;AACF;SErJgB,iBAAc;AAC5B,SAAO;AACT;AAKM,SAAU,uBAAuB,QAAgC;AACrE,MAAI,CAAC;AAAc;AASnB,QAAM,SAAS,OAAO,kBAClB,aACA,OAAO,oBACL,aACA;AACN,QAAM,oBAAoB,KAAK,MAAM,OAAO,aAAa,GAAG;AAC5D,QAAM,mBAAmB,KAAK,MAAM,OAAO,YAAY,GAAG;AAE1D,QAAM,QAAQ,OAAO,kBACjB,sCACA,OAAO,oBACL,sCACA;AAEN,UAAQ,eACN,gBAAgB,OAAO,YAAW,CAAE,MAAM,OAAO,MAAM,UAAU,GAAG,EAAE,CAAC,GAAG,OAAO,MAAM,SAAS,KAAK,QAAQ,EAAE,IAC/G,OACA,aAAa;AAEf,UAAQ,IAAI,eAAe,iBAAiB,iBAAiB,gBAAgB,IAAI;AACjF,MAAI,OAAO;AAAS,YAAQ,IAAI,YAAY,OAAO,OAAO,EAAE;AAC5D,MAAI,OAAO,SAAS,OAAO,KAAK,OAAO,KAAK,EAAE,SAAS,GAAG;AACxD,YAAQ,IAAI,UAAU,OAAO,KAAK;EACpC;AACA,MAAI,OAAO;AAAU,YAAQ,IAAI,aAAa,OAAO,SAAS,QAAQ,CAAC,CAAC,IAAI;AAC5E,MAAI,OAAO,QAAQ;AAAQ,YAAQ,IAAI,WAAW,OAAO,MAAM;AAC/D,UAAQ,SAAQ;AAGhB,MAAI,kBAAkB;AACpB,UAAM,QAAQ,IAAI,YAAY,6BAA6B;MACzD;MACA,SAAS;IACV,CAAA;AACD,qBAAiB,cAAc,KAAK;EACtC;AACF;AA2CM,SAAU,iBAAiB,OAA+B;AAC9D,QAAM;AAEN,MAAI,MAAM,iBAAiB;AACzB,UAAM;EACR,WAAW,MAAM,mBAAmB;AAClC,UAAM;EACR,OAAO;AACL,UAAM;EACR;AAGA,QAAM,kBAAkB,KAAK,MAAM,UAAU;AAC7C,MAAI,MAAM,kBAAkB,SAAS,KAAK;AACxC,UAAM,kBAAkB,MAAK;EAC/B;AAGA,QAAM,oBACJ,MAAM,kBAAkB,OAAO,CAAC,GAAG,MAAM,IAAI,GAAG,CAAC,IAAI,MAAM,kBAAkB;AACjF;AEvHM,SAAU,kBAAkBgB,SAAyB;AACzD,QAAM,EACJ,QACA,WAAW,SACX,oBAAoB,OACpB,eAAe,CAAA,GACf,cACA,eACA,aACA,QAAO,IACLA;AAGJ,QAAMS,iBAAgB,MAAyB;AAC7C,QAAI,OAAO,WAAW,UAAU;AAC9B,YAAM,UAAU,SAAS,cAAc,MAAM;AAC7C,aAAOzB,gBAAc,OAAO,IAAK,UAA0B;IAC7D;AACA,WAAOA,gBAAc,MAAM,IAAI,SAAS;EAC1C;AAGA,QAAM,iBAAiB,OAAO,WAAyB;AACrD,UAAM,gBAAgByB,eAAa;AACnC,QAAI,CAAC,eAAe;AAClB,cAAQ,KAAK,wBAAwB,MAAM,aAAa;AACxD;IACF;AAEA,QAAI,MAAM,OAAO,SAAS;AAG1B,QAAI,cAAc;AAChB,YAAM,aAAa,GAAG;IACxB;AAEA,QAAI;AAEF,UAAI,eAAe;AACjB,cAAM,cAAc,GAAG;MACzB;AAGA,oBAAc,UAAU,IAAI,aAAa;AAGzC,YAAM,WAAW,MAAM,MAAM,KAAK;QAChC,QAAQ;QACR,SAAS;UACP,QAAQ;UACR,cAAc;UACd,8BAA8B;QAC/B;QACD,GAAG;MACJ,CAAA;AAED,UAAI,CAAC,SAAS,IAAI;AAChB,cAAM,IAAI,MAAM,QAAQ,SAAS,MAAM,KAAK,SAAS,UAAU,EAAE;MACnE;AAEA,YAAM,OAAO,MAAM,SAAS,KAAI;AAEhC,YAAM,0BAA0B,CAAC,aAAa,GAAG,MAAM,UAAU,EAAE,kBAAiB,CAAE;AAGtF,oBAAc,UAAU,OAAO,aAAa;AAG5C,UAAI,aAAa;AACf,cAAM,YAAY,KAAK,IAAI;MAC7B;AAGA,8BAAwB,QAAQ,eAAe,EAAE,KAAK,UAAU,OAAM,CAAE;IAC1E,SAAS,OAAO;AACd,oBAAc,UAAU,OAAO,aAAa;AAE5C,UAAI,SAAS;AACX,gBAAQ,OAAgB,GAAG;MAC7B,OAAO;AACL,gBAAQ,MAAM,6BAA6B,KAAK;MAClD;IACF;EACF;AAGA,SAAO,iBAAiB,YAAY,cAAc;AAGlD,SAAO;IACL,SAAS,MAAK;AACZ,aAAO,oBAAoB,YAAY,cAAc;IACvD;IACA,QAAAT;;AAEJ;AA4CM,SAAU,oBAAoB,UAAoC;AACtE,MAAI,oBAAoB,KAAK;AAC3B,aAAS,IAAI,eAAe,mBAAmB;EACjD,WAAW,YAAY,OAAO,SAAS,QAAQ,YAAY;AACzD,aAAS,IAAI,eAAe,mBAAmB;EACjD,WAAW,YAAY,OAAO,aAAa,UAAU;AACnD,aAAS,aAAa,IAAI;EAC5B;AACF;AC/HA,SAAS,gBAAgB,MAAuB;AAE9C,MAAI,cAAc,KAAK,IAAI,GAAG;AAC5B,WAAO;EACT;AAGA,MAAI,KAAK,UAAU,KAAK,WAAW,SAAS;AAC1C,WAAO;EACT;AAGA,MAAI,KAAK,aAAa,UAAU,GAAG;AACjC,WAAO;EACT;AAGA,MAAI,KAAK,aAAa,eAAe,KAAK,KAAK,aAAa,cAAc,GAAG;AAC3E,WAAO;EACT;AAGA,MAAI,KAAK,aAAa,iBAAiB,KAAK,aAAa,WAAW;AAClE,WAAO;EACT;AAEA,SAAO;AACT;AAKA,SAAS,kBAAkB,OAAiB;AAE1C,MAAI,MAAM,WAAW,MAAM,WAAW,MAAM,YAAY,MAAM,QAAQ;AACpE,WAAO;EACT;AAGA,MAAI,MAAM,WAAW,GAAG;AACtB,WAAO;EACT;AAEA,SAAO;AACT;AAeM,SAAU,cAAcA,SAAqB;AACjD,QAAM,EACJ,WACA,QACA,eAAe,WACf,eAAe,QACf,aAAa,OACb,WAAW,SACX,UAAU,MACV,oBAAoB,OACpB,eAAe,CAAA,GACf,eACA,aACA,QAAO,IACLA;AAGJ,QAAMS,iBAAgB,MAAyB;AAC7C,QAAI,CAAC,QAAQ;AACX,aAAO,SAAS;IAClB;AACA,QAAI,OAAO,WAAW,UAAU;AAC9B,YAAM,UAAU,SAAS,cAAc,MAAM;AAC7C,aAAOzB,gBAAc,OAAO,IAAK,UAA0B;IAC7D;AACA,WAAOA,gBAAc,MAAM,IAAI,SAAS;EAC1C;AAGA,QAAM,QAAQ,OACZ,KACA,SAAiB,OACjB,OAAwB,SACP;AACjB,UAAM,gBAAgByB,eAAa;AACnC,QAAI,CAAC,eAAe;AAClB,cAAQ,KAAK,oBAAoB,MAAM,aAAa;AACpD;IACF;AAEA,QAAI;AAEF,UAAI,eAAe;AACjB,cAAM,SAAS,MAAM,cAAc,KAAK,MAAM;AAC9C,YAAI,WAAW,OAAO;AACpB;QACF;MACF;AAGA,oBAAc,UAAU,IAAI,aAAa;AACzC,gBAAU,UAAU,IAAI,aAAa;AAGrC,YAAM,cAA2B;QAC/B;QACA,SAAS;UACP,QAAQ;UACR,cAAc;UACd,cAAc;QACf;QACD,GAAG;;AAGL,UAAI,QAAQ,WAAW,OAAO;AAC5B,oBAAY,OAAO;MACrB;AAEA,YAAM,WAAW,MAAM,MAAM,KAAK,WAAW;AAE7C,UAAI,CAAC,SAAS,IAAI;AAChB,cAAM,IAAI,MAAM,QAAQ,SAAS,MAAM,KAAK,SAAS,UAAU,EAAE;MACnE;AAEA,YAAM,OAAO,MAAM,SAAS,KAAI;AAEhC,YAAM,0BAA0B,CAAC,aAAa,GAAG,MAAM,UAAU,EAAE,kBAAiB,CAAE;AAGtF,oBAAc,UAAU,OAAO,aAAa;AAC5C,gBAAU,UAAU,OAAO,aAAa;AAGxC,UAAI,WAAW,WAAW,OAAO;AAC/B,eAAO,QAAQ,UAAU,MAAM,IAAI,GAAG;MACxC;AAGA,UAAI,aAAa;AACf,cAAM,YAAY,KAAK,IAAI;MAC7B;AAGA,8BAAwB,QAAQ,WAAW,EAAE,KAAK,QAAQ,UAAU,OAAM,CAAE;IAC9E,SAAS,OAAO;AACd,oBAAc,UAAU,OAAO,aAAa;AAC5C,gBAAU,UAAU,OAAO,aAAa;AAExC,UAAI,SAAS;AACX,gBAAQ,OAAgB,GAAG;MAC7B,OAAO;AACL,gBAAQ,MAAM,yBAAyB,KAAK;AAE5C,eAAO,SAAS,OAAO;MACzB;IACF;EACF;AAGA,QAAM,cAAc,OAAO,UAAqB;AAE9C,UAAM,OAAQ,MAAM,OAAmB,QAAQ,YAAY;AAC3D,QAAI,CAAC,MAAM;AACT;IACF;AAGA,QAAI,CAAC,kBAAkB,KAAK,GAAG;AAC7B;IACF;AAGA,QAAI,CAAC,gBAAgB,IAAI,GAAG;AAC1B;IACF;AAGA,UAAM,eAAc;AACpB,UAAM,gBAAe;AAGrB,UAAM,MAAM,KAAK,IAAI;EACvB;AAGA,QAAM,eAAe,OAAO,UAAsB;AAChD,QAAI,CAAC,YAAY;AACf;IACF;AAEA,UAAM,OAAQ,MAAM,OAAmB,QAAQ,YAAY;AAC3D,QAAI,CAAC,MAAM;AACT;IACF;AAGA,QAAI,KAAK,aAAa,eAAe,KAAK,KAAK,aAAa,cAAc,GAAG;AAC3E;IACF;AAGA,QAAI,KAAK,UAAU,KAAK,WAAW,SAAS;AAC1C;IACF;AAGA,UAAM,eAAc;AACpB,UAAM,gBAAe;AAGrB,UAAM,UAAU,KAAK,UAAU,OAAO,YAAW;AACjD,UAAM,WAAW,IAAI,SAAS,IAAI;AAElC,QAAI;AACJ,QAAI,OAAwB;AAE5B,QAAI,WAAW,OAAO;AACpB,YAAM,SAAS,IAAI,gBAAe;AAClC,eAAS,QAAQ,CAAC,OAAO,QAAO;AAC9B,eAAO,OAAO,KAAK,OAAO,KAAK,CAAC;MAClC,CAAC;AACD,YAAM,GAAG,KAAK,UAAU,OAAO,SAAS,QAAQ,IAAI,OAAO,SAAQ,CAAE;IACvE,OAAO;AACL,YAAM,KAAK,UAAU,OAAO,SAAS;AACrC,aAAO;IACT;AAGA,UAAM,MAAM,KAAK,QAAQ,IAAI;EAC/B;AAGA,YAAU,iBAAiB,SAAS,WAAW;AAC/C,MAAI,YAAY;AACd,cAAU,iBAAiB,UAAU,YAAY;EACnD;AAGA,SAAO;IACL,SAAS,MAAK;AACZ,gBAAU,oBAAoB,SAAS,WAAW;AAClD,gBAAU,oBAAoB,UAAU,YAAY;IACtD;IACA,QAAAT;IACA;;AAEJ;AAiDM,SAAU,gBAAgB,UAAoC;AAClE,MAAI,oBAAoB,KAAK;AAC3B,aAAS,IAAI,WAAW,eAAe;EACzC,WAAW,YAAY,OAAO,SAAS,QAAQ,YAAY;AACzD,aAAS,IAAI,WAAW,eAAe;EACzC,WAAW,YAAY,OAAO,aAAa,UAAU;AACnD,aAAS,SAAS,IAAI;EACxB;AACF;AClZM,SAAU,eAAe,SAAgB;AAC7C,QAAM,WAAW,QAAQ,aAAa,WAAW;AACjD,MAAI;AAAU,WAAO;AAErB,QAAM,WAAW,QAAQ,QAAQ,QAAQ,GAAG,aAAa,MAAM;AAC/D,MAAI;AAAU,WAAO,SAAS,MAAM,GAAG,EAAE,CAAC;AAE1C,MAAI,OAAO,aAAa,aAAa;AACnC,UAAM,UAAU,SAAS,iBAAiB;AAC1C,QAAI;AAAS,aAAO,QAAQ,MAAM,GAAG,EAAE,CAAC;EAC1C;AAEA,SAAOU;AACT;AC6BM,SAAU,6BAA6BC,OAAmB;AAC9D,iBAAeA;AACjB;AAEA,SAAS,OAAI;AACX,MAAI,CAAC,cAAc;AACjB,UAAM,IAAI,MACR,gIAAgI;EAEpI;AACA,SAAO;AACT;AA0DA,SAAS,eAAe,MAAa;AACnC,SAAO,KAAK,SAAS;AACvB;AAMA,SAAS,kBACP,SACA,MACA,YACA,QAA+B;AAE/B,SAAO,QAAQ,cAAc,IAAI,YAAY,MAAM,EAAE,SAAS,MAAM,YAAY,OAAM,CAAE,CAAC;AAC3F;AAOA,SAAS,YAAY,SAAgB;AACnC,MAAI,CAAC,QAAQ,aAAa,iBAAiB,GAAG;AAC5C,YAAQ,aAAa,mBAAmB,EAAE;EAC5C;AACF;AAUA,SAAS,iBAAc;AACrB,QAAM,EAAE,UAAS,IAAK;AACtB,MAAI,OAAO,WAAW,UAAU,YAAY;AAC1C,WAAO,UAAU,MAAK;EACxB;AACA,SAAO,IAAI,QAAQ,aAAW,WAAW,SAAS,CAAC,CAAC;AACtD;ACsRA,SAAS,eAAe,OAAc;AACpC,MAAI,UAAU,QAAQ,UAAU;AAAW,WAAO;AAClD,MAAI,OAAO,UAAU,YAAY,OAAO,UAAU,YAAY,OAAO,UAAU,WAAW;AACxF,WAAO;EACT;AACA,MAAI,iBAAiB,SAAS;AAC5B,WAAO,gBAAgB,KAAK;EAC9B;AACA,MAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,WAAO,SAAS,MAAM,MAAM;EAC9B;AACA,MAAI,iBAAiB,KAAK;AACxB,WAAO,OAAO,MAAM,IAAI;EAC1B;AACA,MAAI,iBAAiB,KAAK;AACxB,WAAO,OAAO,MAAM,IAAI;EAC1B;AACA,MAAI,OAAO,UAAU,YAAY;AAC/B,WAAO,UAAW,MAA4B,QAAQ,WAAW;EACnE;AACA,MAAI,OAAO,UAAU,UAAU;AAC7B,UAAM,OAAO,OAAO,KAAK,KAAe;AACxC,QAAI,KAAK,UAAU,GAAG;AACpB,aAAO,IAAI,KAAK,KAAK,IAAI,CAAC;IAC5B;AACA,WAAO,IAAI,KAAK,MAAM,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC;EAC/D;AACA,SAAO,OAAO,KAAK;AACrB;AAEA,SAAS,gBAAgB,IAAW;AAClC,MAAI,OAAO,IAAI,GAAG,QAAQ,YAAW,CAAE;AACvC,MAAI,GAAG;AAAI,YAAQ,IAAI,GAAG,EAAE;AAC5B,MAAI,GAAG,UAAU,SAAS,GAAG;AAC3B,YAAQ,IAAI,MAAM,KAAK,GAAG,SAAS,EAAE,KAAK,GAAG,CAAC;EAChD;AACA,UAAQ;AACR,SAAO;AACT;AC3OA,SAAS,IAAI,UAAkB;AAC7B,uBAAqB;AACrB,WAAS,MAAK;AAChB;AAQA,eAAe,cAAW;AACxB,MAAI;AAAoB,WAAO;AAC/B,MAAI,CAAC,iBAAiB;AACpB,UAAM,EAAE,uBAAAC,wBAAuB,sBAAAC,sBAAoB,IAAK,MAAM,QAAA,QAAA,EAAA,KAAA,WAAA;AAAA,aAAA;IAAA,CAAA;AAC9D,UAAMC,WAAS,IAAIF,uBAAsB,EAAE,qBAAqB,OAAO,oBAAmB,CAAE;AAC5F,UAAME,SAAO,WAAU;AACvB,sBAAkBD,sBAAqBC,QAAM;EAC/C;AACA,SAAO;AACT;AA2SA,SAAS,qBAAkB;AACzB,MAAI,CAAC,kBAAkB;AACrB,uBAAmB,IAAI,gBAAe;AAEtC,sBAAiB,EAAG,cAAc,cAAc,iBAAiB,KAAK;EACxE;AACA,SAAO;AACT;AAMA,SAAS,oBAAiB;AACxB,MAAI,CAAC,iBAAiB;AAGpB,sBAAkB,IAAI,QAAQ;MAC5B,UAAU;MAGV,QAAQ,MAAM,OAAO;IACtB,CAAA;AAGD,wBAAoB,gBAAgB,gBAAgB;AACpD,oBAAgB,gBAAgB,gBAAgB;AAIhD,QAAI,OAAO,eAAe,aAAa;AACrC,YAAM,wBAAwB;AAG9B,4BAAsB,eAAe,sBAAsB,gBAAgB,CAAA;AAC3E,4BAAsB,aAAa,UAAU;AAE7C,4BAAsB,aAAa,YAAY,gBAAiB;IAClE;EACF;AACA,SAAO;AACT;AASA,SAAS,mBAAmB,OAAc;AACxC,SACE,OAAO,UAAU,YAAY,UAAU,QAAQ,YAAY,SAAS,MAAM,kBAAkB;AAEhG;AAKA,SAAS,MAAM,OAAc;AAC3B,SAAO,OAAO,UAAU,YAAY,UAAU,QAAQ,QAAQ;AAChE;AAUA,eAAe,YACb,MACA,SAAiB;AAEjB,QAAM,EAAE,0BAAAC,0BAAwB,IAAK,MAAM,QAAA,QAAA,EAAA,KAAA,WAAA;AAAA,WAAA;EAAA,CAAA;AAC3C,QAAM,MAAM,MAAMA,0BAAyB,IAAI;AAC/C,QAAM,mBAAmB,UAAU,cAAc,OAAsB,IAAI,cAAa;AACxF,SAAO,MAAM,kBAAiB,EAAG,QAAQ,KAAgB,gBAAgB;AAC3E;AAMA,eAAe,YAAY,KAAa,SAAiB;AACvD,MAAI,OAAO,QAAQ,YAAY,IAAI,KAAI,EAAG,WAAW,GAAG;AACtD,UAAM,IAAI,MAAM,qCAAqC;EACvD;AAGA,QAAM,EAAE,eAAAC,gBAAe,0BAAAD,0BAAwB,IAAK,MAAM,QAAA,QAAA,EAAA,KAAA,WAAA;AAAA,WAAA;EAAA,CAAA;AAC1D,QAAM,OAAO,MAAMC,eAAc,GAAG;AACpC,QAAM,MAAM,MAAMD,0BAAyB,IAAI;AAE/C,QAAM,mBAAmB,UAAU,cAAc,OAAsB,IAAI,cAAa;AAExF,SAAO,MAAM,kBAAiB,EAAG,QAAQ,KAAgB,gBAAgB;AAC3E;AAKA,eAAe,eAAe,KAAW;AACvC,QAAM,QAAQ,YAAY,IAAG;AAE7B,MAAI,OAAO,QAAQ,YAAY,IAAI,KAAI,EAAG,WAAW,GAAG;AACtD,WAAO;MACL,IAAI;MACJ,QAAQ,CAAC,EAAE,SAAS,uCAAuC,MAAM,GAAG,QAAQ,EAAC,CAAE;MAC/E,MAAM,EAAE,QAAQ,OAAO,UAAU,YAAY,QAAQ,YAAY,IAAG,IAAK,MAAK;;EAElF;AAEA,MAAI;AACF,UAAM,EAAE,eAAAC,gBAAe,0BAAAD,0BAAwB,IAAK,MAAM,QAAA,QAAA,EAAA,KAAA,WAAA;AAAA,aAAA;IAAA,CAAA;AAC1D,UAAM,OAAO,MAAMC,eAAc,KAAK,EAAE,oBAAoB,KAAI,CAAE;AAClE,UAAM,MAAM,MAAMD,0BAAyB,IAAI;AAG/C,UAAM,SAAS,KAAK,aAAa,OAAO,CAAC,MAA4B,EAAE,aAAa,OAAO;AAC3F,UAAM,YAAY,UAAU,OAAO,SAAS;AAE5C,WAAO;MACL,IAAI,CAAC;MACL,KAAK,YAAY,SAAa;MAC9B,KAAK;MACL,GAAI,YACA;QACE,QAAQ,OAAO,IAAI,CAAC,OAA4B;UAC9C,SAAS,EAAE;UACX,MAAM;UACN,QAAQ;QACT,EAAC;MACH,IACD,CAAA;MACJ,MAAM;QACJ,QAAQ;QACR,UAAU;QACV,QAAQ,YAAY,IAAG,IAAK;MAC7B;;EAEL,SAAS,GAAG;AACV,WAAO;MACL,IAAI;MACJ,QAAQ,CAAC,EAAE,SAAU,EAAY,SAAS,MAAM,GAAG,QAAQ,EAAC,CAAE;MAC9D,MAAM,EAAE,QAAQ,OAAO,UAAU,YAAY,QAAQ,YAAY,IAAG,IAAK,MAAK;;EAElF;AACF;AAMA,eAAe,UAAU,MAAc,UAAiB;AACtD,QAAM,OAAO,YAAY;AAIzB,QAAM,WAAW,MAAM,YAAW;AAClC,MAAI,CAAC,SAAS,OAAO;AACnB,UAAM,IAAI,MAAM,cAAc,SAAS,IAAI,2CAA2C;EACxF;AACA,QAAM,EAAE,gBAAAE,gBAAc,IAAK,MAAM,QAAA,QAAA,EAAA,KAAA,WAAA;AAAA,WAAA;EAAA,CAAA;AAEjC,QAAM,OAAO,MAAM,SAAS,MAAM,MAAM,IAAI;AAC5C,MAAI,CAAC,MAAM;AACT,UAAM,IAAI,MAAM,oBAAoB,IAAI,QAAQ,IAAI,cAAc;EACpE;AAMA,SAAO,MAAMA,gBAAe,IAA4C;AAC1E;AAMA,eAAe,YAAY,KAAa,UAAgB;AACtD,QAAM,WAAW,MAAM,YAAW;AAClC,MAAI,CAAC,SAAS,QAAQ;AACpB,UAAM,IAAI,MAAM,cAAc,SAAS,IAAI,2CAA2C;EACxF;AACA,QAAM,EAAE,eAAAD,eAAa,IAAK,MAAM,QAAA,QAAA,EAAA,KAAA,WAAA;AAAA,WAAA;EAAA,CAAA;AAEhC,QAAM,OAAO,MAAMA,eAAc,GAAG;AACpC,SAAO,SAAS,OAAO,MAAM,QAAQ;AACvC;AASA,eAAe,QAAQ,KAAc,SAA0B;AAC7D,MAAI,CAAC,KAAK;AACR,UAAM,IAAI,MAAM,+BAA+B;EACjD;AAEA,QAAM,mBAAmB,WAAW,cAAa;AACjD,SAAO,MAAM,kBAAiB,EAAG,QAAQ,KAAK,gBAAgB;AAChE;AAKA,SAAS,sBAAsB,SAAwB;AACrD,SAAO,IAAI,QAAQ,OAAO;AAC5B;AAQA,SAAS,aAAU;AACjB,SAAO;AACT;AAkBA,SAAS,eAAe,OAAiB;AACvC,SAAO;IACL,SAAS,MAAM;IACf,MAAM,MAAM,QAAQ;IACpB,QAAQ,MAAM,UAAU;;AAE5B;AA4BA,SAAS,YAAY,MAAc,SAA2B;AAC5D,MAAI,OAAO,SAAS,UAAU;AAC5B,UAAM,IAAI,UAAU,uBAAuB;EAC7C;AAGA,QAAM,SAAS,SAAS,IAAI,MAAM,OAAO;AACzC,MAAI,QAAQ;AACV,WAAO;EACT;AAEA,QAAM,YAAY,YAAY,IAAG;AACjC,QAAM,OAAO,SAAS,YAAY;AAElC,MAAI;AAIF,UAAM,cAAcE,MAAc,MAAM,CAAA,CAAE;AAC1C,UAAM,SAAS,YAAY,IAAG,IAAK;AAEnC,QAAI,YAAY,WAAW,YAAY,MAAM;AAK3C,YAAM,YAAY,YAAY,UAAU,CAAA;AACxC,YAAM,SAAwB;QAC5B,IAAI;QACJ,KAAK,YAAY;QACjB,GAAI,UAAU,SAAS,IAAI,EAAE,QAAQ,UAAU,IAAI,cAAc,EAAC,IAAK,CAAA;QACvE,MAAM;UACJ,QAAQ;UACR,UAAU;UACV;QACD;;AAEH,eAAS,IAAI,MAAM,SAAS,MAAM;AAClC,aAAO;IACT,OAAO;AACL,aAAO;QACL,IAAI;QACJ,QAAQ,YAAY,QAAQ,CAAC,eAAe,YAAY,KAAK,CAAC,IAAI,CAAA;QAClE,MAAM;UACJ,QAAQ;UACR,UAAU;UACV;QACD;;IAEL;EACF,SAAS,OAAO;AACd,UAAM,SAAS,YAAY,IAAG,IAAK;AACnC,WAAO;MACL,IAAI;MACJ,QAAQ;QACN;UACE,SAAS,iBAAiB,QAAQ,MAAM,UAAU;UAClD,MAAM;UACN,QAAQ;QACT;MACF;MACD,MAAM;QACJ,QAAQ;QACR,UAAU;QACV;MACD;;EAEL;AACF;AAgCA,eAAe,aAAa,MAAc,SAA2B;AACnE,MAAI,OAAO,SAAS,UAAU;AAC5B,UAAM,IAAI,UAAU,uBAAuB;EAC7C;AAEA,QAAM,OAAO,SAAS,YAAY;AAOlC,MAAI,SAAS,oBAAoB,SAAS,eAAe,CAAC,OAAO,UAAU;AACzE,WAAO,YAAY,MAAM,OAAO;EAClC;AAGA,QAAM,SAAS,SAAS,IAAI,MAAM,OAAO;AACzC,MAAI,QAAQ;AACV,WAAO;EACT;AAEA,QAAM,YAAY,YAAY,IAAG;AAGjC,MAAI;AACF,UAAM,WAAW,MAAM,YAAW;AAClC,UAAM,YAAY,MAAM,SAAS,WAAW,MAAM,IAAI;AAEtD,QAAI,eAAc,GAAI;AAIpB,YAAMxC,WAAW,UAAU,KAAmC;AAC9D,YAAM,SAAS;QACb,OAAO,KAAK,UAAU,GAAG,GAAG;QAC5B,UAAU;QACV,YAAY,UAAU;QACtB,WAAW,OAAO;QAClB,iBAAiB,UAAU;QAC3B,mBAAmB,CAAC,UAAU,kBAAkB,UAAU,iBAAiB;QAC3E,GAAI,OAAOA,aAAY,WAAW,EAAE,SAAAA,SAAO,IAAK,CAAA;QAChD,GAAI,UAAU,UAAU,SAAS,EAAE,QAAQ,UAAU,SAAQ,IAAK,CAAA;QAClE,WAAW,KAAK,IAAG;QACnB,UAAU,YAAY,IAAG,IAAK;;AAEhC,6BAAuB,MAAM;AAC7B,uBAAiB,MAAM;IACzB;AAEA,QAAI,UAAU,kBAAkB,UAAU,KAAK;AAC7C,YAAM,SAAS,YAAY,IAAG,IAAK;AACnC,YAAMyC,UAAwB;QAC5B,IAAI;QACJ,KAAK,UAAU;QACf,MAAM;UACJ,QAAQ;UACR,YAAY,UAAU;UACtB,UAAU;UACV;UACA,YAAY;UACZ,GAAI,UAAU,UAAU,SAAS,EAAE,UAAU,UAAU,SAAQ,IAAK,CAAA;QACrE;;AAEH,eAAS,IAAI,MAAM,SAASA,OAAM;AAClC,aAAOA;IACT;AAGA,UAAM,eAAe,UAAU,gBAAgB;AAC/C,UAAM,SAAS,YAAY,cAAc,EAAE,GAAG,SAAS,UAAU,iBAAgB,CAAE;AACnF,UAAM,cAA6B;MACjC,GAAG;MACH,MAAM;QACJ,GAAG,OAAO;QACV,UAAU;QACV,YAAY,UAAU;QACtB,YAAY;MACb;;AAEH,aAAS,IAAI,MAAM,SAAS,WAAW;AACvC,WAAO;EACT,QAAQ;AAEN,WAAO,YAAY,MAAM,EAAE,GAAG,SAAS,UAAU,KAAI,CAAE;EACzD;AACF;AA0CA,eAAe,SACb,MACA,SACA,SAA2B;AAE3B,MAAI,OAAO,SAAS,YAAY,KAAK,KAAI,EAAG,WAAW,GAAG;AACxD,UAAM,IAAI,MAAM,iCAAiC;EACnD;AAGA,MAAI;AACJ,MAAI,CAAC,SAAS;AACZ,uBAAmB,cAAa;EAClC,WAAW,mBAAmB,SAAS;AACrC,uBAAmB,cAAc,OAAsB;EACzD,WAAW,mBAAmB,OAAO,GAAG;AACtC,uBAAmB;EACrB,OAAO;AAGL,UAAM,0BAA0B;AAChC,QAAI,MAAM,uBAAuB,GAAG;AAClC,yBAAmB,cAAc,wBAAwB,EAAE;IAC7D,OAAO;AAEL,yBAAmB,cAAa;IAClC;EACF;AAEA,QAAM,WAAW,MAAM,aAAa,KAAK,KAAI,GAAI,OAAO;AAExD,MAAI,CAAC,SAAS,IAAI;AAChB,UAAM,WAAW,SAAS,SAAS,CAAC,GAAG,WAAW;AAClD,UAAM,IAAI,MAAM,uBAAuB,QAAQ,EAAE;EACnD;AAEA,SAAO,QAAQ,SAAS,KAAM,gBAAgB;AAChD;AAgCA,eAAe,SAAS,MAAc,SAA2B;AAC/D,QAAM,SAAS,MAAM,aAAa,MAAM,OAAO;AAM/C,QAAM,SAAS,OAAO,UAAU,CAAA;AAChC,SAAO;IACL,OAAO,OAAO,MAAM,OAAO,WAAW;IACtC,QAAQ,OAAO,SAAS,IAAI,SAAS;;AAEzC;AA8BA,SAAS,wBACP,SACA,QAAyB;AAEzB,MAAI,QAAQ;AACV,WAAO,mBAAmB,QAAQ,OAAO;EAC3C;AACA,SAAO,cAAc,OAAO;AAC9B;AEtmCM,SAAU,YAAY,MAAgB,SAAyB;AACnE,SAAO,YAAY,MAAM,SAAS,cAAc,IAAI;AACtD;AAMA,SAAS,IAAI,MAAc;AACzB,QAAM,IAA4B,CAAA;AAClC,MAAI,OAAO,KAAK,UAAU;AAAU,MAAE,QAAQ,KAAK;AACnD,MAAI,OAAO,KAAK,QAAQ;AAAU,MAAE,MAAM,KAAK;AAC/C,MAAI,OAAO,KAAK,SAAS;AAAU,MAAE,OAAO,KAAK;AACjD,MAAI,OAAO,KAAK,WAAW;AAAU,MAAE,SAAS,KAAK;AACrD,SAAO;AACT;AAOA,SAAS,YAAY,MAAgB,OAA0B;AAC7D,MAAI,CAAC;AAAM,WAAO,EAAE,MAAM,WAAW,OAAO,KAAI;AAEhD,UAAQ,KAAK,MAAI;IACf,KAAK;AACH,aAAO,oBAAoB,MAAM,KAAK;IACxC,KAAK;AACH,aAAOC,iBAAe,MAAM,KAAK;IACnC,KAAK;AACH,aAAO,uBAAuB,MAAM,KAAK;IAC3C,KAAK,WAAW;AACd,YAAM,aAAc,KAAK,cAAc,CAAA;AACvC,UAAI,WAAW,WAAW,GAAG;AAC3B,eAAO,EAAE,MAAM,WAAW,OAAO,MAAM,GAAG,IAAI,IAAI,EAAC;MACrD;AACA,UAAI,WAAW,WAAW,GAAG;AAC3B,eAAO,YAAY,WAAW,CAAC,GAAG,KAAK;MACzC;AAEA,aAAO,YAAY,WAAW,CAAC,GAAG,KAAK;IACzC;IACA,KAAK;AACH,aAAO,aAAa,MAAM,KAAK;IAGjC,KAAK;AACH,aAAO;QACL,MAAM;QACN,SAAU,KAAK,WAAsB;QACrC,OAAQ,KAAK,SAAoB;QACjC,GAAG,IAAI,IAAI;;IAIf,KAAK;AACH,aAAO;QACL,MAAM;QACN,OAAO,KAAK;QACZ,GAAG,IAAI,IAAI;;IAEf,KAAK;AACH,aAAO,EAAE,MAAM,WAAW,OAAO,KAAK,OAAiB,GAAG,IAAI,IAAI,EAAC;IACrE,KAAK;AACH,aAAO;QACL,MAAM;QACN,OAAQ,KAAK,SAAS,KAAK,YAAY;QACvC,GAAG,IAAI,IAAI;;IAEf,KAAK;AACH,aAAO;QACL,MAAM;QACN,OAAQ,KAAK,QAAQ,KAAK,eAAe;QACzC,GAAG,IAAI,IAAI;;IAEf,KAAK;AAKH,UAAI,KAAK,UAAU,aAAa,KAAK,UAAU,WAAW,KAAK,UAAU,UAAU;AACjF,eAAO;UACL,MAAM;UACN,MAAO,KAAK,QAAQ;UACpB,OAAO,KAAK;UACZ,GAAG,IAAI,IAAI;;MAEf;AACA,aAAO;QACL,MAAM;QACN,OAAQ,KAAK,QAAQ,KAAK,SAAS;QACnC,MAAO,KAAK,QAAQ;QACpB,GAAG,IAAI,IAAI;;IAEf,KAAK;IACL,KAAK;AACH,aAAO,kBAAkB,MAAM,KAAK;IACtC,KAAK;AACH,aAAO,cAAc,MAAM,KAAK;IAClC,KAAK;AACH,aAAO,cAAc,MAAM,KAAK;IAClC,KAAK;AACH,aAAO,YAAY,MAAM,KAAK;IAChC,KAAK;AACH,aAAO;QACL,MAAM;QACN,UAAU,KAAK;QACf,SAAS,YAAa,KAAK,YAA0B,KAAK,SAAsB,KAAK;QACrF,GAAG,IAAI,IAAI;;IAEf,KAAK;AACH,aAAO;QACL,MAAM;QACN,OAAO,YAAY,KAAK,OAAmB,KAAK;QAChD,UAAU,OAAO,KAAK,QAAQ;QAC9B,QAAQ,KAAK,WAAW;QACxB,SAAS,KAAK,YAAY;QAC1B,GAAG,IAAI,IAAI;;IAEf,KAAK;AACH,aAAO,EAAE,MAAM,WAAW,OAAO,KAAK,OAAiB,GAAG,IAAI,IAAI,EAAC;IACrE,KAAK;AACH,aAAO,EAAE,MAAM,WAAW,OAAQ,KAAK,OAAO,IAAe,GAAG,IAAI,IAAI,EAAC;IAC3E,KAAK;AACH,aAAO;QACL,MAAM;QACN,MAAO,KAAK,QAAQ;QACpB,OAAQ,KAAK,SAAS;QACtB,GAAG,IAAI,IAAI;;IAMf,KAAK;AACH,aAAO;QACL,MAAM;QACN,WAAY,KAAK,YAAY,CAAA,GAAmB,IAAI,aAAW,YAAY,SAAS,KAAK,CAAC;QAC1F,GAAG,IAAI,IAAI;;IAEf,KAAK;AACH,aAAO;QACL,MAAM;QACN,QAAQ,EAAE,MAAM,cAAc,OAAO,KAAI;QACzC,UAAU,IAAI,KAAK,aAAuB;QAC1C,GAAG,IAAI,IAAI;;IAEf,KAAK,wBAAwB;AAC3B,YAAM,WAAW,KAAK;AACtB,aAAO;QACL,MAAM;QACN,QAAQ,YAAY,KAAK,QAAoB,KAAK;QAClD,UAAW,UAAU,QAAQ,UAAU,SAAS;QAChD,GAAG,IAAI,IAAI;;IAEf;IACA,KAAK;AACH,aAAO;QACL,MAAM;QACN,OAAQ,KAAK,SAAS,KAAK,YAAY;QACvC,GAAG,IAAI,IAAI;;IAEf,KAAK;AACH,aAAO;QACL,MAAM;QACN,UAAU,KAAK;QAEf,GAAI,KAAK,SAAS,EAAE,QAAQ,YAAY,KAAK,QAAoB,KAAK,EAAC,IAAK,CAAA;QAC5E,GAAG,IAAI,IAAI;;IAEf,KAAK;AACH,aAAO;QACL,MAAM;QACN,UAAU,KAAK;QAEf,GAAI,KAAK,WAAW,EAAE,QAAQ,YAAY,KAAK,UAAsB,KAAK,EAAC,IAAK,CAAA;QAChF,GAAG,IAAI,IAAI;;IAGf;AACE,aAAO;QACL,MAAM;QACN,SAAS,+BAA+B,KAAK,IAAI;QACjD,GAAG,IAAI,IAAI;;;AAGnB;AAMA,SAAS,oBAAoB,MAAgB,OAA0B;AACrE,QAAM,QAAS,KAAK,SAAS;AAC7B,QAAM,WAAY,KAAK,YAAY,KAAK,QAAQ,CAAA;AAChD,QAAM,OAAO,SAAS,IAAI,SAAO,YAAY,KAAK,KAAK,CAAC;AAExD,QAAM,YAAY,oBAAoB,IAAI;AAE1C,SAAO,EAAE,MAAM,SAAS,OAAO,WAAW,MAAM,GAAG,IAAI,IAAI,EAAC;AAC9D;AAEA,SAASA,iBAAe,MAAgB,OAA0B;AAChE,QAAM,OAAO,KAAK;AAGlB,MAAI,SAAS,aAAa;AACxB,WAAO;MACL,MAAM;MACN,SACI,KAAiC,cAA6C,CAAC,GAC7E,WAAW;MACjB,GAAG,IAAI,IAAI;;EAEf;AAEA,MAAI,SAAS,QAAQ,SAAS,UAAU;AACtC,WAAO,iBAAiB,MAAM,KAAK;EACrC;AACA,MAAI,SAAS,UAAU;AACrB,WAAO,qBAAqB,MAAM,KAAK;EACzC;AAOA,QAAM,WAAW,KAAK;AACtB,QAAM,MAAO,KAAK,WAAoD;AACtE,QAAM,UAAW,KAAK,OAAkC,CAAC;AACzD,MACE,SAAS,UACR,aAAa,eAAe,aAAa,gBAC1C,KAAK,SAAS,sBACd,SACA;AACA,WAAOA,iBACL;MACE,GAAG;MACH,MAAM;MACN,MAAM,CAAC,OAAO;MACd,WAAW,EAAE,IAAI,IAAI,MAAiB;MACtC,iBAAiB;OAEnB,KAAK;EAET;AAEA,QAAM,QAAS,KAAK,QAAQ,CAAA,GAAmB,IAAI,SAAO,YAAY,KAAK,KAAK,CAAC;AACjF,QAAM,SAAS,KAAK,SAAS,YAAY,KAAK,QAAoB,KAAK,IAAI;AAC3E,QAAM,YAAY,KAAK,YACnB,iBAAiB,KAAK,WAAuC,KAAK,IAClE;AAEJ,QAAM,QAAQ,WAAW,MAAM,MAAM,WAAW,QAAQ,KAAK;AAE7D,SAAO;IACL,MAAM;IACN;IACA;IACA,GAAI,SAAS,EAAE,OAAM,IAAK,CAAA;IAC1B,GAAI,aAAa,OAAO,KAAK,SAAS,EAAE,SAAS,IAAI,EAAE,UAAS,IAAK,CAAA;IACrE,GAAI,QAAQ,EAAE,MAAK,IAAK,CAAA;IACxB,GAAI,KAAK,UAAU,EAAE,SAAS,KAAI,IAAK,CAAA;IACvC,GAAG,IAAI,IAAI;;AAEf;AAEA,SAAS,iBAAiB,MAAgB,OAA0B;AAClE,QAAM,OAAQ,KAAK,QAAQ,CAAA;AAC3B,MAAI;AACJ,MAAI;AACJ,MAAI;AAEJ,MAAI,KAAK,WAAW;AAClB,gBAAY,YAAY,KAAK,WAAuB,KAAK;AACzD,kBAAe,KAAK,cAAc,KAAK,QAAQ,CAAA,GAAmB,IAAI,OACpE,YAAY,GAAG,KAAK,CAAC;AAEvB,iBAAa,KAAK,aACb,KAAK,WAA0B,IAAI,OAAK,YAAY,GAAG,KAAK,CAAC,IAC9D,KAAK,OACF,KAAK,KAAoB,IAAI,OAAK,YAAY,GAAG,KAAK,CAAC,IACxD;EACR,OAAO;AACL,gBAAY,KAAK,CAAC,IAAI,YAAY,KAAK,CAAC,GAAG,KAAK,IAAI,EAAE,MAAM,WAAW,OAAO,KAAI;AAClF,iBAAa,qBAAqB,KAAK,CAAC,GAAG,KAAK;AAChD,iBAAa,KAAK,CAAC,IAAI,qBAAqB,KAAK,CAAC,GAAG,KAAK,IAAI;EAChE;AAGA,MAAK,KAAK,SAAoB,UAAU;AACtC,gBAAY,EAAE,MAAM,SAAS,UAAU,OAAO,SAAS,UAAS;EAClE;AAEA,SAAO;IACL,MAAM;IACN;IACA;IACA,GAAI,aAAa,EAAE,WAAU,IAAK,CAAA;IAClC,GAAG,IAAI,IAAI;;AAEf;AAcA,SAAS,qBAAqB,MAAgB,OAA0B;AACtE,QAAM,QAAS,KAAK,aAAa,CAAA;AACjC,QAAM,OAAO,SAAS,MAAM,QAAQ;AACpC,MAAI,SAAS;AAAW,WAAO,wBAAwB,MAAM,KAAK;AAElE,QAAM,CAAC,WAAW,SAAS,IAAK,KAAK,QAAQ,CAAA;AAC7C,QAAM,OAAO,qBAAqB,WAAW,KAAK;AAClD,QAAM,YAAY,SAAS,MAAM,KAAK;AACtC,QAAM,SAAS;IACb,GAAI,YAAY,EAAE,UAAS,IAAK,CAAA;IAChC,GAAI,YAAY,EAAE,UAAU,qBAAqB,WAAW,KAAK,EAAC,IAAK,CAAA;IACvE,GAAG,IAAI,IAAI;;AAEb,QAAM,UAAU,CAAC,SAAgC,OAAO,YAAY,MAAM,KAAK,IAAI;AAEnF,UAAQ,MAAI;IACV,KAAK;AACH,aAAO;QACL,MAAM;QACN,UAAU,SAAS,MAAM,GAAG,KAAK;QACjC,YAAY,QAAQ,MAAM,EAAE,KAAK,EAAE,MAAM,WAAW,OAAO,KAAI;QAC/D;QACA,GAAG;;IAEP,KAAK;AACH,aAAO,EAAE,MAAM,UAAU,OAAO,QAAQ,MAAM,KAAK,GAAG,MAAM,GAAG,OAAM;IACvE,KAAK;IACL,KAAK,SAAS;AAEZ,YAAM,OAAO,QAAQ,MAAM,IAAI,CAAC,KAAK,EAAE,MAAM,WAAW,OAAO,SAAS,QAAO;AAC/E,aAAO;QACL,MAAM;QACN,WAAW,SAAS,UAAU,EAAE,MAAM,SAAS,UAAU,OAAO,SAAS,KAAI,IAAK;QAClF,GAAI,MAAM,cAAc,UAAU,OAAO,EAAE,cAAc,KAAI,IAAK,CAAA;QAClE;QACA,GAAG;;IAEP;IACA,KAAK,eAAe;AAClB,YAAM,QAAQ,SAAS,MAAM,KAAK;AAClC,UAAI,CAAC,OAAO;AACV,eAAO,EAAE,MAAM,SAAS,SAAS,0CAA0C,GAAG,IAAI,IAAI,EAAC;MACzF;AACA,YAAM,SAAS,QAAQ,MAAM,IAAI;AACjC,aAAO;QACL,MAAM;QACN,YAAY;QACZ,GAAI,SAAS,EAAE,kBAAkB,OAAM,IAAK,CAAA;QAC5C;QACA,GAAG;;IAEP;IACA;AACE,aAAO,EAAE,MAAM,UAAU,MAAM,GAAG,OAAM;;AAE9C;AAGA,SAAS,SAAS,MAA0B;AAC1C,QAAM,OAAO,MAAM,SAAS,MAAM;AAClC,SAAO,OAAO,SAAS,WAAW,OAAO;AAC3C;AAEA,SAAS,wBAAwB,MAAgB,OAA0B;AACzE,QAAM,OAAQ,KAAK,QAAQ,CAAA;AAC3B,MAAI,KAAK,WAAW,GAAG;AACrB,WAAO,EAAE,MAAM,UAAU,MAAM,CAAA,GAAI,GAAG,IAAI,IAAI,EAAC;EACjD;AAEA,QAAM,eAAe,KAAK,CAAC;AAC3B,QAAM,WAAY,cAAc,QAAQ,cAAc,SAAS;AAC/D,QAAM,YAAY,KAAK,KAAK,SAAS,CAAC;AAEtC,UAAQ,UAAQ;IACd,KAAK,SAAS;AACZ,YAAM,QAAQ,KAAK,CAAC,IAAI,YAAY,KAAK,CAAC,GAAG,KAAK,IAAI;AACtD,aAAO;QACL,MAAM;QACN;QACA,MAAM,qBAAqB,WAAW,KAAK;QAC3C,GAAG,IAAI,IAAI;;IAEf;IACA,KAAK,OAAO;AACV,YAAM,WAAY,KAAK,CAAC,GAAG,SAAS;AACpC,YAAM,aAAa,KAAK,CAAC,IACrB,YAAY,KAAK,CAAC,GAAG,KAAK,IACzB,EAAE,MAAM,cAAc,OAAO,KAAI;AACtC,aAAO;QACL,MAAM;QACN;QACA;QACA,MAAM,qBAAqB,WAAW,KAAK;QAC3C,GAAG,IAAI,IAAI;;IAEf;IACA,KAAK,SAAS;AACZ,YAAM,YAAY,KAAK,CAAC,IACpB,YAAY,KAAK,CAAC,GAAG,KAAK,IACzB,EAAE,MAAM,WAAW,OAAO,KAAI;AACnC,aAAO;QACL,MAAM;QACN;QACA,MAAM,qBAAqB,WAAW,KAAK;QAC3C,GAAG,IAAI,IAAI;;IAEf;IACA;AACE,aAAO;QACL,MAAM;QACN,MAAM,qBAAqB,WAAW,KAAK;QAC3C,GAAG,IAAI,IAAI;;;AAGnB;AAEA,SAAS,uBAAuB,MAAgB,OAA0B;AACxE,QAAM,WAAY,KAAK,YAAY,CAAA;AACnC,MAAI,SAAS,WAAW,GAAG;AACzB,WAAO,YAAY,SAAS,CAAC,GAAG,KAAK;EACvC;AACA,SAAO;IACL,MAAM;IACN,OAAO;IACP,MAAM,SAAS,IAAI,SAAO,YAAY,KAAK,KAAK,CAAC;IACjD,GAAG,IAAI,IAAI;;AAEf;AAEA,SAAS,aAAa,MAAgB,OAA0B;AAC9D,QAAM,WAAY,KAAK,YAAY,CAAA;AACnC,MAAI,SAAS,WAAW,GAAG;AACzB,WAAO,YAAY,SAAS,CAAC,GAAG,KAAK;EACvC;AACA,SAAO;IACL,MAAM;IACN,OAAO;IACP,MAAM,SAAS,IAAI,SAAO,YAAY,KAAK,KAAK,CAAC;IACjD,GAAG,IAAI,IAAI;;AAEf;AAEA,SAAS,kBAAkB,MAAgB,OAA0B;AACnE,QAAM,SAAS,KAAK,SAChB,YAAY,KAAK,QAAoB,KAAK,IACzC,EAAE,MAAM,cAAc,OAAO,KAAI;AACtC,QAAM,WACJ,OAAO,KAAK,aAAa,WACrB,KAAK,WACF,KAAK,UAAuB,QAAS,KAAK,UAAuB,SAAS;AAEnF,SAAO,EAAE,MAAM,cAAc,QAAQ,UAAU,GAAG,IAAI,IAAI,EAAC;AAC7D;AAEA,SAAS,cAAc,MAAgB,OAA0B;AAC/D,QAAM,SAAS,KAAK,SAChB,YAAY,KAAK,QAAoB,KAAK,IACzC,EAAE,MAAM,cAAc,OAAO,KAAI;AACtC,QAAM,WACJ,OAAO,KAAK,aAAa,WACrB,KAAK,WACL,KAAK,WACH,YAAY,KAAK,UAAsB,KAAK,IAC3C,EAAE,MAAM,WAAW,OAAO,GAAE;AAErC,SAAO;IACL,MAAM;IACN;IACA;IACA,UAAW,KAAK,YAAY;IAC5B,GAAG,IAAI,IAAI;;AAEf;AAEA,SAAS,cAAc,MAAgB,OAA0B;AAC/D,SAAO;IACL,MAAM;IACN,UAAW,KAAK,YAAY;IAC5B,MAAM,YAAY,KAAK,MAAkB,KAAK;IAC9C,OAAO,YAAY,KAAK,OAAmB,KAAK;IAChD,GAAG,IAAI,IAAI;;AAEf;AAEA,SAAS,YAAY,MAAgB,OAA0B;AAC7D,QAAM,SACJ,OAAO,KAAK,WAAW,WAClB,EAAE,MAAM,cAAc,OAAO,KAAK,QAAQ,MAAM,KAAK,OAAM,IAC5D,YAAY,KAAK,QAAoB,KAAK;AAChD,QAAM,QAAS,KAAK,aAAa,KAAK,QAAQ,CAAA,GAAmB,IAAI,OAAK,YAAY,GAAG,KAAK,CAAC;AAE/F,SAAO,EAAE,MAAM,QAAQ,QAAQ,MAAM,GAAG,IAAI,IAAI,EAAC;AACnD;AAEA,SAAS,iBACP,WACA,OAA0B;AAE1B,QAAM,SAAkC,CAAA;AACxC,aAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,SAAS,GAAG;AACpD,WAAO,GAAG,IAAI,YAAY,OAAO,KAAK;EACxC;AACA,SAAO;AACT;AAEA,SAAS,oBAAoB,MAAc;AACzC,SAAO;IACL,GAAI,KAAK,OAAO,EAAE,MAAM,KAAI,IAAK,CAAA;IACjC,GAAI,KAAK,WAAW,EAAE,UAAU,KAAK,SAAkB,IAAK,CAAA;IAC5D,GAAI,KAAK,WAAW,EAAE,UAAU,KAAK,SAAkB,IAAK,CAAA;IAC5D,GAAI,KAAK,UAAU,EAAE,SAAS,KAAI,IAAK,CAAA;IACvC,GAAI,KAAK,OAAO,EAAE,MAAM,KAAI,IAAK,CAAA;IACjC,GAAI,KAAK,UAAU,EAAE,SAAS,KAAI,IAAK,CAAA;IACvC,GAAI,KAAK,UAAU,EAAE,SAAS,KAAI,IAAK,CAAA;IACvC,GAAI,KAAK,OAAO,EAAE,MAAM,KAAK,KAAc,IAAK,CAAA;IAChD,GAAI,KAAK,YAAY,CAAC,KAAK,OAAO,EAAE,MAAM,KAAK,SAAkB,IAAK,CAAA;;AAE1E;AAEA,SAAS,qBACPC,QACA,OAA0B;AAE1B,MAAI,CAACA;AAAO,WAAO,CAAA;AACnB,MAAIA,OAAM,SAAS,SAAS;AAC1B,YAASA,OAAM,YAAY,CAAA,GAAmB,IAAI,SAAO,YAAY,KAAK,KAAK,CAAC;EAClF;AACA,SAAO,CAAC,YAAYA,QAAO,KAAK,CAAC;AACnC;AAiBA,SAAS,WACP,MACA,MACA,WACA,QACA,OAA0B;AAE1B,QAAM,QAAyC,CAAA;AAE/C,UAAQ,MAAI;IAMV,KAAK,OAAO;AACV,YAAM,QAAQ,WAAW;AACzB,YAAM,SAAS,KAAK,CAAC;AACrB,YAAM,UACJ,QAAQ,SAAS,gBACjB,OAAO,OAAO,QAAQ,OAAO,SAAS,EAAE,EAAE,YAAW,MAAO;AAU9D,UAAI,WAAW,CAAC,OAAO;AACrB,eAAO,QACH,MAAM,MAAM,MAAM,WAA4D,MAAM,IACpF;MACN;AAEA,UAAI,KAAK,CAAC;AAAG,cAAM,cAAc,KAAK,CAAC;AACvC,UAAI,SAAS,OAAO,UAAU,YAAY,UAAW,OAAkB;AACrE,cAAM,UAAU;MAClB,WAAW,KAAK,CAAC,GAAG;AAClB,cAAM,UAAU,KAAK,CAAC;MACxB;AACA;IACF;IAkBA,KAAK,MAAM;AACT,YAAM,KAAK,CAAC,MAAkC;AAC5C,YAAI,CAAC,KAAK,OAAO,MAAM;AAAU,iBAAO;AACxC,cAAM5C,KAAI;AACV,YAAIA,GAAE,SAAS,cAAc;AAC3B,cAAI,OAAOA,GAAE,SAAS,YAAYA,GAAE,SAAS;AAAI,mBAAOA,GAAE;AAC1D,iBAAO,OAAOA,GAAE,UAAU,WAAWA,GAAE,QAAQ;QACjD;AACA,YAAIA,GAAE,SAAS,aAAa,OAAOA,GAAE,UAAU;AAAU,iBAAOA,GAAE;AAClE,eAAO;MACT;AACA,YAAM,SAAS,CAAC,MACd,KAAK,OAAO,MAAM,YAAY,UAAW,IAAgB,IAAwB;AAEnF,UAAI;AACJ,UAAI;AAEJ,YAAM,QAAQ,OAAO,WAAW,EAAE;AAClC,YAAM,UAAU,OAAO,WAAW,GAAG;AACrC,YAAM,SAAS,OAAO,WAAW,EAAE;AACnC,YAAM,cAAc,GAAG,OAAO,WAAW,IAAI,CAAC,KAAK,GAAG,OAAO,WAAW,OAAO,CAAC;AAChF,UAAI,gBAAgB,UAAU,gBAAgB,WAAW;AAIvD,sBAAc,EAAE,MAAM,cAAc,OAAO,aAAa,MAAM,YAAW;MAC3E,WAAW,SAAS;AAClB,sBAAc;AACd,iBAAS,EAAE,MAAM,WAAW,OAAO,MAAK;MAC1C,WAAW,QAAQ;AACjB,sBAAc;MAChB,WAAW,KAAK,WAAW,KAAK,OAAO;AAErC,sBAAc;AACd,YAAI,GAAG,OAAO,WAAW,MAAM,CAAC,MAAM,OAAO;AAC3C,mBAAS,EAAE,MAAM,WAAW,OAAO,MAAK;QAC1C;MACF,OAAO;AAEL,cAAM,QAAQ,KAAK,IAAI,EAAE;AACzB,cAAM,SAAS,MAAM,QAAQ,KAAK;AAClC,YAAI,WAAW,MAAM,KAAK,SAAS,CAAC,GAAG;AACrC,wBAAc,KAAK,SAAS,CAAC;AAC7B,mBAAS,EAAE,MAAM,WAAW,OAAO,MAAK;QAC1C,OAAO;AACL,gBAAM,OAAO,oBAAI,IAAI,CAAC,MAAM,KAAK,CAAC;AAClC,gBAAM,WAAW,oBAAI,IAAI;YACvB;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;UACD,CAAA;AACD,gBAAM,UAAU,KAAK,UAAU,CAAC,GAAG,MAAK;AACtC,kBAAM,IAAI,MAAM,CAAC;AACjB,mBAAO,MAAM,UAAa,CAAC,KAAK,IAAI,CAAC;UACvC,CAAC;AACD,gBAAM,WAAW,YAAY,KAAK,MAAM,OAAO,IAAI;AACnD,gBAAM,QAAQ,MAAM,QAAQ,IAAI;AAChC,cAAI,aAAa,UAAU,aAAa,WAAW;AACjD,0BAAc,EAAE,MAAM,cAAc,OAAO,UAAU,MAAM,SAAQ;UACrE,WAAW,UAAU,MAAM,KAAK,QAAQ,CAAC,GAAG;AAE1C,0BAAc,GAAG,KAAK,QAAQ,CAAC,CAAC,MAAM,QAAQ,KAAK,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC;UAChF,WAAW,YAAY,MAAM,CAAC,SAAS,IAAI,YAAY,EAAE,GAAG;AAC1D,0BAAc,KAAK,OAAO;UAC5B;QAEF;MACF;AAIA,YAAM,WAAW,GAAG,WAAW;AAC/B,WAAK,aAAa,UAAU,aAAa,cAAc,aAAa,SAAS,cAAc;AACzF,sBAAc,EAAE,MAAM,cAAc,OAAO,UAAU,MAAM,SAAQ;MACrE;AAGA,UAAI,CAAC,eAAe;AAAQ,sBAAc;AAE1C,UAAI;AAAa,cAAM,cAAc;AACrC,UAAI;AAAQ,cAAM,SAAS;AAC3B;IACF;IAEA;AAEE,aAAO,QACH,MAAM,MAAM,MAAM,WAA4D,MAAM,IACpF;;AAGR,SAAO,OAAO,KAAK,KAAK,EAAE,SAAS,IAAI,QAAQ;AACjD;AC1vBA,SAAS,QAAQ,MAAqB;AAMpC,SAAO;IACL,OAAO,KAAK,SAAS,IAAI;IACzB,KAAK,KAAK,OAAO,IAAI;IACrB,MAAM,KAAK,QAAQ,IAAI;IACvB,QAAQ,KAAK,UAAU,IAAI;;AAE/B;AAKM,SAAU,UAAU,MAAqB;AAC7C,MAAI,CAAC;AAAM,WAAO,EAAE,MAAM,WAAW,OAAO,MAAM,KAAK,QAAQ,GAAG,IAAG;AAErE,UAAQ,KAAK,MAAI;IACf,KAAK;AACH,aAAO,aAAa,IAAI;IAC1B,KAAK;AACH,aAAO,eAAe,IAAI;IAC5B,KAAK;AACH,aAAO,UAAU,IAAI;IACvB,KAAK;AACH,aAAO,cAAc,IAAI;IAC3B,KAAK;AACH,aAAO,eAAe,IAAI;IAC5B,KAAK;AACH,aAAO,aAAa,IAAI;IAG1B,KAAK;AACH,aAAO;QACL,MAAM;QACN,OAAO,KAAK;QACZ,KAAK,KAAK,UAAU,OAAO,SAAS,KAAK,UAAU,SAAY,KAAK,OAAO,KAAK,KAAK;QACrF,GAAG,QAAQ,IAAI;;IAEnB,KAAK;AACH,aAAO,EAAE,MAAM,cAAc,MAAM,KAAK,QAAQ,KAAK,OAAO,GAAG,QAAQ,IAAI,EAAC;IAC9E,KAAK;AACH,aAAO,EAAE,MAAM,YAAY,OAAO,KAAK,OAAO,GAAG,QAAQ,IAAI,EAAC;IAChE,KAAK;AACH,aAAO,EAAE,MAAM,cAAc,MAAM,KAAK,MAAM,OAAO,KAAK,OAAO,GAAG,QAAQ,IAAI,EAAC;IACnF,KAAK;AACH,aAAO;QACL,MAAM;QACN,UAAU,KAAK;QACf,MAAM,UAAU,KAAK,IAAI;QACzB,OAAO,UAAU,KAAK,KAAK;QAC3B,GAAG,QAAQ,IAAI;;IAEnB,KAAK;AACH,aAAO;QACL,MAAM;QACN,UAAU,KAAK;QACf,UAAU,UAAU,KAAK,OAAO;QAChC,QAAQ;QACR,GAAG,QAAQ,IAAI;;IAEnB,KAAK;AACH,aAAO;QACL,MAAM;QACN,OAAO,UAAU,KAAK,KAAK;QAC3B,UAAU,KAAK;QACf,QAAQ,KAAK;QACb,SAAS,KAAK;QACd,GAAG,QAAQ,IAAI;;IAEnB,KAAK;AACH,aAAO;QACL,MAAM;QACN,QAAQ,UAAU,KAAK,MAAM;QAC7B,UACE,OAAO,KAAK,aAAa,WACrB,EAAE,MAAM,cAAc,MAAM,KAAK,UAAU,GAAG,IAAG,IACjD,UAAU,KAAK,QAAQ;QAC7B,UAAU,KAAK,YAAY;QAC3B,GAAG,QAAQ,IAAI;;IAEnB,KAAK;AACH,aAAO;QACL,MAAM;QACN,UAAU,KAAK,SAAS,IAAI,aAAW,UAAU,OAAO,CAAC;QACzD,GAAG,QAAQ,IAAI;;IAEnB,KAAK;AACH,aAAO;QACL,MAAM;QACN,QAAQ,UAAU,KAAK,MAAM;QAC7B,UAAU,EAAE,MAAM,cAAc,MAAM,KAAK,UAAU,GAAG,IAAG;QAC3D,GAAG,QAAQ,IAAI;;IAEnB,KAAK;AACH,aAAO;QACL,MAAM;QACN,QAAQ,UAAU,KAAK,MAAM;QAC7B,YAAY,KAAK,QAAQ,CAAA,GAAI,IAAI,OAAK,UAAU,CAAC,CAAC;QAClD,GAAG,QAAQ,IAAI;;IAEnB,KAAK;AAEH,aAAO;QACL,MAAM;QACN,QAAQ,EAAE,MAAM,cAAc,MAAM,KAAK,UAAU,GAAG,IAAG;QACzD,WAAW,KAAK,SAAS,CAAC,UAAU,KAAK,MAAM,CAAC,IAAI,CAAA;QACpD,GAAG,QAAQ,IAAI;;IAGnB,KAAK;AAEH,aAAO,EAAE,MAAM,WAAW,OAAO,MAAM,KAAK,QAAQ,GAAG,IAAG;IAE5D,SAAS;AAGP,aAAO,EAAE,MAAM,WAAW,OAAO,MAAM,KAAK,QAAQ,GAAG,IAAG;IAC5D;;AAEJ;AAMA,SAAS,aAAa,MAAyC;AAC7D,QAAM,YAAY,KAAK,QAAQ,CAAA,GAAI,IAAI,SAAO,UAAU,GAAG,CAAC;AAC5D,QAAM,YAAY,sBAAsB,KAAK,SAAS;AAEtD,SAAO;IACL,MAAM;IACN,OAAO,KAAK;IACZ;IACA,GAAG;IACH,GAAG,QAAQ,IAAI;;AAEnB;AAEA,SAAS,eAAe,MAA2C;AACjE,QAAM,SAAmB;IACvB,MAAM;IACN,MAAM,KAAK;IACX,OAAO,KAAK,QAAQ,CAAA,GAAI,IAAI,OAAK,UAAU,CAAC,CAAC;IAC7C,YAAY;IACZ,GAAG,QAAQ,IAAI;;AAGjB,MAAI,KAAK,QAAQ;AACf,WAAO,SAAS,UAAU,KAAK,MAAM;EACvC;AACA,MAAI,KAAK,aAAa,OAAO,KAAK,KAAK,SAAS,EAAE,SAAS,GAAG;AAC5D,UAAM,qBAA8C,CAAA;AACpD,eAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,KAAK,SAAS,GAAG;AAEzD,yBAAmB,GAAG,IACpB,SAAS,OAAO,UAAU,YAAY,UAAU,QAC5C,UAAU,KAAwB,IAClC;IACR;AACA,WAAO,YAAY;EACrB;AAEA,SAAO;AACT;AAGA,SAAS,MAAM,OAAiC;AAC9C,SAAO,EAAE,MAAM,SAAS,UAAU,MAAM,IAAI,OAAK,UAAU,CAAC,CAAC,GAAG,GAAG,IAAG;AACxE;AASA,SAAS,UAAU,MAAsC;AACvD,QAAM,CAAC,QAAQ,GAAG,YAAY,IAAI,KAAK,kBAAkB,CAAA;AACzD,QAAM,aAAqD,SACvD;IACE;MACE,MAAM;MACN,WAAW,OAAO;MAClB,YAAY,OAAO;MACnB,gBAAgB;MAChB,GAAI,KAAK,aAAa,EAAE,YAAY,KAAK,WAAU,IAAK,CAAA;IACzD;EACF,IACD,KAAK;AACT,SAAO;IACL,MAAM;IACN,MAAM;IACN,YAAY;IACZ,MAAM;MACJ,UAAU,KAAK,SAAS;MACxB,MAAM,KAAK,UAAU;MACrB,GAAI,aAAa,CAAC,MAAM,UAAU,CAAC,IAAI,CAAA;IACxC;IACD,GAAG,QAAQ,IAAI;;AAEnB;AAcA,SAAS,YACP,MACA,MACA,UAA8C;AAE9C,QAAM,YAAsC,EAAE,UAAU,WAAW,IAAI,EAAC;AACxE,aAAW,CAAC,MAAM,KAAK,KAAK,OAAO,QAAQ,QAAQ,GAAG;AACpD,QAAI;AAAO,gBAAU,IAAI,IAAI;EAC/B;AACA,MAAI,KAAK;AAAW,cAAU,QAAQ,WAAW,KAAK,SAAS;AAC/D,SAAO;IACL,MAAM;IACN,MAAM;IACN,YAAY;IACZ,MAAM,CAAC,MAAM,KAAK,IAAI,GAAG,GAAI,KAAK,WAAW,CAAC,MAAM,KAAK,QAAQ,CAAC,IAAI,CAAA,CAAG;IACzE;IACA,GAAG,QAAQ,IAAI;;AAEnB;AAGA,SAAS,WAAW,OAAa;AAC/B,SAAO,EAAE,MAAM,UAAU,OAAO,GAAG,IAAG;AACxC;AAEA,SAAS,cAAc,MAA0C;AAC/D,MAAI,KAAK,UAAU,QAAW;AAC5B,UAAM,QACJ,OAAO,KAAK,UAAU,WAClB,EAAE,MAAM,WAAW,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,KAAK,GAAG,GAAG,IAAG,IACrE,UAAU,KAAK,KAAK;AAC1B,WAAO,YAAY,MAAM,SAAS,EAAE,MAAK,CAAE;EAC7C;AACA,MAAI,KAAK,mBAAmB,QAAW;AACrC,WAAO,YAAY,MAAM,SAAS,EAAE,OAAO,UAAU,KAAK,cAAc,EAAC,CAAE;EAC7E;AACA,MAAI,KAAK,eAAe,QAAW;AACjC,WAAO,YAAY,MAAM,eAAe;MACtC,OAAO,WAAW,KAAK,UAAU;MACjC,MAAM,KAAK,mBAAmB,UAAU,KAAK,gBAAgB,IAAI;IAClE,CAAA;EACH;AACA,SAAO,YAAY,MAAM,WAAW,CAAA,CAAE;AACxC;AAEA,SAAS,eAAe,MAA2C;AACjE,SAAO,YAAY,MAAM,OAAO;IAC9B,KAAK,WAAW,KAAK,QAAQ;IAC7B,IAAI,UAAU,KAAK,UAAU;EAC9B,CAAA;AACH;AAGA,SAAS,aAAa,MAAyC;AAC7D,SAAO,YAAY,MAAM,SAAS;IAChC,OAAO,UAAU,KAAK,SAAS;IAC/B,cAAc,KAAK,eACf,EAAE,MAAM,WAAW,OAAO,MAAM,KAAK,QAAQ,GAAG,IAAG,IACnD;EACL,CAAA;AACH;AAMA,SAAS,sBAAsB,WAAqC;AAClE,MAAI,CAAC;AAAW,WAAO,CAAA;AACvB,QAAM,OAAgC,CAAA;AAEtC,MAAI,UAAU;AAAM,SAAK,OAAO;AAChC,MAAI,UAAU;AAAS,SAAK,UAAU;AACtC,MAAI,UAAU;AAAM,SAAK,OAAO;AAChC,MAAI,UAAU;AAAS,SAAK,UAAU;AACtC,MAAI,UAAU;AAAS,SAAK,UAAU;AACtC,MAAI,UAAU;AAAU,SAAK,WAAW,UAAU;AAClD,MAAI,UAAU;AAAU,SAAK,WAAW,UAAU;AAClD,MAAI,UAAU;AAAM,SAAK,OAAO,UAAU;AAE1C,SAAO;AACT;SEtSgB,wBAAqB;AACnC,SAAO,IAAI,gBAAe;AAC5B;ACuCM,SAAU,cAAc,SAAkB,QAAuB;AACrE,QAAM,MAA8B;IAClC,iBAAiB,QAAQ,YAAW;IACpC,kBAAkB,2BAA0B;IAC5C;;AAEF,SAAO,QAAQ,GAAG;AACpB;ACIA,SAAS,wBAAwB,MAAkB;AACjD,QAAM,cAAe,KAClB;AACH,MAAI,CAAC,aAAa;AAAQ,WAAO,CAAA;AACjC,SAAO,YAAY,OAAO,OAAK,EAAE,SAAS,kBAAkB,EAAE,IAAI,OAAK,EAAE,OAAO;AAClF;AAKA,eAAe,oBAAiB;AAC9B,MAAI,CAAC,iBAAiB;AACpB,sBAAkB,MAAM,OAAO,sBAAsB;EACvD;AACA,SAAO;AACT;AAkNM,SAAU,qBAAqBqC,SAA6B;AAChE,SAAO;IACL,MAAM;IACN,YAAY,CAAC,MAAM,SACjBA,QAAO,sBAAsB,MAAM,IAAI;IACzC,OAAO,CAAC,MAAM,SAASA,QAAO,MAAM,MAAM,IAAI;IAC9C,QAAQ,CAAC,MAAM,SAASA,QAAO,OAAO,MAAsB,IAAI;;AAEpE;AC3PA,eAAe,eAAY;AACzB,MAAI,CAAC,KAAK;AACR,QAAI;AACF,YAAM,MAAM,OAAO,uBAAuB;IAC5C,QAAQ;AACN,YAAM,IAAI,MACR,kGACiD;IAErD;EACF;AACA,SAAO;AACT;SAMgB,iBAAc;AAC5B,MAAI;AAAK,WAAO;AAChB,MAAI;AACF,oBAAgB,uBAAuB;AACvC,WAAO;EACT,QAAQ;AACN,WAAO;EACT;AACF;AAYO,eAAe,cACpB,OACA,SAA8D;AAE9D,QAAM,KAAK,MAAM,aAAY;AAC7B,SAAO,GAAG,cAAc,OAAO,OAAO;AACxC;AAKO,eAAe,iBAAiB,OAAa;AAClD,QAAM,KAAK,MAAM,aAAY;AAC7B,SAAO,GAAG,iBAAiB,KAAK;AAClC;AAWO,eAAe,eACpB,MAAkD;AAElD,QAAM,KAAK,MAAM,aAAY;AAC7B,SAAO,GAAG,eAAe,IAAI;AAC/B;AAMO,eAAe,oBAAoB,MAAa;AACrD,QAAM,KAAK,MAAM,aAAY;AAC7B,SAAO,GAAG,oBAAoB,IAAW;AAC3C;AAKO,eAAe,eAAe,MAAkD;AACrF,QAAM,KAAK,MAAM,aAAY;AAC7B,SAAO,GAAG,eAAe,IAAI;AAC/B;AAKO,eAAeQ,kBAAiB,MAAsD;AAC3F,QAAM,KAAK,MAAM,aAAY;AAC7B,SAAO,GAAG,iBAAiB,IAAI;AACjC;AAKO,eAAeC,sBAAqB,MAAa;AACtD,QAAM,KAAK,MAAM,aAAY;AAC7B,SAAO,GAAG,qBAAqB,IAAI;AACrC;AAKO,eAAe,eAAe,UAAqD;AACxF,QAAM,KAAK,MAAM,aAAY;AAC7B,SAAO,GAAG,eAAe,QAAQ;AACnC;AAKO,eAAe,iBAAiB,MAAqD;AAC1F,QAAM,KAAK,MAAM,aAAY;AAC7B,SAAO,GAAG,iBAAiB,IAAI;AACjC;AAKO,eAAe,WAAW,MAAa;AAC5C,QAAM,KAAK,MAAM,aAAY;AAC7B,SAAO,GAAG,WAAW,IAAI;AAC3B;AAaO,eAAe,yBAAyB,MAAkD;AAC/F,QAAM,KAAK,MAAM,aAAY;AAC7B,SAAO,GAAG,yBAAyB,IAAI;AACzC;A5KwBO,IAAM,eA+EA,kBC7SA,UAyEA,qBAwCA,UAeA,uBAKA,gBAaA,wBAsDA,sBAoCA,uBAmCA,eAoCA,cAKA,mBAgBA,sBAwFA,YAgDA,oBCvbD,WA0BN,wBACA,YChBAC,kBAMO,OA8BA,OCOA,aAsBA,iBAqPA,eA0WP,eAiCO,kBAsBA,4BAqJA,qBAUA,cCz4BP,oBACA,mBACA,mBACA,kBC2EA,kBACA,iBACA,cA4CO,yBAyMP,WACA,YIvTO,2BCSA,oBE0VP,qBCnRA,cC6bA,wBE3KA,kBChWA,cA4JA,yBAsEA,kBACA,mBACA,aEnMO,0BA0CA,wBA+BP,0BAwDA,gBC/DA,MACA,UAUO,iBA8DA,wBCjGP,sBA0CA,oBAOA,mBA+CO,QCxIA,cEnEP,eAUA,eK+EO,wBAgbA,wBG7bP,oBA4DA,wBChIA,cCgBO,kBAIA,oBAiWP,cA4EO,cAyBA,cAgEA,iBAuBA,uBCnjBA,cAeA,eAYA,cAiBAC,iBAaA,kBAiBA,yBAqBA,4BA0BA,cAmBA,iBA0BA,mBA+CA,kBAoBA,kBAYA,oBAYA,+BAmDA,oBAgCA,8BAqCA,sBAyCA,uBCtXP,cACA,gBAOF,wBA2tBS,GCtxBA,UA4FA,kBAwMA,aC5RP,oBAsDO,oBA6GT,iBKzIE,uBACA,4BAMO,kBA+DA,wBAqBA,qBAqBA,2BAqBA,oBAqBA,2BAqBA,uBAqBA,8BAyBA,eAqEA,cAuBA,eA0BA,mBA+BA,cAkCA,sBAmBA,kBAiCA,wBAuBA,oBA+EA,0BAmBA,sBAqBA,oBA6BA,mBAsCA,mBAwGA,eA8BA,uBAuBA,oBC90BP,cAqDO,sBAmCA,cAoCA,eAsCA,gBAwCA,cA2CA,qBA+BA,8BA+CA,0BA6BA,uBAkCA,uBE1PP,iBAkCA,oBA+MO,kBAkBP,sBAgBA,yBA4OF,oBAskCE,kBA0OA,oBAQA,uBAmBA,oBA+CA,qBCz9DO,iBCuKA,qBCxMP,oBA8HO,kBA+NA,mBCvNT,iBC3HS,qBCaA,uBAgCP,qBAmHO,aE9JS,oBCThB,0BAMA,0BAMA,2BAMA,4BAWO,yBA0IA,yBAsFA,0BAqEA,+BA2GA,oBC7ZA,oBA2EA,uBA6CA,0BA4CA,oBA6CA,kBA4CA,iBAwEA,yBEtWA,iBAiDA,gBAkDA,cAmFA,gBAsDA,oBAuHP,6BACA,6BAuFO,sBA8CA,0BAgHA,gCQhkBS,uBCfT,aA2CA,mBC1CA,aA8CA,mBM5CA,oBE6BS,qBCHT,YAyHA,kBClJP,aC8BO,eA2HA,qBKlJP,SAGA,YAuCO,4BACA,sBCgFA,eA2TA,qBC5ZA,YAmTA,kBCxVP,aA8KO,aA0EA,mBC/OA,cA8CA,oBCuBA,aAgFA,mBCvIA,cA8DA,oBCrEA,eAoEA,qBCxEA,cAgDA,oBEpFT,sBACA,mBACA,gBACA,qBAeA,WAKA,gBACA,mBACA,0BACA,gBACA,mBACA,iB/F2MG,6R+FrID,OCxEO,cC2BP,OACF,YCnBS,mBCwEA,aAiKA,cA4FA,mBACA,oBCrUP,0BAuBA,8BAqCA,kBAqDA,2BAYF,cChJE,QAYA,gBAMA,iBEgCA,cAiJO,wBAqGA,8BEnQA,aAwLA,mBCzMP,qBAqCA,yBACF,uBA8ES,cAwRA,oBGjUP,WAGO,YAoXA,kBC5bA,YAmDA,kBE3CA,sBAqFA,wBC9CA,cAwFA,oBCrIA,YAoDA,kBCvCA,sBAsMA,sBCtMA,WA0NA,iBG9NA,gBA4EA,sBChFA,eA0JA,qBGlIA,oBAoHA,0BAIA,iBE7DA,eA4PA,qBCnWS,uBCRT,cAqBA,oBCrBA,iBAqBA,uBCMA,aAwFA,mBC9FA,eA4CA,qBC1DA,aAiBA,mBCJA,cAgDA,oBC9CA,aAqEA,mBChFA,cA8CA,oBC9CA,aA8CA,mBChBA,eCsCS,yBC9ET,eA2BA,qBCxBA,gBA0BA,sBC+EP,kBA4DO,mBA+OA,yBC9XA,gBAsJA,sBC9IA,eAqFA,qBCrFA,4BA0EA,kCChFA,aA6QA,mBCpRA,WAsKA,iBCjGA,gBA0MA,sBCvQA,aA2FA,mBC7FA,aA0HA,mBE9GA,aAsPA,mBChQA,aAuDA,mBC3EA,mBAkCA,yBCCA,gBCDA,eCqEP,mBAwLO,SCnSA,8BCsBT,cACA,kBAsHA,OCrJS,SC0KA,qBCoLA,iBCxWAf,oBC6CT,cAkDE,aAMA,kBAYA,mBACA,iBA4DA,mBAGA,WAEO,oBA4oBA,2BCnxBP,YA2CA,kBAEO,iBCrDP,kBAkBA,UAiEA,UAoBF,oBACA,iBA8ES,QA8UT,iBACA,kBA2nBS,aC9oCA,YETP,KC+BM,oBAgBA,YAsCA,oBGfR,iBAYS,+BCxCT;A5KuKG;;;IAAM,gBAAgB;MAC3B;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;;AAqBK,IAAM,mBAAoD;MAC/D,EAAE,MAAM,OAAO,UAAU,OAAO,MAAM,QAAQ,qBAAqB,YAAY,WAAW,KAAI;MAC9F;QACE,MAAM;QACN,UAAU;QACV,MAAM;QACN,qBAAqB;QACrB,WAAW;MACZ;MACD;QACE,MAAM;QACN,UAAU;QACV,MAAM;QACN,qBAAqB;QACrB,WAAW;MACZ;MACD;QACE,MAAM;QACN,UAAU;QACV,MAAM;QACN,qBAAqB;QACrB,WAAW;MACZ;MACD;QACE,MAAM;QACN,UAAU;QACV,MAAM;QACN,qBAAqB;QACrB,WAAW;MACZ;MACD;QACE,MAAM;QACN,UAAU;QACV,MAAM;QACN,qBAAqB;QACrB,WAAW;MACZ;MACD;QACE,MAAM;QACN,UAAU;QACV,MAAM;QACN,qBAAqB;QACrB,WAAW;MACZ;MACD;QACE,MAAM;QACN,UAAU;QACV,MAAM;QACN,qBAAqB;QACrB,WAAW;MACZ;MACD;QACE,MAAM;QACN,UAAU;QACV,MAAM;QACN,qBAAqB;QACrB,WAAW;MACZ;MACD;QACE,MAAM;QACN,UAAU;QACV,MAAM;QACN,qBAAqB;QACrB,WAAW;MACZ;MACD;QACE,MAAM;QACN,UAAU;QACV,MAAM;QACN,qBAAqB;QACrB,WAAW;MACZ;MACD;QACE,MAAM;QACN,UAAU;QACV,MAAM;QACN,qBAAqB;QACrB,sBAAsB;QACtB,WAAW;MACZ;MACD;QACE,MAAM;QACN,UAAU;QACV,MAAM;QACN,qBAAqB;QACrB,WAAW;MACZ;MACD;QACE,MAAM;QACN,UAAU;QACV,MAAM;QACN,qBAAqB;QACrB,WAAW;MACZ;MACD;QACE,MAAM;QACN,UAAU;QACV,MAAM;QACN,qBAAqB;QACrB,WAAW;MACZ;MACD;QACE,MAAM;QACN,UAAU;QACV,MAAM;QACN,qBAAqB;QACrB,WAAW;MACZ;MACD;QACE,MAAM;QACN,UAAU;QACV,MAAM;QACN,qBAAqB;QACrB,WAAW;MACZ;MACD;QACE,MAAM;QACN,UAAU;QACV,MAAM;QACN,qBAAqB;QACrB,WAAW;MACZ;MACD;QACE,MAAM;QACN,UAAU;QACV,MAAM;QACN,qBAAqB;QACrB,WAAW;MACZ;MACD;QACE,MAAM;QACN,UAAU;QACV,MAAM;QACN,qBAAqB;QACrB,WAAW;MACZ;MACD,EAAE,MAAM,QAAQ,UAAU,OAAO,MAAM,QAAQ,qBAAqB,YAAY,WAAW,KAAI;MAC/F;QACE,MAAM;QACN,UAAU;QACV,MAAM;QACN,qBAAqB;QACrB,WAAW;MACZ;MACD;QACE,MAAM;QACN,UAAU;QACV,MAAM;QACN,qBAAqB;QACrB,WAAW;MACZ;MACD;QACE,MAAM;QACN,UAAU;QACV,MAAM;QACN,qBAAqB;QACrB,WAAW;MACZ;MACD;QACE,MAAM;QACN,UAAU;QACV,MAAM;QACN,qBAAqB;QACrB,WAAW;MACZ;MACD;QACE,MAAM;QACN,UAAU;QACV,MAAM;QACN,qBAAqB;QACrB,WAAW;MACZ;MACD;QACE,MAAM;QACN,UAAU;QACV,MAAM;QACN,qBAAqB;QACrB,WAAW;MACZ;MACD;QACE,MAAM;QACN,UAAU;QACV,MAAM;QACN,qBAAqB;QACrB,WAAW;MACZ;MACD;QACE,MAAM;QACN,UAAU;QACV,MAAM;QACN,qBAAqB;QACrB,WAAW;MACZ;MACD;QACE,MAAM;QACN,UAAU;QACV,MAAM;QACN,qBAAqB;QACrB,WAAW;MACZ;MACD;QACE,MAAM;QACN,UAAU;QACV,MAAM;QACN,qBAAqB;QACrB,WAAW;MACZ;MACD;QACE,MAAM;QACN,UAAU;QACV,MAAM;QACN,qBAAqB;QACrB,WAAW;MACZ;MACD;QACE,MAAM;QACN,UAAU;QACV,MAAM;QACN,qBAAqB;QACrB,WAAW;MACZ;MACD;QACE,MAAM;QACN,UAAU;QACV,MAAM;QACN,qBAAqB;QACrB,WAAW;MACZ;MACD;QACE,MAAM;QACN,UAAU;QACV,MAAM;QACN,qBAAqB;QACrB,WAAW;MACZ;MACD,EAAE,MAAM,OAAO,UAAU,OAAO,MAAM,QAAQ,qBAAqB,YAAY,WAAW,KAAI;MAC9F;QACE,MAAM;QACN,UAAU;QACV,MAAM;QACN,qBAAqB;QACrB,WAAW;MACZ;MACD;QACE,MAAM;QACN,UAAU;QACV,MAAM;QACN,qBAAqB;QACrB,WAAW;MACZ;MACD;QACE,MAAM;QACN,UAAU;QACV,MAAM;QACN,qBAAqB;QACrB,WAAW;MACZ;MACD;QACE,MAAM;QACN,UAAU;QACV,MAAM;QACN,qBAAqB;QACrB,sBAAsB;QACtB,WAAW;MACZ;MACD;QACE,MAAM;QACN,UAAU;QACV,MAAM;QACN,qBAAqB;QACrB,WAAW;MACZ;MACD;QACE,MAAM;QACN,UAAU;QACV,MAAM;QACN,qBAAqB;QACrB,WAAW;MACZ;MACD;QACE,MAAM;QACN,UAAU;QACV,MAAM;QACN,qBAAqB;QACrB,WAAW;MACZ;MACD;QACE,MAAM;QACN,UAAU;QACV,MAAM;QACN,qBAAqB;QACrB,WAAW;MACZ;MACD;QACE,MAAM;QACN,UAAU;QACV,MAAM;QACN,qBAAqB;QACrB,sBAAsB;QACtB,WAAW;MACZ;MACD,EAAE,MAAM,OAAO,UAAU,QAAQ,MAAM,QAAQ,qBAAqB,YAAY,WAAW,KAAI;MAC/F;QACE,MAAM;QACN,UAAU;QACV,MAAM;QACN,qBAAqB;QACrB,WAAW;MACZ;MACD,EAAE,MAAM,QAAQ,UAAU,OAAO,MAAM,QAAQ,qBAAqB,YAAY,WAAW,KAAI;MAC/F;QACE,MAAM;QACN,UAAU;QACV,MAAM;QACN,qBAAqB;QACrB,WAAW;MACZ;MACD;QACE,MAAM;QACN,UAAU;QACV,MAAM;QACN,qBAAqB;QACrB,WAAW;MACZ;MACD;QACE,MAAM;QACN,UAAU;QACV,MAAM;QACN,qBAAqB;QACrB,WAAW;MACZ;MACD;QACE,MAAM;QACN,UAAU;QACV,MAAM;QACN,qBAAqB;QACrB,WAAW;MACZ;MACD;QACE,MAAM;QACN,UAAU;QACV,MAAM;QACN,qBAAqB;QACrB,WAAW;MACZ;MACD;QACE,MAAM;QACN,UAAU;QACV,MAAM;QACN,qBAAqB;QACrB,WAAW;MACZ;MACD;QACE,MAAM;QACN,UAAU;QACV,MAAM;QACN,qBAAqB;QACrB,WAAW;MACZ;MACD;QACE,MAAM;QACN,UAAU;QACV,MAAM;QACN,qBAAqB;QACrB,WAAW;MACZ;MACD;QACE,MAAM;QACN,UAAU;QACV,MAAM;QACN,qBAAqB;QACrB,sBAAsB;QACtB,WAAW;MACZ;MACD;QACE,MAAM;QACN,UAAU;QACV,MAAM;QACN,qBAAqB;QACrB,WAAW;MACZ;;ACzqBI,IAAM,WAAW;MAEtB,MAAM;MACN,MAAM;MACN,KAAK;MACL,KAAK;MAKL,IAAI;MAIJ,KAAK;MACL,OAAO;MACP,OAAO;MACP,SAAS;MACT,OAAO;MACP,MAAM;MACN,OAAO;MAGP,IAAI;MACJ,IAAI;MACJ,MAAM;MAEN,MAAM;MAEN,IAAI;MAEJ,IAAI;MACJ,SAAS;MAUT,IAAI;MACJ,MAAM;MAGN,OAAO;MAIP,KAAK;MACL,UAAU;MAGV,QAAQ;MACR,OAAO;MAGP,KAAK;MAOL,OAAO;IAAA;AAQF,IAAM,sBAAsB;MACjC,SAAS;MACT,SAAS;MACT,SAAS;MACT,SAAS;MACT,SAAS;;AAmCJ,IAAM,WAAW,oBAAI,IAAY;MACtC,GAAG;MAQH;IACD,CAAA;AAKM,IAAM,wBAAwB,oBAAI,IAAI,CAAC,MAAM,UAAU,UAAU,QAAQ,OAAO,OAAO,CAAC;AAKxF,IAAM,iBAAiB;MAC5B,MAAM;MACN,QAAQ;MACR,OAAO;MACP,IAAI;MACJ,aAAa;MACb,WAAW;;AAON,IAAM,yBAAyB;MACpC,eAAe;MACf,eAAe;MACf,eAAe;MACf,eAAe;MACf,eAAe;MACf,eAAe;MACf;MACA;;AA8CK,IAAM,uBAAuB,oBAAI,IAAI;MAC1C;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;IACD,CAAA;AAKM,IAAM,wBAAwB;MACnC,UAAU,MAAY;AACpB,eAAO,SAAS,IAAI,KAAK,YAAW,CAAE;MACxC;MAEA,qBAAqB,MAAY;AAC/B,eAAO,sBAAsB,IAAI,KAAK,YAAW,CAAE;MACrD;MAEA,UAAU,MAAY;AACpB,eAAO,qBAAqB,IAAI,KAAK,YAAW,CAAE;MACpD;MAEA,aAAa,SAAe;AAC1B,eAAQ,oBAA0C,SAAS,OAAO;MACpE;MAEA,eAAe,SAAe;AAC5B,eAAQ,uBAA6C,SAAS,OAAO;MACvE;MAMA,cAAc,MAAY;AACxB,eAAO,cAAc,IAAI,KAAK,YAAW,CAAE;MAC7C;;AAQK,IAAM,gBAAgB,oBAAI,IAAI;MAEnC;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MAEA;MACA;MACA;MACA;MAEA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;IACD,CAAA;AASM,IAAM,eAAe,oBAAI,IAAI,CAAC,MAAM,MAAM,OAAO,UAAU,MAAM,OAAO,MAAM,CAAC;AAK/E,IAAM,oBAAoB,oBAAI,IAAI,CAAC,OAAO,MAAM,OAAO,IAAI,CAAC;AAgB5D,IAAM,uBAAuB,oBAAI,IAAI;MAC1C;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MAEA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MAEA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MAIA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MAIA;MAMA;MACA;MACA;MACA;IACD,CAAA;AAKM,IAAM,aAAa,oBAAI,IAAI;MAChC;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;IACD,CAAA;AAWM,IAAM,qBAAqB,oBAAI,IAAI;MACxC;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;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","names":["pos","prefix","err","isKeyword","isString","isNumber","isBoolean","v","command","before","dialogModeOf","varToken","name","parse","isHTMLElement","isInputElement","isOptionElement","getElementProperty","index","validator","leftNum","rightNum","ok","elements","escaped","doc","left","right","propertyNode","value","config","hasAttribute","str","isPropertyOfExpressionNode","isPropertyAccessNode","val","isPopoverElement","evaluateCondition","slotText","resolveTarget","DEFAULT_LANGUAGE","host","SemanticGrammarBridge","createBridgeFrontEnd","bridge","semanticNodeToRuntimeAST","parseExplicit","renderExplicit","parseToResult","result","convertCommand","block","fromProtocolJSON","validateProtocolJSON","isDebugEnabled","itsExpression","TokenKind","hooks.registerGlobalWriteHook","hooks.registerGlobalReadHook","hooks.registerLocalWriteHook","hooks.registerLocalReadHook","hooks.snapshotScopeHooks","hooks.restoreScopeHooks","domCommands.parsePutCommand","eventCommands.parseTriggerCommand","domCommands.parseRemoveCommand","domCommands.parseTakeCommand","domCommands.parseToggleCommand","variableCommands.parseSetCommand","domCommands.parseAddCommand","controlFlowCommands.parseHaltCommand","animationCommands.parseMeasureCommand","navigationCommands.parseGoCommand","navigationCommands.parsePushCommand","navigationCommands.parseScrollCommand","animationCommands.parseStartCommand","domCommands.parseSwapCommand","domCommands.parseShowHideCommand","domCommands.parseProcessCommand","parsingHelpers.isGluedBeepBang","PRATT_STOP_TOKENS","PRATT_STOP_DELIMITERS","utilityCommands.COMPOUND_COMMAND_NAMES","utilityCommands.parseCompoundCommand","controlFlowCommands.parseRepeatCommand","controlFlowCommands.parseForCommand","asyncCommands.parseWaitCommand","asyncCommands.parseInstallCommand","animationCommands.parseTransitionCommand","controlFlowCommands.parseIfCommand","token","isKeywordPredicate","isCommandPredicate","valueString","isCommand","astHelpers.createErrorCommandNode","astHelpers.createCommandSequence","parsingHelpers.isKeyword","utilityCommands.parseFetchCommand","astHelpers.createPartialCommandNode","variableCommands.parseIncrementDecrementCommand","astHelpers.createIdentifier","astHelpers.createLiteral","astHelpers.createBinaryExpression","astHelpers.createUnaryExpression","astHelpers.createCallExpression","astHelpers.createMemberExpression","astHelpers.createSelector","astHelpers.createPossessiveExpression","astHelpers.createErrorNode","astHelpers.createProgramNode","isHTMLEl","defaultRegistry","bodyOp","HideCommand","ShowCommand","AddCommand","targets","RemoveCommand","isPropertyOfExpressionNodeGuard","isPropertyAccessNodeGuard","ToggleCommand","duration","untilEvent","propertyTarget","expression","property","resolveOpts","PutCommand","MakeCommand","isLiteral","EmptyCommand","OpenCommand","CloseCommand","SelectCommand","ResetCommand","morphlexMorph","morphlexMorphInner","SwapCommand","MorphCommand","ProcessPartialsCommand","WaitCommand","FetchCommand","SetCommand","resolveElementHelper","resolveElementsHelper","GetCommand","NumericModifyCommand","newValue","ClearCommand","LogCommand","EventDispatchCommand","GoCommand","HistoryCommand","ScrollCommand","raw","ConditionalCommand","RepeatCommand","BreakCommand","ContinueCommand","HaltCommand","ReturnCommand","ExitCommand","ThrowCommand","CallCommand","FocusCommand","BlurCommand","methodName","methodArgs","preposition","targetExpression","AppendCommand","PrependCommand","TransitionCommand","MeasureCommand","cssVal","num","SettleCommand","StartViewTransitionCommand","TakeCommand","JsCommand","DefaultCommand","TellCommand","CopyCommand","PickCommand","source","BeepCommand","BreakpointCommand","DiagnosticSeverity","SymbolKind","CompletionItemKind","v","checkDebugEnabled","unconsumedInputWarnings","getSemanticModule","_semanticModule","SemanticGrammarBridge","bridge","DEFAULT_CONFIDENCE_THRESHOLD","isDebugEnabled","DEBUG","debug","config","isNode","inferRoles","_converter","extractClassOp","resolveTarget","targetKey","escapeHtml","command","isNode","v","parseDuration","createCoreParserAdapter","createSemanticAdapter","import_framework","VERSION","targetSlot","isElement","targetNode","target","propertyNode","debug","prefix","v","v","err","bridge","v","hyperscript","escapeString","prefix","escapeString","v","analyzeOperations","generateOperationCode","escapeString","v","analyzeOperations","generateOperationCode","generateTemplate","escapeString","v","collectTargetElements","report","parseExplicit","toProtocolJSON","validateProtocolJSON","fromProtocolJSON","result","v"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/diff/diff.ts","../src/scoring/score.ts","../src/input/detect.ts","../src/input/normalize.ts","../src/validation/inert-shapes.ts","../src/validation/gates.ts","../src/operations/extract.ts","../src/renderers/html-fixture.ts","../src/renderers/playwright.ts","../src/renderers/renderer-helpers.ts","../src/renderers/react.ts","../src/renderers/vue.ts","../src/renderers/svelte.ts","../src/service.ts","../src/input/json-schema.ts"],"sourcesContent":["/**\n * @lokascript/compilation-service\n *\n * Semantic service for LokaScript.\n * Validates and translates hyperscript from 24 languages, explicit syntax, or LLM JSON.\n * Generates behavior-level tests from semantic analysis.\n * Generates framework components (React, Vue, Svelte) from abstract operations.\n */\n\n// Main service\nexport { CompilationService } from './service.js';\n\n// Types\nexport type {\n CompileRequest,\n ValidationResponse,\n TranslateRequest,\n TranslateResponse,\n TestRequest,\n TestResponse,\n GeneratedTestOutput,\n ComponentRequest,\n ComponentResponse,\n DiffRequest,\n DiffResponse,\n DiffInput,\n TriggerDiff,\n OperationDiff,\n OperationChangeKind,\n ServiceOptions,\n SemanticJSON,\n SemanticJSONValue,\n Diagnostic,\n InputFormat,\n} from './types.js';\n\n// Input utilities (for custom pipelines)\nexport { detectFormat } from './input/detect.js';\nexport { validateSemanticJSON, jsonToSemanticNode } from './input/json-schema.js';\n\n// Abstract operations (for custom renderers / Phase 3 codegen targets)\nexport type {\n AbstractOperation,\n TargetRef,\n BehaviorSpec,\n ToggleClassOp,\n AddClassOp,\n RemoveClassOp,\n SetContentOp,\n AppendContentOp,\n ShowOp,\n HideOp,\n SetVariableOp,\n IncrementOp,\n DecrementOp,\n NavigateOp,\n FetchOp,\n WaitOp,\n TriggerEventOp,\n FocusOp,\n BlurOp,\n LogOp,\n} from './operations/types.js';\nexport { extractOperations } from './operations/extract.js';\n\n// Diff engine (for custom pipelines)\nexport { diffBehaviors, canonicalizeOp } from './diff/diff.js';\n\n// Fidelity scoring (agent-era arc 4) — scorers live in @lokascript/semantic/fidelity\nexport { scoreNodes } from './scoring/score.js';\nexport type {\n ScoreRequest,\n ScoreResponse,\n FidelityScores,\n FidelityReport,\n} from './scoring/score.js';\n\n// Test renderers\nexport { PlaywrightRenderer } from './renderers/playwright.js';\nexport type { TestRenderer, TestRenderOptions, GeneratedTest } from './renderers/types.js';\n\n// Component renderers\nexport { ReactRenderer } from './renderers/react.js';\nexport { VueRenderer } from './renderers/vue.js';\nexport { SvelteRenderer } from './renderers/svelte.js';\nexport type {\n ComponentRenderer,\n ComponentRenderOptions,\n GeneratedComponent,\n} from './renderers/component-types.js';\n","/**\n * Semantic Diff Engine\n *\n * Compares two BehaviorSpecs at the abstract operation level.\n * Uses LCS (longest common subsequence) for operation-level diffing\n * and post-processes to detect reorderings.\n */\n\nimport type { AbstractOperation, BehaviorSpec } from '../operations/types.js';\nimport type { TriggerDiff, OperationDiff, OperationChangeKind } from './types.js';\n\n// =============================================================================\n// Public API\n// =============================================================================\n\nexport interface DiffResult {\n identical: boolean;\n trigger: TriggerDiff | null;\n operations: OperationDiff[];\n summary: string;\n}\n\n/**\n * Compare two BehaviorSpecs and produce a structured diff.\n */\nexport function diffBehaviors(a: BehaviorSpec, b: BehaviorSpec): DiffResult {\n const triggerDiff = diffTrigger(a, b);\n const opDiffs = diffOperations(a.operations, b.operations);\n\n const identical = triggerDiff === null && opDiffs.every(d => d.kind === 'unchanged');\n const summary = generateSummary(triggerDiff, opDiffs);\n\n return { identical, trigger: triggerDiff, operations: opDiffs, summary };\n}\n\n// =============================================================================\n// Trigger Comparison\n// =============================================================================\n\nfunction diffTrigger(a: BehaviorSpec, b: BehaviorSpec): TriggerDiff | null {\n const changes: string[] = [];\n\n if (a.trigger.event !== b.trigger.event) {\n changes.push(`event: ${a.trigger.event} → ${b.trigger.event}`);\n }\n\n // Compare modifiers\n const aModKeys = Object.keys(a.trigger.modifiers ?? {}).sort();\n const bModKeys = Object.keys(b.trigger.modifiers ?? {}).sort();\n const aMods = a.trigger.modifiers ?? {};\n const bMods = b.trigger.modifiers ?? {};\n\n for (const key of new Set([...aModKeys, ...bModKeys])) {\n const aVal = aMods[key];\n const bVal = bMods[key];\n if (aVal === undefined) {\n changes.push(`added modifier: ${key}`);\n } else if (bVal === undefined) {\n changes.push(`removed modifier: ${key}`);\n } else if (JSON.stringify(aVal) !== JSON.stringify(bVal)) {\n changes.push(`modifier ${key}: ${JSON.stringify(aVal)} → ${JSON.stringify(bVal)}`);\n }\n }\n\n if (changes.length === 0) return null;\n\n return {\n a: { event: a.trigger.event, modifiers: a.trigger.modifiers },\n b: { event: b.trigger.event, modifiers: b.trigger.modifiers },\n changes,\n };\n}\n\n// =============================================================================\n// Operation Comparison (LCS-based)\n// =============================================================================\n\nfunction diffOperations(a: AbstractOperation[], b: AbstractOperation[]): OperationDiff[] {\n const aKeys = a.map(canonicalizeOp);\n const bKeys = b.map(canonicalizeOp);\n\n // Build LCS table\n const lcs = computeLCS(aKeys, bKeys);\n\n // Walk the LCS to produce diffs\n const rawDiffs = buildDiffFromLCS(a, b, aKeys, bKeys, lcs);\n\n // Post-process: detect reorderings among added/removed pairs\n return detectReorderings(rawDiffs);\n}\n\n/**\n * Compute LCS length table.\n */\nfunction computeLCS(a: string[], b: string[]): number[][] {\n const m = a.length;\n const n = b.length;\n const dp: number[][] = Array.from({ length: m + 1 }, () => new Array(n + 1).fill(0));\n\n for (let i = 1; i <= m; i++) {\n for (let j = 1; j <= n; j++) {\n if (a[i - 1] === b[j - 1]) {\n dp[i][j] = dp[i - 1][j - 1] + 1;\n } else {\n dp[i][j] = Math.max(dp[i - 1][j], dp[i][j - 1]);\n }\n }\n }\n\n return dp;\n}\n\n/**\n * Walk the LCS table backwards to produce raw diffs.\n */\nfunction buildDiffFromLCS(\n a: AbstractOperation[],\n b: AbstractOperation[],\n aKeys: string[],\n bKeys: string[],\n dp: number[][]\n): OperationDiff[] {\n const diffs: OperationDiff[] = [];\n let i = a.length;\n let j = b.length;\n\n while (i > 0 || j > 0) {\n if (i > 0 && j > 0 && aKeys[i - 1] === bKeys[j - 1]) {\n // Match — unchanged\n diffs.push({\n kind: 'unchanged',\n index: { a: i - 1, b: j - 1 },\n a: a[i - 1],\n b: b[j - 1],\n });\n i--;\n j--;\n } else if (j > 0 && (i === 0 || dp[i][j - 1] >= dp[i - 1][j])) {\n // Added in b\n diffs.push({\n kind: 'added',\n index: { b: j - 1 },\n b: b[j - 1],\n });\n j--;\n } else {\n // Removed from a\n diffs.push({\n kind: 'removed',\n index: { a: i - 1 },\n a: a[i - 1],\n });\n i--;\n }\n }\n\n return diffs.reverse();\n}\n\n/**\n * Post-process raw diffs to detect reorderings and field-level changes.\n *\n * A reordering is when an operation appears in both sides but at different\n * positions (shows as removed+added pair with the same canonical key).\n *\n * A change is when an operation at the same position has the same op type\n * but different fields (shows as removed+added pair with the same op type).\n */\nfunction detectReorderings(diffs: OperationDiff[]): OperationDiff[] {\n const removed: OperationDiff[] = [];\n const added: OperationDiff[] = [];\n const result: OperationDiff[] = [];\n\n // Separate removed and added\n for (const d of diffs) {\n if (d.kind === 'removed') removed.push(d);\n else if (d.kind === 'added') added.push(d);\n else result.push(d);\n }\n\n // Match removed/added pairs\n const usedRemoved = new Set<number>();\n const usedAdded = new Set<number>();\n\n // First pass: exact matches (reorderings)\n for (let ri = 0; ri < removed.length; ri++) {\n if (usedRemoved.has(ri)) continue;\n const rKey = canonicalizeOp(removed[ri].a!);\n for (let ai = 0; ai < added.length; ai++) {\n if (usedAdded.has(ai)) continue;\n const aKey = canonicalizeOp(added[ai].b!);\n if (rKey === aKey) {\n usedRemoved.add(ri);\n usedAdded.add(ai);\n result.push({\n kind: 'reordered',\n index: { a: removed[ri].index.a, b: added[ai].index.b },\n a: removed[ri].a,\n b: added[ai].b,\n });\n break;\n }\n }\n }\n\n // Second pass: same op type → changed\n for (let ri = 0; ri < removed.length; ri++) {\n if (usedRemoved.has(ri)) continue;\n for (let ai = 0; ai < added.length; ai++) {\n if (usedAdded.has(ai)) continue;\n if (removed[ri].a!.op === added[ai].b!.op) {\n usedRemoved.add(ri);\n usedAdded.add(ai);\n result.push({\n kind: 'changed',\n index: { a: removed[ri].index.a, b: added[ai].index.b },\n a: removed[ri].a,\n b: added[ai].b,\n changes: describeChanges(removed[ri].a!, added[ai].b!),\n });\n break;\n }\n }\n }\n\n // Remaining unmatched\n for (let ri = 0; ri < removed.length; ri++) {\n if (!usedRemoved.has(ri)) result.push(removed[ri]);\n }\n for (let ai = 0; ai < added.length; ai++) {\n if (!usedAdded.has(ai)) result.push(added[ai]);\n }\n\n // Sort by position for stable output\n result.sort((x, y) => {\n const xPos = x.index.a ?? x.index.b ?? 0;\n const yPos = y.index.a ?? y.index.b ?? 0;\n return xPos - yPos;\n });\n\n return result;\n}\n\n// =============================================================================\n// Canonicalization\n// =============================================================================\n\n/**\n * Produce a deterministic string key for an AbstractOperation.\n * Two operations with the same key are semantically identical.\n */\nexport function canonicalizeOp(op: AbstractOperation): string {\n const parts: string[] = [op.op];\n\n switch (op.op) {\n case 'toggleClass':\n case 'addClass':\n case 'removeClass':\n parts.push(op.className, canonicalizeTarget(op.target));\n break;\n case 'setContent':\n parts.push(op.content, canonicalizeTarget(op.target), op.position);\n break;\n case 'appendContent':\n parts.push(op.content, canonicalizeTarget(op.target));\n break;\n case 'show':\n case 'hide':\n case 'focus':\n case 'blur':\n parts.push(canonicalizeTarget(op.target));\n break;\n case 'setVariable':\n parts.push(op.name, op.value, op.scope);\n break;\n case 'increment':\n case 'decrement':\n parts.push(canonicalizeTarget(op.target), String(op.amount));\n break;\n case 'navigate':\n parts.push(op.url);\n break;\n case 'historyBack':\n case 'historyForward':\n break;\n case 'fetch':\n parts.push(op.url, op.format, op.target ? canonicalizeTarget(op.target) : '');\n break;\n case 'wait':\n parts.push(String(op.durationMs));\n break;\n case 'triggerEvent':\n parts.push(op.eventName, canonicalizeTarget(op.target), op.detail ?? '');\n break;\n case 'log':\n parts.push(...op.values);\n break;\n }\n\n return parts.join('|');\n}\n\nfunction canonicalizeTarget(t: { kind: string; value?: string }): string {\n return t.kind === 'self' ? 'self' : `${t.kind}:${(t as { value?: string }).value ?? ''}`;\n}\n\n// =============================================================================\n// Change Description\n// =============================================================================\n\nfunction describeChanges(a: AbstractOperation, b: AbstractOperation): string[] {\n const changes: string[] = [];\n const aObj = a as unknown as Record<string, unknown>;\n const bObj = b as unknown as Record<string, unknown>;\n\n // Compare all fields except 'op'\n const allKeys = new Set([...Object.keys(aObj), ...Object.keys(bObj)]);\n for (const key of allKeys) {\n if (key === 'op') continue;\n const aVal = JSON.stringify(aObj[key]);\n const bVal = JSON.stringify(bObj[key]);\n if (aVal !== bVal) {\n changes.push(`${key}: ${formatValue(aObj[key])} → ${formatValue(bObj[key])}`);\n }\n }\n\n return changes;\n}\n\nfunction formatValue(v: unknown): string {\n if (v === undefined) return '(none)';\n if (typeof v === 'object' && v !== null) {\n const obj = v as Record<string, unknown>;\n if ('kind' in obj) return obj.kind === 'self' ? 'self' : `${obj.kind}:${obj.value ?? ''}`;\n return JSON.stringify(v);\n }\n return String(v);\n}\n\n// =============================================================================\n// Summary Generation\n// =============================================================================\n\nfunction generateSummary(trigger: TriggerDiff | null, opDiffs: OperationDiff[]): string {\n const parts: string[] = [];\n\n if (!trigger && opDiffs.every(d => d.kind === 'unchanged')) {\n return 'No semantic change';\n }\n\n if (trigger) {\n parts.push(`Trigger: ${trigger.changes.join(', ')}`);\n }\n\n const counts: Record<OperationChangeKind, number> = {\n added: 0,\n removed: 0,\n changed: 0,\n reordered: 0,\n unchanged: 0,\n };\n for (const d of opDiffs) counts[d.kind]++;\n\n const opParts: string[] = [];\n if (counts.added > 0) opParts.push(`${counts.added} added`);\n if (counts.removed > 0) opParts.push(`${counts.removed} removed`);\n if (counts.changed > 0) opParts.push(`${counts.changed} changed`);\n if (counts.reordered > 0) opParts.push(`${counts.reordered} reordered`);\n\n if (opParts.length > 0) {\n parts.push(`Operations: ${opParts.join(', ')}`);\n }\n\n return parts.join('. ');\n}\n","/**\n * Structural fidelity scoring — `scoreFidelity()` (agent-era arc 4).\n *\n * The scorer itself (`scoreNodes` and its report types) lives in\n * `@lokascript/semantic/fidelity` since arc 5 slice 2, so the language\n * server's translate-with-verification request and this service share ONE\n * implementation; this module re-exports it for API compatibility and adds\n * the service-level request/response shapes. See that module for signal\n * semantics; docs/FIDELITY.md for the methodology.\n */\n\nimport type { Diagnostic } from '../types.js';\nimport type { DiffInput } from '../diff/types.js';\nimport type { FidelityReport } from '@lokascript/semantic/fidelity';\n\nexport { scoreNodes } from '@lokascript/semantic/fidelity';\nexport type { FidelityReport, FidelityScores } from '@lokascript/semantic/fidelity';\n\n/** Score request — a candidate scored against a reference. Sides accept the\n * same input formats as diff/validate and may be in different languages. */\nexport interface ScoreRequest {\n reference: DiffInput;\n candidate: DiffInput;\n /** Minimum confidence for natural language parsing (default 0.7) */\n confidence?: number;\n}\n\nexport interface ScoreResponse extends Partial<FidelityReport> {\n /** Whether both sides parsed successfully. */\n ok: boolean;\n diagnostics: Diagnostic[];\n /**\n * False when the reference parse left tokens unconsumed (UNCONSUMED_INPUT):\n * the scores then compare only what parsed, and `faithful` is false.\n */\n referenceComplete?: boolean;\n /** The same, for the candidate. */\n candidateComplete?: boolean;\n}\n","/**\n * Input format detection.\n *\n * Determines whether input is natural language, explicit syntax, or LLM JSON.\n */\n\nimport type { InputFormat } from '../types.js';\n\n/**\n * Detect the input format from a string.\n */\nexport function detectFormat(input: string): InputFormat {\n const trimmed = input.trim();\n\n // Explicit syntax: [command role:value ...]\n if (trimmed.startsWith('[') && trimmed.endsWith(']')) {\n return 'explicit';\n }\n\n // LLM JSON: { \"action\": \"...\", ... }\n if (trimmed.startsWith('{')) {\n try {\n const parsed = JSON.parse(trimmed);\n if (parsed && typeof parsed === 'object' && typeof parsed.action === 'string') {\n return 'json';\n }\n } catch {\n // Not valid JSON — fall through to natural language\n }\n }\n\n return 'natural';\n}\n","/**\n * Input normalization.\n *\n * Converts any input format (natural language, explicit syntax, LLM JSON)\n * to a SemanticNode for downstream validation, translation and rendering.\n */\n\nimport type { CompileRequest, NormalizeResult, SemanticJSON, Diagnostic } from '../types.js';\nimport { detectFormat } from './detect.js';\nimport { validateProtocolJSON, fromProtocolJSON } from '@lokascript/framework';\n\n// =============================================================================\n// Dynamic imports (resolved at service creation time)\n// =============================================================================\n\n/** Semantic package functions, injected by CompilationService.create() */\nexport interface SemanticFunctions {\n parseSemantic: (\n code: string,\n language: string\n ) => { node: unknown; confidence: number; error?: string };\n parseExplicit: (input: string) => unknown;\n isExplicitSyntax: (input: string) => boolean;\n}\n\nlet _semantic: SemanticFunctions | null = null;\n\n/** Initialize with semantic package functions. */\nexport function initNormalizer(semantic: SemanticFunctions): void {\n _semantic = semantic;\n}\n\n// =============================================================================\n// Normalization\n// =============================================================================\n\n/**\n * Normalize any input format to a SemanticNode.\n */\nexport function normalize(request: CompileRequest): NormalizeResult {\n if (!_semantic) {\n throw new Error('Normalizer not initialized. Call initNormalizer() first.');\n }\n\n // Determine which input format we're working with\n if (request.semantic) {\n return normalizeJSON(request.semantic);\n }\n\n const input = request.code ?? request.explicit;\n if (!input) {\n return {\n node: null,\n confidence: 0,\n format: 'natural',\n diagnostics: [\n {\n severity: 'error',\n code: 'NO_INPUT',\n message: 'No input provided. Supply one of: code, explicit, or semantic.',\n },\n ],\n };\n }\n\n const format = request.explicit ? 'explicit' : detectFormat(input);\n\n switch (format) {\n case 'explicit':\n return normalizeExplicit(input);\n case 'json':\n return normalizeJSON(JSON.parse(input.trim()) as SemanticJSON);\n case 'natural':\n return normalizeNatural(input, request.language ?? 'en');\n }\n}\n\n// =============================================================================\n// Format-Specific Normalization\n// =============================================================================\n\n/** Shape of the diagnostics the semantic parser attaches to its nodes. */\ninterface NodeDiagnostic {\n severity?: string;\n code?: string;\n message?: string;\n}\n\n/**\n * Lift warning/error diagnostics off the parsed node into the response.\n *\n * The semantic parser deliberately parses leniently — it records problems as\n * node-level diagnostics instead of failing (e.g. `unconsumed-input` when\n * `add .x #el` drops `#el` and the destination silently defaults to `me`,\n * hoisted to the top node from any depth). Until 2026-08 this function never\n * read them, so `validate()` reported ok with ZERO diagnostics for parses the\n * parser itself had flagged — the agent-bench probe measured 18/37 plausible\n * phrasings misbehaving with nothing for the validate/repair loop to react to\n * (arc 3b, AGENT_ERA_ROADMAP.md). `info` entries stay behind: they are match\n * commentary (\"pattern matched: …\"), not actionable signal.\n */\nfunction liftNodeDiagnostics(node: unknown, diagnostics: Diagnostic[]): void {\n const nodeDiags = (node as { diagnostics?: NodeDiagnostic[] }).diagnostics;\n if (!Array.isArray(nodeDiags)) return;\n for (const d of nodeDiags) {\n if (d.severity !== 'warning' && d.severity !== 'error') continue;\n const diag: Diagnostic = {\n severity: d.severity,\n // Parser codes are kebab-case; this surface uses UPPER_SNAKE (PARSE_ERROR &c).\n code: (d.code ?? 'PARSE_DIAGNOSTIC').replace(/-/g, '_').toUpperCase(),\n message: d.message ?? 'parser diagnostic',\n };\n if (d.code === 'unconsumed-input') {\n diag.suggestion =\n 'Dropped tokens were parsed but bound to no role — usually a missing role ' +\n \"marker (e.g. 'to'/'on'/'from' before the target), so the role fell back to \" +\n 'a default like `me`. Compare the returned roles against your intent.';\n }\n diagnostics.push(diag);\n }\n}\n\nfunction normalizeNatural(code: string, language: string): NormalizeResult {\n const diagnostics: Diagnostic[] = [];\n\n try {\n const result = _semantic!.parseSemantic(code, language);\n\n if (result.error) {\n diagnostics.push({\n severity: 'error',\n code: 'PARSE_ERROR',\n message: result.error,\n });\n }\n\n if (!result.node) {\n diagnostics.push({\n severity: 'error',\n code: 'PARSE_FAILED',\n message: `Failed to parse \"${code}\" as ${language} hyperscript.`,\n suggestion: 'Check syntax or try explicit syntax: [command role:value ...]',\n });\n return { node: null, confidence: result.confidence, format: 'natural', diagnostics };\n }\n\n liftNodeDiagnostics(result.node, diagnostics);\n\n return {\n node: result.node,\n confidence: result.confidence,\n format: 'natural',\n diagnostics,\n };\n } catch (error) {\n diagnostics.push({\n severity: 'error',\n code: 'PARSE_EXCEPTION',\n message: error instanceof Error ? error.message : String(error),\n });\n return { node: null, confidence: 0, format: 'natural', diagnostics };\n }\n}\n\nfunction normalizeExplicit(input: string): NormalizeResult {\n const diagnostics: Diagnostic[] = [];\n\n try {\n const node = _semantic!.parseExplicit(input);\n return {\n node,\n confidence: 1.0,\n format: 'explicit',\n diagnostics,\n };\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n const hasRoleGuidance =\n message.includes('Valid roles') || message.includes('Missing required role');\n diagnostics.push({\n severity: 'error',\n code: 'EXPLICIT_PARSE_ERROR',\n message,\n suggestion: hasRoleGuidance\n ? undefined\n : 'Use format: [command role:value ...] e.g. [toggle patient:.active]. Use get_command_docs(command) to see valid roles.',\n });\n return { node: null, confidence: 0, format: 'explicit', diagnostics };\n }\n}\n\nfunction normalizeJSON(input: SemanticJSON): NormalizeResult {\n // Validate structure (unified protocol JSON validator accepts optional kind + trigger)\n const validationErrors = validateProtocolJSON(input);\n if (validationErrors.some(d => d.severity === 'error')) {\n return {\n node: null,\n confidence: 0,\n format: 'json',\n diagnostics: validationErrors,\n };\n }\n\n // Convert to SemanticNode (unified path accepts optional kind + trigger)\n const node = fromProtocolJSON(input as any);\n return {\n node,\n confidence: 1.0,\n format: 'json',\n diagnostics: validationErrors, // May contain warnings\n };\n}\n","/**\n * Inert-shape heuristics — Gate 4 of the validation pipeline (arc 3b).\n *\n * A parse can consume every token at confidence 1.0 and still be provably\n * useless at runtime: the agent-bench probe found five plausible phrasings\n * that do exactly that (silent no-op, or effect on the wrong element) with\n * nothing in the response for the validate/repair loop to react to. Each left\n * a distinctive fingerprint in the IR; this gate matches those fingerprints\n * and emits WARNINGS — never errors, and never a confidence change, so parse\n * outcomes are byte-identical and only the diagnostics array grows (the same\n * contract as the arc-3b unconsumed-input propagation).\n *\n * Checks are deliberately narrow — a fingerprint each, not a general theory of\n * inertness — because a false warning teaches an agent to distrust warnings.\n * The known-remaining silent phrasings these do NOT cover are valid code with\n * different intent (e.g. `add .hidden to #menu`), which no compile-time check\n * can catch; that is IR-vs-intent review's job.\n */\n\nimport type { Diagnostic } from '../types.js';\n\n/** Quantifier words that read as \"the matched set\" in English but parse as a\n * bare identifier, making `all.todo` an undefined property access at runtime.\n * Spaced (`all .todo`), the target is the identifier `all` alone and the\n * selector is left unread (both engines read a spaced `.todo` as a class). */\nconst QUANTIFIER = /^(all|every|each)\\.(\\S+)$/;\nconst BARE_QUANTIFIER = /^(all|every|each)$/;\n\n/** Predicate words that, mis-tokenized as class selectors inside a condition\n * (`#box .has class .danger`), silently make the condition falsy. The pattern\n * requires the word to stand alone — real utility classes like `.is-active`\n * do not match. */\nconst PREDICATE_AS_CLASS = /(^|\\s)\\.(has|is|contains|matches|includes)(\\s|$)/;\n\ninterface RoleValueLike {\n type?: string;\n value?: unknown;\n raw?: string;\n /** property-path values carry object + property instead of value. */\n property?: string;\n}\n\ninterface NodeLike {\n action?: string;\n roles?: ReadonlyMap<string, unknown>;\n body?: unknown[];\n}\n\nfunction valueString(v: RoleValueLike): string {\n return String(v.value ?? v.raw ?? '');\n}\n\n/**\n * Walk a SemanticNode (recursing into command bodies) and return warnings for\n * shapes that are known to execute as no-ops or mis-bindings.\n */\nexport function checkInertShapes(node: unknown): Diagnostic[] {\n const out: Diagnostic[] = [];\n walk(node, out);\n return out;\n}\n\nfunction walk(node: unknown, out: Diagnostic[]): void {\n if (!node || typeof node !== 'object') return;\n const n = node as NodeLike;\n\n if (n.roles && typeof n.roles.entries === 'function') {\n for (const [role, raw] of n.roles.entries()) {\n const v = (raw ?? {}) as RoleValueLike;\n const s = valueString(v);\n\n // `add .done to all .todo` → destination expression `all.todo`:\n // identifier `all` is undefined at runtime, so the effect lands on the\n // default target (usually `me`) or nowhere.\n const q = v.type === 'expression' ? QUANTIFIER.exec(s) : null;\n if (q && (role === 'destination' || role === 'source')) {\n out.push({\n severity: 'warning',\n code: 'INERT_QUANTIFIER_TARGET',\n message: `${role} parsed as property access \"${s}\" — \"${q[1]}\" is an undefined identifier at runtime, so this ${role} will not resolve.`,\n suggestion: `Selectors already address every match: write the bare selector (e.g. \".${q[2]}\") without \"${q[1]}\".`,\n });\n continue;\n }\n if (\n v.type === 'expression' &&\n BARE_QUANTIFIER.test(s) &&\n (role === 'destination' || role === 'source')\n ) {\n out.push({\n severity: 'warning',\n code: 'INERT_QUANTIFIER_TARGET',\n message: `${role} parsed as the identifier \"${s}\", which is undefined at runtime, so this ${role} will not resolve; the selector after it is not read.`,\n suggestion: `Selectors already address every match: write the selector alone, without \"${s}\".`,\n });\n continue;\n }\n\n // `if #box has class .danger` → condition `#box .has class .danger`:\n // the predicate word became a class selector, the condition evaluates\n // falsy, and the body silently never runs.\n if (role === 'condition' && v.type === 'expression' && PREDICATE_AS_CLASS.test(s)) {\n const word = PREDICATE_AS_CLASS.exec(s)?.[2];\n out.push({\n severity: 'warning',\n code: 'HALF_PARSED_CONDITION',\n message: `condition parsed \".${word}\" as a class selector (full condition: \"${s}\") — it will evaluate falsy and the body will never run.`,\n suggestion: 'For class tests use `matches`: `if #box matches .danger`.',\n });\n continue;\n }\n\n // (`UNSUPPORTED_QUERY_LITERAL`, for `add .x to <body/>`, retired with the AOT\n // compiler in 4.0: on its path `<body/>` reached querySelector verbatim, but the\n // engine reads query literals, as upstream does.)\n\n // `set the text of #output to \"…\"` → property-path `#output.text`:\n // `.text` is not a DOM-visible property on ordinary elements, so the\n // write is an invisible expando.\n if (n.action === 'set' && v.type === 'property-path' && v.property === 'text') {\n out.push({\n severity: 'warning',\n code: 'INERT_PROPERTY_WRITE',\n message: `set targets property \"text\" — on most elements this is not a DOM property, so the write usually changes nothing visible.`,\n suggestion:\n 'Use `textContent` (`set the textContent of #el to …`) or `put \"…\" into #el`.',\n });\n }\n }\n }\n\n if (Array.isArray(n.body)) for (const child of n.body) walk(child, out);\n}\n","/**\n * Validation pipeline.\n *\n * Sequential gates that validate a parsed SemanticNode.\n * Each gate can add diagnostics; an error fails validation.\n */\n\nimport type { Diagnostic } from '../types.js';\nimport { checkInertShapes } from './inert-shapes.js';\n\n// =============================================================================\n// Dynamic imports\n// =============================================================================\n\n/** Semantic validation functions, injected by CompilationService.create() */\nexport interface ValidationFunctions {\n validateSemanticResult: (result: unknown) => {\n valid: boolean;\n errors: Array<{ code: string; message: string; role?: string; severity: string }>;\n warnings: Array<{ code: string; message: string; role?: string; severity: string }>;\n confidenceAdjustment: number;\n suggestions: string[];\n };\n}\n\nlet _validators: ValidationFunctions | null = null;\n\n/** Initialize with validation functions. */\nexport function initValidation(validators: ValidationFunctions): void {\n _validators = validators;\n}\n\n// =============================================================================\n// Validation Pipeline\n// =============================================================================\n\nexport interface GateResult {\n pass: boolean;\n diagnostics: Diagnostic[];\n adjustedConfidence: number;\n}\n\n/**\n * Run all validation gates on a parsed semantic node.\n */\nexport function runValidationGates(\n node: unknown,\n confidence: number,\n confidenceThreshold: number\n): GateResult {\n const diagnostics: Diagnostic[] = [];\n let adjustedConfidence = confidence;\n\n // Gate 1: Parse success\n if (!node) {\n diagnostics.push({\n severity: 'error',\n code: 'PARSE_FAILED',\n message: 'No semantic node produced from input.',\n });\n return { pass: false, diagnostics, adjustedConfidence: 0 };\n }\n\n // Gate 2: Confidence threshold\n if (confidence < confidenceThreshold) {\n diagnostics.push({\n severity: 'error',\n code: 'LOW_CONFIDENCE',\n message: `Parse confidence ${confidence.toFixed(2)} is below threshold ${confidenceThreshold.toFixed(2)}.`,\n suggestion: 'Try explicit syntax [command role:value ...] for unambiguous input.',\n });\n return { pass: false, diagnostics, adjustedConfidence: confidence };\n }\n\n // Gate 3: Schema validation\n if (_validators) {\n const semanticResult = nodeToParseResult(node);\n if (semanticResult) {\n const validation = _validators.validateSemanticResult(semanticResult);\n\n // Convert errors\n for (const err of validation.errors) {\n diagnostics.push({\n severity: 'error',\n code: err.code,\n message: err.message,\n });\n }\n\n // Convert warnings\n for (const warn of validation.warnings) {\n diagnostics.push({\n severity: 'warning',\n code: warn.code,\n message: warn.message,\n });\n }\n\n // Add suggestions\n for (const suggestion of validation.suggestions) {\n diagnostics.push({\n severity: 'info',\n code: 'SUGGESTION',\n message: suggestion,\n });\n }\n\n // Adjust confidence\n adjustedConfidence = Math.max(0, Math.min(1, confidence + validation.confidenceAdjustment));\n\n if (!validation.valid) {\n return { pass: false, diagnostics, adjustedConfidence };\n }\n }\n }\n\n // Gate 4: inert-shape heuristics (arc 3b). Warnings only — a parse that\n // consumed everything at full confidence can still be provably useless at\n // runtime, and without a diagnostic the validate/repair loop never hears\n // about it. Never affects pass/confidence.\n diagnostics.push(...checkInertShapes(node));\n\n return { pass: true, diagnostics, adjustedConfidence };\n}\n\n// =============================================================================\n// Helpers\n// =============================================================================\n\n/**\n * Convert a SemanticNode to the SemanticParseResult format expected by\n * validateSemanticResult(). The validator expects { action, arguments, confidence }.\n */\nfunction nodeToParseResult(node: unknown): unknown {\n const n = node as {\n kind?: string;\n action?: string;\n roles?: ReadonlyMap<string, unknown>;\n };\n\n if (!n.action) return null;\n\n // For event handlers, validate the body commands instead\n const action = n.action === 'on' ? null : n.action;\n if (!action) return null;\n\n // Convert roles map to arguments array\n const args: unknown[] = [];\n if (n.roles && typeof n.roles.entries === 'function') {\n for (const [role, value] of n.roles.entries()) {\n args.push({ role, ...(value as Record<string, unknown>) });\n }\n }\n\n return {\n action,\n arguments: args,\n confidence: 1.0,\n };\n}\n","/**\n * Operation Extraction\n *\n * Converts a SemanticNode (from the parsing pipeline) into a BehaviorSpec\n * containing abstract operations. This is the bridge between semantic roles\n * and framework-agnostic behavior descriptions.\n */\n\nimport type { AbstractOperation, BehaviorSpec, TargetRef } from './types.js';\n\n// =============================================================================\n// Internal Types (mirrors SemanticNode shape without importing semantic types)\n// =============================================================================\n\ninterface RoleValue {\n type?: string;\n value?: unknown;\n raw?: string;\n selectorKind?: string;\n dataType?: string;\n scope?: string;\n}\n\ninterface NodeLike {\n kind?: string;\n action?: string;\n roles?: ReadonlyMap<string, RoleValue>;\n body?: NodeLike[];\n eventModifiers?: Record<string, unknown>;\n metadata?: { sourceText?: string };\n}\n\n// =============================================================================\n// Public API\n// =============================================================================\n\n/**\n * Extract abstract operations from a semantic node.\n *\n * Handles event handlers (extracts trigger + recurses into body)\n * and standalone commands.\n */\nexport function extractOperations(node: unknown): BehaviorSpec {\n const n = node as NodeLike;\n if (!n || typeof n !== 'object') {\n return emptySpec();\n }\n\n // Event handler: extract trigger and recurse into body\n if (n.kind === 'event-handler' || n.action === 'on') {\n return extractEventHandler(n);\n }\n\n // Standalone command: wrap with default trigger\n const ops = extractCommand(n);\n return {\n trigger: { event: 'click' },\n triggerTarget: { kind: 'self' },\n operations: ops,\n async: ops.some(isAsyncOp),\n source: n.metadata?.sourceText,\n };\n}\n\n// =============================================================================\n// Event Handler Extraction\n// =============================================================================\n\nfunction extractEventHandler(n: NodeLike): BehaviorSpec {\n // A colon-qualified event is an expression (`raw`), not a literal (`value`).\n const eventRole = n.roles?.get('event') as (RoleValue & { raw?: unknown }) | undefined;\n const named = eventRole?.value ?? eventRole?.raw;\n const eventName = typeof named === 'string' && named.length > 0 ? named : 'click';\n\n const operations: AbstractOperation[] = [];\n\n if (n.body && Array.isArray(n.body)) {\n for (const child of n.body) {\n operations.push(...extractCommand(child));\n }\n }\n\n return {\n trigger: {\n event: eventName,\n modifiers: n.eventModifiers,\n },\n triggerTarget: { kind: 'self' },\n operations,\n async: operations.some(isAsyncOp),\n source: n.metadata?.sourceText,\n };\n}\n\n// =============================================================================\n// Command Extraction\n// =============================================================================\n\nfunction extractCommand(n: NodeLike): AbstractOperation[] {\n const action = n.action;\n if (!action || action === 'on') return [];\n\n const roles = n.roles;\n\n switch (action) {\n // --- DOM Class ---\n case 'toggle':\n return extractClassOp('toggleClass', roles);\n case 'add':\n return extractClassOp('addClass', roles);\n case 'remove':\n return extractClassOp('removeClass', roles);\n\n // --- DOM Content ---\n case 'put':\n return extractPut(roles);\n case 'append':\n return extractAppend(roles);\n\n // --- DOM Visibility ---\n case 'show':\n return extractVisibility('show', roles);\n case 'hide':\n return extractVisibility('hide', roles);\n\n // --- Variables ---\n case 'set':\n return extractSet(roles);\n case 'increment':\n return extractIncrDecr('increment', roles);\n case 'decrement':\n return extractIncrDecr('decrement', roles);\n\n // --- Navigation ---\n case 'go':\n return extractGo(roles);\n\n // --- Async ---\n case 'fetch':\n return extractFetch(roles);\n case 'wait':\n return extractWait(roles);\n\n // --- Events ---\n case 'send':\n case 'trigger':\n return extractTriggerEvent(roles);\n\n // --- Focus ---\n case 'focus':\n return [{ op: 'focus', target: resolveTarget(roles, 'patient') }];\n case 'blur':\n return [{ op: 'blur', target: resolveTarget(roles, 'patient') }];\n\n // --- Utility ---\n case 'log':\n return extractLog(roles);\n\n default:\n return [];\n }\n}\n\n// =============================================================================\n// Per-Command Extractors\n// =============================================================================\n\nfunction extractClassOp(\n op: 'toggleClass' | 'addClass' | 'removeClass',\n roles: ReadonlyMap<string, RoleValue> | undefined\n): AbstractOperation[] {\n const patient = roles?.get('patient');\n if (!patient) return [];\n\n const value = String(patient.value ?? '');\n const className = value.startsWith('.') ? value.slice(1) : value;\n if (!className) return [];\n\n const target = resolveTarget(roles, op === 'removeClass' ? 'source' : 'destination');\n\n return [{ op, className, target }];\n}\n\nfunction extractPut(roles: ReadonlyMap<string, RoleValue> | undefined): AbstractOperation[] {\n const patient = roles?.get('patient');\n if (!patient) return [];\n\n const content = String(patient.value ?? patient.raw ?? '');\n const target = resolveTarget(roles, 'destination');\n\n // Determine position from method role\n const method = roles?.get('method');\n let position: 'into' | 'before' | 'after' | 'start' | 'end' = 'into';\n if (method?.value) {\n const m = String(method.value);\n if (m === 'before') position = 'before';\n else if (m === 'after') position = 'after';\n else if (m === 'start' || m === 'at start of') position = 'start';\n else if (m === 'end' || m === 'at end of') position = 'end';\n }\n\n return [{ op: 'setContent', content, target, position }];\n}\n\nfunction extractAppend(roles: ReadonlyMap<string, RoleValue> | undefined): AbstractOperation[] {\n const patient = roles?.get('patient');\n if (!patient) return [];\n\n const content = String(patient.value ?? patient.raw ?? '');\n const target = resolveTarget(roles, 'destination');\n\n return [{ op: 'appendContent', content, target }];\n}\n\nfunction extractVisibility(\n op: 'show' | 'hide',\n roles: ReadonlyMap<string, RoleValue> | undefined\n): AbstractOperation[] {\n const target = resolveTarget(roles, 'patient');\n return [{ op, target }];\n}\n\nfunction extractSet(roles: ReadonlyMap<string, RoleValue> | undefined): AbstractOperation[] {\n const destination = roles?.get('destination');\n const patient = roles?.get('patient');\n\n if (!destination && !patient) return [];\n\n // Variable assignment: set :count to 5\n const targetRole = destination ?? patient;\n const valueRole = destination ? patient : undefined;\n\n const name = String(targetRole?.value ?? '');\n const value = valueRole ? String(valueRole.value ?? '') : '';\n const scope = (targetRole?.scope ?? 'local') as 'local' | 'element' | 'global';\n\n return [{ op: 'setVariable', name, value, scope }];\n}\n\nfunction extractIncrDecr(\n op: 'increment' | 'decrement',\n roles: ReadonlyMap<string, RoleValue> | undefined\n): AbstractOperation[] {\n const target = resolveTarget(roles, 'patient');\n\n // Amount from quantity role\n const quantity = roles?.get('quantity');\n const amount = quantity?.value ? Number(quantity.value) : 1;\n\n return [{ op, target, amount }];\n}\n\nfunction extractGo(roles: ReadonlyMap<string, RoleValue> | undefined): AbstractOperation[] {\n const destination = roles?.get('destination');\n if (!destination) return [];\n\n const url = String(destination.value ?? '');\n\n if (url === 'back') return [{ op: 'historyBack' }];\n if (url === 'forward') return [{ op: 'historyForward' }];\n\n return [{ op: 'navigate', url }];\n}\n\nfunction extractFetch(roles: ReadonlyMap<string, RoleValue> | undefined): AbstractOperation[] {\n const source = roles?.get('source');\n if (!source) return [];\n\n const url = String(source.value ?? source.raw ?? '');\n\n const responseType = roles?.get('responseType');\n let format: 'json' | 'text' | 'html' = 'text';\n if (responseType?.value) {\n const f = String(responseType.value);\n if (f === 'json') format = 'json';\n else if (f === 'html') format = 'html';\n }\n\n const destRole = roles?.get('destination');\n const target = destRole ? resolveTargetFromRole(destRole) : undefined;\n\n return [{ op: 'fetch', url, format, target }];\n}\n\nfunction extractWait(roles: ReadonlyMap<string, RoleValue> | undefined): AbstractOperation[] {\n const duration = roles?.get('duration') ?? roles?.get('patient');\n if (!duration) return [];\n\n let ms = 0;\n const val = duration.value;\n if (typeof val === 'number') {\n ms = val;\n } else if (typeof val === 'string') {\n ms = parseDurationMs(val);\n }\n\n return [{ op: 'wait', durationMs: ms }];\n}\n\nfunction extractTriggerEvent(\n roles: ReadonlyMap<string, RoleValue> | undefined\n): AbstractOperation[] {\n const patient = roles?.get('patient');\n if (!patient) return [];\n\n const eventName = String(patient.value ?? '');\n const target = resolveTarget(roles, 'destination');\n\n return [{ op: 'triggerEvent', eventName, target }];\n}\n\nfunction extractLog(roles: ReadonlyMap<string, RoleValue> | undefined): AbstractOperation[] {\n const patient = roles?.get('patient');\n const values: string[] = [];\n\n if (patient) {\n values.push(String(patient.value ?? patient.raw ?? ''));\n }\n\n return [{ op: 'log', values }];\n}\n\n// =============================================================================\n// Helpers\n// =============================================================================\n\n/**\n * Resolve a target reference from the roles map.\n * Falls back to { kind: 'self' } if the role is missing or defaults to 'me'.\n */\nfunction resolveTarget(\n roles: ReadonlyMap<string, RoleValue> | undefined,\n roleName: string\n): TargetRef {\n const role = roles?.get(roleName);\n if (!role) return { kind: 'self' };\n return resolveTargetFromRole(role);\n}\n\nfunction resolveTargetFromRole(role: RoleValue): TargetRef {\n const value = String(role.value ?? '');\n\n // Reference to self\n if (role.type === 'reference' && (value === 'me' || value === 'it')) {\n return { kind: 'self' };\n }\n\n // Variable reference\n if (value.startsWith(':') || role.scope) {\n return { kind: 'variable', value };\n }\n\n // CSS selector\n if (\n role.type === 'selector' ||\n value.startsWith('#') ||\n value.startsWith('.') ||\n value.startsWith('[')\n ) {\n return { kind: 'selector', value };\n }\n\n // Literal URL or other value — treat as selector if it looks like one\n if (value) {\n return { kind: 'selector', value };\n }\n\n return { kind: 'self' };\n}\n\nfunction isAsyncOp(op: AbstractOperation): boolean {\n return op.op === 'fetch' || op.op === 'wait';\n}\n\nfunction parseDurationMs(value: string): number {\n const match = value.match(/^(\\d+(?:\\.\\d+)?)\\s*(ms|s|m|h)?$/);\n if (!match) return 0;\n\n const num = parseFloat(match[1]);\n const unit = match[2] ?? 'ms';\n\n switch (unit) {\n case 'ms':\n return num;\n case 's':\n return num * 1000;\n case 'm':\n return num * 60000;\n case 'h':\n return num * 3600000;\n default:\n return num;\n }\n}\n\nfunction emptySpec(): BehaviorSpec {\n return {\n trigger: { event: 'click' },\n triggerTarget: { kind: 'self' },\n operations: [],\n async: false,\n };\n}\n","/**\n * HTML Fixture Generator\n *\n * Generates minimal HTML pages that contain all elements referenced\n * by a BehaviorSpec. Used by test renderers to create test fixtures.\n */\n\nimport type { AbstractOperation, BehaviorSpec, TargetRef } from '../operations/types.js';\n\n// =============================================================================\n// Public API\n// =============================================================================\n\n/**\n * Generate a minimal HTML fixture for a behavior spec.\n *\n * @param spec - The behavior to create a fixture for\n * @param hyperscript - Original hyperscript source to embed as `_=\"...\"` attribute\n */\nexport function generateFixture(spec: BehaviorSpec, hyperscript?: string): string {\n const elements = collectElements(spec);\n const triggerSelector = targetToSelector(spec.triggerTarget);\n\n // When trigger is 'self', the hyperscript attribute goes on the first\n // operation target (since 'self' means the element the script is on).\n // When trigger is a specific selector, check if it matches an operation target.\n const triggerIsSeparate =\n triggerSelector !== null && !elements.some(e => e.selector === triggerSelector);\n\n // Track whether the _= attribute has been placed on an element\n let hyperscriptPlaced = false;\n\n const lines: string[] = [];\n\n // Add initial styles for visibility tests\n if (needsInitialStyles(spec.operations)) {\n lines.push('<style>');\n for (const op of spec.operations) {\n if (op.op === 'hide') {\n const sel = targetToSelector(op.target);\n if (sel) lines.push(` ${sel} { display: block; }`);\n }\n if (op.op === 'show') {\n const sel = targetToSelector(op.target);\n if (sel) lines.push(` ${sel} { display: none; }`);\n }\n }\n lines.push('</style>');\n }\n\n // Generate elements\n if (triggerIsSeparate) {\n // Trigger element is separate from targets\n const triggerEl = createTriggerElement(triggerSelector!, hyperscript);\n lines.push(triggerEl);\n hyperscriptPlaced = true;\n }\n\n for (const el of elements) {\n // Place _= attribute on this element if:\n // 1. It matches the trigger selector, OR\n // 2. Trigger is 'self' and this is the first element (hasn't been placed yet)\n const isTrigger =\n (!triggerIsSeparate && el.selector === triggerSelector) ||\n (triggerSelector === null && !hyperscriptPlaced);\n const attrs = isTrigger && hyperscript ? ` _=\"${escapeAttr(hyperscript)}\"` : '';\n if (isTrigger && hyperscript) hyperscriptPlaced = true;\n const extraClasses = getInitialClasses(el.selector, spec.operations);\n\n let tag = el.tag;\n let className = el.className;\n if (extraClasses.length > 0) {\n className = className ? `${className} ${extraClasses.join(' ')}` : extraClasses.join(' ');\n }\n\n const classAttr = className ? ` class=\"${className}\"` : '';\n const idAttr = el.id ? ` id=\"${el.id}\"` : '';\n\n if (tag === 'input') {\n lines.push(`<${tag}${idAttr}${classAttr}${attrs} />`);\n } else {\n const content = el.defaultContent ?? '';\n lines.push(`<${tag}${idAttr}${classAttr}${attrs}>${content}</${tag}>`);\n }\n }\n\n // If trigger is self and no explicit elements, create a self-targeting button\n if (elements.length === 0 && spec.triggerTarget.kind === 'self') {\n const attr = hyperscript ? ` _=\"${escapeAttr(hyperscript)}\"` : '';\n lines.push(`<button id=\"trigger\"${attr}>Click me</button>`);\n }\n\n return lines.join('\\n');\n}\n\n// =============================================================================\n// Element Collection\n// =============================================================================\n\ninterface FixtureElement {\n selector: string;\n id?: string;\n className?: string;\n tag: string;\n defaultContent?: string;\n}\n\nfunction collectElements(spec: BehaviorSpec): FixtureElement[] {\n const seen = new Set<string>();\n const elements: FixtureElement[] = [];\n\n for (const op of spec.operations) {\n for (const ref of getTargetRefs(op)) {\n if (ref.kind !== 'selector') continue;\n if (seen.has(ref.value)) continue;\n seen.add(ref.value);\n\n elements.push(selectorToElement(ref.value));\n }\n }\n\n return elements;\n}\n\nfunction getTargetRefs(op: AbstractOperation): TargetRef[] {\n const refs: TargetRef[] = [];\n\n if ('target' in op && op.target) {\n refs.push(op.target as TargetRef);\n }\n\n return refs;\n}\n\nfunction selectorToElement(selector: string): FixtureElement {\n // ID selector: #foo\n if (selector.startsWith('#')) {\n const id = selector.slice(1);\n return {\n selector,\n id,\n tag: inferTagFromId(id),\n defaultContent: inferContent(id),\n };\n }\n\n // Class selector: .foo\n if (selector.startsWith('.')) {\n const className = selector.slice(1);\n return {\n selector,\n className,\n tag: 'div',\n defaultContent: className,\n };\n }\n\n // Attribute or complex selector — use div\n return {\n selector,\n tag: 'div',\n defaultContent: '',\n };\n}\n\n// =============================================================================\n// Smart Element Type Inference\n// =============================================================================\n\nconst BUTTON_IDS = new Set(['btn', 'button', 'submit', 'trigger', 'action']);\nconst INPUT_IDS = new Set(['input', 'search', 'email', 'text', 'field', 'query']);\nconst FORM_IDS = new Set(['form', 'signup', 'login']);\nconst DIALOG_IDS = new Set(['modal', 'dialog', 'popup', 'overlay']);\nconst LIST_IDS = new Set(['list', 'items', 'results', 'options']);\n\nfunction inferTagFromId(id: string): string {\n const lower = id.toLowerCase();\n if (BUTTON_IDS.has(lower)) return 'button';\n if (INPUT_IDS.has(lower)) return 'input';\n if (FORM_IDS.has(lower)) return 'form';\n if (DIALOG_IDS.has(lower)) return 'div';\n if (LIST_IDS.has(lower)) return 'ul';\n return 'div';\n}\n\nfunction inferContent(id: string): string {\n const lower = id.toLowerCase();\n if (BUTTON_IDS.has(lower)) return 'Click';\n if (INPUT_IDS.has(lower)) return '';\n if (LIST_IDS.has(lower)) return '';\n // Capitalize first letter\n return id.charAt(0).toUpperCase() + id.slice(1);\n}\n\n// =============================================================================\n// Helpers\n// =============================================================================\n\nfunction createTriggerElement(selector: string, hyperscript?: string): string {\n const attr = hyperscript ? ` _=\"${escapeAttr(hyperscript)}\"` : '';\n // If the trigger selector refers to an existing element type, use it\n if (selector.startsWith('#')) {\n const id = selector.slice(1);\n return `<button id=\"${id}\"${attr}>Click</button>`;\n }\n return `<button id=\"trigger\"${attr}>Click</button>`;\n}\n\nfunction targetToSelector(ref: TargetRef): string | null {\n if (ref.kind === 'selector') return ref.value;\n if (ref.kind === 'self') return null;\n return null;\n}\n\nfunction needsInitialStyles(ops: AbstractOperation[]): boolean {\n return ops.some(op => op.op === 'hide' || op.op === 'show');\n}\n\nfunction getInitialClasses(selector: string, ops: AbstractOperation[]): string[] {\n const classes: string[] = [];\n for (const op of ops) {\n if (op.op === 'removeClass' && 'target' in op) {\n const targetSel = targetToSelector(op.target);\n if (targetSel === selector || (op.target.kind === 'self' && selector === null)) {\n classes.push(op.className);\n }\n }\n }\n return classes;\n}\n\nfunction escapeAttr(s: string): string {\n return s\n .replace(/&/g, '&')\n .replace(/\"/g, '"')\n .replace(/</g, '<')\n .replace(/>/g, '>');\n}\n","/**\n * Playwright Test Renderer\n *\n * Generates complete Playwright test files from BehaviorSpecs.\n * Each generated test creates an HTML fixture, triggers the behavior,\n * and asserts the expected DOM changes.\n */\n\nimport type { AbstractOperation, BehaviorSpec, TargetRef } from '../operations/types.js';\nimport type { TestRenderer, TestRenderOptions, GeneratedTest } from './types.js';\nimport { generateFixture } from './html-fixture.js';\n\n// =============================================================================\n// Renderer\n// =============================================================================\n\nexport class PlaywrightRenderer implements TestRenderer {\n readonly framework = 'playwright';\n\n render(spec: BehaviorSpec, options: TestRenderOptions = {}): GeneratedTest {\n const testName = options.testName ?? generateTestName(spec);\n const html = generateFixture(spec, options.hyperscript);\n\n const lines: string[] = [];\n\n // Import\n lines.push(\"import { test, expect } from '@playwright/test';\");\n lines.push('');\n\n // Test\n lines.push(`test('${escapeString(testName)}', async ({ page }) => {`);\n\n // Setup fixture\n lines.push(` await page.setContent(\\`${escapeTemplate(wrapHtml(html))}\\`);`);\n\n // Load the engine's script-tag bundle. (Until 4.0 this named core's\n // `lokascript-browser.js`, an alias of `hyperfixi.js`, which is the engine's file since\n // Phase C3; a 'compiled' mode loaded AOT output instead, until the AOT compiler retired.)\n const bundlePath =\n options.bundlePath ?? './node_modules/@hyperfixi/engine/dist/hyperfixi-hs.js';\n lines.push(` await page.addScriptTag({ path: '${escapeString(bundlePath)}' });`);\n lines.push(\" await page.waitForFunction(() => document.querySelector('[_]') !== null);\");\n // Wait for the engine to process attributes\n lines.push(' await page.waitForTimeout(100);');\n lines.push('');\n\n // Determine trigger locator\n const triggerLocator = getTriggerLocator(spec);\n\n // Generate assertions for each operation\n for (const op of spec.operations) {\n const assertions = generateAssertions(op, spec, triggerLocator);\n lines.push(...assertions.map(l => ` ${l}`));\n }\n\n lines.push('});');\n lines.push('');\n\n return {\n name: testName,\n code: lines.join('\\n'),\n html,\n framework: 'playwright',\n operations: spec.operations,\n };\n }\n}\n\n// =============================================================================\n// Assertion Generation\n// =============================================================================\n\nfunction generateAssertions(\n op: AbstractOperation,\n spec: BehaviorSpec,\n triggerLocator: string\n): string[] {\n switch (op.op) {\n case 'toggleClass':\n return generateToggleClassAssertions(op, spec, triggerLocator);\n case 'addClass':\n return generateAddClassAssertions(op, spec, triggerLocator);\n case 'removeClass':\n return generateRemoveClassAssertions(op, spec, triggerLocator);\n case 'setContent':\n return generateSetContentAssertions(op, spec, triggerLocator);\n case 'appendContent':\n return generateAppendContentAssertions(op, spec, triggerLocator);\n case 'show':\n return generateShowAssertions(op, spec, triggerLocator);\n case 'hide':\n return generateHideAssertions(op, spec, triggerLocator);\n case 'navigate':\n return generateNavigateAssertions(op, spec, triggerLocator);\n case 'focus':\n return generateFocusAssertions(op, spec, triggerLocator);\n case 'blur':\n return generateBlurAssertions(op, spec, triggerLocator);\n case 'triggerEvent':\n return generateTriggerEventAssertions(op, spec, triggerLocator);\n case 'fetch':\n return generateFetchAssertions(op, spec, triggerLocator);\n case 'wait':\n return generateWaitAssertions(op);\n case 'setVariable':\n case 'increment':\n case 'decrement':\n return generateVariableAssertions(op, spec, triggerLocator);\n case 'log':\n return generateLogAssertions(op, spec, triggerLocator);\n default:\n return [`// Unsupported operation: ${(op as AbstractOperation).op}`];\n }\n}\n\n// --- DOM Class ---\n\nfunction generateToggleClassAssertions(\n op: { className: string; target: TargetRef },\n spec: BehaviorSpec,\n triggerLocator: string\n): string[] {\n const locator = targetToLocator(op.target, spec);\n const lines: string[] = [];\n\n lines.push(`// Toggle .${op.className}`);\n lines.push(`await ${triggerLocator}.${triggerAction(spec)};`);\n if (spec.async) lines.push('await page.waitForTimeout(100);');\n lines.push(`await expect(${locator}).toHaveClass(/${op.className}/);`);\n lines.push('');\n lines.push(`// Toggle back`);\n lines.push(`await ${triggerLocator}.${triggerAction(spec)};`);\n if (spec.async) lines.push('await page.waitForTimeout(100);');\n lines.push(`await expect(${locator}).not.toHaveClass(/${op.className}/);`);\n\n return lines;\n}\n\nfunction generateAddClassAssertions(\n op: { className: string; target: TargetRef },\n spec: BehaviorSpec,\n triggerLocator: string\n): string[] {\n const locator = targetToLocator(op.target, spec);\n return [\n `// Add .${op.className}`,\n `await ${triggerLocator}.${triggerAction(spec)};`,\n ...(spec.async ? ['await page.waitForTimeout(100);'] : []),\n `await expect(${locator}).toHaveClass(/${op.className}/);`,\n ];\n}\n\nfunction generateRemoveClassAssertions(\n op: { className: string; target: TargetRef },\n spec: BehaviorSpec,\n triggerLocator: string\n): string[] {\n const locator = targetToLocator(op.target, spec);\n return [\n `// Remove .${op.className} (should have it initially)`,\n `await expect(${locator}).toHaveClass(/${op.className}/);`,\n `await ${triggerLocator}.${triggerAction(spec)};`,\n ...(spec.async ? ['await page.waitForTimeout(100);'] : []),\n `await expect(${locator}).not.toHaveClass(/${op.className}/);`,\n ];\n}\n\n// --- DOM Content ---\n\nfunction generateSetContentAssertions(\n op: { content: string; target: TargetRef },\n spec: BehaviorSpec,\n triggerLocator: string\n): string[] {\n const locator = targetToLocator(op.target, spec);\n return [\n `// Put \"${op.content}\" into element`,\n `await ${triggerLocator}.${triggerAction(spec)};`,\n ...(spec.async ? ['await page.waitForTimeout(100);'] : []),\n `await expect(${locator}).toContainText('${escapeString(op.content)}');`,\n ];\n}\n\nfunction generateAppendContentAssertions(\n op: { content: string; target: TargetRef },\n spec: BehaviorSpec,\n triggerLocator: string\n): string[] {\n const locator = targetToLocator(op.target, spec);\n return [\n `// Append \"${op.content}\"`,\n `await ${triggerLocator}.${triggerAction(spec)};`,\n ...(spec.async ? ['await page.waitForTimeout(100);'] : []),\n `await expect(${locator}).toContainText('${escapeString(op.content)}');`,\n ];\n}\n\n// --- DOM Visibility ---\n\nfunction generateShowAssertions(\n op: { target: TargetRef },\n spec: BehaviorSpec,\n triggerLocator: string\n): string[] {\n const locator = targetToLocator(op.target, spec);\n return [\n '// Show element (initially hidden)',\n `await expect(${locator}).not.toBeVisible();`,\n `await ${triggerLocator}.${triggerAction(spec)};`,\n ...(spec.async ? ['await page.waitForTimeout(100);'] : []),\n `await expect(${locator}).toBeVisible();`,\n ];\n}\n\nfunction generateHideAssertions(\n op: { target: TargetRef },\n spec: BehaviorSpec,\n triggerLocator: string\n): string[] {\n const locator = targetToLocator(op.target, spec);\n return [\n '// Hide element (initially visible)',\n `await expect(${locator}).toBeVisible();`,\n `await ${triggerLocator}.${triggerAction(spec)};`,\n ...(spec.async ? ['await page.waitForTimeout(100);'] : []),\n `await expect(${locator}).not.toBeVisible();`,\n ];\n}\n\n// --- Navigation ---\n\nfunction generateNavigateAssertions(\n op: { url: string },\n spec: BehaviorSpec,\n triggerLocator: string\n): string[] {\n return [\n `// Navigate to ${op.url}`,\n `// Note: Navigation will change the page URL`,\n `await ${triggerLocator}.${triggerAction(spec)};`,\n `await page.waitForURL('**${op.url}**');`,\n ];\n}\n\n// --- Focus ---\n\nfunction generateFocusAssertions(\n op: { target: TargetRef },\n spec: BehaviorSpec,\n triggerLocator: string\n): string[] {\n const locator = targetToLocator(op.target, spec);\n return [\n '// Focus element',\n `await ${triggerLocator}.${triggerAction(spec)};`,\n ...(spec.async ? ['await page.waitForTimeout(100);'] : []),\n `await expect(${locator}).toBeFocused();`,\n ];\n}\n\nfunction generateBlurAssertions(\n op: { target: TargetRef },\n spec: BehaviorSpec,\n triggerLocator: string\n): string[] {\n const locator = targetToLocator(op.target, spec);\n return [\n '// Blur element',\n `await ${locator}.focus();`,\n `await expect(${locator}).toBeFocused();`,\n `await ${triggerLocator}.${triggerAction(spec)};`,\n ...(spec.async ? ['await page.waitForTimeout(100);'] : []),\n `await expect(${locator}).not.toBeFocused();`,\n ];\n}\n\n// --- Events ---\n\nfunction generateTriggerEventAssertions(\n op: { eventName: string; target: TargetRef },\n spec: BehaviorSpec,\n triggerLocator: string\n): string[] {\n return [\n `// Trigger '${op.eventName}' event`,\n `const eventReceived = page.evaluate((sel) => {`,\n ` return new Promise<boolean>((resolve) => {`,\n ` const el = document.querySelector(sel) ?? document.body;`,\n ` el.addEventListener('${escapeString(op.eventName)}', () => resolve(true), { once: true });`,\n ` setTimeout(() => resolve(false), 2000);`,\n ` });`,\n `}, '${escapeString(targetToCssSelector(op.target))}');`,\n `await ${triggerLocator}.${triggerAction(spec)};`,\n `expect(await eventReceived).toBe(true);`,\n ];\n}\n\n// --- Async ---\n\nfunction generateFetchAssertions(\n op: { url: string; format: string; target?: TargetRef },\n spec: BehaviorSpec,\n triggerLocator: string\n): string[] {\n const lines: string[] = [];\n\n lines.push(`// Fetch ${op.url} as ${op.format}`);\n\n // Mock the network request\n if (op.format === 'json') {\n lines.push(`await page.route('**${op.url}**', route => {`);\n lines.push(` route.fulfill({`);\n lines.push(` contentType: 'application/json',`);\n lines.push(` body: JSON.stringify({ data: 'mock' }),`);\n lines.push(` });`);\n lines.push(`});`);\n } else if (op.format === 'html') {\n lines.push(`await page.route('**${op.url}**', route => {`);\n lines.push(` route.fulfill({`);\n lines.push(` contentType: 'text/html',`);\n lines.push(` body: '<div>Mock HTML</div>',`);\n lines.push(` });`);\n lines.push(`});`);\n } else {\n lines.push(`await page.route('**${op.url}**', route => {`);\n lines.push(` route.fulfill({`);\n lines.push(` contentType: 'text/plain',`);\n lines.push(` body: 'Mock response',`);\n lines.push(` });`);\n lines.push(`});`);\n }\n\n lines.push(`await ${triggerLocator}.${triggerAction(spec)};`);\n lines.push('await page.waitForTimeout(500);');\n\n // If there's a target, verify content was placed\n if (op.target) {\n const locator = targetToLocator(op.target, spec);\n lines.push(`await expect(${locator}).not.toBeEmpty();`);\n }\n\n return lines;\n}\n\nfunction generateWaitAssertions(op: { durationMs: number }): string[] {\n return [`// Wait ${op.durationMs}ms`, `// (no assertion — wait is a timing operation)`];\n}\n\n// --- Variables ---\n\nfunction generateVariableAssertions(\n op: AbstractOperation,\n spec: BehaviorSpec,\n triggerLocator: string\n): string[] {\n // Variable operations don't have direct DOM assertions\n // but we can verify the behavior executed without errors\n return [\n `// ${op.op} (variable operation — verify no errors)`,\n 'const errors: string[] = [];',\n \"page.on('pageerror', (err) => errors.push(err.message));\",\n `await ${triggerLocator}.${triggerAction(spec)};`,\n ...(spec.async ? ['await page.waitForTimeout(100);'] : []),\n 'expect(errors).toHaveLength(0);',\n ];\n}\n\n// --- Utility ---\n\nfunction generateLogAssertions(\n op: { values: string[] },\n spec: BehaviorSpec,\n triggerLocator: string\n): string[] {\n return [\n `// Log: ${op.values.join(', ')}`,\n 'const logs: string[] = [];',\n \"page.on('console', msg => { if (msg.type() === 'log') logs.push(msg.text()); });\",\n `await ${triggerLocator}.${triggerAction(spec)};`,\n ...(spec.async ? ['await page.waitForTimeout(100);'] : []),\n 'expect(logs.length).toBeGreaterThan(0);',\n ];\n}\n\n// =============================================================================\n// Helpers\n// =============================================================================\n\nfunction generateTestName(spec: BehaviorSpec): string {\n if (spec.source) return spec.source;\n\n const parts: string[] = [];\n parts.push(`on ${spec.trigger.event}`);\n\n for (const op of spec.operations) {\n parts.push(describeOp(op));\n }\n\n return parts.join(' ');\n}\n\nfunction describeOp(op: AbstractOperation): string {\n switch (op.op) {\n case 'toggleClass':\n return `toggle .${op.className}${describeTarget(op.target)}`;\n case 'addClass':\n return `add .${op.className}${describeTarget(op.target)}`;\n case 'removeClass':\n return `remove .${op.className}${describeTarget(op.target)}`;\n case 'setContent':\n return `put \"${op.content}\"${describeTarget(op.target)}`;\n case 'appendContent':\n return `append \"${op.content}\"${describeTarget(op.target)}`;\n case 'show':\n return `show${describeTarget(op.target)}`;\n case 'hide':\n return `hide${describeTarget(op.target)}`;\n case 'navigate':\n return `go to ${op.url}`;\n case 'focus':\n return `focus${describeTarget(op.target)}`;\n case 'blur':\n return `blur${describeTarget(op.target)}`;\n case 'fetch':\n return `fetch ${op.url} as ${op.format}`;\n case 'wait':\n return `wait ${op.durationMs}ms`;\n case 'setVariable':\n return `set ${op.name} to ${op.value}`;\n case 'increment':\n return `increment${describeTarget(op.target)}`;\n case 'decrement':\n return `decrement${describeTarget(op.target)}`;\n case 'triggerEvent':\n return `trigger ${op.eventName}${describeTarget(op.target)}`;\n case 'log':\n return `log ${op.values.join(', ')}`;\n case 'historyBack':\n return 'go back';\n case 'historyForward':\n return 'go forward';\n default:\n return (op as AbstractOperation).op;\n }\n}\n\nfunction describeTarget(target: TargetRef): string {\n if (target.kind === 'self') return '';\n if (target.kind === 'selector') return ` on ${target.value}`;\n if (target.kind === 'variable') return ` on ${target.value}`;\n return '';\n}\n\nfunction getTriggerLocator(spec: BehaviorSpec): string {\n if (spec.triggerTarget.kind === 'selector') {\n return `page.locator('${escapeString(spec.triggerTarget.value)}')`;\n }\n\n // Self — find the element with the _=\"...\" attribute\n // If operations have a target, use that; otherwise use a generic trigger\n for (const op of spec.operations) {\n if ('target' in op && (op as { target: TargetRef }).target.kind === 'selector') {\n const t = (op as { target: TargetRef }).target;\n if (t.kind === 'selector') {\n return `page.locator('${escapeString(t.value)}')`;\n }\n }\n }\n\n return \"page.locator('[_]')\";\n}\n\nfunction targetToLocator(target: TargetRef, spec: BehaviorSpec): string {\n if (target.kind === 'selector') {\n return `page.locator('${escapeString(target.value)}')`;\n }\n if (target.kind === 'self') {\n return getTriggerLocator(spec);\n }\n // Variable target — fall back to trigger\n return getTriggerLocator(spec);\n}\n\nfunction targetToCssSelector(target: TargetRef): string {\n if (target.kind === 'selector') return target.value;\n if (target.kind === 'self') return '[_]';\n return 'body';\n}\n\nfunction triggerAction(spec: BehaviorSpec): string {\n const event = spec.trigger.event;\n switch (event) {\n case 'click':\n return 'click()';\n case 'dblclick':\n return 'dblclick()';\n case 'mouseenter':\n return 'hover()';\n case 'mouseover':\n return 'hover()';\n case 'focus':\n return 'focus()';\n case 'blur':\n return 'blur()';\n case 'keydown':\n case 'keyup':\n case 'keypress':\n return \"press('Enter')\";\n case 'input':\n case 'change':\n return \"fill('test')\";\n case 'submit':\n return 'click()';\n default:\n return `dispatchEvent(new Event('${escapeString(event)}'))`;\n }\n}\n\nfunction wrapHtml(body: string): string {\n return `<!DOCTYPE html>\\n<html>\\n<body>\\n${body}\\n</body>\\n</html>`;\n}\n\nfunction escapeString(s: string): string {\n return s.replace(/\\\\/g, '\\\\\\\\').replace(/'/g, \"\\\\'\");\n}\n\nfunction escapeTemplate(s: string): string {\n return s.replace(/`/g, '\\\\`').replace(/\\$\\{/g, '\\\\${');\n}\n","/**\n * Shared Renderer Helpers\n *\n * Pure utility functions used by React, Vue, and Svelte component renderers.\n * Framework-agnostic: naming, type inference, tag inference, string escaping.\n */\n\nimport type { BehaviorSpec, TargetRef } from '../operations/types.js';\n\n// =============================================================================\n// String Utilities\n// =============================================================================\n\nexport function capitalize(s: string): string {\n if (!s) return s;\n return s.charAt(0).toUpperCase() + s.slice(1);\n}\n\nexport function escapeString(s: string): string {\n return s.replace(/\\\\/g, '\\\\\\\\').replace(/'/g, \"\\\\'\");\n}\n\nexport function isNumeric(s: string): boolean {\n return /^-?\\d+(\\.\\d+)?$/.test(s);\n}\n\nexport function cleanVarName(name: string): string {\n return name.replace(/^:/, '').replace(/[^a-zA-Z0-9]/g, '');\n}\n\n// =============================================================================\n// Target Helpers\n// =============================================================================\n\nexport function targetKey(target: TargetRef): string {\n if (target.kind === 'self') return 'self';\n return target.value;\n}\n\nexport function stateKey(prefix: string, name: string, target: TargetRef): string {\n return `${prefix}:${name}:${targetKey(target)}`;\n}\n\nexport function targetStateName(target: TargetRef, suffix: string): string {\n if (target.kind === 'selector') {\n const clean = target.value.replace(/^[#.]/, '');\n return clean + suffix;\n }\n return suffix.toLowerCase();\n}\n\nexport function targetRefName(target: TargetRef): string {\n if (target.kind === 'selector') {\n const clean = target.value.replace(/^[#.]/, '');\n return clean + 'Ref';\n }\n return 'elementRef';\n}\n\n// =============================================================================\n// Type Inference\n// =============================================================================\n\nexport function inferType(value: string): string {\n if (isNumeric(value)) return '<number>';\n if (value === 'true' || value === 'false') return '<boolean>';\n return '<string>';\n}\n\nexport function inferInitial(value: string, typeAnn: string): string {\n if (typeAnn === '<number>') return isNumeric(value) ? value : '0';\n if (typeAnn === '<boolean>') return value === 'true' ? 'true' : 'false';\n return `'${escapeString(value)}'`;\n}\n\n// =============================================================================\n// Tag and Selector Inference\n// =============================================================================\n\nexport function selectorToTag(selector: string): string {\n if (selector.startsWith('#')) {\n const id = selector.slice(1).toLowerCase();\n if (['btn', 'button', 'submit', 'trigger'].includes(id)) return 'button';\n if (['input', 'search', 'email', 'text', 'field'].includes(id)) return 'input';\n if (['form', 'signup', 'login'].includes(id)) return 'form';\n return 'div';\n }\n return 'div';\n}\n\nexport function inferTriggerTag(spec: BehaviorSpec): string {\n if (spec.triggerTarget.kind === 'selector') {\n return selectorToTag(spec.triggerTarget.value);\n }\n if (spec.trigger.event === 'submit') return 'form';\n if (spec.trigger.event === 'input' || spec.trigger.event === 'change') return 'input';\n return 'button';\n}\n\nexport function inferTriggerContent(spec: BehaviorSpec): string {\n const tag = inferTriggerTag(spec);\n if (tag === 'input' || tag === 'form') return '';\n if (spec.triggerTarget.kind === 'selector') {\n const id = spec.triggerTarget.value.replace(/^[#.]/, '');\n return capitalize(id);\n }\n return 'Click';\n}\n\n// =============================================================================\n// Component Naming\n// =============================================================================\n\nexport function generateComponentName(spec: BehaviorSpec): string {\n if (spec.operations.length === 0) return 'Component';\n\n const parts: string[] = [];\n const firstOp = spec.operations[0];\n\n switch (firstOp.op) {\n case 'toggleClass':\n parts.push('Toggle', capitalize(firstOp.className));\n break;\n case 'addClass':\n parts.push('Add', capitalize(firstOp.className));\n break;\n case 'removeClass':\n parts.push('Remove', capitalize(firstOp.className));\n break;\n case 'show':\n parts.push('Show');\n appendTargetName(parts, firstOp.target);\n break;\n case 'hide':\n parts.push('Hide');\n appendTargetName(parts, firstOp.target);\n break;\n case 'setContent':\n parts.push('SetContent');\n appendTargetName(parts, firstOp.target);\n break;\n case 'navigate':\n parts.push('NavigateTo');\n parts.push(capitalize(firstOp.url.replace(/[^a-zA-Z0-9]/g, '')));\n break;\n case 'fetch':\n parts.push('FetchData');\n break;\n case 'increment':\n parts.push('Increment');\n appendTargetName(parts, firstOp.target);\n break;\n case 'decrement':\n parts.push('Decrement');\n appendTargetName(parts, firstOp.target);\n break;\n case 'focus':\n parts.push('Focus');\n appendTargetName(parts, firstOp.target);\n break;\n default:\n parts.push('Component');\n }\n\n if (spec.trigger.event !== 'click') {\n parts.push('On', capitalize(spec.trigger.event));\n }\n\n return parts.join('') || 'Component';\n}\n\nfunction appendTargetName(parts: string[], target: TargetRef): void {\n if (target.kind === 'selector') {\n const clean = target.value.replace(/^[#.]/, '');\n parts.push(capitalize(clean));\n }\n}\n\n// =============================================================================\n// Class State Extraction\n// =============================================================================\n\n/**\n * Find class operations on the trigger element ('self') and look up their state variable names.\n * Works with any renderer's stateMap as long as keys follow the `target:class:className` pattern.\n */\nexport function getSelfClassStates(\n spec: BehaviorSpec,\n stateMap: Map<string, string>\n): { stateName: string; className: string }[] {\n const result: { stateName: string; className: string }[] = [];\n for (const op of spec.operations) {\n if (\n (op.op === 'toggleClass' || op.op === 'addClass' || op.op === 'removeClass') &&\n op.target.kind === 'self'\n ) {\n const stateVar = stateMap.get('self:class:' + op.className);\n if (stateVar) {\n result.push({ stateName: stateVar, className: op.className });\n }\n }\n }\n return result;\n}\n","/**\n * React Component Renderer\n *\n * Generates complete React functional components from BehaviorSpecs.\n * Maps abstract operations to React hooks (useState, useRef, useCallback) and JSX.\n */\n\nimport type { AbstractOperation, BehaviorSpec, TargetRef } from '../operations/types.js';\nimport type {\n ComponentRenderer,\n ComponentRenderOptions,\n GeneratedComponent,\n} from './component-types.js';\nimport {\n capitalize,\n cleanVarName,\n escapeString,\n generateComponentName,\n getSelfClassStates,\n inferInitial,\n inferTriggerContent,\n inferTriggerTag,\n inferType,\n isNumeric,\n selectorToTag,\n stateKey,\n targetKey,\n targetRefName,\n targetStateName,\n} from './renderer-helpers.js';\n\n// =============================================================================\n// Renderer\n// =============================================================================\n\nexport class ReactRenderer implements ComponentRenderer {\n readonly framework = 'react';\n\n render(spec: BehaviorSpec, options: ComponentRenderOptions = {}): GeneratedComponent {\n const componentName = options.componentName ?? generateComponentName(spec);\n const ts = options.typescript !== false;\n\n // Pre-pass: analyze what hooks and state we need\n const analysis = analyzeOperations(spec);\n\n const lines: string[] = [];\n\n // Imports\n const hooksList = [...analysis.hooks];\n if (hooksList.length > 0) {\n lines.push(`import { ${hooksList.join(', ')} } from 'react';`);\n }\n lines.push('');\n\n // Component function\n const propsType = ts ? '()' : '()';\n lines.push(`export function ${componentName}${propsType} {`);\n\n // State declarations\n for (const state of analysis.states) {\n const typeAnn = ts ? state.typeAnnotation : '';\n lines.push(\n ` const [${state.name}, ${state.setter}] = useState${typeAnn}(${state.initialValue});`\n );\n }\n\n // Ref declarations\n for (const ref of analysis.refs) {\n const typeAnn = ts ? ref.typeAnnotation : '';\n lines.push(` const ${ref.name} = useRef${typeAnn}(null);`);\n }\n\n if (analysis.states.length > 0 || analysis.refs.length > 0) {\n lines.push('');\n }\n\n // Event handler\n const handlerName = `handle${capitalize(spec.trigger.event)}`;\n const asyncPrefix = spec.async ? 'async ' : '';\n lines.push(` const ${handlerName} = useCallback(${asyncPrefix}() => {`);\n\n for (const op of spec.operations) {\n const opLines = generateOperationCode(op, analysis);\n for (const l of opLines) {\n lines.push(` ${l}`);\n }\n }\n\n lines.push(' }, []);');\n lines.push('');\n\n // JSX return\n lines.push(' return (');\n const jsx = generateJSX(spec, analysis, handlerName);\n for (const l of jsx) {\n lines.push(` ${l}`);\n }\n lines.push(' );');\n lines.push('}');\n lines.push('');\n\n return {\n name: componentName,\n code: lines.join('\\n'),\n framework: 'react',\n operations: spec.operations,\n hooks: hooksList,\n };\n }\n}\n\n// =============================================================================\n// Operation Analysis (pre-pass)\n// =============================================================================\n\ninterface StateDecl {\n name: string;\n setter: string;\n typeAnnotation: string;\n initialValue: string;\n /** The target selector this state is associated with */\n targetKey: string;\n}\n\ninterface RefDecl {\n name: string;\n typeAnnotation: string;\n targetKey: string;\n}\n\ninterface OperationAnalysis {\n hooks: Set<string>;\n states: StateDecl[];\n refs: RefDecl[];\n /** Map from target key → state variable name */\n stateMap: Map<string, string>;\n /** Map from target key → ref variable name */\n refMap: Map<string, string>;\n}\n\nfunction analyzeOperations(spec: BehaviorSpec): OperationAnalysis {\n const hooks = new Set<string>();\n const states: StateDecl[] = [];\n const refs: RefDecl[] = [];\n const stateMap = new Map<string, string>();\n const refMap = new Map<string, string>();\n const seenStates = new Set<string>();\n\n // Always need useCallback for the handler\n hooks.add('useCallback');\n\n for (const op of spec.operations) {\n switch (op.op) {\n case 'toggleClass': {\n const key = stateKey('has', op.className, op.target);\n if (!seenStates.has(key)) {\n seenStates.add(key);\n hooks.add('useState');\n const name = `has${capitalize(op.className)}`;\n states.push({\n name,\n setter: `set${capitalize(name)}`,\n typeAnnotation: '<boolean>',\n initialValue: 'false',\n targetKey: targetKey(op.target),\n });\n stateMap.set(targetKey(op.target) + ':class:' + op.className, name);\n }\n break;\n }\n\n case 'addClass':\n case 'removeClass': {\n const key = stateKey('has', op.className, op.target);\n if (!seenStates.has(key)) {\n seenStates.add(key);\n hooks.add('useState');\n const name = `has${capitalize(op.className)}`;\n const initial = op.op === 'removeClass' ? 'true' : 'false';\n states.push({\n name,\n setter: `set${capitalize(name)}`,\n typeAnnotation: '<boolean>',\n initialValue: initial,\n targetKey: targetKey(op.target),\n });\n stateMap.set(targetKey(op.target) + ':class:' + op.className, name);\n }\n break;\n }\n\n case 'show':\n case 'hide': {\n const tk = targetKey(op.target);\n const key = 'visible:' + tk;\n if (!seenStates.has(key)) {\n seenStates.add(key);\n hooks.add('useState');\n const name = targetStateName(op.target, 'Visible');\n states.push({\n name,\n setter: `set${capitalize(name)}`,\n typeAnnotation: '<boolean>',\n initialValue: op.op === 'hide' ? 'true' : 'false',\n targetKey: tk,\n });\n stateMap.set(tk + ':visible', name);\n }\n break;\n }\n\n case 'setContent':\n case 'appendContent': {\n const tk = targetKey(op.target);\n const key = 'content:' + tk;\n if (!seenStates.has(key)) {\n seenStates.add(key);\n hooks.add('useState');\n const name = targetStateName(op.target, 'Content');\n states.push({\n name,\n setter: `set${capitalize(name)}`,\n typeAnnotation: '<string>',\n initialValue: \"''\",\n targetKey: tk,\n });\n stateMap.set(tk + ':content', name);\n }\n break;\n }\n\n case 'setVariable': {\n const key = 'var:' + op.name;\n if (!seenStates.has(key)) {\n seenStates.add(key);\n hooks.add('useState');\n const name = cleanVarName(op.name);\n const typeAnn = inferType(op.value);\n states.push({\n name,\n setter: `set${capitalize(name)}`,\n typeAnnotation: typeAnn,\n initialValue: inferInitial(op.value, typeAnn),\n targetKey: 'var:' + op.name,\n });\n stateMap.set('var:' + op.name, name);\n }\n break;\n }\n\n case 'increment':\n case 'decrement': {\n const tk = targetKey(op.target);\n const key = 'num:' + tk;\n if (!seenStates.has(key)) {\n seenStates.add(key);\n hooks.add('useState');\n const name = targetStateName(op.target, 'Count');\n states.push({\n name,\n setter: `set${capitalize(name)}`,\n typeAnnotation: '<number>',\n initialValue: '0',\n targetKey: tk,\n });\n stateMap.set(tk + ':num', name);\n }\n break;\n }\n\n case 'fetch': {\n // Need state for the fetched data\n if (op.target) {\n const tk = targetKey(op.target);\n const key = 'content:' + tk;\n if (!seenStates.has(key)) {\n seenStates.add(key);\n hooks.add('useState');\n const name = targetStateName(op.target, 'Content');\n states.push({\n name,\n setter: `set${capitalize(name)}`,\n typeAnnotation: '<string>',\n initialValue: \"''\",\n targetKey: tk,\n });\n stateMap.set(tk + ':content', name);\n }\n }\n break;\n }\n\n case 'focus':\n case 'blur': {\n const tk = targetKey(op.target);\n if (!refMap.has(tk)) {\n hooks.add('useRef');\n const name = targetRefName(op.target);\n refs.push({\n name,\n typeAnnotation: '<HTMLElement>',\n targetKey: tk,\n });\n refMap.set(tk, name);\n }\n break;\n }\n\n case 'triggerEvent': {\n const tk = targetKey(op.target);\n if (!refMap.has(tk)) {\n hooks.add('useRef');\n const name = targetRefName(op.target);\n refs.push({\n name,\n typeAnnotation: '<HTMLElement>',\n targetKey: tk,\n });\n refMap.set(tk, name);\n }\n break;\n }\n\n // navigate, historyBack, historyForward, wait, log — no state/refs needed\n }\n }\n\n return { hooks, states, refs, stateMap, refMap };\n}\n\n// =============================================================================\n// Operation Code Generation\n// =============================================================================\n\nfunction generateOperationCode(op: AbstractOperation, analysis: OperationAnalysis): string[] {\n switch (op.op) {\n case 'toggleClass': {\n const stateVar = analysis.stateMap.get(targetKey(op.target) + ':class:' + op.className);\n const setter = stateVar ? `set${capitalize(stateVar)}` : 'setState';\n return [`${setter}(prev => !prev);`];\n }\n\n case 'addClass': {\n const stateVar = analysis.stateMap.get(targetKey(op.target) + ':class:' + op.className);\n const setter = stateVar ? `set${capitalize(stateVar)}` : 'setState';\n return [`${setter}(true);`];\n }\n\n case 'removeClass': {\n const stateVar = analysis.stateMap.get(targetKey(op.target) + ':class:' + op.className);\n const setter = stateVar ? `set${capitalize(stateVar)}` : 'setState';\n return [`${setter}(false);`];\n }\n\n case 'show': {\n const stateVar = analysis.stateMap.get(targetKey(op.target) + ':visible');\n const setter = stateVar ? `set${capitalize(stateVar)}` : 'setVisible';\n return [`${setter}(true);`];\n }\n\n case 'hide': {\n const stateVar = analysis.stateMap.get(targetKey(op.target) + ':visible');\n const setter = stateVar ? `set${capitalize(stateVar)}` : 'setVisible';\n return [`${setter}(false);`];\n }\n\n case 'setContent': {\n const stateVar = analysis.stateMap.get(targetKey(op.target) + ':content');\n const setter = stateVar ? `set${capitalize(stateVar)}` : 'setContent';\n return [`${setter}('${escapeString(op.content)}');`];\n }\n\n case 'appendContent': {\n const stateVar = analysis.stateMap.get(targetKey(op.target) + ':content');\n const setter = stateVar ? `set${capitalize(stateVar)}` : 'setContent';\n return [`${setter}(prev => prev + '${escapeString(op.content)}');`];\n }\n\n case 'setVariable': {\n const stateVar = analysis.stateMap.get('var:' + op.name);\n const setter = stateVar ? `set${capitalize(stateVar)}` : 'setValue';\n const val = isNumeric(op.value) ? op.value : `'${escapeString(op.value)}'`;\n return [`${setter}(${val});`];\n }\n\n case 'increment': {\n const stateVar = analysis.stateMap.get(targetKey(op.target) + ':num');\n const setter = stateVar ? `set${capitalize(stateVar)}` : 'setCount';\n return [`${setter}(prev => prev + ${op.amount});`];\n }\n\n case 'decrement': {\n const stateVar = analysis.stateMap.get(targetKey(op.target) + ':num');\n const setter = stateVar ? `set${capitalize(stateVar)}` : 'setCount';\n return [`${setter}(prev => prev - ${op.amount});`];\n }\n\n case 'navigate':\n return [`window.location.href = '${escapeString(op.url)}';`];\n\n case 'historyBack':\n return ['window.history.back();'];\n\n case 'historyForward':\n return ['window.history.forward();'];\n\n case 'fetch': {\n const lines: string[] = [];\n lines.push(`const response = await fetch('${escapeString(op.url)}');`);\n if (op.format === 'json') {\n lines.push('const data = await response.json();');\n } else if (op.format === 'html') {\n lines.push('const data = await response.text();');\n } else {\n lines.push('const data = await response.text();');\n }\n if (op.target) {\n const stateVar = analysis.stateMap.get(targetKey(op.target) + ':content');\n const setter = stateVar ? `set${capitalize(stateVar)}` : 'setContent';\n if (op.format === 'json') {\n lines.push(`${setter}(JSON.stringify(data));`);\n } else {\n lines.push(`${setter}(data);`);\n }\n }\n return lines;\n }\n\n case 'wait':\n return [`await new Promise(resolve => setTimeout(resolve, ${op.durationMs}));`];\n\n case 'focus': {\n const refName = analysis.refMap.get(targetKey(op.target));\n return [`${refName ?? 'ref'}?.current?.focus();`];\n }\n\n case 'blur': {\n const refName = analysis.refMap.get(targetKey(op.target));\n return [`${refName ?? 'ref'}?.current?.blur();`];\n }\n\n case 'triggerEvent': {\n const refName = analysis.refMap.get(targetKey(op.target));\n return [\n `${refName ?? 'ref'}?.current?.dispatchEvent(new CustomEvent('${escapeString(op.eventName)}', { bubbles: true }));`,\n ];\n }\n\n case 'log':\n return [`console.log(${op.values.map(v => `'${escapeString(v)}'`).join(', ')});`];\n\n default:\n return [`// Unsupported: ${(op as AbstractOperation).op}`];\n }\n}\n\n// =============================================================================\n// JSX Generation\n// =============================================================================\n\nfunction generateJSX(\n spec: BehaviorSpec,\n analysis: OperationAnalysis,\n handlerName: string\n): string[] {\n const lines: string[] = [];\n const elements = collectJSXElements(spec, analysis);\n const eventProp = eventToReactProp(spec.trigger.event);\n\n const needsFragment = elements.length > 1 || elements.length === 0;\n\n if (needsFragment) lines.push('<>');\n\n // Trigger element\n const triggerTag = inferTriggerTag(spec);\n const triggerAttrs: string[] = [`${eventProp}={${handlerName}}`];\n\n // If trigger is 'self' and there are class operations on self, add className\n const selfClassStates = getSelfClassStates(spec, analysis.stateMap);\n if (selfClassStates.length > 0) {\n const classExpr = selfClassStates\n .map(s => `\\${${s.stateName} ? '${s.className}' : ''}`)\n .join(' ')\n .trim();\n triggerAttrs.push(`className={\\`${classExpr}\\`.trim()}`);\n }\n\n const indent = needsFragment ? ' ' : '';\n lines.push(\n `${indent}<${triggerTag} ${triggerAttrs.join(' ')}>${inferTriggerContent(spec)}</${triggerTag}>`\n );\n\n // Target elements (that aren't the trigger)\n for (const el of elements) {\n const elLines = renderJSXElement(el, analysis);\n for (const l of elLines) {\n lines.push(`${indent}${l}`);\n }\n }\n\n if (needsFragment) lines.push('</>');\n\n return lines;\n}\n\ninterface JSXElement {\n selector: string;\n tag: string;\n id?: string;\n className?: string;\n content?: string;\n /** Operations targeting this element */\n ops: AbstractOperation[];\n}\n\nfunction collectJSXElements(spec: BehaviorSpec, _analysis: OperationAnalysis): JSXElement[] {\n const seen = new Set<string>();\n const elements: JSXElement[] = [];\n\n for (const op of spec.operations) {\n if (!('target' in op)) continue;\n const target = (op as { target: TargetRef }).target;\n if (target.kind !== 'selector') continue;\n\n // Skip if this is the trigger element (it's rendered separately)\n if (spec.triggerTarget.kind === 'selector' && spec.triggerTarget.value === target.value)\n continue;\n\n const sel = target.value;\n if (seen.has(sel)) {\n // Add op to existing element\n const existing = elements.find(e => e.selector === sel);\n if (existing) existing.ops.push(op);\n continue;\n }\n seen.add(sel);\n\n const tag = selectorToTag(sel);\n const id = sel.startsWith('#') ? sel.slice(1) : undefined;\n const cls = sel.startsWith('.') ? sel.slice(1) : undefined;\n\n elements.push({\n selector: sel,\n tag,\n id,\n className: cls,\n ops: [op],\n });\n }\n\n return elements;\n}\n\nfunction renderJSXElement(el: JSXElement, analysis: OperationAnalysis): string[] {\n const lines: string[] = [];\n const attrs: string[] = [];\n\n if (el.id) attrs.push(`id=\"${el.id}\"`);\n\n // Check for class state on this element\n const classStates: { stateName: string; className: string }[] = [];\n for (const op of el.ops) {\n if (op.op === 'toggleClass' || op.op === 'addClass' || op.op === 'removeClass') {\n const stateVar = analysis.stateMap.get(el.selector + ':class:' + op.className);\n if (stateVar) {\n classStates.push({ stateName: stateVar, className: op.className });\n }\n }\n }\n\n if (classStates.length > 0) {\n const parts = classStates.map(s => `\\${${s.stateName} ? '${s.className}' : ''}`);\n if (el.className) {\n attrs.push(`className={\\`${el.className} ${parts.join(' ')}\\`.trim()}`);\n } else {\n attrs.push(`className={\\`${parts.join(' ')}\\`.trim()}`);\n }\n } else if (el.className) {\n attrs.push(`className=\"${el.className}\"`);\n }\n\n // Check for ref on this element\n const refName = analysis.refMap.get(el.selector);\n if (refName) {\n attrs.push(`ref={${refName}}`);\n }\n\n // Check for visibility state\n const visState = analysis.stateMap.get(el.selector + ':visible');\n\n // Check for content state\n const contentState = analysis.stateMap.get(el.selector + ':content');\n\n // Check for numeric state\n const numState = analysis.stateMap.get(el.selector + ':num');\n\n const attrStr = attrs.length > 0 ? ' ' + attrs.join(' ') : '';\n const content = contentState\n ? `{${contentState}}`\n : numState\n ? `{${numState}}`\n : (el.content ?? el.id ?? '');\n\n const elementLine = `<${el.tag}${attrStr}>${content}</${el.tag}>`;\n\n if (visState) {\n lines.push(`{${visState} && ${elementLine}}`);\n } else {\n lines.push(elementLine);\n }\n\n return lines;\n}\n\n// =============================================================================\n// React-specific Helpers\n// =============================================================================\n\nfunction eventToReactProp(event: string): string {\n switch (event) {\n case 'click':\n return 'onClick';\n case 'dblclick':\n return 'onDoubleClick';\n case 'mouseenter':\n return 'onMouseEnter';\n case 'mouseover':\n return 'onMouseOver';\n case 'mouseleave':\n return 'onMouseLeave';\n case 'focus':\n return 'onFocus';\n case 'blur':\n return 'onBlur';\n case 'keydown':\n return 'onKeyDown';\n case 'keyup':\n return 'onKeyUp';\n case 'keypress':\n return 'onKeyPress';\n case 'input':\n return 'onInput';\n case 'change':\n return 'onChange';\n case 'submit':\n return 'onSubmit';\n default:\n return `on${capitalize(event)}`;\n }\n}\n","/**\n * Vue 3 Component Renderer\n *\n * Generates Vue 3 Single File Components (SFC) with Composition API\n * (<script setup>) from BehaviorSpecs.\n * Maps abstract operations to Vue refs and template directives.\n */\n\nimport type { AbstractOperation, BehaviorSpec, TargetRef } from '../operations/types.js';\nimport type {\n ComponentRenderer,\n ComponentRenderOptions,\n GeneratedComponent,\n} from './component-types.js';\nimport {\n capitalize,\n cleanVarName,\n escapeString,\n generateComponentName,\n getSelfClassStates,\n inferInitial,\n inferTriggerContent,\n inferTriggerTag,\n inferType,\n isNumeric,\n selectorToTag,\n stateKey,\n targetKey,\n targetRefName,\n targetStateName,\n} from './renderer-helpers.js';\n\n// =============================================================================\n// Renderer\n// =============================================================================\n\nexport class VueRenderer implements ComponentRenderer {\n readonly framework = 'vue';\n\n render(spec: BehaviorSpec, options: ComponentRenderOptions = {}): GeneratedComponent {\n const componentName = options.componentName ?? generateComponentName(spec);\n const ts = options.typescript !== false;\n\n const analysis = analyzeOperations(spec);\n\n // -- <script setup> block --\n const scriptLines: string[] = [];\n\n // Imports\n const vueImports: string[] = [];\n if (analysis.states.length > 0 || analysis.refs.length > 0) {\n vueImports.push('ref');\n }\n if (vueImports.length > 0) {\n scriptLines.push(`import { ${vueImports.join(', ')} } from 'vue'`);\n scriptLines.push('');\n }\n\n // State declarations\n for (const state of analysis.states) {\n if (ts) {\n scriptLines.push(`const ${state.name} = ref${state.typeAnnotation}(${state.initialValue})`);\n } else {\n scriptLines.push(`const ${state.name} = ref(${state.initialValue})`);\n }\n }\n\n // Ref declarations\n for (const r of analysis.refs) {\n if (ts) {\n scriptLines.push(`const ${r.name} = ref<HTMLElement | null>(null)`);\n } else {\n scriptLines.push(`const ${r.name} = ref(null)`);\n }\n }\n\n if (analysis.states.length > 0 || analysis.refs.length > 0) {\n scriptLines.push('');\n }\n\n // Event handler\n const handlerName = `handle${capitalize(spec.trigger.event)}`;\n const asyncPrefix = spec.async ? 'async ' : '';\n scriptLines.push(`${asyncPrefix}function ${handlerName}() {`);\n\n for (const op of spec.operations) {\n const opLines = generateOperationCode(op, analysis);\n for (const l of opLines) {\n scriptLines.push(` ${l}`);\n }\n }\n\n scriptLines.push('}');\n\n // -- <template> block --\n const templateLines = generateTemplate(spec, analysis, handlerName);\n\n // -- Combine SFC --\n const langAttr = ts ? ' lang=\"ts\"' : '';\n const lines: string[] = [];\n lines.push(`<script setup${langAttr}>`);\n for (const l of scriptLines) {\n lines.push(l);\n }\n lines.push('</script>');\n lines.push('');\n lines.push('<template>');\n for (const l of templateLines) {\n lines.push(` ${l}`);\n }\n lines.push('</template>');\n lines.push('');\n\n const hooks = vueImports.length > 0 ? [...vueImports] : [];\n\n return {\n name: componentName,\n code: lines.join('\\n'),\n framework: 'vue',\n operations: spec.operations,\n hooks,\n };\n }\n}\n\n// =============================================================================\n// Operation Analysis\n// =============================================================================\n\ninterface VueStateDecl {\n name: string;\n typeAnnotation: string;\n initialValue: string;\n targetKey: string;\n}\n\ninterface VueRefDecl {\n name: string;\n targetKey: string;\n}\n\ninterface VueAnalysis {\n states: VueStateDecl[];\n refs: VueRefDecl[];\n stateMap: Map<string, string>;\n refMap: Map<string, string>;\n}\n\nfunction analyzeOperations(spec: BehaviorSpec): VueAnalysis {\n const states: VueStateDecl[] = [];\n const refs: VueRefDecl[] = [];\n const stateMap = new Map<string, string>();\n const refMap = new Map<string, string>();\n const seenStates = new Set<string>();\n\n for (const op of spec.operations) {\n switch (op.op) {\n case 'toggleClass': {\n const key = stateKey('has', op.className, op.target);\n if (!seenStates.has(key)) {\n seenStates.add(key);\n const name = `has${capitalize(op.className)}`;\n states.push({\n name,\n typeAnnotation: '<boolean>',\n initialValue: 'false',\n targetKey: targetKey(op.target),\n });\n stateMap.set(targetKey(op.target) + ':class:' + op.className, name);\n }\n break;\n }\n\n case 'addClass':\n case 'removeClass': {\n const key = stateKey('has', op.className, op.target);\n if (!seenStates.has(key)) {\n seenStates.add(key);\n const name = `has${capitalize(op.className)}`;\n const initial = op.op === 'removeClass' ? 'true' : 'false';\n states.push({\n name,\n typeAnnotation: '<boolean>',\n initialValue: initial,\n targetKey: targetKey(op.target),\n });\n stateMap.set(targetKey(op.target) + ':class:' + op.className, name);\n }\n break;\n }\n\n case 'show':\n case 'hide': {\n const tk = targetKey(op.target);\n const key = 'visible:' + tk;\n if (!seenStates.has(key)) {\n seenStates.add(key);\n const name = targetStateName(op.target, 'Visible');\n states.push({\n name,\n typeAnnotation: '<boolean>',\n initialValue: op.op === 'hide' ? 'true' : 'false',\n targetKey: tk,\n });\n stateMap.set(tk + ':visible', name);\n }\n break;\n }\n\n case 'setContent':\n case 'appendContent': {\n const tk = targetKey(op.target);\n const key = 'content:' + tk;\n if (!seenStates.has(key)) {\n seenStates.add(key);\n const name = targetStateName(op.target, 'Content');\n states.push({\n name,\n typeAnnotation: '<string>',\n initialValue: \"''\",\n targetKey: tk,\n });\n stateMap.set(tk + ':content', name);\n }\n break;\n }\n\n case 'setVariable': {\n const key = 'var:' + op.name;\n if (!seenStates.has(key)) {\n seenStates.add(key);\n const name = cleanVarName(op.name);\n const typeAnn = inferType(op.value);\n states.push({\n name,\n typeAnnotation: typeAnn,\n initialValue: inferInitial(op.value, typeAnn),\n targetKey: 'var:' + op.name,\n });\n stateMap.set('var:' + op.name, name);\n }\n break;\n }\n\n case 'increment':\n case 'decrement': {\n const tk = targetKey(op.target);\n const key = 'num:' + tk;\n if (!seenStates.has(key)) {\n seenStates.add(key);\n const name = targetStateName(op.target, 'Count');\n states.push({\n name,\n typeAnnotation: '<number>',\n initialValue: '0',\n targetKey: tk,\n });\n stateMap.set(tk + ':num', name);\n }\n break;\n }\n\n case 'fetch': {\n if (op.target) {\n const tk = targetKey(op.target);\n const key = 'content:' + tk;\n if (!seenStates.has(key)) {\n seenStates.add(key);\n const name = targetStateName(op.target, 'Content');\n states.push({\n name,\n typeAnnotation: '<string>',\n initialValue: \"''\",\n targetKey: tk,\n });\n stateMap.set(tk + ':content', name);\n }\n }\n break;\n }\n\n case 'focus':\n case 'blur': {\n const tk = targetKey(op.target);\n if (!refMap.has(tk)) {\n const name = targetRefName(op.target);\n refs.push({ name, targetKey: tk });\n refMap.set(tk, name);\n }\n break;\n }\n\n case 'triggerEvent': {\n const tk = targetKey(op.target);\n if (!refMap.has(tk)) {\n const name = targetRefName(op.target);\n refs.push({ name, targetKey: tk });\n refMap.set(tk, name);\n }\n break;\n }\n }\n }\n\n return { states, refs, stateMap, refMap };\n}\n\n// =============================================================================\n// Operation Code Generation (Vue: .value mutation)\n// =============================================================================\n\nfunction generateOperationCode(op: AbstractOperation, analysis: VueAnalysis): string[] {\n switch (op.op) {\n case 'toggleClass': {\n const stateVar = analysis.stateMap.get(targetKey(op.target) + ':class:' + op.className);\n return [`${stateVar ?? 'state'}.value = !${stateVar ?? 'state'}.value`];\n }\n\n case 'addClass': {\n const stateVar = analysis.stateMap.get(targetKey(op.target) + ':class:' + op.className);\n return [`${stateVar ?? 'state'}.value = true`];\n }\n\n case 'removeClass': {\n const stateVar = analysis.stateMap.get(targetKey(op.target) + ':class:' + op.className);\n return [`${stateVar ?? 'state'}.value = false`];\n }\n\n case 'show': {\n const stateVar = analysis.stateMap.get(targetKey(op.target) + ':visible');\n return [`${stateVar ?? 'visible'}.value = true`];\n }\n\n case 'hide': {\n const stateVar = analysis.stateMap.get(targetKey(op.target) + ':visible');\n return [`${stateVar ?? 'visible'}.value = false`];\n }\n\n case 'setContent': {\n const stateVar = analysis.stateMap.get(targetKey(op.target) + ':content');\n return [`${stateVar ?? 'content'}.value = '${escapeString(op.content)}'`];\n }\n\n case 'appendContent': {\n const stateVar = analysis.stateMap.get(targetKey(op.target) + ':content');\n return [`${stateVar ?? 'content'}.value += '${escapeString(op.content)}'`];\n }\n\n case 'setVariable': {\n const stateVar = analysis.stateMap.get('var:' + op.name);\n const val = isNumeric(op.value) ? op.value : `'${escapeString(op.value)}'`;\n return [`${stateVar ?? 'value'}.value = ${val}`];\n }\n\n case 'increment': {\n const stateVar = analysis.stateMap.get(targetKey(op.target) + ':num');\n return [`${stateVar ?? 'count'}.value += ${op.amount}`];\n }\n\n case 'decrement': {\n const stateVar = analysis.stateMap.get(targetKey(op.target) + ':num');\n return [`${stateVar ?? 'count'}.value -= ${op.amount}`];\n }\n\n case 'navigate':\n return [`window.location.href = '${escapeString(op.url)}'`];\n\n case 'historyBack':\n return ['window.history.back()'];\n\n case 'historyForward':\n return ['window.history.forward()'];\n\n case 'fetch': {\n const lines: string[] = [];\n lines.push(`const response = await fetch('${escapeString(op.url)}')`);\n if (op.format === 'json') {\n lines.push('const data = await response.json()');\n } else {\n lines.push('const data = await response.text()');\n }\n if (op.target) {\n const stateVar = analysis.stateMap.get(targetKey(op.target) + ':content');\n if (op.format === 'json') {\n lines.push(`${stateVar ?? 'content'}.value = JSON.stringify(data)`);\n } else {\n lines.push(`${stateVar ?? 'content'}.value = data`);\n }\n }\n return lines;\n }\n\n case 'wait':\n return [`await new Promise(resolve => setTimeout(resolve, ${op.durationMs}))`];\n\n case 'focus': {\n const refName = analysis.refMap.get(targetKey(op.target));\n return [`${refName ?? 'ref'}.value?.focus()`];\n }\n\n case 'blur': {\n const refName = analysis.refMap.get(targetKey(op.target));\n return [`${refName ?? 'ref'}.value?.blur()`];\n }\n\n case 'triggerEvent': {\n const refName = analysis.refMap.get(targetKey(op.target));\n return [\n `${refName ?? 'ref'}.value?.dispatchEvent(new CustomEvent('${escapeString(op.eventName)}', { bubbles: true }))`,\n ];\n }\n\n case 'log':\n return [`console.log(${op.values.map(v => `'${escapeString(v)}'`).join(', ')})`];\n\n default:\n return [`// Unsupported: ${(op as AbstractOperation).op}`];\n }\n}\n\n// =============================================================================\n// Template Generation\n// =============================================================================\n\nfunction generateTemplate(\n spec: BehaviorSpec,\n analysis: VueAnalysis,\n handlerName: string\n): string[] {\n const lines: string[] = [];\n const elements = collectTargetElements(spec);\n const eventDirective = `@${spec.trigger.event}`;\n\n // Trigger element\n const triggerTag = inferTriggerTag(spec);\n const triggerAttrs: string[] = [`${eventDirective}=\"${handlerName}\"`];\n\n // Class bindings on trigger\n const selfClassStates = getSelfClassStates(spec, analysis.stateMap);\n if (selfClassStates.length > 0) {\n const classObj = selfClassStates.map(s => `${s.className}: ${s.stateName}`).join(', ');\n triggerAttrs.push(`:class=\"{ ${classObj} }\"`);\n }\n\n const triggerContent = inferTriggerContent(spec);\n lines.push(`<${triggerTag} ${triggerAttrs.join(' ')}>${triggerContent}</${triggerTag}>`);\n\n // Target elements\n for (const el of elements) {\n const elLines = renderVueElement(el, analysis);\n for (const l of elLines) {\n lines.push(l);\n }\n }\n\n return lines;\n}\n\ninterface TemplateElement {\n selector: string;\n tag: string;\n id?: string;\n className?: string;\n ops: AbstractOperation[];\n}\n\nfunction collectTargetElements(spec: BehaviorSpec): TemplateElement[] {\n const seen = new Set<string>();\n const elements: TemplateElement[] = [];\n\n for (const op of spec.operations) {\n if (!('target' in op)) continue;\n const target = (op as { target: TargetRef }).target;\n if (target.kind !== 'selector') continue;\n\n if (spec.triggerTarget.kind === 'selector' && spec.triggerTarget.value === target.value)\n continue;\n\n const sel = target.value;\n if (seen.has(sel)) {\n const existing = elements.find(e => e.selector === sel);\n if (existing) existing.ops.push(op);\n continue;\n }\n seen.add(sel);\n\n const tag = selectorToTag(sel);\n const id = sel.startsWith('#') ? sel.slice(1) : undefined;\n const cls = sel.startsWith('.') ? sel.slice(1) : undefined;\n\n elements.push({ selector: sel, tag, id, className: cls, ops: [op] });\n }\n\n return elements;\n}\n\nfunction renderVueElement(el: TemplateElement, analysis: VueAnalysis): string[] {\n const lines: string[] = [];\n const attrs: string[] = [];\n\n if (el.id) attrs.push(`id=\"${el.id}\"`);\n\n // Class bindings\n const classStates: { stateName: string; className: string }[] = [];\n for (const op of el.ops) {\n if (op.op === 'toggleClass' || op.op === 'addClass' || op.op === 'removeClass') {\n const stateVar = analysis.stateMap.get(el.selector + ':class:' + op.className);\n if (stateVar) {\n classStates.push({ stateName: stateVar, className: op.className });\n }\n }\n }\n\n if (classStates.length > 0) {\n const classObj = classStates.map(s => `${s.className}: ${s.stateName}`).join(', ');\n if (el.className) {\n attrs.push(`class=\"${el.className}\"`);\n attrs.push(`:class=\"{ ${classObj} }\"`);\n } else {\n attrs.push(`:class=\"{ ${classObj} }\"`);\n }\n } else if (el.className) {\n attrs.push(`class=\"${el.className}\"`);\n }\n\n // Ref binding\n const refName = analysis.refMap.get(el.selector);\n if (refName) {\n attrs.push(`ref=\"${refName}\"`);\n }\n\n // Visibility\n const visState = analysis.stateMap.get(el.selector + ':visible');\n\n // Content\n const contentState = analysis.stateMap.get(el.selector + ':content');\n const numState = analysis.stateMap.get(el.selector + ':num');\n\n const attrStr = attrs.length > 0 ? ' ' + attrs.join(' ') : '';\n const content = contentState\n ? `{{ ${contentState} }}`\n : numState\n ? `{{ ${numState} }}`\n : (el.id ?? '');\n\n if (visState) {\n lines.push(`<${el.tag}${attrStr} v-if=\"${visState}\">${content}</${el.tag}>`);\n } else {\n lines.push(`<${el.tag}${attrStr}>${content}</${el.tag}>`);\n }\n\n return lines;\n}\n","/**\n * Svelte 5 Component Renderer\n *\n * Generates Svelte 5 components with runes ($state, $derived, $effect)\n * from BehaviorSpecs.\n * Maps abstract operations to direct state mutation and Svelte template syntax.\n */\n\nimport type { AbstractOperation, BehaviorSpec, TargetRef } from '../operations/types.js';\nimport type {\n ComponentRenderer,\n ComponentRenderOptions,\n GeneratedComponent,\n} from './component-types.js';\nimport {\n capitalize,\n cleanVarName,\n escapeString,\n generateComponentName,\n getSelfClassStates,\n inferInitial,\n inferTriggerContent,\n inferTriggerTag,\n inferType,\n isNumeric,\n selectorToTag,\n stateKey,\n targetKey,\n targetRefName,\n targetStateName,\n} from './renderer-helpers.js';\n\n// =============================================================================\n// Renderer\n// =============================================================================\n\nexport class SvelteRenderer implements ComponentRenderer {\n readonly framework = 'svelte';\n\n render(spec: BehaviorSpec, options: ComponentRenderOptions = {}): GeneratedComponent {\n const componentName = options.componentName ?? generateComponentName(spec);\n const ts = options.typescript !== false;\n\n const analysis = analyzeOperations(spec, ts);\n\n // -- <script> block --\n const scriptLines: string[] = [];\n\n // State declarations ($state runes — no imports needed)\n for (const state of analysis.states) {\n scriptLines.push(`let ${state.name} = $state(${state.initialValue})`);\n }\n\n // Ref declarations (plain variables, bound via bind:this)\n for (const r of analysis.refs) {\n if (ts) {\n scriptLines.push(`let ${r.name}: HTMLElement`);\n } else {\n scriptLines.push(`let ${r.name}`);\n }\n }\n\n if (analysis.states.length > 0 || analysis.refs.length > 0) {\n scriptLines.push('');\n }\n\n // Event handler\n const handlerName = `handle${capitalize(spec.trigger.event)}`;\n const asyncPrefix = spec.async ? 'async ' : '';\n scriptLines.push(`${asyncPrefix}function ${handlerName}() {`);\n\n for (const op of spec.operations) {\n const opLines = generateOperationCode(op, analysis);\n for (const l of opLines) {\n scriptLines.push(` ${l}`);\n }\n }\n\n scriptLines.push('}');\n\n // -- Template --\n const templateLines = generateTemplate(spec, analysis, handlerName);\n\n // -- Combine --\n const langAttr = ts ? ' lang=\"ts\"' : '';\n const lines: string[] = [];\n lines.push(`<script${langAttr}>`);\n for (const l of scriptLines) {\n lines.push(` ${l}`);\n }\n lines.push('</script>');\n lines.push('');\n for (const l of templateLines) {\n lines.push(l);\n }\n lines.push('');\n\n // Track which runes are used\n const hooks: string[] = [];\n if (analysis.states.length > 0) hooks.push('$state');\n\n return {\n name: componentName,\n code: lines.join('\\n'),\n framework: 'svelte',\n operations: spec.operations,\n hooks,\n };\n }\n}\n\n// =============================================================================\n// Operation Analysis\n// =============================================================================\n\ninterface SvelteStateDecl {\n name: string;\n initialValue: string;\n targetKey: string;\n}\n\ninterface SvelteRefDecl {\n name: string;\n targetKey: string;\n}\n\ninterface SvelteAnalysis {\n states: SvelteStateDecl[];\n refs: SvelteRefDecl[];\n stateMap: Map<string, string>;\n refMap: Map<string, string>;\n ts: boolean;\n}\n\nfunction analyzeOperations(spec: BehaviorSpec, ts: boolean): SvelteAnalysis {\n const states: SvelteStateDecl[] = [];\n const refs: SvelteRefDecl[] = [];\n const stateMap = new Map<string, string>();\n const refMap = new Map<string, string>();\n const seenStates = new Set<string>();\n\n for (const op of spec.operations) {\n switch (op.op) {\n case 'toggleClass': {\n const key = stateKey('has', op.className, op.target);\n if (!seenStates.has(key)) {\n seenStates.add(key);\n const name = `has${capitalize(op.className)}`;\n states.push({ name, initialValue: 'false', targetKey: targetKey(op.target) });\n stateMap.set(targetKey(op.target) + ':class:' + op.className, name);\n }\n break;\n }\n\n case 'addClass':\n case 'removeClass': {\n const key = stateKey('has', op.className, op.target);\n if (!seenStates.has(key)) {\n seenStates.add(key);\n const name = `has${capitalize(op.className)}`;\n const initial = op.op === 'removeClass' ? 'true' : 'false';\n states.push({ name, initialValue: initial, targetKey: targetKey(op.target) });\n stateMap.set(targetKey(op.target) + ':class:' + op.className, name);\n }\n break;\n }\n\n case 'show':\n case 'hide': {\n const tk = targetKey(op.target);\n const key = 'visible:' + tk;\n if (!seenStates.has(key)) {\n seenStates.add(key);\n const name = targetStateName(op.target, 'Visible');\n states.push({\n name,\n initialValue: op.op === 'hide' ? 'true' : 'false',\n targetKey: tk,\n });\n stateMap.set(tk + ':visible', name);\n }\n break;\n }\n\n case 'setContent':\n case 'appendContent': {\n const tk = targetKey(op.target);\n const key = 'content:' + tk;\n if (!seenStates.has(key)) {\n seenStates.add(key);\n const name = targetStateName(op.target, 'Content');\n states.push({ name, initialValue: \"''\", targetKey: tk });\n stateMap.set(tk + ':content', name);\n }\n break;\n }\n\n case 'setVariable': {\n const key = 'var:' + op.name;\n if (!seenStates.has(key)) {\n seenStates.add(key);\n const name = cleanVarName(op.name);\n const typeAnn = inferType(op.value);\n states.push({\n name,\n initialValue: inferInitial(op.value, typeAnn),\n targetKey: 'var:' + op.name,\n });\n stateMap.set('var:' + op.name, name);\n }\n break;\n }\n\n case 'increment':\n case 'decrement': {\n const tk = targetKey(op.target);\n const key = 'num:' + tk;\n if (!seenStates.has(key)) {\n seenStates.add(key);\n const name = targetStateName(op.target, 'Count');\n states.push({ name, initialValue: '0', targetKey: tk });\n stateMap.set(tk + ':num', name);\n }\n break;\n }\n\n case 'fetch': {\n if (op.target) {\n const tk = targetKey(op.target);\n const key = 'content:' + tk;\n if (!seenStates.has(key)) {\n seenStates.add(key);\n const name = targetStateName(op.target, 'Content');\n states.push({ name, initialValue: \"''\", targetKey: tk });\n stateMap.set(tk + ':content', name);\n }\n }\n break;\n }\n\n case 'focus':\n case 'blur': {\n const tk = targetKey(op.target);\n if (!refMap.has(tk)) {\n const name = targetRefName(op.target);\n refs.push({ name, targetKey: tk });\n refMap.set(tk, name);\n }\n break;\n }\n\n case 'triggerEvent': {\n const tk = targetKey(op.target);\n if (!refMap.has(tk)) {\n const name = targetRefName(op.target);\n refs.push({ name, targetKey: tk });\n refMap.set(tk, name);\n }\n break;\n }\n }\n }\n\n return { states, refs, stateMap, refMap, ts };\n}\n\n// =============================================================================\n// Operation Code Generation (Svelte: direct mutation)\n// =============================================================================\n\nfunction generateOperationCode(op: AbstractOperation, analysis: SvelteAnalysis): string[] {\n switch (op.op) {\n case 'toggleClass': {\n const stateVar = analysis.stateMap.get(targetKey(op.target) + ':class:' + op.className);\n return [`${stateVar ?? 'state'} = !${stateVar ?? 'state'}`];\n }\n\n case 'addClass': {\n const stateVar = analysis.stateMap.get(targetKey(op.target) + ':class:' + op.className);\n return [`${stateVar ?? 'state'} = true`];\n }\n\n case 'removeClass': {\n const stateVar = analysis.stateMap.get(targetKey(op.target) + ':class:' + op.className);\n return [`${stateVar ?? 'state'} = false`];\n }\n\n case 'show': {\n const stateVar = analysis.stateMap.get(targetKey(op.target) + ':visible');\n return [`${stateVar ?? 'visible'} = true`];\n }\n\n case 'hide': {\n const stateVar = analysis.stateMap.get(targetKey(op.target) + ':visible');\n return [`${stateVar ?? 'visible'} = false`];\n }\n\n case 'setContent': {\n const stateVar = analysis.stateMap.get(targetKey(op.target) + ':content');\n return [`${stateVar ?? 'content'} = '${escapeString(op.content)}'`];\n }\n\n case 'appendContent': {\n const stateVar = analysis.stateMap.get(targetKey(op.target) + ':content');\n return [`${stateVar ?? 'content'} += '${escapeString(op.content)}'`];\n }\n\n case 'setVariable': {\n const stateVar = analysis.stateMap.get('var:' + op.name);\n const val = isNumeric(op.value) ? op.value : `'${escapeString(op.value)}'`;\n return [`${stateVar ?? 'value'} = ${val}`];\n }\n\n case 'increment': {\n const stateVar = analysis.stateMap.get(targetKey(op.target) + ':num');\n return [`${stateVar ?? 'count'} += ${op.amount}`];\n }\n\n case 'decrement': {\n const stateVar = analysis.stateMap.get(targetKey(op.target) + ':num');\n return [`${stateVar ?? 'count'} -= ${op.amount}`];\n }\n\n case 'navigate':\n return [`window.location.href = '${escapeString(op.url)}'`];\n\n case 'historyBack':\n return ['window.history.back()'];\n\n case 'historyForward':\n return ['window.history.forward()'];\n\n case 'fetch': {\n const lines: string[] = [];\n lines.push(`const response = await fetch('${escapeString(op.url)}')`);\n if (op.format === 'json') {\n lines.push('const data = await response.json()');\n } else {\n lines.push('const data = await response.text()');\n }\n if (op.target) {\n const stateVar = analysis.stateMap.get(targetKey(op.target) + ':content');\n if (op.format === 'json') {\n lines.push(`${stateVar ?? 'content'} = JSON.stringify(data)`);\n } else {\n lines.push(`${stateVar ?? 'content'} = data`);\n }\n }\n return lines;\n }\n\n case 'wait':\n return [`await new Promise(resolve => setTimeout(resolve, ${op.durationMs}))`];\n\n case 'focus': {\n const refName = analysis.refMap.get(targetKey(op.target));\n return [`${refName ?? 'ref'}?.focus()`];\n }\n\n case 'blur': {\n const refName = analysis.refMap.get(targetKey(op.target));\n return [`${refName ?? 'ref'}?.blur()`];\n }\n\n case 'triggerEvent': {\n const refName = analysis.refMap.get(targetKey(op.target));\n return [\n `${refName ?? 'ref'}?.dispatchEvent(new CustomEvent('${escapeString(op.eventName)}', { bubbles: true }))`,\n ];\n }\n\n case 'log':\n return [`console.log(${op.values.map(v => `'${escapeString(v)}'`).join(', ')})`];\n\n default:\n return [`// Unsupported: ${(op as AbstractOperation).op}`];\n }\n}\n\n// =============================================================================\n// Template Generation\n// =============================================================================\n\nfunction generateTemplate(\n spec: BehaviorSpec,\n analysis: SvelteAnalysis,\n handlerName: string\n): string[] {\n const lines: string[] = [];\n const elements = collectTargetElements(spec);\n const eventAttr = `on${spec.trigger.event}`;\n\n // Trigger element\n const triggerTag = inferTriggerTag(spec);\n const triggerAttrs: string[] = [`${eventAttr}={${handlerName}}`];\n\n // Class directives on trigger\n const selfClassStates = getSelfClassStates(spec, analysis.stateMap);\n for (const s of selfClassStates) {\n triggerAttrs.push(`class:${s.className}={${s.stateName}}`);\n }\n\n const triggerContent = inferTriggerContent(spec);\n lines.push(`<${triggerTag} ${triggerAttrs.join(' ')}>${triggerContent}</${triggerTag}>`);\n\n // Target elements\n for (const el of elements) {\n const elLines = renderSvelteElement(el, analysis);\n for (const l of elLines) {\n lines.push(l);\n }\n }\n\n return lines;\n}\n\ninterface TemplateElement {\n selector: string;\n tag: string;\n id?: string;\n className?: string;\n ops: AbstractOperation[];\n}\n\nfunction collectTargetElements(spec: BehaviorSpec): TemplateElement[] {\n const seen = new Set<string>();\n const elements: TemplateElement[] = [];\n\n for (const op of spec.operations) {\n if (!('target' in op)) continue;\n const target = (op as { target: TargetRef }).target;\n if (target.kind !== 'selector') continue;\n\n if (spec.triggerTarget.kind === 'selector' && spec.triggerTarget.value === target.value)\n continue;\n\n const sel = target.value;\n if (seen.has(sel)) {\n const existing = elements.find(e => e.selector === sel);\n if (existing) existing.ops.push(op);\n continue;\n }\n seen.add(sel);\n\n const tag = selectorToTag(sel);\n const id = sel.startsWith('#') ? sel.slice(1) : undefined;\n const cls = sel.startsWith('.') ? sel.slice(1) : undefined;\n\n elements.push({ selector: sel, tag, id, className: cls, ops: [op] });\n }\n\n return elements;\n}\n\nfunction renderSvelteElement(el: TemplateElement, analysis: SvelteAnalysis): string[] {\n const lines: string[] = [];\n const attrs: string[] = [];\n\n if (el.id) attrs.push(`id=\"${el.id}\"`);\n\n // Class directives\n const classStates: { stateName: string; className: string }[] = [];\n for (const op of el.ops) {\n if (op.op === 'toggleClass' || op.op === 'addClass' || op.op === 'removeClass') {\n const stateVar = analysis.stateMap.get(el.selector + ':class:' + op.className);\n if (stateVar) {\n classStates.push({ stateName: stateVar, className: op.className });\n }\n }\n }\n\n if (el.className) {\n attrs.push(`class=\"${el.className}\"`);\n }\n for (const s of classStates) {\n attrs.push(`class:${s.className}={${s.stateName}}`);\n }\n\n // Ref binding\n const refName = analysis.refMap.get(el.selector);\n if (refName) {\n attrs.push(`bind:this={${refName}}`);\n }\n\n // Visibility\n const visState = analysis.stateMap.get(el.selector + ':visible');\n\n // Content\n const contentState = analysis.stateMap.get(el.selector + ':content');\n const numState = analysis.stateMap.get(el.selector + ':num');\n\n const attrStr = attrs.length > 0 ? ' ' + attrs.join(' ') : '';\n const content = contentState ? `{${contentState}}` : numState ? `{${numState}}` : (el.id ?? '');\n\n const elementLine = `<${el.tag}${attrStr}>${content}</${el.tag}>`;\n\n if (visState) {\n lines.push(`{#if ${visState}}`);\n lines.push(` ${elementLine}`);\n lines.push('{/if}');\n } else {\n lines.push(elementLine);\n }\n\n return lines;\n}\n","/**\n * CompilationService — the main orchestrator.\n *\n * Accepts hyperscript in three formats (natural language, explicit syntax, LLM JSON),\n * validates it through semantic schemas and the engine, and translates, diffs, scores, and\n * renders it as components and tests. (It compiled to JavaScript through\n * `@hyperfixi/aot-compiler` until 4.0, when the AOT compiler retired.)\n */\n\nimport type {\n CompileRequest,\n ValidationResponse,\n TranslateRequest,\n TranslateResponse,\n TestRequest,\n TestResponse,\n ComponentRequest,\n ComponentResponse,\n DiffRequest,\n DiffResponse,\n GenerateRequest,\n GenerateResponse,\n ServiceOptions,\n SemanticJSON,\n SemanticJSONValue,\n Diagnostic,\n NormalizeResult,\n} from './types.js';\nimport { diffBehaviors } from './diff/diff.js';\nimport { scoreNodes, type ScoreRequest, type ScoreResponse } from './scoring/score.js';\nimport { normalize, initNormalizer } from './input/normalize.js';\nimport {\n runValidationGates,\n initValidation,\n type ValidationFunctions,\n} from './validation/gates.js';\nimport { extractOperations } from './operations/extract.js';\nimport { PlaywrightRenderer } from './renderers/playwright.js';\nimport { ReactRenderer } from './renderers/react.js';\nimport { VueRenderer } from './renderers/vue.js';\nimport { SvelteRenderer } from './renderers/svelte.js';\nimport type { TestRenderer } from './renderers/types.js';\nimport type { ComponentRenderer } from './renderers/component-types.js';\n\n// =============================================================================\n// Service\n// =============================================================================\n\n/** semantic's `findTranslationCollisions`, as the service calls it. */\ntype TranslationCollisionsFn = (\n code: string,\n from: string,\n to: string\n) => ReadonlyArray<{\n readonly name: string;\n readonly occurrences: ReadonlyArray<unknown>;\n readonly rename: string | undefined;\n readonly message: string;\n}>;\n\nexport class CompilationService {\n private confidenceThreshold: number;\n private translateFn: ((code: string, from: string, to: string) => string) | null = null;\n private translationCollisionsFn: TranslationCollisionsFn | null = null;\n /** semantic's `render`, for the English a translation runs as. */\n private renderFn: ((node: unknown, language: string) => string) | null = null;\n /**\n * `@hyperfixi/engine`'s first parse error for a source (null: it parses). Set by create()\n * when the engine is installed (an optional peer); without it there is no engine check.\n */\n private engineError: ((source: string) => string | null) | null = null;\n private testRenderers: Map<string, TestRenderer>;\n private componentRenderers: Map<string, ComponentRenderer>;\n\n private constructor(options: ServiceOptions = {}) {\n this.confidenceThreshold = options.confidenceThreshold ?? 0.7;\n\n // Initialize renderer registries with defaults\n this.testRenderers = new Map<string, TestRenderer>(\n Object.entries(options.testRenderers ?? { playwright: new PlaywrightRenderer() })\n );\n this.componentRenderers = new Map<string, ComponentRenderer>(\n Object.entries(\n options.componentRenderers ?? {\n react: new ReactRenderer(),\n vue: new VueRenderer(),\n svelte: new SvelteRenderer(),\n }\n )\n );\n }\n\n /**\n * Register a test renderer for a given framework.\n */\n registerTestRenderer(framework: string, renderer: TestRenderer): void {\n this.testRenderers.set(framework, renderer);\n }\n\n /**\n * Register a component renderer for a given framework.\n */\n registerComponentRenderer(framework: string, renderer: ComponentRenderer): void {\n this.componentRenderers.set(framework, renderer);\n }\n\n /**\n * Create a CompilationService by dynamically importing dependencies.\n *\n * This async factory resolves @lokascript/semantic (and, when it is installed,\n * @hyperfixi/engine) at runtime.\n */\n static async create(options: ServiceOptions = {}): Promise<CompilationService> {\n const service = new CompilationService(options);\n\n // Import semantic package\n const semantic = await import('@lokascript/semantic');\n\n // Initialize normalizer with semantic parsing functions\n initNormalizer({\n parseSemantic: semantic.parseSemantic,\n parseExplicit: semantic.parseExplicit,\n isExplicitSyntax: semantic.isExplicitSyntax,\n });\n\n // Initialize validation with schema validator\n // Cast needed: our interface uses `unknown` to avoid importing semantic types\n initValidation({\n validateSemanticResult:\n semantic.validateSemanticResult as ValidationFunctions['validateSemanticResult'],\n });\n\n // Store translate function\n service.translateFn = semantic.translate;\n service.translationCollisionsFn = semantic.findTranslationCollisions;\n service.renderFn = semantic.render as (node: unknown, language: string) => string;\n\n // The engine the product runs (hyperfixi-hs.js), when it is installed. Natural-language\n // input has to be English it reads: semantic's grammar is more permissive than the\n // engine's, and a source only semantic accepts does nothing on a page.\n try {\n const engine = await import('@hyperfixi/engine');\n engine.register(...engine.everything);\n service.engineError = source => {\n try {\n return engine.api.parse(source).errors[0]?.message.split('\\n')[0] ?? null;\n } catch (e) {\n return (e instanceof Error ? e.message : String(e)).split('\\n')[0] ?? 'parse error';\n }\n };\n } catch {\n /* @hyperfixi/engine is not installed: validation is semantic's alone */\n }\n\n return service;\n }\n\n /**\n * The engine's verdict on natural-language input: its parse of the English the page would\n * run — the source as written, or a translation's English render (what\n * `@lokascript/hyperscript-adapter` hands the engine). Null when it parses, or when there is\n * nothing to check (explicit / JSON input, or no engine installed).\n */\n private engineDiagnostic(\n request: CompileRequest,\n normalized: NormalizeResult\n ): Diagnostic | null {\n if (!this.engineError || normalized.format !== 'natural' || !request.code) return null;\n const language = request.language ?? 'en';\n const english = language === 'en' || language.startsWith('en-');\n let source = request.code;\n if (!english) {\n if (!this.renderFn || !normalized.node) return null;\n try {\n source = this.renderFn(normalized.node, 'en');\n } catch {\n return null;\n }\n }\n const error = this.engineError(source);\n if (!error) return null;\n return {\n severity: 'error',\n code: 'ENGINE_PARSE_ERROR',\n message: english\n ? `@hyperfixi/engine cannot read this: ${error}`\n : `@hyperfixi/engine cannot read its English (${source}): ${error}`,\n suggestion:\n \"The engine reads upstream _hyperscript's grammar: check the command's syntax \" +\n '(get_command_docs) and rewrite the part the error names.',\n };\n }\n\n // ===========================================================================\n // Public API\n // ===========================================================================\n\n /**\n * Validate input: semantic's parse and schemas, and (for natural-language input) the\n * engine's parse of the English the page would run.\n * Returns semantic representation and diagnostics.\n */\n validate(request: CompileRequest): ValidationResponse {\n const diagnostics: Diagnostic[] = [];\n\n // Normalize\n const normalized = normalize(request);\n diagnostics.push(...normalized.diagnostics);\n\n if (!normalized.node) {\n return { ok: false, diagnostics };\n }\n\n // Validate\n const threshold = request.confidence ?? this.confidenceThreshold;\n const gateResult = runValidationGates(normalized.node, normalized.confidence, threshold);\n diagnostics.push(...gateResult.diagnostics);\n\n const engineRejects = gateResult.pass ? this.engineDiagnostic(request, normalized) : null;\n if (engineRejects) diagnostics.push(engineRejects);\n const ok = gateResult.pass && !engineRejects;\n\n const semanticJSON = ok ? nodeToSemanticJSON(normalized.node) : undefined;\n\n return {\n ok,\n semantic: semanticJSON,\n confidence: gateResult.adjustedConfidence,\n diagnostics,\n };\n }\n\n /**\n * Translate hyperscript between languages.\n */\n translate(request: TranslateRequest): TranslateResponse {\n if (!this.translateFn) {\n return {\n ok: false,\n diagnostics: [\n {\n severity: 'error',\n code: 'NOT_INITIALIZED',\n message: 'Translation not available.',\n },\n ],\n };\n }\n\n try {\n const result = this.translateFn(request.code, request.from, request.to);\n\n // Arc 5's verified-translation badge: score the rendering against its\n // source (cross-language scoreFidelity). Advisory — verification can\n // fail to parse without flipping ok, and its diagnostics stay inside it.\n let verification: ScoreResponse | undefined;\n if (request.verify !== false) {\n verification = this.scoreFidelity({\n reference: { code: request.code, language: request.from },\n candidate: { code: result, language: request.to },\n });\n }\n\n return {\n ok: true,\n code: result,\n ...(verification !== undefined ? { verification } : {}),\n diagnostics: this.translationCollisions(request),\n };\n } catch (error) {\n return {\n ok: false,\n diagnostics: [\n {\n severity: 'error',\n code: 'TRANSLATE_ERROR',\n message: error instanceof Error ? error.message : String(error),\n },\n ],\n };\n }\n }\n\n /**\n * A variable of the source that the target language reads as a value word\n * (tl `ako` is `me`): the translation reads the value, and no spelling of\n * the name tells them apart, so the fix is a rename before translating.\n */\n private translationCollisions(request: TranslateRequest): Diagnostic[] {\n const findings = this.translationCollisionsFn?.(request.code, request.from, request.to) ?? [];\n return findings.map(finding => ({\n severity: 'warning' as const,\n code: 'NAME_COLLISION',\n message: finding.message,\n suggestion: finding.rename\n ? `Rename \\`${finding.name}\\` to \\`${finding.rename}\\` in the source (${finding.occurrences.length} place(s)), then translate.`\n : `Rename \\`${finding.name}\\` in the source, then translate.`,\n }));\n }\n\n /**\n * Generate behavior-level tests from hyperscript.\n *\n * Parses the input, extracts abstract operations (what the behavior does),\n * and renders them as test code in the requested framework.\n */\n generateTests(request: TestRequest): TestResponse {\n const diagnostics: Diagnostic[] = [];\n\n // Step 1: Normalize input to SemanticNode (reuse existing pipeline)\n const normalized = normalize({\n code: request.code,\n explicit: request.explicit,\n semantic: request.semantic,\n language: request.language,\n confidence: request.confidence,\n });\n diagnostics.push(...normalized.diagnostics);\n\n if (!normalized.node) {\n return { ok: false, tests: [], operations: [], diagnostics };\n }\n\n // Step 2: Validate\n const threshold = request.confidence ?? this.confidenceThreshold;\n const gateResult = runValidationGates(normalized.node, normalized.confidence, threshold);\n diagnostics.push(...gateResult.diagnostics);\n\n if (!gateResult.pass) {\n return { ok: false, tests: [], operations: [], diagnostics };\n }\n\n // Step 3: Extract abstract operations\n const spec = extractOperations(normalized.node);\n\n if (spec.operations.length === 0) {\n diagnostics.push({\n severity: 'warning',\n code: 'NO_OPERATIONS',\n message: 'No testable operations extracted from the input.',\n });\n return { ok: false, tests: [], operations: [], diagnostics };\n }\n\n // Attach source hyperscript for test naming\n if (!spec.source && request.code) {\n spec.source = request.code;\n }\n\n // Step 4: Render tests\n const frameworkName = request.framework ?? 'playwright';\n const renderer = this.testRenderers.get(frameworkName);\n if (!renderer) {\n diagnostics.push({\n severity: 'error',\n code: 'UNKNOWN_FRAMEWORK',\n message: `No test renderer registered for framework '${frameworkName}'. Available: ${[...this.testRenderers.keys()].join(', ')}`,\n });\n return { ok: false, tests: [], operations: [], diagnostics };\n }\n\n const generated = renderer.render(spec, {\n testName: request.testName,\n bundlePath: request.bundlePath,\n hyperscript: request.code ?? request.explicit,\n });\n\n const semanticJSON = nodeToSemanticJSON(normalized.node);\n\n return {\n ok: true,\n tests: [\n {\n name: generated.name,\n code: generated.code,\n html: generated.html,\n framework: generated.framework,\n },\n ],\n operations: spec.operations,\n semantic: semanticJSON,\n diagnostics,\n };\n }\n\n /**\n * Generate a framework component from hyperscript.\n *\n * Parses the input, extracts abstract operations, and renders\n * them as a framework-specific component (React, Vue, or Svelte).\n */\n generateComponent(request: ComponentRequest): ComponentResponse {\n const diagnostics: Diagnostic[] = [];\n\n // Step 1: Normalize input to SemanticNode\n const normalized = normalize({\n code: request.code,\n explicit: request.explicit,\n semantic: request.semantic,\n language: request.language,\n confidence: request.confidence,\n });\n diagnostics.push(...normalized.diagnostics);\n\n if (!normalized.node) {\n return { ok: false, operations: [], diagnostics };\n }\n\n // Step 2: Validate\n const threshold = request.confidence ?? this.confidenceThreshold;\n const gateResult = runValidationGates(normalized.node, normalized.confidence, threshold);\n diagnostics.push(...gateResult.diagnostics);\n\n if (!gateResult.pass) {\n return { ok: false, operations: [], diagnostics };\n }\n\n // Step 3: Extract abstract operations\n const spec = extractOperations(normalized.node);\n\n if (spec.operations.length === 0) {\n diagnostics.push({\n severity: 'warning',\n code: 'NO_OPERATIONS',\n message: 'No operations extracted from the input.',\n });\n return { ok: false, operations: [], diagnostics };\n }\n\n if (!spec.source && request.code) {\n spec.source = request.code;\n }\n\n // Step 4: Render component\n const frameworkName = request.framework ?? 'react';\n const renderer = this.componentRenderers.get(frameworkName);\n if (!renderer) {\n diagnostics.push({\n severity: 'error',\n code: 'UNKNOWN_FRAMEWORK',\n message: `No component renderer registered for framework '${frameworkName}'. Available: ${[...this.componentRenderers.keys()].join(', ')}`,\n });\n return { ok: false, operations: [], diagnostics };\n }\n const generated = renderer.render(spec, {\n componentName: request.componentName,\n typescript: request.typescript,\n });\n\n const semanticJSON = nodeToSemanticJSON(normalized.node);\n\n return {\n ok: true,\n component: {\n name: generated.name,\n code: generated.code,\n hooks: generated.hooks,\n framework: generated.framework,\n },\n operations: spec.operations,\n semantic: semanticJSON,\n diagnostics,\n };\n }\n\n /**\n * Compare two hyperscript inputs at the behavior level.\n *\n * Both sides are independently normalized and validated, then compared\n * as abstract operations. Same behavior in different languages → identical.\n */\n diff(request: DiffRequest): DiffResponse {\n const diagnostics: Diagnostic[] = [];\n const threshold = request.confidence ?? this.confidenceThreshold;\n\n // Normalize both sides independently\n const normA = normalize({\n code: request.a.code,\n explicit: request.a.explicit,\n semantic: request.a.semantic,\n language: request.a.language,\n confidence: request.confidence,\n });\n diagnostics.push(...normA.diagnostics.map(d => ({ ...d, message: `[a] ${d.message}` })));\n\n const normB = normalize({\n code: request.b.code,\n explicit: request.b.explicit,\n semantic: request.b.semantic,\n language: request.b.language,\n confidence: request.confidence,\n });\n diagnostics.push(...normB.diagnostics.map(d => ({ ...d, message: `[b] ${d.message}` })));\n\n if (!normA.node || !normB.node) {\n return {\n ok: false,\n identical: false,\n trigger: null,\n operations: [],\n summary: 'Parse failed',\n diagnostics,\n };\n }\n\n // Validate both sides\n const gateA = runValidationGates(normA.node, normA.confidence, threshold);\n diagnostics.push(...gateA.diagnostics.map(d => ({ ...d, message: `[a] ${d.message}` })));\n\n const gateB = runValidationGates(normB.node, normB.confidence, threshold);\n diagnostics.push(...gateB.diagnostics.map(d => ({ ...d, message: `[b] ${d.message}` })));\n\n if (!gateA.pass || !gateB.pass) {\n return {\n ok: false,\n identical: false,\n trigger: null,\n operations: [],\n summary: 'Validation failed',\n diagnostics,\n };\n }\n\n // Extract operations from both\n const specA = extractOperations(normA.node);\n const specB = extractOperations(normB.node);\n\n // Diff\n const result = diffBehaviors(specA, specB);\n\n return {\n ok: true,\n identical: result.identical,\n trigger: result.trigger,\n operations: result.operations,\n summary: result.summary,\n diagnostics,\n };\n }\n\n /**\n * Score a candidate against a reference for structural fidelity — the\n * multilingual ratchet's scorers (docs/FIDELITY.md) applied to one pair of\n * inputs. Sides accept any input format and may be in different languages;\n * see src/scoring/score.ts for signal semantics. Complementary to diff():\n * diff answers \"identical, and where not?\", this answers \"how faithful, and\n * what exactly is missing or hallucinated?\".\n */\n scoreFidelity(request: ScoreRequest): ScoreResponse {\n const diagnostics: Diagnostic[] = [];\n const threshold = request.confidence ?? this.confidenceThreshold;\n\n const normRef = normalize({ ...request.reference, confidence: request.confidence });\n diagnostics.push(\n ...normRef.diagnostics.map(d => ({ ...d, message: `[reference] ${d.message}` }))\n );\n const normCand = normalize({ ...request.candidate, confidence: request.confidence });\n diagnostics.push(\n ...normCand.diagnostics.map(d => ({ ...d, message: `[candidate] ${d.message}` }))\n );\n\n if (!normRef.node || !normCand.node) {\n return { ok: false, diagnostics };\n }\n\n const gateRef = runValidationGates(normRef.node, normRef.confidence, threshold);\n const gateCand = runValidationGates(normCand.node, normCand.confidence, threshold);\n diagnostics.push(\n ...gateRef.diagnostics.map(d => ({ ...d, message: `[reference] ${d.message}` }))\n );\n diagnostics.push(\n ...gateCand.diagnostics.map(d => ({ ...d, message: `[candidate] ${d.message}` }))\n );\n if (!gateRef.pass || !gateCand.pass) {\n return { ok: false, diagnostics };\n }\n\n // A side whose parse left tokens unconsumed was scored on a TRUNCATED\n // node, so every score compares less than was written. Scoring a\n // translation against a truncated reference is how `on load click() me`\n // → `ロード を で` came out faithful 1.0 on every axis: both sides had\n // dropped the same command. The scores stay as measured; `faithful` — the\n // claim \"this rendering is structurally exact\" — needs both parses whole.\n const truncated = (...lists: Diagnostic[][]): boolean =>\n lists.some(ds => ds.some(d => d.code === 'UNCONSUMED_INPUT'));\n const referenceComplete = !truncated(normRef.diagnostics, gateRef.diagnostics);\n const candidateComplete = !truncated(normCand.diagnostics, gateCand.diagnostics);\n if (!referenceComplete || !candidateComplete) {\n const sides = [!referenceComplete && 'reference', !candidateComplete && 'candidate']\n .filter(Boolean)\n .join(' and ');\n diagnostics.push({\n severity: 'warning',\n code: 'INCOMPLETE_PARSE',\n message: `The ${sides} parse left tokens unconsumed, so the scores compare only what parsed; not faithful.`,\n suggestion:\n 'The unconsumed tokens are named in the UNCONSUMED_INPUT diagnostics above. ' +\n 'If the reference is truncated, a translation of it drops the same clause.',\n });\n }\n\n const report = scoreNodes(normRef.node, normCand.node);\n return {\n ok: true,\n diagnostics,\n ...report,\n faithful: report.faithful && referenceComplete && candidateComplete,\n referenceComplete,\n candidateComplete,\n };\n }\n\n /**\n * Generate a target-specific output from LSE (bracket syntax or protocol JSON).\n *\n * Accepts LSE produced by an LLM (via `lse_generate_with_correction` MCP tool),\n * validates it, and renders to the requested target format.\n *\n * Targets (`target` is required):\n * - 'react' — React component\n * - 'vue' — Vue component\n * - 'svelte' — Svelte component\n * - 'intent-element' — HTML snippet with embedded `<lse-intent>` JSON\n */\n async generate(request: GenerateRequest): Promise<GenerateResponse> {\n const { lse, target, task } = request;\n const diagnostics: Diagnostic[] = [];\n\n const isJSON = lse.trimStart().startsWith('{');\n\n // ── intent-element: validate via @lokascript/intent, render HTML ───────\n if (target === 'intent-element') {\n try {\n const { parseExplicit, toProtocolJSON, validateProtocolJSON, fromProtocolJSON } =\n await import('@lokascript/framework');\n\n let node: import('@lokascript/framework').SemanticNode | null = null;\n\n if (isJSON) {\n let parsed: unknown;\n try {\n parsed = JSON.parse(lse);\n } catch {\n return {\n ok: false,\n diagnostics: [\n { severity: 'error', code: 'INVALID_JSON', message: 'LSE is not valid JSON' },\n ],\n };\n }\n const protoDiags = validateProtocolJSON(parsed as Record<string, unknown>);\n for (const d of protoDiags) {\n diagnostics.push({\n severity: d.severity as 'error' | 'warning' | 'info',\n code: d.code,\n message: d.message,\n });\n }\n if (!protoDiags.some(d => d.severity === 'error')) {\n node = fromProtocolJSON(parsed as Parameters<typeof fromProtocolJSON>[0]);\n }\n } else {\n try {\n node = parseExplicit(lse);\n } catch (e) {\n return {\n ok: false,\n diagnostics: [\n {\n severity: 'error',\n code: 'PARSE_ERROR',\n message: e instanceof Error ? e.message : String(e),\n },\n ],\n };\n }\n }\n\n if (!node) {\n return { ok: false, diagnostics };\n }\n\n const protocol = toProtocolJSON(node);\n const protocolStr = JSON.stringify(protocol, null, 2);\n const taskComment = task ? `<!-- Task: ${task.replace(/-->/g, '-\\\\->')} -->\\n` : '';\n\n // Infer a declarative trigger attribute from the node.\n //\n // - event-handler nodes carry their event name in roles.get('event')\n // as a literal (wire-format trigger sugar is unwrapped into this\n // shape by fromProtocolJSON). Emit trigger=\"<event>\".\n // - Everything else gets trigger=\"load\" — the element fires\n // validation+execution on connect. This matches the default\n // behavior and is the safest choice when no event is specified.\n let triggerAttr = 'load';\n if (node.kind === 'event-handler') {\n const eventValue = node.roles.get('event');\n if (\n eventValue &&\n eventValue.type === 'literal' &&\n typeof eventValue.value === 'string' &&\n eventValue.value.length > 0\n ) {\n triggerAttr = eventValue.value;\n }\n }\n const escapedTrigger = triggerAttr.replace(/\"/g, '"');\n\n const output = [\n `${taskComment}<lse-intent trigger=\"${escapedTrigger}\">`,\n ` <script type=\"application/lse+json\">`,\n protocolStr\n .split('\\n')\n .map(l => ` ${l}`)\n .join('\\n'),\n ` </script>`,\n `</lse-intent>`,\n ].join('\\n');\n\n const semanticJSON = nodeToSemanticJSON(node);\n\n return { ok: true, output, protocol: semanticJSON, diagnostics };\n } catch (e) {\n return {\n ok: false,\n diagnostics: [\n {\n severity: 'error',\n code: 'INTERNAL_ERROR',\n message: e instanceof Error ? e.message : String(e),\n },\n ],\n };\n }\n }\n\n // ── framework targets: delegate to existing pipeline ───────────────────\n\n const componentTargets = ['react', 'vue', 'svelte'] as const;\n type ComponentTarget = (typeof componentTargets)[number];\n\n if ((componentTargets as readonly string[]).includes(target)) {\n const componentRequest: ComponentRequest = isJSON\n ? { semantic: JSON.parse(lse) as SemanticJSON }\n : { explicit: lse };\n const result = this.generateComponent({\n ...componentRequest,\n framework: target as ComponentTarget,\n });\n return {\n ok: result.ok,\n output: result.component?.code,\n protocol: result.semantic,\n diagnostics: result.diagnostics,\n };\n }\n\n return {\n ok: false,\n diagnostics: [\n {\n severity: 'error',\n code: 'UNKNOWN_TARGET',\n message: `Unknown target '${String(target)}'. Available: react, vue, svelte, intent-element`,\n },\n ],\n };\n }\n}\n\n// =============================================================================\n// Helpers\n// =============================================================================\n\n/**\n * Flatten a SemanticValue (possibly nested property-path) to a string.\n */\nfunction extractSemanticValueString(v: unknown): string {\n if (!v || typeof v !== 'object') return '';\n const sv = v as {\n type?: string;\n value?: unknown;\n raw?: string;\n object?: unknown;\n property?: string;\n };\n if (sv.type === 'property-path') {\n return `${extractSemanticValueString(sv.object)}.${sv.property ?? ''}`;\n }\n return String(sv.value ?? sv.raw ?? '');\n}\n\n/**\n * Convert a SemanticNode to SemanticJSON for the response.\n */\nfunction nodeToSemanticJSON(node: unknown): SemanticJSON | undefined {\n if (!node || typeof node !== 'object') return undefined;\n\n const n = node as {\n kind?: string;\n action?: string;\n roles?: ReadonlyMap<string, unknown>;\n body?: unknown[];\n eventModifiers?: Record<string, unknown>;\n };\n\n if (!n.action) return undefined;\n\n const roles: Record<string, SemanticJSONValue> = {};\n\n if (n.roles && typeof n.roles.entries === 'function') {\n for (const [role, value] of n.roles.entries()) {\n if (role === 'event') continue; // Handled via trigger\n const v = value as { type?: string; value?: unknown; raw?: string };\n if (v && v.type) {\n if (v.type === 'property-path') {\n roles[role] = {\n type: 'property-path',\n value: extractSemanticValueString(v),\n };\n } else {\n const valueType = v.type as SemanticJSONValue['type'];\n roles[role] = {\n type: (['selector', 'literal', 'reference', 'expression'].includes(valueType)\n ? valueType\n : 'literal') as SemanticJSONValue['type'],\n value: (v.value ?? v.raw ?? '') as string | number | boolean,\n };\n }\n }\n }\n }\n\n // Handle event handlers\n if (n.kind === 'event-handler' || n.action === 'on') {\n const eventRole =\n n.roles && typeof n.roles.get === 'function'\n ? (n.roles.get('event') as { value?: unknown; raw?: unknown } | undefined)\n : undefined;\n\n // For event handlers, return the body command's semantic JSON\n if (n.body && n.body.length > 0) {\n const bodyJSON = nodeToSemanticJSON(n.body[0]);\n if (bodyJSON) {\n bodyJSON.trigger = {\n event: eventNameOf(eventRole),\n modifiers: n.eventModifiers,\n };\n return bodyJSON;\n }\n }\n\n return {\n action: n.action,\n roles,\n trigger: {\n event: eventNameOf(eventRole),\n modifiers: n.eventModifiers,\n },\n };\n }\n\n return { action: n.action, roles };\n}\n\n/**\n * The event name of a handler's `event` role. A colon-qualified event\n * (`htmx:beforeRequest`, `draggable:start`) arrives as an `expression` with\n * `raw`, not a literal with `value`, and reading `value` alone reported every\n * one of them as `click`.\n */\nexport function eventNameOf(eventRole: { value?: unknown; raw?: unknown } | undefined): string {\n const name = eventRole?.value ?? eventRole?.raw;\n return typeof name === 'string' && name.length > 0 ? name : 'click';\n}\n","/**\n * LLM JSON input validation and conversion.\n *\n * Re-exports from @lokascript/framework/ir — the canonical IR layer.\n */\n\nexport {\n validateSemanticJSON,\n jsonToSemanticNode,\n semanticNodeToJSON,\n} from '@lokascript/framework/ir';\n"],"mappings":"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","names":["escapeString","escapeString","analyzeOperations","generateOperationCode","escapeString","analyzeOperations","generateOperationCode","generateTemplate","escapeString","collectTargetElements","validateProtocolJSON","fromProtocolJSON"]}
|