{"version":3,"sources":["../../node_modules/ajv/lib/compile/codegen/code.ts","../../node_modules/ajv/lib/compile/codegen/scope.ts","../../node_modules/ajv/lib/compile/codegen/index.ts","../../node_modules/ajv/lib/compile/util.ts","../../node_modules/ajv/lib/compile/names.ts","../../node_modules/ajv/lib/compile/errors.ts","../../node_modules/ajv/lib/compile/validate/boolSchema.ts","../../node_modules/ajv/lib/compile/rules.ts","../../node_modules/ajv/lib/compile/validate/applicability.ts","../../node_modules/ajv/lib/compile/validate/dataType.ts","../../node_modules/ajv/lib/compile/validate/defaults.ts","../../node_modules/ajv/lib/vocabularies/code.ts","../../node_modules/ajv/lib/compile/validate/keyword.ts","../../node_modules/ajv/lib/compile/validate/subschema.ts","../../node_modules/fast-deep-equal/index.js","../../node_modules/json-schema-traverse/index.js","../../node_modules/ajv/lib/compile/resolve.ts","../../node_modules/ajv/lib/compile/validate/index.ts","../../node_modules/ajv/lib/runtime/validation_error.ts","../../node_modules/ajv/lib/compile/ref_error.ts","../../node_modules/ajv/lib/compile/index.ts","../../node_modules/ajv/dist/refs/data.json","../../node_modules/fast-uri/lib/utils.js","../../node_modules/fast-uri/lib/schemes.js","../../node_modules/fast-uri/index.js","../../node_modules/ajv/lib/runtime/uri.ts","../../node_modules/ajv/lib/core.ts","../../node_modules/ajv/lib/vocabularies/core/id.ts","../../node_modules/ajv/lib/vocabularies/core/ref.ts","../../node_modules/ajv/lib/vocabularies/core/index.ts","../../node_modules/ajv/lib/vocabularies/validation/limitNumber.ts","../../node_modules/ajv/lib/vocabularies/validation/multipleOf.ts","../../node_modules/ajv/lib/runtime/ucs2length.ts","../../node_modules/ajv/lib/vocabularies/validation/limitLength.ts","../../node_modules/ajv/lib/vocabularies/validation/pattern.ts","../../node_modules/ajv/lib/vocabularies/validation/limitProperties.ts","../../node_modules/ajv/lib/vocabularies/validation/required.ts","../../node_modules/ajv/lib/vocabularies/validation/limitItems.ts","../../node_modules/ajv/lib/runtime/equal.ts","../../node_modules/ajv/lib/vocabularies/validation/uniqueItems.ts","../../node_modules/ajv/lib/vocabularies/validation/const.ts","../../node_modules/ajv/lib/vocabularies/validation/enum.ts","../../node_modules/ajv/lib/vocabularies/validation/index.ts","../../node_modules/ajv/lib/vocabularies/applicator/additionalItems.ts","../../node_modules/ajv/lib/vocabularies/applicator/items.ts","../../node_modules/ajv/lib/vocabularies/applicator/prefixItems.ts","../../node_modules/ajv/lib/vocabularies/applicator/items2020.ts","../../node_modules/ajv/lib/vocabularies/applicator/contains.ts","../../node_modules/ajv/lib/vocabularies/applicator/dependencies.ts","../../node_modules/ajv/lib/vocabularies/applicator/propertyNames.ts","../../node_modules/ajv/lib/vocabularies/applicator/additionalProperties.ts","../../node_modules/ajv/lib/vocabularies/applicator/properties.ts","../../node_modules/ajv/lib/vocabularies/applicator/patternProperties.ts","../../node_modules/ajv/lib/vocabularies/applicator/not.ts","../../node_modules/ajv/lib/vocabularies/applicator/anyOf.ts","../../node_modules/ajv/lib/vocabularies/applicator/oneOf.ts","../../node_modules/ajv/lib/vocabularies/applicator/allOf.ts","../../node_modules/ajv/lib/vocabularies/applicator/if.ts","../../node_modules/ajv/lib/vocabularies/applicator/thenElse.ts","../../node_modules/ajv/lib/vocabularies/applicator/index.ts","../../node_modules/ajv/lib/vocabularies/format/format.ts","../../node_modules/ajv/lib/vocabularies/format/index.ts","../../node_modules/ajv/lib/vocabularies/metadata.ts","../../node_modules/ajv/lib/vocabularies/draft7.ts","../../node_modules/ajv/lib/vocabularies/discriminator/types.ts","../../node_modules/ajv/lib/vocabularies/discriminator/index.ts","../../node_modules/ajv/dist/refs/json-schema-draft-07.json","../../node_modules/ajv/lib/ajv.ts","../../src/contracts/common.ts","../../src/contracts/access.ts","../../src/contracts/agent.ts","../../src/contracts/page-expression.ts","../../src/contracts/render.ts","../../src/contracts/capability.ts","../../src/contracts/data.ts","../../src/contracts/legacy-route.ts","../../src/contracts/file.ts","../../src/contracts/page-binding-dependencies.ts","../../src/contracts/declarative-diagnostic.ts","../../src/contracts/declarative-control.ts","../../src/contracts/page.ts","../../src/contracts/menu.ts","../../src/contracts/semantic.ts","../../src/contracts/declarative-control-http.ts","../../src/theme-tokens/core.ts","../../src/contracts/dtcg-format.schema.json","../../src/contracts/theme.ts","../../src/contracts/tenant.ts","../../src/contracts/workflow-canvas.ts","../../src/contracts/workflow-definition.ts","../../src/contracts/workflow-column.ts","../../src/contracts/component-assembly.ts","../../src/contracts/record-editor-draft.ts"],"sourcesContent":["// eslint-disable-next-line @typescript-eslint/no-extraneous-class\nexport abstract class _CodeOrName {\n  abstract readonly str: string\n  abstract readonly names: UsedNames\n  abstract toString(): string\n  abstract emptyStr(): boolean\n}\n\nexport const IDENTIFIER = /^[a-z$_][a-z$_0-9]*$/i\n\nexport class Name extends _CodeOrName {\n  readonly str: string\n  constructor(s: string) {\n    super()\n    if (!IDENTIFIER.test(s)) throw new Error(\"CodeGen: name must be a valid identifier\")\n    this.str = s\n  }\n\n  toString(): string {\n    return this.str\n  }\n\n  emptyStr(): boolean {\n    return false\n  }\n\n  get names(): UsedNames {\n    return {[this.str]: 1}\n  }\n}\n\nexport class _Code extends _CodeOrName {\n  readonly _items: readonly CodeItem[]\n  private _str?: string\n  private _names?: UsedNames\n\n  constructor(code: string | readonly CodeItem[]) {\n    super()\n    this._items = typeof code === \"string\" ? [code] : code\n  }\n\n  toString(): string {\n    return this.str\n  }\n\n  emptyStr(): boolean {\n    if (this._items.length > 1) return false\n    const item = this._items[0]\n    return item === \"\" || item === '\"\"'\n  }\n\n  get str(): string {\n    return (this._str ??= this._items.reduce((s: string, c: CodeItem) => `${s}${c}`, \"\"))\n  }\n\n  get names(): UsedNames {\n    return (this._names ??= this._items.reduce((names: UsedNames, c) => {\n      if (c instanceof Name) names[c.str] = (names[c.str] || 0) + 1\n      return names\n    }, {}))\n  }\n}\n\nexport type CodeItem = Name | string | number | boolean | null\n\nexport type UsedNames = Record<string, number | undefined>\n\nexport type Code = _Code | Name\n\nexport type SafeExpr = Code | number | boolean | null\n\nexport const nil = new _Code(\"\")\n\ntype CodeArg = SafeExpr | string | undefined\n\nexport function _(strs: TemplateStringsArray, ...args: CodeArg[]): _Code {\n  const code: CodeItem[] = [strs[0]]\n  let i = 0\n  while (i < args.length) {\n    addCodeArg(code, args[i])\n    code.push(strs[++i])\n  }\n  return new _Code(code)\n}\n\nconst plus = new _Code(\"+\")\n\nexport function str(strs: TemplateStringsArray, ...args: (CodeArg | string[])[]): _Code {\n  const expr: CodeItem[] = [safeStringify(strs[0])]\n  let i = 0\n  while (i < args.length) {\n    expr.push(plus)\n    addCodeArg(expr, args[i])\n    expr.push(plus, safeStringify(strs[++i]))\n  }\n  optimize(expr)\n  return new _Code(expr)\n}\n\nexport function addCodeArg(code: CodeItem[], arg: CodeArg | string[]): void {\n  if (arg instanceof _Code) code.push(...arg._items)\n  else if (arg instanceof Name) code.push(arg)\n  else code.push(interpolate(arg))\n}\n\nfunction optimize(expr: CodeItem[]): void {\n  let i = 1\n  while (i < expr.length - 1) {\n    if (expr[i] === plus) {\n      const res = mergeExprItems(expr[i - 1], expr[i + 1])\n      if (res !== undefined) {\n        expr.splice(i - 1, 3, res)\n        continue\n      }\n      expr[i++] = \"+\"\n    }\n    i++\n  }\n}\n\nfunction mergeExprItems(a: CodeItem, b: CodeItem): CodeItem | undefined {\n  if (b === '\"\"') return a\n  if (a === '\"\"') return b\n  if (typeof a == \"string\") {\n    if (b instanceof Name || a[a.length - 1] !== '\"') return\n    if (typeof b != \"string\") return `${a.slice(0, -1)}${b}\"`\n    if (b[0] === '\"') return a.slice(0, -1) + b.slice(1)\n    return\n  }\n  if (typeof b == \"string\" && b[0] === '\"' && !(a instanceof Name)) return `\"${a}${b.slice(1)}`\n  return\n}\n\nexport function strConcat(c1: Code, c2: Code): Code {\n  return c2.emptyStr() ? c1 : c1.emptyStr() ? c2 : str`${c1}${c2}`\n}\n\n// TODO do not allow arrays here\nfunction interpolate(x?: string | string[] | number | boolean | null): SafeExpr | string {\n  return typeof x == \"number\" || typeof x == \"boolean\" || x === null\n    ? x\n    : safeStringify(Array.isArray(x) ? x.join(\",\") : x)\n}\n\nexport function stringify(x: unknown): Code {\n  return new _Code(safeStringify(x))\n}\n\nexport function safeStringify(x: unknown): string {\n  return JSON.stringify(x)\n    .replace(/\\u2028/g, \"\\\\u2028\")\n    .replace(/\\u2029/g, \"\\\\u2029\")\n}\n\nexport function getProperty(key: Code | string | number): Code {\n  return typeof key == \"string\" && IDENTIFIER.test(key) ? new _Code(`.${key}`) : _`[${key}]`\n}\n\n//Does best effort to format the name properly\nexport function getEsmExportName(key: Code | string | number): Code {\n  if (typeof key == \"string\" && IDENTIFIER.test(key)) {\n    return new _Code(`${key}`)\n  }\n  throw new Error(`CodeGen: invalid export name: ${key}, use explicit $id name mapping`)\n}\n\nexport function regexpCode(rx: RegExp): Code {\n  return new _Code(rx.toString())\n}\n","import {_, nil, Code, Name} from \"./code\"\n\ninterface NameGroup {\n  prefix: string\n  index: number\n}\n\nexport interface NameValue {\n  ref: ValueReference // this is the reference to any value that can be referred to from generated code via `globals` var in the closure\n  key?: unknown // any key to identify a global to avoid duplicates, if not passed ref is used\n  code?: Code // this is the code creating the value needed for standalone code wit_out closure - can be a primitive value, function or import (`require`)\n}\n\nexport type ValueReference = unknown // possibly make CodeGen parameterized type on this type\n\nclass ValueError extends Error {\n  readonly value?: NameValue\n  constructor(name: ValueScopeName) {\n    super(`CodeGen: \"code\" for ${name} not defined`)\n    this.value = name.value\n  }\n}\n\ninterface ScopeOptions {\n  prefixes?: Set<string>\n  parent?: Scope\n}\n\ninterface ValueScopeOptions extends ScopeOptions {\n  scope: ScopeStore\n  es5?: boolean\n  lines?: boolean\n}\n\nexport type ScopeStore = Record<string, ValueReference[] | undefined>\n\ntype ScopeValues = {\n  [Prefix in string]?: Map<unknown, ValueScopeName>\n}\n\nexport type ScopeValueSets = {\n  [Prefix in string]?: Set<ValueScopeName>\n}\n\nexport enum UsedValueState {\n  Started,\n  Completed,\n}\n\nexport type UsedScopeValues = {\n  [Prefix in string]?: Map<ValueScopeName, UsedValueState | undefined>\n}\n\nexport const varKinds = {\n  const: new Name(\"const\"),\n  let: new Name(\"let\"),\n  var: new Name(\"var\"),\n}\n\nexport class Scope {\n  protected readonly _names: {[Prefix in string]?: NameGroup} = {}\n  protected readonly _prefixes?: Set<string>\n  protected readonly _parent?: Scope\n\n  constructor({prefixes, parent}: ScopeOptions = {}) {\n    this._prefixes = prefixes\n    this._parent = parent\n  }\n\n  toName(nameOrPrefix: Name | string): Name {\n    return nameOrPrefix instanceof Name ? nameOrPrefix : this.name(nameOrPrefix)\n  }\n\n  name(prefix: string): Name {\n    return new Name(this._newName(prefix))\n  }\n\n  protected _newName(prefix: string): string {\n    const ng = this._names[prefix] || this._nameGroup(prefix)\n    return `${prefix}${ng.index++}`\n  }\n\n  private _nameGroup(prefix: string): NameGroup {\n    if (this._parent?._prefixes?.has(prefix) || (this._prefixes && !this._prefixes.has(prefix))) {\n      throw new Error(`CodeGen: prefix \"${prefix}\" is not allowed in this scope`)\n    }\n    return (this._names[prefix] = {prefix, index: 0})\n  }\n}\n\ninterface ScopePath {\n  property: string\n  itemIndex: number\n}\n\nexport class ValueScopeName extends Name {\n  readonly prefix: string\n  value?: NameValue\n  scopePath?: Code\n\n  constructor(prefix: string, nameStr: string) {\n    super(nameStr)\n    this.prefix = prefix\n  }\n\n  setValue(value: NameValue, {property, itemIndex}: ScopePath): void {\n    this.value = value\n    this.scopePath = _`.${new Name(property)}[${itemIndex}]`\n  }\n}\n\ninterface VSOptions extends ValueScopeOptions {\n  _n: Code\n}\n\nconst line = _`\\n`\n\nexport class ValueScope extends Scope {\n  protected readonly _values: ScopeValues = {}\n  protected readonly _scope: ScopeStore\n  readonly opts: VSOptions\n\n  constructor(opts: ValueScopeOptions) {\n    super(opts)\n    this._scope = opts.scope\n    this.opts = {...opts, _n: opts.lines ? line : nil}\n  }\n\n  get(): ScopeStore {\n    return this._scope\n  }\n\n  name(prefix: string): ValueScopeName {\n    return new ValueScopeName(prefix, this._newName(prefix))\n  }\n\n  value(nameOrPrefix: ValueScopeName | string, value: NameValue): ValueScopeName {\n    if (value.ref === undefined) throw new Error(\"CodeGen: ref must be passed in value\")\n    const name = this.toName(nameOrPrefix) as ValueScopeName\n    const {prefix} = name\n    const valueKey = value.key ?? value.ref\n    let vs = this._values[prefix]\n    if (vs) {\n      const _name = vs.get(valueKey)\n      if (_name) return _name\n    } else {\n      vs = this._values[prefix] = new Map()\n    }\n    vs.set(valueKey, name)\n\n    const s = this._scope[prefix] || (this._scope[prefix] = [])\n    const itemIndex = s.length\n    s[itemIndex] = value.ref\n    name.setValue(value, {property: prefix, itemIndex})\n    return name\n  }\n\n  getValue(prefix: string, keyOrRef: unknown): ValueScopeName | undefined {\n    const vs = this._values[prefix]\n    if (!vs) return\n    return vs.get(keyOrRef)\n  }\n\n  scopeRefs(scopeName: Name, values: ScopeValues | ScopeValueSets = this._values): Code {\n    return this._reduceValues(values, (name: ValueScopeName) => {\n      if (name.scopePath === undefined) throw new Error(`CodeGen: name \"${name}\" has no value`)\n      return _`${scopeName}${name.scopePath}`\n    })\n  }\n\n  scopeCode(\n    values: ScopeValues | ScopeValueSets = this._values,\n    usedValues?: UsedScopeValues,\n    getCode?: (n: ValueScopeName) => Code | undefined\n  ): Code {\n    return this._reduceValues(\n      values,\n      (name: ValueScopeName) => {\n        if (name.value === undefined) throw new Error(`CodeGen: name \"${name}\" has no value`)\n        return name.value.code\n      },\n      usedValues,\n      getCode\n    )\n  }\n\n  private _reduceValues(\n    values: ScopeValues | ScopeValueSets,\n    valueCode: (n: ValueScopeName) => Code | undefined,\n    usedValues: UsedScopeValues = {},\n    getCode?: (n: ValueScopeName) => Code | undefined\n  ): Code {\n    let code: Code = nil\n    for (const prefix in values) {\n      const vs = values[prefix]\n      if (!vs) continue\n      const nameSet = (usedValues[prefix] = usedValues[prefix] || new Map())\n      vs.forEach((name: ValueScopeName) => {\n        if (nameSet.has(name)) return\n        nameSet.set(name, UsedValueState.Started)\n        let c = valueCode(name)\n        if (c) {\n          const def = this.opts.es5 ? varKinds.var : varKinds.const\n          code = _`${code}${def} ${name} = ${c};${this.opts._n}`\n        } else if ((c = getCode?.(name))) {\n          code = _`${code}${c}${this.opts._n}`\n        } else {\n          throw new ValueError(name)\n        }\n        nameSet.set(name, UsedValueState.Completed)\n      })\n    }\n    return code\n  }\n}\n","import type {ScopeValueSets, NameValue, ValueScope, ValueScopeName} from \"./scope\"\nimport {_, nil, _Code, Code, Name, UsedNames, CodeItem, addCodeArg, _CodeOrName} from \"./code\"\nimport {Scope, varKinds} from \"./scope\"\n\nexport {_, str, strConcat, nil, getProperty, stringify, regexpCode, Name, Code} from \"./code\"\nexport {Scope, ScopeStore, ValueScope, ValueScopeName, ScopeValueSets, varKinds} from \"./scope\"\n\n// type for expressions that can be safely inserted in code without quotes\nexport type SafeExpr = Code | number | boolean | null\n\n// type that is either Code of function that adds code to CodeGen instance using its methods\nexport type Block = Code | (() => void)\n\nexport const operators = {\n  GT: new _Code(\">\"),\n  GTE: new _Code(\">=\"),\n  LT: new _Code(\"<\"),\n  LTE: new _Code(\"<=\"),\n  EQ: new _Code(\"===\"),\n  NEQ: new _Code(\"!==\"),\n  NOT: new _Code(\"!\"),\n  OR: new _Code(\"||\"),\n  AND: new _Code(\"&&\"),\n  ADD: new _Code(\"+\"),\n}\n\nabstract class Node {\n  abstract readonly names: UsedNames\n\n  optimizeNodes(): this | ChildNode | ChildNode[] | undefined {\n    return this\n  }\n\n  optimizeNames(_names: UsedNames, _constants: Constants): this | undefined {\n    return this\n  }\n\n  // get count(): number {\n  //   return 1\n  // }\n}\n\nclass Def extends Node {\n  constructor(\n    private readonly varKind: Name,\n    private readonly name: Name,\n    private rhs?: SafeExpr\n  ) {\n    super()\n  }\n\n  render({es5, _n}: CGOptions): string {\n    const varKind = es5 ? varKinds.var : this.varKind\n    const rhs = this.rhs === undefined ? \"\" : ` = ${this.rhs}`\n    return `${varKind} ${this.name}${rhs};` + _n\n  }\n\n  optimizeNames(names: UsedNames, constants: Constants): this | undefined {\n    if (!names[this.name.str]) return\n    if (this.rhs) this.rhs = optimizeExpr(this.rhs, names, constants)\n    return this\n  }\n\n  get names(): UsedNames {\n    return this.rhs instanceof _CodeOrName ? this.rhs.names : {}\n  }\n}\n\nclass Assign extends Node {\n  constructor(\n    readonly lhs: Code,\n    public rhs: SafeExpr,\n    private readonly sideEffects?: boolean\n  ) {\n    super()\n  }\n\n  render({_n}: CGOptions): string {\n    return `${this.lhs} = ${this.rhs};` + _n\n  }\n\n  optimizeNames(names: UsedNames, constants: Constants): this | undefined {\n    if (this.lhs instanceof Name && !names[this.lhs.str] && !this.sideEffects) return\n    this.rhs = optimizeExpr(this.rhs, names, constants)\n    return this\n  }\n\n  get names(): UsedNames {\n    const names = this.lhs instanceof Name ? {} : {...this.lhs.names}\n    return addExprNames(names, this.rhs)\n  }\n}\n\nclass AssignOp extends Assign {\n  constructor(\n    lhs: Code,\n    private readonly op: Code,\n    rhs: SafeExpr,\n    sideEffects?: boolean\n  ) {\n    super(lhs, rhs, sideEffects)\n  }\n\n  render({_n}: CGOptions): string {\n    return `${this.lhs} ${this.op}= ${this.rhs};` + _n\n  }\n}\n\nclass Label extends Node {\n  readonly names: UsedNames = {}\n  constructor(readonly label: Name) {\n    super()\n  }\n\n  render({_n}: CGOptions): string {\n    return `${this.label}:` + _n\n  }\n}\n\nclass Break extends Node {\n  readonly names: UsedNames = {}\n  constructor(readonly label?: Code) {\n    super()\n  }\n\n  render({_n}: CGOptions): string {\n    const label = this.label ? ` ${this.label}` : \"\"\n    return `break${label};` + _n\n  }\n}\n\nclass Throw extends Node {\n  constructor(readonly error: Code) {\n    super()\n  }\n\n  render({_n}: CGOptions): string {\n    return `throw ${this.error};` + _n\n  }\n\n  get names(): UsedNames {\n    return this.error.names\n  }\n}\n\nclass AnyCode extends Node {\n  constructor(private code: SafeExpr) {\n    super()\n  }\n\n  render({_n}: CGOptions): string {\n    return `${this.code};` + _n\n  }\n\n  optimizeNodes(): this | undefined {\n    return `${this.code}` ? this : undefined\n  }\n\n  optimizeNames(names: UsedNames, constants: Constants): this {\n    this.code = optimizeExpr(this.code, names, constants)\n    return this\n  }\n\n  get names(): UsedNames {\n    return this.code instanceof _CodeOrName ? this.code.names : {}\n  }\n}\n\nabstract class ParentNode extends Node {\n  constructor(readonly nodes: ChildNode[] = []) {\n    super()\n  }\n\n  render(opts: CGOptions): string {\n    return this.nodes.reduce((code, n) => code + n.render(opts), \"\")\n  }\n\n  optimizeNodes(): this | ChildNode | ChildNode[] | undefined {\n    const {nodes} = this\n    let i = nodes.length\n    while (i--) {\n      const n = nodes[i].optimizeNodes()\n      if (Array.isArray(n)) nodes.splice(i, 1, ...n)\n      else if (n) nodes[i] = n\n      else nodes.splice(i, 1)\n    }\n    return nodes.length > 0 ? this : undefined\n  }\n\n  optimizeNames(names: UsedNames, constants: Constants): this | undefined {\n    const {nodes} = this\n    let i = nodes.length\n    while (i--) {\n      // iterating backwards improves 1-pass optimization\n      const n = nodes[i]\n      if (n.optimizeNames(names, constants)) continue\n      subtractNames(names, n.names)\n      nodes.splice(i, 1)\n    }\n    return nodes.length > 0 ? this : undefined\n  }\n\n  get names(): UsedNames {\n    return this.nodes.reduce((names: UsedNames, n) => addNames(names, n.names), {})\n  }\n\n  // get count(): number {\n  //   return this.nodes.reduce((c, n) => c + n.count, 1)\n  // }\n}\n\nabstract class BlockNode extends ParentNode {\n  render(opts: CGOptions): string {\n    return \"{\" + opts._n + super.render(opts) + \"}\" + opts._n\n  }\n}\n\nclass Root extends ParentNode {}\n\nclass Else extends BlockNode {\n  static readonly kind = \"else\"\n}\n\nclass If extends BlockNode {\n  static readonly kind = \"if\"\n  else?: If | Else\n  constructor(\n    private condition: Code | boolean,\n    nodes?: ChildNode[]\n  ) {\n    super(nodes)\n  }\n\n  render(opts: CGOptions): string {\n    let code = `if(${this.condition})` + super.render(opts)\n    if (this.else) code += \"else \" + this.else.render(opts)\n    return code\n  }\n\n  optimizeNodes(): If | ChildNode[] | undefined {\n    super.optimizeNodes()\n    const cond = this.condition\n    if (cond === true) return this.nodes // else is ignored here\n    let e = this.else\n    if (e) {\n      const ns = e.optimizeNodes()\n      e = this.else = Array.isArray(ns) ? new Else(ns) : (ns as Else | undefined)\n    }\n    if (e) {\n      if (cond === false) return e instanceof If ? e : e.nodes\n      if (this.nodes.length) return this\n      return new If(not(cond), e instanceof If ? [e] : e.nodes)\n    }\n    if (cond === false || !this.nodes.length) return undefined\n    return this\n  }\n\n  optimizeNames(names: UsedNames, constants: Constants): this | undefined {\n    this.else = this.else?.optimizeNames(names, constants)\n    if (!(super.optimizeNames(names, constants) || this.else)) return\n    this.condition = optimizeExpr(this.condition, names, constants)\n    return this\n  }\n\n  get names(): UsedNames {\n    const names = super.names\n    addExprNames(names, this.condition)\n    if (this.else) addNames(names, this.else.names)\n    return names\n  }\n\n  // get count(): number {\n  //   return super.count + (this.else?.count || 0)\n  // }\n}\n\nabstract class For extends BlockNode {\n  static readonly kind = \"for\"\n}\n\nclass ForLoop extends For {\n  constructor(private iteration: Code) {\n    super()\n  }\n\n  render(opts: CGOptions): string {\n    return `for(${this.iteration})` + super.render(opts)\n  }\n\n  optimizeNames(names: UsedNames, constants: Constants): this | undefined {\n    if (!super.optimizeNames(names, constants)) return\n    this.iteration = optimizeExpr(this.iteration, names, constants)\n    return this\n  }\n\n  get names(): UsedNames {\n    return addNames(super.names, this.iteration.names)\n  }\n}\n\nclass ForRange extends For {\n  constructor(\n    private readonly varKind: Name,\n    private readonly name: Name,\n    private readonly from: SafeExpr,\n    private readonly to: SafeExpr\n  ) {\n    super()\n  }\n\n  render(opts: CGOptions): string {\n    const varKind = opts.es5 ? varKinds.var : this.varKind\n    const {name, from, to} = this\n    return `for(${varKind} ${name}=${from}; ${name}<${to}; ${name}++)` + super.render(opts)\n  }\n\n  get names(): UsedNames {\n    const names = addExprNames(super.names, this.from)\n    return addExprNames(names, this.to)\n  }\n}\n\nclass ForIter extends For {\n  constructor(\n    private readonly loop: \"of\" | \"in\",\n    private readonly varKind: Name,\n    private readonly name: Name,\n    private iterable: Code\n  ) {\n    super()\n  }\n\n  render(opts: CGOptions): string {\n    return `for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})` + super.render(opts)\n  }\n\n  optimizeNames(names: UsedNames, constants: Constants): this | undefined {\n    if (!super.optimizeNames(names, constants)) return\n    this.iterable = optimizeExpr(this.iterable, names, constants)\n    return this\n  }\n\n  get names(): UsedNames {\n    return addNames(super.names, this.iterable.names)\n  }\n}\n\nclass Func extends BlockNode {\n  static readonly kind = \"func\"\n  constructor(\n    public name: Name,\n    public args: Code,\n    public async?: boolean\n  ) {\n    super()\n  }\n\n  render(opts: CGOptions): string {\n    const _async = this.async ? \"async \" : \"\"\n    return `${_async}function ${this.name}(${this.args})` + super.render(opts)\n  }\n}\n\nclass Return extends ParentNode {\n  static readonly kind = \"return\"\n\n  render(opts: CGOptions): string {\n    return \"return \" + super.render(opts)\n  }\n}\n\nclass Try extends BlockNode {\n  catch?: Catch\n  finally?: Finally\n\n  render(opts: CGOptions): string {\n    let code = \"try\" + super.render(opts)\n    if (this.catch) code += this.catch.render(opts)\n    if (this.finally) code += this.finally.render(opts)\n    return code\n  }\n\n  optimizeNodes(): this {\n    super.optimizeNodes()\n    this.catch?.optimizeNodes() as Catch | undefined\n    this.finally?.optimizeNodes() as Finally | undefined\n    return this\n  }\n\n  optimizeNames(names: UsedNames, constants: Constants): this {\n    super.optimizeNames(names, constants)\n    this.catch?.optimizeNames(names, constants)\n    this.finally?.optimizeNames(names, constants)\n    return this\n  }\n\n  get names(): UsedNames {\n    const names = super.names\n    if (this.catch) addNames(names, this.catch.names)\n    if (this.finally) addNames(names, this.finally.names)\n    return names\n  }\n\n  // get count(): number {\n  //   return super.count + (this.catch?.count || 0) + (this.finally?.count || 0)\n  // }\n}\n\nclass Catch extends BlockNode {\n  static readonly kind = \"catch\"\n  constructor(readonly error: Name) {\n    super()\n  }\n\n  render(opts: CGOptions): string {\n    return `catch(${this.error})` + super.render(opts)\n  }\n}\n\nclass Finally extends BlockNode {\n  static readonly kind = \"finally\"\n  render(opts: CGOptions): string {\n    return \"finally\" + super.render(opts)\n  }\n}\n\ntype StartBlockNode = If | For | Func | Return | Try\n\ntype LeafNode = Def | Assign | Label | Break | Throw | AnyCode\n\ntype ChildNode = StartBlockNode | LeafNode\n\ntype EndBlockNodeType =\n  | typeof If\n  | typeof Else\n  | typeof For\n  | typeof Func\n  | typeof Return\n  | typeof Catch\n  | typeof Finally\n\ntype Constants = Record<string, SafeExpr | undefined>\n\nexport interface CodeGenOptions {\n  es5?: boolean\n  lines?: boolean\n  ownProperties?: boolean\n}\n\ninterface CGOptions extends CodeGenOptions {\n  _n: \"\\n\" | \"\"\n}\n\nexport class CodeGen {\n  readonly _scope: Scope\n  readonly _extScope: ValueScope\n  readonly _values: ScopeValueSets = {}\n  private readonly _nodes: ParentNode[]\n  private readonly _blockStarts: number[] = []\n  private readonly _constants: Constants = {}\n  private readonly opts: CGOptions\n\n  constructor(extScope: ValueScope, opts: CodeGenOptions = {}) {\n    this.opts = {...opts, _n: opts.lines ? \"\\n\" : \"\"}\n    this._extScope = extScope\n    this._scope = new Scope({parent: extScope})\n    this._nodes = [new Root()]\n  }\n\n  toString(): string {\n    return this._root.render(this.opts)\n  }\n\n  // returns unique name in the internal scope\n  name(prefix: string): Name {\n    return this._scope.name(prefix)\n  }\n\n  // reserves unique name in the external scope\n  scopeName(prefix: string): ValueScopeName {\n    return this._extScope.name(prefix)\n  }\n\n  // reserves unique name in the external scope and assigns value to it\n  scopeValue(prefixOrName: ValueScopeName | string, value: NameValue): Name {\n    const name = this._extScope.value(prefixOrName, value)\n    const vs = this._values[name.prefix] || (this._values[name.prefix] = new Set())\n    vs.add(name)\n    return name\n  }\n\n  getScopeValue(prefix: string, keyOrRef: unknown): ValueScopeName | undefined {\n    return this._extScope.getValue(prefix, keyOrRef)\n  }\n\n  // return code that assigns values in the external scope to the names that are used internally\n  // (same names that were returned by gen.scopeName or gen.scopeValue)\n  scopeRefs(scopeName: Name): Code {\n    return this._extScope.scopeRefs(scopeName, this._values)\n  }\n\n  scopeCode(): Code {\n    return this._extScope.scopeCode(this._values)\n  }\n\n  private _def(\n    varKind: Name,\n    nameOrPrefix: Name | string,\n    rhs?: SafeExpr,\n    constant?: boolean\n  ): Name {\n    const name = this._scope.toName(nameOrPrefix)\n    if (rhs !== undefined && constant) this._constants[name.str] = rhs\n    this._leafNode(new Def(varKind, name, rhs))\n    return name\n  }\n\n  // `const` declaration (`var` in es5 mode)\n  const(nameOrPrefix: Name | string, rhs: SafeExpr, _constant?: boolean): Name {\n    return this._def(varKinds.const, nameOrPrefix, rhs, _constant)\n  }\n\n  // `let` declaration with optional assignment (`var` in es5 mode)\n  let(nameOrPrefix: Name | string, rhs?: SafeExpr, _constant?: boolean): Name {\n    return this._def(varKinds.let, nameOrPrefix, rhs, _constant)\n  }\n\n  // `var` declaration with optional assignment\n  var(nameOrPrefix: Name | string, rhs?: SafeExpr, _constant?: boolean): Name {\n    return this._def(varKinds.var, nameOrPrefix, rhs, _constant)\n  }\n\n  // assignment code\n  assign(lhs: Code, rhs: SafeExpr, sideEffects?: boolean): CodeGen {\n    return this._leafNode(new Assign(lhs, rhs, sideEffects))\n  }\n\n  // `+=` code\n  add(lhs: Code, rhs: SafeExpr): CodeGen {\n    return this._leafNode(new AssignOp(lhs, operators.ADD, rhs))\n  }\n\n  // appends passed SafeExpr to code or executes Block\n  code(c: Block | SafeExpr): CodeGen {\n    if (typeof c == \"function\") c()\n    else if (c !== nil) this._leafNode(new AnyCode(c))\n    return this\n  }\n\n  // returns code for object literal for the passed argument list of key-value pairs\n  object(...keyValues: [Name | string, SafeExpr | string][]): _Code {\n    const code: CodeItem[] = [\"{\"]\n    for (const [key, value] of keyValues) {\n      if (code.length > 1) code.push(\",\")\n      code.push(key)\n      if (key !== value || this.opts.es5) {\n        code.push(\":\")\n        addCodeArg(code, value)\n      }\n    }\n    code.push(\"}\")\n    return new _Code(code)\n  }\n\n  // `if` clause (or statement if `thenBody` and, optionally, `elseBody` are passed)\n  if(condition: Code | boolean, thenBody?: Block, elseBody?: Block): CodeGen {\n    this._blockNode(new If(condition))\n\n    if (thenBody && elseBody) {\n      this.code(thenBody).else().code(elseBody).endIf()\n    } else if (thenBody) {\n      this.code(thenBody).endIf()\n    } else if (elseBody) {\n      throw new Error('CodeGen: \"else\" body without \"then\" body')\n    }\n    return this\n  }\n\n  // `else if` clause - invalid without `if` or after `else` clauses\n  elseIf(condition: Code | boolean): CodeGen {\n    return this._elseNode(new If(condition))\n  }\n\n  // `else` clause - only valid after `if` or `else if` clauses\n  else(): CodeGen {\n    return this._elseNode(new Else())\n  }\n\n  // end `if` statement (needed if gen.if was used only with condition)\n  endIf(): CodeGen {\n    return this._endBlockNode(If, Else)\n  }\n\n  private _for(node: For, forBody?: Block): CodeGen {\n    this._blockNode(node)\n    if (forBody) this.code(forBody).endFor()\n    return this\n  }\n\n  // a generic `for` clause (or statement if `forBody` is passed)\n  for(iteration: Code, forBody?: Block): CodeGen {\n    return this._for(new ForLoop(iteration), forBody)\n  }\n\n  // `for` statement for a range of values\n  forRange(\n    nameOrPrefix: Name | string,\n    from: SafeExpr,\n    to: SafeExpr,\n    forBody: (index: Name) => void,\n    varKind: Code = this.opts.es5 ? varKinds.var : varKinds.let\n  ): CodeGen {\n    const name = this._scope.toName(nameOrPrefix)\n    return this._for(new ForRange(varKind, name, from, to), () => forBody(name))\n  }\n\n  // `for-of` statement (in es5 mode replace with a normal for loop)\n  forOf(\n    nameOrPrefix: Name | string,\n    iterable: Code,\n    forBody: (item: Name) => void,\n    varKind: Code = varKinds.const\n  ): CodeGen {\n    const name = this._scope.toName(nameOrPrefix)\n    if (this.opts.es5) {\n      const arr = iterable instanceof Name ? iterable : this.var(\"_arr\", iterable)\n      return this.forRange(\"_i\", 0, _`${arr}.length`, (i) => {\n        this.var(name, _`${arr}[${i}]`)\n        forBody(name)\n      })\n    }\n    return this._for(new ForIter(\"of\", varKind, name, iterable), () => forBody(name))\n  }\n\n  // `for-in` statement.\n  // With option `ownProperties` replaced with a `for-of` loop for object keys\n  forIn(\n    nameOrPrefix: Name | string,\n    obj: Code,\n    forBody: (item: Name) => void,\n    varKind: Code = this.opts.es5 ? varKinds.var : varKinds.const\n  ): CodeGen {\n    if (this.opts.ownProperties) {\n      return this.forOf(nameOrPrefix, _`Object.keys(${obj})`, forBody)\n    }\n    const name = this._scope.toName(nameOrPrefix)\n    return this._for(new ForIter(\"in\", varKind, name, obj), () => forBody(name))\n  }\n\n  // end `for` loop\n  endFor(): CodeGen {\n    return this._endBlockNode(For)\n  }\n\n  // `label` statement\n  label(label: Name): CodeGen {\n    return this._leafNode(new Label(label))\n  }\n\n  // `break` statement\n  break(label?: Code): CodeGen {\n    return this._leafNode(new Break(label))\n  }\n\n  // `return` statement\n  return(value: Block | SafeExpr): CodeGen {\n    const node = new Return()\n    this._blockNode(node)\n    this.code(value)\n    if (node.nodes.length !== 1) throw new Error('CodeGen: \"return\" should have one node')\n    return this._endBlockNode(Return)\n  }\n\n  // `try` statement\n  try(tryBody: Block, catchCode?: (e: Name) => void, finallyCode?: Block): CodeGen {\n    if (!catchCode && !finallyCode) throw new Error('CodeGen: \"try\" without \"catch\" and \"finally\"')\n    const node = new Try()\n    this._blockNode(node)\n    this.code(tryBody)\n    if (catchCode) {\n      const error = this.name(\"e\")\n      this._currNode = node.catch = new Catch(error)\n      catchCode(error)\n    }\n    if (finallyCode) {\n      this._currNode = node.finally = new Finally()\n      this.code(finallyCode)\n    }\n    return this._endBlockNode(Catch, Finally)\n  }\n\n  // `throw` statement\n  throw(error: Code): CodeGen {\n    return this._leafNode(new Throw(error))\n  }\n\n  // start self-balancing block\n  block(body?: Block, nodeCount?: number): CodeGen {\n    this._blockStarts.push(this._nodes.length)\n    if (body) this.code(body).endBlock(nodeCount)\n    return this\n  }\n\n  // end the current self-balancing block\n  endBlock(nodeCount?: number): CodeGen {\n    const len = this._blockStarts.pop()\n    if (len === undefined) throw new Error(\"CodeGen: not in self-balancing block\")\n    const toClose = this._nodes.length - len\n    if (toClose < 0 || (nodeCount !== undefined && toClose !== nodeCount)) {\n      throw new Error(`CodeGen: wrong number of nodes: ${toClose} vs ${nodeCount} expected`)\n    }\n    this._nodes.length = len\n    return this\n  }\n\n  // `function` heading (or definition if funcBody is passed)\n  func(name: Name, args: Code = nil, async?: boolean, funcBody?: Block): CodeGen {\n    this._blockNode(new Func(name, args, async))\n    if (funcBody) this.code(funcBody).endFunc()\n    return this\n  }\n\n  // end function definition\n  endFunc(): CodeGen {\n    return this._endBlockNode(Func)\n  }\n\n  optimize(n = 1): void {\n    while (n-- > 0) {\n      this._root.optimizeNodes()\n      this._root.optimizeNames(this._root.names, this._constants)\n    }\n  }\n\n  private _leafNode(node: LeafNode): CodeGen {\n    this._currNode.nodes.push(node)\n    return this\n  }\n\n  private _blockNode(node: StartBlockNode): void {\n    this._currNode.nodes.push(node)\n    this._nodes.push(node)\n  }\n\n  private _endBlockNode(N1: EndBlockNodeType, N2?: EndBlockNodeType): CodeGen {\n    const n = this._currNode\n    if (n instanceof N1 || (N2 && n instanceof N2)) {\n      this._nodes.pop()\n      return this\n    }\n    throw new Error(`CodeGen: not in block \"${N2 ? `${N1.kind}/${N2.kind}` : N1.kind}\"`)\n  }\n\n  private _elseNode(node: If | Else): CodeGen {\n    const n = this._currNode\n    if (!(n instanceof If)) {\n      throw new Error('CodeGen: \"else\" without \"if\"')\n    }\n    this._currNode = n.else = node\n    return this\n  }\n\n  private get _root(): Root {\n    return this._nodes[0] as Root\n  }\n\n  private get _currNode(): ParentNode {\n    const ns = this._nodes\n    return ns[ns.length - 1]\n  }\n\n  private set _currNode(node: ParentNode) {\n    const ns = this._nodes\n    ns[ns.length - 1] = node\n  }\n\n  // get nodeCount(): number {\n  //   return this._root.count\n  // }\n}\n\nfunction addNames(names: UsedNames, from: UsedNames): UsedNames {\n  for (const n in from) names[n] = (names[n] || 0) + (from[n] || 0)\n  return names\n}\n\nfunction addExprNames(names: UsedNames, from: SafeExpr): UsedNames {\n  return from instanceof _CodeOrName ? addNames(names, from.names) : names\n}\n\nfunction optimizeExpr<T extends SafeExpr | Code>(expr: T, names: UsedNames, constants: Constants): T\nfunction optimizeExpr(expr: SafeExpr, names: UsedNames, constants: Constants): SafeExpr {\n  if (expr instanceof Name) return replaceName(expr)\n  if (!canOptimize(expr)) return expr\n  return new _Code(\n    expr._items.reduce((items: CodeItem[], c: SafeExpr | string) => {\n      if (c instanceof Name) c = replaceName(c)\n      if (c instanceof _Code) items.push(...c._items)\n      else items.push(c)\n      return items\n    }, [])\n  )\n\n  function replaceName(n: Name): SafeExpr {\n    const c = constants[n.str]\n    if (c === undefined || names[n.str] !== 1) return n\n    delete names[n.str]\n    return c\n  }\n\n  function canOptimize(e: SafeExpr): e is _Code {\n    return (\n      e instanceof _Code &&\n      e._items.some(\n        (c) => c instanceof Name && names[c.str] === 1 && constants[c.str] !== undefined\n      )\n    )\n  }\n}\n\nfunction subtractNames(names: UsedNames, from: UsedNames): void {\n  for (const n in from) names[n] = (names[n] || 0) - (from[n] || 0)\n}\n\nexport function not<T extends Code | SafeExpr>(x: T): T\nexport function not(x: Code | SafeExpr): Code | SafeExpr {\n  return typeof x == \"boolean\" || typeof x == \"number\" || x === null ? !x : _`!${par(x)}`\n}\n\nconst andCode = mappend(operators.AND)\n\n// boolean AND (&&) expression with the passed arguments\nexport function and(...args: Code[]): Code {\n  return args.reduce(andCode)\n}\n\nconst orCode = mappend(operators.OR)\n\n// boolean OR (||) expression with the passed arguments\nexport function or(...args: Code[]): Code {\n  return args.reduce(orCode)\n}\n\ntype MAppend = (x: Code, y: Code) => Code\n\nfunction mappend(op: Code): MAppend {\n  return (x, y) => (x === nil ? y : y === nil ? x : _`${par(x)} ${op} ${par(y)}`)\n}\n\nfunction par(x: Code): Code {\n  return x instanceof Name ? x : _`(${x})`\n}\n","import type {AnySchema, EvaluatedProperties, EvaluatedItems} from \"../types\"\nimport type {SchemaCxt, SchemaObjCxt} from \".\"\nimport {_, getProperty, Code, Name, CodeGen} from \"./codegen\"\nimport {_Code} from \"./codegen/code\"\nimport type {Rule, ValidationRules} from \"./rules\"\n\n// TODO refactor to use Set\nexport function toHash<T extends string = string>(arr: T[]): {[K in T]?: true} {\n  const hash: {[K in T]?: true} = {}\n  for (const item of arr) hash[item] = true\n  return hash\n}\n\nexport function alwaysValidSchema(it: SchemaCxt, schema: AnySchema): boolean | void {\n  if (typeof schema == \"boolean\") return schema\n  if (Object.keys(schema).length === 0) return true\n  checkUnknownRules(it, schema)\n  return !schemaHasRules(schema, it.self.RULES.all)\n}\n\nexport function checkUnknownRules(it: SchemaCxt, schema: AnySchema = it.schema): void {\n  const {opts, self} = it\n  if (!opts.strictSchema) return\n  if (typeof schema === \"boolean\") return\n  const rules = self.RULES.keywords\n  for (const key in schema) {\n    if (!rules[key]) checkStrictMode(it, `unknown keyword: \"${key}\"`)\n  }\n}\n\nexport function schemaHasRules(\n  schema: AnySchema,\n  rules: {[Key in string]?: boolean | Rule}\n): boolean {\n  if (typeof schema == \"boolean\") return !schema\n  for (const key in schema) if (rules[key]) return true\n  return false\n}\n\nexport function schemaHasRulesButRef(schema: AnySchema, RULES: ValidationRules): boolean {\n  if (typeof schema == \"boolean\") return !schema\n  for (const key in schema) if (key !== \"$ref\" && RULES.all[key]) return true\n  return false\n}\n\nexport function schemaRefOrVal(\n  {topSchemaRef, schemaPath}: SchemaObjCxt,\n  schema: unknown,\n  keyword: string,\n  $data?: string | false\n): Code | number | boolean {\n  if (!$data) {\n    if (typeof schema == \"number\" || typeof schema == \"boolean\") return schema\n    if (typeof schema == \"string\") return _`${schema}`\n  }\n  return _`${topSchemaRef}${schemaPath}${getProperty(keyword)}`\n}\n\nexport function unescapeFragment(str: string): string {\n  return unescapeJsonPointer(decodeURIComponent(str))\n}\n\nexport function escapeFragment(str: string | number): string {\n  return encodeURIComponent(escapeJsonPointer(str))\n}\n\nexport function escapeJsonPointer(str: string | number): string {\n  if (typeof str == \"number\") return `${str}`\n  return str.replace(/~/g, \"~0\").replace(/\\//g, \"~1\")\n}\n\nexport function unescapeJsonPointer(str: string): string {\n  return str.replace(/~1/g, \"/\").replace(/~0/g, \"~\")\n}\n\nexport function eachItem<T>(xs: T | T[], f: (x: T) => void): void {\n  if (Array.isArray(xs)) {\n    for (const x of xs) f(x)\n  } else {\n    f(xs)\n  }\n}\n\ntype SomeEvaluated = EvaluatedProperties | EvaluatedItems\n\ntype MergeEvaluatedFunc<T extends SomeEvaluated> = (\n  gen: CodeGen,\n  from: Name | T,\n  to: Name | Exclude<T, true> | undefined,\n  toName?: typeof Name\n) => Name | T\n\ninterface MakeMergeFuncArgs<T extends SomeEvaluated> {\n  mergeNames: (gen: CodeGen, from: Name, to: Name) => void\n  mergeToName: (gen: CodeGen, from: T, to: Name) => void\n  mergeValues: (from: T, to: Exclude<T, true>) => T\n  resultToName: (gen: CodeGen, res?: T) => Name\n}\n\nfunction makeMergeEvaluated<T extends SomeEvaluated>({\n  mergeNames,\n  mergeToName,\n  mergeValues,\n  resultToName,\n}: MakeMergeFuncArgs<T>): MergeEvaluatedFunc<T> {\n  return (gen, from, to, toName) => {\n    const res =\n      to === undefined\n        ? from\n        : to instanceof Name\n        ? (from instanceof Name ? mergeNames(gen, from, to) : mergeToName(gen, from, to), to)\n        : from instanceof Name\n        ? (mergeToName(gen, to, from), from)\n        : mergeValues(from, to)\n    return toName === Name && !(res instanceof Name) ? resultToName(gen, res) : res\n  }\n}\n\ninterface MergeEvaluated {\n  props: MergeEvaluatedFunc<EvaluatedProperties>\n  items: MergeEvaluatedFunc<EvaluatedItems>\n}\n\nexport const mergeEvaluated: MergeEvaluated = {\n  props: makeMergeEvaluated({\n    mergeNames: (gen, from, to) =>\n      gen.if(_`${to} !== true && ${from} !== undefined`, () => {\n        gen.if(\n          _`${from} === true`,\n          () => gen.assign(to, true),\n          () => gen.assign(to, _`${to} || {}`).code(_`Object.assign(${to}, ${from})`)\n        )\n      }),\n    mergeToName: (gen, from, to) =>\n      gen.if(_`${to} !== true`, () => {\n        if (from === true) {\n          gen.assign(to, true)\n        } else {\n          gen.assign(to, _`${to} || {}`)\n          setEvaluated(gen, to, from)\n        }\n      }),\n    mergeValues: (from, to) => (from === true ? true : {...from, ...to}),\n    resultToName: evaluatedPropsToName,\n  }),\n  items: makeMergeEvaluated({\n    mergeNames: (gen, from, to) =>\n      gen.if(_`${to} !== true && ${from} !== undefined`, () =>\n        gen.assign(to, _`${from} === true ? true : ${to} > ${from} ? ${to} : ${from}`)\n      ),\n    mergeToName: (gen, from, to) =>\n      gen.if(_`${to} !== true`, () =>\n        gen.assign(to, from === true ? true : _`${to} > ${from} ? ${to} : ${from}`)\n      ),\n    mergeValues: (from, to) => (from === true ? true : Math.max(from, to)),\n    resultToName: (gen, items) => gen.var(\"items\", items),\n  }),\n}\n\nexport function evaluatedPropsToName(gen: CodeGen, ps?: EvaluatedProperties): Name {\n  if (ps === true) return gen.var(\"props\", true)\n  const props = gen.var(\"props\", _`{}`)\n  if (ps !== undefined) setEvaluated(gen, props, ps)\n  return props\n}\n\nexport function setEvaluated(gen: CodeGen, props: Name, ps: {[K in string]?: true}): void {\n  Object.keys(ps).forEach((p) => gen.assign(_`${props}${getProperty(p)}`, true))\n}\n\nconst snippets: {[S in string]?: _Code} = {}\n\nexport function useFunc(gen: CodeGen, f: {code: string}): Name {\n  return gen.scopeValue(\"func\", {\n    ref: f,\n    code: snippets[f.code] || (snippets[f.code] = new _Code(f.code)),\n  })\n}\n\nexport enum Type {\n  Num,\n  Str,\n}\n\nexport function getErrorPath(\n  dataProp: Name | string | number,\n  dataPropType?: Type,\n  jsPropertySyntax?: boolean\n): Code | string {\n  // let path\n  if (dataProp instanceof Name) {\n    const isNumber = dataPropType === Type.Num\n    return jsPropertySyntax\n      ? isNumber\n        ? _`\"[\" + ${dataProp} + \"]\"`\n        : _`\"['\" + ${dataProp} + \"']\"`\n      : isNumber\n      ? _`\"/\" + ${dataProp}`\n      : _`\"/\" + ${dataProp}.replace(/~/g, \"~0\").replace(/\\\\//g, \"~1\")` // TODO maybe use global escapePointer\n  }\n  return jsPropertySyntax ? getProperty(dataProp).toString() : \"/\" + escapeJsonPointer(dataProp)\n}\n\nexport function checkStrictMode(\n  it: SchemaCxt,\n  msg: string,\n  mode: boolean | \"log\" = it.opts.strictSchema\n): void {\n  if (!mode) return\n  msg = `strict mode: ${msg}`\n  if (mode === true) throw new Error(msg)\n  it.self.logger.warn(msg)\n}\n","import {Name} from \"./codegen\"\n\nconst names = {\n  // validation function arguments\n  data: new Name(\"data\"), // data passed to validation function\n  // args passed from referencing schema\n  valCxt: new Name(\"valCxt\"), // validation/data context - should not be used directly, it is destructured to the names below\n  instancePath: new Name(\"instancePath\"),\n  parentData: new Name(\"parentData\"),\n  parentDataProperty: new Name(\"parentDataProperty\"),\n  rootData: new Name(\"rootData\"), // root data - same as the data passed to the first/top validation function\n  dynamicAnchors: new Name(\"dynamicAnchors\"), // used to support recursiveRef and dynamicRef\n  // function scoped variables\n  vErrors: new Name(\"vErrors\"), // null or array of validation errors\n  errors: new Name(\"errors\"), // counter of validation errors\n  this: new Name(\"this\"),\n  // \"globals\"\n  self: new Name(\"self\"),\n  scope: new Name(\"scope\"),\n  // JTD serialize/parse name for JSON string and position\n  json: new Name(\"json\"),\n  jsonPos: new Name(\"jsonPos\"),\n  jsonLen: new Name(\"jsonLen\"),\n  jsonPart: new Name(\"jsonPart\"),\n}\n\nexport default names\n","import type {KeywordErrorCxt, KeywordErrorDefinition} from \"../types\"\nimport type {SchemaCxt} from \"./index\"\nimport {CodeGen, _, str, strConcat, Code, Name} from \"./codegen\"\nimport {SafeExpr} from \"./codegen/code\"\nimport {getErrorPath, Type} from \"./util\"\nimport N from \"./names\"\n\nexport const keywordError: KeywordErrorDefinition = {\n  message: ({keyword}) => str`must pass \"${keyword}\" keyword validation`,\n}\n\nexport const keyword$DataError: KeywordErrorDefinition = {\n  message: ({keyword, schemaType}) =>\n    schemaType\n      ? str`\"${keyword}\" keyword must be ${schemaType} ($data)`\n      : str`\"${keyword}\" keyword is invalid ($data)`,\n}\n\nexport interface ErrorPaths {\n  instancePath?: Code\n  schemaPath?: string\n  parentSchema?: boolean\n}\n\nexport function reportError(\n  cxt: KeywordErrorCxt,\n  error: KeywordErrorDefinition = keywordError,\n  errorPaths?: ErrorPaths,\n  overrideAllErrors?: boolean\n): void {\n  const {it} = cxt\n  const {gen, compositeRule, allErrors} = it\n  const errObj = errorObjectCode(cxt, error, errorPaths)\n  if (overrideAllErrors ?? (compositeRule || allErrors)) {\n    addError(gen, errObj)\n  } else {\n    returnErrors(it, _`[${errObj}]`)\n  }\n}\n\nexport function reportExtraError(\n  cxt: KeywordErrorCxt,\n  error: KeywordErrorDefinition = keywordError,\n  errorPaths?: ErrorPaths\n): void {\n  const {it} = cxt\n  const {gen, compositeRule, allErrors} = it\n  const errObj = errorObjectCode(cxt, error, errorPaths)\n  addError(gen, errObj)\n  if (!(compositeRule || allErrors)) {\n    returnErrors(it, N.vErrors)\n  }\n}\n\nexport function resetErrorsCount(gen: CodeGen, errsCount: Name): void {\n  gen.assign(N.errors, errsCount)\n  gen.if(_`${N.vErrors} !== null`, () =>\n    gen.if(\n      errsCount,\n      () => gen.assign(_`${N.vErrors}.length`, errsCount),\n      () => gen.assign(N.vErrors, null)\n    )\n  )\n}\n\nexport function extendErrors({\n  gen,\n  keyword,\n  schemaValue,\n  data,\n  errsCount,\n  it,\n}: KeywordErrorCxt): void {\n  /* istanbul ignore if */\n  if (errsCount === undefined) throw new Error(\"ajv implementation error\")\n  const err = gen.name(\"err\")\n  gen.forRange(\"i\", errsCount, N.errors, (i) => {\n    gen.const(err, _`${N.vErrors}[${i}]`)\n    gen.if(_`${err}.instancePath === undefined`, () =>\n      gen.assign(_`${err}.instancePath`, strConcat(N.instancePath, it.errorPath))\n    )\n    gen.assign(_`${err}.schemaPath`, str`${it.errSchemaPath}/${keyword}`)\n    if (it.opts.verbose) {\n      gen.assign(_`${err}.schema`, schemaValue)\n      gen.assign(_`${err}.data`, data)\n    }\n  })\n}\n\nfunction addError(gen: CodeGen, errObj: Code): void {\n  const err = gen.const(\"err\", errObj)\n  gen.if(\n    _`${N.vErrors} === null`,\n    () => gen.assign(N.vErrors, _`[${err}]`),\n    _`${N.vErrors}.push(${err})`\n  )\n  gen.code(_`${N.errors}++`)\n}\n\nfunction returnErrors(it: SchemaCxt, errs: Code): void {\n  const {gen, validateName, schemaEnv} = it\n  if (schemaEnv.$async) {\n    gen.throw(_`new ${it.ValidationError as Name}(${errs})`)\n  } else {\n    gen.assign(_`${validateName}.errors`, errs)\n    gen.return(false)\n  }\n}\n\nconst E = {\n  keyword: new Name(\"keyword\"),\n  schemaPath: new Name(\"schemaPath\"), // also used in JTD errors\n  params: new Name(\"params\"),\n  propertyName: new Name(\"propertyName\"),\n  message: new Name(\"message\"),\n  schema: new Name(\"schema\"),\n  parentSchema: new Name(\"parentSchema\"),\n}\n\nfunction errorObjectCode(\n  cxt: KeywordErrorCxt,\n  error: KeywordErrorDefinition,\n  errorPaths?: ErrorPaths\n): Code {\n  const {createErrors} = cxt.it\n  if (createErrors === false) return _`{}`\n  return errorObject(cxt, error, errorPaths)\n}\n\nfunction errorObject(\n  cxt: KeywordErrorCxt,\n  error: KeywordErrorDefinition,\n  errorPaths: ErrorPaths = {}\n): Code {\n  const {gen, it} = cxt\n  const keyValues: [Name, SafeExpr | string][] = [\n    errorInstancePath(it, errorPaths),\n    errorSchemaPath(cxt, errorPaths),\n  ]\n  extraErrorProps(cxt, error, keyValues)\n  return gen.object(...keyValues)\n}\n\nfunction errorInstancePath({errorPath}: SchemaCxt, {instancePath}: ErrorPaths): [Name, Code] {\n  const instPath = instancePath\n    ? str`${errorPath}${getErrorPath(instancePath, Type.Str)}`\n    : errorPath\n  return [N.instancePath, strConcat(N.instancePath, instPath)]\n}\n\nfunction errorSchemaPath(\n  {keyword, it: {errSchemaPath}}: KeywordErrorCxt,\n  {schemaPath, parentSchema}: ErrorPaths\n): [Name, string | Code] {\n  let schPath = parentSchema ? errSchemaPath : str`${errSchemaPath}/${keyword}`\n  if (schemaPath) {\n    schPath = str`${schPath}${getErrorPath(schemaPath, Type.Str)}`\n  }\n  return [E.schemaPath, schPath]\n}\n\nfunction extraErrorProps(\n  cxt: KeywordErrorCxt,\n  {params, message}: KeywordErrorDefinition,\n  keyValues: [Name, SafeExpr | string][]\n): void {\n  const {keyword, data, schemaValue, it} = cxt\n  const {opts, propertyName, topSchemaRef, schemaPath} = it\n  keyValues.push(\n    [E.keyword, keyword],\n    [E.params, typeof params == \"function\" ? params(cxt) : params || _`{}`]\n  )\n  if (opts.messages) {\n    keyValues.push([E.message, typeof message == \"function\" ? message(cxt) : message])\n  }\n  if (opts.verbose) {\n    keyValues.push(\n      [E.schema, schemaValue],\n      [E.parentSchema, _`${topSchemaRef}${schemaPath}`],\n      [N.data, data]\n    )\n  }\n  if (propertyName) keyValues.push([E.propertyName, propertyName])\n}\n","import type {KeywordErrorDefinition, KeywordErrorCxt} from \"../../types\"\nimport type {SchemaCxt} from \"..\"\nimport {reportError} from \"../errors\"\nimport {_, Name} from \"../codegen\"\nimport N from \"../names\"\n\nconst boolError: KeywordErrorDefinition = {\n  message: \"boolean schema is false\",\n}\n\nexport function topBoolOrEmptySchema(it: SchemaCxt): void {\n  const {gen, schema, validateName} = it\n  if (schema === false) {\n    falseSchemaError(it, false)\n  } else if (typeof schema == \"object\" && schema.$async === true) {\n    gen.return(N.data)\n  } else {\n    gen.assign(_`${validateName}.errors`, null)\n    gen.return(true)\n  }\n}\n\nexport function boolOrEmptySchema(it: SchemaCxt, valid: Name): void {\n  const {gen, schema} = it\n  if (schema === false) {\n    gen.var(valid, false) // TODO var\n    falseSchemaError(it)\n  } else {\n    gen.var(valid, true) // TODO var\n  }\n}\n\nfunction falseSchemaError(it: SchemaCxt, overrideAllErrors?: boolean): void {\n  const {gen, data} = it\n  // TODO maybe some other interface should be used for non-keyword validation errors...\n  const cxt: KeywordErrorCxt = {\n    gen,\n    keyword: \"false schema\",\n    data,\n    schema: false,\n    schemaCode: false,\n    schemaValue: false,\n    params: {},\n    it,\n  }\n  reportError(cxt, boolError, undefined, overrideAllErrors)\n}\n","import type {AddedKeywordDefinition} from \"../types\"\n\nconst _jsonTypes = [\"string\", \"number\", \"integer\", \"boolean\", \"null\", \"object\", \"array\"] as const\n\nexport type JSONType = (typeof _jsonTypes)[number]\n\nconst jsonTypes: Set<string> = new Set(_jsonTypes)\n\nexport function isJSONType(x: unknown): x is JSONType {\n  return typeof x == \"string\" && jsonTypes.has(x)\n}\n\ntype ValidationTypes = {\n  [K in JSONType]: boolean | RuleGroup | undefined\n}\n\nexport interface ValidationRules {\n  rules: RuleGroup[]\n  post: RuleGroup\n  all: {[Key in string]?: boolean | Rule} // rules that have to be validated\n  keywords: {[Key in string]?: boolean} // all known keywords (superset of \"all\")\n  types: ValidationTypes\n}\n\nexport interface RuleGroup {\n  type?: JSONType\n  rules: Rule[]\n}\n\n// This interface wraps KeywordDefinition because definition can have multiple keywords\nexport interface Rule {\n  keyword: string\n  definition: AddedKeywordDefinition\n}\n\nexport function getRules(): ValidationRules {\n  const groups: Record<\"number\" | \"string\" | \"array\" | \"object\", RuleGroup> = {\n    number: {type: \"number\", rules: []},\n    string: {type: \"string\", rules: []},\n    array: {type: \"array\", rules: []},\n    object: {type: \"object\", rules: []},\n  }\n  return {\n    types: {...groups, integer: true, boolean: true, null: true},\n    rules: [{rules: []}, groups.number, groups.string, groups.array, groups.object],\n    post: {rules: []},\n    all: {},\n    keywords: {},\n  }\n}\n","import type {AnySchemaObject} from \"../../types\"\nimport type {SchemaObjCxt} from \"..\"\nimport type {JSONType, RuleGroup, Rule} from \"../rules\"\n\nexport function schemaHasRulesForType(\n  {schema, self}: SchemaObjCxt,\n  type: JSONType\n): boolean | undefined {\n  const group = self.RULES.types[type]\n  return group && group !== true && shouldUseGroup(schema, group)\n}\n\nexport function shouldUseGroup(schema: AnySchemaObject, group: RuleGroup): boolean {\n  return group.rules.some((rule) => shouldUseRule(schema, rule))\n}\n\nexport function shouldUseRule(schema: AnySchemaObject, rule: Rule): boolean | undefined {\n  return (\n    schema[rule.keyword] !== undefined ||\n    rule.definition.implements?.some((kwd) => schema[kwd] !== undefined)\n  )\n}\n","import type {\n  KeywordErrorDefinition,\n  KeywordErrorCxt,\n  ErrorObject,\n  AnySchemaObject,\n} from \"../../types\"\nimport type {SchemaObjCxt} from \"..\"\nimport {isJSONType, JSONType} from \"../rules\"\nimport {schemaHasRulesForType} from \"./applicability\"\nimport {reportError} from \"../errors\"\nimport {_, nil, and, not, operators, Code, Name} from \"../codegen\"\nimport {toHash, schemaRefOrVal} from \"../util\"\n\nexport enum DataType {\n  Correct,\n  Wrong,\n}\n\nexport function getSchemaTypes(schema: AnySchemaObject): JSONType[] {\n  const types = getJSONTypes(schema.type)\n  const hasNull = types.includes(\"null\")\n  if (hasNull) {\n    if (schema.nullable === false) throw new Error(\"type: null contradicts nullable: false\")\n  } else {\n    if (!types.length && schema.nullable !== undefined) {\n      throw new Error('\"nullable\" cannot be used without \"type\"')\n    }\n    if (schema.nullable === true) types.push(\"null\")\n  }\n  return types\n}\n\n// eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\nexport function getJSONTypes(ts: unknown | unknown[]): JSONType[] {\n  const types: unknown[] = Array.isArray(ts) ? ts : ts ? [ts] : []\n  if (types.every(isJSONType)) return types\n  throw new Error(\"type must be JSONType or JSONType[]: \" + types.join(\",\"))\n}\n\nexport function coerceAndCheckDataType(it: SchemaObjCxt, types: JSONType[]): boolean {\n  const {gen, data, opts} = it\n  const coerceTo = coerceToTypes(types, opts.coerceTypes)\n  const checkTypes =\n    types.length > 0 &&\n    !(coerceTo.length === 0 && types.length === 1 && schemaHasRulesForType(it, types[0]))\n  if (checkTypes) {\n    const wrongType = checkDataTypes(types, data, opts.strictNumbers, DataType.Wrong)\n    gen.if(wrongType, () => {\n      if (coerceTo.length) coerceData(it, types, coerceTo)\n      else reportTypeError(it)\n    })\n  }\n  return checkTypes\n}\n\nconst COERCIBLE: Set<JSONType> = new Set([\"string\", \"number\", \"integer\", \"boolean\", \"null\"])\nfunction coerceToTypes(types: JSONType[], coerceTypes?: boolean | \"array\"): JSONType[] {\n  return coerceTypes\n    ? types.filter((t) => COERCIBLE.has(t) || (coerceTypes === \"array\" && t === \"array\"))\n    : []\n}\n\nfunction coerceData(it: SchemaObjCxt, types: JSONType[], coerceTo: JSONType[]): void {\n  const {gen, data, opts} = it\n  const dataType = gen.let(\"dataType\", _`typeof ${data}`)\n  const coerced = gen.let(\"coerced\", _`undefined`)\n  if (opts.coerceTypes === \"array\") {\n    gen.if(_`${dataType} == 'object' && Array.isArray(${data}) && ${data}.length == 1`, () =>\n      gen\n        .assign(data, _`${data}[0]`)\n        .assign(dataType, _`typeof ${data}`)\n        .if(checkDataTypes(types, data, opts.strictNumbers), () => gen.assign(coerced, data))\n    )\n  }\n  gen.if(_`${coerced} !== undefined`)\n  for (const t of coerceTo) {\n    if (COERCIBLE.has(t) || (t === \"array\" && opts.coerceTypes === \"array\")) {\n      coerceSpecificType(t)\n    }\n  }\n  gen.else()\n  reportTypeError(it)\n  gen.endIf()\n\n  gen.if(_`${coerced} !== undefined`, () => {\n    gen.assign(data, coerced)\n    assignParentData(it, coerced)\n  })\n\n  function coerceSpecificType(t: string): void {\n    switch (t) {\n      case \"string\":\n        gen\n          .elseIf(_`${dataType} == \"number\" || ${dataType} == \"boolean\"`)\n          .assign(coerced, _`\"\" + ${data}`)\n          .elseIf(_`${data} === null`)\n          .assign(coerced, _`\"\"`)\n        return\n      case \"number\":\n        gen\n          .elseIf(\n            _`${dataType} == \"boolean\" || ${data} === null\n              || (${dataType} == \"string\" && ${data} && ${data} == +${data})`\n          )\n          .assign(coerced, _`+${data}`)\n        return\n      case \"integer\":\n        gen\n          .elseIf(\n            _`${dataType} === \"boolean\" || ${data} === null\n              || (${dataType} === \"string\" && ${data} && ${data} == +${data} && !(${data} % 1))`\n          )\n          .assign(coerced, _`+${data}`)\n        return\n      case \"boolean\":\n        gen\n          .elseIf(_`${data} === \"false\" || ${data} === 0 || ${data} === null`)\n          .assign(coerced, false)\n          .elseIf(_`${data} === \"true\" || ${data} === 1`)\n          .assign(coerced, true)\n        return\n      case \"null\":\n        gen.elseIf(_`${data} === \"\" || ${data} === 0 || ${data} === false`)\n        gen.assign(coerced, null)\n        return\n\n      case \"array\":\n        gen\n          .elseIf(\n            _`${dataType} === \"string\" || ${dataType} === \"number\"\n              || ${dataType} === \"boolean\" || ${data} === null`\n          )\n          .assign(coerced, _`[${data}]`)\n    }\n  }\n}\n\nfunction assignParentData({gen, parentData, parentDataProperty}: SchemaObjCxt, expr: Name): void {\n  // TODO use gen.property\n  gen.if(_`${parentData} !== undefined`, () =>\n    gen.assign(_`${parentData}[${parentDataProperty}]`, expr)\n  )\n}\n\nexport function checkDataType(\n  dataType: JSONType,\n  data: Name,\n  strictNums?: boolean | \"log\",\n  correct = DataType.Correct\n): Code {\n  const EQ = correct === DataType.Correct ? operators.EQ : operators.NEQ\n  let cond: Code\n  switch (dataType) {\n    case \"null\":\n      return _`${data} ${EQ} null`\n    case \"array\":\n      cond = _`Array.isArray(${data})`\n      break\n    case \"object\":\n      cond = _`${data} && typeof ${data} == \"object\" && !Array.isArray(${data})`\n      break\n    case \"integer\":\n      cond = numCond(_`!(${data} % 1) && !isNaN(${data})`)\n      break\n    case \"number\":\n      cond = numCond()\n      break\n    default:\n      return _`typeof ${data} ${EQ} ${dataType}`\n  }\n  return correct === DataType.Correct ? cond : not(cond)\n\n  function numCond(_cond: Code = nil): Code {\n    return and(_`typeof ${data} == \"number\"`, _cond, strictNums ? _`isFinite(${data})` : nil)\n  }\n}\n\nexport function checkDataTypes(\n  dataTypes: JSONType[],\n  data: Name,\n  strictNums?: boolean | \"log\",\n  correct?: DataType\n): Code {\n  if (dataTypes.length === 1) {\n    return checkDataType(dataTypes[0], data, strictNums, correct)\n  }\n  let cond: Code\n  const types = toHash(dataTypes)\n  if (types.array && types.object) {\n    const notObj = _`typeof ${data} != \"object\"`\n    cond = types.null ? notObj : _`!${data} || ${notObj}`\n    delete types.null\n    delete types.array\n    delete types.object\n  } else {\n    cond = nil\n  }\n  if (types.number) delete types.integer\n  for (const t in types) cond = and(cond, checkDataType(t as JSONType, data, strictNums, correct))\n  return cond\n}\n\nexport type TypeError = ErrorObject<\"type\", {type: string}>\n\nconst typeError: KeywordErrorDefinition = {\n  message: ({schema}) => `must be ${schema}`,\n  params: ({schema, schemaValue}) =>\n    typeof schema == \"string\" ? _`{type: ${schema}}` : _`{type: ${schemaValue}}`,\n}\n\nexport function reportTypeError(it: SchemaObjCxt): void {\n  const cxt = getTypeErrorContext(it)\n  reportError(cxt, typeError)\n}\n\nfunction getTypeErrorContext(it: SchemaObjCxt): KeywordErrorCxt {\n  const {gen, data, schema} = it\n  const schemaCode = schemaRefOrVal(it, schema, \"type\")\n  return {\n    gen,\n    keyword: \"type\",\n    data,\n    schema: schema.type,\n    schemaCode,\n    schemaValue: schemaCode,\n    parentSchema: schema,\n    params: {},\n    it,\n  }\n}\n","import type {SchemaObjCxt} from \"..\"\nimport {_, getProperty, stringify} from \"../codegen\"\nimport {checkStrictMode} from \"../util\"\n\nexport function assignDefaults(it: SchemaObjCxt, ty?: string): void {\n  const {properties, items} = it.schema\n  if (ty === \"object\" && properties) {\n    for (const key in properties) {\n      assignDefault(it, key, properties[key].default)\n    }\n  } else if (ty === \"array\" && Array.isArray(items)) {\n    items.forEach((sch, i: number) => assignDefault(it, i, sch.default))\n  }\n}\n\nfunction assignDefault(it: SchemaObjCxt, prop: string | number, defaultValue: unknown): void {\n  const {gen, compositeRule, data, opts} = it\n  if (defaultValue === undefined) return\n  const childData = _`${data}${getProperty(prop)}`\n  if (compositeRule) {\n    checkStrictMode(it, `default is ignored for: ${childData}`)\n    return\n  }\n\n  let condition = _`${childData} === undefined`\n  if (opts.useDefaults === \"empty\") {\n    condition = _`${condition} || ${childData} === null || ${childData} === \"\"`\n  }\n  // `${childData} === undefined` +\n  // (opts.useDefaults === \"empty\" ? ` || ${childData} === null || ${childData} === \"\"` : \"\")\n  gen.if(condition, _`${childData} = ${stringify(defaultValue)}`)\n}\n","import type {AnySchema, SchemaMap} from \"../types\"\nimport type {SchemaCxt} from \"../compile\"\nimport type {KeywordCxt} from \"../compile/validate\"\nimport {CodeGen, _, and, or, not, nil, strConcat, getProperty, Code, Name} from \"../compile/codegen\"\nimport {alwaysValidSchema, Type} from \"../compile/util\"\nimport N from \"../compile/names\"\nimport {useFunc} from \"../compile/util\"\nexport function checkReportMissingProp(cxt: KeywordCxt, prop: string): void {\n  const {gen, data, it} = cxt\n  gen.if(noPropertyInData(gen, data, prop, it.opts.ownProperties), () => {\n    cxt.setParams({missingProperty: _`${prop}`}, true)\n    cxt.error()\n  })\n}\n\nexport function checkMissingProp(\n  {gen, data, it: {opts}}: KeywordCxt,\n  properties: string[],\n  missing: Name\n): Code {\n  return or(\n    ...properties.map((prop) =>\n      and(noPropertyInData(gen, data, prop, opts.ownProperties), _`${missing} = ${prop}`)\n    )\n  )\n}\n\nexport function reportMissingProp(cxt: KeywordCxt, missing: Name): void {\n  cxt.setParams({missingProperty: missing}, true)\n  cxt.error()\n}\n\nexport function hasPropFunc(gen: CodeGen): Name {\n  return gen.scopeValue(\"func\", {\n    // eslint-disable-next-line @typescript-eslint/unbound-method\n    ref: Object.prototype.hasOwnProperty,\n    code: _`Object.prototype.hasOwnProperty`,\n  })\n}\n\nexport function isOwnProperty(gen: CodeGen, data: Name, property: Name | string): Code {\n  return _`${hasPropFunc(gen)}.call(${data}, ${property})`\n}\n\nexport function propertyInData(\n  gen: CodeGen,\n  data: Name,\n  property: Name | string,\n  ownProperties?: boolean\n): Code {\n  const cond = _`${data}${getProperty(property)} !== undefined`\n  return ownProperties ? _`${cond} && ${isOwnProperty(gen, data, property)}` : cond\n}\n\nexport function noPropertyInData(\n  gen: CodeGen,\n  data: Name,\n  property: Name | string,\n  ownProperties?: boolean\n): Code {\n  const cond = _`${data}${getProperty(property)} === undefined`\n  return ownProperties ? or(cond, not(isOwnProperty(gen, data, property))) : cond\n}\n\nexport function allSchemaProperties(schemaMap?: SchemaMap): string[] {\n  return schemaMap ? Object.keys(schemaMap).filter((p) => p !== \"__proto__\") : []\n}\n\nexport function schemaProperties(it: SchemaCxt, schemaMap: SchemaMap): string[] {\n  return allSchemaProperties(schemaMap).filter(\n    (p) => !alwaysValidSchema(it, schemaMap[p] as AnySchema)\n  )\n}\n\nexport function callValidateCode(\n  {schemaCode, data, it: {gen, topSchemaRef, schemaPath, errorPath}, it}: KeywordCxt,\n  func: Code,\n  context: Code,\n  passSchema?: boolean\n): Code {\n  const dataAndSchema = passSchema ? _`${schemaCode}, ${data}, ${topSchemaRef}${schemaPath}` : data\n  const valCxt: [Name, Code | number][] = [\n    [N.instancePath, strConcat(N.instancePath, errorPath)],\n    [N.parentData, it.parentData],\n    [N.parentDataProperty, it.parentDataProperty],\n    [N.rootData, N.rootData],\n  ]\n  if (it.opts.dynamicRef) valCxt.push([N.dynamicAnchors, N.dynamicAnchors])\n  const args = _`${dataAndSchema}, ${gen.object(...valCxt)}`\n  return context !== nil ? _`${func}.call(${context}, ${args})` : _`${func}(${args})`\n}\n\nconst newRegExp = _`new RegExp`\n\nexport function usePattern({gen, it: {opts}}: KeywordCxt, pattern: string): Name {\n  const u = opts.unicodeRegExp ? \"u\" : \"\"\n  const {regExp} = opts.code\n  const rx = regExp(pattern, u)\n\n  return gen.scopeValue(\"pattern\", {\n    key: rx.toString(),\n    ref: rx,\n    code: _`${regExp.code === \"new RegExp\" ? newRegExp : useFunc(gen, regExp)}(${pattern}, ${u})`,\n  })\n}\n\nexport function validateArray(cxt: KeywordCxt): Name {\n  const {gen, data, keyword, it} = cxt\n  const valid = gen.name(\"valid\")\n  if (it.allErrors) {\n    const validArr = gen.let(\"valid\", true)\n    validateItems(() => gen.assign(validArr, false))\n    return validArr\n  }\n  gen.var(valid, true)\n  validateItems(() => gen.break())\n  return valid\n\n  function validateItems(notValid: () => void): void {\n    const len = gen.const(\"len\", _`${data}.length`)\n    gen.forRange(\"i\", 0, len, (i) => {\n      cxt.subschema(\n        {\n          keyword,\n          dataProp: i,\n          dataPropType: Type.Num,\n        },\n        valid\n      )\n      gen.if(not(valid), notValid)\n    })\n  }\n}\n\nexport function validateUnion(cxt: KeywordCxt): void {\n  const {gen, schema, keyword, it} = cxt\n  /* istanbul ignore if */\n  if (!Array.isArray(schema)) throw new Error(\"ajv implementation error\")\n  const alwaysValid = schema.some((sch: AnySchema) => alwaysValidSchema(it, sch))\n  if (alwaysValid && !it.opts.unevaluated) return\n\n  const valid = gen.let(\"valid\", false)\n  const schValid = gen.name(\"_valid\")\n\n  gen.block(() =>\n    schema.forEach((_sch: AnySchema, i: number) => {\n      const schCxt = cxt.subschema(\n        {\n          keyword,\n          schemaProp: i,\n          compositeRule: true,\n        },\n        schValid\n      )\n      gen.assign(valid, _`${valid} || ${schValid}`)\n      const merged = cxt.mergeValidEvaluated(schCxt, schValid)\n      // can short-circuit if `unevaluatedProperties/Items` not supported (opts.unevaluated !== true)\n      // or if all properties and items were evaluated (it.props === true && it.items === true)\n      if (!merged) gen.if(not(valid))\n    })\n  )\n\n  cxt.result(\n    valid,\n    () => cxt.reset(),\n    () => cxt.error(true)\n  )\n}\n","import type {KeywordCxt} from \".\"\nimport type {\n  AnySchema,\n  SchemaValidateFunction,\n  AnyValidateFunction,\n  AddedKeywordDefinition,\n  MacroKeywordDefinition,\n  FuncKeywordDefinition,\n} from \"../../types\"\nimport type {SchemaObjCxt} from \"..\"\nimport {_, nil, not, stringify, Code, Name, CodeGen} from \"../codegen\"\nimport N from \"../names\"\nimport type {JSONType} from \"../rules\"\nimport {callValidateCode} from \"../../vocabularies/code\"\nimport {extendErrors} from \"../errors\"\n\ntype KeywordCompilationResult = AnySchema | SchemaValidateFunction | AnyValidateFunction\n\nexport function macroKeywordCode(cxt: KeywordCxt, def: MacroKeywordDefinition): void {\n  const {gen, keyword, schema, parentSchema, it} = cxt\n  const macroSchema = def.macro.call(it.self, schema, parentSchema, it)\n  const schemaRef = useKeyword(gen, keyword, macroSchema)\n  if (it.opts.validateSchema !== false) it.self.validateSchema(macroSchema, true)\n\n  const valid = gen.name(\"valid\")\n  cxt.subschema(\n    {\n      schema: macroSchema,\n      schemaPath: nil,\n      errSchemaPath: `${it.errSchemaPath}/${keyword}`,\n      topSchemaRef: schemaRef,\n      compositeRule: true,\n    },\n    valid\n  )\n  cxt.pass(valid, () => cxt.error(true))\n}\n\nexport function funcKeywordCode(cxt: KeywordCxt, def: FuncKeywordDefinition): void {\n  const {gen, keyword, schema, parentSchema, $data, it} = cxt\n  checkAsyncKeyword(it, def)\n  const validate =\n    !$data && def.compile ? def.compile.call(it.self, schema, parentSchema, it) : def.validate\n  const validateRef = useKeyword(gen, keyword, validate)\n  const valid = gen.let(\"valid\")\n  cxt.block$data(valid, validateKeyword)\n  cxt.ok(def.valid ?? valid)\n\n  function validateKeyword(): void {\n    if (def.errors === false) {\n      assignValid()\n      if (def.modifying) modifyData(cxt)\n      reportErrs(() => cxt.error())\n    } else {\n      const ruleErrs = def.async ? validateAsync() : validateSync()\n      if (def.modifying) modifyData(cxt)\n      reportErrs(() => addErrs(cxt, ruleErrs))\n    }\n  }\n\n  function validateAsync(): Name {\n    const ruleErrs = gen.let(\"ruleErrs\", null)\n    gen.try(\n      () => assignValid(_`await `),\n      (e) =>\n        gen.assign(valid, false).if(\n          _`${e} instanceof ${it.ValidationError as Name}`,\n          () => gen.assign(ruleErrs, _`${e}.errors`),\n          () => gen.throw(e)\n        )\n    )\n    return ruleErrs\n  }\n\n  function validateSync(): Code {\n    const validateErrs = _`${validateRef}.errors`\n    gen.assign(validateErrs, null)\n    assignValid(nil)\n    return validateErrs\n  }\n\n  function assignValid(_await: Code = def.async ? _`await ` : nil): void {\n    const passCxt = it.opts.passContext ? N.this : N.self\n    const passSchema = !((\"compile\" in def && !$data) || def.schema === false)\n    gen.assign(\n      valid,\n      _`${_await}${callValidateCode(cxt, validateRef, passCxt, passSchema)}`,\n      def.modifying\n    )\n  }\n\n  function reportErrs(errors: () => void): void {\n    gen.if(not(def.valid ?? valid), errors)\n  }\n}\n\nfunction modifyData(cxt: KeywordCxt): void {\n  const {gen, data, it} = cxt\n  gen.if(it.parentData, () => gen.assign(data, _`${it.parentData}[${it.parentDataProperty}]`))\n}\n\nfunction addErrs(cxt: KeywordCxt, errs: Code): void {\n  const {gen} = cxt\n  gen.if(\n    _`Array.isArray(${errs})`,\n    () => {\n      gen\n        .assign(N.vErrors, _`${N.vErrors} === null ? ${errs} : ${N.vErrors}.concat(${errs})`)\n        .assign(N.errors, _`${N.vErrors}.length`)\n      extendErrors(cxt)\n    },\n    () => cxt.error()\n  )\n}\n\nfunction checkAsyncKeyword({schemaEnv}: SchemaObjCxt, def: FuncKeywordDefinition): void {\n  if (def.async && !schemaEnv.$async) throw new Error(\"async keyword in sync schema\")\n}\n\nfunction useKeyword(gen: CodeGen, keyword: string, result?: KeywordCompilationResult): Name {\n  if (result === undefined) throw new Error(`keyword \"${keyword}\" failed to compile`)\n  return gen.scopeValue(\n    \"keyword\",\n    typeof result == \"function\" ? {ref: result} : {ref: result, code: stringify(result)}\n  )\n}\n\nexport function validSchemaType(\n  schema: unknown,\n  schemaType: JSONType[],\n  allowUndefined = false\n): boolean {\n  // TODO add tests\n  return (\n    !schemaType.length ||\n    schemaType.some((st) =>\n      st === \"array\"\n        ? Array.isArray(schema)\n        : st === \"object\"\n        ? schema && typeof schema == \"object\" && !Array.isArray(schema)\n        : typeof schema == st || (allowUndefined && typeof schema == \"undefined\")\n    )\n  )\n}\n\nexport function validateKeywordUsage(\n  {schema, opts, self, errSchemaPath}: SchemaObjCxt,\n  def: AddedKeywordDefinition,\n  keyword: string\n): void {\n  /* istanbul ignore if */\n  if (Array.isArray(def.keyword) ? !def.keyword.includes(keyword) : def.keyword !== keyword) {\n    throw new Error(\"ajv implementation error\")\n  }\n\n  const deps = def.dependencies\n  if (deps?.some((kwd) => !Object.prototype.hasOwnProperty.call(schema, kwd))) {\n    throw new Error(`parent schema must have dependencies of ${keyword}: ${deps.join(\",\")}`)\n  }\n\n  if (def.validateSchema) {\n    const valid = def.validateSchema(schema[keyword])\n    if (!valid) {\n      const msg =\n        `keyword \"${keyword}\" value is invalid at path \"${errSchemaPath}\": ` +\n        self.errorsText(def.validateSchema.errors)\n      if (opts.validateSchema === \"log\") self.logger.error(msg)\n      else throw new Error(msg)\n    }\n  }\n}\n","import type {AnySchema} from \"../../types\"\nimport type {SchemaObjCxt} from \"..\"\nimport {_, str, getProperty, Code, Name} from \"../codegen\"\nimport {escapeFragment, getErrorPath, Type} from \"../util\"\nimport type {JSONType} from \"../rules\"\n\nexport interface SubschemaContext {\n  // TODO use Optional? align with SchemCxt property types\n  schema: AnySchema\n  schemaPath: Code\n  errSchemaPath: string\n  topSchemaRef?: Code\n  errorPath?: Code\n  dataLevel?: number\n  dataTypes?: JSONType[]\n  data?: Name\n  parentData?: Name\n  parentDataProperty?: Code | number\n  dataNames?: Name[]\n  dataPathArr?: (Code | number)[]\n  propertyName?: Name\n  jtdDiscriminator?: string\n  jtdMetadata?: boolean\n  compositeRule?: true\n  createErrors?: boolean\n  allErrors?: boolean\n}\n\nexport type SubschemaArgs = Partial<{\n  keyword: string\n  schemaProp: string | number\n  schema: AnySchema\n  schemaPath: Code\n  errSchemaPath: string\n  topSchemaRef: Code\n  data: Name | Code\n  dataProp: Code | string | number\n  dataTypes: JSONType[]\n  definedProperties: Set<string>\n  propertyName: Name\n  dataPropType: Type\n  jtdDiscriminator: string\n  jtdMetadata: boolean\n  compositeRule: true\n  createErrors: boolean\n  allErrors: boolean\n}>\n\nexport function getSubschema(\n  it: SchemaObjCxt,\n  {keyword, schemaProp, schema, schemaPath, errSchemaPath, topSchemaRef}: SubschemaArgs\n): SubschemaContext {\n  if (keyword !== undefined && schema !== undefined) {\n    throw new Error('both \"keyword\" and \"schema\" passed, only one allowed')\n  }\n\n  if (keyword !== undefined) {\n    const sch = it.schema[keyword]\n    return schemaProp === undefined\n      ? {\n          schema: sch,\n          schemaPath: _`${it.schemaPath}${getProperty(keyword)}`,\n          errSchemaPath: `${it.errSchemaPath}/${keyword}`,\n        }\n      : {\n          schema: sch[schemaProp],\n          schemaPath: _`${it.schemaPath}${getProperty(keyword)}${getProperty(schemaProp)}`,\n          errSchemaPath: `${it.errSchemaPath}/${keyword}/${escapeFragment(schemaProp)}`,\n        }\n  }\n\n  if (schema !== undefined) {\n    if (schemaPath === undefined || errSchemaPath === undefined || topSchemaRef === undefined) {\n      throw new Error('\"schemaPath\", \"errSchemaPath\" and \"topSchemaRef\" are required with \"schema\"')\n    }\n    return {\n      schema,\n      schemaPath,\n      topSchemaRef,\n      errSchemaPath,\n    }\n  }\n\n  throw new Error('either \"keyword\" or \"schema\" must be passed')\n}\n\nexport function extendSubschemaData(\n  subschema: SubschemaContext,\n  it: SchemaObjCxt,\n  {dataProp, dataPropType: dpType, data, dataTypes, propertyName}: SubschemaArgs\n): void {\n  if (data !== undefined && dataProp !== undefined) {\n    throw new Error('both \"data\" and \"dataProp\" passed, only one allowed')\n  }\n\n  const {gen} = it\n\n  if (dataProp !== undefined) {\n    const {errorPath, dataPathArr, opts} = it\n    const nextData = gen.let(\"data\", _`${it.data}${getProperty(dataProp)}`, true)\n    dataContextProps(nextData)\n    subschema.errorPath = str`${errorPath}${getErrorPath(dataProp, dpType, opts.jsPropertySyntax)}`\n    subschema.parentDataProperty = _`${dataProp}`\n    subschema.dataPathArr = [...dataPathArr, subschema.parentDataProperty]\n  }\n\n  if (data !== undefined) {\n    const nextData = data instanceof Name ? data : gen.let(\"data\", data, true) // replaceable if used once?\n    dataContextProps(nextData)\n    if (propertyName !== undefined) subschema.propertyName = propertyName\n    // TODO something is possibly wrong here with not changing parentDataProperty and not appending dataPathArr\n  }\n\n  if (dataTypes) subschema.dataTypes = dataTypes\n\n  function dataContextProps(_nextData: Name): void {\n    subschema.data = _nextData\n    subschema.dataLevel = it.dataLevel + 1\n    subschema.dataTypes = []\n    it.definedProperties = new Set<string>()\n    subschema.parentData = it.data\n    subschema.dataNames = [...it.dataNames, _nextData]\n  }\n}\n\nexport function extendSubschemaMode(\n  subschema: SubschemaContext,\n  {jtdDiscriminator, jtdMetadata, compositeRule, createErrors, allErrors}: SubschemaArgs\n): void {\n  if (compositeRule !== undefined) subschema.compositeRule = compositeRule\n  if (createErrors !== undefined) subschema.createErrors = createErrors\n  if (allErrors !== undefined) subschema.allErrors = allErrors\n  subschema.jtdDiscriminator = jtdDiscriminator // not inherited\n  subschema.jtdMetadata = jtdMetadata // not inherited\n}\n","'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n  if (a === b) return true;\n\n  if (a && b && typeof a == 'object' && typeof b == 'object') {\n    if (a.constructor !== b.constructor) return false;\n\n    var length, i, keys;\n    if (Array.isArray(a)) {\n      length = a.length;\n      if (length != b.length) return false;\n      for (i = length; i-- !== 0;)\n        if (!equal(a[i], b[i])) return false;\n      return true;\n    }\n\n\n\n    if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n    if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n    if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n    keys = Object.keys(a);\n    length = keys.length;\n    if (length !== Object.keys(b).length) return false;\n\n    for (i = length; i-- !== 0;)\n      if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n    for (i = length; i-- !== 0;) {\n      var key = keys[i];\n\n      if (!equal(a[key], b[key])) return false;\n    }\n\n    return true;\n  }\n\n  // true if both NaN, false otherwise\n  return a!==a && b!==b;\n};\n","'use strict';\n\nvar traverse = module.exports = function (schema, opts, cb) {\n  // Legacy support for v0.3.1 and earlier.\n  if (typeof opts == 'function') {\n    cb = opts;\n    opts = {};\n  }\n\n  cb = opts.cb || cb;\n  var pre = (typeof cb == 'function') ? cb : cb.pre || function() {};\n  var post = cb.post || function() {};\n\n  _traverse(opts, pre, post, schema, '', schema);\n};\n\n\ntraverse.keywords = {\n  additionalItems: true,\n  items: true,\n  contains: true,\n  additionalProperties: true,\n  propertyNames: true,\n  not: true,\n  if: true,\n  then: true,\n  else: true\n};\n\ntraverse.arrayKeywords = {\n  items: true,\n  allOf: true,\n  anyOf: true,\n  oneOf: true\n};\n\ntraverse.propsKeywords = {\n  $defs: true,\n  definitions: true,\n  properties: true,\n  patternProperties: true,\n  dependencies: true\n};\n\ntraverse.skipKeywords = {\n  default: true,\n  enum: true,\n  const: true,\n  required: true,\n  maximum: true,\n  minimum: true,\n  exclusiveMaximum: true,\n  exclusiveMinimum: true,\n  multipleOf: true,\n  maxLength: true,\n  minLength: true,\n  pattern: true,\n  format: true,\n  maxItems: true,\n  minItems: true,\n  uniqueItems: true,\n  maxProperties: true,\n  minProperties: true\n};\n\n\nfunction _traverse(opts, pre, post, schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex) {\n  if (schema && typeof schema == 'object' && !Array.isArray(schema)) {\n    pre(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex);\n    for (var key in schema) {\n      var sch = schema[key];\n      if (Array.isArray(sch)) {\n        if (key in traverse.arrayKeywords) {\n          for (var i=0; i<sch.length; i++)\n            _traverse(opts, pre, post, sch[i], jsonPtr + '/' + key + '/' + i, rootSchema, jsonPtr, key, schema, i);\n        }\n      } else if (key in traverse.propsKeywords) {\n        if (sch && typeof sch == 'object') {\n          for (var prop in sch)\n            _traverse(opts, pre, post, sch[prop], jsonPtr + '/' + key + '/' + escapeJsonPtr(prop), rootSchema, jsonPtr, key, schema, prop);\n        }\n      } else if (key in traverse.keywords || (opts.allKeys && !(key in traverse.skipKeywords))) {\n        _traverse(opts, pre, post, sch, jsonPtr + '/' + key, rootSchema, jsonPtr, key, schema);\n      }\n    }\n    post(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex);\n  }\n}\n\n\nfunction escapeJsonPtr(str) {\n  return str.replace(/~/g, '~0').replace(/\\//g, '~1');\n}\n","import type {AnySchema, AnySchemaObject, UriResolver} from \"../types\"\nimport type Ajv from \"../ajv\"\nimport type {URIComponent} from \"fast-uri\"\nimport {eachItem} from \"./util\"\nimport * as equal from \"fast-deep-equal\"\nimport * as traverse from \"json-schema-traverse\"\n\n// the hash of local references inside the schema (created by getSchemaRefs), used for inline resolution\nexport type LocalRefs = {[Ref in string]?: AnySchemaObject}\n\n// TODO refactor to use keyword definitions\nconst SIMPLE_INLINED = new Set([\n  \"type\",\n  \"format\",\n  \"pattern\",\n  \"maxLength\",\n  \"minLength\",\n  \"maxProperties\",\n  \"minProperties\",\n  \"maxItems\",\n  \"minItems\",\n  \"maximum\",\n  \"minimum\",\n  \"uniqueItems\",\n  \"multipleOf\",\n  \"required\",\n  \"enum\",\n  \"const\",\n])\n\nexport function inlineRef(schema: AnySchema, limit: boolean | number = true): boolean {\n  if (typeof schema == \"boolean\") return true\n  if (limit === true) return !hasRef(schema)\n  if (!limit) return false\n  return countKeys(schema) <= limit\n}\n\nconst REF_KEYWORDS = new Set([\n  \"$ref\",\n  \"$recursiveRef\",\n  \"$recursiveAnchor\",\n  \"$dynamicRef\",\n  \"$dynamicAnchor\",\n])\n\nfunction hasRef(schema: AnySchemaObject): boolean {\n  for (const key in schema) {\n    if (REF_KEYWORDS.has(key)) return true\n    const sch = schema[key]\n    if (Array.isArray(sch) && sch.some(hasRef)) return true\n    if (typeof sch == \"object\" && hasRef(sch)) return true\n  }\n  return false\n}\n\nfunction countKeys(schema: AnySchemaObject): number {\n  let count = 0\n  for (const key in schema) {\n    if (key === \"$ref\") return Infinity\n    count++\n    if (SIMPLE_INLINED.has(key)) continue\n    if (typeof schema[key] == \"object\") {\n      eachItem(schema[key], (sch) => (count += countKeys(sch)))\n    }\n    if (count === Infinity) return Infinity\n  }\n  return count\n}\n\nexport function getFullPath(resolver: UriResolver, id = \"\", normalize?: boolean): string {\n  if (normalize !== false) id = normalizeId(id)\n  const p = resolver.parse(id)\n  return _getFullPath(resolver, p)\n}\n\nexport function _getFullPath(resolver: UriResolver, p: URIComponent): string {\n  const serialized = resolver.serialize(p)\n  return serialized.split(\"#\")[0] + \"#\"\n}\n\nconst TRAILING_SLASH_HASH = /#\\/?$/\nexport function normalizeId(id: string | undefined): string {\n  return id ? id.replace(TRAILING_SLASH_HASH, \"\") : \"\"\n}\n\nexport function resolveUrl(resolver: UriResolver, baseId: string, id: string): string {\n  id = normalizeId(id)\n  return resolver.resolve(baseId, id)\n}\n\nconst ANCHOR = /^[a-z_][-a-z0-9._]*$/i\n\nexport function getSchemaRefs(this: Ajv, schema: AnySchema, baseId: string): LocalRefs {\n  if (typeof schema == \"boolean\") return {}\n  const {schemaId, uriResolver} = this.opts\n  const schId = normalizeId(schema[schemaId] || baseId)\n  const baseIds: {[JsonPtr in string]?: string} = {\"\": schId}\n  const pathPrefix = getFullPath(uriResolver, schId, false)\n  const localRefs: LocalRefs = {}\n  const schemaRefs: Set<string> = new Set()\n\n  traverse(schema, {allKeys: true}, (sch, jsonPtr, _, parentJsonPtr) => {\n    if (parentJsonPtr === undefined) return\n    const fullPath = pathPrefix + jsonPtr\n    let innerBaseId = baseIds[parentJsonPtr]\n    if (typeof sch[schemaId] == \"string\") innerBaseId = addRef.call(this, sch[schemaId])\n    addAnchor.call(this, sch.$anchor)\n    addAnchor.call(this, sch.$dynamicAnchor)\n    baseIds[jsonPtr] = innerBaseId\n\n    function addRef(this: Ajv, ref: string): string {\n      // eslint-disable-next-line @typescript-eslint/unbound-method\n      const _resolve = this.opts.uriResolver.resolve\n      ref = normalizeId(innerBaseId ? _resolve(innerBaseId, ref) : ref)\n      if (schemaRefs.has(ref)) throw ambiguos(ref)\n      schemaRefs.add(ref)\n      let schOrRef = this.refs[ref]\n      if (typeof schOrRef == \"string\") schOrRef = this.refs[schOrRef]\n      if (typeof schOrRef == \"object\") {\n        checkAmbiguosRef(sch, schOrRef.schema, ref)\n      } else if (ref !== normalizeId(fullPath)) {\n        if (ref[0] === \"#\") {\n          checkAmbiguosRef(sch, localRefs[ref], ref)\n          localRefs[ref] = sch\n        } else {\n          this.refs[ref] = fullPath\n        }\n      }\n      return ref\n    }\n\n    function addAnchor(this: Ajv, anchor: unknown): void {\n      if (typeof anchor == \"string\") {\n        if (!ANCHOR.test(anchor)) throw new Error(`invalid anchor \"${anchor}\"`)\n        addRef.call(this, `#${anchor}`)\n      }\n    }\n  })\n\n  return localRefs\n\n  function checkAmbiguosRef(sch1: AnySchema, sch2: AnySchema | undefined, ref: string): void {\n    if (sch2 !== undefined && !equal(sch1, sch2)) throw ambiguos(ref)\n  }\n\n  function ambiguos(ref: string): Error {\n    return new Error(`reference \"${ref}\" resolves to more than one schema`)\n  }\n}\n","import type {\n  AddedKeywordDefinition,\n  AnySchema,\n  AnySchemaObject,\n  KeywordErrorCxt,\n  KeywordCxtParams,\n} from \"../../types\"\nimport type {SchemaCxt, SchemaObjCxt} from \"..\"\nimport type {InstanceOptions} from \"../../core\"\nimport {boolOrEmptySchema, topBoolOrEmptySchema} from \"./boolSchema\"\nimport {coerceAndCheckDataType, getSchemaTypes} from \"./dataType\"\nimport {shouldUseGroup, shouldUseRule} from \"./applicability\"\nimport {checkDataType, checkDataTypes, reportTypeError, DataType} from \"./dataType\"\nimport {assignDefaults} from \"./defaults\"\nimport {funcKeywordCode, macroKeywordCode, validateKeywordUsage, validSchemaType} from \"./keyword\"\nimport {getSubschema, extendSubschemaData, SubschemaArgs, extendSubschemaMode} from \"./subschema\"\nimport {_, nil, str, or, not, getProperty, Block, Code, Name, CodeGen} from \"../codegen\"\nimport N from \"../names\"\nimport {resolveUrl} from \"../resolve\"\nimport {\n  schemaRefOrVal,\n  schemaHasRulesButRef,\n  checkUnknownRules,\n  checkStrictMode,\n  unescapeJsonPointer,\n  mergeEvaluated,\n} from \"../util\"\nimport type {JSONType, Rule, RuleGroup} from \"../rules\"\nimport {\n  ErrorPaths,\n  reportError,\n  reportExtraError,\n  resetErrorsCount,\n  keyword$DataError,\n} from \"../errors\"\n\n// schema compilation - generates validation function, subschemaCode (below) is used for subschemas\nexport function validateFunctionCode(it: SchemaCxt): void {\n  if (isSchemaObj(it)) {\n    checkKeywords(it)\n    if (schemaCxtHasRules(it)) {\n      topSchemaObjCode(it)\n      return\n    }\n  }\n  validateFunction(it, () => topBoolOrEmptySchema(it))\n}\n\nfunction validateFunction(\n  {gen, validateName, schema, schemaEnv, opts}: SchemaCxt,\n  body: Block\n): void {\n  if (opts.code.es5) {\n    gen.func(validateName, _`${N.data}, ${N.valCxt}`, schemaEnv.$async, () => {\n      gen.code(_`\"use strict\"; ${funcSourceUrl(schema, opts)}`)\n      destructureValCxtES5(gen, opts)\n      gen.code(body)\n    })\n  } else {\n    gen.func(validateName, _`${N.data}, ${destructureValCxt(opts)}`, schemaEnv.$async, () =>\n      gen.code(funcSourceUrl(schema, opts)).code(body)\n    )\n  }\n}\n\nfunction destructureValCxt(opts: InstanceOptions): Code {\n  return _`{${N.instancePath}=\"\", ${N.parentData}, ${N.parentDataProperty}, ${N.rootData}=${\n    N.data\n  }${opts.dynamicRef ? _`, ${N.dynamicAnchors}={}` : nil}}={}`\n}\n\nfunction destructureValCxtES5(gen: CodeGen, opts: InstanceOptions): void {\n  gen.if(\n    N.valCxt,\n    () => {\n      gen.var(N.instancePath, _`${N.valCxt}.${N.instancePath}`)\n      gen.var(N.parentData, _`${N.valCxt}.${N.parentData}`)\n      gen.var(N.parentDataProperty, _`${N.valCxt}.${N.parentDataProperty}`)\n      gen.var(N.rootData, _`${N.valCxt}.${N.rootData}`)\n      if (opts.dynamicRef) gen.var(N.dynamicAnchors, _`${N.valCxt}.${N.dynamicAnchors}`)\n    },\n    () => {\n      gen.var(N.instancePath, _`\"\"`)\n      gen.var(N.parentData, _`undefined`)\n      gen.var(N.parentDataProperty, _`undefined`)\n      gen.var(N.rootData, N.data)\n      if (opts.dynamicRef) gen.var(N.dynamicAnchors, _`{}`)\n    }\n  )\n}\n\nfunction topSchemaObjCode(it: SchemaObjCxt): void {\n  const {schema, opts, gen} = it\n  validateFunction(it, () => {\n    if (opts.$comment && schema.$comment) commentKeyword(it)\n    checkNoDefault(it)\n    gen.let(N.vErrors, null)\n    gen.let(N.errors, 0)\n    if (opts.unevaluated) resetEvaluated(it)\n    typeAndKeywords(it)\n    returnResults(it)\n  })\n  return\n}\n\nfunction resetEvaluated(it: SchemaObjCxt): void {\n  // TODO maybe some hook to execute it in the end to check whether props/items are Name, as in assignEvaluated\n  const {gen, validateName} = it\n  it.evaluated = gen.const(\"evaluated\", _`${validateName}.evaluated`)\n  gen.if(_`${it.evaluated}.dynamicProps`, () => gen.assign(_`${it.evaluated}.props`, _`undefined`))\n  gen.if(_`${it.evaluated}.dynamicItems`, () => gen.assign(_`${it.evaluated}.items`, _`undefined`))\n}\n\nfunction funcSourceUrl(schema: AnySchema, opts: InstanceOptions): Code {\n  const schId = typeof schema == \"object\" && schema[opts.schemaId]\n  return schId && (opts.code.source || opts.code.process) ? _`/*# sourceURL=${schId} */` : nil\n}\n\n// schema compilation - this function is used recursively to generate code for sub-schemas\nfunction subschemaCode(it: SchemaCxt, valid: Name): void {\n  if (isSchemaObj(it)) {\n    checkKeywords(it)\n    if (schemaCxtHasRules(it)) {\n      subSchemaObjCode(it, valid)\n      return\n    }\n  }\n  boolOrEmptySchema(it, valid)\n}\n\nfunction schemaCxtHasRules({schema, self}: SchemaCxt): boolean {\n  if (typeof schema == \"boolean\") return !schema\n  for (const key in schema) if (self.RULES.all[key]) return true\n  return false\n}\n\nfunction isSchemaObj(it: SchemaCxt): it is SchemaObjCxt {\n  return typeof it.schema != \"boolean\"\n}\n\nfunction subSchemaObjCode(it: SchemaObjCxt, valid: Name): void {\n  const {schema, gen, opts} = it\n  if (opts.$comment && schema.$comment) commentKeyword(it)\n  updateContext(it)\n  checkAsyncSchema(it)\n  const errsCount = gen.const(\"_errs\", N.errors)\n  typeAndKeywords(it, errsCount)\n  // TODO var\n  gen.var(valid, _`${errsCount} === ${N.errors}`)\n}\n\nfunction checkKeywords(it: SchemaObjCxt): void {\n  checkUnknownRules(it)\n  checkRefsAndKeywords(it)\n}\n\nfunction typeAndKeywords(it: SchemaObjCxt, errsCount?: Name): void {\n  if (it.opts.jtd) return schemaKeywords(it, [], false, errsCount)\n  const types = getSchemaTypes(it.schema)\n  const checkedTypes = coerceAndCheckDataType(it, types)\n  schemaKeywords(it, types, !checkedTypes, errsCount)\n}\n\nfunction checkRefsAndKeywords(it: SchemaObjCxt): void {\n  const {schema, errSchemaPath, opts, self} = it\n  if (schema.$ref && opts.ignoreKeywordsWithRef && schemaHasRulesButRef(schema, self.RULES)) {\n    self.logger.warn(`$ref: keywords ignored in schema at path \"${errSchemaPath}\"`)\n  }\n}\n\nfunction checkNoDefault(it: SchemaObjCxt): void {\n  const {schema, opts} = it\n  if (schema.default !== undefined && opts.useDefaults && opts.strictSchema) {\n    checkStrictMode(it, \"default is ignored in the schema root\")\n  }\n}\n\nfunction updateContext(it: SchemaObjCxt): void {\n  const schId = it.schema[it.opts.schemaId]\n  if (schId) it.baseId = resolveUrl(it.opts.uriResolver, it.baseId, schId)\n}\n\nfunction checkAsyncSchema(it: SchemaObjCxt): void {\n  if (it.schema.$async && !it.schemaEnv.$async) throw new Error(\"async schema in sync schema\")\n}\n\nfunction commentKeyword({gen, schemaEnv, schema, errSchemaPath, opts}: SchemaObjCxt): void {\n  const msg = schema.$comment\n  if (opts.$comment === true) {\n    gen.code(_`${N.self}.logger.log(${msg})`)\n  } else if (typeof opts.$comment == \"function\") {\n    const schemaPath = str`${errSchemaPath}/$comment`\n    const rootName = gen.scopeValue(\"root\", {ref: schemaEnv.root})\n    gen.code(_`${N.self}.opts.$comment(${msg}, ${schemaPath}, ${rootName}.schema)`)\n  }\n}\n\nfunction returnResults(it: SchemaCxt): void {\n  const {gen, schemaEnv, validateName, ValidationError, opts} = it\n  if (schemaEnv.$async) {\n    // TODO assign unevaluated\n    gen.if(\n      _`${N.errors} === 0`,\n      () => gen.return(N.data),\n      () => gen.throw(_`new ${ValidationError as Name}(${N.vErrors})`)\n    )\n  } else {\n    gen.assign(_`${validateName}.errors`, N.vErrors)\n    if (opts.unevaluated) assignEvaluated(it)\n    gen.return(_`${N.errors} === 0`)\n  }\n}\n\nfunction assignEvaluated({gen, evaluated, props, items}: SchemaCxt): void {\n  if (props instanceof Name) gen.assign(_`${evaluated}.props`, props)\n  if (items instanceof Name) gen.assign(_`${evaluated}.items`, items)\n}\n\nfunction schemaKeywords(\n  it: SchemaObjCxt,\n  types: JSONType[],\n  typeErrors: boolean,\n  errsCount?: Name\n): void {\n  const {gen, schema, data, allErrors, opts, self} = it\n  const {RULES} = self\n  if (schema.$ref && (opts.ignoreKeywordsWithRef || !schemaHasRulesButRef(schema, RULES))) {\n    gen.block(() => keywordCode(it, \"$ref\", (RULES.all.$ref as Rule).definition)) // TODO typecast\n    return\n  }\n  if (!opts.jtd) checkStrictTypes(it, types)\n  gen.block(() => {\n    for (const group of RULES.rules) groupKeywords(group)\n    groupKeywords(RULES.post)\n  })\n\n  function groupKeywords(group: RuleGroup): void {\n    if (!shouldUseGroup(schema, group)) return\n    if (group.type) {\n      gen.if(checkDataType(group.type, data, opts.strictNumbers))\n      iterateKeywords(it, group)\n      if (types.length === 1 && types[0] === group.type && typeErrors) {\n        gen.else()\n        reportTypeError(it)\n      }\n      gen.endIf()\n    } else {\n      iterateKeywords(it, group)\n    }\n    // TODO make it \"ok\" call?\n    if (!allErrors) gen.if(_`${N.errors} === ${errsCount || 0}`)\n  }\n}\n\nfunction iterateKeywords(it: SchemaObjCxt, group: RuleGroup): void {\n  const {\n    gen,\n    schema,\n    opts: {useDefaults},\n  } = it\n  if (useDefaults) assignDefaults(it, group.type)\n  gen.block(() => {\n    for (const rule of group.rules) {\n      if (shouldUseRule(schema, rule)) {\n        keywordCode(it, rule.keyword, rule.definition, group.type)\n      }\n    }\n  })\n}\n\nfunction checkStrictTypes(it: SchemaObjCxt, types: JSONType[]): void {\n  if (it.schemaEnv.meta || !it.opts.strictTypes) return\n  checkContextTypes(it, types)\n  if (!it.opts.allowUnionTypes) checkMultipleTypes(it, types)\n  checkKeywordTypes(it, it.dataTypes)\n}\n\nfunction checkContextTypes(it: SchemaObjCxt, types: JSONType[]): void {\n  if (!types.length) return\n  if (!it.dataTypes.length) {\n    it.dataTypes = types\n    return\n  }\n  types.forEach((t) => {\n    if (!includesType(it.dataTypes, t)) {\n      strictTypesError(it, `type \"${t}\" not allowed by context \"${it.dataTypes.join(\",\")}\"`)\n    }\n  })\n  narrowSchemaTypes(it, types)\n}\n\nfunction checkMultipleTypes(it: SchemaObjCxt, ts: JSONType[]): void {\n  if (ts.length > 1 && !(ts.length === 2 && ts.includes(\"null\"))) {\n    strictTypesError(it, \"use allowUnionTypes to allow union type keyword\")\n  }\n}\n\nfunction checkKeywordTypes(it: SchemaObjCxt, ts: JSONType[]): void {\n  const rules = it.self.RULES.all\n  for (const keyword in rules) {\n    const rule = rules[keyword]\n    if (typeof rule == \"object\" && shouldUseRule(it.schema, rule)) {\n      const {type} = rule.definition\n      if (type.length && !type.some((t) => hasApplicableType(ts, t))) {\n        strictTypesError(it, `missing type \"${type.join(\",\")}\" for keyword \"${keyword}\"`)\n      }\n    }\n  }\n}\n\nfunction hasApplicableType(schTs: JSONType[], kwdT: JSONType): boolean {\n  return schTs.includes(kwdT) || (kwdT === \"number\" && schTs.includes(\"integer\"))\n}\n\nfunction includesType(ts: JSONType[], t: JSONType): boolean {\n  return ts.includes(t) || (t === \"integer\" && ts.includes(\"number\"))\n}\n\nfunction narrowSchemaTypes(it: SchemaObjCxt, withTypes: JSONType[]): void {\n  const ts: JSONType[] = []\n  for (const t of it.dataTypes) {\n    if (includesType(withTypes, t)) ts.push(t)\n    else if (withTypes.includes(\"integer\") && t === \"number\") ts.push(\"integer\")\n  }\n  it.dataTypes = ts\n}\n\nfunction strictTypesError(it: SchemaObjCxt, msg: string): void {\n  const schemaPath = it.schemaEnv.baseId + it.errSchemaPath\n  msg += ` at \"${schemaPath}\" (strictTypes)`\n  checkStrictMode(it, msg, it.opts.strictTypes)\n}\n\nexport class KeywordCxt implements KeywordErrorCxt {\n  readonly gen: CodeGen\n  readonly allErrors?: boolean\n  readonly keyword: string\n  readonly data: Name // Name referencing the current level of the data instance\n  readonly $data?: string | false\n  schema: any // keyword value in the schema\n  readonly schemaValue: Code | number | boolean // Code reference to keyword schema value or primitive value\n  readonly schemaCode: Code | number | boolean // Code reference to resolved schema value (different if schema is $data)\n  readonly schemaType: JSONType[] // allowed type(s) of keyword value in the schema\n  readonly parentSchema: AnySchemaObject\n  readonly errsCount?: Name // Name reference to the number of validation errors collected before this keyword,\n  // requires option trackErrors in keyword definition\n  params: KeywordCxtParams // object to pass parameters to error messages from keyword code\n  readonly it: SchemaObjCxt // schema compilation context (schema is guaranteed to be an object, not boolean)\n  readonly def: AddedKeywordDefinition\n\n  constructor(it: SchemaObjCxt, def: AddedKeywordDefinition, keyword: string) {\n    validateKeywordUsage(it, def, keyword)\n    this.gen = it.gen\n    this.allErrors = it.allErrors\n    this.keyword = keyword\n    this.data = it.data\n    this.schema = it.schema[keyword]\n    this.$data = def.$data && it.opts.$data && this.schema && this.schema.$data\n    this.schemaValue = schemaRefOrVal(it, this.schema, keyword, this.$data)\n    this.schemaType = def.schemaType\n    this.parentSchema = it.schema\n    this.params = {}\n    this.it = it\n    this.def = def\n\n    if (this.$data) {\n      this.schemaCode = it.gen.const(\"vSchema\", getData(this.$data, it))\n    } else {\n      this.schemaCode = this.schemaValue\n      if (!validSchemaType(this.schema, def.schemaType, def.allowUndefined)) {\n        throw new Error(`${keyword} value must be ${JSON.stringify(def.schemaType)}`)\n      }\n    }\n\n    if (\"code\" in def ? def.trackErrors : def.errors !== false) {\n      this.errsCount = it.gen.const(\"_errs\", N.errors)\n    }\n  }\n\n  result(condition: Code, successAction?: () => void, failAction?: () => void): void {\n    this.failResult(not(condition), successAction, failAction)\n  }\n\n  failResult(condition: Code, successAction?: () => void, failAction?: () => void): void {\n    this.gen.if(condition)\n    if (failAction) failAction()\n    else this.error()\n    if (successAction) {\n      this.gen.else()\n      successAction()\n      if (this.allErrors) this.gen.endIf()\n    } else {\n      if (this.allErrors) this.gen.endIf()\n      else this.gen.else()\n    }\n  }\n\n  pass(condition: Code, failAction?: () => void): void {\n    this.failResult(not(condition), undefined, failAction)\n  }\n\n  fail(condition?: Code): void {\n    if (condition === undefined) {\n      this.error()\n      if (!this.allErrors) this.gen.if(false) // this branch will be removed by gen.optimize\n      return\n    }\n    this.gen.if(condition)\n    this.error()\n    if (this.allErrors) this.gen.endIf()\n    else this.gen.else()\n  }\n\n  fail$data(condition: Code): void {\n    if (!this.$data) return this.fail(condition)\n    const {schemaCode} = this\n    this.fail(_`${schemaCode} !== undefined && (${or(this.invalid$data(), condition)})`)\n  }\n\n  error(append?: boolean, errorParams?: KeywordCxtParams, errorPaths?: ErrorPaths): void {\n    if (errorParams) {\n      this.setParams(errorParams)\n      this._error(append, errorPaths)\n      this.setParams({})\n      return\n    }\n    this._error(append, errorPaths)\n  }\n\n  private _error(append?: boolean, errorPaths?: ErrorPaths): void {\n    ;(append ? reportExtraError : reportError)(this, this.def.error, errorPaths)\n  }\n\n  $dataError(): void {\n    reportError(this, this.def.$dataError || keyword$DataError)\n  }\n\n  reset(): void {\n    if (this.errsCount === undefined) throw new Error('add \"trackErrors\" to keyword definition')\n    resetErrorsCount(this.gen, this.errsCount)\n  }\n\n  ok(cond: Code | boolean): void {\n    if (!this.allErrors) this.gen.if(cond)\n  }\n\n  setParams(obj: KeywordCxtParams, assign?: true): void {\n    if (assign) Object.assign(this.params, obj)\n    else this.params = obj\n  }\n\n  block$data(valid: Name, codeBlock: () => void, $dataValid: Code = nil): void {\n    this.gen.block(() => {\n      this.check$data(valid, $dataValid)\n      codeBlock()\n    })\n  }\n\n  check$data(valid: Name = nil, $dataValid: Code = nil): void {\n    if (!this.$data) return\n    const {gen, schemaCode, schemaType, def} = this\n    gen.if(or(_`${schemaCode} === undefined`, $dataValid))\n    if (valid !== nil) gen.assign(valid, true)\n    if (schemaType.length || def.validateSchema) {\n      gen.elseIf(this.invalid$data())\n      this.$dataError()\n      if (valid !== nil) gen.assign(valid, false)\n    }\n    gen.else()\n  }\n\n  invalid$data(): Code {\n    const {gen, schemaCode, schemaType, def, it} = this\n    return or(wrong$DataType(), invalid$DataSchema())\n\n    function wrong$DataType(): Code {\n      if (schemaType.length) {\n        /* istanbul ignore if */\n        if (!(schemaCode instanceof Name)) throw new Error(\"ajv implementation error\")\n        const st = Array.isArray(schemaType) ? schemaType : [schemaType]\n        return _`${checkDataTypes(st, schemaCode, it.opts.strictNumbers, DataType.Wrong)}`\n      }\n      return nil\n    }\n\n    function invalid$DataSchema(): Code {\n      if (def.validateSchema) {\n        const validateSchemaRef = gen.scopeValue(\"validate$data\", {ref: def.validateSchema}) // TODO value.code for standalone\n        return _`!${validateSchemaRef}(${schemaCode})`\n      }\n      return nil\n    }\n  }\n\n  subschema(appl: SubschemaArgs, valid: Name): SchemaCxt {\n    const subschema = getSubschema(this.it, appl)\n    extendSubschemaData(subschema, this.it, appl)\n    extendSubschemaMode(subschema, appl)\n    const nextContext = {...this.it, ...subschema, items: undefined, props: undefined}\n    subschemaCode(nextContext, valid)\n    return nextContext\n  }\n\n  mergeEvaluated(schemaCxt: SchemaCxt, toName?: typeof Name): void {\n    const {it, gen} = this\n    if (!it.opts.unevaluated) return\n    if (it.props !== true && schemaCxt.props !== undefined) {\n      it.props = mergeEvaluated.props(gen, schemaCxt.props, it.props, toName)\n    }\n    if (it.items !== true && schemaCxt.items !== undefined) {\n      it.items = mergeEvaluated.items(gen, schemaCxt.items, it.items, toName)\n    }\n  }\n\n  mergeValidEvaluated(schemaCxt: SchemaCxt, valid: Name): boolean | void {\n    const {it, gen} = this\n    if (it.opts.unevaluated && (it.props !== true || it.items !== true)) {\n      gen.if(valid, () => this.mergeEvaluated(schemaCxt, Name))\n      return true\n    }\n  }\n}\n\nfunction keywordCode(\n  it: SchemaObjCxt,\n  keyword: string,\n  def: AddedKeywordDefinition,\n  ruleType?: JSONType\n): void {\n  const cxt = new KeywordCxt(it, def, keyword)\n  if (\"code\" in def) {\n    def.code(cxt, ruleType)\n  } else if (cxt.$data && def.validate) {\n    funcKeywordCode(cxt, def)\n  } else if (\"macro\" in def) {\n    macroKeywordCode(cxt, def)\n  } else if (def.compile || def.validate) {\n    funcKeywordCode(cxt, def)\n  }\n}\n\nconst JSON_POINTER = /^\\/(?:[^~]|~0|~1)*$/\nconst RELATIVE_JSON_POINTER = /^([0-9]+)(#|\\/(?:[^~]|~0|~1)*)?$/\nexport function getData(\n  $data: string,\n  {dataLevel, dataNames, dataPathArr}: SchemaCxt\n): Code | number {\n  let jsonPointer\n  let data: Code\n  if ($data === \"\") return N.rootData\n  if ($data[0] === \"/\") {\n    if (!JSON_POINTER.test($data)) throw new Error(`Invalid JSON-pointer: ${$data}`)\n    jsonPointer = $data\n    data = N.rootData\n  } else {\n    const matches = RELATIVE_JSON_POINTER.exec($data)\n    if (!matches) throw new Error(`Invalid JSON-pointer: ${$data}`)\n    const up: number = +matches[1]\n    jsonPointer = matches[2]\n    if (jsonPointer === \"#\") {\n      if (up >= dataLevel) throw new Error(errorMsg(\"property/index\", up))\n      return dataPathArr[dataLevel - up]\n    }\n    if (up > dataLevel) throw new Error(errorMsg(\"data\", up))\n    data = dataNames[dataLevel - up]\n    if (!jsonPointer) return data\n  }\n\n  let expr = data\n  const segments = jsonPointer.split(\"/\")\n  for (const segment of segments) {\n    if (segment) {\n      data = _`${data}${getProperty(unescapeJsonPointer(segment))}`\n      expr = _`${expr} && ${data}`\n    }\n  }\n  return expr\n\n  function errorMsg(pointerType: string, up: number): string {\n    return `Cannot access ${pointerType} ${up} levels up, current level is ${dataLevel}`\n  }\n}\n","import type {ErrorObject} from \"../types\"\n\nexport default class ValidationError extends Error {\n  readonly errors: Partial<ErrorObject>[]\n  readonly ajv: true\n  readonly validation: true\n\n  constructor(errors: Partial<ErrorObject>[]) {\n    super(\"validation failed\")\n    this.errors = errors\n    this.ajv = this.validation = true\n  }\n}\n","import {resolveUrl, normalizeId, getFullPath} from \"./resolve\"\nimport type {UriResolver} from \"../types\"\n\nexport default class MissingRefError extends Error {\n  readonly missingRef: string\n  readonly missingSchema: string\n\n  constructor(resolver: UriResolver, baseId: string, ref: string, msg?: string) {\n    super(msg || `can't resolve reference ${ref} from id ${baseId}`)\n    this.missingRef = resolveUrl(resolver, baseId, ref)\n    this.missingSchema = normalizeId(getFullPath(resolver, this.missingRef))\n  }\n}\n","import type {\n  AnySchema,\n  AnySchemaObject,\n  AnyValidateFunction,\n  AsyncValidateFunction,\n  EvaluatedProperties,\n  EvaluatedItems,\n} from \"../types\"\nimport type Ajv from \"../core\"\nimport type {InstanceOptions} from \"../core\"\nimport {CodeGen, _, nil, stringify, Name, Code, ValueScopeName} from \"./codegen\"\nimport ValidationError from \"../runtime/validation_error\"\nimport N from \"./names\"\nimport {LocalRefs, getFullPath, _getFullPath, inlineRef, normalizeId, resolveUrl} from \"./resolve\"\nimport {schemaHasRulesButRef, unescapeFragment} from \"./util\"\nimport {validateFunctionCode} from \"./validate\"\nimport {URIComponent} from \"fast-uri\"\nimport {JSONType} from \"./rules\"\n\nexport type SchemaRefs = {\n  [Ref in string]?: SchemaEnv | AnySchema\n}\n\nexport interface SchemaCxt {\n  readonly gen: CodeGen\n  readonly allErrors?: boolean // validation mode - whether to collect all errors or break on error\n  readonly data: Name // Name with reference to the current part of data instance\n  readonly parentData: Name // should be used in keywords modifying data\n  readonly parentDataProperty: Code | number // should be used in keywords modifying data\n  readonly dataNames: Name[]\n  readonly dataPathArr: (Code | number)[]\n  readonly dataLevel: number // the level of the currently validated data,\n  // it can be used to access both the property names and the data on all levels from the top.\n  dataTypes: JSONType[] // data types applied to the current part of data instance\n  definedProperties: Set<string> // set of properties to keep track of for required checks\n  readonly topSchemaRef: Code\n  readonly validateName: Name\n  evaluated?: Name\n  readonly ValidationError?: Name\n  readonly schema: AnySchema // current schema object - equal to parentSchema passed via KeywordCxt\n  readonly schemaEnv: SchemaEnv\n  readonly rootId: string\n  baseId: string // the current schema base URI that should be used as the base for resolving URIs in references (\\$ref)\n  readonly schemaPath: Code // the run-time expression that evaluates to the property name of the current schema\n  readonly errSchemaPath: string // this is actual string, should not be changed to Code\n  readonly errorPath: Code\n  readonly propertyName?: Name\n  readonly compositeRule?: boolean // true indicates that the current schema is inside the compound keyword,\n  // where failing some rule doesn't mean validation failure (`anyOf`, `oneOf`, `not`, `if`).\n  // This flag is used to determine whether you can return validation result immediately after any error in case the option `allErrors` is not `true.\n  // You only need to use it if you have many steps in your keywords and potentially can define multiple errors.\n  props?: EvaluatedProperties | Name // properties evaluated by this schema - used by parent schema or assigned to validation function\n  items?: EvaluatedItems | Name // last item evaluated by this schema - used by parent schema or assigned to validation function\n  jtdDiscriminator?: string\n  jtdMetadata?: boolean\n  readonly createErrors?: boolean\n  readonly opts: InstanceOptions // Ajv instance option.\n  readonly self: Ajv // current Ajv instance\n}\n\nexport interface SchemaObjCxt extends SchemaCxt {\n  readonly schema: AnySchemaObject\n}\ninterface SchemaEnvArgs {\n  readonly schema: AnySchema\n  readonly schemaId?: \"$id\" | \"id\"\n  readonly root?: SchemaEnv\n  readonly baseId?: string\n  readonly schemaPath?: string\n  readonly localRefs?: LocalRefs\n  readonly meta?: boolean\n}\n\nexport class SchemaEnv implements SchemaEnvArgs {\n  readonly schema: AnySchema\n  readonly schemaId?: \"$id\" | \"id\"\n  readonly root: SchemaEnv\n  baseId: string // TODO possibly, it should be readonly\n  schemaPath?: string\n  localRefs?: LocalRefs\n  readonly meta?: boolean\n  readonly $async?: boolean // true if the current schema is asynchronous.\n  readonly refs: SchemaRefs = {}\n  readonly dynamicAnchors: {[Ref in string]?: true} = {}\n  validate?: AnyValidateFunction\n  validateName?: ValueScopeName\n  serialize?: (data: unknown) => string\n  serializeName?: ValueScopeName\n  parse?: (data: string) => unknown\n  parseName?: ValueScopeName\n\n  constructor(env: SchemaEnvArgs) {\n    let schema: AnySchemaObject | undefined\n    if (typeof env.schema == \"object\") schema = env.schema\n    this.schema = env.schema\n    this.schemaId = env.schemaId\n    this.root = env.root || this\n    this.baseId = env.baseId ?? normalizeId(schema?.[env.schemaId || \"$id\"])\n    this.schemaPath = env.schemaPath\n    this.localRefs = env.localRefs\n    this.meta = env.meta\n    this.$async = schema?.$async\n    this.refs = {}\n  }\n}\n\n// let codeSize = 0\n// let nodeCount = 0\n\n// Compiles schema in SchemaEnv\nexport function compileSchema(this: Ajv, sch: SchemaEnv): SchemaEnv {\n  // TODO refactor - remove compilations\n  const _sch = getCompilingSchema.call(this, sch)\n  if (_sch) return _sch\n  const rootId = getFullPath(this.opts.uriResolver, sch.root.baseId) // TODO if getFullPath removed 1 tests fails\n  const {es5, lines} = this.opts.code\n  const {ownProperties} = this.opts\n  const gen = new CodeGen(this.scope, {es5, lines, ownProperties})\n  let _ValidationError\n  if (sch.$async) {\n    _ValidationError = gen.scopeValue(\"Error\", {\n      ref: ValidationError,\n      code: _`require(\"ajv/dist/runtime/validation_error\").default`,\n    })\n  }\n\n  const validateName = gen.scopeName(\"validate\")\n  sch.validateName = validateName\n\n  const schemaCxt: SchemaCxt = {\n    gen,\n    allErrors: this.opts.allErrors,\n    data: N.data,\n    parentData: N.parentData,\n    parentDataProperty: N.parentDataProperty,\n    dataNames: [N.data],\n    dataPathArr: [nil], // TODO can its length be used as dataLevel if nil is removed?\n    dataLevel: 0,\n    dataTypes: [],\n    definedProperties: new Set<string>(),\n    topSchemaRef: gen.scopeValue(\n      \"schema\",\n      this.opts.code.source === true\n        ? {ref: sch.schema, code: stringify(sch.schema)}\n        : {ref: sch.schema}\n    ),\n    validateName,\n    ValidationError: _ValidationError,\n    schema: sch.schema,\n    schemaEnv: sch,\n    rootId,\n    baseId: sch.baseId || rootId,\n    schemaPath: nil,\n    errSchemaPath: sch.schemaPath || (this.opts.jtd ? \"\" : \"#\"),\n    errorPath: _`\"\"`,\n    opts: this.opts,\n    self: this,\n  }\n\n  let sourceCode: string | undefined\n  try {\n    this._compilations.add(sch)\n    validateFunctionCode(schemaCxt)\n    gen.optimize(this.opts.code.optimize)\n    // gen.optimize(1)\n    const validateCode = gen.toString()\n    sourceCode = `${gen.scopeRefs(N.scope)}return ${validateCode}`\n    // console.log((codeSize += sourceCode.length), (nodeCount += gen.nodeCount))\n    if (this.opts.code.process) sourceCode = this.opts.code.process(sourceCode, sch)\n    // console.log(\"\\n\\n\\n *** \\n\", sourceCode)\n    const makeValidate = new Function(`${N.self}`, `${N.scope}`, sourceCode)\n    const validate: AnyValidateFunction = makeValidate(this, this.scope.get())\n    this.scope.value(validateName, {ref: validate})\n\n    validate.errors = null\n    validate.schema = sch.schema\n    validate.schemaEnv = sch\n    if (sch.$async) (validate as AsyncValidateFunction).$async = true\n    if (this.opts.code.source === true) {\n      validate.source = {validateName, validateCode, scopeValues: gen._values}\n    }\n    if (this.opts.unevaluated) {\n      const {props, items} = schemaCxt\n      validate.evaluated = {\n        props: props instanceof Name ? undefined : props,\n        items: items instanceof Name ? undefined : items,\n        dynamicProps: props instanceof Name,\n        dynamicItems: items instanceof Name,\n      }\n      if (validate.source) validate.source.evaluated = stringify(validate.evaluated)\n    }\n    sch.validate = validate\n    return sch\n  } catch (e) {\n    delete sch.validate\n    delete sch.validateName\n    if (sourceCode) this.logger.error(\"Error compiling schema, function code:\", sourceCode)\n    // console.log(\"\\n\\n\\n *** \\n\", sourceCode, this.opts)\n    throw e\n  } finally {\n    this._compilations.delete(sch)\n  }\n}\n\nexport function resolveRef(\n  this: Ajv,\n  root: SchemaEnv,\n  baseId: string,\n  ref: string\n): AnySchema | SchemaEnv | undefined {\n  ref = resolveUrl(this.opts.uriResolver, baseId, ref)\n  const schOrFunc = root.refs[ref]\n  if (schOrFunc) return schOrFunc\n\n  let _sch = resolve.call(this, root, ref)\n  if (_sch === undefined) {\n    const schema = root.localRefs?.[ref] // TODO maybe localRefs should hold SchemaEnv\n    const {schemaId} = this.opts\n    if (schema) _sch = new SchemaEnv({schema, schemaId, root, baseId})\n  }\n\n  if (_sch === undefined) return\n  return (root.refs[ref] = inlineOrCompile.call(this, _sch))\n}\n\nfunction inlineOrCompile(this: Ajv, sch: SchemaEnv): AnySchema | SchemaEnv {\n  if (inlineRef(sch.schema, this.opts.inlineRefs)) return sch.schema\n  return sch.validate ? sch : compileSchema.call(this, sch)\n}\n\n// Index of schema compilation in the currently compiled list\nexport function getCompilingSchema(this: Ajv, schEnv: SchemaEnv): SchemaEnv | void {\n  for (const sch of this._compilations) {\n    if (sameSchemaEnv(sch, schEnv)) return sch\n  }\n}\n\nfunction sameSchemaEnv(s1: SchemaEnv, s2: SchemaEnv): boolean {\n  return s1.schema === s2.schema && s1.root === s2.root && s1.baseId === s2.baseId\n}\n\n// resolve and compile the references ($ref)\n// TODO returns AnySchemaObject (if the schema can be inlined) or validation function\nfunction resolve(\n  this: Ajv,\n  root: SchemaEnv, // information about the root schema for the current schema\n  ref: string // reference to resolve\n): SchemaEnv | undefined {\n  let sch\n  while (typeof (sch = this.refs[ref]) == \"string\") ref = sch\n  return sch || this.schemas[ref] || resolveSchema.call(this, root, ref)\n}\n\n// Resolve schema, its root and baseId\nexport function resolveSchema(\n  this: Ajv,\n  root: SchemaEnv, // root object with properties schema, refs TODO below SchemaEnv is assigned to it\n  ref: string // reference to resolve\n): SchemaEnv | undefined {\n  const p = this.opts.uriResolver.parse(ref)\n  const refPath = _getFullPath(this.opts.uriResolver, p)\n  let baseId = getFullPath(this.opts.uriResolver, root.baseId, undefined)\n  // TODO `Object.keys(root.schema).length > 0` should not be needed - but removing breaks 2 tests\n  if (Object.keys(root.schema).length > 0 && refPath === baseId) {\n    return getJsonPointer.call(this, p, root)\n  }\n\n  const id = normalizeId(refPath)\n  const schOrRef = this.refs[id] || this.schemas[id]\n  if (typeof schOrRef == \"string\") {\n    const sch = resolveSchema.call(this, root, schOrRef)\n    if (typeof sch?.schema !== \"object\") return\n    return getJsonPointer.call(this, p, sch)\n  }\n\n  if (typeof schOrRef?.schema !== \"object\") return\n  if (!schOrRef.validate) compileSchema.call(this, schOrRef)\n  if (id === normalizeId(ref)) {\n    const {schema} = schOrRef\n    const {schemaId} = this.opts\n    const schId = schema[schemaId]\n    if (schId) baseId = resolveUrl(this.opts.uriResolver, baseId, schId)\n    return new SchemaEnv({schema, schemaId, root, baseId})\n  }\n  return getJsonPointer.call(this, p, schOrRef)\n}\n\nconst PREVENT_SCOPE_CHANGE = new Set([\n  \"properties\",\n  \"patternProperties\",\n  \"enum\",\n  \"dependencies\",\n  \"definitions\",\n])\n\nfunction getJsonPointer(\n  this: Ajv,\n  parsedRef: URIComponent,\n  {baseId, schema, root}: SchemaEnv\n): SchemaEnv | undefined {\n  if (parsedRef.fragment?.[0] !== \"/\") return\n  for (const part of parsedRef.fragment.slice(1).split(\"/\")) {\n    if (typeof schema === \"boolean\") return\n    const partSchema = schema[unescapeFragment(part)]\n    if (partSchema === undefined) return\n    schema = partSchema\n    // TODO PREVENT_SCOPE_CHANGE could be defined in keyword def?\n    const schId = typeof schema === \"object\" && schema[this.opts.schemaId]\n    if (!PREVENT_SCOPE_CHANGE.has(part) && schId) {\n      baseId = resolveUrl(this.opts.uriResolver, baseId, schId)\n    }\n  }\n  let env: SchemaEnv | undefined\n  if (typeof schema != \"boolean\" && schema.$ref && !schemaHasRulesButRef(schema, this.RULES)) {\n    const $ref = resolveUrl(this.opts.uriResolver, baseId, schema.$ref)\n    env = resolveSchema.call(this, root, $ref)\n  }\n  // even though resolution failed we need to return SchemaEnv to throw exception\n  // so that compileAsync loads missing schema.\n  const {schemaId} = this.opts\n  env = env || new SchemaEnv({schema, schemaId, root, baseId})\n  if (env.schema !== env.root.schema) return env\n  return undefined\n}\n","{\n  \"$id\": \"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#\",\n  \"description\": \"Meta-schema for $data reference (JSON AnySchema extension proposal)\",\n  \"type\": \"object\",\n  \"required\": [\"$data\"],\n  \"properties\": {\n    \"$data\": {\n      \"type\": \"string\",\n      \"anyOf\": [{\"format\": \"relative-json-pointer\"}, {\"format\": \"json-pointer\"}]\n    }\n  },\n  \"additionalProperties\": false\n}\n","'use strict'\n\n/** @type {(value: string) => boolean} */\nconst isUUID = RegExp.prototype.test.bind(/^[\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12}$/iu)\n\n/** @type {(value: string) => boolean} */\nconst isIPv4 = RegExp.prototype.test.bind(/^(?:(?:25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]\\d|\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]\\d|\\d)$/u)\n\n/** @type {(value: string) => boolean} */\nconst isHexPair = RegExp.prototype.test.bind(/^[\\da-f]{2}$/iu)\n\n/** @type {(value: string) => boolean} */\nconst isUnreserved = RegExp.prototype.test.bind(/^[\\da-z\\-._~]$/iu)\n\n/** @type {(value: string) => boolean} */\nconst isPathCharacter = RegExp.prototype.test.bind(/^[\\da-z\\-._~!$&'()*+,;=:@/]$/iu)\n\n/**\n * @param {Array<string>} input\n * @returns {string}\n */\nfunction stringArrayToHexStripped (input) {\n  let acc = ''\n  let code = 0\n  let i = 0\n\n  for (i = 0; i < input.length; i++) {\n    code = input[i].charCodeAt(0)\n    if (code === 48) {\n      continue\n    }\n    if (!((code >= 48 && code <= 57) || (code >= 65 && code <= 70) || (code >= 97 && code <= 102))) {\n      return ''\n    }\n    acc += input[i]\n    break\n  }\n\n  for (i += 1; i < input.length; i++) {\n    code = input[i].charCodeAt(0)\n    if (!((code >= 48 && code <= 57) || (code >= 65 && code <= 70) || (code >= 97 && code <= 102))) {\n      return ''\n    }\n    acc += input[i]\n  }\n  return acc\n}\n\n/**\n * @typedef {Object} GetIPV6Result\n * @property {boolean} error - Indicates if there was an error parsing the IPv6 address.\n * @property {string} address - The parsed IPv6 address.\n * @property {string} [zone] - The zone identifier, if present.\n */\n\n/**\n * @param {string} value\n * @returns {boolean}\n */\nconst nonSimpleDomain = RegExp.prototype.test.bind(/[^!\"$&'()*+,\\-.;=_`a-z{}~]/u)\n\n/**\n * @param {Array<string>} buffer\n * @returns {boolean}\n */\nfunction consumeIsZone (buffer) {\n  buffer.length = 0\n  return true\n}\n\n/**\n * @param {Array<string>} buffer\n * @param {Array<string>} address\n * @param {GetIPV6Result} output\n * @returns {boolean}\n */\nfunction consumeHextets (buffer, address, output) {\n  if (buffer.length) {\n    const hex = stringArrayToHexStripped(buffer)\n    if (hex !== '') {\n      address.push(hex)\n    } else {\n      output.error = true\n      return false\n    }\n    buffer.length = 0\n  }\n  return true\n}\n\n/**\n * @param {string} input\n * @returns {GetIPV6Result}\n */\nfunction getIPV6 (input) {\n  let tokenCount = 0\n  const output = { error: false, address: '', zone: '' }\n  /** @type {Array<string>} */\n  const address = []\n  /** @type {Array<string>} */\n  const buffer = []\n  let endipv6Encountered = false\n  let endIpv6 = false\n\n  let consume = consumeHextets\n\n  for (let i = 0; i < input.length; i++) {\n    const cursor = input[i]\n    if (cursor === '[' || cursor === ']') { continue }\n    if (cursor === ':') {\n      if (endipv6Encountered === true) {\n        endIpv6 = true\n      }\n      if (!consume(buffer, address, output)) { break }\n      if (++tokenCount > 7) {\n        // not valid\n        output.error = true\n        break\n      }\n      if (i > 0 && input[i - 1] === ':') {\n        endipv6Encountered = true\n      }\n      address.push(':')\n      continue\n    } else if (cursor === '%') {\n      if (!consume(buffer, address, output)) { break }\n      // switch to zone detection\n      consume = consumeIsZone\n    } else {\n      buffer.push(cursor)\n      continue\n    }\n  }\n  if (buffer.length) {\n    if (consume === consumeIsZone) {\n      output.zone = buffer.join('')\n    } else if (endIpv6) {\n      address.push(buffer.join(''))\n    } else {\n      address.push(stringArrayToHexStripped(buffer))\n    }\n  }\n  output.address = address.join('')\n  return output\n}\n\n/**\n * @typedef {Object} NormalizeIPv6Result\n * @property {string} host - The normalized host.\n * @property {string} [escapedHost] - The escaped host.\n * @property {boolean} isIPV6 - Indicates if the host is an IPv6 address.\n */\n\n/**\n * @param {string} host\n * @returns {NormalizeIPv6Result}\n */\nfunction normalizeIPv6 (host) {\n  if (findToken(host, ':') < 2) { return { host, isIPV6: false } }\n  const ipv6 = getIPV6(host)\n\n  if (!ipv6.error) {\n    let newHost = ipv6.address\n    let escapedHost = ipv6.address\n    if (ipv6.zone) {\n      newHost += '%' + ipv6.zone\n      escapedHost += '%25' + ipv6.zone\n    }\n    return { host: newHost, isIPV6: true, escapedHost }\n  } else {\n    return { host, isIPV6: false }\n  }\n}\n\n/**\n * @param {string} str\n * @param {string} token\n * @returns {number}\n */\nfunction findToken (str, token) {\n  let ind = 0\n  for (let i = 0; i < str.length; i++) {\n    if (str[i] === token) ind++\n  }\n  return ind\n}\n\n/**\n * @param {string} path\n * @returns {string}\n *\n * @see https://datatracker.ietf.org/doc/html/rfc3986#section-5.2.4\n */\nfunction removeDotSegments (path) {\n  let input = path\n  const output = []\n  let nextSlash = -1\n  let len = 0\n\n  // eslint-disable-next-line no-cond-assign\n  while (len = input.length) {\n    if (len === 1) {\n      if (input === '.') {\n        break\n      } else if (input === '/') {\n        output.push('/')\n        break\n      } else {\n        output.push(input)\n        break\n      }\n    } else if (len === 2) {\n      if (input[0] === '.') {\n        if (input[1] === '.') {\n          break\n        } else if (input[1] === '/') {\n          input = input.slice(2)\n          continue\n        }\n      } else if (input[0] === '/') {\n        if (input[1] === '.' || input[1] === '/') {\n          output.push('/')\n          break\n        }\n      }\n    } else if (len === 3) {\n      if (input === '/..') {\n        if (output.length !== 0) {\n          output.pop()\n        }\n        output.push('/')\n        break\n      }\n    }\n    if (input[0] === '.') {\n      if (input[1] === '.') {\n        if (input[2] === '/') {\n          input = input.slice(3)\n          continue\n        }\n      } else if (input[1] === '/') {\n        input = input.slice(2)\n        continue\n      }\n    } else if (input[0] === '/') {\n      if (input[1] === '.') {\n        if (input[2] === '/') {\n          input = input.slice(2)\n          continue\n        } else if (input[2] === '.') {\n          if (input[3] === '/') {\n            input = input.slice(3)\n            if (output.length !== 0) {\n              output.pop()\n            }\n            continue\n          }\n        }\n      }\n    }\n\n    // Rule 2E: Move normal path segment to output\n    if ((nextSlash = input.indexOf('/', 1)) === -1) {\n      output.push(input)\n      break\n    } else {\n      output.push(input.slice(0, nextSlash))\n      input = input.slice(nextSlash)\n    }\n  }\n\n  return output.join('')\n}\n\n/**\n * Re-escape RFC 3986 gen-delims that must not appear literally in the host.\n * After the URI regex parses, these characters cannot be literal in the host\n * field, so any that appear after decoding came from percent-encoding and\n * must be restored to prevent authority structure changes.\n *\n * @param {string} host\n * @param {boolean} isIP - true for IPv4/IPv6 hosts (skip colon re-escaping)\n * @returns {string}\n */\nconst HOST_DELIMS = { '@': '%40', '/': '%2F', '?': '%3F', '#': '%23', ':': '%3A' }\nconst HOST_DELIM_RE = /[@/?#:]/g\nconst HOST_DELIM_NO_COLON_RE = /[@/?#]/g\n\nfunction reescapeHostDelimiters (host, isIP) {\n  const re = isIP ? HOST_DELIM_NO_COLON_RE : HOST_DELIM_RE\n  re.lastIndex = 0\n  return host.replace(re, (ch) => HOST_DELIMS[ch])\n}\n\n/**\n * Normalizes percent escapes and optionally decodes only unreserved ASCII bytes.\n * Reserved delimiters such as `%2F` and `%2E` stay escaped.\n *\n * @param {string} input\n * @param {boolean} [decodeUnreserved=false]\n * @returns {string}\n */\nfunction normalizePercentEncoding (input, decodeUnreserved = false) {\n  if (input.indexOf('%') === -1) {\n    return input\n  }\n\n  let output = ''\n\n  for (let i = 0; i < input.length; i++) {\n    if (input[i] === '%' && i + 2 < input.length) {\n      const hex = input.slice(i + 1, i + 3)\n      if (isHexPair(hex)) {\n        const normalizedHex = hex.toUpperCase()\n        const decoded = String.fromCharCode(parseInt(normalizedHex, 16))\n\n        if (decodeUnreserved && isUnreserved(decoded)) {\n          output += decoded\n        } else {\n          output += '%' + normalizedHex\n        }\n\n        i += 2\n        continue\n      }\n    }\n\n    output += input[i]\n  }\n\n  return output\n}\n\n/**\n * Normalizes path data without turning reserved escapes into live path syntax.\n * Valid escapes are uppercased, raw unsafe characters are escaped, and only\n * unreserved bytes that are not `.` are decoded.\n *\n * @param {string} input\n * @returns {string}\n */\nfunction normalizePathEncoding (input) {\n  let output = ''\n\n  for (let i = 0; i < input.length; i++) {\n    if (input[i] === '%' && i + 2 < input.length) {\n      const hex = input.slice(i + 1, i + 3)\n      if (isHexPair(hex)) {\n        const normalizedHex = hex.toUpperCase()\n        const decoded = String.fromCharCode(parseInt(normalizedHex, 16))\n\n        if (decoded !== '.' && isUnreserved(decoded)) {\n          output += decoded\n        } else {\n          output += '%' + normalizedHex\n        }\n\n        i += 2\n        continue\n      }\n    }\n\n    if (isPathCharacter(input[i])) {\n      output += input[i]\n    } else {\n      output += escape(input[i])\n    }\n  }\n\n  return output\n}\n\n/**\n * Escapes a component while preserving existing valid percent escapes.\n *\n * @param {string} input\n * @returns {string}\n */\nfunction escapePreservingEscapes (input) {\n  let output = ''\n\n  for (let i = 0; i < input.length; i++) {\n    if (input[i] === '%' && i + 2 < input.length) {\n      const hex = input.slice(i + 1, i + 3)\n      if (isHexPair(hex)) {\n        output += '%' + hex.toUpperCase()\n        i += 2\n        continue\n      }\n    }\n\n    output += escape(input[i])\n  }\n\n  return output\n}\n\n/**\n * @param {import('../types/index').URIComponent} component\n * @returns {string|undefined}\n */\nfunction recomposeAuthority (component) {\n  const uriTokens = []\n\n  if (component.userinfo !== undefined) {\n    uriTokens.push(component.userinfo)\n    uriTokens.push('@')\n  }\n\n  if (component.host !== undefined) {\n    let host = unescape(component.host)\n    if (!isIPv4(host)) {\n      const ipV6res = normalizeIPv6(host)\n      if (ipV6res.isIPV6 === true) {\n        host = `[${ipV6res.escapedHost}]`\n      } else {\n        host = reescapeHostDelimiters(host, false)\n      }\n    }\n    uriTokens.push(host)\n  }\n\n  if (typeof component.port === 'number' || typeof component.port === 'string') {\n    uriTokens.push(':')\n    uriTokens.push(String(component.port))\n  }\n\n  return uriTokens.length ? uriTokens.join('') : undefined\n};\n\nmodule.exports = {\n  nonSimpleDomain,\n  recomposeAuthority,\n  reescapeHostDelimiters,\n  normalizePercentEncoding,\n  normalizePathEncoding,\n  escapePreservingEscapes,\n  removeDotSegments,\n  isIPv4,\n  isUUID,\n  normalizeIPv6,\n  stringArrayToHexStripped\n}\n","'use strict'\n\nconst { isUUID } = require('./utils')\nconst URN_REG = /([\\da-z][\\d\\-a-z]{0,31}):((?:[\\w!$'()*+,\\-.:;=@]|%[\\da-f]{2})+)/iu\n\nconst supportedSchemeNames = /** @type {const} */ (['http', 'https', 'ws',\n  'wss', 'urn', 'urn:uuid'])\n\n/** @typedef {supportedSchemeNames[number]} SchemeName */\n\n/**\n * @param {string} name\n * @returns {name is SchemeName}\n */\nfunction isValidSchemeName (name) {\n  return supportedSchemeNames.indexOf(/** @type {*} */ (name)) !== -1\n}\n\n/**\n * @callback SchemeFn\n * @param {import('../types/index').URIComponent} component\n * @param {import('../types/index').Options} options\n * @returns {import('../types/index').URIComponent}\n */\n\n/**\n * @typedef {Object} SchemeHandler\n * @property {SchemeName} scheme - The scheme name.\n * @property {boolean} [domainHost] - Indicates if the scheme supports domain hosts.\n * @property {SchemeFn} parse - Function to parse the URI component for this scheme.\n * @property {SchemeFn} serialize - Function to serialize the URI component for this scheme.\n * @property {boolean} [skipNormalize] - Indicates if normalization should be skipped for this scheme.\n * @property {boolean} [absolutePath] - Indicates if the scheme uses absolute paths.\n * @property {boolean} [unicodeSupport] - Indicates if the scheme supports Unicode.\n */\n\n/**\n * @param {import('../types/index').URIComponent} wsComponent\n * @returns {boolean}\n */\nfunction wsIsSecure (wsComponent) {\n  if (wsComponent.secure === true) {\n    return true\n  } else if (wsComponent.secure === false) {\n    return false\n  } else if (wsComponent.scheme) {\n    return (\n      wsComponent.scheme.length === 3 &&\n      (wsComponent.scheme[0] === 'w' || wsComponent.scheme[0] === 'W') &&\n      (wsComponent.scheme[1] === 's' || wsComponent.scheme[1] === 'S') &&\n      (wsComponent.scheme[2] === 's' || wsComponent.scheme[2] === 'S')\n    )\n  } else {\n    return false\n  }\n}\n\n/** @type {SchemeFn} */\nfunction httpParse (component) {\n  if (!component.host) {\n    component.error = component.error || 'HTTP URIs must have a host.'\n  }\n\n  return component\n}\n\n/** @type {SchemeFn} */\nfunction httpSerialize (component) {\n  const secure = String(component.scheme).toLowerCase() === 'https'\n\n  // normalize the default port\n  if (component.port === (secure ? 443 : 80) || component.port === '') {\n    component.port = undefined\n  }\n\n  // normalize the empty path\n  if (!component.path) {\n    component.path = '/'\n  }\n\n  // NOTE: We do not parse query strings for HTTP URIs\n  // as WWW Form Url Encoded query strings are part of the HTML4+ spec,\n  // and not the HTTP spec.\n\n  return component\n}\n\n/** @type {SchemeFn} */\nfunction wsParse (wsComponent) {\n// indicate if the secure flag is set\n  wsComponent.secure = wsIsSecure(wsComponent)\n\n  // construct resouce name\n  wsComponent.resourceName = (wsComponent.path || '/') + (wsComponent.query ? '?' + wsComponent.query : '')\n  wsComponent.path = undefined\n  wsComponent.query = undefined\n\n  return wsComponent\n}\n\n/** @type {SchemeFn} */\nfunction wsSerialize (wsComponent) {\n// normalize the default port\n  if (wsComponent.port === (wsIsSecure(wsComponent) ? 443 : 80) || wsComponent.port === '') {\n    wsComponent.port = undefined\n  }\n\n  // ensure scheme matches secure flag\n  if (typeof wsComponent.secure === 'boolean') {\n    wsComponent.scheme = (wsComponent.secure ? 'wss' : 'ws')\n    wsComponent.secure = undefined\n  }\n\n  // reconstruct path from resource name\n  if (wsComponent.resourceName) {\n    const [path, query] = wsComponent.resourceName.split('?')\n    wsComponent.path = (path && path !== '/' ? path : undefined)\n    wsComponent.query = query\n    wsComponent.resourceName = undefined\n  }\n\n  // forbid fragment component\n  wsComponent.fragment = undefined\n\n  return wsComponent\n}\n\n/** @type {SchemeFn} */\nfunction urnParse (urnComponent, options) {\n  if (!urnComponent.path) {\n    urnComponent.error = 'URN can not be parsed'\n    return urnComponent\n  }\n  const matches = urnComponent.path.match(URN_REG)\n  if (matches) {\n    const scheme = options.scheme || urnComponent.scheme || 'urn'\n    urnComponent.nid = matches[1].toLowerCase()\n    urnComponent.nss = matches[2]\n    const urnScheme = `${scheme}:${options.nid || urnComponent.nid}`\n    const schemeHandler = getSchemeHandler(urnScheme)\n    urnComponent.path = undefined\n\n    if (schemeHandler) {\n      urnComponent = schemeHandler.parse(urnComponent, options)\n    }\n  } else {\n    urnComponent.error = urnComponent.error || 'URN can not be parsed.'\n  }\n\n  return urnComponent\n}\n\n/** @type {SchemeFn} */\nfunction urnSerialize (urnComponent, options) {\n  if (urnComponent.nid === undefined) {\n    throw new Error('URN without nid cannot be serialized')\n  }\n  const scheme = options.scheme || urnComponent.scheme || 'urn'\n  const nid = urnComponent.nid.toLowerCase()\n  const urnScheme = `${scheme}:${options.nid || nid}`\n  const schemeHandler = getSchemeHandler(urnScheme)\n\n  if (schemeHandler) {\n    urnComponent = schemeHandler.serialize(urnComponent, options)\n  }\n\n  const uriComponent = urnComponent\n  const nss = urnComponent.nss\n  uriComponent.path = `${nid || options.nid}:${nss}`\n\n  options.skipEscape = true\n  return uriComponent\n}\n\n/** @type {SchemeFn} */\nfunction urnuuidParse (urnComponent, options) {\n  const uuidComponent = urnComponent\n  uuidComponent.uuid = uuidComponent.nss\n  uuidComponent.nss = undefined\n\n  if (!options.tolerant && (!uuidComponent.uuid || !isUUID(uuidComponent.uuid))) {\n    uuidComponent.error = uuidComponent.error || 'UUID is not valid.'\n  }\n\n  return uuidComponent\n}\n\n/** @type {SchemeFn} */\nfunction urnuuidSerialize (uuidComponent) {\n  const urnComponent = uuidComponent\n  // normalize UUID\n  urnComponent.nss = (uuidComponent.uuid || '').toLowerCase()\n  return urnComponent\n}\n\nconst http = /** @type {SchemeHandler} */ ({\n  scheme: 'http',\n  domainHost: true,\n  parse: httpParse,\n  serialize: httpSerialize\n})\n\nconst https = /** @type {SchemeHandler} */ ({\n  scheme: 'https',\n  domainHost: http.domainHost,\n  parse: httpParse,\n  serialize: httpSerialize\n})\n\nconst ws = /** @type {SchemeHandler} */ ({\n  scheme: 'ws',\n  domainHost: true,\n  parse: wsParse,\n  serialize: wsSerialize\n})\n\nconst wss = /** @type {SchemeHandler} */ ({\n  scheme: 'wss',\n  domainHost: ws.domainHost,\n  parse: ws.parse,\n  serialize: ws.serialize\n})\n\nconst urn = /** @type {SchemeHandler} */ ({\n  scheme: 'urn',\n  parse: urnParse,\n  serialize: urnSerialize,\n  skipNormalize: true\n})\n\nconst urnuuid = /** @type {SchemeHandler} */ ({\n  scheme: 'urn:uuid',\n  parse: urnuuidParse,\n  serialize: urnuuidSerialize,\n  skipNormalize: true\n})\n\nconst SCHEMES = /** @type {Record<SchemeName, SchemeHandler>} */ ({\n  http,\n  https,\n  ws,\n  wss,\n  urn,\n  'urn:uuid': urnuuid\n})\n\nObject.setPrototypeOf(SCHEMES, null)\n\n/**\n * @param {string|undefined} scheme\n * @returns {SchemeHandler|undefined}\n */\nfunction getSchemeHandler (scheme) {\n  return (\n    scheme && (\n      SCHEMES[/** @type {SchemeName} */ (scheme)] ||\n      SCHEMES[/** @type {SchemeName} */(scheme.toLowerCase())])\n  ) ||\n    undefined\n}\n\nmodule.exports = {\n  wsIsSecure,\n  SCHEMES,\n  isValidSchemeName,\n  getSchemeHandler,\n}\n","'use strict'\n\nconst { normalizeIPv6, removeDotSegments, recomposeAuthority, normalizePercentEncoding, normalizePathEncoding, escapePreservingEscapes, reescapeHostDelimiters, isIPv4, nonSimpleDomain } = require('./lib/utils')\nconst { SCHEMES, getSchemeHandler } = require('./lib/schemes')\n\n/**\n * @template {import('./types/index').URIComponent|string} T\n * @param {T} uri\n * @param {import('./types/index').Options} [options]\n * @returns {T}\n */\nfunction normalize (uri, options) {\n  if (typeof uri === 'string') {\n    uri = /** @type {T} */ (normalizeString(uri, options))\n  } else if (typeof uri === 'object') {\n    uri = /** @type {T} */ (parse(serialize(uri, options), options))\n  }\n  return uri\n}\n\n/**\n * @param {string} baseURI\n * @param {string} relativeURI\n * @param {import('./types/index').Options} [options]\n * @returns {string}\n */\nfunction resolve (baseURI, relativeURI, options) {\n  const schemelessOptions = options ? Object.assign({ scheme: 'null' }, options) : { scheme: 'null' }\n  const resolved = resolveComponent(parse(baseURI, schemelessOptions), parse(relativeURI, schemelessOptions), schemelessOptions, true)\n  schemelessOptions.skipEscape = true\n  return serialize(resolved, schemelessOptions)\n}\n\n/**\n * @param {import ('./types/index').URIComponent} base\n * @param {import ('./types/index').URIComponent} relative\n * @param {import('./types/index').Options} [options]\n * @param {boolean} [skipNormalization=false]\n * @returns {import ('./types/index').URIComponent}\n */\nfunction resolveComponent (base, relative, options, skipNormalization) {\n  /** @type {import('./types/index').URIComponent} */\n  const target = {}\n  if (!skipNormalization) {\n    base = parse(serialize(base, options), options) // normalize base component\n    relative = parse(serialize(relative, options), options) // normalize relative component\n  }\n  options = options || {}\n\n  if (!options.tolerant && relative.scheme) {\n    target.scheme = relative.scheme\n    // target.authority = relative.authority;\n    target.userinfo = relative.userinfo\n    target.host = relative.host\n    target.port = relative.port\n    target.path = removeDotSegments(relative.path || '')\n    target.query = relative.query\n  } else {\n    if (relative.userinfo !== undefined || relative.host !== undefined || relative.port !== undefined) {\n      // target.authority = relative.authority;\n      target.userinfo = relative.userinfo\n      target.host = relative.host\n      target.port = relative.port\n      target.path = removeDotSegments(relative.path || '')\n      target.query = relative.query\n    } else {\n      if (!relative.path) {\n        target.path = base.path\n        if (relative.query !== undefined) {\n          target.query = relative.query\n        } else {\n          target.query = base.query\n        }\n      } else {\n        if (relative.path[0] === '/') {\n          target.path = removeDotSegments(relative.path)\n        } else {\n          if ((base.userinfo !== undefined || base.host !== undefined || base.port !== undefined) && !base.path) {\n            target.path = '/' + relative.path\n          } else if (!base.path) {\n            target.path = relative.path\n          } else {\n            target.path = base.path.slice(0, base.path.lastIndexOf('/') + 1) + relative.path\n          }\n          target.path = removeDotSegments(target.path)\n        }\n        target.query = relative.query\n      }\n      // target.authority = base.authority;\n      target.userinfo = base.userinfo\n      target.host = base.host\n      target.port = base.port\n    }\n    target.scheme = base.scheme\n  }\n\n  target.fragment = relative.fragment\n\n  return target\n}\n\n/**\n * @param {import ('./types/index').URIComponent|string} uriA\n * @param {import ('./types/index').URIComponent|string} uriB\n * @param {import ('./types/index').Options} options\n * @returns {boolean}\n */\nfunction equal (uriA, uriB, options) {\n  const normalizedA = normalizeComparableURI(uriA, options)\n  const normalizedB = normalizeComparableURI(uriB, options)\n\n  return normalizedA !== undefined && normalizedB !== undefined && normalizedA.toLowerCase() === normalizedB.toLowerCase()\n}\n\n/**\n * @param {Readonly<import('./types/index').URIComponent>} cmpts\n * @param {import('./types/index').Options} [opts]\n * @returns {string}\n */\nfunction serialize (cmpts, opts) {\n  const component = {\n    host: cmpts.host,\n    scheme: cmpts.scheme,\n    userinfo: cmpts.userinfo,\n    port: cmpts.port,\n    path: cmpts.path,\n    query: cmpts.query,\n    nid: cmpts.nid,\n    nss: cmpts.nss,\n    uuid: cmpts.uuid,\n    fragment: cmpts.fragment,\n    reference: cmpts.reference,\n    resourceName: cmpts.resourceName,\n    secure: cmpts.secure,\n    error: ''\n  }\n  const options = Object.assign({}, opts)\n  const uriTokens = []\n\n  // find scheme handler\n  const schemeHandler = getSchemeHandler(options.scheme || component.scheme)\n\n  // perform scheme specific serialization\n  if (schemeHandler && schemeHandler.serialize) schemeHandler.serialize(component, options)\n\n  if (component.path !== undefined) {\n    if (!options.skipEscape) {\n      component.path = escapePreservingEscapes(component.path)\n\n      if (component.scheme !== undefined) {\n        component.path = component.path.split('%3A').join(':')\n      }\n    } else {\n      component.path = normalizePercentEncoding(component.path)\n    }\n  }\n\n  if (options.reference !== 'suffix' && component.scheme) {\n    uriTokens.push(component.scheme, ':')\n  }\n\n  const authority = recomposeAuthority(component)\n  if (authority !== undefined) {\n    if (options.reference !== 'suffix') {\n      uriTokens.push('//')\n    }\n\n    uriTokens.push(authority)\n\n    if (component.path && component.path[0] !== '/') {\n      uriTokens.push('/')\n    }\n  }\n  if (component.path !== undefined) {\n    let s = component.path\n\n    if (!options.absolutePath && (!schemeHandler || !schemeHandler.absolutePath)) {\n      s = removeDotSegments(s)\n    }\n\n    if (\n      authority === undefined &&\n      s[0] === '/' &&\n      s[1] === '/'\n    ) {\n      // don't allow the path to start with \"//\"\n      s = '/%2F' + s.slice(2)\n    }\n\n    uriTokens.push(s)\n  }\n\n  if (component.query !== undefined) {\n    uriTokens.push('?', component.query)\n  }\n\n  if (component.fragment !== undefined) {\n    uriTokens.push('#', component.fragment)\n  }\n  return uriTokens.join('')\n}\n\nconst URI_PARSE = /^(?:([^#/:?]+):)?(?:\\/\\/((?:([^#/?@]*)@)?(\\[[^#/?\\]]+\\]|[^#/:?]*)(?::(\\d*))?))?([^#?]*)(?:\\?([^#]*))?(?:#((?:.|[\\n\\r])*))?/u\n\n/**\n * @param {import('./types/index').URIComponent} parsed\n * @param {RegExpMatchArray} matches\n * @returns {string|undefined}\n */\nfunction getParseError (parsed, matches) {\n  if (matches[2] !== undefined && parsed.path && parsed.path[0] !== '/') {\n    return 'URI path must start with \"/\" when authority is present.'\n  }\n\n  if (typeof parsed.port === 'number' && (parsed.port < 0 || parsed.port > 65535)) {\n    return 'URI port is malformed.'\n  }\n\n  return undefined\n}\n\n/**\n * @param {string} uri\n * @param {import('./types/index').Options} [opts]\n * @returns {{ parsed: import('./types/index').URIComponent, malformedAuthorityOrPort: boolean }}\n */\nfunction parseWithStatus (uri, opts) {\n  const options = Object.assign({}, opts)\n  /** @type {import('./types/index').URIComponent} */\n  const parsed = {\n    scheme: undefined,\n    userinfo: undefined,\n    host: '',\n    port: undefined,\n    path: '',\n    query: undefined,\n    fragment: undefined\n  }\n\n  let malformedAuthorityOrPort = false\n\n  let isIP = false\n  if (options.reference === 'suffix') {\n    if (options.scheme) {\n      uri = options.scheme + ':' + uri\n    } else {\n      uri = '//' + uri\n    }\n  }\n\n  const matches = uri.match(URI_PARSE)\n\n  if (matches) {\n    // store each component\n    parsed.scheme = matches[1]\n    parsed.userinfo = matches[3]\n    parsed.host = matches[4]\n    parsed.port = parseInt(matches[5], 10)\n    parsed.path = matches[6] || ''\n    parsed.query = matches[7]\n    parsed.fragment = matches[8]\n\n    // fix port number\n    if (isNaN(parsed.port)) {\n      parsed.port = matches[5]\n    }\n\n    const parseError = getParseError(parsed, matches)\n    if (parseError !== undefined) {\n      parsed.error = parsed.error || parseError\n      malformedAuthorityOrPort = true\n    }\n\n    if (parsed.host) {\n      const ipv4result = isIPv4(parsed.host)\n      if (ipv4result === false) {\n        const ipv6result = normalizeIPv6(parsed.host)\n        parsed.host = ipv6result.host.toLowerCase()\n        isIP = ipv6result.isIPV6\n      } else {\n        isIP = true\n      }\n    }\n    if (parsed.scheme === undefined && parsed.userinfo === undefined && parsed.host === undefined && parsed.port === undefined && parsed.query === undefined && !parsed.path) {\n      parsed.reference = 'same-document'\n    } else if (parsed.scheme === undefined) {\n      parsed.reference = 'relative'\n    } else if (parsed.fragment === undefined) {\n      parsed.reference = 'absolute'\n    } else {\n      parsed.reference = 'uri'\n    }\n\n    // check for reference errors\n    if (options.reference && options.reference !== 'suffix' && options.reference !== parsed.reference) {\n      parsed.error = parsed.error || 'URI is not a ' + options.reference + ' reference.'\n    }\n\n    // find scheme handler\n    const schemeHandler = getSchemeHandler(options.scheme || parsed.scheme)\n\n    // check if scheme can't handle IRIs\n    if (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport)) {\n      // if host component is a domain name\n      if (parsed.host && (options.domainHost || (schemeHandler && schemeHandler.domainHost)) && isIP === false && nonSimpleDomain(parsed.host)) {\n        // convert Unicode IDN -> ASCII IDN\n        try {\n          parsed.host = new URL('http://' + parsed.host).hostname\n        } catch (e) {\n          parsed.error = parsed.error || \"Host's domain name can not be converted to ASCII: \" + e\n        }\n      }\n      // convert IRI -> URI\n    }\n\n    if (!schemeHandler || (schemeHandler && !schemeHandler.skipNormalize)) {\n      if (uri.indexOf('%') !== -1) {\n        if (parsed.scheme !== undefined) {\n          parsed.scheme = unescape(parsed.scheme)\n        }\n        if (parsed.host !== undefined) {\n          parsed.host = reescapeHostDelimiters(unescape(parsed.host), isIP)\n        }\n      }\n      if (parsed.path) {\n        parsed.path = normalizePathEncoding(parsed.path)\n      }\n      if (parsed.fragment) {\n        try {\n          parsed.fragment = encodeURI(decodeURIComponent(parsed.fragment))\n        } catch {\n          parsed.error = parsed.error || 'URI malformed'\n        }\n      }\n    }\n\n    // perform scheme specific parsing\n    if (schemeHandler && schemeHandler.parse) {\n      schemeHandler.parse(parsed, options)\n    }\n  } else {\n    parsed.error = parsed.error || 'URI can not be parsed.'\n  }\n  return { parsed, malformedAuthorityOrPort }\n}\n\n/**\n * @param {string} uri\n * @param {import('./types/index').Options} [opts]\n * @returns\n */\nfunction parse (uri, opts) {\n  return parseWithStatus(uri, opts).parsed\n}\n\n/**\n * @param {string} uri\n * @param {import('./types/index').Options} [opts]\n * @returns {string}\n */\nfunction normalizeString (uri, opts) {\n  return normalizeStringWithStatus(uri, opts).normalized\n}\n\n/**\n * @param {string} uri\n * @param {import('./types/index').Options} [opts]\n * @returns {{ normalized: string, malformedAuthorityOrPort: boolean }}\n */\nfunction normalizeStringWithStatus (uri, opts) {\n  const { parsed, malformedAuthorityOrPort } = parseWithStatus(uri, opts)\n  return {\n    normalized: malformedAuthorityOrPort ? uri : serialize(parsed, opts),\n    malformedAuthorityOrPort\n  }\n}\n\n/**\n * @param {import ('./types/index').URIComponent|string} uri\n * @param {import('./types/index').Options} [opts]\n * @returns {string|undefined}\n */\nfunction normalizeComparableURI (uri, opts) {\n  if (typeof uri === 'string') {\n    const { normalized, malformedAuthorityOrPort } = normalizeStringWithStatus(uri, opts)\n    return malformedAuthorityOrPort ? undefined : normalized\n  }\n\n  if (typeof uri === 'object') {\n    return serialize(uri, opts)\n  }\n}\n\nconst fastUri = {\n  SCHEMES,\n  normalize,\n  resolve,\n  resolveComponent,\n  equal,\n  serialize,\n  parse\n}\n\nmodule.exports = fastUri\nmodule.exports.default = fastUri\nmodule.exports.fastUri = fastUri\n","import * as uri from \"fast-uri\"\n\ntype URI = typeof uri & {code: string}\n;(uri as URI).code = 'require(\"ajv/dist/runtime/uri\").default'\n\nexport default uri as URI\n","export {\n  Format,\n  FormatDefinition,\n  AsyncFormatDefinition,\n  KeywordDefinition,\n  KeywordErrorDefinition,\n  CodeKeywordDefinition,\n  MacroKeywordDefinition,\n  FuncKeywordDefinition,\n  Vocabulary,\n  Schema,\n  SchemaObject,\n  AnySchemaObject,\n  AsyncSchema,\n  AnySchema,\n  ValidateFunction,\n  AsyncValidateFunction,\n  AnyValidateFunction,\n  ErrorObject,\n  ErrorNoParams,\n} from \"./types\"\n\nexport {SchemaCxt, SchemaObjCxt} from \"./compile\"\nexport interface Plugin<Opts> {\n  (ajv: Ajv, options?: Opts): Ajv\n  [prop: string]: any\n}\n\nexport {KeywordCxt} from \"./compile/validate\"\nexport {DefinedError} from \"./vocabularies/errors\"\nexport {JSONType} from \"./compile/rules\"\nexport {JSONSchemaType} from \"./types/json-schema\"\nexport {JTDSchemaType, SomeJTDSchemaType, JTDDataType} from \"./types/jtd-schema\"\nexport {_, str, stringify, nil, Name, Code, CodeGen, CodeGenOptions} from \"./compile/codegen\"\n\nimport type {\n  Schema,\n  AnySchema,\n  AnySchemaObject,\n  SchemaObject,\n  AsyncSchema,\n  Vocabulary,\n  KeywordDefinition,\n  AddedKeywordDefinition,\n  AnyValidateFunction,\n  ValidateFunction,\n  AsyncValidateFunction,\n  ErrorObject,\n  Format,\n  AddedFormat,\n  RegExpEngine,\n  UriResolver,\n} from \"./types\"\nimport type {JSONSchemaType} from \"./types/json-schema\"\nimport type {JTDSchemaType, SomeJTDSchemaType, JTDDataType} from \"./types/jtd-schema\"\nimport ValidationError from \"./runtime/validation_error\"\nimport MissingRefError from \"./compile/ref_error\"\nimport {getRules, ValidationRules, Rule, RuleGroup, JSONType} from \"./compile/rules\"\nimport {SchemaEnv, compileSchema, resolveSchema} from \"./compile\"\nimport {Code, ValueScope} from \"./compile/codegen\"\nimport {normalizeId, getSchemaRefs} from \"./compile/resolve\"\nimport {getJSONTypes} from \"./compile/validate/dataType\"\nimport {eachItem} from \"./compile/util\"\nimport * as $dataRefSchema from \"./refs/data.json\"\n\nimport DefaultUriResolver from \"./runtime/uri\"\n\nconst defaultRegExp: RegExpEngine = (str, flags) => new RegExp(str, flags)\ndefaultRegExp.code = \"new RegExp\"\n\nconst META_IGNORE_OPTIONS: (keyof Options)[] = [\"removeAdditional\", \"useDefaults\", \"coerceTypes\"]\nconst EXT_SCOPE_NAMES = new Set([\n  \"validate\",\n  \"serialize\",\n  \"parse\",\n  \"wrapper\",\n  \"root\",\n  \"schema\",\n  \"keyword\",\n  \"pattern\",\n  \"formats\",\n  \"validate$data\",\n  \"func\",\n  \"obj\",\n  \"Error\",\n])\n\nexport type Options = CurrentOptions & DeprecatedOptions\n\nexport interface CurrentOptions {\n  // strict mode options (NEW)\n  strict?: boolean | \"log\"\n  strictSchema?: boolean | \"log\"\n  strictNumbers?: boolean | \"log\"\n  strictTypes?: boolean | \"log\"\n  strictTuples?: boolean | \"log\"\n  strictRequired?: boolean | \"log\"\n  allowMatchingProperties?: boolean // disables a strict mode restriction\n  allowUnionTypes?: boolean\n  validateFormats?: boolean\n  // validation and reporting options:\n  $data?: boolean\n  allErrors?: boolean\n  verbose?: boolean\n  discriminator?: boolean\n  unicodeRegExp?: boolean\n  timestamp?: \"string\" | \"date\" // JTD only\n  parseDate?: boolean // JTD only\n  allowDate?: boolean // JTD only\n  specialNumbers?: \"fast\" | \"null\" // JTD only\n  $comment?:\n    | true\n    | ((comment: string, schemaPath?: string, rootSchema?: AnySchemaObject) => unknown)\n  formats?: {[Name in string]?: Format}\n  keywords?: Vocabulary\n  schemas?: AnySchema[] | {[Key in string]?: AnySchema}\n  logger?: Logger | false\n  loadSchema?: (uri: string) => Promise<AnySchemaObject>\n  // options to modify validated data:\n  removeAdditional?: boolean | \"all\" | \"failing\"\n  useDefaults?: boolean | \"empty\"\n  coerceTypes?: boolean | \"array\"\n  // advanced options:\n  next?: boolean // NEW\n  unevaluated?: boolean // NEW\n  dynamicRef?: boolean // NEW\n  schemaId?: \"id\" | \"$id\"\n  jtd?: boolean // NEW\n  meta?: SchemaObject | boolean\n  defaultMeta?: string | AnySchemaObject\n  validateSchema?: boolean | \"log\"\n  addUsedSchema?: boolean\n  inlineRefs?: boolean | number\n  passContext?: boolean\n  loopRequired?: number\n  loopEnum?: number // NEW\n  ownProperties?: boolean\n  multipleOfPrecision?: number\n  int32range?: boolean // JTD only\n  messages?: boolean\n  code?: CodeOptions // NEW\n  uriResolver?: UriResolver\n}\n\nexport interface CodeOptions {\n  es5?: boolean\n  esm?: boolean\n  lines?: boolean\n  optimize?: boolean | number\n  formats?: Code // code to require (or construct) map of available formats - for standalone code\n  source?: boolean\n  process?: (code: string, schema?: SchemaEnv) => string\n  regExp?: RegExpEngine\n}\n\ninterface InstanceCodeOptions extends CodeOptions {\n  regExp: RegExpEngine\n  optimize: number\n}\n\ninterface DeprecatedOptions {\n  /** @deprecated */\n  ignoreKeywordsWithRef?: boolean\n  /** @deprecated */\n  jsPropertySyntax?: boolean // added instead of jsonPointers\n  /** @deprecated */\n  unicode?: boolean\n}\n\ninterface RemovedOptions {\n  format?: boolean\n  errorDataPath?: \"object\" | \"property\"\n  nullable?: boolean // \"nullable\" keyword is supported by default\n  jsonPointers?: boolean\n  extendRefs?: true | \"ignore\" | \"fail\"\n  missingRefs?: true | \"ignore\" | \"fail\"\n  processCode?: (code: string, schema?: SchemaEnv) => string\n  sourceCode?: boolean\n  strictDefaults?: boolean\n  strictKeywords?: boolean\n  uniqueItems?: boolean\n  unknownFormats?: true | string[] | \"ignore\"\n  cache?: any\n  serialize?: (schema: AnySchema) => unknown\n  ajvErrors?: boolean\n}\n\ntype OptionsInfo<T extends RemovedOptions | DeprecatedOptions> = {\n  [K in keyof T]-?: string | undefined\n}\n\nconst removedOptions: OptionsInfo<RemovedOptions> = {\n  errorDataPath: \"\",\n  format: \"`validateFormats: false` can be used instead.\",\n  nullable: '\"nullable\" keyword is supported by default.',\n  jsonPointers: \"Deprecated jsPropertySyntax can be used instead.\",\n  extendRefs: \"Deprecated ignoreKeywordsWithRef can be used instead.\",\n  missingRefs: \"Pass empty schema with $id that should be ignored to ajv.addSchema.\",\n  processCode: \"Use option `code: {process: (code, schemaEnv: object) => string}`\",\n  sourceCode: \"Use option `code: {source: true}`\",\n  strictDefaults: \"It is default now, see option `strict`.\",\n  strictKeywords: \"It is default now, see option `strict`.\",\n  uniqueItems: '\"uniqueItems\" keyword is always validated.',\n  unknownFormats: \"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).\",\n  cache: \"Map is used as cache, schema object as key.\",\n  serialize: \"Map is used as cache, schema object as key.\",\n  ajvErrors: \"It is default now.\",\n}\n\nconst deprecatedOptions: OptionsInfo<DeprecatedOptions> = {\n  ignoreKeywordsWithRef: \"\",\n  jsPropertySyntax: \"\",\n  unicode: '\"minLength\"/\"maxLength\" account for unicode characters by default.',\n}\n\ntype RequiredInstanceOptions = {\n  [K in\n    | \"strictSchema\"\n    | \"strictNumbers\"\n    | \"strictTypes\"\n    | \"strictTuples\"\n    | \"strictRequired\"\n    | \"inlineRefs\"\n    | \"loopRequired\"\n    | \"loopEnum\"\n    | \"meta\"\n    | \"messages\"\n    | \"schemaId\"\n    | \"addUsedSchema\"\n    | \"validateSchema\"\n    | \"validateFormats\"\n    | \"int32range\"\n    | \"unicodeRegExp\"\n    | \"uriResolver\"]: NonNullable<Options[K]>\n} & {code: InstanceCodeOptions}\n\nexport type InstanceOptions = Options & RequiredInstanceOptions\n\nconst MAX_EXPRESSION = 200\n\n// eslint-disable-next-line complexity\nfunction requiredOptions(o: Options): RequiredInstanceOptions {\n  const s = o.strict\n  const _optz = o.code?.optimize\n  const optimize = _optz === true || _optz === undefined ? 1 : _optz || 0\n  const regExp = o.code?.regExp ?? defaultRegExp\n  const uriResolver = o.uriResolver ?? DefaultUriResolver\n  return {\n    strictSchema: o.strictSchema ?? s ?? true,\n    strictNumbers: o.strictNumbers ?? s ?? true,\n    strictTypes: o.strictTypes ?? s ?? \"log\",\n    strictTuples: o.strictTuples ?? s ?? \"log\",\n    strictRequired: o.strictRequired ?? s ?? false,\n    code: o.code ? {...o.code, optimize, regExp} : {optimize, regExp},\n    loopRequired: o.loopRequired ?? MAX_EXPRESSION,\n    loopEnum: o.loopEnum ?? MAX_EXPRESSION,\n    meta: o.meta ?? true,\n    messages: o.messages ?? true,\n    inlineRefs: o.inlineRefs ?? true,\n    schemaId: o.schemaId ?? \"$id\",\n    addUsedSchema: o.addUsedSchema ?? true,\n    validateSchema: o.validateSchema ?? true,\n    validateFormats: o.validateFormats ?? true,\n    unicodeRegExp: o.unicodeRegExp ?? true,\n    int32range: o.int32range ?? true,\n    uriResolver: uriResolver,\n  }\n}\n\nexport interface Logger {\n  log(...args: unknown[]): unknown\n  warn(...args: unknown[]): unknown\n  error(...args: unknown[]): unknown\n}\n\nexport default class Ajv {\n  opts: InstanceOptions\n  errors?: ErrorObject[] | null // errors from the last validation\n  logger: Logger\n  // shared external scope values for compiled functions\n  readonly scope: ValueScope\n  readonly schemas: {[Key in string]?: SchemaEnv} = {}\n  readonly refs: {[Ref in string]?: SchemaEnv | string} = {}\n  readonly formats: {[Name in string]?: AddedFormat} = Object.create(null)\n  readonly RULES: ValidationRules\n  readonly _compilations: Set<SchemaEnv> = new Set()\n  private readonly _loading: {[Ref in string]?: Promise<AnySchemaObject>} = {}\n  private readonly _cache: Map<AnySchema, SchemaEnv> = new Map()\n  private readonly _metaOpts: InstanceOptions\n\n  static ValidationError = ValidationError\n  static MissingRefError = MissingRefError\n\n  constructor(opts: Options = {}) {\n    opts = this.opts = {...opts, ...requiredOptions(opts)}\n    const {es5, lines} = this.opts.code\n\n    this.scope = new ValueScope({scope: {}, prefixes: EXT_SCOPE_NAMES, es5, lines})\n    this.logger = getLogger(opts.logger)\n    const formatOpt = opts.validateFormats\n    opts.validateFormats = false\n\n    this.RULES = getRules()\n    checkOptions.call(this, removedOptions, opts, \"NOT SUPPORTED\")\n    checkOptions.call(this, deprecatedOptions, opts, \"DEPRECATED\", \"warn\")\n    this._metaOpts = getMetaSchemaOptions.call(this)\n\n    if (opts.formats) addInitialFormats.call(this)\n    this._addVocabularies()\n    this._addDefaultMetaSchema()\n    if (opts.keywords) addInitialKeywords.call(this, opts.keywords)\n    if (typeof opts.meta == \"object\") this.addMetaSchema(opts.meta)\n    addInitialSchemas.call(this)\n    opts.validateFormats = formatOpt\n  }\n\n  _addVocabularies(): void {\n    this.addKeyword(\"$async\")\n  }\n\n  _addDefaultMetaSchema(): void {\n    const {$data, meta, schemaId} = this.opts\n    let _dataRefSchema: SchemaObject = $dataRefSchema\n    if (schemaId === \"id\") {\n      _dataRefSchema = {...$dataRefSchema}\n      _dataRefSchema.id = _dataRefSchema.$id\n      delete _dataRefSchema.$id\n    }\n    if (meta && $data) this.addMetaSchema(_dataRefSchema, _dataRefSchema[schemaId], false)\n  }\n\n  defaultMeta(): string | AnySchemaObject | undefined {\n    const {meta, schemaId} = this.opts\n    return (this.opts.defaultMeta = typeof meta == \"object\" ? meta[schemaId] || meta : undefined)\n  }\n\n  // Validate data using schema\n  // AnySchema will be compiled and cached using schema itself as a key for Map\n  validate(schema: Schema | string, data: unknown): boolean\n  validate(schemaKeyRef: AnySchema | string, data: unknown): boolean | Promise<unknown>\n  validate<T>(schema: Schema | JSONSchemaType<T> | string, data: unknown): data is T\n  // Separated for type inference to work\n  // eslint-disable-next-line @typescript-eslint/unified-signatures\n  validate<T>(schema: JTDSchemaType<T>, data: unknown): data is T\n  // This overload is only intended for typescript inference, the first\n  // argument prevents manual type annotation from matching this overload\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  validate<N extends never, T extends SomeJTDSchemaType>(\n    schema: T,\n    data: unknown\n  ): data is JTDDataType<T>\n  // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\n  validate<T>(schema: AsyncSchema, data: unknown | T): Promise<T>\n  validate<T>(schemaKeyRef: AnySchema | string, data: unknown): data is T | Promise<T>\n  validate<T>(\n    schemaKeyRef: AnySchema | string, // key, ref or schema object\n    // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\n    data: unknown | T // to be validated\n  ): boolean | Promise<T> {\n    let v: AnyValidateFunction | undefined\n    if (typeof schemaKeyRef == \"string\") {\n      v = this.getSchema<T>(schemaKeyRef)\n      if (!v) throw new Error(`no schema with key or ref \"${schemaKeyRef}\"`)\n    } else {\n      v = this.compile<T>(schemaKeyRef)\n    }\n\n    const valid = v(data)\n    if (!(\"$async\" in v)) this.errors = v.errors\n    return valid\n  }\n\n  // Create validation function for passed schema\n  // _meta: true if schema is a meta-schema. Used internally to compile meta schemas of user-defined keywords.\n  compile<T = unknown>(schema: Schema | JSONSchemaType<T>, _meta?: boolean): ValidateFunction<T>\n  // Separated for type inference to work\n  // eslint-disable-next-line @typescript-eslint/unified-signatures\n  compile<T = unknown>(schema: JTDSchemaType<T>, _meta?: boolean): ValidateFunction<T>\n  // This overload is only intended for typescript inference, the first\n  // argument prevents manual type annotation from matching this overload\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  compile<N extends never, T extends SomeJTDSchemaType>(\n    schema: T,\n    _meta?: boolean\n  ): ValidateFunction<JTDDataType<T>>\n  compile<T = unknown>(schema: AsyncSchema, _meta?: boolean): AsyncValidateFunction<T>\n  compile<T = unknown>(schema: AnySchema, _meta?: boolean): AnyValidateFunction<T>\n  compile<T = unknown>(schema: AnySchema, _meta?: boolean): AnyValidateFunction<T> {\n    const sch = this._addSchema(schema, _meta)\n    return (sch.validate || this._compileSchemaEnv(sch)) as AnyValidateFunction<T>\n  }\n\n  // Creates validating function for passed schema with asynchronous loading of missing schemas.\n  // `loadSchema` option should be a function that accepts schema uri and returns promise that resolves with the schema.\n  // TODO allow passing schema URI\n  // meta - optional true to compile meta-schema\n  compileAsync<T = unknown>(\n    schema: SchemaObject | JSONSchemaType<T>,\n    _meta?: boolean\n  ): Promise<ValidateFunction<T>>\n  // Separated for type inference to work\n  // eslint-disable-next-line @typescript-eslint/unified-signatures\n  compileAsync<T = unknown>(schema: JTDSchemaType<T>, _meta?: boolean): Promise<ValidateFunction<T>>\n  compileAsync<T = unknown>(schema: AsyncSchema, meta?: boolean): Promise<AsyncValidateFunction<T>>\n  // eslint-disable-next-line @typescript-eslint/unified-signatures\n  compileAsync<T = unknown>(\n    schema: AnySchemaObject,\n    meta?: boolean\n  ): Promise<AnyValidateFunction<T>>\n  compileAsync<T = unknown>(\n    schema: AnySchemaObject,\n    meta?: boolean\n  ): Promise<AnyValidateFunction<T>> {\n    if (typeof this.opts.loadSchema != \"function\") {\n      throw new Error(\"options.loadSchema should be a function\")\n    }\n    const {loadSchema} = this.opts\n    return runCompileAsync.call(this, schema, meta)\n\n    async function runCompileAsync(\n      this: Ajv,\n      _schema: AnySchemaObject,\n      _meta?: boolean\n    ): Promise<AnyValidateFunction> {\n      await loadMetaSchema.call(this, _schema.$schema)\n      const sch = this._addSchema(_schema, _meta)\n      return sch.validate || _compileAsync.call(this, sch)\n    }\n\n    async function loadMetaSchema(this: Ajv, $ref?: string): Promise<void> {\n      if ($ref && !this.getSchema($ref)) {\n        await runCompileAsync.call(this, {$ref}, true)\n      }\n    }\n\n    async function _compileAsync(this: Ajv, sch: SchemaEnv): Promise<AnyValidateFunction> {\n      try {\n        return this._compileSchemaEnv(sch)\n      } catch (e) {\n        if (!(e instanceof MissingRefError)) throw e\n        checkLoaded.call(this, e)\n        await loadMissingSchema.call(this, e.missingSchema)\n        return _compileAsync.call(this, sch)\n      }\n    }\n\n    function checkLoaded(this: Ajv, {missingSchema: ref, missingRef}: MissingRefError): void {\n      if (this.refs[ref]) {\n        throw new Error(`AnySchema ${ref} is loaded but ${missingRef} cannot be resolved`)\n      }\n    }\n\n    async function loadMissingSchema(this: Ajv, ref: string): Promise<void> {\n      const _schema = await _loadSchema.call(this, ref)\n      if (!this.refs[ref]) await loadMetaSchema.call(this, _schema.$schema)\n      if (!this.refs[ref]) this.addSchema(_schema, ref, meta)\n    }\n\n    async function _loadSchema(this: Ajv, ref: string): Promise<AnySchemaObject> {\n      const p = this._loading[ref]\n      if (p) return p\n      try {\n        return await (this._loading[ref] = loadSchema(ref))\n      } finally {\n        delete this._loading[ref]\n      }\n    }\n  }\n\n  // Adds schema to the instance\n  addSchema(\n    schema: AnySchema | AnySchema[], // If array is passed, `key` will be ignored\n    key?: string, // Optional schema key. Can be passed to `validate` method instead of schema object or id/ref. One schema per instance can have empty `id` and `key`.\n    _meta?: boolean, // true if schema is a meta-schema. Used internally, addMetaSchema should be used instead.\n    _validateSchema = this.opts.validateSchema // false to skip schema validation. Used internally, option validateSchema should be used instead.\n  ): Ajv {\n    if (Array.isArray(schema)) {\n      for (const sch of schema) this.addSchema(sch, undefined, _meta, _validateSchema)\n      return this\n    }\n    let id: string | undefined\n    if (typeof schema === \"object\") {\n      const {schemaId} = this.opts\n      id = schema[schemaId]\n      if (id !== undefined && typeof id != \"string\") {\n        throw new Error(`schema ${schemaId} must be string`)\n      }\n    }\n    key = normalizeId(key || id)\n    this._checkUnique(key)\n    this.schemas[key] = this._addSchema(schema, _meta, key, _validateSchema, true)\n    return this\n  }\n\n  // Add schema that will be used to validate other schemas\n  // options in META_IGNORE_OPTIONS are alway set to false\n  addMetaSchema(\n    schema: AnySchemaObject,\n    key?: string, // schema key\n    _validateSchema = this.opts.validateSchema // false to skip schema validation, can be used to override validateSchema option for meta-schema\n  ): Ajv {\n    this.addSchema(schema, key, true, _validateSchema)\n    return this\n  }\n\n  //  Validate schema against its meta-schema\n  validateSchema(schema: AnySchema, throwOrLogError?: boolean): boolean | Promise<unknown> {\n    if (typeof schema == \"boolean\") return true\n    let $schema: string | AnySchemaObject | undefined\n    $schema = schema.$schema\n    if ($schema !== undefined && typeof $schema != \"string\") {\n      throw new Error(\"$schema must be a string\")\n    }\n    $schema = $schema || this.opts.defaultMeta || this.defaultMeta()\n    if (!$schema) {\n      this.logger.warn(\"meta-schema not available\")\n      this.errors = null\n      return true\n    }\n    const valid = this.validate($schema, schema)\n    if (!valid && throwOrLogError) {\n      const message = \"schema is invalid: \" + this.errorsText()\n      if (this.opts.validateSchema === \"log\") this.logger.error(message)\n      else throw new Error(message)\n    }\n    return valid\n  }\n\n  // Get compiled schema by `key` or `ref`.\n  // (`key` that was passed to `addSchema` or full schema reference - `schema.$id` or resolved id)\n  getSchema<T = unknown>(keyRef: string): AnyValidateFunction<T> | undefined {\n    let sch\n    while (typeof (sch = getSchEnv.call(this, keyRef)) == \"string\") keyRef = sch\n    if (sch === undefined) {\n      const {schemaId} = this.opts\n      const root = new SchemaEnv({schema: {}, schemaId})\n      sch = resolveSchema.call(this, root, keyRef)\n      if (!sch) return\n      this.refs[keyRef] = sch\n    }\n    return (sch.validate || this._compileSchemaEnv(sch)) as AnyValidateFunction<T> | undefined\n  }\n\n  // Remove cached schema(s).\n  // If no parameter is passed all schemas but meta-schemas are removed.\n  // If RegExp is passed all schemas with key/id matching pattern but meta-schemas are removed.\n  // Even if schema is referenced by other schemas it still can be removed as other schemas have local references.\n  removeSchema(schemaKeyRef?: AnySchema | string | RegExp): Ajv {\n    if (schemaKeyRef instanceof RegExp) {\n      this._removeAllSchemas(this.schemas, schemaKeyRef)\n      this._removeAllSchemas(this.refs, schemaKeyRef)\n      return this\n    }\n    switch (typeof schemaKeyRef) {\n      case \"undefined\":\n        this._removeAllSchemas(this.schemas)\n        this._removeAllSchemas(this.refs)\n        this._cache.clear()\n        return this\n      case \"string\": {\n        const sch = getSchEnv.call(this, schemaKeyRef)\n        if (typeof sch == \"object\") this._cache.delete(sch.schema)\n        delete this.schemas[schemaKeyRef]\n        delete this.refs[schemaKeyRef]\n        return this\n      }\n      case \"object\": {\n        const cacheKey = schemaKeyRef\n        this._cache.delete(cacheKey)\n        let id = schemaKeyRef[this.opts.schemaId]\n        if (id) {\n          id = normalizeId(id)\n          delete this.schemas[id]\n          delete this.refs[id]\n        }\n        return this\n      }\n      default:\n        throw new Error(\"ajv.removeSchema: invalid parameter\")\n    }\n  }\n\n  // add \"vocabulary\" - a collection of keywords\n  addVocabulary(definitions: Vocabulary): Ajv {\n    for (const def of definitions) this.addKeyword(def)\n    return this\n  }\n\n  addKeyword(\n    kwdOrDef: string | KeywordDefinition,\n    def?: KeywordDefinition // deprecated\n  ): Ajv {\n    let keyword: string | string[]\n    if (typeof kwdOrDef == \"string\") {\n      keyword = kwdOrDef\n      if (typeof def == \"object\") {\n        this.logger.warn(\"these parameters are deprecated, see docs for addKeyword\")\n        def.keyword = keyword\n      }\n    } else if (typeof kwdOrDef == \"object\" && def === undefined) {\n      def = kwdOrDef\n      keyword = def.keyword\n      if (Array.isArray(keyword) && !keyword.length) {\n        throw new Error(\"addKeywords: keyword must be string or non-empty array\")\n      }\n    } else {\n      throw new Error(\"invalid addKeywords parameters\")\n    }\n\n    checkKeyword.call(this, keyword, def)\n    if (!def) {\n      eachItem(keyword, (kwd) => addRule.call(this, kwd))\n      return this\n    }\n    keywordMetaschema.call(this, def)\n    const definition: AddedKeywordDefinition = {\n      ...def,\n      type: getJSONTypes(def.type),\n      schemaType: getJSONTypes(def.schemaType),\n    }\n    eachItem(\n      keyword,\n      definition.type.length === 0\n        ? (k) => addRule.call(this, k, definition)\n        : (k) => definition.type.forEach((t) => addRule.call(this, k, definition, t))\n    )\n    return this\n  }\n\n  getKeyword(keyword: string): AddedKeywordDefinition | boolean {\n    const rule = this.RULES.all[keyword]\n    return typeof rule == \"object\" ? rule.definition : !!rule\n  }\n\n  // Remove keyword\n  removeKeyword(keyword: string): Ajv {\n    // TODO return type should be Ajv\n    const {RULES} = this\n    delete RULES.keywords[keyword]\n    delete RULES.all[keyword]\n    for (const group of RULES.rules) {\n      const i = group.rules.findIndex((rule) => rule.keyword === keyword)\n      if (i >= 0) group.rules.splice(i, 1)\n    }\n    return this\n  }\n\n  // Add format\n  addFormat(name: string, format: Format): Ajv {\n    if (typeof format == \"string\") format = new RegExp(format)\n    this.formats[name] = format\n    return this\n  }\n\n  errorsText(\n    errors: ErrorObject[] | null | undefined = this.errors, // optional array of validation errors\n    {separator = \", \", dataVar = \"data\"}: ErrorsTextOptions = {} // optional options with properties `separator` and `dataVar`\n  ): string {\n    if (!errors || errors.length === 0) return \"No errors\"\n    return errors\n      .map((e) => `${dataVar}${e.instancePath} ${e.message}`)\n      .reduce((text, msg) => text + separator + msg)\n  }\n\n  $dataMetaSchema(metaSchema: AnySchemaObject, keywordsJsonPointers: string[]): AnySchemaObject {\n    const rules = this.RULES.all\n    metaSchema = JSON.parse(JSON.stringify(metaSchema))\n    for (const jsonPointer of keywordsJsonPointers) {\n      const segments = jsonPointer.split(\"/\").slice(1) // first segment is an empty string\n      let keywords = metaSchema\n      for (const seg of segments) keywords = keywords[seg] as AnySchemaObject\n\n      for (const key in rules) {\n        const rule = rules[key]\n        if (typeof rule != \"object\") continue\n        const {$data} = rule.definition\n        const schema = keywords[key] as AnySchemaObject | undefined\n        if ($data && schema) keywords[key] = schemaOrData(schema)\n      }\n    }\n\n    return metaSchema\n  }\n\n  private _removeAllSchemas(schemas: {[Ref in string]?: SchemaEnv | string}, regex?: RegExp): void {\n    for (const keyRef in schemas) {\n      const sch = schemas[keyRef]\n      if (!regex || regex.test(keyRef)) {\n        if (typeof sch == \"string\") {\n          delete schemas[keyRef]\n        } else if (sch && !sch.meta) {\n          this._cache.delete(sch.schema)\n          delete schemas[keyRef]\n        }\n      }\n    }\n  }\n\n  _addSchema(\n    schema: AnySchema,\n    meta?: boolean,\n    baseId?: string,\n    validateSchema = this.opts.validateSchema,\n    addSchema = this.opts.addUsedSchema\n  ): SchemaEnv {\n    let id: string | undefined\n    const {schemaId} = this.opts\n    if (typeof schema == \"object\") {\n      id = schema[schemaId]\n    } else {\n      if (this.opts.jtd) throw new Error(\"schema must be object\")\n      else if (typeof schema != \"boolean\") throw new Error(\"schema must be object or boolean\")\n    }\n    let sch = this._cache.get(schema)\n    if (sch !== undefined) return sch\n\n    baseId = normalizeId(id || baseId)\n    const localRefs = getSchemaRefs.call(this, schema, baseId)\n    sch = new SchemaEnv({schema, schemaId, meta, baseId, localRefs})\n    this._cache.set(sch.schema, sch)\n    if (addSchema && !baseId.startsWith(\"#\")) {\n      // TODO atm it is allowed to overwrite schemas without id (instead of not adding them)\n      if (baseId) this._checkUnique(baseId)\n      this.refs[baseId] = sch\n    }\n    if (validateSchema) this.validateSchema(schema, true)\n    return sch\n  }\n\n  private _checkUnique(id: string): void {\n    if (this.schemas[id] || this.refs[id]) {\n      throw new Error(`schema with key or id \"${id}\" already exists`)\n    }\n  }\n\n  private _compileSchemaEnv(sch: SchemaEnv): AnyValidateFunction {\n    if (sch.meta) this._compileMetaSchema(sch)\n    else compileSchema.call(this, sch)\n\n    /* istanbul ignore if */\n    if (!sch.validate) throw new Error(\"ajv implementation error\")\n    return sch.validate\n  }\n\n  private _compileMetaSchema(sch: SchemaEnv): void {\n    const currentOpts = this.opts\n    this.opts = this._metaOpts\n    try {\n      compileSchema.call(this, sch)\n    } finally {\n      this.opts = currentOpts\n    }\n  }\n}\n\nexport interface ErrorsTextOptions {\n  separator?: string\n  dataVar?: string\n}\n\nfunction checkOptions(\n  this: Ajv,\n  checkOpts: OptionsInfo<RemovedOptions | DeprecatedOptions>,\n  options: Options & RemovedOptions,\n  msg: string,\n  log: \"warn\" | \"error\" = \"error\"\n): void {\n  for (const key in checkOpts) {\n    const opt = key as keyof typeof checkOpts\n    if (opt in options) this.logger[log](`${msg}: option ${key}. ${checkOpts[opt]}`)\n  }\n}\n\nfunction getSchEnv(this: Ajv, keyRef: string): SchemaEnv | string | undefined {\n  keyRef = normalizeId(keyRef) // TODO tests fail without this line\n  return this.schemas[keyRef] || this.refs[keyRef]\n}\n\nfunction addInitialSchemas(this: Ajv): void {\n  const optsSchemas = this.opts.schemas\n  if (!optsSchemas) return\n  if (Array.isArray(optsSchemas)) this.addSchema(optsSchemas)\n  else for (const key in optsSchemas) this.addSchema(optsSchemas[key] as AnySchema, key)\n}\n\nfunction addInitialFormats(this: Ajv): void {\n  for (const name in this.opts.formats) {\n    const format = this.opts.formats[name]\n    if (format) this.addFormat(name, format)\n  }\n}\n\nfunction addInitialKeywords(\n  this: Ajv,\n  defs: Vocabulary | {[K in string]?: KeywordDefinition}\n): void {\n  if (Array.isArray(defs)) {\n    this.addVocabulary(defs)\n    return\n  }\n  this.logger.warn(\"keywords option as map is deprecated, pass array\")\n  for (const keyword in defs) {\n    const def = defs[keyword] as KeywordDefinition\n    if (!def.keyword) def.keyword = keyword\n    this.addKeyword(def)\n  }\n}\n\nfunction getMetaSchemaOptions(this: Ajv): InstanceOptions {\n  const metaOpts = {...this.opts}\n  for (const opt of META_IGNORE_OPTIONS) delete metaOpts[opt]\n  return metaOpts\n}\n\nconst noLogs = {log() {}, warn() {}, error() {}}\n\nfunction getLogger(logger?: Partial<Logger> | false): Logger {\n  if (logger === false) return noLogs\n  if (logger === undefined) return console\n  if (logger.log && logger.warn && logger.error) return logger as Logger\n  throw new Error(\"logger must implement log, warn and error methods\")\n}\n\nconst KEYWORD_NAME = /^[a-z_$][a-z0-9_$:-]*$/i\n\nfunction checkKeyword(this: Ajv, keyword: string | string[], def?: KeywordDefinition): void {\n  const {RULES} = this\n  eachItem(keyword, (kwd) => {\n    if (RULES.keywords[kwd]) throw new Error(`Keyword ${kwd} is already defined`)\n    if (!KEYWORD_NAME.test(kwd)) throw new Error(`Keyword ${kwd} has invalid name`)\n  })\n  if (!def) return\n  if (def.$data && !(\"code\" in def || \"validate\" in def)) {\n    throw new Error('$data keyword must have \"code\" or \"validate\" function')\n  }\n}\n\nfunction addRule(\n  this: Ajv,\n  keyword: string,\n  definition?: AddedKeywordDefinition,\n  dataType?: JSONType\n): void {\n  const post = definition?.post\n  if (dataType && post) throw new Error('keyword with \"post\" flag cannot have \"type\"')\n  const {RULES} = this\n  let ruleGroup = post ? RULES.post : RULES.rules.find(({type: t}) => t === dataType)\n  if (!ruleGroup) {\n    ruleGroup = {type: dataType, rules: []}\n    RULES.rules.push(ruleGroup)\n  }\n  RULES.keywords[keyword] = true\n  if (!definition) return\n\n  const rule: Rule = {\n    keyword,\n    definition: {\n      ...definition,\n      type: getJSONTypes(definition.type),\n      schemaType: getJSONTypes(definition.schemaType),\n    },\n  }\n  if (definition.before) addBeforeRule.call(this, ruleGroup, rule, definition.before)\n  else ruleGroup.rules.push(rule)\n  RULES.all[keyword] = rule\n  definition.implements?.forEach((kwd) => this.addKeyword(kwd))\n}\n\nfunction addBeforeRule(this: Ajv, ruleGroup: RuleGroup, rule: Rule, before: string): void {\n  const i = ruleGroup.rules.findIndex((_rule) => _rule.keyword === before)\n  if (i >= 0) {\n    ruleGroup.rules.splice(i, 0, rule)\n  } else {\n    ruleGroup.rules.push(rule)\n    this.logger.warn(`rule ${before} is not defined`)\n  }\n}\n\nfunction keywordMetaschema(this: Ajv, def: KeywordDefinition): void {\n  let {metaSchema} = def\n  if (metaSchema === undefined) return\n  if (def.$data && this.opts.$data) metaSchema = schemaOrData(metaSchema)\n  def.validateSchema = this.compile(metaSchema, true)\n}\n\nconst $dataRef = {\n  $ref: \"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#\",\n}\n\nfunction schemaOrData(schema: AnySchema): AnySchemaObject {\n  return {anyOf: [schema, $dataRef]}\n}\n","import type {CodeKeywordDefinition} from \"../../types\"\n\nconst def: CodeKeywordDefinition = {\n  keyword: \"id\",\n  code() {\n    throw new Error('NOT SUPPORTED: keyword \"id\", use \"$id\" for schema ID')\n  },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, AnySchema} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport MissingRefError from \"../../compile/ref_error\"\nimport {callValidateCode} from \"../code\"\nimport {_, nil, stringify, Code, Name} from \"../../compile/codegen\"\nimport N from \"../../compile/names\"\nimport {SchemaEnv, resolveRef} from \"../../compile\"\nimport {mergeEvaluated} from \"../../compile/util\"\n\nconst def: CodeKeywordDefinition = {\n  keyword: \"$ref\",\n  schemaType: \"string\",\n  code(cxt: KeywordCxt): void {\n    const {gen, schema: $ref, it} = cxt\n    const {baseId, schemaEnv: env, validateName, opts, self} = it\n    const {root} = env\n    if (($ref === \"#\" || $ref === \"#/\") && baseId === root.baseId) return callRootRef()\n    const schOrEnv = resolveRef.call(self, root, baseId, $ref)\n    if (schOrEnv === undefined) throw new MissingRefError(it.opts.uriResolver, baseId, $ref)\n    if (schOrEnv instanceof SchemaEnv) return callValidate(schOrEnv)\n    return inlineRefSchema(schOrEnv)\n\n    function callRootRef(): void {\n      if (env === root) return callRef(cxt, validateName, env, env.$async)\n      const rootName = gen.scopeValue(\"root\", {ref: root})\n      return callRef(cxt, _`${rootName}.validate`, root, root.$async)\n    }\n\n    function callValidate(sch: SchemaEnv): void {\n      const v = getValidate(cxt, sch)\n      callRef(cxt, v, sch, sch.$async)\n    }\n\n    function inlineRefSchema(sch: AnySchema): void {\n      const schName = gen.scopeValue(\n        \"schema\",\n        opts.code.source === true ? {ref: sch, code: stringify(sch)} : {ref: sch}\n      )\n      const valid = gen.name(\"valid\")\n      const schCxt = cxt.subschema(\n        {\n          schema: sch,\n          dataTypes: [],\n          schemaPath: nil,\n          topSchemaRef: schName,\n          errSchemaPath: $ref,\n        },\n        valid\n      )\n      cxt.mergeEvaluated(schCxt)\n      cxt.ok(valid)\n    }\n  },\n}\n\nexport function getValidate(cxt: KeywordCxt, sch: SchemaEnv): Code {\n  const {gen} = cxt\n  return sch.validate\n    ? gen.scopeValue(\"validate\", {ref: sch.validate})\n    : _`${gen.scopeValue(\"wrapper\", {ref: sch})}.validate`\n}\n\nexport function callRef(cxt: KeywordCxt, v: Code, sch?: SchemaEnv, $async?: boolean): void {\n  const {gen, it} = cxt\n  const {allErrors, schemaEnv: env, opts} = it\n  const passCxt = opts.passContext ? N.this : nil\n  if ($async) callAsyncRef()\n  else callSyncRef()\n\n  function callAsyncRef(): void {\n    if (!env.$async) throw new Error(\"async schema referenced by sync schema\")\n    const valid = gen.let(\"valid\")\n    gen.try(\n      () => {\n        gen.code(_`await ${callValidateCode(cxt, v, passCxt)}`)\n        addEvaluatedFrom(v) // TODO will not work with async, it has to be returned with the result\n        if (!allErrors) gen.assign(valid, true)\n      },\n      (e) => {\n        gen.if(_`!(${e} instanceof ${it.ValidationError as Name})`, () => gen.throw(e))\n        addErrorsFrom(e)\n        if (!allErrors) gen.assign(valid, false)\n      }\n    )\n    cxt.ok(valid)\n  }\n\n  function callSyncRef(): void {\n    cxt.result(\n      callValidateCode(cxt, v, passCxt),\n      () => addEvaluatedFrom(v),\n      () => addErrorsFrom(v)\n    )\n  }\n\n  function addErrorsFrom(source: Code): void {\n    const errs = _`${source}.errors`\n    gen.assign(N.vErrors, _`${N.vErrors} === null ? ${errs} : ${N.vErrors}.concat(${errs})`) // TODO tagged\n    gen.assign(N.errors, _`${N.vErrors}.length`)\n  }\n\n  function addEvaluatedFrom(source: Code): void {\n    if (!it.opts.unevaluated) return\n    const schEvaluated = sch?.validate?.evaluated\n    // TODO refactor\n    if (it.props !== true) {\n      if (schEvaluated && !schEvaluated.dynamicProps) {\n        if (schEvaluated.props !== undefined) {\n          it.props = mergeEvaluated.props(gen, schEvaluated.props, it.props)\n        }\n      } else {\n        const props = gen.var(\"props\", _`${source}.evaluated.props`)\n        it.props = mergeEvaluated.props(gen, props, it.props, Name)\n      }\n    }\n    if (it.items !== true) {\n      if (schEvaluated && !schEvaluated.dynamicItems) {\n        if (schEvaluated.items !== undefined) {\n          it.items = mergeEvaluated.items(gen, schEvaluated.items, it.items)\n        }\n      } else {\n        const items = gen.var(\"items\", _`${source}.evaluated.items`)\n        it.items = mergeEvaluated.items(gen, items, it.items, Name)\n      }\n    }\n  }\n}\n\nexport default def\n","import type {Vocabulary} from \"../../types\"\nimport idKeyword from \"./id\"\nimport refKeyword from \"./ref\"\n\nconst core: Vocabulary = [\n  \"$schema\",\n  \"$id\",\n  \"$defs\",\n  \"$vocabulary\",\n  {keyword: \"$comment\"},\n  \"definitions\",\n  idKeyword,\n  refKeyword,\n]\n\nexport default core\n","import type {CodeKeywordDefinition, ErrorObject, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str, operators, Code} from \"../../compile/codegen\"\n\nconst ops = operators\n\ntype Kwd = \"maximum\" | \"minimum\" | \"exclusiveMaximum\" | \"exclusiveMinimum\"\n\ntype Comparison = \"<=\" | \">=\" | \"<\" | \">\"\n\nconst KWDs: {[K in Kwd]: {okStr: Comparison; ok: Code; fail: Code}} = {\n  maximum: {okStr: \"<=\", ok: ops.LTE, fail: ops.GT},\n  minimum: {okStr: \">=\", ok: ops.GTE, fail: ops.LT},\n  exclusiveMaximum: {okStr: \"<\", ok: ops.LT, fail: ops.GTE},\n  exclusiveMinimum: {okStr: \">\", ok: ops.GT, fail: ops.LTE},\n}\n\nexport type LimitNumberError = ErrorObject<\n  Kwd,\n  {limit: number; comparison: Comparison},\n  number | {$data: string}\n>\n\nconst error: KeywordErrorDefinition = {\n  message: ({keyword, schemaCode}) => str`must be ${KWDs[keyword as Kwd].okStr} ${schemaCode}`,\n  params: ({keyword, schemaCode}) =>\n    _`{comparison: ${KWDs[keyword as Kwd].okStr}, limit: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n  keyword: Object.keys(KWDs),\n  type: \"number\",\n  schemaType: \"number\",\n  $data: true,\n  error,\n  code(cxt: KeywordCxt) {\n    const {keyword, data, schemaCode} = cxt\n    cxt.fail$data(_`${data} ${KWDs[keyword as Kwd].fail} ${schemaCode} || isNaN(${data})`)\n  },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, ErrorObject, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str} from \"../../compile/codegen\"\n\nexport type MultipleOfError = ErrorObject<\n  \"multipleOf\",\n  {multipleOf: number},\n  number | {$data: string}\n>\n\nconst error: KeywordErrorDefinition = {\n  message: ({schemaCode}) => str`must be multiple of ${schemaCode}`,\n  params: ({schemaCode}) => _`{multipleOf: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n  keyword: \"multipleOf\",\n  type: \"number\",\n  schemaType: \"number\",\n  $data: true,\n  error,\n  code(cxt: KeywordCxt) {\n    const {gen, data, schemaCode, it} = cxt\n    // const bdt = bad$DataType(schemaCode, <string>def.schemaType, $data)\n    const prec = it.opts.multipleOfPrecision\n    const res = gen.let(\"res\")\n    const invalid = prec\n      ? _`Math.abs(Math.round(${res}) - ${res}) > 1e-${prec}`\n      : _`${res} !== parseInt(${res})`\n    cxt.fail$data(_`(${schemaCode} === 0 || (${res} = ${data}/${schemaCode}, ${invalid}))`)\n  },\n}\n\nexport default def\n","// https://mathiasbynens.be/notes/javascript-encoding\n// https://github.com/bestiejs/punycode.js - punycode.ucs2.decode\nexport default function ucs2length(str: string): number {\n  const len = str.length\n  let length = 0\n  let pos = 0\n  let value: number\n  while (pos < len) {\n    length++\n    value = str.charCodeAt(pos++)\n    if (value >= 0xd800 && value <= 0xdbff && pos < len) {\n      // high surrogate, and there is a next character\n      value = str.charCodeAt(pos)\n      if ((value & 0xfc00) === 0xdc00) pos++ // low surrogate\n    }\n  }\n  return length\n}\n\nucs2length.code = 'require(\"ajv/dist/runtime/ucs2length\").default'\n","import type {CodeKeywordDefinition, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str, operators} from \"../../compile/codegen\"\nimport {useFunc} from \"../../compile/util\"\nimport ucs2length from \"../../runtime/ucs2length\"\n\nconst error: KeywordErrorDefinition = {\n  message({keyword, schemaCode}) {\n    const comp = keyword === \"maxLength\" ? \"more\" : \"fewer\"\n    return str`must NOT have ${comp} than ${schemaCode} characters`\n  },\n  params: ({schemaCode}) => _`{limit: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n  keyword: [\"maxLength\", \"minLength\"],\n  type: \"string\",\n  schemaType: \"number\",\n  $data: true,\n  error,\n  code(cxt: KeywordCxt) {\n    const {keyword, data, schemaCode, it} = cxt\n    const op = keyword === \"maxLength\" ? operators.GT : operators.LT\n    const len =\n      it.opts.unicode === false ? _`${data}.length` : _`${useFunc(cxt.gen, ucs2length)}(${data})`\n    cxt.fail$data(_`${len} ${op} ${schemaCode}`)\n  },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, ErrorObject, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {usePattern} from \"../code\"\nimport {useFunc} from \"../../compile/util\"\nimport {_, str} from \"../../compile/codegen\"\n\nexport type PatternError = ErrorObject<\"pattern\", {pattern: string}, string | {$data: string}>\n\nconst error: KeywordErrorDefinition = {\n  message: ({schemaCode}) => str`must match pattern \"${schemaCode}\"`,\n  params: ({schemaCode}) => _`{pattern: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n  keyword: \"pattern\",\n  type: \"string\",\n  schemaType: \"string\",\n  $data: true,\n  error,\n  code(cxt: KeywordCxt) {\n    const {gen, data, $data, schema, schemaCode, it} = cxt\n    const u = it.opts.unicodeRegExp ? \"u\" : \"\"\n    if ($data) {\n      const {regExp} = it.opts.code\n      const regExpCode = regExp.code === \"new RegExp\" ? _`new RegExp` : useFunc(gen, regExp)\n      const valid = gen.let(\"valid\")\n      gen.try(\n        () => gen.assign(valid, _`${regExpCode}(${schemaCode}, ${u}).test(${data})`),\n        () => gen.assign(valid, false)\n      )\n      cxt.fail$data(_`!${valid}`)\n    } else {\n      const regExp = usePattern(cxt, schema)\n      cxt.fail$data(_`!${regExp}.test(${data})`)\n    }\n  },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str, operators} from \"../../compile/codegen\"\n\nconst error: KeywordErrorDefinition = {\n  message({keyword, schemaCode}) {\n    const comp = keyword === \"maxProperties\" ? \"more\" : \"fewer\"\n    return str`must NOT have ${comp} than ${schemaCode} properties`\n  },\n  params: ({schemaCode}) => _`{limit: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n  keyword: [\"maxProperties\", \"minProperties\"],\n  type: \"object\",\n  schemaType: \"number\",\n  $data: true,\n  error,\n  code(cxt: KeywordCxt) {\n    const {keyword, data, schemaCode} = cxt\n    const op = keyword === \"maxProperties\" ? operators.GT : operators.LT\n    cxt.fail$data(_`Object.keys(${data}).length ${op} ${schemaCode}`)\n  },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, ErrorObject, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {\n  checkReportMissingProp,\n  checkMissingProp,\n  reportMissingProp,\n  propertyInData,\n  noPropertyInData,\n} from \"../code\"\nimport {_, str, nil, not, Name, Code} from \"../../compile/codegen\"\nimport {checkStrictMode} from \"../../compile/util\"\n\nexport type RequiredError = ErrorObject<\n  \"required\",\n  {missingProperty: string},\n  string[] | {$data: string}\n>\n\nconst error: KeywordErrorDefinition = {\n  message: ({params: {missingProperty}}) => str`must have required property '${missingProperty}'`,\n  params: ({params: {missingProperty}}) => _`{missingProperty: ${missingProperty}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n  keyword: \"required\",\n  type: \"object\",\n  schemaType: \"array\",\n  $data: true,\n  error,\n  code(cxt: KeywordCxt) {\n    const {gen, schema, schemaCode, data, $data, it} = cxt\n    const {opts} = it\n    if (!$data && schema.length === 0) return\n    const useLoop = schema.length >= opts.loopRequired\n    if (it.allErrors) allErrorsMode()\n    else exitOnErrorMode()\n\n    if (opts.strictRequired) {\n      const props = cxt.parentSchema.properties\n      const {definedProperties} = cxt.it\n      for (const requiredKey of schema) {\n        if (props?.[requiredKey] === undefined && !definedProperties.has(requiredKey)) {\n          const schemaPath = it.schemaEnv.baseId + it.errSchemaPath\n          const msg = `required property \"${requiredKey}\" is not defined at \"${schemaPath}\" (strictRequired)`\n          checkStrictMode(it, msg, it.opts.strictRequired)\n        }\n      }\n    }\n\n    function allErrorsMode(): void {\n      if (useLoop || $data) {\n        cxt.block$data(nil, loopAllRequired)\n      } else {\n        for (const prop of schema) {\n          checkReportMissingProp(cxt, prop)\n        }\n      }\n    }\n\n    function exitOnErrorMode(): void {\n      const missing = gen.let(\"missing\")\n      if (useLoop || $data) {\n        const valid = gen.let(\"valid\", true)\n        cxt.block$data(valid, () => loopUntilMissing(missing, valid))\n        cxt.ok(valid)\n      } else {\n        gen.if(checkMissingProp(cxt, schema, missing))\n        reportMissingProp(cxt, missing)\n        gen.else()\n      }\n    }\n\n    function loopAllRequired(): void {\n      gen.forOf(\"prop\", schemaCode as Code, (prop) => {\n        cxt.setParams({missingProperty: prop})\n        gen.if(noPropertyInData(gen, data, prop, opts.ownProperties), () => cxt.error())\n      })\n    }\n\n    function loopUntilMissing(missing: Name, valid: Name): void {\n      cxt.setParams({missingProperty: missing})\n      gen.forOf(\n        missing,\n        schemaCode as Code,\n        () => {\n          gen.assign(valid, propertyInData(gen, data, missing, opts.ownProperties))\n          gen.if(not(valid), () => {\n            cxt.error()\n            gen.break()\n          })\n        },\n        nil\n      )\n    }\n  },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str, operators} from \"../../compile/codegen\"\n\nconst error: KeywordErrorDefinition = {\n  message({keyword, schemaCode}) {\n    const comp = keyword === \"maxItems\" ? \"more\" : \"fewer\"\n    return str`must NOT have ${comp} than ${schemaCode} items`\n  },\n  params: ({schemaCode}) => _`{limit: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n  keyword: [\"maxItems\", \"minItems\"],\n  type: \"array\",\n  schemaType: \"number\",\n  $data: true,\n  error,\n  code(cxt: KeywordCxt) {\n    const {keyword, data, schemaCode} = cxt\n    const op = keyword === \"maxItems\" ? operators.GT : operators.LT\n    cxt.fail$data(_`${data}.length ${op} ${schemaCode}`)\n  },\n}\n\nexport default def\n","// https://github.com/ajv-validator/ajv/issues/889\nimport * as equal from \"fast-deep-equal\"\n\ntype Equal = typeof equal & {code: string}\n;(equal as Equal).code = 'require(\"ajv/dist/runtime/equal\").default'\n\nexport default equal as Equal\n","import type {CodeKeywordDefinition, ErrorObject, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {checkDataTypes, getSchemaTypes, DataType} from \"../../compile/validate/dataType\"\nimport {_, str, Name} from \"../../compile/codegen\"\nimport {useFunc} from \"../../compile/util\"\nimport equal from \"../../runtime/equal\"\n\nexport type UniqueItemsError = ErrorObject<\n  \"uniqueItems\",\n  {i: number; j: number},\n  boolean | {$data: string}\n>\n\nconst error: KeywordErrorDefinition = {\n  message: ({params: {i, j}}) =>\n    str`must NOT have duplicate items (items ## ${j} and ${i} are identical)`,\n  params: ({params: {i, j}}) => _`{i: ${i}, j: ${j}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n  keyword: \"uniqueItems\",\n  type: \"array\",\n  schemaType: \"boolean\",\n  $data: true,\n  error,\n  code(cxt: KeywordCxt) {\n    const {gen, data, $data, schema, parentSchema, schemaCode, it} = cxt\n    if (!$data && !schema) return\n    const valid = gen.let(\"valid\")\n    const itemTypes = parentSchema.items ? getSchemaTypes(parentSchema.items) : []\n    cxt.block$data(valid, validateUniqueItems, _`${schemaCode} === false`)\n    cxt.ok(valid)\n\n    function validateUniqueItems(): void {\n      const i = gen.let(\"i\", _`${data}.length`)\n      const j = gen.let(\"j\")\n      cxt.setParams({i, j})\n      gen.assign(valid, true)\n      gen.if(_`${i} > 1`, () => (canOptimize() ? loopN : loopN2)(i, j))\n    }\n\n    function canOptimize(): boolean {\n      return itemTypes.length > 0 && !itemTypes.some((t) => t === \"object\" || t === \"array\")\n    }\n\n    function loopN(i: Name, j: Name): void {\n      const item = gen.name(\"item\")\n      const wrongType = checkDataTypes(itemTypes, item, it.opts.strictNumbers, DataType.Wrong)\n      const indices = gen.const(\"indices\", _`{}`)\n      gen.for(_`;${i}--;`, () => {\n        gen.let(item, _`${data}[${i}]`)\n        gen.if(wrongType, _`continue`)\n        if (itemTypes.length > 1) gen.if(_`typeof ${item} == \"string\"`, _`${item} += \"_\"`)\n        gen\n          .if(_`typeof ${indices}[${item}] == \"number\"`, () => {\n            gen.assign(j, _`${indices}[${item}]`)\n            cxt.error()\n            gen.assign(valid, false).break()\n          })\n          .code(_`${indices}[${item}] = ${i}`)\n      })\n    }\n\n    function loopN2(i: Name, j: Name): void {\n      const eql = useFunc(gen, equal)\n      const outer = gen.name(\"outer\")\n      gen.label(outer).for(_`;${i}--;`, () =>\n        gen.for(_`${j} = ${i}; ${j}--;`, () =>\n          gen.if(_`${eql}(${data}[${i}], ${data}[${j}])`, () => {\n            cxt.error()\n            gen.assign(valid, false).break(outer)\n          })\n        )\n      )\n    }\n  },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, ErrorObject, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_} from \"../../compile/codegen\"\nimport {useFunc} from \"../../compile/util\"\nimport equal from \"../../runtime/equal\"\n\nexport type ConstError = ErrorObject<\"const\", {allowedValue: any}>\n\nconst error: KeywordErrorDefinition = {\n  message: \"must be equal to constant\",\n  params: ({schemaCode}) => _`{allowedValue: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n  keyword: \"const\",\n  $data: true,\n  error,\n  code(cxt: KeywordCxt) {\n    const {gen, data, $data, schemaCode, schema} = cxt\n    if ($data || (schema && typeof schema == \"object\")) {\n      cxt.fail$data(_`!${useFunc(gen, equal)}(${data}, ${schemaCode})`)\n    } else {\n      cxt.fail(_`${schema} !== ${data}`)\n    }\n  },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, ErrorObject, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, or, Name, Code} from \"../../compile/codegen\"\nimport {useFunc} from \"../../compile/util\"\nimport equal from \"../../runtime/equal\"\n\nexport type EnumError = ErrorObject<\"enum\", {allowedValues: any[]}, any[] | {$data: string}>\n\nconst error: KeywordErrorDefinition = {\n  message: \"must be equal to one of the allowed values\",\n  params: ({schemaCode}) => _`{allowedValues: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n  keyword: \"enum\",\n  schemaType: \"array\",\n  $data: true,\n  error,\n  code(cxt: KeywordCxt) {\n    const {gen, data, $data, schema, schemaCode, it} = cxt\n    if (!$data && schema.length === 0) throw new Error(\"enum must have non-empty array\")\n    const useLoop = schema.length >= it.opts.loopEnum\n    let eql: Name | undefined\n    const getEql = (): Name => (eql ??= useFunc(gen, equal))\n\n    let valid: Code\n    if (useLoop || $data) {\n      valid = gen.let(\"valid\")\n      cxt.block$data(valid, loopEnum)\n    } else {\n      /* istanbul ignore if */\n      if (!Array.isArray(schema)) throw new Error(\"ajv implementation error\")\n      const vSchema = gen.const(\"vSchema\", schemaCode)\n      valid = or(...schema.map((_x: unknown, i: number) => equalCode(vSchema, i)))\n    }\n    cxt.pass(valid)\n\n    function loopEnum(): void {\n      gen.assign(valid, false)\n      gen.forOf(\"v\", schemaCode as Code, (v) =>\n        gen.if(_`${getEql()}(${data}, ${v})`, () => gen.assign(valid, true).break())\n      )\n    }\n\n    function equalCode(vSchema: Name, i: number): Code {\n      const sch = schema[i]\n      return typeof sch === \"object\" && sch !== null\n        ? _`${getEql()}(${data}, ${vSchema}[${i}])`\n        : _`${data} === ${sch}`\n    }\n  },\n}\n\nexport default def\n","import type {ErrorObject, Vocabulary} from \"../../types\"\nimport limitNumber, {LimitNumberError} from \"./limitNumber\"\nimport multipleOf, {MultipleOfError} from \"./multipleOf\"\nimport limitLength from \"./limitLength\"\nimport pattern, {PatternError} from \"./pattern\"\nimport limitProperties from \"./limitProperties\"\nimport required, {RequiredError} from \"./required\"\nimport limitItems from \"./limitItems\"\nimport uniqueItems, {UniqueItemsError} from \"./uniqueItems\"\nimport constKeyword, {ConstError} from \"./const\"\nimport enumKeyword, {EnumError} from \"./enum\"\n\nconst validation: Vocabulary = [\n  // number\n  limitNumber,\n  multipleOf,\n  // string\n  limitLength,\n  pattern,\n  // object\n  limitProperties,\n  required,\n  // array\n  limitItems,\n  uniqueItems,\n  // any\n  {keyword: \"type\", schemaType: [\"string\", \"array\"]},\n  {keyword: \"nullable\", schemaType: \"boolean\"},\n  constKeyword,\n  enumKeyword,\n]\n\nexport default validation\n\ntype LimitError = ErrorObject<\n  \"maxItems\" | \"minItems\" | \"minProperties\" | \"maxProperties\" | \"minLength\" | \"maxLength\",\n  {limit: number},\n  number | {$data: string}\n>\n\nexport type ValidationKeywordError =\n  | LimitError\n  | LimitNumberError\n  | MultipleOfError\n  | PatternError\n  | RequiredError\n  | UniqueItemsError\n  | ConstError\n  | EnumError\n","import type {\n  CodeKeywordDefinition,\n  ErrorObject,\n  KeywordErrorDefinition,\n  AnySchema,\n} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str, not, Name} from \"../../compile/codegen\"\nimport {alwaysValidSchema, checkStrictMode, Type} from \"../../compile/util\"\n\nexport type AdditionalItemsError = ErrorObject<\"additionalItems\", {limit: number}, AnySchema>\n\nconst error: KeywordErrorDefinition = {\n  message: ({params: {len}}) => str`must NOT have more than ${len} items`,\n  params: ({params: {len}}) => _`{limit: ${len}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n  keyword: \"additionalItems\" as const,\n  type: \"array\",\n  schemaType: [\"boolean\", \"object\"],\n  before: \"uniqueItems\",\n  error,\n  code(cxt: KeywordCxt) {\n    const {parentSchema, it} = cxt\n    const {items} = parentSchema\n    if (!Array.isArray(items)) {\n      checkStrictMode(it, '\"additionalItems\" is ignored when \"items\" is not an array of schemas')\n      return\n    }\n    validateAdditionalItems(cxt, items)\n  },\n}\n\nexport function validateAdditionalItems(cxt: KeywordCxt, items: AnySchema[]): void {\n  const {gen, schema, data, keyword, it} = cxt\n  it.items = true\n  const len = gen.const(\"len\", _`${data}.length`)\n  if (schema === false) {\n    cxt.setParams({len: items.length})\n    cxt.pass(_`${len} <= ${items.length}`)\n  } else if (typeof schema == \"object\" && !alwaysValidSchema(it, schema)) {\n    const valid = gen.var(\"valid\", _`${len} <= ${items.length}`) // TODO var\n    gen.if(not(valid), () => validateItems(valid))\n    cxt.ok(valid)\n  }\n\n  function validateItems(valid: Name): void {\n    gen.forRange(\"i\", items.length, len, (i) => {\n      cxt.subschema({keyword, dataProp: i, dataPropType: Type.Num}, valid)\n      if (!it.allErrors) gen.if(not(valid), () => gen.break())\n    })\n  }\n}\n\nexport default def\n","import type {CodeKeywordDefinition, AnySchema, AnySchemaObject} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_} from \"../../compile/codegen\"\nimport {alwaysValidSchema, mergeEvaluated, checkStrictMode} from \"../../compile/util\"\nimport {validateArray} from \"../code\"\n\nconst def: CodeKeywordDefinition = {\n  keyword: \"items\",\n  type: \"array\",\n  schemaType: [\"object\", \"array\", \"boolean\"],\n  before: \"uniqueItems\",\n  code(cxt: KeywordCxt) {\n    const {schema, it} = cxt\n    if (Array.isArray(schema)) return validateTuple(cxt, \"additionalItems\", schema)\n    it.items = true\n    if (alwaysValidSchema(it, schema)) return\n    cxt.ok(validateArray(cxt))\n  },\n}\n\nexport function validateTuple(\n  cxt: KeywordCxt,\n  extraItems: string,\n  schArr: AnySchema[] = cxt.schema\n): void {\n  const {gen, parentSchema, data, keyword, it} = cxt\n  checkStrictTuple(parentSchema)\n  if (it.opts.unevaluated && schArr.length && it.items !== true) {\n    it.items = mergeEvaluated.items(gen, schArr.length, it.items)\n  }\n  const valid = gen.name(\"valid\")\n  const len = gen.const(\"len\", _`${data}.length`)\n  schArr.forEach((sch: AnySchema, i: number) => {\n    if (alwaysValidSchema(it, sch)) return\n    gen.if(_`${len} > ${i}`, () =>\n      cxt.subschema(\n        {\n          keyword,\n          schemaProp: i,\n          dataProp: i,\n        },\n        valid\n      )\n    )\n    cxt.ok(valid)\n  })\n\n  function checkStrictTuple(sch: AnySchemaObject): void {\n    const {opts, errSchemaPath} = it\n    const l = schArr.length\n    const fullTuple = l === sch.minItems && (l === sch.maxItems || sch[extraItems] === false)\n    if (opts.strictTuples && !fullTuple) {\n      const msg = `\"${keyword}\" is ${l}-tuple, but minItems or maxItems/${extraItems} are not specified or different at path \"${errSchemaPath}\"`\n      checkStrictMode(it, msg, opts.strictTuples)\n    }\n  }\n}\n\nexport default def\n","import type {CodeKeywordDefinition} from \"../../types\"\nimport {validateTuple} from \"./items\"\n\nconst def: CodeKeywordDefinition = {\n  keyword: \"prefixItems\",\n  type: \"array\",\n  schemaType: [\"array\"],\n  before: \"uniqueItems\",\n  code: (cxt) => validateTuple(cxt, \"items\"),\n}\n\nexport default def\n","import type {\n  CodeKeywordDefinition,\n  KeywordErrorDefinition,\n  ErrorObject,\n  AnySchema,\n} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str} from \"../../compile/codegen\"\nimport {alwaysValidSchema} from \"../../compile/util\"\nimport {validateArray} from \"../code\"\nimport {validateAdditionalItems} from \"./additionalItems\"\n\nexport type ItemsError = ErrorObject<\"items\", {limit: number}, AnySchema>\n\nconst error: KeywordErrorDefinition = {\n  message: ({params: {len}}) => str`must NOT have more than ${len} items`,\n  params: ({params: {len}}) => _`{limit: ${len}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n  keyword: \"items\",\n  type: \"array\",\n  schemaType: [\"object\", \"boolean\"],\n  before: \"uniqueItems\",\n  error,\n  code(cxt: KeywordCxt) {\n    const {schema, parentSchema, it} = cxt\n    const {prefixItems} = parentSchema\n    it.items = true\n    if (alwaysValidSchema(it, schema)) return\n    if (prefixItems) validateAdditionalItems(cxt, prefixItems)\n    else cxt.ok(validateArray(cxt))\n  },\n}\n\nexport default def\n","import type {\n  CodeKeywordDefinition,\n  KeywordErrorDefinition,\n  ErrorObject,\n  AnySchema,\n} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str, Name} from \"../../compile/codegen\"\nimport {alwaysValidSchema, checkStrictMode, Type} from \"../../compile/util\"\n\nexport type ContainsError = ErrorObject<\n  \"contains\",\n  {minContains: number; maxContains?: number},\n  AnySchema\n>\n\nconst error: KeywordErrorDefinition = {\n  message: ({params: {min, max}}) =>\n    max === undefined\n      ? str`must contain at least ${min} valid item(s)`\n      : str`must contain at least ${min} and no more than ${max} valid item(s)`,\n  params: ({params: {min, max}}) =>\n    max === undefined ? _`{minContains: ${min}}` : _`{minContains: ${min}, maxContains: ${max}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n  keyword: \"contains\",\n  type: \"array\",\n  schemaType: [\"object\", \"boolean\"],\n  before: \"uniqueItems\",\n  trackErrors: true,\n  error,\n  code(cxt: KeywordCxt) {\n    const {gen, schema, parentSchema, data, it} = cxt\n    let min: number\n    let max: number | undefined\n    const {minContains, maxContains} = parentSchema\n    if (it.opts.next) {\n      min = minContains === undefined ? 1 : minContains\n      max = maxContains\n    } else {\n      min = 1\n    }\n    const len = gen.const(\"len\", _`${data}.length`)\n    cxt.setParams({min, max})\n    if (max === undefined && min === 0) {\n      checkStrictMode(it, `\"minContains\" == 0 without \"maxContains\": \"contains\" keyword ignored`)\n      return\n    }\n    if (max !== undefined && min > max) {\n      checkStrictMode(it, `\"minContains\" > \"maxContains\" is always invalid`)\n      cxt.fail()\n      return\n    }\n    if (alwaysValidSchema(it, schema)) {\n      let cond = _`${len} >= ${min}`\n      if (max !== undefined) cond = _`${cond} && ${len} <= ${max}`\n      cxt.pass(cond)\n      return\n    }\n\n    it.items = true\n    const valid = gen.name(\"valid\")\n    if (max === undefined && min === 1) {\n      validateItems(valid, () => gen.if(valid, () => gen.break()))\n    } else if (min === 0) {\n      gen.let(valid, true)\n      if (max !== undefined) gen.if(_`${data}.length > 0`, validateItemsWithCount)\n    } else {\n      gen.let(valid, false)\n      validateItemsWithCount()\n    }\n    cxt.result(valid, () => cxt.reset())\n\n    function validateItemsWithCount(): void {\n      const schValid = gen.name(\"_valid\")\n      const count = gen.let(\"count\", 0)\n      validateItems(schValid, () => gen.if(schValid, () => checkLimits(count)))\n    }\n\n    function validateItems(_valid: Name, block: () => void): void {\n      gen.forRange(\"i\", 0, len, (i) => {\n        cxt.subschema(\n          {\n            keyword: \"contains\",\n            dataProp: i,\n            dataPropType: Type.Num,\n            compositeRule: true,\n          },\n          _valid\n        )\n        block()\n      })\n    }\n\n    function checkLimits(count: Name): void {\n      gen.code(_`${count}++`)\n      if (max === undefined) {\n        gen.if(_`${count} >= ${min}`, () => gen.assign(valid, true).break())\n      } else {\n        gen.if(_`${count} > ${max}`, () => gen.assign(valid, false).break())\n        if (min === 1) gen.assign(valid, true)\n        else gen.if(_`${count} >= ${min}`, () => gen.assign(valid, true))\n      }\n    }\n  },\n}\n\nexport default def\n","import type {\n  CodeKeywordDefinition,\n  ErrorObject,\n  KeywordErrorDefinition,\n  SchemaMap,\n  AnySchema,\n} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str} from \"../../compile/codegen\"\nimport {alwaysValidSchema} from \"../../compile/util\"\nimport {checkReportMissingProp, checkMissingProp, reportMissingProp, propertyInData} from \"../code\"\n\nexport type PropertyDependencies = {[K in string]?: string[]}\n\nexport interface DependenciesErrorParams {\n  property: string\n  missingProperty: string\n  depsCount: number\n  deps: string // TODO change to string[]\n}\n\ntype SchemaDependencies = SchemaMap\n\nexport type DependenciesError = ErrorObject<\n  \"dependencies\",\n  DependenciesErrorParams,\n  {[K in string]?: string[] | AnySchema}\n>\n\nexport const error: KeywordErrorDefinition = {\n  message: ({params: {property, depsCount, deps}}) => {\n    const property_ies = depsCount === 1 ? \"property\" : \"properties\"\n    return str`must have ${property_ies} ${deps} when property ${property} is present`\n  },\n  params: ({params: {property, depsCount, deps, missingProperty}}) =>\n    _`{property: ${property},\n    missingProperty: ${missingProperty},\n    depsCount: ${depsCount},\n    deps: ${deps}}`, // TODO change to reference\n}\n\nconst def: CodeKeywordDefinition = {\n  keyword: \"dependencies\",\n  type: \"object\",\n  schemaType: \"object\",\n  error,\n  code(cxt: KeywordCxt) {\n    const [propDeps, schDeps] = splitDependencies(cxt)\n    validatePropertyDeps(cxt, propDeps)\n    validateSchemaDeps(cxt, schDeps)\n  },\n}\n\nfunction splitDependencies({schema}: KeywordCxt): [PropertyDependencies, SchemaDependencies] {\n  const propertyDeps: PropertyDependencies = {}\n  const schemaDeps: SchemaDependencies = {}\n  for (const key in schema) {\n    if (key === \"__proto__\") continue\n    const deps = Array.isArray(schema[key]) ? propertyDeps : schemaDeps\n    deps[key] = schema[key]\n  }\n  return [propertyDeps, schemaDeps]\n}\n\nexport function validatePropertyDeps(\n  cxt: KeywordCxt,\n  propertyDeps: {[K in string]?: string[]} = cxt.schema\n): void {\n  const {gen, data, it} = cxt\n  if (Object.keys(propertyDeps).length === 0) return\n  const missing = gen.let(\"missing\")\n  for (const prop in propertyDeps) {\n    const deps = propertyDeps[prop] as string[]\n    if (deps.length === 0) continue\n    const hasProperty = propertyInData(gen, data, prop, it.opts.ownProperties)\n    cxt.setParams({\n      property: prop,\n      depsCount: deps.length,\n      deps: deps.join(\", \"),\n    })\n    if (it.allErrors) {\n      gen.if(hasProperty, () => {\n        for (const depProp of deps) {\n          checkReportMissingProp(cxt, depProp)\n        }\n      })\n    } else {\n      gen.if(_`${hasProperty} && (${checkMissingProp(cxt, deps, missing)})`)\n      reportMissingProp(cxt, missing)\n      gen.else()\n    }\n  }\n}\n\nexport function validateSchemaDeps(cxt: KeywordCxt, schemaDeps: SchemaMap = cxt.schema): void {\n  const {gen, data, keyword, it} = cxt\n  const valid = gen.name(\"valid\")\n  for (const prop in schemaDeps) {\n    if (alwaysValidSchema(it, schemaDeps[prop] as AnySchema)) continue\n    gen.if(\n      propertyInData(gen, data, prop, it.opts.ownProperties),\n      () => {\n        const schCxt = cxt.subschema({keyword, schemaProp: prop}, valid)\n        cxt.mergeValidEvaluated(schCxt, valid)\n      },\n      () => gen.var(valid, true) // TODO var\n    )\n    cxt.ok(valid)\n  }\n}\n\nexport default def\n","import type {\n  CodeKeywordDefinition,\n  ErrorObject,\n  KeywordErrorDefinition,\n  AnySchema,\n} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, not} from \"../../compile/codegen\"\nimport {alwaysValidSchema} from \"../../compile/util\"\n\nexport type PropertyNamesError = ErrorObject<\"propertyNames\", {propertyName: string}, AnySchema>\n\nconst error: KeywordErrorDefinition = {\n  message: \"property name must be valid\",\n  params: ({params}) => _`{propertyName: ${params.propertyName}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n  keyword: \"propertyNames\",\n  type: \"object\",\n  schemaType: [\"object\", \"boolean\"],\n  error,\n  code(cxt: KeywordCxt) {\n    const {gen, schema, data, it} = cxt\n    if (alwaysValidSchema(it, schema)) return\n    const valid = gen.name(\"valid\")\n\n    gen.forIn(\"key\", data, (key) => {\n      cxt.setParams({propertyName: key})\n      cxt.subschema(\n        {\n          keyword: \"propertyNames\",\n          data: key,\n          dataTypes: [\"string\"],\n          propertyName: key,\n          compositeRule: true,\n        },\n        valid\n      )\n      gen.if(not(valid), () => {\n        cxt.error(true)\n        if (!it.allErrors) gen.break()\n      })\n    })\n\n    cxt.ok(valid)\n  },\n}\n\nexport default def\n","import type {\n  CodeKeywordDefinition,\n  AddedKeywordDefinition,\n  ErrorObject,\n  KeywordErrorDefinition,\n  AnySchema,\n} from \"../../types\"\nimport {allSchemaProperties, usePattern, isOwnProperty} from \"../code\"\nimport {_, nil, or, not, Code, Name} from \"../../compile/codegen\"\nimport N from \"../../compile/names\"\nimport type {SubschemaArgs} from \"../../compile/validate/subschema\"\nimport {alwaysValidSchema, schemaRefOrVal, Type} from \"../../compile/util\"\n\nexport type AdditionalPropertiesError = ErrorObject<\n  \"additionalProperties\",\n  {additionalProperty: string},\n  AnySchema\n>\n\nconst error: KeywordErrorDefinition = {\n  message: \"must NOT have additional properties\",\n  params: ({params}) => _`{additionalProperty: ${params.additionalProperty}}`,\n}\n\nconst def: CodeKeywordDefinition & AddedKeywordDefinition = {\n  keyword: \"additionalProperties\",\n  type: [\"object\"],\n  schemaType: [\"boolean\", \"object\"],\n  allowUndefined: true,\n  trackErrors: true,\n  error,\n  code(cxt) {\n    const {gen, schema, parentSchema, data, errsCount, it} = cxt\n    /* istanbul ignore if */\n    if (!errsCount) throw new Error(\"ajv implementation error\")\n    const {allErrors, opts} = it\n    it.props = true\n    if (opts.removeAdditional !== \"all\" && alwaysValidSchema(it, schema)) return\n    const props = allSchemaProperties(parentSchema.properties)\n    const patProps = allSchemaProperties(parentSchema.patternProperties)\n    checkAdditionalProperties()\n    cxt.ok(_`${errsCount} === ${N.errors}`)\n\n    function checkAdditionalProperties(): void {\n      gen.forIn(\"key\", data, (key: Name) => {\n        if (!props.length && !patProps.length) additionalPropertyCode(key)\n        else gen.if(isAdditional(key), () => additionalPropertyCode(key))\n      })\n    }\n\n    function isAdditional(key: Name): Code {\n      let definedProp: Code\n      if (props.length > 8) {\n        // TODO maybe an option instead of hard-coded 8?\n        const propsSchema = schemaRefOrVal(it, parentSchema.properties, \"properties\")\n        definedProp = isOwnProperty(gen, propsSchema as Code, key)\n      } else if (props.length) {\n        definedProp = or(...props.map((p) => _`${key} === ${p}`))\n      } else {\n        definedProp = nil\n      }\n      if (patProps.length) {\n        definedProp = or(definedProp, ...patProps.map((p) => _`${usePattern(cxt, p)}.test(${key})`))\n      }\n      return not(definedProp)\n    }\n\n    function deleteAdditional(key: Name): void {\n      gen.code(_`delete ${data}[${key}]`)\n    }\n\n    function additionalPropertyCode(key: Name): void {\n      if (opts.removeAdditional === \"all\" || (opts.removeAdditional && schema === false)) {\n        deleteAdditional(key)\n        return\n      }\n\n      if (schema === false) {\n        cxt.setParams({additionalProperty: key})\n        cxt.error()\n        if (!allErrors) gen.break()\n        return\n      }\n\n      if (typeof schema == \"object\" && !alwaysValidSchema(it, schema)) {\n        const valid = gen.name(\"valid\")\n        if (opts.removeAdditional === \"failing\") {\n          applyAdditionalSchema(key, valid, false)\n          gen.if(not(valid), () => {\n            cxt.reset()\n            deleteAdditional(key)\n          })\n        } else {\n          applyAdditionalSchema(key, valid)\n          if (!allErrors) gen.if(not(valid), () => gen.break())\n        }\n      }\n    }\n\n    function applyAdditionalSchema(key: Name, valid: Name, errors?: false): void {\n      const subschema: SubschemaArgs = {\n        keyword: \"additionalProperties\",\n        dataProp: key,\n        dataPropType: Type.Str,\n      }\n      if (errors === false) {\n        Object.assign(subschema, {\n          compositeRule: true,\n          createErrors: false,\n          allErrors: false,\n        })\n      }\n      cxt.subschema(subschema, valid)\n    }\n  },\n}\n\nexport default def\n","import type {CodeKeywordDefinition} from \"../../types\"\nimport {KeywordCxt} from \"../../compile/validate\"\nimport {propertyInData, allSchemaProperties} from \"../code\"\nimport {alwaysValidSchema, toHash, mergeEvaluated} from \"../../compile/util\"\nimport apDef from \"./additionalProperties\"\n\nconst def: CodeKeywordDefinition = {\n  keyword: \"properties\",\n  type: \"object\",\n  schemaType: \"object\",\n  code(cxt: KeywordCxt) {\n    const {gen, schema, parentSchema, data, it} = cxt\n    if (it.opts.removeAdditional === \"all\" && parentSchema.additionalProperties === undefined) {\n      apDef.code(new KeywordCxt(it, apDef, \"additionalProperties\"))\n    }\n    const allProps = allSchemaProperties(schema)\n    for (const prop of allProps) {\n      it.definedProperties.add(prop)\n    }\n    if (it.opts.unevaluated && allProps.length && it.props !== true) {\n      it.props = mergeEvaluated.props(gen, toHash(allProps), it.props)\n    }\n    const properties = allProps.filter((p) => !alwaysValidSchema(it, schema[p]))\n    if (properties.length === 0) return\n    const valid = gen.name(\"valid\")\n\n    for (const prop of properties) {\n      if (hasDefault(prop)) {\n        applyPropertySchema(prop)\n      } else {\n        gen.if(propertyInData(gen, data, prop, it.opts.ownProperties))\n        applyPropertySchema(prop)\n        if (!it.allErrors) gen.else().var(valid, true)\n        gen.endIf()\n      }\n      cxt.it.definedProperties.add(prop)\n      cxt.ok(valid)\n    }\n\n    function hasDefault(prop: string): boolean | undefined {\n      return it.opts.useDefaults && !it.compositeRule && schema[prop].default !== undefined\n    }\n\n    function applyPropertySchema(prop: string): void {\n      cxt.subschema(\n        {\n          keyword: \"properties\",\n          schemaProp: prop,\n          dataProp: prop,\n        },\n        valid\n      )\n    }\n  },\n}\n\nexport default def\n","import type {CodeKeywordDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {allSchemaProperties, usePattern} from \"../code\"\nimport {_, not, Name} from \"../../compile/codegen\"\nimport {alwaysValidSchema, checkStrictMode} from \"../../compile/util\"\nimport {evaluatedPropsToName, Type} from \"../../compile/util\"\nimport {AnySchema} from \"../../types\"\n\nconst def: CodeKeywordDefinition = {\n  keyword: \"patternProperties\",\n  type: \"object\",\n  schemaType: \"object\",\n  code(cxt: KeywordCxt) {\n    const {gen, schema, data, parentSchema, it} = cxt\n    const {opts} = it\n    const patterns = allSchemaProperties(schema)\n    const alwaysValidPatterns = patterns.filter((p) =>\n      alwaysValidSchema(it, schema[p] as AnySchema)\n    )\n\n    if (\n      patterns.length === 0 ||\n      (alwaysValidPatterns.length === patterns.length &&\n        (!it.opts.unevaluated || it.props === true))\n    ) {\n      return\n    }\n\n    const checkProperties =\n      opts.strictSchema && !opts.allowMatchingProperties && parentSchema.properties\n    const valid = gen.name(\"valid\")\n    if (it.props !== true && !(it.props instanceof Name)) {\n      it.props = evaluatedPropsToName(gen, it.props)\n    }\n    const {props} = it\n    validatePatternProperties()\n\n    function validatePatternProperties(): void {\n      for (const pat of patterns) {\n        if (checkProperties) checkMatchingProperties(pat)\n        if (it.allErrors) {\n          validateProperties(pat)\n        } else {\n          gen.var(valid, true) // TODO var\n          validateProperties(pat)\n          gen.if(valid)\n        }\n      }\n    }\n\n    function checkMatchingProperties(pat: string): void {\n      for (const prop in checkProperties) {\n        if (new RegExp(pat).test(prop)) {\n          checkStrictMode(\n            it,\n            `property ${prop} matches pattern ${pat} (use allowMatchingProperties)`\n          )\n        }\n      }\n    }\n\n    function validateProperties(pat: string): void {\n      gen.forIn(\"key\", data, (key) => {\n        gen.if(_`${usePattern(cxt, pat)}.test(${key})`, () => {\n          const alwaysValid = alwaysValidPatterns.includes(pat)\n          if (!alwaysValid) {\n            cxt.subschema(\n              {\n                keyword: \"patternProperties\",\n                schemaProp: pat,\n                dataProp: key,\n                dataPropType: Type.Str,\n              },\n              valid\n            )\n          }\n\n          if (it.opts.unevaluated && props !== true) {\n            gen.assign(_`${props}[${key}]`, true)\n          } else if (!alwaysValid && !it.allErrors) {\n            // can short-circuit if `unevaluatedProperties` is not supported (opts.next === false)\n            // or if all properties were evaluated (props === true)\n            gen.if(not(valid), () => gen.break())\n          }\n        })\n      })\n    }\n  },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, ErrorNoParams, AnySchema} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {alwaysValidSchema} from \"../../compile/util\"\n\nexport type NotKeywordError = ErrorNoParams<\"not\", AnySchema>\n\nconst def: CodeKeywordDefinition = {\n  keyword: \"not\",\n  schemaType: [\"object\", \"boolean\"],\n  trackErrors: true,\n  code(cxt: KeywordCxt) {\n    const {gen, schema, it} = cxt\n    if (alwaysValidSchema(it, schema)) {\n      cxt.fail()\n      return\n    }\n\n    const valid = gen.name(\"valid\")\n    cxt.subschema(\n      {\n        keyword: \"not\",\n        compositeRule: true,\n        createErrors: false,\n        allErrors: false,\n      },\n      valid\n    )\n\n    cxt.failResult(\n      valid,\n      () => cxt.reset(),\n      () => cxt.error()\n    )\n  },\n  error: {message: \"must NOT be valid\"},\n}\n\nexport default def\n","import type {CodeKeywordDefinition, ErrorNoParams, AnySchema} from \"../../types\"\nimport {validateUnion} from \"../code\"\n\nexport type AnyOfError = ErrorNoParams<\"anyOf\", AnySchema[]>\n\nconst def: CodeKeywordDefinition = {\n  keyword: \"anyOf\",\n  schemaType: \"array\",\n  trackErrors: true,\n  code: validateUnion,\n  error: {message: \"must match a schema in anyOf\"},\n}\n\nexport default def\n","import type {\n  CodeKeywordDefinition,\n  ErrorObject,\n  KeywordErrorDefinition,\n  AnySchema,\n} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, Name} from \"../../compile/codegen\"\nimport {alwaysValidSchema} from \"../../compile/util\"\nimport {SchemaCxt} from \"../../compile\"\n\nexport type OneOfError = ErrorObject<\n  \"oneOf\",\n  {passingSchemas: [number, number] | null},\n  AnySchema[]\n>\n\nconst error: KeywordErrorDefinition = {\n  message: \"must match exactly one schema in oneOf\",\n  params: ({params}) => _`{passingSchemas: ${params.passing}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n  keyword: \"oneOf\",\n  schemaType: \"array\",\n  trackErrors: true,\n  error,\n  code(cxt: KeywordCxt) {\n    const {gen, schema, parentSchema, it} = cxt\n    /* istanbul ignore if */\n    if (!Array.isArray(schema)) throw new Error(\"ajv implementation error\")\n    if (it.opts.discriminator && parentSchema.discriminator) return\n    const schArr: AnySchema[] = schema\n    const valid = gen.let(\"valid\", false)\n    const passing = gen.let(\"passing\", null)\n    const schValid = gen.name(\"_valid\")\n    cxt.setParams({passing})\n    // TODO possibly fail straight away (with warning or exception) if there are two empty always valid schemas\n\n    gen.block(validateOneOf)\n\n    cxt.result(\n      valid,\n      () => cxt.reset(),\n      () => cxt.error(true)\n    )\n\n    function validateOneOf(): void {\n      schArr.forEach((sch: AnySchema, i: number) => {\n        let schCxt: SchemaCxt | undefined\n        if (alwaysValidSchema(it, sch)) {\n          gen.var(schValid, true)\n        } else {\n          schCxt = cxt.subschema(\n            {\n              keyword: \"oneOf\",\n              schemaProp: i,\n              compositeRule: true,\n            },\n            schValid\n          )\n        }\n\n        if (i > 0) {\n          gen\n            .if(_`${schValid} && ${valid}`)\n            .assign(valid, false)\n            .assign(passing, _`[${passing}, ${i}]`)\n            .else()\n        }\n\n        gen.if(schValid, () => {\n          gen.assign(valid, true)\n          gen.assign(passing, i)\n          if (schCxt) cxt.mergeEvaluated(schCxt, Name)\n        })\n      })\n    }\n  },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, AnySchema} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {alwaysValidSchema} from \"../../compile/util\"\n\nconst def: CodeKeywordDefinition = {\n  keyword: \"allOf\",\n  schemaType: \"array\",\n  code(cxt: KeywordCxt) {\n    const {gen, schema, it} = cxt\n    /* istanbul ignore if */\n    if (!Array.isArray(schema)) throw new Error(\"ajv implementation error\")\n    const valid = gen.name(\"valid\")\n    schema.forEach((sch: AnySchema, i: number) => {\n      if (alwaysValidSchema(it, sch)) return\n      const schCxt = cxt.subschema({keyword: \"allOf\", schemaProp: i}, valid)\n      cxt.ok(valid)\n      cxt.mergeEvaluated(schCxt)\n    })\n  },\n}\n\nexport default def\n","import type {\n  CodeKeywordDefinition,\n  ErrorObject,\n  KeywordErrorDefinition,\n  AnySchema,\n} from \"../../types\"\nimport type {SchemaObjCxt} from \"../../compile\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str, not, Name} from \"../../compile/codegen\"\nimport {alwaysValidSchema, checkStrictMode} from \"../../compile/util\"\n\nexport type IfKeywordError = ErrorObject<\"if\", {failingKeyword: string}, AnySchema>\n\nconst error: KeywordErrorDefinition = {\n  message: ({params}) => str`must match \"${params.ifClause}\" schema`,\n  params: ({params}) => _`{failingKeyword: ${params.ifClause}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n  keyword: \"if\",\n  schemaType: [\"object\", \"boolean\"],\n  trackErrors: true,\n  error,\n  code(cxt: KeywordCxt) {\n    const {gen, parentSchema, it} = cxt\n    if (parentSchema.then === undefined && parentSchema.else === undefined) {\n      checkStrictMode(it, '\"if\" without \"then\" and \"else\" is ignored')\n    }\n    const hasThen = hasSchema(it, \"then\")\n    const hasElse = hasSchema(it, \"else\")\n    if (!hasThen && !hasElse) return\n\n    const valid = gen.let(\"valid\", true)\n    const schValid = gen.name(\"_valid\")\n    validateIf()\n    cxt.reset()\n\n    if (hasThen && hasElse) {\n      const ifClause = gen.let(\"ifClause\")\n      cxt.setParams({ifClause})\n      gen.if(schValid, validateClause(\"then\", ifClause), validateClause(\"else\", ifClause))\n    } else if (hasThen) {\n      gen.if(schValid, validateClause(\"then\"))\n    } else {\n      gen.if(not(schValid), validateClause(\"else\"))\n    }\n\n    cxt.pass(valid, () => cxt.error(true))\n\n    function validateIf(): void {\n      const schCxt = cxt.subschema(\n        {\n          keyword: \"if\",\n          compositeRule: true,\n          createErrors: false,\n          allErrors: false,\n        },\n        schValid\n      )\n      cxt.mergeEvaluated(schCxt)\n    }\n\n    function validateClause(keyword: string, ifClause?: Name): () => void {\n      return () => {\n        const schCxt = cxt.subschema({keyword}, schValid)\n        gen.assign(valid, schValid)\n        cxt.mergeValidEvaluated(schCxt, valid)\n        if (ifClause) gen.assign(ifClause, _`${keyword}`)\n        else cxt.setParams({ifClause: keyword})\n      }\n    }\n  },\n}\n\nfunction hasSchema(it: SchemaObjCxt, keyword: string): boolean {\n  const schema = it.schema[keyword]\n  return schema !== undefined && !alwaysValidSchema(it, schema)\n}\n\nexport default def\n","import type {CodeKeywordDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {checkStrictMode} from \"../../compile/util\"\n\nconst def: CodeKeywordDefinition = {\n  keyword: [\"then\", \"else\"],\n  schemaType: [\"object\", \"boolean\"],\n  code({keyword, parentSchema, it}: KeywordCxt) {\n    if (parentSchema.if === undefined) checkStrictMode(it, `\"${keyword}\" without \"if\" is ignored`)\n  },\n}\n\nexport default def\n","import type {ErrorNoParams, Vocabulary} from \"../../types\"\nimport additionalItems, {AdditionalItemsError} from \"./additionalItems\"\nimport prefixItems from \"./prefixItems\"\nimport items from \"./items\"\nimport items2020, {ItemsError} from \"./items2020\"\nimport contains, {ContainsError} from \"./contains\"\nimport dependencies, {DependenciesError} from \"./dependencies\"\nimport propertyNames, {PropertyNamesError} from \"./propertyNames\"\nimport additionalProperties, {AdditionalPropertiesError} from \"./additionalProperties\"\nimport properties from \"./properties\"\nimport patternProperties from \"./patternProperties\"\nimport notKeyword, {NotKeywordError} from \"./not\"\nimport anyOf, {AnyOfError} from \"./anyOf\"\nimport oneOf, {OneOfError} from \"./oneOf\"\nimport allOf from \"./allOf\"\nimport ifKeyword, {IfKeywordError} from \"./if\"\nimport thenElse from \"./thenElse\"\n\nexport default function getApplicator(draft2020 = false): Vocabulary {\n  const applicator = [\n    // any\n    notKeyword,\n    anyOf,\n    oneOf,\n    allOf,\n    ifKeyword,\n    thenElse,\n    // object\n    propertyNames,\n    additionalProperties,\n    dependencies,\n    properties,\n    patternProperties,\n  ]\n  // array\n  if (draft2020) applicator.push(prefixItems, items2020)\n  else applicator.push(additionalItems, items)\n  applicator.push(contains)\n  return applicator\n}\n\nexport type ApplicatorKeywordError =\n  | ErrorNoParams<\"false schema\">\n  | AdditionalItemsError\n  | ItemsError\n  | ContainsError\n  | AdditionalPropertiesError\n  | DependenciesError\n  | IfKeywordError\n  | AnyOfError\n  | OneOfError\n  | NotKeywordError\n  | PropertyNamesError\n","import type {\n  AddedFormat,\n  FormatValidator,\n  AsyncFormatValidator,\n  CodeKeywordDefinition,\n  KeywordErrorDefinition,\n  ErrorObject,\n} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str, nil, or, Code, getProperty, regexpCode} from \"../../compile/codegen\"\n\ntype FormatValidate =\n  | FormatValidator<string>\n  | FormatValidator<number>\n  | AsyncFormatValidator<string>\n  | AsyncFormatValidator<number>\n  | RegExp\n  | string\n  | true\n\nexport type FormatError = ErrorObject<\"format\", {format: string}, string | {$data: string}>\n\nconst error: KeywordErrorDefinition = {\n  message: ({schemaCode}) => str`must match format \"${schemaCode}\"`,\n  params: ({schemaCode}) => _`{format: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n  keyword: \"format\",\n  type: [\"number\", \"string\"],\n  schemaType: \"string\",\n  $data: true,\n  error,\n  code(cxt: KeywordCxt, ruleType?: string) {\n    const {gen, data, $data, schema, schemaCode, it} = cxt\n    const {opts, errSchemaPath, schemaEnv, self} = it\n    if (!opts.validateFormats) return\n\n    if ($data) validate$DataFormat()\n    else validateFormat()\n\n    function validate$DataFormat(): void {\n      const fmts = gen.scopeValue(\"formats\", {\n        ref: self.formats,\n        code: opts.code.formats,\n      })\n      const fDef = gen.const(\"fDef\", _`${fmts}[${schemaCode}]`)\n      const fType = gen.let(\"fType\")\n      const format = gen.let(\"format\")\n      // TODO simplify\n      gen.if(\n        _`typeof ${fDef} == \"object\" && !(${fDef} instanceof RegExp)`,\n        () => gen.assign(fType, _`${fDef}.type || \"string\"`).assign(format, _`${fDef}.validate`),\n        () => gen.assign(fType, _`\"string\"`).assign(format, fDef)\n      )\n      cxt.fail$data(or(unknownFmt(), invalidFmt()))\n\n      function unknownFmt(): Code {\n        if (opts.strictSchema === false) return nil\n        return _`${schemaCode} && !${format}`\n      }\n\n      function invalidFmt(): Code {\n        const callFormat = schemaEnv.$async\n          ? _`(${fDef}.async ? await ${format}(${data}) : ${format}(${data}))`\n          : _`${format}(${data})`\n        const validData = _`(typeof ${format} == \"function\" ? ${callFormat} : ${format}.test(${data}))`\n        return _`${format} && ${format} !== true && ${fType} === ${ruleType} && !${validData}`\n      }\n    }\n\n    function validateFormat(): void {\n      const formatDef: AddedFormat | undefined = self.formats[schema]\n      if (!formatDef) {\n        unknownFormat()\n        return\n      }\n      if (formatDef === true) return\n      const [fmtType, format, fmtRef] = getFormat(formatDef)\n      if (fmtType === ruleType) cxt.pass(validCondition())\n\n      function unknownFormat(): void {\n        if (opts.strictSchema === false) {\n          self.logger.warn(unknownMsg())\n          return\n        }\n        throw new Error(unknownMsg())\n\n        function unknownMsg(): string {\n          return `unknown format \"${schema as string}\" ignored in schema at path \"${errSchemaPath}\"`\n        }\n      }\n\n      function getFormat(fmtDef: AddedFormat): [string, FormatValidate, Code] {\n        const code =\n          fmtDef instanceof RegExp\n            ? regexpCode(fmtDef)\n            : opts.code.formats\n            ? _`${opts.code.formats}${getProperty(schema)}`\n            : undefined\n        const fmt = gen.scopeValue(\"formats\", {key: schema, ref: fmtDef, code})\n        if (typeof fmtDef == \"object\" && !(fmtDef instanceof RegExp)) {\n          return [fmtDef.type || \"string\", fmtDef.validate, _`${fmt}.validate`]\n        }\n\n        return [\"string\", fmtDef, fmt]\n      }\n\n      function validCondition(): Code {\n        if (typeof formatDef == \"object\" && !(formatDef instanceof RegExp) && formatDef.async) {\n          if (!schemaEnv.$async) throw new Error(\"async format in sync schema\")\n          return _`await ${fmtRef}(${data})`\n        }\n        return typeof format == \"function\" ? _`${fmtRef}(${data})` : _`${fmtRef}.test(${data})`\n      }\n    }\n  },\n}\n\nexport default def\n","import type {Vocabulary} from \"../../types\"\nimport formatKeyword from \"./format\"\n\nconst format: Vocabulary = [formatKeyword]\n\nexport default format\n","import type {Vocabulary} from \"../types\"\n\nexport const metadataVocabulary: Vocabulary = [\n  \"title\",\n  \"description\",\n  \"default\",\n  \"deprecated\",\n  \"readOnly\",\n  \"writeOnly\",\n  \"examples\",\n]\n\nexport const contentVocabulary: Vocabulary = [\n  \"contentMediaType\",\n  \"contentEncoding\",\n  \"contentSchema\",\n]\n","import type {Vocabulary} from \"../types\"\nimport coreVocabulary from \"./core\"\nimport validationVocabulary from \"./validation\"\nimport getApplicatorVocabulary from \"./applicator\"\nimport formatVocabulary from \"./format\"\nimport {metadataVocabulary, contentVocabulary} from \"./metadata\"\n\nconst draft7Vocabularies: Vocabulary[] = [\n  coreVocabulary,\n  validationVocabulary,\n  getApplicatorVocabulary(),\n  formatVocabulary,\n  metadataVocabulary,\n  contentVocabulary,\n]\n\nexport default draft7Vocabularies\n","import type {ErrorObject} from \"../../types\"\n\nexport enum DiscrError {\n  Tag = \"tag\",\n  Mapping = \"mapping\",\n}\n\nexport type DiscrErrorObj<E extends DiscrError> = ErrorObject<\n  \"discriminator\",\n  {error: E; tag: string; tagValue: unknown},\n  string\n>\n","import type {CodeKeywordDefinition, AnySchemaObject, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, getProperty, Name} from \"../../compile/codegen\"\nimport {DiscrError, DiscrErrorObj} from \"../discriminator/types\"\nimport {resolveRef, SchemaEnv} from \"../../compile\"\nimport MissingRefError from \"../../compile/ref_error\"\nimport {schemaHasRulesButRef} from \"../../compile/util\"\n\nexport type DiscriminatorError = DiscrErrorObj<DiscrError.Tag> | DiscrErrorObj<DiscrError.Mapping>\n\nconst error: KeywordErrorDefinition = {\n  message: ({params: {discrError, tagName}}) =>\n    discrError === DiscrError.Tag\n      ? `tag \"${tagName}\" must be string`\n      : `value of tag \"${tagName}\" must be in oneOf`,\n  params: ({params: {discrError, tag, tagName}}) =>\n    _`{error: ${discrError}, tag: ${tagName}, tagValue: ${tag}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n  keyword: \"discriminator\",\n  type: \"object\",\n  schemaType: \"object\",\n  error,\n  code(cxt: KeywordCxt) {\n    const {gen, data, schema, parentSchema, it} = cxt\n    const {oneOf} = parentSchema\n    if (!it.opts.discriminator) {\n      throw new Error(\"discriminator: requires discriminator option\")\n    }\n    const tagName = schema.propertyName\n    if (typeof tagName != \"string\") throw new Error(\"discriminator: requires propertyName\")\n    if (schema.mapping) throw new Error(\"discriminator: mapping is not supported\")\n    if (!oneOf) throw new Error(\"discriminator: requires oneOf keyword\")\n    const valid = gen.let(\"valid\", false)\n    const tag = gen.const(\"tag\", _`${data}${getProperty(tagName)}`)\n    gen.if(\n      _`typeof ${tag} == \"string\"`,\n      () => validateMapping(),\n      () => cxt.error(false, {discrError: DiscrError.Tag, tag, tagName})\n    )\n    cxt.ok(valid)\n\n    function validateMapping(): void {\n      const mapping = getMapping()\n      gen.if(false)\n      for (const tagValue in mapping) {\n        gen.elseIf(_`${tag} === ${tagValue}`)\n        gen.assign(valid, applyTagSchema(mapping[tagValue]))\n      }\n      gen.else()\n      cxt.error(false, {discrError: DiscrError.Mapping, tag, tagName})\n      gen.endIf()\n    }\n\n    function applyTagSchema(schemaProp?: number): Name {\n      const _valid = gen.name(\"valid\")\n      const schCxt = cxt.subschema({keyword: \"oneOf\", schemaProp}, _valid)\n      cxt.mergeEvaluated(schCxt, Name)\n      return _valid\n    }\n\n    function getMapping(): {[T in string]?: number} {\n      const oneOfMapping: {[T in string]?: number} = {}\n      const topRequired = hasRequired(parentSchema)\n      let tagRequired = true\n      for (let i = 0; i < oneOf.length; i++) {\n        let sch = oneOf[i]\n        if (sch?.$ref && !schemaHasRulesButRef(sch, it.self.RULES)) {\n          const ref = sch.$ref\n          sch = resolveRef.call(it.self, it.schemaEnv.root, it.baseId, ref)\n          if (sch instanceof SchemaEnv) sch = sch.schema\n          if (sch === undefined) throw new MissingRefError(it.opts.uriResolver, it.baseId, ref)\n        }\n        const propSch = sch?.properties?.[tagName]\n        if (typeof propSch != \"object\") {\n          throw new Error(\n            `discriminator: oneOf subschemas (or referenced schemas) must have \"properties/${tagName}\"`\n          )\n        }\n        tagRequired = tagRequired && (topRequired || hasRequired(sch))\n        addMappings(propSch, i)\n      }\n      if (!tagRequired) throw new Error(`discriminator: \"${tagName}\" must be required`)\n      return oneOfMapping\n\n      function hasRequired({required}: AnySchemaObject): boolean {\n        return Array.isArray(required) && required.includes(tagName)\n      }\n\n      function addMappings(sch: AnySchemaObject, i: number): void {\n        if (sch.const) {\n          addMapping(sch.const, i)\n        } else if (sch.enum) {\n          for (const tagValue of sch.enum) {\n            addMapping(tagValue, i)\n          }\n        } else {\n          throw new Error(`discriminator: \"properties/${tagName}\" must have \"const\" or \"enum\"`)\n        }\n      }\n\n      function addMapping(tagValue: unknown, i: number): void {\n        if (typeof tagValue != \"string\" || tagValue in oneOfMapping) {\n          throw new Error(`discriminator: \"${tagName}\" values must be unique strings`)\n        }\n        oneOfMapping[tagValue] = i\n      }\n    }\n  },\n}\n\nexport default def\n","{\n  \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n  \"$id\": \"http://json-schema.org/draft-07/schema#\",\n  \"title\": \"Core schema meta-schema\",\n  \"definitions\": {\n    \"schemaArray\": {\n      \"type\": \"array\",\n      \"minItems\": 1,\n      \"items\": {\"$ref\": \"#\"}\n    },\n    \"nonNegativeInteger\": {\n      \"type\": \"integer\",\n      \"minimum\": 0\n    },\n    \"nonNegativeIntegerDefault0\": {\n      \"allOf\": [{\"$ref\": \"#/definitions/nonNegativeInteger\"}, {\"default\": 0}]\n    },\n    \"simpleTypes\": {\n      \"enum\": [\"array\", \"boolean\", \"integer\", \"null\", \"number\", \"object\", \"string\"]\n    },\n    \"stringArray\": {\n      \"type\": \"array\",\n      \"items\": {\"type\": \"string\"},\n      \"uniqueItems\": true,\n      \"default\": []\n    }\n  },\n  \"type\": [\"object\", \"boolean\"],\n  \"properties\": {\n    \"$id\": {\n      \"type\": \"string\",\n      \"format\": \"uri-reference\"\n    },\n    \"$schema\": {\n      \"type\": \"string\",\n      \"format\": \"uri\"\n    },\n    \"$ref\": {\n      \"type\": \"string\",\n      \"format\": \"uri-reference\"\n    },\n    \"$comment\": {\n      \"type\": \"string\"\n    },\n    \"title\": {\n      \"type\": \"string\"\n    },\n    \"description\": {\n      \"type\": \"string\"\n    },\n    \"default\": true,\n    \"readOnly\": {\n      \"type\": \"boolean\",\n      \"default\": false\n    },\n    \"examples\": {\n      \"type\": \"array\",\n      \"items\": true\n    },\n    \"multipleOf\": {\n      \"type\": \"number\",\n      \"exclusiveMinimum\": 0\n    },\n    \"maximum\": {\n      \"type\": \"number\"\n    },\n    \"exclusiveMaximum\": {\n      \"type\": \"number\"\n    },\n    \"minimum\": {\n      \"type\": \"number\"\n    },\n    \"exclusiveMinimum\": {\n      \"type\": \"number\"\n    },\n    \"maxLength\": {\"$ref\": \"#/definitions/nonNegativeInteger\"},\n    \"minLength\": {\"$ref\": \"#/definitions/nonNegativeIntegerDefault0\"},\n    \"pattern\": {\n      \"type\": \"string\",\n      \"format\": \"regex\"\n    },\n    \"additionalItems\": {\"$ref\": \"#\"},\n    \"items\": {\n      \"anyOf\": [{\"$ref\": \"#\"}, {\"$ref\": \"#/definitions/schemaArray\"}],\n      \"default\": true\n    },\n    \"maxItems\": {\"$ref\": \"#/definitions/nonNegativeInteger\"},\n    \"minItems\": {\"$ref\": \"#/definitions/nonNegativeIntegerDefault0\"},\n    \"uniqueItems\": {\n      \"type\": \"boolean\",\n      \"default\": false\n    },\n    \"contains\": {\"$ref\": \"#\"},\n    \"maxProperties\": {\"$ref\": \"#/definitions/nonNegativeInteger\"},\n    \"minProperties\": {\"$ref\": \"#/definitions/nonNegativeIntegerDefault0\"},\n    \"required\": {\"$ref\": \"#/definitions/stringArray\"},\n    \"additionalProperties\": {\"$ref\": \"#\"},\n    \"definitions\": {\n      \"type\": \"object\",\n      \"additionalProperties\": {\"$ref\": \"#\"},\n      \"default\": {}\n    },\n    \"properties\": {\n      \"type\": \"object\",\n      \"additionalProperties\": {\"$ref\": \"#\"},\n      \"default\": {}\n    },\n    \"patternProperties\": {\n      \"type\": \"object\",\n      \"additionalProperties\": {\"$ref\": \"#\"},\n      \"propertyNames\": {\"format\": \"regex\"},\n      \"default\": {}\n    },\n    \"dependencies\": {\n      \"type\": \"object\",\n      \"additionalProperties\": {\n        \"anyOf\": [{\"$ref\": \"#\"}, {\"$ref\": \"#/definitions/stringArray\"}]\n      }\n    },\n    \"propertyNames\": {\"$ref\": \"#\"},\n    \"const\": true,\n    \"enum\": {\n      \"type\": \"array\",\n      \"items\": true,\n      \"minItems\": 1,\n      \"uniqueItems\": true\n    },\n    \"type\": {\n      \"anyOf\": [\n        {\"$ref\": \"#/definitions/simpleTypes\"},\n        {\n          \"type\": \"array\",\n          \"items\": {\"$ref\": \"#/definitions/simpleTypes\"},\n          \"minItems\": 1,\n          \"uniqueItems\": true\n        }\n      ]\n    },\n    \"format\": {\"type\": \"string\"},\n    \"contentMediaType\": {\"type\": \"string\"},\n    \"contentEncoding\": {\"type\": \"string\"},\n    \"if\": {\"$ref\": \"#\"},\n    \"then\": {\"$ref\": \"#\"},\n    \"else\": {\"$ref\": \"#\"},\n    \"allOf\": {\"$ref\": \"#/definitions/schemaArray\"},\n    \"anyOf\": {\"$ref\": \"#/definitions/schemaArray\"},\n    \"oneOf\": {\"$ref\": \"#/definitions/schemaArray\"},\n    \"not\": {\"$ref\": \"#\"}\n  },\n  \"default\": true\n}\n","import type {AnySchemaObject} from \"./types\"\nimport AjvCore from \"./core\"\nimport draft7Vocabularies from \"./vocabularies/draft7\"\nimport discriminator from \"./vocabularies/discriminator\"\nimport * as draft7MetaSchema from \"./refs/json-schema-draft-07.json\"\n\nconst META_SUPPORT_DATA = [\"/properties\"]\n\nconst META_SCHEMA_ID = \"http://json-schema.org/draft-07/schema\"\n\nexport class Ajv extends AjvCore {\n  _addVocabularies(): void {\n    super._addVocabularies()\n    draft7Vocabularies.forEach((v) => this.addVocabulary(v))\n    if (this.opts.discriminator) this.addKeyword(discriminator)\n  }\n\n  _addDefaultMetaSchema(): void {\n    super._addDefaultMetaSchema()\n    if (!this.opts.meta) return\n    const metaSchema = this.opts.$data\n      ? this.$dataMetaSchema(draft7MetaSchema, META_SUPPORT_DATA)\n      : draft7MetaSchema\n    this.addMetaSchema(metaSchema, META_SCHEMA_ID, false)\n    this.refs[\"http://json-schema.org/schema\"] = META_SCHEMA_ID\n  }\n\n  defaultMeta(): string | AnySchemaObject | undefined {\n    return (this.opts.defaultMeta =\n      super.defaultMeta() || (this.getSchema(META_SCHEMA_ID) ? META_SCHEMA_ID : undefined))\n  }\n}\n\nmodule.exports = exports = Ajv\nmodule.exports.Ajv = Ajv\nObject.defineProperty(exports, \"__esModule\", {value: true})\n\nexport default Ajv\n\nexport {\n  Format,\n  FormatDefinition,\n  AsyncFormatDefinition,\n  KeywordDefinition,\n  KeywordErrorDefinition,\n  CodeKeywordDefinition,\n  MacroKeywordDefinition,\n  FuncKeywordDefinition,\n  Vocabulary,\n  Schema,\n  SchemaObject,\n  AnySchemaObject,\n  AsyncSchema,\n  AnySchema,\n  ValidateFunction,\n  AsyncValidateFunction,\n  SchemaValidateFunction,\n  ErrorObject,\n  ErrorNoParams,\n} from \"./types\"\n\nexport {Plugin, Options, CodeOptions, InstanceOptions, Logger, ErrorsTextOptions} from \"./core\"\nexport {SchemaCxt, SchemaObjCxt} from \"./compile\"\nexport {KeywordCxt} from \"./compile/validate\"\nexport {DefinedError} from \"./vocabularies/errors\"\nexport {JSONType} from \"./compile/rules\"\nexport {JSONSchemaType} from \"./types/json-schema\"\nexport {_, str, stringify, nil, Name, Code, CodeGen, CodeGenOptions} from \"./compile/codegen\"\nexport {default as ValidationError} from \"./runtime/validation_error\"\nexport {default as MissingRefError} from \"./compile/ref_error\"\n","import { z } from 'zod';\n\nexport type JsonPrimitive = string | number | boolean | null;\nexport type JsonObject = { [key: string]: JsonValue };\nexport type JsonValue = JsonPrimitive | JsonValue[] | JsonObject;\n\nexport const JsonValueSchema: z.ZodType<JsonValue> = z.lazy(() =>\n  z.union([\n    z.string(),\n    z.number().finite(),\n    z.boolean(),\n    z.null(),\n    z.array(JsonValueSchema),\n    z.record(z.string(), JsonValueSchema),\n  ]),\n);\n\nexport const JsonObjectSchema = z.record(z.string(), JsonValueSchema);\nexport const ContractIdentifierSchema = z.string().trim().min(1).max(256);\nexport const ContractVersionSchema = z.number().int().positive();\nexport const IsoDateTimeSchema = z.string().datetime({ offset: true });\nexport const Sha256Schema = z.string().regex(/^[a-f0-9]{64}$/i, 'Expected a SHA-256 hex digest.');\n\nexport const SensitiveResultPathSchema = z\n  .string()\n  .startsWith('/')\n  .max(512)\n  .refine(\n    (path) => {\n      const rawSegments = path.split('/').slice(1);\n      const segments = rawSegments.map((segment) => segment.replace(/~1/g, '/').replace(/~0/g, '~'));\n      return (\n        segments.every((segment) => segment.length > 0 && !['__proto__', 'prototype', 'constructor'].includes(segment)) &&\n        !rawSegments.some((segment) => /~(?![01])/u.test(segment))\n      );\n    },\n    { message: 'Sensitive result paths must be safe RFC 6901 JSON Pointers.' },\n  );\n\nexport const SensitiveResultPathsSchema = z\n  .array(SensitiveResultPathSchema)\n  .max(64)\n  .superRefine((paths, context) => {\n    const segments = (path: string) => path.split('/').slice(1);\n    for (let index = 0; index < paths.length; index += 1) {\n      const candidate = segments(paths[index]!);\n      const conflict = paths.findIndex((other, otherIndex) => {\n        if (otherIndex >= index) return false;\n        const existing = segments(other);\n        const sharedLength = Math.min(existing.length, candidate.length);\n        return existing.slice(0, sharedLength).every((segment, segmentIndex) => segment === candidate[segmentIndex]);\n      });\n      if (conflict >= 0) {\n        context.addIssue({\n          code: 'custom',\n          path: [index],\n          message: 'Sensitive result paths cannot duplicate or contain one another.',\n        });\n      }\n    }\n  });\n\nexport const LocaleIdentifierSchema = z\n  .string()\n  .regex(/^[a-z]{2,3}(?:-[A-Z][a-z]{3})?(?:-[A-Z]{2}|-\\d{3})?$/, 'Expected a BCP 47 locale identifier.');\n\nexport const LocalizedTextSchema = z.union([\n  z.string().trim().min(1),\n  z\n    .record(LocaleIdentifierSchema, z.string().trim().min(1))\n    .refine((value) => Object.keys(value).length > 0, 'Localized text must contain at least one locale.'),\n]);\n\nexport const ContractMetadataSchema = z\n  .object({\n    id: ContractIdentifierSchema,\n    version: ContractVersionSchema,\n    name: z.string().trim().min(1).optional(),\n    description: z.string().optional(),\n    labels: z.record(z.string(), z.string()).optional(),\n    createdAt: IsoDateTimeSchema.optional(),\n    updatedAt: IsoDateTimeSchema.optional(),\n  })\n  .strict();\n\nexport const EntityRefSchema = z\n  .object({\n    kind: ContractIdentifierSchema,\n    id: ContractIdentifierSchema,\n    version: z.union([ContractVersionSchema, z.string().trim().min(1)]).optional(),\n    ownerRepo: ContractIdentifierSchema.optional(),\n  })\n  .strict();\n\nexport type ContractMetadata = z.infer<typeof ContractMetadataSchema>;\nexport type EntityRef = z.infer<typeof EntityRefSchema>;\nexport type LocalizedText = z.infer<typeof LocalizedTextSchema>;\n","import { z } from 'zod';\nimport { ContractIdentifierSchema, ContractVersionSchema, LocalizedTextSchema } from './common';\n\nexport const PermissionDefinitionSchema = z\n  .object({\n    code: ContractIdentifierSchema,\n    name: LocalizedTextSchema,\n    description: LocalizedTextSchema.optional(),\n    resource: ContractIdentifierSchema,\n    action: ContractIdentifierSchema,\n    domain: ContractIdentifierSchema.optional(),\n  })\n  .strict();\n\nexport const PermissionBundleSchema = z\n  .object({\n    bundleId: ContractIdentifierSchema,\n    name: LocalizedTextSchema,\n    permissionCodes: z.array(ContractIdentifierSchema).default([]),\n  })\n  .strict();\n\nexport const SystemGroupDefinitionSchema = z\n  .object({\n    groupCode: ContractIdentifierSchema,\n    name: LocalizedTextSchema,\n    description: LocalizedTextSchema.optional(),\n    permissionPolicy: z.enum(['bundles', 'studio_current', 'all_current']).default('bundles'),\n    permissionBundleIds: z.array(ContractIdentifierSchema).default([]),\n  })\n  .strict()\n  .refine((value) => value.permissionPolicy !== 'bundles' || value.permissionBundleIds.length > 0, {\n    message: 'A bundles permission policy requires at least one permission bundle.',\n    path: ['permissionBundleIds'],\n  });\n\nexport const ProductAccessDeclarationSchema = z\n  .object({\n    contract: z.literal('ProductAccessDeclaration'),\n    declarationId: ContractIdentifierSchema,\n    version: ContractVersionSchema,\n    ownerRepo: ContractIdentifierSchema,\n    permissions: z.array(PermissionDefinitionSchema).default([]),\n    permissionBundles: z.array(PermissionBundleSchema).default([]),\n    systemGroups: z.array(SystemGroupDefinitionSchema).min(1),\n  })\n  .strict();\n\nexport type PermissionDefinition = z.infer<typeof PermissionDefinitionSchema>;\nexport type PermissionBundle = z.infer<typeof PermissionBundleSchema>;\nexport type SystemGroupDefinition = z.infer<typeof SystemGroupDefinitionSchema>;\nexport type ProductAccessDeclaration = z.infer<typeof ProductAccessDeclarationSchema>;\n","import { z } from 'zod';\nimport { ContractIdentifierSchema, IsoDateTimeSchema, JsonObjectSchema, JsonValueSchema } from './common';\n\nexport const StudioAgentModeSchema = z.enum(['chat', 'work']);\n\n/** @deprecated Use StudioAgentModeSchema. */\nexport const AgentModeSchema = StudioAgentModeSchema;\n\nexport const AgentConfigurationCapabilitySchema = z.enum([\n  'models',\n  'skills',\n  'tools',\n  'mcp',\n  'reasoning',\n]);\n\nexport const AgentModeCapabilitiesSchema = z\n  .object({\n    models: z.boolean(),\n    skills: z.boolean(),\n    tools: z.boolean(),\n    mcp: z.boolean(),\n    reasoning: z.boolean(),\n  })\n  .strict();\n\nexport const AgentResourceModeSupportSchema = z\n  .object({\n    modes: z.array(AgentModeSchema).min(1),\n  })\n  .strict();\n\nexport const AGENT_MODE_CAPABILITIES = Object.freeze({\n  chat: AgentModeCapabilitiesSchema.parse({\n    models: true,\n    skills: true,\n    tools: true,\n    mcp: true,\n    reasoning: false,\n  }),\n  work: AgentModeCapabilitiesSchema.parse({\n    models: true,\n    skills: true,\n    tools: true,\n    mcp: true,\n    reasoning: true,\n  }),\n}) satisfies Readonly<Record<AgentMode, AgentModeCapabilities>>;\n\nexport function getAgentModeCapabilities(mode: AgentMode): AgentModeCapabilities {\n  return AGENT_MODE_CAPABILITIES[mode];\n}\n\nexport function agentModeHasCapability(mode: AgentMode, capability: AgentConfigurationCapability): boolean {\n  return getAgentModeCapabilities(mode)[capability];\n}\n\nexport function isAgentResourceModeCompatible(\n  support: AgentResourceModeSupport | undefined,\n  mode: AgentMode,\n): boolean {\n  return support?.modes.includes(mode) ?? false;\n}\n\nexport const AgentSessionCapabilitySchema = z.enum([\n  'text',\n  'reasoning',\n  'plan',\n  'tasks',\n  'tools',\n  'mcp',\n  'shell',\n  'fileChange',\n  'skills',\n  'approval',\n  'artifacts',\n  'usage',\n  'resume',\n  'diff',\n  'workspaceFiles',\n  'terminal',\n  'testResults',\n  'threadForking',\n  'editAndRerun',\n  'steering',\n  'summary',\n]);\n\nexport const AgentSessionCapabilitiesSchema = z\n  .object({\n    text: z.boolean().default(true),\n    reasoning: z.boolean().default(false),\n    plan: z.boolean().default(false),\n    tasks: z.boolean().default(false),\n    tools: z.boolean().default(false),\n    mcp: z.boolean().default(false),\n    shell: z.boolean().default(false),\n    fileChange: z.boolean().default(false),\n    skills: z.boolean().default(false),\n    approval: z.boolean().default(false),\n    artifacts: z.boolean().default(false),\n    usage: z.boolean().default(false),\n    resume: z.boolean().default(false),\n    diff: z.boolean().default(false),\n    workspaceFiles: z.boolean().default(false),\n    terminal: z.boolean().default(false),\n    testResults: z.boolean().default(false),\n    threadForking: z.boolean().default(false),\n    editAndRerun: z.boolean().default(false),\n    steering: z.boolean().default(false),\n    summary: z.boolean().default(false),\n  })\n  .strict();\n\n/**\n * Session-level execution safety profile. This is a product contract; runtime\n * adapters map it to their own approval and sandbox settings.\n */\nexport const AgentSessionPermissionProfileSchema = z.enum([\n  'approval-required',\n  'auto-approve',\n  'full-access',\n]);\n\nexport const AGENT_SESSION_RUNTIME_CAPABILITIES = Object.freeze({\n  chat: AgentSessionCapabilitiesSchema.parse({ text: true, tools: true, mcp: true, skills: true, approval: true, usage: true, editAndRerun: true, summary: true }),\n  work: AgentSessionCapabilitiesSchema.parse({ text: true, tools: true, mcp: true, shell: true, fileChange: true, skills: true, approval: true, artifacts: true, usage: true, resume: true, editAndRerun: true, steering: true, summary: true }),\n}) satisfies Readonly<Record<AgentMode, AgentSessionCapabilities>>;\n\nexport function getAgentSessionRuntimeCapabilities(mode: AgentMode): AgentSessionCapabilities {\n  return AGENT_SESSION_RUNTIME_CAPABILITIES[mode];\n}\n\nexport const AGENT_SESSION_CAPABILITY_EVIDENCE = Object.freeze({\n  text: { eventTypes: ['message'], commandTypes: [] },\n  reasoning: { eventTypes: ['reasoning'], commandTypes: [] },\n  plan: { eventTypes: ['plan'], commandTypes: [] },\n  tasks: { eventTypes: ['task'], commandTypes: [] },\n  tools: { eventTypes: ['tool'], commandTypes: [] },\n  mcp: { eventTypes: ['tool'], commandTypes: [] },\n  shell: { eventTypes: ['tool', 'terminal'], commandTypes: [] },\n  fileChange: { eventTypes: ['tool', 'diff', 'workspace-file'], commandTypes: [] },\n  skills: { eventTypes: ['tool'], commandTypes: [] },\n  approval: { eventTypes: ['approval'], commandTypes: ['approval'] },\n  artifacts: { eventTypes: ['artifact'], commandTypes: [] },\n  usage: { eventTypes: ['usage'], commandTypes: [] },\n  resume: { eventTypes: ['resume'], commandTypes: ['resume'] },\n  diff: { eventTypes: ['diff'], commandTypes: [] },\n  workspaceFiles: { eventTypes: ['workspace-file'], commandTypes: [] },\n  terminal: { eventTypes: ['terminal'], commandTypes: [] },\n  testResults: { eventTypes: ['test-result'], commandTypes: [] },\n  threadForking: { eventTypes: [], commandTypes: ['fork'] },\n  editAndRerun: { eventTypes: [], commandTypes: ['edit-and-rerun'] },\n  steering: { eventTypes: ['steer'], commandTypes: ['steer'] },\n  summary: { eventTypes: ['summary'], commandTypes: ['retry-summary'] },\n} as const) satisfies Readonly<Record<AgentSessionCapability, { readonly eventTypes: readonly string[]; readonly commandTypes: readonly string[] }>>;\n\nexport function findUnsupportedAgentSessionCapabilities(\n  capabilities: AgentSessionCapabilities,\n  evidence: { eventTypes?: readonly string[]; commandTypes?: readonly string[] },\n): AgentSessionCapability[] {\n  const eventTypes = new Set(evidence.eventTypes || []);\n  const commandTypes = new Set(evidence.commandTypes || []);\n  return AgentSessionCapabilitySchema.options.filter((capability) => {\n    if (!capabilities[capability]) return false;\n    const requirement = AGENT_SESSION_CAPABILITY_EVIDENCE[capability];\n    return !requirement.eventTypes.some((eventType) => eventTypes.has(eventType)) && !requirement.commandTypes.some((commandType) => commandTypes.has(commandType));\n  });\n}\n\nexport const AgentSessionSnapshotSchema = z\n  .object({\n    mode: AgentModeSchema,\n    modelId: z.string().trim().min(1),\n    capabilities: AgentSessionCapabilitiesSchema,\n    permissionProfile: AgentSessionPermissionProfileSchema.optional(),\n  })\n  .strict();\n\nexport const AgentSessionStatusSchema = z.enum([\n  'queued',\n  'running',\n  'waiting_approval',\n  'stopping',\n  'stopped',\n  'completed',\n  'failed',\n]);\n\nexport const AgentSessionTerminalStatusSchema = z.enum(['stopped', 'completed', 'failed']);\n\nexport const AgentSessionLineageSchema = z\n  .object({\n    forkedFromThreadId: ContractIdentifierSchema,\n    forkedFromMessageId: ContractIdentifierSchema,\n    sourceRunId: ContractIdentifierSchema,\n  })\n  .strict();\n\nexport const AgentSessionContextInheritanceSchema = z\n  .object({\n    messages: z.enum(['through-source-message', 'exclude']),\n    attachments: z.enum(['inherit', 'exclude']),\n    summaries: z.enum(['inherit', 'exclude']),\n    toolResults: z.enum(['inherit', 'exclude']),\n    codeChanges: z.enum(['inherit', 'exclude']),\n  })\n  .strict();\n\nexport const AgentSessionInheritedContextMessageSchema = z\n  .object({\n    messageId: ContractIdentifierSchema,\n    role: z.enum(['user', 'assistant']),\n    parts: z.array(JsonValueSchema).min(1),\n  })\n  .strict();\n\nexport const AgentSessionUnavailableResourceSchema = z\n  .object({\n    messageId: ContractIdentifierSchema,\n    kind: z.enum(['attachment', 'tool-result', 'code-change']),\n    reason: z.enum(['excluded', 'unavailable', 'unsupported']),\n  })\n  .strict();\n\nexport const AgentSessionInheritedContextSchema = z\n  .object({\n    sourceThreadId: ContractIdentifierSchema,\n    sourceMessageId: ContractIdentifierSchema,\n    sourceRunId: ContractIdentifierSchema,\n    messages: z.array(AgentSessionInheritedContextMessageSchema).max(24),\n    summary: z.string().trim().min(1).optional(),\n    unavailableResources: z.array(AgentSessionUnavailableResourceSchema).default([]),\n    capturedAt: IsoDateTimeSchema,\n  })\n  .strict();\n\nexport const AgentSessionContinuationRequestSchema = z\n  .object({\n    contract: z.literal('AgentSessionContinuationRequest'),\n    idempotencyKey: ContractIdentifierSchema,\n    sourceMessageId: ContractIdentifierSchema,\n    sourceRunId: ContractIdentifierSchema,\n    inheritance: AgentSessionContextInheritanceSchema,\n  })\n  .strict();\n\nexport const AgentSessionContinuationResultSchema = z\n  .object({\n    contract: z.literal('AgentSessionContinuationResult'),\n    idempotencyKey: ContractIdentifierSchema,\n    threadId: ContractIdentifierSchema,\n    lineage: AgentSessionLineageSchema,\n    inheritance: AgentSessionContextInheritanceSchema,\n    unavailableResources: z.array(AgentSessionUnavailableResourceSchema).default([]),\n    duplicate: z.boolean(),\n    createdAt: IsoDateTimeSchema,\n  })\n  .strict();\n\nexport const AgentSessionActiveBranchSchema = z\n  .object({\n    branchId: ContractIdentifierSchema,\n    threadId: ContractIdentifierSchema,\n    sourceMessageId: ContractIdentifierSchema,\n    runId: ContractIdentifierSchema,\n    lineage: AgentSessionLineageSchema.optional(),\n    createdAt: IsoDateTimeSchema,\n  })\n  .strict();\n\nexport const AgentSessionRunSchema = z\n  .object({\n    runId: ContractIdentifierSchema,\n    sessionId: ContractIdentifierSchema,\n    sourceMessageId: ContractIdentifierSchema,\n    status: AgentSessionStatusSchema,\n    startedAt: IsoDateTimeSchema,\n    stoppingRequestedAt: IsoDateTimeSchema.optional(),\n    stoppedAt: IsoDateTimeSchema.optional(),\n    completedAt: IsoDateTimeSchema.optional(),\n    failedAt: IsoDateTimeSchema.optional(),\n    durationMs: z.number().nonnegative().optional(),\n  })\n  .strict()\n  .superRefine((value, context) => {\n    const terminalTimestamps = [value.stoppedAt, value.completedAt, value.failedAt].filter(Boolean);\n    if (terminalTimestamps.length > 1) {\n      context.addIssue({\n        code: 'custom',\n        path: ['status'],\n        message: 'A run may declare only one terminal timestamp.',\n      });\n    }\n    const expectedTimestamp =\n      value.status === 'stopped'\n        ? value.stoppedAt\n        : value.status === 'completed'\n          ? value.completedAt\n          : value.status === 'failed'\n            ? value.failedAt\n            : undefined;\n    if (AgentSessionTerminalStatusSchema.safeParse(value.status).success && !expectedTimestamp) {\n      context.addIssue({\n        code: 'custom',\n        path: [value.status === 'stopped' ? 'stoppedAt' : value.status === 'completed' ? 'completedAt' : 'failedAt'],\n        message: `Run status ${value.status} requires its matching terminal timestamp.`,\n      });\n    }\n    if (!AgentSessionTerminalStatusSchema.safeParse(value.status).success && terminalTimestamps.length > 0) {\n      context.addIssue({\n        code: 'custom',\n        path: ['status'],\n        message: 'A non-terminal run must not declare a terminal timestamp.',\n      });\n    }\n    if ((value.status === 'stopping' || value.status === 'stopped') && !value.stoppingRequestedAt) {\n      context.addIssue({\n        code: 'custom',\n        path: ['stoppingRequestedAt'],\n        message: `Run status ${value.status} requires stoppingRequestedAt.`,\n      });\n    }\n    if (!isAgentSessionTerminalStatus(value.status) && value.durationMs !== undefined) {\n      context.addIssue({\n        code: 'custom',\n        path: ['durationMs'],\n        message: 'Only a terminal run may declare durationMs.',\n      });\n    }\n    if (isAgentSessionTerminalStatus(value.status) && value.durationMs === undefined) {\n      context.addIssue({\n        code: 'custom',\n        path: ['durationMs'],\n        message: `Terminal run status ${value.status} requires durationMs.`,\n      });\n    }\n  });\n\nexport const AgentSessionCommandTypeSchema = z.enum([\n  'stop',\n  'resume',\n  'retry',\n  'retry-summary',\n  'approval',\n  'fork',\n  'edit-and-rerun',\n  'steer',\n]);\n\nconst AgentSessionCommandHeaderSchema = z\n  .object({\n    contract: z.literal('AgentSessionCommand'),\n    commandId: ContractIdentifierSchema,\n    sessionId: ContractIdentifierSchema,\n    runId: ContractIdentifierSchema.optional(),\n    idempotencyKey: ContractIdentifierSchema,\n    expectedSequence: z.number().int().min(-1),\n    issuedAt: IsoDateTimeSchema,\n  })\n  .strict();\n\nconst sessionCommand = <CommandType extends string, Payload extends z.ZodRawShape>(commandType: CommandType, payload: Payload) =>\n  AgentSessionCommandHeaderSchema.extend({\n    commandType: z.literal(commandType),\n    payload: z.object(payload).strict(),\n  }).strict();\n\nexport const AgentSessionCommandSchema = z.discriminatedUnion('commandType', [\n  sessionCommand('stop', {\n    reason: z.string().trim().min(1).optional(),\n  }),\n  sessionCommand('resume', {\n    resumeEventId: ContractIdentifierSchema.optional(),\n  }),\n  sessionCommand('retry', {\n    sourceEventId: ContractIdentifierSchema,\n  }),\n  sessionCommand('retry-summary', {\n    sourceEventId: ContractIdentifierSchema,\n    sourceRunId: ContractIdentifierSchema,\n  }),\n  sessionCommand('approval', {\n    approvalId: ContractIdentifierSchema,\n    decision: z.enum(['approved', 'rejected']),\n    reason: z.string().trim().min(1).optional(),\n  }),\n  sessionCommand('fork', {\n    sourceThreadId: ContractIdentifierSchema,\n    sourceMessageId: ContractIdentifierSchema,\n    sourceRunId: ContractIdentifierSchema,\n    inheritance: AgentSessionContextInheritanceSchema,\n  }),\n  sessionCommand('edit-and-rerun', {\n    sourceThreadId: ContractIdentifierSchema,\n    sourceMessageId: ContractIdentifierSchema,\n    sourceRunId: ContractIdentifierSchema,\n    replacementParts: z.array(JsonValueSchema).min(1),\n    inheritance: AgentSessionContextInheritanceSchema,\n  }),\n  sessionCommand('steer', {\n    targetRunId: ContractIdentifierSchema,\n    text: z.string().trim().min(1),\n  }),\n]).superRefine((value, context) => {\n  if (value.commandType === 'steer' && value.runId !== value.payload.targetRunId) {\n    context.addIssue({\n      code: 'custom',\n      path: ['payload', 'targetRunId'],\n      message: 'Steering targetRunId must match the command runId.',\n    });\n  }\n  if (value.commandType === 'retry-summary' && value.runId !== value.payload.sourceRunId) {\n    context.addIssue({\n      code: 'custom',\n      path: ['payload', 'sourceRunId'],\n      message: 'Summary retry sourceRunId must match the command runId.',\n    });\n  }\n});\n\nexport const AgentSessionTargetedCommandSchema = AgentSessionCommandSchema.and(\n  z.object({ runId: ContractIdentifierSchema }),\n);\n\nexport const AgentSessionCommandErrorCodeSchema = z.enum([\n  'SESSION_NOT_FOUND',\n  'RUN_NOT_FOUND',\n  'ACTIVE_RUN_NOT_FOUND',\n  'RUN_ALREADY_FINISHED',\n  'STOP_TIMEOUT',\n  'COMMAND_NOT_SUPPORTED',\n  'CAPABILITY_UNAVAILABLE',\n  'SEQUENCE_CONFLICT',\n  'INVALID_SESSION_STATE',\n  'TARGET_EVENT_NOT_FOUND',\n  'TARGET_EVENT_NOT_RETRYABLE',\n  'APPROVAL_NOT_FOUND',\n  'APPROVAL_ALREADY_RESOLVED',\n  'SOURCE_THREAD_NOT_FOUND',\n  'SOURCE_MESSAGE_NOT_FOUND',\n  'SOURCE_RUN_NOT_FOUND',\n  'SOURCE_LINEAGE_INVALID',\n  'ACTIVE_BRANCH_NOT_FOUND',\n  'COMMAND_EXECUTION_FAILED',\n]);\n\nexport const AgentSessionCommandResultSchema = z\n  .object({\n    contract: z.literal('AgentSessionCommandResult'),\n    commandId: ContractIdentifierSchema,\n    sessionId: ContractIdentifierSchema,\n    runId: ContractIdentifierSchema.optional(),\n    idempotencyKey: ContractIdentifierSchema,\n    outcome: z.enum(['accepted', 'duplicate', 'rejected', 'failed']),\n    sessionStatus: AgentSessionStatusSchema,\n    acceptedSequence: z.number().int().nonnegative().optional(),\n    resultEventIds: z.array(ContractIdentifierSchema).default([]),\n    operation: z\n      .object({\n        lineage: AgentSessionLineageSchema,\n        activeBranch: AgentSessionActiveBranchSchema,\n      })\n      .strict()\n      .optional(),\n    termination: z.enum(['requested', 'confirmed']).optional(),\n    error: z\n      .object({\n        code: AgentSessionCommandErrorCodeSchema,\n        message: z.string(),\n        retryable: z.boolean(),\n      })\n      .strict()\n      .optional(),\n    occurredAt: IsoDateTimeSchema,\n  })\n  .strict()\n  .superRefine((value, context) => {\n    const requiresError = value.outcome === 'rejected' || value.outcome === 'failed';\n    if (requiresError !== Boolean(value.error)) {\n      context.addIssue({\n        code: 'custom',\n        path: ['error'],\n        message: requiresError\n          ? 'Rejected and failed command results require an error.'\n          : 'Accepted and duplicate command results must not contain an error.',\n      });\n    }\n    if (value.termination === 'requested' && value.sessionStatus !== 'stopping') {\n      context.addIssue({\n        code: 'custom',\n        path: ['termination'],\n        message: 'A requested termination must leave the run in stopping status.',\n      });\n    }\n    if (value.termination === 'confirmed' && !isAgentSessionTerminalStatus(value.sessionStatus)) {\n      context.addIssue({\n        code: 'custom',\n        path: ['termination'],\n        message: 'A confirmed termination requires a terminal run status.',\n      });\n    }\n    if (value.operation && !value.operation.activeBranch.lineage) {\n      context.addIssue({\n        code: 'custom',\n        path: ['operation', 'activeBranch', 'lineage'],\n        message: 'A branch operation result requires lineage on its active branch.',\n      });\n    }\n    const operation = value.operation;\n    if (operation?.activeBranch.lineage) {\n      const { lineage } = operation;\n      const branchLineage = operation.activeBranch.lineage;\n      if (\n        lineage.forkedFromThreadId !== branchLineage.forkedFromThreadId ||\n        lineage.forkedFromMessageId !== branchLineage.forkedFromMessageId ||\n        lineage.sourceRunId !== branchLineage.sourceRunId\n      ) {\n        context.addIssue({\n          code: 'custom',\n          path: ['operation', 'activeBranch', 'lineage'],\n          message: 'Active branch lineage must match the operation lineage.',\n        });\n      }\n    }\n    if (value.operation && value.runId !== value.operation.activeBranch.runId) {\n      context.addIssue({\n        code: 'custom',\n        path: ['operation', 'activeBranch', 'runId'],\n        message: 'Active branch runId must match the command result runId.',\n      });\n    }\n  });\n\nconst AGENT_SESSION_COMMAND_TRANSITIONS: Record<AgentSessionCommandType, Partial<Record<AgentSessionStatus, AgentSessionStatus>>> = {\n  stop: { queued: 'stopping', running: 'stopping', waiting_approval: 'stopping' },\n  resume: { stopped: 'queued', completed: 'queued', failed: 'queued' },\n  retry: { failed: 'queued' },\n  'retry-summary': {},\n  approval: { waiting_approval: 'running' },\n  fork: {},\n  'edit-and-rerun': {},\n  steer: {},\n};\n\nexport const AgentSessionCommandPolicySchema = z\n  .object({\n    capability: AgentSessionCapabilitySchema.optional(),\n    allowedStatuses: z.array(AgentSessionStatusSchema).min(1),\n    requiresRunId: z.boolean(),\n    sourceSessionEffect: z.enum(['transition', 'preserve']),\n    idempotencyScope: z.literal('session-command'),\n    sequenceRule: z.enum(['match-current', 'target-run']),\n  })\n  .strict();\n\nconst sessionCommandPolicy = (policy: z.input<typeof AgentSessionCommandPolicySchema>) =>\n  AgentSessionCommandPolicySchema.parse(policy);\n\nexport const AGENT_SESSION_COMMAND_POLICIES = Object.freeze({\n  stop: sessionCommandPolicy({\n    allowedStatuses: ['queued', 'running', 'waiting_approval'],\n    requiresRunId: true,\n    sourceSessionEffect: 'transition',\n    idempotencyScope: 'session-command',\n    sequenceRule: 'target-run',\n  }),\n  resume: sessionCommandPolicy({\n    capability: 'resume',\n    allowedStatuses: ['stopped', 'completed', 'failed'],\n    requiresRunId: true,\n    sourceSessionEffect: 'transition',\n    idempotencyScope: 'session-command',\n    sequenceRule: 'match-current',\n  }),\n  retry: sessionCommandPolicy({\n    allowedStatuses: ['failed'],\n    requiresRunId: true,\n    sourceSessionEffect: 'transition',\n    idempotencyScope: 'session-command',\n    sequenceRule: 'match-current',\n  }),\n  'retry-summary': sessionCommandPolicy({\n    capability: 'summary',\n    allowedStatuses: ['stopped', 'completed', 'failed'],\n    requiresRunId: true,\n    sourceSessionEffect: 'preserve',\n    idempotencyScope: 'session-command',\n    sequenceRule: 'match-current',\n  }),\n  approval: sessionCommandPolicy({\n    capability: 'approval',\n    allowedStatuses: ['waiting_approval'],\n    requiresRunId: true,\n    sourceSessionEffect: 'transition',\n    idempotencyScope: 'session-command',\n    sequenceRule: 'match-current',\n  }),\n  fork: sessionCommandPolicy({\n    capability: 'threadForking',\n    allowedStatuses: AgentSessionStatusSchema.options,\n    requiresRunId: false,\n    sourceSessionEffect: 'preserve',\n    idempotencyScope: 'session-command',\n    sequenceRule: 'match-current',\n  }),\n  'edit-and-rerun': sessionCommandPolicy({\n    capability: 'editAndRerun',\n    allowedStatuses: ['stopped', 'completed', 'failed'],\n    requiresRunId: false,\n    sourceSessionEffect: 'preserve',\n    idempotencyScope: 'session-command',\n    sequenceRule: 'match-current',\n  }),\n  steer: sessionCommandPolicy({\n    capability: 'steering',\n    allowedStatuses: ['queued', 'running'],\n    requiresRunId: true,\n    sourceSessionEffect: 'preserve',\n    idempotencyScope: 'session-command',\n    sequenceRule: 'match-current',\n  }),\n}) satisfies Readonly<Record<AgentSessionCommandType, AgentSessionCommandPolicy>>;\n\nexport function getAgentSessionCommandPolicy(commandType: AgentSessionCommandType): AgentSessionCommandPolicy {\n  return AGENT_SESSION_COMMAND_POLICIES[commandType];\n}\n\nexport function canIssueAgentSessionCommand(\n  status: AgentSessionStatus,\n  commandType: AgentSessionCommandType,\n): boolean {\n  return getAgentSessionCommandPolicy(commandType).allowedStatuses.includes(status);\n}\n\nexport function resolveAgentSessionCommandTransition(\n  status: AgentSessionStatus,\n  commandType: AgentSessionCommandType,\n): AgentSessionStatus | undefined {\n  return AGENT_SESSION_COMMAND_TRANSITIONS[commandType][status];\n}\n\nexport function isAgentSessionTerminalStatus(status: AgentSessionStatus): status is AgentSessionTerminalStatus {\n  return AgentSessionTerminalStatusSchema.safeParse(status).success;\n}\n\nexport function canApplyAgentSessionRunStatus(current: AgentSessionStatus, next: AgentSessionStatus): boolean {\n  if (current === next) return true;\n  const transitions: Record<AgentSessionStatus, readonly AgentSessionStatus[]> = {\n    queued: ['running', 'stopping', 'failed'],\n    running: ['waiting_approval', 'stopping', 'completed', 'failed'],\n    waiting_approval: ['running', 'stopping', 'failed'],\n    stopping: ['stopped', 'completed', 'failed'],\n    stopped: [],\n    completed: [],\n    failed: [],\n  };\n  return transitions[current].includes(next);\n}\n\nconst AgentSessionEventHeaderSchema = z\n  .object({\n    contract: z.literal('AgentSessionEvent'),\n    eventId: ContractIdentifierSchema,\n    sessionId: ContractIdentifierSchema,\n    runId: ContractIdentifierSchema.optional(),\n    sourceMessageId: ContractIdentifierSchema.optional(),\n    sequence: z.number().int().nonnegative(),\n    idempotencyKey: ContractIdentifierSchema,\n    occurredAt: IsoDateTimeSchema,\n  })\n  .strict();\n\nconst sessionEvent = <EventType extends string, Payload extends z.ZodRawShape>(eventType: EventType, payload: Payload) =>\n  AgentSessionEventHeaderSchema.extend({\n    eventType: z.literal(eventType),\n    payload: z.object(payload).strict(),\n  }).strict();\n\nexport const AgentSessionEventSchema = z.discriminatedUnion('eventType', [\n  sessionEvent('message', {\n    messageId: ContractIdentifierSchema,\n    role: z.enum(['user', 'assistant', 'system']),\n    operation: z.enum(['append', 'replace']).default('append'),\n    parts: z.array(JsonValueSchema),\n    status: z.enum(['streaming', 'completed', 'failed']).optional(),\n  }),\n  sessionEvent('reasoning', {\n    reasoningId: ContractIdentifierSchema,\n    text: z.string(),\n    status: z.enum(['streaming', 'completed']),\n  }),\n  sessionEvent('plan', {\n    planId: ContractIdentifierSchema,\n    title: z.string().optional(),\n    status: z.enum(['pending', 'running', 'completed', 'failed']),\n    steps: z.array(\n      z\n        .object({\n          id: ContractIdentifierSchema,\n          title: z.string(),\n          status: z.enum(['pending', 'running', 'completed', 'failed', 'skipped']),\n        })\n        .strict(),\n    ),\n  }),\n  sessionEvent('task', {\n    taskId: ContractIdentifierSchema,\n    title: z.string(),\n    status: z.enum(['pending', 'running', 'completed', 'failed', 'skipped']),\n    detail: z.string().optional(),\n  }),\n  sessionEvent('tool', {\n    toolCallId: ContractIdentifierSchema,\n    toolName: z.string().trim().min(1),\n    status: z.enum(['pending', 'running', 'completed', 'failed', 'denied']),\n    input: JsonValueSchema.optional(),\n    output: JsonValueSchema.optional(),\n    error: z.string().optional(),\n    startedAt: IsoDateTimeSchema.optional(),\n    completedAt: IsoDateTimeSchema.optional(),\n  }),\n  sessionEvent('approval', {\n    approvalId: ContractIdentifierSchema,\n    toolCallId: ContractIdentifierSchema.optional(),\n    status: z.enum(['requested', 'approved', 'rejected', 'expired']),\n    title: z.string(),\n    description: z.string().optional(),\n    requestedAction: JsonValueSchema.optional(),\n  }),\n  sessionEvent('status', {\n    status: AgentSessionStatusSchema,\n    detail: z.string().optional(),\n    startedAt: IsoDateTimeSchema.optional(),\n    stoppingRequestedAt: IsoDateTimeSchema.optional(),\n    stoppedAt: IsoDateTimeSchema.optional(),\n    completedAt: IsoDateTimeSchema.optional(),\n    failedAt: IsoDateTimeSchema.optional(),\n    durationMs: z.number().nonnegative().optional(),\n  }),\n  sessionEvent('artifact', {\n    artifactId: ContractIdentifierSchema,\n    name: z.string().trim().min(1),\n    kind: z.enum(['file', 'image', 'video', 'audio', 'web', 'other']),\n    status: z.enum(['pending', 'ready', 'failed']),\n    mimeType: z.string().optional(),\n    url: z.string().url().optional(),\n    size: z.number().int().nonnegative().optional(),\n    sourceEventId: ContractIdentifierSchema.optional(),\n  }),\n  sessionEvent('usage', {\n    inputTokens: z.number().int().nonnegative().optional(),\n    outputTokens: z.number().int().nonnegative().optional(),\n    totalTokens: z.number().int().nonnegative().optional(),\n    contextTokens: z.number().int().nonnegative().optional(),\n    contextWindow: z.number().int().positive().optional(),\n  }),\n  sessionEvent('resume', {\n    resumable: z.boolean(),\n    state: JsonObjectSchema.optional(),\n    reason: z.string().optional(),\n  }),\n  sessionEvent('error', {\n    code: z.string().trim().min(1),\n    message: z.string(),\n    retryable: z.boolean(),\n    sourceEventId: ContractIdentifierSchema.optional(),\n    details: JsonObjectSchema.optional(),\n  }),\n  sessionEvent('diff', {\n    path: z.string().trim().min(1),\n    status: z.enum(['added', 'modified', 'deleted', 'renamed']),\n    patch: z.string().optional(),\n  }),\n  sessionEvent('workspace-file', {\n    path: z.string().trim().min(1),\n    operation: z.enum(['upsert', 'delete']),\n    mimeType: z.string().optional(),\n    size: z.number().int().nonnegative().optional(),\n  }),\n  sessionEvent('terminal', {\n    terminalId: ContractIdentifierSchema,\n    stream: z.enum(['stdin', 'stdout', 'stderr', 'status']),\n    chunk: z.string(),\n    exitCode: z.number().int().optional(),\n  }),\n  sessionEvent('test-result', {\n    testId: ContractIdentifierSchema,\n    name: z.string(),\n    status: z.enum(['running', 'passed', 'failed', 'skipped']),\n    durationMs: z.number().nonnegative().optional(),\n    output: z.string().optional(),\n  }),\n  sessionEvent('steer', {\n    commandId: ContractIdentifierSchema,\n    targetRunId: ContractIdentifierSchema,\n    text: z.string().trim().min(1),\n    status: z.enum(['accepted', 'applied', 'failed']),\n    error: z\n      .object({\n        code: AgentSessionCommandErrorCodeSchema,\n        message: z.string(),\n        retryable: z.boolean(),\n      })\n      .strict()\n      .optional(),\n  }),\n  sessionEvent('summary', {\n    summaryId: ContractIdentifierSchema,\n    runId: ContractIdentifierSchema,\n    text: z.string(),\n    highlights: z.array(z.string()),\n    pendingItems: z.array(z.string()),\n    status: z.enum(['generating', 'completed', 'failed']),\n  }),\n]).superRefine((value, context) => {\n  if (value.eventType === 'steer') {\n    if (value.runId !== value.payload.targetRunId) {\n      context.addIssue({\n        code: 'custom',\n        path: ['payload', 'targetRunId'],\n        message: 'Steering payload targetRunId must match the event runId.',\n      });\n    }\n    const requiresError = value.payload.status === 'failed';\n    if (requiresError !== Boolean(value.payload.error)) {\n      context.addIssue({\n        code: 'custom',\n        path: ['payload', 'error'],\n        message: requiresError\n          ? 'Failed steering events require an error.'\n          : 'Accepted and applied steering events must not contain an error.',\n      });\n    }\n  }\n  if (value.eventType === 'summary' && value.runId !== value.payload.runId) {\n    context.addIssue({\n      code: 'custom',\n      path: ['payload', 'runId'],\n      message: 'Summary payload runId must match the event runId.',\n    });\n  }\n});\n\nexport const AgentSessionRunEventSchema = AgentSessionEventSchema.superRefine((value, context) => {\n  if (!value.runId) {\n    context.addIssue({ code: 'custom', path: ['runId'], message: 'Run events require runId.' });\n  }\n  if (!value.sourceMessageId) {\n    context.addIssue({\n      code: 'custom',\n      path: ['sourceMessageId'],\n      message: 'Run events require sourceMessageId.',\n    });\n  }\n  if (value.eventType !== 'status') return;\n  const requiredTimeField =\n    value.payload.status === 'running'\n      ? 'startedAt'\n      : value.payload.status === 'stopping'\n        ? 'stoppingRequestedAt'\n        : value.payload.status === 'stopped'\n          ? 'stoppedAt'\n          : value.payload.status === 'completed'\n            ? 'completedAt'\n            : value.payload.status === 'failed'\n              ? 'failedAt'\n              : undefined;\n  if (requiredTimeField && !value.payload[requiredTimeField]) {\n    context.addIssue({\n      code: 'custom',\n      path: ['payload', requiredTimeField],\n      message: `Run status ${value.payload.status} requires ${requiredTimeField}.`,\n    });\n  }\n  if (isAgentSessionTerminalStatus(value.payload.status) && value.payload.durationMs === undefined) {\n    context.addIssue({\n      code: 'custom',\n      path: ['payload', 'durationMs'],\n      message: `Terminal run status ${value.payload.status} requires durationMs.`,\n    });\n  }\n});\n\nexport const AgentSessionViewModelSchema = z\n  .object({\n    contract: z.literal('AgentSessionViewModel'),\n    sessionId: ContractIdentifierSchema,\n    snapshot: AgentSessionSnapshotSchema,\n    status: AgentSessionStatusSchema,\n    events: z.array(AgentSessionEventSchema),\n    lastSequence: z.number().int().min(-1),\n    resumable: z.boolean().default(false),\n    lineage: AgentSessionLineageSchema.optional(),\n    activeBranch: AgentSessionActiveBranchSchema.optional(),\n  })\n  .strict()\n  .superRefine((value, context) => {\n    const eventIds = new Set<string>();\n    const idempotencyKeys = new Set<string>();\n    let previousSequence = -1;\n\n    value.events.forEach((event, index) => {\n      if (event.sessionId !== value.sessionId) {\n        context.addIssue({\n          code: 'custom',\n          path: ['events', index, 'sessionId'],\n          message: 'Event sessionId must match the view model sessionId.',\n        });\n      }\n      if (event.sequence <= previousSequence) {\n        context.addIssue({\n          code: 'custom',\n          path: ['events', index, 'sequence'],\n          message: 'Events must be ordered by a strictly increasing sequence.',\n        });\n      }\n      if (eventIds.has(event.eventId)) {\n        context.addIssue({\n          code: 'custom',\n          path: ['events', index, 'eventId'],\n          message: 'Event IDs must be unique within a session view model.',\n        });\n      }\n      if (idempotencyKeys.has(event.idempotencyKey)) {\n        context.addIssue({\n          code: 'custom',\n          path: ['events', index, 'idempotencyKey'],\n          message: 'Idempotency keys must be unique within a session view model.',\n        });\n      }\n      previousSequence = event.sequence;\n      eventIds.add(event.eventId);\n      idempotencyKeys.add(event.idempotencyKey);\n    });\n\n    const expectedLastSequence = value.events.length > 0 ? value.events[value.events.length - 1].sequence : -1;\n    if (value.lastSequence !== expectedLastSequence) {\n      context.addIssue({\n        code: 'custom',\n        path: ['lastSequence'],\n        message: 'lastSequence must match the final event sequence, or -1 when there are no events.',\n      });\n    }\n  });\n\nexport const AgentWorkbenchNavigationItemStatusSchema = z.enum(['idle', 'running', 'completed', 'error']);\n\nexport const AgentWorkbenchCollectionStatusSchema = z.enum(['loading', 'ready', 'error']);\n\nexport const AgentWorkbenchAgentItemSchema = z\n  .object({\n    id: ContractIdentifierSchema,\n    name: z.string().min(1),\n    description: z.string().optional(),\n    iconUrl: z.string().url().optional(),\n    builtIn: z.boolean().default(false),\n    pinned: z.boolean().default(false),\n    pinPending: z.boolean().default(false),\n  })\n  .strict();\n\nexport const AgentWorkbenchSessionItemSchema = z\n  .object({\n    id: ContractIdentifierSchema,\n    title: z.string().min(1),\n    updatedAt: IsoDateTimeSchema,\n    thumbnailUrl: z.string().url().optional(),\n    mode: AgentModeSchema.optional(),\n    status: AgentWorkbenchNavigationItemStatusSchema.default('idle'),\n    pinned: z.boolean().default(false),\n    contextUsage: z\n      .object({\n        usedTokens: z.number().int().nonnegative(),\n        maxTokens: z.number().int().positive(),\n      })\n      .strict()\n      .optional(),\n  })\n  .strict();\n\nexport const AgentWorkbenchNavigationCapabilitiesSchema = z\n  .object({\n    createAgent: z.boolean().default(false),\n    createSession: z.boolean().default(true),\n    manageCapabilities: z.boolean().default(false),\n    manageAgentSettings: z.boolean().default(false),\n    pinAgents: z.boolean().default(false),\n    pinSessions: z.boolean().default(false),\n    renameSessions: z.boolean().default(false),\n    deleteSessions: z.boolean().default(false),\n  })\n  .strict();\n\nexport const AgentWorkbenchNavigationViewModelSchema = z\n  .object({\n    contract: z.literal('AgentWorkbenchNavigationViewModel'),\n    activeTab: z.enum(['agents', 'sessions']).default('sessions'),\n    searchQuery: z.string().default(''),\n    selectedAgentItem: ContractIdentifierSchema.optional(),\n    selectedSessionItem: ContractIdentifierSchema.optional(),\n    agents: z\n      .object({\n        status: AgentWorkbenchCollectionStatusSchema,\n        items: z.array(AgentWorkbenchAgentItemSchema),\n        error: z.string().optional(),\n      })\n      .strict(),\n    sessions: z\n      .object({\n        status: AgentWorkbenchCollectionStatusSchema,\n        items: z.array(AgentWorkbenchSessionItemSchema),\n        error: z.string().optional(),\n      })\n      .strict(),\n    capabilities: AgentWorkbenchNavigationCapabilitiesSchema,\n  })\n  .strict()\n  .superRefine((value, context) => {\n    const validateCollection = (\n      collection: { status: 'loading' | 'ready' | 'error'; error?: string },\n      path: 'agents' | 'sessions',\n    ) => {\n      if (collection.status === 'error' && !collection.error) {\n        context.addIssue({\n          code: 'custom',\n          path: [path, 'error'],\n          message: 'An error collection must include an error message.',\n        });\n      }\n    };\n\n    validateCollection(value.agents, 'agents');\n    validateCollection(value.sessions, 'sessions');\n  });\n\nexport const AgentWorkbenchComposerStatusSchema = z.enum([\n  'idle',\n  'loading',\n  'streaming',\n  'stopping',\n  'error',\n]);\n\nexport const AgentWorkbenchComposerAttachmentSchema = z\n  .object({\n    id: ContractIdentifierSchema,\n    name: z.string().min(1),\n    mediaType: z.string().min(1).optional(),\n    previewUrl: z.string().min(1).optional(),\n    status: z.enum(['uploading', 'ready', 'error']).default('ready'),\n  })\n  .strict();\n\nexport const AgentWorkbenchComposerQueueItemSchema = z\n  .object({\n    id: ContractIdentifierSchema,\n    text: z.string(),\n    attachmentCount: z.number().int().nonnegative().default(0),\n    status: z.enum(['queued', 'sending', 'error']).default('queued'),\n  })\n  .strict();\n\nexport const AgentWorkbenchComposerInputActionIconSchema = z.enum([\n  'file-text',\n  'image',\n]);\n\nexport const AgentWorkbenchComposerInputActionSchema = z\n  .object({\n    id: ContractIdentifierSchema,\n    label: z.string().min(1),\n    icon: AgentWorkbenchComposerInputActionIconSchema.optional(),\n  })\n  .strict();\n\nexport const AgentWorkbenchComposerModelOptionSchema = z\n  .object({\n    id: ContractIdentifierSchema,\n    label: z.string().min(1),\n    provider: z.string().min(1).optional(),\n    mode: AgentModeSchema,\n    disabled: z.boolean().default(false),\n  })\n  .strict();\n\nexport const AgentWorkbenchComposerCapabilitiesSchema = z\n  .object({\n    attachments: z.boolean().default(false),\n    voiceInput: z.boolean().default(false),\n    webSearch: z.boolean().default(false),\n    modelSelection: z.boolean().default(false),\n    reasoning: z.boolean().default(false),\n    permissions: z.boolean().default(false),\n    queue: z.boolean().default(false),\n    stop: z.boolean().default(false),\n  })\n  .strict();\n\nexport const AgentWorkbenchQuickStartIconSchema = z.enum([\n  'sparkles',\n  'palette',\n  'search',\n  'file-text',\n  'code',\n  'shopping-bag',\n]);\n\nexport const AgentWorkbenchQuickStartTemplateActionSchema = z.enum(['prompt', 'upload']);\n\nexport const AgentWorkbenchQuickStartTemplateSchema = z\n  .object({\n    id: ContractIdentifierSchema,\n    title: z.string().min(1),\n    description: z.string().min(1).optional(),\n    prompt: z.string().min(1),\n    action: AgentWorkbenchQuickStartTemplateActionSchema.default('prompt'),\n    icon: AgentWorkbenchQuickStartIconSchema.optional(),\n    coverImageUrl: z.string().min(1).optional(),\n    accept: z.string().min(1).default('*/*'),\n    multiple: z.boolean().default(false),\n    modes: z.array(AgentModeSchema).min(1).optional(),\n  })\n  .strict();\n\nexport const AgentWorkbenchQuickStartSectionSchema = z\n  .object({\n    id: ContractIdentifierSchema,\n    label: z.string().min(1),\n    templates: z.array(AgentWorkbenchQuickStartTemplateSchema).min(1),\n  })\n  .strict();\n\nexport const AgentWorkbenchQuickStartCategorySchema = z\n  .object({\n    id: ContractIdentifierSchema,\n    label: z.string().min(1),\n    icon: AgentWorkbenchQuickStartIconSchema.optional(),\n    sections: z.array(AgentWorkbenchQuickStartSectionSchema).min(1),\n  })\n  .strict();\n\nexport const AgentWorkbenchSidebarNavigationModeSchema = z.enum(['default', 'session', 'trend']);\n\nexport const AgentWorkbenchSidebarSectionSchema = z.enum([\n  'header',\n  'search',\n  'new-session',\n  'sessions',\n  'agents',\n  'groups',\n  'footer',\n]);\n\nexport const AgentWorkbenchSidebarGroupItemSchema = z\n  .object({\n    id: ContractIdentifierSchema,\n    title: z.string().trim().min(1).max(120),\n    subtitle: z.string().trim().min(1).max(240).optional(),\n    imageUrl: z.string().trim().min(1).max(2048).optional(),\n    /** Optional legacy prompt. Trend workbenches may use items as static report selectors. */\n    prompt: z.string().trim().min(1).max(10_000).optional(),\n    mediaVariant: z.enum(['cover', 'cover-with-label', 'logo']).optional(),\n    mediaTreatment: z.enum(['preserve', 'monochrome-light', 'invert']).optional(),\n  })\n  .strict();\n\nexport const AgentWorkbenchSidebarGroupSchema = z\n  .object({\n    id: ContractIdentifierSchema,\n    label: z.string().trim().min(1).max(120),\n    items: z.array(AgentWorkbenchSidebarGroupItemSchema).min(1).max(50),\n    itemAspectRatio: z.number().positive().max(10).optional(),\n  })\n  .strict();\n\nexport const AgentWorkbenchSidebarConfigSchema = z\n  .object({\n    navigationMode: AgentWorkbenchSidebarNavigationModeSchema.optional(),\n    defaultOpen: z.boolean().optional(),\n    /** Initial sidebar width as a percentage of the workbench split pane. */\n    widthPercent: z.number().int().min(10).max(40).optional(),\n    visibleSections: z.array(AgentWorkbenchSidebarSectionSchema).min(1).max(7).optional(),\n    groups: z.array(AgentWorkbenchSidebarGroupSchema).max(20).optional(),\n    defaultGroupId: ContractIdentifierSchema.optional(),\n    quickStartEnabled: z.boolean().optional(),\n    quickStartCategories: z.array(AgentWorkbenchQuickStartCategorySchema).max(20).optional(),\n    trendEntryEnabled: z.boolean().optional(),\n  })\n  .strict()\n  .superRefine((value, context) => {\n    if (value.visibleSections && new Set(value.visibleSections).size !== value.visibleSections.length) {\n      context.addIssue({\n        code: 'custom',\n        path: ['visibleSections'],\n        message: 'Sidebar sections must be unique.',\n      });\n    }\n    if (value.defaultGroupId && !value.groups?.some((group) => group.id === value.defaultGroupId)) {\n      context.addIssue({\n        code: 'custom',\n        path: ['defaultGroupId'],\n        message: 'The default sidebar group must exist in groups.',\n      });\n    }\n  });\n\nexport const DEFAULT_AGENT_WORKBENCH_SIDEBAR_SECTIONS = Object.freeze([\n  'header',\n  'search',\n  'new-session',\n  'sessions',\n  'agents',\n  'groups',\n  'footer',\n] as const);\n\nexport interface AgentWorkbenchSidebarLegacyConfig {\n  navigationMode?: AgentWorkbenchSidebarNavigationMode;\n  quickStartEnabled?: boolean;\n}\n\nexport function resolveAgentWorkbenchSidebarConfig(\n  config?: AgentWorkbenchSidebarConfig,\n  legacy: AgentWorkbenchSidebarLegacyConfig = {},\n): ResolvedAgentWorkbenchSidebarConfig {\n  const parsed = AgentWorkbenchSidebarConfigSchema.parse(config ?? {});\n  const navigationMode = parsed.navigationMode ?? legacy.navigationMode ?? 'default';\n  return {\n    ...parsed,\n    navigationMode,\n    defaultOpen: parsed.defaultOpen ?? true,\n    widthPercent: parsed.widthPercent ?? 18,\n    visibleSections: parsed.visibleSections ?? [...DEFAULT_AGENT_WORKBENCH_SIDEBAR_SECTIONS],\n    groups: parsed.groups ?? [],\n    quickStartEnabled: parsed.quickStartEnabled ?? legacy.quickStartEnabled ?? false,\n    trendEntryEnabled: parsed.trendEntryEnabled ?? navigationMode === 'trend',\n  };\n}\n\nexport const AgentWorkbenchQuickStartViewModelSchema = z\n  .object({\n    contract: z.literal('AgentWorkbenchQuickStartViewModel'),\n    mode: AgentModeSchema,\n    categories: z.array(AgentWorkbenchQuickStartCategorySchema).min(1),\n    disabled: z.boolean().default(false),\n  })\n  .strict();\n\nexport const AgentWorkbenchComposerViewModelSchema = z\n  .object({\n    contract: z.literal('AgentWorkbenchComposerViewModel'),\n    value: z.string().default(''),\n    status: AgentWorkbenchComposerStatusSchema.default('idle'),\n    mode: AgentModeSchema,\n    placeholder: z.string().optional(),\n    attachments: z.array(AgentWorkbenchComposerAttachmentSchema).default([]),\n    queuedDrafts: z.array(AgentWorkbenchComposerQueueItemSchema).default([]),\n    inputActions: z.array(AgentWorkbenchComposerInputActionSchema).default([]),\n    selectedInputActionId: ContractIdentifierSchema.optional(),\n    model: z\n      .object({\n        selectedId: ContractIdentifierSchema.optional(),\n        options: z.array(AgentWorkbenchComposerModelOptionSchema),\n      })\n      .strict(),\n    reasoning: z\n      .object({\n        value: z.enum(['low', 'medium', 'high', 'xhigh']),\n        options: z.array(z.enum(['low', 'medium', 'high', 'xhigh'])).min(1),\n      })\n      .strict()\n      .optional(),\n    permissionProfile: AgentSessionPermissionProfileSchema.optional(),\n    webSearchEnabled: z.boolean().default(false),\n    error: z.string().optional(),\n    capabilities: AgentWorkbenchComposerCapabilitiesSchema,\n  })\n  .strict()\n  .superRefine((value, context) => {\n    if (value.status === 'error' && !value.error) {\n      context.addIssue({\n        code: 'custom',\n        path: ['error'],\n        message: 'An error composer must include an error message.',\n      });\n    }\n    if (value.model.selectedId && !value.model.options.some((option) => option.id === value.model.selectedId)) {\n      context.addIssue({\n        code: 'custom',\n        path: ['model', 'selectedId'],\n        message: 'The selected model must exist in model options.',\n      });\n    }\n  });\n\nexport type StudioAgentMode = z.infer<typeof StudioAgentModeSchema>;\n/** @deprecated Use StudioAgentMode. */\nexport type AgentMode = StudioAgentMode;\nexport type AgentConfigurationCapability = z.infer<typeof AgentConfigurationCapabilitySchema>;\nexport type AgentModeCapabilities = z.infer<typeof AgentModeCapabilitiesSchema>;\nexport type AgentResourceModeSupport = z.infer<typeof AgentResourceModeSupportSchema>;\nexport type AgentSessionCapability = z.infer<typeof AgentSessionCapabilitySchema>;\nexport type AgentSessionCapabilities = z.infer<typeof AgentSessionCapabilitiesSchema>;\nexport type AgentSessionPermissionProfile = z.infer<typeof AgentSessionPermissionProfileSchema>;\nexport type AgentSessionSnapshot = z.infer<typeof AgentSessionSnapshotSchema>;\nexport type AgentSessionStatus = z.infer<typeof AgentSessionStatusSchema>;\nexport type AgentSessionTerminalStatus = z.infer<typeof AgentSessionTerminalStatusSchema>;\nexport type AgentSessionLineage = z.infer<typeof AgentSessionLineageSchema>;\nexport type AgentSessionContextInheritance = z.infer<typeof AgentSessionContextInheritanceSchema>;\nexport type AgentSessionInheritedContextMessage = z.infer<typeof AgentSessionInheritedContextMessageSchema>;\nexport type AgentSessionUnavailableResource = z.infer<typeof AgentSessionUnavailableResourceSchema>;\nexport type AgentSessionInheritedContext = z.infer<typeof AgentSessionInheritedContextSchema>;\nexport type AgentSessionContinuationRequest = z.infer<typeof AgentSessionContinuationRequestSchema>;\nexport type AgentSessionContinuationResult = z.infer<typeof AgentSessionContinuationResultSchema>;\nexport type AgentSessionActiveBranch = z.infer<typeof AgentSessionActiveBranchSchema>;\nexport type AgentSessionRun = z.infer<typeof AgentSessionRunSchema>;\nexport type AgentSessionCommandType = z.infer<typeof AgentSessionCommandTypeSchema>;\nexport type AgentSessionCommand = z.infer<typeof AgentSessionCommandSchema>;\nexport type AgentSessionTargetedCommand = z.infer<typeof AgentSessionTargetedCommandSchema>;\nexport type AgentSessionCommandErrorCode = z.infer<typeof AgentSessionCommandErrorCodeSchema>;\nexport type AgentSessionCommandResult = z.infer<typeof AgentSessionCommandResultSchema>;\nexport type AgentSessionCommandPolicy = z.infer<typeof AgentSessionCommandPolicySchema>;\nexport type AgentSessionEvent = z.infer<typeof AgentSessionEventSchema>;\nexport type AgentSessionRunEvent = z.infer<typeof AgentSessionRunEventSchema>;\nexport type AgentSessionViewModel = z.infer<typeof AgentSessionViewModelSchema>;\nexport type AgentWorkbenchNavigationItemStatus = z.infer<typeof AgentWorkbenchNavigationItemStatusSchema>;\nexport type AgentWorkbenchCollectionStatus = z.infer<typeof AgentWorkbenchCollectionStatusSchema>;\nexport type AgentWorkbenchAgentItem = z.infer<typeof AgentWorkbenchAgentItemSchema>;\nexport type AgentWorkbenchSessionItem = z.infer<typeof AgentWorkbenchSessionItemSchema>;\nexport type AgentWorkbenchNavigationCapabilities = z.infer<typeof AgentWorkbenchNavigationCapabilitiesSchema>;\nexport type AgentWorkbenchNavigationViewModel = z.infer<typeof AgentWorkbenchNavigationViewModelSchema>;\nexport type AgentWorkbenchComposerStatus = z.infer<typeof AgentWorkbenchComposerStatusSchema>;\nexport type AgentWorkbenchComposerAttachment = z.infer<typeof AgentWorkbenchComposerAttachmentSchema>;\nexport type AgentWorkbenchComposerQueueItem = z.infer<typeof AgentWorkbenchComposerQueueItemSchema>;\nexport type AgentWorkbenchComposerModelOption = z.infer<typeof AgentWorkbenchComposerModelOptionSchema>;\nexport type AgentWorkbenchComposerCapabilities = z.infer<typeof AgentWorkbenchComposerCapabilitiesSchema>;\nexport type AgentWorkbenchComposerInputAction = z.infer<typeof AgentWorkbenchComposerInputActionSchema>;\nexport type AgentWorkbenchComposerViewModel = z.infer<typeof AgentWorkbenchComposerViewModelSchema>;\nexport type AgentWorkbenchQuickStartIcon = z.infer<typeof AgentWorkbenchQuickStartIconSchema>;\nexport type AgentWorkbenchQuickStartTemplateAction = z.infer<typeof AgentWorkbenchQuickStartTemplateActionSchema>;\nexport type AgentWorkbenchQuickStartTemplate = z.infer<typeof AgentWorkbenchQuickStartTemplateSchema>;\nexport type AgentWorkbenchQuickStartSection = z.infer<typeof AgentWorkbenchQuickStartSectionSchema>;\nexport type AgentWorkbenchQuickStartCategory = z.infer<typeof AgentWorkbenchQuickStartCategorySchema>;\nexport type AgentWorkbenchQuickStartViewModel = z.infer<typeof AgentWorkbenchQuickStartViewModelSchema>;\nexport type AgentWorkbenchSidebarNavigationMode = z.infer<typeof AgentWorkbenchSidebarNavigationModeSchema>;\nexport type AgentWorkbenchSidebarSection = z.infer<typeof AgentWorkbenchSidebarSectionSchema>;\nexport type AgentWorkbenchSidebarGroupItem = z.infer<typeof AgentWorkbenchSidebarGroupItemSchema>;\nexport type AgentWorkbenchSidebarGroup = z.infer<typeof AgentWorkbenchSidebarGroupSchema>;\nexport type AgentWorkbenchSidebarConfig = z.infer<typeof AgentWorkbenchSidebarConfigSchema>;\nexport type ResolvedAgentWorkbenchSidebarConfig = AgentWorkbenchSidebarConfig & {\n  navigationMode: AgentWorkbenchSidebarNavigationMode;\n  defaultOpen: boolean;\n  widthPercent: number;\n  visibleSections: AgentWorkbenchSidebarSection[];\n  groups: AgentWorkbenchSidebarGroup[];\n  quickStartEnabled: boolean;\n  trendEntryEnabled: boolean;\n};\n\n// Kept as a source-compatible type alias while consumers move to the product-level name.\nexport const AgentExecutionModeSchema = AgentModeSchema;\nexport type AgentExecutionMode = AgentMode;\n\nexport function normalizeStudioAgentMode(value: unknown): StudioAgentMode | undefined {\n  const normalized = String(value ?? '')\n    .trim()\n    .toLowerCase();\n  if (normalized === 'work' || normalized === 'agent' || normalized === 'codex') return 'work';\n  if (normalized === 'chat' || normalized === 'chatbot' || normalized === 'vercel-ai' || normalized === 'vercel' || normalized === 'ai-sdk') {\n    return 'chat';\n  }\n  return undefined;\n}\n\n/** @deprecated Use normalizeStudioAgentMode. */\nexport const normalizeAgentMode = normalizeStudioAgentMode;\nexport const normalizeAgentExecutionMode = normalizeStudioAgentMode;\n","import { z } from 'zod';\nimport { JsonValueSchema, type JsonValue } from './common';\n\nexport const PageMemberSchema = z.string().min(1).max(256).refine(\n  (value) => !['__proto__', 'prototype', 'constructor'].includes(value),\n  'Unsafe Page member.',\n);\nexport const PageValuePathSchema = z.array(PageMemberSchema).max(16);\nexport const PageExpressionRootSchema = z.enum(['state', 'model', 'bindings', 'queries', 'scope', 'intent', 'result', 'actions']);\nexport const PageOperatorSchema = z.enum([\n  'add', 'subtract', 'multiply', 'divide', 'min', 'max', 'round',\n  'equals', 'not-equals', 'less-than', 'less-or-equal', 'greater-than', 'greater-or-equal',\n  'and', 'or', 'not', 'coalesce', 'concat', 'string', 'number', 'length', 'includes',\n  'get', 'set-path', 'merge', 'entries', 'from-entries', 'array-concat', 'slice', 'trim', 'fixed', 'number-format', 'encode-uri-component',\n]);\nexport type PageExpression =\n  | { kind: 'literal'; value: JsonValue }\n  | { kind: 'read'; root: z.infer<typeof PageExpressionRootSchema>; path: string[] }\n  | { kind: 'operator'; operator: z.infer<typeof PageOperatorSchema>; arguments: PageExpression[] }\n  | { kind: 'conditional'; condition: PageExpression; then: PageExpression; else: PageExpression }\n  | { kind: 'object'; fields: Record<string, PageExpression> }\n  | { kind: 'array'; items: PageExpression[] }\n  | { kind: 'map' | 'filter' | 'sum'; source: PageExpression; value: PageExpression };\n\nconst RecursivePageExpressionSchema: z.ZodType<PageExpression> = z.lazy(() => z.discriminatedUnion('kind', [\n  z.object({ kind: z.literal('literal'), value: JsonValueSchema }).strict(),\n  z.object({ kind: z.literal('read'), root: PageExpressionRootSchema, path: PageValuePathSchema }).strict(),\n  z.object({ kind: z.literal('operator'), operator: PageOperatorSchema, arguments: z.array(RecursivePageExpressionSchema).min(1).max(32) }).strict(),\n  z.object({ kind: z.literal('conditional'), condition: RecursivePageExpressionSchema, then: RecursivePageExpressionSchema, else: RecursivePageExpressionSchema }).strict(),\n  z.object({ kind: z.literal('object'), fields: z.record(PageMemberSchema, RecursivePageExpressionSchema) }).strict(),\n  z.object({ kind: z.literal('array'), items: z.array(RecursivePageExpressionSchema).max(1000) }).strict(),\n  ...(['map', 'filter', 'sum'] as const).map((kind) => z.object({ kind: z.literal(kind), source: RecursivePageExpressionSchema, value: RecursivePageExpressionSchema }).strict()),\n]));\n\nexport const PAGE_EXPRESSION_LIMITS = Object.freeze({ depth: 32, nodes: 4096, operations: 20000, collection: 1000, bytes: 1048576 });\n\nexport const assertPageValueBudget = (value: unknown): void => {\n  // Scalar values cannot exceed node/depth limits. Avoid allocating a traversal\n  // stack for every scalar expression read/result; strings still have a byte cap.\n  if (value === null || typeof value !== 'object') {\n    if (typeof value === 'string' && value.length * 2 > PAGE_EXPRESSION_LIMITS.bytes) throw new Error('PAGE_EXPRESSION_BUDGET');\n    return;\n  }\n  const queue: { value: unknown; depth: number }[] = [{ value, depth: 0 }];\n  let nodes = 0;\n  let bytes = 0;\n  while (queue.length) {\n    const item = queue.pop()!;\n    if (++nodes > PAGE_EXPRESSION_LIMITS.nodes || item.depth > PAGE_EXPRESSION_LIMITS.depth) throw new Error('PAGE_EXPRESSION_BUDGET');\n    if (typeof item.value === 'string') bytes += item.value.length * 2;\n    if (item.value && typeof item.value === 'object') {\n      for (const [key, child] of Object.entries(item.value)) {\n        bytes += key.length * 2;\n        if (['__proto__', 'prototype', 'constructor'].includes(key)) throw new Error('PAGE_EXPRESSION_UNSAFE_PATH');\n        if (queue.length >= PAGE_EXPRESSION_LIMITS.nodes) throw new Error('PAGE_EXPRESSION_BUDGET');\n        queue.push({ value: child, depth: item.depth + 1 });\n      }\n    }\n    if (bytes > PAGE_EXPRESSION_LIMITS.bytes) throw new Error('PAGE_EXPRESSION_BUDGET');\n  }\n};\n\n/** The input guard runs before recursive schema parsing, including direct Page parsing. */\nexport const PageExpressionSchema = z.unknown().superRefine((value, context) => {\n  try { assertPageValueBudget(value); }\n  catch (error) { context.addIssue({ code: 'custom', message: error instanceof Error ? error.message : 'PAGE_EXPRESSION_BUDGET' }); }\n}).pipe(RecursivePageExpressionSchema);\n\nexport const PagePropertyBindingSchema = z.object({\n  targetPath: PageValuePathSchema.min(1),\n  expression: PageExpressionSchema,\n  valueType: z.enum(['string', 'number', 'boolean', 'object', 'array', 'null']).optional(),\n}).strict();\nexport type PagePropertyBinding = z.infer<typeof PagePropertyBindingSchema>;\n\nexport const visitPageExpression = (expression: PageExpression, visit: (node: PageExpression) => void): void => {\n  visit(expression);\n  switch (expression.kind) {\n    case 'operator': expression.arguments.forEach((node) => visitPageExpression(node, visit)); break;\n    case 'conditional': [expression.condition, expression.then, expression.else].forEach((node) => visitPageExpression(node, visit)); break;\n    case 'object': Object.values(expression.fields).forEach((node) => visitPageExpression(node, visit)); break;\n    case 'array': expression.items.forEach((node) => visitPageExpression(node, visit)); break;\n    case 'map': case 'filter': case 'sum':\n      visitPageExpression(expression.source, visit); visitPageExpression(expression.value, visit); break;\n  }\n};\n\nexport const collectPageExpressionReads = (expression: PageExpression): Extract<PageExpression, { kind: 'read' }>[] => {\n  const reads: Extract<PageExpression, { kind: 'read' }>[] = [];\n  visitPageExpression(expression, (node) => { if (node.kind === 'read') reads.push(node); });\n  return reads;\n};\n\n/** Reads supplied by the caller, excluding lexically bound collection item/index reads. */\nexport const collectExternalPageExpressionReads = (expression: PageExpression): Extract<PageExpression, { kind: 'read' }>[] => {\n  const reads: Extract<PageExpression, { kind: 'read' }>[] = [];\n  const visit = (node: PageExpression, depth: number): void => {\n    if (node.kind === 'read') {\n      let remaining = depth;\n      let index = 0;\n      while (remaining > 0 && node.path[index] === 'parent') { remaining -= 1; index += 1; }\n      const local = node.root === 'scope' && remaining > 0 && ['item', 'index'].includes(node.path[index]);\n      if (!local) reads.push(node);\n      return;\n    }\n    switch (node.kind) {\n      case 'operator': node.arguments.forEach(child => visit(child, depth)); break;\n      case 'conditional': [node.condition, node.then, node.else].forEach(child => visit(child, depth)); break;\n      case 'object': Object.values(node.fields).forEach(child => visit(child, depth)); break;\n      case 'array': node.items.forEach(child => visit(child, depth)); break;\n      case 'map': case 'filter': case 'sum': visit(node.source, depth); visit(node.value, depth + 1); break;\n    }\n  };\n  visit(expression, 0);\n  return reads;\n};\n","import { PageExpressionSchema, PageValuePathSchema } from \"./page-expression\";\nimport { z } from \"zod\";\nimport {\n  ContractIdentifierSchema,\n  ContractVersionSchema,\n  EntityRefSchema,\n  IsoDateTimeSchema,\n  JsonObjectSchema,\n} from \"./common\";\n\nexport const ProductContextSchema = z.enum([\"studio\", \"kernel\"]);\n\nexport const RenderNodeStateSchema = z.enum([\n  \"idle\",\n  \"loading\",\n  \"empty\",\n  \"error\",\n  \"success\",\n  \"disabled\",\n  \"selected\",\n]);\n\nexport const RenderNodeKindSchema = z.enum([\n  \"shell\",\n  \"page\",\n  \"navigation\",\n  \"view\",\n  \"record\",\n  \"control\",\n  \"detail\",\n  \"action\",\n  \"overlay\",\n  \"professional-provider\",\n]);\n\nexport const RenderSurfaceSchema = z\n  .object({\n    frameOwner: z.enum([\"host\", \"provider\", \"none\"]),\n    tone: ContractIdentifierSchema.optional(),\n    density: z.enum([\"compact\", \"default\", \"comfortable\"]),\n  })\n  .strict();\n\nexport const RenderScrollSchema = z\n  .object({\n    owner: z.enum([\"page\", \"surface\", \"provider\"]),\n    axis: z.enum([\"x\", \"y\", \"both\", \"none\"]),\n    restoreKey: ContractIdentifierSchema.optional(),\n    virtualizationBoundary: z.boolean(),\n  })\n  .strict()\n  .superRefine((scroll, context) => {\n    if (scroll.owner === \"provider\" && scroll.restoreKey) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"restoreKey\"],\n        message:\n          \"Provider-owned scroll state cannot declare a host restoreKey.\",\n      });\n    }\n    if (scroll.virtualizationBoundary && scroll.owner !== \"provider\") {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"owner\"],\n        message:\n          \"A virtualization boundary must keep scroll ownership in the provider.\",\n      });\n    }\n  });\n\nexport const RenderActivationSchema = z\n  .object({\n    activationId: ContractIdentifierSchema,\n    mode: z.enum([\n      \"navigate\",\n      \"select\",\n      \"drawer\",\n      \"modal\",\n      \"fullscreen\",\n      \"inline\",\n    ]),\n    targetPath: z\n      .string()\n      .trim()\n      .regex(/^\\/(?!\\/)/, \"Expected an application-relative path.\")\n      .optional(),\n    history: z.enum([\"push\", \"replace\"]).optional(),\n  })\n  .strict()\n  .superRefine((activation, context) => {\n    if (activation.mode === \"navigate\" && !activation.targetPath) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"targetPath\"],\n        message:\n          \"Navigate activation requires an application-relative targetPath.\",\n      });\n    }\n    if (activation.mode !== \"navigate\" && activation.targetPath) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"targetPath\"],\n        message: \"Only navigate activation may declare targetPath.\",\n      });\n    }\n  });\n\nexport const RenderLifecycleSchema = z\n  .object({\n    mountPolicy: z.enum([\"always\", \"when-visible\", \"when-active\"]),\n    queryPolicy: z.enum([\"always\", \"when-visible\", \"when-active\", \"manual\"]),\n    retainOnDeactivate: z.boolean(),\n    deepLink: z.boolean(),\n    focusReturn: z.boolean(),\n  })\n  .strict();\n\nexport const RenderLayoutSchema = z\n  .object({\n    mode: z.enum([\"contents\", \"block\", \"flex\", \"grid\", \"absolute\"]),\n    direction: z.enum([\"row\", \"column\"]).optional(),\n    columns: z.number().int().positive().optional(),\n    align: z.enum([\"start\", \"center\", \"end\", \"stretch\"]).optional(),\n    justify: z.enum([\"start\", \"center\", \"end\", \"between\", \"around\"]).optional(),\n    gapTokenRef: EntityRefSchema.optional(),\n  })\n  .strict()\n  .superRefine((layout, context) => {\n    if (layout.direction && layout.mode !== \"flex\") {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"direction\"],\n        message: \"direction is only valid for flex layout.\",\n      });\n    }\n    if (layout.columns && layout.mode !== \"grid\") {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"columns\"],\n        message: \"columns is only valid for grid layout.\",\n      });\n    }\n    if (layout.gapTokenRef && layout.gapTokenRef.kind !== \"design-token\") {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"gapTokenRef\", \"kind\"],\n        message: \"gapTokenRef must reference design-token.\",\n      });\n    }\n  });\n\nexport const RenderResponsiveRuleSchema = z\n  .object({\n    minWidthPx: z.number().nonnegative().optional(),\n    maxWidthPx: z.number().positive().optional(),\n    layout: RenderLayoutSchema,\n    style: z.lazy(() => RenderStyleSchema).optional(),\n  })\n  .strict()\n  .superRefine((rule, context) => {\n    if (rule.minWidthPx === undefined && rule.maxWidthPx === undefined) {\n      context.addIssue({\n        code: \"custom\",\n        path: [],\n        message: \"Responsive rule must declare minWidthPx or maxWidthPx.\",\n      });\n    }\n    if (\n      rule.minWidthPx !== undefined &&\n      rule.maxWidthPx !== undefined &&\n      rule.minWidthPx > rule.maxWidthPx\n    ) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"maxWidthPx\"],\n        message: \"maxWidthPx must be greater than or equal to minWidthPx.\",\n      });\n    }\n  });\n\nexport const RenderStyleValueSchema = z.union([\n  z.number().finite(),\n  z\n    .string()\n    .trim()\n    .min(1)\n    .max(256)\n    .superRefine((value, context) => {\n      if (\n        /[;{}]/.test(value) ||\n        /(?:url|expression|javascript|var)\\s*\\(/i.test(value)\n      ) {\n        context.addIssue({\n          code: \"custom\",\n          message:\n            \"Render style values must be bounded CSS values or $ Design Token references.\",\n        });\n      }\n    }),\n]);\n\nexport const RenderStyleSchema = z\n  .object({\n    width: RenderStyleValueSchema.optional(),\n    height: RenderStyleValueSchema.optional(),\n    minWidth: RenderStyleValueSchema.optional(),\n    maxWidth: RenderStyleValueSchema.optional(),\n    minHeight: RenderStyleValueSchema.optional(),\n    maxHeight: RenderStyleValueSchema.optional(),\n    padding: RenderStyleValueSchema.optional(),\n    paddingBlock: RenderStyleValueSchema.optional(),\n    paddingInline: RenderStyleValueSchema.optional(),\n    margin: RenderStyleValueSchema.optional(),\n    marginBlockStart: RenderStyleValueSchema.optional(),\n    marginBlockEnd: RenderStyleValueSchema.optional(),\n    marginInlineStart: RenderStyleValueSchema.optional(),\n    marginInlineEnd: RenderStyleValueSchema.optional(),\n    display: z\n      .enum([\n        \"none\",\n        \"block\",\n        \"inline\",\n        \"inline-block\",\n        \"flex\",\n        \"inline-flex\",\n        \"grid\",\n        \"contents\",\n      ])\n      .optional(),\n    gap: RenderStyleValueSchema.optional(),\n    rowGap: RenderStyleValueSchema.optional(),\n    columnGap: RenderStyleValueSchema.optional(),\n    background: RenderStyleValueSchema.optional(),\n    color: RenderStyleValueSchema.optional(),\n    borderColor: RenderStyleValueSchema.optional(),\n    borderWidth: RenderStyleValueSchema.optional(),\n    borderStyle: z.enum([\"none\", \"solid\", \"dashed\", \"dotted\"]).optional(),\n    borderRadius: RenderStyleValueSchema.optional(),\n    boxShadow: RenderStyleValueSchema.optional(),\n    fontSize: RenderStyleValueSchema.optional(),\n    fontFamily: RenderStyleValueSchema.optional(),\n    fontWeight: RenderStyleValueSchema.optional(),\n    lineHeight: RenderStyleValueSchema.optional(),\n    textAlign: z.enum([\"start\", \"center\", \"end\", \"left\", \"right\"]).optional(),\n    whiteSpace: z\n      .enum([\"normal\", \"nowrap\", \"pre\", \"pre-wrap\", \"pre-line\", \"break-spaces\"])\n      .optional(),\n    overflow: z\n      .enum([\"visible\", \"hidden\", \"auto\", \"scroll\", \"clip\"])\n      .optional(),\n    overflowX: z\n      .enum([\"visible\", \"hidden\", \"auto\", \"scroll\", \"clip\"])\n      .optional(),\n    overflowY: z\n      .enum([\"visible\", \"hidden\", \"auto\", \"scroll\", \"clip\"])\n      .optional(),\n    position: z\n      .enum([\"static\", \"relative\", \"absolute\", \"sticky\", \"fixed\"])\n      .optional(),\n    inset: RenderStyleValueSchema.optional(),\n    top: RenderStyleValueSchema.optional(),\n    right: RenderStyleValueSchema.optional(),\n    bottom: RenderStyleValueSchema.optional(),\n    left: RenderStyleValueSchema.optional(),\n    gridTemplateColumns: RenderStyleValueSchema.optional(),\n    gridColumn: RenderStyleValueSchema.optional(),\n    gridRow: RenderStyleValueSchema.optional(),\n    flex: RenderStyleValueSchema.optional(),\n    flexDirection: z\n      .enum([\"row\", \"row-reverse\", \"column\", \"column-reverse\"])\n      .optional(),\n    flexWrap: z.enum([\"nowrap\", \"wrap\", \"wrap-reverse\"]).optional(),\n    alignItems: z\n      .enum([\"start\", \"center\", \"end\", \"stretch\", \"baseline\"])\n      .optional(),\n    justifyContent: z\n      .enum([\n        \"start\",\n        \"center\",\n        \"end\",\n        \"space-between\",\n        \"space-around\",\n        \"space-evenly\",\n      ])\n      .optional(),\n    flexGrow: z.number().finite().nonnegative().optional(),\n    flexShrink: z.number().finite().nonnegative().optional(),\n    alignSelf: z.enum([\"auto\", \"start\", \"center\", \"end\", \"stretch\"]).optional(),\n    justifySelf: z\n      .enum([\"auto\", \"start\", \"center\", \"end\", \"stretch\"])\n      .optional(),\n    objectFit: z\n      .enum([\"contain\", \"cover\", \"fill\", \"none\", \"scale-down\"])\n      .optional(),\n    opacity: z.number().finite().min(0).max(1).optional(),\n  })\n  .strict();\n\nconst requireRef = (\n  reference: z.infer<typeof EntityRefSchema> | undefined,\n  expectedKind: string,\n  path: (string | number)[],\n  context: z.RefinementCtx,\n) => {\n  if (!reference) return;\n  if (reference.kind !== expectedKind) {\n    context.addIssue({\n      code: \"custom\",\n      path: [...path, \"kind\"],\n      message: `${path.join(\".\")} must reference ${expectedKind}.`,\n    });\n  }\n};\n\nconst requirePinnedOwnedRef = (\n  reference: z.infer<typeof EntityRefSchema> | undefined,\n  expectedKind: string,\n  path: (string | number)[],\n  context: z.RefinementCtx,\n) => {\n  requireRef(reference, expectedKind, path, context);\n  if (!reference) return;\n  if (reference.version === undefined) {\n    context.addIssue({\n      code: \"custom\",\n      path: [...path, \"version\"],\n      message: `${path.join(\".\")} must pin a version.`,\n    });\n  }\n  if (reference.ownerRepo === undefined) {\n    context.addIssue({\n      code: \"custom\",\n      path: [...path, \"ownerRepo\"],\n      message: `${path.join(\".\")} must declare its owner repository.`,\n    });\n  }\n};\n\nexport const RenderNodeSchema = z\n  .object({\n    contract: z.literal(\"RenderNode\"),\n    nodeId: ContractIdentifierSchema,\n    kind: RenderNodeKindSchema,\n    version: ContractVersionSchema,\n    ownerRepo: ContractIdentifierSchema,\n    parentNodeId: ContractIdentifierSchema.optional(),\n    children: z.array(ContractIdentifierSchema),\n    slot: ContractIdentifierSchema.optional(),\n    pageRef: EntityRefSchema,\n    semanticRef: EntityRefSchema.optional(),\n    dataContextRef: EntityRefSchema.optional(),\n    capabilityRef: EntityRefSchema,\n    runtimeContractVersion: ContractIdentifierSchema.optional(),\n    providerRef: EntityRefSchema.optional(),\n    stateRef: EntityRefSchema.optional(),\n    surface: RenderSurfaceSchema,\n    scroll: RenderScrollSchema,\n    activation: RenderActivationSchema,\n    lifecycle: RenderLifecycleSchema,\n    layout: RenderLayoutSchema,\n    style: RenderStyleSchema.optional(),\n    responsive: z.array(RenderResponsiveRuleSchema),\n    accessRef: EntityRefSchema.optional(),\n    evidenceRef: EntityRefSchema.optional(),\n    state: RenderNodeStateSchema,\n    renderModel: JsonObjectSchema,\n    repeat: z\n      .object({\n        source: PageExpressionSchema,\n        keyPath: PageValuePathSchema.min(1),\n        limit: z.number().int().min(1).max(1000).default(200),\n      })\n      .strict()\n      .optional(),\n  })\n  .strict()\n  .superRefine((node, context) => {\n    requireRef(node.pageRef, \"page\", [\"pageRef\"], context);\n    requirePinnedOwnedRef(\n      node.capabilityRef,\n      \"capability\",\n      [\"capabilityRef\"],\n      context,\n    );\n    requirePinnedOwnedRef(\n      node.providerRef,\n      \"view-provider\",\n      [\"providerRef\"],\n      context,\n    );\n    requireRef(node.accessRef, \"access-policy\", [\"accessRef\"], context);\n    requireRef(node.evidenceRef, \"evidence\", [\"evidenceRef\"], context);\n    if (node.parentNodeId === node.nodeId) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"parentNodeId\"],\n        message: \"RenderNode cannot be its own parent.\",\n      });\n    }\n    if (new Set(node.children).size !== node.children.length) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"children\"],\n        message: \"RenderNode children must be unique.\",\n      });\n    }\n    if (node.children.includes(node.nodeId)) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"children\"],\n        message: \"RenderNode cannot be its own child.\",\n      });\n    }\n    if (node.surface.frameOwner === \"provider\" && !node.providerRef) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"providerRef\"],\n        message: \"Provider-owned surfaces require providerRef.\",\n      });\n    }\n  });\n\nexport const RenderTreeSchema = z\n  .object({\n    contract: z.literal(\"RenderTree\"),\n    treeId: ContractIdentifierSchema,\n    product: ProductContextSchema,\n    rootNodeId: ContractIdentifierSchema,\n    nodes: z.array(RenderNodeSchema).min(1),\n  })\n  .strict();\n\nexport const OverlayZIndexLaneSchema = z.enum([\n  \"popover\",\n  \"drawer\",\n  \"modal\",\n  \"fullscreen\",\n  \"system\",\n]);\n\nexport const OverlayNodeSchema = z\n  .object({\n    contract: z.literal(\"OverlayNode\"),\n    overlayId: ContractIdentifierSchema,\n    renderNode: RenderNodeSchema,\n    presentation: z.enum([\"drawer\", \"modal\", \"fullscreen\"]),\n    zIndexLane: OverlayZIndexLaneSchema,\n    url: z\n      .object({\n        parameter: ContractIdentifierSchema,\n        value: ContractIdentifierSchema,\n        openMode: z.enum([\"push\", \"replace\"]),\n        closeMode: z.enum([\"back\", \"replace\"]),\n      })\n      .strict(),\n    focus: z\n      .object({\n        initial: z.enum([\"first-interactive\", \"container\", \"explicit\"]),\n        trap: z.boolean(),\n      })\n      .strict(),\n    close: z\n      .object({\n        escape: z.boolean(),\n        backdrop: z.boolean(),\n      })\n      .strict(),\n  })\n  .strict()\n  .superRefine((value, context) => {\n    if (value.renderNode.kind !== \"overlay\") {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"renderNode\", \"kind\"],\n        message: \"OverlayNode renderNode.kind must be overlay.\",\n      });\n    }\n    if (value.renderNode.activation.mode !== value.presentation) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"renderNode\", \"activation\", \"mode\"],\n        message:\n          \"OverlayNode presentation must match the RenderNode activation mode.\",\n      });\n    }\n    if (value.presentation === \"drawer\" && value.zIndexLane !== \"drawer\") {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"zIndexLane\"],\n        message: \"Drawer overlays must use the drawer z-index lane.\",\n      });\n    }\n    if (value.presentation === \"modal\" && value.zIndexLane !== \"modal\") {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"zIndexLane\"],\n        message: \"Modal overlays must use the modal z-index lane.\",\n      });\n    }\n    if (\n      value.presentation === \"fullscreen\" &&\n      value.zIndexLane !== \"fullscreen\" &&\n      value.zIndexLane !== \"system\"\n    ) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"zIndexLane\"],\n        message:\n          \"Fullscreen overlays must use the fullscreen or system z-index lane.\",\n      });\n    }\n  });\n\nconst ProductPathSchema = z\n  .string()\n  .trim()\n  .regex(/^\\/(?!\\/)/, \"Expected an application-relative path.\");\n\nexport const ApplicationHandoffEndpointSchema = z\n  .object({\n    product: ProductContextSchema,\n    pageId: ContractIdentifierSchema,\n    viewId: ContractIdentifierSchema.optional(),\n    objectRef: EntityRefSchema.optional(),\n    runtimeRef: EntityRefSchema.optional(),\n    activationId: ContractIdentifierSchema.optional(),\n    path: ProductPathSchema,\n  })\n  .strict();\n\nexport const ApplicationHandoffSchema = z\n  .object({\n    contract: z.literal(\"ApplicationHandoff\"),\n    handoffId: ContractIdentifierSchema,\n    source: ApplicationHandoffEndpointSchema,\n    target: ApplicationHandoffEndpointSchema,\n    returnTarget: ApplicationHandoffEndpointSchema.optional(),\n    traceId: ContractIdentifierSchema.optional(),\n    createdAt: IsoDateTimeSchema,\n  })\n  .strict()\n  .superRefine((value, context) => {\n    if (\n      value.source.product === value.target.product &&\n      value.source.pageId === value.target.pageId\n    ) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"target\"],\n        message:\n          \"ApplicationHandoff target must identify a different product page.\",\n      });\n    }\n  });\n\nexport const ViewProviderDescriptorSchema = z\n  .object({\n    contract: z.literal(\"ViewProviderDescriptor\"),\n    providerId: ContractIdentifierSchema,\n    providerVersion: ContractIdentifierSchema,\n    runtimeContractVersion: ContractIdentifierSchema.optional(),\n    ownerRepo: ContractIdentifierSchema,\n    capabilityRef: EntityRefSchema,\n    rendererKey: ContractIdentifierSchema,\n    renderModelSchemaRef: ContractIdentifierSchema,\n    intentSchemaRef: ContractIdentifierSchema.optional(),\n    loading: z.enum([\"eager\", \"lazy\", \"viewport\", \"on-activation\"]),\n    stateOwner: z.enum([\"host\", \"provider\", \"external\"]),\n    supportedPageTypes: z.array(ContractIdentifierSchema).min(1),\n    supportedSurfaces: z\n      .array(\n        z.enum([\n          \"page\",\n          \"workspace\",\n          \"view\",\n          \"record\",\n          \"action\",\n          \"overlay\",\n          \"agent\",\n        ]),\n      )\n      .min(1),\n    frameOwner: z.enum([\"host\", \"provider\", \"none\"]),\n    sideEffects: z.array(\n      z.enum([\n        \"network\",\n        \"storage\",\n        \"navigation\",\n        \"clipboard\",\n        \"worker\",\n        \"websocket\",\n      ]),\n    ),\n    sideEffectAdapterRef: EntityRefSchema.optional(),\n    lifecycle: z\n      .object({\n        preserveMount: z.boolean(),\n        preserveScroll: z.boolean(),\n        focusModel: ContractIdentifierSchema,\n      })\n      .strict(),\n    performance: z\n      .object({\n        lazy: z.boolean(),\n        virtualized: z.boolean(),\n        budgetMs: z.number().positive().optional(),\n      })\n      .strict(),\n    accessRef: EntityRefSchema.optional(),\n    evidenceRef: EntityRefSchema.optional(),\n  })\n  .strict()\n  .superRefine((provider, context) => {\n    requirePinnedOwnedRef(\n      provider.capabilityRef,\n      \"capability\",\n      [\"capabilityRef\"],\n      context,\n    );\n    requirePinnedOwnedRef(\n      provider.sideEffectAdapterRef,\n      \"side-effect-adapter\",\n      [\"sideEffectAdapterRef\"],\n      context,\n    );\n    requireRef(provider.accessRef, \"access-policy\", [\"accessRef\"], context);\n    requireRef(provider.evidenceRef, \"evidence\", [\"evidenceRef\"], context);\n    if (provider.capabilityRef.version === undefined) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"capabilityRef\", \"version\"],\n        message:\n          \"Provider capabilityRef must pin an active capability version.\",\n      });\n    }\n    if (\n      provider.frameOwner === \"provider\" &&\n      provider.stateOwner === \"host\" &&\n      !provider.lifecycle.preserveMount\n    ) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"lifecycle\", \"preserveMount\"],\n        message:\n          \"Host-owned state on a provider-owned frame must preserve the provider mount.\",\n      });\n    }\n    if (provider.sideEffects.length > 0 && !provider.sideEffectAdapterRef) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"sideEffectAdapterRef\"],\n        message:\n          \"Providers with side effects require a pinned side-effect adapter.\",\n      });\n    }\n    if (provider.sideEffects.length === 0 && provider.sideEffectAdapterRef) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"sideEffectAdapterRef\"],\n        message: \"Pure providers cannot declare a side-effect adapter.\",\n      });\n    }\n  });\n\nexport type ProductContext = z.infer<typeof ProductContextSchema>;\nexport type RenderNodeState = z.infer<typeof RenderNodeStateSchema>;\nexport type RenderNodeKind = z.infer<typeof RenderNodeKindSchema>;\nexport type RenderSurface = z.infer<typeof RenderSurfaceSchema>;\nexport type RenderScroll = z.infer<typeof RenderScrollSchema>;\nexport type RenderActivation = z.infer<typeof RenderActivationSchema>;\nexport type RenderLifecycle = z.infer<typeof RenderLifecycleSchema>;\nexport type RenderLayout = z.infer<typeof RenderLayoutSchema>;\nexport type RenderResponsiveRule = z.infer<typeof RenderResponsiveRuleSchema>;\nexport type RenderStyle = z.infer<typeof RenderStyleSchema>;\nexport type RenderNode = z.infer<typeof RenderNodeSchema>;\nexport type RenderTree = z.infer<typeof RenderTreeSchema>;\nexport type OverlayZIndexLane = z.infer<typeof OverlayZIndexLaneSchema>;\nexport type OverlayNode = z.infer<typeof OverlayNodeSchema>;\nexport type ApplicationHandoffEndpoint = z.infer<\n  typeof ApplicationHandoffEndpointSchema\n>;\nexport type ApplicationHandoff = z.infer<typeof ApplicationHandoffSchema>;\nexport type ViewProviderDescriptor = z.infer<\n  typeof ViewProviderDescriptorSchema\n>;\n","import { z } from 'zod';\nimport {\n  ContractIdentifierSchema,\n  EntityRefSchema,\n} from './common';\nimport { ProductContextSchema } from './render';\n\nexport const ContractPortSchema = z\n  .object({\n    name: ContractIdentifierSchema,\n    schemaRef: ContractIdentifierSchema,\n    required: z.boolean().default(false),\n    multiple: z.boolean().default(false),\n    description: z.string().optional(),\n  })\n  .strict();\n\nexport const CapabilityProviderBindingSchema = z\n  .object({\n    providerRef: EntityRefSchema,\n    productContexts: z.array(ProductContextSchema).default([]),\n    priority: z.number().int().default(0),\n  })\n  .strict();\n\nexport const CapabilityManifestSchema = z\n  .object({\n    contract: z.literal('CapabilityManifest'),\n    id: ContractIdentifierSchema,\n    capabilityVersion: ContractIdentifierSchema,\n    ownerRepo: ContractIdentifierSchema,\n    kind: z.enum(['primitive', 'composite', 'view', 'professional-provider', 'tool', 'workflow']),\n    displayName: z.string().trim().min(1),\n    description: z.string().optional(),\n    ports: z\n      .object({\n        inputs: z.array(ContractPortSchema).default([]),\n        outputs: z.array(ContractPortSchema).default([]),\n      })\n      .strict(),\n    runtime: z\n      .object({\n        providerBindings: z.array(CapabilityProviderBindingSchema).min(1),\n        loading: z.enum(['eager', 'lazy', 'viewport', 'on-activation']),\n        fallbackCapabilityRef: EntityRefSchema.optional(),\n        stateOwner: z.enum(['host', 'provider', 'external']),\n        stateSchemaRef: ContractIdentifierSchema.optional(),\n        sideEffects: z\n          .array(z.enum(['network', 'storage', 'navigation', 'clipboard', 'worker', 'websocket']))\n          .default([]),\n      })\n      .strict(),\n    placement: z\n      .object({\n        surfaces: z.array(ContractIdentifierSchema).min(1),\n        slots: z.array(ContractIdentifierSchema).default([]),\n        variants: z.array(ContractIdentifierSchema).default([]),\n        tokenRefs: z.array(ContractIdentifierSchema).default([]),\n      })\n      .strict(),\n    accessibility: z\n      .object({\n        keyboardModel: ContractIdentifierSchema,\n        focusModel: ContractIdentifierSchema,\n        labelContract: ContractIdentifierSchema,\n      })\n      .strict(),\n    observability: z\n      .object({\n        eventNamespace: ContractIdentifierSchema,\n        metrics: z.array(ContractIdentifierSchema).default([]),\n        evidenceRefs: z.array(ContractIdentifierSchema).default([]),\n        performanceBudgetMs: z.number().positive().optional(),\n      })\n      .strict(),\n  })\n  .strict()\n  .superRefine((manifest, context) => {\n    const providerIds = new Set<string>();\n    manifest.runtime.providerBindings.forEach((binding, index) => {\n      const providerIdentity = `${binding.providerRef.kind}:${binding.providerRef.id}@${String(binding.providerRef.version)}:${binding.providerRef.ownerRepo ?? ''}`;\n      if (providerIds.has(providerIdentity)) {\n        context.addIssue({ code: 'custom', path: ['runtime', 'providerBindings', index], message: `Duplicate capability provider binding: ${providerIdentity}` });\n      }\n      providerIds.add(providerIdentity);\n      if (!['view', 'professional-provider'].includes(manifest.kind)) return;\n      if (binding.providerRef.kind !== 'view-provider') {\n        context.addIssue({ code: 'custom', path: ['runtime', 'providerBindings', index, 'providerRef', 'kind'], message: 'View capabilities must resolve to view providers.' });\n      }\n      if (binding.providerRef.version === undefined) {\n        context.addIssue({ code: 'custom', path: ['runtime', 'providerBindings', index, 'providerRef', 'version'], message: 'View capability providers must pin a provider version.' });\n      }\n      if (binding.providerRef.ownerRepo === undefined) {\n        context.addIssue({ code: 'custom', path: ['runtime', 'providerBindings', index, 'providerRef', 'ownerRepo'], message: 'View capability providers must declare their owner repository.' });\n      }\n    });\n  });\n\nexport const CapabilitySourceTypeSchema = z.enum([\n  'tool-manifest',\n  'plugin-manifest',\n  'openapi',\n  'workflow',\n  'comfyui',\n  'design-view-provider',\n]);\n\nexport const CapabilityRegistrySourceSchema = z\n  .object({\n    sourceType: CapabilitySourceTypeSchema,\n    sourceId: ContractIdentifierSchema,\n    ownerRepo: ContractIdentifierSchema,\n  })\n  .strict();\n\nexport const CapabilityRegistryEntrySchema = z\n  .object({\n    manifest: CapabilityManifestSchema,\n    sources: z.array(CapabilityRegistrySourceSchema).min(1),\n  })\n  .strict();\n\nexport const CapabilityRegistryDocumentSchema = z\n  .object({\n    contract: z.literal('CapabilityRegistry'),\n    entries: z.array(CapabilityRegistryEntrySchema),\n  })\n  .strict()\n  .superRefine((registry, context) => {\n    const ids = new Set<string>();\n    registry.entries.forEach((entry, index) => {\n      if (ids.has(entry.manifest.id)) {\n        context.addIssue({\n          code: 'custom',\n          path: ['entries', index, 'manifest', 'id'],\n          message: `Duplicate capability id: ${entry.manifest.id}`,\n        });\n      }\n      ids.add(entry.manifest.id);\n    });\n  });\n\nexport type ContractPort = z.infer<typeof ContractPortSchema>;\nexport type CapabilityProviderBinding = z.infer<typeof CapabilityProviderBindingSchema>;\nexport type CapabilityManifest = z.infer<typeof CapabilityManifestSchema>;\nexport type CapabilitySourceType = z.infer<typeof CapabilitySourceTypeSchema>;\nexport type CapabilityRegistrySource = z.infer<typeof CapabilityRegistrySourceSchema>;\nexport type CapabilityRegistryEntry = z.infer<typeof CapabilityRegistryEntrySchema>;\nexport type CapabilityRegistryDocument = z.infer<typeof CapabilityRegistryDocumentSchema>;\n","import { z } from 'zod';\nimport {\n  ContractIdentifierSchema,\n  EntityRefSchema,\n  IsoDateTimeSchema,\n  JsonValueSchema,\n  Sha256Schema,\n} from './common';\n\nexport const SourceRecordRefSchema = z\n  .object({\n    sourceId: ContractIdentifierSchema,\n    recordId: ContractIdentifierSchema,\n    recordVersion: z.union([z.number().int().nonnegative(), ContractIdentifierSchema]),\n    hash: Sha256Schema,\n  })\n  .strict();\n\nexport const OntologyDefinitionSchema = z\n  .object({\n    contract: z.literal('OntologyDefinition'),\n    ontologyId: ContractIdentifierSchema,\n    dataSpaceId: ContractIdentifierSchema,\n    ownerRepo: ContractIdentifierSchema,\n    bodySchemaRef: ContractIdentifierSchema,\n    authority: z\n      .object({\n        service: ContractIdentifierSchema,\n        storage: ContractIdentifierSchema,\n        scope: z.enum(['tenant', 'team', 'user', 'global']),\n      })\n      .strict(),\n    relationKinds: z.array(ContractIdentifierSchema).default([]),\n    metricKinds: z.array(ContractIdentifierSchema).default([]),\n  })\n  .strict();\n\nexport const ProjectionSpecSchema = z\n  .object({\n    contract: z.literal('ProjectionSpec'),\n    projectionId: ContractIdentifierSchema,\n    ontologyIds: z.array(ContractIdentifierSchema).min(1),\n    outputSchemaRef: ContractIdentifierSchema,\n    operator: z\n      .object({\n        kind: z.enum(['query', 'aggregate', 'relationship', 'search', 'custom']),\n        configuration: z.record(z.string(), JsonValueSchema).default({}),\n      })\n      .strict(),\n    materialization: z.enum(['on-demand', 'event-driven', 'scheduled']),\n    invalidationEvents: z.array(ContractIdentifierSchema).default([]),\n    rebuildable: z.literal(true),\n    lineagePolicy: z\n      .object({\n        sourceRecords: z.boolean(),\n        bodyVersions: z.boolean(),\n        runRefs: z.boolean(),\n        actorRefs: z.boolean(),\n      })\n      .strict(),\n  })\n  .strict();\n\nexport const LineageRecordSchema = z\n  .object({\n    contract: z.literal('LineageRecord'),\n    lineageId: ContractIdentifierSchema,\n    subjectRef: EntityRefSchema,\n    sourceRecords: z.array(SourceRecordRefSchema).default([]),\n    bodyRefs: z.array(EntityRefSchema).default([]),\n    runRefs: z.array(EntityRefSchema).default([]),\n    outputRefs: z.array(EntityRefSchema).default([]),\n    artifactRefs: z.array(EntityRefSchema).default([]),\n    actorRefs: z.array(EntityRefSchema).default([]),\n    evidenceRefs: z.array(EntityRefSchema).default([]),\n    recordedAt: IsoDateTimeSchema,\n  })\n  .strict();\n\nexport const DomainEventSchema = z\n  .object({\n    contract: z.literal('DomainEvent'),\n    eventId: ContractIdentifierSchema,\n    eventType: ContractIdentifierSchema,\n    aggregateRef: EntityRefSchema,\n    aggregateVersion: z.number().int().nonnegative(),\n    requestId: ContractIdentifierSchema,\n    actorRef: EntityRefSchema,\n    payload: JsonValueSchema,\n    occurredAt: IsoDateTimeSchema,\n  })\n  .strict();\n\nexport type SourceRecordRef = z.infer<typeof SourceRecordRefSchema>;\nexport type OntologyDefinition = z.infer<typeof OntologyDefinitionSchema>;\nexport type ProjectionSpec = z.infer<typeof ProjectionSpecSchema>;\nexport type LineageRecord = z.infer<typeof LineageRecordSchema>;\nexport type DomainEvent = z.infer<typeof DomainEventSchema>;\n","import { z } from 'zod';\n\nexport const LegacyRoutePolicySchema = z\n  .object({\n    contract: z.literal('LegacyRoutePolicy'),\n    schemaVersion: z.literal(1),\n    fallback: z.enum(['allowed', 'forbidden']),\n    restoration: z.enum(['allowed', 'forbidden']),\n  })\n  .strict();\n\nexport type LegacyRoutePolicy = z.infer<typeof LegacyRoutePolicySchema>;\n","import { z } from 'zod';\nimport { ContractIdentifierSchema, IsoDateTimeSchema, JsonObjectSchema, Sha256Schema } from './common';\n\nexport const FILE_PURPOSES = [\n  'uploads',\n  'agent-attachments',\n  'agent-artifacts',\n  'agent-edited-images',\n  'agent-workbench',\n  'asset-screenshots',\n  'data-exports',\n  'data-feature-media',\n  'design-assets',\n  'design-board-thumbnails',\n  'design-images',\n  'dev-agent-reference-images',\n  'dev-agent-review-artifacts',\n  'external-delivery-techpacks',\n  'llm-generated-images',\n  'media-generated',\n  'media-uploads',\n  'model-training-files',\n  'models',\n  'models-checkpoints',\n  'models-clip',\n  'models-controlnet',\n  'models-diffusion-models',\n  'models-loras-test',\n  'models-vae',\n  'output-images',\n  'plugin-data-imports',\n  'plugin-runtime',\n  'plugin-runtime-outputs',\n  'step-thumbnails',\n  'techpack-design-intent',\n  'user-files-base',\n  'user-files-design-board-background',\n  'user-files-design-project-cover',\n  'user-files-designs',\n  'user-files-icons',\n  'user-files-import-comfyui-image',\n  'user-files-import-comfyui-json',\n  'user-files-import-comfyui-json-url',\n  'user-files-instruction-input',\n  'user-files-linesheet',\n  'user-files-media',\n  'user-files-other',\n  'user-files-prompt-assistant',\n  'user-files-table-data',\n  'user-files-techpack-attachments',\n  'user-files-text-data-file',\n  'user-files-workflow-input',\n  'workflow-image-mask',\n  'workflow-image-overlay',\n  'workflow-import',\n] as const;\n\nexport const FilePurposeSchema = z.enum(FILE_PURPOSES);\n\nexport const FileStatusSchema = z.enum(['pending', 'ready', 'failed', 'deleted']);\nexport const FileVariantStatusSchema = z.enum(['queued', 'processing', 'ready', 'failed']);\n\nexport const FILE_USAGE_OWNER_TYPES = [\n  'data-asset',\n  'data-export',\n  'design-board',\n  'external-delivery',\n  'kernel-runtime',\n  'llm-generated-media',\n  'model-training-media',\n  'plugin-run',\n] as const;\n\nexport const FileUsageOwnerTypeSchema = z.enum(FILE_USAGE_OWNER_TYPES);\n\nexport const FileUsageSchema = z\n  .object({\n    ownerType: FileUsageOwnerTypeSchema,\n    ownerId: ContractIdentifierSchema,\n    field: ContractIdentifierSchema.optional(),\n  })\n  .strict();\n\nexport const FileReferenceSchema = z\n  .object({\n    id: ContractIdentifierSchema.optional(),\n    uri: z.string().trim().min(1).optional(),\n    thumbnailUri: z.string().trim().min(1).optional(),\n    mimeType: z.string().trim().min(1).max(128).optional(),\n    byteSize: z.number().int().nonnegative().optional(),\n    sha256: Sha256Schema.optional(),\n  })\n  .strict()\n  .refine((value) => Boolean(value.id || value.uri), {\n    message: 'File reference requires id or uri',\n  });\n\nexport const FileVariantSchema = z\n  .object({\n    variantId: ContractIdentifierSchema,\n    kind: z.literal('thumbnail-512'),\n    status: FileVariantStatusSchema,\n    mimeType: z.literal('image/webp'),\n    byteSize: z.number().int().nonnegative().optional(),\n    width: z.number().int().positive().optional(),\n    height: z.number().int().positive().optional(),\n    uri: z.string().trim().min(1).optional(),\n    errorCode: ContractIdentifierSchema.optional(),\n  })\n  .strict();\n\nexport const FileRecordSchema = z\n  .object({\n    contract: z.literal('FileRecord'),\n    contractVersion: z.literal(1),\n    version: z.number().int().positive(),\n    fileId: ContractIdentifierSchema,\n    teamId: ContractIdentifierSchema,\n    purpose: FilePurposeSchema,\n    originalName: z.string().trim().min(1).max(255),\n    mimeType: z.string().trim().min(1).max(128),\n    byteSize: z.number().int().nonnegative().optional(),\n    sha256: Sha256Schema.optional(),\n    status: FileStatusSchema,\n    storage: z\n      .object({\n        bucketId: ContractIdentifierSchema,\n        objectKey: z.string().trim().min(1).max(1024),\n        canonicalUri: z.string().trim().min(1),\n        etag: z.string().trim().min(1).optional(),\n      })\n      .strict(),\n    variants: z.array(FileVariantSchema).default([]),\n    createdAt: IsoDateTimeSchema,\n    updatedAt: IsoDateTimeSchema,\n  })\n  .strict()\n  .superRefine((value, context) => {\n    if (value.storage.canonicalUri !== `file://${value.fileId}`) {\n      context.addIssue({\n        code: 'custom',\n        path: ['storage', 'canonicalUri'],\n        message: 'Canonical file URI must match fileId',\n      });\n    }\n  });\n\nexport const FileUploadCreateRequestSchema = z\n  .object({\n    purpose: FilePurposeSchema,\n    filename: z.string().trim().min(1).max(255),\n    mimeType: z.string().trim().min(1).max(128),\n    byteSize: z.number().int().nonnegative().optional(),\n    sha256: Sha256Schema.optional(),\n    usage: FileUsageSchema.optional(),\n  })\n  .strict();\n\nexport const FileUploadInstructionSchema = z\n  .object({\n    url: z.union([\n      z.string().url(),\n      z.string().trim().regex(/^\\/(?!\\/)/, 'Expected an absolute same-origin path'),\n    ]),\n    method: z.string().trim().min(1),\n    headers: z.record(z.string(), z.string()),\n    expiresAt: IsoDateTimeSchema,\n  })\n  .strict();\n\nexport const FileUploadCreateResponseSchema = z\n  .object({\n    file: FileRecordSchema,\n    upload: FileUploadInstructionSchema,\n  })\n  .strict();\n\nexport const FileUploadCompleteRequestSchema = z\n  .object({\n    byteSize: z.number().int().nonnegative().optional(),\n    sha256: Sha256Schema.optional(),\n    etag: z.string().trim().min(1).max(512).optional(),\n  })\n  .strict();\n\nexport const ResolvedFileSchema = z\n  .object({\n    fileId: ContractIdentifierSchema.optional(),\n    status: FileStatusSchema.optional(),\n    originalUri: z.string().trim().min(1).optional(),\n    thumbnailUri: z.string().trim().min(1).optional(),\n    mimeType: z.string().trim().min(1).max(128).optional(),\n    byteSize: z.number().int().nonnegative().optional(),\n    sha256: Sha256Schema.optional(),\n    unresolved: z.boolean().optional(),\n  })\n  .strict();\n\nexport const FileResolveBatchRequestSchema = z\n  .object({\n    references: z.array(FileReferenceSchema).min(1).max(1000),\n    includeOriginal: z.boolean().default(false),\n    includeThumbnail: z.boolean().default(true),\n  })\n  .strict();\n\nexport const FileResolveBatchResponseSchema = z\n  .object({\n    items: z.array(ResolvedFileSchema),\n  })\n  .strict();\n\nexport const ManagedFileCommandTypeSchema = z.enum([\n  'create-file',\n  'attach-usage',\n  'detach-usage',\n  'record-upload',\n  'verify-upload',\n  'delete-file',\n]);\n\nexport const ManagedFileCommandSchema = z\n  .object({\n    contract: z.literal('ManagedFileCommand'),\n    contractVersion: z.literal(1),\n    commandId: ContractIdentifierSchema,\n    commandType: ManagedFileCommandTypeSchema,\n    fileId: ContractIdentifierSchema,\n    teamId: ContractIdentifierSchema,\n    expectedVersion: z.number().int().nonnegative().optional(),\n    actorId: ContractIdentifierSchema.optional(),\n    payload: JsonObjectSchema.default({}),\n    issuedAt: IsoDateTimeSchema,\n  })\n  .strict();\n\nexport const ManagedFileEventTypeSchema = z.enum([\n  'file-created',\n  'file-usage-attached',\n  'file-usage-detached',\n  'storage-operation-queued',\n  'storage-operation-completed',\n  'storage-operation-failed',\n  'file-ready',\n  'file-deleted',\n]);\n\nexport const ManagedFileEventSchema = z\n  .object({\n    contract: z.literal('ManagedFileEvent'),\n    contractVersion: z.literal(1),\n    eventId: ContractIdentifierSchema,\n    eventType: ManagedFileEventTypeSchema,\n    fileId: ContractIdentifierSchema,\n    teamId: ContractIdentifierSchema,\n    aggregateVersion: z.number().int().positive(),\n    commandId: ContractIdentifierSchema,\n    actorId: ContractIdentifierSchema.optional(),\n    payload: JsonObjectSchema.default({}),\n    occurredAt: IsoDateTimeSchema,\n  })\n  .strict();\n\nexport type FilePurpose = z.infer<typeof FilePurposeSchema>;\nexport type FileUsageOwnerType = z.infer<typeof FileUsageOwnerTypeSchema>;\nexport type FileStatus = z.infer<typeof FileStatusSchema>;\nexport type FileVariantStatus = z.infer<typeof FileVariantStatusSchema>;\nexport type FileUsage = z.infer<typeof FileUsageSchema>;\nexport type FileReference = z.infer<typeof FileReferenceSchema>;\nexport type FileVariant = z.infer<typeof FileVariantSchema>;\nexport type FileRecord = z.infer<typeof FileRecordSchema>;\nexport type FileUploadCreateRequest = z.infer<typeof FileUploadCreateRequestSchema>;\nexport type FileUploadInstruction = z.infer<typeof FileUploadInstructionSchema>;\nexport type FileUploadCreateResponse = z.infer<typeof FileUploadCreateResponseSchema>;\nexport type FileUploadCompleteRequest = z.infer<typeof FileUploadCompleteRequestSchema>;\nexport type ResolvedFile = z.infer<typeof ResolvedFileSchema>;\nexport type FileResolveBatchRequest = z.infer<typeof FileResolveBatchRequestSchema>;\nexport type FileResolveBatchResponse = z.infer<typeof FileResolveBatchResponseSchema>;\nexport type ManagedFileCommandType = z.infer<typeof ManagedFileCommandTypeSchema>;\nexport type ManagedFileCommand = z.infer<typeof ManagedFileCommandSchema>;\nexport type ManagedFileEventType = z.infer<typeof ManagedFileEventTypeSchema>;\nexport type ManagedFileEvent = z.infer<typeof ManagedFileEventSchema>;\n","/** Dependency analysis is shared by Page validation and the query runtime. */\nexport interface PageDependencyBinding {\n  bindingId: string;\n  parameters: Readonly<Record<string, { kind: string; bindingId?: string; stateId?: string }>>;\n  stateEffects?: readonly { targetStateId: string }[];\n  resultStateBindings?: readonly { targetStateId: string }[];\n}\nexport const analyzePageBindingDependencies = (bindings: readonly PageDependencyBinding[]): {\n  order: string[];\n  dependencies: Record<string, string[]>;\n  errors: { bindingId: string; code: 'DUPLICATE' | 'MISSING' | 'CYCLE' | 'STATE_OWNER'; dependencyId?: string }[];\n} => {\n  const errors: { bindingId: string; code: 'DUPLICATE' | 'MISSING' | 'CYCLE' | 'STATE_OWNER'; dependencyId?: string }[] = [];\n  const ids = new Set<string>();\n  const stateOwners = new Map<string, string>();\n  for (const binding of bindings) {\n    if (ids.has(binding.bindingId)) errors.push({ bindingId: binding.bindingId, code: 'DUPLICATE' });\n    ids.add(binding.bindingId);\n    for (const result of [...(binding.resultStateBindings ?? []), ...(binding.stateEffects ?? [])]) {\n      if (stateOwners.has(result.targetStateId)) errors.push({ bindingId: binding.bindingId, code: 'STATE_OWNER', dependencyId: result.targetStateId });\n      stateOwners.set(result.targetStateId, binding.bindingId);\n    }\n  }\n  const dependencies: Record<string, string[]> = Object.create(null);\n  const dependents = new Map<string, string[]>();\n  const remaining = new Map<string, number>();\n  for (const binding of bindings) {\n    const sources = [...new Set(Object.values(binding.parameters).flatMap((source) => {\n      const id = source.kind === 'binding-field' ? source.bindingId : source.kind === 'page-state' && source.stateId ? stateOwners.get(source.stateId) : undefined;\n      return id ? [id] : [];\n    }))];\n    dependencies[binding.bindingId] = sources;\n    remaining.set(binding.bindingId, sources.length);\n    for (const dependencyId of sources) {\n      if (!ids.has(dependencyId)) errors.push({ bindingId: binding.bindingId, code: 'MISSING', dependencyId });\n      dependents.set(dependencyId, [...(dependents.get(dependencyId) ?? []), binding.bindingId]);\n    }\n  }\n  const queue = [...ids].filter((id) => remaining.get(id) === 0);\n  const order: string[] = [];\n  for (let i = 0; i < queue.length; i++) {\n    const id = queue[i]!;\n    order.push(id);\n    for (const dependent of dependents.get(id) ?? []) {\n      const count = remaining.get(dependent)! - 1;\n      remaining.set(dependent, count);\n      if (count === 0) queue.push(dependent);\n    }\n  }\n  if (order.length !== ids.size && !errors.some((error) => error.code === 'MISSING')) {\n    for (const id of ids) if ((remaining.get(id) ?? 0) > 0) errors.push({ bindingId: id, code: 'CYCLE' });\n  }\n  return { order, dependencies, errors };\n};\n","import { z } from \"zod\";\nimport { ContractIdentifierSchema } from \"./common\";\n\n/**\n * A diagnostic is deliberately shared by document preflight, publication\n * preparation, and runtime verification.  The optional fields keep the\n * contract wire-compatible while older producers migrate to the complete\n * shape.\n */\nexport const DeclarativeDiagnosticStageSchema = z.enum([\n  \"document\",\n  \"reference\",\n  \"contract\",\n  \"policy\",\n  \"runtime\",\n]);\n\nexport const DeclarativeDiagnosticSchema = z\n  .object({\n    code: ContractIdentifierSchema,\n    stage: DeclarativeDiagnosticStageSchema.optional(),\n    severity: z.enum([\"info\", \"warning\", \"error\"]).optional(),\n    blocking: z.boolean().optional(),\n    path: z.string().trim().min(1),\n    message: z.string().trim().min(1),\n    recovery: z.array(z.string().trim().min(1)).max(8).optional(),\n  })\n  .strict();\n\nexport type DeclarativeDiagnostic = z.infer<typeof DeclarativeDiagnosticSchema>;\n","import { z } from \"zod\";\nimport {\n  ContractIdentifierSchema,\n  ContractVersionSchema,\n  EntityRefSchema,\n  IsoDateTimeSchema,\n  JsonObjectSchema,\n  JsonValueSchema,\n  LocaleIdentifierSchema,\n  SensitiveResultPathSchema,\n  SensitiveResultPathsSchema,\n  Sha256Schema,\n} from \"./common\";\nimport { OntologyDefinitionSchema } from \"./data\";\nimport { LegacyRoutePolicySchema } from \"./legacy-route\";\nimport { FilePurposeSchema } from \"./file\";\nimport {\n  RenderActivationSchema,\n  RenderLayoutSchema,\n  RenderLifecycleSchema,\n  RenderNodeKindSchema,\n  RenderNodeStateSchema,\n  RenderResponsiveRuleSchema,\n  RenderScrollSchema,\n  RenderStyleSchema,\n  RenderSurfaceSchema,\n  RenderTreeSchema,\n} from \"./render\";\nimport {\n  PageExpressionSchema,\n  PageValuePathSchema,\n  PagePropertyBindingSchema,\n  visitPageExpression,\n  collectPageExpressionReads,\n  collectExternalPageExpressionReads,\n} from \"./page-expression\";\nimport { analyzePageBindingDependencies } from \"./page-binding-dependencies\";\nimport { DeclarativeDiagnosticSchema } from \"./declarative-diagnostic\";\nexport { analyzePageBindingDependencies } from \"./page-binding-dependencies\";\nexport const DECLARATIVE_CONTROL_SCHEMA_VERSION = 1;\nconst uniqueArray = <T>(\n  values: readonly T[],\n  identity: (value: T) => string,\n): string | undefined => {\n  const seen = new Set<string>();\n  for (const value of values) {\n    const key = identity(value);\n    if (seen.has(key)) return key;\n    seen.add(key);\n  }\n  return undefined;\n};\nconst exactRevisionRef = (\n  left: z.infer<typeof RevisionRefSchema>,\n  right: z.infer<typeof RevisionRefSchema>,\n): boolean =>\n  stableRefIdentity(left) === stableRefIdentity(right) &&\n  left.revision === right.revision &&\n  left.schemaVersion === right.schemaVersion &&\n  left.contentHash === right.contentHash;\nexport const I18nTextSchema = z\n  .object({\n    defaultLocale: LocaleIdentifierSchema,\n    values: z.record(LocaleIdentifierSchema, z.string().trim().min(1)),\n  })\n  .strict()\n  .superRefine((value, context) => {\n    if (\n      !Object.prototype.hasOwnProperty.call(value.values, value.defaultLocale)\n    ) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"values\", value.defaultLocale],\n        message: \"I18nText values must contain the default locale.\",\n      });\n    }\n  });\nexport const ScopedIdentityRefSchema = z\n  .object({\n    kind: ContractIdentifierSchema,\n    id: ContractIdentifierSchema,\n    ownerRepo: ContractIdentifierSchema,\n  })\n  .strict();\nexport const TenantScopeSchema = z\n  .object({\n    tenantRef: ScopedIdentityRefSchema,\n    dataSpaceRef: ScopedIdentityRefSchema,\n    teamRef: ScopedIdentityRefSchema.optional(),\n  })\n  .strict()\n  .superRefine((value, context) => {\n    const expectedKinds = [\n      [\"tenantRef\", value.tenantRef, \"tenant\"],\n      [\"dataSpaceRef\", value.dataSpaceRef, \"data-space\"],\n      [\"teamRef\", value.teamRef, \"team\"],\n    ] as const;\n    expectedKinds.forEach(([field, reference, expectedKind]) => {\n      if (reference && reference.kind !== expectedKind) {\n        context.addIssue({\n          code: \"custom\",\n          path: [field, \"kind\"],\n          message: `${field} must reference ${expectedKind}.`,\n        });\n      }\n    });\n  });\nexport const ReferenceVisibilitySchema = z.enum([\"tenant\", \"global\", \"public\"]);\nconst StableRefShape = {\n  kind: ContractIdentifierSchema,\n  id: ContractIdentifierSchema,\n  ownerRepo: ContractIdentifierSchema,\n  visibility: ReferenceVisibilitySchema,\n  tenantScope: TenantScopeSchema.optional(),\n};\nconst validateReferenceScope = (\n  value: {\n    visibility: z.infer<typeof ReferenceVisibilitySchema>;\n    tenantScope?: z.infer<typeof TenantScopeSchema>;\n  },\n  context: z.RefinementCtx,\n) => {\n  if (value.visibility === \"tenant\" && !value.tenantScope) {\n    context.addIssue({\n      code: \"custom\",\n      path: [\"tenantScope\"],\n      message: \"Tenant references require an explicit tenant scope.\",\n    });\n  }\n  if (value.visibility !== \"tenant\" && value.tenantScope) {\n    context.addIssue({\n      code: \"custom\",\n      path: [\"tenantScope\"],\n      message: \"Global and public references cannot carry a tenant scope.\",\n    });\n  }\n};\nexport const StableRefSchema = z\n  .object(StableRefShape)\n  .strict()\n  .superRefine(validateReferenceScope);\nexport const RevisionRefSchema = z\n  .object({\n    ...StableRefShape,\n    revision: z.number().int().positive(),\n    schemaVersion: ContractVersionSchema,\n    contentHash: Sha256Schema,\n  })\n  .strict()\n  .superRefine(validateReferenceScope);\nconst scopedIdentityKey = (\n  reference: z.infer<typeof ScopedIdentityRefSchema>,\n): string => `${reference.kind}:${reference.id}:${reference.ownerRepo}`;\nconst tenantScopeKey = (scope: z.infer<typeof TenantScopeSchema>): string =>\n  `${scopedIdentityKey(scope.tenantRef)}:${scopedIdentityKey(scope.dataSpaceRef)}:${scope.teamRef ? scopedIdentityKey(scope.teamRef) : \"\"}`;\nconst stableRefIdentity = (\n  reference: z.infer<typeof StableRefSchema>,\n): string =>\n  `${reference.visibility}:${reference.tenantScope ? tenantScopeKey(reference.tenantScope) : \"\"}:${reference.kind}:${reference.id}:${reference.ownerRepo}`;\nconst validateTenantCompatibleReference = (\n  reference: z.infer<typeof StableRefSchema>,\n  tenantScope: z.infer<typeof TenantScopeSchema>,\n  path: (string | number)[],\n  context: z.RefinementCtx,\n) => {\n  if (\n    reference.visibility === \"tenant\" &&\n    reference.tenantScope &&\n    tenantScopeKey(reference.tenantScope) !== tenantScopeKey(tenantScope)\n  ) {\n    context.addIssue({\n      code: \"custom\",\n      path: [...path, \"tenantScope\"],\n      message: \"Reference belongs to another tenant scope.\",\n    });\n  }\n};\nexport const StableRefAliasSchema = z\n  .object({\n    aliasRef: StableRefSchema,\n    canonicalRef: StableRefSchema,\n    validFrom: IsoDateTimeSchema,\n    validUntil: IsoDateTimeSchema.nullable(),\n    evidenceRef: RevisionRefSchema,\n  })\n  .strict()\n  .superRefine((value, context) => {\n    if (value.aliasRef.kind !== value.canonicalRef.kind) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"canonicalRef\", \"kind\"],\n        message: \"Alias and canonical references must have the same kind.\",\n      });\n    }\n    if (value.validUntil && value.validUntil <= value.validFrom) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"validUntil\"],\n        message: \"Alias validUntil must be later than validFrom.\",\n      });\n    }\n  });\nexport const StableRefAliasMapSchema = z\n  .object({\n    contract: z.literal(\"StableRefAliasMap\"),\n    schemaVersion: z.literal(DECLARATIVE_CONTROL_SCHEMA_VERSION),\n    tenantScope: TenantScopeSchema,\n    aliases: z.array(StableRefAliasSchema),\n    contentHash: Sha256Schema,\n  })\n  .strict()\n  .superRefine((value, context) => {\n    const duplicate = uniqueArray(value.aliases, (entry) =>\n      stableRefIdentity(entry.aliasRef),\n    );\n    if (duplicate)\n      context.addIssue({\n        code: \"custom\",\n        path: [\"aliases\"],\n        message: `Duplicate alias reference: ${duplicate}`,\n      });\n  });\nexport const DeclarativeLifecycleSchema = z.enum([\n  \"active\",\n  \"deprecated\",\n  \"retired\",\n]);\nexport const ProductSurfaceSchema = z.enum([\"studio\", \"kernel\"]);\nexport const DeclarativeShellHeaderChromeSchema = z.discriminatedUnion(\n  \"enabled\",\n  [\n    z.object({ enabled: z.literal(false) }).strict(),\n    z\n      .object({\n        enabled: z.literal(true),\n        navigationPlacement: z.enum([\n          \"studio.headbar.primary\",\n          \"kernel.primary\",\n        ]),\n      })\n      .strict(),\n  ],\n);\nexport const DeclarativeShellSurfaceChromeSchema = z\n  .object({\n    surface: ProductSurfaceSchema,\n    header: DeclarativeShellHeaderChromeSchema,\n  })\n  .strict()\n  .superRefine((value, context) => {\n    if (!value.header.enabled) return;\n    const expectedPlacement =\n      value.surface === \"studio\" ? \"studio.headbar.primary\" : \"kernel.primary\";\n    if (value.header.navigationPlacement !== expectedPlacement) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"header\", \"navigationPlacement\"],\n        message: `The ${value.surface} shell header must use its governed primary Navigation placement.`,\n      });\n    }\n  });\nexport const DeclarativeRuntimeShellDescriptorSchema = z\n  .object({\n    shellRevisionRef: RevisionRefSchema,\n    header: DeclarativeShellHeaderChromeSchema,\n  })\n  .strict()\n  .superRefine((value, context) => {\n    if (value.shellRevisionRef.kind !== \"shell\") {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"shellRevisionRef\", \"kind\"],\n        message: \"Runtime shell descriptors require an exact Shell revision.\",\n      });\n    }\n  });\nconst GroupRefSchema = StableRefSchema.superRefine((value, context) => {\n  if (value.kind !== \"group\")\n    context.addIssue({\n      code: \"custom\",\n      path: [\"kind\"],\n      message: \"Access group references must use kind group.\",\n    });\n});\nconst AccessConditionRefSchema = RevisionRefSchema.superRefine(\n  (value, context) => {\n    if (value.kind !== \"access-condition\") {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"kind\"],\n        message: \"Access condition references must use kind access-condition.\",\n      });\n    }\n  },\n);\nexport const AccessPolicySchema = z\n  .object({\n    authenticated: z.boolean(),\n    groupAllOf: z.array(GroupRefSchema),\n    groupAnyOf: z.array(GroupRefSchema),\n    permissionAllOf: z.array(ContractIdentifierSchema),\n    permissionAnyOf: z.array(ContractIdentifierSchema),\n    conditionAllOf: z.array(AccessConditionRefSchema),\n  })\n  .strict()\n  .superRefine((value, context) => {\n    const checks: Array<\n      [string, readonly unknown[], (candidate: unknown) => string]\n    > = [\n      [\n        \"groupAllOf\",\n        value.groupAllOf,\n        (candidate) =>\n          stableRefIdentity(candidate as z.infer<typeof StableRefSchema>),\n      ],\n      [\n        \"groupAnyOf\",\n        value.groupAnyOf,\n        (candidate) =>\n          stableRefIdentity(candidate as z.infer<typeof StableRefSchema>),\n      ],\n      [\"permissionAllOf\", value.permissionAllOf, String],\n      [\"permissionAnyOf\", value.permissionAnyOf, String],\n      [\n        \"conditionAllOf\",\n        value.conditionAllOf,\n        (candidate) =>\n          `${stableRefIdentity(candidate as z.infer<typeof StableRefSchema>)}@${(candidate as z.infer<typeof RevisionRefSchema>).revision}`,\n      ],\n    ];\n    checks.forEach(([field, values, identity]) => {\n      if (uniqueArray(values, identity))\n        context.addIssue({\n          code: \"custom\",\n          path: [field],\n          message: `${field} entries must be unique.`,\n        });\n    });\n  });\n/**\n * A finite set of permission conjunctions. An identity is authorized when it\n * satisfies every permission in at least one alternative. This is deliberately\n * separate from AccessPolicy: it models a versioned rollout compatibility\n * bridge such as `new-permission OR (legacy-a AND legacy-b)` without turning\n * individual legacy permissions into broad aliases.\n */\nexport const PermissionAlternativePolicySchema = z\n  .object({\n    contract: z.literal(\"PermissionAlternativePolicy\"),\n    schemaVersion: z.literal(DECLARATIVE_CONTROL_SCHEMA_VERSION),\n    policyId: ContractIdentifierSchema,\n    alternatives: z.array(z.array(ContractIdentifierSchema).min(1)).min(1),\n    retirementGate: z\n      .object({\n        capability: ContractIdentifierSchema,\n        notBefore: IsoDateTimeSchema.optional(),\n      })\n      .strict()\n      .optional(),\n  })\n  .strict()\n  .superRefine((value, context) => {\n    const canonical = value.alternatives.map((set) => [...new Set(set)].sort());\n    canonical.forEach((set, index) => {\n      if (set.length !== value.alternatives[index].length) {\n        context.addIssue({\n          code: \"custom\",\n          path: [\"alternatives\", index],\n          message:\n            \"A permission alternative cannot contain duplicate permissions.\",\n        });\n      }\n    });\n    const identities = canonical.map((set) => set.join(\"\\0\"));\n    if (new Set(identities).size !== identities.length) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"alternatives\"],\n        message: \"Permission alternatives must be unique.\",\n      });\n    }\n  });\nexport const ManagementAccessSchema = z\n  .object({\n    edit: AccessPolicySchema,\n    preview: AccessPolicySchema,\n    publish: AccessPolicySchema,\n    deactivate: AccessPolicySchema,\n    rollback: AccessPolicySchema,\n    retire: AccessPolicySchema,\n  })\n  .strict();\nexport const RoutePathTemplateSchema = z\n  .string()\n  .trim()\n  .regex(/^\\/(?!\\/)/, \"Expected an application-relative path.\")\n  .superRefine((value, context) => {\n    if (value.includes(\"?\") || value.includes(\"#\") || value.includes(\"\\\\\")) {\n      context.addIssue({\n        code: \"custom\",\n        message:\n          \"Route paths cannot contain query strings, fragments, or backslashes.\",\n      });\n    }\n    if (\n      value.split(\"/\").some((segment) => segment === \".\" || segment === \"..\")\n    ) {\n      context.addIssue({\n        code: \"custom\",\n        message: \"Route paths cannot contain traversal segments.\",\n      });\n    }\n    if (/^[a-z][a-z0-9+.-]*:/i.test(value) || value.includes(\"://\")) {\n      context.addIssue({\n        code: \"custom\",\n        message: \"Route paths cannot contain a scheme or host.\",\n      });\n    }\n  });\nexport const RouteSpaceParameterSchema = z\n  .object({\n    name: ContractIdentifierSchema,\n    type: z.enum([\"identifier\", \"integer\", \"slug\", \"uuid\"]),\n    required: z.boolean(),\n  })\n  .strict();\nexport const RouteSpaceSchema = z\n  .object({\n    contract: z.literal(\"RouteSpace\"),\n    schemaVersion: z.literal(DECLARATIVE_CONTROL_SCHEMA_VERSION),\n    routeSpaceId: ContractIdentifierSchema,\n    supportedSurface: ProductSurfaceSchema,\n    basePath: RoutePathTemplateSchema,\n    caseSensitive: z.boolean(),\n    trailingSlash: z.enum([\"preserve\", \"remove\", \"require\"]),\n    reservedPaths: z.array(RoutePathTemplateSchema),\n    parameters: z.array(RouteSpaceParameterSchema),\n  })\n  .strict()\n  .superRefine((value, context) => {\n    if (uniqueArray(value.parameters, (parameter) => parameter.name)) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"parameters\"],\n        message: \"RouteSpace parameter names must be unique.\",\n      });\n    }\n    if (uniqueArray(value.reservedPaths, (path) => path)) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"reservedPaths\"],\n        message: \"RouteSpace reserved paths must be unique.\",\n      });\n    }\n  });\nconst RouteClaimBaseSchema = z\n  .object({\n    kind: z.enum([\"canonical\", \"alias\", \"redirect\"]),\n    routeSpaceRevisionRef: RevisionRefSchema,\n    pathTemplate: RoutePathTemplateSchema,\n    redirectTargetRef: StableRefSchema.optional(),\n  })\n  .strict()\n  .superRefine((value, context) => {\n    if (value.routeSpaceRevisionRef.kind !== \"route-space\") {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"routeSpaceRevisionRef\", \"kind\"],\n        message: \"Route claims must reference a route-space revision.\",\n      });\n    }\n    if (value.kind === \"redirect\" && !value.redirectTargetRef) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"redirectTargetRef\"],\n        message: \"Redirect claims require a governed target reference.\",\n      });\n    }\n    if (value.kind !== \"redirect\" && value.redirectTargetRef) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"redirectTargetRef\"],\n        message: \"Only redirect claims may declare redirectTargetRef.\",\n      });\n    }\n  });\n/**\n * Read compatibility for schemaVersion 1 Page and Workbench records written\n * before route claims carried their owning product surface. New declarations\n * must use RouteClaimSchema; compilers materialize this legacy form only from\n * the exact pinned RouteSpace surface.\n */\nexport const LegacyRouteClaimSchema = RouteClaimBaseSchema;\nexport const RouteClaimSchema = RouteClaimBaseSchema.safeExtend({\n  surface: ProductSurfaceSchema,\n}).strict();\nconst LegacyCompiledRouteMatcherSchema = z\n  .object({\n    caseSensitive: z.boolean(),\n    trailingSlash: z.enum([\"preserve\", \"remove\", \"require\"]),\n    parameters: z.array(RouteSpaceParameterSchema),\n  })\n  .strict();\nexport const CompiledRouteMatcherSchema =\n  LegacyCompiledRouteMatcherSchema.safeExtend({\n    surface: ProductSurfaceSchema,\n  }).strict();\nexport const CompiledRouteClaimSchema = RouteClaimSchema.safeExtend({\n  normalizedPath: RoutePathTemplateSchema,\n  matcher: CompiledRouteMatcherSchema,\n})\n  .strict()\n  .superRefine((value, context) => {\n    if (value.matcher.surface !== value.surface) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"matcher\", \"surface\"],\n        message: \"A compiled route matcher must match its claim surface.\",\n      });\n    }\n  });\nconst LegacyCompiledRouteClaimSchema = LegacyRouteClaimSchema.safeExtend({\n  normalizedPath: RoutePathTemplateSchema,\n  matcher: LegacyCompiledRouteMatcherSchema,\n}).strict();\nconst validateReleaseRouteSurface = (\n  target: {\n    surface: z.infer<typeof ProductSurfaceSchema>;\n    routeClaim:\n      | z.infer<typeof CompiledRouteClaimSchema>\n      | z.infer<typeof LegacyCompiledRouteClaimSchema>;\n  },\n  context: z.RefinementCtx,\n) => {\n  const claimSurface =\n    \"surface\" in target.routeClaim ? target.routeClaim.surface : undefined;\n  const matcherSurface =\n    \"surface\" in target.routeClaim.matcher\n      ? target.routeClaim.matcher.surface\n      : undefined;\n  if (claimSurface === undefined && matcherSurface === undefined) return;\n  if (claimSurface === target.surface && matcherSurface === target.surface)\n    return;\n  context.addIssue({\n    code: \"custom\",\n    path: [\"target\", \"routeClaim\"],\n    message:\n      \"A compiled Release route claim must either be fully legacy or bind both claim and matcher to the target surface.\",\n  });\n};\nexport const ReleaseOperationSchema = z.enum([\n  \"activate\",\n  \"deactivate\",\n  \"rollback\",\n]);\nexport const ReleaseDependencyRoleSchema = z.enum([\n  \"route-space\",\n  \"shell\",\n  \"page\",\n  \"page-release\",\n  \"workbench\",\n  \"workbench-release\",\n  \"navigation\",\n  \"navigation-release\",\n  \"menu-action\",\n  \"application-menu-catalog\",\n  \"capability\",\n  \"provider\",\n  \"ontology-definition\",\n  \"projection-spec\",\n  \"query-definition\",\n  \"view\",\n  \"projection\",\n  \"action\",\n  \"action-program\",\n  \"token\",\n  \"schema\",\n  \"compiler\",\n  \"workflow\",\n  \"agent\",\n  \"built-in-application\",\n  \"design\",\n  \"layout-policy\",\n  \"performance-budget\",\n  \"observation-policy\",\n]);\nconst DependencyKindByRole: Readonly<\n  Record<z.infer<typeof ReleaseDependencyRoleSchema>, string>\n> = {\n  \"route-space\": \"route-space\",\n  shell: \"shell\",\n  page: \"page\",\n  \"page-release\": \"page-release\",\n  workbench: \"workbench\",\n  \"workbench-release\": \"workbench-release\",\n  navigation: \"navigation\",\n  \"navigation-release\": \"navigation-release\",\n  \"menu-action\": \"menu-action\",\n  \"application-menu-catalog\": \"application-menu-catalog\",\n  capability: \"capability\",\n  provider: \"view-provider\",\n  \"ontology-definition\": \"ontology-definition\",\n  \"projection-spec\": \"projection-spec\",\n  \"query-definition\": \"domain-query-definition\",\n  view: \"view\",\n  projection: \"projection\",\n  action: \"domain-command\",\n  \"action-program\": \"action-program\",\n  token: \"design-token\",\n  schema: \"schema\",\n  compiler: \"compiler\",\n  workflow: \"workflow\",\n  agent: \"agent\",\n  \"built-in-application\": \"built-in-application\",\n  design: \"design\",\n  \"layout-policy\": \"layout-policy\",\n  \"performance-budget\": \"performance-budget\",\n  \"observation-policy\": \"observation-policy\",\n};\nexport const ReleaseDependencySchema = z\n  .object({\n    role: ReleaseDependencyRoleSchema,\n    revisionRef: RevisionRefSchema,\n  })\n  .strict()\n  .superRefine((value, context) => {\n    const expectedKind = DependencyKindByRole[value.role];\n    if (value.revisionRef.kind !== expectedKind) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"revisionRef\", \"kind\"],\n        message: `Dependency role ${value.role} requires reference kind ${expectedKind}.`,\n      });\n    }\n  });\nexport const ReleaseValidationSchema = z\n  .object({\n    result: z.enum([\"pass\", \"fail\"]),\n    inputHash: Sha256Schema,\n    diagnosticRefs: z.array(RevisionRefSchema),\n  })\n  .strict();\nexport const ReleaseEvidenceSchema = z\n  .object({\n    publicationPlanRef: StableRefSchema,\n    expectedHeadRevisionRef: RevisionRefSchema.nullable(),\n    validation: ReleaseValidationSchema,\n    approvalPolicyRevisionRef: RevisionRefSchema,\n    approvalDecisionRevisionRef: RevisionRefSchema,\n    actorRef: StableRefSchema,\n    reason: z.string().trim().min(1).max(4096),\n    idempotencyKey: ContractIdentifierSchema,\n    occurredAt: IsoDateTimeSchema,\n    evidenceRefs: z.array(RevisionRefSchema).min(1),\n  })\n  .strict()\n  .superRefine((value, context) => {\n    const expectedKinds: Array<\n      [string, z.infer<typeof StableRefSchema>, string]\n    > = [\n      [\"publicationPlanRef\", value.publicationPlanRef, \"publication-plan\"],\n      [\n        \"approvalPolicyRevisionRef\",\n        value.approvalPolicyRevisionRef,\n        \"approval-policy\",\n      ],\n      [\n        \"approvalDecisionRevisionRef\",\n        value.approvalDecisionRevisionRef,\n        \"approval-decision\",\n      ],\n      [\"actorRef\", value.actorRef, \"actor\"],\n    ];\n    expectedKinds.forEach(([field, reference, expectedKind]) => {\n      if (reference.kind !== expectedKind) {\n        context.addIssue({\n          code: \"custom\",\n          path: [field, \"kind\"],\n          message: `${field} must reference ${expectedKind}.`,\n        });\n      }\n    });\n    value.evidenceRefs.forEach((reference, index) => {\n      if (reference.kind !== \"evidence\")\n        context.addIssue({\n          code: \"custom\",\n          path: [\"evidenceRefs\", index, \"kind\"],\n          message: \"Release evidenceRefs must reference evidence revisions.\",\n        });\n    });\n  });\nexport const PublicationPlanOperationSchema = z\n  .object({\n    releaseKind: z.enum([\n      \"page-release\",\n      \"workbench-release\",\n      \"navigation-release\",\n    ]),\n    releaseSlotId: ContractIdentifierSchema,\n    releaseRevisionRef: RevisionRefSchema,\n    expectedHeadRevisionRef: RevisionRefSchema.nullable(),\n  })\n  .strict()\n  .superRefine((value, context) => {\n    if (\n      value.releaseRevisionRef.kind !== value.releaseKind ||\n      value.releaseRevisionRef.id !== value.releaseSlotId\n    ) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"releaseRevisionRef\"],\n        message:\n          \"Publication Plan operation must pin the exact release slot revision.\",\n      });\n    }\n    if (\n      value.expectedHeadRevisionRef &&\n      (value.expectedHeadRevisionRef.kind !== value.releaseKind ||\n        value.expectedHeadRevisionRef.id !== value.releaseSlotId)\n    ) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"expectedHeadRevisionRef\"],\n        message: \"Expected head must identify the same release slot.\",\n      });\n    }\n  });\nexport const PublicationPlanSchema = z\n  .object({\n    contract: z.literal(\"PublicationPlan\"),\n    schemaVersion: z.literal(DECLARATIVE_CONTROL_SCHEMA_VERSION),\n    planId: ContractIdentifierSchema,\n    tenantScope: TenantScopeSchema,\n    environmentRef: StableRefSchema,\n    operations: z.array(PublicationPlanOperationSchema).min(1),\n    validation: ReleaseValidationSchema,\n    approvalPolicyRevisionRef: RevisionRefSchema,\n    approvalDecisionRevisionRef: RevisionRefSchema,\n    actorRef: StableRefSchema,\n    idempotencyKey: ContractIdentifierSchema,\n    evidenceRefs: z.array(RevisionRefSchema).min(1),\n    createdAt: IsoDateTimeSchema,\n  })\n  .strict()\n  .superRefine((value, context) => {\n    if (value.environmentRef.kind !== \"environment\")\n      context.addIssue({\n        code: \"custom\",\n        path: [\"environmentRef\", \"kind\"],\n        message: \"Publication Plan requires an environment reference.\",\n      });\n    validateTenantCompatibleReference(\n      value.environmentRef,\n      value.tenantScope,\n      [\"environmentRef\"],\n      context,\n    );\n    const governedRefs: Array<\n      [string, z.infer<typeof StableRefSchema>, string]\n    > = [\n      [\n        \"approvalPolicyRevisionRef\",\n        value.approvalPolicyRevisionRef,\n        \"approval-policy\",\n      ],\n      [\n        \"approvalDecisionRevisionRef\",\n        value.approvalDecisionRevisionRef,\n        \"approval-decision\",\n      ],\n      [\"actorRef\", value.actorRef, \"actor\"],\n    ];\n    governedRefs.forEach(([field, reference, expectedKind]) => {\n      if (reference.kind !== expectedKind)\n        context.addIssue({\n          code: \"custom\",\n          path: [field, \"kind\"],\n          message: `${field} must reference ${expectedKind}.`,\n        });\n      validateTenantCompatibleReference(\n        reference,\n        value.tenantScope,\n        [field],\n        context,\n      );\n    });\n    value.operations.forEach((operation, index) => {\n      [operation.releaseRevisionRef, operation.expectedHeadRevisionRef].forEach(\n        (reference, referenceIndex) => {\n          if (\n            reference?.tenantScope &&\n            tenantScopeKey(reference.tenantScope) !==\n              tenantScopeKey(value.tenantScope)\n          ) {\n            const field =\n              referenceIndex === 0\n                ? \"releaseRevisionRef\"\n                : \"expectedHeadRevisionRef\";\n            context.addIssue({\n              code: \"custom\",\n              path: [\"operations\", index, field, \"tenantScope\"],\n              message:\n                \"Publication Plan operation belongs to another tenant scope.\",\n            });\n          }\n        },\n      );\n    });\n    value.evidenceRefs.forEach((reference, index) => {\n      if (reference.kind !== \"evidence\")\n        context.addIssue({\n          code: \"custom\",\n          path: [\"evidenceRefs\", index, \"kind\"],\n          message:\n            \"Publication Plan evidenceRefs must reference evidence revisions.\",\n        });\n      validateTenantCompatibleReference(\n        reference,\n        value.tenantScope,\n        [\"evidenceRefs\", index],\n        context,\n      );\n    });\n    if (\n      uniqueArray(\n        value.operations,\n        (operation) => `${operation.releaseKind}:${operation.releaseSlotId}`,\n      )\n    ) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"operations\"],\n        message: \"Publication Plan release slots must be unique.\",\n      });\n    }\n  });\nconst IdentitySchema = z\n  .object({\n    name: I18nTextSchema,\n    description: I18nTextSchema.optional(),\n    tags: z.array(ContractIdentifierSchema).default([]),\n  })\n  .strict();\nexport const WorkbenchIdentitySchema = IdentitySchema.extend({\n  iconRef: StableRefSchema.optional(),\n}).strict();\nexport const LegacySlotRestorationSchema = z\n  .object({\n    legacyAdapterRevisionRef: RevisionRefSchema,\n    sourceRevisionRef: RevisionRefSchema,\n    inspectedSourceContentHash: Sha256Schema,\n  })\n  .strict()\n  .superRefine((value, context) => {\n    if (\n      value.sourceRevisionRef.contentHash !== value.inspectedSourceContentHash\n    ) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"inspectedSourceContentHash\"],\n        message:\n          \"Legacy restoration must pin the exact inspected source revision hash.\",\n      });\n    }\n  });\n/**\n * Exact, inspect-produced authority for taking over one predeclared legacy\n * route. It is not a general reserved-route bypass: compiler validation binds\n * it to one canonical claim, one target resource and the exact inspected\n * source/adaptor revisions.\n */\nexport const LegacyRouteTakeoverAuthorizationSchema = z\n  .object({\n    contract: z.literal(\"LegacyRouteTakeoverAuthorization\"),\n    schemaVersion: z.literal(DECLARATIVE_CONTROL_SCHEMA_VERSION),\n    routeSpaceRevisionRef: RevisionRefSchema,\n    normalizedPath: RoutePathTemplateSchema,\n    legacyAdapterRevisionRef: RevisionRefSchema,\n    sourceRevisionRef: RevisionRefSchema,\n    inspectedSourceContentHash: Sha256Schema,\n    targetResourceRef: StableRefSchema,\n    workbenchCatalogDefaults: z\n      .object({ order: z.number().int(), isDefaultCandidate: z.boolean() })\n      .strict()\n      .optional(),\n    contentHash: Sha256Schema,\n  })\n  .strict()\n  .superRefine((value, context) => {\n    if (value.routeSpaceRevisionRef.kind !== \"route-space\") {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"routeSpaceRevisionRef\", \"kind\"],\n        message: \"A route takeover must pin a RouteSpace revision.\",\n      });\n    }\n    if (value.legacyAdapterRevisionRef.kind !== \"legacy-route-adapter\") {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"legacyAdapterRevisionRef\", \"kind\"],\n        message: \"A route takeover must pin a legacy-route-adapter revision.\",\n      });\n    }\n    if (![\"page\", \"workbench\"].includes(value.targetResourceRef.kind)) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"targetResourceRef\", \"kind\"],\n        message: \"A route takeover target must be a Page or Workbench.\",\n      });\n    }\n    if (\n      value.sourceRevisionRef.contentHash !== value.inspectedSourceContentHash\n    ) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"inspectedSourceContentHash\"],\n        message:\n          \"A route takeover must pin the exact inspected legacy source hash.\",\n      });\n    }\n    if (\n      value.targetResourceRef.kind === \"workbench\" &&\n      !value.workbenchCatalogDefaults\n    ) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"workbenchCatalogDefaults\"],\n        message:\n          \"A Workbench takeover must preserve exact legacy catalog order and default semantics.\",\n      });\n    }\n    if (\n      value.targetResourceRef.kind === \"page\" &&\n      value.workbenchCatalogDefaults\n    ) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"workbenchCatalogDefaults\"],\n        message:\n          \"Page takeover provenance cannot carry Workbench catalog defaults.\",\n      });\n    }\n  });\n/** Authoring-only route evidence. Runtime compilation deliberately strips the takeover proof. */\nexport const DeclarativeRouteClaimSchema = RouteClaimSchema.safeExtend({\n  legacyRouteTakeoverAuthorization:\n    LegacyRouteTakeoverAuthorizationSchema.optional(),\n}).strict();\nconst LegacyDeclarativeRouteClaimSchema = LegacyRouteClaimSchema.safeExtend({\n  legacyRouteTakeoverAuthorization:\n    LegacyRouteTakeoverAuthorizationSchema.optional(),\n}).strict();\nconst validateDeclaredRouteSurfaces = (\n  supportedSurfaces: readonly z.infer<typeof ProductSurfaceSchema>[],\n  routeClaims: readonly z.infer<\n    | typeof LegacyDeclarativeRouteClaimSchema\n    | typeof DeclarativeRouteClaimSchema\n  >[],\n  context: z.RefinementCtx,\n) => {\n  if (uniqueArray(supportedSurfaces, (surface) => surface)) {\n    context.addIssue({\n      code: \"custom\",\n      path: [\"supportedSurfaces\"],\n      message: \"Supported surfaces must be unique.\",\n    });\n  }\n  const explicitClaims = routeClaims.filter(\n    (claim): claim is z.infer<typeof DeclarativeRouteClaimSchema> =>\n      \"surface\" in claim,\n  );\n  if (explicitClaims.length > 0 && explicitClaims.length < routeClaims.length) {\n    context.addIssue({\n      code: \"custom\",\n      path: [\"routeClaims\"],\n      message:\n        \"Route claims must either all declare surface or all omit it for legacy compatibility.\",\n    });\n    return;\n  }\n  routeClaims.forEach((claim, index) => {\n    if (\"surface\" in claim && !supportedSurfaces.includes(claim.surface)) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"routeClaims\", index, \"surface\"],\n        message: \"Route claim surface must be declared by supportedSurfaces.\",\n      });\n    }\n  });\n  if (explicitClaims.length !== routeClaims.length) return;\n  supportedSurfaces.forEach((surface) => {\n    const canonicalCount = explicitClaims.filter(\n      (claim) => claim.surface === surface && claim.kind === \"canonical\",\n    ).length;\n    if (canonicalCount !== 1) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"routeClaims\"],\n        message: `Surface ${surface} requires exactly one canonical route claim.`,\n      });\n    }\n  });\n};\nconst ReleaseBaseShape = {\n  schemaVersion: z.literal(DECLARATIVE_CONTROL_SCHEMA_VERSION),\n  releaseSlotId: ContractIdentifierSchema,\n  tenantScope: TenantScopeSchema,\n  operation: ReleaseOperationSchema,\n  legacyRestoration: LegacySlotRestorationSchema.optional(),\n  dependencySnapshot: z.array(ReleaseDependencySchema),\n  evidence: ReleaseEvidenceSchema,\n};\nconst validateLegacyRestoration = (\n  value: {\n    operation: z.infer<typeof ReleaseOperationSchema>;\n    legacyRestoration?: z.infer<typeof LegacySlotRestorationSchema>;\n  },\n  expectedAdapterKind: string,\n  context: z.RefinementCtx,\n) => {\n  if (value.operation === \"activate\" && value.legacyRestoration) {\n    context.addIssue({\n      code: \"custom\",\n      path: [\"legacyRestoration\"],\n      message:\n        \"An active declarative Release cannot also restore a legacy adapter.\",\n    });\n  }\n  if (\n    value.legacyRestoration?.legacyAdapterRevisionRef.kind !== undefined &&\n    value.legacyRestoration.legacyAdapterRevisionRef.kind !==\n      expectedAdapterKind\n  ) {\n    context.addIssue({\n      code: \"custom\",\n      path: [\"legacyRestoration\", \"legacyAdapterRevisionRef\", \"kind\"],\n      message: `Legacy restoration requires adapter kind ${expectedAdapterKind}.`,\n    });\n  }\n};\nconst validateDependencySnapshot = (\n  snapshot: readonly z.infer<typeof ReleaseDependencySchema>[],\n  context: z.RefinementCtx,\n) => {\n  const duplicate = uniqueArray(\n    snapshot,\n    (dependency) =>\n      `${dependency.role}:${stableRefIdentity(dependency.revisionRef)}@${dependency.revisionRef.revision}`,\n  );\n  if (duplicate)\n    context.addIssue({\n      code: \"custom\",\n      path: [\"dependencySnapshot\"],\n      message: `Duplicate dependency: ${duplicate}`,\n    });\n};\nconst validateReleaseGovernanceScope = (\n  value: {\n    releaseSlotId: string;\n    tenantScope: z.infer<typeof TenantScopeSchema>;\n    evidence: z.infer<typeof ReleaseEvidenceSchema>;\n    legacyRestoration?: z.infer<typeof LegacySlotRestorationSchema>;\n  },\n  expectedKind: \"page-release\" | \"workbench-release\" | \"navigation-release\",\n  context: z.RefinementCtx,\n) => {\n  const expectedHead = value.evidence.expectedHeadRevisionRef;\n  if (\n    expectedHead &&\n    (expectedHead.kind !== expectedKind ||\n      expectedHead.id !== value.releaseSlotId)\n  ) {\n    context.addIssue({\n      code: \"custom\",\n      path: [\"evidence\", \"expectedHeadRevisionRef\"],\n      message: \"Expected head must identify the same release slot.\",\n    });\n  }\n  if (\n    expectedHead?.tenantScope &&\n    tenantScopeKey(expectedHead.tenantScope) !==\n      tenantScopeKey(value.tenantScope)\n  ) {\n    context.addIssue({\n      code: \"custom\",\n      path: [\"evidence\", \"expectedHeadRevisionRef\", \"tenantScope\"],\n      message: \"Expected head belongs to another tenant scope.\",\n    });\n  }\n  const governedEvidenceRefs: ReadonlyArray<\n    readonly [readonly (string | number)[], z.infer<typeof StableRefSchema>]\n  > = [\n    [[\"evidence\", \"publicationPlanRef\"], value.evidence.publicationPlanRef],\n    [\n      [\"evidence\", \"approvalPolicyRevisionRef\"],\n      value.evidence.approvalPolicyRevisionRef,\n    ],\n    [\n      [\"evidence\", \"approvalDecisionRevisionRef\"],\n      value.evidence.approvalDecisionRevisionRef,\n    ],\n    [[\"evidence\", \"actorRef\"], value.evidence.actorRef],\n    ...value.evidence.validation.diagnosticRefs.map(\n      (reference, index) =>\n        [\n          [\"evidence\", \"validation\", \"diagnosticRefs\", index],\n          reference,\n        ] as const,\n    ),\n    ...value.evidence.evidenceRefs.map(\n      (reference, index) =>\n        [[\"evidence\", \"evidenceRefs\", index], reference] as const,\n    ),\n    ...(expectedHead\n      ? [[[\"evidence\", \"expectedHeadRevisionRef\"], expectedHead] as const]\n      : []),\n    ...(value.legacyRestoration\n      ? [\n          [\n            [\"legacyRestoration\", \"legacyAdapterRevisionRef\"],\n            value.legacyRestoration.legacyAdapterRevisionRef,\n          ] as const,\n          [\n            [\"legacyRestoration\", \"sourceRevisionRef\"],\n            value.legacyRestoration.sourceRevisionRef,\n          ] as const,\n        ]\n      : []),\n  ];\n  governedEvidenceRefs.forEach(([path, reference]) =>\n    validateTenantCompatibleReference(\n      reference,\n      value.tenantScope,\n      [...path],\n      context,\n    ),\n  );\n};\nexport const BindingSourceSchema = z.discriminatedUnion(\"kind\", [\n  z\n    .object({\n      kind: z.literal(\"scope-field\"),\n      path: z\n        .string()\n        .trim()\n        .min(1)\n        .max(4096)\n        .regex(/^[A-Za-z0-9_.-]+$/)\n        .refine(\n          (path) =>\n            path.split(\".\").length <= 16 &&\n            path\n              .split(\".\")\n              .every(\n                (part) =>\n                  part.length > 0 &&\n                  ![\"__proto__\", \"prototype\", \"constructor\"].includes(part),\n              ),\n          \"Scope paths require safe own members.\",\n        ),\n    })\n    .strict(),\n  z\n    .object({\n      kind: z.literal(\"binding-field\"),\n      bindingId: ContractIdentifierSchema,\n      path: z\n        .string()\n        .trim()\n        .regex(/^[A-Za-z0-9_.-]+$/),\n    })\n    .strict(),\n  z\n    .object({\n      kind: z.literal(\"constant\"),\n      value: z.union([z.string(), z.number().finite(), z.boolean(), z.null()]),\n    })\n    .strict(),\n  z\n    .object({\n      kind: z.literal(\"route-parameter\"),\n      name: ContractIdentifierSchema,\n    })\n    .strict(),\n  z\n    .object({\n      kind: z.literal(\"query-parameter\"),\n      name: ContractIdentifierSchema,\n    })\n    .strict(),\n  z\n    .object({\n      kind: z.literal(\"identity\"),\n      name: z.enum([\"tenantId\", \"teamId\", \"userId\"]),\n    })\n\n    .strict(),\n  z\n    .object({\n      kind: z.literal(\"intent-field\"),\n      path: z\n        .string()\n        .trim()\n        .regex(/^[A-Za-z0-9_.-]+$/),\n    })\n    .strict(),\n  z\n    .object({\n      kind: z.literal(\"page-state\"),\n      stateId: ContractIdentifierSchema,\n    })\n    .strict(),\n]);\nconst ExpressionBindingSourceSchema = z\n  .object({ kind: z.literal(\"expression\"), expression: PageExpressionSchema })\n  .strict()\n  .superRefine((value, context) => {\n    if (\n      collectPageExpressionReads(value.expression).some(\n        (read) => read.root === \"actions\",\n      )\n    )\n      context.addIssue({\n        code: \"custom\",\n        path: [\"expression\"],\n        message:\n          \"Action runtime state is presentation-only and cannot influence an input or state transition.\",\n      });\n  });\nconst FileFieldBindingSourceSchema = z\n  .object({\n    kind: z.literal(\"file-field\"),\n    fileInputId: ContractIdentifierSchema,\n    path: z.enum([\"fileName\", \"content\", \"canonicalUri\"]),\n  })\n  .strict();\nconst ActionFileInputSchema = z\n  .object({\n    inputId: ContractIdentifierSchema,\n    source: z.discriminatedUnion(\"kind\", [\n      z\n        .object({\n          kind: z.literal(\"page-state\"),\n          stateId: ContractIdentifierSchema,\n        })\n        .strict(),\n      z\n        .object({\n          kind: z.literal(\"intent-field\"),\n          path: z\n            .string()\n            .trim()\n            .regex(/^[A-Za-z0-9_.-]+$/),\n        })\n        .strict(),\n    ]),\n    maxBytes: z.number().int().min(1).max(5368709120),\n    upload: z.object({ purpose: FilePurposeSchema }).strict().optional(),\n    accept: z.string().min(1).max(256).optional(),\n  })\n  .strict()\n  .superRefine((value, context) => {\n    if (!value.upload && value.maxBytes > 1048576)\n      context.addIssue({\n        code: \"custom\",\n        path: [\"maxBytes\"],\n        message: \"Inline text files are limited to one MiB.\",\n      });\n  });\nconst ActionInputBindingSourceSchema = z.discriminatedUnion(\"kind\", [\n  ...BindingSourceSchema.options,\n  ExpressionBindingSourceSchema,\n  FileFieldBindingSourceSchema,\n]);\nconst InteractionBindingSourceSchema = z.discriminatedUnion(\"kind\", [\n  ExpressionBindingSourceSchema,\n  z\n    .object({\n      kind: z.literal(\"constant\"),\n      value: z.union([z.string(), z.number().finite(), z.boolean(), z.null()]),\n    })\n    .strict(),\n  z\n    .object({\n      kind: z.literal(\"intent-field\"),\n      path: z\n        .string()\n        .trim()\n        .regex(/^[A-Za-z0-9_.-]+$/),\n    })\n    .strict(),\n  z\n    .object({\n      kind: z.literal(\"result-field\"),\n      path: z\n        .string()\n        .trim()\n        .regex(/^[A-Za-z0-9_.-]+$/),\n    })\n    .strict(),\n  z\n    .object({\n      kind: z.literal(\"page-state\"),\n      stateId: ContractIdentifierSchema,\n    })\n    .strict(),\n]);\nconst PageStateComparableLiteralSchema = z.union([\n  z.string(),\n  z.number().finite(),\n  z.boolean(),\n  z.null(),\n]);\nexport const PageStateConditionSchema = z.discriminatedUnion(\"predicate\", [\n  z\n    .object({\n      stateId: ContractIdentifierSchema,\n      predicate: z.literal(\"equals\"),\n      value: PageStateComparableLiteralSchema,\n    })\n    .strict(),\n  z\n    .object({\n      stateId: ContractIdentifierSchema,\n      predicate: z.literal(\"not-equals\"),\n      value: PageStateComparableLiteralSchema,\n    })\n    .strict(),\n  z\n    .object({\n      stateId: ContractIdentifierSchema,\n      predicate: z.literal(\"truthy\"),\n    })\n    .strict(),\n]);\nexport type PageStateCondition = z.infer<typeof PageStateConditionSchema>;\nexport type PageStateActivation = {\n  operator: \"all\" | \"any\";\n  conditions: Array<PageStateCondition | PageStateActivation>;\n};\n/**\n * A recursive boolean expression over governed Page state. Keeping leaf\n * conditions inside the original `conditions` array preserves the v1 flat\n * declaration while allowing groups to be nested without a parallel DSL.\n */\nexport const PageStateActivationSchema: z.ZodType<PageStateActivation> = z.lazy(\n  () =>\n    z\n      .object({\n        operator: z.enum([\"all\", \"any\"]),\n        conditions: z\n          .array(z.union([PageStateConditionSchema, PageStateActivationSchema]))\n          .min(1),\n      })\n      .strict(),\n);\nconst forEachPageStateCondition = (\n  activation: PageStateActivation,\n  visit: (condition: PageStateCondition, path: Array<string | number>) => void,\n  path: Array<string | number> = [],\n): void => {\n  activation.conditions.forEach((candidate, index) => {\n    const candidatePath = [...path, \"conditions\", index];\n    if (\"operator\" in candidate) {\n      forEachPageStateCondition(candidate, visit, candidatePath);\n      return;\n    }\n    visit(candidate, candidatePath);\n  });\n};\nconst PageRouteValueSourceSchema = z.discriminatedUnion(\"kind\", [\n  z\n    .object({\n      kind: z.literal(\"route-parameter\"),\n      name: ContractIdentifierSchema,\n    })\n    .strict(),\n  z\n    .object({\n      kind: z.literal(\"constant\"),\n      value: z.union([z.string(), z.number().finite(), z.boolean()]),\n    })\n    .strict(),\n  z\n    .object({\n      kind: z.literal(\"page-state\"),\n      stateId: ContractIdentifierSchema,\n    })\n    .strict(),\n]);\n/**\n * Declares an ordered, state-driven route transition owned by one exact Page\n * revision. The compiler resolves targetRef to one active governed Release;\n * raw URLs and application-specific route switches are deliberately excluded.\n */\nexport const PageEntryTransitionSchema = z\n  .object({\n    browsingContext: z.enum([\"same\", \"new\"]).optional(),\n    gestureSource: z\n      .object({\n        capabilityInstanceId: ContractIdentifierSchema,\n        port: ContractIdentifierSchema,\n      })\n      .strict()\n      .optional(),\n    transitionId: ContractIdentifierSchema,\n    activation: PageStateActivationSchema,\n    targetRef: StableRefSchema,\n    pathParameters: z.record(\n      ContractIdentifierSchema,\n      PageRouteValueSourceSchema,\n    ),\n    query: z\n      .object({\n        preserve: z.boolean(),\n        remove: z.array(ContractIdentifierSchema),\n        set: z.record(ContractIdentifierSchema, PageRouteValueSourceSchema),\n      })\n      .strict(),\n  })\n  .strict()\n  .superRefine((value, context) => {\n    if ((value.browsingContext === \"new\") !== Boolean(value.gestureSource)) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"gestureSource\"],\n        message:\n          \"New-context entry transitions require an exact gesture source; same-context transitions must omit it.\",\n      });\n    }\n    if (![\"page\", \"workbench\"].includes(value.targetRef.kind)) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"targetRef\", \"kind\"],\n        message:\n          \"Page entry transitions must reference a governed Page or Workbench.\",\n      });\n    }\n    if (new Set(value.query.remove).size !== value.query.remove.length) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"query\", \"remove\"],\n        message: \"Removed query parameter names must be unique.\",\n      });\n    }\n  });\nexport const ResolvedPageEntryTransitionSchema =\n  PageEntryTransitionSchema.safeExtend({\n    targetRevisionRef: RevisionRefSchema,\n    targetReleaseRevisionRef: RevisionRefSchema.optional(),\n    targetAccessPolicy: AccessPolicySchema,\n    targetRouteClaim: CompiledRouteClaimSchema,\n  }).strict();\nexport const LegacyBrowserPreferenceImportSchema = z\n  .object({\n    storageKey: z.string().trim().min(1).max(256),\n    jsonPath: z\n      .array(\n        z.union([\n          z.string().trim().min(1).max(128),\n          z.object({ stateId: ContractIdentifierSchema }).strict(),\n        ]),\n      )\n      .min(1)\n      .max(16)\n      .optional(),\n    valueType: z.enum([\"string\", \"number\", \"boolean-01\", \"json\"]),\n  })\n  .strict();\nexport const PageStateDefinitionSchema = z\n  .object({\n    stateId: ContractIdentifierSchema,\n    scopeNodeId: ContractIdentifierSchema.optional(),\n    initialValue: PageExpressionSchema.optional(),\n    schemaRevisionRef: RevisionRefSchema,\n    defaultValue: JsonValueSchema.optional(),\n    persistence: z.enum([\n      \"none\",\n      \"session\",\n      \"url\",\n      \"tenant-preference\",\n      \"url-with-tenant-preference\",\n    ]),\n    urlWriteback: z.enum([\"synchronize\", \"never\"]).optional(),\n    preferencePartitionStateId: ContractIdentifierSchema.optional(),\n    legacyBrowserPreferenceImport:\n      LegacyBrowserPreferenceImportSchema.optional(),\n  })\n  .strict()\n  .superRefine((value, context) => {\n    if (value.scopeNodeId && value.persistence !== \"none\")\n      context.addIssue({\n        code: \"custom\",\n        path: [\"persistence\"],\n        message:\n          \"Repeated instance state must not persist outside its instance.\",\n      });\n    if (\n      value.initialValue &&\n      !value.scopeNodeId &&\n      (value.persistence !== \"none\" ||\n        value.initialValue.kind !== \"read\" ||\n        value.initialValue.root !== \"state\" ||\n        value.initialValue.path.length !== 1)\n    )\n      context.addIssue({\n        code: \"custom\",\n        path: [\"initialValue\"],\n        message:\n          \"Root initialization must directly read one persisted Page state into non-persistent state.\",\n      });\n    if (value.schemaRevisionRef.kind !== \"schema\") {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"schemaRevisionRef\", \"kind\"],\n        message: \"Page state must pin an exact schema revision.\",\n      });\n    }\n    if (\n      value.preferencePartitionStateId !== undefined &&\n      value.persistence !== \"tenant-preference\" &&\n      value.persistence !== \"url-with-tenant-preference\"\n    ) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"preferencePartitionStateId\"],\n        message: \"Preference partitioning requires tenant preference state.\",\n      });\n    }\n    if (\n      value.urlWriteback !== undefined &&\n      value.persistence !== \"url\" &&\n      value.persistence !== \"url-with-tenant-preference\"\n    ) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"urlWriteback\"],\n        message: \"URL writeback is only valid for URL-backed Page state.\",\n      });\n    }\n  });\nexport const InteractionBindingSchema = z\n  .object({\n    bindingId: ContractIdentifierSchema,\n    source: z\n      .object({\n        capabilityInstanceId: ContractIdentifierSchema,\n        port: ContractIdentifierSchema,\n      })\n      .strict(),\n    sourceIntentSchemaRevisionRef: RevisionRefSchema,\n    sourceResultSchemaRevisionRef: RevisionRefSchema.optional(),\n    targetStateId: ContractIdentifierSchema,\n    transition: z.enum([\"set\", \"merge\", \"toggle\", \"append\", \"remove\", \"reset\"]),\n    inputMapping: z.record(\n      ContractIdentifierSchema,\n      InteractionBindingSourceSchema,\n    ),\n  })\n  .strict()\n  .superRefine((value, context) => {\n    if (value.sourceIntentSchemaRevisionRef.kind !== \"schema\") {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"sourceIntentSchemaRevisionRef\", \"kind\"],\n        message: \"Interaction source intents must pin a schema revision.\",\n      });\n    }\n    const mapsResult = Object.values(value.inputMapping).some(\n      (source) =>\n        source.kind === \"result-field\" ||\n        (source.kind === \"expression\" &&\n          collectPageExpressionReads(source.expression).some(\n            (read) => read.root === \"result\",\n          )),\n    );\n    if (mapsResult && !value.sourceResultSchemaRevisionRef) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"sourceResultSchemaRevisionRef\"],\n        message:\n          \"Result-field interactions must pin the exact Action result schema revision.\",\n      });\n    }\n    if (\n      value.sourceResultSchemaRevisionRef?.kind !== undefined &&\n      value.sourceResultSchemaRevisionRef.kind !== \"schema\"\n    ) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"sourceResultSchemaRevisionRef\", \"kind\"],\n        message: \"Interaction source results must pin a schema revision.\",\n      });\n    }\n    if (!mapsResult && value.sourceResultSchemaRevisionRef) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"sourceResultSchemaRevisionRef\"],\n        message:\n          \"Interaction result schemas are only valid when inputMapping declares a result-field source.\",\n      });\n    }\n    const mappedInputs = Object.keys(value.inputMapping);\n    if (\n      (value.transition === \"toggle\" || value.transition === \"reset\") &&\n      mappedInputs.length > 0\n    ) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"inputMapping\"],\n        message: `${value.transition} transitions cannot declare mapped inputs.`,\n      });\n    }\n    if (\n      value.transition !== \"toggle\" &&\n      value.transition !== \"reset\" &&\n      mappedInputs.length === 0\n    ) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"inputMapping\"],\n        message: `${value.transition} transitions require at least one mapped input.`,\n      });\n    }\n  });\nexport const GovernedCatalogResourceKindSchema = z.enum([\n  \"tag\",\n  \"tag-group\",\n  \"feature-column\",\n]);\nexport const GovernedCatalogDomainQueryDataSourceSchema = z\n  .object({\n    kind: z.literal(\"governed-catalog\"),\n    resourceKind: GovernedCatalogResourceKindSchema,\n  })\n  .strict();\nexport const RegisteredServiceDomainQueryDataSourceSchema = z\n  .object({\n    kind: z.literal(\"registered-service\"),\n  })\n  .strict();\nexport const DomainQueryDataSourceSchema = z.discriminatedUnion(\"kind\", [\n  z.object({ kind: z.literal(\"exact-view\") }).strict(),\n  z\n    .object({\n      kind: z.literal(\"tenant-catalog\"),\n      resource: z.enum([\"ontology\", \"view\"]),\n      ontologyIdParameter: ContractIdentifierSchema.optional(),\n    })\n    .strict()\n    .superRefine((source, context) => {\n      if (source.resource === \"view\" && !source.ontologyIdParameter) {\n        context.addIssue({\n          code: \"custom\",\n          path: [\"ontologyIdParameter\"],\n          message:\n            \"A tenant View catalog must declare the input parameter that scopes it to one Ontology.\",\n        });\n      }\n      if (source.resource === \"ontology\" && source.ontologyIdParameter) {\n        context.addIssue({\n          code: \"custom\",\n          path: [\"ontologyIdParameter\"],\n          message:\n            \"An Ontology catalog cannot be pre-scoped by an Ontology input.\",\n        });\n      }\n    }),\n  z\n    .object({\n      kind: z.literal(\"tenant-current-view\"),\n      ontologyIdParameter: ContractIdentifierSchema,\n      viewIdParameter: ContractIdentifierSchema,\n    })\n    .strict(),\n  z.object({ kind: z.literal(\"page-state\") }).strict(),\n  GovernedCatalogDomainQueryDataSourceSchema,\n  RegisteredServiceDomainQueryDataSourceSchema,\n]);\nexport const DomainQueryDefinitionSchema = z\n  .object({\n    contract: z.literal(\"DomainQueryDefinition\"),\n    schemaVersion: z.literal(DECLARATIVE_CONTROL_SCHEMA_VERSION),\n    queryId: ContractIdentifierSchema,\n    tenantScope: TenantScopeSchema,\n    dataSource: DomainQueryDataSourceSchema.optional(),\n    handlerRef: EntityRefSchema.optional(),\n    ontologyDefinitionRevisionRef: RevisionRefSchema.optional(),\n    viewRevisionRef: RevisionRefSchema.optional(),\n    canonicalDataViewRevisionRef: RevisionRefSchema.optional(),\n    inputSchemaRevisionRef: RevisionRefSchema,\n    resultSchemaRevisionRef: RevisionRefSchema,\n    accessPolicy: AccessPolicySchema,\n    lineageRequired: z.literal(true),\n  })\n  .strict()\n  .superRefine((value, context) => {\n    const sourceKind = value.dataSource?.kind ?? \"exact-view\";\n    const exactDataRefs = [\n      value.ontologyDefinitionRevisionRef,\n      value.viewRevisionRef,\n      value.canonicalDataViewRevisionRef,\n    ];\n    if (\n      sourceKind === \"exact-view\" &&\n      exactDataRefs.some((reference) => !reference)\n    ) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"dataSource\"],\n        message:\n          \"An exact-view Domain Query must pin Ontology, governed View, and canonical Data View revisions.\",\n      });\n    }\n    if (sourceKind !== \"exact-view\" && exactDataRefs.some(Boolean)) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"dataSource\"],\n        message: \"A non-View Domain Query cannot also pin one fixed View.\",\n      });\n    }\n    if (\n      value.dataSource &&\n      (!value.handlerRef || value.handlerRef.version === undefined)\n    ) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"handlerRef\"],\n        message:\n          \"A source-aware Domain Query must pin its release-owned handler version.\",\n      });\n    }\n    const refs: Array<\n      readonly [string, z.infer<typeof RevisionRefSchema>, string]\n    > = [\n      ...(sourceKind === \"exact-view\" && value.ontologyDefinitionRevisionRef\n        ? [\n            [\n              \"ontologyDefinitionRevisionRef\",\n              value.ontologyDefinitionRevisionRef,\n              \"ontology-definition\",\n            ] as const,\n          ]\n        : []),\n      ...(sourceKind === \"exact-view\" && value.viewRevisionRef\n        ? [[\"viewRevisionRef\", value.viewRevisionRef, \"view\"] as const]\n        : []),\n      ...(sourceKind === \"exact-view\" && value.canonicalDataViewRevisionRef\n        ? [\n            [\n              \"canonicalDataViewRevisionRef\",\n              value.canonicalDataViewRevisionRef,\n              \"view\",\n            ] as const,\n          ]\n        : []),\n      [\"inputSchemaRevisionRef\", value.inputSchemaRevisionRef, \"schema\"],\n      [\"resultSchemaRevisionRef\", value.resultSchemaRevisionRef, \"schema\"],\n    ];\n    refs.forEach(([field, reference, expectedKind]) => {\n      if (reference.kind !== expectedKind) {\n        context.addIssue({\n          code: \"custom\",\n          path: [field, \"kind\"],\n          message: `${field} must reference ${expectedKind}.`,\n        });\n      }\n      validateTenantCompatibleReference(\n        reference,\n        value.tenantScope,\n        [field],\n        context,\n      );\n    });\n    [\n      ...value.accessPolicy.groupAllOf,\n      ...value.accessPolicy.groupAnyOf,\n    ].forEach((reference, index) =>\n      validateTenantCompatibleReference(\n        reference,\n        value.tenantScope,\n        [\"accessPolicy\", \"groups\", index],\n        context,\n      ),\n    );\n    value.accessPolicy.conditionAllOf.forEach((reference, index) =>\n      validateTenantCompatibleReference(\n        reference,\n        value.tenantScope,\n        [\"accessPolicy\", \"conditionAllOf\", index],\n        context,\n      ),\n    );\n    if (\n      value.viewRevisionRef &&\n      value.canonicalDataViewRevisionRef &&\n      exactRevisionRef(\n        value.viewRevisionRef,\n        value.canonicalDataViewRevisionRef,\n      )\n    ) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"canonicalDataViewRevisionRef\"],\n        message:\n          \"Governed View adapter and canonical data.view revisions must be distinct.\",\n      });\n    }\n  });\nexport const CursorWindowBindingSchema = z\n  .object({\n    sourceCapabilityInstanceId: ContractIdentifierSchema.optional(),\n    pageChangePort: ContractIdentifierSchema,\n    pageChangeIntentSchemaRevisionRef: RevisionRefSchema,\n  })\n  .strict()\n  .superRefine((value, context) => {\n    if (value.pageChangeIntentSchemaRevisionRef.kind !== \"schema\") {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"pageChangeIntentSchemaRevisionRef\", \"kind\"],\n        message:\n          \"Cursor-window page-change intents must pin a schema revision.\",\n      });\n    }\n  });\nexport const QueryResultStateBindingSchema = z\n  .object({\n    targetStateId: ContractIdentifierSchema,\n    targetStateSchemaRevisionRef: RevisionRefSchema,\n    source: z\n      .object({ kind: z.enum([\"page-info-total\", \"model-total\"]) })\n      .strict(),\n  })\n  .strict()\n  .superRefine((value, context) => {\n    if (value.targetStateSchemaRevisionRef.kind !== \"schema\") {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"targetStateSchemaRevisionRef\", \"kind\"],\n        message:\n          \"Query result state bindings must pin a Page-state schema revision.\",\n      });\n    }\n  });\nexport const QueryBindingSchema = z\n  .object({\n    bindingId: ContractIdentifierSchema,\n    queryDefinitionRevisionRef: RevisionRefSchema,\n    parameters: z.record(ContractIdentifierSchema, BindingSourceSchema),\n    target: z\n      .object({\n        capabilityInstanceId: ContractIdentifierSchema,\n        port: ContractIdentifierSchema,\n      })\n      .strict(),\n    renderModelSchemaRevisionRef: RevisionRefSchema,\n    targetProjection: z\n      .object({\n        expression: PageExpressionSchema,\n        schemaRevisionRef: RevisionRefSchema,\n      })\n      .strict()\n      .optional(),\n    streamTargetProjection: z\n      .object({\n        expression: PageExpressionSchema,\n        schemaRevisionRef: RevisionRefSchema,\n      })\n      .strict()\n      .optional(),\n    stateEffects: z\n      .array(\n        z\n          .object({\n            targetStateId: ContractIdentifierSchema,\n            value: PageExpressionSchema,\n            when: PageExpressionSchema.optional(),\n          })\n          .strict(),\n      )\n      .max(32)\n      .optional(),\n    queryWhen: PageStateActivationSchema.optional(),\n    // Omission follows the Page's initialQueryPolicy; this never overrides lifecycle or access.\n    loadTiming: z.enum([\"page-start\", \"component-mount\"]).optional(),\n    accessFailure: z.literal(\"render-forbidden\").optional(),\n    draftRetention: z\n      .object({\n        identityParameters: z\n          .array(ContractIdentifierSchema)\n          .min(1)\n          .max(32),\n      })\n      .strict()\n      .optional(),\n    queryRetention: z.object({\n      identityParameters: z.array(ContractIdentifierSchema).max(32),\n    }).strict().optional(),\n    resultStateBindings: z\n      .array(QueryResultStateBindingSchema)\n      .max(32)\n      .optional(),\n    execution: z.enum([\"server\", \"local-state\"]).default(\"server\"),\n    pagination: z.enum([\"none\", \"cursor\", \"offset\"]),\n    cursorWindow: CursorWindowBindingSchema.optional(),\n    cache: z.enum([\"none\", \"identity-scoped\", \"tenant-scoped\"]),\n    cancelOnChange: z.boolean(),\n    refreshPolicy: z\n      .object({\n        intervalMs: z.number().int().min(1000).max(300000),\n        when: PageExpressionSchema.optional(),\n      })\n      .strict()\n      .optional(),\n  })\n  .strict()\n  .superRefine((value, context) => {\n    if (value.draftRetention) {\n      const names = value.draftRetention.identityParameters;\n      if (\n        value.execution !== \"server\" ||\n        new Set(names).size !== names.length ||\n        names.some(\n          (name) =>\n            !Object.prototype.hasOwnProperty.call(value.parameters, name),\n        )\n      ) {\n        context.addIssue({\n          code: \"custom\",\n          path: [\"draftRetention\"],\n          message:\n            \"Draft retention requires distinct declared Server query identity parameters.\",\n        });\n      }\n    }\n    if (value.queryRetention) {\n      const names = value.queryRetention.identityParameters;\n      if (\n        value.execution !== \"server\" ||\n        new Set(names).size !== names.length ||\n        names.some(\n          (name) =>\n            !Object.prototype.hasOwnProperty.call(value.parameters, name),\n        )\n      ) {\n        context.addIssue({\n          code: \"custom\",\n          path: [\"queryRetention\"],\n          message:\n            \"Query retention requires distinct declared Server query identity parameters.\",\n        });\n      }\n    }\n    if (value.targetProjection) {\n      if (value.targetProjection.schemaRevisionRef.kind !== \"schema\")\n        context.addIssue({\n          code: \"custom\",\n          path: [\"targetProjection\", \"schemaRevisionRef\"],\n          message:\n            \"Query target projections require an exact target schema revision.\",\n        });\n      for (const read of collectExternalPageExpressionReads(\n        value.targetProjection.expression,\n      ))\n        if (read.root !== \"model\")\n          context.addIssue({\n            code: \"custom\",\n            path: [\"targetProjection\", \"expression\"],\n            message:\n              \"Query target projections may read only the validated raw model.\",\n          });\n    }\n    if (value.streamTargetProjection) {\n      const projection = value.streamTargetProjection;\n      if (projection.schemaRevisionRef.kind !== \"schema\")\n        context.addIssue({\n          code: \"custom\",\n          path: [\"streamTargetProjection\", \"schemaRevisionRef\"],\n          message:\n            \"Stream target projections require an exact target schema revision.\",\n        });\n      for (const read of collectExternalPageExpressionReads(\n        projection.expression,\n      ))\n        if (read.root !== \"model\")\n          context.addIssue({\n            code: \"custom\",\n            path: [\"streamTargetProjection\", \"expression\"],\n            message:\n              \"Stream target projections may read only the verified query and stream envelope.\",\n          });\n      if (value.execution !== \"server\" || value.pagination !== \"none\")\n        context.addIssue({\n          code: \"custom\",\n          path: [\"streamTargetProjection\"],\n          message:\n            \"Stream target projections require a non-paginated Server query.\",\n        });\n    }\n    const effects = value.stateEffects ?? [];\n    if (\n      new Set(effects.map((effect) => effect.targetStateId)).size !==\n      effects.length\n    )\n      context.addIssue({\n        code: \"custom\",\n        path: [\"stateEffects\"],\n        message: \"A query completion may update each state only once.\",\n      });\n    for (const [index, effect] of effects.entries())\n      for (const expression of [\n        effect.value,\n        ...(effect.when ? [effect.when] : []),\n      ]) {\n        for (const read of collectPageExpressionReads(expression))\n          if (![\"model\", \"state\", \"scope\"].includes(read.root))\n            context.addIssue({\n              code: \"custom\",\n              path: [\"stateEffects\", index],\n              message:\n                \"Query state effects may read only model, state, and scope.\",\n            });\n      }\n    if (\n      effects.length &&\n      (value.execution !== \"server\" || value.pagination !== \"none\")\n    )\n      context.addIssue({\n        code: \"custom\",\n        path: [\"stateEffects\"],\n        message: \"Query state effects require a non-paginated Server query.\",\n      });\n    if (value.refreshPolicy?.when) {\n      for (const read of collectExternalPageExpressionReads(\n        value.refreshPolicy.when,\n      )) {\n        if (\n          read.root !== \"model\" &&\n          !(\n            read.root === \"actions\" &&\n            read.path.length === 2 &&\n            read.path[1] === \"pending\"\n          )\n        )\n          context.addIssue({\n            code: \"custom\",\n            path: [\"refreshPolicy\", \"when\"],\n            message:\n              \"Automatic refresh conditions may read only the verified raw model and declared action pending state.\",\n          });\n      }\n    }\n    if (\n      value.refreshPolicy &&\n      (value.execution !== \"server\" || value.pagination !== \"none\")\n    ) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"refreshPolicy\"],\n        message: \"Automatic refresh requires a non-paginated Server query.\",\n      });\n    }\n    if (value.queryDefinitionRevisionRef.kind !== \"domain-query-definition\") {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"queryDefinitionRevisionRef\", \"kind\"],\n        message:\n          \"Query bindings must pin a governed domain-query-definition revision.\",\n      });\n    }\n    if (value.renderModelSchemaRevisionRef.kind !== \"schema\") {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"renderModelSchemaRevisionRef\", \"kind\"],\n        message: \"Query bindings must pin a render-model schema revision.\",\n      });\n    }\n    if (value.execution === \"local-state\" && value.pagination !== \"none\") {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"pagination\"],\n        message: \"Local Page-state queries cannot paginate.\",\n      });\n    }\n    if (value.execution === \"local-state\" && value.accessFailure) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"accessFailure\"],\n        message:\n          \"Only a Server query can render an independently governed access failure.\",\n      });\n    }\n    if (\n      value.execution === \"local-state\" &&\n      (value.resultStateBindings?.length ?? 0) > 0\n    ) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"resultStateBindings\"],\n        message:\n          \"Only Server queries can project governed result totals into Page state.\",\n      });\n    }\n    const targetStateIds =\n      value.resultStateBindings?.map((binding) => binding.targetStateId) ?? [];\n    if (new Set(targetStateIds).size !== targetStateIds.length) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"resultStateBindings\"],\n        message:\n          \"A Query binding can project a governed result total to each Page state at most once.\",\n      });\n    }\n    if (value.cursorWindow && value.pagination !== \"cursor\") {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"cursorWindow\"],\n        message: \"Cursor-window navigation requires cursor pagination.\",\n      });\n    }\n    if (value.cursorWindow && value.execution !== \"server\") {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"cursorWindow\"],\n        message: \"Cursor-window navigation requires Server query execution.\",\n      });\n    }\n  });\nexport const CapabilityInstanceSchema = z\n  .object({\n    runtimeContractVersion: ContractIdentifierSchema.optional(),\n    instanceId: ContractIdentifierSchema,\n    nodeId: ContractIdentifierSchema,\n    capabilityRevisionRef: RevisionRefSchema,\n    providerRevisionRef: RevisionRefSchema,\n    propertySchemaRevisionRef: RevisionRefSchema,\n    properties: JsonObjectSchema,\n    propertyBindings: z.array(PagePropertyBindingSchema).max(128).optional(),\n    eventPayloadBindings: z\n      .array(\n        z\n          .object({\n            port: ContractIdentifierSchema,\n            expression: PageExpressionSchema,\n          })\n          .strict(),\n      )\n      .max(32)\n      .optional(),\n    eventEffects: z\n      .array(\n        z\n          .object({\n            sourcePort: ContractIdentifierSchema,\n            sourceIntentSchemaRevisionRef: RevisionRefSchema,\n            refreshBindingIds: z\n              .array(ContractIdentifierSchema)\n              .min(1)\n              .max(128),\n          })\n          .strict(),\n      )\n      .max(32)\n      .optional(),\n    accessPolicy: AccessPolicySchema.optional(),\n    activationWhen: PageStateActivationSchema.optional(),\n    allowedSideEffects: z.array(\n      z.enum([\n        \"network\",\n        \"storage\",\n        \"navigation\",\n        \"clipboard\",\n        \"worker\",\n        \"websocket\",\n      ]),\n    ),\n  })\n  .strict();\nexport const OntologyBindingSchema = z\n  .object({\n    bindingId: ContractIdentifierSchema,\n    ontologyDefinitionRevisionRef: RevisionRefSchema,\n    viewRevisionRef: RevisionRefSchema,\n    canonicalDataViewRevisionRef: RevisionRefSchema,\n    parameters: z.record(ContractIdentifierSchema, BindingSourceSchema),\n    target: z\n      .object({\n        capabilityInstanceId: ContractIdentifierSchema,\n        port: ContractIdentifierSchema,\n      })\n      .strict(),\n    renderModelSchemaRevisionRef: RevisionRefSchema,\n    pagination: z.enum([\"none\", \"cursor\", \"offset\"]),\n    cursorWindow: CursorWindowBindingSchema.optional(),\n    cache: z.enum([\"none\", \"identity-scoped\", \"tenant-scoped\"]),\n    cancelOnChange: z.boolean(),\n  })\n  .strict()\n  .superRefine((value, context) => {\n    if (value.viewRevisionRef.kind !== \"view\") {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"viewRevisionRef\", \"kind\"],\n        message: \"Ontology bindings require an exact governed View revision.\",\n      });\n    }\n    if (value.canonicalDataViewRevisionRef.kind !== \"view\") {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"canonicalDataViewRevisionRef\", \"kind\"],\n        message:\n          \"Ontology bindings require an exact canonical data.view revision.\",\n      });\n    }\n    if (\n      exactRevisionRef(\n        value.viewRevisionRef,\n        value.canonicalDataViewRevisionRef,\n      )\n    ) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"canonicalDataViewRevisionRef\"],\n        message:\n          \"Governed View adapter and canonical data.view revisions must be distinct.\",\n      });\n    }\n    if (value.ontologyDefinitionRevisionRef.kind !== \"ontology-definition\") {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"ontologyDefinitionRevisionRef\", \"kind\"],\n        message: \"Expected an ontology-definition revision.\",\n      });\n    }\n    if (value.cursorWindow && value.pagination !== \"cursor\") {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"cursorWindow\"],\n        message: \"Cursor-window navigation requires cursor pagination.\",\n      });\n    }\n  });\n/** Persisted pre-canonical bindings retain their exact references and content hashes. */\nexport const LegacyOntologyBindingSchema = z\n  .object({\n    ...OntologyBindingSchema.shape,\n    viewRevisionRef: RevisionRefSchema.optional(),\n    canonicalDataViewRevisionRef: z.never().optional(),\n    projectionRevisionRef: RevisionRefSchema.optional(),\n  })\n  .strict()\n  .superRefine((value, context) => {\n    if (\n      Boolean(value.viewRevisionRef) === Boolean(value.projectionRevisionRef)\n    ) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"viewRevisionRef\"],\n        message:\n          \"Legacy bindings require exactly one View or projection revision.\",\n      });\n    }\n    for (const [key, reference, kind] of [\n      [\n        \"ontologyDefinitionRevisionRef\",\n        value.ontologyDefinitionRevisionRef,\n        \"ontology-definition\",\n      ],\n      [\"viewRevisionRef\", value.viewRevisionRef, \"view\"],\n      [\"projectionRevisionRef\", value.projectionRevisionRef, \"projection-spec\"],\n    ] as const) {\n      if (reference && reference.kind !== kind)\n        context.addIssue({\n          code: \"custom\",\n          path: [key, \"kind\"],\n          message: `Expected a ${kind} revision.`,\n        });\n    }\n    if (value.cursorWindow && value.pagination !== \"cursor\")\n      context.addIssue({\n        code: \"custom\",\n        path: [\"cursorWindow\"],\n        message: \"Cursor-window navigation requires cursor pagination.\",\n      });\n  });\n\nexport const PersistedOntologyBindingSchema = z\n  .object({\n    ...OntologyBindingSchema.shape,\n    viewRevisionRef: RevisionRefSchema.optional(),\n    canonicalDataViewRevisionRef: RevisionRefSchema.optional(),\n    projectionRevisionRef: RevisionRefSchema.optional(),\n  })\n  .strict()\n  .superRefine((value, context) => {\n    const schema = value.canonicalDataViewRevisionRef\n      ? OntologyBindingSchema\n      : LegacyOntologyBindingSchema;\n    const parsed = schema.safeParse(value);\n    if (!parsed.success)\n      for (const issue of parsed.error.issues)\n        context.addIssue({\n          code: \"custom\",\n          path: issue.path,\n          message: issue.message,\n        });\n  });\n\nexport const ActionResultBindingEffectSourceSchema = z.discriminatedUnion(\n  \"kind\",\n  [\n    z\n      .object({\n        kind: z.literal(\"result-field\"),\n        path: z\n          .string()\n          .trim()\n          .regex(/^[A-Za-z0-9_.-]+$/),\n      })\n      .strict(),\n    z.object({ kind: z.literal(\"constant\"), value: JsonValueSchema }).strict(),\n    z\n      .object({\n        kind: z.literal(\"collection-length\"),\n        offset: z.number().int().min(-1000).max(1000),\n      })\n      .strict(),\n  ],\n);\nexport const ActionResultBindingEffectSchema = z\n  .object({\n    bindingId: ContractIdentifierSchema,\n    operation: z.enum([\"upsert-append\", \"remove-exact\"]),\n    collectionPath: z.array(ContractIdentifierSchema).min(1).max(8),\n    identityPath: z.array(ContractIdentifierSchema).min(1).max(8),\n    mappings: z\n      .array(\n        z\n          .object({\n            targetPath: z.array(ContractIdentifierSchema).min(1).max(8),\n            source: ActionResultBindingEffectSourceSchema,\n          })\n          .strict(),\n      )\n      .min(1)\n      .max(64),\n  })\n  .strict()\n  .superRefine((value, context) => {\n    const targetPaths = value.mappings.map(({ targetPath }) =>\n      targetPath.join(\".\"),\n    );\n    if (new Set(targetPaths).size !== targetPaths.length) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"mappings\"],\n        message: \"Result binding effect target paths must be unique.\",\n      });\n    }\n    if (!targetPaths.includes(value.identityPath.join(\".\"))) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"identityPath\"],\n        message:\n          \"A result binding effect must map the exact identity path of the projected item.\",\n      });\n    }\n    const identityMapping = value.mappings.find(\n      ({ targetPath }) => targetPath.join(\".\") === value.identityPath.join(\".\"),\n    );\n    if (identityMapping?.source.kind === \"collection-length\") {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"identityPath\"],\n        message:\n          \"A projected item identity must come from the verified result or a declared constant.\",\n      });\n    }\n    if (value.operation === \"remove-exact\" && value.mappings.length !== 1) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"mappings\"],\n        message:\n          \"An exact removal declares only the verified identity mapping used to remove one item.\",\n      });\n    }\n  });\n\nexport const ActionResultClipboardEffectSchema = z\n  .object({\n    source: z\n      .object({\n        kind: z.literal(\"result-field\"),\n        path: z\n          .string()\n          .trim()\n          .regex(/^[A-Za-z0-9_.-]+$/),\n      })\n      .strict(),\n    copiedToast: I18nTextSchema.optional(),\n    fallbackToast: I18nTextSchema.superRefine((value, context) => {\n      for (const [locale, message] of Object.entries(value.values)) {\n        if (!message.includes(\"{value}\")) {\n          context.addIssue({\n            code: \"custom\",\n            path: [\"values\", locale],\n            message:\n              \"Clipboard fallback feedback must visibly include the exact verified value placeholder.\",\n          });\n        }\n      }\n    }),\n  })\n  .strict();\n\nexport const ActionBindingSchema = z\n  .object({\n    bindingId: ContractIdentifierSchema,\n    commandRevisionRef: RevisionRefSchema,\n    source: z\n      .object({\n        capabilityInstanceId: ContractIdentifierSchema,\n        port: ContractIdentifierSchema,\n      })\n      .strict(),\n    sourceIntentSchemaRevisionRef: RevisionRefSchema,\n    inputSchemaRevisionRef: RevisionRefSchema,\n    when: PageExpressionSchema.optional(),\n    fileInputs: z.array(ActionFileInputSchema).min(1).max(4).optional(),\n    inputMapping: z.record(\n      ContractIdentifierSchema,\n      ActionInputBindingSourceSchema,\n    ),\n    sensitiveInputPaths: SensitiveResultPathsSchema.optional(),\n    accessPolicy: AccessPolicySchema,\n    confirmation: I18nTextSchema.optional(),\n    idempotencyKeySource: z.enum([\n      \"interaction\",\n      \"record-and-interaction\",\n      \"caller-provided\",\n    ]),\n    compensationCommandRevisionRef: RevisionRefSchema.optional(),\n    resultSchemaRevisionRef: RevisionRefSchema,\n    success: z\n      .object({\n        download: z\n          .discriminatedUnion(\"kind\", [\n            z.object({ kind: z.literal(\"native\") }).strict(),\n            z\n              .object({\n                kind: z.literal(\"text-artifact\"),\n                fileNamePath: PageValuePathSchema.min(1),\n                mimeTypePath: PageValuePathSchema.min(1),\n                contentPath: PageValuePathSchema.min(1),\n                maxBytes: z.number().int().min(1).max(1048576),\n              })\n              .strict(),\n          ])\n          .optional(),\n        refreshBindingIds: z.array(ContractIdentifierSchema),\n        ephemeralResult: z\n          .object({\n            kind: z.literal(\"one-time-value\"),\n            valuePath: SensitiveResultPathSchema,\n            labelPath: SensitiveResultPathSchema,\n            title: I18nTextSchema,\n            description: I18nTextSchema,\n            copySuccessToast: I18nTextSchema,\n            copyFailureToast: I18nTextSchema,\n          })\n          .strict()\n          .optional(),\n        resultBindingEffects: z\n          .array(ActionResultBindingEffectSchema)\n          .max(64)\n          .optional(),\n        clipboard: ActionResultClipboardEffectSchema.optional(),\n        navigationTargetRef: StableRefSchema.optional(),\n        toast: I18nTextSchema.optional(),\n      })\n      .strict(),\n    recovery: z.enum([\"retry-safe\", \"compensating-command\", \"manual-review\"]),\n    lineageRequired: z.literal(true),\n  })\n  .strict()\n  .superRefine((value, context) => {\n    const fileIds = new Set<string>();\n    for (const file of value.fileInputs ?? []) {\n      if (fileIds.has(file.inputId))\n        context.addIssue({\n          code: \"custom\",\n          path: [\"fileInputs\"],\n          message: \"File input ids must be unique.\",\n        });\n      fileIds.add(file.inputId);\n      if (\n        !Object.values(value.inputMapping).some(\n          (source) =>\n            source.kind === \"file-field\" && source.fileInputId === file.inputId,\n        )\n      )\n        context.addIssue({\n          code: \"custom\",\n          path: [\"fileInputs\"],\n          message: \"File inputs require an explicit governed input mapping.\",\n        });\n    }\n    for (const [name, source] of Object.entries(value.inputMapping))\n      if (source.kind === \"file-field\") {\n        const file = value.fileInputs?.find(\n          (file) => file.inputId === source.fileInputId,\n        );\n        if (\n          (source.path === \"canonicalUri\" && !file?.upload) ||\n          (source.path === \"content\" && file?.upload)\n        )\n          context.addIssue({\n            code: \"custom\",\n            path: [\"inputMapping\", name],\n            message: \"File field must match its declared transport mode.\",\n          });\n        if (!fileIds.has(source.fileInputId))\n          context.addIssue({\n            code: \"custom\",\n            path: [\"inputMapping\", name],\n            message: \"File fields must reference a declared file input.\",\n          });\n        if (\n          source.path === \"content\" &&\n          !value.sensitiveInputPaths?.includes(`/${name}`)\n        )\n          context.addIssue({\n            code: \"custom\",\n            path: [\"sensitiveInputPaths\"],\n            message:\n              \"File content must be declared as a sensitive command input.\",\n          });\n      }\n    if (value.when)\n      for (const read of collectPageExpressionReads(value.when)) {\n        if (![\"intent\", \"state\", \"scope\"].includes(read.root))\n          context.addIssue({\n            code: \"custom\",\n            path: [\"when\"],\n            message:\n              \"Action conditions may read only intent, declared Page state, and instance scope.\",\n          });\n      }\n    if (value.success.ephemeralResult) {\n      const { valuePath, labelPath } = value.success.ephemeralResult;\n      const segments = (path: string) => path.split(\"/\").slice(1);\n      const valueSegments = segments(valuePath);\n      const labelSegments = segments(labelPath);\n      const sharedLength = Math.min(valueSegments.length, labelSegments.length);\n      if (\n        valueSegments\n          .slice(0, sharedLength)\n          .every((segment, index) => segment === labelSegments[index])\n      ) {\n        context.addIssue({\n          code: \"custom\",\n          path: [\"success\", \"ephemeralResult\", \"labelPath\"],\n          message:\n            \"One-time result labels cannot overlap the sensitive value path.\",\n        });\n      }\n    }\n    if (\n      value.success.ephemeralResult &&\n      (value.success.resultBindingEffects?.length || 0) > 0\n    ) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"success\", \"resultBindingEffects\"],\n        message:\n          \"One-time result presentation cannot share a result with durable binding effects.\",\n      });\n    }\n    if (value.commandRevisionRef.kind !== \"domain-command\") {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"commandRevisionRef\", \"kind\"],\n        message: \"Action bindings must reference a domain-command revision.\",\n      });\n    }\n    if (value.sourceIntentSchemaRevisionRef.kind !== \"schema\") {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"sourceIntentSchemaRevisionRef\", \"kind\"],\n        message: \"Action source intents must pin a schema revision.\",\n      });\n    }\n    if (value.inputSchemaRevisionRef.kind !== \"schema\") {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"inputSchemaRevisionRef\", \"kind\"],\n        message: \"Action command inputs must pin a schema revision.\",\n      });\n    }\n    if (\n      value.recovery === \"compensating-command\" &&\n      !value.compensationCommandRevisionRef\n    ) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"compensationCommandRevisionRef\"],\n        message: \"Compensating recovery requires a compensation command.\",\n      });\n    }\n  });\nexport const PageMigrationEquivalenceDimensionSchema = z.enum([\n  \"url\",\n  \"navigation\",\n  \"access\",\n  \"deep-link\",\n  \"layout\",\n  \"size\",\n  \"spacing\",\n  \"design-tokens\",\n  \"responsive\",\n  \"view-modes\",\n  \"search-filter\",\n  \"editing\",\n  \"detail\",\n  \"history\",\n  \"dialogs\",\n  \"keyboard\",\n  \"loading\",\n  \"empty\",\n  \"error\",\n  \"forbidden\",\n]);\nexport const PageMigrationEquivalenceSchema = z\n  .object({\n    contract: z.literal(\"PageMigrationEquivalence\"),\n    schemaVersion: z.literal(1),\n    policy: z.literal(\"preserve-ui-ux\"),\n    baseline: z\n      .object({\n        repository: ContractIdentifierSchema,\n        revision: z.string().regex(/^[0-9a-f]{40}$/),\n        pageId: ContractIdentifierSchema,\n        routePath: RoutePathTemplateSchema,\n      })\n      .strict(),\n    protectedDimensions: z\n      .array(PageMigrationEquivalenceDimensionSchema)\n      .min(1),\n    viewports: z\n      .array(\n        z\n          .object({\n            viewportId: ContractIdentifierSchema,\n            width: z.number().int().min(320).max(7680),\n            height: z.number().int().min(480).max(4320),\n          })\n          .strict(),\n      )\n      .min(2),\n    scenarios: z\n      .array(\n        z\n          .object({\n            scenarioId: ContractIdentifierSchema,\n            viewportIds: z.array(ContractIdentifierSchema).min(1),\n          })\n          .strict(),\n      )\n      .min(1),\n    evidence: z\n      .object({\n        sideBySideVisual: z.literal(true),\n        domSnapshot: z.literal(true),\n        consoleErrors: z.literal(\"none\"),\n      })\n      .strict(),\n    allowedDifferences: z.array(\n      z\n        .object({\n          differenceId: ContractIdentifierSchema,\n          requirementRevisionRef: RevisionRefSchema,\n        })\n        .strict(),\n    ),\n  })\n  .strict()\n  .superRefine((value, context) => {\n    if (uniqueArray(value.protectedDimensions, (candidate) => candidate)) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"protectedDimensions\"],\n        message: \"Protected UI/UX dimensions must be unique.\",\n      });\n    }\n    if (uniqueArray(value.viewports, (candidate) => candidate.viewportId)) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"viewports\"],\n        message: \"Migration equivalence viewport identities must be unique.\",\n      });\n    }\n    if (uniqueArray(value.scenarios, (candidate) => candidate.scenarioId)) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"scenarios\"],\n        message: \"Migration equivalence scenario identities must be unique.\",\n      });\n    }\n    const viewportIds = new Set(\n      value.viewports.map((viewport) => viewport.viewportId),\n    );\n    value.scenarios.forEach((scenario, index) => {\n      scenario.viewportIds.forEach((viewportId, viewportIndex) => {\n        if (!viewportIds.has(viewportId)) {\n          context.addIssue({\n            code: \"custom\",\n            path: [\"scenarios\", index, \"viewportIds\", viewportIndex],\n            message: `Migration equivalence scenario references unknown viewport ${viewportId}.`,\n          });\n        }\n      });\n    });\n  });\n\nexport const PageRouteStatePresentationSchema = z\n  .object({\n    surface: ProductSurfaceSchema,\n    state: z.literal(\"forbidden\"),\n    kind: z.literal(\"status\"),\n    presentation: z.enum([\"panel\", \"page\"]),\n    title: I18nTextSchema,\n    description: I18nTextSchema.optional(),\n  })\n  .strict()\n  .superRefine((value, context) => {\n    const localizedFields = [\n      [\"title\", value.title, 160],\n      [\"description\", value.description, 1000],\n    ] as const;\n    localizedFields.forEach(([field, copy, maxLength]) => {\n      if (!copy) return;\n      const entries = Object.entries(copy.values);\n      if (entries.length > 16) {\n        context.addIssue({\n          code: \"custom\",\n          path: [field, \"values\"],\n          message: \"Route-state presentation copy supports at most 16 locales.\",\n        });\n      }\n      entries.forEach(([locale, text]) => {\n        if (text.length > maxLength) {\n          context.addIssue({\n            code: \"custom\",\n            path: [field, \"values\", locale],\n            message: `Route-state ${field} copy must contain at most ${maxLength} characters.`,\n          });\n        }\n      });\n    });\n  });\n\nexport const PageStateSchema = PageStateDefinitionSchema.omit({\n  schemaRevisionRef: true,\n})\n  .extend({\n    stateId: ContractIdentifierSchema,\n    schema: ContractIdentifierSchema,\n  })\n  .strict();\n\nexport const PageEntryTargetSchema = z\n  .object({\n    kind: z.enum([\"page\", \"workbench\"]),\n    id: ContractIdentifierSchema,\n  })\n  .strict();\n\nexport const PageEntrySchema = PageEntryTransitionSchema.omit({\n  targetRef: true,\n})\n  .extend({\n    target: PageEntryTargetSchema,\n  })\n  .strict();\n\nexport const PageInteractionSchema = InteractionBindingSchema.omit({\n  source: true,\n  sourceIntentSchemaRevisionRef: true,\n  sourceResultSchemaRevisionRef: true,\n})\n  .extend({\n    port: ContractIdentifierSchema,\n  })\n  .strict();\n\nconst PageCursorWindowSchema = CursorWindowBindingSchema.omit({\n  pageChangeIntentSchemaRevisionRef: true,\n}).strict();\nconst PageResultStateBindingSchema = QueryResultStateBindingSchema.omit({\n  targetStateSchemaRevisionRef: true,\n}).strict();\n\nexport const PageDataSchema = QueryBindingSchema.omit({\n  queryDefinitionRevisionRef: true,\n  target: true,\n  renderModelSchemaRevisionRef: true,\n  targetProjection: true,\n  streamTargetProjection: true,\n  cursorWindow: true,\n  resultStateBindings: true,\n})\n  .extend({\n    query: ContractIdentifierSchema,\n    port: ContractIdentifierSchema,\n    targetProjection: z\n      .object({ expression: PageExpressionSchema })\n      .strict()\n      .optional(),\n    streamTargetProjection: z\n      .object({ expression: PageExpressionSchema })\n      .strict()\n      .optional(),\n    cursorWindow: PageCursorWindowSchema.optional(),\n    resultStateBindings: z\n      .array(PageResultStateBindingSchema)\n      .max(32)\n      .optional(),\n  })\n  .strict();\n\n/** Host ABI is explicit: the trusted browser Worker executor does not accept sandbox artifacts. */\nexport const ACTION_PROGRAM_ABI = \"monkeys.action-program/2\" as const;\nexport const ActionProgramBudgetsSchema = z\n  .object({\n    rpcMs: z.number().int().positive().max(30000),\n    concurrentCalls: z.number().int().positive().max(4),\n    calls: z.number().int().positive().max(128),\n    messageBytes: z.number().int().positive().max(1048576),\n    activeMs: z.number().int().positive().max(120000),\n    formMs: z.number().int().positive().max(300000),\n    wallMs: z.number().int().positive().max(600000),\n  })\n  .strict();\nexport const DEFAULT_ACTION_PROGRAM_BUDGETS = Object.freeze({\n  rpcMs: 30000,\n  concurrentCalls: 4,\n  calls: 128,\n  messageBytes: 1048576,\n  activeMs: 120000,\n  formMs: 300000,\n  wallMs: 600000,\n});\nconst ProgramSchemaRefSchema = RevisionRefSchema.refine(\n  (ref) => ref.kind === \"schema\",\n  \"Expected an exact Schema reference.\",\n);\nexport const ActionProgramDependencySchema = z\n  .object({\n    kind: z.enum([\"query\", \"command\"]),\n    revisionRef: RevisionRefSchema,\n    inputSchemaRevisionRef: ProgramSchemaRefSchema,\n    resultSchemaRevisionRef: ProgramSchemaRefSchema,\n    download: ActionBindingSchema.shape.success.shape.download,\n    // Fixed/identity arguments are injected by the trusted caller, never by guest code.\n    dynamicInputKeys: z.array(ContractIdentifierSchema).max(128),\n  })\n  .strict()\n  .superRefine((value, context) => {\n    const expected =\n      value.kind === \"query\" ? \"domain-query-definition\" : \"domain-command\";\n    if (value.revisionRef.kind !== expected)\n      context.addIssue({\n        code: \"custom\",\n        path: [\"revisionRef\", \"kind\"],\n        message: `Expected ${expected}.`,\n      });\n    if (new Set(value.dynamicInputKeys).size !== value.dynamicInputKeys.length)\n      context.addIssue({\n        code: \"custom\",\n        path: [\"dynamicInputKeys\"],\n        message: \"Dynamic input keys must be unique.\",\n      });\n  });\nexport const ActionProgramDefinitionSchema = z\n  .object({\n    contract: z.literal(\"ActionProgramDefinition\"),\n    schemaVersion: z.literal(1),\n    programId: ContractIdentifierSchema,\n    ownerRepo: ContractIdentifierSchema,\n    tenantScope: TenantScopeSchema,\n    supportedSurface: z.literal(\"studio\"),\n    inputSchemaRevisionRef: ProgramSchemaRefSchema,\n    resultSchemaRevisionRef: ProgramSchemaRefSchema,\n    entry: z.literal(\"main\"),\n    abi: z.literal(ACTION_PROGRAM_ABI),\n    compiler: z.string().trim().min(1).max(128),\n    target: z.literal(\"browser-worker-es2020\"),\n    sourceHash: Sha256Schema,\n    compiledHash: Sha256Schema,\n    sourceMapHash: Sha256Schema,\n    dependencies: z.array(ActionProgramDependencySchema).max(128),\n    effects: z\n      .array(\n        z.enum([\n          \"form\",\n          \"toast\",\n          \"refresh\",\n          \"download\",\n          \"state.get\",\n          \"state.set\",\n        ]),\n      )\n      .max(6),\n    refreshAliases: z.array(ContractIdentifierSchema).max(128),\n    stateAliases: z\n      .array(\n        z\n          .object({\n            alias: ContractIdentifierSchema,\n            schemaRevisionRef: ProgramSchemaRefSchema,\n          })\n          .strict(),\n      )\n      .max(128),\n    budgets: ActionProgramBudgetsSchema,\n  })\n  .strict()\n  .superRefine((value, context) => {\n    for (const [name, keys] of [\n      [\n        \"dependencies\",\n        value.dependencies.map((dep) => `${dep.kind}:${dep.revisionRef.id}`),\n      ],\n      [\"effects\", value.effects],\n      [\"refreshAliases\", value.refreshAliases],\n      [\"stateAliases\", value.stateAliases.map((entry) => entry.alias)],\n    ] as const)\n      if (new Set(keys).size !== keys.length)\n        context.addIssue({\n          code: \"custom\",\n          path: [name],\n          message: \"Program declarations must be unique.\",\n        });\n    const refs = [\n      value.inputSchemaRevisionRef,\n      value.resultSchemaRevisionRef,\n      ...value.dependencies.flatMap((dep) => [\n        dep.revisionRef,\n        dep.inputSchemaRevisionRef,\n        dep.resultSchemaRevisionRef,\n      ]),\n      ...value.stateAliases.map((entry) => entry.schemaRevisionRef),\n    ];\n    refs.forEach((ref, index) => {\n      if (\n        ref.visibility === \"tenant\" &&\n        ref.tenantScope &&\n        tenantScopeKey(ref.tenantScope) !== tenantScopeKey(value.tenantScope)\n      )\n        context.addIssue({\n          code: \"custom\",\n          path: [\"dependencies\"],\n          message: `Cross-tenant program reference ${index}.`,\n        });\n    });\n  });\nexport type ActionProgramDefinition = z.infer<\n  typeof ActionProgramDefinitionSchema\n>;\nexport type ActionProgramDependency = z.infer<\n  typeof ActionProgramDependencySchema\n>;\nexport const ActionProgramArtifactSchema = z\n  .object({\n    definition: ActionProgramDefinitionSchema,\n    // Hashes use canonicalContentHash of the exact UTF-8 string, not engine bytecode.\n    javascript: z\n      .string()\n      .min(1)\n      .max(262144)\n      .refine(\n        (value) => new TextEncoder().encode(value).length <= 262144,\n        \"Program exceeds 256 KiB.\",\n      ),\n    sourceMap: z\n      .string()\n      .min(1)\n      .max(524288)\n      .refine(\n        (value) => new TextEncoder().encode(value).length <= 524288,\n        \"Source map exceeds 512 KiB.\",\n      ),\n  })\n  .strict();\nexport type ActionProgramArtifact = z.infer<typeof ActionProgramArtifactSchema>;\nconst ProgramInputSourceSchema = z.discriminatedUnion(\"kind\", [\n  ...BindingSourceSchema.options,\n  ExpressionBindingSourceSchema,\n]);\nconst ProgramBindingShape = {\n  bindingId: ContractIdentifierSchema,\n  inputMapping: z.record(ContractIdentifierSchema, ProgramInputSourceSchema),\n  dependencyInputs: z.record(\n    ContractIdentifierSchema,\n    z.record(ContractIdentifierSchema, ProgramInputSourceSchema),\n  ),\n  accessPolicy: AccessPolicySchema,\n  confirmation: I18nTextSchema.optional(),\n  when: PageExpressionSchema.optional(),\n  concurrencyKeyPath: PageValuePathSchema.min(1),\n  refreshAliases: z.record(\n    ContractIdentifierSchema,\n    z.array(ContractIdentifierSchema).min(1).max(128),\n  ),\n  stateAliases: z.record(ContractIdentifierSchema, ContractIdentifierSchema),\n};\nexport const PageProgramActionSchema = z\n  .object({\n    ...ProgramBindingShape,\n    program: ContractIdentifierSchema,\n    port: ContractIdentifierSchema,\n  })\n  .strict();\nexport const ProgramBindingSchema = z\n  .object({\n    ...ProgramBindingShape,\n    source: z\n      .object({\n        capabilityInstanceId: ContractIdentifierSchema,\n        port: ContractIdentifierSchema,\n      })\n      .strict(),\n    sourceIntentSchemaRevisionRef: ProgramSchemaRefSchema,\n    programRevisionRef: RevisionRefSchema.refine(\n      (ref) => ref.kind === \"action-program\",\n      \"Expected action-program reference.\",\n    ),\n    definition: ActionProgramDefinitionSchema,\n  })\n  .strict();\nexport type ProgramBinding = z.infer<typeof ProgramBindingSchema>;\n\nfunction validateProgramBindingTargets(\n  page: {\n    programBindings?: ProgramBinding[];\n    actionBindings: z.infer<typeof ActionBindingSchema>[];\n    queryBindings?: { bindingId: string }[];\n    ontologyBindings: { bindingId: string }[];\n    capabilityInstances: { instanceId: string }[];\n    stateDefinitions?: {\n      stateId: string;\n      schemaRevisionRef: z.infer<typeof RevisionRefSchema>;\n    }[];\n  },\n  context: z.RefinementCtx,\n) {\n  const ids = new Set(page.actionBindings.map((binding) => binding.bindingId));\n  const ports = new Set(\n    page.actionBindings.map(\n      (binding) =>\n        `${binding.source.capabilityInstanceId}:${binding.source.port}`,\n    ),\n  );\n  const dataIds = new Set(\n    [...page.ontologyBindings, ...(page.queryBindings ?? [])].map(\n      (binding) => binding.bindingId,\n    ),\n  );\n  for (const [index, binding] of (page.programBindings ?? []).entries()) {\n    const issue = (message: string) =>\n      context.addIssue({\n        code: \"custom\",\n        path: [\"programBindings\", index],\n        message,\n      });\n    const port = `${binding.source.capabilityInstanceId}:${binding.source.port}`;\n    if (ids.has(binding.bindingId) || ports.has(port))\n      issue(\"Program binding id and event must be exclusive.\");\n    ids.add(binding.bindingId);\n    ports.add(port);\n    if (\n      !page.capabilityInstances.some(\n        (instance) =>\n          instance.instanceId === binding.source.capabilityInstanceId,\n      )\n    )\n      issue(\"Program source instance is missing.\");\n    const exactKeys = (keys: string[], expected: string[]) =>\n      keys.length === expected.length &&\n      keys.every((key) => expected.includes(key));\n    if (\n      !exactKeys(\n        Object.keys(binding.refreshAliases),\n        binding.definition.refreshAliases,\n      ) ||\n      Object.values(binding.refreshAliases).some((targets) =>\n        targets.some((target) => !dataIds.has(target)),\n      )\n    )\n      issue(\n        \"Program refresh aliases must resolve exactly to declared data bindings.\",\n      );\n    if (\n      !exactKeys(\n        Object.keys(binding.stateAliases),\n        binding.definition.stateAliases.map((entry) => entry.alias),\n      )\n    )\n      issue(\"Program state aliases must match its manifest.\");\n    for (const entry of binding.definition.stateAliases) {\n      const state = page.stateDefinitions?.find(\n        (state) => state.stateId === binding.stateAliases[entry.alias],\n      );\n      if (\n        !state ||\n        !exactRevisionRef(state.schemaRevisionRef, entry.schemaRevisionRef)\n      )\n        issue(\"Program state alias has an incompatible Schema.\");\n    }\n    const dependencyIds = binding.definition.dependencies.map(\n      (dep) => dep.revisionRef.id,\n    );\n    if (\n      !Object.keys(binding.dependencyInputs).every((key) =>\n        dependencyIds.includes(key),\n      )\n    )\n      issue(\"Unknown program dependency input mapping.\");\n    for (const dep of binding.definition.dependencies) {\n      if (\n        Object.keys(binding.dependencyInputs[dep.revisionRef.id] ?? {}).some(\n          (key) => dep.dynamicInputKeys.includes(key),\n        )\n      )\n        issue(\"Fixed dependency arguments cannot also be guest-writable.\");\n    }\n  }\n}\n\nexport const PageActionSchema = ActionBindingSchema.omit({\n  commandRevisionRef: true,\n  source: true,\n  sourceIntentSchemaRevisionRef: true,\n  inputSchemaRevisionRef: true,\n  compensationCommandRevisionRef: true,\n  resultSchemaRevisionRef: true,\n})\n  .extend({\n    command: ContractIdentifierSchema,\n    port: ContractIdentifierSchema,\n    compensationCommand: ContractIdentifierSchema.optional(),\n  })\n  .strict();\n\nconst PageEventEffectSchema = z\n  .object({\n    port: ContractIdentifierSchema,\n    refresh: z.array(ContractIdentifierSchema).min(1).max(128),\n  })\n  .strict();\n\nexport interface PageNode {\n  id: string;\n  component: string;\n  kind?: z.infer<typeof RenderNodeKindSchema>;\n  slot?: string;\n  props?: z.infer<typeof JsonObjectSchema>;\n  bindings?: z.infer<typeof PagePropertyBindingSchema>[];\n  model?: z.infer<typeof JsonObjectSchema>;\n  style?: z.infer<typeof RenderStyleSchema>;\n  layout?: z.infer<typeof RenderLayoutSchema>;\n  responsive?: z.infer<typeof RenderResponsiveRuleSchema>[];\n  surface?: z.infer<typeof RenderSurfaceSchema>;\n  scroll?: z.infer<typeof RenderScrollSchema>;\n  activation?: z.infer<typeof RenderActivationSchema>;\n  lifecycle?: z.infer<typeof RenderLifecycleSchema>;\n  state?: z.infer<typeof RenderNodeStateSchema>;\n  access?: z.infer<typeof AccessPolicySchema>;\n  activeWhen?: PageStateActivation;\n  repeat?: {\n    source: z.infer<typeof PageExpressionSchema>;\n    keyPath: string[];\n    limit?: number;\n  };\n  data?: z.infer<typeof PageDataSchema>[];\n  actions?: z.infer<typeof PageActionSchema>[];\n  programActions?: z.infer<typeof PageProgramActionSchema>[];\n  on?: z.infer<typeof PageInteractionSchema>[];\n  effects?: z.infer<typeof PageEventEffectSchema>[];\n  eventPayloads?: Array<{\n    port: string;\n    expression: z.infer<typeof PageExpressionSchema>;\n  }>;\n  children?: PageNode[];\n}\n\nexport const PageNodeSchema: z.ZodType<PageNode> = z.lazy(() =>\n  z\n    .object({\n      id: ContractIdentifierSchema,\n      component: ContractIdentifierSchema,\n      kind: RenderNodeKindSchema.optional(),\n      slot: ContractIdentifierSchema.optional(),\n      props: JsonObjectSchema.optional(),\n      bindings: z.array(PagePropertyBindingSchema).max(128).optional(),\n      model: JsonObjectSchema.optional(),\n      style: RenderStyleSchema.optional(),\n      layout: RenderLayoutSchema.optional(),\n      responsive: z.array(RenderResponsiveRuleSchema).optional(),\n      surface: RenderSurfaceSchema.optional(),\n      scroll: RenderScrollSchema.optional(),\n      activation: RenderActivationSchema.optional(),\n      lifecycle: RenderLifecycleSchema.optional(),\n      state: RenderNodeStateSchema.optional(),\n      access: AccessPolicySchema.optional(),\n      activeWhen: PageStateActivationSchema.optional(),\n      repeat: z\n        .object({\n          source: PageExpressionSchema,\n          keyPath: PageValuePathSchema.min(1),\n          limit: z.number().int().min(1).max(1000).optional(),\n        })\n        .strict()\n        .optional(),\n      data: z.array(PageDataSchema).optional(),\n      actions: z.array(PageActionSchema).optional(),\n      programActions: z.array(PageProgramActionSchema).max(128).optional(),\n      on: z.array(PageInteractionSchema).optional(),\n      effects: z.array(PageEventEffectSchema).optional(),\n      eventPayloads: z\n        .array(\n          z\n            .object({\n              port: ContractIdentifierSchema,\n              expression: PageExpressionSchema,\n            })\n            .strict(),\n        )\n        .optional(),\n      children: z.array(PageNodeSchema).optional(),\n    })\n    .strict(),\n);\n\n/** Host-registered, versioned shared state; no executable code or storage keys in Page. */\nexport const PageSharedStateBindingSchema = z.object({\n  bindingId: ContractIdentifierSchema,\n  provider: z.object({ id: ContractIdentifierSchema, version: z.number().int().positive() }).strict(),\n  states: z.record(ContractIdentifierSchema, ContractIdentifierSchema).refine(value => Object.keys(value).length > 0 && Object.keys(value).length <= 32, \"Map 1–32 state slots.\"),\n  queries: z.record(ContractIdentifierSchema, ContractIdentifierSchema).refine(value => Object.keys(value).length <= 16, \"Map at most 16 query slots.\"),\n  writeInteractions: z.array(ContractIdentifierSchema).max(32),\n}).strict();\nexport type PageSharedStateBinding = z.infer<typeof PageSharedStateBindingSchema>;\n\nconst validateSharedStateBindings = (\n  bindings: PageSharedStateBinding[] | undefined,\n  states: readonly { stateId: string; scopeNodeId?: string }[],\n  queryIds: ReadonlySet<string>,\n  interactions: readonly { bindingId: string; targetStateId: string }[],\n  context: z.RefinementCtx,\n) => {\n  const ids = new Set<string>();\n  const owned = new Set<string>();\n  for (const [index, binding] of (bindings ?? []).entries()) {\n    const issue = (message: string) => context.addIssue({ code: \"custom\", path: [\"sharedStateBindings\", index], message });\n    if (ids.has(binding.bindingId)) issue(\"Shared state binding ids must be unique.\");\n    ids.add(binding.bindingId);\n    const mapped = Object.values(binding.states);\n    for (const id of mapped) {\n      if (owned.has(id)) issue(\"Shared state mappings must have one owner and distinct slots.\");\n      owned.add(id);\n      if (!states.some(state => state.stateId === id && !state.scopeNodeId)) issue(`Shared state ${id} must reference a declared root state.`);\n    }\n    for (const id of Object.values(binding.queries)) if (!queryIds.has(id)) issue(`Unknown shared state query ${id}.`);\n    if (new Set(binding.writeInteractions).size !== binding.writeInteractions.length) issue(\"Shared state write interactions must be unique.\");\n    for (const id of binding.writeInteractions) {\n      const interaction = interactions.find(entry => entry.bindingId === id);\n      if (!interaction || !mapped.includes(interaction.targetStateId)) issue(`Shared state write ${id} must target a mapped state.`);\n    }\n  }\n};\n\nconst InitialQueryPolicySchema = z.enum([\"auto\", \"explicit\", \"disabled\"]);\n\nexport const PageSchema = z\n  .object({\n    contract: z.literal(\"Page\"),\n    schemaVersion: z.literal(DECLARATIVE_CONTROL_SCHEMA_VERSION),\n    pageId: ContractIdentifierSchema,\n    tenantScope: TenantScopeSchema,\n    identity: IdentitySchema,\n    surface: ProductSurfaceSchema,\n    route: RoutePathTemplateSchema,\n    routeSpace: ContractIdentifierSchema.optional(),\n    lifecycle: DeclarativeLifecycleSchema.default(\"active\"),\n    routeStatePresentations: z\n      .array(PageRouteStatePresentationSchema)\n      .max(8)\n      .optional(),\n    shell: ContractIdentifierSchema.optional(),\n    body: PageNodeSchema,\n    initialQueryPolicy: InitialQueryPolicySchema.optional(),\n    state: z.array(PageStateSchema).optional(),\n    sharedStateBindings: z.array(PageSharedStateBindingSchema).max(16).optional(),\n    entryTransitions: z.array(PageEntrySchema).optional(),\n    access: AccessPolicySchema,\n    managementAccess: ManagementAccessSchema,\n    tokens: z.array(ContractIdentifierSchema).optional(),\n    performanceBudget: ContractIdentifierSchema.optional(),\n    observationPolicy: ContractIdentifierSchema.optional(),\n    privacyClassification: z\n      .enum([\"public\", \"internal\", \"confidential\", \"restricted\"])\n      .default(\"internal\"),\n  })\n  .strict()\n  .superRefine((page, context) => {\n    const ids = new Set<string>();\n    const dataIds = new Set<string>();\n    const actionIds = new Set<string>();\n    const interactionIds = new Set<string>();\n    const sharedInteractions: { bindingId: string; targetStateId: string }[] = [];\n    const visit = (node: PageNode, path: Array<string | number>) => {\n      if (ids.has(node.id))\n        context.addIssue({\n          code: \"custom\",\n          path: [...path, \"id\"],\n          message: `Duplicate Page node id ${node.id}.`,\n        });\n      ids.add(node.id);\n      for (const [field, values, target] of [\n        [\"data\", node.data ?? [], dataIds],\n        [\"actions\", node.actions ?? [], actionIds],\n        [\"programActions\", node.programActions ?? [], actionIds],\n        [\"on\", node.on ?? [], interactionIds],\n      ] as const)\n        for (const [index, value] of values.entries()) {\n          if (target.has(value.bindingId))\n            context.addIssue({\n              code: \"custom\",\n              path: [...path, field, index, \"bindingId\"],\n              message: `Duplicate Page binding id ${value.bindingId}.`,\n            });\n          target.add(value.bindingId);\n        }\n      sharedInteractions.push(...(node.on ?? []));\n      (node.children ?? []).forEach((child, index) =>\n        visit(child, [...path, \"children\", index]),\n      );\n    };\n    visit(page.body, [\"body\"]);\n    validateSharedStateBindings(page.sharedStateBindings, page.state ?? [], dataIds, sharedInteractions, context);\n    const stateIds = (page.state ?? []).map((entry) => entry.stateId);\n    if (new Set(stateIds).size !== stateIds.length)\n      context.addIssue({\n        code: \"custom\",\n        path: [\"state\"],\n        message: \"Page state ids must be unique.\",\n      });\n  });\n\nexport const ResolvedPageSchema = z\n  .object({\n    contract: z.literal(\"Page\"),\n    schemaVersion: z.literal(DECLARATIVE_CONTROL_SCHEMA_VERSION),\n    pageId: ContractIdentifierSchema,\n    tenantScope: TenantScopeSchema,\n    identity: IdentitySchema,\n    supportedSurfaces: z.array(ProductSurfaceSchema).min(1),\n    lifecycle: DeclarativeLifecycleSchema,\n    legacyRoutePolicy: LegacyRoutePolicySchema.optional(),\n    migrationEquivalence: PageMigrationEquivalenceSchema.optional(),\n    routeStatePresentations: z\n      .array(PageRouteStatePresentationSchema)\n      .max(8)\n      .optional(),\n    routeClaims: z\n      .array(\n        z.union([\n          DeclarativeRouteClaimSchema,\n          LegacyDeclarativeRouteClaimSchema,\n        ]),\n      )\n      .min(1),\n    shellRevisionRef: RevisionRefSchema,\n    renderTree: RenderTreeSchema,\n    capabilityInstances: z.array(CapabilityInstanceSchema).min(1),\n    stateDefinitions: z.array(PageStateDefinitionSchema).optional(),\n    sharedStateBindings: z.array(PageSharedStateBindingSchema).max(16).optional(),\n    entryTransitions: z.array(PageEntryTransitionSchema).optional(),\n    interactionBindings: z.array(InteractionBindingSchema).optional(),\n    ontologyBindings: z.array(PersistedOntologyBindingSchema),\n    queryBindings: z.array(QueryBindingSchema).optional(),\n    initialQueryPolicy: InitialQueryPolicySchema.optional(),\n    actionBindings: z.array(ActionBindingSchema),\n    programBindings: z.array(ProgramBindingSchema).max(128).optional(),\n    pageAccessPolicy: AccessPolicySchema,\n    managementAccess: ManagementAccessSchema,\n    tokenRevisionRefs: z.array(RevisionRefSchema).min(1),\n    performanceBudgetRef: RevisionRefSchema,\n    observationPolicyRevisionRef: RevisionRefSchema,\n    privacyClassification: z.enum([\n      \"public\",\n      \"internal\",\n      \"confidential\",\n      \"restricted\",\n    ]),\n  })\n  .strict()\n  .superRefine((value, context) => {\n    validateProgramBindingTargets(value, context);\n    validateDeclaredRouteSurfaces(\n      value.supportedSurfaces,\n      value.routeClaims,\n      context,\n    );\n    const routeStatePresentations = value.routeStatePresentations ?? [];\n    if (\n      uniqueArray(\n        routeStatePresentations,\n        (candidate) => `${candidate.surface}:${candidate.state}`,\n      )\n    ) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"routeStatePresentations\"],\n        message:\n          \"Page route-state presentations must be unique per surface and state.\",\n      });\n    }\n    routeStatePresentations.forEach((presentation, index) => {\n      if (!value.supportedSurfaces.includes(presentation.surface)) {\n        context.addIssue({\n          code: \"custom\",\n          path: [\"routeStatePresentations\", index, \"surface\"],\n          message:\n            \"Page route-state presentation surface must be declared by supportedSurfaces.\",\n        });\n      }\n    });\n    validateSharedStateBindings(value.sharedStateBindings, value.stateDefinitions ?? [], new Set([...(value.queryBindings ?? []), ...value.ontologyBindings].map(binding => binding.bindingId)), value.interactionBindings ?? [], context);\n    const stateDefinitions = value.stateDefinitions ?? [];\n    const entryTransitions = value.entryTransitions ?? [];\n    const interactionBindings = value.interactionBindings ?? [];\n    const queryBindings = value.queryBindings ?? [];\n    stateDefinitions.forEach((definition, index) => {\n      const partitionStateId = definition.preferencePartitionStateId;\n      const dynamicLegacySegments =\n        definition.legacyBrowserPreferenceImport?.jsonPath?.filter(\n          (segment) => typeof segment !== \"string\",\n        ) ?? [];\n      if (!partitionStateId) {\n        if (dynamicLegacySegments.length > 0) {\n          context.addIssue({\n            code: \"custom\",\n            path: [\n              \"stateDefinitions\",\n              index,\n              \"legacyBrowserPreferenceImport\",\n              \"jsonPath\",\n            ],\n            message:\n              \"A dynamic legacy preference path requires a declared preference partition state.\",\n          });\n        }\n        return;\n      }\n      const partitionDefinition = stateDefinitions.find(\n        (candidate) => candidate.stateId === partitionStateId,\n      );\n      if (\n        partitionStateId === definition.stateId ||\n        !partitionDefinition ||\n        partitionDefinition.preferencePartitionStateId\n      ) {\n        context.addIssue({\n          code: \"custom\",\n          path: [\"stateDefinitions\", index, \"preferencePartitionStateId\"],\n          message:\n            \"Preference partitioning must reference a distinct, non-partitioned Page state.\",\n        });\n      }\n      definition.legacyBrowserPreferenceImport?.jsonPath?.forEach(\n        (segment, segmentIndex) => {\n          if (\n            typeof segment !== \"string\" &&\n            segment.stateId !== partitionStateId\n          ) {\n            context.addIssue({\n              code: \"custom\",\n              path: [\n                \"stateDefinitions\",\n                index,\n                \"legacyBrowserPreferenceImport\",\n                \"jsonPath\",\n                segmentIndex,\n              ],\n              message:\n                \"A dynamic legacy preference path must use the declared preference partition state.\",\n            });\n          }\n        },\n      );\n    });\n    const uniqueness: Array<\n      [\n        string,\n        readonly {\n          [key: string]: unknown;\n        }[],\n        (candidate: { [key: string]: unknown }) => string,\n      ]\n    > = [\n      [\n        \"capabilityInstances\",\n        value.capabilityInstances,\n        (candidate) => String(candidate.instanceId),\n      ],\n      [\n        \"stateDefinitions\",\n        stateDefinitions,\n        (candidate) => String(candidate.stateId),\n      ],\n      [\n        \"entryTransitions\",\n        entryTransitions,\n        (candidate) => String(candidate.transitionId),\n      ],\n      [\n        \"interactionBindings\",\n        interactionBindings,\n        (candidate) => String(candidate.bindingId),\n      ],\n      [\n        \"ontologyBindings\",\n        value.ontologyBindings,\n        (candidate) => String(candidate.bindingId),\n      ],\n      [\n        \"queryBindings\",\n        queryBindings,\n        (candidate) => String(candidate.bindingId),\n      ],\n      [\n        \"actionBindings\",\n        value.actionBindings,\n        (candidate) => String(candidate.bindingId),\n      ],\n    ];\n    uniqueness.forEach(([field, values, identity]) => {\n      if (uniqueArray(values, identity))\n        context.addIssue({\n          code: \"custom\",\n          path: [field],\n          message: `${field} identities must be unique.`,\n        });\n    });\n    const instanceIds = new Set(\n      value.capabilityInstances.map((instance) => instance.instanceId),\n    );\n    const stateIds = new Set(stateDefinitions.map((state) => state.stateId));\n    value.capabilityInstances.forEach((instance, index) => {\n      const ports = new Set<string>();\n      const payloadPorts = new Set<string>();\n      instance.eventPayloadBindings?.forEach((binding, bindingIndex) => {\n        const path = [\n          \"capabilityInstances\",\n          index,\n          \"eventPayloadBindings\",\n          bindingIndex,\n        ];\n        if (payloadPorts.has(binding.port))\n          context.addIssue({\n            code: \"custom\",\n            path,\n            message:\n              \"An event payload can have only one declarative projection.\",\n          });\n        payloadPorts.add(binding.port);\n        for (const read of collectPageExpressionReads(binding.expression)) {\n          if (\n            read.root === \"actions\" ||\n            read.root === \"result\" ||\n            (read.root === \"state\" && !stateIds.has(read.path[0] ?? \"\")) ||\n            ((read.root === \"bindings\" || read.root === \"queries\") &&\n              ![...value.ontologyBindings, ...queryBindings].some(\n                (candidate) => candidate.bindingId === read.path[0],\n              ))\n          )\n            context.addIssue({\n              code: \"custom\",\n              path,\n              message:\n                \"Event payload projections require local event, model, scope, declared query results, or declared state.\",\n            });\n        }\n      });\n\n      instance.eventEffects?.forEach((effect, effectIndex) => {\n        const path = [\n          \"capabilityInstances\",\n          index,\n          \"eventEffects\",\n          effectIndex,\n        ];\n        if (\n          effect.sourceIntentSchemaRevisionRef.kind !== \"schema\" ||\n          ports.has(effect.sourcePort)\n        )\n          context.addIssue({\n            code: \"custom\",\n            path,\n            message:\n              \"Event effects require one exact source schema per output port.\",\n          });\n        ports.add(effect.sourcePort);\n        if (\n          value.actionBindings.some(\n            (binding) =>\n              binding.source.capabilityInstanceId === instance.instanceId &&\n              binding.source.port === effect.sourcePort,\n          )\n        )\n          context.addIssue({\n            code: \"custom\",\n            path,\n            message:\n              \"An Action output port must declare refresh effects through Action.success.\",\n          });\n        for (const id of effect.refreshBindingIds)\n          if (\n            ![...value.ontologyBindings, ...queryBindings].some(\n              (binding) => binding.bindingId === id,\n            )\n          )\n            context.addIssue({\n              code: \"custom\",\n              path,\n              message: \"Event effect references an unknown query binding.\",\n            });\n      });\n    });\n\n    const repeatNodes = new Set(\n      value.renderTree.nodes\n        .filter((node) => node.repeat)\n        .map((node) => node.nodeId),\n    );\n    stateDefinitions.forEach((definition, index) => {\n      if (definition.scopeNodeId && !repeatNodes.has(definition.scopeNodeId))\n        context.addIssue({\n          code: \"custom\",\n          path: [\"stateDefinitions\", index, \"scopeNodeId\"],\n          message:\n            \"Instance state must reference an existing repeated RenderNode.\",\n        });\n      if (definition.initialValue && !definition.scopeNodeId) {\n        const expression = definition.initialValue;\n        const source =\n          expression.kind === \"read\"\n            ? stateDefinitions.find(\n                (state) =>\n                  state.stateId === expression.path[0] && !state.scopeNodeId,\n              )\n            : undefined;\n        if (\n          !source ||\n          source.initialValue ||\n          ![\"tenant-preference\", \"url-with-tenant-preference\"].includes(\n            source.persistence,\n          )\n        )\n          context.addIssue({\n            code: \"custom\",\n            path: [\"stateDefinitions\", index, \"initialValue\"],\n            message:\n              \"Root initialization requires an independently hydrated tenant preference; initialization chains are forbidden.\",\n          });\n      }\n      if (definition.initialValue) {\n        for (const read of collectPageExpressionReads(\n          definition.initialValue,\n        )) {\n          if (\n            ![\"scope\", \"state\"].includes(read.root) ||\n            (read.root === \"state\" &&\n              !stateDefinitions.some(\n                (state) => state.stateId === read.path[0] && !state.scopeNodeId,\n              ))\n          )\n            context.addIssue({\n              code: \"custom\",\n              path: [\"stateDefinitions\", index, \"initialValue\"],\n              message:\n                \"Instance initial values can read only their item scope and declared Page state.\",\n            });\n        }\n      }\n    });\n    value.renderTree.nodes.forEach((node, index) => {\n      if (!node.repeat) return;\n      for (const read of collectPageExpressionReads(node.repeat.source)) {\n        if (\n          read.root === \"actions\" ||\n          read.root === \"intent\" ||\n          read.root === \"result\" ||\n          read.root === \"model\" ||\n          (read.root === \"state\" && !stateIds.has(read.path[0] ?? \"\")) ||\n          ((read.root === \"bindings\" || read.root === \"queries\") &&\n            ![...value.ontologyBindings, ...queryBindings].some(\n              (binding) => binding.bindingId === read.path[0],\n            ))\n        )\n          context.addIssue({\n            code: \"custom\",\n            path: [\"renderTree\", \"nodes\", index, \"repeat\", \"source\"],\n            message:\n              \"Repeated nodes require declared Page state, query results, or parent item scope.\",\n          });\n      }\n    });\n\n    // A declaration can consume its own instance or ancestors, never an arbitrary sibling row.\n    const renderNodesById = new Map(\n      value.renderTree.nodes.map((node) => [node.nodeId, node]),\n    );\n    const instanceNodes = new Map(\n      value.capabilityInstances.map((instance) => [\n        instance.instanceId,\n        instance.nodeId,\n      ]),\n    );\n    const scopesForNode = (nodeId: string | undefined): Set<string> => {\n      const scopes = new Set<string>();\n      const visited = new Set<string>();\n      let node = nodeId ? renderNodesById.get(nodeId) : undefined;\n      while (node && !visited.has(node.nodeId)) {\n        visited.add(node.nodeId);\n        if (node.repeat) scopes.add(node.nodeId);\n        node = node.parentNodeId\n          ? renderNodesById.get(node.parentNodeId)\n          : undefined;\n      }\n      return scopes;\n    };\n    const queryOwners = new Map(\n      [...value.ontologyBindings, ...queryBindings].map((binding) => [\n        binding.bindingId,\n        [\n          ...scopesForNode(\n            instanceNodes.get(binding.target.capabilityInstanceId),\n          ),\n        ][0],\n      ]),\n    );\n    const actionScopes = new Map(\n      value.actionBindings.map((binding) => [\n        binding.bindingId,\n        scopesForNode(instanceNodes.get(binding.source.capabilityInstanceId)),\n      ]),\n    );\n    const actionOwners = new Map(\n      [...actionScopes].map(([id, scopes]) => [id, [...scopes][0]]),\n    );\n    if (actionOwners.size !== value.actionBindings.length)\n      context.addIssue({\n        code: \"custom\",\n        path: [\"actionBindings\"],\n        message: \"Action binding identifiers must be unique.\",\n      });\n    const checkScopedReads = (\n      reads: ReturnType<typeof collectPageExpressionReads>,\n      scopes: Set<string>,\n      path: (string | number)[],\n    ) => {\n      for (const read of reads) {\n        if (\n          read.root === \"queries\" &&\n          (!read.path[0] ||\n            ![...value.ontologyBindings, ...queryBindings].some(\n              (binding) => binding.bindingId === read.path[0],\n            ) ||\n            read.path.length !== 2 ||\n            ![\"status\", \"hasData\", \"errorCode\"].includes(read.path[1] ?? \"\"))\n        )\n          context.addIssue({\n            code: \"custom\",\n            path,\n            message:\n              \"Query lifecycle expressions require a declared binding and may read only status, hasData, or errorCode.\",\n          });\n        const owner =\n          read.root === \"state\"\n            ? stateDefinitions.find((state) => state.stateId === read.path[0])\n                ?.scopeNodeId\n            : read.root === \"bindings\"\n              ? queryOwners.get(read.path[0])\n              : read.root === \"queries\"\n                ? queryOwners.get(read.path[0])\n                : read.root === \"actions\"\n                  ? actionOwners.get(read.path[0])\n                  : undefined;\n        // A parent may observe only aggregate pending for its descendant action scopes.\n        // Error codes and individual row state remain scoped; unrelated repeat branches cannot aggregate.\n        const pendingAggregate =\n          read.root === \"actions\" &&\n          read.path.length === 2 &&\n          read.path[1] === \"pending\" &&\n          actionScopes.has(read.path[0]) &&\n          [...scopes].every((scope) =>\n            actionScopes.get(read.path[0])!.has(scope),\n          );\n        if (owner && !scopes.has(owner) && !pendingAggregate)\n          context.addIssue({\n            code: \"custom\",\n            path,\n            message:\n              \"A binding cannot read state, query results, or individual action status from a sibling or descendant instance.\",\n          });\n      }\n    };\n    const checkScopedSources = (\n      sources: Record<\n        string,\n        | z.infer<typeof BindingSourceSchema>\n        | z.infer<typeof InteractionBindingSourceSchema>\n        | z.infer<typeof FileFieldBindingSourceSchema>\n      >,\n      scopes: Set<string>,\n      path: (string | number)[],\n    ) => {\n      Object.entries(sources).forEach(([name, source]) => {\n        if (source.kind === \"expression\")\n          checkScopedReads(\n            collectPageExpressionReads(source.expression),\n            scopes,\n            [...path, name],\n          );\n        if (source.kind === \"page-state\")\n          checkScopedReads(\n            [{ kind: \"read\", root: \"state\", path: [source.stateId] }],\n            scopes,\n            [...path, name],\n          );\n        if (source.kind === \"binding-field\")\n          checkScopedReads(\n            [{ kind: \"read\", root: \"bindings\", path: [source.bindingId] }],\n            scopes,\n            [...path, name],\n          );\n        if (source.kind === \"scope-field\" && scopes.size === 0)\n          context.addIssue({\n            code: \"custom\",\n            path: [...path, name],\n            message: \"A scope field requires a repeated instance.\",\n          });\n      });\n    };\n    value.capabilityInstances.forEach((instance, index) =>\n      instance.eventPayloadBindings?.forEach((binding, bindingIndex) =>\n        checkScopedReads(\n          collectPageExpressionReads(binding.expression),\n          scopesForNode(instance.nodeId),\n          [\"capabilityInstances\", index, \"eventPayloadBindings\", bindingIndex],\n        ),\n      ),\n    );\n    value.capabilityInstances.forEach((instance, index) =>\n      instance.propertyBindings?.forEach((binding, bindingIndex) => {\n        checkScopedReads(\n          collectPageExpressionReads(binding.expression),\n          scopesForNode(instance.nodeId),\n          [\"capabilityInstances\", index, \"propertyBindings\", bindingIndex],\n        );\n      }),\n    );\n    for (const [collection, bindings] of [\n      [\"ontologyBindings\", value.ontologyBindings],\n      [\"queryBindings\", queryBindings],\n    ] as const) {\n      bindings.forEach((binding, index) =>\n        checkScopedSources(\n          binding.parameters,\n          scopesForNode(instanceNodes.get(binding.target.capabilityInstanceId)),\n          [collection, index, \"parameters\"],\n        ),\n      );\n    }\n    (value.programBindings ?? []).forEach((binding, index) => {\n      const scopes = scopesForNode(\n        instanceNodes.get(binding.source.capabilityInstanceId),\n      );\n      checkScopedSources(binding.inputMapping, scopes, [\n        \"programBindings\",\n        index,\n        \"inputMapping\",\n      ]);\n      for (const [id, mapping] of Object.entries(binding.dependencyInputs))\n        checkScopedSources(mapping, scopes, [\n          \"programBindings\",\n          index,\n          \"dependencyInputs\",\n          id,\n        ]);\n      if (binding.when) {\n        const reads = collectPageExpressionReads(binding.when);\n        checkScopedReads(reads, scopes, [\"programBindings\", index, \"when\"]);\n        if (\n          reads.some(\n            (read) => read.root === \"state\" && !stateIds.has(read.path[0]!),\n          )\n        )\n          context.addIssue({\n            code: \"custom\",\n            path: [\"programBindings\", index, \"when\"],\n            message: \"Program condition references an unknown Page state.\",\n          });\n      }\n    });\n    value.actionBindings.forEach((binding, index) => {\n      const scopes = scopesForNode(\n        instanceNodes.get(binding.source.capabilityInstanceId),\n      );\n      checkScopedSources(binding.inputMapping, scopes, [\n        \"actionBindings\",\n        index,\n        \"inputMapping\",\n      ]);\n      for (const [fileIndex, file] of (binding.fileInputs ?? []).entries()) {\n        if (file.source.kind === \"page-state\") {\n          const stateId = file.source.stateId;\n          const state = stateDefinitions.find(\n            (candidate) => candidate.stateId === stateId,\n          );\n          if (!state || state.persistence !== \"none\")\n            context.addIssue({\n              code: \"custom\",\n              path: [\"actionBindings\", index, \"fileInputs\", fileIndex],\n              message:\n                \"File handles require declared nonpersistent Page state.\",\n            });\n          checkScopedSources({ file: file.source }, scopes, [\n            \"actionBindings\",\n            index,\n            \"fileInputs\",\n            fileIndex,\n          ]);\n        }\n      }\n\n      if (binding.when) {\n        const reads = collectPageExpressionReads(binding.when);\n        checkScopedReads(reads, scopes, [\"actionBindings\", index, \"when\"]);\n        for (const read of reads)\n          if (read.root === \"state\" && !stateIds.has(read.path[0]!))\n            context.addIssue({\n              code: \"custom\",\n              path: [\"actionBindings\", index, \"when\"],\n              message: \"Action condition references an unknown Page state.\",\n            });\n      }\n    });\n    interactionBindings.forEach((binding, index) => {\n      const sourceScopes = scopesForNode(\n        instanceNodes.get(binding.source.capabilityInstanceId),\n      );\n      const targetScope = stateDefinitions.find(\n        (state) => state.stateId === binding.targetStateId,\n      )?.scopeNodeId;\n      if (targetScope && !sourceScopes.has(targetScope))\n        context.addIssue({\n          code: \"custom\",\n          path: [\"interactionBindings\", index, \"targetStateId\"],\n          message:\n            \"An interaction must target its own instance or an ancestor.\",\n        });\n      checkScopedSources(\n        binding.inputMapping,\n        targetScope ? scopesForNode(targetScope) : new Set(),\n        [\"interactionBindings\", index, \"inputMapping\"],\n      );\n    });\n    value.renderTree.nodes.forEach((node, index) => {\n      if (node.repeat)\n        checkScopedReads(\n          collectPageExpressionReads(node.repeat.source),\n          scopesForNode(node.parentNodeId),\n          [\"renderTree\", \"nodes\", index, \"repeat\", \"source\"],\n        );\n    });\n\n    entryTransitions.forEach((transition, transitionIndex) => {\n      if (\n        transition.gestureSource &&\n        (!instanceIds.has(transition.gestureSource.capabilityInstanceId) ||\n          !interactionBindings.some(\n            (binding) =>\n              binding.source.capabilityInstanceId ===\n                transition.gestureSource!.capabilityInstanceId &&\n              binding.source.port === transition.gestureSource!.port,\n          ))\n      ) {\n        context.addIssue({\n          code: \"custom\",\n          path: [\"entryTransitions\", transitionIndex, \"gestureSource\"],\n          message:\n            \"Entry gesture source must match an existing capability interaction source.\",\n        });\n      }\n      if (\n        transition.targetRef.kind === \"page\" &&\n        transition.targetRef.id === value.pageId\n      ) {\n        context.addIssue({\n          code: \"custom\",\n          path: [\"entryTransitions\", transitionIndex, \"targetRef\"],\n          message: \"A Page cannot route into itself on entry.\",\n        });\n      }\n      forEachPageStateCondition(\n        transition.activation,\n        (condition, conditionPath) => {\n          if (!stateIds.has(condition.stateId)) {\n            context.addIssue({\n              code: \"custom\",\n              path: [\n                \"entryTransitions\",\n                transitionIndex,\n                \"activation\",\n                ...conditionPath,\n                \"stateId\",\n              ],\n              message: `Entry transition references unknown Page state ${condition.stateId}.`,\n            });\n          }\n        },\n      );\n      const declaredRouteParameters = new Set(\n        value.routeClaims.flatMap((claim) =>\n          [...claim.pathTemplate.matchAll(/:([A-Za-z][A-Za-z0-9_-]*)/g)].map(\n            (match) => match[1],\n          ),\n        ),\n      );\n      for (const source of [\n        ...Object.values(transition.pathParameters),\n        ...Object.values(transition.query.set),\n      ]) {\n        if (\n          source.kind === \"route-parameter\" &&\n          !declaredRouteParameters.has(source.name)\n        ) {\n          context.addIssue({\n            code: \"custom\",\n            path: [\"entryTransitions\", transitionIndex],\n            message: `Entry transition references unknown source route parameter ${source.name}.`,\n          });\n        }\n      }\n      const stateSources = [\n        ...Object.values(transition.pathParameters).flatMap((source) =>\n          source.kind === \"page-state\" ? [source.stateId] : [],\n        ),\n        ...Object.values(transition.query.set).flatMap((source) =>\n          source.kind === \"page-state\" ? [source.stateId] : [],\n        ),\n      ];\n      stateSources.forEach((stateId) => {\n        if (!stateIds.has(stateId)) {\n          context.addIssue({\n            code: \"custom\",\n            path: [\"entryTransitions\", transitionIndex],\n            message: `Entry transition references unknown Page state ${stateId}.`,\n          });\n        }\n      });\n    });\n    const validatePageStateSources = (\n      sources: Record<\n        string,\n        | z.infer<typeof BindingSourceSchema>\n        | z.infer<typeof InteractionBindingSourceSchema>\n        | z.infer<typeof FileFieldBindingSourceSchema>\n      >,\n      path: (string | number)[],\n    ) => {\n      Object.entries(sources).forEach(([name, source]) => {\n        if (source.kind === \"expression\") {\n          for (const read of collectPageExpressionReads(source.expression)) {\n            if (\n              (read.root === \"state\" &&\n                (!read.path[0] || !stateIds.has(read.path[0]))) ||\n              read.root === \"model\" ||\n              read.root === \"bindings\" ||\n              (read.root === \"result\" && path[0] !== \"interactionBindings\")\n            ) {\n              context.addIssue({\n                code: \"custom\",\n                path: [...path, name, \"expression\"],\n                message:\n                  \"Expression references unavailable context or an undeclared Page state.\",\n              });\n            }\n          }\n        }\n        if (source.kind === \"page-state\" && !stateIds.has(source.stateId)) {\n          context.addIssue({\n            code: \"custom\",\n            path: [...path, name, \"stateId\"],\n            message: `Unknown Page state: ${source.stateId}`,\n          });\n        }\n      });\n    };\n    interactionBindings.forEach((binding, index) => {\n      if (!instanceIds.has(binding.source.capabilityInstanceId)) {\n        context.addIssue({\n          code: \"custom\",\n          path: [\n            \"interactionBindings\",\n            index,\n            \"source\",\n            \"capabilityInstanceId\",\n          ],\n          message:\n            \"Interaction binding sources an unknown capability instance.\",\n        });\n      }\n      if (!stateIds.has(binding.targetStateId)) {\n        context.addIssue({\n          code: \"custom\",\n          path: [\"interactionBindings\", index, \"targetStateId\"],\n          message: \"Interaction binding targets an unknown Page state.\",\n        });\n      }\n      validatePageStateSources(binding.inputMapping, [\n        \"interactionBindings\",\n        index,\n        \"inputMapping\",\n      ]);\n      if (\n        Object.values(binding.inputMapping).some(\n          (source) =>\n            source.kind === \"result-field\" ||\n            (source.kind === \"expression\" &&\n              collectPageExpressionReads(source.expression).some(\n                (read) => read.root === \"result\",\n              )),\n        )\n      ) {\n        const action = value.actionBindings.find(\n          (candidate) =>\n            candidate.source.capabilityInstanceId ===\n              binding.source.capabilityInstanceId &&\n            candidate.source.port === binding.source.port,\n        );\n        if (!action) {\n          context.addIssue({\n            code: \"custom\",\n            path: [\"interactionBindings\", index, \"source\"],\n            message:\n              \"Result-field interactions must source one declared Action binding.\",\n          });\n        } else if (\n          !binding.sourceResultSchemaRevisionRef ||\n          !exactRevisionRef(\n            binding.sourceResultSchemaRevisionRef,\n            action.resultSchemaRevisionRef,\n          )\n        ) {\n          context.addIssue({\n            code: \"custom\",\n            path: [\n              \"interactionBindings\",\n              index,\n              \"sourceResultSchemaRevisionRef\",\n            ],\n            message:\n              \"Interaction result schema must exactly match the sourced Action result schema.\",\n          });\n        }\n      }\n    });\n    value.capabilityInstances.forEach((instance, index) => {\n      const paths: string[][] = [];\n      instance.propertyBindings?.forEach((binding, bindingIndex) => {\n        const path = [\n          \"capabilityInstances\",\n          index,\n          \"propertyBindings\",\n          bindingIndex,\n        ];\n        if (\n          instance.capabilityRevisionRef.id.startsWith(\n            \"monkeys.design.component.\",\n          )\n        ) {\n          const [group, member, field] = binding.targetPath;\n          const messages = instance.properties.messages;\n          const message =\n            messages && typeof messages === \"object\" && !Array.isArray(messages)\n              ? messages[member]\n              : undefined;\n          const declaredMessage =\n            message && typeof message === \"object\" && !Array.isArray(message);\n          const allowed =\n            (group === \"props\" && binding.targetPath.length >= 2) ||\n            (group === \"messages\" &&\n              declaredMessage &&\n              ((field === \"values\" && binding.targetPath.length >= 3) ||\n                (binding.targetPath.length === 3 &&\n                  (field === \"key\" || field === \"textI18n\") &&\n                  Object.prototype.hasOwnProperty.call(message, field))));\n          if (!allowed)\n            context.addIssue({\n              code: \"custom\",\n              path: [...path, \"targetPath\"],\n              message:\n                \"Component expressions can update property values or declared message fields, never executable wiring.\",\n            });\n        }\n\n        if (\n          paths.some((previous) =>\n            previous\n              .slice(0, Math.min(previous.length, binding.targetPath.length))\n              .every((key, i) => key === binding.targetPath[i]),\n          )\n        ) {\n          context.addIssue({\n            code: \"custom\",\n            path: [...path, \"targetPath\"],\n            message: \"Dynamic property targets must not overlap.\",\n          });\n        }\n        paths.push(binding.targetPath);\n        visitPageExpression(binding.expression, (expression) => {\n          if (expression.kind !== \"read\") return;\n          if (\n            expression.root === \"state\" &&\n            (!expression.path[0] || !stateIds.has(expression.path[0]))\n          ) {\n            context.addIssue({\n              code: \"custom\",\n              path: [...path, \"expression\"],\n              message:\n                \"Property expressions must reference a declared Page state.\",\n            });\n          }\n          if (\n            (expression.root === \"bindings\" || expression.root === \"queries\") &&\n            ![...value.ontologyBindings, ...queryBindings].some(\n              (candidate) => candidate.bindingId === expression.path[0],\n            )\n          ) {\n            context.addIssue({\n              code: \"custom\",\n              path: [...path, \"expression\"],\n              message:\n                \"Property expressions must reference a declared Page query binding.\",\n            });\n          }\n          if (\n            expression.root === \"actions\" &&\n            (expression.path.length !== 2 ||\n              !actionOwners.has(expression.path[0]) ||\n              ![\"pending\", \"errorCode\"].includes(expression.path[1]))\n          ) {\n            context.addIssue({\n              code: \"custom\",\n              path: [...path, \"expression\"],\n              message:\n                \"Property expressions may read only pending or errorCode from a declared Action binding.\",\n            });\n          }\n          if (expression.root === \"intent\" || expression.root === \"result\") {\n            context.addIssue({\n              code: \"custom\",\n              path: [...path, \"expression\"],\n              message:\n                \"Property expressions cannot read transient event or Action results.\",\n            });\n          }\n        });\n      });\n      if (!instance.activationWhen) return;\n      forEachPageStateCondition(\n        instance.activationWhen,\n        (condition, conditionPath) => {\n          if (!stateIds.has(condition.stateId)) {\n            context.addIssue({\n              code: \"custom\",\n              path: [\n                \"capabilityInstances\",\n                index,\n                \"activationWhen\",\n                ...conditionPath,\n                \"stateId\",\n              ],\n              message:\n                \"Capability activation condition references an unknown Page state.\",\n            });\n          }\n        },\n      );\n    });\n    value.ontologyBindings.forEach((binding, index) => {\n      if (!instanceIds.has(binding.target.capabilityInstanceId)) {\n        context.addIssue({\n          code: \"custom\",\n          path: [\"ontologyBindings\", index, \"target\", \"capabilityInstanceId\"],\n          message: \"Ontology binding targets an unknown capability instance.\",\n        });\n      }\n      validatePageStateSources(binding.parameters, [\n        \"ontologyBindings\",\n        index,\n        \"parameters\",\n      ]);\n    });\n    queryBindings.forEach((binding, index) => {\n      if (!instanceIds.has(binding.target.capabilityInstanceId)) {\n        context.addIssue({\n          code: \"custom\",\n          path: [\"queryBindings\", index, \"target\", \"capabilityInstanceId\"],\n          message: \"Query binding targets an unknown capability instance.\",\n        });\n      }\n      validatePageStateSources(binding.parameters, [\n        \"queryBindings\",\n        index,\n        \"parameters\",\n      ]);\n      if (binding.queryWhen) {\n        forEachPageStateCondition(\n          binding.queryWhen,\n          (condition, conditionPath) => {\n            if (!stateIds.has(condition.stateId)) {\n              context.addIssue({\n                code: \"custom\",\n                path: [\n                  \"queryBindings\",\n                  index,\n                  \"queryWhen\",\n                  ...conditionPath,\n                  \"stateId\",\n                ],\n                message:\n                  \"Query activation condition references an unknown Page state.\",\n              });\n            }\n          },\n        );\n      }\n      if (binding.refreshPolicy?.when) {\n        const path = [\"queryBindings\", index, \"refreshPolicy\", \"when\"];\n        const reads = collectExternalPageExpressionReads(\n          binding.refreshPolicy.when,\n        );\n        checkScopedReads(\n          reads,\n          scopesForNode(instanceNodes.get(binding.target.capabilityInstanceId)),\n          path,\n        );\n        for (const read of reads)\n          if (read.root === \"actions\" && !actionScopes.has(read.path[0]))\n            context.addIssue({\n              code: \"custom\",\n              path,\n              message:\n                \"Automatic refresh condition references an unknown action binding.\",\n            });\n      }\n      const effectOwners = new Set(\n        binding.stateEffects?.map(\n          (effect) =>\n            stateDefinitions.find(\n              (definition) => definition.stateId === effect.targetStateId,\n            )?.scopeNodeId ?? \"\",\n        ) ?? [],\n      );\n      if (effectOwners.size > 1)\n        context.addIssue({\n          code: \"custom\",\n          path: [\"queryBindings\", index, \"stateEffects\"],\n          message:\n            \"A query completion must update a single state owner atomically.\",\n        });\n      binding.stateEffects?.forEach((effect, effectIndex) => {\n        const path = [\"queryBindings\", index, \"stateEffects\", effectIndex];\n        const state = stateDefinitions.find(\n          (definition) => definition.stateId === effect.targetStateId,\n        );\n        const scopes = scopesForNode(\n          instanceNodes.get(binding.target.capabilityInstanceId),\n        );\n        if (!state || (state.scopeNodeId && !scopes.has(state.scopeNodeId)))\n          context.addIssue({\n            code: \"custom\",\n            path: [...path, \"targetStateId\"],\n            message:\n              \"A query effect must target declared state in its own scope or an ancestor.\",\n          });\n        for (const expression of [\n          effect.value,\n          ...(effect.when ? [effect.when] : []),\n        ]) {\n          const reads = collectPageExpressionReads(expression);\n          checkScopedReads(\n            reads,\n            state?.scopeNodeId ? scopesForNode(state.scopeNodeId) : new Set(),\n            path,\n          );\n          for (const read of reads)\n            if (read.root === \"state\" && !stateIds.has(read.path[0]!))\n              context.addIssue({\n                code: \"custom\",\n                path,\n                message: \"Query effect references an unknown Page state.\",\n              });\n        }\n      });\n      binding.resultStateBindings?.forEach((resultBinding, resultIndex) => {\n        const stateDefinition = stateDefinitions.find(\n          (definition) => definition.stateId === resultBinding.targetStateId,\n        );\n        if (!stateDefinition) {\n          context.addIssue({\n            code: \"custom\",\n            path: [\n              \"queryBindings\",\n              index,\n              \"resultStateBindings\",\n              resultIndex,\n              \"targetStateId\",\n            ],\n            message: \"Query result binding targets an unknown Page state.\",\n          });\n          return;\n        }\n        if (\n          !exactRevisionRef(\n            resultBinding.targetStateSchemaRevisionRef,\n            stateDefinition.schemaRevisionRef,\n          )\n        ) {\n          context.addIssue({\n            code: \"custom\",\n            path: [\n              \"queryBindings\",\n              index,\n              \"resultStateBindings\",\n              resultIndex,\n              \"targetStateSchemaRevisionRef\",\n            ],\n            message:\n              \"Query result binding must pin the exact target Page-state schema revision.\",\n          });\n        }\n        if (stateDefinition.persistence !== \"none\") {\n          context.addIssue({\n            code: \"custom\",\n            path: [\n              \"queryBindings\",\n              index,\n              \"resultStateBindings\",\n              resultIndex,\n              \"targetStateId\",\n            ],\n            message:\n              \"Query result state projections must target non-persistent Page state.\",\n          });\n        }\n      });\n    });\n    const dependencyBindings = [...value.ontologyBindings, ...queryBindings];\n    analyzePageBindingDependencies(dependencyBindings).errors.forEach(\n      (error) => {\n        const ontologyIndex = value.ontologyBindings.findIndex(\n          (binding) => binding.bindingId === error.bindingId,\n        );\n        const collection =\n          ontologyIndex >= 0 ? \"ontologyBindings\" : \"queryBindings\";\n        const index =\n          ontologyIndex >= 0\n            ? ontologyIndex\n            : queryBindings.findIndex(\n                (binding) => binding.bindingId === error.bindingId,\n              );\n        context.addIssue({\n          code: \"custom\",\n          path: [collection, index, \"parameters\"],\n          message: `Page binding dependency ${error.code}: ${error.dependencyId ?? error.bindingId}`,\n        });\n      },\n    );\n    const projectedQueryStateIds = new Set<string>();\n    queryBindings.forEach((binding, index) => {\n      binding.resultStateBindings?.forEach((resultBinding, resultIndex) => {\n        if (projectedQueryStateIds.has(resultBinding.targetStateId)) {\n          context.addIssue({\n            code: \"custom\",\n            path: [\n              \"queryBindings\",\n              index,\n              \"resultStateBindings\",\n              resultIndex,\n              \"targetStateId\",\n            ],\n            message:\n              \"One Page state can have only one Server Query result owner.\",\n          });\n        }\n        projectedQueryStateIds.add(resultBinding.targetStateId);\n      });\n    });\n    queryBindings.forEach((binding, index) => {\n      if (binding.execution !== \"server\") return;\n      const readStateIds = new Set(\n        Object.values(binding.parameters).flatMap((source) =>\n          source.kind === \"page-state\" ? [source.stateId] : [],\n        ),\n      );\n      if (binding.queryWhen) {\n        forEachPageStateCondition(binding.queryWhen, (condition) =>\n          readStateIds.add(condition.stateId),\n        );\n      }\n      const feedbackStateId = [...readStateIds].find((stateId) =>\n        projectedQueryStateIds.has(stateId),\n      );\n      if (feedbackStateId) {\n        context.addIssue({\n          code: \"custom\",\n          path: [\"queryBindings\", index],\n          message: `Server Query bindings cannot read projected Query result state: ${feedbackStateId}`,\n        });\n      }\n    });\n    const cursorWindowBindings = [\n      ...value.ontologyBindings.map((binding, index) => ({\n        binding,\n        index,\n        collection: \"ontologyBindings\" as const,\n      })),\n      ...queryBindings.map((binding, index) => ({\n        binding,\n        index,\n        collection: \"queryBindings\" as const,\n      })),\n    ].filter((candidate) => candidate.binding.cursorWindow !== undefined);\n    const cursorWindowSources = new Set<string>();\n    cursorWindowBindings.forEach(({ binding, index, collection }) => {\n      const sourceId =\n        binding.cursorWindow!.sourceCapabilityInstanceId ??\n        binding.target.capabilityInstanceId;\n      if (!instanceIds.has(sourceId))\n        context.addIssue({\n          code: \"custom\",\n          path: [\n            collection,\n            index,\n            \"cursorWindow\",\n            \"sourceCapabilityInstanceId\",\n          ],\n          message:\n            \"Cursor-window source must reference a declared capability instance.\",\n        });\n      const sourceScopes = [...scopesForNode(instanceNodes.get(sourceId))];\n      const targetScopes = [\n        ...scopesForNode(\n          instanceNodes.get(binding.target.capabilityInstanceId),\n        ),\n      ];\n      if (\n        sourceScopes.length !== targetScopes.length ||\n        sourceScopes.some((id, index) => id !== targetScopes[index])\n      )\n        context.addIssue({\n          code: \"custom\",\n          path: [\n            collection,\n            index,\n            \"cursorWindow\",\n            \"sourceCapabilityInstanceId\",\n          ],\n          message:\n            \"Cursor-window source and query target must share the same repeated scope.\",\n        });\n      const sourceKey = `${sourceId}:${binding.cursorWindow!.pageChangePort}`;\n      if (cursorWindowSources.has(sourceKey)) {\n        context.addIssue({\n          code: \"custom\",\n          path: [collection, index, \"cursorWindow\", \"pageChangePort\"],\n          message:\n            \"A capability output port can govern at most one cursor-window binding.\",\n        });\n      }\n      cursorWindowSources.add(sourceKey);\n      const conflictingInteraction = interactionBindings.some(\n        (candidate) =>\n          candidate.source.capabilityInstanceId === sourceId &&\n          candidate.source.port === binding.cursorWindow!.pageChangePort,\n      );\n      const conflictingAction = [\n        ...value.actionBindings,\n        ...(value.programBindings ?? []),\n      ].some(\n        (candidate) =>\n          candidate.source.capabilityInstanceId === sourceId &&\n          candidate.source.port === binding.cursorWindow!.pageChangePort,\n      );\n      if (conflictingInteraction || conflictingAction) {\n        context.addIssue({\n          code: \"custom\",\n          path: [collection, index, \"cursorWindow\", \"pageChangePort\"],\n          message:\n            \"Cursor-window page-change ports cannot also drive Page state or Domain Actions.\",\n        });\n      }\n    });\n    (value.programBindings ?? []).forEach((binding, index) => {\n      validatePageStateSources(binding.inputMapping, [\n        \"programBindings\",\n        index,\n        \"inputMapping\",\n      ]);\n      for (const [id, mapping] of Object.entries(binding.dependencyInputs))\n        validatePageStateSources(mapping, [\n          \"programBindings\",\n          index,\n          \"dependencyInputs\",\n          id,\n        ]);\n    });\n    value.actionBindings.forEach((binding, index) => {\n      if (!instanceIds.has(binding.source.capabilityInstanceId)) {\n        context.addIssue({\n          code: \"custom\",\n          path: [\"actionBindings\", index, \"source\", \"capabilityInstanceId\"],\n          message: \"Action binding sources an unknown capability instance.\",\n        });\n      }\n      validatePageStateSources(binding.inputMapping, [\n        \"actionBindings\",\n        index,\n        \"inputMapping\",\n      ]);\n      binding.success.refreshBindingIds.forEach((bindingId) => {\n        if (\n          !value.ontologyBindings.some(\n            (candidate) => candidate.bindingId === bindingId,\n          ) &&\n          !queryBindings.some((candidate) => candidate.bindingId === bindingId)\n        ) {\n          context.addIssue({\n            code: \"custom\",\n            path: [\"actionBindings\", index, \"success\", \"refreshBindingIds\"],\n            message: `Unknown refresh binding: ${bindingId}`,\n          });\n        }\n      });\n      const effectBindingIds =\n        binding.success.resultBindingEffects?.map(\n          (effect) => effect.bindingId,\n        ) ?? [];\n      if (new Set(effectBindingIds).size !== effectBindingIds.length) {\n        context.addIssue({\n          code: \"custom\",\n          path: [\"actionBindings\", index, \"success\", \"resultBindingEffects\"],\n          message:\n            \"An Action can declare at most one result effect for each target binding.\",\n        });\n      }\n      binding.success.resultBindingEffects?.forEach((effect, effectIndex) => {\n        if (\n          !value.ontologyBindings.some(\n            (candidate) => candidate.bindingId === effect.bindingId,\n          ) &&\n          !queryBindings.some(\n            (candidate) => candidate.bindingId === effect.bindingId,\n          )\n        ) {\n          context.addIssue({\n            code: \"custom\",\n            path: [\n              \"actionBindings\",\n              index,\n              \"success\",\n              \"resultBindingEffects\",\n              effectIndex,\n              \"bindingId\",\n            ],\n            message: `Unknown result effect binding: ${effect.bindingId}`,\n          });\n        }\n        if (binding.success.refreshBindingIds.includes(effect.bindingId)) {\n          context.addIssue({\n            code: \"custom\",\n            path: [\n              \"actionBindings\",\n              index,\n              \"success\",\n              \"resultBindingEffects\",\n              effectIndex,\n              \"bindingId\",\n            ],\n            message:\n              \"A result-projected binding cannot also be refreshed by the same Action.\",\n          });\n        }\n      });\n      if (binding.success.clipboard) {\n        const sourceInstance = value.capabilityInstances.find(\n          (instance) =>\n            instance.instanceId === binding.source.capabilityInstanceId,\n        );\n        if (!sourceInstance?.allowedSideEffects.includes(\"clipboard\"))\n          context.addIssue({\n            code: \"custom\",\n            path: [\"actionBindings\", index, \"success\", \"clipboard\"],\n            message:\n              \"An Action result clipboard effect requires clipboard permission on its source capability instance.\",\n          });\n      }\n    });\n    if (value.shellRevisionRef.kind !== \"shell\")\n      context.addIssue({\n        code: \"custom\",\n        path: [\"shellRevisionRef\", \"kind\"],\n        message: \"Page shellRevisionRef must reference a shell.\",\n      });\n    value.capabilityInstances.forEach((instance, index) => {\n      if (instance.accessPolicy) {\n        [\n          ...instance.accessPolicy.groupAllOf,\n          ...instance.accessPolicy.groupAnyOf,\n          ...instance.accessPolicy.conditionAllOf,\n        ].forEach((reference, refIndex) =>\n          validateTenantCompatibleReference(\n            reference,\n            value.tenantScope,\n            [\"capabilityInstances\", index, \"accessPolicy\", refIndex],\n            context,\n          ),\n        );\n      }\n      const refs: Array<[string, z.infer<typeof RevisionRefSchema>, string]> = [\n        [\"capabilityRevisionRef\", instance.capabilityRevisionRef, \"capability\"],\n        [\"providerRevisionRef\", instance.providerRevisionRef, \"view-provider\"],\n        [\n          \"propertySchemaRevisionRef\",\n          instance.propertySchemaRevisionRef,\n          \"schema\",\n        ],\n      ];\n      refs.forEach(([field, reference, expectedKind]) => {\n        if (reference.kind !== expectedKind)\n          context.addIssue({\n            code: \"custom\",\n            path: [\"capabilityInstances\", index, field, \"kind\"],\n            message: `${field} must reference ${expectedKind}.`,\n          });\n      });\n    });\n    value.tokenRevisionRefs.forEach((reference, index) => {\n      if (reference.kind !== \"design-token\")\n        context.addIssue({\n          code: \"custom\",\n          path: [\"tokenRevisionRefs\", index, \"kind\"],\n          message: \"Page token references must use kind design-token.\",\n        });\n    });\n    if (value.performanceBudgetRef.kind !== \"performance-budget\")\n      context.addIssue({\n        code: \"custom\",\n        path: [\"performanceBudgetRef\", \"kind\"],\n        message: \"Page requires a performance-budget revision.\",\n      });\n    if (value.observationPolicyRevisionRef.kind !== \"observation-policy\")\n      context.addIssue({\n        code: \"custom\",\n        path: [\"observationPolicyRevisionRef\", \"kind\"],\n        message: \"Page requires an observation-policy revision.\",\n      });\n  });\nexport const PageReleaseSchema = z\n  .object({\n    contract: z.literal(\"PageRelease\"),\n    ...ReleaseBaseShape,\n    pageRevisionRef: RevisionRefSchema,\n    target: z\n      .object({\n        environmentRef: StableRefSchema,\n        surface: ProductSurfaceSchema,\n        routeSpaceRevisionRef: RevisionRefSchema,\n        normalizedPath: RoutePathTemplateSchema,\n        routeClaim: z.union([\n          CompiledRouteClaimSchema,\n          LegacyCompiledRouteClaimSchema,\n        ]),\n        legacyRouteTakeoverAuthorization:\n          LegacyRouteTakeoverAuthorizationSchema.optional(),\n      })\n      .strict(),\n  })\n  .strict()\n  .superRefine((value, context) => {\n    validateLegacyRestoration(value, \"legacy-route-adapter\", context);\n    validateDependencySnapshot(value.dependencySnapshot, context);\n    validateReleaseGovernanceScope(value, \"page-release\", context);\n    if (value.pageRevisionRef.kind !== \"page\")\n      context.addIssue({\n        code: \"custom\",\n        path: [\"pageRevisionRef\", \"kind\"],\n        message: \"Expected a page revision.\",\n      });\n    if (value.target.environmentRef.kind !== \"environment\")\n      context.addIssue({\n        code: \"custom\",\n        path: [\"target\", \"environmentRef\", \"kind\"],\n        message: \"Page release target requires an environment reference.\",\n      });\n    if (value.target.routeSpaceRevisionRef.kind !== \"route-space\")\n      context.addIssue({\n        code: \"custom\",\n        path: [\"target\", \"routeSpaceRevisionRef\", \"kind\"],\n        message: \"Page release target requires a route-space revision.\",\n      });\n    validateReleaseRouteSurface(value.target, context);\n    if (\n      value.target.normalizedPath !== value.target.routeClaim.normalizedPath ||\n      !exactRevisionRef(\n        value.target.routeSpaceRevisionRef,\n        value.target.routeClaim.routeSpaceRevisionRef,\n      )\n    ) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"target\", \"routeClaim\"],\n        message:\n          \"Page Release route authority must pin the exact compiled claim and normalized path.\",\n      });\n    }\n    const takeover = value.target.legacyRouteTakeoverAuthorization;\n    if (\n      takeover &&\n      (value.target.routeClaim.kind !== \"canonical\" ||\n        takeover.normalizedPath !== value.target.normalizedPath ||\n        !exactRevisionRef(\n          takeover.routeSpaceRevisionRef,\n          value.target.routeSpaceRevisionRef,\n        ) ||\n        takeover.targetResourceRef.kind !== \"page\" ||\n        takeover.targetResourceRef.id !== value.pageRevisionRef.id ||\n        takeover.targetResourceRef.ownerRepo !==\n          value.pageRevisionRef.ownerRepo)\n    ) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"target\", \"legacyRouteTakeoverAuthorization\"],\n        message:\n          \"A Page route takeover must bind the exact canonical claim, RouteSpace and target Page.\",\n      });\n    }\n  });\nexport const WorkbenchGroupSchema = z\n  .object({\n    groupId: ContractIdentifierSchema,\n    label: I18nTextSchema,\n    iconRef: StableRefSchema.optional(),\n    order: z.number().int(),\n    collapsedByDefault: z.boolean(),\n    accessPolicy: AccessPolicySchema.optional(),\n  })\n  .strict();\nexport const WorkbenchAppInstanceSchema = z\n  .object({\n    runtimeContractVersion: ContractIdentifierSchema.optional(),\n    instanceId: ContractIdentifierSchema,\n    kind: z.enum([\n      \"built-in-application\",\n      \"workflow-form\",\n      \"workflow\",\n      \"agent\",\n      \"design\",\n      \"capability\",\n    ]),\n    targetRevisionRef: RevisionRefSchema,\n    providerRevisionRef: RevisionRefSchema,\n    inputSchemaRevisionRef: RevisionRefSchema,\n    input: JsonObjectSchema,\n    groupId: ContractIdentifierSchema,\n    order: z.number().int(),\n    display: z\n      .object({\n        name: I18nTextSchema.optional(),\n        iconRef: StableRefSchema.optional(),\n      })\n      .strict(),\n    accessPolicy: AccessPolicySchema,\n  })\n  .strict();\nexport const WorkbenchSchema = z\n  .object({\n    contract: z.literal(\"Workbench\"),\n    schemaVersion: z.literal(DECLARATIVE_CONTROL_SCHEMA_VERSION),\n    workbenchId: ContractIdentifierSchema,\n    tenantScope: TenantScopeSchema,\n    purpose: z.enum([\"instance\", \"template\"]),\n    sourceTemplateRevisionRef: RevisionRefSchema.optional(),\n    identity: WorkbenchIdentitySchema,\n    supportedSurfaces: z.array(ProductSurfaceSchema).min(1),\n    lifecycle: DeclarativeLifecycleSchema,\n    routeClaims: z\n      .array(\n        z.union([\n          DeclarativeRouteClaimSchema,\n          LegacyDeclarativeRouteClaimSchema,\n        ]),\n      )\n      .min(1),\n    groups: z.array(WorkbenchGroupSchema).min(1),\n    appInstances: z.array(WorkbenchAppInstanceSchema).min(1),\n    defaultEntry: z\n      .object({\n        groupId: ContractIdentifierSchema,\n        instanceId: ContractIdentifierSchema,\n        showDefaultGroup: z.boolean(),\n      })\n      .strict(),\n    layout: z\n      .object({\n        runtimeContractVersion: ContractIdentifierSchema.optional(),\n        hostCapabilityRevisionRef: RevisionRefSchema,\n        hostProviderRevisionRef: RevisionRefSchema,\n        layoutPolicyRevisionRef: RevisionRefSchema,\n        tokenRevisionRefs: z.array(RevisionRefSchema).min(1),\n      })\n      .strict(),\n    workbenchAccessPolicy: AccessPolicySchema,\n    managementAccess: ManagementAccessSchema,\n    personalPreferencesPolicy: z\n      .object({\n        allowed: z.array(\n          z.enum([\"collapsed-groups\", \"recent-entry\", \"layout-density\"]),\n        ),\n        authority: z.literal(\"identity-overlay\"),\n      })\n      .strict(),\n    performanceBudgetRef: RevisionRefSchema,\n    observationPolicyRevisionRef: RevisionRefSchema,\n    privacyClassification: z.enum([\n      \"public\",\n      \"internal\",\n      \"confidential\",\n      \"restricted\",\n    ]),\n  })\n  .strict()\n  .superRefine((value, context) => {\n    validateDeclaredRouteSurfaces(\n      value.supportedSurfaces,\n      value.routeClaims,\n      context,\n    );\n    if (value.purpose === \"template\" && value.sourceTemplateRevisionRef) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"sourceTemplateRevisionRef\"],\n        message: \"Templates cannot derive from another template at runtime.\",\n      });\n    }\n    const duplicateGroup = uniqueArray(value.groups, (group) => group.groupId);\n    if (duplicateGroup)\n      context.addIssue({\n        code: \"custom\",\n        path: [\"groups\"],\n        message: `Duplicate Workbench group: ${duplicateGroup}`,\n      });\n    const duplicateInstance = uniqueArray(\n      value.appInstances,\n      (instance) => instance.instanceId,\n    );\n    if (duplicateInstance)\n      context.addIssue({\n        code: \"custom\",\n        path: [\"appInstances\"],\n        message: `Duplicate Workbench instance: ${duplicateInstance}`,\n      });\n    const groupIds = new Set(value.groups.map((group) => group.groupId));\n    value.appInstances.forEach((instance, index) => {\n      if (!groupIds.has(instance.groupId))\n        context.addIssue({\n          code: \"custom\",\n          path: [\"appInstances\", index, \"groupId\"],\n          message: \"Workbench app references an unknown group.\",\n        });\n    });\n    const defaultInstance = value.appInstances.find(\n      (instance) => instance.instanceId === value.defaultEntry.instanceId,\n    );\n    if (\n      !defaultInstance ||\n      defaultInstance.groupId !== value.defaultEntry.groupId\n    ) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"defaultEntry\"],\n        message:\n          \"Workbench default entry must reference an app in the declared group.\",\n      });\n    }\n    const targetKindByInstanceKind: Readonly<\n      Record<z.infer<typeof WorkbenchAppInstanceSchema>[\"kind\"], string>\n    > = {\n      \"built-in-application\": \"built-in-application\",\n      \"workflow-form\": \"workflow\",\n      workflow: \"workflow\",\n      agent: \"agent\",\n      design: \"design\",\n      capability: \"capability\",\n    };\n    value.appInstances.forEach((instance, index) => {\n      if (\n        instance.targetRevisionRef.kind !==\n        targetKindByInstanceKind[instance.kind]\n      )\n        context.addIssue({\n          code: \"custom\",\n          path: [\"appInstances\", index, \"targetRevisionRef\", \"kind\"],\n          message: `Workbench ${instance.kind} target has an incompatible reference kind.`,\n        });\n      if (instance.providerRevisionRef.kind !== \"view-provider\")\n        context.addIssue({\n          code: \"custom\",\n          path: [\"appInstances\", index, \"providerRevisionRef\", \"kind\"],\n          message: \"Workbench app provider must use kind view-provider.\",\n        });\n      if (instance.inputSchemaRevisionRef.kind !== \"schema\")\n        context.addIssue({\n          code: \"custom\",\n          path: [\"appInstances\", index, \"inputSchemaRevisionRef\", \"kind\"],\n          message: \"Workbench app input must pin a schema revision.\",\n        });\n    });\n    const layoutRefs: Array<\n      [string, z.infer<typeof RevisionRefSchema>, string]\n    > = [\n      [\n        \"hostCapabilityRevisionRef\",\n        value.layout.hostCapabilityRevisionRef,\n        \"capability\",\n      ],\n      [\n        \"hostProviderRevisionRef\",\n        value.layout.hostProviderRevisionRef,\n        \"view-provider\",\n      ],\n      [\n        \"layoutPolicyRevisionRef\",\n        value.layout.layoutPolicyRevisionRef,\n        \"layout-policy\",\n      ],\n    ];\n    layoutRefs.forEach(([field, reference, expectedKind]) => {\n      if (reference.kind !== expectedKind)\n        context.addIssue({\n          code: \"custom\",\n          path: [\"layout\", field, \"kind\"],\n          message: `${field} must reference ${expectedKind}.`,\n        });\n    });\n    value.layout.tokenRevisionRefs.forEach((reference, index) => {\n      if (reference.kind !== \"design-token\")\n        context.addIssue({\n          code: \"custom\",\n          path: [\"layout\", \"tokenRevisionRefs\", index, \"kind\"],\n          message: \"Workbench token references must use kind design-token.\",\n        });\n    });\n  });\nexport const WorkbenchReleaseSchema = z\n  .object({\n    contract: z.literal(\"WorkbenchRelease\"),\n    ...ReleaseBaseShape,\n    workbenchRevisionRef: RevisionRefSchema,\n    target: z\n      .object({\n        environmentRef: StableRefSchema,\n        surface: ProductSurfaceSchema,\n        workbenchId: ContractIdentifierSchema,\n        routeSpaceRevisionRef: RevisionRefSchema,\n        normalizedPath: RoutePathTemplateSchema,\n        routeClaim: z.union([\n          CompiledRouteClaimSchema,\n          LegacyCompiledRouteClaimSchema,\n        ]),\n        legacyRouteTakeoverAuthorization:\n          LegacyRouteTakeoverAuthorizationSchema.optional(),\n        order: z.number().int(),\n        isDefaultCandidate: z.boolean(),\n      })\n      .strict(),\n  })\n  .strict()\n  .superRefine((value, context) => {\n    validateLegacyRestoration(value, \"legacy-workbench-adapter\", context);\n    validateDependencySnapshot(value.dependencySnapshot, context);\n    validateReleaseGovernanceScope(value, \"workbench-release\", context);\n    if (value.workbenchRevisionRef.kind !== \"workbench\")\n      context.addIssue({\n        code: \"custom\",\n        path: [\"workbenchRevisionRef\", \"kind\"],\n        message: \"Expected a workbench revision.\",\n      });\n    if (value.target.environmentRef.kind !== \"environment\")\n      context.addIssue({\n        code: \"custom\",\n        path: [\"target\", \"environmentRef\", \"kind\"],\n        message: \"Workbench release target requires an environment reference.\",\n      });\n    if (value.target.routeSpaceRevisionRef.kind !== \"route-space\")\n      context.addIssue({\n        code: \"custom\",\n        path: [\"target\", \"routeSpaceRevisionRef\", \"kind\"],\n        message: \"Workbench release target requires a route-space revision.\",\n      });\n    validateReleaseRouteSurface(value.target, context);\n    if (\n      value.target.normalizedPath !== value.target.routeClaim.normalizedPath ||\n      !exactRevisionRef(\n        value.target.routeSpaceRevisionRef,\n        value.target.routeClaim.routeSpaceRevisionRef,\n      )\n    ) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"target\", \"routeClaim\"],\n        message:\n          \"Workbench Release route authority must pin the exact compiled claim and normalized path.\",\n      });\n    }\n    const takeover = value.target.legacyRouteTakeoverAuthorization;\n    if (\n      takeover &&\n      (value.target.routeClaim.kind !== \"canonical\" ||\n        takeover.normalizedPath !== value.target.normalizedPath ||\n        !exactRevisionRef(\n          takeover.routeSpaceRevisionRef,\n          value.target.routeSpaceRevisionRef,\n        ) ||\n        takeover.targetResourceRef.kind !== \"workbench\" ||\n        takeover.targetResourceRef.id !== value.workbenchRevisionRef.id ||\n        takeover.targetResourceRef.ownerRepo !==\n          value.workbenchRevisionRef.ownerRepo)\n    ) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"target\", \"legacyRouteTakeoverAuthorization\"],\n        message:\n          \"A Workbench route takeover must bind the exact canonical claim, RouteSpace and target Workbench.\",\n      });\n    }\n  });\nconst NavigationNodeBaseShape = {\n  nodeId: ContractIdentifierSchema,\n  parentNodeId: ContractIdentifierSchema.nullable(),\n  order: z.number().int(),\n  disabled: z.boolean().optional(),\n};\nexport const NavigationGroupNodeSchema = z\n  .object({\n    ...NavigationNodeBaseShape,\n    kind: z.literal(\"group\"),\n    label: I18nTextSchema,\n    iconRef: StableRefSchema.optional(),\n    collapsedByDefault: z.boolean(),\n    audience: AccessPolicySchema,\n  })\n  .strict();\nexport const NavigationTargetNodeSchema = z\n  .object({\n    ...NavigationNodeBaseShape,\n    kind: z.literal(\"target\"),\n    label: I18nTextSchema,\n    iconRef: StableRefSchema.optional(),\n    tone: z.enum([\"default\", \"danger\"]).optional(),\n    targetRef: StableRefSchema,\n    parameterMapping: z.record(ContractIdentifierSchema, BindingSourceSchema),\n    audience: AccessPolicySchema,\n  })\n  .strict();\nexport const NavigationSeparatorNodeSchema = z\n  .object({\n    ...NavigationNodeBaseShape,\n    kind: z.literal(\"separator\"),\n  })\n  .strict();\nexport const NavigationNodeSchema = z.discriminatedUnion(\"kind\", [\n  NavigationGroupNodeSchema,\n  NavigationTargetNodeSchema,\n  NavigationSeparatorNodeSchema,\n]);\nconst validateNavigationTree = (\n  nodes: readonly z.infer<typeof NavigationNodeSchema>[],\n  context: z.RefinementCtx,\n) => {\n  const byId = new Map<\n    string,\n    {\n      node: z.infer<typeof NavigationNodeSchema>;\n      index: number;\n    }\n  >();\n  nodes.forEach((node, index) => {\n    if (byId.has(node.nodeId))\n      context.addIssue({\n        code: \"custom\",\n        path: [\"nodes\", index, \"nodeId\"],\n        message: `Duplicate Navigation node: ${node.nodeId}`,\n      });\n    else byId.set(node.nodeId, { node, index });\n  });\n  const siblingOrders = new Set<string>();\n  nodes.forEach((node, index) => {\n    const orderKey = `${node.parentNodeId ?? \"\"}:${node.order}`;\n    if (siblingOrders.has(orderKey))\n      context.addIssue({\n        code: \"custom\",\n        path: [\"nodes\", index, \"order\"],\n        message: \"Sibling Navigation order values must be unique.\",\n      });\n    siblingOrders.add(orderKey);\n    if (node.parentNodeId) {\n      const parent = byId.get(node.parentNodeId)?.node;\n      if (!parent)\n        context.addIssue({\n          code: \"custom\",\n          path: [\"nodes\", index, \"parentNodeId\"],\n          message: \"Navigation node has an unknown parent.\",\n        });\n      else if (parent.kind !== \"group\")\n        context.addIssue({\n          code: \"custom\",\n          path: [\"nodes\", index, \"parentNodeId\"],\n          message: \"Navigation parents must be groups.\",\n        });\n    }\n    const ancestors = new Set([node.nodeId]);\n    let parentId = node.parentNodeId;\n    while (parentId) {\n      if (ancestors.has(parentId)) {\n        context.addIssue({\n          code: \"custom\",\n          path: [\"nodes\", index, \"parentNodeId\"],\n          message: `Navigation cycle contains ${node.nodeId}.`,\n        });\n        break;\n      }\n      ancestors.add(parentId);\n      parentId = byId.get(parentId)?.node.parentNodeId ?? null;\n    }\n  });\n};\nexport const NavigationSchema = z\n  .object({\n    contract: z.literal(\"Navigation\"),\n    schemaVersion: z.literal(DECLARATIVE_CONTROL_SCHEMA_VERSION),\n    navigationId: ContractIdentifierSchema,\n    tenantScope: TenantScopeSchema,\n    identity: IdentitySchema,\n    supportedSurfaces: z.array(ProductSurfaceSchema).min(1),\n    placements: z.array(ContractIdentifierSchema).min(1),\n    lifecycle: DeclarativeLifecycleSchema,\n    nodes: z.array(NavigationNodeSchema),\n    managementAccess: ManagementAccessSchema,\n    performanceBudgetRef: RevisionRefSchema,\n    observationPolicyRevisionRef: RevisionRefSchema,\n  })\n  .strict()\n  .superRefine((value, context) => {\n    validateNavigationTree(value.nodes, context);\n    value.nodes.forEach((node, index) => {\n      if (\n        node.kind === \"target\" &&\n        ![\"page\", \"workbench\", \"menu-action\", \"domain-command\"].includes(\n          node.targetRef.kind,\n        )\n      ) {\n        context.addIssue({\n          code: \"custom\",\n          path: [\"nodes\", index, \"targetRef\", \"kind\"],\n          message:\n            \"Navigation targets must reference Page, Workbench, registered Menu Action, or DomainCommand identities.\",\n        });\n      }\n    });\n  });\nexport const ResolvedNavigationTargetSchema = z\n  .object({\n    nodeId: ContractIdentifierSchema,\n    stableTargetRef: StableRefSchema,\n    targetRevisionRef: RevisionRefSchema,\n    releaseRevisionRef: RevisionRefSchema.optional(),\n  })\n  .strict();\n\n/** A reviewed missing Page reference is retained without inventing an executable revision. */\nexport const UnavailableNavigationTargetSchema = z\n  .object({\n    nodeId: ContractIdentifierSchema,\n    stableTargetRef: StableRefSchema.refine(\n      (reference) => reference.kind === \"page\",\n      \"Only missing Pages can be isolated.\",\n    ),\n    reason: z.literal(\"page-missing\"),\n    accessPolicy: AccessPolicySchema.nullable(),\n  })\n  .strict();\n\nexport const NavigationReleaseSchema = z\n  .object({\n    contract: z.literal(\"NavigationRelease\"),\n    ...ReleaseBaseShape,\n    navigationRevisionRef: RevisionRefSchema,\n    target: z\n      .object({\n        environmentRef: StableRefSchema,\n        surface: ProductSurfaceSchema,\n        placement: ContractIdentifierSchema,\n      })\n      .strict(),\n    resolvedTargets: z.array(ResolvedNavigationTargetSchema),\n    unavailableTargets: z.array(UnavailableNavigationTargetSchema).optional(),\n  })\n  .strict()\n  .superRefine((value, context) => {\n    validateLegacyRestoration(value, \"legacy-navigation-adapter\", context);\n    validateDependencySnapshot(value.dependencySnapshot, context);\n    validateReleaseGovernanceScope(value, \"navigation-release\", context);\n    if (value.navigationRevisionRef.kind !== \"navigation\")\n      context.addIssue({\n        code: \"custom\",\n        path: [\"navigationRevisionRef\", \"kind\"],\n        message: \"Expected a navigation revision.\",\n      });\n    if (value.target.environmentRef.kind !== \"environment\")\n      context.addIssue({\n        code: \"custom\",\n        path: [\"target\", \"environmentRef\", \"kind\"],\n        message: \"Navigation release target requires an environment reference.\",\n      });\n    if (uniqueArray(value.resolvedTargets, (target) => target.nodeId))\n      context.addIssue({\n        code: \"custom\",\n        path: [\"resolvedTargets\"],\n        message: \"Resolved Navigation node IDs must be unique.\",\n      });\n    if (\n      uniqueArray(\n        [...value.resolvedTargets, ...(value.unavailableTargets ?? [])],\n        (target) => target.nodeId,\n      )\n    ) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"unavailableTargets\"],\n        message: \"Navigation target resolutions must have unique node IDs.\",\n      });\n    }\n  });\nconst RuntimeDiagnosticSchema = DeclarativeDiagnosticSchema;\nconst RuntimeBundleBaseShape = {\n  schemaVersion: z.literal(DECLARATIVE_CONTROL_SCHEMA_VERSION),\n  tenantScope: TenantScopeSchema,\n  releaseRevisionRef: RevisionRefSchema,\n  compilerRevisionRef: RevisionRefSchema,\n  generation: z.number().int().nonnegative(),\n  dependencySnapshot: z.array(ReleaseDependencySchema),\n  contentHash: Sha256Schema,\n  rebuildable: z.literal(true),\n  diagnostics: z.array(RuntimeDiagnosticSchema),\n};\nconst validateRuntimeBundleReference = (\n  reference: z.infer<typeof RevisionRefSchema>,\n  tenantScope: z.infer<typeof TenantScopeSchema>,\n  path: string,\n  expectedKind: string,\n  expectedId: string | undefined,\n  context: z.RefinementCtx,\n) => {\n  if (reference.kind !== expectedKind) {\n    context.addIssue({\n      code: \"custom\",\n      path: [path, \"kind\"],\n      message: `${path} must reference ${expectedKind}.`,\n    });\n  }\n  if (expectedId !== undefined && reference.id !== expectedId) {\n    context.addIssue({\n      code: \"custom\",\n      path: [path, \"id\"],\n      message: `${path} must identify ${expectedId}.`,\n    });\n  }\n  validateTenantCompatibleReference(reference, tenantScope, [path], context);\n};\nconst validateRuntimeBundleBase = (\n  value: {\n    tenantScope: z.infer<typeof TenantScopeSchema>;\n    releaseRevisionRef: z.infer<typeof RevisionRefSchema>;\n    compilerRevisionRef: z.infer<typeof RevisionRefSchema>;\n  },\n  expectedReleaseKind: string,\n  context: z.RefinementCtx,\n) => {\n  validateRuntimeBundleReference(\n    value.releaseRevisionRef,\n    value.tenantScope,\n    \"releaseRevisionRef\",\n    expectedReleaseKind,\n    undefined,\n    context,\n  );\n  validateRuntimeBundleReference(\n    value.compilerRevisionRef,\n    value.tenantScope,\n    \"compilerRevisionRef\",\n    \"compiler\",\n    undefined,\n    context,\n  );\n};\nexport const DeclarativeRouteOwnerIndexEntrySchema = z\n  .object({\n    resourceKind: z.enum([\"page\", \"workbench\"]),\n    releaseSlotId: ContractIdentifierSchema,\n    activeReleaseRevisionRef: RevisionRefSchema,\n    routeClaim: CompiledRouteClaimSchema,\n    authority: z.enum([\"declarative\", \"legacy\", \"unavailable\"]),\n    legacyRestoration: LegacySlotRestorationSchema.optional(),\n  })\n  .strict()\n  .superRefine((value, context) => {\n    if (value.authority === \"legacy\" && !value.legacyRestoration) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"legacyRestoration\"],\n        message:\n          \"A restored legacy route must pin its exact inspected source and adapter revisions.\",\n      });\n    }\n    if (value.authority !== \"legacy\" && value.legacyRestoration) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"legacyRestoration\"],\n        message:\n          \"Only a restored legacy route can carry legacy restoration provenance.\",\n      });\n    }\n  });\nexport const DeclarativeRouteOwnerIndexSchema = z\n  .object({\n    contract: z.literal(\"DeclarativeRouteOwnerIndex\"),\n    schemaVersion: z.literal(DECLARATIVE_CONTROL_SCHEMA_VERSION),\n    tenantScope: TenantScopeSchema,\n    environmentRef: StableRefSchema,\n    surface: ProductSurfaceSchema,\n    generation: z.number().int().positive(),\n    entries: z.array(DeclarativeRouteOwnerIndexEntrySchema).max(4096),\n    contentHash: Sha256Schema,\n    rebuildable: z.literal(true),\n  })\n  .strict()\n  .superRefine((value, context) => {\n    const identities = value.entries.map(\n      (entry) => `${entry.resourceKind}:${entry.releaseSlotId}`,\n    );\n    if (new Set(identities).size !== identities.length) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"entries\"],\n        message: \"Route owner index entries must be unique by Release slot.\",\n      });\n    }\n    if (\n      identities.some(\n        (identity, index) =>\n          index > 0 && identities[index - 1].localeCompare(identity) > 0,\n      )\n    ) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"entries\"],\n        message:\n          \"Route owner index entries must use deterministic Release-slot order.\",\n      });\n    }\n  });\nexport const DeclarativeWorkbenchCatalogEntrySchema = z\n  .object({\n    workbenchId: ContractIdentifierSchema,\n    authority: z.enum([\"declarative\", \"legacy\", \"unavailable\"]),\n    identity: WorkbenchIdentitySchema,\n    order: z.number().int(),\n    isDefaultCandidate: z.boolean(),\n    activeReleaseRevisionRef: RevisionRefSchema.optional(),\n    legacyAdapterRevisionRef: RevisionRefSchema.optional(),\n  })\n  .strict()\n  .superRefine((value, context) => {\n    if (value.authority === \"declarative\") {\n      if (value.activeReleaseRevisionRef?.kind !== \"workbench-release\") {\n        context.addIssue({\n          code: \"custom\",\n          path: [\"activeReleaseRevisionRef\"],\n          message:\n            \"A declarative Workbench catalog entry requires an exact Workbench Release.\",\n        });\n      }\n      if (value.legacyAdapterRevisionRef) {\n        context.addIssue({\n          code: \"custom\",\n          path: [\"legacyAdapterRevisionRef\"],\n          message:\n            \"A declarative Workbench catalog entry cannot carry a legacy adapter.\",\n        });\n      }\n      return;\n    }\n    if (value.activeReleaseRevisionRef) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"activeReleaseRevisionRef\"],\n        message:\n          \"A non-declarative Workbench entry cannot expose a Workbench Release.\",\n      });\n    }\n    if (\n      value.authority === \"legacy\" &&\n      value.legacyAdapterRevisionRef?.kind !== \"legacy-workbench-adapter\"\n    ) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"legacyAdapterRevisionRef\"],\n        message:\n          \"A legacy Workbench entry requires an exact legacy-workbench-adapter revision.\",\n      });\n    }\n    if (value.authority === \"unavailable\" && value.legacyAdapterRevisionRef) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"legacyAdapterRevisionRef\"],\n        message:\n          \"An unavailable Workbench entry cannot carry a legacy adapter.\",\n      });\n    }\n  });\nexport const DeclarativeWorkbenchCatalogSchema = z\n  .object({\n    contract: z.literal(\"DeclarativeWorkbenchCatalog\"),\n    schemaVersion: z.literal(DECLARATIVE_CONTROL_SCHEMA_VERSION),\n    tenantScope: TenantScopeSchema,\n    environmentRef: StableRefSchema,\n    surface: ProductSurfaceSchema,\n    generation: z.number().int().positive(),\n    entries: z.array(DeclarativeWorkbenchCatalogEntrySchema).max(4096),\n    contentHash: Sha256Schema,\n    rebuildable: z.literal(true),\n  })\n  .strict()\n  .superRefine((value, context) => {\n    if (value.environmentRef.kind !== \"environment\") {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"environmentRef\", \"kind\"],\n        message: \"A Workbench catalog requires an Environment reference.\",\n      });\n    }\n    const ids = value.entries.map((entry) => entry.workbenchId);\n    if (new Set(ids).size !== ids.length) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"entries\"],\n        message: \"Workbench catalog identities must be unique.\",\n      });\n    }\n    if (\n      value.entries.filter(\n        (entry) =>\n          entry.authority !== \"unavailable\" && entry.isDefaultCandidate,\n      ).length > 1\n    ) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"entries\"],\n        message:\n          \"The effective Workbench catalog may have at most one default.\",\n      });\n    }\n    const sorted = [...value.entries].sort(\n      (left, right) =>\n        left.order - right.order ||\n        left.workbenchId.localeCompare(right.workbenchId),\n    );\n    if (\n      sorted.some(\n        (entry, index) =>\n          entry.workbenchId !== value.entries[index]?.workbenchId,\n      )\n    ) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"entries\"],\n        message:\n          \"Workbench catalog entries must use deterministic order plus Workbench identity.\",\n      });\n    }\n  });\nconst CompatiblePageRuntimeBundleSchema = z\n  .object({\n    contract: z.literal(\"PageRuntimeBundle\"),\n    ...RuntimeBundleBaseShape,\n    pageId: ContractIdentifierSchema,\n    pageRevisionRef: RevisionRefSchema,\n    surface: ProductSurfaceSchema,\n    routeClaims: z.array(CompiledRouteClaimSchema),\n    routeStatePresentations: z\n      .array(PageRouteStatePresentationSchema)\n      .default([]),\n    shellRevisionRef: RevisionRefSchema,\n    shellDescriptor: DeclarativeRuntimeShellDescriptorSchema.optional(),\n    renderTree: RenderTreeSchema,\n    capabilityInstances: z.array(CapabilityInstanceSchema),\n    deniedCapabilityInstanceIds: z.array(ContractIdentifierSchema).default([]),\n    capabilityAccessEvaluated: z.literal(true).optional(),\n    stateDefinitions: z.array(PageStateDefinitionSchema).default([]),\n    sharedStateBindings: z.array(PageSharedStateBindingSchema).max(16).optional(),\n    entryTransitions: z.array(ResolvedPageEntryTransitionSchema).default([]),\n    interactionBindings: z.array(InteractionBindingSchema).default([]),\n    ontologyBindings: z.array(PersistedOntologyBindingSchema),\n    queryBindings: z.array(QueryBindingSchema).default([]),\n    initialQueryPolicy: InitialQueryPolicySchema.optional(),\n    actionBindings: z.array(ActionBindingSchema),\n    programBindings: z.array(ProgramBindingSchema).max(128).optional(),\n    pageAccessPolicy: AccessPolicySchema,\n    tokenRevisionRefs: z.array(RevisionRefSchema),\n    performanceBudgetRef: RevisionRefSchema,\n    observationPolicyRevisionRef: RevisionRefSchema,\n    privacyClassification: z.enum([\n      \"public\",\n      \"internal\",\n      \"confidential\",\n      \"restricted\",\n    ]),\n  })\n  .strict()\n  .superRefine((value, context) => {\n    validateSharedStateBindings(value.sharedStateBindings, value.stateDefinitions, new Set([...value.queryBindings, ...value.ontologyBindings].map(binding => binding.bindingId)), value.interactionBindings, context);\n    const instanceIds = new Set(\n      value.capabilityInstances.map((instance) => instance.instanceId),\n    );\n    if (\n      new Set(value.deniedCapabilityInstanceIds).size !==\n        value.deniedCapabilityInstanceIds.length ||\n      value.deniedCapabilityInstanceIds.some((id) => !instanceIds.has(id))\n    ) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"deniedCapabilityInstanceIds\"],\n        message:\n          \"Denied capability identities must be unique declared instances.\",\n      });\n    }\n    validateProgramBindingTargets(value, context);\n    validateRuntimeBundleBase(value, \"page-release\", context);\n    value.routeClaims.forEach((claim, index) => {\n      if (claim.surface !== value.surface) {\n        context.addIssue({\n          code: \"custom\",\n          path: [\"routeClaims\", index, \"surface\"],\n          message: \"Runtime route claims must match the bundle surface.\",\n        });\n      }\n    });\n    validateRuntimeBundleReference(\n      value.pageRevisionRef,\n      value.tenantScope,\n      \"pageRevisionRef\",\n      \"page\",\n      value.pageId,\n      context,\n    );\n    value.routeStatePresentations.forEach((presentation, index) => {\n      if (presentation.surface !== value.surface) {\n        context.addIssue({\n          code: \"custom\",\n          path: [\"routeStatePresentations\", index, \"surface\"],\n          message:\n            \"Runtime route-state presentations must match the compiled Page surface.\",\n        });\n      }\n    });\n  });\nexport const ResolvedWorkbenchAppInstanceSchema =\n  WorkbenchAppInstanceSchema.extend({\n    targetAccessPolicy: AccessPolicySchema,\n  }).strict();\nexport const PageRuntimeBundleSchema =\n  CompatiblePageRuntimeBundleSchema.safeExtend({\n    shellDescriptor: DeclarativeRuntimeShellDescriptorSchema,\n    ontologyBindings: z.array(OntologyBindingSchema),\n  });\n\n/** Pre-canonical releases have no Shell descriptor and retain their legacy bindings. */\nexport const LegacyPageRuntimeBundleSchema: z.ZodType<LegacyPageRuntimeBundle> =\n  CompatiblePageRuntimeBundleSchema.safeExtend({\n    shellDescriptor: z.never().optional(),\n    ontologyBindings: z.array(LegacyOntologyBindingSchema),\n  });\n\n/** Transport readers accept either complete contract, never a mixed partial document. */\nexport const ReadablePageRuntimeBundleSchema: z.ZodType<PageRuntimeBundle | LegacyPageRuntimeBundle> = z.union([PageRuntimeBundleSchema, LegacyPageRuntimeBundleSchema]);\n\nexport const WorkbenchRuntimeIdentitySchema = z\n  .object({\n    name: I18nTextSchema,\n    description: I18nTextSchema.optional(),\n  })\n  .strict();\nconst WorkbenchRuntimeTargetSchema = WorkbenchReleaseSchema.shape.target\n  .safeExtend({\n    routeClaim: CompiledRouteClaimSchema,\n  })\n  .strict();\nexport const WorkbenchRuntimeBundleSchema = z\n  .object({\n    contract: z.literal(\"WorkbenchRuntimeBundle\"),\n    ...RuntimeBundleBaseShape,\n    workbenchId: ContractIdentifierSchema,\n    workbenchRevisionRef: RevisionRefSchema,\n    identity: WorkbenchRuntimeIdentitySchema,\n    surface: ProductSurfaceSchema,\n    routeClaims: z.array(CompiledRouteClaimSchema),\n    groups: z.array(WorkbenchGroupSchema),\n    appInstances: z.array(ResolvedWorkbenchAppInstanceSchema),\n    defaultEntry: WorkbenchSchema.shape.defaultEntry.nullable(),\n    layout: WorkbenchSchema.shape.layout,\n    workbenchAccessPolicy: AccessPolicySchema,\n    personalPreferencesPolicy: WorkbenchSchema.shape.personalPreferencesPolicy,\n    target: WorkbenchRuntimeTargetSchema,\n    performanceBudgetRef: RevisionRefSchema,\n    observationPolicyRevisionRef: RevisionRefSchema,\n    privacyClassification: z.enum([\n      \"public\",\n      \"internal\",\n      \"confidential\",\n      \"restricted\",\n    ]),\n  })\n  .strict()\n  .superRefine((value, context) => {\n    validateRuntimeBundleBase(value, \"workbench-release\", context);\n    value.routeClaims.forEach((claim, index) => {\n      if (claim.surface !== value.surface) {\n        context.addIssue({\n          code: \"custom\",\n          path: [\"routeClaims\", index, \"surface\"],\n          message: \"Runtime route claims must match the bundle surface.\",\n        });\n      }\n    });\n    validateRuntimeBundleReference(\n      value.workbenchRevisionRef,\n      value.tenantScope,\n      \"workbenchRevisionRef\",\n      \"workbench\",\n      value.workbenchId,\n      context,\n    );\n    if (value.appInstances.length === 0) {\n      if (value.defaultEntry !== null) {\n        context.addIssue({\n          code: \"custom\",\n          path: [\"defaultEntry\"],\n          message:\n            \"An empty Workbench runtime bundle must use a null default entry.\",\n        });\n      }\n      return;\n    }\n    if (value.defaultEntry === null) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"defaultEntry\"],\n        message:\n          \"A non-empty Workbench runtime bundle requires a default entry.\",\n      });\n      return;\n    }\n    const defaultInstance = value.appInstances.find(\n      (instance) => instance.instanceId === value.defaultEntry?.instanceId,\n    );\n    if (\n      !defaultInstance ||\n      defaultInstance.groupId !== value.defaultEntry.groupId\n    ) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"defaultEntry\"],\n        message:\n          \"Workbench runtime default entry must reference a visible app in the declared group.\",\n      });\n    }\n    if (\n      !value.groups.some(\n        (group) => group.groupId === value.defaultEntry?.groupId,\n      )\n    ) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"defaultEntry\", \"groupId\"],\n        message:\n          \"Workbench runtime default entry must reference a visible group.\",\n      });\n    }\n  });\nconst CompiledNavigationTargetSchema = ResolvedNavigationTargetSchema.extend({\n  kind: z.literal(\"route\"),\n  accessPolicy: AccessPolicySchema,\n  routeClaim: CompiledRouteClaimSchema,\n}).strict();\nexport const CompiledNavigationRegisteredMenuActionTargetSchema =\n  ResolvedNavigationTargetSchema.extend({\n    kind: z.literal(\"registered-menu-action\"),\n    accessPolicy: AccessPolicySchema,\n    execution: z.literal(\"client\"),\n    applicationId: ContractIdentifierSchema,\n    actionRef: ContractIdentifierSchema,\n    inputSchemaRef: ContractIdentifierSchema.optional(),\n    input: JsonObjectSchema,\n    sourceCatalogRevisionRef: RevisionRefSchema,\n  }).strict();\nexport const CompiledNavigationDomainCommandTargetSchema =\n  ResolvedNavigationTargetSchema.extend({\n    kind: z.literal(\"governed-domain-command\"),\n    accessPolicy: AccessPolicySchema,\n    execution: z.literal(\"server\"),\n    commandRevisionRef: RevisionRefSchema,\n    inputSchemaRevisionRef: RevisionRefSchema,\n    resultSchemaRevisionRef: RevisionRefSchema.optional(),\n    input: JsonObjectSchema,\n  }).strict();\nexport const CompiledNavigationResolvedTargetSchema = z.discriminatedUnion(\n  \"kind\",\n  [\n    CompiledNavigationTargetSchema,\n    CompiledNavigationRegisteredMenuActionTargetSchema,\n    CompiledNavigationDomainCommandTargetSchema,\n    UnavailableNavigationTargetSchema.omit({ reason: true })\n      .extend({ kind: z.literal(\"unavailable\") })\n      .strict(),\n  ],\n);\nexport const CompiledNavigationGroupNodeSchema =\n  NavigationGroupNodeSchema.extend({\n    ancestorAccessPolicies: z.array(AccessPolicySchema),\n  }).strict();\nexport const CompiledNavigationTargetNodeSchema =\n  NavigationTargetNodeSchema.extend({\n    ancestorAccessPolicies: z.array(AccessPolicySchema),\n    resolvedTarget: CompiledNavigationResolvedTargetSchema,\n  })\n    .strict()\n    .superRefine((node, context) => {\n      if (\n        node.resolvedTarget.nodeId !== node.nodeId ||\n        stableRefIdentity(node.resolvedTarget.stableTargetRef) !==\n          stableRefIdentity(node.targetRef)\n      ) {\n        context.addIssue({\n          code: \"custom\",\n          path: [\"resolvedTarget\"],\n          message: \"Resolved target identity must match the source node.\",\n        });\n      }\n      if (\n        node.resolvedTarget.kind === \"unavailable\" &&\n        (node.disabled !== true ||\n          Object.keys(node.parameterMapping).length > 0)\n      ) {\n        context.addIssue({\n          code: \"custom\",\n          path: [\"resolvedTarget\"],\n          message:\n            \"Unavailable targets must be disabled and contain no executable input.\",\n        });\n      }\n    });\n\nexport const CompiledNavigationSeparatorNodeSchema =\n  NavigationSeparatorNodeSchema.extend({\n    ancestorAccessPolicies: z.array(AccessPolicySchema),\n  }).strict();\nexport const CompiledNavigationNodeSchema = z.discriminatedUnion(\"kind\", [\n  CompiledNavigationGroupNodeSchema,\n  CompiledNavigationTargetNodeSchema,\n  CompiledNavigationSeparatorNodeSchema,\n]);\nexport const NavigationRuntimeBundleSchema = z\n  .object({\n    contract: z.literal(\"NavigationRuntimeBundle\"),\n    ...RuntimeBundleBaseShape,\n    navigationId: ContractIdentifierSchema,\n    navigationRevisionRef: RevisionRefSchema,\n    surface: ProductSurfaceSchema,\n    placement: ContractIdentifierSchema,\n    nodes: z.array(CompiledNavigationNodeSchema),\n    performanceBudgetRef: RevisionRefSchema,\n    observationPolicyRevisionRef: RevisionRefSchema,\n  })\n  .strict()\n  .superRefine((value, context) => {\n    validateRuntimeBundleBase(value, \"navigation-release\", context);\n    validateRuntimeBundleReference(\n      value.navigationRevisionRef,\n      value.tenantScope,\n      \"navigationRevisionRef\",\n      \"navigation\",\n      value.navigationId,\n      context,\n    );\n  });\nexport const DeclarativeControlOntologyDefinitionSchema =\n  OntologyDefinitionSchema.extend({\n    classification: z.literal(\"control\"),\n    discovery: z\n      .object({\n        ordinaryDataBrowser: z.literal(false),\n        businessSearch: z.literal(false),\n        businessStatistics: z.literal(false),\n        ordinaryExport: z.literal(false),\n        genericWrite: z.literal(false),\n      })\n      .strict(),\n  }).strict();\nconst controlDefinition = (ontologyId: string, bodySchemaRef: string) =>\n  DeclarativeControlOntologyDefinitionSchema.parse({\n    contract: \"OntologyDefinition\",\n    ontologyId,\n    dataSpaceId: \"monkeys.control\",\n    ownerRepo: \"monkeys-js-sdk\",\n    bodySchemaRef,\n    authority: {\n      service: \"monkeys-data-server\",\n      storage: \"domain-record\",\n      scope: \"tenant\",\n    },\n    relationKinds: [],\n    metricKinds: [],\n    classification: \"control\",\n    discovery: {\n      ordinaryDataBrowser: false,\n      businessSearch: false,\n      businessStatistics: false,\n      ordinaryExport: false,\n      genericWrite: false,\n    },\n  });\nexport const DECLARATIVE_CONTROL_ONTOLOGY_DEFINITIONS = Object.freeze([\n  controlDefinition(\"monkeys.system.page\", \"monkeys.system.page/v1\"),\n  controlDefinition(\n    \"monkeys.system.page-release\",\n    \"monkeys.system.page-release/v1\",\n  ),\n  controlDefinition(\"monkeys.system.workbench\", \"monkeys.system.workbench/v1\"),\n  controlDefinition(\n    \"monkeys.system.workbench-release\",\n    \"monkeys.system.workbench-release/v1\",\n  ),\n  controlDefinition(\n    \"monkeys.system.navigation\",\n    \"monkeys.system.navigation/v1\",\n  ),\n  controlDefinition(\n    \"monkeys.system.navigation-release\",\n    \"monkeys.system.navigation-release/v1\",\n  ),\n]);\nexport type I18nText = z.infer<typeof I18nTextSchema>;\nexport type ProductSurface = z.infer<typeof ProductSurfaceSchema>;\nexport type ScopedIdentityRef = z.infer<typeof ScopedIdentityRefSchema>;\nexport type TenantScope = z.infer<typeof TenantScopeSchema>;\nexport type StableRef = z.infer<typeof StableRefSchema>;\nexport type RevisionRef = z.infer<typeof RevisionRefSchema>;\nexport type StableRefAliasMap = z.infer<typeof StableRefAliasMapSchema>;\nexport type AccessPolicy = z.infer<typeof AccessPolicySchema>;\nexport type PermissionAlternativePolicy = z.infer<\n  typeof PermissionAlternativePolicySchema\n>;\nexport type ManagementAccess = z.infer<typeof ManagementAccessSchema>;\nexport type RouteSpace = z.infer<typeof RouteSpaceSchema>;\nexport type RouteClaim = z.infer<typeof RouteClaimSchema>;\nexport type LegacyRouteClaim = z.infer<typeof LegacyRouteClaimSchema>;\nexport type DeclarativeRouteClaim =\n  | z.infer<typeof DeclarativeRouteClaimSchema>\n  | z.infer<typeof LegacyDeclarativeRouteClaimSchema>;\nexport type CompiledRouteClaim = z.infer<typeof CompiledRouteClaimSchema>;\nexport type CompiledRouteMatcher = z.infer<typeof CompiledRouteMatcherSchema>;\nexport type ReleaseDependency = z.infer<typeof ReleaseDependencySchema>;\nexport type ReleaseEvidence = z.infer<typeof ReleaseEvidenceSchema>;\nexport type PublicationPlanOperation = z.infer<\n  typeof PublicationPlanOperationSchema\n>;\nexport type PublicationPlan = z.infer<typeof PublicationPlanSchema>;\nexport type CapabilityInstance = z.infer<typeof CapabilityInstanceSchema>;\nexport type PageStateDefinition = z.infer<typeof PageStateDefinitionSchema>;\nexport type LegacyBrowserPreferenceImport = z.infer<\n  typeof LegacyBrowserPreferenceImportSchema\n>;\nexport type PageEntryTransition = z.infer<typeof PageEntryTransitionSchema>;\nexport type ResolvedPageEntryTransition = z.infer<\n  typeof ResolvedPageEntryTransitionSchema\n>;\nexport type InteractionBinding = z.infer<typeof InteractionBindingSchema>;\nexport type CursorWindowBinding = z.infer<typeof CursorWindowBindingSchema>;\nexport type OntologyBinding = z.infer<typeof OntologyBindingSchema>;\nexport type GovernedCatalogResourceKind = z.infer<\n  typeof GovernedCatalogResourceKindSchema\n>;\nexport type GovernedCatalogDomainQueryDataSource = z.infer<\n  typeof GovernedCatalogDomainQueryDataSourceSchema\n>;\nexport type RegisteredServiceDomainQueryDataSource = z.infer<\n  typeof RegisteredServiceDomainQueryDataSourceSchema\n>;\nexport type DomainQueryDataSource = z.infer<typeof DomainQueryDataSourceSchema>;\nexport type DomainQueryDefinition = z.infer<typeof DomainQueryDefinitionSchema>;\nexport type QueryBinding = z.infer<typeof QueryBindingSchema>;\nexport type QueryResultStateBinding = z.infer<\n  typeof QueryResultStateBindingSchema\n>;\nexport type ActionBinding = z.infer<typeof ActionBindingSchema>;\nexport type ActionResultBindingEffect = z.infer<\n  typeof ActionResultBindingEffectSchema\n>;\nexport type Page = z.infer<typeof PageSchema>;\nexport type ResolvedPage = z.infer<typeof ResolvedPageSchema>;\nexport type PageMigrationEquivalence = z.infer<\n  typeof PageMigrationEquivalenceSchema\n>;\nexport type PageRouteStatePresentation = z.infer<\n  typeof PageRouteStatePresentationSchema\n>;\nexport type PageRelease = z.infer<typeof PageReleaseSchema>;\nexport type Workbench = z.infer<typeof WorkbenchSchema>;\nexport type WorkbenchRelease = z.infer<typeof WorkbenchReleaseSchema>;\nexport type NavigationNode = z.infer<typeof NavigationNodeSchema>;\nexport type Navigation = z.infer<typeof NavigationSchema>;\nexport type ResolvedNavigationTarget = z.infer<\n  typeof ResolvedNavigationTargetSchema\n>;\nexport type CompiledNavigationResolvedTarget = z.infer<\n  typeof CompiledNavigationResolvedTargetSchema\n>;\nexport type NavigationRelease = z.infer<typeof NavigationReleaseSchema>;\nexport type DeclarativeShellHeaderChrome = z.infer<\n  typeof DeclarativeShellHeaderChromeSchema\n>;\nexport type DeclarativeShellSurfaceChrome = z.infer<\n  typeof DeclarativeShellSurfaceChromeSchema\n>;\nexport type DeclarativeRuntimeShellDescriptor = z.infer<\n  typeof DeclarativeRuntimeShellDescriptorSchema\n>;\nexport type LegacyPageRuntimeBundle = Omit<\n  PageRuntimeBundle,\n  \"shellDescriptor\" | \"ontologyBindings\"\n> & {\n  shellDescriptor?: never;\n  ontologyBindings: z.infer<typeof LegacyOntologyBindingSchema>[];\n};\nexport type PageRuntimeBundle = z.infer<typeof PageRuntimeBundleSchema>;\nexport type WorkbenchRuntimeBundle = z.infer<\n  typeof WorkbenchRuntimeBundleSchema\n>;\nexport type WorkbenchRuntimeIdentity = z.infer<\n  typeof WorkbenchRuntimeIdentitySchema\n>;\nexport type NavigationRuntimeBundle = z.infer<\n  typeof NavigationRuntimeBundleSchema\n>;\nexport type LegacyRouteTakeoverAuthorization = z.infer<\n  typeof LegacyRouteTakeoverAuthorizationSchema\n>;\nexport type DeclarativeRouteOwnerIndexEntry = z.infer<\n  typeof DeclarativeRouteOwnerIndexEntrySchema\n>;\nexport type DeclarativeRouteOwnerIndex = z.infer<\n  typeof DeclarativeRouteOwnerIndexSchema\n>;\nexport type DeclarativeWorkbenchCatalogEntry = z.infer<\n  typeof DeclarativeWorkbenchCatalogEntrySchema\n>;\nexport type DeclarativeWorkbenchCatalog = z.infer<\n  typeof DeclarativeWorkbenchCatalogSchema\n>;\nexport type DeclarativeControlOntologyDefinition = z.infer<\n  typeof DeclarativeControlOntologyDefinitionSchema\n>;\n\nexport type ActionResultClipboardEffect = z.infer<\n  typeof ActionResultClipboardEffectSchema\n>;\n","import { z } from 'zod';\nimport {\n  ContractIdentifierSchema,\n  EntityRefSchema,\n  JsonObjectSchema,\n  LocalizedTextSchema,\n} from './common';\nimport { LegacyRoutePolicySchema } from './legacy-route';\n\nexport const PageTypeSchema = z.enum([\n  'page',\n  'workspace',\n  'view',\n  'record',\n  'action',\n  'overlay',\n  'agent',\n  'process',\n  'log',\n  'chat',\n  'preview',\n  'api',\n  'enhanced',\n  'agent-chat',\n  'agent-config',\n  'agent-log',\n  'design-board',\n  'global-design-board',\n  'iframe',\n]);\n\nexport const PageVisibilitySchema = z\n  .object({\n    authenticated: z.boolean().default(true),\n    permissionAllOf: z.array(ContractIdentifierSchema).default([]),\n    permissionAnyOf: z.array(ContractIdentifierSchema).default([]),\n    featureFlags: z.array(ContractIdentifierSchema).default([]),\n    productContexts: z.array(z.enum(['studio', 'kernel'])).min(1),\n  })\n  .strict();\n\nexport const PageRoutePathSchema = z\n  .string()\n  .trim()\n  .regex(/^\\/(?!\\/)/, 'Expected an application-relative route path.');\n\nconst requireCapabilityReference = (\n  reference: z.infer<typeof EntityRefSchema>,\n  path: (string | number)[],\n  context: z.RefinementCtx,\n) => {\n  if (reference.kind !== 'capability') {\n    context.addIssue({\n      code: 'custom',\n      path: [...path, 'kind'],\n      message: 'Page capability references must use kind capability.',\n    });\n  }\n  if (reference.version === undefined) {\n    context.addIssue({\n      code: 'custom',\n      path: [...path, 'version'],\n      message: 'Page capability references must pin an active capability version.',\n    });\n  }\n  if (reference.ownerRepo === undefined) {\n    context.addIssue({\n      code: 'custom',\n      path: [...path, 'ownerRepo'],\n      message: 'Page capability references must declare their owner repository.',\n    });\n  }\n};\n\nexport const PageDefinitionSchema = z\n  .object({\n    contract: z.literal('PageDefinition'),\n    pageId: ContractIdentifierSchema,\n    ownerRepo: ContractIdentifierSchema,\n    title: LocalizedTextSchema,\n    pageType: PageTypeSchema,\n    ownership: z.object({\n      teamId: ContractIdentifierSchema.optional(),\n      creatorRef: EntityRefSchema.optional(),\n      studioId: ContractIdentifierSchema.optional(),\n      builtIn: z.boolean(),\n    }).strict(),\n    record: z.object({\n      createdTimestamp: z.number().int().nonnegative().optional(),\n      updatedTimestamp: z.number().int().nonnegative().optional(),\n      deleted: z.boolean().default(false),\n    }).strict(),\n    surface: z.enum(['page', 'workspace', 'view', 'record', 'action', 'overlay', 'agent']),\n    routeId: ContractIdentifierSchema,\n    routePath: PageRoutePathSchema,\n    legacyRoutePolicy: LegacyRoutePolicySchema.optional(),\n    rendererKey: ContractIdentifierSchema,\n    capabilityRef: EntityRefSchema,\n    capabilityRefs: z.array(EntityRefSchema).default([]),\n    workflowRef: EntityRefSchema.optional(),\n    binding: z\n      .object({\n        sourceRef: ContractIdentifierSchema.optional(),\n        ontologyId: ContractIdentifierSchema.optional(),\n        projectionRef: ContractIdentifierSchema.optional(),\n        stateRef: ContractIdentifierSchema.optional(),\n      })\n      .strict(),\n    access: z.object({\n      actions: z.array(z.enum(['read', 'write', 'execute', 'manage-permissions'])).default([]),\n    }).strict(),\n    input: z\n      .object({\n        schemaRef: ContractIdentifierSchema,\n      })\n      .strict()\n      .optional(),\n    rendererConfig: z.object({\n      schemaRef: ContractIdentifierSchema,\n      value: JsonObjectSchema,\n    }).strict(),\n    navigation: z\n      .object({\n        label: LocalizedTextSchema,\n        iconRef: ContractIdentifierSchema.optional(),\n        parentPageId: ContractIdentifierSchema.optional(),\n        order: z.number().int().optional(),\n        hidden: z.boolean().default(false),\n        pinned: z.boolean().default(false),\n      })\n      .strict(),\n    visibility: PageVisibilitySchema,\n  })\n  .strict()\n  .superRefine((page, context) => {\n    const capabilities = [page.capabilityRef, ...page.capabilityRefs];\n    const capabilityIdentities = new Set<string>();\n    capabilities.forEach((reference, index) => {\n      const path = index === 0 ? ['capabilityRef'] : ['capabilityRefs', index - 1];\n      requireCapabilityReference(reference, path, context);\n      const identity = `${reference.id}@${String(reference.version)}:${reference.ownerRepo ?? ''}`;\n      if (capabilityIdentities.has(identity)) {\n        context.addIssue({\n          code: 'custom',\n          path,\n          message: `Duplicate page capability reference: ${identity}`,\n        });\n      }\n      capabilityIdentities.add(identity);\n    });\n    if (page.workflowRef && page.workflowRef.kind !== 'workflow') context.addIssue({ code: 'custom', path: ['workflowRef', 'kind'], message: 'workflowRef must reference a workflow.' });\n  });\n\nexport const PageRuntimeDescriptorSchema = z\n  .object({\n    contract: z.literal('PageRuntimeDescriptor'),\n    page: PageDefinitionSchema,\n    nodeId: ContractIdentifierSchema,\n    parentNodeId: ContractIdentifierSchema.optional(),\n    slot: ContractIdentifierSchema.optional(),\n    semanticRef: ContractIdentifierSchema.optional(),\n    dataContextRef: ContractIdentifierSchema.optional(),\n    providerRef: EntityRefSchema.optional(),\n    surface: z\n      .object({\n        frameOwner: ContractIdentifierSchema,\n        tone: ContractIdentifierSchema.optional(),\n        density: z.enum(['compact', 'default', 'comfortable']).default('default'),\n      })\n      .strict(),\n    scroll: z\n      .object({\n        owner: z.enum(['page', 'surface', 'provider']),\n        axis: z.enum(['x', 'y', 'both', 'none']),\n        restoreKey: ContractIdentifierSchema.optional(),\n        virtualized: z.boolean().default(false),\n      })\n      .strict(),\n    activation: z.enum(['navigate', 'select', 'drawer', 'modal', 'fullscreen']),\n    lifecycle: z\n      .object({\n        mountPolicy: z.enum(['always', 'when-visible', 'when-active']),\n        queryPolicy: z.enum(['always', 'when-visible', 'when-active', 'manual']),\n        deepLink: z.boolean(),\n        focusReturn: z.boolean(),\n      })\n      .strict(),\n  })\n  .strict();\n\nexport const PageRouteProjectionSchema = z.object({\n  pageId: ContractIdentifierSchema,\n  routeId: ContractIdentifierSchema,\n  path: PageRoutePathSchema,\n}).strict();\n\nexport const PageNavigationProjectionSchema = z.object({\n  pageId: ContractIdentifierSchema,\n  routeId: ContractIdentifierSchema,\n  path: PageRoutePathSchema,\n  label: LocalizedTextSchema,\n  iconRef: ContractIdentifierSchema.optional(),\n  parentPageId: ContractIdentifierSchema.optional(),\n  order: z.number().int().optional(),\n  pinned: z.boolean(),\n}).strict();\n\nexport const PageGuardProjectionSchema = z.object({\n  pageId: ContractIdentifierSchema,\n  authenticated: z.boolean(),\n  permissionAllOf: z.array(ContractIdentifierSchema),\n  permissionAnyOf: z.array(ContractIdentifierSchema),\n  featureFlags: z.array(ContractIdentifierSchema),\n  actions: z.array(z.enum(['read', 'write', 'execute', 'manage-permissions'])),\n}).strict();\n\nexport const PageRendererProjectionSchema = z\n  .object({\n    pageId: ContractIdentifierSchema,\n    surface: z.enum(['page', 'workspace', 'view', 'record', 'action', 'overlay', 'agent']),\n    rendererKey: ContractIdentifierSchema,\n    capabilityRef: EntityRefSchema,\n    capabilityRefs: z.array(EntityRefSchema),\n    providerRef: EntityRefSchema,\n    binding: PageDefinitionSchema.shape.binding,\n    rendererConfig: PageDefinitionSchema.shape.rendererConfig,\n    workflowRef: EntityRefSchema.optional(),\n  })\n  .strict()\n  .superRefine((renderer, context) => {\n    requireCapabilityReference(renderer.capabilityRef, ['capabilityRef'], context);\n    renderer.capabilityRefs.forEach((reference, index) => {\n      requireCapabilityReference(reference, ['capabilityRefs', index], context);\n    });\n    if (renderer.providerRef.kind !== 'view-provider') {\n      context.addIssue({\n        code: 'custom',\n        path: ['providerRef', 'kind'],\n        message: 'Renderer providerRef must use kind view-provider.',\n      });\n    }\n    if (renderer.providerRef.version === undefined) {\n      context.addIssue({\n        code: 'custom',\n        path: ['providerRef', 'version'],\n        message: 'Renderer providerRef must pin a provider version.',\n      });\n    }\n    if (renderer.providerRef.ownerRepo === undefined) {\n      context.addIssue({\n        code: 'custom',\n        path: ['providerRef', 'ownerRepo'],\n        message: 'Renderer providerRef must declare its owner repository.',\n      });\n    }\n  });\n\nconst duplicateProjectionIdentity = <T>(\n  values: readonly T[],\n  identity: (value: T) => string,\n): string | undefined => {\n  const seen = new Set<string>();\n  for (const value of values) {\n    const key = identity(value);\n    if (seen.has(key)) return key;\n    seen.add(key);\n  }\n  return undefined;\n};\n\nexport const PageRuntimeProjectionSchema = z\n  .object({\n    contract: z.literal('PageRuntimeProjection'),\n    product: z.enum(['studio', 'kernel']),\n    routes: z.array(PageRouteProjectionSchema),\n    navigation: z.array(PageNavigationProjectionSchema),\n    guards: z.array(PageGuardProjectionSchema),\n    renderers: z.array(PageRendererProjectionSchema),\n  })\n  .strict()\n  .superRefine((projection, context) => {\n    const tables = [\n      ['routes', projection.routes.map((value) => value.pageId)],\n      ['navigation', projection.navigation.map((value) => value.pageId)],\n      ['guards', projection.guards.map((value) => value.pageId)],\n      ['renderers', projection.renderers.map((value) => value.pageId)],\n    ] as const;\n    for (const [table, values] of tables) {\n      const duplicate = duplicateProjectionIdentity(values, (value) => value);\n      if (duplicate) {\n        context.addIssue({ code: 'custom', path: [table], message: `Duplicate ${table} pageId: ${duplicate}` });\n      }\n    }\n\n    for (const identity of [\n      ['routeId', duplicateProjectionIdentity(projection.routes, (route) => route.routeId)],\n      ['path', duplicateProjectionIdentity(projection.routes, (route) => route.path)],\n    ] as const) {\n      if (identity[1]) {\n        context.addIssue({ code: 'custom', path: ['routes'], message: `Duplicate route ${identity[0]}: ${identity[1]}` });\n      }\n    }\n\n    const routesByPageId = new Map(projection.routes.map((route) => [route.pageId, route]));\n    const guardPageIds = new Set(projection.guards.map((guard) => guard.pageId));\n    const rendererPageIds = new Set(projection.renderers.map((renderer) => renderer.pageId));\n    for (const route of projection.routes) {\n      if (!guardPageIds.has(route.pageId)) {\n        context.addIssue({ code: 'custom', path: ['guards'], message: `Missing guard projection for ${route.pageId}.` });\n      }\n      if (!rendererPageIds.has(route.pageId)) {\n        context.addIssue({ code: 'custom', path: ['renderers'], message: `Missing renderer projection for ${route.pageId}.` });\n      }\n    }\n    for (const guard of projection.guards) {\n      if (!routesByPageId.has(guard.pageId)) {\n        context.addIssue({ code: 'custom', path: ['guards'], message: `Guard references unknown page ${guard.pageId}.` });\n      }\n    }\n    for (const renderer of projection.renderers) {\n      if (!routesByPageId.has(renderer.pageId)) {\n        context.addIssue({ code: 'custom', path: ['renderers'], message: `Renderer references unknown page ${renderer.pageId}.` });\n      }\n    }\n    for (const navigation of projection.navigation) {\n      const route = routesByPageId.get(navigation.pageId);\n      if (!route || route.routeId !== navigation.routeId || route.path !== navigation.path) {\n        context.addIssue({\n          code: 'custom',\n          path: ['navigation'],\n          message: `Navigation route projection for ${navigation.pageId} does not match its route table entry.`,\n        });\n      }\n    }\n  });\n\nexport type PageVisibility = z.infer<typeof PageVisibilitySchema>;\nexport type PageType = z.infer<typeof PageTypeSchema>;\nexport type PageDefinition = z.infer<typeof PageDefinitionSchema>;\nexport type PageRuntimeDescriptor = z.infer<typeof PageRuntimeDescriptorSchema>;\nexport type PageRouteProjection = z.infer<typeof PageRouteProjectionSchema>;\nexport type PageNavigationProjection = z.infer<typeof PageNavigationProjectionSchema>;\nexport type PageGuardProjection = z.infer<typeof PageGuardProjectionSchema>;\nexport type PageRendererProjection = z.infer<typeof PageRendererProjectionSchema>;\nexport type PageRuntimeProjection = z.infer<typeof PageRuntimeProjectionSchema>;\n","import { z } from 'zod';\nimport {\n  ContractIdentifierSchema,\n  JsonObjectSchema,\n  LocalizedTextSchema,\n  Sha256Schema,\n} from './common';\nimport { PageDefinitionSchema } from './page';\n\nexport const MENU_ACTIVATION_QUERY_PARAMETER = '__menuActivation';\nexport const MENU_CONTRACT_VERSION = 1;\nexport const MENU_MAX_DEFINITIONS = 128;\nexport const MENU_MAX_NODES = 1_024;\nexport const MENU_MAX_TREE_DEPTH = 16;\nexport const MENU_MAX_INPUT_BYTES = 64 * 1_024;\nexport const MENU_MAX_INPUT_VALUES = 2_048;\n\nconst MenuOrderSchema = z.number().int().min(-1_000_000).max(1_000_000);\n\nconst inspectJsonValue = (value: unknown): { bytes: number; depth: number; values: number } => {\n  let maxDepth = 0;\n  let values = 0;\n  const visit = (candidate: unknown, depth: number) => {\n    values += 1;\n    maxDepth = Math.max(maxDepth, depth);\n    if (Array.isArray(candidate)) {\n      candidate.forEach((item) => visit(item, depth + 1));\n      return;\n    }\n    if (candidate && typeof candidate === 'object') {\n      Object.values(candidate as Record<string, unknown>).forEach((item) => visit(item, depth + 1));\n    }\n  };\n  visit(value, 1);\n  return {\n    bytes: new TextEncoder().encode(JSON.stringify(value)).byteLength,\n    depth: maxDepth,\n    values,\n  };\n};\n\nexport const MenuBoundedInputSchema = JsonObjectSchema.superRefine((value, context) => {\n  const bounds = inspectJsonValue(value);\n  if (bounds.bytes > MENU_MAX_INPUT_BYTES) {\n    context.addIssue({\n      code: 'custom',\n      message: `Menu input exceeds ${MENU_MAX_INPUT_BYTES} UTF-8 bytes.`,\n    });\n  }\n  if (bounds.depth > MENU_MAX_TREE_DEPTH) {\n    context.addIssue({\n      code: 'custom',\n      message: `Menu input exceeds maximum depth ${MENU_MAX_TREE_DEPTH}.`,\n    });\n  }\n  if (bounds.values > MENU_MAX_INPUT_VALUES) {\n    context.addIssue({\n      code: 'custom',\n      message: `Menu input exceeds ${MENU_MAX_INPUT_VALUES} values.`,\n    });\n  }\n});\n\nexport const MenuPageRefSchema = z\n  .object({\n    applicationId: ContractIdentifierSchema,\n    pageId: ContractIdentifierSchema,\n  })\n  .strict();\n\nexport const MenuSourceInputBindingSchema = z.discriminatedUnion('exposure', [\n  z.object({ exposure: z.literal('client'), value: MenuBoundedInputSchema }).strict(),\n  z.object({ exposure: z.literal('server'), value: MenuBoundedInputSchema }).strict(),\n]);\n\nexport const MenuRuntimeInputBindingSchema = z.discriminatedUnion('exposure', [\n  z.object({ exposure: z.literal('client'), value: MenuBoundedInputSchema }).strict(),\n  z.object({ exposure: z.literal('server') }).strict(),\n]);\n\nexport const MenuNavigateBehaviorSchema = z\n  .object({\n    kind: z.literal('navigate'),\n    page: MenuPageRefSchema,\n    activationId: ContractIdentifierSchema.optional(),\n    input: MenuSourceInputBindingSchema.optional(),\n  })\n  .strict();\n\nexport const MenuActionBehaviorSchema = z\n  .object({\n    kind: z.literal('action'),\n    actionRef: ContractIdentifierSchema,\n    input: MenuBoundedInputSchema.optional(),\n  })\n  .strict();\n\nexport const MenuBehaviorSchema = z.discriminatedUnion('kind', [\n  MenuNavigateBehaviorSchema,\n  MenuActionBehaviorSchema,\n]);\n\nconst MenuNodeBaseShape = {\n  nodeId: ContractIdentifierSchema,\n  parentNodeId: ContractIdentifierSchema.optional(),\n  order: MenuOrderSchema,\n};\n\nexport const MenuGroupNodeSchema = z\n  .object({\n    ...MenuNodeBaseShape,\n    kind: z.literal('group'),\n    label: LocalizedTextSchema.optional(),\n    iconRef: ContractIdentifierSchema.optional(),\n    disabled: z.boolean().optional(),\n  })\n  .strict();\n\nexport const MenuDividerNodeSchema = z\n  .object({\n    ...MenuNodeBaseShape,\n    kind: z.literal('divider'),\n  })\n  .strict();\n\nexport const MenuItemNodeSchema = z\n  .object({\n    ...MenuNodeBaseShape,\n    kind: z.literal('item'),\n    label: LocalizedTextSchema,\n    iconRef: ContractIdentifierSchema.optional(),\n    tone: z.enum(['default', 'danger']).optional(),\n    disabled: z.boolean().optional(),\n    requiredPermission: ContractIdentifierSchema.optional(),\n    behavior: MenuBehaviorSchema,\n  })\n  .strict();\n\nexport const MenuNodeSchema = z.discriminatedUnion('kind', [\n  MenuGroupNodeSchema,\n  MenuDividerNodeSchema,\n  MenuItemNodeSchema,\n]);\n\nexport const MenuContributionSchema = z\n  .object({\n    providerId: ContractIdentifierSchema,\n    parentNodeId: ContractIdentifierSchema.optional(),\n    order: MenuOrderSchema,\n  })\n  .strict();\n\nconst validateMenuStructure = (\n  menu: {\n    nodes: z.infer<typeof MenuNodeSchema>[];\n    contributions: z.infer<typeof MenuContributionSchema>[];\n  },\n  context: z.RefinementCtx,\n) => {\n  const nodesById = new Map<string, { node: z.infer<typeof MenuNodeSchema>; index: number }>();\n  menu.nodes.forEach((node, index) => {\n    if (nodesById.has(node.nodeId)) {\n      context.addIssue({\n        code: 'custom',\n        path: ['nodes', index, 'nodeId'],\n        message: `Duplicate menu nodeId: ${node.nodeId}`,\n      });\n      return;\n    }\n    nodesById.set(node.nodeId, { node, index });\n  });\n\n  const validateParent = (parentNodeId: string | undefined, path: (string | number)[]) => {\n    if (!parentNodeId) return;\n    const parent = nodesById.get(parentNodeId);\n    if (!parent) {\n      context.addIssue({ code: 'custom', path, message: `Unknown menu parentNodeId: ${parentNodeId}` });\n      return;\n    }\n    if (parent.node.kind !== 'group') {\n      context.addIssue({ code: 'custom', path, message: `Menu parent ${parentNodeId} must be a group.` });\n    }\n  };\n\n  menu.nodes.forEach((node, index) => validateParent(node.parentNodeId, ['nodes', index, 'parentNodeId']));\n  menu.contributions.forEach((contribution, index) =>\n    validateParent(contribution.parentNodeId, ['contributions', index, 'parentNodeId']));\n\n  menu.nodes.forEach((node, index) => {\n    const ancestors = new Set([node.nodeId]);\n    let parentNodeId = node.parentNodeId;\n    let depth = 1;\n    while (parentNodeId) {\n      if (ancestors.has(parentNodeId)) {\n        context.addIssue({\n          code: 'custom',\n          path: ['nodes', index, 'parentNodeId'],\n          message: `Menu node cycle contains ${node.nodeId}.`,\n        });\n        break;\n      }\n      ancestors.add(parentNodeId);\n      depth += 1;\n      if (depth > MENU_MAX_TREE_DEPTH) {\n        context.addIssue({\n          code: 'custom',\n          path: ['nodes', index, 'parentNodeId'],\n          message: `Menu tree exceeds maximum depth ${MENU_MAX_TREE_DEPTH}.`,\n        });\n        break;\n      }\n      parentNodeId = nodesById.get(parentNodeId)?.node.parentNodeId;\n    }\n  });\n\n  const contributionKeys = new Set<string>();\n  menu.contributions.forEach((contribution, index) => {\n    const key = `${contribution.parentNodeId ?? ''}\\u0000${contribution.providerId}`;\n    if (contributionKeys.has(key)) {\n      context.addIssue({\n        code: 'custom',\n        path: ['contributions', index, 'providerId'],\n        message: `Duplicate menu contribution provider at parent: ${contribution.providerId}`,\n      });\n    }\n    contributionKeys.add(key);\n  });\n};\n\nexport const MenuDefinitionSchema = z\n  .object({\n    contract: z.literal('MenuDefinition'),\n    version: z.literal(MENU_CONTRACT_VERSION),\n    applicationId: ContractIdentifierSchema,\n    surface: ContractIdentifierSchema,\n    menuId: ContractIdentifierSchema,\n    nodes: z.array(MenuNodeSchema).max(MENU_MAX_NODES),\n    contributions: z.array(MenuContributionSchema).max(MENU_MAX_NODES).default([]),\n  })\n  .strict()\n  .superRefine(validateMenuStructure);\n\nexport const MenuDefinitionSetSchema = z.union([\n  z.literal('*'),\n  z\n    .object({\n      version: z.literal(MENU_CONTRACT_VERSION),\n      definitions: z.array(MenuDefinitionSchema).max(MENU_MAX_DEFINITIONS),\n    })\n    .strict(),\n]);\n\nexport const MenuAccessRequirementSchema = z\n  .object({\n    authenticated: z.boolean().default(true),\n    permissionAllOf: z.array(ContractIdentifierSchema).default([]),\n    permissionAnyOf: z.array(ContractIdentifierSchema).default([]),\n    featureFlags: z.array(ContractIdentifierSchema).default([]),\n  })\n  .strict();\n\nexport const MenuPageRegistrationSchema = z\n  .object({\n    applicationId: ContractIdentifierSchema,\n    page: PageDefinitionSchema,\n  })\n  .strict();\n\nexport const MenuActionRegistrationSchema = z\n  .object({\n    applicationId: ContractIdentifierSchema,\n    actionRef: ContractIdentifierSchema,\n    inputSchemaRef: ContractIdentifierSchema.optional(),\n    access: MenuAccessRequirementSchema,\n  })\n  .strict();\n\nexport const MenuContributionProviderRegistrationSchema = z\n  .object({\n    applicationId: ContractIdentifierSchema,\n    providerId: ContractIdentifierSchema,\n    surfaces: z.array(ContractIdentifierSchema).min(1).optional(),\n  })\n  .strict();\n\nexport const CompiledMenuNavigateBehaviorSchema = z\n  .object({\n    kind: z.literal('navigate'),\n    page: MenuPageRefSchema,\n    activationId: ContractIdentifierSchema,\n    input: MenuRuntimeInputBindingSchema.optional(),\n  })\n  .strict();\n\nexport const CompiledMenuActionBehaviorSchema = z\n  .object({\n    kind: z.literal('action'),\n    actionRef: ContractIdentifierSchema,\n    input: MenuBoundedInputSchema.optional(),\n  })\n  .strict();\n\nexport const CompiledMenuBehaviorSchema = z.discriminatedUnion('kind', [\n  CompiledMenuNavigateBehaviorSchema,\n  CompiledMenuActionBehaviorSchema,\n]);\n\nexport const CompiledMenuItemAccessSchema = MenuAccessRequirementSchema.extend({\n  requiredPermission: ContractIdentifierSchema.optional(),\n}).strict();\n\nexport const CompiledMenuGroupNodeSchema = MenuGroupNodeSchema;\nexport const CompiledMenuDividerNodeSchema = MenuDividerNodeSchema;\nexport const CompiledMenuItemNodeSchema = MenuItemNodeSchema.omit({ behavior: true, requiredPermission: true }).extend({\n  behavior: CompiledMenuBehaviorSchema,\n  access: CompiledMenuItemAccessSchema,\n}).strict();\n\nexport const CompiledMenuNodeSchema = z.discriminatedUnion('kind', [\n  CompiledMenuGroupNodeSchema,\n  CompiledMenuDividerNodeSchema,\n  CompiledMenuItemNodeSchema,\n]);\n\nexport const CompiledMenuProjectionSchema = z\n  .object({\n    applicationId: ContractIdentifierSchema,\n    surface: ContractIdentifierSchema,\n    menuId: ContractIdentifierSchema,\n    nodes: z.array(CompiledMenuNodeSchema).max(MENU_MAX_NODES),\n    contributions: z.array(MenuContributionSchema).max(MENU_MAX_NODES),\n  })\n  .strict();\n\nexport const MenuNavigationTargetSchema = z\n  .object({\n    page: MenuPageRefSchema,\n    activationId: ContractIdentifierSchema,\n    input: MenuRuntimeInputBindingSchema.optional(),\n  })\n  .strict();\n\nexport const MenuRuntimeBundleSchema = z\n  .object({\n    contract: z.literal('MenuRuntimeBundle'),\n    version: z.literal(MENU_CONTRACT_VERSION),\n    applicationId: ContractIdentifierSchema,\n    sourceVersion: ContractIdentifierSchema,\n    contentHash: Sha256Schema,\n    menus: z.array(CompiledMenuProjectionSchema).max(MENU_MAX_DEFINITIONS),\n    navigationTargets: z.array(MenuNavigationTargetSchema),\n    sourceMap: z.record(z.string(), ContractIdentifierSchema).default({}),\n  })\n  .strict();\n\nexport const MenuContributionResultSchema = z\n  .object({\n    contract: z.literal('MenuContributionResult'),\n    applicationId: ContractIdentifierSchema,\n    surface: ContractIdentifierSchema,\n    menuId: ContractIdentifierSchema,\n    providerId: ContractIdentifierSchema,\n    nodes: z.array(CompiledMenuNodeSchema).max(MENU_MAX_NODES),\n  })\n  .strict();\n\nexport type MenuPageRef = z.infer<typeof MenuPageRefSchema>;\nexport type MenuSourceInputBinding = z.infer<typeof MenuSourceInputBindingSchema>;\nexport type MenuRuntimeInputBinding = z.infer<typeof MenuRuntimeInputBindingSchema>;\nexport type MenuNavigateBehavior = z.infer<typeof MenuNavigateBehaviorSchema>;\nexport type MenuActionBehavior = z.infer<typeof MenuActionBehaviorSchema>;\nexport type MenuBehavior = z.infer<typeof MenuBehaviorSchema>;\nexport type MenuGroupNode = z.infer<typeof MenuGroupNodeSchema>;\nexport type MenuDividerNode = z.infer<typeof MenuDividerNodeSchema>;\nexport type MenuItemNode = z.infer<typeof MenuItemNodeSchema>;\nexport type MenuNode = z.infer<typeof MenuNodeSchema>;\nexport type MenuContribution = z.infer<typeof MenuContributionSchema>;\nexport type MenuDefinition = z.infer<typeof MenuDefinitionSchema>;\nexport type MenuDefinitionSet = z.infer<typeof MenuDefinitionSetSchema>;\nexport type MenuAccessRequirement = z.infer<typeof MenuAccessRequirementSchema>;\nexport type MenuPageRegistration = z.infer<typeof MenuPageRegistrationSchema>;\nexport type MenuActionRegistration = z.infer<typeof MenuActionRegistrationSchema>;\nexport type MenuContributionProviderRegistration = z.infer<typeof MenuContributionProviderRegistrationSchema>;\nexport type CompiledMenuBehavior = z.infer<typeof CompiledMenuBehaviorSchema>;\nexport type CompiledMenuItemNode = z.infer<typeof CompiledMenuItemNodeSchema>;\nexport type CompiledMenuNode = z.infer<typeof CompiledMenuNodeSchema>;\nexport type CompiledMenuProjection = z.infer<typeof CompiledMenuProjectionSchema>;\nexport type MenuNavigationTarget = z.infer<typeof MenuNavigationTargetSchema>;\nexport type MenuRuntimeBundle = z.infer<typeof MenuRuntimeBundleSchema>;\nexport type MenuContributionResult = z.infer<typeof MenuContributionResultSchema>;\n","import { z } from \"zod\";\nimport { CapabilityManifestSchema } from \"./capability\";\nimport { ContractIdentifierSchema, EntityRefSchema, IsoDateTimeSchema, JsonObjectSchema, SensitiveResultPathsSchema, } from \"./common\";\nimport { OntologyDefinitionSchema, ProjectionSpecSchema } from \"./data\";\nimport { MenuDefinitionSchema } from \"./menu\";\nimport { PageDefinitionSchema } from \"./page\";\nimport { RevisionRefSchema } from \"./declarative-control\";\nconst ExactRefKindSchema = (kind: string) => RevisionRefSchema.superRefine((value, context) => {\n    if (value.kind !== kind)\n        context.addIssue({ code: \"custom\", path: [\"kind\"], message: `Reference must use kind ${kind}.` });\n});\nexport const SchemaDefinitionSchema = z\n    .object({\n    contract: z.literal(\"Schema\"),\n    schemaVersion: z.literal(1),\n    schemaId: ContractIdentifierSchema,\n    ownerRepo: ContractIdentifierSchema,\n    dialect: z.literal(\"https://json-schema.org/draft/2020-12/schema\"),\n    document: JsonObjectSchema,\n})\n    .strict();\nexport const OntologyViewDefinitionSchema = z\n    .object({\n    contract: z.literal(\"View\"),\n    schemaVersion: z.literal(1),\n    viewId: ContractIdentifierSchema,\n    ownerRepo: ContractIdentifierSchema,\n    ontologyDefinitionRevisionRef: ExactRefKindSchema(\"ontology-definition\"),\n    canonicalDataViewRevisionRef: ExactRefKindSchema(\"view\"),\n    renderModelSchemaRevisionRef: ExactRefKindSchema(\"schema\"),\n    requiredPermissionCodes: z.array(ContractIdentifierSchema).default([]),\n})\n    .strict();\n/** Exact pre-canonical View records remain readable without synthesizing a new revision. */\nexport const LegacyOntologyViewDefinitionSchema = OntologyViewDefinitionSchema.omit({ canonicalDataViewRevisionRef: true });\n\nexport const ConceptRelationshipSchema = z\n    .object({\n    kind: ContractIdentifierSchema,\n    targetConceptId: ContractIdentifierSchema,\n    cardinality: z.enum([\"one\", \"optional\", \"many\"]),\n})\n    .strict();\nexport const ConceptDefinitionSchema = z\n    .object({\n    contract: z.literal(\"ConceptDefinition\"),\n    conceptId: ContractIdentifierSchema,\n    ownerRepo: ContractIdentifierSchema,\n    displayName: z.string().trim().min(1),\n    description: z.string().optional(),\n    schemaRef: ContractIdentifierSchema,\n    ontologyId: ContractIdentifierSchema.optional(),\n    capabilityIds: z.array(ContractIdentifierSchema).default([]),\n    commandNames: z.array(ContractIdentifierSchema).default([]),\n    relationships: z.array(ConceptRelationshipSchema).default([]),\n})\n    .strict();\nexport const DomainCommandDefinitionSchema = z\n    .object({\n    contract: z.literal(\"DomainCommandDefinition\"),\n    commandName: ContractIdentifierSchema,\n    ownerRepo: ContractIdentifierSchema,\n    displayName: z.string().trim().min(1),\n    description: z.string().optional(),\n    targetKinds: z.array(ContractIdentifierSchema).min(1),\n    inputSchemaRef: ContractIdentifierSchema,\n    outputSchemaRef: ContractIdentifierSchema.optional(),\n    sensitiveInputPaths: SensitiveResultPathsSchema.optional(),\n    sensitiveResultPaths: SensitiveResultPathsSchema.optional(),\n    requiredPermissionCodes: z.array(ContractIdentifierSchema).default([]),\n    handlerRef: EntityRefSchema,\n    sideEffects: z\n        .array(z.enum([\"data-write\", \"execution\", \"navigation\", \"notification\", \"external-call\"]))\n        .default([]),\n})\n    .strict();\nexport const DomainCommandSchema = z\n    .object({\n    contract: z.literal(\"DomainCommand\"),\n    commandId: ContractIdentifierSchema,\n    commandName: ContractIdentifierSchema,\n    requestId: ContractIdentifierSchema,\n    traceId: ContractIdentifierSchema,\n    idempotencyKey: ContractIdentifierSchema,\n    targetRef: EntityRefSchema,\n    actorRef: EntityRefSchema,\n    source: z\n        .object({\n        product: z.enum([\"studio\", \"kernel\", \"agent\", \"mcp\", \"service\"]),\n        pageId: ContractIdentifierSchema.optional(),\n        capabilityId: ContractIdentifierSchema.optional(),\n    })\n        .strict(),\n    payload: JsonObjectSchema,\n    issuedAt: IsoDateTimeSchema,\n})\n    .strict();\nexport const ProductDeclarationSchema = z\n    .object({\n    contract: z.literal(\"ProductDeclaration\"),\n    declarationId: ContractIdentifierSchema,\n    ownerRepo: ContractIdentifierSchema,\n    concepts: z.array(ConceptDefinitionSchema).default([]),\n    ontologies: z.array(OntologyDefinitionSchema).default([]),\n    projections: z.array(ProjectionSpecSchema).default([]),\n    commands: z.array(DomainCommandDefinitionSchema).default([]),\n    capabilities: z.array(CapabilityManifestSchema).default([]),\n    pages: z.array(PageDefinitionSchema).default([]),\n    menus: z.array(MenuDefinitionSchema).default([]),\n})\n    .strict();\nexport const DeclarationGraphEdgeSchema = z\n    .object({\n    from: EntityRefSchema,\n    to: EntityRefSchema,\n    relation: z.enum([\n        \"uses-ontology\",\n        \"uses-projection\",\n        \"uses-capability\",\n        \"uses-command\",\n        \"relates-to-concept\",\n    ]),\n})\n    .strict();\nexport const ChangeImpactSchema = z\n    .object({\n    changedRef: EntityRefSchema,\n    affectedRefs: z.array(EntityRefSchema),\n    reasons: z.array(ContractIdentifierSchema).min(1),\n})\n    .strict();\nexport const ChangeImpactGraphSchema = z\n    .object({\n    contract: z.literal(\"ChangeImpactGraph\"),\n    declarationId: ContractIdentifierSchema,\n    nodes: z.array(EntityRefSchema),\n    edges: z.array(DeclarationGraphEdgeSchema),\n    impacts: z.array(ChangeImpactSchema),\n    generatedAt: IsoDateTimeSchema,\n})\n    .strict();\nexport type ConceptRelationship = z.infer<typeof ConceptRelationshipSchema>;\nexport type ConceptDefinition = z.infer<typeof ConceptDefinitionSchema>;\nexport type SchemaDefinition = z.infer<typeof SchemaDefinitionSchema>;\nexport type OntologyViewDefinition = z.infer<typeof OntologyViewDefinitionSchema>;\nexport type DomainCommandDefinition = z.infer<typeof DomainCommandDefinitionSchema>;\nexport type DomainCommand = z.infer<typeof DomainCommandSchema>;\nexport type ProductDeclaration = z.infer<typeof ProductDeclarationSchema>;\nexport type DeclarationGraphEdge = z.infer<typeof DeclarationGraphEdgeSchema>;\nexport type ChangeImpact = z.infer<typeof ChangeImpactSchema>;\nexport type ChangeImpactGraph = z.infer<typeof ChangeImpactGraphSchema>;\n","import { z } from \"zod\";\nimport { assertPageValueBudget } from \"./page-expression\";\nimport {\n  AccessPolicySchema,\n  CompiledRouteClaimSchema,\n  DeclarativeShellSurfaceChromeSchema,\n  I18nTextSchema,\n  PageRuntimeBundleSchema,\n  ReadablePageRuntimeBundleSchema,\n  PageRouteStatePresentationSchema,\n  ProductSurfaceSchema,\n  RevisionRefSchema,\n  RouteClaimSchema,\n  RouteSpaceSchema,\n  StableRefSchema,\n  TenantScopeSchema,\n  WorkbenchRuntimeBundleSchema,\n  WorkbenchIdentitySchema,\n  NavigationRuntimeBundleSchema,\n  NavigationSchema,\n  NavigationReleaseSchema,\n  ManagementAccessSchema,\n  PageSchema,\n  ResolvedPageSchema,\n  PageReleaseSchema,\n  WorkbenchSchema,\n  WorkbenchReleaseSchema,\n  LegacyRouteTakeoverAuthorizationSchema,\n  DomainQueryDefinitionSchema,\n} from \"./declarative-control\";\nimport { DeclarativeDiagnosticSchema } from \"./declarative-diagnostic\";\nimport {\n  ContractIdentifierSchema,\n  JsonObjectSchema,\n  Sha256Schema,\n} from \"./common\";\nimport { CapabilityManifestSchema } from \"./capability\";\nimport { ViewProviderDescriptorSchema } from \"./render\";\nimport {\n  DomainCommandDefinitionSchema,\n  SchemaDefinitionSchema,\n} from \"./semantic\";\n\nexport const DECLARATIVE_CONTROL_API_PREFIX =\n  \"/api/declarative-control\" as const;\nexport const DECLARATIVE_CONTROL_CONTROLLER_PATH =\n  \"/declarative-control\" as const;\n\nexport const DeclarativeResourceKindSchema = z.enum([\n  \"page\",\n  \"navigation\",\n  \"workbench\",\n]);\nexport type DeclarativeResourceKind = z.infer<\n  typeof DeclarativeResourceKindSchema\n>;\n\nexport const DeclarativeAuthoringActionSchema = z.enum([\n  \"validate\",\n  \"preview\",\n  \"publish\",\n  \"rollback\",\n]);\nexport type DeclarativeAuthoringAction = z.infer<\n  typeof DeclarativeAuthoringActionSchema\n>;\n\nconst encodePath = (value: string): string => encodeURIComponent(value);\n\nexport const declarativeControlRoutes = {\n  prepareDocumentImport: (kind: \"page\" | \"navigation\"): string =>\n    `${DECLARATIVE_CONTROL_API_PREFIX}/authoring/documents/${kind}/prepare`,\n  importDocument: (kind: \"page\" | \"navigation\"): string =>\n    `${DECLARATIVE_CONTROL_API_PREFIX}/authoring/documents/${kind}/import`,\n  validate: (kind: DeclarativeResourceKind, resourceId: string): string =>\n    `${DECLARATIVE_CONTROL_API_PREFIX}/resources/${kind}/${encodePath(resourceId)}/validate`,\n  preview: (kind: DeclarativeResourceKind, resourceId: string): string =>\n    `${DECLARATIVE_CONTROL_API_PREFIX}/resources/${kind}/${encodePath(resourceId)}/preview`,\n  publish: (kind: DeclarativeResourceKind, resourceId: string): string =>\n    `${DECLARATIVE_CONTROL_API_PREFIX}/resources/${kind}/${encodePath(resourceId)}/publish`,\n  rollback: (\n    kind: DeclarativeResourceKind,\n    resourceId: string,\n    releaseSlotId: string,\n  ): string =>\n    `${DECLARATIVE_CONTROL_API_PREFIX}/resources/${kind}/${encodePath(resourceId)}/releases/${encodePath(releaseSlotId)}/rollback`,\n  slotAuthority: (kind: DeclarativeResourceKind, slotId: string): string =>\n    `${DECLARATIVE_CONTROL_API_PREFIX}/slot-authorities/${kind}/${encodePath(slotId)}`,\n  resources: (kind: DeclarativeResourceKind): string =>\n    `${DECLARATIVE_CONTROL_API_PREFIX}/resources/${kind}`,\n  authoringCreate: (kind: DeclarativeResourceKind): string =>\n    `${DECLARATIVE_CONTROL_API_PREFIX}/authoring/resources/${kind}`,\n  draft: (kind: DeclarativeResourceKind, resourceId: string): string =>\n    `${DECLARATIVE_CONTROL_API_PREFIX}/resources/${kind}/${encodePath(resourceId)}/draft`,\n  revisions: (kind: DeclarativeResourceKind, resourceId: string): string =>\n    `${DECLARATIVE_CONTROL_API_PREFIX}/resources/${kind}/${encodePath(resourceId)}/revisions`,\n  authoringHistory: (\n    kind: DeclarativeResourceKind,\n    resourceId: string,\n  ): string =>\n    `${DECLARATIVE_CONTROL_API_PREFIX}/authoring/resources/${kind}/${encodePath(resourceId)}/history`,\n  releaseRevisions: (\n    kind: DeclarativeResourceKind,\n    resourceId: string,\n    releaseSlotId: string,\n  ): string =>\n    `${DECLARATIVE_CONTROL_API_PREFIX}/resources/${kind}/${encodePath(resourceId)}/releases/${encodePath(releaseSlotId)}/revisions`,\n  references: (kind: DeclarativeResourceKind, resourceId: string): string =>\n    `${DECLARATIVE_CONTROL_API_PREFIX}/resources/${kind}/${encodePath(resourceId)}/references`,\n  retire: (kind: DeclarativeResourceKind, resourceId: string): string =>\n    `${DECLARATIVE_CONTROL_API_PREFIX}/resources/${kind}/${encodePath(resourceId)}/retire`,\n  authoringBootstrap: (): string =>\n    `${DECLARATIVE_CONTROL_API_PREFIX}/authoring/bootstrap`,\n  authoringPrepare: (\n    kind: DeclarativeResourceKind,\n    resourceId: string,\n    action: DeclarativeAuthoringAction,\n  ): string =>\n    `${DECLARATIVE_CONTROL_API_PREFIX}/authoring/resources/${kind}/${encodePath(resourceId)}/${action}`,\n  navigationPlacements: (): string =>\n    `${DECLARATIVE_CONTROL_API_PREFIX}/authoring/navigation/placements`,\n  navigationImport: (placement: string): string =>\n    `${DECLARATIVE_CONTROL_API_PREFIX}/authoring/navigation/placements/${encodePath(placement)}/import`,\n  navigationSeedMigration: (placement: string): string =>\n    `${DECLARATIVE_CONTROL_API_PREFIX}/authoring/navigation/placements/${encodePath(placement)}/seed-migration`,\n  publicationPlan: (): string =>\n    `${DECLARATIVE_CONTROL_API_PREFIX}/authoring/publication-plans`,\n  publicationJobs: (): string =>\n    `${DECLARATIVE_CONTROL_API_PREFIX}/authoring/publication-jobs`,\n  publicationJob: (jobId: string): string =>\n    `${DECLARATIVE_CONTROL_API_PREFIX}/authoring/publication-jobs/${encodePath(jobId)}`,\n  publicationJobResume: (jobId: string): string =>\n    `${DECLARATIVE_CONTROL_API_PREFIX}/authoring/publication-jobs/${encodePath(jobId)}/resume`,\n  publicationJobCancel: (jobId: string): string =>\n    `${DECLARATIVE_CONTROL_API_PREFIX}/authoring/publication-jobs/${encodePath(jobId)}/cancel`,\n  runtimeResolve: (): string =>\n    `${DECLARATIVE_CONTROL_API_PREFIX}/runtime/resolve`,\n  runtimeNavigationBootstrap: (): string =>\n    `${DECLARATIVE_CONTROL_API_PREFIX}/runtime/navigations/bootstrap`,\n  runtimeWorkbenchBootstrap: (): string =>\n    `${DECLARATIVE_CONTROL_API_PREFIX}/runtime/workbenches/bootstrap`,\n  runtimePage: (releaseSlotId: string): string =>\n    `${DECLARATIVE_CONTROL_API_PREFIX}/runtime/pages/${encodePath(releaseSlotId)}`,\n  runtimeNavigation: (releaseSlotId: string): string =>\n    `${DECLARATIVE_CONTROL_API_PREFIX}/runtime/navigations/${encodePath(releaseSlotId)}`,\n  runtimeWorkbench: (releaseSlotId: string): string =>\n    `${DECLARATIVE_CONTROL_API_PREFIX}/runtime/workbenches/${encodePath(releaseSlotId)}`,\n  runtimePreview: (): string =>\n    `${DECLARATIVE_CONTROL_API_PREFIX}/runtime/previews`,\n  runtimePreviewBindingQuery: (bindingId: string): string =>\n    `${DECLARATIVE_CONTROL_API_PREFIX}/runtime/previews/bindings/${encodePath(bindingId)}/query`,\n  runtimeBindingQuery: (releaseSlotId: string, bindingId: string): string =>\n    `${DECLARATIVE_CONTROL_API_PREFIX}/runtime/pages/${encodePath(releaseSlotId)}/bindings/${encodePath(bindingId)}/query`,\n  runtimeActionExecute: (\n    releaseSlotId: string,\n    actionBindingId: string,\n  ): string =>\n    `${DECLARATIVE_CONTROL_API_PREFIX}/runtime/pages/${encodePath(releaseSlotId)}/actions/${encodePath(actionBindingId)}/execute`,\n  runtimeNavigationActionExecute: (\n    releaseSlotId: string,\n    nodeId: string,\n  ): string =>\n    `${DECLARATIVE_CONTROL_API_PREFIX}/runtime/navigations/${encodePath(releaseSlotId)}/actions/${encodePath(nodeId)}/execute`,\n} as const;\n\nexport const DeclarativeSuccessEnvelopeSchema = <T extends z.ZodType>(\n  data: T,\n) =>\n  z.object({ code: z.number().int(), message: z.string(), data }).passthrough();\n\nexport const DeclarativeErrorEnvelopeSchema = z\n  .object({\n    code: z.string().trim().min(1),\n    message: z.string().trim().min(1),\n    requestId: z.string().trim().min(1).optional(),\n    details: z.unknown().optional(),\n    diagnostics: z.array(z.unknown()).optional(),\n  })\n  .passthrough();\n\nconst DeclarativeRuntimePageTargetSchema = z\n  .object({\n    activeReleaseRevisionRef: RevisionRefSchema,\n    pageRevisionRef: RevisionRefSchema,\n  })\n  .strict()\n  .superRefine((value, context) => {\n    if (value.activeReleaseRevisionRef.kind !== \"page-release\") {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"activeReleaseRevisionRef\", \"kind\"],\n        message: \"Runtime requests require an exact page-release revision.\",\n      });\n    }\n    if (value.pageRevisionRef.kind !== \"page\") {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"pageRevisionRef\", \"kind\"],\n        message: \"Runtime requests require an exact page revision.\",\n      });\n    }\n  });\n\nconst forbiddenRuntimeParameterKeys = new Set([\n  \"__proto__\",\n  \"prototype\",\n  \"constructor\",\n]);\nconst rejectRuntimePrototypeKeys = (\n  value: unknown,\n  context: z.RefinementCtx,\n  path: PropertyKey[] = [],\n): void => {\n  if (Array.isArray(value)) {\n    value.forEach((child, index) =>\n      rejectRuntimePrototypeKeys(child, context, [...path, index]),\n    );\n    return;\n  }\n  if (!value || typeof value !== \"object\") return;\n  for (const key of Object.keys(value)) {\n    if (forbiddenRuntimeParameterKeys.has(key)) {\n      context.addIssue({\n        code: \"custom\",\n        path: [...path, key],\n        message: \"Prototype-mutating runtime parameter keys are forbidden.\",\n      });\n    }\n    rejectRuntimePrototypeKeys(\n      (value as Record<string, unknown>)[key],\n      context,\n      [...path, key],\n    );\n  }\n};\nconst runtimeParameterDepth = (value: unknown, depth = 0): number => {\n  if (value === null || typeof value !== \"object\") return depth;\n  const values = Array.isArray(value)\n    ? value\n    : Object.values(value as Record<string, unknown>);\n  return values.reduce(\n    (maximum, child) =>\n      Math.max(maximum, runtimeParameterDepth(child, depth + 1)),\n    depth,\n  );\n};\n\nconst DeclarativeRuntimeParametersSchema = z\n  .any()\n  .superRefine(rejectRuntimePrototypeKeys)\n  .pipe(\n    JsonObjectSchema.superRefine((value, context) => {\n      const keys = Object.keys(value);\n      if (keys.length > 32)\n        context.addIssue({\n          code: \"custom\",\n          path: [],\n          message:\n            \"Runtime binding parameters cannot contain more than 32 keys.\",\n        });\n      keys.forEach((key) => {\n        if (!ContractIdentifierSchema.safeParse(key).success)\n          context.addIssue({\n            code: \"custom\",\n            path: [key],\n            message: \"Runtime parameter keys must be contract identifiers.\",\n          });\n      });\n      if (runtimeParameterDepth(value) > 8)\n        context.addIssue({\n          code: \"custom\",\n          path: [],\n          message: \"Runtime binding parameters cannot exceed 8 nested levels.\",\n        });\n      const serialized = JSON.stringify(value);\n      if (new TextEncoder().encode(serialized).length > 16 * 1024)\n        context.addIssue({\n          code: \"custom\",\n          path: [],\n          message: \"Runtime binding parameters cannot exceed 16 KiB.\",\n        });\n      const visit = (entry: unknown, path: PropertyKey[]) => {\n        if (typeof entry === \"string\" && entry.length > 2048)\n          context.addIssue({\n            code: \"custom\",\n            path,\n            message:\n              \"Runtime parameter string values cannot exceed 2048 characters.\",\n          });\n        else if (Array.isArray(entry))\n          entry.forEach((child, index) => visit(child, [...path, index]));\n        else if (entry && typeof entry === \"object\")\n          Object.entries(entry).forEach(([key, child]) =>\n            visit(child, [...path, key]),\n          );\n      };\n      visit(value, []);\n    }),\n  );\n\nexport const DeclarativeRuntimeBindingQueryIntentSchema =\n  DeclarativeRuntimePageTargetSchema.safeExtend({\n    parameters: DeclarativeRuntimeParametersSchema.default({}),\n    pageSize: z.number().int().min(1).max(200).default(60),\n    cursor: z.string().trim().min(1).max(8192).optional(),\n  }).strict();\nexport type DeclarativeRuntimeBindingQueryIntent = z.infer<\n  typeof DeclarativeRuntimeBindingQueryIntentSchema\n>;\n\nexport const DeclarativeRuntimeBindingQueryResultSchema = z\n  .object({\n    bindingId: ContractIdentifierSchema,\n    activeReleaseRevisionRef: RevisionRefSchema,\n    pageRevisionRef: RevisionRefSchema,\n    renderModelSchemaRevisionRef: RevisionRefSchema,\n    model: JsonObjectSchema,\n    refresh: z.object({ continue: z.boolean() }).strict().optional(),\n    pageInfo: z\n      .object({\n        pageSize: z.number().int().positive(),\n        returned: z.number().int().nonnegative(),\n        hasMore: z.boolean(),\n        nextCursor: z.string().trim().min(1).optional(),\n        total: z.number().int().nonnegative().optional(),\n      })\n      .strict()\n      .optional(),\n    sourceRevisionRefs: z.array(RevisionRefSchema),\n    contentHash: Sha256Schema,\n  })\n  .strict();\nexport type DeclarativeRuntimeBindingQueryResult = z.infer<\n  typeof DeclarativeRuntimeBindingQueryResultSchema\n>;\n\nexport const DeclarativeRuntimeActionRoutePathSchema = z\n  .string()\n  .min(1)\n  .max(8192)\n  .refine(\n    (value) =>\n      value.startsWith(\"/\") &&\n      !value.startsWith(\"//\") &&\n      value === value.trim() &&\n      !/[?#\\\\\\u0000-\\u0020\\u007f]/.test(value) &&\n      !value.includes(\"://\"),\n    \"An Action route requires an application-relative pathname without query or fragment.\",\n  );\n\nexport const DeclarativeRuntimeActionExecuteIntentSchema =\n  DeclarativeRuntimePageTargetSchema.safeExtend({\n    intent: JsonObjectSchema,\n    recoveryOnly: z.literal(true).optional(),\n    pageState: DeclarativeRuntimeParametersSchema,\n    files: z\n      .record(\n        z.string().min(1).max(256),\n        z.union([\n          z\n            .object({\n              fileName: z.string().min(1).max(255),\n              content: z.string().max(1048576),\n            })\n            .strict(),\n          z\n            .object({\n              fileName: z.string().min(1).max(255),\n              canonicalUri: z\n                .string()\n                .regex(/^file:\\/\\/[^\\s/?#]+$/)\n                .max(1024),\n            })\n            .strict(),\n        ]),\n      )\n      .superRefine((files, context) => {\n        if (\n          Object.keys(files).length > 4 ||\n          Object.values(files).reduce(\n            (bytes, file) =>\n              bytes +\n              (\"content\" in file\n                ? new TextEncoder().encode(file.content).byteLength\n                : 0),\n            0,\n          ) > 1048576\n        )\n          context.addIssue({\n            code: \"custom\",\n            message: \"Action files exceed the transient input budget.\",\n          });\n      })\n      .optional(),\n    scope: z\n      .unknown()\n      .superRefine((value, context) => {\n        try {\n          assertPageValueBudget(value);\n        } catch {\n          context.addIssue({\n            code: \"custom\",\n            message: \"Action instance scope exceeds the safe JSON budget.\",\n          });\n        }\n      })\n      .pipe(JsonObjectSchema)\n      .optional(),\n    routePath: DeclarativeRuntimeActionRoutePathSchema.optional(),\n    idempotencyKey: z.string().trim().min(1).max(256),\n  }).strict();\n/** Old actions have no page-state payload; current action requests retain their strict requirement. */\nexport const LegacyDeclarativeRuntimeActionExecuteIntentSchema = DeclarativeRuntimeActionExecuteIntentSchema.safeExtend({ pageState: DeclarativeRuntimeParametersSchema.default({}) });\nexport type LegacyDeclarativeRuntimeActionExecuteIntent = z.infer<typeof LegacyDeclarativeRuntimeActionExecuteIntentSchema>;\n\nexport type DeclarativeRuntimeActionExecuteIntent = z.infer<\n  typeof DeclarativeRuntimeActionExecuteIntentSchema\n>;\n\nexport const DeclarativeNativeDownloadSchema = z\n  .object({\n    url: z\n      .string()\n      .min(1)\n      .max(32768)\n      .refine((value) => {\n        try {\n          const url = new URL(value);\n          return (\n            [\"http:\", \"https:\"].includes(url.protocol) &&\n            !url.username &&\n            !url.password\n          );\n        } catch {\n          return false;\n        }\n      }, \"A native download requires an HTTP URL without credentials.\"),\n    fileName: z\n      .string()\n      .min(1)\n      .max(2048)\n      .regex(/^[^\\u0000-\\u001f\\u007f/\\\\]+$/),\n  })\n  .strict();\n\nexport const DeclarativeRuntimeActionExecuteResultSchema = z\n  .object({\n    actionBindingId: ContractIdentifierSchema,\n    activeReleaseRevisionRef: RevisionRefSchema,\n    pageRevisionRef: RevisionRefSchema,\n    commandRevisionRef: RevisionRefSchema,\n    resultSchemaRevisionRef: RevisionRefSchema,\n    result: JsonObjectSchema,\n    download: DeclarativeNativeDownloadSchema.optional(),\n    downloadError: z\n      .object({\n        code: z.enum([\n          \"DECLARATIVE_DOWNLOAD_FORBIDDEN\",\n          \"DECLARATIVE_DOWNLOAD_UNAVAILABLE\",\n        ]),\n      })\n      .strict()\n      .optional(),\n    idempotentReplay: z.boolean(),\n    lineageRef: StableRefSchema,\n    refreshBindingIds: z.array(ContractIdentifierSchema),\n    navigationTargetRef: StableRefSchema.optional(),\n    contentHash: Sha256Schema,\n  })\n  .strict()\n  .superRefine((value, context) => {\n    if (value.download && value.downloadError)\n      context.addIssue({\n        code: \"custom\",\n        path: [\"downloadError\"],\n        message:\n          \"A download response cannot contain both a target and an error.\",\n      });\n  });\nexport type DeclarativeRuntimeActionExecuteResult = z.infer<\n  typeof DeclarativeRuntimeActionExecuteResultSchema\n>;\n\nconst DeclarativeRuntimeNavigationTargetSchema = z\n  .object({\n    activeReleaseRevisionRef: RevisionRefSchema,\n    navigationRevisionRef: RevisionRefSchema,\n  })\n  .strict()\n  .superRefine((value, context) => {\n    if (value.activeReleaseRevisionRef.kind !== \"navigation-release\") {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"activeReleaseRevisionRef\", \"kind\"],\n        message:\n          \"Navigation Action requests require an exact navigation-release revision.\",\n      });\n    }\n    if (value.navigationRevisionRef.kind !== \"navigation\") {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"navigationRevisionRef\", \"kind\"],\n        message:\n          \"Navigation Action requests require an exact navigation revision.\",\n      });\n    }\n  });\n\nexport const DeclarativeRuntimeNavigationActionExecuteIntentSchema =\n  DeclarativeRuntimeNavigationTargetSchema.safeExtend({\n    intent: JsonObjectSchema.default({}),\n    idempotencyKey: z.string().trim().min(1).max(256),\n  }).strict();\nexport type DeclarativeRuntimeNavigationActionExecuteIntent = z.infer<\n  typeof DeclarativeRuntimeNavigationActionExecuteIntentSchema\n>;\n\nexport const DeclarativeRuntimeNavigationActionExecuteResultSchema = z\n  .object({\n    nodeId: ContractIdentifierSchema,\n    activeReleaseRevisionRef: RevisionRefSchema,\n    navigationRevisionRef: RevisionRefSchema,\n    commandRevisionRef: RevisionRefSchema,\n    resultSchemaRevisionRef: RevisionRefSchema.optional(),\n    result: JsonObjectSchema,\n    idempotentReplay: z.boolean(),\n    lineageRef: StableRefSchema,\n    navigationTargetRef: StableRefSchema.optional(),\n    contentHash: Sha256Schema,\n  })\n  .strict();\nexport type DeclarativeRuntimeNavigationActionExecuteResult = z.infer<\n  typeof DeclarativeRuntimeNavigationActionExecuteResultSchema\n>;\n\nexport const DeclarativeAudienceSimulationSchema = z\n  .object({\n    groupRefs: z\n      .array(StableRefSchema)\n      .max(128)\n      .default([])\n      .superRefine((references, context) => {\n        references.forEach((reference, index) => {\n          if (reference.kind !== \"group\")\n            context.addIssue({\n              code: \"custom\",\n              path: [index, \"kind\"],\n              message: \"Audience simulation only accepts stable Group refs.\",\n            });\n        });\n      }),\n    permissions: z.array(ContractIdentifierSchema).max(512).default([]),\n  })\n  .strict();\nexport type DeclarativeAudienceSimulation = z.infer<\n  typeof DeclarativeAudienceSimulationSchema\n>;\n\nexport const DeclarativeReleaseTargetIntentSchema = z\n  .object({\n    environmentRef: StableRefSchema,\n    environmentRevisionRef: RevisionRefSchema,\n    surface: ProductSurfaceSchema,\n    routeClaimIndex: z.number().int().nonnegative().optional(),\n    legacyRouteTakeoverAuthorization:\n      LegacyRouteTakeoverAuthorizationSchema.optional(),\n    placement: ContractIdentifierSchema.optional(),\n    order: z.number().int().optional(),\n    isDefaultCandidate: z.boolean().optional(),\n  })\n  .strict()\n  .superRefine((value, context) => {\n    if (\n      value.environmentRef.kind !== \"environment\" ||\n      value.environmentRevisionRef.kind !== \"environment\"\n    ) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"environmentRevisionRef\", \"kind\"],\n        message: \"Release targets require an exact environment registration.\",\n      });\n    }\n    if (\n      value.environmentRef.id !== value.environmentRevisionRef.id ||\n      value.environmentRef.ownerRepo !== value.environmentRevisionRef.ownerRepo\n    ) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"environmentRevisionRef\"],\n        message:\n          \"The exact environment revision must identify the selected environment.\",\n      });\n    }\n  });\n\nexport const DeclarativeCommandIntentSchema = z\n  .object({\n    idempotencyKey: z.string().trim().min(1).max(256),\n    definitionVersion: z.number().int().positive(),\n    releaseSlotId: ContractIdentifierSchema.optional(),\n    releaseExpectedVersion: z.number().int().nonnegative(),\n    publicationExpectedGeneration: z.number().int().nonnegative().default(0),\n    target: DeclarativeReleaseTargetIntentSchema,\n    targetReleaseVersion: z.number().int().positive().optional(),\n    ttlSeconds: z.number().int().min(30).max(600).optional(),\n    audienceSimulation: DeclarativeAudienceSimulationSchema.optional(),\n    reason: z.string().trim().min(1).max(4096).optional(),\n  })\n  .strict();\nexport type DeclarativeCommandIntent = z.infer<\n  typeof DeclarativeCommandIntentSchema\n>;\n\nexport const DeclarativeBatchOperationIntentSchema = z\n  .object({\n    action: z.enum([\"publish\", \"rollback\", \"deactivate\"]).default(\"publish\"),\n    resourceKind: DeclarativeResourceKindSchema,\n    resourceId: ContractIdentifierSchema,\n    intent: DeclarativeCommandIntentSchema,\n  })\n  .strict()\n  .superRefine((value, context) => {\n    if (value.action !== \"publish\" && !value.intent.releaseSlotId) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"intent\", \"releaseSlotId\"],\n        message: `${value.action} requires an exact active Release slot.`,\n      });\n    }\n    if (value.action === \"rollback\" && !value.intent.targetReleaseVersion) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"intent\", \"targetReleaseVersion\"],\n        message: \"rollback requires an exact historical Release version.\",\n      });\n    }\n    if (value.action !== \"rollback\" && value.intent.targetReleaseVersion) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"intent\", \"targetReleaseVersion\"],\n        message: \"Only rollback may select a historical Release version.\",\n      });\n    }\n  });\n\nexport const DeclarativePublicationPlanIntentSchema = z\n  .object({\n    idempotencyKey: z.string().trim().min(1).max(256),\n    expectedGeneration: z.number().int().nonnegative(),\n    operations: z.array(DeclarativeBatchOperationIntentSchema).min(1).max(128),\n  })\n  .strict();\nexport type DeclarativePublicationPlanIntent = z.infer<\n  typeof DeclarativePublicationPlanIntentSchema\n>;\n\nexport const DeclarativeAuthoringChoiceSchema = z\n  .object({\n    stableRef: StableRefSchema,\n    revisionRef: RevisionRefSchema.optional(),\n    label: I18nTextSchema,\n    accessPolicy: AccessPolicySchema.optional(),\n    surface: ProductSurfaceSchema.optional(),\n    status: z.enum([\"active\", \"deprecated\", \"retired\", \"unavailable\"]),\n    metadata: z.record(z.string(), z.unknown()).default({}),\n  })\n  .strict();\n\nconst DeclarativeCapabilityPortSchema = z\n  .object({\n    name: ContractIdentifierSchema,\n    schemaRevisionRef: RevisionRefSchema,\n    required: z.boolean(),\n    multiple: z.boolean(),\n  })\n  .strict();\n\nexport const DeclarativeCapabilitySchemaDocumentSchema = z\n  .object({\n    schemaRevisionRef: RevisionRefSchema,\n    document: JsonObjectSchema,\n  })\n  .strict()\n  .superRefine((value, context) => {\n    if (value.schemaRevisionRef.kind !== \"schema\") {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"schemaRevisionRef\", \"kind\"],\n        message: \"Capability schema documents must use schema RevisionRefs.\",\n      });\n    }\n  });\nexport type DeclarativeCapabilitySchemaDocument = z.infer<\n  typeof DeclarativeCapabilitySchemaDocumentSchema\n>;\n\nexport const DeclarativeCapabilityAuthoringRegistrationSchema = z\n  .object({\n    runtimeContractVersion: ContractIdentifierSchema.optional(),\n    registrationRevisionRef: RevisionRefSchema,\n    capabilityRevisionRef: RevisionRefSchema,\n    providerRevisionRef: RevisionRefSchema,\n    propertySchemaRevisionRef: RevisionRefSchema,\n    uiSchemaRevisionRef: RevisionRefSchema.optional(),\n    editorEligible: z.boolean(),\n    category: ContractIdentifierSchema,\n    label: I18nTextSchema,\n    description: I18nTextSchema,\n    supportedSurfaces: z.array(ProductSurfaceSchema).min(1),\n    allowedSlots: z.array(ContractIdentifierSchema),\n    allowedParentCapabilityRefs: z.array(StableRefSchema),\n    allowedChildCapabilityRefs: z.array(StableRefSchema),\n    inputPorts: z.array(DeclarativeCapabilityPortSchema),\n    outputPorts: z.array(DeclarativeCapabilityPortSchema),\n    allowedSideEffects: z.array(\n      z.enum([\n        \"network\",\n        \"storage\",\n        \"navigation\",\n        \"clipboard\",\n        \"worker\",\n        \"websocket\",\n      ]),\n    ),\n    ontologyRequirements: z.array(\n      z\n        .object({\n          inputPort: ContractIdentifierSchema,\n          renderModelSchemaRevisionRef: RevisionRefSchema,\n          modes: z.array(z.enum([\"view\", \"filter\"])).min(1),\n          requiredPermissionCodes: z.array(ContractIdentifierSchema),\n        })\n        .strict(),\n    ),\n    actionRequirements: z.array(\n      z\n        .object({\n          outputPort: ContractIdentifierSchema,\n          allowedCommandKinds: z.array(ContractIdentifierSchema),\n          requiredPermissionCodes: z.array(ContractIdentifierSchema),\n        })\n        .strict(),\n    ),\n    propertyFields: z.array(\n      z\n        .object({\n          path: z.string().trim().min(1),\n          label: I18nTextSchema,\n          control: ContractIdentifierSchema,\n          required: z.boolean(),\n          advanced: z.boolean(),\n        })\n        .strict(),\n    ),\n    schemaDocuments: z.array(DeclarativeCapabilitySchemaDocumentSchema).min(1),\n    sourceContentHash: Sha256Schema,\n  })\n  .strict()\n  .superRefine((value, context) => {\n    const documents = new Map<string, number>();\n    value.schemaDocuments.forEach((entry, index) => {\n      const key = `${entry.schemaRevisionRef.ownerRepo}:${entry.schemaRevisionRef.id}@${entry.schemaRevisionRef.revision}:${entry.schemaRevisionRef.contentHash}`;\n      if (documents.has(key)) {\n        context.addIssue({\n          code: \"custom\",\n          path: [\"schemaDocuments\", index],\n          message:\n            \"Capability schema documents must be unique by exact RevisionRef.\",\n        });\n      }\n      documents.set(key, index);\n    });\n    const required = [\n      value.propertySchemaRevisionRef,\n      ...(value.uiSchemaRevisionRef ? [value.uiSchemaRevisionRef] : []),\n      ...value.inputPorts.map((port) => port.schemaRevisionRef),\n      ...value.outputPorts.map((port) => port.schemaRevisionRef),\n      ...value.ontologyRequirements.map(\n        (requirement) => requirement.renderModelSchemaRevisionRef,\n      ),\n    ];\n    required.forEach((reference) => {\n      const key = `${reference.ownerRepo}:${reference.id}@${reference.revision}:${reference.contentHash}`;\n      if (!documents.has(key)) {\n        context.addIssue({\n          code: \"custom\",\n          path: [\"schemaDocuments\"],\n          message: `Missing exact schema document for ${reference.id}.`,\n        });\n      }\n    });\n  });\nexport type DeclarativeCapabilityAuthoringRegistration = z.infer<\n  typeof DeclarativeCapabilityAuthoringRegistrationSchema\n>;\n\nexport const DesignCapabilityCatalogEntrySchema = z\n  .object({\n    manifest: CapabilityManifestSchema,\n    provider: ViewProviderDescriptorSchema,\n    declarativeRegistration: DeclarativeCapabilityAuthoringRegistrationSchema,\n  })\n  .strict();\n\nexport const DesignCapabilityCatalogArtifactSchema = z\n  .object({\n    contract: z.literal(\"DesignCapabilityCatalogArtifact\"),\n    schemaVersion: z.literal(1),\n    sourceRef: ContractIdentifierSchema,\n    sourceRevisionRef: RevisionRefSchema,\n    entries: z.array(DesignCapabilityCatalogEntrySchema).min(1).max(512),\n    sourceContentHash: Sha256Schema,\n  })\n  .strict()\n  .superRefine((value, context) => {\n    if (\n      value.sourceRevisionRef.kind !== \"design-capability-catalog\" ||\n      value.sourceRevisionRef.id !== value.sourceRef ||\n      value.sourceRevisionRef.ownerRepo !== \"monkeys-design\" ||\n      value.sourceRevisionRef.visibility !== \"global\"\n    ) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"sourceRevisionRef\"],\n        message:\n          \"A Design catalog artifact must be a global monkeys-design release revision.\",\n      });\n    }\n    const ids = value.entries.map((entry) => entry.manifest.id);\n    if (new Set(ids).size !== ids.length) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"entries\"],\n        message: \"Design catalog capability identities must be unique.\",\n      });\n    }\n    if (\n      ids.some((id, index) => index > 0 && ids[index - 1].localeCompare(id) > 0)\n    ) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"entries\"],\n        message:\n          \"Design catalog entries must use deterministic capability identity order.\",\n      });\n    }\n  });\nexport type DesignCapabilityCatalogEntry = z.infer<\n  typeof DesignCapabilityCatalogEntrySchema\n>;\nexport type DesignCapabilityCatalogArtifact = z.infer<\n  typeof DesignCapabilityCatalogArtifactSchema\n>;\n\n/**\n * A product release may contribute a product-owned visual capability without\n * pretending to be the global Monkeys Design catalog. The application catalog\n * is the release authority; runtime code remains outside this data contract.\n */\nexport const ProductDeclarativeCapabilityRegistrationSchema = z\n  .object({\n    manifest: CapabilityManifestSchema,\n    provider: ViewProviderDescriptorSchema,\n    declarativeRegistration: DeclarativeCapabilityAuthoringRegistrationSchema,\n    requiredPermissionCodes: z.array(ContractIdentifierSchema).default([]),\n  })\n  .strict()\n  .superRefine((value, context) => {\n    if (value.provider.runtimeContractVersion !== value.declarativeRegistration.runtimeContractVersion) {\n      context.addIssue({ code: 'custom', path: ['declarativeRegistration', 'runtimeContractVersion'], message: 'The authoring contract must match its runtime provider.' });\n    }\n    const ownerRepo = value.manifest.ownerRepo;\n    const registration = value.declarativeRegistration;\n\n    if (ownerRepo === \"monkeys-design\") {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"manifest\", \"ownerRepo\"],\n        message:\n          \"Monkeys Design capabilities must come from the Design capability catalog.\",\n      });\n    }\n    if (\n      registration.capabilityRevisionRef.kind !== \"capability\" ||\n      registration.capabilityRevisionRef.id !== value.manifest.id ||\n      registration.capabilityRevisionRef.ownerRepo !== ownerRepo ||\n      String(registration.capabilityRevisionRef.revision) !==\n        String(value.manifest.capabilityVersion) ||\n      registration.capabilityRevisionRef.visibility !== \"global\"\n    ) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"declarativeRegistration\", \"capabilityRevisionRef\"],\n        message:\n          \"A product capability must pin its exact global product-owned manifest revision.\",\n      });\n    }\n    if (\n      registration.providerRevisionRef.kind !== \"view-provider\" ||\n      registration.providerRevisionRef.id !== value.provider.providerId ||\n      registration.providerRevisionRef.ownerRepo !== ownerRepo ||\n      value.provider.ownerRepo !== ownerRepo ||\n      String(registration.providerRevisionRef.revision) !==\n        String(value.provider.providerVersion) ||\n      registration.providerRevisionRef.visibility !== \"global\"\n    ) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"declarativeRegistration\", \"providerRevisionRef\"],\n        message:\n          \"A product capability must pin its exact global product-owned provider revision.\",\n      });\n    }\n    if (\n      value.provider.capabilityRef.kind !== \"capability\" ||\n      value.provider.capabilityRef.id !== value.manifest.id ||\n      value.provider.capabilityRef.ownerRepo !== ownerRepo ||\n      String(value.provider.capabilityRef.version) !==\n        String(value.manifest.capabilityVersion)\n    ) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"provider\", \"capabilityRef\"],\n        message: \"A product provider must declare its exact capability owner.\",\n      });\n    }\n    const providerBoundByManifest =\n      value.manifest.runtime.providerBindings.some(\n        (binding) =>\n          binding.providerRef.kind === \"view-provider\" &&\n          binding.providerRef.id === value.provider.providerId &&\n          binding.providerRef.ownerRepo === ownerRepo &&\n          String(binding.providerRef.version) ===\n            String(value.provider.providerVersion),\n      );\n    if (!providerBoundByManifest) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"manifest\", \"runtime\", \"providerBindings\"],\n        message:\n          \"The product capability manifest must bind the declared product provider.\",\n      });\n    }\n    if (\n      registration.registrationRevisionRef.kind !==\n        \"product-capability-registration\" ||\n      registration.registrationRevisionRef.ownerRepo !== ownerRepo ||\n      registration.registrationRevisionRef.visibility !== \"global\" ||\n      registration.registrationRevisionRef.contentHash !==\n        registration.sourceContentHash\n    ) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"declarativeRegistration\", \"registrationRevisionRef\"],\n        message:\n          \"A product capability registration must have exact product-owned release provenance.\",\n      });\n    }\n    registration.schemaDocuments.forEach((schema, index) => {\n      if (\n        schema.schemaRevisionRef.ownerRepo !== ownerRepo ||\n        schema.schemaRevisionRef.visibility !== \"global\"\n      ) {\n        context.addIssue({\n          code: \"custom\",\n          path: [\"declarativeRegistration\", \"schemaDocuments\", index],\n          message:\n            \"Embedded product capability Schemas require exact global product authority.\",\n        });\n      }\n    });\n    const permissions = value.requiredPermissionCodes;\n    if (\n      new Set(permissions).size !== permissions.length ||\n      permissions.some(\n        (permission, index) =>\n          index > 0 && permissions[index - 1]!.localeCompare(permission) > 0,\n      )\n    ) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"requiredPermissionCodes\"],\n        message:\n          \"Product capability permission codes must be unique and deterministically sorted.\",\n      });\n    }\n  });\nexport type ProductDeclarativeCapabilityRegistration = z.infer<\n  typeof ProductDeclarativeCapabilityRegistrationSchema\n>;\n\nexport const DeclarativeCapabilityAuthoringChoiceSchema =\n  DeclarativeAuthoringChoiceSchema.extend({\n    registration: DeclarativeCapabilityAuthoringRegistrationSchema,\n  }).strict();\n\nexport const DeclarativeCreateTemplateRegistrationSchema = z\n  .object({\n    templateRevisionRef: RevisionRefSchema,\n    resourceKind: DeclarativeResourceKindSchema,\n    label: I18nTextSchema,\n    description: I18nTextSchema,\n    supportedSurfaces: z.array(ProductSurfaceSchema).min(1),\n    legacyMigrationSourcePageIds: z\n      .array(ContractIdentifierSchema)\n      .min(1)\n      .max(256)\n      .optional(),\n    document: z.union([\n      PageSchema,\n      ResolvedPageSchema,\n      NavigationSchema,\n      WorkbenchSchema,\n    ]),\n    sourceContentHash: Sha256Schema,\n  })\n  .strict()\n  .superRefine((value, context) => {\n    const expected =\n      value.document.contract === \"Page\"\n        ? \"page\"\n        : value.document.contract === \"Navigation\"\n          ? \"navigation\"\n          : \"workbench\";\n    if (value.resourceKind !== expected)\n      context.addIssue({\n        code: \"custom\",\n        path: [\"resourceKind\"],\n        message: \"Create template kind must match its document contract.\",\n      });\n    if (value.templateRevisionRef.kind !== \"declarative-create-template\")\n      context.addIssue({\n        code: \"custom\",\n        path: [\"templateRevisionRef\", \"kind\"],\n        message:\n          \"Create templates require declarative-create-template RevisionRefs.\",\n      });\n    if (value.legacyMigrationSourcePageIds && value.resourceKind !== \"page\") {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"legacyMigrationSourcePageIds\"],\n        message:\n          \"Only Page templates can declare legacy Page migration sources.\",\n      });\n    }\n    if (\n      value.legacyMigrationSourcePageIds &&\n      new Set(value.legacyMigrationSourcePageIds).size !==\n        value.legacyMigrationSourcePageIds.length\n    ) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"legacyMigrationSourcePageIds\"],\n        message: \"Legacy Page migration source identities must be unique.\",\n      });\n    }\n  });\nexport type DeclarativeCreateTemplateRegistration = z.infer<\n  typeof DeclarativeCreateTemplateRegistrationSchema\n>;\n\nexport const DeclarativeRouteSpaceRegistrationSchema = z\n  .object({\n    routeSpaceRevisionRef: RevisionRefSchema,\n    routeSpace: RouteSpaceSchema,\n    sourceContentHash: Sha256Schema,\n  })\n  .strict()\n  .superRefine((value, context) => {\n    if (value.routeSpaceRevisionRef.kind !== \"route-space\") {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"routeSpaceRevisionRef\", \"kind\"],\n        message: \"Route-space registrations require route-space RevisionRefs.\",\n      });\n    }\n    if (value.routeSpaceRevisionRef.id !== value.routeSpace.routeSpaceId) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"routeSpaceRevisionRef\", \"id\"],\n        message: \"Route-space registration identity must match its document.\",\n      });\n    }\n  });\nexport type DeclarativeRouteSpaceRegistration = z.infer<\n  typeof DeclarativeRouteSpaceRegistrationSchema\n>;\n\nexport const DeclarativeShellResourceDocumentSchema = z\n  .object({\n    contract: z.literal(\"DeclarativeShell\"),\n    schemaVersion: z.literal(1),\n    hostCapabilityRevisionRef: RevisionRefSchema,\n    hostProviderRevisionRef: RevisionRefSchema,\n    allowedSlots: z.array(ContractIdentifierSchema).min(1),\n    tokenRevisionRefs: z.array(RevisionRefSchema).min(1),\n    surfaceChrome: z.array(DeclarativeShellSurfaceChromeSchema).min(1),\n  })\n  .strict()\n  .superRefine((value, context) => {\n    if (value.hostCapabilityRevisionRef.kind !== \"capability\")\n      context.addIssue({\n        code: \"custom\",\n        path: [\"hostCapabilityRevisionRef\", \"kind\"],\n        message: \"Shell host capability must reference a capability.\",\n      });\n    if (value.hostProviderRevisionRef.kind !== \"view-provider\")\n      context.addIssue({\n        code: \"custom\",\n        path: [\"hostProviderRevisionRef\", \"kind\"],\n        message: \"Shell host provider must reference a view-provider.\",\n      });\n    value.tokenRevisionRefs.forEach((reference, index) => {\n      if (reference.kind !== \"design-token\")\n        context.addIssue({\n          code: \"custom\",\n          path: [\"tokenRevisionRefs\", index, \"kind\"],\n          message: \"Shell tokens must use design-token RevisionRefs.\",\n        });\n    });\n    const seenSurfaces = new Set<string>();\n    value.surfaceChrome.forEach((entry, index) => {\n      if (seenSurfaces.has(entry.surface))\n        context.addIssue({\n          code: \"custom\",\n          path: [\"surfaceChrome\", index],\n          message: `Duplicate shell chrome declaration for ${entry.surface}.`,\n        });\n      seenSurfaces.add(entry.surface);\n    });\n  });\n\nexport const DeclarativeLayoutPolicyResourceDocumentSchema = z\n  .object({\n    contract: z.literal(\"DeclarativeLayoutPolicy\"),\n    schemaVersion: z.literal(1),\n    allowedModes: z\n      .array(z.enum([\"single\", \"tabs\", \"columns\", \"grid\", \"sidebar\"]))\n      .min(1),\n    propertySchemaRevisionRef: RevisionRefSchema,\n  })\n  .strict()\n  .superRefine((value, context) => {\n    if (value.propertySchemaRevisionRef.kind !== \"schema\")\n      context.addIssue({\n        code: \"custom\",\n        path: [\"propertySchemaRevisionRef\", \"kind\"],\n        message: \"Layout policy properties must reference a schema.\",\n      });\n  });\n\nexport const DeclarativeEnvironmentResourceDocumentSchema = z\n  .object({\n    contract: z.literal(\"DeclarativeEnvironment\"),\n    schemaVersion: z.literal(1),\n    environmentId: ContractIdentifierSchema,\n    label: I18nTextSchema,\n    active: z.boolean(),\n  })\n  .strict();\n\nexport const DeclarativeProductResourceRegistrationSchema = z\n  .object({\n    resourceRevisionRef: RevisionRefSchema,\n    resourceKind: z.enum([\n      \"shell\",\n      \"layout-policy\",\n      \"performance-budget\",\n      \"observation-policy\",\n      \"design-token\",\n      \"access-policy\",\n      \"environment\",\n    ]),\n    supportedSurfaces: z.array(ProductSurfaceSchema).min(1),\n    accessPolicy: AccessPolicySchema.optional(),\n    schemaRevisionRef: RevisionRefSchema.optional(),\n    document: JsonObjectSchema,\n    sourceContentHash: Sha256Schema,\n  })\n  .strict()\n  .superRefine((value, context) => {\n    if (value.resourceRevisionRef.kind !== value.resourceKind) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"resourceRevisionRef\", \"kind\"],\n        message: \"Product resource kind must match its RevisionRef.\",\n      });\n    }\n    if (value.resourceKind === \"shell\") {\n      const parsed = DeclarativeShellResourceDocumentSchema.safeParse(\n        value.document,\n      );\n      if (!parsed.success)\n        context.addIssue({\n          code: \"custom\",\n          path: [\"document\"],\n          message: `Invalid shell declaration: ${parsed.error.message}`,\n        });\n      if (parsed.success) {\n        const declaredSurfaces = new Set(\n          parsed.data.surfaceChrome.map((entry) => entry.surface),\n        );\n        const supportedSurfaces = new Set(value.supportedSurfaces);\n        value.supportedSurfaces.forEach((surface) => {\n          if (!declaredSurfaces.has(surface))\n            context.addIssue({\n              code: \"custom\",\n              path: [\"document\", \"surfaceChrome\"],\n              message: `Shell chrome is missing for supported surface ${surface}.`,\n            });\n        });\n        parsed.data.surfaceChrome.forEach((entry) => {\n          if (!supportedSurfaces.has(entry.surface))\n            context.addIssue({\n              code: \"custom\",\n              path: [\"document\", \"surfaceChrome\"],\n              message: `Shell chrome declares unsupported surface ${entry.surface}.`,\n            });\n        });\n      }\n    }\n    if (value.resourceKind === \"layout-policy\") {\n      const parsed = DeclarativeLayoutPolicyResourceDocumentSchema.safeParse(\n        value.document,\n      );\n      if (!parsed.success)\n        context.addIssue({\n          code: \"custom\",\n          path: [\"document\"],\n          message: `Invalid layout-policy declaration: ${parsed.error.message}`,\n        });\n    }\n    if (value.resourceKind === \"environment\") {\n      const parsed = DeclarativeEnvironmentResourceDocumentSchema.safeParse(\n        value.document,\n      );\n      if (!parsed.success)\n        context.addIssue({\n          code: \"custom\",\n          path: [\"document\"],\n          message: `Invalid environment declaration: ${parsed.error.message}`,\n        });\n      if (\n        parsed.success &&\n        parsed.data.environmentId !== value.resourceRevisionRef.id\n      ) {\n        context.addIssue({\n          code: \"custom\",\n          path: [\"document\", \"environmentId\"],\n          message: \"Environment registration identity must match its document.\",\n        });\n      }\n    }\n  });\nexport type DeclarativeProductResourceRegistration = z.infer<\n  typeof DeclarativeProductResourceRegistrationSchema\n>;\n\nexport const DeclarativeDefaultPolicyRegistrationSchema = z\n  .object({\n    role: z.enum([\n      \"management\",\n      \"access\",\n      \"layout\",\n      \"performance\",\n      \"observability\",\n      \"tokens\",\n      \"environment\",\n    ]),\n    resourceRevisionRef: RevisionRefSchema,\n    supportedSurfaces: z.array(ProductSurfaceSchema).min(1),\n  })\n  .strict();\n\nexport const DeclarativeDomainQueryDefinitionRegistrationSchema = z\n  .object({\n    definitionRevisionRef: RevisionRefSchema,\n    definition: DomainQueryDefinitionSchema,\n  })\n  .strict()\n  .superRefine((value, context) => {\n    if (value.definitionRevisionRef.kind !== \"domain-query-definition\") {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"definitionRevisionRef\", \"kind\"],\n        message:\n          \"A Domain Query registration must pin a domain-query-definition revision.\",\n      });\n    }\n    if (value.definitionRevisionRef.id !== value.definition.queryId) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"definitionRevisionRef\", \"id\"],\n        message:\n          \"A Domain Query registration identity must match its definition.\",\n      });\n    }\n  });\n\nexport const DeclarativeDomainCommandDefinitionRegistrationSchema = z\n  .object({\n    definitionRevisionRef: RevisionRefSchema,\n    definition: DomainCommandDefinitionSchema,\n  })\n  .strict()\n  .superRefine((value, context) => {\n    if (value.definitionRevisionRef.kind !== \"domain-command\") {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"definitionRevisionRef\", \"kind\"],\n        message:\n          \"A Domain Command registration must pin a domain-command revision.\",\n      });\n    }\n    if (value.definitionRevisionRef.id !== value.definition.commandName) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"definitionRevisionRef\", \"id\"],\n        message:\n          \"A Domain Command registration identity must match its definition.\",\n      });\n    }\n  });\n\nexport const DeclarativeSchemaDefinitionRegistrationSchema = z\n  .object({\n    definitionRevisionRef: RevisionRefSchema,\n    definition: SchemaDefinitionSchema,\n  })\n  .strict()\n  .superRefine((value, context) => {\n    if (value.definitionRevisionRef.kind !== \"schema\") {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"definitionRevisionRef\", \"kind\"],\n        message: \"A Schema registration must pin a schema revision.\",\n      });\n    }\n    if (value.definitionRevisionRef.id !== value.definition.schemaId) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"definitionRevisionRef\", \"id\"],\n        message: \"A Schema registration identity must match its definition.\",\n      });\n    }\n    if (value.definitionRevisionRef.ownerRepo !== value.definition.ownerRepo) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"definitionRevisionRef\", \"ownerRepo\"],\n        message: \"A Schema registration authority must match its definition.\",\n      });\n    }\n  });\n\n/** Release-owned product authoring inputs. Instances and releases remain Ontology records. */\nexport const ProductDeclarativeAuthoringCatalogSchema = z\n  .object({\n    contract: z.literal(\"ProductDeclarativeAuthoringCatalog\"),\n    schemaVersion: z.literal(1),\n    applicationId: ContractIdentifierSchema,\n    createTemplates: z.array(DeclarativeCreateTemplateRegistrationSchema),\n    routeSpaces: z.array(DeclarativeRouteSpaceRegistrationSchema),\n    resourceRegistrations: z.array(\n      DeclarativeProductResourceRegistrationSchema,\n    ),\n    defaultPolicies: z.array(DeclarativeDefaultPolicyRegistrationSchema),\n    domainQueryDefinitions: z\n      .array(DeclarativeDomainQueryDefinitionRegistrationSchema)\n      .default([]),\n    domainCommandDefinitions: z\n      .array(DeclarativeDomainCommandDefinitionRegistrationSchema)\n      .default([]),\n    schemaDefinitions: z\n      .array(DeclarativeSchemaDefinitionRegistrationSchema)\n      .default([]),\n    capabilityRegistrations: z\n      .array(ProductDeclarativeCapabilityRegistrationSchema)\n      .default([]),\n  })\n  .strict()\n  .superRefine((value, context) => {\n    const duplicates = (items: readonly string[]) =>\n      items.find((item, index) => items.indexOf(item) !== index);\n    const duplicateTemplate = duplicates(\n      value.createTemplates.map(\n        (item) =>\n          `${item.templateRevisionRef.id}@${item.templateRevisionRef.revision}`,\n      ),\n    );\n    if (duplicateTemplate)\n      context.addIssue({\n        code: \"custom\",\n        path: [\"createTemplates\"],\n        message: `Duplicate create template ${duplicateTemplate}.`,\n      });\n    const duplicateMigrationSource = duplicates(\n      value.createTemplates.flatMap((item) =>\n        (item.legacyMigrationSourcePageIds ?? []).flatMap((pageId) =>\n          item.supportedSurfaces.map((surface) => `${surface}:${pageId}`),\n        ),\n      ),\n    );\n    if (duplicateMigrationSource)\n      context.addIssue({\n        code: \"custom\",\n        path: [\"createTemplates\"],\n        message: `Duplicate legacy Page migration source ${duplicateMigrationSource}.`,\n      });\n    const duplicateRouteSpace = duplicates(\n      value.routeSpaces.map(\n        (item) =>\n          `${item.routeSpaceRevisionRef.id}@${item.routeSpaceRevisionRef.revision}`,\n      ),\n    );\n    if (duplicateRouteSpace)\n      context.addIssue({\n        code: \"custom\",\n        path: [\"routeSpaces\"],\n        message: `Duplicate route space ${duplicateRouteSpace}.`,\n      });\n    const duplicateResource = duplicates(\n      value.resourceRegistrations.map(\n        (item) =>\n          `${item.resourceRevisionRef.kind}:${item.resourceRevisionRef.id}@${item.resourceRevisionRef.revision}`,\n      ),\n    );\n    if (duplicateResource)\n      context.addIssue({\n        code: \"custom\",\n        path: [\"resourceRegistrations\"],\n        message: `Duplicate product resource ${duplicateResource}.`,\n      });\n    const duplicateQueryDefinition = duplicates(\n      value.domainQueryDefinitions.map(\n        (item) =>\n          `${item.definitionRevisionRef.id}@${item.definitionRevisionRef.revision}`,\n      ),\n    );\n    if (duplicateQueryDefinition)\n      context.addIssue({\n        code: \"custom\",\n        path: [\"domainQueryDefinitions\"],\n        message: `Duplicate Domain Query definition ${duplicateQueryDefinition}.`,\n      });\n    const duplicateCommandDefinition = duplicates(\n      value.domainCommandDefinitions.map(\n        (item) =>\n          `${item.definitionRevisionRef.id}@${item.definitionRevisionRef.revision}`,\n      ),\n    );\n    if (duplicateCommandDefinition)\n      context.addIssue({\n        code: \"custom\",\n        path: [\"domainCommandDefinitions\"],\n        message: `Duplicate Domain Command definition ${duplicateCommandDefinition}.`,\n      });\n    const duplicateSchemaDefinition = duplicates(\n      value.schemaDefinitions.map(\n        (item) =>\n          `${item.definitionRevisionRef.id}@${item.definitionRevisionRef.revision}`,\n      ),\n    );\n    if (duplicateSchemaDefinition)\n      context.addIssue({\n        code: \"custom\",\n        path: [\"schemaDefinitions\"],\n        message: `Duplicate Schema definition ${duplicateSchemaDefinition}.`,\n      });\n    const duplicateCapabilityRegistration = duplicates(\n      value.capabilityRegistrations.map(\n        (item) =>\n          `${item.declarativeRegistration.capabilityRevisionRef.id}@${item.declarativeRegistration.capabilityRevisionRef.revision}`,\n      ),\n    );\n    if (duplicateCapabilityRegistration)\n      context.addIssue({\n        code: \"custom\",\n        path: [\"capabilityRegistrations\"],\n        message: `Duplicate product capability registration ${duplicateCapabilityRegistration}.`,\n      });\n    value.defaultPolicies.forEach((selection, index) => {\n      const expectedKind = {\n        management: \"access-policy\",\n        access: \"access-policy\",\n        layout: \"layout-policy\",\n        performance: \"performance-budget\",\n        observability: \"observation-policy\",\n        tokens: \"design-token\",\n        environment: \"environment\",\n      }[selection.role];\n      if (selection.resourceRevisionRef.kind !== expectedKind) {\n        context.addIssue({\n          code: \"custom\",\n          path: [\"defaultPolicies\", index, \"resourceRevisionRef\", \"kind\"],\n          message: `Default ${selection.role} selection must reference ${expectedKind}.`,\n        });\n      }\n      if (\n        !value.resourceRegistrations.some(\n          (registration) =>\n            registration.resourceRevisionRef.kind ===\n              selection.resourceRevisionRef.kind &&\n            registration.resourceRevisionRef.id ===\n              selection.resourceRevisionRef.id &&\n            registration.resourceRevisionRef.revision ===\n              selection.resourceRevisionRef.revision &&\n            registration.resourceRevisionRef.contentHash ===\n              selection.resourceRevisionRef.contentHash,\n        )\n      ) {\n        context.addIssue({\n          code: \"custom\",\n          path: [\"defaultPolicies\", index, \"resourceRevisionRef\"],\n          message:\n            \"Default policy must select an exact registered product resource.\",\n        });\n      }\n    });\n  });\nexport type ProductDeclarativeAuthoringCatalog = z.infer<\n  typeof ProductDeclarativeAuthoringCatalogSchema\n>;\nexport type DeclarativeDomainQueryDefinitionRegistration = z.infer<\n  typeof DeclarativeDomainQueryDefinitionRegistrationSchema\n>;\nexport type DeclarativeDomainCommandDefinitionRegistration = z.infer<\n  typeof DeclarativeDomainCommandDefinitionRegistrationSchema\n>;\nexport type DeclarativeSchemaDefinitionRegistration = z.infer<\n  typeof DeclarativeSchemaDefinitionRegistrationSchema\n>;\n\nexport const DeclarativeCreateTemplateChoiceSchema =\n  DeclarativeAuthoringChoiceSchema.extend({\n    template: DeclarativeCreateTemplateRegistrationSchema,\n  }).strict();\n\nexport const DeclarativeRouteSpaceChoiceSchema =\n  DeclarativeAuthoringChoiceSchema.extend({\n    registration: DeclarativeRouteSpaceRegistrationSchema,\n  }).strict();\n\nexport const DeclarativeProductResourceChoiceSchema =\n  DeclarativeAuthoringChoiceSchema.extend({\n    registration: DeclarativeProductResourceRegistrationSchema,\n  }).strict();\n\nexport const DeclarativeBindingAuthoringChoiceSchema =\n  DeclarativeAuthoringChoiceSchema.extend({\n    bindingTemplate: z\n      .object({\n        kind: z.enum([\"ontology\", \"view\", \"query\", \"action\"]),\n        requiredRevisionRefs: z.array(RevisionRefSchema),\n        requiredPermissionCodes: z.array(ContractIdentifierSchema),\n        inputTemplate: z.record(z.string(), z.unknown()),\n      })\n      .strict(),\n    accessDiagnostics: z\n      .object({\n        allowed: z.boolean(),\n        missingPermissionCodes: z.array(ContractIdentifierSchema),\n        issueCodes: z.array(ContractIdentifierSchema),\n      })\n      .strict(),\n  }).strict();\n\nexport const DeclarativeWorkbenchTargetChoiceSchema = z\n  .object({\n    runtimeContractVersion: ContractIdentifierSchema.optional(),\n    stableTargetRef: StableRefSchema,\n    targetRevisionRef: RevisionRefSchema,\n    providerRevisionRef: RevisionRefSchema,\n    inputSchemaRevisionRef: RevisionRefSchema,\n    kind: z.enum([\n      \"built-in-application\",\n      \"workflow-form\",\n      \"workflow\",\n      \"agent\",\n      \"design\",\n      \"capability\",\n    ]),\n    name: I18nTextSchema,\n    targetAccessPolicy: AccessPolicySchema,\n    supportedSurfaces: z.array(ProductSurfaceSchema).min(1),\n    status: z.enum([\"active\", \"deprecated\", \"retired\", \"unavailable\"]),\n    provenanceContentHash: Sha256Schema,\n  })\n  .strict()\n  .superRefine((value, context) => {\n    if (\n      value.targetRevisionRef.id !== value.stableTargetRef.id ||\n      value.targetRevisionRef.kind !== value.stableTargetRef.kind\n    ) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"targetRevisionRef\"],\n        message: \"Workbench target identity and exact revision must match.\",\n      });\n    }\n    if (value.providerRevisionRef.kind !== \"view-provider\") {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"providerRevisionRef\", \"kind\"],\n        message: \"Workbench targets require an exact view-provider revision.\",\n      });\n    }\n    if (value.inputSchemaRevisionRef.kind !== \"schema\") {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"inputSchemaRevisionRef\", \"kind\"],\n        message: \"Workbench targets require an exact input schema revision.\",\n      });\n    }\n  });\nexport type DeclarativeWorkbenchTargetChoice = z.infer<\n  typeof DeclarativeWorkbenchTargetChoiceSchema\n>;\n\nexport const DeclarativeCreateIntentSchema = z\n  .object({\n    resourceId: ContractIdentifierSchema,\n    templateRevisionRef: RevisionRefSchema.optional(),\n    sourceRevisionRef: RevisionRefSchema.optional(),\n    identity: z\n      .object({\n        name: I18nTextSchema,\n        description: I18nTextSchema.optional(),\n        tags: z.array(ContractIdentifierSchema).default([]),\n      })\n      .strict(),\n    surface: ProductSurfaceSchema,\n    pathTemplate: z.string().trim().min(1).optional(),\n    placement: ContractIdentifierSchema.optional(),\n    idempotencyKey: z.string().trim().min(1).max(256),\n  })\n  .strict()\n  .superRefine((value, context) => {\n    if (\n      Number(Boolean(value.templateRevisionRef)) +\n        Number(Boolean(value.sourceRevisionRef)) !==\n      1\n    ) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"templateRevisionRef\"],\n        message:\n          \"Create intent requires exactly one governed template or source revision.\",\n      });\n    }\n  });\nexport type DeclarativeCreateIntent = z.infer<\n  typeof DeclarativeCreateIntentSchema\n>;\n\nexport const DeclarativeDocumentSchema = z.union([\n  PageSchema,\n  ResolvedPageSchema,\n  NavigationSchema,\n  WorkbenchSchema,\n]);\n\nexport const DeclarativeSaveDraftIntentSchema = z\n  .object({\n    document: DeclarativeDocumentSchema,\n    expectedVersion: z.number().int().nonnegative(),\n    idempotencyKey: z.string().trim().min(1).max(256),\n  })\n  .strict();\nexport type DeclarativeSaveDraftIntent = z.infer<\n  typeof DeclarativeSaveDraftIntentSchema\n>;\n\nexport const DeclarativeRetireIntentSchema = z\n  .object({\n    expectedVersion: z.number().int().positive(),\n    idempotencyKey: z.string().trim().min(1).max(256),\n    reason: z.string().trim().min(1).max(4096),\n  })\n  .strict();\nexport type DeclarativeRetireIntent = z.infer<\n  typeof DeclarativeRetireIntentSchema\n>;\n\nexport const DeclarativePreparedReleaseTargetSchema = z\n  .object({\n    environmentRef: StableRefSchema,\n    environmentRevisionRef: RevisionRefSchema,\n    surface: ProductSurfaceSchema,\n    routeClaimIndex: z.number().int().nonnegative().optional(),\n    legacyRouteTakeoverAuthorization:\n      LegacyRouteTakeoverAuthorizationSchema.optional(),\n    placement: ContractIdentifierSchema.optional(),\n    order: z.number().int().optional(),\n    isDefaultCandidate: z.boolean().optional(),\n    releaseSlotId: ContractIdentifierSchema.optional(),\n    releaseExpectedVersion: z.number().int().nonnegative(),\n  })\n  .strict();\n\nexport const DeclarativeEnvironmentChoiceSchema =\n  DeclarativeAuthoringChoiceSchema.extend({\n    revisionRef: RevisionRefSchema,\n    registration: DeclarativeProductResourceRegistrationSchema,\n  }).strict();\n\nexport const DeclarativeAuthoringPageInfoSchema = z\n  .object({\n    hasMore: z.boolean(),\n    nextPageToken: z.string().trim().min(1).max(2_048).optional(),\n    pageSize: z.number().int().min(1).max(200),\n    returned: z.number().int().nonnegative(),\n    total: z.number().int().nonnegative().optional(),\n  })\n  .strict()\n  .superRefine((value, context) => {\n    if (value.returned > value.pageSize)\n      context.addIssue({\n        code: \"custom\",\n        path: [\"returned\"],\n        message: \"Returned items cannot exceed pageSize.\",\n      });\n    if (value.hasMore !== Boolean(value.nextPageToken))\n      context.addIssue({\n        code: \"custom\",\n        path: [\"nextPageToken\"],\n        message: \"hasMore and nextPageToken must agree.\",\n      });\n  });\n\nexport const DeclarativeAuthoringChoiceKindSchema = z.enum([\n  \"capability\",\n  \"ontology\",\n  \"view\",\n  \"query\",\n  \"action\",\n  \"access\",\n  \"published-target\",\n  \"workbench-target\",\n]);\n\nconst authoringChoicePage = <T extends z.ZodType>(\n  choiceKind: z.infer<typeof DeclarativeAuthoringChoiceKindSchema>,\n  itemSchema: T,\n) =>\n  z\n    .object({\n      choiceKind: z.literal(choiceKind),\n      items: z.array(itemSchema),\n      pageInfo: DeclarativeAuthoringPageInfoSchema,\n    })\n    .strict()\n    .superRefine((value, context) => {\n      if (value.pageInfo.returned !== value.items.length)\n        context.addIssue({\n          code: \"custom\",\n          path: [\"pageInfo\", \"returned\"],\n          message: \"PageInfo returned must match choice item count.\",\n        });\n    });\n\nexport const DeclarativeAuthoringChoicePageSchema = z.discriminatedUnion(\n  \"choiceKind\",\n  [\n    authoringChoicePage(\n      \"capability\",\n      DeclarativeCapabilityAuthoringChoiceSchema,\n    ),\n    authoringChoicePage(\"ontology\", DeclarativeBindingAuthoringChoiceSchema),\n    authoringChoicePage(\"view\", DeclarativeBindingAuthoringChoiceSchema),\n    authoringChoicePage(\"action\", DeclarativeBindingAuthoringChoiceSchema),\n    authoringChoicePage(\"access\", DeclarativeAuthoringChoiceSchema),\n    authoringChoicePage(\"published-target\", DeclarativeAuthoringChoiceSchema),\n    authoringChoicePage(\n      \"workbench-target\",\n      DeclarativeWorkbenchTargetChoiceSchema,\n    ),\n  ],\n);\n\nexport const DeclarativeAuthoringResourcePageQuerySchema = z\n  .object({\n    resourceKind: DeclarativeResourceKindSchema.optional(),\n    resourceId: ContractIdentifierSchema.optional(),\n    surface: ProductSurfaceSchema.optional(),\n    placement: ContractIdentifierSchema.optional(),\n    search: z.string().trim().min(1).max(256).optional(),\n    pageSize: z.number().int().min(1).max(200).default(60),\n    pageToken: z.string().trim().min(1).max(2_048).optional(),\n  })\n  .strict();\n\nexport const DeclarativeAuthoringChoicePageQuerySchema = z\n  .object({\n    choiceKind: DeclarativeAuthoringChoiceKindSchema,\n    surface: ProductSurfaceSchema.optional(),\n    search: z.string().trim().min(1).max(256).optional(),\n    pageSize: z.number().int().min(1).max(200).default(60),\n    pageToken: z.string().trim().min(1).max(2_048).optional(),\n  })\n  .strict();\n\nexport type DeclarativeAuthoringPageInfo = z.infer<\n  typeof DeclarativeAuthoringPageInfoSchema\n>;\nexport type DeclarativeAuthoringChoiceKind = z.infer<\n  typeof DeclarativeAuthoringChoiceKindSchema\n>;\nexport type DeclarativeAuthoringChoicePage = z.infer<\n  typeof DeclarativeAuthoringChoicePageSchema\n>;\nexport type DeclarativeAuthoringResourcePageQuery = z.infer<\n  typeof DeclarativeAuthoringResourcePageQuerySchema\n>;\nexport type DeclarativeAuthoringChoicePageQuery = z.infer<\n  typeof DeclarativeAuthoringChoicePageQuerySchema\n>;\n\nconst DeclarativePageDocumentSummarySchema = z\n  .object({\n    resourceKind: z.literal(\"page\"),\n    title: I18nTextSchema,\n    supportedSurfaces: z.array(ProductSurfaceSchema).min(1),\n    routeClaims: z.array(RouteClaimSchema).min(1),\n    lifecycle: z.enum([\"active\", \"deprecated\", \"retired\"]),\n    accessPolicy: AccessPolicySchema,\n    managementAccess: ManagementAccessSchema,\n  })\n  .strict();\n\nconst DeclarativeNavigationDocumentSummarySchema = z\n  .object({\n    resourceKind: z.literal(\"navigation\"),\n    title: I18nTextSchema,\n    supportedSurfaces: z.array(ProductSurfaceSchema).min(1),\n    placements: z.array(ContractIdentifierSchema).min(1),\n    nodeCount: z.number().int().nonnegative(),\n    lifecycle: z.enum([\"active\", \"deprecated\", \"retired\"]),\n    managementAccess: ManagementAccessSchema,\n  })\n  .strict();\n\nconst DeclarativeWorkbenchDocumentSummarySchema = z\n  .object({\n    resourceKind: z.literal(\"workbench\"),\n    title: I18nTextSchema,\n    purpose: z.enum([\"instance\", \"template\"]),\n    supportedSurfaces: z.array(ProductSurfaceSchema).min(1),\n    routeClaims: z.array(RouteClaimSchema).min(1),\n    layout: z\n      .object({\n        hostCapabilityRevisionRef: RevisionRefSchema,\n        hostProviderRevisionRef: RevisionRefSchema,\n        layoutPolicyRevisionRef: RevisionRefSchema,\n      })\n      .strict(),\n    instanceCount: z.number().int().nonnegative(),\n    lifecycle: z.enum([\"active\", \"deprecated\", \"retired\"]),\n    accessPolicy: AccessPolicySchema,\n    managementAccess: ManagementAccessSchema,\n  })\n  .strict();\n\nexport const DeclarativeDocumentSummarySchema = z.discriminatedUnion(\n  \"resourceKind\",\n  [\n    DeclarativePageDocumentSummarySchema,\n    DeclarativeNavigationDocumentSummarySchema,\n    DeclarativeWorkbenchDocumentSummarySchema,\n  ],\n);\n\nconst declarativeReferenceTenantScopeKey = (\n  scope: z.infer<typeof TenantScopeSchema>,\n): string => JSON.stringify(scope);\n\nconst DeclarativeDefinitionKindByResourceKind = {\n  page: \"page\",\n  navigation: \"navigation\",\n  workbench: \"workbench\",\n} as const;\n\nconst DeclarativeReleaseKindByResourceKind = {\n  page: \"page-release\",\n  navigation: \"navigation-release\",\n  workbench: \"workbench-release\",\n} as const;\n\nexport const DeclarativeAuthoringResourceSummarySchema = z\n  .object({\n    resourceKind: DeclarativeResourceKindSchema,\n    resourceId: ContractIdentifierSchema,\n    tenantScope: TenantScopeSchema,\n    documentSummary: DeclarativeDocumentSummarySchema,\n    lifecycle: z.enum([\"active\", \"deprecated\", \"retired\"]),\n    draftRevisionRef: RevisionRefSchema,\n    activeReleaseRevisionRefs: z.array(RevisionRefSchema),\n    placements: z.array(ContractIdentifierSchema),\n    updatedAt: z.string().datetime(),\n    actorRef: StableRefSchema,\n    preparedTargets: z.array(DeclarativePreparedReleaseTargetSchema),\n    releasePlacements: z.array(\n      z\n        .object({\n          releaseRevisionRef: RevisionRefSchema,\n          definitionRevisionRef: RevisionRefSchema,\n          environmentRef: StableRefSchema,\n          surface: ProductSurfaceSchema,\n          routePath: z.string().optional(),\n          placement: ContractIdentifierSchema.optional(),\n          order: z.number().int().optional(),\n          isDefaultCandidate: z.boolean().optional(),\n        })\n        .strict(),\n    ),\n  })\n  .strict()\n  .superRefine((value, context) => {\n    const expectedDefinitionKind =\n      DeclarativeDefinitionKindByResourceKind[value.resourceKind];\n    const expectedReleaseKind =\n      DeclarativeReleaseKindByResourceKind[value.resourceKind];\n    const expectedTenantScope = declarativeReferenceTenantScopeKey(\n      value.tenantScope,\n    );\n    const seenReleaseRefs = new Set<string>();\n\n    value.releasePlacements.forEach((placement, index) => {\n      const releasePath = [\n        \"releasePlacements\",\n        index,\n        \"releaseRevisionRef\",\n      ] as const;\n      const definitionPath = [\n        \"releasePlacements\",\n        index,\n        \"definitionRevisionRef\",\n      ] as const;\n      if (placement.releaseRevisionRef.kind !== expectedReleaseKind) {\n        context.addIssue({\n          code: \"custom\",\n          path: [...releasePath, \"kind\"],\n          message: `Release placement must reference ${expectedReleaseKind}.`,\n        });\n      }\n      if (\n        placement.releaseRevisionRef.visibility !== \"tenant\" ||\n        declarativeReferenceTenantScopeKey(\n          placement.releaseRevisionRef.tenantScope!,\n        ) !== expectedTenantScope\n      ) {\n        context.addIssue({\n          code: \"custom\",\n          path: [...releasePath, \"tenantScope\"],\n          message: \"Release placement must use the resource tenant scope.\",\n        });\n      }\n      const releaseIdentity = `${placement.releaseRevisionRef.kind}:${placement.releaseRevisionRef.id}:${placement.releaseRevisionRef.revision}`;\n      if (seenReleaseRefs.has(releaseIdentity)) {\n        context.addIssue({\n          code: \"custom\",\n          path: [...releasePath],\n          message:\n            \"Release placements must not repeat an exact release revision.\",\n        });\n      }\n      seenReleaseRefs.add(releaseIdentity);\n\n      if (placement.definitionRevisionRef.kind !== expectedDefinitionKind) {\n        context.addIssue({\n          code: \"custom\",\n          path: [...definitionPath, \"kind\"],\n          message: `Release placement definition must reference ${expectedDefinitionKind}.`,\n        });\n      }\n      if (placement.definitionRevisionRef.id !== value.resourceId) {\n        context.addIssue({\n          code: \"custom\",\n          path: [...definitionPath, \"id\"],\n          message:\n            \"Release placement definition must reference the summary resource.\",\n        });\n      }\n      if (\n        placement.definitionRevisionRef.visibility !== \"tenant\" ||\n        declarativeReferenceTenantScopeKey(\n          placement.definitionRevisionRef.tenantScope!,\n        ) !== expectedTenantScope\n      ) {\n        context.addIssue({\n          code: \"custom\",\n          path: [...definitionPath, \"tenantScope\"],\n          message:\n            \"Release placement definition must use the resource tenant scope.\",\n        });\n      }\n    });\n  });\n\nexport const DeclarativeAuthoringResourcePageSchema = z\n  .object({\n    items: z.array(DeclarativeAuthoringResourceSummarySchema),\n    pageInfo: DeclarativeAuthoringPageInfoSchema,\n  })\n  .strict()\n  .superRefine((value, context) => {\n    if (value.pageInfo.returned !== value.items.length)\n      context.addIssue({\n        code: \"custom\",\n        path: [\"pageInfo\", \"returned\"],\n        message: \"PageInfo returned must match resource item count.\",\n      });\n  });\nexport type DeclarativeAuthoringResourcePage = z.infer<\n  typeof DeclarativeAuthoringResourcePageSchema\n>;\n\nexport const DeclarativeAuthoringHistoryEntrySchema = z\n  .object({\n    revisionRef: RevisionRefSchema,\n    version: z.number().int().positive(),\n    lifecycle: z.enum([\"active\", \"deprecated\", \"retired\"]),\n    name: I18nTextSchema,\n    actorRef: StableRefSchema,\n    source: z.enum([\"user\", \"migration\", \"rollback\"]),\n    reason: z.string().trim().min(1).optional(),\n    occurredAt: z.string().datetime(),\n    activeRelease: z.boolean(),\n  })\n  .strict();\nexport const DeclarativeAuthoringHistorySchema = z\n  .object({\n    items: z.array(DeclarativeAuthoringHistoryEntrySchema),\n    nextBeforeVersion: z.number().int().positive().optional(),\n  })\n  .strict();\nexport type DeclarativeAuthoringHistory = z.infer<\n  typeof DeclarativeAuthoringHistorySchema\n>;\n\nconst DeclarativeRuntimeDiagnosticSchema = DeclarativeDiagnosticSchema;\n\nexport const DeclarativeDraftResultSchema = z\n  .object({\n    action: z.enum([\"create\", \"save\"]),\n    resourceKind: DeclarativeResourceKindSchema,\n    resourceId: ContractIdentifierSchema,\n    document: DeclarativeDocumentSchema,\n    revisionRef: RevisionRefSchema,\n    actorRef: StableRefSchema,\n    occurredAt: z.string().datetime(),\n    provenance: z\n      .object({ sourceRevisionRef: RevisionRefSchema })\n      .strict()\n      .optional(),\n  })\n  .strict();\nexport type DeclarativeDraftResult = z.infer<\n  typeof DeclarativeDraftResultSchema\n>;\n\nexport const DeclarativeValidationResultSchema = z\n  .object({\n    action: z.literal(\"validate\"),\n    valid: z.literal(true),\n    releaseRevisionRef: RevisionRefSchema,\n    bundleContentHash: Sha256Schema,\n    diagnostics: z.array(DeclarativeRuntimeDiagnosticSchema),\n  })\n  .strict();\nexport type DeclarativeValidationResult = z.infer<\n  typeof DeclarativeValidationResultSchema\n>;\n\nexport const DeclarativePreviewResultSchema = z\n  .object({\n    action: z.literal(\"preview\"),\n    token: z.string().trim().min(1),\n    expiresAt: z.string().datetime(),\n    revision: z.number().int().positive(),\n    contentHash: Sha256Schema,\n    bundle: z.union([\n      ReadablePageRuntimeBundleSchema,\n      NavigationRuntimeBundleSchema,\n      WorkbenchRuntimeBundleSchema,\n    ]),\n    etag: z.string().trim().min(1),\n    sourceContentHash: Sha256Schema,\n  })\n  .strict();\nexport type DeclarativePreviewResult = z.infer<\n  typeof DeclarativePreviewResultSchema\n>;\n\nexport const DeclarativePublicationItemResultSchema = z\n  .object({\n    resourceKind: DeclarativeResourceKindSchema,\n    resourceId: ContractIdentifierSchema,\n    releaseRevisionRef: RevisionRefSchema,\n    release: z.union([\n      PageReleaseSchema,\n      NavigationReleaseSchema,\n      WorkbenchReleaseSchema,\n    ]),\n    bundle: z\n      .union([\n        ReadablePageRuntimeBundleSchema,\n        NavigationRuntimeBundleSchema,\n        WorkbenchRuntimeBundleSchema,\n      ])\n      .optional(),\n  })\n  .strict()\n  .superRefine((value, context) => {\n    const expectedReleaseKind = {\n      page: \"page-release\",\n      navigation: \"navigation-release\",\n      workbench: \"workbench-release\",\n    }[value.resourceKind];\n    const expectedReleaseContract = {\n      page: \"PageRelease\",\n      navigation: \"NavigationRelease\",\n      workbench: \"WorkbenchRelease\",\n    }[value.resourceKind];\n    const expectedBundleContract = {\n      page: \"PageRuntimeBundle\",\n      navigation: \"NavigationRuntimeBundle\",\n      workbench: \"WorkbenchRuntimeBundle\",\n    }[value.resourceKind];\n    if (\n      value.releaseRevisionRef.kind !== expectedReleaseKind ||\n      value.releaseRevisionRef.id !== value.release.releaseSlotId ||\n      value.release.contract !== expectedReleaseContract\n    ) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"releaseRevisionRef\"],\n        message:\n          \"A publication item must return the exact release identity for its resource kind.\",\n      });\n    }\n    const definitionRef =\n      value.release.contract === \"PageRelease\"\n        ? value.release.pageRevisionRef\n        : value.release.contract === \"NavigationRelease\"\n          ? value.release.navigationRevisionRef\n          : value.release.workbenchRevisionRef;\n    if (definitionRef.id !== value.resourceId) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"resourceId\"],\n        message:\n          \"A publication item release must identify the requested resource.\",\n      });\n    }\n    const unavailable =\n      value.release.operation === \"deactivate\" ||\n      Boolean(value.release.legacyRestoration);\n    if (unavailable === Boolean(value.bundle)) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"bundle\"],\n        message: unavailable\n          ? \"A deactivated or legacy-restored Release cannot publish an active Runtime Bundle.\"\n          : \"An active declarative Release must publish its Runtime Bundle.\",\n      });\n    }\n    if (value.bundle) {\n      const bundleDefinitionRef =\n        value.bundle.contract === \"PageRuntimeBundle\"\n          ? value.bundle.pageRevisionRef\n          : value.bundle.contract === \"NavigationRuntimeBundle\"\n            ? value.bundle.navigationRevisionRef\n            : value.bundle.workbenchRevisionRef;\n      const sameRevision = (\n        left: z.infer<typeof RevisionRefSchema>,\n        right: z.infer<typeof RevisionRefSchema>,\n      ) =>\n        left.kind === right.kind &&\n        left.id === right.id &&\n        left.ownerRepo === right.ownerRepo &&\n        left.revision === right.revision &&\n        left.schemaVersion === right.schemaVersion &&\n        left.contentHash === right.contentHash;\n      if (\n        value.bundle.contract !== expectedBundleContract ||\n        !sameRevision(\n          value.bundle.releaseRevisionRef,\n          value.releaseRevisionRef,\n        ) ||\n        !sameRevision(bundleDefinitionRef, definitionRef)\n      ) {\n        context.addIssue({\n          code: \"custom\",\n          path: [\"bundle\"],\n          message:\n            \"A publication item Runtime Bundle must pin the exact returned Release and definition revisions.\",\n        });\n      }\n    }\n  });\n\nconst DeclarativeDirectPublicationResultSchema = z\n  .object({\n    action: z.enum([\"publish\", \"rollback\"]),\n    generation: z.number().int().nonnegative(),\n    items: z.array(DeclarativePublicationItemResultSchema).min(1),\n    etag: z.string().trim().min(1),\n  })\n  .strict()\n  .superRefine((value, context) => {\n    const expectedOperation =\n      value.action === \"publish\" ? \"activate\" : \"rollback\";\n    value.items.forEach((item, index) => {\n      if (item.release.operation !== expectedOperation) {\n        context.addIssue({\n          code: \"custom\",\n          path: [\"items\", index, \"release\", \"operation\"],\n          message:\n            \"A direct publication result must match its requested action.\",\n        });\n      }\n    });\n  });\n\nconst DeclarativeAtomicPublicationPlanResultSchema = z\n  .object({\n    action: z.literal(\"publication-plan\"),\n    generation: z.number().int().nonnegative(),\n    publicationPlanRevisionRef: RevisionRefSchema,\n    items: z.array(DeclarativePublicationItemResultSchema).min(1),\n    etag: z.string().trim().min(1),\n  })\n  .strict()\n  .superRefine((value, context) => {\n    if (value.publicationPlanRevisionRef.kind !== \"publication-plan\") {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"publicationPlanRevisionRef\", \"kind\"],\n        message:\n          \"An atomic publication result must pin its Publication Plan revision.\",\n      });\n    }\n  });\n\nexport const DeclarativePublicationResultSchema = z.union([\n  DeclarativeDirectPublicationResultSchema,\n  DeclarativeAtomicPublicationPlanResultSchema,\n]);\nexport type DeclarativePublicationResult = z.infer<\n  typeof DeclarativePublicationResultSchema\n>;\n\nexport const DECLARATIVE_MIGRATION_ERROR_CODES = {\n  sourceChanged: \"DECLARATIVE_LEGACY_SOURCE_CHANGED\",\n  reservedTakeoverForbidden: \"DECLARATIVE_RESERVED_ROUTE_TAKEOVER_FORBIDDEN\",\n  takeoverScopeInvalid: \"DECLARATIVE_ROUTE_TAKEOVER_SCOPE_INVALID\",\n  workbenchDefaultConflict: \"DECLARATIVE_WORKBENCH_DEFAULT_CONFLICT\",\n  legacyWriteBlocked: \"DECLARATIVE_LEGACY_WRITE_BLOCKED\",\n} as const;\n\nexport const DeclarativeRetireResultSchema = z\n  .object({\n    action: z.literal(\"retire\"),\n    resourceKind: DeclarativeResourceKindSchema,\n    resourceId: ContractIdentifierSchema,\n    revisionRef: RevisionRefSchema,\n    lifecycle: z.literal(\"retired\"),\n    actorRef: StableRefSchema,\n    occurredAt: z.string().datetime(),\n    reason: z.string().trim().min(1).max(4096),\n  })\n  .strict();\nexport type DeclarativeRetireResult = z.infer<\n  typeof DeclarativeRetireResultSchema\n>;\n\nexport const DeclarativeAuthoringCommandResultSchema = z.union([\n  DeclarativeDraftResultSchema,\n  DeclarativeValidationResultSchema,\n  DeclarativePreviewResultSchema,\n  DeclarativePublicationResultSchema,\n  DeclarativeRetireResultSchema,\n]);\nexport type DeclarativeAuthoringCommandResult = z.infer<\n  typeof DeclarativeAuthoringCommandResultSchema\n>;\n\nexport const DeclarativeNavigationSeedMigrationIntentSchema = z\n  .object({\n    idempotencyKey: z.string().trim().min(1).max(256),\n  })\n  .strict();\nexport type DeclarativeNavigationSeedMigrationIntent = z.infer<\n  typeof DeclarativeNavigationSeedMigrationIntentSchema\n>;\n\nconst DeclarativeNavigationSeedMigrationDiffSchema = z\n  .object({\n    path: z.string().trim().min(1),\n    legacyContentHash: Sha256Schema,\n    declarativeContentHash: Sha256Schema,\n  })\n  .strict();\n\nexport const DeclarativeNavigationSeedMigrationResultSchema = z\n  .object({\n    outcome: z.enum([\"already-active\", \"review-required\", \"published\"]),\n    placement: ContractIdentifierSchema,\n    legacyContentHash: Sha256Schema,\n    templateRevisionRef: RevisionRefSchema,\n    draftRevisionRef: RevisionRefSchema.optional(),\n    activeReleaseRevisionRef: RevisionRefSchema.optional(),\n    requiresReview: z.boolean(),\n    diff: z.array(DeclarativeNavigationSeedMigrationDiffSchema),\n  })\n  .strict()\n  .superRefine((value, context) => {\n    if (\n      value.outcome === \"review-required\" &&\n      (!value.requiresReview || !value.draftRevisionRef)\n    ) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"outcome\"],\n        message: \"Review-required migrations must expose their draft.\",\n      });\n    }\n    if (\n      (value.outcome === \"already-active\" || value.outcome === \"published\") &&\n      !value.activeReleaseRevisionRef\n    ) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"activeReleaseRevisionRef\"],\n        message: \"Active migrations require an exact release revision.\",\n      });\n    }\n  });\nexport type DeclarativeNavigationSeedMigrationResult = z.infer<\n  typeof DeclarativeNavigationSeedMigrationResultSchema\n>;\n\nexport const DeclarativeNavigationPlacementSchema = z\n  .object({\n    placement: ContractIdentifierSchema,\n    surface: ProductSurfaceSchema,\n    authority: z.enum([\"legacy\", \"declarative\"]),\n    authorityRevisionRef: RevisionRefSchema.optional(),\n    navigationRef: StableRefSchema.optional(),\n    draftRevisionRef: RevisionRefSchema.optional(),\n    activeReleaseRevisionRef: RevisionRefSchema.optional(),\n    legacySourceRevisionRef: RevisionRefSchema.optional(),\n    legacyContentHash: Sha256Schema.optional(),\n    legacyReadOnly: z.boolean(),\n    declarativeEditorReadOnly: z.boolean(),\n  })\n  .strict();\n\nexport const DeclarativeAuthoringBootstrapSchema = z\n  .object({\n    resources: z.array(DeclarativeAuthoringResourceSummarySchema),\n    createTemplates: z.array(DeclarativeCreateTemplateChoiceSchema),\n    routeSpaces: z.array(DeclarativeRouteSpaceChoiceSchema),\n    productResources: z.array(DeclarativeProductResourceChoiceSchema),\n    environmentChoices: z.array(DeclarativeEnvironmentChoiceSchema),\n    defaultEnvironmentRevisionRef: RevisionRefSchema.optional(),\n    navigationPlacements: z.array(DeclarativeNavigationPlacementSchema),\n    capabilityCatalog: z.array(DeclarativeCapabilityAuthoringChoiceSchema),\n    ontologyChoices: z.array(DeclarativeBindingAuthoringChoiceSchema),\n    viewChoices: z.array(DeclarativeBindingAuthoringChoiceSchema),\n    actionChoices: z.array(DeclarativeBindingAuthoringChoiceSchema),\n    accessChoices: z.array(DeclarativeAuthoringChoiceSchema),\n    publishedTargets: z.array(DeclarativeAuthoringChoiceSchema),\n    workbenchTargets: z.array(DeclarativeWorkbenchTargetChoiceSchema),\n    resourcesPageInfo: DeclarativeAuthoringPageInfoSchema.optional(),\n    deferredChoiceKinds: z\n      .array(DeclarativeAuthoringChoiceKindSchema)\n      .optional(),\n    compilerRevisionRef: RevisionRefSchema,\n    generation: z.number().int().nonnegative(),\n    contentHash: Sha256Schema,\n  })\n  .strict();\nexport type DeclarativeAuthoringBootstrap = z.infer<\n  typeof DeclarativeAuthoringBootstrapSchema\n>;\nexport type DeclarativeAuthoringChoice = z.infer<\n  typeof DeclarativeAuthoringChoiceSchema\n>;\n\nexport const DeclarativeRuntimeRedirectSchema = z\n  .object({\n    statusCode: z.literal(302),\n    source: z\n      .object({\n        resourceKind: z.enum([\"page\", \"workbench\"]),\n        releaseSlotId: ContractIdentifierSchema,\n        activeReleaseRevisionRef: RevisionRefSchema,\n        routeClaim: CompiledRouteClaimSchema,\n      })\n      .strict(),\n    target: z\n      .object({\n        resourceKind: z.enum([\"page\", \"workbench\"]),\n        stableTargetRef: StableRefSchema,\n        releaseSlotId: ContractIdentifierSchema,\n        activeReleaseRevisionRef: RevisionRefSchema,\n        normalizedPath: z.string().trim().startsWith(\"/\"),\n      })\n      .strict(),\n  })\n  .strict();\n\nexport const DeclarativeRuntimeResolvedSchema = z\n  .object({\n    surface: ProductSurfaceSchema,\n    normalizedPath: z.string().trim().min(1),\n    routeParameters: z.record(ContractIdentifierSchema, z.string()),\n    page: ReadablePageRuntimeBundleSchema.optional(),\n    workbench: WorkbenchRuntimeBundleSchema.optional(),\n    redirect: DeclarativeRuntimeRedirectSchema.optional(),\n    navigation: NavigationRuntimeBundleSchema.optional(),\n    releaseSlotRefs: z.array(\n      z\n        .object({\n          resourceKind: DeclarativeResourceKindSchema,\n          releaseSlotId: ContractIdentifierSchema,\n        })\n        .strict(),\n    ),\n    generation: z.number().int().nonnegative(),\n    contentHash: Sha256Schema,\n  })\n  .strict()\n  .superRefine((value, context) => {\n    const outcomes = [value.page, value.workbench, value.redirect].filter(\n      Boolean,\n    ).length;\n    if (outcomes !== 1)\n      context.addIssue({\n        code: \"custom\",\n        path: [\"page\"],\n        message:\n          \"A resolved runtime must contain exactly one Page, Workbench, or governed redirect outcome.\",\n      });\n  });\n\nconst DeclarativeRuntimeSafeBaseShape = {\n  surface: ProductSurfaceSchema,\n  normalizedPath: z.string().trim().startsWith(\"/\").max(2048),\n  routeParameters: z\n    .any()\n    .superRefine(rejectRuntimePrototypeKeys)\n    .pipe(z.record(ContractIdentifierSchema, z.string().max(2048)))\n    .superRefine((parameters, context) => {\n      if (Object.keys(parameters).length > 32) {\n        context.addIssue({\n          code: \"custom\",\n          path: [],\n          message: \"A resolved route cannot expose more than 32 parameters.\",\n        });\n      }\n    }),\n  generation: z.number().int().nonnegative(),\n  etag: z.string().trim().min(1),\n  contentHash: Sha256Schema,\n};\n\nconst DeclarativeRuntimeLegacyOutcomeSchema = z\n  .object({\n    outcome: z.literal(\"legacy\"),\n    ...DeclarativeRuntimeSafeBaseShape,\n    legacyAdapterRevisionRef: RevisionRefSchema,\n  })\n  .strict()\n  .superRefine((value, context) => {\n    if (value.legacyAdapterRevisionRef.kind !== \"legacy-route-adapter\") {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"legacyAdapterRevisionRef\", \"kind\"],\n        message:\n          \"A legacy runtime outcome must pin a legacy-route-adapter revision.\",\n      });\n    }\n  });\n\nconst DeclarativeRuntimeAuthorizedOutcomeSchema = z\n  .object({\n    outcome: z.literal(\"declarative\"),\n    ...DeclarativeRuntimeSafeBaseShape,\n    resolved: DeclarativeRuntimeResolvedSchema,\n  })\n  .strict()\n  .superRefine((value, context) => {\n    if (\n      value.resolved.surface !== value.surface ||\n      value.resolved.normalizedPath !== value.normalizedPath\n    ) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"resolved\"],\n        message:\n          \"An authorized declarative outcome must match its safe route envelope.\",\n      });\n    }\n  });\n\nconst DeclarativeRuntimeDeniedOutcomeSchema = (\n  outcome: \"forbidden\" | \"unavailable\" | \"not-found\",\n  code: string,\n) =>\n  z\n    .object({\n      outcome: z.literal(outcome),\n      ...DeclarativeRuntimeSafeBaseShape,\n      code: z.literal(code),\n    })\n    .strict();\n\nconst DeclarativeRuntimeForbiddenOutcomeSchema = z.discriminatedUnion(\n  \"resourceKind\",\n  [\n    z\n      .object({\n        outcome: z.literal(\"forbidden\"),\n        ...DeclarativeRuntimeSafeBaseShape,\n        resourceKind: z.literal(\"page\"),\n        code: z.literal(\"DECLARATIVE_PAGE_FORBIDDEN\"),\n        presentation: PageRouteStatePresentationSchema.optional(),\n      })\n      .strict()\n      .superRefine((value, context) => {\n        if (\n          value.presentation &&\n          value.presentation.surface !== value.surface\n        ) {\n          context.addIssue({\n            code: \"custom\",\n            path: [\"presentation\", \"surface\"],\n            message:\n              \"A forbidden Page presentation must match the resolved route surface.\",\n          });\n        }\n      }),\n    z\n      .object({\n        outcome: z.literal(\"forbidden\"),\n        ...DeclarativeRuntimeSafeBaseShape,\n        resourceKind: z.literal(\"workbench\"),\n        code: z.literal(\"DECLARATIVE_WORKBENCH_FORBIDDEN\"),\n      })\n      .strict(),\n  ],\n);\n\n/**\n * Browser-facing route resolution. Denied/unavailable/not-found branches are\n * structurally unable to expose resource, Release-slot or revision metadata.\n */\nexport const DeclarativeRuntimeResolveResultSchema = z.union([\n  DeclarativeRuntimeLegacyOutcomeSchema,\n  DeclarativeRuntimeAuthorizedOutcomeSchema,\n  DeclarativeRuntimeForbiddenOutcomeSchema,\n  DeclarativeRuntimeDeniedOutcomeSchema(\n    \"unavailable\",\n    \"DECLARATIVE_ROUTE_UNAVAILABLE\",\n  ),\n  DeclarativeRuntimeDeniedOutcomeSchema(\n    \"not-found\",\n    \"DECLARATIVE_ROUTE_NOT_FOUND\",\n  ),\n]);\nexport type DeclarativeRuntimeResolveResult = z.infer<\n  typeof DeclarativeRuntimeResolveResultSchema\n>;\n\nexport const DeclarativeNavigationRuntimeBootstrapSchema = z\n  .object({\n    placements: z.array(\n      z\n        .object({\n          placement: ContractIdentifierSchema,\n          surface: ProductSurfaceSchema,\n          authority: z.enum([\"legacy\", \"declarative\"]),\n          state: z.enum([\"active\", \"deactivated\"]),\n          releaseSlotId: ContractIdentifierSchema.optional(),\n          activeReleaseRevisionRef: RevisionRefSchema.optional(),\n          bundle: NavigationRuntimeBundleSchema.optional(),\n        })\n        .strict()\n        .superRefine((value, context) => {\n          if (value.authority === \"legacy\") {\n            if (\n              value.releaseSlotId ||\n              value.activeReleaseRevisionRef ||\n              value.bundle\n            ) {\n              context.addIssue({\n                code: \"custom\",\n                path: [\"authority\"],\n                message:\n                  \"Legacy navigation placements cannot expose declarative Release or Bundle state.\",\n              });\n            }\n            if (value.state !== \"active\")\n              context.addIssue({\n                code: \"custom\",\n                path: [\"state\"],\n                message:\n                  \"Legacy navigation placements are active until an explicit declarative cutover.\",\n              });\n            return;\n          }\n          if (!value.releaseSlotId || !value.activeReleaseRevisionRef) {\n            context.addIssue({\n              code: \"custom\",\n              path: [\"releaseSlotId\"],\n              message:\n                \"Declarative navigation placements require an exact active Release reference.\",\n            });\n          }\n          if (value.state === \"active\" && !value.bundle) {\n            context.addIssue({\n              code: \"custom\",\n              path: [\"bundle\"],\n              message:\n                \"An active declarative navigation placement requires its identity-filtered Runtime Bundle.\",\n            });\n          }\n          if (value.state === \"deactivated\" && value.bundle) {\n            context.addIssue({\n              code: \"custom\",\n              path: [\"bundle\"],\n              message:\n                \"A deactivated declarative navigation placement cannot expose a Runtime Bundle.\",\n            });\n          }\n          if (\n            value.bundle &&\n            (value.bundle.placement !== value.placement ||\n              value.bundle.surface !== value.surface)\n          ) {\n            context.addIssue({\n              code: \"custom\",\n              path: [\"bundle\"],\n              message:\n                \"The Navigation Runtime Bundle must match its placement and surface.\",\n            });\n          }\n        }),\n    ),\n    bundles: z.array(NavigationRuntimeBundleSchema),\n    releaseSlotIds: z.array(ContractIdentifierSchema),\n    generation: z.number().int().nonnegative(),\n    contentHash: Sha256Schema,\n    authDigest: Sha256Schema,\n    etag: z.string().trim().min(1),\n  })\n  .strict()\n  .superRefine((value, context) => {\n    const active = value.placements.filter(\n      (entry) => entry.authority === \"declarative\" && entry.state === \"active\",\n    );\n    if (\n      active.length !== value.bundles.length ||\n      active.length !== value.releaseSlotIds.length\n    ) {\n      context.addIssue({\n        code: \"custom\",\n        path: [\"placements\"],\n        message:\n          \"Compatibility bundle arrays must exactly project active declarative placements.\",\n      });\n      return;\n    }\n    active.forEach((entry, index) => {\n      if (\n        entry.bundle?.contentHash !== value.bundles[index]?.contentHash ||\n        entry.releaseSlotId !== value.releaseSlotIds[index]\n      ) {\n        context.addIssue({\n          code: \"custom\",\n          path: [\"placements\", index],\n          message:\n            \"Navigation placement and compatibility bundle order must match.\",\n        });\n      }\n    });\n  });\n\nexport const DeclarativeWorkbenchSummarySchema = z\n  .object({\n    workbenchId: ContractIdentifierSchema,\n    releaseSlotId: ContractIdentifierSchema,\n    activeReleaseRevisionRef: RevisionRefSchema,\n    identity: WorkbenchIdentitySchema,\n    routeClaims: z.array(CompiledRouteClaimSchema),\n    order: z.number().int(),\n    isDefaultCandidate: z.boolean(),\n    generation: z.number().int().nonnegative(),\n    contentHash: Sha256Schema,\n  })\n  .strict();\n\nexport const DeclarativeLegacyWorkbenchSummarySchema = z\n  .object({\n    workbenchId: ContractIdentifierSchema,\n    authority: z.literal(\"legacy\"),\n    identity: WorkbenchIdentitySchema,\n    order: z.number().int(),\n    isDefaultCandidate: z.boolean(),\n  })\n  .strict();\n\nexport const DeclarativeWorkbenchRuntimeBootstrapSchema = z\n  .object({\n    defaultAuthority: z.literal(\"legacy\"),\n    authorities: z.array(\n      z\n        .object({\n          workbenchId: ContractIdentifierSchema,\n          releaseSlotId: ContractIdentifierSchema,\n          authority: z.enum([\"legacy\", \"declarative\"]),\n          state: z.enum([\"active\", \"deactivated\"]),\n          activeReleaseRevisionRef: RevisionRefSchema,\n          visible: z.boolean(),\n        })\n        .strict()\n        .superRefine((value, context) => {\n          if (value.authority === \"legacy\" && value.visible)\n            context.addIssue({\n              code: \"custom\",\n              path: [\"visible\"],\n              message:\n                \"Legacy workbenches are delivered by the compatibility API, not by declarative summaries.\",\n            });\n          if (value.state === \"deactivated\" && value.visible)\n            context.addIssue({\n              code: \"custom\",\n              path: [\"visible\"],\n              message: \"Deactivated workbenches cannot be visible.\",\n            });\n        }),\n    ),\n    legacySummaries: z.array(DeclarativeLegacyWorkbenchSummarySchema),\n    summaries: z.array(DeclarativeWorkbenchSummarySchema),\n    selected: z\n      .object({\n        workbenchId: ContractIdentifierSchema,\n        authority: z.enum([\"legacy\", \"declarative\"]),\n        releaseSlotId: ContractIdentifierSchema.optional(),\n        activeReleaseRevisionRef: RevisionRefSchema.optional(),\n        source: z.enum([\"explicit\", \"default\", \"first-accessible\"]),\n      })\n      .strict()\n      .superRefine((value, context) => {\n        if (\n          value.authority === \"declarative\" &&\n          (!value.releaseSlotId || !value.activeReleaseRevisionRef)\n        ) {\n          context.addIssue({\n            code: \"custom\",\n            path: [\"releaseSlotId\"],\n            message:\n              \"Declarative Workbench selection requires its exact Release slot and revision.\",\n          });\n        }\n        if (\n          value.authority === \"legacy\" &&\n          (value.releaseSlotId || value.activeReleaseRevisionRef)\n        ) {\n          context.addIssue({\n            code: \"custom\",\n            path: [\"releaseSlotId\"],\n            message:\n              \"Legacy Workbench selection cannot expose declarative Release state.\",\n          });\n        }\n      })\n      .nullable(),\n    authDigest: Sha256Schema,\n    etag: z.string().trim().min(1),\n  })\n  .strict();\n\nexport const DeclarativeNavigationImportIntentSchema = z\n  .object({\n    environmentRef: StableRefSchema,\n    surface: ProductSurfaceSchema,\n    expectedLegacyContentHash: Sha256Schema,\n    expectedDraftVersion: z.number().int().nonnegative(),\n    idempotencyKey: z.string().trim().min(1).max(256),\n  })\n  .strict();\n\nexport const DeclarativeNavigationImportResultSchema = z\n  .object({\n    document: z.unknown(),\n    revisionRef: RevisionRefSchema,\n    provenance: z\n      .object({\n        sourceKey: z.literal(\"server.ui.menus\"),\n        sourceRevisionRef: RevisionRefSchema,\n        sourceContentHash: Sha256Schema,\n      })\n      .strict(),\n    diff: z\n      .object({\n        added: z.array(ContractIdentifierSchema),\n        removed: z.array(ContractIdentifierSchema),\n        changed: z.array(ContractIdentifierSchema),\n      })\n      .strict(),\n  })\n  .strict();\n\nexport const DeclarativeRuntimeResolveQuerySchema = z\n  .object({\n    // Runtime callers may select an exact active environment. When omitted,\n    // Server resolves the single release-owned default for this surface.\n    environmentId: ContractIdentifierSchema.optional(),\n    surface: ProductSurfaceSchema,\n    path: z.string().trim().min(1).max(2048),\n    navigationPlacement: ContractIdentifierSchema.optional(),\n  })\n  .strict();\n\nexport const DeclarativeRuntimeRouteOwnerQuerySchema = z\n  .object({\n    // This tenant-scoped lookup is only called after authentication and team\n    // selection. Login, setup and other public boot routes stay owned by the\n    // predeclared legacy router and must not call this API.\n    environmentId: ContractIdentifierSchema.optional(),\n    surface: ProductSurfaceSchema,\n    path: z.string().trim().min(1).max(2048),\n  })\n  .strict();\n\nconst DeclarativeRuntimeRouteParametersSchema = z\n  .any()\n  .superRefine(rejectRuntimePrototypeKeys)\n  .pipe(z.record(ContractIdentifierSchema, z.string().max(2048)))\n  .superRefine((parameters, context) => {\n    const keys = Object.keys(parameters);\n    if (keys.length > 32)\n      context.addIssue({\n        code: \"custom\",\n        path: [],\n        message: \"A resolved route cannot expose more than 32 parameters.\",\n      });\n  });\n\nconst DeclarativeLegacyRouteOwnerSchema = z\n  .object({\n    authority: z.literal(\"legacy\"),\n    legacyAdapterRevisionRef: RevisionRefSchema,\n    generation: z.number().int().positive(),\n    etag: z.string().trim().min(1),\n  })\n  .strict();\n\nconst DeclarativeReleaseRouteOwnerSchema = z\n  .object({\n    authority: z.literal(\"declarative\"),\n    resourceKind: z.enum([\"page\", \"workbench\"]),\n    releaseSlotId: ContractIdentifierSchema,\n    activeReleaseRevisionRef: RevisionRefSchema,\n    generation: z.number().int().positive(),\n    etag: z.string().trim().min(1),\n  })\n  .strict();\n\nexport const DeclarativeRuntimeRouteOwnerSchema = z\n  .object({\n    surface: ProductSurfaceSchema,\n    normalizedPath: z.string().trim().startsWith(\"/\").max(2048),\n    routeParameters: DeclarativeRuntimeRouteParametersSchema,\n    owner: z.discriminatedUnion(\"authority\", [\n      DeclarativeLegacyRouteOwnerSchema,\n      DeclarativeReleaseRouteOwnerSchema,\n    ]),\n    contentHash: Sha256Schema,\n  })\n  .strict();\nexport type DeclarativeRuntimeRouteOwner = z.infer<\n  typeof DeclarativeRuntimeRouteOwnerSchema\n>;\n\nexport type DeclarativeRuntimeResolved = z.infer<\n  typeof DeclarativeRuntimeResolvedSchema\n>;\nexport type DeclarativeRuntimeRedirect = z.infer<\n  typeof DeclarativeRuntimeRedirectSchema\n>;\nexport type DeclarativeNavigationRuntimeBootstrap = z.infer<\n  typeof DeclarativeNavigationRuntimeBootstrapSchema\n>;\nexport type DeclarativeWorkbenchRuntimeBootstrap = z.infer<\n  typeof DeclarativeWorkbenchRuntimeBootstrapSchema\n>;\nexport type DeclarativeNavigationPlacement = z.infer<\n  typeof DeclarativeNavigationPlacementSchema\n>;\nexport type DeclarativeNavigationImportIntent = z.infer<\n  typeof DeclarativeNavigationImportIntentSchema\n>;\n\n// Route claims are re-exported here because authoring clients select an existing\n// declaration claim; they never submit a URL or mutable endpoint as authority.\nexport const DeclarativeRouteClaimIntentSchema = RouteClaimSchema;\n","import Ajv, { type ErrorObject, type ValidateFunction } from 'ajv';\nimport dtcgFormatSchema from '../contracts/dtcg-format.schema.json';\n\nexport const THEME_TOKEN_TYPES = [\n  'color',\n  'dimension',\n  'fontFamily',\n  'fontWeight',\n  'duration',\n  'cubicBezier',\n  'number',\n  'strokeStyle',\n  'border',\n  'transition',\n  'shadow',\n  'gradient',\n  'typography',\n] as const;\n\nexport type ThemeTokenType = (typeof THEME_TOKEN_TYPES)[number];\nexport type ThemeTokenDeprecated = boolean | string;\nexport type ThemeTokenExtensions = Record<string, unknown>;\n\nexport interface ThemeTokenReference {\n  $ref: string;\n}\n\nexport interface ThemeToken {\n  $value?: unknown;\n  $ref?: string;\n  $type?: ThemeTokenType;\n  $description?: string;\n  $deprecated?: ThemeTokenDeprecated;\n  $extensions?: ThemeTokenExtensions;\n}\n\nexport interface ThemeTokenGroup {\n  [name: string]: unknown;\n}\n\nexport type ThemeTokens = Record<string, unknown>;\n\nexport interface ThemeColorValue {\n  colorSpace:\n    | 'srgb'\n    | 'srgb-linear'\n    | 'hsl'\n    | 'hwb'\n    | 'lab'\n    | 'lch'\n    | 'oklab'\n    | 'oklch'\n    | 'display-p3'\n    | 'a98-rgb'\n    | 'prophoto-rgb'\n    | 'rec2020'\n    | 'xyz-d65'\n    | 'xyz-d50';\n  components: [number | 'none', number | 'none', number | 'none'];\n  alpha?: number;\n  hex?: string;\n}\n\nexport interface ThemeDimensionValue {\n  value: number;\n  unit: 'px' | 'rem';\n}\n\nexport interface ThemeDurationValue {\n  value: number;\n  unit: 'ms' | 's';\n}\n\nexport interface ResolvedThemeToken {\n  path: string;\n  type: ThemeTokenType;\n  value: unknown;\n  description?: string;\n  deprecated?: ThemeTokenDeprecated;\n  extensions?: ThemeTokenExtensions;\n}\n\nexport interface ResolvedThemeTokens {\n  document: ThemeTokens;\n  materializedDocument: ThemeTokens;\n  resolvedDocument: ThemeTokens;\n  tokens: ReadonlyMap<string, ResolvedThemeToken>;\n}\n\nexport interface ThemeTokenValidationIssue {\n  path: string;\n  message: string;\n}\n\nexport class ThemeTokenValidationError extends TypeError {\n  public readonly issues: readonly ThemeTokenValidationIssue[];\n\n  constructor(message: string, issues: ThemeTokenValidationIssue[] = []) {\n    super(message);\n    this.name = 'ThemeTokenValidationError';\n    this.issues = issues;\n  }\n}\n\nlet dtcgValidator: ValidateFunction | undefined;\n\nfunction getDtcgValidator(): ValidateFunction {\n  // Importing an SDK entry point must not compile an unused theme validator.\n  // Keep the same synchronous validation and reuse it on subsequent calls.\n  if (!dtcgValidator) {\n    const ajv = new Ajv({\n      allErrors: true,\n      strict: false,\n      strictNumbers: true,\n      validateFormats: false,\n    });\n    dtcgValidator = ajv.compile(dtcgFormatSchema as Record<string, unknown>);\n  }\n  return dtcgValidator;\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n  return value !== null && typeof value === 'object' && !Array.isArray(value);\n}\n\nfunction hasOwn(value: Record<string, unknown>, key: string): boolean {\n  return Object.prototype.hasOwnProperty.call(value, key);\n}\n\nfunction isToken(value: unknown): value is ThemeToken & Record<string, unknown> {\n  return isRecord(value) && (hasOwn(value, '$value') || hasOwn(value, '$ref'));\n}\n\nfunction isGroup(value: unknown): value is ThemeTokenGroup {\n  return isRecord(value) && !isToken(value);\n}\n\nfunction cloneJson<T>(value: T): T {\n  if (Array.isArray(value)) return value.map((item) => cloneJson(item)) as T;\n  if (!isRecord(value)) return value;\n  return Object.fromEntries(Object.entries(value).map(([key, item]) => [key, cloneJson(item)])) as T;\n}\n\nfunction formatAjvIssues(errors: ErrorObject[] | null | undefined): ThemeTokenValidationIssue[] {\n  return (errors ?? []).map((error) => ({\n    path: error.instancePath || '/',\n    message: `${error.message ?? 'is invalid'}${\n      error.params && Object.keys(error.params).length > 0 ? ` (${JSON.stringify(error.params)})` : ''\n    }`,\n  }));\n}\n\nexport function validateThemeTokensDocumentStructure(input: unknown): ThemeTokenValidationIssue[] {\n  const validateDtcgDocument = getDtcgValidator();\n  if (validateDtcgDocument(input)) return [];\n  return formatAjvIssues(validateDtcgDocument.errors);\n}\n\nexport function assertThemeTokensDocumentStructure(input: unknown): asserts input is ThemeTokens {\n  const issues = validateThemeTokensDocumentStructure(input);\n  if (issues.length === 0) return;\n  const summary = issues.slice(0, 5).map((issue) => `${issue.path} ${issue.message}`).join('; ');\n  throw new ThemeTokenValidationError(`Invalid DTCG 2025.10 token document: ${summary}`, issues);\n}\n\nconst GROUP_META_KEYS = new Set(['$schema', '$type', '$description', '$deprecated', '$extensions']);\n\nfunction mergeGroups(\n  base: ThemeTokenGroup,\n  override: ThemeTokenGroup,\n  path: string[],\n  sourceMerge: boolean,\n): ThemeTokenGroup {\n  const output = cloneJson(base);\n  for (const [key, value] of Object.entries(override)) {\n    if (key === '$extends') continue;\n    if (key.startsWith('$') && key !== '$root') {\n      output[key] = cloneJson(value);\n      continue;\n    }\n    if (!hasOwn(output, key)) {\n      output[key] = cloneJson(value);\n      continue;\n    }\n    const existing = output[key];\n    const existingKind = isToken(existing) ? 'token' : isGroup(existing) ? 'group' : 'metadata';\n    const nextKind = isToken(value) ? 'token' : isGroup(value) ? 'group' : 'metadata';\n    if (existingKind === 'group' && nextKind === 'group') {\n      output[key] = mergeGroups(existing as ThemeTokenGroup, value as ThemeTokenGroup, [...path, key], sourceMerge);\n      continue;\n    }\n    if (existingKind !== nextKind) {\n      const reason = sourceMerge ? 'Token sources' : 'Extended groups';\n      throw new ThemeTokenValidationError(\n        `${reason} cannot change ${[...path, key].join('.')} from ${existingKind} to ${nextKind}.`,\n      );\n    }\n    output[key] = cloneJson(value);\n  }\n  return output;\n}\n\nfunction decodeJsonPointer(reference: string): string[] {\n  if (!reference.startsWith('#/')) {\n    throw new ThemeTokenValidationError(`JSON Pointer reference must start with \"#/\": ${reference}`);\n  }\n  let decoded: string;\n  try {\n    decoded = decodeURIComponent(reference.slice(1));\n  } catch {\n    throw new ThemeTokenValidationError(`JSON Pointer contains invalid URI encoding: ${reference}`);\n  }\n  return decoded.slice(1).split('/').map((segment) => segment.replace(/~1/g, '/').replace(/~0/g, '~'));\n}\n\nfunction getAtSegments(document: unknown, segments: readonly string[], reference: string): unknown {\n  let current = document;\n  for (const segment of segments) {\n    if (Array.isArray(current)) {\n      if (!/^(0|[1-9]\\d*)$/.test(segment) || Number(segment) >= current.length) {\n        throw new ThemeTokenValidationError(`Unresolved JSON Pointer reference: ${reference}`);\n      }\n      current = current[Number(segment)];\n      continue;\n    }\n    if (!isRecord(current) || !hasOwn(current, segment)) {\n      throw new ThemeTokenValidationError(`Unresolved JSON Pointer reference: ${reference}`);\n    }\n    current = current[segment];\n  }\n  return current;\n}\n\nfunction parseCurlyReference(reference: string): string[] | null {\n  const match = reference.match(/^\\{([^{}]+)\\}$/);\n  return match ? match[1].split('.') : null;\n}\n\nfunction getGroupReference(\n  document: ThemeTokens,\n  reference: string,\n): { group: ThemeTokenGroup; key: string; path: string[] } {\n  const curlyPath = parseCurlyReference(reference);\n  const path = curlyPath ?? decodeJsonPointer(reference);\n  const target = getAtSegments(document, path, reference);\n  if (!isGroup(target)) {\n    throw new ThemeTokenValidationError(`Group $extends must reference a group: ${reference}`);\n  }\n  return { group: target, key: path.join('.'), path };\n}\n\nfunction materializeGroups(document: ThemeTokens): ThemeTokens {\n  const resolveGroup = (\n    group: ThemeTokenGroup,\n    path: string[],\n    extendsStack: readonly string[],\n  ): ThemeTokenGroup => {\n    let merged: ThemeTokenGroup = {};\n    const extension = group.$extends;\n    if (typeof extension === 'string') {\n      const target = getGroupReference(document, extension);\n      if (extendsStack.includes(target.key)) {\n        throw new ThemeTokenValidationError(\n          `Circular group $extends reference: ${[...extendsStack, target.key].join(' -> ')}`,\n        );\n      }\n      const base = resolveGroup(target.group, target.path, [...extendsStack, target.key]);\n      merged = mergeGroups(base, group, path, false);\n    } else {\n      merged = cloneJson(group);\n      delete merged.$extends;\n    }\n\n    for (const [key, value] of Object.entries(merged)) {\n      if (key.startsWith('$')) continue;\n      if (isGroup(value)) {\n        merged[key] = resolveGroup(value, [...path, key], extendsStack);\n      }\n    }\n    return merged;\n  };\n\n  return resolveGroup(document, [], ['$root-document']) as ThemeTokens;\n}\n\ninterface CollectedToken {\n  token: ThemeToken & Record<string, unknown>;\n  inheritedType?: ThemeTokenType;\n  inheritedDeprecated?: ThemeTokenDeprecated;\n}\n\nfunction collectTokens(document: ThemeTokens): Map<string, CollectedToken> {\n  const tokens = new Map<string, CollectedToken>();\n  const visitGroup = (\n    group: ThemeTokenGroup,\n    path: string[],\n    inheritedType?: ThemeTokenType,\n    inheritedDeprecated?: ThemeTokenDeprecated,\n  ) => {\n    const groupType = (group.$type as ThemeTokenType | undefined) ?? inheritedType;\n    const groupDeprecated = (group.$deprecated as ThemeTokenDeprecated | undefined) ?? inheritedDeprecated;\n    for (const [key, value] of Object.entries(group)) {\n      if (GROUP_META_KEYS.has(key) || key === '$extends') continue;\n      const tokenPath = [...path, key].join('.');\n      if (isToken(value)) {\n        tokens.set(tokenPath, {\n          token: value,\n          inheritedType: groupType,\n          inheritedDeprecated: groupDeprecated,\n        });\n      } else if (isGroup(value)) {\n        visitGroup(value, [...path, key], groupType, groupDeprecated);\n      }\n    }\n  };\n  visitGroup(document, []);\n  return tokens;\n}\n\nfunction expectedChildType(parentType: ThemeTokenType | undefined, key: string): ThemeTokenType | undefined {\n  switch (parentType) {\n    case 'border':\n      return ({ color: 'color', width: 'dimension', style: 'strokeStyle' } as const)[key];\n    case 'transition':\n      return ({ duration: 'duration', delay: 'duration', timingFunction: 'cubicBezier' } as const)[key];\n    case 'shadow':\n      return ({ color: 'color', offsetX: 'dimension', offsetY: 'dimension', blur: 'dimension', spread: 'dimension' } as const)[key];\n    case 'gradient':\n      return ({ color: 'color', position: 'number' } as const)[key];\n    case 'typography':\n      return ({\n        fontFamily: 'fontFamily',\n        fontSize: 'dimension',\n        fontWeight: 'fontWeight',\n        letterSpacing: 'dimension',\n        lineHeight: 'number',\n      } as const)[key];\n    case 'strokeStyle':\n      return key === 'dashArray' ? 'dimension' : undefined;\n    case 'dimension':\n    case 'duration':\n      return key === 'value' ? 'number' : undefined;\n    case 'color':\n      return key === 'alpha' || key === 'components' ? 'number' : undefined;\n    default:\n      return undefined;\n  }\n}\n\nfunction assertResolvedValueMatchesType(type: ThemeTokenType, value: unknown, path: string): void {\n  const syntheticDocument = {\n    token: {\n      $type: type,\n      $value: value,\n    },\n  };\n  const issues = validateThemeTokensDocumentStructure(syntheticDocument);\n  if (issues.length === 0) return;\n  const mapped = issues.map((issue) => ({\n    path: `${path}${issue.path.replace(/^\\/token(?:\\/\\$value)?/, '')}`,\n    message: issue.message,\n  }));\n  const summary = mapped.slice(0, 5).map((issue) => `${issue.path} ${issue.message}`).join('; ');\n  throw new ThemeTokenValidationError(`Token ${path} has an invalid ${type} value: ${summary}`, mapped);\n}\n\nexport function resolveThemeTokens(input: unknown): ResolvedThemeTokens {\n  assertThemeTokensDocumentStructure(input);\n  const document = cloneJson(input);\n  const materializedDocument = materializeGroups(document);\n  const collected = collectTokens(materializedDocument);\n  const resolved = new Map<string, ResolvedThemeToken>();\n  const resolvingTokens: string[] = [];\n\n  const resolveToken = (path: string): ResolvedThemeToken => {\n    const cached = resolved.get(path);\n    if (cached) return cached;\n    const entry = collected.get(path);\n    if (!entry) throw new ThemeTokenValidationError(`Unknown token reference: ${path}`);\n    if (resolvingTokens.includes(path)) {\n      throw new ThemeTokenValidationError(`Circular token reference: ${[...resolvingTokens, path].join(' -> ')}`);\n    }\n    resolvingTokens.push(path);\n\n    const token = entry.token;\n    let tokenType = token.$type ?? entry.inheritedType;\n\n    const inferReferenceType = (reference: string): ThemeTokenType | undefined => {\n      const segments = decodeJsonPointer(reference);\n      for (let length = segments.length; length > 0; length -= 1) {\n        const candidate = segments.slice(0, length).join('.');\n        if (!collected.has(candidate)) continue;\n        const owner = resolveToken(candidate);\n        if (length === segments.length || segments[length] === '$value') return owner.type;\n        return undefined;\n      }\n      return undefined;\n    };\n\n    if (!tokenType && typeof token.$value === 'string') {\n      const aliasPath = parseCurlyReference(token.$value)?.join('.');\n      if (aliasPath) tokenType = resolveToken(aliasPath).type;\n    }\n    if (!tokenType && typeof token.$ref === 'string') tokenType = inferReferenceType(token.$ref);\n    if (!tokenType) {\n      resolvingTokens.pop();\n      throw new ThemeTokenValidationError(\n        `Token ${path} has no $type, does not inherit one, and cannot infer one from its reference.`,\n      );\n    }\n\n    const resolvingPointers: string[] = [];\n    const resolvePointer = (\n      reference: string,\n      expectedType: ThemeTokenType | undefined,\n      location: string,\n    ): unknown => {\n      const marker = `${path}:${reference}`;\n      if (resolvingPointers.includes(marker)) {\n        throw new ThemeTokenValidationError(\n          `Circular JSON Pointer reference at ${location}: ${[...resolvingPointers, marker].join(' -> ')}`,\n        );\n      }\n      resolvingPointers.push(marker);\n      const segments = decodeJsonPointer(reference);\n      const target = getAtSegments(materializedDocument, segments, reference);\n      let result: unknown;\n      if (isToken(target)) {\n        const targetPath = segments.join('.');\n        const targetToken = resolveToken(targetPath);\n        if (expectedType && targetToken.type !== expectedType) {\n          throw new ThemeTokenValidationError(\n            `Reference at ${location} expects ${expectedType} but ${targetPath} is ${targetToken.type}.`,\n          );\n        }\n        result = targetToken.value;\n      } else if (isGroup(target)) {\n        throw new ThemeTokenValidationError(`JSON Pointer at ${location} references a group: ${reference}`);\n      } else {\n        result = resolveValue(target, expectedType, location);\n      }\n      resolvingPointers.pop();\n      return result;\n    };\n\n    const resolveValue = (\n      value: unknown,\n      expectedType: ThemeTokenType | undefined,\n      location: string,\n      contextType: ThemeTokenType | undefined = expectedType,\n    ): unknown => {\n      if (typeof value === 'string') {\n        const alias = parseCurlyReference(value);\n        if (!alias) return value;\n        const aliasPath = alias.join('.');\n        const target = resolveToken(aliasPath);\n        if (expectedType && target.type !== expectedType) {\n          throw new ThemeTokenValidationError(\n            `Reference at ${location} expects ${expectedType} but ${aliasPath} is ${target.type}.`,\n          );\n        }\n        return cloneJson(target.value);\n      }\n      if (Array.isArray(value)) {\n        return value.map((item, index) => {\n          const childType = contextType === 'cubicBezier' ? 'number'\n            : contextType === 'strokeStyle' ? 'dimension'\n              : undefined;\n          return resolveValue(item, childType, `${location}/${index}`, contextType);\n        });\n      }\n      if (!isRecord(value)) return value;\n      if (Object.keys(value).length === 1 && typeof value.$ref === 'string') {\n        return resolvePointer(value.$ref, expectedType, location);\n      }\n      return Object.fromEntries(Object.entries(value).map(([key, child]) => {\n        const childType = expectedChildType(contextType, key);\n        return [key, resolveValue(child, childType, `${location}/${key}`, contextType)];\n      }));\n    };\n\n    let value: unknown;\n    if (typeof token.$ref === 'string') {\n      value = resolvePointer(token.$ref, tokenType, path);\n    } else {\n      value = resolveValue(token.$value, tokenType, path);\n    }\n    assertResolvedValueMatchesType(tokenType, value, path);\n\n    const result: ResolvedThemeToken = {\n      path,\n      type: tokenType,\n      value,\n      description: token.$description,\n      deprecated: token.$deprecated ?? entry.inheritedDeprecated,\n      extensions: token.$extensions,\n    };\n    resolvingTokens.pop();\n    resolved.set(path, result);\n    return result;\n  };\n\n  for (const path of collected.keys()) resolveToken(path);\n  assertBentoTokens(resolved);\n  const resolvedDocument: ThemeTokens = {};\n  for (const token of resolved.values()) {\n    const segments = token.path.split('.');\n    let parent = resolvedDocument as Record<string, unknown>;\n    segments.forEach((segment, index) => {\n      if (index === segments.length - 1) {\n        parent[segment] = {\n          $type: token.type,\n          $value: cloneJson(token.value),\n          ...(token.description !== undefined ? { $description: token.description } : {}),\n          ...(token.deprecated !== undefined ? { $deprecated: cloneJson(token.deprecated) } : {}),\n          ...(token.extensions !== undefined ? { $extensions: cloneJson(token.extensions) } : {}),\n        };\n        return;\n      }\n      const existing = parent[segment];\n      if (!isRecord(existing)) parent[segment] = {};\n      parent = parent[segment] as Record<string, unknown>;\n    });\n  }\n  return {\n    document,\n    materializedDocument,\n    resolvedDocument,\n    tokens: resolved,\n  };\n}\n\nexport function validateThemeTokensDocument(input: unknown): ThemeTokenValidationIssue[] {\n  const structuralIssues = validateThemeTokensDocumentStructure(input);\n  if (structuralIssues.length > 0) return structuralIssues;\n  try {\n    resolveThemeTokens(input);\n    return [];\n  } catch (error) {\n    if (error instanceof ThemeTokenValidationError) {\n      return error.issues.length > 0 ? [...error.issues] : [{ path: '/', message: error.message }];\n    }\n    return [{ path: '/', message: error instanceof Error ? error.message : String(error) }];\n  }\n}\n\nexport function mergeThemeTokenDocuments(inputs: readonly unknown[]): ThemeTokens {\n  if (inputs.length === 0) {\n    throw new ThemeTokenValidationError('At least one DTCG token source is required.');\n  }\n  let merged: ThemeTokenGroup = {};\n  for (const input of inputs) {\n    assertThemeTokensDocumentStructure(input);\n    merged = mergeGroups(merged, input, [], true);\n  }\n  resolveThemeTokens(merged);\n  return merged as ThemeTokens;\n}\n\nconst REQUIRED_SEMANTIC_COLOR_PATHS = [\n  'background',\n  'foreground',\n  'card',\n  'card-foreground',\n  'popover',\n  'popover-foreground',\n  'primary',\n  'primary-foreground',\n  'secondary',\n  'secondary-foreground',\n  'muted',\n  'muted-foreground',\n  'accent',\n  'accent-foreground',\n  'destructive',\n  'destructive-foreground',\n  'success',\n  'success-foreground',\n  'warning',\n  'warning-foreground',\n  'border',\n  'input',\n  'ring',\n  'neocard',\n] as const;\n\n/** The complete semantic surface consumed by Studio and its Kernel surfaces. */\nexport const MONKEYS_REQUIRED_THEME_TOKEN_PATHS: Readonly<Record<string, ThemeTokenType>> = Object.freeze({\n  ...Object.fromEntries(\n    REQUIRED_SEMANTIC_COLOR_PATHS.flatMap((name) => [\n      [`semantic.color.${name}.light`, 'color'],\n      [`semantic.color.${name}.dark`, 'color'],\n    ]),\n  ),\n  'semantic.radius.base': 'dimension',\n  'semantic.spacing.global.compact': 'dimension',\n  'semantic.spacing.global.default': 'dimension',\n  'semantic.spacing.global.comfortable': 'dimension',\n  'semantic.font.body': 'fontFamily',\n});\n\n/** Validate product completeness after all explicitly configured layers merge. */\nexport function assertMonkeysThemeTokensComplete(input: unknown): ThemeTokens {\n  const resolved = resolveThemeTokens(input);\n  const issues: ThemeTokenValidationIssue[] = [];\n  for (const [path, expectedType] of Object.entries(MONKEYS_REQUIRED_THEME_TOKEN_PATHS)) {\n    const token = resolved.tokens.get(path);\n    if (!token) {\n      issues.push({ path: `/${path.replace(/\\./g, '/')}`, message: 'Required Monkeys semantic token is missing.' });\n      continue;\n    }\n    if (token.type !== expectedType) {\n      issues.push({\n        path: `/${path.replace(/\\./g, '/')}`,\n        message: `Required Monkeys semantic token must use type ${expectedType}.`,\n      });\n    }\n  }\n  if (issues.length > 0) {\n    throw new ThemeTokenValidationError('The merged design-token release is incomplete.', issues);\n  }\n  return resolved.document;\n}\n\n/** Optional component semantics; older token documents remain valid. */\nfunction assertBentoTokens(tokens: ReadonlyMap<string, ResolvedThemeToken>): void {\n  const fields: Record<string, ThemeTokenType> = {\n    background: 'color', borderColor: 'color', borderWidth: 'dimension',\n    borderStyle: 'strokeStyle', radius: 'dimension', shadow: 'shadow',\n    padding: 'dimension', gap: 'dimension',\n  };\n  for (const [path, token] of tokens) {\n    if (!path.startsWith('semantic.bento.')) continue;\n    const match = /^semantic\\.bento\\.(?:default|levels\\.level([1-9]\\d*))\\.([a-zA-Z]+)(?:\\.([a-z]+))?$/.exec(path);\n    const field = match?.[2];\n    const axis = match?.[3];\n    const expected = field && fields[field];\n    const modes = field === 'padding' || field === 'gap'\n      ? ['compact', 'default', 'comfortable'] : ['light', 'dark'];\n    if (!match || !expected || token.type !== expected || (axis && !modes.includes(axis))\n      || (match[1] && !Number.isSafeInteger(Number(match[1])))) {\n      throw new ThemeTokenValidationError('Invalid Bento semantic token.', [{ path, message: 'Expected a supported Bento field, type, level and mode.' }]);\n    }\n    if (field === 'borderStyle' && typeof token.value !== 'string') {\n      throw new ThemeTokenValidationError('Invalid Bento border style.', [{ path, message: 'Bento borders require a CSS stroke keyword.' }]);\n    }\n    if (token.type === 'dimension' && (token.value as ThemeDimensionValue).value < 0) {\n      throw new ThemeTokenValidationError('Invalid Bento dimension.', [{ path, message: 'Bento dimensions must be non-negative.' }]);\n    }\n  }\n}\n","{\n  \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n  \"$id\": \"https://www.designtokens.org/schemas/2025.10/format.json\",\n  \"title\": \"DTCG Format Schema\",\n  \"description\": \"JSON Schema for the Design Tokens Community Group (DTCG) Format specification.\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"$schema\": {\n      \"type\": \"string\",\n      \"format\": \"uri-reference\",\n      \"description\": \"URI reference to this JSON schema.\",\n      \"$comment\": \"$schema is not part of the official DTCG specification.\"\n    },\n    \"$type\": {\n      \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/tokenType.json\"\n    },\n    \"$description\": {\n      \"type\": \"string\",\n      \"description\": \"A plain text description of the group\"\n    },\n    \"$extensions\": {\n      \"type\": \"object\",\n      \"description\": \"Vendor-specific extensions\"\n    },\n    \"$extends\": {\n      \"oneOf\": [\n        {\n          \"$ref\": \"#/definitions/curlyBraceReference\"\n        },\n        {\n          \"$ref\": \"#/definitions/jsonPointerReference\"\n        }\n      ],\n      \"description\": \"Reference to another group to inherit tokens and properties from\"\n    },\n    \"$deprecated\": {\n      \"oneOf\": [\n        {\n          \"type\": \"boolean\"\n        },\n        {\n          \"type\": \"string\"\n        }\n      ],\n      \"description\": \"Whether this group is deprecated\"\n    },\n    \"$root\": {\n      \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/token.json\"\n    }\n  },\n  \"patternProperties\": {\n    \"^[^${}.][^{}.]*$\": {\n      \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/groupOrToken.json\"\n    }\n  },\n  \"additionalProperties\": false,\n  \"definitions\": {\n    \"tokenOrGroupName\": {\n      \"title\": \"Token or Group Name\",\n      \"type\": \"string\",\n      \"pattern\": \"^[^${}.][^{}.]*$\",\n      \"description\": \"Valid token/group names: must not start with $ and must not contain {, }, or .\"\n    },\n    \"curlyBraceReference\": {\n      \"title\": \"Curly Brace Reference\",\n      \"type\": \"string\",\n      \"pattern\": \"^\\\\{[^${}.][^{}.]*(\\\\.[^${}.][^{}.]*)*\\\\}$\",\n      \"description\": \"Curly brace reference (e.g., '{tokenName}' or '{group.nested.token}')\"\n    },\n    \"jsonPointerReference\": {\n      \"title\": \"JSON Pointer Reference\",\n      \"type\": \"string\",\n      \"pattern\": \"^#/\",\n      \"format\": \"json-pointer-uri-fragment\",\n      \"description\": \"JSON Pointer reference (RFC 6901) to a location in the document (e.g., '#/path/to/target')\"\n    },\n    \"jsonPointerReferenceObject\": {\n      \"title\": \"JSON Pointer Reference Object\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"$ref\": {\n          \"$ref\": \"#/definitions/jsonPointerReference\"\n        }\n      },\n      \"required\": [\"$ref\"],\n      \"additionalProperties\": false,\n      \"description\": \"Object containing a JSON Pointer reference for property-level references\"\n    },\n    \"tokenValueReference\": {\n      \"title\": \"Token Value Reference\",\n      \"oneOf\": [\n        {\n          \"$ref\": \"#/definitions/curlyBraceReference\"\n        },\n        {\n          \"$ref\": \"#/definitions/jsonPointerReferenceObject\"\n        }\n      ],\n      \"description\": \"A reference to a token value using either curly brace syntax or JSON Pointer syntax\"\n    },\n    \"https://www.designtokens.org/schemas/2025.10/format/tokenType.json\": {\n      \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n      \"$id\": \"https://www.designtokens.org/schemas/2025.10/format/tokenType.json\",\n      \"title\": \"TokenType\",\n      \"description\": \"A token type in the DTCG specification\",\n      \"type\": \"string\",\n      \"enum\": [\n        \"color\",\n        \"dimension\",\n        \"fontFamily\",\n        \"fontWeight\",\n        \"duration\",\n        \"cubicBezier\",\n        \"number\",\n        \"strokeStyle\",\n        \"border\",\n        \"transition\",\n        \"shadow\",\n        \"gradient\",\n        \"typography\"\n      ]\n    },\n    \"https://www.designtokens.org/schemas/2025.10/format/token.json\": {\n      \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n      \"$id\": \"https://www.designtokens.org/schemas/2025.10/format/token.json\",\n      \"title\": \"Token\",\n      \"description\": \"A token in the DTCG specification\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"$value\": {\n          \"description\": \"The token's value - can be a direct value or a reference to another token using curly brace syntax (e.g., '{token.name}'). Mutually exclusive with $ref.\"\n        },\n        \"$type\": {\n          \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/tokenType.json\"\n        },\n        \"$ref\": {\n          \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReference\"\n        },\n        \"$description\": {\n          \"type\": \"string\",\n          \"description\": \"A plain text description of the token\"\n        },\n        \"$extensions\": {\n          \"type\": \"object\",\n          \"description\": \"Vendor-specific extensions\"\n        },\n        \"$deprecated\": {\n          \"oneOf\": [\n            {\n              \"type\": \"boolean\"\n            },\n            {\n              \"type\": \"string\"\n            }\n          ],\n          \"description\": \"Whether this token is deprecated\"\n        }\n      },\n      \"additionalProperties\": false,\n      \"allOf\": [\n        {\n          \"description\": \"Tokens cannot define both $value and $ref; they must choose exactly one form of reference or direct value.\",\n          \"if\": {\n            \"required\": [\"$value\"],\n            \"properties\": {\n              \"$value\": true\n            }\n          },\n          \"then\": {\n            \"not\": {\n              \"required\": [\"$ref\"],\n              \"properties\": {\n                \"$ref\": true\n              }\n            }\n          },\n          \"else\": {\n            \"required\": [\"$ref\"],\n            \"properties\": {\n              \"$ref\": true\n            }\n          }\n        },\n        {\n          \"if\": {\n            \"required\": [\"$type\"],\n            \"properties\": {\n              \"$type\": {\n                \"const\": \"color\"\n              }\n            }\n          },\n          \"then\": {\n            \"properties\": {\n              \"$value\": {\n                \"oneOf\": [\n                  {\n                    \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/color.json\"\n                  },\n                  {\n                    \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference\"\n                  }\n                ]\n              }\n            }\n          }\n        },\n        {\n          \"if\": {\n            \"required\": [\"$type\"],\n            \"properties\": {\n              \"$type\": {\n                \"const\": \"dimension\"\n              }\n            }\n          },\n          \"then\": {\n            \"properties\": {\n              \"$value\": {\n                \"oneOf\": [\n                  {\n                    \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/dimension.json\"\n                  },\n                  {\n                    \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference\"\n                  }\n                ]\n              }\n            }\n          }\n        },\n        {\n          \"if\": {\n            \"required\": [\"$type\"],\n            \"properties\": {\n              \"$type\": {\n                \"const\": \"fontFamily\"\n              }\n            }\n          },\n          \"then\": {\n            \"properties\": {\n              \"$value\": {\n                \"oneOf\": [\n                  {\n                    \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/fontFamily.json\"\n                  },\n                  {\n                    \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference\"\n                  }\n                ]\n              }\n            }\n          }\n        },\n        {\n          \"if\": {\n            \"required\": [\"$type\"],\n            \"properties\": {\n              \"$type\": {\n                \"const\": \"fontWeight\"\n              }\n            }\n          },\n          \"then\": {\n            \"properties\": {\n              \"$value\": {\n                \"oneOf\": [\n                  {\n                    \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/fontWeight.json\"\n                  },\n                  {\n                    \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference\"\n                  }\n                ]\n              }\n            }\n          }\n        },\n        {\n          \"if\": {\n            \"required\": [\"$type\"],\n            \"properties\": {\n              \"$type\": {\n                \"const\": \"duration\"\n              }\n            }\n          },\n          \"then\": {\n            \"properties\": {\n              \"$value\": {\n                \"oneOf\": [\n                  {\n                    \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/duration.json\"\n                  },\n                  {\n                    \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference\"\n                  }\n                ]\n              }\n            }\n          }\n        },\n        {\n          \"if\": {\n            \"required\": [\"$type\"],\n            \"properties\": {\n              \"$type\": {\n                \"const\": \"cubicBezier\"\n              }\n            }\n          },\n          \"then\": {\n            \"properties\": {\n              \"$value\": {\n                \"oneOf\": [\n                  {\n                    \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/cubicBezier.json\"\n                  },\n                  {\n                    \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference\"\n                  }\n                ]\n              }\n            }\n          }\n        },\n        {\n          \"if\": {\n            \"required\": [\"$type\"],\n            \"properties\": {\n              \"$type\": {\n                \"const\": \"number\"\n              }\n            }\n          },\n          \"then\": {\n            \"properties\": {\n              \"$value\": {\n                \"oneOf\": [\n                  {\n                    \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/number.json\"\n                  },\n                  {\n                    \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference\"\n                  }\n                ]\n              }\n            }\n          }\n        },\n        {\n          \"if\": {\n            \"required\": [\"$type\"],\n            \"properties\": {\n              \"$type\": {\n                \"const\": \"strokeStyle\"\n              }\n            }\n          },\n          \"then\": {\n            \"properties\": {\n              \"$value\": {\n                \"oneOf\": [\n                  {\n                    \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/strokeStyle.json\"\n                  },\n                  {\n                    \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference\"\n                  }\n                ]\n              }\n            }\n          }\n        },\n        {\n          \"if\": {\n            \"required\": [\"$type\"],\n            \"properties\": {\n              \"$type\": {\n                \"const\": \"border\"\n              }\n            }\n          },\n          \"then\": {\n            \"properties\": {\n              \"$value\": {\n                \"oneOf\": [\n                  {\n                    \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/border.json\"\n                  },\n                  {\n                    \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference\"\n                  }\n                ]\n              }\n            }\n          }\n        },\n        {\n          \"if\": {\n            \"required\": [\"$type\"],\n            \"properties\": {\n              \"$type\": {\n                \"const\": \"transition\"\n              }\n            }\n          },\n          \"then\": {\n            \"properties\": {\n              \"$value\": {\n                \"oneOf\": [\n                  {\n                    \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/transition.json\"\n                  },\n                  {\n                    \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference\"\n                  }\n                ]\n              }\n            }\n          }\n        },\n        {\n          \"if\": {\n            \"required\": [\"$type\"],\n            \"properties\": {\n              \"$type\": {\n                \"const\": \"shadow\"\n              }\n            }\n          },\n          \"then\": {\n            \"properties\": {\n              \"$value\": {\n                \"oneOf\": [\n                  {\n                    \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/shadow.json\"\n                  },\n                  {\n                    \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference\"\n                  }\n                ]\n              }\n            }\n          }\n        },\n        {\n          \"if\": {\n            \"required\": [\"$type\"],\n            \"properties\": {\n              \"$type\": {\n                \"const\": \"gradient\"\n              }\n            }\n          },\n          \"then\": {\n            \"properties\": {\n              \"$value\": {\n                \"oneOf\": [\n                  {\n                    \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/gradient.json\"\n                  },\n                  {\n                    \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference\"\n                  }\n                ]\n              }\n            }\n          }\n        },\n        {\n          \"if\": {\n            \"required\": [\"$type\"],\n            \"properties\": {\n              \"$type\": {\n                \"const\": \"typography\"\n              }\n            }\n          },\n          \"then\": {\n            \"properties\": {\n              \"$value\": {\n                \"oneOf\": [\n                  {\n                    \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/typography.json\"\n                  },\n                  {\n                    \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference\"\n                  }\n                ]\n              }\n            }\n          }\n        },\n        {\n          \"if\": {\n            \"allOf\": [\n              {\n                \"not\": {\n                  \"required\": [\"$type\"]\n                }\n              },\n              {\n                \"required\": [\"$value\"]\n              },\n              {\n                \"properties\": {\n                  \"$value\": {\n                    \"not\": {\n                      \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference\"\n                    }\n                  }\n                }\n              }\n            ]\n          },\n          \"then\": {\n            \"properties\": {\n              \"$value\": {\n                \"oneOf\": [\n                  {\n                    \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/color.json\"\n                  },\n                  {\n                    \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/dimension.json\"\n                  },\n                  {\n                    \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/fontFamily.json\"\n                  },\n                  {\n                    \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/duration.json\"\n                  },\n                  {\n                    \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/cubicBezier.json\"\n                  },\n                  {\n                    \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/strokeStyle.json\"\n                  },\n                  {\n                    \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/border.json\"\n                  },\n                  {\n                    \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/transition.json\"\n                  },\n                  {\n                    \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/shadow.json\"\n                  },\n                  {\n                    \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/gradient.json\"\n                  },\n                  {\n                    \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/typography.json\"\n                  },\n                  {\n                    \"anyOf\": [\n                      {\n                        \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/number.json\"\n                      },\n                      {\n                        \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/fontWeight.json\"\n                      }\n                    ]\n                  }\n                ]\n              }\n            }\n          }\n        }\n      ]\n    },\n    \"https://www.designtokens.org/schemas/2025.10/format/values/color.json\": {\n      \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n      \"$id\": \"https://www.designtokens.org/schemas/2025.10/format/values/color.json\",\n      \"title\": \"Color Value\",\n      \"description\": \"Value schema for color type tokens. Represents a color in a specific color space.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"colorSpace\": {\n          \"description\": \"The color space or color model used to represent the color\",\n          \"oneOf\": [\n            {\n              \"type\": \"string\",\n              \"enum\": [\n                \"srgb\",\n                \"srgb-linear\",\n                \"hsl\",\n                \"hwb\",\n                \"lab\",\n                \"lch\",\n                \"oklab\",\n                \"oklch\",\n                \"display-p3\",\n                \"a98-rgb\",\n                \"prophoto-rgb\",\n                \"rec2020\",\n                \"xyz-d65\",\n                \"xyz-d50\"\n              ]\n            },\n            {\n              \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReferenceObject\"\n            }\n          ]\n        },\n        \"components\": {\n          \"description\": \"Array of color components. The number and meaning of components depend on the color space. Each component can be a number or the 'none' keyword.\",\n          \"oneOf\": [\n            {\n              \"type\": \"array\"\n            },\n            {\n              \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReferenceObject\"\n            }\n          ]\n        },\n        \"alpha\": {\n          \"description\": \"The alpha (transparency) value of the color. 0 is fully transparent, 1 is fully opaque. If omitted, defaults to 1.\",\n          \"oneOf\": [\n            {\n              \"type\": \"number\",\n              \"minimum\": 0,\n              \"maximum\": 1\n            },\n            {\n              \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReferenceObject\"\n            }\n          ]\n        },\n        \"hex\": {\n          \"description\": \"Optional fallback value in 6-digit CSS hex color notation (e.g., '#ff00ff'). Must be 6 digits to avoid conflicts with the alpha value.\",\n          \"$comment\": \"Only JSON Pointer references (not curly brace references) are allowed for hex because no string token type exists in the specification that could be referenced with curly braces.\",\n          \"oneOf\": [\n            {\n              \"type\": \"string\",\n              \"pattern\": \"^#[0-9a-fA-F]{6}$\"\n            },\n            {\n              \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReferenceObject\"\n            }\n          ]\n        }\n      },\n      \"required\": [\"colorSpace\", \"components\"],\n      \"additionalProperties\": false,\n      \"definitions\": {\n        \"zeroToOneComponent\": {\n          \"title\": \"Zero to One Component\",\n          \"description\": \"A color component normalized to the range [0-1] (e.g., RGB values, XYZ values)\",\n          \"oneOf\": [\n            {\n              \"type\": \"number\",\n              \"minimum\": 0,\n              \"maximum\": 1\n            },\n            {\n              \"type\": \"string\",\n              \"const\": \"none\"\n            },\n            {\n              \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReferenceObject\"\n            }\n          ]\n        },\n        \"hueComponent\": {\n          \"title\": \"Hue Component\",\n          \"description\": \"Hue angle from 0 up to (but not including) 360 degrees\",\n          \"oneOf\": [\n            {\n              \"type\": \"number\",\n              \"minimum\": 0,\n              \"exclusiveMaximum\": 360\n            },\n            {\n              \"type\": \"string\",\n              \"const\": \"none\"\n            },\n            {\n              \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReferenceObject\"\n            }\n          ]\n        },\n        \"percentageComponent\": {\n          \"title\": \"Percentage Component\",\n          \"description\": \"Percentage value from 0 to 100\",\n          \"oneOf\": [\n            {\n              \"type\": \"number\",\n              \"minimum\": 0,\n              \"maximum\": 100\n            },\n            {\n              \"type\": \"string\",\n              \"const\": \"none\"\n            },\n            {\n              \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReferenceObject\"\n            }\n          ]\n        },\n        \"chromaComponent\": {\n          \"title\": \"Chroma Component\",\n          \"description\": \"Chroma value from 0 to infinity\",\n          \"oneOf\": [\n            {\n              \"type\": \"number\",\n              \"minimum\": 0\n            },\n            {\n              \"type\": \"string\",\n              \"const\": \"none\"\n            },\n            {\n              \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReferenceObject\"\n            }\n          ]\n        },\n        \"unboundedComponent\": {\n          \"title\": \"Unbounded Component\",\n          \"description\": \"A color component with no numeric bounds (e.g., A and B in LAB/OKLAB color spaces)\",\n          \"oneOf\": [\n            {\n              \"type\": \"number\"\n            },\n            {\n              \"type\": \"string\",\n              \"const\": \"none\"\n            },\n            {\n              \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReferenceObject\"\n            }\n          ]\n        },\n        \"rgbComponents\": {\n          \"title\": \"RGB Components\",\n          \"description\": \"Array of RGB color components [Red, Green, Blue], each normalized to the range [0-1]\",\n          \"type\": \"array\",\n          \"minItems\": 3,\n          \"maxItems\": 3,\n          \"items\": [\n            {\n              \"$ref\": \"#/definitions/zeroToOneComponent\"\n            },\n            {\n              \"$ref\": \"#/definitions/zeroToOneComponent\"\n            },\n            {\n              \"$ref\": \"#/definitions/zeroToOneComponent\"\n            }\n          ]\n        },\n        \"xyzComponents\": {\n          \"title\": \"XYZ Components\",\n          \"description\": \"Array of XYZ color components [X, Y, Z], each normalized to the range [0-1]\",\n          \"type\": \"array\",\n          \"minItems\": 3,\n          \"maxItems\": 3,\n          \"items\": [\n            {\n              \"$ref\": \"#/definitions/zeroToOneComponent\"\n            },\n            {\n              \"$ref\": \"#/definitions/zeroToOneComponent\"\n            },\n            {\n              \"$ref\": \"#/definitions/zeroToOneComponent\"\n            }\n          ]\n        }\n      },\n      \"allOf\": [\n        {\n          \"if\": {\n            \"properties\": {\n              \"colorSpace\": {\n                \"const\": \"srgb\"\n              },\n              \"components\": {\n                \"type\": \"array\"\n              }\n            }\n          },\n          \"then\": {\n            \"properties\": {\n              \"components\": {\n                \"$ref\": \"#/definitions/rgbComponents\"\n              }\n            }\n          }\n        },\n        {\n          \"if\": {\n            \"properties\": {\n              \"colorSpace\": {\n                \"const\": \"srgb-linear\"\n              },\n              \"components\": {\n                \"type\": \"array\"\n              }\n            }\n          },\n          \"then\": {\n            \"properties\": {\n              \"components\": {\n                \"$ref\": \"#/definitions/rgbComponents\"\n              }\n            }\n          }\n        },\n        {\n          \"if\": {\n            \"properties\": {\n              \"colorSpace\": {\n                \"const\": \"display-p3\"\n              },\n              \"components\": {\n                \"type\": \"array\"\n              }\n            }\n          },\n          \"then\": {\n            \"properties\": {\n              \"components\": {\n                \"$ref\": \"#/definitions/rgbComponents\"\n              }\n            }\n          }\n        },\n        {\n          \"if\": {\n            \"properties\": {\n              \"colorSpace\": {\n                \"const\": \"a98-rgb\"\n              },\n              \"components\": {\n                \"type\": \"array\"\n              }\n            }\n          },\n          \"then\": {\n            \"properties\": {\n              \"components\": {\n                \"$ref\": \"#/definitions/rgbComponents\"\n              }\n            }\n          }\n        },\n        {\n          \"if\": {\n            \"properties\": {\n              \"colorSpace\": {\n                \"const\": \"prophoto-rgb\"\n              },\n              \"components\": {\n                \"type\": \"array\"\n              }\n            }\n          },\n          \"then\": {\n            \"properties\": {\n              \"components\": {\n                \"$ref\": \"#/definitions/rgbComponents\"\n              }\n            }\n          }\n        },\n        {\n          \"if\": {\n            \"properties\": {\n              \"colorSpace\": {\n                \"const\": \"rec2020\"\n              },\n              \"components\": {\n                \"type\": \"array\"\n              }\n            }\n          },\n          \"then\": {\n            \"properties\": {\n              \"components\": {\n                \"$ref\": \"#/definitions/rgbComponents\"\n              }\n            }\n          }\n        },\n        {\n          \"if\": {\n            \"properties\": {\n              \"colorSpace\": {\n                \"const\": \"xyz-d65\"\n              },\n              \"components\": {\n                \"type\": \"array\"\n              }\n            }\n          },\n          \"then\": {\n            \"properties\": {\n              \"components\": {\n                \"$ref\": \"#/definitions/xyzComponents\"\n              }\n            }\n          }\n        },\n        {\n          \"if\": {\n            \"properties\": {\n              \"colorSpace\": {\n                \"const\": \"xyz-d50\"\n              },\n              \"components\": {\n                \"type\": \"array\"\n              }\n            }\n          },\n          \"then\": {\n            \"properties\": {\n              \"components\": {\n                \"$ref\": \"#/definitions/xyzComponents\"\n              }\n            }\n          }\n        },\n        {\n          \"if\": {\n            \"properties\": {\n              \"colorSpace\": {\n                \"const\": \"hsl\"\n              },\n              \"components\": {\n                \"type\": \"array\"\n              }\n            }\n          },\n          \"then\": {\n            \"properties\": {\n              \"components\": {\n                \"type\": \"array\",\n                \"minItems\": 3,\n                \"maxItems\": 3,\n                \"items\": [\n                  {\n                    \"$ref\": \"#/definitions/hueComponent\"\n                  },\n                  {\n                    \"$ref\": \"#/definitions/percentageComponent\"\n                  },\n                  {\n                    \"$ref\": \"#/definitions/percentageComponent\"\n                  }\n                ]\n              }\n            }\n          }\n        },\n        {\n          \"if\": {\n            \"properties\": {\n              \"colorSpace\": {\n                \"const\": \"hwb\"\n              },\n              \"components\": {\n                \"type\": \"array\"\n              }\n            }\n          },\n          \"then\": {\n            \"properties\": {\n              \"components\": {\n                \"type\": \"array\",\n                \"minItems\": 3,\n                \"maxItems\": 3,\n                \"items\": [\n                  {\n                    \"$ref\": \"#/definitions/hueComponent\"\n                  },\n                  {\n                    \"$ref\": \"#/definitions/percentageComponent\"\n                  },\n                  {\n                    \"$ref\": \"#/definitions/percentageComponent\"\n                  }\n                ]\n              }\n            }\n          }\n        },\n        {\n          \"if\": {\n            \"properties\": {\n              \"colorSpace\": {\n                \"const\": \"lab\"\n              },\n              \"components\": {\n                \"type\": \"array\"\n              }\n            }\n          },\n          \"then\": {\n            \"properties\": {\n              \"components\": {\n                \"type\": \"array\",\n                \"minItems\": 3,\n                \"maxItems\": 3,\n                \"items\": [\n                  {\n                    \"$ref\": \"#/definitions/percentageComponent\"\n                  },\n                  {\n                    \"$ref\": \"#/definitions/unboundedComponent\"\n                  },\n                  {\n                    \"$ref\": \"#/definitions/unboundedComponent\"\n                  }\n                ]\n              }\n            }\n          }\n        },\n        {\n          \"if\": {\n            \"properties\": {\n              \"colorSpace\": {\n                \"const\": \"lch\"\n              },\n              \"components\": {\n                \"type\": \"array\"\n              }\n            }\n          },\n          \"then\": {\n            \"properties\": {\n              \"components\": {\n                \"type\": \"array\",\n                \"minItems\": 3,\n                \"maxItems\": 3,\n                \"items\": [\n                  {\n                    \"$ref\": \"#/definitions/percentageComponent\"\n                  },\n                  {\n                    \"$ref\": \"#/definitions/chromaComponent\"\n                  },\n                  {\n                    \"$ref\": \"#/definitions/hueComponent\"\n                  }\n                ]\n              }\n            }\n          }\n        },\n        {\n          \"if\": {\n            \"properties\": {\n              \"colorSpace\": {\n                \"const\": \"oklab\"\n              },\n              \"components\": {\n                \"type\": \"array\"\n              }\n            }\n          },\n          \"then\": {\n            \"properties\": {\n              \"components\": {\n                \"type\": \"array\",\n                \"minItems\": 3,\n                \"maxItems\": 3,\n                \"items\": [\n                  {\n                    \"$ref\": \"#/definitions/zeroToOneComponent\"\n                  },\n                  {\n                    \"$ref\": \"#/definitions/unboundedComponent\"\n                  },\n                  {\n                    \"$ref\": \"#/definitions/unboundedComponent\"\n                  }\n                ]\n              }\n            }\n          }\n        },\n        {\n          \"if\": {\n            \"properties\": {\n              \"colorSpace\": {\n                \"const\": \"oklch\"\n              },\n              \"components\": {\n                \"type\": \"array\"\n              }\n            }\n          },\n          \"then\": {\n            \"properties\": {\n              \"components\": {\n                \"type\": \"array\",\n                \"minItems\": 3,\n                \"maxItems\": 3,\n                \"items\": [\n                  {\n                    \"$ref\": \"#/definitions/zeroToOneComponent\"\n                  },\n                  {\n                    \"$ref\": \"#/definitions/chromaComponent\"\n                  },\n                  {\n                    \"$ref\": \"#/definitions/hueComponent\"\n                  }\n                ]\n              }\n            }\n          }\n        }\n      ]\n    },\n    \"https://www.designtokens.org/schemas/2025.10/format/values/dimension.json\": {\n      \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n      \"$id\": \"https://www.designtokens.org/schemas/2025.10/format/values/dimension.json\",\n      \"title\": \"Dimension Value\",\n      \"description\": \"Value schema for dimension type tokens. Represents an amount of distance in a single dimension in the UI, such as a position, width, height, radius, or thickness.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"value\": {\n          \"description\": \"An integer or floating-point value representing the numeric value.\",\n          \"oneOf\": [\n            {\n              \"type\": \"number\"\n            },\n            {\n              \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReferenceObject\"\n            }\n          ]\n        },\n        \"unit\": {\n          \"description\": \"Unit of distance. Supported values: 'px' (idealized pixel, equivalent to dp on Android and pt on iOS), 'rem' (multiple of system's default font size).\",\n          \"oneOf\": [\n            {\n              \"type\": \"string\",\n              \"enum\": [\"px\", \"rem\"]\n            },\n            {\n              \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReferenceObject\"\n            }\n          ]\n        }\n      },\n      \"required\": [\"value\", \"unit\"],\n      \"additionalProperties\": false\n    },\n    \"https://www.designtokens.org/schemas/2025.10/format/values/fontFamily.json\": {\n      \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n      \"$id\": \"https://www.designtokens.org/schemas/2025.10/format/values/fontFamily.json\",\n      \"title\": \"Font Family Value\",\n      \"description\": \"Value schema for fontFamily type tokens. Represents a font name or an array of font names (ordered from most to least preferred).\",\n      \"oneOf\": [\n        {\n          \"type\": \"string\",\n          \"description\": \"A single font name\",\n          \"not\": {\n            \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/curlyBraceReference\"\n          }\n        },\n        {\n          \"type\": \"array\",\n          \"description\": \"An array of font names, ordered from most to least preferred\",\n          \"items\": {\n            \"oneOf\": [\n              {\n                \"type\": \"string\",\n                \"not\": {\n                  \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/curlyBraceReference\"\n                }\n              },\n              {\n                \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReferenceObject\"\n              }\n            ]\n          },\n          \"minItems\": 1\n        }\n      ]\n    },\n    \"https://www.designtokens.org/schemas/2025.10/format/values/fontWeight.json\": {\n      \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n      \"$id\": \"https://www.designtokens.org/schemas/2025.10/format/values/fontWeight.json\",\n      \"title\": \"Font Weight Value\",\n      \"description\": \"Value schema for fontWeight type tokens. Represents a font weight as per the OpenType wght tag specification. Lower numbers represent lighter weights, higher numbers represent thicker weights.\",\n      \"oneOf\": [\n        {\n          \"type\": \"number\",\n          \"description\": \"Numeric font weight value\",\n          \"minimum\": 1,\n          \"maximum\": 1000\n        },\n        {\n          \"type\": \"string\",\n          \"description\": \"Pre-defined font weight string value\",\n          \"enum\": [\n            \"thin\",\n            \"hairline\",\n            \"extra-light\",\n            \"ultra-light\",\n            \"light\",\n            \"normal\",\n            \"regular\",\n            \"book\",\n            \"medium\",\n            \"semi-bold\",\n            \"demi-bold\",\n            \"bold\",\n            \"extra-bold\",\n            \"ultra-bold\",\n            \"black\",\n            \"heavy\",\n            \"extra-black\",\n            \"ultra-black\"\n          ]\n        }\n      ]\n    },\n    \"https://www.designtokens.org/schemas/2025.10/format/values/duration.json\": {\n      \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n      \"$id\": \"https://www.designtokens.org/schemas/2025.10/format/values/duration.json\",\n      \"title\": \"Duration Value\",\n      \"description\": \"Value schema for duration type tokens. Represents the length of time in milliseconds an animation or animation cycle takes to complete.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"value\": {\n          \"description\": \"An integer or floating-point value representing the numeric value.\",\n          \"oneOf\": [\n            {\n              \"type\": \"number\"\n            },\n            {\n              \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReferenceObject\"\n            }\n          ]\n        },\n        \"unit\": {\n          \"description\": \"Unit of time. Supported values: 'ms' (millisecond), 's' (second).\",\n          \"oneOf\": [\n            {\n              \"type\": \"string\",\n              \"enum\": [\"ms\", \"s\"]\n            },\n            {\n              \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReferenceObject\"\n            }\n          ]\n        }\n      },\n      \"required\": [\"value\", \"unit\"],\n      \"additionalProperties\": false\n    },\n    \"https://www.designtokens.org/schemas/2025.10/format/values/cubicBezier.json\": {\n      \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n      \"$id\": \"https://www.designtokens.org/schemas/2025.10/format/values/cubicBezier.json\",\n      \"title\": \"Cubic Bezier Value\",\n      \"description\": \"Value schema for cubicBezier type tokens. Represents how the value of an animated property progresses towards completion over the duration of an animation, effectively creating visual effects such as acceleration, deceleration, and bounce.\",\n      \"type\": \"array\",\n      \"items\": [\n        {\n          \"$ref\": \"#/definitions/xCoordinate\"\n        },\n        {\n          \"$ref\": \"#/definitions/yCoordinate\"\n        },\n        {\n          \"$ref\": \"#/definitions/xCoordinate\"\n        },\n        {\n          \"$ref\": \"#/definitions/yCoordinate\"\n        }\n      ],\n      \"additionalItems\": false,\n      \"minItems\": 4,\n      \"maxItems\": 4,\n      \"definitions\": {\n        \"xCoordinate\": {\n          \"title\": \"X Coordinate\",\n          \"description\": \"X coordinate of control point (must be between 0 and 1)\",\n          \"oneOf\": [\n            {\n              \"type\": \"number\",\n              \"minimum\": 0,\n              \"maximum\": 1\n            },\n            {\n              \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReferenceObject\"\n            }\n          ]\n        },\n        \"yCoordinate\": {\n          \"title\": \"Y Coordinate\",\n          \"description\": \"Y coordinate of control point (can be any real number)\",\n          \"oneOf\": [\n            {\n              \"type\": \"number\"\n            },\n            {\n              \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReferenceObject\"\n            }\n          ]\n        }\n      }\n    },\n    \"https://www.designtokens.org/schemas/2025.10/format/values/number.json\": {\n      \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n      \"$id\": \"https://www.designtokens.org/schemas/2025.10/format/values/number.json\",\n      \"title\": \"Number Value\",\n      \"description\": \"Value schema for number type tokens. Numbers can be positive, negative and have fractions. Example uses are gradient stop positions or unitless line heights.\",\n      \"type\": \"number\"\n    },\n    \"https://www.designtokens.org/schemas/2025.10/format/values/strokeStyle.json\": {\n      \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n      \"$id\": \"https://www.designtokens.org/schemas/2025.10/format/values/strokeStyle.json\",\n      \"title\": \"Stroke Style Value\",\n      \"description\": \"Value schema for strokeStyle type tokens. Represents the style applied to lines or borders.\",\n      \"oneOf\": [\n        {\n          \"type\": \"string\",\n          \"enum\": [\n            \"solid\",\n            \"dashed\",\n            \"dotted\",\n            \"double\",\n            \"groove\",\n            \"ridge\",\n            \"outset\",\n            \"inset\"\n          ],\n          \"description\": \"Pre-defined stroke style values with the same meaning as CSS line style values\"\n        },\n        {\n          \"type\": \"object\",\n          \"properties\": {\n            \"dashArray\": {\n              \"description\": \"Array of dimension values specifying lengths of alternating dashes and gaps\",\n              \"oneOf\": [\n                {\n                  \"type\": \"array\",\n                  \"items\": {\n                    \"oneOf\": [\n                      {\n                        \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/dimension.json\"\n                      },\n                      {\n                        \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference\"\n                      }\n                    ]\n                  },\n                  \"minItems\": 1\n                },\n                {\n                  \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReferenceObject\"\n                }\n              ]\n            },\n            \"lineCap\": {\n              \"description\": \"Line cap style, same meaning as SVG stroke-linecap attribute\",\n              \"oneOf\": [\n                {\n                  \"type\": \"string\",\n                  \"enum\": [\"round\", \"butt\", \"square\"]\n                },\n                {\n                  \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReferenceObject\"\n                }\n              ]\n            }\n          },\n          \"required\": [\"dashArray\", \"lineCap\"],\n          \"additionalProperties\": false\n        }\n      ]\n    },\n    \"https://www.designtokens.org/schemas/2025.10/format/values/border.json\": {\n      \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n      \"$id\": \"https://www.designtokens.org/schemas/2025.10/format/values/border.json\",\n      \"title\": \"Border Value\",\n      \"description\": \"Value schema for border type tokens. Represents a border style.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"color\": {\n          \"description\": \"The color of the border\",\n          \"oneOf\": [\n            {\n              \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/color.json\"\n            },\n            {\n              \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference\"\n            }\n          ]\n        },\n        \"width\": {\n          \"description\": \"The width or thickness of the border\",\n          \"oneOf\": [\n            {\n              \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/dimension.json\"\n            },\n            {\n              \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference\"\n            }\n          ]\n        },\n        \"style\": {\n          \"description\": \"The border's style\",\n          \"oneOf\": [\n            {\n              \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/strokeStyle.json\"\n            },\n            {\n              \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference\"\n            }\n          ]\n        }\n      },\n      \"required\": [\"color\", \"width\", \"style\"],\n      \"additionalProperties\": false\n    },\n    \"https://www.designtokens.org/schemas/2025.10/format/values/transition.json\": {\n      \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n      \"$id\": \"https://www.designtokens.org/schemas/2025.10/format/values/transition.json\",\n      \"title\": \"Transition Value\",\n      \"description\": \"Value schema for transition type tokens. Represents an animated transition between two states.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"duration\": {\n          \"description\": \"The duration of the transition\",\n          \"oneOf\": [\n            {\n              \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/duration.json\"\n            },\n            {\n              \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference\"\n            }\n          ]\n        },\n        \"delay\": {\n          \"description\": \"The time to wait before the transition begins\",\n          \"oneOf\": [\n            {\n              \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/duration.json\"\n            },\n            {\n              \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference\"\n            }\n          ]\n        },\n        \"timingFunction\": {\n          \"description\": \"The timing function of the transition\",\n          \"oneOf\": [\n            {\n              \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/cubicBezier.json\"\n            },\n            {\n              \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference\"\n            }\n          ]\n        }\n      },\n      \"required\": [\"duration\", \"delay\", \"timingFunction\"],\n      \"additionalProperties\": false\n    },\n    \"https://www.designtokens.org/schemas/2025.10/format/values/shadow.json\": {\n      \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n      \"$id\": \"https://www.designtokens.org/schemas/2025.10/format/values/shadow.json\",\n      \"title\": \"Shadow Value\",\n      \"description\": \"Value schema for shadow type tokens. Represents a shadow style.\",\n      \"oneOf\": [\n        {\n          \"$ref\": \"#/definitions/shadowObject\"\n        },\n        {\n          \"type\": \"array\",\n          \"description\": \"Array of shadow objects and/or references to shadow tokens\",\n          \"items\": {\n            \"oneOf\": [\n              {\n                \"$ref\": \"#/definitions/shadowObject\"\n              },\n              {\n                \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference\"\n              }\n            ]\n          },\n          \"minItems\": 1\n        }\n      ],\n      \"definitions\": {\n        \"shadowObject\": {\n          \"title\": \"Shadow Object\",\n          \"type\": \"object\",\n          \"properties\": {\n            \"color\": {\n              \"description\": \"The color of the shadow\",\n              \"oneOf\": [\n                {\n                  \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/color.json\"\n                },\n                {\n                  \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference\"\n                }\n              ]\n            },\n            \"offsetX\": {\n              \"description\": \"The horizontal offset that shadow has from the element it is applied to\",\n              \"oneOf\": [\n                {\n                  \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/dimension.json\"\n                },\n                {\n                  \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference\"\n                }\n              ]\n            },\n            \"offsetY\": {\n              \"description\": \"The vertical offset that shadow has from the element it is applied to\",\n              \"oneOf\": [\n                {\n                  \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/dimension.json\"\n                },\n                {\n                  \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference\"\n                }\n              ]\n            },\n            \"blur\": {\n              \"description\": \"The blur radius that is applied to the shadow\",\n              \"oneOf\": [\n                {\n                  \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/dimension.json\"\n                },\n                {\n                  \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference\"\n                }\n              ]\n            },\n            \"spread\": {\n              \"description\": \"The amount by which to expand or contract the shadow\",\n              \"oneOf\": [\n                {\n                  \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/dimension.json\"\n                },\n                {\n                  \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference\"\n                }\n              ]\n            },\n            \"inset\": {\n              \"description\": \"Whether this shadow is inside the containing shape (inner shadow) rather than a drop shadow (default: false)\",\n              \"oneOf\": [\n                {\n                  \"type\": \"boolean\"\n                },\n                {\n                  \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReferenceObject\"\n                }\n              ]\n            }\n          },\n          \"required\": [\"color\", \"offsetX\", \"offsetY\", \"blur\", \"spread\"],\n          \"additionalProperties\": false\n        }\n      }\n    },\n    \"https://www.designtokens.org/schemas/2025.10/format/values/gradient.json\": {\n      \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n      \"$id\": \"https://www.designtokens.org/schemas/2025.10/format/values/gradient.json\",\n      \"title\": \"Gradient Value\",\n      \"description\": \"Value schema for gradient type tokens. Represents a color gradient.\",\n      \"type\": \"array\",\n      \"items\": {\n        \"oneOf\": [\n          {\n            \"$ref\": \"#/definitions/gradientStop\"\n          },\n          {\n            \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference\"\n          }\n        ]\n      },\n      \"minItems\": 1,\n      \"definitions\": {\n        \"gradientStop\": {\n          \"title\": \"Gradient Stop\",\n          \"type\": \"object\",\n          \"properties\": {\n            \"color\": {\n              \"description\": \"The color value at the stop's position on the gradient\",\n              \"oneOf\": [\n                {\n                  \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/color.json\"\n                },\n                {\n                  \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference\"\n                }\n              ]\n            },\n            \"position\": {\n              \"description\": \"The position of the stop along the gradient's axis (range [0, 1]). Values outside this range are clamped.\",\n              \"oneOf\": [\n                {\n                  \"type\": \"number\",\n                  \"minimum\": 0,\n                  \"maximum\": 1\n                },\n                {\n                  \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference\"\n                }\n              ]\n            }\n          },\n          \"required\": [\"color\", \"position\"],\n          \"additionalProperties\": false\n        }\n      }\n    },\n    \"https://www.designtokens.org/schemas/2025.10/format/values/typography.json\": {\n      \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n      \"$id\": \"https://www.designtokens.org/schemas/2025.10/format/values/typography.json\",\n      \"title\": \"Typography Value\",\n      \"description\": \"Value schema for typography type tokens. Represents a typographic style.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"fontFamily\": {\n          \"description\": \"The typography's font\",\n          \"oneOf\": [\n            {\n              \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/fontFamily.json\"\n            },\n            {\n              \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference\"\n            }\n          ]\n        },\n        \"fontSize\": {\n          \"description\": \"The size of the typography\",\n          \"oneOf\": [\n            {\n              \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/dimension.json\"\n            },\n            {\n              \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference\"\n            }\n          ]\n        },\n        \"fontWeight\": {\n          \"description\": \"The weight of the typography\",\n          \"oneOf\": [\n            {\n              \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/fontWeight.json\"\n            },\n            {\n              \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference\"\n            }\n          ]\n        },\n        \"letterSpacing\": {\n          \"description\": \"The horizontal spacing between characters\",\n          \"oneOf\": [\n            {\n              \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/dimension.json\"\n            },\n            {\n              \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference\"\n            }\n          ]\n        },\n        \"lineHeight\": {\n          \"description\": \"The vertical spacing between lines of typography (interpreted as a multiplier of fontSize)\",\n          \"oneOf\": [\n            {\n              \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/values/number.json\"\n            },\n            {\n              \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference\"\n            }\n          ]\n        }\n      },\n      \"required\": [\n        \"fontFamily\",\n        \"fontSize\",\n        \"fontWeight\",\n        \"letterSpacing\",\n        \"lineHeight\"\n      ],\n      \"additionalProperties\": false\n    },\n    \"https://www.designtokens.org/schemas/2025.10/format/groupOrToken.json\": {\n      \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n      \"$id\": \"https://www.designtokens.org/schemas/2025.10/format/groupOrToken.json\",\n      \"title\": \"Group or Token\",\n      \"description\": \"A group or a token in the DTCG specification. A token is identified by the presence of a $value property, while a group is any object without a $value property.\",\n      \"oneOf\": [\n        {\n          \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/group.json\"\n        },\n        {\n          \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/token.json\"\n        }\n      ]\n    },\n    \"https://www.designtokens.org/schemas/2025.10/format/group.json\": {\n      \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n      \"$id\": \"https://www.designtokens.org/schemas/2025.10/format/group.json\",\n      \"title\": \"Group\",\n      \"description\": \"A group in the DTCG specification\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"$type\": {\n          \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/tokenType.json\"\n        },\n        \"$description\": {\n          \"type\": \"string\",\n          \"description\": \"A plain text description of the group\"\n        },\n        \"$extensions\": {\n          \"type\": \"object\",\n          \"description\": \"Vendor-specific extensions\"\n        },\n        \"$extends\": {\n          \"oneOf\": [\n            {\n              \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/curlyBraceReference\"\n            },\n            {\n              \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReference\"\n            }\n          ],\n          \"description\": \"Reference to another group to inherit tokens and properties from\"\n        },\n        \"$deprecated\": {\n          \"oneOf\": [\n            {\n              \"type\": \"boolean\"\n            },\n            {\n              \"type\": \"string\"\n            }\n          ],\n          \"description\": \"Whether this group is deprecated\"\n        },\n        \"$root\": {\n          \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/token.json\"\n        }\n      },\n      \"patternProperties\": {\n        \"^[^${}.][^{}.]*$\": {\n          \"$ref\": \"https://www.designtokens.org/schemas/2025.10/format/groupOrToken.json\"\n        }\n      },\n      \"additionalProperties\": false\n    }\n  }\n}\n","import { z } from 'zod';\nimport {\n  THEME_TOKEN_TYPES,\n  validateThemeTokensDocument,\n  validateThemeTokensDocumentStructure,\n  type ResolvedThemeToken,\n  type ResolvedThemeTokens,\n  type ThemeColorValue,\n  type ThemeDimensionValue,\n  type ThemeDurationValue,\n  type ThemeToken,\n  type ThemeTokenDeprecated,\n  type ThemeTokenExtensions,\n  type ThemeTokenGroup,\n  type ThemeTokenReference,\n  type ThemeTokens,\n  type ThemeTokenType,\n  type ThemeTokenValidationIssue,\n} from '../theme-tokens/core';\n\nexport const ThemeTokenTypeSchema = z.enum(THEME_TOKEN_TYPES);\n\nexport const ThemeTokenSchema = z.record(z.string(), z.unknown()).superRefine((input, context) => {\n  const issues = validateThemeTokensDocumentStructure({ token: input });\n  for (const issue of issues) {\n    context.addIssue({ code: 'custom', message: `${issue.path} ${issue.message}` });\n  }\n});\n\nexport const ThemeTokenGroupSchema = z.record(z.string(), z.unknown()).superRefine((input, context) => {\n  const issues = validateThemeTokensDocumentStructure(input);\n  for (const issue of issues) {\n    context.addIssue({ code: 'custom', message: `${issue.path} ${issue.message}` });\n  }\n});\n\n/**\n * A complete Design Tokens Community Group 2025.10 token document.\n *\n * The document root is the DTCG group/token tree itself. Tenant identity,\n * source paths, feature flags and runtime options deliberately live outside it.\n */\nexport const ThemeTokensSchema: z.ZodType<ThemeTokens> = z\n  .record(z.string(), z.unknown())\n  .superRefine((input, context) => {\n    const issues = validateThemeTokensDocument(input);\n    for (const issue of issues) {\n      context.addIssue({ code: 'custom', message: `${issue.path} ${issue.message}` });\n    }\n  });\n\nconst unresolvedReference = /^\\{[^{}]+\\}$/;\n\n/** A browser-safe DTCG document whose aliases and JSON Pointer references have already been materialized. */\nexport const ResolvedThemeTokensSchema: z.ZodType<ThemeTokens> = ThemeTokensSchema.superRefine((input, context) => {\n  const visit = (value: unknown, path: (string | number)[]): void => {\n    if (typeof value === 'string' && unresolvedReference.test(value)) {\n      context.addIssue({ code: 'custom', path, message: 'Resolved theme tokens cannot contain token aliases.' });\n      return;\n    }\n    if (Array.isArray(value)) {\n      value.forEach((item, index) => visit(item, [...path, index]));\n      return;\n    }\n    if (!value || typeof value !== 'object') return;\n    for (const [key, child] of Object.entries(value as Record<string, unknown>)) {\n      if (key === '$ref') context.addIssue({ code: 'custom', path: [...path, key], message: 'Resolved theme tokens cannot contain $ref.' });\n      visit(child, [...path, key]);\n    }\n  };\n  visit(input, []);\n});\n\nexport type {\n  ResolvedThemeToken,\n  ResolvedThemeTokens,\n  ThemeColorValue,\n  ThemeDimensionValue,\n  ThemeDurationValue,\n  ThemeToken,\n  ThemeTokenDeprecated,\n  ThemeTokenExtensions,\n  ThemeTokenGroup,\n  ThemeTokenReference,\n  ThemeTokens,\n  ThemeTokenType,\n  ThemeTokenValidationIssue,\n};\n","import { z } from 'zod';\nimport { AgentWorkbenchSidebarConfigSchema } from './agent';\nimport { ContractIdentifierSchema, JsonObjectSchema, LocaleIdentifierSchema, LocalizedTextSchema } from './common';\nimport { MenuDefinitionSetSchema, MenuRuntimeBundleSchema } from './menu';\nimport { PageDefinitionSchema } from './page';\nimport { ResolvedThemeTokensSchema, ThemeTokensSchema } from './theme';\n\nconst DesignTokenFileSourceSchema = z\n  .object({\n    type: z.literal('file'),\n    path: z\n      .string()\n      .trim()\n      .min(1)\n      .superRefine((source, context) => {\n        const isWindowsDrivePath = /^[a-z]:[\\\\/]/i.test(source);\n        if (!isWindowsDrivePath && /^[a-z][a-z\\d+.-]*:/i.test(source)) {\n          context.addIssue({\n            code: 'custom',\n            message: 'Design token file sources must use local file paths.',\n          });\n        }\n      }),\n  })\n  .strict();\n\nconst DesignTokenUrlSourceSchema = z\n  .object({\n    type: z.literal('url'),\n    url: z\n      .string()\n      .trim()\n      .min(1)\n      .superRefine((source, context) => {\n        if (!/^https?:\\/\\//i.test(source)) {\n          context.addIssue({\n            code: 'custom',\n            message: 'Design token URL sources must use HTTP(S).',\n          });\n        }\n      }),\n  })\n  .strict();\n\nconst DesignTokenInlineSourceSchema = z\n  .object({\n    type: z.literal('inline'),\n    document: ThemeTokensSchema,\n  })\n  .strict();\n\n/** One explicitly ordered input to the tenant design-token release. */\nexport const DesignTokenSourceSchema = z.discriminatedUnion('type', [DesignTokenFileSourceSchema, DesignTokenUrlSourceSchema, DesignTokenInlineSourceSchema]);\n\nexport const TenantDesignTokensConfigSchema = z\n  .object({\n    /** Ordered tenant overrides. The backend always applies the product default first. */\n    tokenSources: z.array(DesignTokenSourceSchema),\n  })\n  .strict();\n\n/** Browser-safe reference to an authentication provider and its public policy. */\nexport const TenantAuthBindingSchema = z\n  .object({\n    kind: z.literal('auth-provider'),\n    providerId: ContractIdentifierSchema,\n    policyRef: ContractIdentifierSchema.optional(),\n  })\n  .strict();\n\n/** Browser-safe reference to a data provider or an owned projection. */\nexport const TenantDataBindingSchema = z.discriminatedUnion('kind', [\n  z\n    .object({\n      kind: z.literal('data-provider'),\n      providerId: ContractIdentifierSchema,\n      domainRef: ContractIdentifierSchema.optional(),\n    })\n    .strict(),\n  z\n    .object({\n      kind: z.literal('projection'),\n      projectionRef: ContractIdentifierSchema,\n      domainRef: ContractIdentifierSchema.optional(),\n    })\n    .strict(),\n]);\n\nexport const TenantAuthBindingsSchema = z.record(ContractIdentifierSchema, TenantAuthBindingSchema);\n\nexport const TenantDataBindingsSchema = z.record(ContractIdentifierSchema, TenantDataBindingSchema);\n\n/** Browser-safe identity of one governed Ontology View used by Trend Radar. */\nexport const TenantTrendRadarSourceSchema = z\n  .object({\n    ontologyId: ContractIdentifierSchema,\n    viewId: ContractIdentifierSchema,\n  })\n  .strict();\n\n/** Browser-safe identity of the Team-scoped flat collection used by Trend Radar. */\nexport const TenantTrendRadarCollectionTargetSchema = z\n  .object({\n    ontologyId: ContractIdentifierSchema,\n  })\n  .strict();\n\n/** Browser-safe binding to the Workflow used for governed Trend Radar evaluation. */\nexport const TenantTrendRadarEvaluationSchema = z\n  .object({\n    workflowId: ContractIdentifierSchema,\n  })\n  .strict();\n\n/** Browser-safe bindings from Trend Radar metric roles to existing derived Feature Columns. */\nexport const TenantTrendRadarDerivedMetricsSchema = z\n  .object({\n    productCountFieldKey: ContractIdentifierSchema,\n    salesValueCountFieldKey: ContractIdentifierSchema,\n    salesSumFieldKey: ContractIdentifierSchema,\n  })\n  .strict()\n  .refine(\n    ({ productCountFieldKey, salesValueCountFieldKey, salesSumFieldKey }) =>\n      new Set([productCountFieldKey, salesValueCountFieldKey, salesSumFieldKey]).size === 3,\n    { message: 'Trend Radar derived metric Field Keys must be distinct.' },\n  );\n\n/** Page-group source, collection, derived metric and evaluation registry; roles are optional to support staged deployment. */\nexport const TenantTrendRadarSourcesSchema = z\n  .object({\n    products: TenantTrendRadarSourceSchema.optional(),\n    hotwords: TenantTrendRadarSourceSchema.optional(),\n    brands: TenantTrendRadarSourceSchema.optional(),\n    collection: TenantTrendRadarCollectionTargetSchema.optional(),\n    derivedMetrics: TenantTrendRadarDerivedMetricsSchema.optional(),\n    evaluation: TenantTrendRadarEvaluationSchema.optional(),\n  })\n  .strict();\n\nconst AssetVariantsSchema = z\n  .object({\n    light: z.string().optional(),\n    dark: z.string().optional(),\n  })\n  .strict();\n\nexport const TenantAgentThemeConfigSchema = z\n  .object({\n    logo: AssetVariantsSchema.optional(),\n    brandDisplayMode: z.enum(['auto', 'logo-only', 'logo-name', 'name-only']).optional(),\n    density: z.enum(['compact', 'default', 'comfortable']).optional(),\n    sidebar: AgentWorkbenchSidebarConfigSchema.optional(),\n    /** @deprecated Use sidebar.navigationMode. */\n    navigationMode: z.enum(['default', 'session', 'trend']).optional(),\n    /** @deprecated Use sidebar.quickStartEnabled. */\n    quickStartEnabled: z.boolean().optional(),\n  })\n  .strict();\n\nexport const LEGACY_CURRENT_USER_MENU_ITEM_IDS = ['dark-mode', 'language', 'settings', 'logout'] as const;\nexport const CURRENT_USER_MENU_CONTROL_REFS = ['dark-mode', 'language'] as const;\nexport const CURRENT_USER_MENU_ACTION_REFS = ['logout'] as const;\n\nconst CurrentUserMenuIdentifierSchema = z\n  .string()\n  .trim()\n  .regex(/^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$/, 'Expected a stable current-user menu identifier.');\n\nexport const CurrentUserMenuDisplayTextSchema = z.union([\n  z.string().trim().min(1),\n  z.record(z.string().trim().min(1), z.string().trim().min(1)).refine((value) => Object.keys(value).length > 0, 'Localized menu text must contain at least one locale.'),\n]);\n\nexport const CurrentUserMenuNavigationItemSchema = z\n  .object({\n    id: CurrentUserMenuIdentifierSchema,\n    kind: z.literal('navigation'),\n    ref: CurrentUserMenuIdentifierSchema,\n  })\n  .strict();\n\nexport const CurrentUserMenuControlItemSchema = z\n  .object({\n    id: CurrentUserMenuIdentifierSchema,\n    kind: z.literal('control'),\n    ref: z.enum(CURRENT_USER_MENU_CONTROL_REFS),\n  })\n  .strict();\n\nexport const CurrentUserMenuActionItemSchema = z\n  .object({\n    id: CurrentUserMenuIdentifierSchema,\n    kind: z.literal('action'),\n    ref: z.enum(CURRENT_USER_MENU_ACTION_REFS),\n    tone: z.enum(['default', 'danger']).optional(),\n  })\n  .strict();\n\nexport const CurrentUserMenuItemSchema = z.discriminatedUnion('kind', [CurrentUserMenuNavigationItemSchema, CurrentUserMenuControlItemSchema, CurrentUserMenuActionItemSchema]);\n\nexport const CurrentUserMenuSectionSchema = z\n  .object({\n    id: CurrentUserMenuIdentifierSchema,\n    label: CurrentUserMenuDisplayTextSchema.optional(),\n    dividerBefore: z.boolean().optional(),\n    items: z.array(CurrentUserMenuItemSchema),\n  })\n  .strict();\n\nexport const CurrentUserMenuConfigSchema = z\n  .object({\n    version: z.literal(1),\n    sections: z.array(CurrentUserMenuSectionSchema).max(20),\n  })\n  .strict()\n  .superRefine((value, context) => {\n    const sectionIds = new Set<string>();\n    const itemIds = new Set<string>();\n    let itemCount = 0;\n\n    value.sections.forEach((section, sectionIndex) => {\n      if (sectionIds.has(section.id)) {\n        context.addIssue({\n          code: 'custom',\n          message: `Duplicate current-user menu section id ${section.id}.`,\n          path: ['sections', sectionIndex, 'id'],\n        });\n      }\n      sectionIds.add(section.id);\n      itemCount += section.items.length;\n\n      section.items.forEach((item, itemIndex) => {\n        if (itemIds.has(item.id)) {\n          context.addIssue({\n            code: 'custom',\n            message: `Duplicate current-user menu item id ${item.id}.`,\n            path: ['sections', sectionIndex, 'items', itemIndex, 'id'],\n          });\n        }\n        itemIds.add(item.id);\n      });\n    });\n\n    if (itemCount > 100) {\n      context.addIssue({\n        code: 'custom',\n        message: 'Current-user menu supports at most 100 items.',\n        path: ['sections'],\n      });\n    }\n  });\n\nconst LegacyCurrentUserMenuProfileSchema = z.array(z.enum(LEGACY_CURRENT_USER_MENU_ITEM_IDS)).superRefine((value, context) => {\n  const seen = new Set<string>();\n  value.forEach((item, index) => {\n    if (seen.has(item)) {\n      context.addIssue({\n        code: 'custom',\n        message: `Duplicate legacy current-user menu item ${item}.`,\n        path: [index],\n      });\n    }\n    seen.add(item);\n  });\n});\n\n/** Backward-compatible current-user menu composition stored under theme.headbar.profile. */\nexport const CurrentUserMenuProfileSchema = z.union([z.literal('*'), LegacyCurrentUserMenuProfileSchema, CurrentUserMenuConfigSchema]);\n\nexport const ThemeHeadbarSchema = z\n  .object({\n    theme: z.enum(['card', 'glassy', 'ghost']).optional(),\n    navPosition: z.enum(['left', 'center', 'right']).optional(),\n    actions: z.union([z.literal('*'), z.array(ContractIdentifierSchema)]).optional(),\n    profile: CurrentUserMenuProfileSchema.optional(),\n    showTeamQuota: z.boolean().optional(),\n  })\n  .strict();\n\nconst TenantHeadbarModuleLeafSchema = z\n  .object({\n    id: ContractIdentifierSchema,\n    extraInfo: z.boolean().optional(),\n    displayName: z.union([z.string(), z.record(LocaleIdentifierSchema, z.string())]).optional(),\n    visible: z.boolean().optional(),\n    disabled: z.boolean().optional(),\n    icon: z.string().optional(),\n    showQuickSwitcher: z.boolean().optional(),\n    showSidebar: z.boolean().optional(),\n    showContentFrame: z.boolean().optional(),\n  })\n  .strict();\n\n/**\n * One configurable HeadBar navigation entry.\n *\n * Children intentionally stop at one level: the shared HeadBar renders a menu,\n * not an arbitrary navigation tree. Studio maps the workbench list to these\n * children when the tenant selects dropdown mode, or flattens the same list in\n * tabs mode.\n */\nexport const TenantHeadbarModuleItemSchema = TenantHeadbarModuleLeafSchema.extend({\n  children: z.array(TenantHeadbarModuleLeafSchema).optional(),\n}).strict();\n\nconst KernelHeadbarSchema = z\n  .object({\n    theme: z.literal('card').optional(),\n    layoutMode: z.enum(['boxed', 'full-bleed']).optional(),\n    heightPx: z.number().positive().optional(),\n    navPosition: z.enum(['left', 'center', 'right']).optional(),\n    brandTitle: z.string().optional(),\n    menuRadius: z.enum(['default', 'none', 'sm', 'md', 'lg', 'xl', 'full']).optional(),\n  })\n  .strict();\n\nconst CustomIconSchema = z\n  .object({\n    color: z.string().optional(),\n    url: z.string().optional(),\n    type: z.enum(['svg', 'image']).optional(),\n    hintTextColor: z.string().optional(),\n  })\n  .strict();\n\nconst WorkbenchCustomerToolSchema = z\n  .object({\n    id: ContractIdentifierSchema,\n    label: z.union([z.string(), z.record(LocaleIdentifierSchema, z.string())]).optional(),\n    fixed: z.boolean().optional(),\n  })\n  .strict();\n\nconst WorkbenchStudioOverrideSchema = z\n  .object({\n    studioName: z.string().trim().min(1),\n    dropdownToolsDefault: z.array(ContractIdentifierSchema).optional(),\n    existingToolsDefault: z.array(ContractIdentifierSchema).optional(),\n    historyColumnsDefault: z.number().int().min(1).max(6).optional(),\n  })\n  .strict();\n\nexport const TenantWorkbenchPageContextSchema = z\n  .object({\n    workflow: JsonObjectSchema.optional(),\n    agent: JsonObjectSchema.optional(),\n    agentId: ContractIdentifierSchema.optional(),\n    designProject: JsonObjectSchema.optional(),\n    designMetadataId: ContractIdentifierSchema.optional(),\n    iframeUrl: z.string().trim().min(1).optional(),\n    info: z\n      .object({\n        displayName: LocalizedTextSchema.optional(),\n        description: LocalizedTextSchema.optional(),\n        iconUrl: z.string().trim().min(1).optional(),\n      })\n      .strict()\n      .optional(),\n    isBuiltinPinned: z.boolean().optional(),\n    isBuiltinReadonly: z.boolean().optional(),\n  })\n  .strict();\n\n/**\n * Tenant-declared workbench pages use the same canonical declaration envelope\n * as server-owned pinned pages. Context is provider input only; renderer and\n * capability identity must live in the PageDefinition.\n */\nexport const TenantWorkbenchPageEnvelopeSchema = z\n  .object({\n    definition: PageDefinitionSchema,\n    context: TenantWorkbenchPageContextSchema,\n  })\n  .strict()\n  .superRefine(({ definition }, context) => {\n    if (definition.surface !== 'view') {\n      context.addIssue({\n        code: 'custom',\n        path: ['definition', 'surface'],\n        message: 'Tenant workbench pages must render on the view surface.',\n      });\n    }\n    if (!definition.ownership.builtIn) {\n      context.addIssue({\n        code: 'custom',\n        path: ['definition', 'ownership', 'builtIn'],\n        message: 'Tenant workbench pages must be declared as built-in pages.',\n      });\n    }\n    if (!definition.navigation.pinned) {\n      context.addIssue({\n        code: 'custom',\n        path: ['definition', 'navigation', 'pinned'],\n        message: 'Tenant workbench pages must be pinned in workbench navigation.',\n      });\n    }\n    if (!definition.visibility.productContexts.includes('studio')) {\n      context.addIssue({\n        code: 'custom',\n        path: ['definition', 'visibility', 'productContexts'],\n        message: 'Tenant workbench pages must include the studio product context.',\n      });\n    }\n  });\n\nexport const TenantWorkbenchPageGroupSchema = z\n  .object({\n    id: ContractIdentifierSchema,\n    pageIds: z.array(ContractIdentifierSchema),\n    displayName: LocalizedTextSchema,\n    isBuiltIn: z.boolean(),\n    iconUrl: z.string().optional(),\n    sortIndex: z.number().int().nullable().optional(),\n    presetRelationId: ContractIdentifierSchema.optional(),\n    relationKey: ContractIdentifierSchema.nullable().optional(),\n    studioId: ContractIdentifierSchema.optional(),\n  })\n  .strict();\n\nexport const TenantWorkbenchConfigSchema = z\n  .object({\n    pages: z.array(TenantWorkbenchPageEnvelopeSchema),\n    pageGroups: z.array(TenantWorkbenchPageGroupSchema),\n    catalog: z\n      .object({\n        enabled: z.boolean().optional(),\n        defaultEntry: z.boolean().optional(),\n      })\n      .strict()\n      .optional(),\n    quickSwitcherMaxItems: z.number().int().nonnegative().optional(),\n    defaultOrder: z\n      .object({\n        groups: z.array(ContractIdentifierSchema),\n        pages: z.record(ContractIdentifierSchema, z.array(ContractIdentifierSchema)),\n      })\n      .strict()\n      .optional(),\n    customers: z\n      .object({\n        dropdownToolsDefault: z.array(ContractIdentifierSchema).optional(),\n        layoutManagerTools: z.array(WorkbenchCustomerToolSchema).optional(),\n        studioTabsMode: z.enum(['dropdown', 'tabs']).optional(),\n        historyWatermark: z\n          .object({\n            svgUrl: z.string().optional(),\n            coverage: z.array(z.enum(['list', 'detail', 'download'])).optional(),\n            maxLongEdgeRatio: z.number().positive().optional(),\n            sizing: z\n              .object({\n                mode: ContractIdentifierSchema,\n                heightRatio: z.number().positive().optional(),\n                minHeightPx: z.number().nonnegative().optional(),\n                maxHeightPx: z.number().nonnegative().optional(),\n              })\n              .strict()\n              .optional(),\n            enhance: z\n              .object({\n                enabled: z.boolean().optional(),\n                backgroundLumaThreshold: z.number().min(0).max(1).optional(),\n                stroke: z\n                  .object({\n                    color: z.string().optional(),\n                    opacity: z.number().min(0).max(1).optional(),\n                    widthRatio: z.number().nonnegative().optional(),\n                    blurRatio: z.number().nonnegative().optional(),\n                    steps: z.number().int().positive().optional(),\n                  })\n                  .strict()\n                  .optional(),\n              })\n              .strict()\n              .optional(),\n          })\n          .strict()\n          .optional(),\n        layoutManagerEnabled: z.boolean().optional(),\n        existingToolsDefault: z.array(ContractIdentifierSchema).optional(),\n        historyColumnsDefault: z.number().int().min(1).max(6).optional(),\n        studioOverrides: z.array(WorkbenchStudioOverrideSchema).optional(),\n      })\n      .strict()\n      .optional(),\n  })\n  .strict()\n  .superRefine(({ pages, pageGroups }, context) => {\n    const pageIds = pages.map(({ definition }) => definition.pageId);\n    const pageIdSet = new Set(pageIds);\n    if (pageIdSet.size !== pageIds.length) {\n      context.addIssue({\n        code: 'custom',\n        path: ['pages'],\n        message: 'Tenant workbench page ids must be unique.',\n      });\n    }\n\n    const groupIds = pageGroups.map(({ id }) => id);\n    if (new Set(groupIds).size !== groupIds.length) {\n      context.addIssue({\n        code: 'custom',\n        path: ['pageGroups'],\n        message: 'Tenant workbench page group ids must be unique.',\n      });\n    }\n\n    pageGroups.forEach((group, groupIndex) => {\n      group.pageIds.forEach((pageId, pageIndex) => {\n        if (!pageIdSet.has(pageId)) {\n          context.addIssue({\n            code: 'custom',\n            path: ['pageGroups', groupIndex, 'pageIds', pageIndex],\n            message: `Tenant workbench page group references undeclared page ${pageId}.`,\n          });\n        }\n      });\n    });\n  });\n\nconst LoginPageSchema = z\n  .object({\n    background: z\n      .object({\n        imageUrl: z.string().optional(),\n        gradient: z.string().optional(),\n      })\n      .strict()\n      .optional(),\n    logo: z\n      .object({\n        url: z.string().optional(),\n        lightUrl: z.string().optional(),\n        darkUrl: z.string().optional(),\n        position: z.enum(['top', 'middle', 'bottom']).optional(),\n        scale: z.number().positive().optional(),\n      })\n      .strict()\n      .optional(),\n    customCss: z.string().optional(),\n  })\n  .strict();\n\nconst LandingPageHeadbarConfigShape = {\n  headbarMode: z.enum(['shared', 'hidden']).optional(),\n};\n\nconst LandingPageDefaultConfigSchema = z\n  .object({\n    mode: z.literal('default'),\n    ...LandingPageHeadbarConfigShape,\n  })\n  .strict();\n\nconst LandingPageMarkdownConfigSchema = z\n  .object({\n    mode: z.literal('markdown'),\n    content: z.string(),\n    ...LandingPageHeadbarConfigShape,\n  })\n  .strict();\n\nconst LandingPageHtmlConfigSchema = z\n  .object({\n    mode: z.literal('html'),\n    content: z.string(),\n    ...LandingPageHeadbarConfigShape,\n  })\n  .strict();\n\nconst LandingPageIframeConfigSchema = z\n  .object({\n    mode: z.literal('iframe'),\n    ...LandingPageHeadbarConfigShape,\n    url: z.string().refine((value) => {\n      if (/^\\/(?!\\/)/.test(value)) {\n        return !value.includes('\\\\');\n      }\n      try {\n        const url = new URL(value);\n        return (url.protocol === 'http:' || url.protocol === 'https:') && !url.username && !url.password;\n      } catch {\n        return false;\n      }\n    }, 'Landing page iframe URL must use a root-relative path or HTTP(S) without embedded credentials.'),\n  })\n  .strict();\n\nexport const TenantLandingPageConfigSchema = z.discriminatedUnion('mode', [\n  LandingPageDefaultConfigSchema,\n  LandingPageMarkdownConfigSchema,\n  LandingPageHtmlConfigSchema,\n  LandingPageIframeConfigSchema,\n]);\n\nconst ListFooterPageSizeOptionsSchema = z\n  .array(z.number().int().positive().max(1000))\n  .min(1)\n  .max(10)\n  .superRefine((options, context) => {\n    const seen = new Set<number>();\n    options.forEach((option, index) => {\n      if (seen.has(option)) {\n        context.addIssue({\n          code: 'custom',\n          message: `Duplicate list footer page size option ${option}.`,\n          path: [index],\n        });\n      }\n      seen.add(option);\n    });\n  });\n\nexport const TenantListFooterConfigSchema = z\n  .object({\n    showTotal: z.boolean().optional(),\n    showPageSize: z.boolean().optional(),\n    pageSizeOptions: ListFooterPageSizeOptionsSchema.optional(),\n    paginationMode: z.enum(['auto', 'pages', 'compact']).optional(),\n    alignment: z.enum(['start', 'end', 'space-between']).optional(),\n    density: z.enum(['compact', 'default', 'comfortable']).optional(),\n  })\n  .strict();\n\n/** Public, application-specific values that are intentionally safe for browser clients. */\nexport const TenantApplicationConfigSchema = z\n  .object({\n    theme: z\n      .object({\n        id: z.string().optional(),\n        name: z.string().optional(),\n        title: z.string().optional(),\n        favicon: AssetVariantsSchema.optional(),\n        logo: AssetVariantsSchema.optional(),\n        pwaIcon: z.string().optional(),\n        form: z\n          .object({ variant: z.enum(['bento', 'ghost']) })\n          .strict()\n          .optional(),\n        toast: z\n          .object({\n            position: z.enum(['top-right', 'top-left', 'bottom-right', 'bottom-left', 'top-center', 'bottom-center']),\n          })\n          .strict()\n          .optional(),\n        icons: z\n          .object({\n            error: CustomIconSchema.optional(),\n            empty: CustomIconSchema.optional(),\n          })\n          .strict()\n          .optional(),\n        views: z\n          .object({\n            form: z\n              .object({\n                toast: z\n                  .object({\n                    afterCreate: z.boolean(),\n                    afterDelete: z.boolean(),\n                  })\n                  .strict(),\n                progress: z.enum(['estimate', 'infinite']),\n                onlyResult: z.boolean(),\n                tabular: z.object({ theme: z.enum(['default', 'tentiary', 'primary']) }).strict(),\n              })\n              .strict(),\n          })\n          .strict()\n          .optional(),\n        loginPage: LoginPageSchema.optional(),\n        extraLanguageURL: z.record(z.string(), z.string()).optional(),\n        hideSpaceHeader: z.boolean().optional(),\n        showSidebarTeamSelector: z.boolean().optional(),\n        showWorkbenchSidebar: z.boolean().optional(),\n        workbenchViewTheme: z.enum(['default', 'bsd-blue']).optional(),\n        defaults: z\n          .object({\n            showFormInImageDetail: z.boolean().optional(),\n            darkMode: z.enum(['light', 'dark', 'auto']).optional(),\n            language: z.enum(['en-US', 'zh-CN', 'ja-JP']).optional(),\n            showDarkModeToggle: z.boolean().optional(),\n            showLanguageToggle: z.boolean().optional(),\n          })\n          .strict()\n          .optional(),\n        modules: z\n          .object({\n            monkeysSpaceSidebar: z.union([z.literal('*'), z.array(ContractIdentifierSchema)]).optional(),\n            monkeysSpaceHeadbar: z.union([z.literal('*'), z.array(TenantHeadbarModuleItemSchema)]).optional(),\n            settingsSidebar: z.union([z.literal('*'), z.array(ContractIdentifierSchema)]).optional(),\n          })\n          .strict()\n          .optional(),\n        headbar: ThemeHeadbarSchema.optional(),\n        kernelLayout: z\n          .object({\n            navigationMode: z.enum(['sidebar', 'topbar']).optional(),\n            allowNavigationModeSwitch: z.boolean().optional(),\n            headbar: KernelHeadbarSchema.optional(),\n          })\n          .strict()\n          .optional(),\n        paginationPosition: z.enum(['left', 'right']).optional(),\n        listFooter: TenantListFooterConfigSchema.optional(),\n        ugcViewIconOnlyMode: z.boolean().optional(),\n        workflowPreviewExecutionGrid: z\n          .object({\n            selectionModeDisplayType: z.enum(['operation-button', 'dropdown-menu']).optional(),\n            clickBehavior: z.enum(['preview', 'select', 'fill-form', 'none']).optional(),\n            showErrorFilter: z.boolean().optional(),\n            displayType: z.enum(['grid', 'masonry']).optional(),\n            showDetailButton: z.boolean().optional(),\n            aspectRatio: z.enum(['1:1', '4:3', '3:4', '16:9', '9:16']).optional(),\n          })\n          .strict()\n          .optional(),\n        workbenchSidebarDefaultOpen: z.boolean().optional(),\n        workbenchSidebarMoreAction: z.boolean().optional(),\n        workbenchSidebarApart: z.boolean().optional(),\n        workbenchSidebarToggleGroupDetail: z.boolean().optional(),\n        workbenchSidebarViewType: z.boolean().optional(),\n        workbenchSidebarFormViewEmbed: z.boolean().optional(),\n        workbenchSidebarModernMode: z.boolean().optional(),\n        ugc: z\n          .object({\n            onItemClick: z.boolean(),\n            subtitle: z.boolean().optional(),\n          })\n          .strict()\n          .optional(),\n        uniImagePreview: z.boolean().optional(),\n        imagePreviewStyle: z.union([z.literal(false), z.enum(['simple', 'normal', 'uni'])]).optional(),\n        teamAsUser: z.boolean().optional(),\n        themeMode: z.enum(['shadow', 'border']).optional(),\n        density: z.enum(['compact', 'default', 'comfortable']).optional(),\n        statusStates: z\n          .object({\n            loading: z\n              .object({ variant: z.enum(['spinner', 'skeleton']).optional() })\n              .strict()\n              .optional(),\n            empty: z\n              .object({ variant: z.enum(['default', 'compact']).optional() })\n              .strict()\n              .optional(),\n            error: z.object({ showRetry: z.boolean().optional() }).strict().optional(),\n            permission: z.object({ showRequestAccess: z.boolean().optional() }).strict().optional(),\n            density: z.enum(['compact', 'default', 'comfortable']).optional(),\n          })\n          .strict()\n          .optional(),\n        pageZoom: z.number().positive().optional(),\n        miniMode: z.object({ showPreviewViewExecutionResultGrid: z.boolean() }).strict().optional(),\n        workflow: z.object({ allowConcurrentRuns: z.boolean() }).strict().optional(),\n        historyResult: z.object({ display: z.boolean() }).strict().optional(),\n        uploader: z\n          .object({\n            orientation: z.enum(['vertical', 'horizontal']),\n            pasteButton: z.boolean(),\n            statusText: z.boolean(),\n          })\n          .strict()\n          .optional(),\n        designProjects: z\n          .object({\n            oneOnOne: z.boolean(),\n            newTabOpenBoard: z.boolean(),\n            defaultShowGrid: z.boolean().optional(),\n            createDefaultFrame: z.boolean(),\n            showPageMenu: z.boolean(),\n            showMainMenu: z.boolean(),\n            showStylePanel: z.boolean(),\n            showToolbar: z.boolean(),\n            toolbarPosition: z.enum(['bottom', 'left']).optional(),\n            showContextMenu: z.boolean(),\n            showActionsMenu: z.boolean(),\n            showPageAndLayerSidebar: z.boolean().optional(),\n            showBoardOperationSidebar: z.boolean().optional(),\n            showMiniToolsToolbar: z.boolean().optional(),\n            showRightSidebar: z.boolean().optional(),\n            showRealtimeDrawing: z.boolean().optional(),\n            showWorkflow: z.boolean().optional(),\n            showVersionManager: z.boolean().optional(),\n            showAgent: z.boolean().optional(),\n            AgentTools: z.array(ContractIdentifierSchema).optional(),\n          })\n          .strict()\n          .optional(),\n        workbench: TenantWorkbenchConfigSchema.optional(),\n        visionProWorkflows: z.array(ContractIdentifierSchema).optional(),\n        initTeam: z.boolean().optional(),\n        imageThumbnail: z.boolean().optional(),\n        pages: z\n          .object({\n            allowPageKeys: z.union([z.literal('*'), z.array(ContractIdentifierSchema)]),\n            defaultPageKey: ContractIdentifierSchema.optional(),\n            homeEntryEnabled: z.boolean().optional(),\n          })\n          .strict()\n          .optional(),\n        agent: TenantAgentThemeConfigSchema.optional(),\n      })\n      .strict(),\n    landingPage: TenantLandingPageConfigSchema.optional(),\n    auth: z\n      .object({\n        enabled: z.array(ContractIdentifierSchema).default([]),\n        oidc: z\n          .object({\n            buttonText: z.string().optional(),\n            autoSignin: z.boolean().optional(),\n          })\n          .strict()\n          .optional(),\n        password: z\n          .object({\n            registrationEnabled: z.boolean().optional(),\n            disableAutoRegister: z.boolean().optional(),\n          })\n          .strict()\n          .optional(),\n        registrationApproval: z\n          .object({\n            enabled: z.boolean().optional(),\n          })\n          .strict()\n          .optional(),\n        hideAuthToast: z.boolean().optional(),\n        autoReload: z.boolean().optional(),\n        defaultOtherTeam: z.boolean().optional(),\n      })\n      .strict(),\n    endpoints: z.record(ContractIdentifierSchema, z.string()),\n    module: z.union([z.literal('*'), z.array(ContractIdentifierSchema)]),\n    behavior: z\n      .object({\n        clearWorkflowFormStorageAfterUpdate: z.boolean().optional(),\n        autoApproveOAuth: z.boolean().optional(),\n        rememberWorkflowModelSelection: z.boolean().optional(),\n      })\n      .strict(),\n    dataManagement: z\n      .object({\n        favoriteOntologyId: z.string().optional(),\n        pairedOntologyId: z.string().optional(),\n        galleryOntologyIds: z.array(ContractIdentifierSchema).max(20).optional(),\n        galleryOntologyId: z.string().optional(),\n        dataBrowserDefaultOntologyId: z.string().optional(),\n        workflowResultOntologyId: z.string().optional(),\n        homeAdvertisement: z\n          .object({\n            ontologyId: ContractIdentifierSchema,\n            viewId: ContractIdentifierSchema.optional(),\n            viewType: z.enum(['filter', 'container', 'share_link']).optional(),\n            teamId: ContractIdentifierSchema.optional(),\n            teamOnly: z.boolean().optional(),\n            pageSize: z.number().int().positive().optional(),\n            sortBy: z.enum(['pin_order', 'asset_id', 'updated_timestamp', 'created_timestamp']).optional(),\n            sortOrder: z.enum(['asc', 'desc']).optional(),\n            fieldMap: z.record(z.string(), z.string()).optional(),\n            columnIds: z.record(z.string(), z.string()).optional(),\n          })\n          .strict()\n          .optional(),\n        homeShortcutBackground: z\n          .object({\n            ontologyId: ContractIdentifierSchema,\n            viewId: ContractIdentifierSchema.optional(),\n            viewType: z.enum(['filter', 'container', 'share_link']).optional(),\n            teamId: ContractIdentifierSchema.optional(),\n            teamOnly: z.boolean().optional(),\n            pageSize: z.number().int().positive().optional(),\n            sortBy: z.enum(['pin_order', 'asset_id', 'updated_timestamp']).optional(),\n            sortOrder: z.enum(['asc', 'desc']).optional(),\n            fieldMap: z.record(z.string(), z.string()).optional(),\n            columnIds: z.record(z.string(), z.string()).optional(),\n          })\n          .strict()\n          .optional(),\n        homeTrendAssistant: z\n          .object({\n            ontologyId: ContractIdentifierSchema.optional(),\n            viewId: ContractIdentifierSchema.optional(),\n            viewInstanceId: ContractIdentifierSchema.optional(),\n            viewName: z.string().optional(),\n            teamId: ContractIdentifierSchema.optional(),\n            designOptionsWorkflowId: ContractIdentifierSchema.optional(),\n            tep: z\n              .object({\n                baseUrl: z.string().optional(),\n                timeoutMs: z.number().int().positive().optional(),\n              })\n              .strict()\n              .optional(),\n            runtime: z\n              .object({\n                appId: ContractIdentifierSchema,\n                tepBaseUrlConfigured: z.boolean(),\n                tepAuthorizationConfigured: z.boolean(),\n                tepCookieConfigured: z.boolean(),\n              })\n              .strict()\n              .optional(),\n          })\n          .strict()\n          .optional(),\n        staticTrendReport: z\n          .object({\n            ontologyId: ContractIdentifierSchema,\n            viewId: ContractIdentifierSchema.optional(),\n            teamId: ContractIdentifierSchema.optional(),\n          })\n          .strict()\n          .optional(),\n        trendRadar: TenantTrendRadarSourcesSchema.optional(),\n        sharing: z\n          .object({\n            silentViewLinks: z\n              .object({\n                enabled: z.boolean().optional(),\n                placement: z\n                  .object({\n                    mode: z.enum(['sourceOntology', 'ontology']).optional(),\n                    ontologyId: ContractIdentifierSchema.optional(),\n                    parentId: ContractIdentifierSchema.optional(),\n                    navId: ContractIdentifierSchema.optional(),\n                  })\n                  .strict()\n                  .optional(),\n              })\n              .strict()\n              .optional(),\n            shareAccess: z\n              .object({\n                publicLinksEnabled: z.boolean().optional(),\n                passwordGateEnabled: z.boolean().optional(),\n                passwordAccessTtlSeconds: z.number().int().positive().optional(),\n                defaultViewTreeDelivery: z.enum(['manual', 'auto']).optional(),\n              })\n              .strict()\n              .optional(),\n            shareDialog: z\n              .object({\n                uiVersion: z.enum(['legacy', 'simplified']).optional(),\n                audience: z\n                  .object({\n                    enabled: z.boolean().optional(),\n                    allowed: z.array(z.enum(['user', 'team', 'public'])).optional(),\n                    default: z.enum(['user', 'team', 'public']).optional(),\n                  })\n                  .strict()\n                  .optional(),\n                accessLevel: z\n                  .object({\n                    enabled: z.boolean().optional(),\n                    allowed: z.array(z.enum(['read', 'write'])).optional(),\n                    default: z.enum(['read', 'write']).optional(),\n                  })\n                  .strict()\n                  .optional(),\n                viewTreeDelivery: z\n                  .object({\n                    enabled: z.boolean().optional(),\n                    allowed: z.array(z.enum(['manual', 'auto'])).optional(),\n                    default: z.enum(['manual', 'auto']).optional(),\n                  })\n                  .strict()\n                  .optional(),\n              })\n              .strict()\n              .optional(),\n            personalNotifications: z.object({ supported: z.boolean() }).strict().optional(),\n          })\n          .strict()\n          .optional(),\n      })\n      .strict()\n      .optional(),\n    kernelRuntime: z\n      .object({\n        integrations: z\n          .object({\n            harbor: z\n              .object({\n                endpoint: z.string().optional(),\n                projectScopes: z.array(z.string()).optional(),\n                authMode: z.string().optional(),\n                principal: z.string().optional(),\n                autoSync: z.boolean().optional(),\n                proxyUrl: z.string().optional(),\n              })\n              .strict()\n              .optional(),\n            gitlab: z\n              .object({\n                baseUrl: z.string().optional(),\n                groupScopes: z.array(z.string()).optional(),\n                tokenMode: z.string().optional(),\n                deployProjectPath: z.string().optional(),\n                deploymentReportsEnabled: z.boolean().optional(),\n                proxyUrl: z.string().optional(),\n              })\n              .strict()\n              .optional(),\n            kubernetes: z\n              .object({\n                accessMode: z.string().optional(),\n                clusterAlias: z.string().optional(),\n                agentProjectPath: z.string().optional(),\n                agentName: z.string().optional(),\n                namespaceScopes: z.array(z.string()).optional(),\n                rolloutObserverEnabled: z.boolean().optional(),\n                proxyUrl: z.string().optional(),\n              })\n              .strict()\n              .optional(),\n          })\n          .strict()\n          .optional(),\n      })\n      .strict()\n      .optional(),\n    data: z.object({}).strict().optional(),\n    storage: z\n      .object({\n        presignMode: z.enum(['frontend', 'backend', 'both']).optional(),\n        presign: z\n          .object({\n            expiresInSeconds: z.number().int().positive(),\n            buckets: z.array(\n              z\n                .object({\n                  id: ContractIdentifierSchema,\n                  provider: ContractIdentifierSchema,\n                  preferredUrlPatternId: ContractIdentifierSchema,\n                  urlPatterns: z.array(\n                    z\n                      .object({\n                        id: ContractIdentifierSchema,\n                        type: z.enum(['bucket-hostname', 'provider-hostname']),\n                        hostname: z.string().trim().min(1),\n                        preferred: z.boolean().optional(),\n                        bucketSegment: z.string().optional(),\n                      })\n                      .strict(),\n                  ),\n                })\n                .strict(),\n            ),\n          })\n          .strict()\n          .optional(),\n      })\n      .strict()\n      .optional(),\n    monkeyData: z.object({ baseUrl: z.string().optional() }).strict().optional(),\n  })\n  .strict();\n\nexport const DeclarativeRuntimeRolloutCapabilitySchema = z\n  .object({\n    contract: z.literal('DeclarativeRuntimeRolloutCapability'),\n    schemaVersion: z.literal(1),\n    state: z.enum(['disabled', 'enabled']),\n    apiVersion: ContractIdentifierSchema,\n    enabledSurfaces: z.array(z.enum(['studio', 'kernel'])),\n    generation: z.number().int().nonnegative(),\n    etag: z.string().trim().min(1),\n  })\n  .strict();\n\nexport const TenantProductConfigSchema = z\n  .object({\n    contract: z.literal('TenantProductConfig'),\n    tenantId: ContractIdentifierSchema,\n    appId: ContractIdentifierSchema,\n    environment: ContractIdentifierSchema,\n    designTokens: TenantDesignTokensConfigSchema,\n    moduleRefs: z.array(ContractIdentifierSchema).default([]),\n    pageRefs: z.array(ContractIdentifierSchema).default([]),\n    featureFlags: z.record(z.string(), z.boolean()).default({}),\n    authBinding: TenantAuthBindingsSchema,\n    dataBinding: TenantDataBindingsSchema,\n    sourceMap: z.record(z.string(), ContractIdentifierSchema),\n    warnings: z.array(z.string()).default([]),\n    menus: MenuDefinitionSetSchema.optional(),\n    applicationConfig: TenantApplicationConfigSchema,\n    declarativeRuntime: DeclarativeRuntimeRolloutCapabilitySchema.optional(),\n  })\n  .strict();\n\n/** Browser-safe projection. tokenSources and all other server-only values are structurally impossible here. */\nexport const TenantRuntimeConfigSchema = z\n  .object({\n    contract: z.literal('TenantRuntimeConfig'),\n    tenantId: ContractIdentifierSchema,\n    appId: ContractIdentifierSchema,\n    environment: ContractIdentifierSchema,\n    designTokens: ResolvedThemeTokensSchema,\n    moduleRefs: z.array(ContractIdentifierSchema).default([]),\n    pageRefs: z.array(ContractIdentifierSchema).default([]),\n    featureFlags: z.record(z.string(), z.boolean()).default({}),\n    authBinding: TenantAuthBindingsSchema,\n    dataBinding: TenantDataBindingsSchema,\n    sourceMap: z.record(z.string(), ContractIdentifierSchema),\n    warnings: z.array(z.string()).default([]),\n    menuBundle: MenuRuntimeBundleSchema.optional(),\n    applicationConfig: TenantApplicationConfigSchema,\n    declarativeRuntime: DeclarativeRuntimeRolloutCapabilitySchema.optional(),\n  })\n  .strict();\n\nexport type TenantProductConfig = z.infer<typeof TenantProductConfigSchema>;\nexport type TenantRuntimeConfig = z.infer<typeof TenantRuntimeConfigSchema>;\nexport type DeclarativeRuntimeRolloutCapability = z.infer<typeof DeclarativeRuntimeRolloutCapabilitySchema>;\nexport type TenantApplicationConfig = z.infer<typeof TenantApplicationConfigSchema>;\nexport type TenantAgentThemeConfig = z.infer<typeof TenantAgentThemeConfigSchema>;\nexport type TenantListFooterConfig = z.infer<typeof TenantListFooterConfigSchema>;\nexport type CurrentUserMenuDisplayText = z.infer<typeof CurrentUserMenuDisplayTextSchema>;\nexport type CurrentUserMenuNavigationItem = z.infer<typeof CurrentUserMenuNavigationItemSchema>;\nexport type CurrentUserMenuControlItem = z.infer<typeof CurrentUserMenuControlItemSchema>;\nexport type CurrentUserMenuActionItem = z.infer<typeof CurrentUserMenuActionItemSchema>;\nexport type CurrentUserMenuItem = z.infer<typeof CurrentUserMenuItemSchema>;\nexport type CurrentUserMenuSection = z.infer<typeof CurrentUserMenuSectionSchema>;\nexport type CurrentUserMenuConfig = z.infer<typeof CurrentUserMenuConfigSchema>;\nexport type CurrentUserMenuProfile = z.infer<typeof CurrentUserMenuProfileSchema>;\nexport type TenantLandingPageConfig = z.infer<typeof TenantLandingPageConfigSchema>;\nexport type TenantWorkbenchConfig = z.infer<typeof TenantWorkbenchConfigSchema>;\nexport type TenantWorkbenchPageContext = z.infer<typeof TenantWorkbenchPageContextSchema>;\nexport type TenantWorkbenchPageEnvelope = z.infer<typeof TenantWorkbenchPageEnvelopeSchema>;\nexport type TenantWorkbenchPageGroup = z.infer<typeof TenantWorkbenchPageGroupSchema>;\nexport type DesignTokenSource = z.infer<typeof DesignTokenSourceSchema>;\nexport type TenantDesignTokensConfig = z.infer<typeof TenantDesignTokensConfigSchema>;\nexport type TenantAuthBinding = z.infer<typeof TenantAuthBindingSchema>;\nexport type TenantDataBinding = z.infer<typeof TenantDataBindingSchema>;\nexport type TenantTrendRadarSource = z.infer<typeof TenantTrendRadarSourceSchema>;\nexport type TenantTrendRadarCollectionTarget = z.infer<typeof TenantTrendRadarCollectionTargetSchema>;\nexport type TenantTrendRadarDerivedMetrics = z.infer<typeof TenantTrendRadarDerivedMetricsSchema>;\nexport type TenantTrendRadarEvaluation = z.infer<typeof TenantTrendRadarEvaluationSchema>;\nexport type TenantTrendRadarSources = z.infer<typeof TenantTrendRadarSourcesSchema>;\nexport type ThemeHeadbar = z.infer<typeof ThemeHeadbarSchema>;\nexport type TenantHeadbarModuleItem = z.infer<typeof TenantHeadbarModuleItemSchema>;\n","import { z } from 'zod';\nimport { JsonValueSchema } from './common';\n\n/** Vendor scene fields are presentation data; workflow meaning is referenced by identity. */\nexport const WorkflowCanvasElementSchema = z.object({\n  id: z.string().min(1),\n  type: z.enum(['rectangle', 'diamond', 'ellipse', 'text', 'arrow', 'line', 'freedraw', 'image', 'frame', 'magicframe', 'embeddable', 'iframe']),\n  x: z.number().finite(), y: z.number().finite(),\n  width: z.number().finite().nonnegative(), height: z.number().finite().nonnegative(),\n  customData: z.object({\n    workflow: z.object({\n      nodeRef: z.string().min(1).optional(),\n      edgeRef: z.string().min(1).optional(),\n    }).strict().optional(),\n  }).strict().optional(),\n}).catchall(JsonValueSchema);\n\nexport const WorkflowCanvasSchema = z.object({\n  engine: z.literal('excalidraw'),\n  schemaVersion: z.literal(1),\n  elements: z.array(WorkflowCanvasElementSchema).max(20000),\n  files: z.record(z.string(), z.object({\n    reference: z.string().regex(/^file:\\/\\/[A-Za-z0-9][A-Za-z0-9_-]{0,127}$/),\n    mimeType: z.enum(['image/png', 'image/jpeg', 'image/webp', 'image/gif', 'image/svg+xml']),\n    created: z.number().finite().nonnegative(),\n  }).strict()),\n}).strict().superRefine((canvas, context) => {\n  if (new Set(canvas.elements.map(element => element.id)).size !== canvas.elements.length) {\n    context.addIssue({ code: 'custom', path: ['elements'], message: 'Canvas element identities must be unique.' });\n  }\n});\n\nexport type WorkflowCanvas = z.infer<typeof WorkflowCanvasSchema>;\n","import { z } from 'zod';\nimport { WorkflowCanvasSchema } from './workflow-canvas';\nimport { ContractPortSchema } from './capability';\nimport {\n  ContractIdentifierSchema,\n  ContractMetadataSchema,\n  EntityRefSchema,\n  JsonValueSchema,\n  LocalizedTextSchema,\n  type JsonValue,\n  type LocalizedText,\n} from './common';\n\nexport const ConductorTaskTypeSchema = z.enum([\n  'SIMPLE',\n  'DYNAMIC',\n  'FORK_JOIN',\n  'FORK_JOIN_DYNAMIC',\n  'DECISION',\n  'SWITCH',\n  'JOIN',\n  'DO_WHILE',\n  'SUB_WORKFLOW',\n  'START_WORKFLOW',\n  'EVENT',\n  'WAIT',\n  'HUMAN',\n  'USER_DEFINED',\n  'HTTP',\n  'LAMBDA',\n  'INLINE',\n  'EXCLUSIVE_JOIN',\n  'TERMINATE',\n  'KAFKA_PUBLISH',\n  'JSON_JQ_TRANSFORM',\n  'SET_VARIABLE',\n  'CALL_MCP_TOOL',\n  'GENERATE_AUDIO',\n  'GENERATE_IMAGE',\n  'GENERATE_PDF',\n  'GENERATE_VIDEO',\n  'LIST_MCP_TOOLS',\n  'LLM_CHAT_COMPLETE',\n  'LLM_GENERATE_EMBEDDINGS',\n  'LLM_INDEX_TEXT',\n  'LLM_SEARCH_INDEX',\n  'TITUS',\n  'USER_TASK',\n]);\n\nexport interface ConductorTaskDefinition {\n  name: string;\n  taskReferenceName: string;\n  type: z.infer<typeof ConductorTaskTypeSchema>;\n  inputParameters?: Record<string, JsonValue>;\n  startDelay?: number;\n  optional?: boolean;\n  asyncComplete?: boolean;\n  rateLimited?: boolean;\n  retryCount?: number;\n  taskDefinition?: Record<string, JsonValue>;\n  loopCondition?: string;\n  loopOver?: ConductorTaskDefinition[];\n  sink?: string;\n  forkTasks?: ConductorTaskDefinition[][];\n  joinOn?: string[];\n  defaultExclusiveJoinTask?: string[];\n  dynamicForkTasksParam?: string;\n  dynamicForkTasksInputParamName?: string;\n  subWorkflowParam?: {\n    $ref?: string;\n    name: string;\n    version?: number;\n    taskToDomain?: Record<string, string>;\n    workflowDefinition?: Record<string, JsonValue>;\n  };\n  decisionCases?: Record<string, ConductorTaskDefinition[]>;\n  defaultCase?: ConductorTaskDefinition[];\n  evaluatorType?: 'value-param' | 'javascript' | 'graaljs';\n  expression?: string;\n  __alias?: JsonValue;\n  callbackFromWorker?: boolean;\n  caseExpression?: JsonValue;\n  caseValueParam?: string;\n  dependencies?: JsonValue[];\n  description?: string;\n  dynamicTaskNameParam?: string;\n  joinMode?: string;\n  permissive?: boolean;\n  joinTaskRef?: string;\n  forkTaskRef?: string;\n}\n\nconst requiredTaskFields: Partial<Record<ConductorTaskDefinition['type'], readonly (keyof ConductorTaskDefinition)[]>> = {\n  DO_WHILE: ['inputParameters', 'loopOver'],\n  EVENT: ['sink'],\n  FORK_JOIN: ['forkTasks'],\n  FORK_JOIN_DYNAMIC: ['inputParameters', 'dynamicForkTasksParam', 'dynamicForkTasksInputParamName'],\n  DYNAMIC: ['inputParameters'],\n  JOIN: ['joinOn'],\n  SUB_WORKFLOW: ['subWorkflowParam'],\n  SWITCH: ['inputParameters', 'decisionCases', 'evaluatorType', 'expression'],\n  DECISION: ['inputParameters', 'decisionCases'],\n  WAIT: ['inputParameters'],\n  TERMINATE: ['inputParameters'],\n};\n\nexport const ConductorTaskDefinitionSchema: z.ZodType<ConductorTaskDefinition> = z.lazy(() =>\n  z\n    .object({\n      name: ContractIdentifierSchema,\n      taskReferenceName: ContractIdentifierSchema,\n      type: ConductorTaskTypeSchema,\n      inputParameters: z.record(z.string(), JsonValueSchema).optional(),\n      startDelay: z.number().int().nonnegative().optional(),\n      optional: z.boolean().optional(),\n      asyncComplete: z.boolean().optional(),\n      rateLimited: z.boolean().optional(),\n      retryCount: z.number().int().nonnegative().optional(),\n      taskDefinition: z.record(z.string(), JsonValueSchema).optional(),\n      loopCondition: z.string().optional(),\n      loopOver: z.array(ConductorTaskDefinitionSchema).optional(),\n      sink: z.string().optional(),\n      forkTasks: z.array(z.array(ConductorTaskDefinitionSchema)).optional(),\n      joinOn: z.array(ContractIdentifierSchema).optional(),\n      defaultExclusiveJoinTask: z.array(ContractIdentifierSchema).optional(),\n      dynamicForkTasksParam: z.string().optional(),\n      dynamicForkTasksInputParamName: z.string().optional(),\n      subWorkflowParam: z\n        .object({\n          $ref: z.string().optional(),\n          name: ContractIdentifierSchema,\n          version: z.number().int().positive().optional(),\n          taskToDomain: z.record(z.string(), z.string()).optional(),\n          workflowDefinition: z.record(z.string(), JsonValueSchema).optional(),\n        })\n        .strict()\n        .optional(),\n      decisionCases: z.record(z.string(), z.array(ConductorTaskDefinitionSchema)).optional(),\n      defaultCase: z.array(ConductorTaskDefinitionSchema).optional(),\n      evaluatorType: z.enum(['value-param', 'javascript', 'graaljs']).optional(),\n      expression: z.string().optional(),\n      __alias: JsonValueSchema.optional(),\n      callbackFromWorker: z.boolean().optional(),\n      caseExpression: JsonValueSchema.optional(),\n      caseValueParam: z.string().optional(),\n      dependencies: z.array(JsonValueSchema).optional(),\n      description: z.string().optional(),\n      dynamicTaskNameParam: z.string().optional(),\n      joinMode: z.string().optional(),\n      permissive: z.boolean().optional(),\n      joinTaskRef: ContractIdentifierSchema.optional(),\n      forkTaskRef: ContractIdentifierSchema.optional(),\n    })\n    .strict()\n    .superRefine((task, context) => {\n      for (const field of requiredTaskFields[task.type] ?? []) {\n        if (task[field] === undefined) {\n          context.addIssue({ code: 'custom', path: [field], message: `${task.type} task requires ${String(field)}.` });\n        }\n      }\n      if (\n        task.type === 'DO_WHILE' &&\n        (task.inputParameters?.mode === undefined || task.inputParameters.mode === 'expression') &&\n        task.loopCondition === undefined &&\n        task.inputParameters?.loopCondition === undefined\n      ) {\n        context.addIssue({ code: 'custom', path: ['loopCondition'], message: 'Expression DO_WHILE task requires loopCondition.' });\n      }\n    }),\n);\n\nexport const ConductorWorkflowDefinitionSchema = z.object({\n  ownerApp: z.string().optional(),\n  createTime: z.number().int().nonnegative().optional(),\n  updateTime: z.number().int().nonnegative().optional(),\n  createdBy: z.string().optional(),\n  updatedBy: z.string().optional(),\n  name: ContractIdentifierSchema,\n  description: z.string().optional(),\n  version: z.number().int().positive(),\n  tasks: z.array(ConductorTaskDefinitionSchema),\n  inputParameters: z.array(ContractIdentifierSchema),\n  outputParameters: z.record(z.string(), JsonValueSchema).optional(),\n  failureWorkflow: ContractIdentifierSchema.optional(),\n  schemaVersion: z.number().int().positive().optional(),\n  restartable: z.boolean().optional(),\n  workflowStatusListenerEnabled: z.boolean().optional(),\n  ownerEmail: z.string().email().optional(),\n  timeoutPolicy: z.enum(['TIME_OUT_WF', 'ALERT_ONLY']).optional(),\n  timeoutSeconds: z.number().int().nonnegative(),\n  variables: z.record(z.string(), JsonValueSchema).optional(),\n  inputTemplate: z.record(z.string(), JsonValueSchema).optional(),\n}).strict();\n\nexport const WorkflowParameterTypeSchema = z.enum([\n  'string',\n  'file',\n  'number',\n  'boolean',\n  'options',\n  'json',\n  'notice',\n  'canvas-assist',\n]);\n\nconst WorkflowConditionalStateSchema = z\n  .object({\n    conditions: z.array(\n      z\n        .object({\n          field: z.string(),\n          operator: z.enum(['is', 'isNot', 'isGreaterThan', 'isLessThan', 'isGreaterThanOrEqual', 'isLessThanOrEqual', 'in', 'notIn']),\n          value: JsonValueSchema,\n        })\n        .strict(),\n    ),\n    logic: z.enum(['AND', 'OR']).optional(),\n  })\n  .strict();\n\nconst ImageSelectMappingAppearanceSchema = z\n  .object({\n    columns: z.number().int().min(1).max(4).optional(),\n    cardSize: z.enum(['sm', 'md', 'lg']).optional(),\n    imageAspectRatio: z.enum(['square', '4:5', '3:4', '16:9']).optional(),\n    gap: z.enum(['sm', 'md', 'lg']).optional(),\n    radius: z.enum(['sm', 'md', 'lg', 'xl']).optional(),\n    borderStyle: z.enum(['none', 'soft', 'strong']).optional(),\n    borderWidth: z.union([z.literal(0), z.literal(1), z.literal(2)]).optional(),\n    enableScroll: z.boolean().optional(),\n    maxHeight: z.number().int().min(160).max(1200).optional(),\n    enableCollapse: z.boolean().optional(),\n    visibleRows: z.number().int().min(1).max(6).optional(),\n    hideLabel: z.boolean().optional(),\n    hideDescription: z.boolean().optional(),\n    hideValue: z.boolean().optional(),\n  })\n  .strict();\n\nconst ComfyWorkflowPortBindingSchema = z\n  .object({\n    node: z.union([z.string(), z.number()]),\n    key: z.string().optional(),\n  })\n  .strict();\n\nconst WorkflowParameterTypeOptionsSchema = z\n  .object({\n    editor: z.enum(['code', 'codeNodeEditor', 'htmlEditor', 'sqlEditor', 'json']).optional(),\n    editorLanguage: z.enum(['javaScript', 'json', 'python', 'sql']).optional(),\n    maxValue: z.number().optional(), minValue: z.number().optional(), max: z.number().optional(), min: z.number().optional(),\n    multipleValues: z.boolean().optional(), numberPrecision: z.number().nonnegative().optional(), password: z.boolean().optional(), rows: z.number().int().positive().optional(),\n    assetType: z.string().optional(), accept: z.string().optional(), maxSize: z.number().positive().optional(), fileType: z.string().optional(),\n    aiMultiShotMainImageField: z.string().optional(), aiMultiShotWorkflowAppId: z.string().optional(), aiMultiShotWorkflowId: z.string().optional(),\n    allowCustomInput: z.boolean().optional(), allowUploadVideo: z.boolean().optional(), aspectRatioField: z.string().optional(), assemblyValueType: z.string().optional(),\n    autoAnalyzeDesignImage: z.boolean().optional(), autoDetectAspectRatio: z.boolean().optional(), autoIncrementId: z.boolean().optional(), comfyOptions: ComfyWorkflowPortBindingSchema.optional(), comfyuiModelServerId: z.string().optional(), comfyuiModelTypeName: z.string().optional(),\n    defaultCustomInput: JsonValueSchema.optional(), descriptionAlert: z.boolean().optional(), disabled: z.union([z.boolean(), WorkflowConditionalStateSchema]).optional(), editable: z.union([z.boolean(), WorkflowConditionalStateSchema]).optional(),\n    enableAiMultiShot: z.boolean().optional(), enableBooleanSwitchMode: z.boolean().optional(), enableClear: z.boolean().optional(), enableExpand: z.boolean().optional(), enableImageCrop: z.boolean().optional(), enableImageMask: z.boolean().optional(), enableImageOverlay: z.boolean().optional(), enablePopupEditor: z.boolean().optional(), enablePromptFontSize: z.boolean().optional(), enableReset: z.boolean().optional(), enableSelectItemIcon: z.boolean().optional(), enableSelectList: z.boolean().optional(), enableSelectSearch: z.boolean().optional(), enableSliderEnterMode: z.boolean().optional(), enableVoice: z.boolean().optional(),\n    expandButtonText: z.string().optional(), foldUp: z.boolean().optional(), hidden: z.boolean().optional(), hideRequiredDot: z.boolean().optional(), inlineTitleWithSelect: z.boolean().optional(), knowledgeGraphButtonText: z.string().optional(),\n    identifyAttributeCount: z.union([z.number().nonnegative(), z.string().min(1), z.object({ min: z.number().nonnegative().optional(), max: z.number().nonnegative().optional() }).strict()]).optional(), identifyAttributes: z.array(JsonValueSchema).optional(), identifyMaxVariants: z.number().int().nonnegative().optional(), identifySourceField: z.string().optional(),\n    imageOverlayBaseField: z.string().optional(), imageOverlayOverlayField: z.string().optional(), imageSelectMappingAppearance: ImageSelectMappingAppearanceSchema.optional(), imageSelectMappingColumns: z.number().int().min(1).max(4).optional(), imageSelectMappingEnableCustomUpload: z.boolean().optional(), imageSelectMappingHideLabel: z.boolean().optional(), imageSelectMappingHideLink: z.boolean().optional(), imageSelectMappingHideMeta: z.boolean().optional(), imageSelectMappingInlineUseLargeUploadBox: z.boolean().optional(), imageSelectMappingPromptField: z.string().optional(), imageSelectMappingTabOrder: z.enum(['template-first', 'upload-first']).optional(), imageSelectMappingTabWidthMode: z.enum(['content', 'fill']).optional(), imageSelectMappingTemplatePrompt: LocalizedTextSchema.optional(), imageSelectMappingTemplateTabTitle: LocalizedTextSchema.optional(), imageSelectMappingUploadMode: z.enum(['tabs', 'inline']).optional(), imageSelectMappingUploadPrompt: LocalizedTextSchema.optional(), imageSelectMappingUploadTabTitle: LocalizedTextSchema.optional(),\n    endpoints: z.array(JsonValueSchema).optional(), examples: z.array(JsonValueSchema).optional(), extraData: JsonValueSchema.optional(), layer: JsonValueSchema.optional(), map: JsonValueSchema.optional(), multiline: z.boolean().optional(), options: z.array(JsonValueSchema).optional(), originalFiles: z.array(JsonValueSchema).optional(), placeholder: LocalizedTextSchema.optional(), preserveSelectListOrder: z.boolean().optional(), promptDictionary: JsonValueSchema.optional(), promptFontSize: z.number().optional(), promptModeToggle: JsonValueSchema.optional(), requireActiveSelectFilter: z.boolean().optional(), restoreDefaultOnEmptyEnter: z.boolean().optional(), search: z.boolean().optional(),\n    selectButtonEnableCollapse: z.boolean().optional(), selectButtonVisibleRows: z.number().int().positive().optional(), selectList: z.array(JsonValueSchema).optional(), selectListDisplayMode: z.string().optional(), selectPromptField: z.string().optional(), showAddLocalFileButton: z.boolean().optional(), singleColumn: z.boolean().optional(), singleFrameForMultiple: z.boolean().optional(), textSingleLine: z.boolean().optional(), textareaMiniHeight: z.number().nonnegative().optional(), tips: LocalizedTextSchema.optional(), visibility: JsonValueSchema.optional(), voiceButtonText: z.string().optional(),\n    designAnalysisFields: z.array(JsonValueSchema).optional(), designAnalysisFillStrategy: z.string().optional(), designAnalysisMaxFields: z.number().int().nonnegative().optional(), designAnalysisType: z.string().optional(),\n    designAnalysisFieldPrefix: z.string().optional(),\n  })\n  .strict();\n\nexport interface WorkflowParameter {\n  displayName: LocalizedText;\n  name: string;\n  type: z.infer<typeof WorkflowParameterTypeSchema>;\n  typeOptions?: z.infer<typeof WorkflowParameterTypeOptionsSchema>;\n  default?: JsonValue;\n  description?: LocalizedText;\n  hint?: string;\n  displayOptions?: { hide?: Record<string, JsonValue[]>; show?: Record<string, JsonValue[]> };\n  options?: Array<WorkflowParameterOption | WorkflowParameter | WorkflowParameterCollection>;\n  placeholder?: LocalizedText;\n  isNodeSetting?: boolean;\n  noDataExpression?: boolean;\n  required?: boolean;\n  example?: string;\n  extractValue?: { type: 'regex'; regex: string };\n  properties?: WorkflowParameter[];\n  assetType?: string;\n  flag?: boolean;\n  enableExpand?: boolean;\n  enableVoice?: boolean;\n  expandButtonText?: string;\n  knowledgeGraphButtonText?: string;\n  selectListDisplayMode?: string;\n  voiceButtonText?: string;\n}\n\nexport interface WorkflowParameterOption {\n  name: LocalizedText;\n  value: string | number | boolean;\n  action?: string;\n  description?: LocalizedText;\n}\n\nexport interface WorkflowParameterCollection {\n  displayName: string;\n  name: string;\n  values: WorkflowParameter[];\n}\n\nexport const WorkflowParameterSchema: z.ZodType<WorkflowParameter> = z.lazy(() =>\n  z.object({\n    displayName: LocalizedTextSchema,\n    name: ContractIdentifierSchema,\n    type: WorkflowParameterTypeSchema,\n    typeOptions: WorkflowParameterTypeOptionsSchema.optional(),\n    default: JsonValueSchema.optional(),\n    description: LocalizedTextSchema.optional(),\n    hint: z.string().optional(),\n    displayOptions: z.object({\n      hide: z.record(z.string(), z.array(JsonValueSchema)).optional(),\n      show: z.record(z.string(), z.array(JsonValueSchema)).optional(),\n    }).strict().optional(),\n    options: z.array(z.union([\n      z.object({ name: LocalizedTextSchema, value: z.union([z.string(), z.number(), z.boolean()]), action: z.string().optional(), description: LocalizedTextSchema.optional() }).strict(),\n      WorkflowParameterSchema,\n      z.object({ displayName: z.string(), name: ContractIdentifierSchema, values: z.array(WorkflowParameterSchema) }).strict(),\n    ])).optional(),\n    placeholder: LocalizedTextSchema.optional(),\n    isNodeSetting: z.boolean().optional(), noDataExpression: z.boolean().optional(), required: z.boolean().optional(), example: z.string().optional(),\n    extractValue: z.object({ type: z.literal('regex'), regex: z.string() }).strict().optional(),\n    properties: z.array(WorkflowParameterSchema).optional(), assetType: z.string().optional(), flag: z.boolean().optional(),\n    enableExpand: z.boolean().optional(), enableVoice: z.boolean().optional(), expandButtonText: z.string().optional(), knowledgeGraphButtonText: z.string().optional(), selectListDisplayMode: z.string().optional(), voiceButtonText: z.string().optional(),\n  }).strict(),\n);\n\nexport const WorkflowOutputBindingSchema = z.object({ key: ContractIdentifierSchema, value: z.string() }).strict();\n\nexport const WorkflowNodeSchema = z\n  .object({\n    id: ContractIdentifierSchema,\n    referenceName: ContractIdentifierSchema,\n    capabilityRef: ContractIdentifierSchema,\n    capabilityVersion: ContractIdentifierSchema.optional(),\n    inputBindings: z.record(z.string(), JsonValueSchema).default({}),\n    configuration: z.object({ executor: z.literal('conductor'), task: ConductorTaskDefinitionSchema }).strict(),\n  })\n  .strict()\n  .superRefine((node, context) => {\n    if (node.configuration.task.taskReferenceName !== node.referenceName) context.addIssue({ code: 'custom', path: ['configuration', 'task', 'taskReferenceName'], message: 'Conductor task reference must match node referenceName.' });\n    if (node.configuration.task.name !== node.capabilityRef) context.addIssue({ code: 'custom', path: ['configuration', 'task', 'name'], message: 'Conductor task name must match node capabilityRef.' });\n    if (JSON.stringify(node.configuration.task.inputParameters ?? {}) !== JSON.stringify(node.inputBindings)) context.addIssue({ code: 'custom', path: ['configuration', 'task', 'inputParameters'], message: 'Conductor task inputs must match node inputBindings.' });\n  });\n\nexport const WorkflowEdgeSchema = z.object({\n  from: ContractIdentifierSchema, to: ContractIdentifierSchema, outputPort: ContractIdentifierSchema.optional(), inputPort: ContractIdentifierSchema.optional(), condition: z.string().optional(),\n}).strict();\n\nexport const WorkflowTriggerSchema = z.object({\n  id: ContractIdentifierSchema,\n  type: z.enum(['manual', 'schedule', 'webhook', 'event', 'api']),\n  enabled: z.boolean(),\n  schedule: z.object({ cron: z.string().trim().min(1) }).strict().optional(),\n  webhook: z.object({\n    path: z.string().trim().min(1).optional(),\n    method: z.enum(['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'OPTIONS', 'HEAD']),\n    auth: z.enum(['NONE', 'BASIC', 'CUSTOM_HEADER']),\n    basicAuth: z.object({ username: z.string(), password: z.string() }).strict().optional(),\n    headerAuth: z.object({ name: z.string().trim().min(1), value: z.string() }).strict().optional(),\n    responseUntil: z.enum(['WORKFLOW_STARTED', 'WORKFLOW_COMPLETED_OR_FINISHED']),\n  }).strict().optional(),\n  event: z.object({\n    eventType: ContractIdentifierSchema,\n    configuration: JsonValueSchema.optional(),\n  }).strict().optional(),\n}).strict().superRefine((trigger, context) => {\n  if (trigger.type === 'schedule' && !trigger.schedule) context.addIssue({ code: 'custom', path: ['schedule'], message: 'Schedule trigger requires schedule configuration.' });\n  if (trigger.type === 'webhook' && !trigger.webhook) context.addIssue({ code: 'custom', path: ['webhook'], message: 'Webhook trigger requires webhook configuration.' });\n  if (trigger.type === 'event' && !trigger.event) context.addIssue({ code: 'custom', path: ['event'], message: 'Event trigger requires event configuration.' });\n});\n\nexport const WorkflowValidationIssueSchema = z.object({\n  taskReferenceName: ContractIdentifierSchema,\n  issueType: z.enum(['ERROR', 'WARNING']),\n  detailReason: z.object({ type: ContractIdentifierSchema, name: ContractIdentifierSchema, detailInformation: JsonValueSchema.optional() }).strict(),\n  humanMessage: z.object({ en: z.string(), zh: z.string() }).strict(),\n}).strict();\n\nexport const WorkflowDefinitionSchema = z.object({\n  contract: z.literal('WorkflowDefinition'),\n  metadata: ContractMetadataSchema.omit({ name: true, description: true, labels: true }).extend({\n    name: LocalizedTextSchema,\n    description: LocalizedTextSchema.optional(),\n    role: z.enum(['workflow', 'template']),\n    teamId: ContractIdentifierSchema,\n    creatorRef: EntityRefSchema,\n    tags: z.array(ContractIdentifierSchema).default([]),\n  }).strict(),\n  revision: z.object({\n    kind: z.enum(['release', 'backup']),\n    recordVersion: z.number().int().positive(),\n    sourceVersion: z.number().int().positive().optional(),\n  }).strict().superRefine((revision, context) => {\n    if (revision.kind === 'backup' && revision.sourceVersion === undefined) context.addIssue({ code: 'custom', path: ['sourceVersion'], message: 'Backup revisions require a sourceVersion.' });\n  }),\n  presentation: z.object({ iconUrl: z.string().optional(), thumbnail: z.string().optional(), canvas: WorkflowCanvasSchema.optional() }).strict(),\n  ports: z.object({ inputs: z.array(ContractPortSchema).default([]), outputs: z.array(ContractPortSchema).default([]) }).strict(),\n  parameters: z.object({ variables: z.array(WorkflowParameterSchema).default([]), outputs: z.array(WorkflowOutputBindingSchema).default([]) }).strict(),\n  graph: z.object({ nodes: z.array(WorkflowNodeSchema), edges: z.array(WorkflowEdgeSchema).default([]) }).strict(),\n  execution: z.object({\n    timeoutMs: z.number().int().positive().optional(), retries: z.number().int().nonnegative().default(0), concurrencyLimit: z.number().int().positive().optional(), idempotency: z.enum(['required', 'supported', 'none']),\n    rateLimit: z.object({ enabled: z.boolean(), max: z.number().int().nonnegative(), windowMs: z.number().int().nonnegative() }).strict().superRefine((rateLimit, context) => {\n      if (rateLimit.enabled && (rateLimit.max === 0 || rateLimit.windowMs === 0)) context.addIssue({ code: 'custom', message: 'Enabled rate limit requires positive max and windowMs.' });\n    }).optional(),\n    conductor: z.object({\n      ownerApp: z.string().optional(), createTime: z.number().int().nonnegative().optional(), updateTime: z.number().int().nonnegative().optional(), createdBy: z.string().optional(), updatedBy: z.string().optional(),\n      failureWorkflow: ContractIdentifierSchema.optional(), schemaVersion: z.number().int().positive().optional(), restartable: z.boolean().optional(), workflowStatusListenerEnabled: z.boolean().optional(), ownerEmail: z.string().email().optional(), timeoutPolicy: z.enum(['TIME_OUT_WF', 'ALERT_ONLY']).optional(),\n      variables: z.record(z.string(), JsonValueSchema).optional(), inputTemplate: z.record(z.string(), JsonValueSchema).optional(),\n    }).strict(),\n  }).strict(),\n  triggers: z.array(WorkflowTriggerSchema).default([]),\n  views: z.array(z.object({ pageRef: ContractIdentifierSchema, placement: ContractIdentifierSchema.optional() }).strict()).default([]),\n  dataContracts: z.object({ reads: z.array(ContractIdentifierSchema).default([]), writes: z.array(ContractIdentifierSchema).default([]), emits: z.array(ContractIdentifierSchema).default([]) }).strict(),\n  governance: z.object({ activated: z.boolean(), validated: z.boolean(), validationIssues: z.array(WorkflowValidationIssueSchema).default([]), hidden: z.boolean().optional() }).strict(),\n  interfaces: z.object({\n    openai: z.object({ enabled: z.boolean(), modelName: z.string().trim().min(1).optional() }).strict(),\n    shortcutRef: EntityRefSchema.optional(),\n    preferredAppId: ContractIdentifierSchema.optional(),\n  }).strict().superRefine((interfaces, context) => {\n    if (interfaces.openai.enabled && !interfaces.openai.modelName) context.addIssue({ code: 'custom', path: ['openai', 'modelName'], message: 'Enabled OpenAI interface requires modelName.' });\n    if (interfaces.shortcutRef && interfaces.shortcutRef.kind !== 'workflow') context.addIssue({ code: 'custom', path: ['shortcutRef', 'kind'], message: 'shortcutRef must reference a workflow.' });\n  }),\n}).strict().superRefine((definition, context) => {\n  const nodeIds = new Set(definition.graph.nodes.map((node) => node.id));\n  const references = new Set(definition.graph.nodes.map((node) => node.referenceName));\n  if (nodeIds.size !== definition.graph.nodes.length) context.addIssue({ code: 'custom', path: ['graph', 'nodes'], message: 'Workflow node ids must be unique.' });\n  if (references.size !== definition.graph.nodes.length) context.addIssue({ code: 'custom', path: ['graph', 'nodes'], message: 'Workflow node reference names must be unique.' });\n  definition.graph.edges.forEach((edge, index) => {\n    if (!nodeIds.has(edge.from) || !nodeIds.has(edge.to)) context.addIssue({ code: 'custom', path: ['graph', 'edges', index], message: 'Workflow edges must reference existing node ids.' });\n  });\n  if (definition.revision.kind === 'release' && definition.metadata.version !== definition.revision.recordVersion) context.addIssue({ code: 'custom', path: ['revision', 'recordVersion'], message: 'Release recordVersion must equal metadata.version.' });\n});\n\nexport const WorkflowEditorCommandSchema = z.object({\n  expectedRecordVersion: z.number().int().positive(),\n  requestId: z.string().min(1).max(128),\n  definition: WorkflowDefinitionSchema,\n}).strict();\n\nexport const WorkflowEditorDocumentSchema = z.object({\n  recordVersion: z.number().int().positive(),\n  definition: WorkflowDefinitionSchema,\n}).strict();\n\nexport type WorkflowEditorCommand = z.infer<typeof WorkflowEditorCommandSchema>;\nexport type WorkflowEditorDocument = z.infer<typeof WorkflowEditorDocumentSchema>;\nexport type ConductorTaskType = z.infer<typeof ConductorTaskTypeSchema>;\nexport type ConductorWorkflowDefinition = z.infer<typeof ConductorWorkflowDefinitionSchema>;\nexport type WorkflowNode = z.infer<typeof WorkflowNodeSchema>;\nexport type WorkflowEdge = z.infer<typeof WorkflowEdgeSchema>;\nexport type WorkflowTrigger = z.infer<typeof WorkflowTriggerSchema>;\nexport type WorkflowDefinitionValidationIssue = z.infer<typeof WorkflowValidationIssueSchema>;\nexport type WorkflowOutputBinding = z.infer<typeof WorkflowOutputBindingSchema>;\nexport type WorkflowDefinition = z.infer<typeof WorkflowDefinitionSchema>;\n","import { z } from 'zod';\nimport { ContractIdentifierSchema, JsonValueSchema, Sha256Schema } from './common';\n\nexport const WorkflowColumnFieldRefSchema = z\n  .object({\n    ontologyId: ContractIdentifierSchema,\n    fieldKey: ContractIdentifierSchema,\n  })\n  .strict();\n\nexport const WorkflowColumnInputSchema = z.discriminatedUnion('kind', [\n  z.object({ kind: z.literal('default') }).strict(),\n  z.object({ kind: z.literal('constant'), value: JsonValueSchema }).strict(),\n  z.object({ kind: z.literal('field'), field: WorkflowColumnFieldRefSchema }).strict(),\n  z\n    .object({\n      kind: z.literal('context'),\n      field: z.enum(['assetId', 'teamId', 'ontologyId', 'columnId']),\n    })\n    .strict(),\n]);\n\nexport const WorkflowColumnDependencySchema = z.discriminatedUnion('kind', [\n  z.object({ kind: z.literal('field'), field: WorkflowColumnFieldRefSchema }).strict(),\n  z\n    .object({\n      kind: z.literal('relation'),\n      relation: WorkflowColumnFieldRefSchema,\n      direction: z.enum(['incoming', 'outgoing']),\n      fields: z.array(WorkflowColumnFieldRefSchema).max(100),\n    })\n    .strict(),\n]);\n\n// Paths are literal own-property segments, never executable JSONPath expressions.\nexport const WorkflowColumnOutputPathSchema = z.array(z.string().min(1).max(256)).max(20);\nexport const WorkflowColumnOutputSchema = z\n  .object({\n    type: z.enum(['number', 'text', 'json']),\n    path: WorkflowColumnOutputPathSchema,\n    nullable: z.boolean().default(false),\n  })\n  .strict();\n\nexport const WorkflowColumnBindingSchema = z\n  .object({\n    contract: z.literal('WorkflowColumnBinding'),\n    version: z.literal(1),\n    enabled: z.boolean(),\n    paused: z.boolean().default(false),\n    workflow: z\n      .object({\n        id: ContractIdentifierSchema,\n        version: z.number().int().positive(),\n        inputSchemaHash: Sha256Schema,\n      })\n      .strict(),\n    inputs: z.record(z.string().min(1).max(128), WorkflowColumnInputSchema),\n    dependencies: z.array(WorkflowColumnDependencySchema).max(100).default([]),\n    output: WorkflowColumnOutputSchema,\n    policy: z\n      .object({\n        debounceMs: z.number().int().min(0).max(30_000).default(5000),\n        maxDelayMs: z.number().int().min(0).max(30_000).default(30_000),\n        concurrency: z.number().int().min(1).max(32).default(2),\n        // Indexed queries need visible projections of their declared sources before execution.\n        requireSearchProjection: z.boolean().optional(),\n      })\n      .strict()\n      .default({ debounceMs: 5000, maxDelayMs: 30_000, concurrency: 2 }),\n    // The workflow supplies an ISO datetime with offset for one future expiry.\n    // Scheduling infrastructure needs no knowledge of months or business periods.\n    expiry: z.object({ path: WorkflowColumnOutputPathSchema }).strict().optional(),\n  })\n  .strict();\n\nexport type WorkflowColumnBinding = z.infer<typeof WorkflowColumnBindingSchema>;\nexport type WorkflowColumnInput = z.infer<typeof WorkflowColumnInputSchema>;\nexport type WorkflowColumnDependency = z.infer<typeof WorkflowColumnDependencySchema>;\nexport type WorkflowColumnFieldRef = z.infer<typeof WorkflowColumnFieldRefSchema>;\n","import { I18nTextSchema } from './declarative-control';\nimport { z } from 'zod';\nimport { ContractIdentifierSchema, JsonObjectSchema } from './common';\n\nconst member = z.string().min(1).max(256).refine(\n  (value) => !['__proto__', 'prototype', 'constructor'].includes(value),\n  'Unsafe component member.',\n);\n\n/** A bounded projection of callback arguments, never executable source. */\nexport const ComponentEventArgumentSchema = z.object({\n  argument: z.number().int().min(0).max(31),\n  path: z.array(member).max(16).default([]),\n}).strict();\n\nexport const ComponentEventBindingSchema = z.object({\n  port: ContractIdentifierSchema,\n  arguments: z.array(ComponentEventArgumentSchema).max(32).default([]),\n  preventDefault: z.boolean().default(false),\n  stopPropagation: z.boolean().default(false),\n}).strict();\n\nexport const ComponentMessageSchema = z.union([\n  ContractIdentifierSchema,\n  z.object({ textI18n: I18nTextSchema }).strict(),\n  z.object({ key: ContractIdentifierSchema, values: z.record(member, z.union([z.string(), z.number().finite(), z.boolean()])).default({}) }).strict(),\n]);\n\n/** An explicit text location inside existing JSON props, never executable source. */\nexport const ComponentMessageBindingSchema = z.object({\n  path: z.array(z.union([\n    member.refine(value => !/[\\u0000-\\u001f\\u007f-\\u009f]/.test(value), 'Invalid component path member.'),\n    z.number().int().nonnegative().max(Number.MAX_SAFE_INTEGER),\n  ])).min(1).max(16),\n  message: ComponentMessageSchema,\n}).strict();\n\n/** Optional adaptation of original React props on an existing RenderNode. */\nexport const ComponentAssemblySchema = z.object({\n  contract: z.literal('ComponentAssembly'),\n  schemaVersion: z.literal(1),\n  props: JsonObjectSchema.default({}),\n  events: z.record(member, ComponentEventBindingSchema).default({}),\n  // Each name remains an explicit RenderTree slot; array order controls composition.\n  slots: z.record(member, z.union([ContractIdentifierSchema, z.array(ContractIdentifierSchema).min(1).max(256).refine(names => new Set(names).size === names.length, 'Component slot names must be unique.')])).default({}),\n  renderers: z.record(member, ContractIdentifierSchema).default({}),\n  hosts: z.record(member, ContractIdentifierSchema).default({}),\n  messages: z.record(member, ComponentMessageSchema).default({}),\n  messageBindings: z.array(ComponentMessageBindingSchema).max(256).optional(),\n}).strict().superRefine((value, context) => {\n  const paths = value.messageBindings?.map(binding => binding.path) ?? [];\n  for (const [index, path] of paths.entries()) {\n    if (typeof path[0] !== 'string' || Object.prototype.hasOwnProperty.call(value.messages, path[0]) || paths.slice(0, index).some(previous => previous.every((part, offset) => path[offset] === part) || path.every((part, offset) => previous[offset] === part))) {\n      context.addIssue({ code: 'custom', path: ['messageBindings', index, 'path'], message: 'Localized paths need a named root and unique, non-overlapping ownership.' });\n    }\n  }\n  const seen = new Set<string>();\n  for (const group of ['props', 'events', 'slots', 'renderers', 'hosts', 'messages'] as const) {\n    for (const key of Object.keys(value[group])) {\n      if (!member.safeParse(key).success || seen.has(key)) {\n        context.addIssue({ code: 'custom', path: [group, key], message: 'Component prop has an unsafe or duplicate owner.' });\n      }\n      seen.add(key);\n    }\n  }\n});\n\nexport type ComponentMessage = z.infer<typeof ComponentMessageSchema>;\nexport type ComponentMessageBinding = z.infer<typeof ComponentMessageBindingSchema>;\nexport type ComponentEventArgument = z.infer<typeof ComponentEventArgumentSchema>;\nexport type ComponentEventBinding = z.infer<typeof ComponentEventBindingSchema>;\nexport type ComponentAssembly = z.infer<typeof ComponentAssemblySchema>;\n\nexport interface ComponentPropDescriptor {\n  name: string;\n  type: string;\n  required: boolean;\n  kind: 'property' | 'slot' | 'event' | 'renderer' | 'host';\n  accepts?: readonly ('property' | 'slot' | 'event' | 'renderer' | 'host')[];\n  defaultValue?: unknown;\n  schema?: Record<string, unknown> | boolean;\n  parameters?: readonly { name: string; type: string }[];\n  result?: string;\n}\n\nexport interface ComponentAssemblyDescriptor {\n  id: string;\n  version: 1;\n  source: string;\n  exports: readonly { entrypoint: string; export: string }[];\n  props: readonly ComponentPropDescriptor[];\n  variants?: readonly { required: readonly string[]; allowed: readonly string[]; properties: Record<string, Record<string, unknown> | boolean> }[];\n  stateBindings?: readonly { prop: string; defaultProp?: string; event: string; argument: number; path: readonly string[] }[];\n}\n","import { z } from 'zod';\nimport { JsonObjectSchema, JsonValueSchema } from './common';\n\nconst member = z.string().min(1).max(256).refine((value) => !['__proto__', 'prototype', 'constructor'].includes(value), 'Unsafe editor path.');\nexport const RecordEditorPathSchema = z.array(z.union([member, z.object({ itemId: z.string().min(1).max(256), idKey: member.default('id') }).strict()])).max(32);\nexport const RecordEditorFieldErrorSchema = z.object({ path: RecordEditorPathSchema, code: z.string().min(1).max(256) }).strict();\n/** Only non-sensitive document values belong in a draft. Secret replacements remain component-local. */\nexport const RecordEditorDraftSchema = z.object({\n  revision: z.string().min(1).max(256),\n  original: JsonObjectSchema,\n  value: JsonObjectSchema,\n  touched: z.array(RecordEditorPathSchema).max(4096),\n  errors: z.array(RecordEditorFieldErrorSchema).max(4096),\n}).strict();\nexport const RecordEditorDraftOperationSchema = z.discriminatedUnion('kind', [\n  z.object({ kind: z.literal('set'), path: RecordEditorPathSchema, value: JsonValueSchema }).strict(),\n  z.object({ kind: z.literal('touch'), path: RecordEditorPathSchema }).strict(),\n  z.object({ kind: z.literal('reset'), revision: z.string().min(1).max(256), value: JsonObjectSchema }).strict(),\n  z.object({ kind: z.literal('insert'), path: RecordEditorPathSchema, idKey: member.default('id'), value: JsonObjectSchema, beforeId: z.string().min(1).optional() }).strict(),\n  z.object({ kind: z.literal('remove'), path: RecordEditorPathSchema, idKey: member.default('id'), itemId: z.string().min(1) }).strict(),\n  z.object({ kind: z.literal('move'), path: RecordEditorPathSchema, idKey: member.default('id'), itemId: z.string().min(1), beforeId: z.string().min(1).optional() }).strict(),\n]);\nexport type RecordEditorPath = z.infer<typeof RecordEditorPathSchema>;\nexport type RecordEditorDraft = z.infer<typeof RecordEditorDraftSchema>;\nexport type RecordEditorDraftOperation = z.infer<typeof RecordEditorDraftOperationSchema>;\nexport type RecordEditorFieldError = z.infer<typeof RecordEditorFieldErrorSchema>;\n\n/** Safe Action diagnostics: paths and localization codes only, never submitted values. */\nexport const RecordEditorValidationDetailsSchema = z.object({\n  contract: z.literal('RecordEditorValidation'),\n  schemaVersion: z.literal(1),\n  errors: z.array(RecordEditorFieldErrorSchema).min(1).max(256),\n}).strict();\nexport const RecordEditorSubmissionSnapshotSchema = z.object({\n  revision: z.string().min(1).max(256),\n  value: JsonObjectSchema,\n}).strict();\nexport type RecordEditorSubmissionSnapshot = z.infer<typeof RecordEditorSubmissionSnapshotSchema>;\n"],"mappings":";;;;;;;;;;;AACA,QAAsB,cAAtB,MAAiC;;AAAjC,YAAA,cAAA;AAOa,YAAA,aAAa;AAE1B,QAAa,OAAb,cAA0B,YAAW;MAEnC,YAAY,GAAS;AACnB,cAAK;AACL,YAAI,CAAC,QAAA,WAAW,KAAK,CAAC;AAAG,gBAAM,IAAI,MAAM,0CAA0C;AACnF,aAAK,MAAM;MACb;MAEA,WAAQ;AACN,eAAO,KAAK;MACd;MAEA,WAAQ;AACN,eAAO;MACT;MAEA,IAAI,QAAK;AACP,eAAO,EAAC,CAAC,KAAK,GAAG,GAAG,EAAC;MACvB;;AAlBF,YAAA,OAAA;AAqBA,QAAa,QAAb,cAA2B,YAAW;MAKpC,YAAY,MAAkC;AAC5C,cAAK;AACL,aAAK,SAAS,OAAO,SAAS,WAAW,CAAC,IAAI,IAAI;MACpD;MAEA,WAAQ;AACN,eAAO,KAAK;MACd;MAEA,WAAQ;AACN,YAAI,KAAK,OAAO,SAAS;AAAG,iBAAO;AACnC,cAAM,OAAO,KAAK,OAAO,CAAC;AAC1B,eAAO,SAAS,MAAM,SAAS;MACjC;MAEA,IAAI,MAAG;;AACL,gBAAO,KAAC,KAAK,UAAI,QAAA,OAAA,SAAA,KAAT,KAAK,OAAS,KAAK,OAAO,OAAO,CAAC,GAAW,MAAgB,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE;MACrF;MAEA,IAAI,QAAK;;AACP,gBAAO,KAAC,KAAK,YAAM,QAAA,OAAA,SAAA,KAAX,KAAK,SAAW,KAAK,OAAO,OAAO,CAAC,OAAkB,MAAK;AACjE,cAAI,aAAa;AAAM,kBAAM,EAAE,GAAG,KAAK,MAAM,EAAE,GAAG,KAAK,KAAK;AAC5D,iBAAO;QACT,GAAG,CAAA,CAAE;MACP;;AA7BF,YAAA,QAAA;AAwCa,YAAA,MAAM,IAAI,MAAM,EAAE;AAI/B,aAAgB,EAAE,SAA+B,MAAe;AAC9D,YAAM,OAAmB,CAAC,KAAK,CAAC,CAAC;AACjC,UAAI,IAAI;AACR,aAAO,IAAI,KAAK,QAAQ;AACtB,mBAAW,MAAM,KAAK,CAAC,CAAC;AACxB,aAAK,KAAK,KAAK,EAAE,CAAC,CAAC;MACrB;AACA,aAAO,IAAI,MAAM,IAAI;IACvB;AARA,YAAA,IAAA;AAUA,QAAM,OAAO,IAAI,MAAM,GAAG;AAE1B,aAAgB,IAAI,SAA+B,MAA4B;AAC7E,YAAM,OAAmB,CAAC,cAAc,KAAK,CAAC,CAAC,CAAC;AAChD,UAAI,IAAI;AACR,aAAO,IAAI,KAAK,QAAQ;AACtB,aAAK,KAAK,IAAI;AACd,mBAAW,MAAM,KAAK,CAAC,CAAC;AACxB,aAAK,KAAK,MAAM,cAAc,KAAK,EAAE,CAAC,CAAC,CAAC;MAC1C;AACA,eAAS,IAAI;AACb,aAAO,IAAI,MAAM,IAAI;IACvB;AAVA,YAAA,MAAA;AAYA,aAAgB,WAAW,MAAkB,KAAuB;AAClE,UAAI,eAAe;AAAO,aAAK,KAAK,GAAG,IAAI,MAAM;eACxC,eAAe;AAAM,aAAK,KAAK,GAAG;;AACtC,aAAK,KAAK,YAAY,GAAG,CAAC;IACjC;AAJA,YAAA,aAAA;AAMA,aAAS,SAAS,MAAgB;AAChC,UAAI,IAAI;AACR,aAAO,IAAI,KAAK,SAAS,GAAG;AAC1B,YAAI,KAAK,CAAC,MAAM,MAAM;AACpB,gBAAM,MAAM,eAAe,KAAK,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC;AACnD,cAAI,QAAQ,QAAW;AACrB,iBAAK,OAAO,IAAI,GAAG,GAAG,GAAG;AACzB;UACF;AACA,eAAK,GAAG,IAAI;QACd;AACA;MACF;IACF;AAEA,aAAS,eAAe,GAAa,GAAW;AAC9C,UAAI,MAAM;AAAM,eAAO;AACvB,UAAI,MAAM;AAAM,eAAO;AACvB,UAAI,OAAO,KAAK,UAAU;AACxB,YAAI,aAAa,QAAQ,EAAE,EAAE,SAAS,CAAC,MAAM;AAAK;AAClD,YAAI,OAAO,KAAK;AAAU,iBAAO,GAAG,EAAE,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC;AACtD,YAAI,EAAE,CAAC,MAAM;AAAK,iBAAO,EAAE,MAAM,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC;AACnD;MACF;AACA,UAAI,OAAO,KAAK,YAAY,EAAE,CAAC,MAAM,OAAO,EAAE,aAAa;AAAO,eAAO,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AAC3F;IACF;AAEA,aAAgB,UAAU,IAAU,IAAQ;AAC1C,aAAO,GAAG,SAAQ,IAAK,KAAK,GAAG,SAAQ,IAAK,KAAK,MAAM,EAAE,GAAG,EAAE;IAChE;AAFA,YAAA,YAAA;AAKA,aAAS,YAAY,GAA+C;AAClE,aAAO,OAAO,KAAK,YAAY,OAAO,KAAK,aAAa,MAAM,OAC1D,IACA,cAAc,MAAM,QAAQ,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC;IACtD;AAEA,aAAgB,UAAU,GAAU;AAClC,aAAO,IAAI,MAAM,cAAc,CAAC,CAAC;IACnC;AAFA,YAAA,YAAA;AAIA,aAAgB,cAAc,GAAU;AACtC,aAAO,KAAK,UAAU,CAAC,EACpB,QAAQ,WAAW,SAAS,EAC5B,QAAQ,WAAW,SAAS;IACjC;AAJA,YAAA,gBAAA;AAMA,aAAgB,YAAY,KAA2B;AACrD,aAAO,OAAO,OAAO,YAAY,QAAA,WAAW,KAAK,GAAG,IAAI,IAAI,MAAM,IAAI,GAAG,EAAE,IAAI,KAAK,GAAG;IACzF;AAFA,YAAA,cAAA;AAKA,aAAgB,iBAAiB,KAA2B;AAC1D,UAAI,OAAO,OAAO,YAAY,QAAA,WAAW,KAAK,GAAG,GAAG;AAClD,eAAO,IAAI,MAAM,GAAG,GAAG,EAAE;MAC3B;AACA,YAAM,IAAI,MAAM,iCAAiC,GAAG,iCAAiC;IACvF;AALA,YAAA,mBAAA;AAOA,aAAgB,WAAW,IAAU;AACnC,aAAO,IAAI,MAAM,GAAG,SAAQ,CAAE;IAChC;AAFA,YAAA,aAAA;;;;;;;;;;ACtKA,QAAA,SAAA;AAeA,QAAM,aAAN,cAAyB,MAAK;MAE5B,YAAY,MAAoB;AAC9B,cAAM,uBAAuB,IAAI,cAAc;AAC/C,aAAK,QAAQ,KAAK;MACpB;;AAwBF,QAAY;AAAZ,KAAA,SAAYA,iBAAc;AACxB,MAAAA,gBAAAA,gBAAA,SAAA,IAAA,CAAA,IAAA;AACA,MAAAA,gBAAAA,gBAAA,WAAA,IAAA,CAAA,IAAA;IACF,GAHY,mBAAc,QAAA,iBAAd,iBAAc,CAAA,EAAA;AASb,YAAA,WAAW;MACtB,OAAO,IAAI,OAAA,KAAK,OAAO;MACvB,KAAK,IAAI,OAAA,KAAK,KAAK;MACnB,KAAK,IAAI,OAAA,KAAK,KAAK;;AAGrB,QAAa,QAAb,MAAkB;MAKhB,YAAY,EAAC,UAAU,OAAM,IAAkB,CAAA,GAAE;AAJ9B,aAAA,SAA2C,CAAA;AAK5D,aAAK,YAAY;AACjB,aAAK,UAAU;MACjB;MAEA,OAAO,cAA2B;AAChC,eAAO,wBAAwB,OAAA,OAAO,eAAe,KAAK,KAAK,YAAY;MAC7E;MAEA,KAAK,QAAc;AACjB,eAAO,IAAI,OAAA,KAAK,KAAK,SAAS,MAAM,CAAC;MACvC;MAEU,SAAS,QAAc;AAC/B,cAAM,KAAK,KAAK,OAAO,MAAM,KAAK,KAAK,WAAW,MAAM;AACxD,eAAO,GAAG,MAAM,GAAG,GAAG,OAAO;MAC/B;MAEQ,WAAW,QAAc;;AAC/B,cAAI,MAAA,KAAA,KAAK,aAAO,QAAA,OAAA,SAAA,SAAA,GAAE,eAAS,QAAA,OAAA,SAAA,SAAA,GAAE,IAAI,MAAM,MAAM,KAAK,aAAa,CAAC,KAAK,UAAU,IAAI,MAAM,GAAI;AAC3F,gBAAM,IAAI,MAAM,oBAAoB,MAAM,gCAAgC;QAC5E;AACA,eAAQ,KAAK,OAAO,MAAM,IAAI,EAAC,QAAQ,OAAO,EAAC;MACjD;;AA5BF,YAAA,QAAA;AAoCA,QAAa,iBAAb,cAAoC,OAAA,KAAI;MAKtC,YAAY,QAAgB,SAAe;AACzC,cAAM,OAAO;AACb,aAAK,SAAS;MAChB;MAEA,SAAS,OAAkB,EAAC,UAAU,UAAS,GAAY;AACzD,aAAK,QAAQ;AACb,aAAK,aAAY,GAAA,OAAA,MAAK,IAAI,OAAA,KAAK,QAAQ,CAAC,IAAI,SAAS;MACvD;;AAbF,YAAA,iBAAA;AAoBA,QAAM,QAAO,GAAA,OAAA;AAEb,QAAa,aAAb,cAAgC,MAAK;MAKnC,YAAY,MAAuB;AACjC,cAAM,IAAI;AALO,aAAA,UAAuB,CAAA;AAMxC,aAAK,SAAS,KAAK;AACnB,aAAK,OAAO,EAAC,GAAG,MAAM,IAAI,KAAK,QAAQ,OAAO,OAAA,IAAG;MACnD;MAEA,MAAG;AACD,eAAO,KAAK;MACd;MAEA,KAAK,QAAc;AACjB,eAAO,IAAI,eAAe,QAAQ,KAAK,SAAS,MAAM,CAAC;MACzD;MAEA,MAAM,cAAuC,OAAgB;;AAC3D,YAAI,MAAM,QAAQ;AAAW,gBAAM,IAAI,MAAM,sCAAsC;AACnF,cAAM,OAAO,KAAK,OAAO,YAAY;AACrC,cAAM,EAAC,OAAM,IAAI;AACjB,cAAM,YAAW,KAAA,MAAM,SAAG,QAAA,OAAA,SAAA,KAAI,MAAM;AACpC,YAAI,KAAK,KAAK,QAAQ,MAAM;AAC5B,YAAI,IAAI;AACN,gBAAM,QAAQ,GAAG,IAAI,QAAQ;AAC7B,cAAI;AAAO,mBAAO;QACpB,OAAO;AACL,eAAK,KAAK,QAAQ,MAAM,IAAI,oBAAI,IAAG;QACrC;AACA,WAAG,IAAI,UAAU,IAAI;AAErB,cAAM,IAAI,KAAK,OAAO,MAAM,MAAM,KAAK,OAAO,MAAM,IAAI,CAAA;AACxD,cAAM,YAAY,EAAE;AACpB,UAAE,SAAS,IAAI,MAAM;AACrB,aAAK,SAAS,OAAO,EAAC,UAAU,QAAQ,UAAS,CAAC;AAClD,eAAO;MACT;MAEA,SAAS,QAAgB,UAAiB;AACxC,cAAM,KAAK,KAAK,QAAQ,MAAM;AAC9B,YAAI,CAAC;AAAI;AACT,eAAO,GAAG,IAAI,QAAQ;MACxB;MAEA,UAAU,WAAiB,SAAuC,KAAK,SAAO;AAC5E,eAAO,KAAK,cAAc,QAAQ,CAAC,SAAwB;AACzD,cAAI,KAAK,cAAc;AAAW,kBAAM,IAAI,MAAM,kBAAkB,IAAI,gBAAgB;AACxF,kBAAO,GAAA,OAAA,KAAI,SAAS,GAAG,KAAK,SAAS;QACvC,CAAC;MACH;MAEA,UACE,SAAuC,KAAK,SAC5C,YACA,SAAiD;AAEjD,eAAO,KAAK,cACV,QACA,CAAC,SAAwB;AACvB,cAAI,KAAK,UAAU;AAAW,kBAAM,IAAI,MAAM,kBAAkB,IAAI,gBAAgB;AACpF,iBAAO,KAAK,MAAM;QACpB,GACA,YACA,OAAO;MAEX;MAEQ,cACN,QACA,WACA,aAA8B,CAAA,GAC9B,SAAiD;AAEjD,YAAI,OAAa,OAAA;AACjB,mBAAW,UAAU,QAAQ;AAC3B,gBAAM,KAAK,OAAO,MAAM;AACxB,cAAI,CAAC;AAAI;AACT,gBAAM,UAAW,WAAW,MAAM,IAAI,WAAW,MAAM,KAAK,oBAAI,IAAG;AACnE,aAAG,QAAQ,CAAC,SAAwB;AAClC,gBAAI,QAAQ,IAAI,IAAI;AAAG;AACvB,oBAAQ,IAAI,MAAM,eAAe,OAAO;AACxC,gBAAI,IAAI,UAAU,IAAI;AACtB,gBAAI,GAAG;AACL,oBAAM,MAAM,KAAK,KAAK,MAAM,QAAA,SAAS,MAAM,QAAA,SAAS;AACpD,sBAAO,GAAA,OAAA,KAAI,IAAI,GAAG,GAAG,IAAI,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK,EAAE;YACtD,WAAY,IAAI,YAAO,QAAP,YAAO,SAAA,SAAP,QAAU,IAAI,GAAI;AAChC,sBAAO,GAAA,OAAA,KAAI,IAAI,GAAG,CAAC,GAAG,KAAK,KAAK,EAAE;YACpC,OAAO;AACL,oBAAM,IAAI,WAAW,IAAI;YAC3B;AACA,oBAAQ,IAAI,MAAM,eAAe,SAAS;UAC5C,CAAC;QACH;AACA,eAAO;MACT;;AAhGF,YAAA,aAAA;;;;;;;;;;ACpHA,QAAA,SAAA;AACA,QAAA,UAAA;AAEA,QAAA,SAAA;AAAQ,WAAA,eAAA,SAAA,KAAA,EAAA,YAAA,MAAA,KAAA,WAAA;AAAA,aAAA,OAAA;IAAC,EAAA,CAAA;AAAE,WAAA,eAAA,SAAA,OAAA,EAAA,YAAA,MAAA,KAAA,WAAA;AAAA,aAAA,OAAA;IAAG,EAAA,CAAA;AAAE,WAAA,eAAA,SAAA,aAAA,EAAA,YAAA,MAAA,KAAA,WAAA;AAAA,aAAA,OAAA;IAAS,EAAA,CAAA;AAAE,WAAA,eAAA,SAAA,OAAA,EAAA,YAAA,MAAA,KAAA,WAAA;AAAA,aAAA,OAAA;IAAG,EAAA,CAAA;AAAE,WAAA,eAAA,SAAA,eAAA,EAAA,YAAA,MAAA,KAAA,WAAA;AAAA,aAAA,OAAA;IAAW,EAAA,CAAA;AAAE,WAAA,eAAA,SAAA,aAAA,EAAA,YAAA,MAAA,KAAA,WAAA;AAAA,aAAA,OAAA;IAAS,EAAA,CAAA;AAAE,WAAA,eAAA,SAAA,cAAA,EAAA,YAAA,MAAA,KAAA,WAAA;AAAA,aAAA,OAAA;IAAU,EAAA,CAAA;AAAE,WAAA,eAAA,SAAA,QAAA,EAAA,YAAA,MAAA,KAAA,WAAA;AAAA,aAAA,OAAA;IAAI,EAAA,CAAA;AACxE,QAAA,UAAA;AAAQ,WAAA,eAAA,SAAA,SAAA,EAAA,YAAA,MAAA,KAAA,WAAA;AAAA,aAAA,QAAA;IAAK,EAAA,CAAA;AAAc,WAAA,eAAA,SAAA,cAAA,EAAA,YAAA,MAAA,KAAA,WAAA;AAAA,aAAA,QAAA;IAAU,EAAA,CAAA;AAAE,WAAA,eAAA,SAAA,kBAAA,EAAA,YAAA,MAAA,KAAA,WAAA;AAAA,aAAA,QAAA;IAAc,EAAA,CAAA;AAAkB,WAAA,eAAA,SAAA,YAAA,EAAA,YAAA,MAAA,KAAA,WAAA;AAAA,aAAA,QAAA;IAAQ,EAAA,CAAA;AAQlE,YAAA,YAAY;MACvB,IAAI,IAAI,OAAA,MAAM,GAAG;MACjB,KAAK,IAAI,OAAA,MAAM,IAAI;MACnB,IAAI,IAAI,OAAA,MAAM,GAAG;MACjB,KAAK,IAAI,OAAA,MAAM,IAAI;MACnB,IAAI,IAAI,OAAA,MAAM,KAAK;MACnB,KAAK,IAAI,OAAA,MAAM,KAAK;MACpB,KAAK,IAAI,OAAA,MAAM,GAAG;MAClB,IAAI,IAAI,OAAA,MAAM,IAAI;MAClB,KAAK,IAAI,OAAA,MAAM,IAAI;MACnB,KAAK,IAAI,OAAA,MAAM,GAAG;;AAGpB,QAAe,OAAf,MAAmB;MAGjB,gBAAa;AACX,eAAO;MACT;MAEA,cAAc,QAAmB,YAAqB;AACpD,eAAO;MACT;;AAOF,QAAM,MAAN,cAAkB,KAAI;MACpB,YACmB,SACA,MACT,KAAc;AAEtB,cAAK;AAJY,aAAA,UAAA;AACA,aAAA,OAAA;AACT,aAAA,MAAA;MAGV;MAEA,OAAO,EAAC,KAAK,GAAE,GAAY;AACzB,cAAM,UAAU,MAAM,QAAA,SAAS,MAAM,KAAK;AAC1C,cAAM,MAAM,KAAK,QAAQ,SAAY,KAAK,MAAM,KAAK,GAAG;AACxD,eAAO,GAAG,OAAO,IAAI,KAAK,IAAI,GAAG,GAAG,MAAM;MAC5C;MAEA,cAAc,OAAkB,WAAoB;AAClD,YAAI,CAAC,MAAM,KAAK,KAAK,GAAG;AAAG;AAC3B,YAAI,KAAK;AAAK,eAAK,MAAM,aAAa,KAAK,KAAK,OAAO,SAAS;AAChE,eAAO;MACT;MAEA,IAAI,QAAK;AACP,eAAO,KAAK,eAAe,OAAA,cAAc,KAAK,IAAI,QAAQ,CAAA;MAC5D;;AAGF,QAAM,SAAN,cAAqB,KAAI;MACvB,YACW,KACF,KACU,aAAqB;AAEtC,cAAK;AAJI,aAAA,MAAA;AACF,aAAA,MAAA;AACU,aAAA,cAAA;MAGnB;MAEA,OAAO,EAAC,GAAE,GAAY;AACpB,eAAO,GAAG,KAAK,GAAG,MAAM,KAAK,GAAG,MAAM;MACxC;MAEA,cAAc,OAAkB,WAAoB;AAClD,YAAI,KAAK,eAAe,OAAA,QAAQ,CAAC,MAAM,KAAK,IAAI,GAAG,KAAK,CAAC,KAAK;AAAa;AAC3E,aAAK,MAAM,aAAa,KAAK,KAAK,OAAO,SAAS;AAClD,eAAO;MACT;MAEA,IAAI,QAAK;AACP,cAAM,QAAQ,KAAK,eAAe,OAAA,OAAO,CAAA,IAAK,EAAC,GAAG,KAAK,IAAI,MAAK;AAChE,eAAO,aAAa,OAAO,KAAK,GAAG;MACrC;;AAGF,QAAM,WAAN,cAAuB,OAAM;MAC3B,YACE,KACiB,IACjB,KACA,aAAqB;AAErB,cAAM,KAAK,KAAK,WAAW;AAJV,aAAA,KAAA;MAKnB;MAEA,OAAO,EAAC,GAAE,GAAY;AACpB,eAAO,GAAG,KAAK,GAAG,IAAI,KAAK,EAAE,KAAK,KAAK,GAAG,MAAM;MAClD;;AAGF,QAAM,QAAN,cAAoB,KAAI;MAEtB,YAAqB,OAAW;AAC9B,cAAK;AADc,aAAA,QAAA;AADZ,aAAA,QAAmB,CAAA;MAG5B;MAEA,OAAO,EAAC,GAAE,GAAY;AACpB,eAAO,GAAG,KAAK,KAAK,MAAM;MAC5B;;AAGF,QAAM,QAAN,cAAoB,KAAI;MAEtB,YAAqB,OAAY;AAC/B,cAAK;AADc,aAAA,QAAA;AADZ,aAAA,QAAmB,CAAA;MAG5B;MAEA,OAAO,EAAC,GAAE,GAAY;AACpB,cAAM,QAAQ,KAAK,QAAQ,IAAI,KAAK,KAAK,KAAK;AAC9C,eAAO,QAAQ,KAAK,MAAM;MAC5B;;AAGF,QAAM,QAAN,cAAoB,KAAI;MACtB,YAAqB,OAAW;AAC9B,cAAK;AADc,aAAA,QAAA;MAErB;MAEA,OAAO,EAAC,GAAE,GAAY;AACpB,eAAO,SAAS,KAAK,KAAK,MAAM;MAClC;MAEA,IAAI,QAAK;AACP,eAAO,KAAK,MAAM;MACpB;;AAGF,QAAM,UAAN,cAAsB,KAAI;MACxB,YAAoB,MAAc;AAChC,cAAK;AADa,aAAA,OAAA;MAEpB;MAEA,OAAO,EAAC,GAAE,GAAY;AACpB,eAAO,GAAG,KAAK,IAAI,MAAM;MAC3B;MAEA,gBAAa;AACX,eAAO,GAAG,KAAK,IAAI,KAAK,OAAO;MACjC;MAEA,cAAc,OAAkB,WAAoB;AAClD,aAAK,OAAO,aAAa,KAAK,MAAM,OAAO,SAAS;AACpD,eAAO;MACT;MAEA,IAAI,QAAK;AACP,eAAO,KAAK,gBAAgB,OAAA,cAAc,KAAK,KAAK,QAAQ,CAAA;MAC9D;;AAGF,QAAe,aAAf,cAAkC,KAAI;MACpC,YAAqB,QAAqB,CAAA,GAAE;AAC1C,cAAK;AADc,aAAA,QAAA;MAErB;MAEA,OAAO,MAAe;AACpB,eAAO,KAAK,MAAM,OAAO,CAAC,MAAM,MAAM,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE;MACjE;MAEA,gBAAa;AACX,cAAM,EAAC,MAAK,IAAI;AAChB,YAAI,IAAI,MAAM;AACd,eAAO,KAAK;AACV,gBAAM,IAAI,MAAM,CAAC,EAAE,cAAa;AAChC,cAAI,MAAM,QAAQ,CAAC;AAAG,kBAAM,OAAO,GAAG,GAAG,GAAG,CAAC;mBACpC;AAAG,kBAAM,CAAC,IAAI;;AAClB,kBAAM,OAAO,GAAG,CAAC;QACxB;AACA,eAAO,MAAM,SAAS,IAAI,OAAO;MACnC;MAEA,cAAc,OAAkB,WAAoB;AAClD,cAAM,EAAC,MAAK,IAAI;AAChB,YAAI,IAAI,MAAM;AACd,eAAO,KAAK;AAEV,gBAAM,IAAI,MAAM,CAAC;AACjB,cAAI,EAAE,cAAc,OAAO,SAAS;AAAG;AACvC,wBAAc,OAAO,EAAE,KAAK;AAC5B,gBAAM,OAAO,GAAG,CAAC;QACnB;AACA,eAAO,MAAM,SAAS,IAAI,OAAO;MACnC;MAEA,IAAI,QAAK;AACP,eAAO,KAAK,MAAM,OAAO,CAAC,OAAkB,MAAM,SAAS,OAAO,EAAE,KAAK,GAAG,CAAA,CAAE;MAChF;;AAOF,QAAe,YAAf,cAAiC,WAAU;MACzC,OAAO,MAAe;AACpB,eAAO,MAAM,KAAK,KAAK,MAAM,OAAO,IAAI,IAAI,MAAM,KAAK;MACzD;;AAGF,QAAM,OAAN,cAAmB,WAAU;;AAE7B,QAAM,OAAN,cAAmB,UAAS;;AACV,SAAA,OAAO;AAGzB,QAAM,KAAN,MAAM,YAAW,UAAS;MAGxB,YACU,WACR,OAAmB;AAEnB,cAAM,KAAK;AAHH,aAAA,YAAA;MAIV;MAEA,OAAO,MAAe;AACpB,YAAI,OAAO,MAAM,KAAK,SAAS,MAAM,MAAM,OAAO,IAAI;AACtD,YAAI,KAAK;AAAM,kBAAQ,UAAU,KAAK,KAAK,OAAO,IAAI;AACtD,eAAO;MACT;MAEA,gBAAa;AACX,cAAM,cAAa;AACnB,cAAM,OAAO,KAAK;AAClB,YAAI,SAAS;AAAM,iBAAO,KAAK;AAC/B,YAAI,IAAI,KAAK;AACb,YAAI,GAAG;AACL,gBAAM,KAAK,EAAE,cAAa;AAC1B,cAAI,KAAK,OAAO,MAAM,QAAQ,EAAE,IAAI,IAAI,KAAK,EAAE,IAAK;QACtD;AACA,YAAI,GAAG;AACL,cAAI,SAAS;AAAO,mBAAO,aAAa,MAAK,IAAI,EAAE;AACnD,cAAI,KAAK,MAAM;AAAQ,mBAAO;AAC9B,iBAAO,IAAI,IAAG,IAAI,IAAI,GAAG,aAAa,MAAK,CAAC,CAAC,IAAI,EAAE,KAAK;QAC1D;AACA,YAAI,SAAS,SAAS,CAAC,KAAK,MAAM;AAAQ,iBAAO;AACjD,eAAO;MACT;MAEA,cAAc,OAAkB,WAAoB;;AAClD,aAAK,QAAO,KAAA,KAAK,UAAI,QAAA,OAAA,SAAA,SAAA,GAAE,cAAc,OAAO,SAAS;AACrD,YAAI,EAAE,MAAM,cAAc,OAAO,SAAS,KAAK,KAAK;AAAO;AAC3D,aAAK,YAAY,aAAa,KAAK,WAAW,OAAO,SAAS;AAC9D,eAAO;MACT;MAEA,IAAI,QAAK;AACP,cAAM,QAAQ,MAAM;AACpB,qBAAa,OAAO,KAAK,SAAS;AAClC,YAAI,KAAK;AAAM,mBAAS,OAAO,KAAK,KAAK,KAAK;AAC9C,eAAO;MACT;;AA7CgB,OAAA,OAAO;AAoDzB,QAAe,MAAf,cAA2B,UAAS;;AAClB,QAAA,OAAO;AAGzB,QAAM,UAAN,cAAsB,IAAG;MACvB,YAAoB,WAAe;AACjC,cAAK;AADa,aAAA,YAAA;MAEpB;MAEA,OAAO,MAAe;AACpB,eAAO,OAAO,KAAK,SAAS,MAAM,MAAM,OAAO,IAAI;MACrD;MAEA,cAAc,OAAkB,WAAoB;AAClD,YAAI,CAAC,MAAM,cAAc,OAAO,SAAS;AAAG;AAC5C,aAAK,YAAY,aAAa,KAAK,WAAW,OAAO,SAAS;AAC9D,eAAO;MACT;MAEA,IAAI,QAAK;AACP,eAAO,SAAS,MAAM,OAAO,KAAK,UAAU,KAAK;MACnD;;AAGF,QAAM,WAAN,cAAuB,IAAG;MACxB,YACmB,SACA,MACA,MACA,IAAY;AAE7B,cAAK;AALY,aAAA,UAAA;AACA,aAAA,OAAA;AACA,aAAA,OAAA;AACA,aAAA,KAAA;MAGnB;MAEA,OAAO,MAAe;AACpB,cAAM,UAAU,KAAK,MAAM,QAAA,SAAS,MAAM,KAAK;AAC/C,cAAM,EAAC,MAAM,MAAM,GAAE,IAAI;AACzB,eAAO,OAAO,OAAO,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,EAAE,KAAK,IAAI,QAAQ,MAAM,OAAO,IAAI;MACxF;MAEA,IAAI,QAAK;AACP,cAAM,QAAQ,aAAa,MAAM,OAAO,KAAK,IAAI;AACjD,eAAO,aAAa,OAAO,KAAK,EAAE;MACpC;;AAGF,QAAM,UAAN,cAAsB,IAAG;MACvB,YACmB,MACA,SACA,MACT,UAAc;AAEtB,cAAK;AALY,aAAA,OAAA;AACA,aAAA,UAAA;AACA,aAAA,OAAA;AACT,aAAA,WAAA;MAGV;MAEA,OAAO,MAAe;AACpB,eAAO,OAAO,KAAK,OAAO,IAAI,KAAK,IAAI,IAAI,KAAK,IAAI,IAAI,KAAK,QAAQ,MAAM,MAAM,OAAO,IAAI;MAC9F;MAEA,cAAc,OAAkB,WAAoB;AAClD,YAAI,CAAC,MAAM,cAAc,OAAO,SAAS;AAAG;AAC5C,aAAK,WAAW,aAAa,KAAK,UAAU,OAAO,SAAS;AAC5D,eAAO;MACT;MAEA,IAAI,QAAK;AACP,eAAO,SAAS,MAAM,OAAO,KAAK,SAAS,KAAK;MAClD;;AAGF,QAAM,OAAN,cAAmB,UAAS;MAE1B,YACS,MACA,MACA,OAAe;AAEtB,cAAK;AAJE,aAAA,OAAA;AACA,aAAA,OAAA;AACA,aAAA,QAAA;MAGT;MAEA,OAAO,MAAe;AACpB,cAAM,SAAS,KAAK,QAAQ,WAAW;AACvC,eAAO,GAAG,MAAM,YAAY,KAAK,IAAI,IAAI,KAAK,IAAI,MAAM,MAAM,OAAO,IAAI;MAC3E;;AAZgB,SAAA,OAAO;AAezB,QAAM,SAAN,cAAqB,WAAU;MAG7B,OAAO,MAAe;AACpB,eAAO,YAAY,MAAM,OAAO,IAAI;MACtC;;AAJgB,WAAA,OAAO;AAOzB,QAAM,MAAN,cAAkB,UAAS;MAIzB,OAAO,MAAe;AACpB,YAAI,OAAO,QAAQ,MAAM,OAAO,IAAI;AACpC,YAAI,KAAK;AAAO,kBAAQ,KAAK,MAAM,OAAO,IAAI;AAC9C,YAAI,KAAK;AAAS,kBAAQ,KAAK,QAAQ,OAAO,IAAI;AAClD,eAAO;MACT;MAEA,gBAAa;;AACX,cAAM,cAAa;AACnB,SAAA,KAAA,KAAK,WAAK,QAAA,OAAA,SAAA,SAAA,GAAE,cAAa;AACzB,SAAA,KAAA,KAAK,aAAO,QAAA,OAAA,SAAA,SAAA,GAAE,cAAa;AAC3B,eAAO;MACT;MAEA,cAAc,OAAkB,WAAoB;;AAClD,cAAM,cAAc,OAAO,SAAS;AACpC,SAAA,KAAA,KAAK,WAAK,QAAA,OAAA,SAAA,SAAA,GAAE,cAAc,OAAO,SAAS;AAC1C,SAAA,KAAA,KAAK,aAAO,QAAA,OAAA,SAAA,SAAA,GAAE,cAAc,OAAO,SAAS;AAC5C,eAAO;MACT;MAEA,IAAI,QAAK;AACP,cAAM,QAAQ,MAAM;AACpB,YAAI,KAAK;AAAO,mBAAS,OAAO,KAAK,MAAM,KAAK;AAChD,YAAI,KAAK;AAAS,mBAAS,OAAO,KAAK,QAAQ,KAAK;AACpD,eAAO;MACT;;AAOF,QAAM,QAAN,cAAoB,UAAS;MAE3B,YAAqB,OAAW;AAC9B,cAAK;AADc,aAAA,QAAA;MAErB;MAEA,OAAO,MAAe;AACpB,eAAO,SAAS,KAAK,KAAK,MAAM,MAAM,OAAO,IAAI;MACnD;;AAPgB,UAAA,OAAO;AAUzB,QAAM,UAAN,cAAsB,UAAS;MAE7B,OAAO,MAAe;AACpB,eAAO,YAAY,MAAM,OAAO,IAAI;MACtC;;AAHgB,YAAA,OAAO;AAiCzB,QAAa,UAAb,MAAoB;MASlB,YAAY,UAAsB,OAAuB,CAAA,GAAE;AANlD,aAAA,UAA0B,CAAA;AAElB,aAAA,eAAyB,CAAA;AACzB,aAAA,aAAwB,CAAA;AAIvC,aAAK,OAAO,EAAC,GAAG,MAAM,IAAI,KAAK,QAAQ,OAAO,GAAE;AAChD,aAAK,YAAY;AACjB,aAAK,SAAS,IAAI,QAAA,MAAM,EAAC,QAAQ,SAAQ,CAAC;AAC1C,aAAK,SAAS,CAAC,IAAI,KAAI,CAAE;MAC3B;MAEA,WAAQ;AACN,eAAO,KAAK,MAAM,OAAO,KAAK,IAAI;MACpC;;MAGA,KAAK,QAAc;AACjB,eAAO,KAAK,OAAO,KAAK,MAAM;MAChC;;MAGA,UAAU,QAAc;AACtB,eAAO,KAAK,UAAU,KAAK,MAAM;MACnC;;MAGA,WAAW,cAAuC,OAAgB;AAChE,cAAM,OAAO,KAAK,UAAU,MAAM,cAAc,KAAK;AACrD,cAAM,KAAK,KAAK,QAAQ,KAAK,MAAM,MAAM,KAAK,QAAQ,KAAK,MAAM,IAAI,oBAAI,IAAG;AAC5E,WAAG,IAAI,IAAI;AACX,eAAO;MACT;MAEA,cAAc,QAAgB,UAAiB;AAC7C,eAAO,KAAK,UAAU,SAAS,QAAQ,QAAQ;MACjD;;;MAIA,UAAU,WAAe;AACvB,eAAO,KAAK,UAAU,UAAU,WAAW,KAAK,OAAO;MACzD;MAEA,YAAS;AACP,eAAO,KAAK,UAAU,UAAU,KAAK,OAAO;MAC9C;MAEQ,KACN,SACA,cACA,KACA,UAAkB;AAElB,cAAM,OAAO,KAAK,OAAO,OAAO,YAAY;AAC5C,YAAI,QAAQ,UAAa;AAAU,eAAK,WAAW,KAAK,GAAG,IAAI;AAC/D,aAAK,UAAU,IAAI,IAAI,SAAS,MAAM,GAAG,CAAC;AAC1C,eAAO;MACT;;MAGA,MAAM,cAA6B,KAAe,WAAmB;AACnE,eAAO,KAAK,KAAK,QAAA,SAAS,OAAO,cAAc,KAAK,SAAS;MAC/D;;MAGA,IAAI,cAA6B,KAAgB,WAAmB;AAClE,eAAO,KAAK,KAAK,QAAA,SAAS,KAAK,cAAc,KAAK,SAAS;MAC7D;;MAGA,IAAI,cAA6B,KAAgB,WAAmB;AAClE,eAAO,KAAK,KAAK,QAAA,SAAS,KAAK,cAAc,KAAK,SAAS;MAC7D;;MAGA,OAAO,KAAW,KAAe,aAAqB;AACpD,eAAO,KAAK,UAAU,IAAI,OAAO,KAAK,KAAK,WAAW,CAAC;MACzD;;MAGA,IAAI,KAAW,KAAa;AAC1B,eAAO,KAAK,UAAU,IAAI,SAAS,KAAK,QAAA,UAAU,KAAK,GAAG,CAAC;MAC7D;;MAGA,KAAK,GAAmB;AACtB,YAAI,OAAO,KAAK;AAAY,YAAC;iBACpB,MAAM,OAAA;AAAK,eAAK,UAAU,IAAI,QAAQ,CAAC,CAAC;AACjD,eAAO;MACT;;MAGA,UAAU,WAA+C;AACvD,cAAM,OAAmB,CAAC,GAAG;AAC7B,mBAAW,CAAC,KAAK,KAAK,KAAK,WAAW;AACpC,cAAI,KAAK,SAAS;AAAG,iBAAK,KAAK,GAAG;AAClC,eAAK,KAAK,GAAG;AACb,cAAI,QAAQ,SAAS,KAAK,KAAK,KAAK;AAClC,iBAAK,KAAK,GAAG;AACb,aAAA,GAAA,OAAA,YAAW,MAAM,KAAK;UACxB;QACF;AACA,aAAK,KAAK,GAAG;AACb,eAAO,IAAI,OAAA,MAAM,IAAI;MACvB;;MAGA,GAAG,WAA2B,UAAkB,UAAgB;AAC9D,aAAK,WAAW,IAAI,GAAG,SAAS,CAAC;AAEjC,YAAI,YAAY,UAAU;AACxB,eAAK,KAAK,QAAQ,EAAE,KAAI,EAAG,KAAK,QAAQ,EAAE,MAAK;QACjD,WAAW,UAAU;AACnB,eAAK,KAAK,QAAQ,EAAE,MAAK;QAC3B,WAAW,UAAU;AACnB,gBAAM,IAAI,MAAM,0CAA0C;QAC5D;AACA,eAAO;MACT;;MAGA,OAAO,WAAyB;AAC9B,eAAO,KAAK,UAAU,IAAI,GAAG,SAAS,CAAC;MACzC;;MAGA,OAAI;AACF,eAAO,KAAK,UAAU,IAAI,KAAI,CAAE;MAClC;;MAGA,QAAK;AACH,eAAO,KAAK,cAAc,IAAI,IAAI;MACpC;MAEQ,KAAK,MAAW,SAAe;AACrC,aAAK,WAAW,IAAI;AACpB,YAAI;AAAS,eAAK,KAAK,OAAO,EAAE,OAAM;AACtC,eAAO;MACT;;MAGA,IAAI,WAAiB,SAAe;AAClC,eAAO,KAAK,KAAK,IAAI,QAAQ,SAAS,GAAG,OAAO;MAClD;;MAGA,SACE,cACA,MACA,IACA,SACA,UAAgB,KAAK,KAAK,MAAM,QAAA,SAAS,MAAM,QAAA,SAAS,KAAG;AAE3D,cAAM,OAAO,KAAK,OAAO,OAAO,YAAY;AAC5C,eAAO,KAAK,KAAK,IAAI,SAAS,SAAS,MAAM,MAAM,EAAE,GAAG,MAAM,QAAQ,IAAI,CAAC;MAC7E;;MAGA,MACE,cACA,UACA,SACA,UAAgB,QAAA,SAAS,OAAK;AAE9B,cAAM,OAAO,KAAK,OAAO,OAAO,YAAY;AAC5C,YAAI,KAAK,KAAK,KAAK;AACjB,gBAAM,MAAM,oBAAoB,OAAA,OAAO,WAAW,KAAK,IAAI,QAAQ,QAAQ;AAC3E,iBAAO,KAAK,SAAS,MAAM,IAAG,GAAA,OAAA,KAAI,GAAG,WAAW,CAAC,MAAK;AACpD,iBAAK,IAAI,OAAM,GAAA,OAAA,KAAI,GAAG,IAAI,CAAC,GAAG;AAC9B,oBAAQ,IAAI;UACd,CAAC;QACH;AACA,eAAO,KAAK,KAAK,IAAI,QAAQ,MAAM,SAAS,MAAM,QAAQ,GAAG,MAAM,QAAQ,IAAI,CAAC;MAClF;;;MAIA,MACE,cACA,KACA,SACA,UAAgB,KAAK,KAAK,MAAM,QAAA,SAAS,MAAM,QAAA,SAAS,OAAK;AAE7D,YAAI,KAAK,KAAK,eAAe;AAC3B,iBAAO,KAAK,MAAM,eAAc,GAAA,OAAA,iBAAgB,GAAG,KAAK,OAAO;QACjE;AACA,cAAM,OAAO,KAAK,OAAO,OAAO,YAAY;AAC5C,eAAO,KAAK,KAAK,IAAI,QAAQ,MAAM,SAAS,MAAM,GAAG,GAAG,MAAM,QAAQ,IAAI,CAAC;MAC7E;;MAGA,SAAM;AACJ,eAAO,KAAK,cAAc,GAAG;MAC/B;;MAGA,MAAM,OAAW;AACf,eAAO,KAAK,UAAU,IAAI,MAAM,KAAK,CAAC;MACxC;;MAGA,MAAM,OAAY;AAChB,eAAO,KAAK,UAAU,IAAI,MAAM,KAAK,CAAC;MACxC;;MAGA,OAAO,OAAuB;AAC5B,cAAM,OAAO,IAAI,OAAM;AACvB,aAAK,WAAW,IAAI;AACpB,aAAK,KAAK,KAAK;AACf,YAAI,KAAK,MAAM,WAAW;AAAG,gBAAM,IAAI,MAAM,wCAAwC;AACrF,eAAO,KAAK,cAAc,MAAM;MAClC;;MAGA,IAAI,SAAgB,WAA+B,aAAmB;AACpE,YAAI,CAAC,aAAa,CAAC;AAAa,gBAAM,IAAI,MAAM,8CAA8C;AAC9F,cAAM,OAAO,IAAI,IAAG;AACpB,aAAK,WAAW,IAAI;AACpB,aAAK,KAAK,OAAO;AACjB,YAAI,WAAW;AACb,gBAAM,QAAQ,KAAK,KAAK,GAAG;AAC3B,eAAK,YAAY,KAAK,QAAQ,IAAI,MAAM,KAAK;AAC7C,oBAAU,KAAK;QACjB;AACA,YAAI,aAAa;AACf,eAAK,YAAY,KAAK,UAAU,IAAI,QAAO;AAC3C,eAAK,KAAK,WAAW;QACvB;AACA,eAAO,KAAK,cAAc,OAAO,OAAO;MAC1C;;MAGA,MAAM,OAAW;AACf,eAAO,KAAK,UAAU,IAAI,MAAM,KAAK,CAAC;MACxC;;MAGA,MAAM,MAAc,WAAkB;AACpC,aAAK,aAAa,KAAK,KAAK,OAAO,MAAM;AACzC,YAAI;AAAM,eAAK,KAAK,IAAI,EAAE,SAAS,SAAS;AAC5C,eAAO;MACT;;MAGA,SAAS,WAAkB;AACzB,cAAM,MAAM,KAAK,aAAa,IAAG;AACjC,YAAI,QAAQ;AAAW,gBAAM,IAAI,MAAM,sCAAsC;AAC7E,cAAM,UAAU,KAAK,OAAO,SAAS;AACrC,YAAI,UAAU,KAAM,cAAc,UAAa,YAAY,WAAY;AACrE,gBAAM,IAAI,MAAM,mCAAmC,OAAO,OAAO,SAAS,WAAW;QACvF;AACA,aAAK,OAAO,SAAS;AACrB,eAAO;MACT;;MAGA,KAAK,MAAY,OAAa,OAAA,KAAK,OAAiB,UAAgB;AAClE,aAAK,WAAW,IAAI,KAAK,MAAM,MAAM,KAAK,CAAC;AAC3C,YAAI;AAAU,eAAK,KAAK,QAAQ,EAAE,QAAO;AACzC,eAAO;MACT;;MAGA,UAAO;AACL,eAAO,KAAK,cAAc,IAAI;MAChC;MAEA,SAAS,IAAI,GAAC;AACZ,eAAO,MAAM,GAAG;AACd,eAAK,MAAM,cAAa;AACxB,eAAK,MAAM,cAAc,KAAK,MAAM,OAAO,KAAK,UAAU;QAC5D;MACF;MAEQ,UAAU,MAAc;AAC9B,aAAK,UAAU,MAAM,KAAK,IAAI;AAC9B,eAAO;MACT;MAEQ,WAAW,MAAoB;AACrC,aAAK,UAAU,MAAM,KAAK,IAAI;AAC9B,aAAK,OAAO,KAAK,IAAI;MACvB;MAEQ,cAAc,IAAsB,IAAqB;AAC/D,cAAM,IAAI,KAAK;AACf,YAAI,aAAa,MAAO,MAAM,aAAa,IAAK;AAC9C,eAAK,OAAO,IAAG;AACf,iBAAO;QACT;AACA,cAAM,IAAI,MAAM,0BAA0B,KAAK,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,KAAK,GAAG,IAAI,GAAG;MACrF;MAEQ,UAAU,MAAe;AAC/B,cAAM,IAAI,KAAK;AACf,YAAI,EAAE,aAAa,KAAK;AACtB,gBAAM,IAAI,MAAM,8BAA8B;QAChD;AACA,aAAK,YAAY,EAAE,OAAO;AAC1B,eAAO;MACT;MAEA,IAAY,QAAK;AACf,eAAO,KAAK,OAAO,CAAC;MACtB;MAEA,IAAY,YAAS;AACnB,cAAM,KAAK,KAAK;AAChB,eAAO,GAAG,GAAG,SAAS,CAAC;MACzB;MAEA,IAAY,UAAU,MAAgB;AACpC,cAAM,KAAK,KAAK;AAChB,WAAG,GAAG,SAAS,CAAC,IAAI;MACtB;;AAjUF,YAAA,UAAA;AAwUA,aAAS,SAAS,OAAkB,MAAe;AACjD,iBAAW,KAAK;AAAM,cAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,KAAK,CAAC,KAAK;AAC/D,aAAO;IACT;AAEA,aAAS,aAAa,OAAkB,MAAc;AACpD,aAAO,gBAAgB,OAAA,cAAc,SAAS,OAAO,KAAK,KAAK,IAAI;IACrE;AAGA,aAAS,aAAa,MAAgB,OAAkB,WAAoB;AAC1E,UAAI,gBAAgB,OAAA;AAAM,eAAO,YAAY,IAAI;AACjD,UAAI,CAAC,YAAY,IAAI;AAAG,eAAO;AAC/B,aAAO,IAAI,OAAA,MACT,KAAK,OAAO,OAAO,CAAC,OAAmB,MAAwB;AAC7D,YAAI,aAAa,OAAA;AAAM,cAAI,YAAY,CAAC;AACxC,YAAI,aAAa,OAAA;AAAO,gBAAM,KAAK,GAAG,EAAE,MAAM;;AACzC,gBAAM,KAAK,CAAC;AACjB,eAAO;MACT,GAAG,CAAA,CAAE,CAAC;AAGR,eAAS,YAAY,GAAO;AAC1B,cAAM,IAAI,UAAU,EAAE,GAAG;AACzB,YAAI,MAAM,UAAa,MAAM,EAAE,GAAG,MAAM;AAAG,iBAAO;AAClD,eAAO,MAAM,EAAE,GAAG;AAClB,eAAO;MACT;AAEA,eAAS,YAAY,GAAW;AAC9B,eACE,aAAa,OAAA,SACb,EAAE,OAAO,KACP,CAAC,MAAM,aAAa,OAAA,QAAQ,MAAM,EAAE,GAAG,MAAM,KAAK,UAAU,EAAE,GAAG,MAAM,MAAS;MAGtF;IACF;AAEA,aAAS,cAAc,OAAkB,MAAe;AACtD,iBAAW,KAAK;AAAM,cAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,KAAK,CAAC,KAAK;IACjE;AAGA,aAAgB,IAAI,GAAkB;AACpC,aAAO,OAAO,KAAK,aAAa,OAAO,KAAK,YAAY,MAAM,OAAO,CAAC,KAAI,GAAA,OAAA,MAAK,IAAI,CAAC,CAAC;IACvF;AAFA,YAAA,MAAA;AAIA,QAAM,UAAU,QAAQ,QAAA,UAAU,GAAG;AAGrC,aAAgB,OAAO,MAAY;AACjC,aAAO,KAAK,OAAO,OAAO;IAC5B;AAFA,YAAA,MAAA;AAIA,QAAM,SAAS,QAAQ,QAAA,UAAU,EAAE;AAGnC,aAAgB,MAAM,MAAY;AAChC,aAAO,KAAK,OAAO,MAAM;IAC3B;AAFA,YAAA,KAAA;AAMA,aAAS,QAAQ,IAAQ;AACvB,aAAO,CAAC,GAAG,MAAO,MAAM,OAAA,MAAM,IAAI,MAAM,OAAA,MAAM,KAAI,GAAA,OAAA,KAAI,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC;IAC9E;AAEA,aAAS,IAAI,GAAO;AAClB,aAAO,aAAa,OAAA,OAAO,KAAI,GAAA,OAAA,MAAK,CAAC;IACvC;;;;;;;;;;ACj1BA,QAAA,YAAA;AACA,QAAA,SAAA;AAIA,aAAgB,OAAkC,KAAQ;AACxD,YAAM,OAA0B,CAAA;AAChC,iBAAW,QAAQ;AAAK,aAAK,IAAI,IAAI;AACrC,aAAO;IACT;AAJA,YAAA,SAAA;AAMA,aAAgB,kBAAkB,IAAe,QAAiB;AAChE,UAAI,OAAO,UAAU;AAAW,eAAO;AACvC,UAAI,OAAO,KAAK,MAAM,EAAE,WAAW;AAAG,eAAO;AAC7C,wBAAkB,IAAI,MAAM;AAC5B,aAAO,CAAC,eAAe,QAAQ,GAAG,KAAK,MAAM,GAAG;IAClD;AALA,YAAA,oBAAA;AAOA,aAAgB,kBAAkB,IAAe,SAAoB,GAAG,QAAM;AAC5E,YAAM,EAAC,MAAM,KAAI,IAAI;AACrB,UAAI,CAAC,KAAK;AAAc;AACxB,UAAI,OAAO,WAAW;AAAW;AACjC,YAAM,QAAQ,KAAK,MAAM;AACzB,iBAAW,OAAO,QAAQ;AACxB,YAAI,CAAC,MAAM,GAAG;AAAG,0BAAgB,IAAI,qBAAqB,GAAG,GAAG;MAClE;IACF;AARA,YAAA,oBAAA;AAUA,aAAgB,eACd,QACA,OAAyC;AAEzC,UAAI,OAAO,UAAU;AAAW,eAAO,CAAC;AACxC,iBAAW,OAAO;AAAQ,YAAI,MAAM,GAAG;AAAG,iBAAO;AACjD,aAAO;IACT;AAPA,YAAA,iBAAA;AASA,aAAgB,qBAAqB,QAAmB,OAAsB;AAC5E,UAAI,OAAO,UAAU;AAAW,eAAO,CAAC;AACxC,iBAAW,OAAO;AAAQ,YAAI,QAAQ,UAAU,MAAM,IAAI,GAAG;AAAG,iBAAO;AACvE,aAAO;IACT;AAJA,YAAA,uBAAA;AAMA,aAAgB,eACd,EAAC,cAAc,WAAU,GACzB,QACA,SACA,OAAsB;AAEtB,UAAI,CAAC,OAAO;AACV,YAAI,OAAO,UAAU,YAAY,OAAO,UAAU;AAAW,iBAAO;AACpE,YAAI,OAAO,UAAU;AAAU,kBAAO,GAAA,UAAA,KAAI,MAAM;MAClD;AACA,cAAO,GAAA,UAAA,KAAI,YAAY,GAAG,UAAU,IAAG,GAAA,UAAA,aAAY,OAAO,CAAC;IAC7D;AAXA,YAAA,iBAAA;AAaA,aAAgB,iBAAiB,KAAW;AAC1C,aAAO,oBAAoB,mBAAmB,GAAG,CAAC;IACpD;AAFA,YAAA,mBAAA;AAIA,aAAgB,eAAe,KAAoB;AACjD,aAAO,mBAAmB,kBAAkB,GAAG,CAAC;IAClD;AAFA,YAAA,iBAAA;AAIA,aAAgB,kBAAkB,KAAoB;AACpD,UAAI,OAAO,OAAO;AAAU,eAAO,GAAG,GAAG;AACzC,aAAO,IAAI,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI;IACpD;AAHA,YAAA,oBAAA;AAKA,aAAgB,oBAAoB,KAAW;AAC7C,aAAO,IAAI,QAAQ,OAAO,GAAG,EAAE,QAAQ,OAAO,GAAG;IACnD;AAFA,YAAA,sBAAA;AAIA,aAAgB,SAAY,IAAa,GAAiB;AACxD,UAAI,MAAM,QAAQ,EAAE,GAAG;AACrB,mBAAW,KAAK;AAAI,YAAE,CAAC;MACzB,OAAO;AACL,UAAE,EAAE;MACN;IACF;AANA,YAAA,WAAA;AAwBA,aAAS,mBAA4C,EACnD,YACA,aACA,aACA,aAAY,GACS;AACrB,aAAO,CAAC,KAAK,MAAM,IAAI,WAAU;AAC/B,cAAM,MACJ,OAAO,SACH,OACA,cAAc,UAAA,QACb,gBAAgB,UAAA,OAAO,WAAW,KAAK,MAAM,EAAE,IAAI,YAAY,KAAK,MAAM,EAAE,GAAG,MAChF,gBAAgB,UAAA,QACf,YAAY,KAAK,IAAI,IAAI,GAAG,QAC7B,YAAY,MAAM,EAAE;AAC1B,eAAO,WAAW,UAAA,QAAQ,EAAE,eAAe,UAAA,QAAQ,aAAa,KAAK,GAAG,IAAI;MAC9E;IACF;AAOa,YAAA,iBAAiC;MAC5C,OAAO,mBAAmB;QACxB,YAAY,CAAC,KAAK,MAAM,OACtB,IAAI,IAAG,GAAA,UAAA,KAAI,EAAE,gBAAgB,IAAI,kBAAkB,MAAK;AACtD,cAAI,IACF,GAAA,UAAA,KAAI,IAAI,aACR,MAAM,IAAI,OAAO,IAAI,IAAI,GACzB,MAAM,IAAI,OAAO,KAAI,GAAA,UAAA,KAAI,EAAE,QAAQ,EAAE,MAAK,GAAA,UAAA,mBAAkB,EAAE,KAAK,IAAI,GAAG,CAAC;QAE/E,CAAC;QACH,aAAa,CAAC,KAAK,MAAM,OACvB,IAAI,IAAG,GAAA,UAAA,KAAI,EAAE,aAAa,MAAK;AAC7B,cAAI,SAAS,MAAM;AACjB,gBAAI,OAAO,IAAI,IAAI;UACrB,OAAO;AACL,gBAAI,OAAO,KAAI,GAAA,UAAA,KAAI,EAAE,QAAQ;AAC7B,yBAAa,KAAK,IAAI,IAAI;UAC5B;QACF,CAAC;QACH,aAAa,CAAC,MAAM,OAAQ,SAAS,OAAO,OAAO,EAAC,GAAG,MAAM,GAAG,GAAE;QAClE,cAAc;OACf;MACD,OAAO,mBAAmB;QACxB,YAAY,CAAC,KAAK,MAAM,OACtB,IAAI,IAAG,GAAA,UAAA,KAAI,EAAE,gBAAgB,IAAI,kBAAkB,MACjD,IAAI,OAAO,KAAI,GAAA,UAAA,KAAI,IAAI,sBAAsB,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,IAAI,EAAE,CAAC;QAElF,aAAa,CAAC,KAAK,MAAM,OACvB,IAAI,IAAG,GAAA,UAAA,KAAI,EAAE,aAAa,MACxB,IAAI,OAAO,IAAI,SAAS,OAAO,QAAO,GAAA,UAAA,KAAI,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,IAAI,EAAE,CAAC;QAE/E,aAAa,CAAC,MAAM,OAAQ,SAAS,OAAO,OAAO,KAAK,IAAI,MAAM,EAAE;QACpE,cAAc,CAAC,KAAK,UAAU,IAAI,IAAI,SAAS,KAAK;OACrD;;AAGH,aAAgB,qBAAqB,KAAc,IAAwB;AACzE,UAAI,OAAO;AAAM,eAAO,IAAI,IAAI,SAAS,IAAI;AAC7C,YAAM,QAAQ,IAAI,IAAI,UAAS,GAAA,UAAA,MAAK;AACpC,UAAI,OAAO;AAAW,qBAAa,KAAK,OAAO,EAAE;AACjD,aAAO;IACT;AALA,YAAA,uBAAA;AAOA,aAAgB,aAAa,KAAc,OAAa,IAA0B;AAChF,aAAO,KAAK,EAAE,EAAE,QAAQ,CAAC,MAAM,IAAI,QAAO,GAAA,UAAA,KAAI,KAAK,IAAG,GAAA,UAAA,aAAY,CAAC,CAAC,IAAI,IAAI,CAAC;IAC/E;AAFA,YAAA,eAAA;AAIA,QAAM,WAAoC,CAAA;AAE1C,aAAgB,QAAQ,KAAc,GAAiB;AACrD,aAAO,IAAI,WAAW,QAAQ;QAC5B,KAAK;QACL,MAAM,SAAS,EAAE,IAAI,MAAM,SAAS,EAAE,IAAI,IAAI,IAAI,OAAA,MAAM,EAAE,IAAI;OAC/D;IACH;AALA,YAAA,UAAA;AAOA,QAAY;AAAZ,KAAA,SAAYC,OAAI;AACd,MAAAA,MAAAA,MAAA,KAAA,IAAA,CAAA,IAAA;AACA,MAAAA,MAAAA,MAAA,KAAA,IAAA,CAAA,IAAA;IACF,GAHY,SAAI,QAAA,OAAJ,OAAI,CAAA,EAAA;AAKhB,aAAgB,aACd,UACA,cACA,kBAA0B;AAG1B,UAAI,oBAAoB,UAAA,MAAM;AAC5B,cAAM,WAAW,iBAAiB,KAAK;AACvC,eAAO,mBACH,YACE,GAAA,UAAA,WAAU,QAAQ,YAClB,GAAA,UAAA,YAAW,QAAQ,YACrB,YACA,GAAA,UAAA,WAAU,QAAQ,MAClB,GAAA,UAAA,WAAU,QAAQ;MACxB;AACA,aAAO,oBAAmB,GAAA,UAAA,aAAY,QAAQ,EAAE,SAAQ,IAAK,MAAM,kBAAkB,QAAQ;IAC/F;AAjBA,YAAA,eAAA;AAmBA,aAAgB,gBACd,IACA,KACA,OAAwB,GAAG,KAAK,cAAY;AAE5C,UAAI,CAAC;AAAM;AACX,YAAM,gBAAgB,GAAG;AACzB,UAAI,SAAS;AAAM,cAAM,IAAI,MAAM,GAAG;AACtC,SAAG,KAAK,OAAO,KAAK,GAAG;IACzB;AATA,YAAA,kBAAA;;;;;;;;;AC3MA,QAAA,YAAA;AAEA,QAAM,QAAQ;;MAEZ,MAAM,IAAI,UAAA,KAAK,MAAM;;;MAErB,QAAQ,IAAI,UAAA,KAAK,QAAQ;;MACzB,cAAc,IAAI,UAAA,KAAK,cAAc;MACrC,YAAY,IAAI,UAAA,KAAK,YAAY;MACjC,oBAAoB,IAAI,UAAA,KAAK,oBAAoB;MACjD,UAAU,IAAI,UAAA,KAAK,UAAU;;MAC7B,gBAAgB,IAAI,UAAA,KAAK,gBAAgB;;;MAEzC,SAAS,IAAI,UAAA,KAAK,SAAS;;MAC3B,QAAQ,IAAI,UAAA,KAAK,QAAQ;;MACzB,MAAM,IAAI,UAAA,KAAK,MAAM;;MAErB,MAAM,IAAI,UAAA,KAAK,MAAM;MACrB,OAAO,IAAI,UAAA,KAAK,OAAO;;MAEvB,MAAM,IAAI,UAAA,KAAK,MAAM;MACrB,SAAS,IAAI,UAAA,KAAK,SAAS;MAC3B,SAAS,IAAI,UAAA,KAAK,SAAS;MAC3B,UAAU,IAAI,UAAA,KAAK,UAAU;;AAG/B,YAAA,UAAe;;;;;;;;;;ACxBf,QAAA,YAAA;AAEA,QAAA,SAAA;AACA,QAAA,UAAA;AAEa,YAAA,eAAuC;MAClD,SAAS,CAAC,EAAC,QAAO,OAAM,GAAA,UAAA,kBAAiB,OAAO;;AAGrC,YAAA,oBAA4C;MACvD,SAAS,CAAC,EAAC,SAAS,WAAU,MAC5B,cACI,GAAA,UAAA,QAAO,OAAO,qBAAqB,UAAU,cAC7C,GAAA,UAAA,QAAO,OAAO;;AAStB,aAAgB,YACd,KACA,QAAgC,QAAA,cAChC,YACA,mBAA2B;AAE3B,YAAM,EAAC,GAAE,IAAI;AACb,YAAM,EAAC,KAAK,eAAe,UAAS,IAAI;AACxC,YAAM,SAAS,gBAAgB,KAAK,OAAO,UAAU;AACrD,UAAI,sBAAiB,QAAjB,sBAAiB,SAAjB,oBAAsB,iBAAiB,WAAY;AACrD,iBAAS,KAAK,MAAM;MACtB,OAAO;AACL,qBAAa,KAAI,GAAA,UAAA,MAAK,MAAM,GAAG;MACjC;IACF;AAdA,YAAA,cAAA;AAgBA,aAAgB,iBACd,KACA,QAAgC,QAAA,cAChC,YAAuB;AAEvB,YAAM,EAAC,GAAE,IAAI;AACb,YAAM,EAAC,KAAK,eAAe,UAAS,IAAI;AACxC,YAAM,SAAS,gBAAgB,KAAK,OAAO,UAAU;AACrD,eAAS,KAAK,MAAM;AACpB,UAAI,EAAE,iBAAiB,YAAY;AACjC,qBAAa,IAAI,QAAA,QAAE,OAAO;MAC5B;IACF;AAZA,YAAA,mBAAA;AAcA,aAAgB,iBAAiB,KAAc,WAAe;AAC5D,UAAI,OAAO,QAAA,QAAE,QAAQ,SAAS;AAC9B,UAAI,IAAG,GAAA,UAAA,KAAI,QAAA,QAAE,OAAO,aAAa,MAC/B,IAAI,GACF,WACA,MAAM,IAAI,QAAO,GAAA,UAAA,KAAI,QAAA,QAAE,OAAO,WAAW,SAAS,GAClD,MAAM,IAAI,OAAO,QAAA,QAAE,SAAS,IAAI,CAAC,CAClC;IAEL;AATA,YAAA,mBAAA;AAWA,aAAgB,aAAa,EAC3B,KACA,SACA,aACA,MACA,WACA,GAAE,GACc;AAEhB,UAAI,cAAc;AAAW,cAAM,IAAI,MAAM,0BAA0B;AACvE,YAAM,MAAM,IAAI,KAAK,KAAK;AAC1B,UAAI,SAAS,KAAK,WAAW,QAAA,QAAE,QAAQ,CAAC,MAAK;AAC3C,YAAI,MAAM,MAAK,GAAA,UAAA,KAAI,QAAA,QAAE,OAAO,IAAI,CAAC,GAAG;AACpC,YAAI,IAAG,GAAA,UAAA,KAAI,GAAG,+BAA+B,MAC3C,IAAI,QAAO,GAAA,UAAA,KAAI,GAAG,kBAAiB,GAAA,UAAA,WAAU,QAAA,QAAE,cAAc,GAAG,SAAS,CAAC,CAAC;AAE7E,YAAI,QAAO,GAAA,UAAA,KAAI,GAAG,gBAAe,GAAA,UAAA,OAAM,GAAG,aAAa,IAAI,OAAO,EAAE;AACpE,YAAI,GAAG,KAAK,SAAS;AACnB,cAAI,QAAO,GAAA,UAAA,KAAI,GAAG,WAAW,WAAW;AACxC,cAAI,QAAO,GAAA,UAAA,KAAI,GAAG,SAAS,IAAI;QACjC;MACF,CAAC;IACH;AAtBA,YAAA,eAAA;AAwBA,aAAS,SAAS,KAAc,QAAY;AAC1C,YAAM,MAAM,IAAI,MAAM,OAAO,MAAM;AACnC,UAAI,IACF,GAAA,UAAA,KAAI,QAAA,QAAE,OAAO,aACb,MAAM,IAAI,OAAO,QAAA,QAAE,UAAS,GAAA,UAAA,MAAK,GAAG,GAAG,IACvC,GAAA,UAAA,KAAI,QAAA,QAAE,OAAO,SAAS,GAAG,GAAG;AAE9B,UAAI,MAAK,GAAA,UAAA,KAAI,QAAA,QAAE,MAAM,IAAI;IAC3B;AAEA,aAAS,aAAa,IAAe,MAAU;AAC7C,YAAM,EAAC,KAAK,cAAc,UAAS,IAAI;AACvC,UAAI,UAAU,QAAQ;AACpB,YAAI,OAAM,GAAA,UAAA,SAAQ,GAAG,eAAuB,IAAI,IAAI,GAAG;MACzD,OAAO;AACL,YAAI,QAAO,GAAA,UAAA,KAAI,YAAY,WAAW,IAAI;AAC1C,YAAI,OAAO,KAAK;MAClB;IACF;AAEA,QAAM,IAAI;MACR,SAAS,IAAI,UAAA,KAAK,SAAS;MAC3B,YAAY,IAAI,UAAA,KAAK,YAAY;;MACjC,QAAQ,IAAI,UAAA,KAAK,QAAQ;MACzB,cAAc,IAAI,UAAA,KAAK,cAAc;MACrC,SAAS,IAAI,UAAA,KAAK,SAAS;MAC3B,QAAQ,IAAI,UAAA,KAAK,QAAQ;MACzB,cAAc,IAAI,UAAA,KAAK,cAAc;;AAGvC,aAAS,gBACP,KACA,OACA,YAAuB;AAEvB,YAAM,EAAC,aAAY,IAAI,IAAI;AAC3B,UAAI,iBAAiB;AAAO,gBAAO,GAAA,UAAA;AACnC,aAAO,YAAY,KAAK,OAAO,UAAU;IAC3C;AAEA,aAAS,YACP,KACA,OACA,aAAyB,CAAA,GAAE;AAE3B,YAAM,EAAC,KAAK,GAAE,IAAI;AAClB,YAAM,YAAyC;QAC7C,kBAAkB,IAAI,UAAU;QAChC,gBAAgB,KAAK,UAAU;;AAEjC,sBAAgB,KAAK,OAAO,SAAS;AACrC,aAAO,IAAI,OAAO,GAAG,SAAS;IAChC;AAEA,aAAS,kBAAkB,EAAC,UAAS,GAAc,EAAC,aAAY,GAAa;AAC3E,YAAM,WAAW,gBACb,GAAA,UAAA,OAAM,SAAS,IAAG,GAAA,OAAA,cAAa,cAAc,OAAA,KAAK,GAAG,CAAC,KACtD;AACJ,aAAO,CAAC,QAAA,QAAE,eAAc,GAAA,UAAA,WAAU,QAAA,QAAE,cAAc,QAAQ,CAAC;IAC7D;AAEA,aAAS,gBACP,EAAC,SAAS,IAAI,EAAC,cAAa,EAAC,GAC7B,EAAC,YAAY,aAAY,GAAa;AAEtC,UAAI,UAAU,eAAe,iBAAgB,GAAA,UAAA,OAAM,aAAa,IAAI,OAAO;AAC3E,UAAI,YAAY;AACd,mBAAU,GAAA,UAAA,OAAM,OAAO,IAAG,GAAA,OAAA,cAAa,YAAY,OAAA,KAAK,GAAG,CAAC;MAC9D;AACA,aAAO,CAAC,EAAE,YAAY,OAAO;IAC/B;AAEA,aAAS,gBACP,KACA,EAAC,QAAQ,QAAO,GAChB,WAAsC;AAEtC,YAAM,EAAC,SAAS,MAAM,aAAa,GAAE,IAAI;AACzC,YAAM,EAAC,MAAM,cAAc,cAAc,WAAU,IAAI;AACvD,gBAAU,KACR,CAAC,EAAE,SAAS,OAAO,GACnB,CAAC,EAAE,QAAQ,OAAO,UAAU,aAAa,OAAO,GAAG,IAAI,WAAU,GAAA,UAAA,MAAK,CAAC;AAEzE,UAAI,KAAK,UAAU;AACjB,kBAAU,KAAK,CAAC,EAAE,SAAS,OAAO,WAAW,aAAa,QAAQ,GAAG,IAAI,OAAO,CAAC;MACnF;AACA,UAAI,KAAK,SAAS;AAChB,kBAAU,KACR,CAAC,EAAE,QAAQ,WAAW,GACtB,CAAC,EAAE,eAAc,GAAA,UAAA,KAAI,YAAY,GAAG,UAAU,EAAE,GAChD,CAAC,QAAA,QAAE,MAAM,IAAI,CAAC;MAElB;AACA,UAAI;AAAc,kBAAU,KAAK,CAAC,EAAE,cAAc,YAAY,CAAC;IACjE;;;;;;;;;;ACrLA,QAAA,WAAA;AACA,QAAA,YAAA;AACA,QAAA,UAAA;AAEA,QAAM,YAAoC;MACxC,SAAS;;AAGX,aAAgB,qBAAqB,IAAa;AAChD,YAAM,EAAC,KAAK,QAAQ,aAAY,IAAI;AACpC,UAAI,WAAW,OAAO;AACpB,yBAAiB,IAAI,KAAK;MAC5B,WAAW,OAAO,UAAU,YAAY,OAAO,WAAW,MAAM;AAC9D,YAAI,OAAO,QAAA,QAAE,IAAI;MACnB,OAAO;AACL,YAAI,QAAO,GAAA,UAAA,KAAI,YAAY,WAAW,IAAI;AAC1C,YAAI,OAAO,IAAI;MACjB;IACF;AAVA,YAAA,uBAAA;AAYA,aAAgB,kBAAkB,IAAe,OAAW;AAC1D,YAAM,EAAC,KAAK,OAAM,IAAI;AACtB,UAAI,WAAW,OAAO;AACpB,YAAI,IAAI,OAAO,KAAK;AACpB,yBAAiB,EAAE;MACrB,OAAO;AACL,YAAI,IAAI,OAAO,IAAI;MACrB;IACF;AARA,YAAA,oBAAA;AAUA,aAAS,iBAAiB,IAAe,mBAA2B;AAClE,YAAM,EAAC,KAAK,KAAI,IAAI;AAEpB,YAAM,MAAuB;QAC3B;QACA,SAAS;QACT;QACA,QAAQ;QACR,YAAY;QACZ,aAAa;QACb,QAAQ,CAAA;QACR;;AAEF,OAAA,GAAA,SAAA,aAAY,KAAK,WAAW,QAAW,iBAAiB;IAC1D;;;;;;;;;;AC5CA,QAAM,aAAa,CAAC,UAAU,UAAU,WAAW,WAAW,QAAQ,UAAU,OAAO;AAIvF,QAAM,YAAyB,IAAI,IAAI,UAAU;AAEjD,aAAgB,WAAW,GAAU;AACnC,aAAO,OAAO,KAAK,YAAY,UAAU,IAAI,CAAC;IAChD;AAFA,YAAA,aAAA;AA2BA,aAAgB,WAAQ;AACtB,YAAM,SAAsE;QAC1E,QAAQ,EAAC,MAAM,UAAU,OAAO,CAAA,EAAE;QAClC,QAAQ,EAAC,MAAM,UAAU,OAAO,CAAA,EAAE;QAClC,OAAO,EAAC,MAAM,SAAS,OAAO,CAAA,EAAE;QAChC,QAAQ,EAAC,MAAM,UAAU,OAAO,CAAA,EAAE;;AAEpC,aAAO;QACL,OAAO,EAAC,GAAG,QAAQ,SAAS,MAAM,SAAS,MAAM,MAAM,KAAI;QAC3D,OAAO,CAAC,EAAC,OAAO,CAAA,EAAE,GAAG,OAAO,QAAQ,OAAO,QAAQ,OAAO,OAAO,OAAO,MAAM;QAC9E,MAAM,EAAC,OAAO,CAAA,EAAE;QAChB,KAAK,CAAA;QACL,UAAU,CAAA;;IAEd;AAdA,YAAA,WAAA;;;;;;;;;;AC/BA,aAAgB,sBACd,EAAC,QAAQ,KAAI,GACb,MAAc;AAEd,YAAM,QAAQ,KAAK,MAAM,MAAM,IAAI;AACnC,aAAO,SAAS,UAAU,QAAQ,eAAe,QAAQ,KAAK;IAChE;AANA,YAAA,wBAAA;AAQA,aAAgB,eAAe,QAAyB,OAAgB;AACtE,aAAO,MAAM,MAAM,KAAK,CAAC,SAAS,cAAc,QAAQ,IAAI,CAAC;IAC/D;AAFA,YAAA,iBAAA;AAIA,aAAgB,cAAc,QAAyB,MAAU;;AAC/D,aACE,OAAO,KAAK,OAAO,MAAM,YACzB,KAAA,KAAK,WAAW,gBAAU,QAAA,OAAA,SAAA,SAAA,GAAE,KAAK,CAAC,QAAQ,OAAO,GAAG,MAAM,MAAS;IAEvE;AALA,YAAA,gBAAA;;;;;;;;;;ACTA,QAAA,UAAA;AACA,QAAA,kBAAA;AACA,QAAA,WAAA;AACA,QAAA,YAAA;AACA,QAAA,SAAA;AAEA,QAAY;AAAZ,KAAA,SAAYC,WAAQ;AAClB,MAAAA,UAAAA,UAAA,SAAA,IAAA,CAAA,IAAA;AACA,MAAAA,UAAAA,UAAA,OAAA,IAAA,CAAA,IAAA;IACF,GAHY,aAAQ,QAAA,WAAR,WAAQ,CAAA,EAAA;AAKpB,aAAgB,eAAe,QAAuB;AACpD,YAAM,QAAQ,aAAa,OAAO,IAAI;AACtC,YAAM,UAAU,MAAM,SAAS,MAAM;AACrC,UAAI,SAAS;AACX,YAAI,OAAO,aAAa;AAAO,gBAAM,IAAI,MAAM,wCAAwC;MACzF,OAAO;AACL,YAAI,CAAC,MAAM,UAAU,OAAO,aAAa,QAAW;AAClD,gBAAM,IAAI,MAAM,0CAA0C;QAC5D;AACA,YAAI,OAAO,aAAa;AAAM,gBAAM,KAAK,MAAM;MACjD;AACA,aAAO;IACT;AAZA,YAAA,iBAAA;AAeA,aAAgB,aAAa,IAAuB;AAClD,YAAM,QAAmB,MAAM,QAAQ,EAAE,IAAI,KAAK,KAAK,CAAC,EAAE,IAAI,CAAA;AAC9D,UAAI,MAAM,MAAM,QAAA,UAAU;AAAG,eAAO;AACpC,YAAM,IAAI,MAAM,0CAA0C,MAAM,KAAK,GAAG,CAAC;IAC3E;AAJA,YAAA,eAAA;AAMA,aAAgB,uBAAuB,IAAkB,OAAiB;AACxE,YAAM,EAAC,KAAK,MAAM,KAAI,IAAI;AAC1B,YAAM,WAAW,cAAc,OAAO,KAAK,WAAW;AACtD,YAAM,aACJ,MAAM,SAAS,KACf,EAAE,SAAS,WAAW,KAAK,MAAM,WAAW,MAAK,GAAA,gBAAA,uBAAsB,IAAI,MAAM,CAAC,CAAC;AACrF,UAAI,YAAY;AACd,cAAM,YAAY,eAAe,OAAO,MAAM,KAAK,eAAe,SAAS,KAAK;AAChF,YAAI,GAAG,WAAW,MAAK;AACrB,cAAI,SAAS;AAAQ,uBAAW,IAAI,OAAO,QAAQ;;AAC9C,4BAAgB,EAAE;QACzB,CAAC;MACH;AACA,aAAO;IACT;AAdA,YAAA,yBAAA;AAgBA,QAAM,YAA2B,oBAAI,IAAI,CAAC,UAAU,UAAU,WAAW,WAAW,MAAM,CAAC;AAC3F,aAAS,cAAc,OAAmB,aAA+B;AACvE,aAAO,cACH,MAAM,OAAO,CAAC,MAAM,UAAU,IAAI,CAAC,KAAM,gBAAgB,WAAW,MAAM,OAAQ,IAClF,CAAA;IACN;AAEA,aAAS,WAAW,IAAkB,OAAmB,UAAoB;AAC3E,YAAM,EAAC,KAAK,MAAM,KAAI,IAAI;AAC1B,YAAM,WAAW,IAAI,IAAI,aAAY,GAAA,UAAA,YAAW,IAAI,EAAE;AACtD,YAAM,UAAU,IAAI,IAAI,YAAW,GAAA,UAAA,aAAY;AAC/C,UAAI,KAAK,gBAAgB,SAAS;AAChC,YAAI,IAAG,GAAA,UAAA,KAAI,QAAQ,iCAAiC,IAAI,QAAQ,IAAI,gBAAgB,MAClF,IACG,OAAO,OAAM,GAAA,UAAA,KAAI,IAAI,KAAK,EAC1B,OAAO,WAAU,GAAA,UAAA,YAAW,IAAI,EAAE,EAClC,GAAG,eAAe,OAAO,MAAM,KAAK,aAAa,GAAG,MAAM,IAAI,OAAO,SAAS,IAAI,CAAC,CAAC;MAE3F;AACA,UAAI,IAAG,GAAA,UAAA,KAAI,OAAO,gBAAgB;AAClC,iBAAW,KAAK,UAAU;AACxB,YAAI,UAAU,IAAI,CAAC,KAAM,MAAM,WAAW,KAAK,gBAAgB,SAAU;AACvE,6BAAmB,CAAC;QACtB;MACF;AACA,UAAI,KAAI;AACR,sBAAgB,EAAE;AAClB,UAAI,MAAK;AAET,UAAI,IAAG,GAAA,UAAA,KAAI,OAAO,kBAAkB,MAAK;AACvC,YAAI,OAAO,MAAM,OAAO;AACxB,yBAAiB,IAAI,OAAO;MAC9B,CAAC;AAED,eAAS,mBAAmB,GAAS;AACnC,gBAAQ,GAAG;UACT,KAAK;AACH,gBACG,QAAO,GAAA,UAAA,KAAI,QAAQ,mBAAmB,QAAQ,eAAe,EAC7D,OAAO,UAAS,GAAA,UAAA,UAAS,IAAI,EAAE,EAC/B,QAAO,GAAA,UAAA,KAAI,IAAI,WAAW,EAC1B,OAAO,UAAS,GAAA,UAAA,MAAK;AACxB;UACF,KAAK;AACH,gBACG,QACC,GAAA,UAAA,KAAI,QAAQ,oBAAoB,IAAI;oBAC5B,QAAQ,mBAAmB,IAAI,OAAO,IAAI,QAAQ,IAAI,GAAG,EAElE,OAAO,UAAS,GAAA,UAAA,MAAK,IAAI,EAAE;AAC9B;UACF,KAAK;AACH,gBACG,QACC,GAAA,UAAA,KAAI,QAAQ,qBAAqB,IAAI;oBAC7B,QAAQ,oBAAoB,IAAI,OAAO,IAAI,QAAQ,IAAI,SAAS,IAAI,QAAQ,EAErF,OAAO,UAAS,GAAA,UAAA,MAAK,IAAI,EAAE;AAC9B;UACF,KAAK;AACH,gBACG,QAAO,GAAA,UAAA,KAAI,IAAI,mBAAmB,IAAI,aAAa,IAAI,WAAW,EAClE,OAAO,SAAS,KAAK,EACrB,QAAO,GAAA,UAAA,KAAI,IAAI,kBAAkB,IAAI,QAAQ,EAC7C,OAAO,SAAS,IAAI;AACvB;UACF,KAAK;AACH,gBAAI,QAAO,GAAA,UAAA,KAAI,IAAI,cAAc,IAAI,aAAa,IAAI,YAAY;AAClE,gBAAI,OAAO,SAAS,IAAI;AACxB;UAEF,KAAK;AACH,gBACG,QACC,GAAA,UAAA,KAAI,QAAQ,oBAAoB,QAAQ;mBACjC,QAAQ,qBAAqB,IAAI,WAAW,EAEpD,OAAO,UAAS,GAAA,UAAA,MAAK,IAAI,GAAG;QACnC;MACF;IACF;AAEA,aAAS,iBAAiB,EAAC,KAAK,YAAY,mBAAkB,GAAiB,MAAU;AAEvF,UAAI,IAAG,GAAA,UAAA,KAAI,UAAU,kBAAkB,MACrC,IAAI,QAAO,GAAA,UAAA,KAAI,UAAU,IAAI,kBAAkB,KAAK,IAAI,CAAC;IAE7D;AAEA,aAAgB,cACd,UACA,MACA,YACA,UAAU,SAAS,SAAO;AAE1B,YAAM,KAAK,YAAY,SAAS,UAAU,UAAA,UAAU,KAAK,UAAA,UAAU;AACnE,UAAI;AACJ,cAAQ,UAAU;QAChB,KAAK;AACH,kBAAO,GAAA,UAAA,KAAI,IAAI,IAAI,EAAE;QACvB,KAAK;AACH,kBAAO,GAAA,UAAA,mBAAkB,IAAI;AAC7B;QACF,KAAK;AACH,kBAAO,GAAA,UAAA,KAAI,IAAI,cAAc,IAAI,kCAAkC,IAAI;AACvE;QACF,KAAK;AACH,iBAAO,SAAQ,GAAA,UAAA,OAAM,IAAI,mBAAmB,IAAI,GAAG;AACnD;QACF,KAAK;AACH,iBAAO,QAAO;AACd;QACF;AACE,kBAAO,GAAA,UAAA,YAAW,IAAI,IAAI,EAAE,IAAI,QAAQ;MAC5C;AACA,aAAO,YAAY,SAAS,UAAU,QAAO,GAAA,UAAA,KAAI,IAAI;AAErD,eAAS,QAAQ,QAAc,UAAA,KAAG;AAChC,gBAAO,GAAA,UAAA,MAAI,GAAA,UAAA,YAAW,IAAI,gBAAgB,OAAO,cAAa,GAAA,UAAA,cAAa,IAAI,MAAM,UAAA,GAAG;MAC1F;IACF;AA/BA,YAAA,gBAAA;AAiCA,aAAgB,eACd,WACA,MACA,YACA,SAAkB;AAElB,UAAI,UAAU,WAAW,GAAG;AAC1B,eAAO,cAAc,UAAU,CAAC,GAAG,MAAM,YAAY,OAAO;MAC9D;AACA,UAAI;AACJ,YAAM,SAAQ,GAAA,OAAA,QAAO,SAAS;AAC9B,UAAI,MAAM,SAAS,MAAM,QAAQ;AAC/B,cAAM,UAAS,GAAA,UAAA,YAAW,IAAI;AAC9B,eAAO,MAAM,OAAO,UAAS,GAAA,UAAA,MAAK,IAAI,OAAO,MAAM;AACnD,eAAO,MAAM;AACb,eAAO,MAAM;AACb,eAAO,MAAM;MACf,OAAO;AACL,eAAO,UAAA;MACT;AACA,UAAI,MAAM;AAAQ,eAAO,MAAM;AAC/B,iBAAW,KAAK;AAAO,gBAAO,GAAA,UAAA,KAAI,MAAM,cAAc,GAAe,MAAM,YAAY,OAAO,CAAC;AAC/F,aAAO;IACT;AAvBA,YAAA,iBAAA;AA2BA,QAAM,YAAoC;MACxC,SAAS,CAAC,EAAC,OAAM,MAAM,WAAW,MAAM;MACxC,QAAQ,CAAC,EAAC,QAAQ,YAAW,MAC3B,OAAO,UAAU,YAAW,GAAA,UAAA,YAAW,MAAM,OAAM,GAAA,UAAA,YAAW,WAAW;;AAG7E,aAAgB,gBAAgB,IAAgB;AAC9C,YAAM,MAAM,oBAAoB,EAAE;AAClC,OAAA,GAAA,SAAA,aAAY,KAAK,SAAS;IAC5B;AAHA,YAAA,kBAAA;AAKA,aAAS,oBAAoB,IAAgB;AAC3C,YAAM,EAAC,KAAK,MAAM,OAAM,IAAI;AAC5B,YAAM,cAAa,GAAA,OAAA,gBAAe,IAAI,QAAQ,MAAM;AACpD,aAAO;QACL;QACA,SAAS;QACT;QACA,QAAQ,OAAO;QACf;QACA,aAAa;QACb,cAAc;QACd,QAAQ,CAAA;QACR;;IAEJ;;;;;;;;;;ACpOA,QAAA,YAAA;AACA,QAAA,SAAA;AAEA,aAAgB,eAAe,IAAkB,IAAW;AAC1D,YAAM,EAAC,YAAY,MAAK,IAAI,GAAG;AAC/B,UAAI,OAAO,YAAY,YAAY;AACjC,mBAAW,OAAO,YAAY;AAC5B,wBAAc,IAAI,KAAK,WAAW,GAAG,EAAE,OAAO;QAChD;MACF,WAAW,OAAO,WAAW,MAAM,QAAQ,KAAK,GAAG;AACjD,cAAM,QAAQ,CAAC,KAAK,MAAc,cAAc,IAAI,GAAG,IAAI,OAAO,CAAC;MACrE;IACF;AATA,YAAA,iBAAA;AAWA,aAAS,cAAc,IAAkB,MAAuB,cAAqB;AACnF,YAAM,EAAC,KAAK,eAAe,MAAM,KAAI,IAAI;AACzC,UAAI,iBAAiB;AAAW;AAChC,YAAM,aAAY,GAAA,UAAA,KAAI,IAAI,IAAG,GAAA,UAAA,aAAY,IAAI,CAAC;AAC9C,UAAI,eAAe;AACjB,SAAA,GAAA,OAAA,iBAAgB,IAAI,2BAA2B,SAAS,EAAE;AAC1D;MACF;AAEA,UAAI,aAAY,GAAA,UAAA,KAAI,SAAS;AAC7B,UAAI,KAAK,gBAAgB,SAAS;AAChC,qBAAY,GAAA,UAAA,KAAI,SAAS,OAAO,SAAS,gBAAgB,SAAS;MACpE;AAGA,UAAI,GAAG,YAAW,GAAA,UAAA,KAAI,SAAS,OAAM,GAAA,UAAA,WAAU,YAAY,CAAC,EAAE;IAChE;;;;;;;;;;AC5BA,QAAA,YAAA;AACA,QAAA,SAAA;AACA,QAAA,UAAA;AACA,QAAA,SAAA;AACA,aAAgB,uBAAuB,KAAiB,MAAY;AAClE,YAAM,EAAC,KAAK,MAAM,GAAE,IAAI;AACxB,UAAI,GAAG,iBAAiB,KAAK,MAAM,MAAM,GAAG,KAAK,aAAa,GAAG,MAAK;AACpE,YAAI,UAAU,EAAC,kBAAiB,GAAA,UAAA,KAAI,IAAI,GAAE,GAAG,IAAI;AACjD,YAAI,MAAK;MACX,CAAC;IACH;AANA,YAAA,yBAAA;AAQA,aAAgB,iBACd,EAAC,KAAK,MAAM,IAAI,EAAC,KAAI,EAAC,GACtB,YACA,SAAa;AAEb,cAAO,GAAA,UAAA,IACL,GAAG,WAAW,IAAI,CAAC,UACjB,GAAA,UAAA,KAAI,iBAAiB,KAAK,MAAM,MAAM,KAAK,aAAa,IAAG,GAAA,UAAA,KAAI,OAAO,MAAM,IAAI,EAAE,CAAC,CACpF;IAEL;AAVA,YAAA,mBAAA;AAYA,aAAgB,kBAAkB,KAAiB,SAAa;AAC9D,UAAI,UAAU,EAAC,iBAAiB,QAAO,GAAG,IAAI;AAC9C,UAAI,MAAK;IACX;AAHA,YAAA,oBAAA;AAKA,aAAgB,YAAY,KAAY;AACtC,aAAO,IAAI,WAAW,QAAQ;;QAE5B,KAAK,OAAO,UAAU;QACtB,OAAM,GAAA,UAAA;OACP;IACH;AANA,YAAA,cAAA;AAQA,aAAgB,cAAc,KAAc,MAAY,UAAuB;AAC7E,cAAO,GAAA,UAAA,KAAI,YAAY,GAAG,CAAC,SAAS,IAAI,KAAK,QAAQ;IACvD;AAFA,YAAA,gBAAA;AAIA,aAAgB,eACd,KACA,MACA,UACA,eAAuB;AAEvB,YAAM,QAAO,GAAA,UAAA,KAAI,IAAI,IAAG,GAAA,UAAA,aAAY,QAAQ,CAAC;AAC7C,aAAO,iBAAgB,GAAA,UAAA,KAAI,IAAI,OAAO,cAAc,KAAK,MAAM,QAAQ,CAAC,KAAK;IAC/E;AARA,YAAA,iBAAA;AAUA,aAAgB,iBACd,KACA,MACA,UACA,eAAuB;AAEvB,YAAM,QAAO,GAAA,UAAA,KAAI,IAAI,IAAG,GAAA,UAAA,aAAY,QAAQ,CAAC;AAC7C,aAAO,iBAAgB,GAAA,UAAA,IAAG,OAAM,GAAA,UAAA,KAAI,cAAc,KAAK,MAAM,QAAQ,CAAC,CAAC,IAAI;IAC7E;AARA,YAAA,mBAAA;AAUA,aAAgB,oBAAoB,WAAqB;AACvD,aAAO,YAAY,OAAO,KAAK,SAAS,EAAE,OAAO,CAAC,MAAM,MAAM,WAAW,IAAI,CAAA;IAC/E;AAFA,YAAA,sBAAA;AAIA,aAAgB,iBAAiB,IAAe,WAAoB;AAClE,aAAO,oBAAoB,SAAS,EAAE,OACpC,CAAC,MAAM,EAAC,GAAA,OAAA,mBAAkB,IAAI,UAAU,CAAC,CAAc,CAAC;IAE5D;AAJA,YAAA,mBAAA;AAMA,aAAgB,iBACd,EAAC,YAAY,MAAM,IAAI,EAAC,KAAK,cAAc,YAAY,UAAS,GAAG,GAAE,GACrE,MACA,SACA,YAAoB;AAEpB,YAAM,gBAAgB,cAAa,GAAA,UAAA,KAAI,UAAU,KAAK,IAAI,KAAK,YAAY,GAAG,UAAU,KAAK;AAC7F,YAAM,SAAkC;QACtC,CAAC,QAAA,QAAE,eAAc,GAAA,UAAA,WAAU,QAAA,QAAE,cAAc,SAAS,CAAC;QACrD,CAAC,QAAA,QAAE,YAAY,GAAG,UAAU;QAC5B,CAAC,QAAA,QAAE,oBAAoB,GAAG,kBAAkB;QAC5C,CAAC,QAAA,QAAE,UAAU,QAAA,QAAE,QAAQ;;AAEzB,UAAI,GAAG,KAAK;AAAY,eAAO,KAAK,CAAC,QAAA,QAAE,gBAAgB,QAAA,QAAE,cAAc,CAAC;AACxE,YAAM,QAAO,GAAA,UAAA,KAAI,aAAa,KAAK,IAAI,OAAO,GAAG,MAAM,CAAC;AACxD,aAAO,YAAY,UAAA,OAAM,GAAA,UAAA,KAAI,IAAI,SAAS,OAAO,KAAK,IAAI,OAAM,GAAA,UAAA,KAAI,IAAI,IAAI,IAAI;IAClF;AAhBA,YAAA,mBAAA;AAkBA,QAAM,aAAY,GAAA,UAAA;AAElB,aAAgB,WAAW,EAAC,KAAK,IAAI,EAAC,KAAI,EAAC,GAAe,SAAe;AACvE,YAAM,IAAI,KAAK,gBAAgB,MAAM;AACrC,YAAM,EAAC,OAAM,IAAI,KAAK;AACtB,YAAM,KAAK,OAAO,SAAS,CAAC;AAE5B,aAAO,IAAI,WAAW,WAAW;QAC/B,KAAK,GAAG,SAAQ;QAChB,KAAK;QACL,OAAM,GAAA,UAAA,KAAI,OAAO,SAAS,eAAe,aAAY,GAAA,OAAA,SAAQ,KAAK,MAAM,CAAC,IAAI,OAAO,KAAK,CAAC;OAC3F;IACH;AAVA,YAAA,aAAA;AAYA,aAAgB,cAAc,KAAe;AAC3C,YAAM,EAAC,KAAK,MAAM,SAAS,GAAE,IAAI;AACjC,YAAM,QAAQ,IAAI,KAAK,OAAO;AAC9B,UAAI,GAAG,WAAW;AAChB,cAAM,WAAW,IAAI,IAAI,SAAS,IAAI;AACtC,sBAAc,MAAM,IAAI,OAAO,UAAU,KAAK,CAAC;AAC/C,eAAO;MACT;AACA,UAAI,IAAI,OAAO,IAAI;AACnB,oBAAc,MAAM,IAAI,MAAK,CAAE;AAC/B,aAAO;AAEP,eAAS,cAAc,UAAoB;AACzC,cAAM,MAAM,IAAI,MAAM,QAAO,GAAA,UAAA,KAAI,IAAI,SAAS;AAC9C,YAAI,SAAS,KAAK,GAAG,KAAK,CAAC,MAAK;AAC9B,cAAI,UACF;YACE;YACA,UAAU;YACV,cAAc,OAAA,KAAK;aAErB,KAAK;AAEP,cAAI,IAAG,GAAA,UAAA,KAAI,KAAK,GAAG,QAAQ;QAC7B,CAAC;MACH;IACF;AA1BA,YAAA,gBAAA;AA4BA,aAAgB,cAAc,KAAe;AAC3C,YAAM,EAAC,KAAK,QAAQ,SAAS,GAAE,IAAI;AAEnC,UAAI,CAAC,MAAM,QAAQ,MAAM;AAAG,cAAM,IAAI,MAAM,0BAA0B;AACtE,YAAM,cAAc,OAAO,KAAK,CAAC,SAAmB,GAAA,OAAA,mBAAkB,IAAI,GAAG,CAAC;AAC9E,UAAI,eAAe,CAAC,GAAG,KAAK;AAAa;AAEzC,YAAM,QAAQ,IAAI,IAAI,SAAS,KAAK;AACpC,YAAM,WAAW,IAAI,KAAK,QAAQ;AAElC,UAAI,MAAM,MACR,OAAO,QAAQ,CAAC,MAAiB,MAAa;AAC5C,cAAM,SAAS,IAAI,UACjB;UACE;UACA,YAAY;UACZ,eAAe;WAEjB,QAAQ;AAEV,YAAI,OAAO,QAAO,GAAA,UAAA,KAAI,KAAK,OAAO,QAAQ,EAAE;AAC5C,cAAM,SAAS,IAAI,oBAAoB,QAAQ,QAAQ;AAGvD,YAAI,CAAC;AAAQ,cAAI,IAAG,GAAA,UAAA,KAAI,KAAK,CAAC;MAChC,CAAC,CAAC;AAGJ,UAAI,OACF,OACA,MAAM,IAAI,MAAK,GACf,MAAM,IAAI,MAAM,IAAI,CAAC;IAEzB;AAjCA,YAAA,gBAAA;;;;;;;;;;AC5HA,QAAA,YAAA;AACA,QAAA,UAAA;AAEA,QAAA,SAAA;AACA,QAAA,WAAA;AAIA,aAAgB,iBAAiB,KAAiB,KAA2B;AAC3E,YAAM,EAAC,KAAK,SAAS,QAAQ,cAAc,GAAE,IAAI;AACjD,YAAM,cAAc,IAAI,MAAM,KAAK,GAAG,MAAM,QAAQ,cAAc,EAAE;AACpE,YAAM,YAAY,WAAW,KAAK,SAAS,WAAW;AACtD,UAAI,GAAG,KAAK,mBAAmB;AAAO,WAAG,KAAK,eAAe,aAAa,IAAI;AAE9E,YAAM,QAAQ,IAAI,KAAK,OAAO;AAC9B,UAAI,UACF;QACE,QAAQ;QACR,YAAY,UAAA;QACZ,eAAe,GAAG,GAAG,aAAa,IAAI,OAAO;QAC7C,cAAc;QACd,eAAe;SAEjB,KAAK;AAEP,UAAI,KAAK,OAAO,MAAM,IAAI,MAAM,IAAI,CAAC;IACvC;AAlBA,YAAA,mBAAA;AAoBA,aAAgB,gBAAgB,KAAiB,KAA0B;;AACzE,YAAM,EAAC,KAAK,SAAS,QAAQ,cAAc,OAAO,GAAE,IAAI;AACxD,wBAAkB,IAAI,GAAG;AACzB,YAAM,WACJ,CAAC,SAAS,IAAI,UAAU,IAAI,QAAQ,KAAK,GAAG,MAAM,QAAQ,cAAc,EAAE,IAAI,IAAI;AACpF,YAAM,cAAc,WAAW,KAAK,SAAS,QAAQ;AACrD,YAAM,QAAQ,IAAI,IAAI,OAAO;AAC7B,UAAI,WAAW,OAAO,eAAe;AACrC,UAAI,IAAG,KAAA,IAAI,WAAK,QAAA,OAAA,SAAA,KAAI,KAAK;AAEzB,eAAS,kBAAe;AACtB,YAAI,IAAI,WAAW,OAAO;AACxB,sBAAW;AACX,cAAI,IAAI;AAAW,uBAAW,GAAG;AACjC,qBAAW,MAAM,IAAI,MAAK,CAAE;QAC9B,OAAO;AACL,gBAAM,WAAW,IAAI,QAAQ,cAAa,IAAK,aAAY;AAC3D,cAAI,IAAI;AAAW,uBAAW,GAAG;AACjC,qBAAW,MAAM,QAAQ,KAAK,QAAQ,CAAC;QACzC;MACF;AAEA,eAAS,gBAAa;AACpB,cAAM,WAAW,IAAI,IAAI,YAAY,IAAI;AACzC,YAAI,IACF,MAAM,aAAY,GAAA,UAAA,UAAS,GAC3B,CAAC,MACC,IAAI,OAAO,OAAO,KAAK,EAAE,IACvB,GAAA,UAAA,KAAI,CAAC,eAAe,GAAG,eAAuB,IAC9C,MAAM,IAAI,OAAO,WAAU,GAAA,UAAA,KAAI,CAAC,SAAS,GACzC,MAAM,IAAI,MAAM,CAAC,CAAC,CACnB;AAEL,eAAO;MACT;AAEA,eAAS,eAAY;AACnB,cAAM,gBAAe,GAAA,UAAA,KAAI,WAAW;AACpC,YAAI,OAAO,cAAc,IAAI;AAC7B,oBAAY,UAAA,GAAG;AACf,eAAO;MACT;AAEA,eAAS,YAAY,SAAe,IAAI,SAAQ,GAAA,UAAA,aAAY,UAAA,KAAG;AAC7D,cAAM,UAAU,GAAG,KAAK,cAAc,QAAA,QAAE,OAAO,QAAA,QAAE;AACjD,cAAM,aAAa,EAAG,aAAa,OAAO,CAAC,SAAU,IAAI,WAAW;AACpE,YAAI,OACF,QACA,GAAA,UAAA,KAAI,MAAM,IAAG,GAAA,OAAA,kBAAiB,KAAK,aAAa,SAAS,UAAU,CAAC,IACpE,IAAI,SAAS;MAEjB;AAEA,eAAS,WAAW,QAAkB;;AACpC,YAAI,IAAG,GAAA,UAAA,MAAIC,MAAA,IAAI,WAAK,QAAAA,QAAA,SAAAA,MAAI,KAAK,GAAG,MAAM;MACxC;IACF;AAxDA,YAAA,kBAAA;AA0DA,aAAS,WAAW,KAAe;AACjC,YAAM,EAAC,KAAK,MAAM,GAAE,IAAI;AACxB,UAAI,GAAG,GAAG,YAAY,MAAM,IAAI,OAAO,OAAM,GAAA,UAAA,KAAI,GAAG,UAAU,IAAI,GAAG,kBAAkB,GAAG,CAAC;IAC7F;AAEA,aAAS,QAAQ,KAAiB,MAAU;AAC1C,YAAM,EAAC,IAAG,IAAI;AACd,UAAI,IACF,GAAA,UAAA,mBAAkB,IAAI,KACtB,MAAK;AACH,YACG,OAAO,QAAA,QAAE,UAAS,GAAA,UAAA,KAAI,QAAA,QAAE,OAAO,eAAe,IAAI,MAAM,QAAA,QAAE,OAAO,WAAW,IAAI,GAAG,EACnF,OAAO,QAAA,QAAE,SAAQ,GAAA,UAAA,KAAI,QAAA,QAAE,OAAO,SAAS;AAC1C,SAAA,GAAA,SAAA,cAAa,GAAG;MAClB,GACA,MAAM,IAAI,MAAK,CAAE;IAErB;AAEA,aAAS,kBAAkB,EAAC,UAAS,GAAiB,KAA0B;AAC9E,UAAI,IAAI,SAAS,CAAC,UAAU;AAAQ,cAAM,IAAI,MAAM,8BAA8B;IACpF;AAEA,aAAS,WAAW,KAAc,SAAiB,QAAiC;AAClF,UAAI,WAAW;AAAW,cAAM,IAAI,MAAM,YAAY,OAAO,qBAAqB;AAClF,aAAO,IAAI,WACT,WACA,OAAO,UAAU,aAAa,EAAC,KAAK,OAAM,IAAI,EAAC,KAAK,QAAQ,OAAM,GAAA,UAAA,WAAU,MAAM,EAAC,CAAC;IAExF;AAEA,aAAgB,gBACd,QACA,YACA,iBAAiB,OAAK;AAGtB,aACE,CAAC,WAAW,UACZ,WAAW,KAAK,CAAC,OACf,OAAO,UACH,MAAM,QAAQ,MAAM,IACpB,OAAO,WACP,UAAU,OAAO,UAAU,YAAY,CAAC,MAAM,QAAQ,MAAM,IAC5D,OAAO,UAAU,MAAO,kBAAkB,OAAO,UAAU,WAAY;IAGjF;AAhBA,YAAA,kBAAA;AAkBA,aAAgB,qBACd,EAAC,QAAQ,MAAM,MAAM,cAAa,GAClC,KACA,SAAe;AAGf,UAAI,MAAM,QAAQ,IAAI,OAAO,IAAI,CAAC,IAAI,QAAQ,SAAS,OAAO,IAAI,IAAI,YAAY,SAAS;AACzF,cAAM,IAAI,MAAM,0BAA0B;MAC5C;AAEA,YAAM,OAAO,IAAI;AACjB,UAAI,SAAI,QAAJ,SAAI,SAAA,SAAJ,KAAM,KAAK,CAAC,QAAQ,CAAC,OAAO,UAAU,eAAe,KAAK,QAAQ,GAAG,CAAC,GAAG;AAC3E,cAAM,IAAI,MAAM,2CAA2C,OAAO,KAAK,KAAK,KAAK,GAAG,CAAC,EAAE;MACzF;AAEA,UAAI,IAAI,gBAAgB;AACtB,cAAM,QAAQ,IAAI,eAAe,OAAO,OAAO,CAAC;AAChD,YAAI,CAAC,OAAO;AACV,gBAAM,MACJ,YAAY,OAAO,+BAA+B,aAAa,QAC/D,KAAK,WAAW,IAAI,eAAe,MAAM;AAC3C,cAAI,KAAK,mBAAmB;AAAO,iBAAK,OAAO,MAAM,GAAG;;AACnD,kBAAM,IAAI,MAAM,GAAG;QAC1B;MACF;IACF;AAzBA,YAAA,uBAAA;;;;;;;;;;AC/IA,QAAA,YAAA;AACA,QAAA,SAAA;AA6CA,aAAgB,aACd,IACA,EAAC,SAAS,YAAY,QAAQ,YAAY,eAAe,aAAY,GAAgB;AAErF,UAAI,YAAY,UAAa,WAAW,QAAW;AACjD,cAAM,IAAI,MAAM,sDAAsD;MACxE;AAEA,UAAI,YAAY,QAAW;AACzB,cAAM,MAAM,GAAG,OAAO,OAAO;AAC7B,eAAO,eAAe,SAClB;UACE,QAAQ;UACR,aAAY,GAAA,UAAA,KAAI,GAAG,UAAU,IAAG,GAAA,UAAA,aAAY,OAAO,CAAC;UACpD,eAAe,GAAG,GAAG,aAAa,IAAI,OAAO;YAE/C;UACE,QAAQ,IAAI,UAAU;UACtB,aAAY,GAAA,UAAA,KAAI,GAAG,UAAU,IAAG,GAAA,UAAA,aAAY,OAAO,CAAC,IAAG,GAAA,UAAA,aAAY,UAAU,CAAC;UAC9E,eAAe,GAAG,GAAG,aAAa,IAAI,OAAO,KAAI,GAAA,OAAA,gBAAe,UAAU,CAAC;;MAEnF;AAEA,UAAI,WAAW,QAAW;AACxB,YAAI,eAAe,UAAa,kBAAkB,UAAa,iBAAiB,QAAW;AACzF,gBAAM,IAAI,MAAM,6EAA6E;QAC/F;AACA,eAAO;UACL;UACA;UACA;UACA;;MAEJ;AAEA,YAAM,IAAI,MAAM,6CAA6C;IAC/D;AApCA,YAAA,eAAA;AAsCA,aAAgB,oBACd,WACA,IACA,EAAC,UAAU,cAAc,QAAQ,MAAM,WAAW,aAAY,GAAgB;AAE9E,UAAI,SAAS,UAAa,aAAa,QAAW;AAChD,cAAM,IAAI,MAAM,qDAAqD;MACvE;AAEA,YAAM,EAAC,IAAG,IAAI;AAEd,UAAI,aAAa,QAAW;AAC1B,cAAM,EAAC,WAAW,aAAa,KAAI,IAAI;AACvC,cAAM,WAAW,IAAI,IAAI,SAAQ,GAAA,UAAA,KAAI,GAAG,IAAI,IAAG,GAAA,UAAA,aAAY,QAAQ,CAAC,IAAI,IAAI;AAC5E,yBAAiB,QAAQ;AACzB,kBAAU,aAAY,GAAA,UAAA,OAAM,SAAS,IAAG,GAAA,OAAA,cAAa,UAAU,QAAQ,KAAK,gBAAgB,CAAC;AAC7F,kBAAU,sBAAqB,GAAA,UAAA,KAAI,QAAQ;AAC3C,kBAAU,cAAc,CAAC,GAAG,aAAa,UAAU,kBAAkB;MACvE;AAEA,UAAI,SAAS,QAAW;AACtB,cAAM,WAAW,gBAAgB,UAAA,OAAO,OAAO,IAAI,IAAI,QAAQ,MAAM,IAAI;AACzE,yBAAiB,QAAQ;AACzB,YAAI,iBAAiB;AAAW,oBAAU,eAAe;MAE3D;AAEA,UAAI;AAAW,kBAAU,YAAY;AAErC,eAAS,iBAAiB,WAAe;AACvC,kBAAU,OAAO;AACjB,kBAAU,YAAY,GAAG,YAAY;AACrC,kBAAU,YAAY,CAAA;AACtB,WAAG,oBAAoB,oBAAI,IAAG;AAC9B,kBAAU,aAAa,GAAG;AAC1B,kBAAU,YAAY,CAAC,GAAG,GAAG,WAAW,SAAS;MACnD;IACF;AArCA,YAAA,sBAAA;AAuCA,aAAgB,oBACd,WACA,EAAC,kBAAkB,aAAa,eAAe,cAAc,UAAS,GAAgB;AAEtF,UAAI,kBAAkB;AAAW,kBAAU,gBAAgB;AAC3D,UAAI,iBAAiB;AAAW,kBAAU,eAAe;AACzD,UAAI,cAAc;AAAW,kBAAU,YAAY;AACnD,gBAAU,mBAAmB;AAC7B,gBAAU,cAAc;IAC1B;AATA,YAAA,sBAAA;;;;;AC7HA;AAAA;AAAA;AAMA,WAAO,UAAU,SAAS,MAAM,GAAG,GAAG;AACpC,UAAI,MAAM,EAAG,QAAO;AAEpB,UAAI,KAAK,KAAK,OAAO,KAAK,YAAY,OAAO,KAAK,UAAU;AAC1D,YAAI,EAAE,gBAAgB,EAAE,YAAa,QAAO;AAE5C,YAAI,QAAQ,GAAG;AACf,YAAI,MAAM,QAAQ,CAAC,GAAG;AACpB,mBAAS,EAAE;AACX,cAAI,UAAU,EAAE,OAAQ,QAAO;AAC/B,eAAK,IAAI,QAAQ,QAAQ;AACvB,gBAAI,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,EAAG,QAAO;AACjC,iBAAO;AAAA,QACT;AAIA,YAAI,EAAE,gBAAgB,OAAQ,QAAO,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE;AAC5E,YAAI,EAAE,YAAY,OAAO,UAAU,QAAS,QAAO,EAAE,QAAQ,MAAM,EAAE,QAAQ;AAC7E,YAAI,EAAE,aAAa,OAAO,UAAU,SAAU,QAAO,EAAE,SAAS,MAAM,EAAE,SAAS;AAEjF,eAAO,OAAO,KAAK,CAAC;AACpB,iBAAS,KAAK;AACd,YAAI,WAAW,OAAO,KAAK,CAAC,EAAE,OAAQ,QAAO;AAE7C,aAAK,IAAI,QAAQ,QAAQ;AACvB,cAAI,CAAC,OAAO,UAAU,eAAe,KAAK,GAAG,KAAK,CAAC,CAAC,EAAG,QAAO;AAEhE,aAAK,IAAI,QAAQ,QAAQ,KAAI;AAC3B,cAAI,MAAM,KAAK,CAAC;AAEhB,cAAI,CAAC,MAAM,EAAE,GAAG,GAAG,EAAE,GAAG,CAAC,EAAG,QAAO;AAAA,QACrC;AAEA,eAAO;AAAA,MACT;AAGA,aAAO,MAAI,KAAK,MAAI;AAAA,IACtB;AAAA;AAAA;;;AC7CA;AAAA;AAAA;AAEA,QAAI,WAAW,OAAO,UAAU,SAAU,QAAQ,MAAM,IAAI;AAE1D,UAAI,OAAO,QAAQ,YAAY;AAC7B,aAAK;AACL,eAAO,CAAC;AAAA,MACV;AAEA,WAAK,KAAK,MAAM;AAChB,UAAI,MAAO,OAAO,MAAM,aAAc,KAAK,GAAG,OAAO,WAAW;AAAA,MAAC;AACjE,UAAI,OAAO,GAAG,QAAQ,WAAW;AAAA,MAAC;AAElC,gBAAU,MAAM,KAAK,MAAM,QAAQ,IAAI,MAAM;AAAA,IAC/C;AAGA,aAAS,WAAW;AAAA,MAClB,iBAAiB;AAAA,MACjB,OAAO;AAAA,MACP,UAAU;AAAA,MACV,sBAAsB;AAAA,MACtB,eAAe;AAAA,MACf,KAAK;AAAA,MACL,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,MAAM;AAAA,IACR;AAEA,aAAS,gBAAgB;AAAA,MACvB,OAAO;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,IACT;AAEA,aAAS,gBAAgB;AAAA,MACvB,OAAO;AAAA,MACP,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,mBAAmB;AAAA,MACnB,cAAc;AAAA,IAChB;AAEA,aAAS,eAAe;AAAA,MACtB,SAAS;AAAA,MACT,MAAM;AAAA,MACN,OAAO;AAAA,MACP,UAAU;AAAA,MACV,SAAS;AAAA,MACT,SAAS;AAAA,MACT,kBAAkB;AAAA,MAClB,kBAAkB;AAAA,MAClB,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,MACX,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,UAAU;AAAA,MACV,aAAa;AAAA,MACb,eAAe;AAAA,MACf,eAAe;AAAA,IACjB;AAGA,aAAS,UAAU,MAAM,KAAK,MAAM,QAAQ,SAAS,YAAY,eAAe,eAAe,cAAc,UAAU;AACrH,UAAI,UAAU,OAAO,UAAU,YAAY,CAAC,MAAM,QAAQ,MAAM,GAAG;AACjE,YAAI,QAAQ,SAAS,YAAY,eAAe,eAAe,cAAc,QAAQ;AACrF,iBAAS,OAAO,QAAQ;AACtB,cAAI,MAAM,OAAO,GAAG;AACpB,cAAI,MAAM,QAAQ,GAAG,GAAG;AACtB,gBAAI,OAAO,SAAS,eAAe;AACjC,uBAAS,IAAE,GAAG,IAAE,IAAI,QAAQ;AAC1B,0BAAU,MAAM,KAAK,MAAM,IAAI,CAAC,GAAG,UAAU,MAAM,MAAM,MAAM,GAAG,YAAY,SAAS,KAAK,QAAQ,CAAC;AAAA,YACzG;AAAA,UACF,WAAW,OAAO,SAAS,eAAe;AACxC,gBAAI,OAAO,OAAO,OAAO,UAAU;AACjC,uBAAS,QAAQ;AACf,0BAAU,MAAM,KAAK,MAAM,IAAI,IAAI,GAAG,UAAU,MAAM,MAAM,MAAM,cAAc,IAAI,GAAG,YAAY,SAAS,KAAK,QAAQ,IAAI;AAAA,YACjI;AAAA,UACF,WAAW,OAAO,SAAS,YAAa,KAAK,WAAW,EAAE,OAAO,SAAS,eAAgB;AACxF,sBAAU,MAAM,KAAK,MAAM,KAAK,UAAU,MAAM,KAAK,YAAY,SAAS,KAAK,MAAM;AAAA,UACvF;AAAA,QACF;AACA,aAAK,QAAQ,SAAS,YAAY,eAAe,eAAe,cAAc,QAAQ;AAAA,MACxF;AAAA,IACF;AAGA,aAAS,cAAc,KAAK;AAC1B,aAAO,IAAI,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI;AAAA,IACpD;AAAA;AAAA;;;;;;;;ACzFA,QAAA,SAAA;AACA,QAAA,QAAA;AACA,QAAA,WAAA;AAMA,QAAM,iBAAiB,oBAAI,IAAI;MAC7B;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;KACD;AAED,aAAgB,UAAU,QAAmB,QAA0B,MAAI;AACzE,UAAI,OAAO,UAAU;AAAW,eAAO;AACvC,UAAI,UAAU;AAAM,eAAO,CAAC,OAAO,MAAM;AACzC,UAAI,CAAC;AAAO,eAAO;AACnB,aAAO,UAAU,MAAM,KAAK;IAC9B;AALA,YAAA,YAAA;AAOA,QAAM,eAAe,oBAAI,IAAI;MAC3B;MACA;MACA;MACA;MACA;KACD;AAED,aAAS,OAAO,QAAuB;AACrC,iBAAW,OAAO,QAAQ;AACxB,YAAI,aAAa,IAAI,GAAG;AAAG,iBAAO;AAClC,cAAM,MAAM,OAAO,GAAG;AACtB,YAAI,MAAM,QAAQ,GAAG,KAAK,IAAI,KAAK,MAAM;AAAG,iBAAO;AACnD,YAAI,OAAO,OAAO,YAAY,OAAO,GAAG;AAAG,iBAAO;MACpD;AACA,aAAO;IACT;AAEA,aAAS,UAAU,QAAuB;AACxC,UAAI,QAAQ;AACZ,iBAAW,OAAO,QAAQ;AACxB,YAAI,QAAQ;AAAQ,iBAAO;AAC3B;AACA,YAAI,eAAe,IAAI,GAAG;AAAG;AAC7B,YAAI,OAAO,OAAO,GAAG,KAAK,UAAU;AAClC,WAAA,GAAA,OAAA,UAAS,OAAO,GAAG,GAAG,CAAC,QAAS,SAAS,UAAU,GAAG,CAAE;QAC1D;AACA,YAAI,UAAU;AAAU,iBAAO;MACjC;AACA,aAAO;IACT;AAEA,aAAgB,YAAY,UAAuB,KAAK,IAAI,WAAmB;AAC7E,UAAI,cAAc;AAAO,aAAK,YAAY,EAAE;AAC5C,YAAM,IAAI,SAAS,MAAM,EAAE;AAC3B,aAAO,aAAa,UAAU,CAAC;IACjC;AAJA,YAAA,cAAA;AAMA,aAAgB,aAAa,UAAuB,GAAe;AACjE,YAAM,aAAa,SAAS,UAAU,CAAC;AACvC,aAAO,WAAW,MAAM,GAAG,EAAE,CAAC,IAAI;IACpC;AAHA,YAAA,eAAA;AAKA,QAAM,sBAAsB;AAC5B,aAAgB,YAAY,IAAsB;AAChD,aAAO,KAAK,GAAG,QAAQ,qBAAqB,EAAE,IAAI;IACpD;AAFA,YAAA,cAAA;AAIA,aAAgB,WAAW,UAAuB,QAAgB,IAAU;AAC1E,WAAK,YAAY,EAAE;AACnB,aAAO,SAAS,QAAQ,QAAQ,EAAE;IACpC;AAHA,YAAA,aAAA;AAKA,QAAM,SAAS;AAEf,aAAgB,cAAyB,QAAmB,QAAc;AACxE,UAAI,OAAO,UAAU;AAAW,eAAO,CAAA;AACvC,YAAM,EAAC,UAAU,YAAW,IAAI,KAAK;AACrC,YAAM,QAAQ,YAAY,OAAO,QAAQ,KAAK,MAAM;AACpD,YAAM,UAA0C,EAAC,IAAI,MAAK;AAC1D,YAAM,aAAa,YAAY,aAAa,OAAO,KAAK;AACxD,YAAM,YAAuB,CAAA;AAC7B,YAAM,aAA0B,oBAAI,IAAG;AAEvC,eAAS,QAAQ,EAAC,SAAS,KAAI,GAAG,CAAC,KAAK,SAAS,GAAG,kBAAiB;AACnE,YAAI,kBAAkB;AAAW;AACjC,cAAM,WAAW,aAAa;AAC9B,YAAI,cAAc,QAAQ,aAAa;AACvC,YAAI,OAAO,IAAI,QAAQ,KAAK;AAAU,wBAAc,OAAO,KAAK,MAAM,IAAI,QAAQ,CAAC;AACnF,kBAAU,KAAK,MAAM,IAAI,OAAO;AAChC,kBAAU,KAAK,MAAM,IAAI,cAAc;AACvC,gBAAQ,OAAO,IAAI;AAEnB,iBAAS,OAAkB,KAAW;AAEpC,gBAAM,WAAW,KAAK,KAAK,YAAY;AACvC,gBAAM,YAAY,cAAc,SAAS,aAAa,GAAG,IAAI,GAAG;AAChE,cAAI,WAAW,IAAI,GAAG;AAAG,kBAAM,SAAS,GAAG;AAC3C,qBAAW,IAAI,GAAG;AAClB,cAAI,WAAW,KAAK,KAAK,GAAG;AAC5B,cAAI,OAAO,YAAY;AAAU,uBAAW,KAAK,KAAK,QAAQ;AAC9D,cAAI,OAAO,YAAY,UAAU;AAC/B,6BAAiB,KAAK,SAAS,QAAQ,GAAG;UAC5C,WAAW,QAAQ,YAAY,QAAQ,GAAG;AACxC,gBAAI,IAAI,CAAC,MAAM,KAAK;AAClB,+BAAiB,KAAK,UAAU,GAAG,GAAG,GAAG;AACzC,wBAAU,GAAG,IAAI;YACnB,OAAO;AACL,mBAAK,KAAK,GAAG,IAAI;YACnB;UACF;AACA,iBAAO;QACT;AAEA,iBAAS,UAAqB,QAAe;AAC3C,cAAI,OAAO,UAAU,UAAU;AAC7B,gBAAI,CAAC,OAAO,KAAK,MAAM;AAAG,oBAAM,IAAI,MAAM,mBAAmB,MAAM,GAAG;AACtE,mBAAO,KAAK,MAAM,IAAI,MAAM,EAAE;UAChC;QACF;MACF,CAAC;AAED,aAAO;AAEP,eAAS,iBAAiB,MAAiB,MAA6B,KAAW;AACjF,YAAI,SAAS,UAAa,CAAC,MAAM,MAAM,IAAI;AAAG,gBAAM,SAAS,GAAG;MAClE;AAEA,eAAS,SAAS,KAAW;AAC3B,eAAO,IAAI,MAAM,cAAc,GAAG,oCAAoC;MACxE;IACF;AAxDA,YAAA,gBAAA;;;;;;;;;;ACnFA,QAAA,eAAA;AACA,QAAA,aAAA;AACA,QAAA,kBAAA;AACA,QAAA,aAAA;AACA,QAAA,aAAA;AACA,QAAA,YAAA;AACA,QAAA,cAAA;AACA,QAAA,YAAA;AACA,QAAA,UAAA;AACA,QAAA,YAAA;AACA,QAAA,SAAA;AASA,QAAA,WAAA;AASA,aAAgB,qBAAqB,IAAa;AAChD,UAAI,YAAY,EAAE,GAAG;AACnB,sBAAc,EAAE;AAChB,YAAI,kBAAkB,EAAE,GAAG;AACzB,2BAAiB,EAAE;AACnB;QACF;MACF;AACA,uBAAiB,IAAI,OAAM,GAAA,aAAA,sBAAqB,EAAE,CAAC;IACrD;AATA,YAAA,uBAAA;AAWA,aAAS,iBACP,EAAC,KAAK,cAAc,QAAQ,WAAW,KAAI,GAC3C,MAAW;AAEX,UAAI,KAAK,KAAK,KAAK;AACjB,YAAI,KAAK,eAAc,GAAA,UAAA,KAAI,QAAA,QAAE,IAAI,KAAK,QAAA,QAAE,MAAM,IAAI,UAAU,QAAQ,MAAK;AACvE,cAAI,MAAK,GAAA,UAAA,mBAAkB,cAAc,QAAQ,IAAI,CAAC,EAAE;AACxD,+BAAqB,KAAK,IAAI;AAC9B,cAAI,KAAK,IAAI;QACf,CAAC;MACH,OAAO;AACL,YAAI,KAAK,eAAc,GAAA,UAAA,KAAI,QAAA,QAAE,IAAI,KAAK,kBAAkB,IAAI,CAAC,IAAI,UAAU,QAAQ,MACjF,IAAI,KAAK,cAAc,QAAQ,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC;MAEpD;IACF;AAEA,aAAS,kBAAkB,MAAqB;AAC9C,cAAO,GAAA,UAAA,MAAK,QAAA,QAAE,YAAY,QAAQ,QAAA,QAAE,UAAU,KAAK,QAAA,QAAE,kBAAkB,KAAK,QAAA,QAAE,QAAQ,IACpF,QAAA,QAAE,IACJ,GAAG,KAAK,cAAa,GAAA,UAAA,OAAM,QAAA,QAAE,cAAc,QAAQ,UAAA,GAAG;IACxD;AAEA,aAAS,qBAAqB,KAAc,MAAqB;AAC/D,UAAI,GACF,QAAA,QAAE,QACF,MAAK;AACH,YAAI,IAAI,QAAA,QAAE,eAAc,GAAA,UAAA,KAAI,QAAA,QAAE,MAAM,IAAI,QAAA,QAAE,YAAY,EAAE;AACxD,YAAI,IAAI,QAAA,QAAE,aAAY,GAAA,UAAA,KAAI,QAAA,QAAE,MAAM,IAAI,QAAA,QAAE,UAAU,EAAE;AACpD,YAAI,IAAI,QAAA,QAAE,qBAAoB,GAAA,UAAA,KAAI,QAAA,QAAE,MAAM,IAAI,QAAA,QAAE,kBAAkB,EAAE;AACpE,YAAI,IAAI,QAAA,QAAE,WAAU,GAAA,UAAA,KAAI,QAAA,QAAE,MAAM,IAAI,QAAA,QAAE,QAAQ,EAAE;AAChD,YAAI,KAAK;AAAY,cAAI,IAAI,QAAA,QAAE,iBAAgB,GAAA,UAAA,KAAI,QAAA,QAAE,MAAM,IAAI,QAAA,QAAE,cAAc,EAAE;MACnF,GACA,MAAK;AACH,YAAI,IAAI,QAAA,QAAE,eAAc,GAAA,UAAA,MAAK;AAC7B,YAAI,IAAI,QAAA,QAAE,aAAY,GAAA,UAAA,aAAY;AAClC,YAAI,IAAI,QAAA,QAAE,qBAAoB,GAAA,UAAA,aAAY;AAC1C,YAAI,IAAI,QAAA,QAAE,UAAU,QAAA,QAAE,IAAI;AAC1B,YAAI,KAAK;AAAY,cAAI,IAAI,QAAA,QAAE,iBAAgB,GAAA,UAAA,MAAK;MACtD,CAAC;IAEL;AAEA,aAAS,iBAAiB,IAAgB;AACxC,YAAM,EAAC,QAAQ,MAAM,IAAG,IAAI;AAC5B,uBAAiB,IAAI,MAAK;AACxB,YAAI,KAAK,YAAY,OAAO;AAAU,yBAAe,EAAE;AACvD,uBAAe,EAAE;AACjB,YAAI,IAAI,QAAA,QAAE,SAAS,IAAI;AACvB,YAAI,IAAI,QAAA,QAAE,QAAQ,CAAC;AACnB,YAAI,KAAK;AAAa,yBAAe,EAAE;AACvC,wBAAgB,EAAE;AAClB,sBAAc,EAAE;MAClB,CAAC;AACD;IACF;AAEA,aAAS,eAAe,IAAgB;AAEtC,YAAM,EAAC,KAAK,aAAY,IAAI;AAC5B,SAAG,YAAY,IAAI,MAAM,cAAa,GAAA,UAAA,KAAI,YAAY,YAAY;AAClE,UAAI,IAAG,GAAA,UAAA,KAAI,GAAG,SAAS,iBAAiB,MAAM,IAAI,QAAO,GAAA,UAAA,KAAI,GAAG,SAAS,WAAU,GAAA,UAAA,aAAY,CAAC;AAChG,UAAI,IAAG,GAAA,UAAA,KAAI,GAAG,SAAS,iBAAiB,MAAM,IAAI,QAAO,GAAA,UAAA,KAAI,GAAG,SAAS,WAAU,GAAA,UAAA,aAAY,CAAC;IAClG;AAEA,aAAS,cAAc,QAAmB,MAAqB;AAC7D,YAAM,QAAQ,OAAO,UAAU,YAAY,OAAO,KAAK,QAAQ;AAC/D,aAAO,UAAU,KAAK,KAAK,UAAU,KAAK,KAAK,YAAW,GAAA,UAAA,mBAAkB,KAAK,QAAQ,UAAA;IAC3F;AAGA,aAAS,cAAc,IAAe,OAAW;AAC/C,UAAI,YAAY,EAAE,GAAG;AACnB,sBAAc,EAAE;AAChB,YAAI,kBAAkB,EAAE,GAAG;AACzB,2BAAiB,IAAI,KAAK;AAC1B;QACF;MACF;AACA,OAAA,GAAA,aAAA,mBAAkB,IAAI,KAAK;IAC7B;AAEA,aAAS,kBAAkB,EAAC,QAAQ,KAAI,GAAY;AAClD,UAAI,OAAO,UAAU;AAAW,eAAO,CAAC;AACxC,iBAAW,OAAO;AAAQ,YAAI,KAAK,MAAM,IAAI,GAAG;AAAG,iBAAO;AAC1D,aAAO;IACT;AAEA,aAAS,YAAY,IAAa;AAChC,aAAO,OAAO,GAAG,UAAU;IAC7B;AAEA,aAAS,iBAAiB,IAAkB,OAAW;AACrD,YAAM,EAAC,QAAQ,KAAK,KAAI,IAAI;AAC5B,UAAI,KAAK,YAAY,OAAO;AAAU,uBAAe,EAAE;AACvD,oBAAc,EAAE;AAChB,uBAAiB,EAAE;AACnB,YAAM,YAAY,IAAI,MAAM,SAAS,QAAA,QAAE,MAAM;AAC7C,sBAAgB,IAAI,SAAS;AAE7B,UAAI,IAAI,QAAO,GAAA,UAAA,KAAI,SAAS,QAAQ,QAAA,QAAE,MAAM,EAAE;IAChD;AAEA,aAAS,cAAc,IAAgB;AACrC,OAAA,GAAA,OAAA,mBAAkB,EAAE;AACpB,2BAAqB,EAAE;IACzB;AAEA,aAAS,gBAAgB,IAAkB,WAAgB;AACzD,UAAI,GAAG,KAAK;AAAK,eAAO,eAAe,IAAI,CAAA,GAAI,OAAO,SAAS;AAC/D,YAAM,SAAQ,GAAA,WAAA,gBAAe,GAAG,MAAM;AACtC,YAAM,gBAAe,GAAA,WAAA,wBAAuB,IAAI,KAAK;AACrD,qBAAe,IAAI,OAAO,CAAC,cAAc,SAAS;IACpD;AAEA,aAAS,qBAAqB,IAAgB;AAC5C,YAAM,EAAC,QAAQ,eAAe,MAAM,KAAI,IAAI;AAC5C,UAAI,OAAO,QAAQ,KAAK,0BAAyB,GAAA,OAAA,sBAAqB,QAAQ,KAAK,KAAK,GAAG;AACzF,aAAK,OAAO,KAAK,6CAA6C,aAAa,GAAG;MAChF;IACF;AAEA,aAAS,eAAe,IAAgB;AACtC,YAAM,EAAC,QAAQ,KAAI,IAAI;AACvB,UAAI,OAAO,YAAY,UAAa,KAAK,eAAe,KAAK,cAAc;AACzE,SAAA,GAAA,OAAA,iBAAgB,IAAI,uCAAuC;MAC7D;IACF;AAEA,aAAS,cAAc,IAAgB;AACrC,YAAM,QAAQ,GAAG,OAAO,GAAG,KAAK,QAAQ;AACxC,UAAI;AAAO,WAAG,UAAS,GAAA,UAAA,YAAW,GAAG,KAAK,aAAa,GAAG,QAAQ,KAAK;IACzE;AAEA,aAAS,iBAAiB,IAAgB;AACxC,UAAI,GAAG,OAAO,UAAU,CAAC,GAAG,UAAU;AAAQ,cAAM,IAAI,MAAM,6BAA6B;IAC7F;AAEA,aAAS,eAAe,EAAC,KAAK,WAAW,QAAQ,eAAe,KAAI,GAAe;AACjF,YAAM,MAAM,OAAO;AACnB,UAAI,KAAK,aAAa,MAAM;AAC1B,YAAI,MAAK,GAAA,UAAA,KAAI,QAAA,QAAE,IAAI,eAAe,GAAG,GAAG;MAC1C,WAAW,OAAO,KAAK,YAAY,YAAY;AAC7C,cAAM,cAAa,GAAA,UAAA,OAAM,aAAa;AACtC,cAAM,WAAW,IAAI,WAAW,QAAQ,EAAC,KAAK,UAAU,KAAI,CAAC;AAC7D,YAAI,MAAK,GAAA,UAAA,KAAI,QAAA,QAAE,IAAI,kBAAkB,GAAG,KAAK,UAAU,KAAK,QAAQ,UAAU;MAChF;IACF;AAEA,aAAS,cAAc,IAAa;AAClC,YAAM,EAAC,KAAK,WAAW,cAAc,iBAAiB,KAAI,IAAI;AAC9D,UAAI,UAAU,QAAQ;AAEpB,YAAI,IACF,GAAA,UAAA,KAAI,QAAA,QAAE,MAAM,UACZ,MAAM,IAAI,OAAO,QAAA,QAAE,IAAI,GACvB,MAAM,IAAI,OAAM,GAAA,UAAA,SAAQ,eAAuB,IAAI,QAAA,QAAE,OAAO,GAAG,CAAC;MAEpE,OAAO;AACL,YAAI,QAAO,GAAA,UAAA,KAAI,YAAY,WAAW,QAAA,QAAE,OAAO;AAC/C,YAAI,KAAK;AAAa,0BAAgB,EAAE;AACxC,YAAI,QAAO,GAAA,UAAA,KAAI,QAAA,QAAE,MAAM,QAAQ;MACjC;IACF;AAEA,aAAS,gBAAgB,EAAC,KAAK,WAAW,OAAO,MAAK,GAAY;AAChE,UAAI,iBAAiB,UAAA;AAAM,YAAI,QAAO,GAAA,UAAA,KAAI,SAAS,UAAU,KAAK;AAClE,UAAI,iBAAiB,UAAA;AAAM,YAAI,QAAO,GAAA,UAAA,KAAI,SAAS,UAAU,KAAK;IACpE;AAEA,aAAS,eACP,IACA,OACA,YACA,WAAgB;AAEhB,YAAM,EAAC,KAAK,QAAQ,MAAM,WAAW,MAAM,KAAI,IAAI;AACnD,YAAM,EAAC,MAAK,IAAI;AAChB,UAAI,OAAO,SAAS,KAAK,yBAAyB,EAAC,GAAA,OAAA,sBAAqB,QAAQ,KAAK,IAAI;AACvF,YAAI,MAAM,MAAM,YAAY,IAAI,QAAS,MAAM,IAAI,KAAc,UAAU,CAAC;AAC5E;MACF;AACA,UAAI,CAAC,KAAK;AAAK,yBAAiB,IAAI,KAAK;AACzC,UAAI,MAAM,MAAK;AACb,mBAAW,SAAS,MAAM;AAAO,wBAAc,KAAK;AACpD,sBAAc,MAAM,IAAI;MAC1B,CAAC;AAED,eAAS,cAAc,OAAgB;AACrC,YAAI,EAAC,GAAA,gBAAA,gBAAe,QAAQ,KAAK;AAAG;AACpC,YAAI,MAAM,MAAM;AACd,cAAI,IAAG,GAAA,WAAA,eAAc,MAAM,MAAM,MAAM,KAAK,aAAa,CAAC;AAC1D,0BAAgB,IAAI,KAAK;AACzB,cAAI,MAAM,WAAW,KAAK,MAAM,CAAC,MAAM,MAAM,QAAQ,YAAY;AAC/D,gBAAI,KAAI;AACR,aAAA,GAAA,WAAA,iBAAgB,EAAE;UACpB;AACA,cAAI,MAAK;QACX,OAAO;AACL,0BAAgB,IAAI,KAAK;QAC3B;AAEA,YAAI,CAAC;AAAW,cAAI,IAAG,GAAA,UAAA,KAAI,QAAA,QAAE,MAAM,QAAQ,aAAa,CAAC,EAAE;MAC7D;IACF;AAEA,aAAS,gBAAgB,IAAkB,OAAgB;AACzD,YAAM,EACJ,KACA,QACA,MAAM,EAAC,YAAW,EAAC,IACjB;AACJ,UAAI;AAAa,SAAA,GAAA,WAAA,gBAAe,IAAI,MAAM,IAAI;AAC9C,UAAI,MAAM,MAAK;AACb,mBAAW,QAAQ,MAAM,OAAO;AAC9B,eAAI,GAAA,gBAAA,eAAc,QAAQ,IAAI,GAAG;AAC/B,wBAAY,IAAI,KAAK,SAAS,KAAK,YAAY,MAAM,IAAI;UAC3D;QACF;MACF,CAAC;IACH;AAEA,aAAS,iBAAiB,IAAkB,OAAiB;AAC3D,UAAI,GAAG,UAAU,QAAQ,CAAC,GAAG,KAAK;AAAa;AAC/C,wBAAkB,IAAI,KAAK;AAC3B,UAAI,CAAC,GAAG,KAAK;AAAiB,2BAAmB,IAAI,KAAK;AAC1D,wBAAkB,IAAI,GAAG,SAAS;IACpC;AAEA,aAAS,kBAAkB,IAAkB,OAAiB;AAC5D,UAAI,CAAC,MAAM;AAAQ;AACnB,UAAI,CAAC,GAAG,UAAU,QAAQ;AACxB,WAAG,YAAY;AACf;MACF;AACA,YAAM,QAAQ,CAAC,MAAK;AAClB,YAAI,CAAC,aAAa,GAAG,WAAW,CAAC,GAAG;AAClC,2BAAiB,IAAI,SAAS,CAAC,6BAA6B,GAAG,UAAU,KAAK,GAAG,CAAC,GAAG;QACvF;MACF,CAAC;AACD,wBAAkB,IAAI,KAAK;IAC7B;AAEA,aAAS,mBAAmB,IAAkB,IAAc;AAC1D,UAAI,GAAG,SAAS,KAAK,EAAE,GAAG,WAAW,KAAK,GAAG,SAAS,MAAM,IAAI;AAC9D,yBAAiB,IAAI,iDAAiD;MACxE;IACF;AAEA,aAAS,kBAAkB,IAAkB,IAAc;AACzD,YAAM,QAAQ,GAAG,KAAK,MAAM;AAC5B,iBAAW,WAAW,OAAO;AAC3B,cAAM,OAAO,MAAM,OAAO;AAC1B,YAAI,OAAO,QAAQ,aAAY,GAAA,gBAAA,eAAc,GAAG,QAAQ,IAAI,GAAG;AAC7D,gBAAM,EAAC,KAAI,IAAI,KAAK;AACpB,cAAI,KAAK,UAAU,CAAC,KAAK,KAAK,CAAC,MAAM,kBAAkB,IAAI,CAAC,CAAC,GAAG;AAC9D,6BAAiB,IAAI,iBAAiB,KAAK,KAAK,GAAG,CAAC,kBAAkB,OAAO,GAAG;UAClF;QACF;MACF;IACF;AAEA,aAAS,kBAAkB,OAAmB,MAAc;AAC1D,aAAO,MAAM,SAAS,IAAI,KAAM,SAAS,YAAY,MAAM,SAAS,SAAS;IAC/E;AAEA,aAAS,aAAa,IAAgB,GAAW;AAC/C,aAAO,GAAG,SAAS,CAAC,KAAM,MAAM,aAAa,GAAG,SAAS,QAAQ;IACnE;AAEA,aAAS,kBAAkB,IAAkB,WAAqB;AAChE,YAAM,KAAiB,CAAA;AACvB,iBAAW,KAAK,GAAG,WAAW;AAC5B,YAAI,aAAa,WAAW,CAAC;AAAG,aAAG,KAAK,CAAC;iBAChC,UAAU,SAAS,SAAS,KAAK,MAAM;AAAU,aAAG,KAAK,SAAS;MAC7E;AACA,SAAG,YAAY;IACjB;AAEA,aAAS,iBAAiB,IAAkB,KAAW;AACrD,YAAM,aAAa,GAAG,UAAU,SAAS,GAAG;AAC5C,aAAO,QAAQ,UAAU;AACzB,OAAA,GAAA,OAAA,iBAAgB,IAAI,KAAK,GAAG,KAAK,WAAW;IAC9C;AAEA,QAAa,aAAb,MAAuB;MAiBrB,YAAY,IAAkB,KAA6B,SAAe;AACxE,SAAA,GAAA,UAAA,sBAAqB,IAAI,KAAK,OAAO;AACrC,aAAK,MAAM,GAAG;AACd,aAAK,YAAY,GAAG;AACpB,aAAK,UAAU;AACf,aAAK,OAAO,GAAG;AACf,aAAK,SAAS,GAAG,OAAO,OAAO;AAC/B,aAAK,QAAQ,IAAI,SAAS,GAAG,KAAK,SAAS,KAAK,UAAU,KAAK,OAAO;AACtE,aAAK,eAAc,GAAA,OAAA,gBAAe,IAAI,KAAK,QAAQ,SAAS,KAAK,KAAK;AACtE,aAAK,aAAa,IAAI;AACtB,aAAK,eAAe,GAAG;AACvB,aAAK,SAAS,CAAA;AACd,aAAK,KAAK;AACV,aAAK,MAAM;AAEX,YAAI,KAAK,OAAO;AACd,eAAK,aAAa,GAAG,IAAI,MAAM,WAAW,QAAQ,KAAK,OAAO,EAAE,CAAC;QACnE,OAAO;AACL,eAAK,aAAa,KAAK;AACvB,cAAI,EAAC,GAAA,UAAA,iBAAgB,KAAK,QAAQ,IAAI,YAAY,IAAI,cAAc,GAAG;AACrE,kBAAM,IAAI,MAAM,GAAG,OAAO,kBAAkB,KAAK,UAAU,IAAI,UAAU,CAAC,EAAE;UAC9E;QACF;AAEA,YAAI,UAAU,MAAM,IAAI,cAAc,IAAI,WAAW,OAAO;AAC1D,eAAK,YAAY,GAAG,IAAI,MAAM,SAAS,QAAA,QAAE,MAAM;QACjD;MACF;MAEA,OAAO,WAAiB,eAA4B,YAAuB;AACzE,aAAK,YAAW,GAAA,UAAA,KAAI,SAAS,GAAG,eAAe,UAAU;MAC3D;MAEA,WAAW,WAAiB,eAA4B,YAAuB;AAC7E,aAAK,IAAI,GAAG,SAAS;AACrB,YAAI;AAAY,qBAAU;;AACrB,eAAK,MAAK;AACf,YAAI,eAAe;AACjB,eAAK,IAAI,KAAI;AACb,wBAAa;AACb,cAAI,KAAK;AAAW,iBAAK,IAAI,MAAK;QACpC,OAAO;AACL,cAAI,KAAK;AAAW,iBAAK,IAAI,MAAK;;AAC7B,iBAAK,IAAI,KAAI;QACpB;MACF;MAEA,KAAK,WAAiB,YAAuB;AAC3C,aAAK,YAAW,GAAA,UAAA,KAAI,SAAS,GAAG,QAAW,UAAU;MACvD;MAEA,KAAK,WAAgB;AACnB,YAAI,cAAc,QAAW;AAC3B,eAAK,MAAK;AACV,cAAI,CAAC,KAAK;AAAW,iBAAK,IAAI,GAAG,KAAK;AACtC;QACF;AACA,aAAK,IAAI,GAAG,SAAS;AACrB,aAAK,MAAK;AACV,YAAI,KAAK;AAAW,eAAK,IAAI,MAAK;;AAC7B,eAAK,IAAI,KAAI;MACpB;MAEA,UAAU,WAAe;AACvB,YAAI,CAAC,KAAK;AAAO,iBAAO,KAAK,KAAK,SAAS;AAC3C,cAAM,EAAC,WAAU,IAAI;AACrB,aAAK,MAAK,GAAA,UAAA,KAAI,UAAU,uBAAsB,GAAA,UAAA,IAAG,KAAK,aAAY,GAAI,SAAS,CAAC,GAAG;MACrF;MAEA,MAAM,QAAkB,aAAgC,YAAuB;AAC7E,YAAI,aAAa;AACf,eAAK,UAAU,WAAW;AAC1B,eAAK,OAAO,QAAQ,UAAU;AAC9B,eAAK,UAAU,CAAA,CAAE;AACjB;QACF;AACA,aAAK,OAAO,QAAQ,UAAU;MAChC;MAEQ,OAAO,QAAkB,YAAuB;AACtD;AAAC,SAAC,SAAS,SAAA,mBAAmB,SAAA,aAAa,MAAM,KAAK,IAAI,OAAO,UAAU;MAC7E;MAEA,aAAU;AACR,SAAA,GAAA,SAAA,aAAY,MAAM,KAAK,IAAI,cAAc,SAAA,iBAAiB;MAC5D;MAEA,QAAK;AACH,YAAI,KAAK,cAAc;AAAW,gBAAM,IAAI,MAAM,yCAAyC;AAC3F,SAAA,GAAA,SAAA,kBAAiB,KAAK,KAAK,KAAK,SAAS;MAC3C;MAEA,GAAG,MAAoB;AACrB,YAAI,CAAC,KAAK;AAAW,eAAK,IAAI,GAAG,IAAI;MACvC;MAEA,UAAU,KAAuB,QAAa;AAC5C,YAAI;AAAQ,iBAAO,OAAO,KAAK,QAAQ,GAAG;;AACrC,eAAK,SAAS;MACrB;MAEA,WAAW,OAAa,WAAuB,aAAmB,UAAA,KAAG;AACnE,aAAK,IAAI,MAAM,MAAK;AAClB,eAAK,WAAW,OAAO,UAAU;AACjC,oBAAS;QACX,CAAC;MACH;MAEA,WAAW,QAAc,UAAA,KAAK,aAAmB,UAAA,KAAG;AAClD,YAAI,CAAC,KAAK;AAAO;AACjB,cAAM,EAAC,KAAK,YAAY,YAAY,IAAG,IAAI;AAC3C,YAAI,IAAG,GAAA,UAAA,KAAG,GAAA,UAAA,KAAI,UAAU,kBAAkB,UAAU,CAAC;AACrD,YAAI,UAAU,UAAA;AAAK,cAAI,OAAO,OAAO,IAAI;AACzC,YAAI,WAAW,UAAU,IAAI,gBAAgB;AAC3C,cAAI,OAAO,KAAK,aAAY,CAAE;AAC9B,eAAK,WAAU;AACf,cAAI,UAAU,UAAA;AAAK,gBAAI,OAAO,OAAO,KAAK;QAC5C;AACA,YAAI,KAAI;MACV;MAEA,eAAY;AACV,cAAM,EAAC,KAAK,YAAY,YAAY,KAAK,GAAE,IAAI;AAC/C,gBAAO,GAAA,UAAA,IAAG,eAAc,GAAI,mBAAkB,CAAE;AAEhD,iBAAS,iBAAc;AACrB,cAAI,WAAW,QAAQ;AAErB,gBAAI,EAAE,sBAAsB,UAAA;AAAO,oBAAM,IAAI,MAAM,0BAA0B;AAC7E,kBAAM,KAAK,MAAM,QAAQ,UAAU,IAAI,aAAa,CAAC,UAAU;AAC/D,oBAAO,GAAA,UAAA,MAAI,GAAA,WAAA,gBAAe,IAAI,YAAY,GAAG,KAAK,eAAe,WAAA,SAAS,KAAK,CAAC;UAClF;AACA,iBAAO,UAAA;QACT;AAEA,iBAAS,qBAAkB;AACzB,cAAI,IAAI,gBAAgB;AACtB,kBAAM,oBAAoB,IAAI,WAAW,iBAAiB,EAAC,KAAK,IAAI,eAAc,CAAC;AACnF,oBAAO,GAAA,UAAA,MAAK,iBAAiB,IAAI,UAAU;UAC7C;AACA,iBAAO,UAAA;QACT;MACF;MAEA,UAAU,MAAqB,OAAW;AACxC,cAAM,aAAY,GAAA,YAAA,cAAa,KAAK,IAAI,IAAI;AAC5C,SAAA,GAAA,YAAA,qBAAoB,WAAW,KAAK,IAAI,IAAI;AAC5C,SAAA,GAAA,YAAA,qBAAoB,WAAW,IAAI;AACnC,cAAM,cAAc,EAAC,GAAG,KAAK,IAAI,GAAG,WAAW,OAAO,QAAW,OAAO,OAAS;AACjF,sBAAc,aAAa,KAAK;AAChC,eAAO;MACT;MAEA,eAAe,WAAsB,QAAoB;AACvD,cAAM,EAAC,IAAI,IAAG,IAAI;AAClB,YAAI,CAAC,GAAG,KAAK;AAAa;AAC1B,YAAI,GAAG,UAAU,QAAQ,UAAU,UAAU,QAAW;AACtD,aAAG,QAAQ,OAAA,eAAe,MAAM,KAAK,UAAU,OAAO,GAAG,OAAO,MAAM;QACxE;AACA,YAAI,GAAG,UAAU,QAAQ,UAAU,UAAU,QAAW;AACtD,aAAG,QAAQ,OAAA,eAAe,MAAM,KAAK,UAAU,OAAO,GAAG,OAAO,MAAM;QACxE;MACF;MAEA,oBAAoB,WAAsB,OAAW;AACnD,cAAM,EAAC,IAAI,IAAG,IAAI;AAClB,YAAI,GAAG,KAAK,gBAAgB,GAAG,UAAU,QAAQ,GAAG,UAAU,OAAO;AACnE,cAAI,GAAG,OAAO,MAAM,KAAK,eAAe,WAAW,UAAA,IAAI,CAAC;AACxD,iBAAO;QACT;MACF;;AA3LF,YAAA,aAAA;AA8LA,aAAS,YACP,IACA,SACA,KACA,UAAmB;AAEnB,YAAM,MAAM,IAAI,WAAW,IAAI,KAAK,OAAO;AAC3C,UAAI,UAAU,KAAK;AACjB,YAAI,KAAK,KAAK,QAAQ;MACxB,WAAW,IAAI,SAAS,IAAI,UAAU;AACpC,SAAA,GAAA,UAAA,iBAAgB,KAAK,GAAG;MAC1B,WAAW,WAAW,KAAK;AACzB,SAAA,GAAA,UAAA,kBAAiB,KAAK,GAAG;MAC3B,WAAW,IAAI,WAAW,IAAI,UAAU;AACtC,SAAA,GAAA,UAAA,iBAAgB,KAAK,GAAG;MAC1B;IACF;AAEA,QAAM,eAAe;AACrB,QAAM,wBAAwB;AAC9B,aAAgB,QACd,OACA,EAAC,WAAW,WAAW,YAAW,GAAY;AAE9C,UAAI;AACJ,UAAI;AACJ,UAAI,UAAU;AAAI,eAAO,QAAA,QAAE;AAC3B,UAAI,MAAM,CAAC,MAAM,KAAK;AACpB,YAAI,CAAC,aAAa,KAAK,KAAK;AAAG,gBAAM,IAAI,MAAM,yBAAyB,KAAK,EAAE;AAC/E,sBAAc;AACd,eAAO,QAAA,QAAE;MACX,OAAO;AACL,cAAM,UAAU,sBAAsB,KAAK,KAAK;AAChD,YAAI,CAAC;AAAS,gBAAM,IAAI,MAAM,yBAAyB,KAAK,EAAE;AAC9D,cAAM,KAAa,CAAC,QAAQ,CAAC;AAC7B,sBAAc,QAAQ,CAAC;AACvB,YAAI,gBAAgB,KAAK;AACvB,cAAI,MAAM;AAAW,kBAAM,IAAI,MAAM,SAAS,kBAAkB,EAAE,CAAC;AACnE,iBAAO,YAAY,YAAY,EAAE;QACnC;AACA,YAAI,KAAK;AAAW,gBAAM,IAAI,MAAM,SAAS,QAAQ,EAAE,CAAC;AACxD,eAAO,UAAU,YAAY,EAAE;AAC/B,YAAI,CAAC;AAAa,iBAAO;MAC3B;AAEA,UAAI,OAAO;AACX,YAAM,WAAW,YAAY,MAAM,GAAG;AACtC,iBAAW,WAAW,UAAU;AAC9B,YAAI,SAAS;AACX,kBAAO,GAAA,UAAA,KAAI,IAAI,IAAG,GAAA,UAAA,cAAY,GAAA,OAAA,qBAAoB,OAAO,CAAC,CAAC;AAC3D,kBAAO,GAAA,UAAA,KAAI,IAAI,OAAO,IAAI;QAC5B;MACF;AACA,aAAO;AAEP,eAAS,SAAS,aAAqB,IAAU;AAC/C,eAAO,iBAAiB,WAAW,IAAI,EAAE,gCAAgC,SAAS;MACpF;IACF;AAtCA,YAAA,UAAA;;;;;;;;;AC7hBA,QAAqB,kBAArB,cAA6C,MAAK;MAKhD,YAAY,QAA8B;AACxC,cAAM,mBAAmB;AACzB,aAAK,SAAS;AACd,aAAK,MAAM,KAAK,aAAa;MAC/B;;AATF,YAAA,UAAA;;;;;;;;;ACFA,QAAA,YAAA;AAGA,QAAqB,kBAArB,cAA6C,MAAK;MAIhD,YAAY,UAAuB,QAAgB,KAAa,KAAY;AAC1E,cAAM,OAAO,2BAA2B,GAAG,YAAY,MAAM,EAAE;AAC/D,aAAK,cAAa,GAAA,UAAA,YAAW,UAAU,QAAQ,GAAG;AAClD,aAAK,iBAAgB,GAAA,UAAA,cAAY,GAAA,UAAA,aAAY,UAAU,KAAK,UAAU,CAAC;MACzE;;AARF,YAAA,UAAA;;;;;;;;;;ACOA,QAAA,YAAA;AACA,QAAA,qBAAA;AACA,QAAA,UAAA;AACA,QAAA,YAAA;AACA,QAAA,SAAA;AACA,QAAA,aAAA;AA0DA,QAAa,YAAb,MAAsB;MAkBpB,YAAY,KAAkB;;AATrB,aAAA,OAAmB,CAAA;AACnB,aAAA,iBAA2C,CAAA;AASlD,YAAI;AACJ,YAAI,OAAO,IAAI,UAAU;AAAU,mBAAS,IAAI;AAChD,aAAK,SAAS,IAAI;AAClB,aAAK,WAAW,IAAI;AACpB,aAAK,OAAO,IAAI,QAAQ;AACxB,aAAK,UAAS,KAAA,IAAI,YAAM,QAAA,OAAA,SAAA,MAAI,GAAA,UAAA,aAAY,WAAM,QAAN,WAAM,SAAA,SAAN,OAAS,IAAI,YAAY,KAAK,CAAC;AACvE,aAAK,aAAa,IAAI;AACtB,aAAK,YAAY,IAAI;AACrB,aAAK,OAAO,IAAI;AAChB,aAAK,SAAS,WAAM,QAAN,WAAM,SAAA,SAAN,OAAQ;AACtB,aAAK,OAAO,CAAA;MACd;;AA9BF,YAAA,YAAA;AAqCA,aAAgB,cAAyB,KAAc;AAErD,YAAM,OAAO,mBAAmB,KAAK,MAAM,GAAG;AAC9C,UAAI;AAAM,eAAO;AACjB,YAAM,UAAS,GAAA,UAAA,aAAY,KAAK,KAAK,aAAa,IAAI,KAAK,MAAM;AACjE,YAAM,EAAC,KAAK,MAAK,IAAI,KAAK,KAAK;AAC/B,YAAM,EAAC,cAAa,IAAI,KAAK;AAC7B,YAAM,MAAM,IAAI,UAAA,QAAQ,KAAK,OAAO,EAAC,KAAK,OAAO,cAAa,CAAC;AAC/D,UAAI;AACJ,UAAI,IAAI,QAAQ;AACd,2BAAmB,IAAI,WAAW,SAAS;UACzC,KAAK,mBAAA;UACL,OAAM,GAAA,UAAA;SACP;MACH;AAEA,YAAM,eAAe,IAAI,UAAU,UAAU;AAC7C,UAAI,eAAe;AAEnB,YAAM,YAAuB;QAC3B;QACA,WAAW,KAAK,KAAK;QACrB,MAAM,QAAA,QAAE;QACR,YAAY,QAAA,QAAE;QACd,oBAAoB,QAAA,QAAE;QACtB,WAAW,CAAC,QAAA,QAAE,IAAI;QAClB,aAAa,CAAC,UAAA,GAAG;;QACjB,WAAW;QACX,WAAW,CAAA;QACX,mBAAmB,oBAAI,IAAG;QAC1B,cAAc,IAAI,WAChB,UACA,KAAK,KAAK,KAAK,WAAW,OACtB,EAAC,KAAK,IAAI,QAAQ,OAAM,GAAA,UAAA,WAAU,IAAI,MAAM,EAAC,IAC7C,EAAC,KAAK,IAAI,OAAM,CAAC;QAEvB;QACA,iBAAiB;QACjB,QAAQ,IAAI;QACZ,WAAW;QACX;QACA,QAAQ,IAAI,UAAU;QACtB,YAAY,UAAA;QACZ,eAAe,IAAI,eAAe,KAAK,KAAK,MAAM,KAAK;QACvD,YAAW,GAAA,UAAA;QACX,MAAM,KAAK;QACX,MAAM;;AAGR,UAAI;AACJ,UAAI;AACF,aAAK,cAAc,IAAI,GAAG;AAC1B,SAAA,GAAA,WAAA,sBAAqB,SAAS;AAC9B,YAAI,SAAS,KAAK,KAAK,KAAK,QAAQ;AAEpC,cAAM,eAAe,IAAI,SAAQ;AACjC,qBAAa,GAAG,IAAI,UAAU,QAAA,QAAE,KAAK,CAAC,UAAU,YAAY;AAE5D,YAAI,KAAK,KAAK,KAAK;AAAS,uBAAa,KAAK,KAAK,KAAK,QAAQ,YAAY,GAAG;AAE/E,cAAM,eAAe,IAAI,SAAS,GAAG,QAAA,QAAE,IAAI,IAAI,GAAG,QAAA,QAAE,KAAK,IAAI,UAAU;AACvE,cAAM,WAAgC,aAAa,MAAM,KAAK,MAAM,IAAG,CAAE;AACzE,aAAK,MAAM,MAAM,cAAc,EAAC,KAAK,SAAQ,CAAC;AAE9C,iBAAS,SAAS;AAClB,iBAAS,SAAS,IAAI;AACtB,iBAAS,YAAY;AACrB,YAAI,IAAI;AAAS,mBAAmC,SAAS;AAC7D,YAAI,KAAK,KAAK,KAAK,WAAW,MAAM;AAClC,mBAAS,SAAS,EAAC,cAAc,cAAc,aAAa,IAAI,QAAO;QACzE;AACA,YAAI,KAAK,KAAK,aAAa;AACzB,gBAAM,EAAC,OAAO,MAAK,IAAI;AACvB,mBAAS,YAAY;YACnB,OAAO,iBAAiB,UAAA,OAAO,SAAY;YAC3C,OAAO,iBAAiB,UAAA,OAAO,SAAY;YAC3C,cAAc,iBAAiB,UAAA;YAC/B,cAAc,iBAAiB,UAAA;;AAEjC,cAAI,SAAS;AAAQ,qBAAS,OAAO,aAAY,GAAA,UAAA,WAAU,SAAS,SAAS;QAC/E;AACA,YAAI,WAAW;AACf,eAAO;MACT,SAAS,GAAG;AACV,eAAO,IAAI;AACX,eAAO,IAAI;AACX,YAAI;AAAY,eAAK,OAAO,MAAM,0CAA0C,UAAU;AAEtF,cAAM;MACR;AACE,aAAK,cAAc,OAAO,GAAG;MAC/B;IACF;AA5FA,YAAA,gBAAA;AA8FA,aAAgB,WAEd,MACA,QACA,KAAW;;AAEX,aAAM,GAAA,UAAA,YAAW,KAAK,KAAK,aAAa,QAAQ,GAAG;AACnD,YAAM,YAAY,KAAK,KAAK,GAAG;AAC/B,UAAI;AAAW,eAAO;AAEtB,UAAI,OAAO,QAAQ,KAAK,MAAM,MAAM,GAAG;AACvC,UAAI,SAAS,QAAW;AACtB,cAAM,UAAS,KAAA,KAAK,eAAS,QAAA,OAAA,SAAA,SAAA,GAAG,GAAG;AACnC,cAAM,EAAC,SAAQ,IAAI,KAAK;AACxB,YAAI;AAAQ,iBAAO,IAAI,UAAU,EAAC,QAAQ,UAAU,MAAM,OAAM,CAAC;MACnE;AAEA,UAAI,SAAS;AAAW;AACxB,aAAQ,KAAK,KAAK,GAAG,IAAI,gBAAgB,KAAK,MAAM,IAAI;IAC1D;AAnBA,YAAA,aAAA;AAqBA,aAAS,gBAA2B,KAAc;AAChD,WAAI,GAAA,UAAA,WAAU,IAAI,QAAQ,KAAK,KAAK,UAAU;AAAG,eAAO,IAAI;AAC5D,aAAO,IAAI,WAAW,MAAM,cAAc,KAAK,MAAM,GAAG;IAC1D;AAGA,aAAgB,mBAA8B,QAAiB;AAC7D,iBAAW,OAAO,KAAK,eAAe;AACpC,YAAI,cAAc,KAAK,MAAM;AAAG,iBAAO;MACzC;IACF;AAJA,YAAA,qBAAA;AAMA,aAAS,cAAc,IAAe,IAAa;AACjD,aAAO,GAAG,WAAW,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,GAAG,WAAW,GAAG;IAC5E;AAIA,aAAS,QAEP,MACA;AAEA,UAAI;AACJ,aAAO,QAAQ,MAAM,KAAK,KAAK,GAAG,MAAM;AAAU,cAAM;AACxD,aAAO,OAAO,KAAK,QAAQ,GAAG,KAAK,cAAc,KAAK,MAAM,MAAM,GAAG;IACvE;AAGA,aAAgB,cAEd,MACA;AAEA,YAAM,IAAI,KAAK,KAAK,YAAY,MAAM,GAAG;AACzC,YAAM,WAAU,GAAA,UAAA,cAAa,KAAK,KAAK,aAAa,CAAC;AACrD,UAAI,UAAS,GAAA,UAAA,aAAY,KAAK,KAAK,aAAa,KAAK,QAAQ,MAAS;AAEtE,UAAI,OAAO,KAAK,KAAK,MAAM,EAAE,SAAS,KAAK,YAAY,QAAQ;AAC7D,eAAO,eAAe,KAAK,MAAM,GAAG,IAAI;MAC1C;AAEA,YAAM,MAAK,GAAA,UAAA,aAAY,OAAO;AAC9B,YAAM,WAAW,KAAK,KAAK,EAAE,KAAK,KAAK,QAAQ,EAAE;AACjD,UAAI,OAAO,YAAY,UAAU;AAC/B,cAAM,MAAM,cAAc,KAAK,MAAM,MAAM,QAAQ;AACnD,YAAI,QAAO,QAAG,QAAH,QAAG,SAAA,SAAH,IAAK,YAAW;AAAU;AACrC,eAAO,eAAe,KAAK,MAAM,GAAG,GAAG;MACzC;AAEA,UAAI,QAAO,aAAQ,QAAR,aAAQ,SAAA,SAAR,SAAU,YAAW;AAAU;AAC1C,UAAI,CAAC,SAAS;AAAU,sBAAc,KAAK,MAAM,QAAQ;AACzD,UAAI,QAAO,GAAA,UAAA,aAAY,GAAG,GAAG;AAC3B,cAAM,EAAC,OAAM,IAAI;AACjB,cAAM,EAAC,SAAQ,IAAI,KAAK;AACxB,cAAM,QAAQ,OAAO,QAAQ;AAC7B,YAAI;AAAO,oBAAS,GAAA,UAAA,YAAW,KAAK,KAAK,aAAa,QAAQ,KAAK;AACnE,eAAO,IAAI,UAAU,EAAC,QAAQ,UAAU,MAAM,OAAM,CAAC;MACvD;AACA,aAAO,eAAe,KAAK,MAAM,GAAG,QAAQ;IAC9C;AA/BA,YAAA,gBAAA;AAiCA,QAAM,uBAAuB,oBAAI,IAAI;MACnC;MACA;MACA;MACA;MACA;KACD;AAED,aAAS,eAEP,WACA,EAAC,QAAQ,QAAQ,KAAI,GAAY;;AAEjC,YAAI,KAAA,UAAU,cAAQ,QAAA,OAAA,SAAA,SAAA,GAAG,CAAC,OAAM;AAAK;AACrC,iBAAW,QAAQ,UAAU,SAAS,MAAM,CAAC,EAAE,MAAM,GAAG,GAAG;AACzD,YAAI,OAAO,WAAW;AAAW;AACjC,cAAM,aAAa,QAAO,GAAA,OAAA,kBAAiB,IAAI,CAAC;AAChD,YAAI,eAAe;AAAW;AAC9B,iBAAS;AAET,cAAM,QAAQ,OAAO,WAAW,YAAY,OAAO,KAAK,KAAK,QAAQ;AACrE,YAAI,CAAC,qBAAqB,IAAI,IAAI,KAAK,OAAO;AAC5C,oBAAS,GAAA,UAAA,YAAW,KAAK,KAAK,aAAa,QAAQ,KAAK;QAC1D;MACF;AACA,UAAI;AACJ,UAAI,OAAO,UAAU,aAAa,OAAO,QAAQ,EAAC,GAAA,OAAA,sBAAqB,QAAQ,KAAK,KAAK,GAAG;AAC1F,cAAM,QAAO,GAAA,UAAA,YAAW,KAAK,KAAK,aAAa,QAAQ,OAAO,IAAI;AAClE,cAAM,cAAc,KAAK,MAAM,MAAM,IAAI;MAC3C;AAGA,YAAM,EAAC,SAAQ,IAAI,KAAK;AACxB,YAAM,OAAO,IAAI,UAAU,EAAC,QAAQ,UAAU,MAAM,OAAM,CAAC;AAC3D,UAAI,IAAI,WAAW,IAAI,KAAK;AAAQ,eAAO;AAC3C,aAAO;IACT;;;;;ACnUA;AAAA;AAAA;AAAA,MACE,KAAO;AAAA,MACP,aAAe;AAAA,MACf,MAAQ;AAAA,MACR,UAAY,CAAC,OAAO;AAAA,MACpB,YAAc;AAAA,QACZ,OAAS;AAAA,UACP,MAAQ;AAAA,UACR,OAAS,CAAC,EAAC,QAAU,wBAAuB,GAAG,EAAC,QAAU,eAAc,CAAC;AAAA,QAC3E;AAAA,MACF;AAAA,MACA,sBAAwB;AAAA,IAC1B;AAAA;AAAA;;;ACZA;AAAA;AAAA;AAGA,QAAM,SAAS,OAAO,UAAU,KAAK,KAAK,6DAA6D;AAGvG,QAAM,SAAS,OAAO,UAAU,KAAK,KAAK,0FAA0F;AAGpI,QAAM,YAAY,OAAO,UAAU,KAAK,KAAK,gBAAgB;AAG7D,QAAM,eAAe,OAAO,UAAU,KAAK,KAAK,kBAAkB;AAGlE,QAAM,kBAAkB,OAAO,UAAU,KAAK,KAAK,gCAAgC;AAMnF,aAAS,yBAA0B,OAAO;AACxC,UAAI,MAAM;AACV,UAAI,OAAO;AACX,UAAI,IAAI;AAER,WAAK,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACjC,eAAO,MAAM,CAAC,EAAE,WAAW,CAAC;AAC5B,YAAI,SAAS,IAAI;AACf;AAAA,QACF;AACA,YAAI,EAAG,QAAQ,MAAM,QAAQ,MAAQ,QAAQ,MAAM,QAAQ,MAAQ,QAAQ,MAAM,QAAQ,MAAO;AAC9F,iBAAO;AAAA,QACT;AACA,eAAO,MAAM,CAAC;AACd;AAAA,MACF;AAEA,WAAK,KAAK,GAAG,IAAI,MAAM,QAAQ,KAAK;AAClC,eAAO,MAAM,CAAC,EAAE,WAAW,CAAC;AAC5B,YAAI,EAAG,QAAQ,MAAM,QAAQ,MAAQ,QAAQ,MAAM,QAAQ,MAAQ,QAAQ,MAAM,QAAQ,MAAO;AAC9F,iBAAO;AAAA,QACT;AACA,eAAO,MAAM,CAAC;AAAA,MAChB;AACA,aAAO;AAAA,IACT;AAaA,QAAM,kBAAkB,OAAO,UAAU,KAAK,KAAK,6BAA6B;AAMhF,aAAS,cAAe,QAAQ;AAC9B,aAAO,SAAS;AAChB,aAAO;AAAA,IACT;AAQA,aAAS,eAAgB,QAAQ,SAAS,QAAQ;AAChD,UAAI,OAAO,QAAQ;AACjB,cAAM,MAAM,yBAAyB,MAAM;AAC3C,YAAI,QAAQ,IAAI;AACd,kBAAQ,KAAK,GAAG;AAAA,QAClB,OAAO;AACL,iBAAO,QAAQ;AACf,iBAAO;AAAA,QACT;AACA,eAAO,SAAS;AAAA,MAClB;AACA,aAAO;AAAA,IACT;AAMA,aAAS,QAAS,OAAO;AACvB,UAAI,aAAa;AACjB,YAAM,SAAS,EAAE,OAAO,OAAO,SAAS,IAAI,MAAM,GAAG;AAErD,YAAM,UAAU,CAAC;AAEjB,YAAM,SAAS,CAAC;AAChB,UAAI,qBAAqB;AACzB,UAAI,UAAU;AAEd,UAAI,UAAU;AAEd,eAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACrC,cAAM,SAAS,MAAM,CAAC;AACtB,YAAI,WAAW,OAAO,WAAW,KAAK;AAAE;AAAA,QAAS;AACjD,YAAI,WAAW,KAAK;AAClB,cAAI,uBAAuB,MAAM;AAC/B,sBAAU;AAAA,UACZ;AACA,cAAI,CAAC,QAAQ,QAAQ,SAAS,MAAM,GAAG;AAAE;AAAA,UAAM;AAC/C,cAAI,EAAE,aAAa,GAAG;AAEpB,mBAAO,QAAQ;AACf;AAAA,UACF;AACA,cAAI,IAAI,KAAK,MAAM,IAAI,CAAC,MAAM,KAAK;AACjC,iCAAqB;AAAA,UACvB;AACA,kBAAQ,KAAK,GAAG;AAChB;AAAA,QACF,WAAW,WAAW,KAAK;AACzB,cAAI,CAAC,QAAQ,QAAQ,SAAS,MAAM,GAAG;AAAE;AAAA,UAAM;AAE/C,oBAAU;AAAA,QACZ,OAAO;AACL,iBAAO,KAAK,MAAM;AAClB;AAAA,QACF;AAAA,MACF;AACA,UAAI,OAAO,QAAQ;AACjB,YAAI,YAAY,eAAe;AAC7B,iBAAO,OAAO,OAAO,KAAK,EAAE;AAAA,QAC9B,WAAW,SAAS;AAClB,kBAAQ,KAAK,OAAO,KAAK,EAAE,CAAC;AAAA,QAC9B,OAAO;AACL,kBAAQ,KAAK,yBAAyB,MAAM,CAAC;AAAA,QAC/C;AAAA,MACF;AACA,aAAO,UAAU,QAAQ,KAAK,EAAE;AAChC,aAAO;AAAA,IACT;AAaA,aAAS,cAAe,MAAM;AAC5B,UAAI,UAAU,MAAM,GAAG,IAAI,GAAG;AAAE,eAAO,EAAE,MAAM,QAAQ,MAAM;AAAA,MAAE;AAC/D,YAAM,OAAO,QAAQ,IAAI;AAEzB,UAAI,CAAC,KAAK,OAAO;AACf,YAAI,UAAU,KAAK;AACnB,YAAI,cAAc,KAAK;AACvB,YAAI,KAAK,MAAM;AACb,qBAAW,MAAM,KAAK;AACtB,yBAAe,QAAQ,KAAK;AAAA,QAC9B;AACA,eAAO,EAAE,MAAM,SAAS,QAAQ,MAAM,YAAY;AAAA,MACpD,OAAO;AACL,eAAO,EAAE,MAAM,QAAQ,MAAM;AAAA,MAC/B;AAAA,IACF;AAOA,aAAS,UAAW,KAAK,OAAO;AAC9B,UAAI,MAAM;AACV,eAAS,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK;AACnC,YAAI,IAAI,CAAC,MAAM,MAAO;AAAA,MACxB;AACA,aAAO;AAAA,IACT;AAQA,aAAS,kBAAmB,MAAM;AAChC,UAAI,QAAQ;AACZ,YAAM,SAAS,CAAC;AAChB,UAAI,YAAY;AAChB,UAAI,MAAM;AAGV,aAAO,MAAM,MAAM,QAAQ;AACzB,YAAI,QAAQ,GAAG;AACb,cAAI,UAAU,KAAK;AACjB;AAAA,UACF,WAAW,UAAU,KAAK;AACxB,mBAAO,KAAK,GAAG;AACf;AAAA,UACF,OAAO;AACL,mBAAO,KAAK,KAAK;AACjB;AAAA,UACF;AAAA,QACF,WAAW,QAAQ,GAAG;AACpB,cAAI,MAAM,CAAC,MAAM,KAAK;AACpB,gBAAI,MAAM,CAAC,MAAM,KAAK;AACpB;AAAA,YACF,WAAW,MAAM,CAAC,MAAM,KAAK;AAC3B,sBAAQ,MAAM,MAAM,CAAC;AACrB;AAAA,YACF;AAAA,UACF,WAAW,MAAM,CAAC,MAAM,KAAK;AAC3B,gBAAI,MAAM,CAAC,MAAM,OAAO,MAAM,CAAC,MAAM,KAAK;AACxC,qBAAO,KAAK,GAAG;AACf;AAAA,YACF;AAAA,UACF;AAAA,QACF,WAAW,QAAQ,GAAG;AACpB,cAAI,UAAU,OAAO;AACnB,gBAAI,OAAO,WAAW,GAAG;AACvB,qBAAO,IAAI;AAAA,YACb;AACA,mBAAO,KAAK,GAAG;AACf;AAAA,UACF;AAAA,QACF;AACA,YAAI,MAAM,CAAC,MAAM,KAAK;AACpB,cAAI,MAAM,CAAC,MAAM,KAAK;AACpB,gBAAI,MAAM,CAAC,MAAM,KAAK;AACpB,sBAAQ,MAAM,MAAM,CAAC;AACrB;AAAA,YACF;AAAA,UACF,WAAW,MAAM,CAAC,MAAM,KAAK;AAC3B,oBAAQ,MAAM,MAAM,CAAC;AACrB;AAAA,UACF;AAAA,QACF,WAAW,MAAM,CAAC,MAAM,KAAK;AAC3B,cAAI,MAAM,CAAC,MAAM,KAAK;AACpB,gBAAI,MAAM,CAAC,MAAM,KAAK;AACpB,sBAAQ,MAAM,MAAM,CAAC;AACrB;AAAA,YACF,WAAW,MAAM,CAAC,MAAM,KAAK;AAC3B,kBAAI,MAAM,CAAC,MAAM,KAAK;AACpB,wBAAQ,MAAM,MAAM,CAAC;AACrB,oBAAI,OAAO,WAAW,GAAG;AACvB,yBAAO,IAAI;AAAA,gBACb;AACA;AAAA,cACF;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAGA,aAAK,YAAY,MAAM,QAAQ,KAAK,CAAC,OAAO,IAAI;AAC9C,iBAAO,KAAK,KAAK;AACjB;AAAA,QACF,OAAO;AACL,iBAAO,KAAK,MAAM,MAAM,GAAG,SAAS,CAAC;AACrC,kBAAQ,MAAM,MAAM,SAAS;AAAA,QAC/B;AAAA,MACF;AAEA,aAAO,OAAO,KAAK,EAAE;AAAA,IACvB;AAYA,QAAM,cAAc,EAAE,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,MAAM;AACjF,QAAM,gBAAgB;AACtB,QAAM,yBAAyB;AAE/B,aAAS,uBAAwB,MAAM,MAAM;AAC3C,YAAM,KAAK,OAAO,yBAAyB;AAC3C,SAAG,YAAY;AACf,aAAO,KAAK,QAAQ,IAAI,CAAC,OAAO,YAAY,EAAE,CAAC;AAAA,IACjD;AAUA,aAAS,yBAA0B,OAAO,mBAAmB,OAAO;AAClE,UAAI,MAAM,QAAQ,GAAG,MAAM,IAAI;AAC7B,eAAO;AAAA,MACT;AAEA,UAAI,SAAS;AAEb,eAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACrC,YAAI,MAAM,CAAC,MAAM,OAAO,IAAI,IAAI,MAAM,QAAQ;AAC5C,gBAAM,MAAM,MAAM,MAAM,IAAI,GAAG,IAAI,CAAC;AACpC,cAAI,UAAU,GAAG,GAAG;AAClB,kBAAM,gBAAgB,IAAI,YAAY;AACtC,kBAAM,UAAU,OAAO,aAAa,SAAS,eAAe,EAAE,CAAC;AAE/D,gBAAI,oBAAoB,aAAa,OAAO,GAAG;AAC7C,wBAAU;AAAA,YACZ,OAAO;AACL,wBAAU,MAAM;AAAA,YAClB;AAEA,iBAAK;AACL;AAAA,UACF;AAAA,QACF;AAEA,kBAAU,MAAM,CAAC;AAAA,MACnB;AAEA,aAAO;AAAA,IACT;AAUA,aAAS,sBAAuB,OAAO;AACrC,UAAI,SAAS;AAEb,eAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACrC,YAAI,MAAM,CAAC,MAAM,OAAO,IAAI,IAAI,MAAM,QAAQ;AAC5C,gBAAM,MAAM,MAAM,MAAM,IAAI,GAAG,IAAI,CAAC;AACpC,cAAI,UAAU,GAAG,GAAG;AAClB,kBAAM,gBAAgB,IAAI,YAAY;AACtC,kBAAM,UAAU,OAAO,aAAa,SAAS,eAAe,EAAE,CAAC;AAE/D,gBAAI,YAAY,OAAO,aAAa,OAAO,GAAG;AAC5C,wBAAU;AAAA,YACZ,OAAO;AACL,wBAAU,MAAM;AAAA,YAClB;AAEA,iBAAK;AACL;AAAA,UACF;AAAA,QACF;AAEA,YAAI,gBAAgB,MAAM,CAAC,CAAC,GAAG;AAC7B,oBAAU,MAAM,CAAC;AAAA,QACnB,OAAO;AACL,oBAAU,OAAO,MAAM,CAAC,CAAC;AAAA,QAC3B;AAAA,MACF;AAEA,aAAO;AAAA,IACT;AAQA,aAAS,wBAAyB,OAAO;AACvC,UAAI,SAAS;AAEb,eAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACrC,YAAI,MAAM,CAAC,MAAM,OAAO,IAAI,IAAI,MAAM,QAAQ;AAC5C,gBAAM,MAAM,MAAM,MAAM,IAAI,GAAG,IAAI,CAAC;AACpC,cAAI,UAAU,GAAG,GAAG;AAClB,sBAAU,MAAM,IAAI,YAAY;AAChC,iBAAK;AACL;AAAA,UACF;AAAA,QACF;AAEA,kBAAU,OAAO,MAAM,CAAC,CAAC;AAAA,MAC3B;AAEA,aAAO;AAAA,IACT;AAMA,aAAS,mBAAoB,WAAW;AACtC,YAAM,YAAY,CAAC;AAEnB,UAAI,UAAU,aAAa,QAAW;AACpC,kBAAU,KAAK,UAAU,QAAQ;AACjC,kBAAU,KAAK,GAAG;AAAA,MACpB;AAEA,UAAI,UAAU,SAAS,QAAW;AAChC,YAAI,OAAO,SAAS,UAAU,IAAI;AAClC,YAAI,CAAC,OAAO,IAAI,GAAG;AACjB,gBAAM,UAAU,cAAc,IAAI;AAClC,cAAI,QAAQ,WAAW,MAAM;AAC3B,mBAAO,IAAI,QAAQ,WAAW;AAAA,UAChC,OAAO;AACL,mBAAO,uBAAuB,MAAM,KAAK;AAAA,UAC3C;AAAA,QACF;AACA,kBAAU,KAAK,IAAI;AAAA,MACrB;AAEA,UAAI,OAAO,UAAU,SAAS,YAAY,OAAO,UAAU,SAAS,UAAU;AAC5E,kBAAU,KAAK,GAAG;AAClB,kBAAU,KAAK,OAAO,UAAU,IAAI,CAAC;AAAA,MACvC;AAEA,aAAO,UAAU,SAAS,UAAU,KAAK,EAAE,IAAI;AAAA,IACjD;AAEA,WAAO,UAAU;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA;AAAA;;;AC1bA;AAAA;AAAA;AAEA,QAAM,EAAE,OAAO,IAAI;AACnB,QAAM,UAAU;AAEhB,QAAM;AAAA;AAAA,MAA6C;AAAA,QAAC;AAAA,QAAQ;AAAA,QAAS;AAAA,QACnE;AAAA,QAAO;AAAA,QAAO;AAAA,MAAU;AAAA;AAQ1B,aAAS,kBAAmB,MAAM;AAChC,aAAO,qBAAqB;AAAA;AAAA,QAA0B;AAAA,MAAK,MAAM;AAAA,IACnE;AAwBA,aAAS,WAAY,aAAa;AAChC,UAAI,YAAY,WAAW,MAAM;AAC/B,eAAO;AAAA,MACT,WAAW,YAAY,WAAW,OAAO;AACvC,eAAO;AAAA,MACT,WAAW,YAAY,QAAQ;AAC7B,eACE,YAAY,OAAO,WAAW,MAC7B,YAAY,OAAO,CAAC,MAAM,OAAO,YAAY,OAAO,CAAC,MAAM,SAC3D,YAAY,OAAO,CAAC,MAAM,OAAO,YAAY,OAAO,CAAC,MAAM,SAC3D,YAAY,OAAO,CAAC,MAAM,OAAO,YAAY,OAAO,CAAC,MAAM;AAAA,MAEhE,OAAO;AACL,eAAO;AAAA,MACT;AAAA,IACF;AAGA,aAAS,UAAW,WAAW;AAC7B,UAAI,CAAC,UAAU,MAAM;AACnB,kBAAU,QAAQ,UAAU,SAAS;AAAA,MACvC;AAEA,aAAO;AAAA,IACT;AAGA,aAAS,cAAe,WAAW;AACjC,YAAM,SAAS,OAAO,UAAU,MAAM,EAAE,YAAY,MAAM;AAG1D,UAAI,UAAU,UAAU,SAAS,MAAM,OAAO,UAAU,SAAS,IAAI;AACnE,kBAAU,OAAO;AAAA,MACnB;AAGA,UAAI,CAAC,UAAU,MAAM;AACnB,kBAAU,OAAO;AAAA,MACnB;AAMA,aAAO;AAAA,IACT;AAGA,aAAS,QAAS,aAAa;AAE7B,kBAAY,SAAS,WAAW,WAAW;AAG3C,kBAAY,gBAAgB,YAAY,QAAQ,QAAQ,YAAY,QAAQ,MAAM,YAAY,QAAQ;AACtG,kBAAY,OAAO;AACnB,kBAAY,QAAQ;AAEpB,aAAO;AAAA,IACT;AAGA,aAAS,YAAa,aAAa;AAEjC,UAAI,YAAY,UAAU,WAAW,WAAW,IAAI,MAAM,OAAO,YAAY,SAAS,IAAI;AACxF,oBAAY,OAAO;AAAA,MACrB;AAGA,UAAI,OAAO,YAAY,WAAW,WAAW;AAC3C,oBAAY,SAAU,YAAY,SAAS,QAAQ;AACnD,oBAAY,SAAS;AAAA,MACvB;AAGA,UAAI,YAAY,cAAc;AAC5B,cAAM,CAAC,MAAM,KAAK,IAAI,YAAY,aAAa,MAAM,GAAG;AACxD,oBAAY,OAAQ,QAAQ,SAAS,MAAM,OAAO;AAClD,oBAAY,QAAQ;AACpB,oBAAY,eAAe;AAAA,MAC7B;AAGA,kBAAY,WAAW;AAEvB,aAAO;AAAA,IACT;AAGA,aAAS,SAAU,cAAc,SAAS;AACxC,UAAI,CAAC,aAAa,MAAM;AACtB,qBAAa,QAAQ;AACrB,eAAO;AAAA,MACT;AACA,YAAM,UAAU,aAAa,KAAK,MAAM,OAAO;AAC/C,UAAI,SAAS;AACX,cAAM,SAAS,QAAQ,UAAU,aAAa,UAAU;AACxD,qBAAa,MAAM,QAAQ,CAAC,EAAE,YAAY;AAC1C,qBAAa,MAAM,QAAQ,CAAC;AAC5B,cAAM,YAAY,GAAG,MAAM,IAAI,QAAQ,OAAO,aAAa,GAAG;AAC9D,cAAM,gBAAgB,iBAAiB,SAAS;AAChD,qBAAa,OAAO;AAEpB,YAAI,eAAe;AACjB,yBAAe,cAAc,MAAM,cAAc,OAAO;AAAA,QAC1D;AAAA,MACF,OAAO;AACL,qBAAa,QAAQ,aAAa,SAAS;AAAA,MAC7C;AAEA,aAAO;AAAA,IACT;AAGA,aAAS,aAAc,cAAc,SAAS;AAC5C,UAAI,aAAa,QAAQ,QAAW;AAClC,cAAM,IAAI,MAAM,sCAAsC;AAAA,MACxD;AACA,YAAM,SAAS,QAAQ,UAAU,aAAa,UAAU;AACxD,YAAM,MAAM,aAAa,IAAI,YAAY;AACzC,YAAM,YAAY,GAAG,MAAM,IAAI,QAAQ,OAAO,GAAG;AACjD,YAAM,gBAAgB,iBAAiB,SAAS;AAEhD,UAAI,eAAe;AACjB,uBAAe,cAAc,UAAU,cAAc,OAAO;AAAA,MAC9D;AAEA,YAAM,eAAe;AACrB,YAAM,MAAM,aAAa;AACzB,mBAAa,OAAO,GAAG,OAAO,QAAQ,GAAG,IAAI,GAAG;AAEhD,cAAQ,aAAa;AACrB,aAAO;AAAA,IACT;AAGA,aAAS,aAAc,cAAc,SAAS;AAC5C,YAAM,gBAAgB;AACtB,oBAAc,OAAO,cAAc;AACnC,oBAAc,MAAM;AAEpB,UAAI,CAAC,QAAQ,aAAa,CAAC,cAAc,QAAQ,CAAC,OAAO,cAAc,IAAI,IAAI;AAC7E,sBAAc,QAAQ,cAAc,SAAS;AAAA,MAC/C;AAEA,aAAO;AAAA,IACT;AAGA,aAAS,iBAAkB,eAAe;AACxC,YAAM,eAAe;AAErB,mBAAa,OAAO,cAAc,QAAQ,IAAI,YAAY;AAC1D,aAAO;AAAA,IACT;AAEA,QAAM;AAAA;AAAA,MAAqC;AAAA,QACzC,QAAQ;AAAA,QACR,YAAY;AAAA,QACZ,OAAO;AAAA,QACP,WAAW;AAAA,MACb;AAAA;AAEA,QAAM;AAAA;AAAA,MAAsC;AAAA,QAC1C,QAAQ;AAAA,QACR,YAAY,KAAK;AAAA,QACjB,OAAO;AAAA,QACP,WAAW;AAAA,MACb;AAAA;AAEA,QAAM;AAAA;AAAA,MAAmC;AAAA,QACvC,QAAQ;AAAA,QACR,YAAY;AAAA,QACZ,OAAO;AAAA,QACP,WAAW;AAAA,MACb;AAAA;AAEA,QAAM;AAAA;AAAA,MAAoC;AAAA,QACxC,QAAQ;AAAA,QACR,YAAY,GAAG;AAAA,QACf,OAAO,GAAG;AAAA,QACV,WAAW,GAAG;AAAA,MAChB;AAAA;AAEA,QAAM;AAAA;AAAA,MAAoC;AAAA,QACxC,QAAQ;AAAA,QACR,OAAO;AAAA,QACP,WAAW;AAAA,QACX,eAAe;AAAA,MACjB;AAAA;AAEA,QAAM;AAAA;AAAA,MAAwC;AAAA,QAC5C,QAAQ;AAAA,QACR,OAAO;AAAA,QACP,WAAW;AAAA,QACX,eAAe;AAAA,MACjB;AAAA;AAEA,QAAM;AAAA;AAAA,MAA4D;AAAA,QAChE;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,YAAY;AAAA,MACd;AAAA;AAEA,WAAO,eAAe,SAAS,IAAI;AAMnC,aAAS,iBAAkB,QAAQ;AACjC,aACE,WACE;AAAA;AAAA,QAAmC;AAAA,MAAO,KAC1C;AAAA;AAAA,QAAkC,OAAO,YAAY;AAAA,MAAE,MAEzD;AAAA,IACJ;AAEA,WAAO,UAAU;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA;AAAA;;;AC1QA;AAAA;AAAA;AAEA,QAAM,EAAE,eAAe,mBAAmB,oBAAoB,0BAA0B,uBAAuB,yBAAyB,wBAAwB,QAAQ,gBAAgB,IAAI;AAC5L,QAAM,EAAE,SAAS,iBAAiB,IAAI;AAQtC,aAAS,UAAW,KAAK,SAAS;AAChC,UAAI,OAAO,QAAQ,UAAU;AAC3B;AAAA,QAAwB,gBAAgB,KAAK,OAAO;AAAA,MACtD,WAAW,OAAO,QAAQ,UAAU;AAClC;AAAA,QAAwB,MAAM,UAAU,KAAK,OAAO,GAAG,OAAO;AAAA,MAChE;AACA,aAAO;AAAA,IACT;AAQA,aAAS,QAAS,SAAS,aAAa,SAAS;AAC/C,YAAM,oBAAoB,UAAU,OAAO,OAAO,EAAE,QAAQ,OAAO,GAAG,OAAO,IAAI,EAAE,QAAQ,OAAO;AAClG,YAAM,WAAW,iBAAiB,MAAM,SAAS,iBAAiB,GAAG,MAAM,aAAa,iBAAiB,GAAG,mBAAmB,IAAI;AACnI,wBAAkB,aAAa;AAC/B,aAAO,UAAU,UAAU,iBAAiB;AAAA,IAC9C;AASA,aAAS,iBAAkB,MAAM,UAAU,SAAS,mBAAmB;AAErE,YAAM,SAAS,CAAC;AAChB,UAAI,CAAC,mBAAmB;AACtB,eAAO,MAAM,UAAU,MAAM,OAAO,GAAG,OAAO;AAC9C,mBAAW,MAAM,UAAU,UAAU,OAAO,GAAG,OAAO;AAAA,MACxD;AACA,gBAAU,WAAW,CAAC;AAEtB,UAAI,CAAC,QAAQ,YAAY,SAAS,QAAQ;AACxC,eAAO,SAAS,SAAS;AAEzB,eAAO,WAAW,SAAS;AAC3B,eAAO,OAAO,SAAS;AACvB,eAAO,OAAO,SAAS;AACvB,eAAO,OAAO,kBAAkB,SAAS,QAAQ,EAAE;AACnD,eAAO,QAAQ,SAAS;AAAA,MAC1B,OAAO;AACL,YAAI,SAAS,aAAa,UAAa,SAAS,SAAS,UAAa,SAAS,SAAS,QAAW;AAEjG,iBAAO,WAAW,SAAS;AAC3B,iBAAO,OAAO,SAAS;AACvB,iBAAO,OAAO,SAAS;AACvB,iBAAO,OAAO,kBAAkB,SAAS,QAAQ,EAAE;AACnD,iBAAO,QAAQ,SAAS;AAAA,QAC1B,OAAO;AACL,cAAI,CAAC,SAAS,MAAM;AAClB,mBAAO,OAAO,KAAK;AACnB,gBAAI,SAAS,UAAU,QAAW;AAChC,qBAAO,QAAQ,SAAS;AAAA,YAC1B,OAAO;AACL,qBAAO,QAAQ,KAAK;AAAA,YACtB;AAAA,UACF,OAAO;AACL,gBAAI,SAAS,KAAK,CAAC,MAAM,KAAK;AAC5B,qBAAO,OAAO,kBAAkB,SAAS,IAAI;AAAA,YAC/C,OAAO;AACL,mBAAK,KAAK,aAAa,UAAa,KAAK,SAAS,UAAa,KAAK,SAAS,WAAc,CAAC,KAAK,MAAM;AACrG,uBAAO,OAAO,MAAM,SAAS;AAAA,cAC/B,WAAW,CAAC,KAAK,MAAM;AACrB,uBAAO,OAAO,SAAS;AAAA,cACzB,OAAO;AACL,uBAAO,OAAO,KAAK,KAAK,MAAM,GAAG,KAAK,KAAK,YAAY,GAAG,IAAI,CAAC,IAAI,SAAS;AAAA,cAC9E;AACA,qBAAO,OAAO,kBAAkB,OAAO,IAAI;AAAA,YAC7C;AACA,mBAAO,QAAQ,SAAS;AAAA,UAC1B;AAEA,iBAAO,WAAW,KAAK;AACvB,iBAAO,OAAO,KAAK;AACnB,iBAAO,OAAO,KAAK;AAAA,QACrB;AACA,eAAO,SAAS,KAAK;AAAA,MACvB;AAEA,aAAO,WAAW,SAAS;AAE3B,aAAO;AAAA,IACT;AAQA,aAAS,MAAO,MAAM,MAAM,SAAS;AACnC,YAAM,cAAc,uBAAuB,MAAM,OAAO;AACxD,YAAM,cAAc,uBAAuB,MAAM,OAAO;AAExD,aAAO,gBAAgB,UAAa,gBAAgB,UAAa,YAAY,YAAY,MAAM,YAAY,YAAY;AAAA,IACzH;AAOA,aAAS,UAAW,OAAO,MAAM;AAC/B,YAAM,YAAY;AAAA,QAChB,MAAM,MAAM;AAAA,QACZ,QAAQ,MAAM;AAAA,QACd,UAAU,MAAM;AAAA,QAChB,MAAM,MAAM;AAAA,QACZ,MAAM,MAAM;AAAA,QACZ,OAAO,MAAM;AAAA,QACb,KAAK,MAAM;AAAA,QACX,KAAK,MAAM;AAAA,QACX,MAAM,MAAM;AAAA,QACZ,UAAU,MAAM;AAAA,QAChB,WAAW,MAAM;AAAA,QACjB,cAAc,MAAM;AAAA,QACpB,QAAQ,MAAM;AAAA,QACd,OAAO;AAAA,MACT;AACA,YAAM,UAAU,OAAO,OAAO,CAAC,GAAG,IAAI;AACtC,YAAM,YAAY,CAAC;AAGnB,YAAM,gBAAgB,iBAAiB,QAAQ,UAAU,UAAU,MAAM;AAGzE,UAAI,iBAAiB,cAAc,UAAW,eAAc,UAAU,WAAW,OAAO;AAExF,UAAI,UAAU,SAAS,QAAW;AAChC,YAAI,CAAC,QAAQ,YAAY;AACvB,oBAAU,OAAO,wBAAwB,UAAU,IAAI;AAEvD,cAAI,UAAU,WAAW,QAAW;AAClC,sBAAU,OAAO,UAAU,KAAK,MAAM,KAAK,EAAE,KAAK,GAAG;AAAA,UACvD;AAAA,QACF,OAAO;AACL,oBAAU,OAAO,yBAAyB,UAAU,IAAI;AAAA,QAC1D;AAAA,MACF;AAEA,UAAI,QAAQ,cAAc,YAAY,UAAU,QAAQ;AACtD,kBAAU,KAAK,UAAU,QAAQ,GAAG;AAAA,MACtC;AAEA,YAAM,YAAY,mBAAmB,SAAS;AAC9C,UAAI,cAAc,QAAW;AAC3B,YAAI,QAAQ,cAAc,UAAU;AAClC,oBAAU,KAAK,IAAI;AAAA,QACrB;AAEA,kBAAU,KAAK,SAAS;AAExB,YAAI,UAAU,QAAQ,UAAU,KAAK,CAAC,MAAM,KAAK;AAC/C,oBAAU,KAAK,GAAG;AAAA,QACpB;AAAA,MACF;AACA,UAAI,UAAU,SAAS,QAAW;AAChC,YAAI,IAAI,UAAU;AAElB,YAAI,CAAC,QAAQ,iBAAiB,CAAC,iBAAiB,CAAC,cAAc,eAAe;AAC5E,cAAI,kBAAkB,CAAC;AAAA,QACzB;AAEA,YACE,cAAc,UACd,EAAE,CAAC,MAAM,OACT,EAAE,CAAC,MAAM,KACT;AAEA,cAAI,SAAS,EAAE,MAAM,CAAC;AAAA,QACxB;AAEA,kBAAU,KAAK,CAAC;AAAA,MAClB;AAEA,UAAI,UAAU,UAAU,QAAW;AACjC,kBAAU,KAAK,KAAK,UAAU,KAAK;AAAA,MACrC;AAEA,UAAI,UAAU,aAAa,QAAW;AACpC,kBAAU,KAAK,KAAK,UAAU,QAAQ;AAAA,MACxC;AACA,aAAO,UAAU,KAAK,EAAE;AAAA,IAC1B;AAEA,QAAM,YAAY;AAOlB,aAAS,cAAe,QAAQ,SAAS;AACvC,UAAI,QAAQ,CAAC,MAAM,UAAa,OAAO,QAAQ,OAAO,KAAK,CAAC,MAAM,KAAK;AACrE,eAAO;AAAA,MACT;AAEA,UAAI,OAAO,OAAO,SAAS,aAAa,OAAO,OAAO,KAAK,OAAO,OAAO,QAAQ;AAC/E,eAAO;AAAA,MACT;AAEA,aAAO;AAAA,IACT;AAOA,aAAS,gBAAiB,KAAK,MAAM;AACnC,YAAM,UAAU,OAAO,OAAO,CAAC,GAAG,IAAI;AAEtC,YAAM,SAAS;AAAA,QACb,QAAQ;AAAA,QACR,UAAU;AAAA,QACV,MAAM;AAAA,QACN,MAAM;AAAA,QACN,MAAM;AAAA,QACN,OAAO;AAAA,QACP,UAAU;AAAA,MACZ;AAEA,UAAI,2BAA2B;AAE/B,UAAI,OAAO;AACX,UAAI,QAAQ,cAAc,UAAU;AAClC,YAAI,QAAQ,QAAQ;AAClB,gBAAM,QAAQ,SAAS,MAAM;AAAA,QAC/B,OAAO;AACL,gBAAM,OAAO;AAAA,QACf;AAAA,MACF;AAEA,YAAM,UAAU,IAAI,MAAM,SAAS;AAEnC,UAAI,SAAS;AAEX,eAAO,SAAS,QAAQ,CAAC;AACzB,eAAO,WAAW,QAAQ,CAAC;AAC3B,eAAO,OAAO,QAAQ,CAAC;AACvB,eAAO,OAAO,SAAS,QAAQ,CAAC,GAAG,EAAE;AACrC,eAAO,OAAO,QAAQ,CAAC,KAAK;AAC5B,eAAO,QAAQ,QAAQ,CAAC;AACxB,eAAO,WAAW,QAAQ,CAAC;AAG3B,YAAI,MAAM,OAAO,IAAI,GAAG;AACtB,iBAAO,OAAO,QAAQ,CAAC;AAAA,QACzB;AAEA,cAAM,aAAa,cAAc,QAAQ,OAAO;AAChD,YAAI,eAAe,QAAW;AAC5B,iBAAO,QAAQ,OAAO,SAAS;AAC/B,qCAA2B;AAAA,QAC7B;AAEA,YAAI,OAAO,MAAM;AACf,gBAAM,aAAa,OAAO,OAAO,IAAI;AACrC,cAAI,eAAe,OAAO;AACxB,kBAAM,aAAa,cAAc,OAAO,IAAI;AAC5C,mBAAO,OAAO,WAAW,KAAK,YAAY;AAC1C,mBAAO,WAAW;AAAA,UACpB,OAAO;AACL,mBAAO;AAAA,UACT;AAAA,QACF;AACA,YAAI,OAAO,WAAW,UAAa,OAAO,aAAa,UAAa,OAAO,SAAS,UAAa,OAAO,SAAS,UAAa,OAAO,UAAU,UAAa,CAAC,OAAO,MAAM;AACxK,iBAAO,YAAY;AAAA,QACrB,WAAW,OAAO,WAAW,QAAW;AACtC,iBAAO,YAAY;AAAA,QACrB,WAAW,OAAO,aAAa,QAAW;AACxC,iBAAO,YAAY;AAAA,QACrB,OAAO;AACL,iBAAO,YAAY;AAAA,QACrB;AAGA,YAAI,QAAQ,aAAa,QAAQ,cAAc,YAAY,QAAQ,cAAc,OAAO,WAAW;AACjG,iBAAO,QAAQ,OAAO,SAAS,kBAAkB,QAAQ,YAAY;AAAA,QACvE;AAGA,cAAM,gBAAgB,iBAAiB,QAAQ,UAAU,OAAO,MAAM;AAGtE,YAAI,CAAC,QAAQ,mBAAmB,CAAC,iBAAiB,CAAC,cAAc,iBAAiB;AAEhF,cAAI,OAAO,SAAS,QAAQ,cAAe,iBAAiB,cAAc,eAAgB,SAAS,SAAS,gBAAgB,OAAO,IAAI,GAAG;AAExI,gBAAI;AACF,qBAAO,OAAO,IAAI,IAAI,YAAY,OAAO,IAAI,EAAE;AAAA,YACjD,SAAS,GAAG;AACV,qBAAO,QAAQ,OAAO,SAAS,uDAAuD;AAAA,YACxF;AAAA,UACF;AAAA,QAEF;AAEA,YAAI,CAAC,iBAAkB,iBAAiB,CAAC,cAAc,eAAgB;AACrE,cAAI,IAAI,QAAQ,GAAG,MAAM,IAAI;AAC3B,gBAAI,OAAO,WAAW,QAAW;AAC/B,qBAAO,SAAS,SAAS,OAAO,MAAM;AAAA,YACxC;AACA,gBAAI,OAAO,SAAS,QAAW;AAC7B,qBAAO,OAAO,uBAAuB,SAAS,OAAO,IAAI,GAAG,IAAI;AAAA,YAClE;AAAA,UACF;AACA,cAAI,OAAO,MAAM;AACf,mBAAO,OAAO,sBAAsB,OAAO,IAAI;AAAA,UACjD;AACA,cAAI,OAAO,UAAU;AACnB,gBAAI;AACF,qBAAO,WAAW,UAAU,mBAAmB,OAAO,QAAQ,CAAC;AAAA,YACjE,QAAQ;AACN,qBAAO,QAAQ,OAAO,SAAS;AAAA,YACjC;AAAA,UACF;AAAA,QACF;AAGA,YAAI,iBAAiB,cAAc,OAAO;AACxC,wBAAc,MAAM,QAAQ,OAAO;AAAA,QACrC;AAAA,MACF,OAAO;AACL,eAAO,QAAQ,OAAO,SAAS;AAAA,MACjC;AACA,aAAO,EAAE,QAAQ,yBAAyB;AAAA,IAC5C;AAOA,aAAS,MAAO,KAAK,MAAM;AACzB,aAAO,gBAAgB,KAAK,IAAI,EAAE;AAAA,IACpC;AAOA,aAAS,gBAAiB,KAAK,MAAM;AACnC,aAAO,0BAA0B,KAAK,IAAI,EAAE;AAAA,IAC9C;AAOA,aAAS,0BAA2B,KAAK,MAAM;AAC7C,YAAM,EAAE,QAAQ,yBAAyB,IAAI,gBAAgB,KAAK,IAAI;AACtE,aAAO;AAAA,QACL,YAAY,2BAA2B,MAAM,UAAU,QAAQ,IAAI;AAAA,QACnE;AAAA,MACF;AAAA,IACF;AAOA,aAAS,uBAAwB,KAAK,MAAM;AAC1C,UAAI,OAAO,QAAQ,UAAU;AAC3B,cAAM,EAAE,YAAY,yBAAyB,IAAI,0BAA0B,KAAK,IAAI;AACpF,eAAO,2BAA2B,SAAY;AAAA,MAChD;AAEA,UAAI,OAAO,QAAQ,UAAU;AAC3B,eAAO,UAAU,KAAK,IAAI;AAAA,MAC5B;AAAA,IACF;AAEA,QAAM,UAAU;AAAA,MACd;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAEA,WAAO,UAAU;AACjB,WAAO,QAAQ,UAAU;AACzB,WAAO,QAAQ,UAAU;AAAA;AAAA;;;;;;;ACrZzB,QAAA,MAAA;AAGE,QAAY,OAAO;AAErB,YAAA,UAAe;;;;;;;;;;ACuBf,QAAA,aAAA;AAAQ,WAAA,eAAA,SAAA,cAAA,EAAA,YAAA,MAAA,KAAA,WAAA;AAAA,aAAA,WAAA;IAAU,EAAA,CAAA;AAKlB,QAAA,YAAA;AAAQ,WAAA,eAAA,SAAA,KAAA,EAAA,YAAA,MAAA,KAAA,WAAA;AAAA,aAAA,UAAA;IAAC,EAAA,CAAA;AAAE,WAAA,eAAA,SAAA,OAAA,EAAA,YAAA,MAAA,KAAA,WAAA;AAAA,aAAA,UAAA;IAAG,EAAA,CAAA;AAAE,WAAA,eAAA,SAAA,aAAA,EAAA,YAAA,MAAA,KAAA,WAAA;AAAA,aAAA,UAAA;IAAS,EAAA,CAAA;AAAE,WAAA,eAAA,SAAA,OAAA,EAAA,YAAA,MAAA,KAAA,WAAA;AAAA,aAAA,UAAA;IAAG,EAAA,CAAA;AAAE,WAAA,eAAA,SAAA,QAAA,EAAA,YAAA,MAAA,KAAA,WAAA;AAAA,aAAA,UAAA;IAAI,EAAA,CAAA;AAAQ,WAAA,eAAA,SAAA,WAAA,EAAA,YAAA,MAAA,KAAA,WAAA;AAAA,aAAA,UAAA;IAAO,EAAA,CAAA;AAsBnD,QAAA,qBAAA;AACA,QAAA,cAAA;AACA,QAAA,UAAA;AACA,QAAA,YAAA;AACA,QAAA,YAAA;AACA,QAAA,YAAA;AACA,QAAA,aAAA;AACA,QAAA,SAAA;AACA,QAAA,iBAAA;AAEA,QAAA,QAAA;AAEA,QAAM,gBAA8B,CAAC,KAAK,UAAU,IAAI,OAAO,KAAK,KAAK;AACzE,kBAAc,OAAO;AAErB,QAAM,sBAAyC,CAAC,oBAAoB,eAAe,aAAa;AAChG,QAAM,kBAAkB,oBAAI,IAAI;MAC9B;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;KACD;AA0GD,QAAM,iBAA8C;MAClD,eAAe;MACf,QAAQ;MACR,UAAU;MACV,cAAc;MACd,YAAY;MACZ,aAAa;MACb,aAAa;MACb,YAAY;MACZ,gBAAgB;MAChB,gBAAgB;MAChB,aAAa;MACb,gBAAgB;MAChB,OAAO;MACP,WAAW;MACX,WAAW;;AAGb,QAAM,oBAAoD;MACxD,uBAAuB;MACvB,kBAAkB;MAClB,SAAS;;AA0BX,QAAM,iBAAiB;AAGvB,aAAS,gBAAgB,GAAU;;AACjC,YAAM,IAAI,EAAE;AACZ,YAAM,SAAQ,KAAA,EAAE,UAAI,QAAA,OAAA,SAAA,SAAA,GAAE;AACtB,YAAM,WAAW,UAAU,QAAQ,UAAU,SAAY,IAAI,SAAS;AACtE,YAAM,UAAS,MAAA,KAAA,EAAE,UAAI,QAAA,OAAA,SAAA,SAAA,GAAE,YAAM,QAAA,OAAA,SAAA,KAAI;AACjC,YAAM,eAAc,KAAA,EAAE,iBAAW,QAAA,OAAA,SAAA,KAAI,MAAA;AACrC,aAAO;QACL,eAAc,MAAA,KAAA,EAAE,kBAAY,QAAA,OAAA,SAAA,KAAI,OAAC,QAAA,OAAA,SAAA,KAAI;QACrC,gBAAe,MAAA,KAAA,EAAE,mBAAa,QAAA,OAAA,SAAA,KAAI,OAAC,QAAA,OAAA,SAAA,KAAI;QACvC,cAAa,MAAA,KAAA,EAAE,iBAAW,QAAA,OAAA,SAAA,KAAI,OAAC,QAAA,OAAA,SAAA,KAAI;QACnC,eAAc,MAAA,KAAA,EAAE,kBAAY,QAAA,OAAA,SAAA,KAAI,OAAC,QAAA,OAAA,SAAA,KAAI;QACrC,iBAAgB,MAAA,KAAA,EAAE,oBAAc,QAAA,OAAA,SAAA,KAAI,OAAC,QAAA,OAAA,SAAA,KAAI;QACzC,MAAM,EAAE,OAAO,EAAC,GAAG,EAAE,MAAM,UAAU,OAAM,IAAI,EAAC,UAAU,OAAM;QAChE,eAAc,KAAA,EAAE,kBAAY,QAAA,OAAA,SAAA,KAAI;QAChC,WAAU,KAAA,EAAE,cAAQ,QAAA,OAAA,SAAA,KAAI;QACxB,OAAM,KAAA,EAAE,UAAI,QAAA,OAAA,SAAA,KAAI;QAChB,WAAU,KAAA,EAAE,cAAQ,QAAA,OAAA,SAAA,KAAI;QACxB,aAAY,KAAA,EAAE,gBAAU,QAAA,OAAA,SAAA,KAAI;QAC5B,WAAU,KAAA,EAAE,cAAQ,QAAA,OAAA,SAAA,KAAI;QACxB,gBAAe,KAAA,EAAE,mBAAa,QAAA,OAAA,SAAA,KAAI;QAClC,iBAAgB,KAAA,EAAE,oBAAc,QAAA,OAAA,SAAA,KAAI;QACpC,kBAAiB,KAAA,EAAE,qBAAe,QAAA,OAAA,SAAA,KAAI;QACtC,gBAAe,KAAA,EAAE,mBAAa,QAAA,OAAA,SAAA,KAAI;QAClC,aAAY,KAAA,EAAE,gBAAU,QAAA,OAAA,SAAA,KAAI;QAC5B;;IAEJ;AAQA,QAAqBC,OAArB,MAAwB;MAkBtB,YAAY,OAAgB,CAAA,GAAE;AAZrB,aAAA,UAAyC,CAAA;AACzC,aAAA,OAA+C,CAAA;AAC/C,aAAA,UAA4C,uBAAO,OAAO,IAAI;AAE9D,aAAA,gBAAgC,oBAAI,IAAG;AAC/B,aAAA,WAAyD,CAAA;AACzD,aAAA,SAAoC,oBAAI,IAAG;AAO1D,eAAO,KAAK,OAAO,EAAC,GAAG,MAAM,GAAG,gBAAgB,IAAI,EAAC;AACrD,cAAM,EAAC,KAAK,MAAK,IAAI,KAAK,KAAK;AAE/B,aAAK,QAAQ,IAAI,UAAA,WAAW,EAAC,OAAO,CAAA,GAAI,UAAU,iBAAiB,KAAK,MAAK,CAAC;AAC9E,aAAK,SAAS,UAAU,KAAK,MAAM;AACnC,cAAM,YAAY,KAAK;AACvB,aAAK,kBAAkB;AAEvB,aAAK,SAAQ,GAAA,QAAA,UAAQ;AACrB,qBAAa,KAAK,MAAM,gBAAgB,MAAM,eAAe;AAC7D,qBAAa,KAAK,MAAM,mBAAmB,MAAM,cAAc,MAAM;AACrE,aAAK,YAAY,qBAAqB,KAAK,IAAI;AAE/C,YAAI,KAAK;AAAS,4BAAkB,KAAK,IAAI;AAC7C,aAAK,iBAAgB;AACrB,aAAK,sBAAqB;AAC1B,YAAI,KAAK;AAAU,6BAAmB,KAAK,MAAM,KAAK,QAAQ;AAC9D,YAAI,OAAO,KAAK,QAAQ;AAAU,eAAK,cAAc,KAAK,IAAI;AAC9D,0BAAkB,KAAK,IAAI;AAC3B,aAAK,kBAAkB;MACzB;MAEA,mBAAgB;AACd,aAAK,WAAW,QAAQ;MAC1B;MAEA,wBAAqB;AACnB,cAAM,EAAC,OAAO,MAAM,SAAQ,IAAI,KAAK;AACrC,YAAI,iBAA+B;AACnC,YAAI,aAAa,MAAM;AACrB,2BAAiB,EAAC,GAAG,eAAc;AACnC,yBAAe,KAAK,eAAe;AACnC,iBAAO,eAAe;QACxB;AACA,YAAI,QAAQ;AAAO,eAAK,cAAc,gBAAgB,eAAe,QAAQ,GAAG,KAAK;MACvF;MAEA,cAAW;AACT,cAAM,EAAC,MAAM,SAAQ,IAAI,KAAK;AAC9B,eAAQ,KAAK,KAAK,cAAc,OAAO,QAAQ,WAAW,KAAK,QAAQ,KAAK,OAAO;MACrF;MAoBA,SACE,cAEA;AAEA,YAAI;AACJ,YAAI,OAAO,gBAAgB,UAAU;AACnC,cAAI,KAAK,UAAa,YAAY;AAClC,cAAI,CAAC;AAAG,kBAAM,IAAI,MAAM,8BAA8B,YAAY,GAAG;QACvE,OAAO;AACL,cAAI,KAAK,QAAW,YAAY;QAClC;AAEA,cAAM,QAAQ,EAAE,IAAI;AACpB,YAAI,EAAE,YAAY;AAAI,eAAK,SAAS,EAAE;AACtC,eAAO;MACT;MAiBA,QAAqB,QAAmB,OAAe;AACrD,cAAM,MAAM,KAAK,WAAW,QAAQ,KAAK;AACzC,eAAQ,IAAI,YAAY,KAAK,kBAAkB,GAAG;MACpD;MAmBA,aACE,QACA,MAAc;AAEd,YAAI,OAAO,KAAK,KAAK,cAAc,YAAY;AAC7C,gBAAM,IAAI,MAAM,yCAAyC;QAC3D;AACA,cAAM,EAAC,WAAU,IAAI,KAAK;AAC1B,eAAO,gBAAgB,KAAK,MAAM,QAAQ,IAAI;AAE9C,uBAAe,gBAEb,SACA,OAAe;AAEf,gBAAM,eAAe,KAAK,MAAM,QAAQ,OAAO;AAC/C,gBAAM,MAAM,KAAK,WAAW,SAAS,KAAK;AAC1C,iBAAO,IAAI,YAAY,cAAc,KAAK,MAAM,GAAG;QACrD;AAEA,uBAAe,eAA0B,MAAa;AACpD,cAAI,QAAQ,CAAC,KAAK,UAAU,IAAI,GAAG;AACjC,kBAAM,gBAAgB,KAAK,MAAM,EAAC,KAAI,GAAG,IAAI;UAC/C;QACF;AAEA,uBAAe,cAAyB,KAAc;AACpD,cAAI;AACF,mBAAO,KAAK,kBAAkB,GAAG;UACnC,SAAS,GAAG;AACV,gBAAI,EAAE,aAAa,YAAA;AAAkB,oBAAM;AAC3C,wBAAY,KAAK,MAAM,CAAC;AACxB,kBAAM,kBAAkB,KAAK,MAAM,EAAE,aAAa;AAClD,mBAAO,cAAc,KAAK,MAAM,GAAG;UACrC;QACF;AAEA,iBAAS,YAAuB,EAAC,eAAe,KAAK,WAAU,GAAkB;AAC/E,cAAI,KAAK,KAAK,GAAG,GAAG;AAClB,kBAAM,IAAI,MAAM,aAAa,GAAG,kBAAkB,UAAU,qBAAqB;UACnF;QACF;AAEA,uBAAe,kBAA6B,KAAW;AACrD,gBAAM,UAAU,MAAM,YAAY,KAAK,MAAM,GAAG;AAChD,cAAI,CAAC,KAAK,KAAK,GAAG;AAAG,kBAAM,eAAe,KAAK,MAAM,QAAQ,OAAO;AACpE,cAAI,CAAC,KAAK,KAAK,GAAG;AAAG,iBAAK,UAAU,SAAS,KAAK,IAAI;QACxD;AAEA,uBAAe,YAAuB,KAAW;AAC/C,gBAAM,IAAI,KAAK,SAAS,GAAG;AAC3B,cAAI;AAAG,mBAAO;AACd,cAAI;AACF,mBAAO,OAAO,KAAK,SAAS,GAAG,IAAI,WAAW,GAAG;UACnD;AACE,mBAAO,KAAK,SAAS,GAAG;UAC1B;QACF;MACF;;MAGA,UACE,QACA,KACA,OACA,kBAAkB,KAAK,KAAK;AAE5B,YAAI,MAAM,QAAQ,MAAM,GAAG;AACzB,qBAAW,OAAO;AAAQ,iBAAK,UAAU,KAAK,QAAW,OAAO,eAAe;AAC/E,iBAAO;QACT;AACA,YAAI;AACJ,YAAI,OAAO,WAAW,UAAU;AAC9B,gBAAM,EAAC,SAAQ,IAAI,KAAK;AACxB,eAAK,OAAO,QAAQ;AACpB,cAAI,OAAO,UAAa,OAAO,MAAM,UAAU;AAC7C,kBAAM,IAAI,MAAM,UAAU,QAAQ,iBAAiB;UACrD;QACF;AACA,eAAM,GAAA,UAAA,aAAY,OAAO,EAAE;AAC3B,aAAK,aAAa,GAAG;AACrB,aAAK,QAAQ,GAAG,IAAI,KAAK,WAAW,QAAQ,OAAO,KAAK,iBAAiB,IAAI;AAC7E,eAAO;MACT;;;MAIA,cACE,QACA,KACA,kBAAkB,KAAK,KAAK;AAE5B,aAAK,UAAU,QAAQ,KAAK,MAAM,eAAe;AACjD,eAAO;MACT;;MAGA,eAAe,QAAmB,iBAAyB;AACzD,YAAI,OAAO,UAAU;AAAW,iBAAO;AACvC,YAAI;AACJ,kBAAU,OAAO;AACjB,YAAI,YAAY,UAAa,OAAO,WAAW,UAAU;AACvD,gBAAM,IAAI,MAAM,0BAA0B;QAC5C;AACA,kBAAU,WAAW,KAAK,KAAK,eAAe,KAAK,YAAW;AAC9D,YAAI,CAAC,SAAS;AACZ,eAAK,OAAO,KAAK,2BAA2B;AAC5C,eAAK,SAAS;AACd,iBAAO;QACT;AACA,cAAM,QAAQ,KAAK,SAAS,SAAS,MAAM;AAC3C,YAAI,CAAC,SAAS,iBAAiB;AAC7B,gBAAM,UAAU,wBAAwB,KAAK,WAAU;AACvD,cAAI,KAAK,KAAK,mBAAmB;AAAO,iBAAK,OAAO,MAAM,OAAO;;AAC5D,kBAAM,IAAI,MAAM,OAAO;QAC9B;AACA,eAAO;MACT;;;MAIA,UAAuB,QAAc;AACnC,YAAI;AACJ,eAAO,QAAQ,MAAM,UAAU,KAAK,MAAM,MAAM,MAAM;AAAU,mBAAS;AACzE,YAAI,QAAQ,QAAW;AACrB,gBAAM,EAAC,SAAQ,IAAI,KAAK;AACxB,gBAAM,OAAO,IAAI,UAAA,UAAU,EAAC,QAAQ,CAAA,GAAI,SAAQ,CAAC;AACjD,gBAAM,UAAA,cAAc,KAAK,MAAM,MAAM,MAAM;AAC3C,cAAI,CAAC;AAAK;AACV,eAAK,KAAK,MAAM,IAAI;QACtB;AACA,eAAQ,IAAI,YAAY,KAAK,kBAAkB,GAAG;MACpD;;;;;MAMA,aAAa,cAA0C;AACrD,YAAI,wBAAwB,QAAQ;AAClC,eAAK,kBAAkB,KAAK,SAAS,YAAY;AACjD,eAAK,kBAAkB,KAAK,MAAM,YAAY;AAC9C,iBAAO;QACT;AACA,gBAAQ,OAAO,cAAc;UAC3B,KAAK;AACH,iBAAK,kBAAkB,KAAK,OAAO;AACnC,iBAAK,kBAAkB,KAAK,IAAI;AAChC,iBAAK,OAAO,MAAK;AACjB,mBAAO;UACT,KAAK,UAAU;AACb,kBAAM,MAAM,UAAU,KAAK,MAAM,YAAY;AAC7C,gBAAI,OAAO,OAAO;AAAU,mBAAK,OAAO,OAAO,IAAI,MAAM;AACzD,mBAAO,KAAK,QAAQ,YAAY;AAChC,mBAAO,KAAK,KAAK,YAAY;AAC7B,mBAAO;UACT;UACA,KAAK,UAAU;AACb,kBAAM,WAAW;AACjB,iBAAK,OAAO,OAAO,QAAQ;AAC3B,gBAAI,KAAK,aAAa,KAAK,KAAK,QAAQ;AACxC,gBAAI,IAAI;AACN,oBAAK,GAAA,UAAA,aAAY,EAAE;AACnB,qBAAO,KAAK,QAAQ,EAAE;AACtB,qBAAO,KAAK,KAAK,EAAE;YACrB;AACA,mBAAO;UACT;UACA;AACE,kBAAM,IAAI,MAAM,qCAAqC;QACzD;MACF;;MAGA,cAAc,aAAuB;AACnC,mBAAW,OAAO;AAAa,eAAK,WAAW,GAAG;AAClD,eAAO;MACT;MAEA,WACE,UACA;AAEA,YAAI;AACJ,YAAI,OAAO,YAAY,UAAU;AAC/B,oBAAU;AACV,cAAI,OAAO,OAAO,UAAU;AAC1B,iBAAK,OAAO,KAAK,0DAA0D;AAC3E,gBAAI,UAAU;UAChB;QACF,WAAW,OAAO,YAAY,YAAY,QAAQ,QAAW;AAC3D,gBAAM;AACN,oBAAU,IAAI;AACd,cAAI,MAAM,QAAQ,OAAO,KAAK,CAAC,QAAQ,QAAQ;AAC7C,kBAAM,IAAI,MAAM,wDAAwD;UAC1E;QACF,OAAO;AACL,gBAAM,IAAI,MAAM,gCAAgC;QAClD;AAEA,qBAAa,KAAK,MAAM,SAAS,GAAG;AACpC,YAAI,CAAC,KAAK;AACR,WAAA,GAAA,OAAA,UAAS,SAAS,CAAC,QAAQ,QAAQ,KAAK,MAAM,GAAG,CAAC;AAClD,iBAAO;QACT;AACA,0BAAkB,KAAK,MAAM,GAAG;AAChC,cAAM,aAAqC;UACzC,GAAG;UACH,OAAM,GAAA,WAAA,cAAa,IAAI,IAAI;UAC3B,aAAY,GAAA,WAAA,cAAa,IAAI,UAAU;;AAEzC,SAAA,GAAA,OAAA,UACE,SACA,WAAW,KAAK,WAAW,IACvB,CAAC,MAAM,QAAQ,KAAK,MAAM,GAAG,UAAU,IACvC,CAAC,MAAM,WAAW,KAAK,QAAQ,CAAC,MAAM,QAAQ,KAAK,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC;AAEjF,eAAO;MACT;MAEA,WAAW,SAAe;AACxB,cAAM,OAAO,KAAK,MAAM,IAAI,OAAO;AACnC,eAAO,OAAO,QAAQ,WAAW,KAAK,aAAa,CAAC,CAAC;MACvD;;MAGA,cAAc,SAAe;AAE3B,cAAM,EAAC,MAAK,IAAI;AAChB,eAAO,MAAM,SAAS,OAAO;AAC7B,eAAO,MAAM,IAAI,OAAO;AACxB,mBAAW,SAAS,MAAM,OAAO;AAC/B,gBAAM,IAAI,MAAM,MAAM,UAAU,CAAC,SAAS,KAAK,YAAY,OAAO;AAClE,cAAI,KAAK;AAAG,kBAAM,MAAM,OAAO,GAAG,CAAC;QACrC;AACA,eAAO;MACT;;MAGA,UAAU,MAAc,QAAc;AACpC,YAAI,OAAO,UAAU;AAAU,mBAAS,IAAI,OAAO,MAAM;AACzD,aAAK,QAAQ,IAAI,IAAI;AACrB,eAAO;MACT;MAEA,WACE,SAA2C,KAAK,QAChD,EAAC,YAAY,MAAM,UAAU,OAAM,IAAuB,CAAA;AAE1D,YAAI,CAAC,UAAU,OAAO,WAAW;AAAG,iBAAO;AAC3C,eAAO,OACJ,IAAI,CAAC,MAAM,GAAG,OAAO,GAAG,EAAE,YAAY,IAAI,EAAE,OAAO,EAAE,EACrD,OAAO,CAAC,MAAM,QAAQ,OAAO,YAAY,GAAG;MACjD;MAEA,gBAAgB,YAA6B,sBAA8B;AACzE,cAAM,QAAQ,KAAK,MAAM;AACzB,qBAAa,KAAK,MAAM,KAAK,UAAU,UAAU,CAAC;AAClD,mBAAW,eAAe,sBAAsB;AAC9C,gBAAM,WAAW,YAAY,MAAM,GAAG,EAAE,MAAM,CAAC;AAC/C,cAAI,WAAW;AACf,qBAAW,OAAO;AAAU,uBAAW,SAAS,GAAG;AAEnD,qBAAW,OAAO,OAAO;AACvB,kBAAM,OAAO,MAAM,GAAG;AACtB,gBAAI,OAAO,QAAQ;AAAU;AAC7B,kBAAM,EAAC,MAAK,IAAI,KAAK;AACrB,kBAAM,SAAS,SAAS,GAAG;AAC3B,gBAAI,SAAS;AAAQ,uBAAS,GAAG,IAAI,aAAa,MAAM;UAC1D;QACF;AAEA,eAAO;MACT;MAEQ,kBAAkB,SAAiD,OAAc;AACvF,mBAAW,UAAU,SAAS;AAC5B,gBAAM,MAAM,QAAQ,MAAM;AAC1B,cAAI,CAAC,SAAS,MAAM,KAAK,MAAM,GAAG;AAChC,gBAAI,OAAO,OAAO,UAAU;AAC1B,qBAAO,QAAQ,MAAM;YACvB,WAAW,OAAO,CAAC,IAAI,MAAM;AAC3B,mBAAK,OAAO,OAAO,IAAI,MAAM;AAC7B,qBAAO,QAAQ,MAAM;YACvB;UACF;QACF;MACF;MAEA,WACE,QACA,MACA,QACA,iBAAiB,KAAK,KAAK,gBAC3B,YAAY,KAAK,KAAK,eAAa;AAEnC,YAAI;AACJ,cAAM,EAAC,SAAQ,IAAI,KAAK;AACxB,YAAI,OAAO,UAAU,UAAU;AAC7B,eAAK,OAAO,QAAQ;QACtB,OAAO;AACL,cAAI,KAAK,KAAK;AAAK,kBAAM,IAAI,MAAM,uBAAuB;mBACjD,OAAO,UAAU;AAAW,kBAAM,IAAI,MAAM,kCAAkC;QACzF;AACA,YAAI,MAAM,KAAK,OAAO,IAAI,MAAM;AAChC,YAAI,QAAQ;AAAW,iBAAO;AAE9B,kBAAS,GAAA,UAAA,aAAY,MAAM,MAAM;AACjC,cAAM,YAAY,UAAA,cAAc,KAAK,MAAM,QAAQ,MAAM;AACzD,cAAM,IAAI,UAAA,UAAU,EAAC,QAAQ,UAAU,MAAM,QAAQ,UAAS,CAAC;AAC/D,aAAK,OAAO,IAAI,IAAI,QAAQ,GAAG;AAC/B,YAAI,aAAa,CAAC,OAAO,WAAW,GAAG,GAAG;AAExC,cAAI;AAAQ,iBAAK,aAAa,MAAM;AACpC,eAAK,KAAK,MAAM,IAAI;QACtB;AACA,YAAI;AAAgB,eAAK,eAAe,QAAQ,IAAI;AACpD,eAAO;MACT;MAEQ,aAAa,IAAU;AAC7B,YAAI,KAAK,QAAQ,EAAE,KAAK,KAAK,KAAK,EAAE,GAAG;AACrC,gBAAM,IAAI,MAAM,0BAA0B,EAAE,kBAAkB;QAChE;MACF;MAEQ,kBAAkB,KAAc;AACtC,YAAI,IAAI;AAAM,eAAK,mBAAmB,GAAG;;AACpC,oBAAA,cAAc,KAAK,MAAM,GAAG;AAGjC,YAAI,CAAC,IAAI;AAAU,gBAAM,IAAI,MAAM,0BAA0B;AAC7D,eAAO,IAAI;MACb;MAEQ,mBAAmB,KAAc;AACvC,cAAM,cAAc,KAAK;AACzB,aAAK,OAAO,KAAK;AACjB,YAAI;AACF,oBAAA,cAAc,KAAK,MAAM,GAAG;QAC9B;AACE,eAAK,OAAO;QACd;MACF;;AA9cO,IAAAA,KAAA,kBAAkB,mBAAA;AAClB,IAAAA,KAAA,kBAAkB,YAAA;sBAhBNA;AAqerB,aAAS,aAEP,WACA,SACA,KACA,MAAwB,SAAO;AAE/B,iBAAW,OAAO,WAAW;AAC3B,cAAM,MAAM;AACZ,YAAI,OAAO;AAAS,eAAK,OAAO,GAAG,EAAE,GAAG,GAAG,YAAY,GAAG,KAAK,UAAU,GAAG,CAAC,EAAE;MACjF;IACF;AAEA,aAAS,UAAqB,QAAc;AAC1C,gBAAS,GAAA,UAAA,aAAY,MAAM;AAC3B,aAAO,KAAK,QAAQ,MAAM,KAAK,KAAK,KAAK,MAAM;IACjD;AAEA,aAAS,oBAAiB;AACxB,YAAM,cAAc,KAAK,KAAK;AAC9B,UAAI,CAAC;AAAa;AAClB,UAAI,MAAM,QAAQ,WAAW;AAAG,aAAK,UAAU,WAAW;;AACrD,mBAAW,OAAO;AAAa,eAAK,UAAU,YAAY,GAAG,GAAgB,GAAG;IACvF;AAEA,aAAS,oBAAiB;AACxB,iBAAW,QAAQ,KAAK,KAAK,SAAS;AACpC,cAAM,SAAS,KAAK,KAAK,QAAQ,IAAI;AACrC,YAAI;AAAQ,eAAK,UAAU,MAAM,MAAM;MACzC;IACF;AAEA,aAAS,mBAEP,MAAsD;AAEtD,UAAI,MAAM,QAAQ,IAAI,GAAG;AACvB,aAAK,cAAc,IAAI;AACvB;MACF;AACA,WAAK,OAAO,KAAK,kDAAkD;AACnE,iBAAW,WAAW,MAAM;AAC1B,cAAM,MAAM,KAAK,OAAO;AACxB,YAAI,CAAC,IAAI;AAAS,cAAI,UAAU;AAChC,aAAK,WAAW,GAAG;MACrB;IACF;AAEA,aAAS,uBAAoB;AAC3B,YAAM,WAAW,EAAC,GAAG,KAAK,KAAI;AAC9B,iBAAW,OAAO;AAAqB,eAAO,SAAS,GAAG;AAC1D,aAAO;IACT;AAEA,QAAM,SAAS,EAAC,MAAG;IAAI,GAAG,OAAI;IAAI,GAAG,QAAK;IAAI,EAAC;AAE/C,aAAS,UAAU,QAAgC;AACjD,UAAI,WAAW;AAAO,eAAO;AAC7B,UAAI,WAAW;AAAW,eAAO;AACjC,UAAI,OAAO,OAAO,OAAO,QAAQ,OAAO;AAAO,eAAO;AACtD,YAAM,IAAI,MAAM,mDAAmD;IACrE;AAEA,QAAM,eAAe;AAErB,aAAS,aAAwB,SAA4B,KAAuB;AAClF,YAAM,EAAC,MAAK,IAAI;AAChB,OAAA,GAAA,OAAA,UAAS,SAAS,CAAC,QAAO;AACxB,YAAI,MAAM,SAAS,GAAG;AAAG,gBAAM,IAAI,MAAM,WAAW,GAAG,qBAAqB;AAC5E,YAAI,CAAC,aAAa,KAAK,GAAG;AAAG,gBAAM,IAAI,MAAM,WAAW,GAAG,mBAAmB;MAChF,CAAC;AACD,UAAI,CAAC;AAAK;AACV,UAAI,IAAI,SAAS,EAAE,UAAU,OAAO,cAAc,MAAM;AACtD,cAAM,IAAI,MAAM,uDAAuD;MACzE;IACF;AAEA,aAAS,QAEP,SACA,YACA,UAAmB;;AAEnB,YAAM,OAAO,eAAU,QAAV,eAAU,SAAA,SAAV,WAAY;AACzB,UAAI,YAAY;AAAM,cAAM,IAAI,MAAM,6CAA6C;AACnF,YAAM,EAAC,MAAK,IAAI;AAChB,UAAI,YAAY,OAAO,MAAM,OAAO,MAAM,MAAM,KAAK,CAAC,EAAC,MAAM,EAAC,MAAM,MAAM,QAAQ;AAClF,UAAI,CAAC,WAAW;AACd,oBAAY,EAAC,MAAM,UAAU,OAAO,CAAA,EAAE;AACtC,cAAM,MAAM,KAAK,SAAS;MAC5B;AACA,YAAM,SAAS,OAAO,IAAI;AAC1B,UAAI,CAAC;AAAY;AAEjB,YAAM,OAAa;QACjB;QACA,YAAY;UACV,GAAG;UACH,OAAM,GAAA,WAAA,cAAa,WAAW,IAAI;UAClC,aAAY,GAAA,WAAA,cAAa,WAAW,UAAU;;;AAGlD,UAAI,WAAW;AAAQ,sBAAc,KAAK,MAAM,WAAW,MAAM,WAAW,MAAM;;AAC7E,kBAAU,MAAM,KAAK,IAAI;AAC9B,YAAM,IAAI,OAAO,IAAI;AACrB,OAAA,KAAA,WAAW,gBAAU,QAAA,OAAA,SAAA,SAAA,GAAE,QAAQ,CAAC,QAAQ,KAAK,WAAW,GAAG,CAAC;IAC9D;AAEA,aAAS,cAAyB,WAAsB,MAAY,QAAc;AAChF,YAAM,IAAI,UAAU,MAAM,UAAU,CAAC,UAAU,MAAM,YAAY,MAAM;AACvE,UAAI,KAAK,GAAG;AACV,kBAAU,MAAM,OAAO,GAAG,GAAG,IAAI;MACnC,OAAO;AACL,kBAAU,MAAM,KAAK,IAAI;AACzB,aAAK,OAAO,KAAK,QAAQ,MAAM,iBAAiB;MAClD;IACF;AAEA,aAAS,kBAA6B,KAAsB;AAC1D,UAAI,EAAC,WAAU,IAAI;AACnB,UAAI,eAAe;AAAW;AAC9B,UAAI,IAAI,SAAS,KAAK,KAAK;AAAO,qBAAa,aAAa,UAAU;AACtE,UAAI,iBAAiB,KAAK,QAAQ,YAAY,IAAI;IACpD;AAEA,QAAM,WAAW;MACf,MAAM;;AAGR,aAAS,aAAa,QAAiB;AACrC,aAAO,EAAC,OAAO,CAAC,QAAQ,QAAQ,EAAC;IACnC;;;;;;;;;ACz3BA,QAAM,MAA6B;MACjC,SAAS;MACT,OAAI;AACF,cAAM,IAAI,MAAM,sDAAsD;MACxE;;AAGF,YAAA,UAAe;;;;;;;;;;ACPf,QAAA,cAAA;AACA,QAAA,SAAA;AACA,QAAA,YAAA;AACA,QAAA,UAAA;AACA,QAAA,YAAA;AACA,QAAA,SAAA;AAEA,QAAM,MAA6B;MACjC,SAAS;MACT,YAAY;MACZ,KAAK,KAAe;AAClB,cAAM,EAAC,KAAK,QAAQ,MAAM,GAAE,IAAI;AAChC,cAAM,EAAC,QAAQ,WAAW,KAAK,cAAc,MAAM,KAAI,IAAI;AAC3D,cAAM,EAAC,KAAI,IAAI;AACf,aAAK,SAAS,OAAO,SAAS,SAAS,WAAW,KAAK;AAAQ,iBAAO,YAAW;AACjF,cAAM,WAAW,UAAA,WAAW,KAAK,MAAM,MAAM,QAAQ,IAAI;AACzD,YAAI,aAAa;AAAW,gBAAM,IAAI,YAAA,QAAgB,GAAG,KAAK,aAAa,QAAQ,IAAI;AACvF,YAAI,oBAAoB,UAAA;AAAW,iBAAO,aAAa,QAAQ;AAC/D,eAAO,gBAAgB,QAAQ;AAE/B,iBAAS,cAAW;AAClB,cAAI,QAAQ;AAAM,mBAAO,QAAQ,KAAK,cAAc,KAAK,IAAI,MAAM;AACnE,gBAAM,WAAW,IAAI,WAAW,QAAQ,EAAC,KAAK,KAAI,CAAC;AACnD,iBAAO,QAAQ,MAAK,GAAA,UAAA,KAAI,QAAQ,aAAa,MAAM,KAAK,MAAM;QAChE;AAEA,iBAAS,aAAa,KAAc;AAClC,gBAAM,IAAI,YAAY,KAAK,GAAG;AAC9B,kBAAQ,KAAK,GAAG,KAAK,IAAI,MAAM;QACjC;AAEA,iBAAS,gBAAgB,KAAc;AACrC,gBAAM,UAAU,IAAI,WAClB,UACA,KAAK,KAAK,WAAW,OAAO,EAAC,KAAK,KAAK,OAAM,GAAA,UAAA,WAAU,GAAG,EAAC,IAAI,EAAC,KAAK,IAAG,CAAC;AAE3E,gBAAM,QAAQ,IAAI,KAAK,OAAO;AAC9B,gBAAM,SAAS,IAAI,UACjB;YACE,QAAQ;YACR,WAAW,CAAA;YACX,YAAY,UAAA;YACZ,cAAc;YACd,eAAe;aAEjB,KAAK;AAEP,cAAI,eAAe,MAAM;AACzB,cAAI,GAAG,KAAK;QACd;MACF;;AAGF,aAAgB,YAAY,KAAiB,KAAc;AACzD,YAAM,EAAC,IAAG,IAAI;AACd,aAAO,IAAI,WACP,IAAI,WAAW,YAAY,EAAC,KAAK,IAAI,SAAQ,CAAC,KAC9C,GAAA,UAAA,KAAI,IAAI,WAAW,WAAW,EAAC,KAAK,IAAG,CAAC,CAAC;IAC/C;AALA,YAAA,cAAA;AAOA,aAAgB,QAAQ,KAAiB,GAAS,KAAiB,QAAgB;AACjF,YAAM,EAAC,KAAK,GAAE,IAAI;AAClB,YAAM,EAAC,WAAW,WAAW,KAAK,KAAI,IAAI;AAC1C,YAAM,UAAU,KAAK,cAAc,QAAA,QAAE,OAAO,UAAA;AAC5C,UAAI;AAAQ,qBAAY;;AACnB,oBAAW;AAEhB,eAAS,eAAY;AACnB,YAAI,CAAC,IAAI;AAAQ,gBAAM,IAAI,MAAM,wCAAwC;AACzE,cAAM,QAAQ,IAAI,IAAI,OAAO;AAC7B,YAAI,IACF,MAAK;AACH,cAAI,MAAK,GAAA,UAAA,YAAU,GAAA,OAAA,kBAAiB,KAAK,GAAG,OAAO,CAAC,EAAE;AACtD,2BAAiB,CAAC;AAClB,cAAI,CAAC;AAAW,gBAAI,OAAO,OAAO,IAAI;QACxC,GACA,CAAC,MAAK;AACJ,cAAI,IAAG,GAAA,UAAA,OAAM,CAAC,eAAe,GAAG,eAAuB,KAAK,MAAM,IAAI,MAAM,CAAC,CAAC;AAC9E,wBAAc,CAAC;AACf,cAAI,CAAC;AAAW,gBAAI,OAAO,OAAO,KAAK;QACzC,CAAC;AAEH,YAAI,GAAG,KAAK;MACd;AAEA,eAAS,cAAW;AAClB,YAAI,QACF,GAAA,OAAA,kBAAiB,KAAK,GAAG,OAAO,GAChC,MAAM,iBAAiB,CAAC,GACxB,MAAM,cAAc,CAAC,CAAC;MAE1B;AAEA,eAAS,cAAc,QAAY;AACjC,cAAM,QAAO,GAAA,UAAA,KAAI,MAAM;AACvB,YAAI,OAAO,QAAA,QAAE,UAAS,GAAA,UAAA,KAAI,QAAA,QAAE,OAAO,eAAe,IAAI,MAAM,QAAA,QAAE,OAAO,WAAW,IAAI,GAAG;AACvF,YAAI,OAAO,QAAA,QAAE,SAAQ,GAAA,UAAA,KAAI,QAAA,QAAE,OAAO,SAAS;MAC7C;AAEA,eAAS,iBAAiB,QAAY;;AACpC,YAAI,CAAC,GAAG,KAAK;AAAa;AAC1B,cAAM,gBAAe,KAAA,QAAG,QAAH,QAAG,SAAA,SAAH,IAAK,cAAQ,QAAA,OAAA,SAAA,SAAA,GAAE;AAEpC,YAAI,GAAG,UAAU,MAAM;AACrB,cAAI,gBAAgB,CAAC,aAAa,cAAc;AAC9C,gBAAI,aAAa,UAAU,QAAW;AACpC,iBAAG,QAAQ,OAAA,eAAe,MAAM,KAAK,aAAa,OAAO,GAAG,KAAK;YACnE;UACF,OAAO;AACL,kBAAM,QAAQ,IAAI,IAAI,UAAS,GAAA,UAAA,KAAI,MAAM,kBAAkB;AAC3D,eAAG,QAAQ,OAAA,eAAe,MAAM,KAAK,OAAO,GAAG,OAAO,UAAA,IAAI;UAC5D;QACF;AACA,YAAI,GAAG,UAAU,MAAM;AACrB,cAAI,gBAAgB,CAAC,aAAa,cAAc;AAC9C,gBAAI,aAAa,UAAU,QAAW;AACpC,iBAAG,QAAQ,OAAA,eAAe,MAAM,KAAK,aAAa,OAAO,GAAG,KAAK;YACnE;UACF,OAAO;AACL,kBAAM,QAAQ,IAAI,IAAI,UAAS,GAAA,UAAA,KAAI,MAAM,kBAAkB;AAC3D,eAAG,QAAQ,OAAA,eAAe,MAAM,KAAK,OAAO,GAAG,OAAO,UAAA,IAAI;UAC5D;QACF;MACF;IACF;AAhEA,YAAA,UAAA;AAkEA,YAAA,UAAe;;;;;;;;;AC/Hf,QAAA,OAAA;AACA,QAAA,QAAA;AAEA,QAAM,OAAmB;MACvB;MACA;MACA;MACA;MACA,EAAC,SAAS,WAAU;MACpB;MACA,KAAA;MACA,MAAA;;AAGF,YAAA,UAAe;;;;;;;;;ACbf,QAAA,YAAA;AAEA,QAAM,MAAM,UAAA;AAMZ,QAAM,OAAgE;MACpE,SAAS,EAAC,OAAO,MAAM,IAAI,IAAI,KAAK,MAAM,IAAI,GAAE;MAChD,SAAS,EAAC,OAAO,MAAM,IAAI,IAAI,KAAK,MAAM,IAAI,GAAE;MAChD,kBAAkB,EAAC,OAAO,KAAK,IAAI,IAAI,IAAI,MAAM,IAAI,IAAG;MACxD,kBAAkB,EAAC,OAAO,KAAK,IAAI,IAAI,IAAI,MAAM,IAAI,IAAG;;AAS1D,QAAM,QAAgC;MACpC,SAAS,CAAC,EAAC,SAAS,WAAU,OAAM,GAAA,UAAA,eAAc,KAAK,OAAc,EAAE,KAAK,IAAI,UAAU;MAC1F,QAAQ,CAAC,EAAC,SAAS,WAAU,OAC3B,GAAA,UAAA,kBAAiB,KAAK,OAAc,EAAE,KAAK,YAAY,UAAU;;AAGrE,QAAM,MAA6B;MACjC,SAAS,OAAO,KAAK,IAAI;MACzB,MAAM;MACN,YAAY;MACZ,OAAO;MACP;MACA,KAAK,KAAe;AAClB,cAAM,EAAC,SAAS,MAAM,WAAU,IAAI;AACpC,YAAI,WAAU,GAAA,UAAA,KAAI,IAAI,IAAI,KAAK,OAAc,EAAE,IAAI,IAAI,UAAU,aAAa,IAAI,GAAG;MACvF;;AAGF,YAAA,UAAe;;;;;;;;;ACvCf,QAAA,YAAA;AAQA,QAAM,QAAgC;MACpC,SAAS,CAAC,EAAC,WAAU,OAAM,GAAA,UAAA,2BAA0B,UAAU;MAC/D,QAAQ,CAAC,EAAC,WAAU,OAAM,GAAA,UAAA,kBAAiB,UAAU;;AAGvD,QAAM,MAA6B;MACjC,SAAS;MACT,MAAM;MACN,YAAY;MACZ,OAAO;MACP;MACA,KAAK,KAAe;AAClB,cAAM,EAAC,KAAK,MAAM,YAAY,GAAE,IAAI;AAEpC,cAAM,OAAO,GAAG,KAAK;AACrB,cAAM,MAAM,IAAI,IAAI,KAAK;AACzB,cAAM,UAAU,QACZ,GAAA,UAAA,yBAAwB,GAAG,OAAO,GAAG,UAAU,IAAI,MACnD,GAAA,UAAA,KAAI,GAAG,iBAAiB,GAAG;AAC/B,YAAI,WAAU,GAAA,UAAA,MAAK,UAAU,cAAc,GAAG,MAAM,IAAI,IAAI,UAAU,KAAK,OAAO,IAAI;MACxF;;AAGF,YAAA,UAAe;;;;;;;;;AC/Bf,aAAwB,WAAW,KAAW;AAC5C,YAAM,MAAM,IAAI;AAChB,UAAI,SAAS;AACb,UAAI,MAAM;AACV,UAAI;AACJ,aAAO,MAAM,KAAK;AAChB;AACA,gBAAQ,IAAI,WAAW,KAAK;AAC5B,YAAI,SAAS,SAAU,SAAS,SAAU,MAAM,KAAK;AAEnD,kBAAQ,IAAI,WAAW,GAAG;AAC1B,eAAK,QAAQ,WAAY;AAAQ;QACnC;MACF;AACA,aAAO;IACT;AAfA,YAAA,UAAA;AAiBA,eAAW,OAAO;;;;;;;;;ACjBlB,QAAA,YAAA;AACA,QAAA,SAAA;AACA,QAAA,eAAA;AAEA,QAAM,QAAgC;MACpC,QAAQ,EAAC,SAAS,WAAU,GAAC;AAC3B,cAAM,OAAO,YAAY,cAAc,SAAS;AAChD,gBAAO,GAAA,UAAA,qBAAoB,IAAI,SAAS,UAAU;MACpD;MACA,QAAQ,CAAC,EAAC,WAAU,OAAM,GAAA,UAAA,aAAY,UAAU;;AAGlD,QAAM,MAA6B;MACjC,SAAS,CAAC,aAAa,WAAW;MAClC,MAAM;MACN,YAAY;MACZ,OAAO;MACP;MACA,KAAK,KAAe;AAClB,cAAM,EAAC,SAAS,MAAM,YAAY,GAAE,IAAI;AACxC,cAAM,KAAK,YAAY,cAAc,UAAA,UAAU,KAAK,UAAA,UAAU;AAC9D,cAAM,MACJ,GAAG,KAAK,YAAY,SAAQ,GAAA,UAAA,KAAI,IAAI,aAAY,GAAA,UAAA,MAAI,GAAA,OAAA,SAAQ,IAAI,KAAK,aAAA,OAAU,CAAC,IAAI,IAAI;AAC1F,YAAI,WAAU,GAAA,UAAA,KAAI,GAAG,IAAI,EAAE,IAAI,UAAU,EAAE;MAC7C;;AAGF,YAAA,UAAe;;;;;;;;;AC3Bf,QAAA,SAAA;AACA,QAAA,SAAA;AACA,QAAA,YAAA;AAIA,QAAM,QAAgC;MACpC,SAAS,CAAC,EAAC,WAAU,OAAM,GAAA,UAAA,2BAA0B,UAAU;MAC/D,QAAQ,CAAC,EAAC,WAAU,OAAM,GAAA,UAAA,eAAc,UAAU;;AAGpD,QAAM,MAA6B;MACjC,SAAS;MACT,MAAM;MACN,YAAY;MACZ,OAAO;MACP;MACA,KAAK,KAAe;AAClB,cAAM,EAAC,KAAK,MAAM,OAAO,QAAQ,YAAY,GAAE,IAAI;AACnD,cAAM,IAAI,GAAG,KAAK,gBAAgB,MAAM;AACxC,YAAI,OAAO;AACT,gBAAM,EAAC,OAAM,IAAI,GAAG,KAAK;AACzB,gBAAM,aAAa,OAAO,SAAS,gBAAe,GAAA,UAAA,kBAAgB,GAAA,OAAA,SAAQ,KAAK,MAAM;AACrF,gBAAM,QAAQ,IAAI,IAAI,OAAO;AAC7B,cAAI,IACF,MAAM,IAAI,OAAO,QAAO,GAAA,UAAA,KAAI,UAAU,IAAI,UAAU,KAAK,CAAC,UAAU,IAAI,GAAG,GAC3E,MAAM,IAAI,OAAO,OAAO,KAAK,CAAC;AAEhC,cAAI,WAAU,GAAA,UAAA,MAAK,KAAK,EAAE;QAC5B,OAAO;AACL,gBAAM,UAAS,GAAA,OAAA,YAAW,KAAK,MAAM;AACrC,cAAI,WAAU,GAAA,UAAA,MAAK,MAAM,SAAS,IAAI,GAAG;QAC3C;MACF;;AAGF,YAAA,UAAe;;;;;;;;;ACpCf,QAAA,YAAA;AAEA,QAAM,QAAgC;MACpC,QAAQ,EAAC,SAAS,WAAU,GAAC;AAC3B,cAAM,OAAO,YAAY,kBAAkB,SAAS;AACpD,gBAAO,GAAA,UAAA,qBAAoB,IAAI,SAAS,UAAU;MACpD;MACA,QAAQ,CAAC,EAAC,WAAU,OAAM,GAAA,UAAA,aAAY,UAAU;;AAGlD,QAAM,MAA6B;MACjC,SAAS,CAAC,iBAAiB,eAAe;MAC1C,MAAM;MACN,YAAY;MACZ,OAAO;MACP;MACA,KAAK,KAAe;AAClB,cAAM,EAAC,SAAS,MAAM,WAAU,IAAI;AACpC,cAAM,KAAK,YAAY,kBAAkB,UAAA,UAAU,KAAK,UAAA,UAAU;AAClE,YAAI,WAAU,GAAA,UAAA,iBAAgB,IAAI,YAAY,EAAE,IAAI,UAAU,EAAE;MAClE;;AAGF,YAAA,UAAe;;;;;;;;;ACvBf,QAAA,SAAA;AAOA,QAAA,YAAA;AACA,QAAA,SAAA;AAQA,QAAM,QAAgC;MACpC,SAAS,CAAC,EAAC,QAAQ,EAAC,gBAAe,EAAC,OAAM,GAAA,UAAA,oCAAmC,eAAe;MAC5F,QAAQ,CAAC,EAAC,QAAQ,EAAC,gBAAe,EAAC,OAAM,GAAA,UAAA,uBAAsB,eAAe;;AAGhF,QAAM,MAA6B;MACjC,SAAS;MACT,MAAM;MACN,YAAY;MACZ,OAAO;MACP;MACA,KAAK,KAAe;AAClB,cAAM,EAAC,KAAK,QAAQ,YAAY,MAAM,OAAO,GAAE,IAAI;AACnD,cAAM,EAAC,KAAI,IAAI;AACf,YAAI,CAAC,SAAS,OAAO,WAAW;AAAG;AACnC,cAAM,UAAU,OAAO,UAAU,KAAK;AACtC,YAAI,GAAG;AAAW,wBAAa;;AAC1B,0BAAe;AAEpB,YAAI,KAAK,gBAAgB;AACvB,gBAAM,QAAQ,IAAI,aAAa;AAC/B,gBAAM,EAAC,kBAAiB,IAAI,IAAI;AAChC,qBAAW,eAAe,QAAQ;AAChC,iBAAI,UAAK,QAAL,UAAK,SAAA,SAAL,MAAQ,WAAW,OAAM,UAAa,CAAC,kBAAkB,IAAI,WAAW,GAAG;AAC7E,oBAAM,aAAa,GAAG,UAAU,SAAS,GAAG;AAC5C,oBAAM,MAAM,sBAAsB,WAAW,wBAAwB,UAAU;AAC/E,eAAA,GAAA,OAAA,iBAAgB,IAAI,KAAK,GAAG,KAAK,cAAc;YACjD;UACF;QACF;AAEA,iBAAS,gBAAa;AACpB,cAAI,WAAW,OAAO;AACpB,gBAAI,WAAW,UAAA,KAAK,eAAe;UACrC,OAAO;AACL,uBAAW,QAAQ,QAAQ;AACzB,eAAA,GAAA,OAAA,wBAAuB,KAAK,IAAI;YAClC;UACF;QACF;AAEA,iBAAS,kBAAe;AACtB,gBAAM,UAAU,IAAI,IAAI,SAAS;AACjC,cAAI,WAAW,OAAO;AACpB,kBAAM,QAAQ,IAAI,IAAI,SAAS,IAAI;AACnC,gBAAI,WAAW,OAAO,MAAM,iBAAiB,SAAS,KAAK,CAAC;AAC5D,gBAAI,GAAG,KAAK;UACd,OAAO;AACL,gBAAI,IAAG,GAAA,OAAA,kBAAiB,KAAK,QAAQ,OAAO,CAAC;AAC7C,aAAA,GAAA,OAAA,mBAAkB,KAAK,OAAO;AAC9B,gBAAI,KAAI;UACV;QACF;AAEA,iBAAS,kBAAe;AACtB,cAAI,MAAM,QAAQ,YAAoB,CAAC,SAAQ;AAC7C,gBAAI,UAAU,EAAC,iBAAiB,KAAI,CAAC;AACrC,gBAAI,IAAG,GAAA,OAAA,kBAAiB,KAAK,MAAM,MAAM,KAAK,aAAa,GAAG,MAAM,IAAI,MAAK,CAAE;UACjF,CAAC;QACH;AAEA,iBAAS,iBAAiB,SAAe,OAAW;AAClD,cAAI,UAAU,EAAC,iBAAiB,QAAO,CAAC;AACxC,cAAI,MACF,SACA,YACA,MAAK;AACH,gBAAI,OAAO,QAAO,GAAA,OAAA,gBAAe,KAAK,MAAM,SAAS,KAAK,aAAa,CAAC;AACxE,gBAAI,IAAG,GAAA,UAAA,KAAI,KAAK,GAAG,MAAK;AACtB,kBAAI,MAAK;AACT,kBAAI,MAAK;YACX,CAAC;UACH,GACA,UAAA,GAAG;QAEP;MACF;;AAGF,YAAA,UAAe;;;;;;;;;AC/Ff,QAAA,YAAA;AAEA,QAAM,QAAgC;MACpC,QAAQ,EAAC,SAAS,WAAU,GAAC;AAC3B,cAAM,OAAO,YAAY,aAAa,SAAS;AAC/C,gBAAO,GAAA,UAAA,qBAAoB,IAAI,SAAS,UAAU;MACpD;MACA,QAAQ,CAAC,EAAC,WAAU,OAAM,GAAA,UAAA,aAAY,UAAU;;AAGlD,QAAM,MAA6B;MACjC,SAAS,CAAC,YAAY,UAAU;MAChC,MAAM;MACN,YAAY;MACZ,OAAO;MACP;MACA,KAAK,KAAe;AAClB,cAAM,EAAC,SAAS,MAAM,WAAU,IAAI;AACpC,cAAM,KAAK,YAAY,aAAa,UAAA,UAAU,KAAK,UAAA,UAAU;AAC7D,YAAI,WAAU,GAAA,UAAA,KAAI,IAAI,WAAW,EAAE,IAAI,UAAU,EAAE;MACrD;;AAGF,YAAA,UAAe;;;;;;;;;ACxBf,QAAA,QAAA;AAGE,UAAgB,OAAO;AAEzB,YAAA,UAAe;;;;;;;;;ACJf,QAAA,aAAA;AACA,QAAA,YAAA;AACA,QAAA,SAAA;AACA,QAAA,UAAA;AAQA,QAAM,QAAgC;MACpC,SAAS,CAAC,EAAC,QAAQ,EAAC,GAAG,EAAC,EAAC,OACvB,GAAA,UAAA,+CAA8C,CAAC,QAAQ,CAAC;MAC1D,QAAQ,CAAC,EAAC,QAAQ,EAAC,GAAG,EAAC,EAAC,OAAM,GAAA,UAAA,SAAQ,CAAC,QAAQ,CAAC;;AAGlD,QAAM,MAA6B;MACjC,SAAS;MACT,MAAM;MACN,YAAY;MACZ,OAAO;MACP;MACA,KAAK,KAAe;AAClB,cAAM,EAAC,KAAK,MAAM,OAAO,QAAQ,cAAc,YAAY,GAAE,IAAI;AACjE,YAAI,CAAC,SAAS,CAAC;AAAQ;AACvB,cAAM,QAAQ,IAAI,IAAI,OAAO;AAC7B,cAAM,YAAY,aAAa,SAAQ,GAAA,WAAA,gBAAe,aAAa,KAAK,IAAI,CAAA;AAC5E,YAAI,WAAW,OAAO,sBAAqB,GAAA,UAAA,KAAI,UAAU,YAAY;AACrE,YAAI,GAAG,KAAK;AAEZ,iBAAS,sBAAmB;AAC1B,gBAAM,IAAI,IAAI,IAAI,MAAK,GAAA,UAAA,KAAI,IAAI,SAAS;AACxC,gBAAM,IAAI,IAAI,IAAI,GAAG;AACrB,cAAI,UAAU,EAAC,GAAG,EAAC,CAAC;AACpB,cAAI,OAAO,OAAO,IAAI;AACtB,cAAI,IAAG,GAAA,UAAA,KAAI,CAAC,QAAQ,OAAO,YAAW,IAAK,QAAQ,QAAQ,GAAG,CAAC,CAAC;QAClE;AAEA,iBAAS,cAAW;AAClB,iBAAO,UAAU,SAAS,KAAK,CAAC,UAAU,KAAK,CAAC,MAAM,MAAM,YAAY,MAAM,OAAO;QACvF;AAEA,iBAAS,MAAM,GAAS,GAAO;AAC7B,gBAAM,OAAO,IAAI,KAAK,MAAM;AAC5B,gBAAM,aAAY,GAAA,WAAA,gBAAe,WAAW,MAAM,GAAG,KAAK,eAAe,WAAA,SAAS,KAAK;AACvF,gBAAM,UAAU,IAAI,MAAM,YAAW,GAAA,UAAA,MAAK;AAC1C,cAAI,KAAI,GAAA,UAAA,MAAK,CAAC,OAAO,MAAK;AACxB,gBAAI,IAAI,OAAM,GAAA,UAAA,KAAI,IAAI,IAAI,CAAC,GAAG;AAC9B,gBAAI,GAAG,YAAW,GAAA,UAAA,YAAW;AAC7B,gBAAI,UAAU,SAAS;AAAG,kBAAI,IAAG,GAAA,UAAA,YAAW,IAAI,iBAAgB,GAAA,UAAA,KAAI,IAAI,SAAS;AACjF,gBACG,IAAG,GAAA,UAAA,YAAW,OAAO,IAAI,IAAI,iBAAiB,MAAK;AAClD,kBAAI,OAAO,IAAG,GAAA,UAAA,KAAI,OAAO,IAAI,IAAI,GAAG;AACpC,kBAAI,MAAK;AACT,kBAAI,OAAO,OAAO,KAAK,EAAE,MAAK;YAChC,CAAC,EACA,MAAK,GAAA,UAAA,KAAI,OAAO,IAAI,IAAI,OAAO,CAAC,EAAE;UACvC,CAAC;QACH;AAEA,iBAAS,OAAO,GAAS,GAAO;AAC9B,gBAAM,OAAM,GAAA,OAAA,SAAQ,KAAK,QAAA,OAAK;AAC9B,gBAAM,QAAQ,IAAI,KAAK,OAAO;AAC9B,cAAI,MAAM,KAAK,EAAE,KAAI,GAAA,UAAA,MAAK,CAAC,OAAO,MAChC,IAAI,KAAI,GAAA,UAAA,KAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,MAC/B,IAAI,IAAG,GAAA,UAAA,KAAI,GAAG,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,MAAK;AACnD,gBAAI,MAAK;AACT,gBAAI,OAAO,OAAO,KAAK,EAAE,MAAM,KAAK;UACtC,CAAC,CAAC,CACH;QAEL;MACF;;AAGF,YAAA,UAAe;;;;;;;;;AC5Ef,QAAA,YAAA;AACA,QAAA,SAAA;AACA,QAAA,UAAA;AAIA,QAAM,QAAgC;MACpC,SAAS;MACT,QAAQ,CAAC,EAAC,WAAU,OAAM,GAAA,UAAA,oBAAmB,UAAU;;AAGzD,QAAM,MAA6B;MACjC,SAAS;MACT,OAAO;MACP;MACA,KAAK,KAAe;AAClB,cAAM,EAAC,KAAK,MAAM,OAAO,YAAY,OAAM,IAAI;AAC/C,YAAI,SAAU,UAAU,OAAO,UAAU,UAAW;AAClD,cAAI,WAAU,GAAA,UAAA,OAAK,GAAA,OAAA,SAAQ,KAAK,QAAA,OAAK,CAAC,IAAI,IAAI,KAAK,UAAU,GAAG;QAClE,OAAO;AACL,cAAI,MAAK,GAAA,UAAA,KAAI,MAAM,QAAQ,IAAI,EAAE;QACnC;MACF;;AAGF,YAAA,UAAe;;;;;;;;;ACzBf,QAAA,YAAA;AACA,QAAA,SAAA;AACA,QAAA,UAAA;AAIA,QAAM,QAAgC;MACpC,SAAS;MACT,QAAQ,CAAC,EAAC,WAAU,OAAM,GAAA,UAAA,qBAAoB,UAAU;;AAG1D,QAAM,MAA6B;MACjC,SAAS;MACT,YAAY;MACZ,OAAO;MACP;MACA,KAAK,KAAe;AAClB,cAAM,EAAC,KAAK,MAAM,OAAO,QAAQ,YAAY,GAAE,IAAI;AACnD,YAAI,CAAC,SAAS,OAAO,WAAW;AAAG,gBAAM,IAAI,MAAM,gCAAgC;AACnF,cAAM,UAAU,OAAO,UAAU,GAAG,KAAK;AACzC,YAAI;AACJ,cAAM,SAAS,MAAa,QAAG,QAAH,QAAG,SAAH,MAAA,OAAQ,GAAA,OAAA,SAAQ,KAAK,QAAA,OAAK;AAEtD,YAAI;AACJ,YAAI,WAAW,OAAO;AACpB,kBAAQ,IAAI,IAAI,OAAO;AACvB,cAAI,WAAW,OAAO,QAAQ;QAChC,OAAO;AAEL,cAAI,CAAC,MAAM,QAAQ,MAAM;AAAG,kBAAM,IAAI,MAAM,0BAA0B;AACtE,gBAAM,UAAU,IAAI,MAAM,WAAW,UAAU;AAC/C,mBAAQ,GAAA,UAAA,IAAG,GAAG,OAAO,IAAI,CAAC,IAAa,MAAc,UAAU,SAAS,CAAC,CAAC,CAAC;QAC7E;AACA,YAAI,KAAK,KAAK;AAEd,iBAAS,WAAQ;AACf,cAAI,OAAO,OAAO,KAAK;AACvB,cAAI,MAAM,KAAK,YAAoB,CAAC,MAClC,IAAI,IAAG,GAAA,UAAA,KAAI,OAAM,CAAE,IAAI,IAAI,KAAK,CAAC,KAAK,MAAM,IAAI,OAAO,OAAO,IAAI,EAAE,MAAK,CAAE,CAAC;QAEhF;AAEA,iBAAS,UAAU,SAAe,GAAS;AACzC,gBAAM,MAAM,OAAO,CAAC;AACpB,iBAAO,OAAO,QAAQ,YAAY,QAAQ,QACtC,GAAA,UAAA,KAAI,OAAM,CAAE,IAAI,IAAI,KAAK,OAAO,IAAI,CAAC,QACrC,GAAA,UAAA,KAAI,IAAI,QAAQ,GAAG;QACzB;MACF;;AAGF,YAAA,UAAe;;;;;;;;;ACpDf,QAAA,gBAAA;AACA,QAAA,eAAA;AACA,QAAA,gBAAA;AACA,QAAA,YAAA;AACA,QAAA,oBAAA;AACA,QAAA,aAAA;AACA,QAAA,eAAA;AACA,QAAA,gBAAA;AACA,QAAA,UAAA;AACA,QAAA,SAAA;AAEA,QAAM,aAAyB;;MAE7B,cAAA;MACA,aAAA;;MAEA,cAAA;MACA,UAAA;;MAEA,kBAAA;MACA,WAAA;;MAEA,aAAA;MACA,cAAA;;MAEA,EAAC,SAAS,QAAQ,YAAY,CAAC,UAAU,OAAO,EAAC;MACjD,EAAC,SAAS,YAAY,YAAY,UAAS;MAC3C,QAAA;MACA,OAAA;;AAGF,YAAA,UAAe;;;;;;;;;;ACzBf,QAAA,YAAA;AACA,QAAA,SAAA;AAIA,QAAM,QAAgC;MACpC,SAAS,CAAC,EAAC,QAAQ,EAAC,IAAG,EAAC,OAAM,GAAA,UAAA,+BAA8B,GAAG;MAC/D,QAAQ,CAAC,EAAC,QAAQ,EAAC,IAAG,EAAC,OAAM,GAAA,UAAA,aAAY,GAAG;;AAG9C,QAAM,MAA6B;MACjC,SAAS;MACT,MAAM;MACN,YAAY,CAAC,WAAW,QAAQ;MAChC,QAAQ;MACR;MACA,KAAK,KAAe;AAClB,cAAM,EAAC,cAAc,GAAE,IAAI;AAC3B,cAAM,EAAC,MAAK,IAAI;AAChB,YAAI,CAAC,MAAM,QAAQ,KAAK,GAAG;AACzB,WAAA,GAAA,OAAA,iBAAgB,IAAI,sEAAsE;AAC1F;QACF;AACA,gCAAwB,KAAK,KAAK;MACpC;;AAGF,aAAgB,wBAAwB,KAAiB,OAAkB;AACzE,YAAM,EAAC,KAAK,QAAQ,MAAM,SAAS,GAAE,IAAI;AACzC,SAAG,QAAQ;AACX,YAAM,MAAM,IAAI,MAAM,QAAO,GAAA,UAAA,KAAI,IAAI,SAAS;AAC9C,UAAI,WAAW,OAAO;AACpB,YAAI,UAAU,EAAC,KAAK,MAAM,OAAM,CAAC;AACjC,YAAI,MAAK,GAAA,UAAA,KAAI,GAAG,OAAO,MAAM,MAAM,EAAE;MACvC,WAAW,OAAO,UAAU,YAAY,EAAC,GAAA,OAAA,mBAAkB,IAAI,MAAM,GAAG;AACtE,cAAM,QAAQ,IAAI,IAAI,UAAS,GAAA,UAAA,KAAI,GAAG,OAAO,MAAM,MAAM,EAAE;AAC3D,YAAI,IAAG,GAAA,UAAA,KAAI,KAAK,GAAG,MAAM,cAAc,KAAK,CAAC;AAC7C,YAAI,GAAG,KAAK;MACd;AAEA,eAAS,cAAc,OAAW;AAChC,YAAI,SAAS,KAAK,MAAM,QAAQ,KAAK,CAAC,MAAK;AACzC,cAAI,UAAU,EAAC,SAAS,UAAU,GAAG,cAAc,OAAA,KAAK,IAAG,GAAG,KAAK;AACnE,cAAI,CAAC,GAAG;AAAW,gBAAI,IAAG,GAAA,UAAA,KAAI,KAAK,GAAG,MAAM,IAAI,MAAK,CAAE;QACzD,CAAC;MACH;IACF;AAnBA,YAAA,0BAAA;AAqBA,YAAA,UAAe;;;;;;;;;;ACrDf,QAAA,YAAA;AACA,QAAA,SAAA;AACA,QAAA,SAAA;AAEA,QAAM,MAA6B;MACjC,SAAS;MACT,MAAM;MACN,YAAY,CAAC,UAAU,SAAS,SAAS;MACzC,QAAQ;MACR,KAAK,KAAe;AAClB,cAAM,EAAC,QAAQ,GAAE,IAAI;AACrB,YAAI,MAAM,QAAQ,MAAM;AAAG,iBAAO,cAAc,KAAK,mBAAmB,MAAM;AAC9E,WAAG,QAAQ;AACX,aAAI,GAAA,OAAA,mBAAkB,IAAI,MAAM;AAAG;AACnC,YAAI,IAAG,GAAA,OAAA,eAAc,GAAG,CAAC;MAC3B;;AAGF,aAAgB,cACd,KACA,YACA,SAAsB,IAAI,QAAM;AAEhC,YAAM,EAAC,KAAK,cAAc,MAAM,SAAS,GAAE,IAAI;AAC/C,uBAAiB,YAAY;AAC7B,UAAI,GAAG,KAAK,eAAe,OAAO,UAAU,GAAG,UAAU,MAAM;AAC7D,WAAG,QAAQ,OAAA,eAAe,MAAM,KAAK,OAAO,QAAQ,GAAG,KAAK;MAC9D;AACA,YAAM,QAAQ,IAAI,KAAK,OAAO;AAC9B,YAAM,MAAM,IAAI,MAAM,QAAO,GAAA,UAAA,KAAI,IAAI,SAAS;AAC9C,aAAO,QAAQ,CAAC,KAAgB,MAAa;AAC3C,aAAI,GAAA,OAAA,mBAAkB,IAAI,GAAG;AAAG;AAChC,YAAI,IAAG,GAAA,UAAA,KAAI,GAAG,MAAM,CAAC,IAAI,MACvB,IAAI,UACF;UACE;UACA,YAAY;UACZ,UAAU;WAEZ,KAAK,CACN;AAEH,YAAI,GAAG,KAAK;MACd,CAAC;AAED,eAAS,iBAAiB,KAAoB;AAC5C,cAAM,EAAC,MAAM,cAAa,IAAI;AAC9B,cAAM,IAAI,OAAO;AACjB,cAAM,YAAY,MAAM,IAAI,aAAa,MAAM,IAAI,YAAY,IAAI,UAAU,MAAM;AACnF,YAAI,KAAK,gBAAgB,CAAC,WAAW;AACnC,gBAAM,MAAM,IAAI,OAAO,QAAQ,CAAC,oCAAoC,UAAU,4CAA4C,aAAa;AACvI,WAAA,GAAA,OAAA,iBAAgB,IAAI,KAAK,KAAK,YAAY;QAC5C;MACF;IACF;AApCA,YAAA,gBAAA;AAsCA,YAAA,UAAe;;;;;;;;;ACzDf,QAAA,UAAA;AAEA,QAAM,MAA6B;MACjC,SAAS;MACT,MAAM;MACN,YAAY,CAAC,OAAO;MACpB,QAAQ;MACR,MAAM,CAAC,SAAQ,GAAA,QAAA,eAAc,KAAK,OAAO;;AAG3C,YAAA,UAAe;;;;;;;;;ACJf,QAAA,YAAA;AACA,QAAA,SAAA;AACA,QAAA,SAAA;AACA,QAAA,oBAAA;AAIA,QAAM,QAAgC;MACpC,SAAS,CAAC,EAAC,QAAQ,EAAC,IAAG,EAAC,OAAM,GAAA,UAAA,+BAA8B,GAAG;MAC/D,QAAQ,CAAC,EAAC,QAAQ,EAAC,IAAG,EAAC,OAAM,GAAA,UAAA,aAAY,GAAG;;AAG9C,QAAM,MAA6B;MACjC,SAAS;MACT,MAAM;MACN,YAAY,CAAC,UAAU,SAAS;MAChC,QAAQ;MACR;MACA,KAAK,KAAe;AAClB,cAAM,EAAC,QAAQ,cAAc,GAAE,IAAI;AACnC,cAAM,EAAC,YAAW,IAAI;AACtB,WAAG,QAAQ;AACX,aAAI,GAAA,OAAA,mBAAkB,IAAI,MAAM;AAAG;AACnC,YAAI;AAAa,WAAA,GAAA,kBAAA,yBAAwB,KAAK,WAAW;;AACpD,cAAI,IAAG,GAAA,OAAA,eAAc,GAAG,CAAC;MAChC;;AAGF,YAAA,UAAe;;;;;;;;;AC5Bf,QAAA,YAAA;AACA,QAAA,SAAA;AAQA,QAAM,QAAgC;MACpC,SAAS,CAAC,EAAC,QAAQ,EAAC,KAAK,IAAG,EAAC,MAC3B,QAAQ,UACJ,GAAA,UAAA,6BAA4B,GAAG,oBAC/B,GAAA,UAAA,6BAA4B,GAAG,qBAAqB,GAAG;MAC7D,QAAQ,CAAC,EAAC,QAAQ,EAAC,KAAK,IAAG,EAAC,MAC1B,QAAQ,UAAY,GAAA,UAAA,mBAAkB,GAAG,OAAM,GAAA,UAAA,mBAAkB,GAAG,kBAAkB,GAAG;;AAG7F,QAAM,MAA6B;MACjC,SAAS;MACT,MAAM;MACN,YAAY,CAAC,UAAU,SAAS;MAChC,QAAQ;MACR,aAAa;MACb;MACA,KAAK,KAAe;AAClB,cAAM,EAAC,KAAK,QAAQ,cAAc,MAAM,GAAE,IAAI;AAC9C,YAAI;AACJ,YAAI;AACJ,cAAM,EAAC,aAAa,YAAW,IAAI;AACnC,YAAI,GAAG,KAAK,MAAM;AAChB,gBAAM,gBAAgB,SAAY,IAAI;AACtC,gBAAM;QACR,OAAO;AACL,gBAAM;QACR;AACA,cAAM,MAAM,IAAI,MAAM,QAAO,GAAA,UAAA,KAAI,IAAI,SAAS;AAC9C,YAAI,UAAU,EAAC,KAAK,IAAG,CAAC;AACxB,YAAI,QAAQ,UAAa,QAAQ,GAAG;AAClC,WAAA,GAAA,OAAA,iBAAgB,IAAI,sEAAsE;AAC1F;QACF;AACA,YAAI,QAAQ,UAAa,MAAM,KAAK;AAClC,WAAA,GAAA,OAAA,iBAAgB,IAAI,iDAAiD;AACrE,cAAI,KAAI;AACR;QACF;AACA,aAAI,GAAA,OAAA,mBAAkB,IAAI,MAAM,GAAG;AACjC,cAAI,QAAO,GAAA,UAAA,KAAI,GAAG,OAAO,GAAG;AAC5B,cAAI,QAAQ;AAAW,oBAAO,GAAA,UAAA,KAAI,IAAI,OAAO,GAAG,OAAO,GAAG;AAC1D,cAAI,KAAK,IAAI;AACb;QACF;AAEA,WAAG,QAAQ;AACX,cAAM,QAAQ,IAAI,KAAK,OAAO;AAC9B,YAAI,QAAQ,UAAa,QAAQ,GAAG;AAClC,wBAAc,OAAO,MAAM,IAAI,GAAG,OAAO,MAAM,IAAI,MAAK,CAAE,CAAC;QAC7D,WAAW,QAAQ,GAAG;AACpB,cAAI,IAAI,OAAO,IAAI;AACnB,cAAI,QAAQ;AAAW,gBAAI,IAAG,GAAA,UAAA,KAAI,IAAI,eAAe,sBAAsB;QAC7E,OAAO;AACL,cAAI,IAAI,OAAO,KAAK;AACpB,iCAAsB;QACxB;AACA,YAAI,OAAO,OAAO,MAAM,IAAI,MAAK,CAAE;AAEnC,iBAAS,yBAAsB;AAC7B,gBAAM,WAAW,IAAI,KAAK,QAAQ;AAClC,gBAAM,QAAQ,IAAI,IAAI,SAAS,CAAC;AAChC,wBAAc,UAAU,MAAM,IAAI,GAAG,UAAU,MAAM,YAAY,KAAK,CAAC,CAAC;QAC1E;AAEA,iBAAS,cAAc,QAAc,OAAiB;AACpD,cAAI,SAAS,KAAK,GAAG,KAAK,CAAC,MAAK;AAC9B,gBAAI,UACF;cACE,SAAS;cACT,UAAU;cACV,cAAc,OAAA,KAAK;cACnB,eAAe;eAEjB,MAAM;AAER,kBAAK;UACP,CAAC;QACH;AAEA,iBAAS,YAAY,OAAW;AAC9B,cAAI,MAAK,GAAA,UAAA,KAAI,KAAK,IAAI;AACtB,cAAI,QAAQ,QAAW;AACrB,gBAAI,IAAG,GAAA,UAAA,KAAI,KAAK,OAAO,GAAG,IAAI,MAAM,IAAI,OAAO,OAAO,IAAI,EAAE,MAAK,CAAE;UACrE,OAAO;AACL,gBAAI,IAAG,GAAA,UAAA,KAAI,KAAK,MAAM,GAAG,IAAI,MAAM,IAAI,OAAO,OAAO,KAAK,EAAE,MAAK,CAAE;AACnE,gBAAI,QAAQ;AAAG,kBAAI,OAAO,OAAO,IAAI;;AAChC,kBAAI,IAAG,GAAA,UAAA,KAAI,KAAK,OAAO,GAAG,IAAI,MAAM,IAAI,OAAO,OAAO,IAAI,CAAC;UAClE;QACF;MACF;;AAGF,YAAA,UAAe;;;;;;;;;;ACpGf,QAAA,YAAA;AACA,QAAA,SAAA;AACA,QAAA,SAAA;AAmBa,YAAA,QAAgC;MAC3C,SAAS,CAAC,EAAC,QAAQ,EAAC,UAAU,WAAW,KAAI,EAAC,MAAK;AACjD,cAAM,eAAe,cAAc,IAAI,aAAa;AACpD,gBAAO,GAAA,UAAA,iBAAgB,YAAY,IAAI,IAAI,kBAAkB,QAAQ;MACvE;MACA,QAAQ,CAAC,EAAC,QAAQ,EAAC,UAAU,WAAW,MAAM,gBAAe,EAAC,OAC5D,GAAA,UAAA,gBAAe,QAAQ;uBACJ,eAAe;iBACrB,SAAS;YACd,IAAI;;;AAGhB,QAAM,MAA6B;MACjC,SAAS;MACT,MAAM;MACN,YAAY;MACZ,OAAA,QAAA;MACA,KAAK,KAAe;AAClB,cAAM,CAAC,UAAU,OAAO,IAAI,kBAAkB,GAAG;AACjD,6BAAqB,KAAK,QAAQ;AAClC,2BAAmB,KAAK,OAAO;MACjC;;AAGF,aAAS,kBAAkB,EAAC,OAAM,GAAa;AAC7C,YAAM,eAAqC,CAAA;AAC3C,YAAM,aAAiC,CAAA;AACvC,iBAAW,OAAO,QAAQ;AACxB,YAAI,QAAQ;AAAa;AACzB,cAAM,OAAO,MAAM,QAAQ,OAAO,GAAG,CAAC,IAAI,eAAe;AACzD,aAAK,GAAG,IAAI,OAAO,GAAG;MACxB;AACA,aAAO,CAAC,cAAc,UAAU;IAClC;AAEA,aAAgB,qBACd,KACA,eAA2C,IAAI,QAAM;AAErD,YAAM,EAAC,KAAK,MAAM,GAAE,IAAI;AACxB,UAAI,OAAO,KAAK,YAAY,EAAE,WAAW;AAAG;AAC5C,YAAM,UAAU,IAAI,IAAI,SAAS;AACjC,iBAAW,QAAQ,cAAc;AAC/B,cAAM,OAAO,aAAa,IAAI;AAC9B,YAAI,KAAK,WAAW;AAAG;AACvB,cAAM,eAAc,GAAA,OAAA,gBAAe,KAAK,MAAM,MAAM,GAAG,KAAK,aAAa;AACzE,YAAI,UAAU;UACZ,UAAU;UACV,WAAW,KAAK;UAChB,MAAM,KAAK,KAAK,IAAI;SACrB;AACD,YAAI,GAAG,WAAW;AAChB,cAAI,GAAG,aAAa,MAAK;AACvB,uBAAW,WAAW,MAAM;AAC1B,eAAA,GAAA,OAAA,wBAAuB,KAAK,OAAO;YACrC;UACF,CAAC;QACH,OAAO;AACL,cAAI,IAAG,GAAA,UAAA,KAAI,WAAW,SAAQ,GAAA,OAAA,kBAAiB,KAAK,MAAM,OAAO,CAAC,GAAG;AACrE,WAAA,GAAA,OAAA,mBAAkB,KAAK,OAAO;AAC9B,cAAI,KAAI;QACV;MACF;IACF;AA5BA,YAAA,uBAAA;AA8BA,aAAgB,mBAAmB,KAAiB,aAAwB,IAAI,QAAM;AACpF,YAAM,EAAC,KAAK,MAAM,SAAS,GAAE,IAAI;AACjC,YAAM,QAAQ,IAAI,KAAK,OAAO;AAC9B,iBAAW,QAAQ,YAAY;AAC7B,aAAI,GAAA,OAAA,mBAAkB,IAAI,WAAW,IAAI,CAAc;AAAG;AAC1D,YAAI;WACF,GAAA,OAAA,gBAAe,KAAK,MAAM,MAAM,GAAG,KAAK,aAAa;UACrD,MAAK;AACH,kBAAM,SAAS,IAAI,UAAU,EAAC,SAAS,YAAY,KAAI,GAAG,KAAK;AAC/D,gBAAI,oBAAoB,QAAQ,KAAK;UACvC;UACA,MAAM,IAAI,IAAI,OAAO,IAAI;;;AAE3B,YAAI,GAAG,KAAK;MACd;IACF;AAfA,YAAA,qBAAA;AAiBA,YAAA,UAAe;;;;;;;;;ACxGf,QAAA,YAAA;AACA,QAAA,SAAA;AAIA,QAAM,QAAgC;MACpC,SAAS;MACT,QAAQ,CAAC,EAAC,OAAM,OAAM,GAAA,UAAA,oBAAmB,OAAO,YAAY;;AAG9D,QAAM,MAA6B;MACjC,SAAS;MACT,MAAM;MACN,YAAY,CAAC,UAAU,SAAS;MAChC;MACA,KAAK,KAAe;AAClB,cAAM,EAAC,KAAK,QAAQ,MAAM,GAAE,IAAI;AAChC,aAAI,GAAA,OAAA,mBAAkB,IAAI,MAAM;AAAG;AACnC,cAAM,QAAQ,IAAI,KAAK,OAAO;AAE9B,YAAI,MAAM,OAAO,MAAM,CAAC,QAAO;AAC7B,cAAI,UAAU,EAAC,cAAc,IAAG,CAAC;AACjC,cAAI,UACF;YACE,SAAS;YACT,MAAM;YACN,WAAW,CAAC,QAAQ;YACpB,cAAc;YACd,eAAe;aAEjB,KAAK;AAEP,cAAI,IAAG,GAAA,UAAA,KAAI,KAAK,GAAG,MAAK;AACtB,gBAAI,MAAM,IAAI;AACd,gBAAI,CAAC,GAAG;AAAW,kBAAI,MAAK;UAC9B,CAAC;QACH,CAAC;AAED,YAAI,GAAG,KAAK;MACd;;AAGF,YAAA,UAAe;;;;;;;;;AC1Cf,QAAA,SAAA;AACA,QAAA,YAAA;AACA,QAAA,UAAA;AAEA,QAAA,SAAA;AAQA,QAAM,QAAgC;MACpC,SAAS;MACT,QAAQ,CAAC,EAAC,OAAM,OAAM,GAAA,UAAA,0BAAyB,OAAO,kBAAkB;;AAG1E,QAAM,MAAsD;MAC1D,SAAS;MACT,MAAM,CAAC,QAAQ;MACf,YAAY,CAAC,WAAW,QAAQ;MAChC,gBAAgB;MAChB,aAAa;MACb;MACA,KAAK,KAAG;AACN,cAAM,EAAC,KAAK,QAAQ,cAAc,MAAM,WAAW,GAAE,IAAI;AAEzD,YAAI,CAAC;AAAW,gBAAM,IAAI,MAAM,0BAA0B;AAC1D,cAAM,EAAC,WAAW,KAAI,IAAI;AAC1B,WAAG,QAAQ;AACX,YAAI,KAAK,qBAAqB,UAAS,GAAA,OAAA,mBAAkB,IAAI,MAAM;AAAG;AACtE,cAAM,SAAQ,GAAA,OAAA,qBAAoB,aAAa,UAAU;AACzD,cAAM,YAAW,GAAA,OAAA,qBAAoB,aAAa,iBAAiB;AACnE,kCAAyB;AACzB,YAAI,IAAG,GAAA,UAAA,KAAI,SAAS,QAAQ,QAAA,QAAE,MAAM,EAAE;AAEtC,iBAAS,4BAAyB;AAChC,cAAI,MAAM,OAAO,MAAM,CAAC,QAAa;AACnC,gBAAI,CAAC,MAAM,UAAU,CAAC,SAAS;AAAQ,qCAAuB,GAAG;;AAC5D,kBAAI,GAAG,aAAa,GAAG,GAAG,MAAM,uBAAuB,GAAG,CAAC;UAClE,CAAC;QACH;AAEA,iBAAS,aAAa,KAAS;AAC7B,cAAI;AACJ,cAAI,MAAM,SAAS,GAAG;AAEpB,kBAAM,eAAc,GAAA,OAAA,gBAAe,IAAI,aAAa,YAAY,YAAY;AAC5E,2BAAc,GAAA,OAAA,eAAc,KAAK,aAAqB,GAAG;UAC3D,WAAW,MAAM,QAAQ;AACvB,2BAAc,GAAA,UAAA,IAAG,GAAG,MAAM,IAAI,CAAC,OAAM,GAAA,UAAA,KAAI,GAAG,QAAQ,CAAC,EAAE,CAAC;UAC1D,OAAO;AACL,0BAAc,UAAA;UAChB;AACA,cAAI,SAAS,QAAQ;AACnB,2BAAc,GAAA,UAAA,IAAG,aAAa,GAAG,SAAS,IAAI,CAAC,OAAM,GAAA,UAAA,MAAI,GAAA,OAAA,YAAW,KAAK,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC;UAC7F;AACA,kBAAO,GAAA,UAAA,KAAI,WAAW;QACxB;AAEA,iBAAS,iBAAiB,KAAS;AACjC,cAAI,MAAK,GAAA,UAAA,YAAW,IAAI,IAAI,GAAG,GAAG;QACpC;AAEA,iBAAS,uBAAuB,KAAS;AACvC,cAAI,KAAK,qBAAqB,SAAU,KAAK,oBAAoB,WAAW,OAAQ;AAClF,6BAAiB,GAAG;AACpB;UACF;AAEA,cAAI,WAAW,OAAO;AACpB,gBAAI,UAAU,EAAC,oBAAoB,IAAG,CAAC;AACvC,gBAAI,MAAK;AACT,gBAAI,CAAC;AAAW,kBAAI,MAAK;AACzB;UACF;AAEA,cAAI,OAAO,UAAU,YAAY,EAAC,GAAA,OAAA,mBAAkB,IAAI,MAAM,GAAG;AAC/D,kBAAM,QAAQ,IAAI,KAAK,OAAO;AAC9B,gBAAI,KAAK,qBAAqB,WAAW;AACvC,oCAAsB,KAAK,OAAO,KAAK;AACvC,kBAAI,IAAG,GAAA,UAAA,KAAI,KAAK,GAAG,MAAK;AACtB,oBAAI,MAAK;AACT,iCAAiB,GAAG;cACtB,CAAC;YACH,OAAO;AACL,oCAAsB,KAAK,KAAK;AAChC,kBAAI,CAAC;AAAW,oBAAI,IAAG,GAAA,UAAA,KAAI,KAAK,GAAG,MAAM,IAAI,MAAK,CAAE;YACtD;UACF;QACF;AAEA,iBAAS,sBAAsB,KAAW,OAAa,QAAc;AACnE,gBAAM,YAA2B;YAC/B,SAAS;YACT,UAAU;YACV,cAAc,OAAA,KAAK;;AAErB,cAAI,WAAW,OAAO;AACpB,mBAAO,OAAO,WAAW;cACvB,eAAe;cACf,cAAc;cACd,WAAW;aACZ;UACH;AACA,cAAI,UAAU,WAAW,KAAK;QAChC;MACF;;AAGF,YAAA,UAAe;;;;;;;;;ACpHf,QAAA,aAAA;AACA,QAAA,SAAA;AACA,QAAA,SAAA;AACA,QAAA,yBAAA;AAEA,QAAM,MAA6B;MACjC,SAAS;MACT,MAAM;MACN,YAAY;MACZ,KAAK,KAAe;AAClB,cAAM,EAAC,KAAK,QAAQ,cAAc,MAAM,GAAE,IAAI;AAC9C,YAAI,GAAG,KAAK,qBAAqB,SAAS,aAAa,yBAAyB,QAAW;AACzF,iCAAA,QAAM,KAAK,IAAI,WAAA,WAAW,IAAI,uBAAA,SAAO,sBAAsB,CAAC;QAC9D;AACA,cAAM,YAAW,GAAA,OAAA,qBAAoB,MAAM;AAC3C,mBAAW,QAAQ,UAAU;AAC3B,aAAG,kBAAkB,IAAI,IAAI;QAC/B;AACA,YAAI,GAAG,KAAK,eAAe,SAAS,UAAU,GAAG,UAAU,MAAM;AAC/D,aAAG,QAAQ,OAAA,eAAe,MAAM,MAAK,GAAA,OAAA,QAAO,QAAQ,GAAG,GAAG,KAAK;QACjE;AACA,cAAM,aAAa,SAAS,OAAO,CAAC,MAAM,EAAC,GAAA,OAAA,mBAAkB,IAAI,OAAO,CAAC,CAAC,CAAC;AAC3E,YAAI,WAAW,WAAW;AAAG;AAC7B,cAAM,QAAQ,IAAI,KAAK,OAAO;AAE9B,mBAAW,QAAQ,YAAY;AAC7B,cAAI,WAAW,IAAI,GAAG;AACpB,gCAAoB,IAAI;UAC1B,OAAO;AACL,gBAAI,IAAG,GAAA,OAAA,gBAAe,KAAK,MAAM,MAAM,GAAG,KAAK,aAAa,CAAC;AAC7D,gCAAoB,IAAI;AACxB,gBAAI,CAAC,GAAG;AAAW,kBAAI,KAAI,EAAG,IAAI,OAAO,IAAI;AAC7C,gBAAI,MAAK;UACX;AACA,cAAI,GAAG,kBAAkB,IAAI,IAAI;AACjC,cAAI,GAAG,KAAK;QACd;AAEA,iBAAS,WAAW,MAAY;AAC9B,iBAAO,GAAG,KAAK,eAAe,CAAC,GAAG,iBAAiB,OAAO,IAAI,EAAE,YAAY;QAC9E;AAEA,iBAAS,oBAAoB,MAAY;AACvC,cAAI,UACF;YACE,SAAS;YACT,YAAY;YACZ,UAAU;aAEZ,KAAK;QAET;MACF;;AAGF,YAAA,UAAe;;;;;;;;;ACtDf,QAAA,SAAA;AACA,QAAA,YAAA;AACA,QAAA,SAAA;AACA,QAAA,SAAA;AAGA,QAAM,MAA6B;MACjC,SAAS;MACT,MAAM;MACN,YAAY;MACZ,KAAK,KAAe;AAClB,cAAM,EAAC,KAAK,QAAQ,MAAM,cAAc,GAAE,IAAI;AAC9C,cAAM,EAAC,KAAI,IAAI;AACf,cAAM,YAAW,GAAA,OAAA,qBAAoB,MAAM;AAC3C,cAAM,sBAAsB,SAAS,OAAO,CAAC,OAC3C,GAAA,OAAA,mBAAkB,IAAI,OAAO,CAAC,CAAc,CAAC;AAG/C,YACE,SAAS,WAAW,KACnB,oBAAoB,WAAW,SAAS,WACtC,CAAC,GAAG,KAAK,eAAe,GAAG,UAAU,OACxC;AACA;QACF;AAEA,cAAM,kBACJ,KAAK,gBAAgB,CAAC,KAAK,2BAA2B,aAAa;AACrE,cAAM,QAAQ,IAAI,KAAK,OAAO;AAC9B,YAAI,GAAG,UAAU,QAAQ,EAAE,GAAG,iBAAiB,UAAA,OAAO;AACpD,aAAG,SAAQ,GAAA,OAAA,sBAAqB,KAAK,GAAG,KAAK;QAC/C;AACA,cAAM,EAAC,MAAK,IAAI;AAChB,kCAAyB;AAEzB,iBAAS,4BAAyB;AAChC,qBAAW,OAAO,UAAU;AAC1B,gBAAI;AAAiB,sCAAwB,GAAG;AAChD,gBAAI,GAAG,WAAW;AAChB,iCAAmB,GAAG;YACxB,OAAO;AACL,kBAAI,IAAI,OAAO,IAAI;AACnB,iCAAmB,GAAG;AACtB,kBAAI,GAAG,KAAK;YACd;UACF;QACF;AAEA,iBAAS,wBAAwB,KAAW;AAC1C,qBAAW,QAAQ,iBAAiB;AAClC,gBAAI,IAAI,OAAO,GAAG,EAAE,KAAK,IAAI,GAAG;AAC9B,eAAA,GAAA,OAAA,iBACE,IACA,YAAY,IAAI,oBAAoB,GAAG,gCAAgC;YAE3E;UACF;QACF;AAEA,iBAAS,mBAAmB,KAAW;AACrC,cAAI,MAAM,OAAO,MAAM,CAAC,QAAO;AAC7B,gBAAI,IAAG,GAAA,UAAA,MAAI,GAAA,OAAA,YAAW,KAAK,GAAG,CAAC,SAAS,GAAG,KAAK,MAAK;AACnD,oBAAM,cAAc,oBAAoB,SAAS,GAAG;AACpD,kBAAI,CAAC,aAAa;AAChB,oBAAI,UACF;kBACE,SAAS;kBACT,YAAY;kBACZ,UAAU;kBACV,cAAc,OAAA,KAAK;mBAErB,KAAK;cAET;AAEA,kBAAI,GAAG,KAAK,eAAe,UAAU,MAAM;AACzC,oBAAI,QAAO,GAAA,UAAA,KAAI,KAAK,IAAI,GAAG,KAAK,IAAI;cACtC,WAAW,CAAC,eAAe,CAAC,GAAG,WAAW;AAGxC,oBAAI,IAAG,GAAA,UAAA,KAAI,KAAK,GAAG,MAAM,IAAI,MAAK,CAAE;cACtC;YACF,CAAC;UACH,CAAC;QACH;MACF;;AAGF,YAAA,UAAe;;;;;;;;;ACxFf,QAAA,SAAA;AAIA,QAAM,MAA6B;MACjC,SAAS;MACT,YAAY,CAAC,UAAU,SAAS;MAChC,aAAa;MACb,KAAK,KAAe;AAClB,cAAM,EAAC,KAAK,QAAQ,GAAE,IAAI;AAC1B,aAAI,GAAA,OAAA,mBAAkB,IAAI,MAAM,GAAG;AACjC,cAAI,KAAI;AACR;QACF;AAEA,cAAM,QAAQ,IAAI,KAAK,OAAO;AAC9B,YAAI,UACF;UACE,SAAS;UACT,eAAe;UACf,cAAc;UACd,WAAW;WAEb,KAAK;AAGP,YAAI,WACF,OACA,MAAM,IAAI,MAAK,GACf,MAAM,IAAI,MAAK,CAAE;MAErB;MACA,OAAO,EAAC,SAAS,oBAAmB;;AAGtC,YAAA,UAAe;;;;;;;;;ACpCf,QAAA,SAAA;AAIA,QAAM,MAA6B;MACjC,SAAS;MACT,YAAY;MACZ,aAAa;MACb,MAAM,OAAA;MACN,OAAO,EAAC,SAAS,+BAA8B;;AAGjD,YAAA,UAAe;;;;;;;;;ACNf,QAAA,YAAA;AACA,QAAA,SAAA;AASA,QAAM,QAAgC;MACpC,SAAS;MACT,QAAQ,CAAC,EAAC,OAAM,OAAM,GAAA,UAAA,sBAAqB,OAAO,OAAO;;AAG3D,QAAM,MAA6B;MACjC,SAAS;MACT,YAAY;MACZ,aAAa;MACb;MACA,KAAK,KAAe;AAClB,cAAM,EAAC,KAAK,QAAQ,cAAc,GAAE,IAAI;AAExC,YAAI,CAAC,MAAM,QAAQ,MAAM;AAAG,gBAAM,IAAI,MAAM,0BAA0B;AACtE,YAAI,GAAG,KAAK,iBAAiB,aAAa;AAAe;AACzD,cAAM,SAAsB;AAC5B,cAAM,QAAQ,IAAI,IAAI,SAAS,KAAK;AACpC,cAAM,UAAU,IAAI,IAAI,WAAW,IAAI;AACvC,cAAM,WAAW,IAAI,KAAK,QAAQ;AAClC,YAAI,UAAU,EAAC,QAAO,CAAC;AAGvB,YAAI,MAAM,aAAa;AAEvB,YAAI,OACF,OACA,MAAM,IAAI,MAAK,GACf,MAAM,IAAI,MAAM,IAAI,CAAC;AAGvB,iBAAS,gBAAa;AACpB,iBAAO,QAAQ,CAAC,KAAgB,MAAa;AAC3C,gBAAI;AACJ,iBAAI,GAAA,OAAA,mBAAkB,IAAI,GAAG,GAAG;AAC9B,kBAAI,IAAI,UAAU,IAAI;YACxB,OAAO;AACL,uBAAS,IAAI,UACX;gBACE,SAAS;gBACT,YAAY;gBACZ,eAAe;iBAEjB,QAAQ;YAEZ;AAEA,gBAAI,IAAI,GAAG;AACT,kBACG,IAAG,GAAA,UAAA,KAAI,QAAQ,OAAO,KAAK,EAAE,EAC7B,OAAO,OAAO,KAAK,EACnB,OAAO,UAAS,GAAA,UAAA,MAAK,OAAO,KAAK,CAAC,GAAG,EACrC,KAAI;YACT;AAEA,gBAAI,GAAG,UAAU,MAAK;AACpB,kBAAI,OAAO,OAAO,IAAI;AACtB,kBAAI,OAAO,SAAS,CAAC;AACrB,kBAAI;AAAQ,oBAAI,eAAe,QAAQ,UAAA,IAAI;YAC7C,CAAC;UACH,CAAC;QACH;MACF;;AAGF,YAAA,UAAe;;;;;;;;;AC/Ef,QAAA,SAAA;AAEA,QAAM,MAA6B;MACjC,SAAS;MACT,YAAY;MACZ,KAAK,KAAe;AAClB,cAAM,EAAC,KAAK,QAAQ,GAAE,IAAI;AAE1B,YAAI,CAAC,MAAM,QAAQ,MAAM;AAAG,gBAAM,IAAI,MAAM,0BAA0B;AACtE,cAAM,QAAQ,IAAI,KAAK,OAAO;AAC9B,eAAO,QAAQ,CAAC,KAAgB,MAAa;AAC3C,eAAI,GAAA,OAAA,mBAAkB,IAAI,GAAG;AAAG;AAChC,gBAAM,SAAS,IAAI,UAAU,EAAC,SAAS,SAAS,YAAY,EAAC,GAAG,KAAK;AACrE,cAAI,GAAG,KAAK;AACZ,cAAI,eAAe,MAAM;QAC3B,CAAC;MACH;;AAGF,YAAA,UAAe;;;;;;;;;ACbf,QAAA,YAAA;AACA,QAAA,SAAA;AAIA,QAAM,QAAgC;MACpC,SAAS,CAAC,EAAC,OAAM,OAAM,GAAA,UAAA,mBAAkB,OAAO,QAAQ;MACxD,QAAQ,CAAC,EAAC,OAAM,OAAM,GAAA,UAAA,sBAAqB,OAAO,QAAQ;;AAG5D,QAAM,MAA6B;MACjC,SAAS;MACT,YAAY,CAAC,UAAU,SAAS;MAChC,aAAa;MACb;MACA,KAAK,KAAe;AAClB,cAAM,EAAC,KAAK,cAAc,GAAE,IAAI;AAChC,YAAI,aAAa,SAAS,UAAa,aAAa,SAAS,QAAW;AACtE,WAAA,GAAA,OAAA,iBAAgB,IAAI,2CAA2C;QACjE;AACA,cAAM,UAAU,UAAU,IAAI,MAAM;AACpC,cAAM,UAAU,UAAU,IAAI,MAAM;AACpC,YAAI,CAAC,WAAW,CAAC;AAAS;AAE1B,cAAM,QAAQ,IAAI,IAAI,SAAS,IAAI;AACnC,cAAM,WAAW,IAAI,KAAK,QAAQ;AAClC,mBAAU;AACV,YAAI,MAAK;AAET,YAAI,WAAW,SAAS;AACtB,gBAAM,WAAW,IAAI,IAAI,UAAU;AACnC,cAAI,UAAU,EAAC,SAAQ,CAAC;AACxB,cAAI,GAAG,UAAU,eAAe,QAAQ,QAAQ,GAAG,eAAe,QAAQ,QAAQ,CAAC;QACrF,WAAW,SAAS;AAClB,cAAI,GAAG,UAAU,eAAe,MAAM,CAAC;QACzC,OAAO;AACL,cAAI,IAAG,GAAA,UAAA,KAAI,QAAQ,GAAG,eAAe,MAAM,CAAC;QAC9C;AAEA,YAAI,KAAK,OAAO,MAAM,IAAI,MAAM,IAAI,CAAC;AAErC,iBAAS,aAAU;AACjB,gBAAM,SAAS,IAAI,UACjB;YACE,SAAS;YACT,eAAe;YACf,cAAc;YACd,WAAW;aAEb,QAAQ;AAEV,cAAI,eAAe,MAAM;QAC3B;AAEA,iBAAS,eAAe,SAAiB,UAAe;AACtD,iBAAO,MAAK;AACV,kBAAM,SAAS,IAAI,UAAU,EAAC,QAAO,GAAG,QAAQ;AAChD,gBAAI,OAAO,OAAO,QAAQ;AAC1B,gBAAI,oBAAoB,QAAQ,KAAK;AACrC,gBAAI;AAAU,kBAAI,OAAO,WAAU,GAAA,UAAA,KAAI,OAAO,EAAE;;AAC3C,kBAAI,UAAU,EAAC,UAAU,QAAO,CAAC;UACxC;QACF;MACF;;AAGF,aAAS,UAAU,IAAkB,SAAe;AAClD,YAAM,SAAS,GAAG,OAAO,OAAO;AAChC,aAAO,WAAW,UAAa,EAAC,GAAA,OAAA,mBAAkB,IAAI,MAAM;IAC9D;AAEA,YAAA,UAAe;;;;;;;;;AC7Ef,QAAA,SAAA;AAEA,QAAM,MAA6B;MACjC,SAAS,CAAC,QAAQ,MAAM;MACxB,YAAY,CAAC,UAAU,SAAS;MAChC,KAAK,EAAC,SAAS,cAAc,GAAE,GAAa;AAC1C,YAAI,aAAa,OAAO;AAAW,WAAA,GAAA,OAAA,iBAAgB,IAAI,IAAI,OAAO,2BAA2B;MAC/F;;AAGF,YAAA,UAAe;;;;;;;;;ACXf,QAAA,oBAAA;AACA,QAAA,gBAAA;AACA,QAAA,UAAA;AACA,QAAA,cAAA;AACA,QAAA,aAAA;AACA,QAAA,iBAAA;AACA,QAAA,kBAAA;AACA,QAAA,yBAAA;AACA,QAAA,eAAA;AACA,QAAA,sBAAA;AACA,QAAA,QAAA;AACA,QAAA,UAAA;AACA,QAAA,UAAA;AACA,QAAA,UAAA;AACA,QAAA,OAAA;AACA,QAAA,aAAA;AAEA,aAAwB,cAAc,YAAY,OAAK;AACrD,YAAM,aAAa;;QAEjB,MAAA;QACA,QAAA;QACA,QAAA;QACA,QAAA;QACA,KAAA;QACA,WAAA;;QAEA,gBAAA;QACA,uBAAA;QACA,eAAA;QACA,aAAA;QACA,oBAAA;;AAGF,UAAI;AAAW,mBAAW,KAAK,cAAA,SAAa,YAAA,OAAS;;AAChD,mBAAW,KAAK,kBAAA,SAAiB,QAAA,OAAK;AAC3C,iBAAW,KAAK,WAAA,OAAQ;AACxB,aAAO;IACT;AArBA,YAAA,UAAA;;;;;;;;;ACTA,QAAA,YAAA;AAaA,QAAM,QAAgC;MACpC,SAAS,CAAC,EAAC,WAAU,OAAM,GAAA,UAAA,0BAAyB,UAAU;MAC9D,QAAQ,CAAC,EAAC,WAAU,OAAM,GAAA,UAAA,cAAa,UAAU;;AAGnD,QAAM,MAA6B;MACjC,SAAS;MACT,MAAM,CAAC,UAAU,QAAQ;MACzB,YAAY;MACZ,OAAO;MACP;MACA,KAAK,KAAiB,UAAiB;AACrC,cAAM,EAAC,KAAK,MAAM,OAAO,QAAQ,YAAY,GAAE,IAAI;AACnD,cAAM,EAAC,MAAM,eAAe,WAAW,KAAI,IAAI;AAC/C,YAAI,CAAC,KAAK;AAAiB;AAE3B,YAAI;AAAO,8BAAmB;;AACzB,yBAAc;AAEnB,iBAAS,sBAAmB;AAC1B,gBAAM,OAAO,IAAI,WAAW,WAAW;YACrC,KAAK,KAAK;YACV,MAAM,KAAK,KAAK;WACjB;AACD,gBAAM,OAAO,IAAI,MAAM,SAAQ,GAAA,UAAA,KAAI,IAAI,IAAI,UAAU,GAAG;AACxD,gBAAM,QAAQ,IAAI,IAAI,OAAO;AAC7B,gBAAM,SAAS,IAAI,IAAI,QAAQ;AAE/B,cAAI,IACF,GAAA,UAAA,YAAW,IAAI,qBAAqB,IAAI,uBACxC,MAAM,IAAI,OAAO,QAAO,GAAA,UAAA,KAAI,IAAI,mBAAmB,EAAE,OAAO,SAAQ,GAAA,UAAA,KAAI,IAAI,WAAW,GACvF,MAAM,IAAI,OAAO,QAAO,GAAA,UAAA,YAAW,EAAE,OAAO,QAAQ,IAAI,CAAC;AAE3D,cAAI,WAAU,GAAA,UAAA,IAAG,WAAU,GAAI,WAAU,CAAE,CAAC;AAE5C,mBAAS,aAAU;AACjB,gBAAI,KAAK,iBAAiB;AAAO,qBAAO,UAAA;AACxC,oBAAO,GAAA,UAAA,KAAI,UAAU,QAAQ,MAAM;UACrC;AAEA,mBAAS,aAAU;AACjB,kBAAM,aAAa,UAAU,UACzB,GAAA,UAAA,MAAK,IAAI,kBAAkB,MAAM,IAAI,IAAI,OAAO,MAAM,IAAI,IAAI,QAC9D,GAAA,UAAA,KAAI,MAAM,IAAI,IAAI;AACtB,kBAAM,aAAY,GAAA,UAAA,aAAY,MAAM,oBAAoB,UAAU,MAAM,MAAM,SAAS,IAAI;AAC3F,oBAAO,GAAA,UAAA,KAAI,MAAM,OAAO,MAAM,gBAAgB,KAAK,QAAQ,QAAQ,QAAQ,SAAS;UACtF;QACF;AAEA,iBAAS,iBAAc;AACrB,gBAAM,YAAqC,KAAK,QAAQ,MAAM;AAC9D,cAAI,CAAC,WAAW;AACd,0BAAa;AACb;UACF;AACA,cAAI,cAAc;AAAM;AACxB,gBAAM,CAAC,SAAS,QAAQ,MAAM,IAAI,UAAU,SAAS;AACrD,cAAI,YAAY;AAAU,gBAAI,KAAK,eAAc,CAAE;AAEnD,mBAAS,gBAAa;AACpB,gBAAI,KAAK,iBAAiB,OAAO;AAC/B,mBAAK,OAAO,KAAK,WAAU,CAAE;AAC7B;YACF;AACA,kBAAM,IAAI,MAAM,WAAU,CAAE;AAE5B,qBAAS,aAAU;AACjB,qBAAO,mBAAmB,MAAgB,gCAAgC,aAAa;YACzF;UACF;AAEA,mBAAS,UAAU,QAAmB;AACpC,kBAAM,OACJ,kBAAkB,UACd,GAAA,UAAA,YAAW,MAAM,IACjB,KAAK,KAAK,WACV,GAAA,UAAA,KAAI,KAAK,KAAK,OAAO,IAAG,GAAA,UAAA,aAAY,MAAM,CAAC,KAC3C;AACN,kBAAM,MAAM,IAAI,WAAW,WAAW,EAAC,KAAK,QAAQ,KAAK,QAAQ,KAAI,CAAC;AACtE,gBAAI,OAAO,UAAU,YAAY,EAAE,kBAAkB,SAAS;AAC5D,qBAAO,CAAC,OAAO,QAAQ,UAAU,OAAO,WAAU,GAAA,UAAA,KAAI,GAAG,WAAW;YACtE;AAEA,mBAAO,CAAC,UAAU,QAAQ,GAAG;UAC/B;AAEA,mBAAS,iBAAc;AACrB,gBAAI,OAAO,aAAa,YAAY,EAAE,qBAAqB,WAAW,UAAU,OAAO;AACrF,kBAAI,CAAC,UAAU;AAAQ,sBAAM,IAAI,MAAM,6BAA6B;AACpE,sBAAO,GAAA,UAAA,WAAU,MAAM,IAAI,IAAI;YACjC;AACA,mBAAO,OAAO,UAAU,cAAa,GAAA,UAAA,KAAI,MAAM,IAAI,IAAI,OAAM,GAAA,UAAA,KAAI,MAAM,SAAS,IAAI;UACtF;QACF;MACF;;AAGF,YAAA,UAAe;;;;;;;;;ACtHf,QAAA,WAAA;AAEA,QAAM,SAAqB,CAAC,SAAA,OAAa;AAEzC,YAAA,UAAe;;;;;;;;;;ACHF,YAAA,qBAAiC;MAC5C;MACA;MACA;MACA;MACA;MACA;MACA;;AAGW,YAAA,oBAAgC;MAC3C;MACA;MACA;;;;;;;;;;ACdF,QAAA,SAAA;AACA,QAAA,eAAA;AACA,QAAA,eAAA;AACA,QAAA,WAAA;AACA,QAAA,aAAA;AAEA,QAAM,qBAAmC;MACvC,OAAA;MACA,aAAA;OACA,GAAA,aAAA,SAAuB;MACvB,SAAA;MACA,WAAA;MACA,WAAA;;AAGF,YAAA,UAAe;;;;;;;;;;ACdf,QAAY;AAAZ,KAAA,SAAYC,aAAU;AACpB,MAAAA,YAAA,KAAA,IAAA;AACA,MAAAA,YAAA,SAAA,IAAA;IACF,GAHY,eAAU,QAAA,aAAV,aAAU,CAAA,EAAA;;;;;;;;;ACAtB,QAAA,YAAA;AACA,QAAA,UAAA;AACA,QAAA,YAAA;AACA,QAAA,cAAA;AACA,QAAA,SAAA;AAIA,QAAM,QAAgC;MACpC,SAAS,CAAC,EAAC,QAAQ,EAAC,YAAY,QAAO,EAAC,MACtC,eAAe,QAAA,WAAW,MACtB,QAAQ,OAAO,qBACf,iBAAiB,OAAO;MAC9B,QAAQ,CAAC,EAAC,QAAQ,EAAC,YAAY,KAAK,QAAO,EAAC,OAC1C,GAAA,UAAA,aAAY,UAAU,UAAU,OAAO,eAAe,GAAG;;AAG7D,QAAM,MAA6B;MACjC,SAAS;MACT,MAAM;MACN,YAAY;MACZ;MACA,KAAK,KAAe;AAClB,cAAM,EAAC,KAAK,MAAM,QAAQ,cAAc,GAAE,IAAI;AAC9C,cAAM,EAAC,MAAK,IAAI;AAChB,YAAI,CAAC,GAAG,KAAK,eAAe;AAC1B,gBAAM,IAAI,MAAM,8CAA8C;QAChE;AACA,cAAM,UAAU,OAAO;AACvB,YAAI,OAAO,WAAW;AAAU,gBAAM,IAAI,MAAM,sCAAsC;AACtF,YAAI,OAAO;AAAS,gBAAM,IAAI,MAAM,yCAAyC;AAC7E,YAAI,CAAC;AAAO,gBAAM,IAAI,MAAM,uCAAuC;AACnE,cAAM,QAAQ,IAAI,IAAI,SAAS,KAAK;AACpC,cAAM,MAAM,IAAI,MAAM,QAAO,GAAA,UAAA,KAAI,IAAI,IAAG,GAAA,UAAA,aAAY,OAAO,CAAC,EAAE;AAC9D,YAAI,IACF,GAAA,UAAA,YAAW,GAAG,gBACd,MAAM,gBAAe,GACrB,MAAM,IAAI,MAAM,OAAO,EAAC,YAAY,QAAA,WAAW,KAAK,KAAK,QAAO,CAAC,CAAC;AAEpE,YAAI,GAAG,KAAK;AAEZ,iBAAS,kBAAe;AACtB,gBAAM,UAAU,WAAU;AAC1B,cAAI,GAAG,KAAK;AACZ,qBAAW,YAAY,SAAS;AAC9B,gBAAI,QAAO,GAAA,UAAA,KAAI,GAAG,QAAQ,QAAQ,EAAE;AACpC,gBAAI,OAAO,OAAO,eAAe,QAAQ,QAAQ,CAAC,CAAC;UACrD;AACA,cAAI,KAAI;AACR,cAAI,MAAM,OAAO,EAAC,YAAY,QAAA,WAAW,SAAS,KAAK,QAAO,CAAC;AAC/D,cAAI,MAAK;QACX;AAEA,iBAAS,eAAe,YAAmB;AACzC,gBAAM,SAAS,IAAI,KAAK,OAAO;AAC/B,gBAAM,SAAS,IAAI,UAAU,EAAC,SAAS,SAAS,WAAU,GAAG,MAAM;AACnE,cAAI,eAAe,QAAQ,UAAA,IAAI;AAC/B,iBAAO;QACT;AAEA,iBAAS,aAAU;;AACjB,gBAAM,eAAyC,CAAA;AAC/C,gBAAM,cAAc,YAAY,YAAY;AAC5C,cAAI,cAAc;AAClB,mBAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACrC,gBAAI,MAAM,MAAM,CAAC;AACjB,iBAAI,QAAG,QAAH,QAAG,SAAA,SAAH,IAAK,SAAQ,EAAC,GAAA,OAAA,sBAAqB,KAAK,GAAG,KAAK,KAAK,GAAG;AAC1D,oBAAM,MAAM,IAAI;AAChB,oBAAM,UAAA,WAAW,KAAK,GAAG,MAAM,GAAG,UAAU,MAAM,GAAG,QAAQ,GAAG;AAChE,kBAAI,eAAe,UAAA;AAAW,sBAAM,IAAI;AACxC,kBAAI,QAAQ;AAAW,sBAAM,IAAI,YAAA,QAAgB,GAAG,KAAK,aAAa,GAAG,QAAQ,GAAG;YACtF;AACA,kBAAM,WAAU,KAAA,QAAG,QAAH,QAAG,SAAA,SAAH,IAAK,gBAAU,QAAA,OAAA,SAAA,SAAA,GAAG,OAAO;AACzC,gBAAI,OAAO,WAAW,UAAU;AAC9B,oBAAM,IAAI,MACR,iFAAiF,OAAO,GAAG;YAE/F;AACA,0BAAc,gBAAgB,eAAe,YAAY,GAAG;AAC5D,wBAAY,SAAS,CAAC;UACxB;AACA,cAAI,CAAC;AAAa,kBAAM,IAAI,MAAM,mBAAmB,OAAO,oBAAoB;AAChF,iBAAO;AAEP,mBAAS,YAAY,EAAC,SAAQ,GAAkB;AAC9C,mBAAO,MAAM,QAAQ,QAAQ,KAAK,SAAS,SAAS,OAAO;UAC7D;AAEA,mBAAS,YAAY,KAAsB,GAAS;AAClD,gBAAI,IAAI,OAAO;AACb,yBAAW,IAAI,OAAO,CAAC;YACzB,WAAW,IAAI,MAAM;AACnB,yBAAW,YAAY,IAAI,MAAM;AAC/B,2BAAW,UAAU,CAAC;cACxB;YACF,OAAO;AACL,oBAAM,IAAI,MAAM,8BAA8B,OAAO,+BAA+B;YACtF;UACF;AAEA,mBAAS,WAAW,UAAmB,GAAS;AAC9C,gBAAI,OAAO,YAAY,YAAY,YAAY,cAAc;AAC3D,oBAAM,IAAI,MAAM,mBAAmB,OAAO,iCAAiC;YAC7E;AACA,yBAAa,QAAQ,IAAI;UAC3B;QACF;MACF;;AAGF,YAAA,UAAe;;;;;AChHf;AAAA;AAAA;AAAA,MACE,SAAW;AAAA,MACX,KAAO;AAAA,MACP,OAAS;AAAA,MACT,aAAe;AAAA,QACb,aAAe;AAAA,UACb,MAAQ;AAAA,UACR,UAAY;AAAA,UACZ,OAAS,EAAC,MAAQ,IAAG;AAAA,QACvB;AAAA,QACA,oBAAsB;AAAA,UACpB,MAAQ;AAAA,UACR,SAAW;AAAA,QACb;AAAA,QACA,4BAA8B;AAAA,UAC5B,OAAS,CAAC,EAAC,MAAQ,mCAAkC,GAAG,EAAC,SAAW,EAAC,CAAC;AAAA,QACxE;AAAA,QACA,aAAe;AAAA,UACb,MAAQ,CAAC,SAAS,WAAW,WAAW,QAAQ,UAAU,UAAU,QAAQ;AAAA,QAC9E;AAAA,QACA,aAAe;AAAA,UACb,MAAQ;AAAA,UACR,OAAS,EAAC,MAAQ,SAAQ;AAAA,UAC1B,aAAe;AAAA,UACf,SAAW,CAAC;AAAA,QACd;AAAA,MACF;AAAA,MACA,MAAQ,CAAC,UAAU,SAAS;AAAA,MAC5B,YAAc;AAAA,QACZ,KAAO;AAAA,UACL,MAAQ;AAAA,UACR,QAAU;AAAA,QACZ;AAAA,QACA,SAAW;AAAA,UACT,MAAQ;AAAA,UACR,QAAU;AAAA,QACZ;AAAA,QACA,MAAQ;AAAA,UACN,MAAQ;AAAA,UACR,QAAU;AAAA,QACZ;AAAA,QACA,UAAY;AAAA,UACV,MAAQ;AAAA,QACV;AAAA,QACA,OAAS;AAAA,UACP,MAAQ;AAAA,QACV;AAAA,QACA,aAAe;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,QACA,SAAW;AAAA,QACX,UAAY;AAAA,UACV,MAAQ;AAAA,UACR,SAAW;AAAA,QACb;AAAA,QACA,UAAY;AAAA,UACV,MAAQ;AAAA,UACR,OAAS;AAAA,QACX;AAAA,QACA,YAAc;AAAA,UACZ,MAAQ;AAAA,UACR,kBAAoB;AAAA,QACtB;AAAA,QACA,SAAW;AAAA,UACT,MAAQ;AAAA,QACV;AAAA,QACA,kBAAoB;AAAA,UAClB,MAAQ;AAAA,QACV;AAAA,QACA,SAAW;AAAA,UACT,MAAQ;AAAA,QACV;AAAA,QACA,kBAAoB;AAAA,UAClB,MAAQ;AAAA,QACV;AAAA,QACA,WAAa,EAAC,MAAQ,mCAAkC;AAAA,QACxD,WAAa,EAAC,MAAQ,2CAA0C;AAAA,QAChE,SAAW;AAAA,UACT,MAAQ;AAAA,UACR,QAAU;AAAA,QACZ;AAAA,QACA,iBAAmB,EAAC,MAAQ,IAAG;AAAA,QAC/B,OAAS;AAAA,UACP,OAAS,CAAC,EAAC,MAAQ,IAAG,GAAG,EAAC,MAAQ,4BAA2B,CAAC;AAAA,UAC9D,SAAW;AAAA,QACb;AAAA,QACA,UAAY,EAAC,MAAQ,mCAAkC;AAAA,QACvD,UAAY,EAAC,MAAQ,2CAA0C;AAAA,QAC/D,aAAe;AAAA,UACb,MAAQ;AAAA,UACR,SAAW;AAAA,QACb;AAAA,QACA,UAAY,EAAC,MAAQ,IAAG;AAAA,QACxB,eAAiB,EAAC,MAAQ,mCAAkC;AAAA,QAC5D,eAAiB,EAAC,MAAQ,2CAA0C;AAAA,QACpE,UAAY,EAAC,MAAQ,4BAA2B;AAAA,QAChD,sBAAwB,EAAC,MAAQ,IAAG;AAAA,QACpC,aAAe;AAAA,UACb,MAAQ;AAAA,UACR,sBAAwB,EAAC,MAAQ,IAAG;AAAA,UACpC,SAAW,CAAC;AAAA,QACd;AAAA,QACA,YAAc;AAAA,UACZ,MAAQ;AAAA,UACR,sBAAwB,EAAC,MAAQ,IAAG;AAAA,UACpC,SAAW,CAAC;AAAA,QACd;AAAA,QACA,mBAAqB;AAAA,UACnB,MAAQ;AAAA,UACR,sBAAwB,EAAC,MAAQ,IAAG;AAAA,UACpC,eAAiB,EAAC,QAAU,QAAO;AAAA,UACnC,SAAW,CAAC;AAAA,QACd;AAAA,QACA,cAAgB;AAAA,UACd,MAAQ;AAAA,UACR,sBAAwB;AAAA,YACtB,OAAS,CAAC,EAAC,MAAQ,IAAG,GAAG,EAAC,MAAQ,4BAA2B,CAAC;AAAA,UAChE;AAAA,QACF;AAAA,QACA,eAAiB,EAAC,MAAQ,IAAG;AAAA,QAC7B,OAAS;AAAA,QACT,MAAQ;AAAA,UACN,MAAQ;AAAA,UACR,OAAS;AAAA,UACT,UAAY;AAAA,UACZ,aAAe;AAAA,QACjB;AAAA,QACA,MAAQ;AAAA,UACN,OAAS;AAAA,YACP,EAAC,MAAQ,4BAA2B;AAAA,YACpC;AAAA,cACE,MAAQ;AAAA,cACR,OAAS,EAAC,MAAQ,4BAA2B;AAAA,cAC7C,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,UACF;AAAA,QACF;AAAA,QACA,QAAU,EAAC,MAAQ,SAAQ;AAAA,QAC3B,kBAAoB,EAAC,MAAQ,SAAQ;AAAA,QACrC,iBAAmB,EAAC,MAAQ,SAAQ;AAAA,QACpC,IAAM,EAAC,MAAQ,IAAG;AAAA,QAClB,MAAQ,EAAC,MAAQ,IAAG;AAAA,QACpB,MAAQ,EAAC,MAAQ,IAAG;AAAA,QACpB,OAAS,EAAC,MAAQ,4BAA2B;AAAA,QAC7C,OAAS,EAAC,MAAQ,4BAA2B;AAAA,QAC7C,OAAS,EAAC,MAAQ,4BAA2B;AAAA,QAC7C,KAAO,EAAC,MAAQ,IAAG;AAAA,MACrB;AAAA,MACA,SAAW;AAAA,IACb;AAAA;AAAA;;;;;;;;ACrJA,QAAA,SAAA;AACA,QAAA,WAAA;AACA,QAAA,kBAAA;AACA,QAAA,mBAAA;AAEA,QAAM,oBAAoB,CAAC,aAAa;AAExC,QAAM,iBAAiB;AAEvB,QAAaC,OAAb,cAAyB,OAAA,QAAO;MAC9B,mBAAgB;AACd,cAAM,iBAAgB;AACtB,iBAAA,QAAmB,QAAQ,CAAC,MAAM,KAAK,cAAc,CAAC,CAAC;AACvD,YAAI,KAAK,KAAK;AAAe,eAAK,WAAW,gBAAA,OAAa;MAC5D;MAEA,wBAAqB;AACnB,cAAM,sBAAqB;AAC3B,YAAI,CAAC,KAAK,KAAK;AAAM;AACrB,cAAM,aAAa,KAAK,KAAK,QACzB,KAAK,gBAAgB,kBAAkB,iBAAiB,IACxD;AACJ,aAAK,cAAc,YAAY,gBAAgB,KAAK;AACpD,aAAK,KAAK,+BAA+B,IAAI;MAC/C;MAEA,cAAW;AACT,eAAQ,KAAK,KAAK,cAChB,MAAM,YAAW,MAAO,KAAK,UAAU,cAAc,IAAI,iBAAiB;MAC9E;;AApBF,YAAA,MAAAA;AAuBA,WAAO,UAAU,UAAUA;AAC3B,WAAO,QAAQ,MAAMA;AACrB,WAAO,eAAe,SAAS,cAAc,EAAC,OAAO,KAAI,CAAC;AAE1D,YAAA,UAAeA;AA0Bf,QAAA,aAAA;AAAQ,WAAA,eAAA,SAAA,cAAA,EAAA,YAAA,MAAA,KAAA,WAAA;AAAA,aAAA,WAAA;IAAU,EAAA,CAAA;AAIlB,QAAA,YAAA;AAAQ,WAAA,eAAA,SAAA,KAAA,EAAA,YAAA,MAAA,KAAA,WAAA;AAAA,aAAA,UAAA;IAAC,EAAA,CAAA;AAAE,WAAA,eAAA,SAAA,OAAA,EAAA,YAAA,MAAA,KAAA,WAAA;AAAA,aAAA,UAAA;IAAG,EAAA,CAAA;AAAE,WAAA,eAAA,SAAA,aAAA,EAAA,YAAA,MAAA,KAAA,WAAA;AAAA,aAAA,UAAA;IAAS,EAAA,CAAA;AAAE,WAAA,eAAA,SAAA,OAAA,EAAA,YAAA,MAAA,KAAA,WAAA;AAAA,aAAA,UAAA;IAAG,EAAA,CAAA;AAAE,WAAA,eAAA,SAAA,QAAA,EAAA,YAAA,MAAA,KAAA,WAAA;AAAA,aAAA,UAAA;IAAI,EAAA,CAAA;AAAQ,WAAA,eAAA,SAAA,WAAA,EAAA,YAAA,MAAA,KAAA,WAAA;AAAA,aAAA,UAAA;IAAO,EAAA,CAAA;AACnD,QAAA,qBAAA;AAAQ,WAAA,eAAA,SAAA,mBAAA,EAAA,YAAA,MAAA,KAAA,WAAA;AAAA,aAAA,mBAAA;IAAO,EAAA,CAAA;AACf,QAAA,cAAA;AAAQ,WAAA,eAAA,SAAA,mBAAA,EAAA,YAAA,MAAA,KAAA,WAAA;AAAA,aAAA,YAAA;IAAO,EAAA,CAAA;;;;;ACrEf,SAAS,SAAS;AAMX,IAAM,kBAAwC,EAAE;AAAA,EAAK,MAC1D,EAAE,MAAM;AAAA,IACN,EAAE,OAAO;AAAA,IACT,EAAE,OAAO,EAAE,OAAO;AAAA,IAClB,EAAE,QAAQ;AAAA,IACV,EAAE,KAAK;AAAA,IACP,EAAE,MAAM,eAAe;AAAA,IACvB,EAAE,OAAO,EAAE,OAAO,GAAG,eAAe;AAAA,EACtC,CAAC;AACH;AAEO,IAAM,mBAAmB,EAAE,OAAO,EAAE,OAAO,GAAG,eAAe;AAC7D,IAAM,2BAA2B,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AACjE,IAAM,wBAAwB,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AACxD,IAAM,oBAAoB,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,KAAK,CAAC;AAC9D,IAAM,eAAe,EAAE,OAAO,EAAE,MAAM,mBAAmB,gCAAgC;AAEzF,IAAM,4BAA4B,EACtC,OAAO,EACP,WAAW,GAAG,EACd,IAAI,GAAG,EACP;AAAA,EACC,CAAC,SAAS;AACR,UAAM,cAAc,KAAK,MAAM,GAAG,EAAE,MAAM,CAAC;AAC3C,UAAM,WAAW,YAAY,IAAI,CAAC,YAAY,QAAQ,QAAQ,OAAO,GAAG,EAAE,QAAQ,OAAO,GAAG,CAAC;AAC7F,WACE,SAAS,MAAM,CAAC,YAAY,QAAQ,SAAS,KAAK,CAAC,CAAC,aAAa,aAAa,aAAa,EAAE,SAAS,OAAO,CAAC,KAC9G,CAAC,YAAY,KAAK,CAAC,YAAY,aAAa,KAAK,OAAO,CAAC;AAAA,EAE7D;AAAA,EACA,EAAE,SAAS,8DAA8D;AAC3E;AAEK,IAAM,6BAA6B,EACvC,MAAM,yBAAyB,EAC/B,IAAI,EAAE,EACN,YAAY,CAAC,OAAO,YAAY;AAC/B,QAAM,WAAW,CAAC,SAAiB,KAAK,MAAM,GAAG,EAAE,MAAM,CAAC;AAC1D,WAAS,QAAQ,GAAG,QAAQ,MAAM,QAAQ,SAAS,GAAG;AACpD,UAAM,YAAY,SAAS,MAAM,KAAK,CAAE;AACxC,UAAM,WAAW,MAAM,UAAU,CAAC,OAAO,eAAe;AACtD,UAAI,cAAc,MAAO,QAAO;AAChC,YAAM,WAAW,SAAS,KAAK;AAC/B,YAAM,eAAe,KAAK,IAAI,SAAS,QAAQ,UAAU,MAAM;AAC/D,aAAO,SAAS,MAAM,GAAG,YAAY,EAAE,MAAM,CAAC,SAAS,iBAAiB,YAAY,UAAU,YAAY,CAAC;AAAA,IAC7G,CAAC;AACD,QAAI,YAAY,GAAG;AACjB,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,KAAK;AAAA,QACZ,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAAA,EACF;AACF,CAAC;AAEI,IAAM,yBAAyB,EACnC,OAAO,EACP,MAAM,wDAAwD,sCAAsC;AAEhG,IAAM,sBAAsB,EAAE,MAAM;AAAA,EACzC,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC;AAAA,EACvB,EACG,OAAO,wBAAwB,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,EACvD,OAAO,CAAC,UAAU,OAAO,KAAK,KAAK,EAAE,SAAS,GAAG,kDAAkD;AACxG,CAAC;AAEM,IAAM,yBAAyB,EACnC,OAAO;AAAA,EACN,IAAI;AAAA,EACJ,SAAS;AAAA,EACT,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EACxC,aAAa,EAAE,OAAO,EAAE,SAAS;AAAA,EACjC,QAAQ,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,OAAO,CAAC,EAAE,SAAS;AAAA,EAClD,WAAW,kBAAkB,SAAS;AAAA,EACtC,WAAW,kBAAkB,SAAS;AACxC,CAAC,EACA,OAAO;AAEH,IAAM,kBAAkB,EAC5B,OAAO;AAAA,EACN,MAAM;AAAA,EACN,IAAI;AAAA,EACJ,SAAS,EAAE,MAAM,CAAC,uBAAuB,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS;AAAA,EAC7E,WAAW,yBAAyB,SAAS;AAC/C,CAAC,EACA,OAAO;;;AC5FV,SAAS,KAAAC,UAAS;AAGX,IAAM,6BAA6BC,GACvC,OAAO;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,aAAa,oBAAoB,SAAS;AAAA,EAC1C,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,QAAQ,yBAAyB,SAAS;AAC5C,CAAC,EACA,OAAO;AAEH,IAAM,yBAAyBA,GACnC,OAAO;AAAA,EACN,UAAU;AAAA,EACV,MAAM;AAAA,EACN,iBAAiBA,GAAE,MAAM,wBAAwB,EAAE,QAAQ,CAAC,CAAC;AAC/D,CAAC,EACA,OAAO;AAEH,IAAM,8BAA8BA,GACxC,OAAO;AAAA,EACN,WAAW;AAAA,EACX,MAAM;AAAA,EACN,aAAa,oBAAoB,SAAS;AAAA,EAC1C,kBAAkBA,GAAE,KAAK,CAAC,WAAW,kBAAkB,aAAa,CAAC,EAAE,QAAQ,SAAS;AAAA,EACxF,qBAAqBA,GAAE,MAAM,wBAAwB,EAAE,QAAQ,CAAC,CAAC;AACnE,CAAC,EACA,OAAO,EACP,OAAO,CAAC,UAAU,MAAM,qBAAqB,aAAa,MAAM,oBAAoB,SAAS,GAAG;AAAA,EAC/F,SAAS;AAAA,EACT,MAAM,CAAC,qBAAqB;AAC9B,CAAC;AAEI,IAAM,iCAAiCA,GAC3C,OAAO;AAAA,EACN,UAAUA,GAAE,QAAQ,0BAA0B;AAAA,EAC9C,eAAe;AAAA,EACf,SAAS;AAAA,EACT,WAAW;AAAA,EACX,aAAaA,GAAE,MAAM,0BAA0B,EAAE,QAAQ,CAAC,CAAC;AAAA,EAC3D,mBAAmBA,GAAE,MAAM,sBAAsB,EAAE,QAAQ,CAAC,CAAC;AAAA,EAC7D,cAAcA,GAAE,MAAM,2BAA2B,EAAE,IAAI,CAAC;AAC1D,CAAC,EACA,OAAO;;;AC9CV,SAAS,KAAAC,UAAS;AAGX,IAAM,wBAAwBC,GAAE,KAAK,CAAC,QAAQ,MAAM,CAAC;AAGrD,IAAM,kBAAkB;AAExB,IAAM,qCAAqCA,GAAE,KAAK;AAAA,EACvD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAEM,IAAM,8BAA8BA,GACxC,OAAO;AAAA,EACN,QAAQA,GAAE,QAAQ;AAAA,EAClB,QAAQA,GAAE,QAAQ;AAAA,EAClB,OAAOA,GAAE,QAAQ;AAAA,EACjB,KAAKA,GAAE,QAAQ;AAAA,EACf,WAAWA,GAAE,QAAQ;AACvB,CAAC,EACA,OAAO;AAEH,IAAM,iCAAiCA,GAC3C,OAAO;AAAA,EACN,OAAOA,GAAE,MAAM,eAAe,EAAE,IAAI,CAAC;AACvC,CAAC,EACA,OAAO;AAEH,IAAM,0BAA0B,OAAO,OAAO;AAAA,EACnD,MAAM,4BAA4B,MAAM;AAAA,IACtC,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,KAAK;AAAA,IACL,WAAW;AAAA,EACb,CAAC;AAAA,EACD,MAAM,4BAA4B,MAAM;AAAA,IACtC,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,KAAK;AAAA,IACL,WAAW;AAAA,EACb,CAAC;AACH,CAAC;AAEM,SAAS,yBAAyB,MAAwC;AAC/E,SAAO,wBAAwB,IAAI;AACrC;AAEO,SAAS,uBAAuB,MAAiB,YAAmD;AACzG,SAAO,yBAAyB,IAAI,EAAE,UAAU;AAClD;AAEO,SAAS,8BACd,SACA,MACS;AACT,SAAO,SAAS,MAAM,SAAS,IAAI,KAAK;AAC1C;AAEO,IAAM,+BAA+BA,GAAE,KAAK;AAAA,EACjD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAEM,IAAM,iCAAiCA,GAC3C,OAAO;AAAA,EACN,MAAMA,GAAE,QAAQ,EAAE,QAAQ,IAAI;AAAA,EAC9B,WAAWA,GAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EACpC,MAAMA,GAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EAC/B,OAAOA,GAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EAChC,OAAOA,GAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EAChC,KAAKA,GAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EAC9B,OAAOA,GAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EAChC,YAAYA,GAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EACrC,QAAQA,GAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EACjC,UAAUA,GAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EACnC,WAAWA,GAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EACpC,OAAOA,GAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EAChC,QAAQA,GAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EACjC,MAAMA,GAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EAC/B,gBAAgBA,GAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EACzC,UAAUA,GAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EACnC,aAAaA,GAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EACtC,eAAeA,GAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EACxC,cAAcA,GAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EACvC,UAAUA,GAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EACnC,SAASA,GAAE,QAAQ,EAAE,QAAQ,KAAK;AACpC,CAAC,EACA,OAAO;AAMH,IAAM,sCAAsCA,GAAE,KAAK;AAAA,EACxD;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAEM,IAAM,qCAAqC,OAAO,OAAO;AAAA,EAC9D,MAAM,+BAA+B,MAAM,EAAE,MAAM,MAAM,OAAO,MAAM,KAAK,MAAM,QAAQ,MAAM,UAAU,MAAM,OAAO,MAAM,cAAc,MAAM,SAAS,KAAK,CAAC;AAAA,EAC/J,MAAM,+BAA+B,MAAM,EAAE,MAAM,MAAM,OAAO,MAAM,KAAK,MAAM,OAAO,MAAM,YAAY,MAAM,QAAQ,MAAM,UAAU,MAAM,WAAW,MAAM,OAAO,MAAM,QAAQ,MAAM,cAAc,MAAM,UAAU,MAAM,SAAS,KAAK,CAAC;AAC/O,CAAC;AAEM,SAAS,mCAAmC,MAA2C;AAC5F,SAAO,mCAAmC,IAAI;AAChD;AAEO,IAAM,oCAAoC,OAAO,OAAO;AAAA,EAC7D,MAAM,EAAE,YAAY,CAAC,SAAS,GAAG,cAAc,CAAC,EAAE;AAAA,EAClD,WAAW,EAAE,YAAY,CAAC,WAAW,GAAG,cAAc,CAAC,EAAE;AAAA,EACzD,MAAM,EAAE,YAAY,CAAC,MAAM,GAAG,cAAc,CAAC,EAAE;AAAA,EAC/C,OAAO,EAAE,YAAY,CAAC,MAAM,GAAG,cAAc,CAAC,EAAE;AAAA,EAChD,OAAO,EAAE,YAAY,CAAC,MAAM,GAAG,cAAc,CAAC,EAAE;AAAA,EAChD,KAAK,EAAE,YAAY,CAAC,MAAM,GAAG,cAAc,CAAC,EAAE;AAAA,EAC9C,OAAO,EAAE,YAAY,CAAC,QAAQ,UAAU,GAAG,cAAc,CAAC,EAAE;AAAA,EAC5D,YAAY,EAAE,YAAY,CAAC,QAAQ,QAAQ,gBAAgB,GAAG,cAAc,CAAC,EAAE;AAAA,EAC/E,QAAQ,EAAE,YAAY,CAAC,MAAM,GAAG,cAAc,CAAC,EAAE;AAAA,EACjD,UAAU,EAAE,YAAY,CAAC,UAAU,GAAG,cAAc,CAAC,UAAU,EAAE;AAAA,EACjE,WAAW,EAAE,YAAY,CAAC,UAAU,GAAG,cAAc,CAAC,EAAE;AAAA,EACxD,OAAO,EAAE,YAAY,CAAC,OAAO,GAAG,cAAc,CAAC,EAAE;AAAA,EACjD,QAAQ,EAAE,YAAY,CAAC,QAAQ,GAAG,cAAc,CAAC,QAAQ,EAAE;AAAA,EAC3D,MAAM,EAAE,YAAY,CAAC,MAAM,GAAG,cAAc,CAAC,EAAE;AAAA,EAC/C,gBAAgB,EAAE,YAAY,CAAC,gBAAgB,GAAG,cAAc,CAAC,EAAE;AAAA,EACnE,UAAU,EAAE,YAAY,CAAC,UAAU,GAAG,cAAc,CAAC,EAAE;AAAA,EACvD,aAAa,EAAE,YAAY,CAAC,aAAa,GAAG,cAAc,CAAC,EAAE;AAAA,EAC7D,eAAe,EAAE,YAAY,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE;AAAA,EACxD,cAAc,EAAE,YAAY,CAAC,GAAG,cAAc,CAAC,gBAAgB,EAAE;AAAA,EACjE,UAAU,EAAE,YAAY,CAAC,OAAO,GAAG,cAAc,CAAC,OAAO,EAAE;AAAA,EAC3D,SAAS,EAAE,YAAY,CAAC,SAAS,GAAG,cAAc,CAAC,eAAe,EAAE;AACtE,CAAU;AAEH,SAAS,wCACd,cACA,UAC0B;AAC1B,QAAM,aAAa,IAAI,IAAI,SAAS,cAAc,CAAC,CAAC;AACpD,QAAM,eAAe,IAAI,IAAI,SAAS,gBAAgB,CAAC,CAAC;AACxD,SAAO,6BAA6B,QAAQ,OAAO,CAAC,eAAe;AACjE,QAAI,CAAC,aAAa,UAAU,EAAG,QAAO;AACtC,UAAM,cAAc,kCAAkC,UAAU;AAChE,WAAO,CAAC,YAAY,WAAW,KAAK,CAAC,cAAc,WAAW,IAAI,SAAS,CAAC,KAAK,CAAC,YAAY,aAAa,KAAK,CAAC,gBAAgB,aAAa,IAAI,WAAW,CAAC;AAAA,EAChK,CAAC;AACH;AAEO,IAAM,6BAA6BA,GACvC,OAAO;AAAA,EACN,MAAM;AAAA,EACN,SAASA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC;AAAA,EAChC,cAAc;AAAA,EACd,mBAAmB,oCAAoC,SAAS;AAClE,CAAC,EACA,OAAO;AAEH,IAAM,2BAA2BA,GAAE,KAAK;AAAA,EAC7C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAEM,IAAM,mCAAmCA,GAAE,KAAK,CAAC,WAAW,aAAa,QAAQ,CAAC;AAElF,IAAM,4BAA4BA,GACtC,OAAO;AAAA,EACN,oBAAoB;AAAA,EACpB,qBAAqB;AAAA,EACrB,aAAa;AACf,CAAC,EACA,OAAO;AAEH,IAAM,uCAAuCA,GACjD,OAAO;AAAA,EACN,UAAUA,GAAE,KAAK,CAAC,0BAA0B,SAAS,CAAC;AAAA,EACtD,aAAaA,GAAE,KAAK,CAAC,WAAW,SAAS,CAAC;AAAA,EAC1C,WAAWA,GAAE,KAAK,CAAC,WAAW,SAAS,CAAC;AAAA,EACxC,aAAaA,GAAE,KAAK,CAAC,WAAW,SAAS,CAAC;AAAA,EAC1C,aAAaA,GAAE,KAAK,CAAC,WAAW,SAAS,CAAC;AAC5C,CAAC,EACA,OAAO;AAEH,IAAM,4CAA4CA,GACtD,OAAO;AAAA,EACN,WAAW;AAAA,EACX,MAAMA,GAAE,KAAK,CAAC,QAAQ,WAAW,CAAC;AAAA,EAClC,OAAOA,GAAE,MAAM,eAAe,EAAE,IAAI,CAAC;AACvC,CAAC,EACA,OAAO;AAEH,IAAM,wCAAwCA,GAClD,OAAO;AAAA,EACN,WAAW;AAAA,EACX,MAAMA,GAAE,KAAK,CAAC,cAAc,eAAe,aAAa,CAAC;AAAA,EACzD,QAAQA,GAAE,KAAK,CAAC,YAAY,eAAe,aAAa,CAAC;AAC3D,CAAC,EACA,OAAO;AAEH,IAAM,qCAAqCA,GAC/C,OAAO;AAAA,EACN,gBAAgB;AAAA,EAChB,iBAAiB;AAAA,EACjB,aAAa;AAAA,EACb,UAAUA,GAAE,MAAM,yCAAyC,EAAE,IAAI,EAAE;AAAA,EACnE,SAASA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EAC3C,sBAAsBA,GAAE,MAAM,qCAAqC,EAAE,QAAQ,CAAC,CAAC;AAAA,EAC/E,YAAY;AACd,CAAC,EACA,OAAO;AAEH,IAAM,wCAAwCA,GAClD,OAAO;AAAA,EACN,UAAUA,GAAE,QAAQ,iCAAiC;AAAA,EACrD,gBAAgB;AAAA,EAChB,iBAAiB;AAAA,EACjB,aAAa;AAAA,EACb,aAAa;AACf,CAAC,EACA,OAAO;AAEH,IAAM,uCAAuCA,GACjD,OAAO;AAAA,EACN,UAAUA,GAAE,QAAQ,gCAAgC;AAAA,EACpD,gBAAgB;AAAA,EAChB,UAAU;AAAA,EACV,SAAS;AAAA,EACT,aAAa;AAAA,EACb,sBAAsBA,GAAE,MAAM,qCAAqC,EAAE,QAAQ,CAAC,CAAC;AAAA,EAC/E,WAAWA,GAAE,QAAQ;AAAA,EACrB,WAAW;AACb,CAAC,EACA,OAAO;AAEH,IAAM,iCAAiCA,GAC3C,OAAO;AAAA,EACN,UAAU;AAAA,EACV,UAAU;AAAA,EACV,iBAAiB;AAAA,EACjB,OAAO;AAAA,EACP,SAAS,0BAA0B,SAAS;AAAA,EAC5C,WAAW;AACb,CAAC,EACA,OAAO;AAEH,IAAM,wBAAwBA,GAClC,OAAO;AAAA,EACN,OAAO;AAAA,EACP,WAAW;AAAA,EACX,iBAAiB;AAAA,EACjB,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,qBAAqB,kBAAkB,SAAS;AAAA,EAChD,WAAW,kBAAkB,SAAS;AAAA,EACtC,aAAa,kBAAkB,SAAS;AAAA,EACxC,UAAU,kBAAkB,SAAS;AAAA,EACrC,YAAYA,GAAE,OAAO,EAAE,YAAY,EAAE,SAAS;AAChD,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,QAAM,qBAAqB,CAAC,MAAM,WAAW,MAAM,aAAa,MAAM,QAAQ,EAAE,OAAO,OAAO;AAC9F,MAAI,mBAAmB,SAAS,GAAG;AACjC,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,QAAQ;AAAA,MACf,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,QAAM,oBACJ,MAAM,WAAW,YACb,MAAM,YACN,MAAM,WAAW,cACf,MAAM,cACN,MAAM,WAAW,WACf,MAAM,WACN;AACV,MAAI,iCAAiC,UAAU,MAAM,MAAM,EAAE,WAAW,CAAC,mBAAmB;AAC1F,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,MAAM,WAAW,YAAY,cAAc,MAAM,WAAW,cAAc,gBAAgB,UAAU;AAAA,MAC3G,SAAS,cAAc,MAAM,MAAM;AAAA,IACrC,CAAC;AAAA,EACH;AACA,MAAI,CAAC,iCAAiC,UAAU,MAAM,MAAM,EAAE,WAAW,mBAAmB,SAAS,GAAG;AACtG,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,QAAQ;AAAA,MACf,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,OAAK,MAAM,WAAW,cAAc,MAAM,WAAW,cAAc,CAAC,MAAM,qBAAqB;AAC7F,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,qBAAqB;AAAA,MAC5B,SAAS,cAAc,MAAM,MAAM;AAAA,IACrC,CAAC;AAAA,EACH;AACA,MAAI,CAAC,6BAA6B,MAAM,MAAM,KAAK,MAAM,eAAe,QAAW;AACjF,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,YAAY;AAAA,MACnB,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,MAAI,6BAA6B,MAAM,MAAM,KAAK,MAAM,eAAe,QAAW;AAChF,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,YAAY;AAAA,MACnB,SAAS,uBAAuB,MAAM,MAAM;AAAA,IAC9C,CAAC;AAAA,EACH;AACF,CAAC;AAEI,IAAM,gCAAgCA,GAAE,KAAK;AAAA,EAClD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAED,IAAM,kCAAkCA,GACrC,OAAO;AAAA,EACN,UAAUA,GAAE,QAAQ,qBAAqB;AAAA,EACzC,WAAW;AAAA,EACX,WAAW;AAAA,EACX,OAAO,yBAAyB,SAAS;AAAA,EACzC,gBAAgB;AAAA,EAChB,kBAAkBA,GAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE;AAAA,EACzC,UAAU;AACZ,CAAC,EACA,OAAO;AAEV,IAAM,iBAAiB,CAA4D,aAA0B,YAC3G,gCAAgC,OAAO;AAAA,EACrC,aAAaA,GAAE,QAAQ,WAAW;AAAA,EAClC,SAASA,GAAE,OAAO,OAAO,EAAE,OAAO;AACpC,CAAC,EAAE,OAAO;AAEL,IAAM,4BAA4BA,GAAE,mBAAmB,eAAe;AAAA,EAC3E,eAAe,QAAQ;AAAA,IACrB,QAAQA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EAC5C,CAAC;AAAA,EACD,eAAe,UAAU;AAAA,IACvB,eAAe,yBAAyB,SAAS;AAAA,EACnD,CAAC;AAAA,EACD,eAAe,SAAS;AAAA,IACtB,eAAe;AAAA,EACjB,CAAC;AAAA,EACD,eAAe,iBAAiB;AAAA,IAC9B,eAAe;AAAA,IACf,aAAa;AAAA,EACf,CAAC;AAAA,EACD,eAAe,YAAY;AAAA,IACzB,YAAY;AAAA,IACZ,UAAUA,GAAE,KAAK,CAAC,YAAY,UAAU,CAAC;AAAA,IACzC,QAAQA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EAC5C,CAAC;AAAA,EACD,eAAe,QAAQ;AAAA,IACrB,gBAAgB;AAAA,IAChB,iBAAiB;AAAA,IACjB,aAAa;AAAA,IACb,aAAa;AAAA,EACf,CAAC;AAAA,EACD,eAAe,kBAAkB;AAAA,IAC/B,gBAAgB;AAAA,IAChB,iBAAiB;AAAA,IACjB,aAAa;AAAA,IACb,kBAAkBA,GAAE,MAAM,eAAe,EAAE,IAAI,CAAC;AAAA,IAChD,aAAa;AAAA,EACf,CAAC;AAAA,EACD,eAAe,SAAS;AAAA,IACtB,aAAa;AAAA,IACb,MAAMA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC;AAAA,EAC/B,CAAC;AACH,CAAC,EAAE,YAAY,CAAC,OAAO,YAAY;AACjC,MAAI,MAAM,gBAAgB,WAAW,MAAM,UAAU,MAAM,QAAQ,aAAa;AAC9E,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,WAAW,aAAa;AAAA,MAC/B,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,MAAI,MAAM,gBAAgB,mBAAmB,MAAM,UAAU,MAAM,QAAQ,aAAa;AACtF,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,WAAW,aAAa;AAAA,MAC/B,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACF,CAAC;AAEM,IAAM,oCAAoC,0BAA0B;AAAA,EACzEA,GAAE,OAAO,EAAE,OAAO,yBAAyB,CAAC;AAC9C;AAEO,IAAM,qCAAqCA,GAAE,KAAK;AAAA,EACvD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAEM,IAAM,kCAAkCA,GAC5C,OAAO;AAAA,EACN,UAAUA,GAAE,QAAQ,2BAA2B;AAAA,EAC/C,WAAW;AAAA,EACX,WAAW;AAAA,EACX,OAAO,yBAAyB,SAAS;AAAA,EACzC,gBAAgB;AAAA,EAChB,SAASA,GAAE,KAAK,CAAC,YAAY,aAAa,YAAY,QAAQ,CAAC;AAAA,EAC/D,eAAe;AAAA,EACf,kBAAkBA,GAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS;AAAA,EAC1D,gBAAgBA,GAAE,MAAM,wBAAwB,EAAE,QAAQ,CAAC,CAAC;AAAA,EAC5D,WAAWA,GACR,OAAO;AAAA,IACN,SAAS;AAAA,IACT,cAAc;AAAA,EAChB,CAAC,EACA,OAAO,EACP,SAAS;AAAA,EACZ,aAAaA,GAAE,KAAK,CAAC,aAAa,WAAW,CAAC,EAAE,SAAS;AAAA,EACzD,OAAOA,GACJ,OAAO;AAAA,IACN,MAAM;AAAA,IACN,SAASA,GAAE,OAAO;AAAA,IAClB,WAAWA,GAAE,QAAQ;AAAA,EACvB,CAAC,EACA,OAAO,EACP,SAAS;AAAA,EACZ,YAAY;AACd,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,QAAM,gBAAgB,MAAM,YAAY,cAAc,MAAM,YAAY;AACxE,MAAI,kBAAkB,QAAQ,MAAM,KAAK,GAAG;AAC1C,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,OAAO;AAAA,MACd,SAAS,gBACL,0DACA;AAAA,IACN,CAAC;AAAA,EACH;AACA,MAAI,MAAM,gBAAgB,eAAe,MAAM,kBAAkB,YAAY;AAC3E,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,aAAa;AAAA,MACpB,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,MAAI,MAAM,gBAAgB,eAAe,CAAC,6BAA6B,MAAM,aAAa,GAAG;AAC3F,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,aAAa;AAAA,MACpB,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,MAAI,MAAM,aAAa,CAAC,MAAM,UAAU,aAAa,SAAS;AAC5D,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,aAAa,gBAAgB,SAAS;AAAA,MAC7C,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,QAAM,YAAY,MAAM;AACxB,MAAI,WAAW,aAAa,SAAS;AACnC,UAAM,EAAE,QAAQ,IAAI;AACpB,UAAM,gBAAgB,UAAU,aAAa;AAC7C,QACE,QAAQ,uBAAuB,cAAc,sBAC7C,QAAQ,wBAAwB,cAAc,uBAC9C,QAAQ,gBAAgB,cAAc,aACtC;AACA,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,aAAa,gBAAgB,SAAS;AAAA,QAC7C,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAAA,EACF;AACA,MAAI,MAAM,aAAa,MAAM,UAAU,MAAM,UAAU,aAAa,OAAO;AACzE,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,aAAa,gBAAgB,OAAO;AAAA,MAC3C,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACF,CAAC;AAEH,IAAM,oCAA8H;AAAA,EAClI,MAAM,EAAE,QAAQ,YAAY,SAAS,YAAY,kBAAkB,WAAW;AAAA,EAC9E,QAAQ,EAAE,SAAS,UAAU,WAAW,UAAU,QAAQ,SAAS;AAAA,EACnE,OAAO,EAAE,QAAQ,SAAS;AAAA,EAC1B,iBAAiB,CAAC;AAAA,EAClB,UAAU,EAAE,kBAAkB,UAAU;AAAA,EACxC,MAAM,CAAC;AAAA,EACP,kBAAkB,CAAC;AAAA,EACnB,OAAO,CAAC;AACV;AAEO,IAAM,kCAAkCA,GAC5C,OAAO;AAAA,EACN,YAAY,6BAA6B,SAAS;AAAA,EAClD,iBAAiBA,GAAE,MAAM,wBAAwB,EAAE,IAAI,CAAC;AAAA,EACxD,eAAeA,GAAE,QAAQ;AAAA,EACzB,qBAAqBA,GAAE,KAAK,CAAC,cAAc,UAAU,CAAC;AAAA,EACtD,kBAAkBA,GAAE,QAAQ,iBAAiB;AAAA,EAC7C,cAAcA,GAAE,KAAK,CAAC,iBAAiB,YAAY,CAAC;AACtD,CAAC,EACA,OAAO;AAEV,IAAM,uBAAuB,CAAC,WAC5B,gCAAgC,MAAM,MAAM;AAEvC,IAAM,iCAAiC,OAAO,OAAO;AAAA,EAC1D,MAAM,qBAAqB;AAAA,IACzB,iBAAiB,CAAC,UAAU,WAAW,kBAAkB;AAAA,IACzD,eAAe;AAAA,IACf,qBAAqB;AAAA,IACrB,kBAAkB;AAAA,IAClB,cAAc;AAAA,EAChB,CAAC;AAAA,EACD,QAAQ,qBAAqB;AAAA,IAC3B,YAAY;AAAA,IACZ,iBAAiB,CAAC,WAAW,aAAa,QAAQ;AAAA,IAClD,eAAe;AAAA,IACf,qBAAqB;AAAA,IACrB,kBAAkB;AAAA,IAClB,cAAc;AAAA,EAChB,CAAC;AAAA,EACD,OAAO,qBAAqB;AAAA,IAC1B,iBAAiB,CAAC,QAAQ;AAAA,IAC1B,eAAe;AAAA,IACf,qBAAqB;AAAA,IACrB,kBAAkB;AAAA,IAClB,cAAc;AAAA,EAChB,CAAC;AAAA,EACD,iBAAiB,qBAAqB;AAAA,IACpC,YAAY;AAAA,IACZ,iBAAiB,CAAC,WAAW,aAAa,QAAQ;AAAA,IAClD,eAAe;AAAA,IACf,qBAAqB;AAAA,IACrB,kBAAkB;AAAA,IAClB,cAAc;AAAA,EAChB,CAAC;AAAA,EACD,UAAU,qBAAqB;AAAA,IAC7B,YAAY;AAAA,IACZ,iBAAiB,CAAC,kBAAkB;AAAA,IACpC,eAAe;AAAA,IACf,qBAAqB;AAAA,IACrB,kBAAkB;AAAA,IAClB,cAAc;AAAA,EAChB,CAAC;AAAA,EACD,MAAM,qBAAqB;AAAA,IACzB,YAAY;AAAA,IACZ,iBAAiB,yBAAyB;AAAA,IAC1C,eAAe;AAAA,IACf,qBAAqB;AAAA,IACrB,kBAAkB;AAAA,IAClB,cAAc;AAAA,EAChB,CAAC;AAAA,EACD,kBAAkB,qBAAqB;AAAA,IACrC,YAAY;AAAA,IACZ,iBAAiB,CAAC,WAAW,aAAa,QAAQ;AAAA,IAClD,eAAe;AAAA,IACf,qBAAqB;AAAA,IACrB,kBAAkB;AAAA,IAClB,cAAc;AAAA,EAChB,CAAC;AAAA,EACD,OAAO,qBAAqB;AAAA,IAC1B,YAAY;AAAA,IACZ,iBAAiB,CAAC,UAAU,SAAS;AAAA,IACrC,eAAe;AAAA,IACf,qBAAqB;AAAA,IACrB,kBAAkB;AAAA,IAClB,cAAc;AAAA,EAChB,CAAC;AACH,CAAC;AAEM,SAAS,6BAA6B,aAAiE;AAC5G,SAAO,+BAA+B,WAAW;AACnD;AAEO,SAAS,4BACd,QACA,aACS;AACT,SAAO,6BAA6B,WAAW,EAAE,gBAAgB,SAAS,MAAM;AAClF;AAEO,SAAS,qCACd,QACA,aACgC;AAChC,SAAO,kCAAkC,WAAW,EAAE,MAAM;AAC9D;AAEO,SAAS,6BAA6B,QAAkE;AAC7G,SAAO,iCAAiC,UAAU,MAAM,EAAE;AAC5D;AAEO,SAAS,8BAA8B,SAA6B,MAAmC;AAC5G,MAAI,YAAY,KAAM,QAAO;AAC7B,QAAM,cAAyE;AAAA,IAC7E,QAAQ,CAAC,WAAW,YAAY,QAAQ;AAAA,IACxC,SAAS,CAAC,oBAAoB,YAAY,aAAa,QAAQ;AAAA,IAC/D,kBAAkB,CAAC,WAAW,YAAY,QAAQ;AAAA,IAClD,UAAU,CAAC,WAAW,aAAa,QAAQ;AAAA,IAC3C,SAAS,CAAC;AAAA,IACV,WAAW,CAAC;AAAA,IACZ,QAAQ,CAAC;AAAA,EACX;AACA,SAAO,YAAY,OAAO,EAAE,SAAS,IAAI;AAC3C;AAEA,IAAM,gCAAgCA,GACnC,OAAO;AAAA,EACN,UAAUA,GAAE,QAAQ,mBAAmB;AAAA,EACvC,SAAS;AAAA,EACT,WAAW;AAAA,EACX,OAAO,yBAAyB,SAAS;AAAA,EACzC,iBAAiB,yBAAyB,SAAS;AAAA,EACnD,UAAUA,GAAE,OAAO,EAAE,IAAI,EAAE,YAAY;AAAA,EACvC,gBAAgB;AAAA,EAChB,YAAY;AACd,CAAC,EACA,OAAO;AAEV,IAAM,eAAe,CAA0D,WAAsB,YACnG,8BAA8B,OAAO;AAAA,EACnC,WAAWA,GAAE,QAAQ,SAAS;AAAA,EAC9B,SAASA,GAAE,OAAO,OAAO,EAAE,OAAO;AACpC,CAAC,EAAE,OAAO;AAEL,IAAM,0BAA0BA,GAAE,mBAAmB,aAAa;AAAA,EACvE,aAAa,WAAW;AAAA,IACtB,WAAW;AAAA,IACX,MAAMA,GAAE,KAAK,CAAC,QAAQ,aAAa,QAAQ,CAAC;AAAA,IAC5C,WAAWA,GAAE,KAAK,CAAC,UAAU,SAAS,CAAC,EAAE,QAAQ,QAAQ;AAAA,IACzD,OAAOA,GAAE,MAAM,eAAe;AAAA,IAC9B,QAAQA,GAAE,KAAK,CAAC,aAAa,aAAa,QAAQ,CAAC,EAAE,SAAS;AAAA,EAChE,CAAC;AAAA,EACD,aAAa,aAAa;AAAA,IACxB,aAAa;AAAA,IACb,MAAMA,GAAE,OAAO;AAAA,IACf,QAAQA,GAAE,KAAK,CAAC,aAAa,WAAW,CAAC;AAAA,EAC3C,CAAC;AAAA,EACD,aAAa,QAAQ;AAAA,IACnB,QAAQ;AAAA,IACR,OAAOA,GAAE,OAAO,EAAE,SAAS;AAAA,IAC3B,QAAQA,GAAE,KAAK,CAAC,WAAW,WAAW,aAAa,QAAQ,CAAC;AAAA,IAC5D,OAAOA,GAAE;AAAA,MACPA,GACG,OAAO;AAAA,QACN,IAAI;AAAA,QACJ,OAAOA,GAAE,OAAO;AAAA,QAChB,QAAQA,GAAE,KAAK,CAAC,WAAW,WAAW,aAAa,UAAU,SAAS,CAAC;AAAA,MACzE,CAAC,EACA,OAAO;AAAA,IACZ;AAAA,EACF,CAAC;AAAA,EACD,aAAa,QAAQ;AAAA,IACnB,QAAQ;AAAA,IACR,OAAOA,GAAE,OAAO;AAAA,IAChB,QAAQA,GAAE,KAAK,CAAC,WAAW,WAAW,aAAa,UAAU,SAAS,CAAC;AAAA,IACvE,QAAQA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC9B,CAAC;AAAA,EACD,aAAa,QAAQ;AAAA,IACnB,YAAY;AAAA,IACZ,UAAUA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC;AAAA,IACjC,QAAQA,GAAE,KAAK,CAAC,WAAW,WAAW,aAAa,UAAU,QAAQ,CAAC;AAAA,IACtE,OAAO,gBAAgB,SAAS;AAAA,IAChC,QAAQ,gBAAgB,SAAS;AAAA,IACjC,OAAOA,GAAE,OAAO,EAAE,SAAS;AAAA,IAC3B,WAAW,kBAAkB,SAAS;AAAA,IACtC,aAAa,kBAAkB,SAAS;AAAA,EAC1C,CAAC;AAAA,EACD,aAAa,YAAY;AAAA,IACvB,YAAY;AAAA,IACZ,YAAY,yBAAyB,SAAS;AAAA,IAC9C,QAAQA,GAAE,KAAK,CAAC,aAAa,YAAY,YAAY,SAAS,CAAC;AAAA,IAC/D,OAAOA,GAAE,OAAO;AAAA,IAChB,aAAaA,GAAE,OAAO,EAAE,SAAS;AAAA,IACjC,iBAAiB,gBAAgB,SAAS;AAAA,EAC5C,CAAC;AAAA,EACD,aAAa,UAAU;AAAA,IACrB,QAAQ;AAAA,IACR,QAAQA,GAAE,OAAO,EAAE,SAAS;AAAA,IAC5B,WAAW,kBAAkB,SAAS;AAAA,IACtC,qBAAqB,kBAAkB,SAAS;AAAA,IAChD,WAAW,kBAAkB,SAAS;AAAA,IACtC,aAAa,kBAAkB,SAAS;AAAA,IACxC,UAAU,kBAAkB,SAAS;AAAA,IACrC,YAAYA,GAAE,OAAO,EAAE,YAAY,EAAE,SAAS;AAAA,EAChD,CAAC;AAAA,EACD,aAAa,YAAY;AAAA,IACvB,YAAY;AAAA,IACZ,MAAMA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC;AAAA,IAC7B,MAAMA,GAAE,KAAK,CAAC,QAAQ,SAAS,SAAS,SAAS,OAAO,OAAO,CAAC;AAAA,IAChE,QAAQA,GAAE,KAAK,CAAC,WAAW,SAAS,QAAQ,CAAC;AAAA,IAC7C,UAAUA,GAAE,OAAO,EAAE,SAAS;AAAA,IAC9B,KAAKA,GAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AAAA,IAC/B,MAAMA,GAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS;AAAA,IAC9C,eAAe,yBAAyB,SAAS;AAAA,EACnD,CAAC;AAAA,EACD,aAAa,SAAS;AAAA,IACpB,aAAaA,GAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS;AAAA,IACrD,cAAcA,GAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS;AAAA,IACtD,aAAaA,GAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS;AAAA,IACrD,eAAeA,GAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS;AAAA,IACvD,eAAeA,GAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS;AAAA,EACtD,CAAC;AAAA,EACD,aAAa,UAAU;AAAA,IACrB,WAAWA,GAAE,QAAQ;AAAA,IACrB,OAAO,iBAAiB,SAAS;AAAA,IACjC,QAAQA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC9B,CAAC;AAAA,EACD,aAAa,SAAS;AAAA,IACpB,MAAMA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC;AAAA,IAC7B,SAASA,GAAE,OAAO;AAAA,IAClB,WAAWA,GAAE,QAAQ;AAAA,IACrB,eAAe,yBAAyB,SAAS;AAAA,IACjD,SAAS,iBAAiB,SAAS;AAAA,EACrC,CAAC;AAAA,EACD,aAAa,QAAQ;AAAA,IACnB,MAAMA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC;AAAA,IAC7B,QAAQA,GAAE,KAAK,CAAC,SAAS,YAAY,WAAW,SAAS,CAAC;AAAA,IAC1D,OAAOA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC7B,CAAC;AAAA,EACD,aAAa,kBAAkB;AAAA,IAC7B,MAAMA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC;AAAA,IAC7B,WAAWA,GAAE,KAAK,CAAC,UAAU,QAAQ,CAAC;AAAA,IACtC,UAAUA,GAAE,OAAO,EAAE,SAAS;AAAA,IAC9B,MAAMA,GAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS;AAAA,EAChD,CAAC;AAAA,EACD,aAAa,YAAY;AAAA,IACvB,YAAY;AAAA,IACZ,QAAQA,GAAE,KAAK,CAAC,SAAS,UAAU,UAAU,QAAQ,CAAC;AAAA,IACtD,OAAOA,GAAE,OAAO;AAAA,IAChB,UAAUA,GAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AAAA,EACtC,CAAC;AAAA,EACD,aAAa,eAAe;AAAA,IAC1B,QAAQ;AAAA,IACR,MAAMA,GAAE,OAAO;AAAA,IACf,QAAQA,GAAE,KAAK,CAAC,WAAW,UAAU,UAAU,SAAS,CAAC;AAAA,IACzD,YAAYA,GAAE,OAAO,EAAE,YAAY,EAAE,SAAS;AAAA,IAC9C,QAAQA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC9B,CAAC;AAAA,EACD,aAAa,SAAS;AAAA,IACpB,WAAW;AAAA,IACX,aAAa;AAAA,IACb,MAAMA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC;AAAA,IAC7B,QAAQA,GAAE,KAAK,CAAC,YAAY,WAAW,QAAQ,CAAC;AAAA,IAChD,OAAOA,GACJ,OAAO;AAAA,MACN,MAAM;AAAA,MACN,SAASA,GAAE,OAAO;AAAA,MAClB,WAAWA,GAAE,QAAQ;AAAA,IACvB,CAAC,EACA,OAAO,EACP,SAAS;AAAA,EACd,CAAC;AAAA,EACD,aAAa,WAAW;AAAA,IACtB,WAAW;AAAA,IACX,OAAO;AAAA,IACP,MAAMA,GAAE,OAAO;AAAA,IACf,YAAYA,GAAE,MAAMA,GAAE,OAAO,CAAC;AAAA,IAC9B,cAAcA,GAAE,MAAMA,GAAE,OAAO,CAAC;AAAA,IAChC,QAAQA,GAAE,KAAK,CAAC,cAAc,aAAa,QAAQ,CAAC;AAAA,EACtD,CAAC;AACH,CAAC,EAAE,YAAY,CAAC,OAAO,YAAY;AACjC,MAAI,MAAM,cAAc,SAAS;AAC/B,QAAI,MAAM,UAAU,MAAM,QAAQ,aAAa;AAC7C,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,WAAW,aAAa;AAAA,QAC/B,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AACA,UAAM,gBAAgB,MAAM,QAAQ,WAAW;AAC/C,QAAI,kBAAkB,QAAQ,MAAM,QAAQ,KAAK,GAAG;AAClD,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,WAAW,OAAO;AAAA,QACzB,SAAS,gBACL,6CACA;AAAA,MACN,CAAC;AAAA,IACH;AAAA,EACF;AACA,MAAI,MAAM,cAAc,aAAa,MAAM,UAAU,MAAM,QAAQ,OAAO;AACxE,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,WAAW,OAAO;AAAA,MACzB,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACF,CAAC;AAEM,IAAM,6BAA6B,wBAAwB,YAAY,CAAC,OAAO,YAAY;AAChG,MAAI,CAAC,MAAM,OAAO;AAChB,YAAQ,SAAS,EAAE,MAAM,UAAU,MAAM,CAAC,OAAO,GAAG,SAAS,4BAA4B,CAAC;AAAA,EAC5F;AACA,MAAI,CAAC,MAAM,iBAAiB;AAC1B,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,iBAAiB;AAAA,MACxB,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,MAAI,MAAM,cAAc,SAAU;AAClC,QAAM,oBACJ,MAAM,QAAQ,WAAW,YACrB,cACA,MAAM,QAAQ,WAAW,aACvB,wBACA,MAAM,QAAQ,WAAW,YACvB,cACA,MAAM,QAAQ,WAAW,cACvB,gBACA,MAAM,QAAQ,WAAW,WACvB,aACA;AACd,MAAI,qBAAqB,CAAC,MAAM,QAAQ,iBAAiB,GAAG;AAC1D,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,WAAW,iBAAiB;AAAA,MACnC,SAAS,cAAc,MAAM,QAAQ,MAAM,aAAa,iBAAiB;AAAA,IAC3E,CAAC;AAAA,EACH;AACA,MAAI,6BAA6B,MAAM,QAAQ,MAAM,KAAK,MAAM,QAAQ,eAAe,QAAW;AAChG,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,WAAW,YAAY;AAAA,MAC9B,SAAS,uBAAuB,MAAM,QAAQ,MAAM;AAAA,IACtD,CAAC;AAAA,EACH;AACF,CAAC;AAEM,IAAM,8BAA8BA,GACxC,OAAO;AAAA,EACN,UAAUA,GAAE,QAAQ,uBAAuB;AAAA,EAC3C,WAAW;AAAA,EACX,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,QAAQA,GAAE,MAAM,uBAAuB;AAAA,EACvC,cAAcA,GAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE;AAAA,EACrC,WAAWA,GAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EACpC,SAAS,0BAA0B,SAAS;AAAA,EAC5C,cAAc,+BAA+B,SAAS;AACxD,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,QAAM,WAAW,oBAAI,IAAY;AACjC,QAAM,kBAAkB,oBAAI,IAAY;AACxC,MAAI,mBAAmB;AAEvB,QAAM,OAAO,QAAQ,CAAC,OAAO,UAAU;AACrC,QAAI,MAAM,cAAc,MAAM,WAAW;AACvC,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,UAAU,OAAO,WAAW;AAAA,QACnC,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AACA,QAAI,MAAM,YAAY,kBAAkB;AACtC,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,UAAU,OAAO,UAAU;AAAA,QAClC,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AACA,QAAI,SAAS,IAAI,MAAM,OAAO,GAAG;AAC/B,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,UAAU,OAAO,SAAS;AAAA,QACjC,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AACA,QAAI,gBAAgB,IAAI,MAAM,cAAc,GAAG;AAC7C,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,UAAU,OAAO,gBAAgB;AAAA,QACxC,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AACA,uBAAmB,MAAM;AACzB,aAAS,IAAI,MAAM,OAAO;AAC1B,oBAAgB,IAAI,MAAM,cAAc;AAAA,EAC1C,CAAC;AAED,QAAM,uBAAuB,MAAM,OAAO,SAAS,IAAI,MAAM,OAAO,MAAM,OAAO,SAAS,CAAC,EAAE,WAAW;AACxG,MAAI,MAAM,iBAAiB,sBAAsB;AAC/C,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,cAAc;AAAA,MACrB,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACF,CAAC;AAEI,IAAM,2CAA2CA,GAAE,KAAK,CAAC,QAAQ,WAAW,aAAa,OAAO,CAAC;AAEjG,IAAM,uCAAuCA,GAAE,KAAK,CAAC,WAAW,SAAS,OAAO,CAAC;AAEjF,IAAM,gCAAgCA,GAC1C,OAAO;AAAA,EACN,IAAI;AAAA,EACJ,MAAMA,GAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACtB,aAAaA,GAAE,OAAO,EAAE,SAAS;AAAA,EACjC,SAASA,GAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AAAA,EACnC,SAASA,GAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EAClC,QAAQA,GAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EACjC,YAAYA,GAAE,QAAQ,EAAE,QAAQ,KAAK;AACvC,CAAC,EACA,OAAO;AAEH,IAAM,kCAAkCA,GAC5C,OAAO;AAAA,EACN,IAAI;AAAA,EACJ,OAAOA,GAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACvB,WAAW;AAAA,EACX,cAAcA,GAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AAAA,EACxC,MAAM,gBAAgB,SAAS;AAAA,EAC/B,QAAQ,yCAAyC,QAAQ,MAAM;AAAA,EAC/D,QAAQA,GAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EACjC,cAAcA,GACX,OAAO;AAAA,IACN,YAAYA,GAAE,OAAO,EAAE,IAAI,EAAE,YAAY;AAAA,IACzC,WAAWA,GAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AAAA,EACvC,CAAC,EACA,OAAO,EACP,SAAS;AACd,CAAC,EACA,OAAO;AAEH,IAAM,6CAA6CA,GACvD,OAAO;AAAA,EACN,aAAaA,GAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EACtC,eAAeA,GAAE,QAAQ,EAAE,QAAQ,IAAI;AAAA,EACvC,oBAAoBA,GAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EAC7C,qBAAqBA,GAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EAC9C,WAAWA,GAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EACpC,aAAaA,GAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EACtC,gBAAgBA,GAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EACzC,gBAAgBA,GAAE,QAAQ,EAAE,QAAQ,KAAK;AAC3C,CAAC,EACA,OAAO;AAEH,IAAM,0CAA0CA,GACpD,OAAO;AAAA,EACN,UAAUA,GAAE,QAAQ,mCAAmC;AAAA,EACvD,WAAWA,GAAE,KAAK,CAAC,UAAU,UAAU,CAAC,EAAE,QAAQ,UAAU;AAAA,EAC5D,aAAaA,GAAE,OAAO,EAAE,QAAQ,EAAE;AAAA,EAClC,mBAAmB,yBAAyB,SAAS;AAAA,EACrD,qBAAqB,yBAAyB,SAAS;AAAA,EACvD,QAAQA,GACL,OAAO;AAAA,IACN,QAAQ;AAAA,IACR,OAAOA,GAAE,MAAM,6BAA6B;AAAA,IAC5C,OAAOA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC7B,CAAC,EACA,OAAO;AAAA,EACV,UAAUA,GACP,OAAO;AAAA,IACN,QAAQ;AAAA,IACR,OAAOA,GAAE,MAAM,+BAA+B;AAAA,IAC9C,OAAOA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC7B,CAAC,EACA,OAAO;AAAA,EACV,cAAc;AAChB,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,QAAM,qBAAqB,CACzB,YACA,SACG;AACH,QAAI,WAAW,WAAW,WAAW,CAAC,WAAW,OAAO;AACtD,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,MAAM,OAAO;AAAA,QACpB,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAAA,EACF;AAEA,qBAAmB,MAAM,QAAQ,QAAQ;AACzC,qBAAmB,MAAM,UAAU,UAAU;AAC/C,CAAC;AAEI,IAAM,qCAAqCA,GAAE,KAAK;AAAA,EACvD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAEM,IAAM,yCAAyCA,GACnD,OAAO;AAAA,EACN,IAAI;AAAA,EACJ,MAAMA,GAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACtB,WAAWA,GAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EACtC,YAAYA,GAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EACvC,QAAQA,GAAE,KAAK,CAAC,aAAa,SAAS,OAAO,CAAC,EAAE,QAAQ,OAAO;AACjE,CAAC,EACA,OAAO;AAEH,IAAM,wCAAwCA,GAClD,OAAO;AAAA,EACN,IAAI;AAAA,EACJ,MAAMA,GAAE,OAAO;AAAA,EACf,iBAAiBA,GAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,CAAC;AAAA,EACzD,QAAQA,GAAE,KAAK,CAAC,UAAU,WAAW,OAAO,CAAC,EAAE,QAAQ,QAAQ;AACjE,CAAC,EACA,OAAO;AAEH,IAAM,8CAA8CA,GAAE,KAAK;AAAA,EAChE;AAAA,EACA;AACF,CAAC;AAEM,IAAM,0CAA0CA,GACpD,OAAO;AAAA,EACN,IAAI;AAAA,EACJ,OAAOA,GAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACvB,MAAM,4CAA4C,SAAS;AAC7D,CAAC,EACA,OAAO;AAEH,IAAM,0CAA0CA,GACpD,OAAO;AAAA,EACN,IAAI;AAAA,EACJ,OAAOA,GAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACvB,UAAUA,GAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EACrC,MAAM;AAAA,EACN,UAAUA,GAAE,QAAQ,EAAE,QAAQ,KAAK;AACrC,CAAC,EACA,OAAO;AAEH,IAAM,2CAA2CA,GACrD,OAAO;AAAA,EACN,aAAaA,GAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EACtC,YAAYA,GAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EACrC,WAAWA,GAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EACpC,gBAAgBA,GAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EACzC,WAAWA,GAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EACpC,aAAaA,GAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EACtC,OAAOA,GAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EAChC,MAAMA,GAAE,QAAQ,EAAE,QAAQ,KAAK;AACjC,CAAC,EACA,OAAO;AAEH,IAAM,qCAAqCA,GAAE,KAAK;AAAA,EACvD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAEM,IAAM,+CAA+CA,GAAE,KAAK,CAAC,UAAU,QAAQ,CAAC;AAEhF,IAAM,yCAAyCA,GACnD,OAAO;AAAA,EACN,IAAI;AAAA,EACJ,OAAOA,GAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACvB,aAAaA,GAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EACxC,QAAQA,GAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACxB,QAAQ,6CAA6C,QAAQ,QAAQ;AAAA,EACrE,MAAM,mCAAmC,SAAS;AAAA,EAClD,eAAeA,GAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EAC1C,QAAQA,GAAE,OAAO,EAAE,IAAI,CAAC,EAAE,QAAQ,KAAK;AAAA,EACvC,UAAUA,GAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EACnC,OAAOA,GAAE,MAAM,eAAe,EAAE,IAAI,CAAC,EAAE,SAAS;AAClD,CAAC,EACA,OAAO;AAEH,IAAM,wCAAwCA,GAClD,OAAO;AAAA,EACN,IAAI;AAAA,EACJ,OAAOA,GAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACvB,WAAWA,GAAE,MAAM,sCAAsC,EAAE,IAAI,CAAC;AAClE,CAAC,EACA,OAAO;AAEH,IAAM,yCAAyCA,GACnD,OAAO;AAAA,EACN,IAAI;AAAA,EACJ,OAAOA,GAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACvB,MAAM,mCAAmC,SAAS;AAAA,EAClD,UAAUA,GAAE,MAAM,qCAAqC,EAAE,IAAI,CAAC;AAChE,CAAC,EACA,OAAO;AAEH,IAAM,4CAA4CA,GAAE,KAAK,CAAC,WAAW,WAAW,OAAO,CAAC;AAExF,IAAM,qCAAqCA,GAAE,KAAK;AAAA,EACvD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAEM,IAAM,uCAAuCA,GACjD,OAAO;AAAA,EACN,IAAI;AAAA,EACJ,OAAOA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,EACvC,UAAUA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,SAAS;AAAA,EACrD,UAAUA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,SAAS;AAAA;AAAA,EAEtD,QAAQA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAM,EAAE,SAAS;AAAA,EACtD,cAAcA,GAAE,KAAK,CAAC,SAAS,oBAAoB,MAAM,CAAC,EAAE,SAAS;AAAA,EACrE,gBAAgBA,GAAE,KAAK,CAAC,YAAY,oBAAoB,QAAQ,CAAC,EAAE,SAAS;AAC9E,CAAC,EACA,OAAO;AAEH,IAAM,mCAAmCA,GAC7C,OAAO;AAAA,EACN,IAAI;AAAA,EACJ,OAAOA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,EACvC,OAAOA,GAAE,MAAM,oCAAoC,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE;AAAA,EAClE,iBAAiBA,GAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,SAAS;AAC1D,CAAC,EACA,OAAO;AAEH,IAAM,oCAAoCA,GAC9C,OAAO;AAAA,EACN,gBAAgB,0CAA0C,SAAS;AAAA,EACnE,aAAaA,GAAE,QAAQ,EAAE,SAAS;AAAA;AAAA,EAElC,cAAcA,GAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,EACxD,iBAAiBA,GAAE,MAAM,kCAAkC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EACpF,QAAQA,GAAE,MAAM,gCAAgC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,EACnE,gBAAgB,yBAAyB,SAAS;AAAA,EAClD,mBAAmBA,GAAE,QAAQ,EAAE,SAAS;AAAA,EACxC,sBAAsBA,GAAE,MAAM,sCAAsC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,EACvF,mBAAmBA,GAAE,QAAQ,EAAE,SAAS;AAC1C,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,MAAI,MAAM,mBAAmB,IAAI,IAAI,MAAM,eAAe,EAAE,SAAS,MAAM,gBAAgB,QAAQ;AACjG,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,iBAAiB;AAAA,MACxB,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,MAAI,MAAM,kBAAkB,CAAC,MAAM,QAAQ,KAAK,CAAC,UAAU,MAAM,OAAO,MAAM,cAAc,GAAG;AAC7F,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,gBAAgB;AAAA,MACvB,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACF,CAAC;AAEI,IAAM,2CAA2C,OAAO,OAAO;AAAA,EACpE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAU;AAOH,SAAS,mCACd,QACA,SAA4C,CAAC,GACR;AACrC,QAAM,SAAS,kCAAkC,MAAM,UAAU,CAAC,CAAC;AACnE,QAAM,iBAAiB,OAAO,kBAAkB,OAAO,kBAAkB;AACzE,SAAO;AAAA,IACL,GAAG;AAAA,IACH;AAAA,IACA,aAAa,OAAO,eAAe;AAAA,IACnC,cAAc,OAAO,gBAAgB;AAAA,IACrC,iBAAiB,OAAO,mBAAmB,CAAC,GAAG,wCAAwC;AAAA,IACvF,QAAQ,OAAO,UAAU,CAAC;AAAA,IAC1B,mBAAmB,OAAO,qBAAqB,OAAO,qBAAqB;AAAA,IAC3E,mBAAmB,OAAO,qBAAqB,mBAAmB;AAAA,EACpE;AACF;AAEO,IAAM,0CAA0CA,GACpD,OAAO;AAAA,EACN,UAAUA,GAAE,QAAQ,mCAAmC;AAAA,EACvD,MAAM;AAAA,EACN,YAAYA,GAAE,MAAM,sCAAsC,EAAE,IAAI,CAAC;AAAA,EACjE,UAAUA,GAAE,QAAQ,EAAE,QAAQ,KAAK;AACrC,CAAC,EACA,OAAO;AAEH,IAAM,wCAAwCA,GAClD,OAAO;AAAA,EACN,UAAUA,GAAE,QAAQ,iCAAiC;AAAA,EACrD,OAAOA,GAAE,OAAO,EAAE,QAAQ,EAAE;AAAA,EAC5B,QAAQ,mCAAmC,QAAQ,MAAM;AAAA,EACzD,MAAM;AAAA,EACN,aAAaA,GAAE,OAAO,EAAE,SAAS;AAAA,EACjC,aAAaA,GAAE,MAAM,sCAAsC,EAAE,QAAQ,CAAC,CAAC;AAAA,EACvE,cAAcA,GAAE,MAAM,qCAAqC,EAAE,QAAQ,CAAC,CAAC;AAAA,EACvE,cAAcA,GAAE,MAAM,uCAAuC,EAAE,QAAQ,CAAC,CAAC;AAAA,EACzE,uBAAuB,yBAAyB,SAAS;AAAA,EACzD,OAAOA,GACJ,OAAO;AAAA,IACN,YAAY,yBAAyB,SAAS;AAAA,IAC9C,SAASA,GAAE,MAAM,uCAAuC;AAAA,EAC1D,CAAC,EACA,OAAO;AAAA,EACV,WAAWA,GACR,OAAO;AAAA,IACN,OAAOA,GAAE,KAAK,CAAC,OAAO,UAAU,QAAQ,OAAO,CAAC;AAAA,IAChD,SAASA,GAAE,MAAMA,GAAE,KAAK,CAAC,OAAO,UAAU,QAAQ,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC;AAAA,EACpE,CAAC,EACA,OAAO,EACP,SAAS;AAAA,EACZ,mBAAmB,oCAAoC,SAAS;AAAA,EAChE,kBAAkBA,GAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EAC3C,OAAOA,GAAE,OAAO,EAAE,SAAS;AAAA,EAC3B,cAAc;AAChB,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,MAAI,MAAM,WAAW,WAAW,CAAC,MAAM,OAAO;AAC5C,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,OAAO;AAAA,MACd,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,MAAI,MAAM,MAAM,cAAc,CAAC,MAAM,MAAM,QAAQ,KAAK,CAAC,WAAW,OAAO,OAAO,MAAM,MAAM,UAAU,GAAG;AACzG,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,SAAS,YAAY;AAAA,MAC5B,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACF,CAAC;AAmEI,IAAM,2BAA2B;AAGjC,SAAS,yBAAyB,OAA6C;AACpF,QAAM,aAAa,OAAO,SAAS,EAAE,EAClC,KAAK,EACL,YAAY;AACf,MAAI,eAAe,UAAU,eAAe,WAAW,eAAe,QAAS,QAAO;AACtF,MAAI,eAAe,UAAU,eAAe,aAAa,eAAe,eAAe,eAAe,YAAY,eAAe,UAAU;AACzI,WAAO;AAAA,EACT;AACA,SAAO;AACT;AAGO,IAAM,qBAAqB;AAC3B,IAAM,8BAA8B;;;ACj2C3C,SAAS,KAAAC,UAAS;AAGX,IAAM,mBAAmBC,GAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE;AAAA,EACzD,CAAC,UAAU,CAAC,CAAC,aAAa,aAAa,aAAa,EAAE,SAAS,KAAK;AAAA,EACpE;AACF;AACO,IAAM,sBAAsBA,GAAE,MAAM,gBAAgB,EAAE,IAAI,EAAE;AAC5D,IAAM,2BAA2BA,GAAE,KAAK,CAAC,SAAS,SAAS,YAAY,WAAW,SAAS,UAAU,UAAU,SAAS,CAAC;AACzH,IAAM,qBAAqBA,GAAE,KAAK;AAAA,EACvC;AAAA,EAAO;AAAA,EAAY;AAAA,EAAY;AAAA,EAAU;AAAA,EAAO;AAAA,EAAO;AAAA,EACvD;AAAA,EAAU;AAAA,EAAc;AAAA,EAAa;AAAA,EAAiB;AAAA,EAAgB;AAAA,EACtE;AAAA,EAAO;AAAA,EAAM;AAAA,EAAO;AAAA,EAAY;AAAA,EAAU;AAAA,EAAU;AAAA,EAAU;AAAA,EAAU;AAAA,EACxE;AAAA,EAAO;AAAA,EAAY;AAAA,EAAS;AAAA,EAAW;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAS;AAAA,EAAQ;AAAA,EAAS;AAAA,EAAiB;AACpH,CAAC;AAUD,IAAM,gCAA2DA,GAAE,KAAK,MAAMA,GAAE,mBAAmB,QAAQ;AAAA,EACzGA,GAAE,OAAO,EAAE,MAAMA,GAAE,QAAQ,SAAS,GAAG,OAAO,gBAAgB,CAAC,EAAE,OAAO;AAAA,EACxEA,GAAE,OAAO,EAAE,MAAMA,GAAE,QAAQ,MAAM,GAAG,MAAM,0BAA0B,MAAM,oBAAoB,CAAC,EAAE,OAAO;AAAA,EACxGA,GAAE,OAAO,EAAE,MAAMA,GAAE,QAAQ,UAAU,GAAG,UAAU,oBAAoB,WAAWA,GAAE,MAAM,6BAA6B,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,OAAO;AAAA,EACjJA,GAAE,OAAO,EAAE,MAAMA,GAAE,QAAQ,aAAa,GAAG,WAAW,+BAA+B,MAAM,+BAA+B,MAAM,8BAA8B,CAAC,EAAE,OAAO;AAAA,EACxKA,GAAE,OAAO,EAAE,MAAMA,GAAE,QAAQ,QAAQ,GAAG,QAAQA,GAAE,OAAO,kBAAkB,6BAA6B,EAAE,CAAC,EAAE,OAAO;AAAA,EAClHA,GAAE,OAAO,EAAE,MAAMA,GAAE,QAAQ,OAAO,GAAG,OAAOA,GAAE,MAAM,6BAA6B,EAAE,IAAI,GAAI,EAAE,CAAC,EAAE,OAAO;AAAA,EACvG,GAAI,CAAC,OAAO,UAAU,KAAK,EAAY,IAAI,CAAC,SAASA,GAAE,OAAO,EAAE,MAAMA,GAAE,QAAQ,IAAI,GAAG,QAAQ,+BAA+B,OAAO,8BAA8B,CAAC,EAAE,OAAO,CAAC;AAChL,CAAC,CAAC;AAEK,IAAM,yBAAyB,OAAO,OAAO,EAAE,OAAO,IAAI,OAAO,MAAM,YAAY,KAAO,YAAY,KAAM,OAAO,QAAQ,CAAC;AAE5H,IAAM,wBAAwB,CAAC,UAAyB;AAG7D,MAAI,UAAU,QAAQ,OAAO,UAAU,UAAU;AAC/C,QAAI,OAAO,UAAU,YAAY,MAAM,SAAS,IAAI,uBAAuB,MAAO,OAAM,IAAI,MAAM,wBAAwB;AAC1H;AAAA,EACF;AACA,QAAM,QAA6C,CAAC,EAAE,OAAO,OAAO,EAAE,CAAC;AACvE,MAAI,QAAQ;AACZ,MAAI,QAAQ;AACZ,SAAO,MAAM,QAAQ;AACnB,UAAM,OAAO,MAAM,IAAI;AACvB,QAAI,EAAE,QAAQ,uBAAuB,SAAS,KAAK,QAAQ,uBAAuB,MAAO,OAAM,IAAI,MAAM,wBAAwB;AACjI,QAAI,OAAO,KAAK,UAAU,SAAU,UAAS,KAAK,MAAM,SAAS;AACjE,QAAI,KAAK,SAAS,OAAO,KAAK,UAAU,UAAU;AAChD,iBAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,KAAK,KAAK,GAAG;AACrD,iBAAS,IAAI,SAAS;AACtB,YAAI,CAAC,aAAa,aAAa,aAAa,EAAE,SAAS,GAAG,EAAG,OAAM,IAAI,MAAM,6BAA6B;AAC1G,YAAI,MAAM,UAAU,uBAAuB,MAAO,OAAM,IAAI,MAAM,wBAAwB;AAC1F,cAAM,KAAK,EAAE,OAAO,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;AAAA,MACpD;AAAA,IACF;AACA,QAAI,QAAQ,uBAAuB,MAAO,OAAM,IAAI,MAAM,wBAAwB;AAAA,EACpF;AACF;AAGO,IAAM,uBAAuBA,GAAE,QAAQ,EAAE,YAAY,CAAC,OAAO,YAAY;AAC9E,MAAI;AAAE,0BAAsB,KAAK;AAAA,EAAG,SAC7B,OAAO;AAAE,YAAQ,SAAS,EAAE,MAAM,UAAU,SAAS,iBAAiB,QAAQ,MAAM,UAAU,yBAAyB,CAAC;AAAA,EAAG;AACpI,CAAC,EAAE,KAAK,6BAA6B;AAE9B,IAAM,4BAA4BA,GAAE,OAAO;AAAA,EAChD,YAAY,oBAAoB,IAAI,CAAC;AAAA,EACrC,YAAY;AAAA,EACZ,WAAWA,GAAE,KAAK,CAAC,UAAU,UAAU,WAAW,UAAU,SAAS,MAAM,CAAC,EAAE,SAAS;AACzF,CAAC,EAAE,OAAO;AAGH,IAAM,sBAAsB,CAAC,YAA4B,UAAgD;AAC9G,QAAM,UAAU;AAChB,UAAQ,WAAW,MAAM;AAAA,IACvB,KAAK;AAAY,iBAAW,UAAU,QAAQ,CAAC,SAAS,oBAAoB,MAAM,KAAK,CAAC;AAAG;AAAA,IAC3F,KAAK;AAAe,OAAC,WAAW,WAAW,WAAW,MAAM,WAAW,IAAI,EAAE,QAAQ,CAAC,SAAS,oBAAoB,MAAM,KAAK,CAAC;AAAG;AAAA,IAClI,KAAK;AAAU,aAAO,OAAO,WAAW,MAAM,EAAE,QAAQ,CAAC,SAAS,oBAAoB,MAAM,KAAK,CAAC;AAAG;AAAA,IACrG,KAAK;AAAS,iBAAW,MAAM,QAAQ,CAAC,SAAS,oBAAoB,MAAM,KAAK,CAAC;AAAG;AAAA,IACpF,KAAK;AAAA,IAAO,KAAK;AAAA,IAAU,KAAK;AAC9B,0BAAoB,WAAW,QAAQ,KAAK;AAAG,0BAAoB,WAAW,OAAO,KAAK;AAAG;AAAA,EACjG;AACF;AAEO,IAAM,6BAA6B,CAAC,eAA4E;AACrH,QAAM,QAAqD,CAAC;AAC5D,sBAAoB,YAAY,CAAC,SAAS;AAAE,QAAI,KAAK,SAAS,OAAQ,OAAM,KAAK,IAAI;AAAA,EAAG,CAAC;AACzF,SAAO;AACT;AAGO,IAAM,qCAAqC,CAAC,eAA4E;AAC7H,QAAM,QAAqD,CAAC;AAC5D,QAAM,QAAQ,CAAC,MAAsB,UAAwB;AAC3D,QAAI,KAAK,SAAS,QAAQ;AACxB,UAAI,YAAY;AAChB,UAAI,QAAQ;AACZ,aAAO,YAAY,KAAK,KAAK,KAAK,KAAK,MAAM,UAAU;AAAE,qBAAa;AAAG,iBAAS;AAAA,MAAG;AACrF,YAAM,QAAQ,KAAK,SAAS,WAAW,YAAY,KAAK,CAAC,QAAQ,OAAO,EAAE,SAAS,KAAK,KAAK,KAAK,CAAC;AACnG,UAAI,CAAC,MAAO,OAAM,KAAK,IAAI;AAC3B;AAAA,IACF;AACA,YAAQ,KAAK,MAAM;AAAA,MACjB,KAAK;AAAY,aAAK,UAAU,QAAQ,WAAS,MAAM,OAAO,KAAK,CAAC;AAAG;AAAA,MACvE,KAAK;AAAe,SAAC,KAAK,WAAW,KAAK,MAAM,KAAK,IAAI,EAAE,QAAQ,WAAS,MAAM,OAAO,KAAK,CAAC;AAAG;AAAA,MAClG,KAAK;AAAU,eAAO,OAAO,KAAK,MAAM,EAAE,QAAQ,WAAS,MAAM,OAAO,KAAK,CAAC;AAAG;AAAA,MACjF,KAAK;AAAS,aAAK,MAAM,QAAQ,WAAS,MAAM,OAAO,KAAK,CAAC;AAAG;AAAA,MAChE,KAAK;AAAA,MAAO,KAAK;AAAA,MAAU,KAAK;AAAO,cAAM,KAAK,QAAQ,KAAK;AAAG,cAAM,KAAK,OAAO,QAAQ,CAAC;AAAG;AAAA,IAClG;AAAA,EACF;AACA,QAAM,YAAY,CAAC;AACnB,SAAO;AACT;;;AClHA,SAAS,KAAAC,UAAS;AASX,IAAM,uBAAuBC,GAAE,KAAK,CAAC,UAAU,QAAQ,CAAC;AAExD,IAAM,wBAAwBA,GAAE,KAAK;AAAA,EAC1C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAEM,IAAM,uBAAuBA,GAAE,KAAK;AAAA,EACzC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAEM,IAAM,sBAAsBA,GAChC,OAAO;AAAA,EACN,YAAYA,GAAE,KAAK,CAAC,QAAQ,YAAY,MAAM,CAAC;AAAA,EAC/C,MAAM,yBAAyB,SAAS;AAAA,EACxC,SAASA,GAAE,KAAK,CAAC,WAAW,WAAW,aAAa,CAAC;AACvD,CAAC,EACA,OAAO;AAEH,IAAM,qBAAqBA,GAC/B,OAAO;AAAA,EACN,OAAOA,GAAE,KAAK,CAAC,QAAQ,WAAW,UAAU,CAAC;AAAA,EAC7C,MAAMA,GAAE,KAAK,CAAC,KAAK,KAAK,QAAQ,MAAM,CAAC;AAAA,EACvC,YAAY,yBAAyB,SAAS;AAAA,EAC9C,wBAAwBA,GAAE,QAAQ;AACpC,CAAC,EACA,OAAO,EACP,YAAY,CAAC,QAAQ,YAAY;AAChC,MAAI,OAAO,UAAU,cAAc,OAAO,YAAY;AACpD,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,YAAY;AAAA,MACnB,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACA,MAAI,OAAO,0BAA0B,OAAO,UAAU,YAAY;AAChE,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,OAAO;AAAA,MACd,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACF,CAAC;AAEI,IAAM,yBAAyBA,GACnC,OAAO;AAAA,EACN,cAAc;AAAA,EACd,MAAMA,GAAE,KAAK;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAAA,EACD,YAAYA,GACT,OAAO,EACP,KAAK,EACL,MAAM,aAAa,wCAAwC,EAC3D,SAAS;AAAA,EACZ,SAASA,GAAE,KAAK,CAAC,QAAQ,SAAS,CAAC,EAAE,SAAS;AAChD,CAAC,EACA,OAAO,EACP,YAAY,CAAC,YAAY,YAAY;AACpC,MAAI,WAAW,SAAS,cAAc,CAAC,WAAW,YAAY;AAC5D,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,YAAY;AAAA,MACnB,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACA,MAAI,WAAW,SAAS,cAAc,WAAW,YAAY;AAC3D,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,YAAY;AAAA,MACnB,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACF,CAAC;AAEI,IAAM,wBAAwBA,GAClC,OAAO;AAAA,EACN,aAAaA,GAAE,KAAK,CAAC,UAAU,gBAAgB,aAAa,CAAC;AAAA,EAC7D,aAAaA,GAAE,KAAK,CAAC,UAAU,gBAAgB,eAAe,QAAQ,CAAC;AAAA,EACvE,oBAAoBA,GAAE,QAAQ;AAAA,EAC9B,UAAUA,GAAE,QAAQ;AAAA,EACpB,aAAaA,GAAE,QAAQ;AACzB,CAAC,EACA,OAAO;AAEH,IAAM,qBAAqBA,GAC/B,OAAO;AAAA,EACN,MAAMA,GAAE,KAAK,CAAC,YAAY,SAAS,QAAQ,QAAQ,UAAU,CAAC;AAAA,EAC9D,WAAWA,GAAE,KAAK,CAAC,OAAO,QAAQ,CAAC,EAAE,SAAS;AAAA,EAC9C,SAASA,GAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS;AAAA,EAC9C,OAAOA,GAAE,KAAK,CAAC,SAAS,UAAU,OAAO,SAAS,CAAC,EAAE,SAAS;AAAA,EAC9D,SAASA,GAAE,KAAK,CAAC,SAAS,UAAU,OAAO,WAAW,QAAQ,CAAC,EAAE,SAAS;AAAA,EAC1E,aAAa,gBAAgB,SAAS;AACxC,CAAC,EACA,OAAO,EACP,YAAY,CAAC,QAAQ,YAAY;AAChC,MAAI,OAAO,aAAa,OAAO,SAAS,QAAQ;AAC9C,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,WAAW;AAAA,MAClB,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,MAAI,OAAO,WAAW,OAAO,SAAS,QAAQ;AAC5C,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,SAAS;AAAA,MAChB,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,MAAI,OAAO,eAAe,OAAO,YAAY,SAAS,gBAAgB;AACpE,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,eAAe,MAAM;AAAA,MAC5B,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACF,CAAC;AAEI,IAAM,6BAA6BA,GACvC,OAAO;AAAA,EACN,YAAYA,GAAE,OAAO,EAAE,YAAY,EAAE,SAAS;AAAA,EAC9C,YAAYA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS;AAAA,EAC3C,QAAQ;AAAA,EACR,OAAOA,GAAE,KAAK,MAAM,iBAAiB,EAAE,SAAS;AAClD,CAAC,EACA,OAAO,EACP,YAAY,CAAC,MAAM,YAAY;AAC9B,MAAI,KAAK,eAAe,UAAa,KAAK,eAAe,QAAW;AAClE,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC;AAAA,MACP,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,MACE,KAAK,eAAe,UACpB,KAAK,eAAe,UACpB,KAAK,aAAa,KAAK,YACvB;AACA,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,YAAY;AAAA,MACnB,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACF,CAAC;AAEI,IAAM,yBAAyBA,GAAE,MAAM;AAAA,EAC5CA,GAAE,OAAO,EAAE,OAAO;AAAA,EAClBA,GACG,OAAO,EACP,KAAK,EACL,IAAI,CAAC,EACL,IAAI,GAAG,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,QACE,QAAQ,KAAK,KAAK,KAClB,0CAA0C,KAAK,KAAK,GACpD;AACA,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,SACE;AAAA,MACJ,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AACL,CAAC;AAEM,IAAM,oBAAoBA,GAC9B,OAAO;AAAA,EACN,OAAO,uBAAuB,SAAS;AAAA,EACvC,QAAQ,uBAAuB,SAAS;AAAA,EACxC,UAAU,uBAAuB,SAAS;AAAA,EAC1C,UAAU,uBAAuB,SAAS;AAAA,EAC1C,WAAW,uBAAuB,SAAS;AAAA,EAC3C,WAAW,uBAAuB,SAAS;AAAA,EAC3C,SAAS,uBAAuB,SAAS;AAAA,EACzC,cAAc,uBAAuB,SAAS;AAAA,EAC9C,eAAe,uBAAuB,SAAS;AAAA,EAC/C,QAAQ,uBAAuB,SAAS;AAAA,EACxC,kBAAkB,uBAAuB,SAAS;AAAA,EAClD,gBAAgB,uBAAuB,SAAS;AAAA,EAChD,mBAAmB,uBAAuB,SAAS;AAAA,EACnD,iBAAiB,uBAAuB,SAAS;AAAA,EACjD,SAASA,GACN,KAAK;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC,EACA,SAAS;AAAA,EACZ,KAAK,uBAAuB,SAAS;AAAA,EACrC,QAAQ,uBAAuB,SAAS;AAAA,EACxC,WAAW,uBAAuB,SAAS;AAAA,EAC3C,YAAY,uBAAuB,SAAS;AAAA,EAC5C,OAAO,uBAAuB,SAAS;AAAA,EACvC,aAAa,uBAAuB,SAAS;AAAA,EAC7C,aAAa,uBAAuB,SAAS;AAAA,EAC7C,aAAaA,GAAE,KAAK,CAAC,QAAQ,SAAS,UAAU,QAAQ,CAAC,EAAE,SAAS;AAAA,EACpE,cAAc,uBAAuB,SAAS;AAAA,EAC9C,WAAW,uBAAuB,SAAS;AAAA,EAC3C,UAAU,uBAAuB,SAAS;AAAA,EAC1C,YAAY,uBAAuB,SAAS;AAAA,EAC5C,YAAY,uBAAuB,SAAS;AAAA,EAC5C,YAAY,uBAAuB,SAAS;AAAA,EAC5C,WAAWA,GAAE,KAAK,CAAC,SAAS,UAAU,OAAO,QAAQ,OAAO,CAAC,EAAE,SAAS;AAAA,EACxE,YAAYA,GACT,KAAK,CAAC,UAAU,UAAU,OAAO,YAAY,YAAY,cAAc,CAAC,EACxE,SAAS;AAAA,EACZ,UAAUA,GACP,KAAK,CAAC,WAAW,UAAU,QAAQ,UAAU,MAAM,CAAC,EACpD,SAAS;AAAA,EACZ,WAAWA,GACR,KAAK,CAAC,WAAW,UAAU,QAAQ,UAAU,MAAM,CAAC,EACpD,SAAS;AAAA,EACZ,WAAWA,GACR,KAAK,CAAC,WAAW,UAAU,QAAQ,UAAU,MAAM,CAAC,EACpD,SAAS;AAAA,EACZ,UAAUA,GACP,KAAK,CAAC,UAAU,YAAY,YAAY,UAAU,OAAO,CAAC,EAC1D,SAAS;AAAA,EACZ,OAAO,uBAAuB,SAAS;AAAA,EACvC,KAAK,uBAAuB,SAAS;AAAA,EACrC,OAAO,uBAAuB,SAAS;AAAA,EACvC,QAAQ,uBAAuB,SAAS;AAAA,EACxC,MAAM,uBAAuB,SAAS;AAAA,EACtC,qBAAqB,uBAAuB,SAAS;AAAA,EACrD,YAAY,uBAAuB,SAAS;AAAA,EAC5C,SAAS,uBAAuB,SAAS;AAAA,EACzC,MAAM,uBAAuB,SAAS;AAAA,EACtC,eAAeA,GACZ,KAAK,CAAC,OAAO,eAAe,UAAU,gBAAgB,CAAC,EACvD,SAAS;AAAA,EACZ,UAAUA,GAAE,KAAK,CAAC,UAAU,QAAQ,cAAc,CAAC,EAAE,SAAS;AAAA,EAC9D,YAAYA,GACT,KAAK,CAAC,SAAS,UAAU,OAAO,WAAW,UAAU,CAAC,EACtD,SAAS;AAAA,EACZ,gBAAgBA,GACb,KAAK;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC,EACA,SAAS;AAAA,EACZ,UAAUA,GAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS;AAAA,EACrD,YAAYA,GAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS;AAAA,EACvD,WAAWA,GAAE,KAAK,CAAC,QAAQ,SAAS,UAAU,OAAO,SAAS,CAAC,EAAE,SAAS;AAAA,EAC1E,aAAaA,GACV,KAAK,CAAC,QAAQ,SAAS,UAAU,OAAO,SAAS,CAAC,EAClD,SAAS;AAAA,EACZ,WAAWA,GACR,KAAK,CAAC,WAAW,SAAS,QAAQ,QAAQ,YAAY,CAAC,EACvD,SAAS;AAAA,EACZ,SAASA,GAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,SAAS;AACtD,CAAC,EACA,OAAO;AAEV,IAAM,aAAa,CACjB,WACA,cACA,MACA,YACG;AACH,MAAI,CAAC,UAAW;AAChB,MAAI,UAAU,SAAS,cAAc;AACnC,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,GAAG,MAAM,MAAM;AAAA,MACtB,SAAS,GAAG,KAAK,KAAK,GAAG,CAAC,mBAAmB,YAAY;AAAA,IAC3D,CAAC;AAAA,EACH;AACF;AAEA,IAAM,wBAAwB,CAC5B,WACA,cACA,MACA,YACG;AACH,aAAW,WAAW,cAAc,MAAM,OAAO;AACjD,MAAI,CAAC,UAAW;AAChB,MAAI,UAAU,YAAY,QAAW;AACnC,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,GAAG,MAAM,SAAS;AAAA,MACzB,SAAS,GAAG,KAAK,KAAK,GAAG,CAAC;AAAA,IAC5B,CAAC;AAAA,EACH;AACA,MAAI,UAAU,cAAc,QAAW;AACrC,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,GAAG,MAAM,WAAW;AAAA,MAC3B,SAAS,GAAG,KAAK,KAAK,GAAG,CAAC;AAAA,IAC5B,CAAC;AAAA,EACH;AACF;AAEO,IAAM,mBAAmBA,GAC7B,OAAO;AAAA,EACN,UAAUA,GAAE,QAAQ,YAAY;AAAA,EAChC,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,SAAS;AAAA,EACT,WAAW;AAAA,EACX,cAAc,yBAAyB,SAAS;AAAA,EAChD,UAAUA,GAAE,MAAM,wBAAwB;AAAA,EAC1C,MAAM,yBAAyB,SAAS;AAAA,EACxC,SAAS;AAAA,EACT,aAAa,gBAAgB,SAAS;AAAA,EACtC,gBAAgB,gBAAgB,SAAS;AAAA,EACzC,eAAe;AAAA,EACf,wBAAwB,yBAAyB,SAAS;AAAA,EAC1D,aAAa,gBAAgB,SAAS;AAAA,EACtC,UAAU,gBAAgB,SAAS;AAAA,EACnC,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,OAAO,kBAAkB,SAAS;AAAA,EAClC,YAAYA,GAAE,MAAM,0BAA0B;AAAA,EAC9C,WAAW,gBAAgB,SAAS;AAAA,EACpC,aAAa,gBAAgB,SAAS;AAAA,EACtC,OAAO;AAAA,EACP,aAAa;AAAA,EACb,QAAQA,GACL,OAAO;AAAA,IACN,QAAQ;AAAA,IACR,SAAS,oBAAoB,IAAI,CAAC;AAAA,IAClC,OAAOA,GAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,GAAI,EAAE,QAAQ,GAAG;AAAA,EACtD,CAAC,EACA,OAAO,EACP,SAAS;AACd,CAAC,EACA,OAAO,EACP,YAAY,CAAC,MAAM,YAAY;AAC9B,aAAW,KAAK,SAAS,QAAQ,CAAC,SAAS,GAAG,OAAO;AACrD;AAAA,IACE,KAAK;AAAA,IACL;AAAA,IACA,CAAC,eAAe;AAAA,IAChB;AAAA,EACF;AACA;AAAA,IACE,KAAK;AAAA,IACL;AAAA,IACA,CAAC,aAAa;AAAA,IACd;AAAA,EACF;AACA,aAAW,KAAK,WAAW,iBAAiB,CAAC,WAAW,GAAG,OAAO;AAClE,aAAW,KAAK,aAAa,YAAY,CAAC,aAAa,GAAG,OAAO;AACjE,MAAI,KAAK,iBAAiB,KAAK,QAAQ;AACrC,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,cAAc;AAAA,MACrB,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,MAAI,IAAI,IAAI,KAAK,QAAQ,EAAE,SAAS,KAAK,SAAS,QAAQ;AACxD,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,UAAU;AAAA,MACjB,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,MAAI,KAAK,SAAS,SAAS,KAAK,MAAM,GAAG;AACvC,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,UAAU;AAAA,MACjB,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,MAAI,KAAK,QAAQ,eAAe,cAAc,CAAC,KAAK,aAAa;AAC/D,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,aAAa;AAAA,MACpB,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACF,CAAC;AAEI,IAAM,mBAAmBA,GAC7B,OAAO;AAAA,EACN,UAAUA,GAAE,QAAQ,YAAY;AAAA,EAChC,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,OAAOA,GAAE,MAAM,gBAAgB,EAAE,IAAI,CAAC;AACxC,CAAC,EACA,OAAO;AAEH,IAAM,0BAA0BA,GAAE,KAAK;AAAA,EAC5C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAEM,IAAM,oBAAoBA,GAC9B,OAAO;AAAA,EACN,UAAUA,GAAE,QAAQ,aAAa;AAAA,EACjC,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,cAAcA,GAAE,KAAK,CAAC,UAAU,SAAS,YAAY,CAAC;AAAA,EACtD,YAAY;AAAA,EACZ,KAAKA,GACF,OAAO;AAAA,IACN,WAAW;AAAA,IACX,OAAO;AAAA,IACP,UAAUA,GAAE,KAAK,CAAC,QAAQ,SAAS,CAAC;AAAA,IACpC,WAAWA,GAAE,KAAK,CAAC,QAAQ,SAAS,CAAC;AAAA,EACvC,CAAC,EACA,OAAO;AAAA,EACV,OAAOA,GACJ,OAAO;AAAA,IACN,SAASA,GAAE,KAAK,CAAC,qBAAqB,aAAa,UAAU,CAAC;AAAA,IAC9D,MAAMA,GAAE,QAAQ;AAAA,EAClB,CAAC,EACA,OAAO;AAAA,EACV,OAAOA,GACJ,OAAO;AAAA,IACN,QAAQA,GAAE,QAAQ;AAAA,IAClB,UAAUA,GAAE,QAAQ;AAAA,EACtB,CAAC,EACA,OAAO;AACZ,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,MAAI,MAAM,WAAW,SAAS,WAAW;AACvC,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,cAAc,MAAM;AAAA,MAC3B,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,MAAI,MAAM,WAAW,WAAW,SAAS,MAAM,cAAc;AAC3D,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,cAAc,cAAc,MAAM;AAAA,MACzC,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACA,MAAI,MAAM,iBAAiB,YAAY,MAAM,eAAe,UAAU;AACpE,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,YAAY;AAAA,MACnB,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,MAAI,MAAM,iBAAiB,WAAW,MAAM,eAAe,SAAS;AAClE,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,YAAY;AAAA,MACnB,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,MACE,MAAM,iBAAiB,gBACvB,MAAM,eAAe,gBACrB,MAAM,eAAe,UACrB;AACA,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,YAAY;AAAA,MACnB,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACF,CAAC;AAEH,IAAM,oBAAoBA,GACvB,OAAO,EACP,KAAK,EACL,MAAM,aAAa,wCAAwC;AAEvD,IAAM,mCAAmCA,GAC7C,OAAO;AAAA,EACN,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,QAAQ,yBAAyB,SAAS;AAAA,EAC1C,WAAW,gBAAgB,SAAS;AAAA,EACpC,YAAY,gBAAgB,SAAS;AAAA,EACrC,cAAc,yBAAyB,SAAS;AAAA,EAChD,MAAM;AACR,CAAC,EACA,OAAO;AAEH,IAAM,2BAA2BA,GACrC,OAAO;AAAA,EACN,UAAUA,GAAE,QAAQ,oBAAoB;AAAA,EACxC,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,cAAc,iCAAiC,SAAS;AAAA,EACxD,SAAS,yBAAyB,SAAS;AAAA,EAC3C,WAAW;AACb,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,MACE,MAAM,OAAO,YAAY,MAAM,OAAO,WACtC,MAAM,OAAO,WAAW,MAAM,OAAO,QACrC;AACA,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,QAAQ;AAAA,MACf,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACF,CAAC;AAEI,IAAM,+BAA+BA,GACzC,OAAO;AAAA,EACN,UAAUA,GAAE,QAAQ,wBAAwB;AAAA,EAC5C,YAAY;AAAA,EACZ,iBAAiB;AAAA,EACjB,wBAAwB,yBAAyB,SAAS;AAAA,EAC1D,WAAW;AAAA,EACX,eAAe;AAAA,EACf,aAAa;AAAA,EACb,sBAAsB;AAAA,EACtB,iBAAiB,yBAAyB,SAAS;AAAA,EACnD,SAASA,GAAE,KAAK,CAAC,SAAS,QAAQ,YAAY,eAAe,CAAC;AAAA,EAC9D,YAAYA,GAAE,KAAK,CAAC,QAAQ,YAAY,UAAU,CAAC;AAAA,EACnD,oBAAoBA,GAAE,MAAM,wBAAwB,EAAE,IAAI,CAAC;AAAA,EAC3D,mBAAmBA,GAChB;AAAA,IACCA,GAAE,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AAAA,EACH,EACC,IAAI,CAAC;AAAA,EACR,YAAYA,GAAE,KAAK,CAAC,QAAQ,YAAY,MAAM,CAAC;AAAA,EAC/C,aAAaA,GAAE;AAAA,IACbA,GAAE,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EACA,sBAAsB,gBAAgB,SAAS;AAAA,EAC/C,WAAWA,GACR,OAAO;AAAA,IACN,eAAeA,GAAE,QAAQ;AAAA,IACzB,gBAAgBA,GAAE,QAAQ;AAAA,IAC1B,YAAY;AAAA,EACd,CAAC,EACA,OAAO;AAAA,EACV,aAAaA,GACV,OAAO;AAAA,IACN,MAAMA,GAAE,QAAQ;AAAA,IAChB,aAAaA,GAAE,QAAQ;AAAA,IACvB,UAAUA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS;AAAA,EAC3C,CAAC,EACA,OAAO;AAAA,EACV,WAAW,gBAAgB,SAAS;AAAA,EACpC,aAAa,gBAAgB,SAAS;AACxC,CAAC,EACA,OAAO,EACP,YAAY,CAAC,UAAU,YAAY;AAClC;AAAA,IACE,SAAS;AAAA,IACT;AAAA,IACA,CAAC,eAAe;AAAA,IAChB;AAAA,EACF;AACA;AAAA,IACE,SAAS;AAAA,IACT;AAAA,IACA,CAAC,sBAAsB;AAAA,IACvB;AAAA,EACF;AACA,aAAW,SAAS,WAAW,iBAAiB,CAAC,WAAW,GAAG,OAAO;AACtE,aAAW,SAAS,aAAa,YAAY,CAAC,aAAa,GAAG,OAAO;AACrE,MAAI,SAAS,cAAc,YAAY,QAAW;AAChD,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,iBAAiB,SAAS;AAAA,MACjC,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACA,MACE,SAAS,eAAe,cACxB,SAAS,eAAe,UACxB,CAAC,SAAS,UAAU,eACpB;AACA,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,aAAa,eAAe;AAAA,MACnC,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACA,MAAI,SAAS,YAAY,SAAS,KAAK,CAAC,SAAS,sBAAsB;AACrE,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,sBAAsB;AAAA,MAC7B,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACA,MAAI,SAAS,YAAY,WAAW,KAAK,SAAS,sBAAsB;AACtE,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,sBAAsB;AAAA,MAC7B,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACF,CAAC;;;ACtpBH,SAAS,KAAAC,UAAS;AAOX,IAAM,qBAAqBC,GAC/B,OAAO;AAAA,EACN,MAAM;AAAA,EACN,WAAW;AAAA,EACX,UAAUA,GAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EACnC,UAAUA,GAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EACnC,aAAaA,GAAE,OAAO,EAAE,SAAS;AACnC,CAAC,EACA,OAAO;AAEH,IAAM,kCAAkCA,GAC5C,OAAO;AAAA,EACN,aAAa;AAAA,EACb,iBAAiBA,GAAE,MAAM,oBAAoB,EAAE,QAAQ,CAAC,CAAC;AAAA,EACzD,UAAUA,GAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC;AACtC,CAAC,EACA,OAAO;AAEH,IAAM,2BAA2BA,GACrC,OAAO;AAAA,EACN,UAAUA,GAAE,QAAQ,oBAAoB;AAAA,EACxC,IAAI;AAAA,EACJ,mBAAmB;AAAA,EACnB,WAAW;AAAA,EACX,MAAMA,GAAE,KAAK,CAAC,aAAa,aAAa,QAAQ,yBAAyB,QAAQ,UAAU,CAAC;AAAA,EAC5F,aAAaA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC;AAAA,EACpC,aAAaA,GAAE,OAAO,EAAE,SAAS;AAAA,EACjC,OAAOA,GACJ,OAAO;AAAA,IACN,QAAQA,GAAE,MAAM,kBAAkB,EAAE,QAAQ,CAAC,CAAC;AAAA,IAC9C,SAASA,GAAE,MAAM,kBAAkB,EAAE,QAAQ,CAAC,CAAC;AAAA,EACjD,CAAC,EACA,OAAO;AAAA,EACV,SAASA,GACN,OAAO;AAAA,IACN,kBAAkBA,GAAE,MAAM,+BAA+B,EAAE,IAAI,CAAC;AAAA,IAChE,SAASA,GAAE,KAAK,CAAC,SAAS,QAAQ,YAAY,eAAe,CAAC;AAAA,IAC9D,uBAAuB,gBAAgB,SAAS;AAAA,IAChD,YAAYA,GAAE,KAAK,CAAC,QAAQ,YAAY,UAAU,CAAC;AAAA,IACnD,gBAAgB,yBAAyB,SAAS;AAAA,IAClD,aAAaA,GACV,MAAMA,GAAE,KAAK,CAAC,WAAW,WAAW,cAAc,aAAa,UAAU,WAAW,CAAC,CAAC,EACtF,QAAQ,CAAC,CAAC;AAAA,EACf,CAAC,EACA,OAAO;AAAA,EACV,WAAWA,GACR,OAAO;AAAA,IACN,UAAUA,GAAE,MAAM,wBAAwB,EAAE,IAAI,CAAC;AAAA,IACjD,OAAOA,GAAE,MAAM,wBAAwB,EAAE,QAAQ,CAAC,CAAC;AAAA,IACnD,UAAUA,GAAE,MAAM,wBAAwB,EAAE,QAAQ,CAAC,CAAC;AAAA,IACtD,WAAWA,GAAE,MAAM,wBAAwB,EAAE,QAAQ,CAAC,CAAC;AAAA,EACzD,CAAC,EACA,OAAO;AAAA,EACV,eAAeA,GACZ,OAAO;AAAA,IACN,eAAe;AAAA,IACf,YAAY;AAAA,IACZ,eAAe;AAAA,EACjB,CAAC,EACA,OAAO;AAAA,EACV,eAAeA,GACZ,OAAO;AAAA,IACN,gBAAgB;AAAA,IAChB,SAASA,GAAE,MAAM,wBAAwB,EAAE,QAAQ,CAAC,CAAC;AAAA,IACrD,cAAcA,GAAE,MAAM,wBAAwB,EAAE,QAAQ,CAAC,CAAC;AAAA,IAC1D,qBAAqBA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS;AAAA,EACtD,CAAC,EACA,OAAO;AACZ,CAAC,EACA,OAAO,EACP,YAAY,CAAC,UAAU,YAAY;AAClC,QAAM,cAAc,oBAAI,IAAY;AACpC,WAAS,QAAQ,iBAAiB,QAAQ,CAAC,SAAS,UAAU;AAC5D,UAAM,mBAAmB,GAAG,QAAQ,YAAY,IAAI,IAAI,QAAQ,YAAY,EAAE,IAAI,OAAO,QAAQ,YAAY,OAAO,CAAC,IAAI,QAAQ,YAAY,aAAa,EAAE;AAC5J,QAAI,YAAY,IAAI,gBAAgB,GAAG;AACrC,cAAQ,SAAS,EAAE,MAAM,UAAU,MAAM,CAAC,WAAW,oBAAoB,KAAK,GAAG,SAAS,0CAA0C,gBAAgB,GAAG,CAAC;AAAA,IAC1J;AACA,gBAAY,IAAI,gBAAgB;AAChC,QAAI,CAAC,CAAC,QAAQ,uBAAuB,EAAE,SAAS,SAAS,IAAI,EAAG;AAChE,QAAI,QAAQ,YAAY,SAAS,iBAAiB;AAChD,cAAQ,SAAS,EAAE,MAAM,UAAU,MAAM,CAAC,WAAW,oBAAoB,OAAO,eAAe,MAAM,GAAG,SAAS,oDAAoD,CAAC;AAAA,IACxK;AACA,QAAI,QAAQ,YAAY,YAAY,QAAW;AAC7C,cAAQ,SAAS,EAAE,MAAM,UAAU,MAAM,CAAC,WAAW,oBAAoB,OAAO,eAAe,SAAS,GAAG,SAAS,yDAAyD,CAAC;AAAA,IAChL;AACA,QAAI,QAAQ,YAAY,cAAc,QAAW;AAC/C,cAAQ,SAAS,EAAE,MAAM,UAAU,MAAM,CAAC,WAAW,oBAAoB,OAAO,eAAe,WAAW,GAAG,SAAS,iEAAiE,CAAC;AAAA,IAC1L;AAAA,EACF,CAAC;AACH,CAAC;AAEI,IAAM,6BAA6BA,GAAE,KAAK;AAAA,EAC/C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAEM,IAAM,iCAAiCA,GAC3C,OAAO;AAAA,EACN,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,WAAW;AACb,CAAC,EACA,OAAO;AAEH,IAAM,gCAAgCA,GAC1C,OAAO;AAAA,EACN,UAAU;AAAA,EACV,SAASA,GAAE,MAAM,8BAA8B,EAAE,IAAI,CAAC;AACxD,CAAC,EACA,OAAO;AAEH,IAAM,mCAAmCA,GAC7C,OAAO;AAAA,EACN,UAAUA,GAAE,QAAQ,oBAAoB;AAAA,EACxC,SAASA,GAAE,MAAM,6BAA6B;AAChD,CAAC,EACA,OAAO,EACP,YAAY,CAAC,UAAU,YAAY;AAClC,QAAM,MAAM,oBAAI,IAAY;AAC5B,WAAS,QAAQ,QAAQ,CAAC,OAAO,UAAU;AACzC,QAAI,IAAI,IAAI,MAAM,SAAS,EAAE,GAAG;AAC9B,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,WAAW,OAAO,YAAY,IAAI;AAAA,QACzC,SAAS,4BAA4B,MAAM,SAAS,EAAE;AAAA,MACxD,CAAC;AAAA,IACH;AACA,QAAI,IAAI,MAAM,SAAS,EAAE;AAAA,EAC3B,CAAC;AACH,CAAC;;;AC5IH,SAAS,KAAAC,UAAS;AASX,IAAM,wBAAwBC,GAClC,OAAO;AAAA,EACN,UAAU;AAAA,EACV,UAAU;AAAA,EACV,eAAeA,GAAE,MAAM,CAACA,GAAE,OAAO,EAAE,IAAI,EAAE,YAAY,GAAG,wBAAwB,CAAC;AAAA,EACjF,MAAM;AACR,CAAC,EACA,OAAO;AAEH,IAAM,2BAA2BA,GACrC,OAAO;AAAA,EACN,UAAUA,GAAE,QAAQ,oBAAoB;AAAA,EACxC,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,WAAW;AAAA,EACX,eAAe;AAAA,EACf,WAAWA,GACR,OAAO;AAAA,IACN,SAAS;AAAA,IACT,SAAS;AAAA,IACT,OAAOA,GAAE,KAAK,CAAC,UAAU,QAAQ,QAAQ,QAAQ,CAAC;AAAA,EACpD,CAAC,EACA,OAAO;AAAA,EACV,eAAeA,GAAE,MAAM,wBAAwB,EAAE,QAAQ,CAAC,CAAC;AAAA,EAC3D,aAAaA,GAAE,MAAM,wBAAwB,EAAE,QAAQ,CAAC,CAAC;AAC3D,CAAC,EACA,OAAO;AAEH,IAAM,uBAAuBA,GACjC,OAAO;AAAA,EACN,UAAUA,GAAE,QAAQ,gBAAgB;AAAA,EACpC,cAAc;AAAA,EACd,aAAaA,GAAE,MAAM,wBAAwB,EAAE,IAAI,CAAC;AAAA,EACpD,iBAAiB;AAAA,EACjB,UAAUA,GACP,OAAO;AAAA,IACN,MAAMA,GAAE,KAAK,CAAC,SAAS,aAAa,gBAAgB,UAAU,QAAQ,CAAC;AAAA,IACvE,eAAeA,GAAE,OAAOA,GAAE,OAAO,GAAG,eAAe,EAAE,QAAQ,CAAC,CAAC;AAAA,EACjE,CAAC,EACA,OAAO;AAAA,EACV,iBAAiBA,GAAE,KAAK,CAAC,aAAa,gBAAgB,WAAW,CAAC;AAAA,EAClE,oBAAoBA,GAAE,MAAM,wBAAwB,EAAE,QAAQ,CAAC,CAAC;AAAA,EAChE,aAAaA,GAAE,QAAQ,IAAI;AAAA,EAC3B,eAAeA,GACZ,OAAO;AAAA,IACN,eAAeA,GAAE,QAAQ;AAAA,IACzB,cAAcA,GAAE,QAAQ;AAAA,IACxB,SAASA,GAAE,QAAQ;AAAA,IACnB,WAAWA,GAAE,QAAQ;AAAA,EACvB,CAAC,EACA,OAAO;AACZ,CAAC,EACA,OAAO;AAEH,IAAM,sBAAsBA,GAChC,OAAO;AAAA,EACN,UAAUA,GAAE,QAAQ,eAAe;AAAA,EACnC,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,eAAeA,GAAE,MAAM,qBAAqB,EAAE,QAAQ,CAAC,CAAC;AAAA,EACxD,UAAUA,GAAE,MAAM,eAAe,EAAE,QAAQ,CAAC,CAAC;AAAA,EAC7C,SAASA,GAAE,MAAM,eAAe,EAAE,QAAQ,CAAC,CAAC;AAAA,EAC5C,YAAYA,GAAE,MAAM,eAAe,EAAE,QAAQ,CAAC,CAAC;AAAA,EAC/C,cAAcA,GAAE,MAAM,eAAe,EAAE,QAAQ,CAAC,CAAC;AAAA,EACjD,WAAWA,GAAE,MAAM,eAAe,EAAE,QAAQ,CAAC,CAAC;AAAA,EAC9C,cAAcA,GAAE,MAAM,eAAe,EAAE,QAAQ,CAAC,CAAC;AAAA,EACjD,YAAY;AACd,CAAC,EACA,OAAO;AAEH,IAAM,oBAAoBA,GAC9B,OAAO;AAAA,EACN,UAAUA,GAAE,QAAQ,aAAa;AAAA,EACjC,SAAS;AAAA,EACT,WAAW;AAAA,EACX,cAAc;AAAA,EACd,kBAAkBA,GAAE,OAAO,EAAE,IAAI,EAAE,YAAY;AAAA,EAC/C,WAAW;AAAA,EACX,UAAU;AAAA,EACV,SAAS;AAAA,EACT,YAAY;AACd,CAAC,EACA,OAAO;;;AC3FV,SAAS,KAAAC,UAAS;AAEX,IAAM,0BAA0BA,GACpC,OAAO;AAAA,EACN,UAAUA,GAAE,QAAQ,mBAAmB;AAAA,EACvC,eAAeA,GAAE,QAAQ,CAAC;AAAA,EAC1B,UAAUA,GAAE,KAAK,CAAC,WAAW,WAAW,CAAC;AAAA,EACzC,aAAaA,GAAE,KAAK,CAAC,WAAW,WAAW,CAAC;AAC9C,CAAC,EACA,OAAO;;;ACTV,SAAS,KAAAC,UAAS;AAGX,IAAM,gBAAgB;AAAA,EAC3B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEO,IAAM,oBAAoBC,GAAE,KAAK,aAAa;AAE9C,IAAM,mBAAmBA,GAAE,KAAK,CAAC,WAAW,SAAS,UAAU,SAAS,CAAC;AACzE,IAAM,0BAA0BA,GAAE,KAAK,CAAC,UAAU,cAAc,SAAS,QAAQ,CAAC;AAElF,IAAM,yBAAyB;AAAA,EACpC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEO,IAAM,2BAA2BA,GAAE,KAAK,sBAAsB;AAE9D,IAAM,kBAAkBA,GAC5B,OAAO;AAAA,EACN,WAAW;AAAA,EACX,SAAS;AAAA,EACT,OAAO,yBAAyB,SAAS;AAC3C,CAAC,EACA,OAAO;AAEH,IAAM,sBAAsBA,GAChC,OAAO;AAAA,EACN,IAAI,yBAAyB,SAAS;AAAA,EACtC,KAAKA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EACvC,cAAcA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EAChD,UAAUA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,SAAS;AAAA,EACrD,UAAUA,GAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS;AAAA,EAClD,QAAQ,aAAa,SAAS;AAChC,CAAC,EACA,OAAO,EACP,OAAO,CAAC,UAAU,QAAQ,MAAM,MAAM,MAAM,GAAG,GAAG;AAAA,EACjD,SAAS;AACX,CAAC;AAEI,IAAM,oBAAoBA,GAC9B,OAAO;AAAA,EACN,WAAW;AAAA,EACX,MAAMA,GAAE,QAAQ,eAAe;AAAA,EAC/B,QAAQ;AAAA,EACR,UAAUA,GAAE,QAAQ,YAAY;AAAA,EAChC,UAAUA,GAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS;AAAA,EAClD,OAAOA,GAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS;AAAA,EAC5C,QAAQA,GAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS;AAAA,EAC7C,KAAKA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EACvC,WAAW,yBAAyB,SAAS;AAC/C,CAAC,EACA,OAAO;AAEH,IAAM,mBAAmBA,GAC7B,OAAO;AAAA,EACN,UAAUA,GAAE,QAAQ,YAAY;AAAA,EAChC,iBAAiBA,GAAE,QAAQ,CAAC;AAAA,EAC5B,SAASA,GAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AAAA,EACnC,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,cAAcA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,EAC9C,UAAUA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,EAC1C,UAAUA,GAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS;AAAA,EAClD,QAAQ,aAAa,SAAS;AAAA,EAC9B,QAAQ;AAAA,EACR,SAASA,GACN,OAAO;AAAA,IACN,UAAU;AAAA,IACV,WAAWA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,IAAI;AAAA,IAC5C,cAAcA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC;AAAA,IACrC,MAAMA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EAC1C,CAAC,EACA,OAAO;AAAA,EACV,UAAUA,GAAE,MAAM,iBAAiB,EAAE,QAAQ,CAAC,CAAC;AAAA,EAC/C,WAAW;AAAA,EACX,WAAW;AACb,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,MAAI,MAAM,QAAQ,iBAAiB,UAAU,MAAM,MAAM,IAAI;AAC3D,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,WAAW,cAAc;AAAA,MAChC,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACF,CAAC;AAEI,IAAM,gCAAgCA,GAC1C,OAAO;AAAA,EACN,SAAS;AAAA,EACT,UAAUA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,EAC1C,UAAUA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,EAC1C,UAAUA,GAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS;AAAA,EAClD,QAAQ,aAAa,SAAS;AAAA,EAC9B,OAAO,gBAAgB,SAAS;AAClC,CAAC,EACA,OAAO;AAEH,IAAM,8BAA8BA,GACxC,OAAO;AAAA,EACN,KAAKA,GAAE,MAAM;AAAA,IACXA,GAAE,OAAO,EAAE,IAAI;AAAA,IACfA,GAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,uCAAuC;AAAA,EAC9E,CAAC;AAAA,EACD,QAAQA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC;AAAA,EAC/B,SAASA,GAAE,OAAOA,GAAE,OAAO,GAAGA,GAAE,OAAO,CAAC;AAAA,EACxC,WAAW;AACb,CAAC,EACA,OAAO;AAEH,IAAM,iCAAiCA,GAC3C,OAAO;AAAA,EACN,MAAM;AAAA,EACN,QAAQ;AACV,CAAC,EACA,OAAO;AAEH,IAAM,kCAAkCA,GAC5C,OAAO;AAAA,EACN,UAAUA,GAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS;AAAA,EAClD,QAAQ,aAAa,SAAS;AAAA,EAC9B,MAAMA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,SAAS;AACnD,CAAC,EACA,OAAO;AAEH,IAAM,qBAAqBA,GAC/B,OAAO;AAAA,EACN,QAAQ,yBAAyB,SAAS;AAAA,EAC1C,QAAQ,iBAAiB,SAAS;AAAA,EAClC,aAAaA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EAC/C,cAAcA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EAChD,UAAUA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,SAAS;AAAA,EACrD,UAAUA,GAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS;AAAA,EAClD,QAAQ,aAAa,SAAS;AAAA,EAC9B,YAAYA,GAAE,QAAQ,EAAE,SAAS;AACnC,CAAC,EACA,OAAO;AAEH,IAAM,gCAAgCA,GAC1C,OAAO;AAAA,EACN,YAAYA,GAAE,MAAM,mBAAmB,EAAE,IAAI,CAAC,EAAE,IAAI,GAAI;AAAA,EACxD,iBAAiBA,GAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EAC1C,kBAAkBA,GAAE,QAAQ,EAAE,QAAQ,IAAI;AAC5C,CAAC,EACA,OAAO;AAEH,IAAM,iCAAiCA,GAC3C,OAAO;AAAA,EACN,OAAOA,GAAE,MAAM,kBAAkB;AACnC,CAAC,EACA,OAAO;AAEH,IAAM,+BAA+BA,GAAE,KAAK;AAAA,EACjD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAEM,IAAM,2BAA2BA,GACrC,OAAO;AAAA,EACN,UAAUA,GAAE,QAAQ,oBAAoB;AAAA,EACxC,iBAAiBA,GAAE,QAAQ,CAAC;AAAA,EAC5B,WAAW;AAAA,EACX,aAAa;AAAA,EACb,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,iBAAiBA,GAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS;AAAA,EACzD,SAAS,yBAAyB,SAAS;AAAA,EAC3C,SAAS,iBAAiB,QAAQ,CAAC,CAAC;AAAA,EACpC,UAAU;AACZ,CAAC,EACA,OAAO;AAEH,IAAM,6BAA6BA,GAAE,KAAK;AAAA,EAC/C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAEM,IAAM,yBAAyBA,GACnC,OAAO;AAAA,EACN,UAAUA,GAAE,QAAQ,kBAAkB;AAAA,EACtC,iBAAiBA,GAAE,QAAQ,CAAC;AAAA,EAC5B,SAAS;AAAA,EACT,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,kBAAkBA,GAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AAAA,EAC5C,WAAW;AAAA,EACX,SAAS,yBAAyB,SAAS;AAAA,EAC3C,SAAS,iBAAiB,QAAQ,CAAC,CAAC;AAAA,EACpC,YAAY;AACd,CAAC,EACA,OAAO;;;AC9PH,IAAM,iCAAiC,CAAC,aAI1C;AACH,QAAM,SAAkH,CAAC;AACzH,QAAM,MAAM,oBAAI,IAAY;AAC5B,QAAM,cAAc,oBAAI,IAAoB;AAC5C,aAAW,WAAW,UAAU;AAC9B,QAAI,IAAI,IAAI,QAAQ,SAAS,EAAG,QAAO,KAAK,EAAE,WAAW,QAAQ,WAAW,MAAM,YAAY,CAAC;AAC/F,QAAI,IAAI,QAAQ,SAAS;AACzB,eAAW,UAAU,CAAC,GAAI,QAAQ,uBAAuB,CAAC,GAAI,GAAI,QAAQ,gBAAgB,CAAC,CAAE,GAAG;AAC9F,UAAI,YAAY,IAAI,OAAO,aAAa,EAAG,QAAO,KAAK,EAAE,WAAW,QAAQ,WAAW,MAAM,eAAe,cAAc,OAAO,cAAc,CAAC;AAChJ,kBAAY,IAAI,OAAO,eAAe,QAAQ,SAAS;AAAA,IACzD;AAAA,EACF;AACA,QAAM,eAAyC,uBAAO,OAAO,IAAI;AACjE,QAAM,aAAa,oBAAI,IAAsB;AAC7C,QAAM,YAAY,oBAAI,IAAoB;AAC1C,aAAW,WAAW,UAAU;AAC9B,UAAM,UAAU,CAAC,GAAG,IAAI,IAAI,OAAO,OAAO,QAAQ,UAAU,EAAE,QAAQ,CAAC,WAAW;AAChF,YAAM,KAAK,OAAO,SAAS,kBAAkB,OAAO,YAAY,OAAO,SAAS,gBAAgB,OAAO,UAAU,YAAY,IAAI,OAAO,OAAO,IAAI;AACnJ,aAAO,KAAK,CAAC,EAAE,IAAI,CAAC;AAAA,IACtB,CAAC,CAAC,CAAC;AACH,iBAAa,QAAQ,SAAS,IAAI;AAClC,cAAU,IAAI,QAAQ,WAAW,QAAQ,MAAM;AAC/C,eAAW,gBAAgB,SAAS;AAClC,UAAI,CAAC,IAAI,IAAI,YAAY,EAAG,QAAO,KAAK,EAAE,WAAW,QAAQ,WAAW,MAAM,WAAW,aAAa,CAAC;AACvG,iBAAW,IAAI,cAAc,CAAC,GAAI,WAAW,IAAI,YAAY,KAAK,CAAC,GAAI,QAAQ,SAAS,CAAC;AAAA,IAC3F;AAAA,EACF;AACA,QAAM,QAAQ,CAAC,GAAG,GAAG,EAAE,OAAO,CAAC,OAAO,UAAU,IAAI,EAAE,MAAM,CAAC;AAC7D,QAAM,QAAkB,CAAC;AACzB,WAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACrC,UAAM,KAAK,MAAM,CAAC;AAClB,UAAM,KAAK,EAAE;AACb,eAAW,aAAa,WAAW,IAAI,EAAE,KAAK,CAAC,GAAG;AAChD,YAAM,QAAQ,UAAU,IAAI,SAAS,IAAK;AAC1C,gBAAU,IAAI,WAAW,KAAK;AAC9B,UAAI,UAAU,EAAG,OAAM,KAAK,SAAS;AAAA,IACvC;AAAA,EACF;AACA,MAAI,MAAM,WAAW,IAAI,QAAQ,CAAC,OAAO,KAAK,CAAC,UAAU,MAAM,SAAS,SAAS,GAAG;AAClF,eAAW,MAAM,IAAK,MAAK,UAAU,IAAI,EAAE,KAAK,KAAK,EAAG,QAAO,KAAK,EAAE,WAAW,IAAI,MAAM,QAAQ,CAAC;AAAA,EACtG;AACA,SAAO,EAAE,OAAO,cAAc,OAAO;AACvC;;;ACrDA,SAAS,KAAAC,WAAS;AASX,IAAM,mCAAmCC,IAAE,KAAK;AAAA,EACrD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAEM,IAAM,8BAA8BA,IACxC,OAAO;AAAA,EACN,MAAM;AAAA,EACN,OAAO,iCAAiC,SAAS;AAAA,EACjD,UAAUA,IAAE,KAAK,CAAC,QAAQ,WAAW,OAAO,CAAC,EAAE,SAAS;AAAA,EACxD,UAAUA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAC/B,MAAMA,IAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC;AAAA,EAC7B,SAASA,IAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC;AAAA,EAChC,UAAUA,IAAE,MAAMA,IAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,SAAS;AAC9D,CAAC,EACA,OAAO;;;AC3BV,SAAS,KAAAC,WAAS;AAuCX,IAAM,qCAAqC;AAClD,IAAM,cAAc,CAClB,QACA,aACuB;AACvB,QAAM,OAAO,oBAAI,IAAY;AAC7B,aAAW,SAAS,QAAQ;AAC1B,UAAM,MAAM,SAAS,KAAK;AAC1B,QAAI,KAAK,IAAI,GAAG,EAAG,QAAO;AAC1B,SAAK,IAAI,GAAG;AAAA,EACd;AACA,SAAO;AACT;AACA,IAAM,mBAAmB,CACvB,MACA,UAEA,kBAAkB,IAAI,MAAM,kBAAkB,KAAK,KACnD,KAAK,aAAa,MAAM,YACxB,KAAK,kBAAkB,MAAM,iBAC7B,KAAK,gBAAgB,MAAM;AACtB,IAAM,iBAAiBC,IAC3B,OAAO;AAAA,EACN,eAAe;AAAA,EACf,QAAQA,IAAE,OAAO,wBAAwBA,IAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AACnE,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,MACE,CAAC,OAAO,UAAU,eAAe,KAAK,MAAM,QAAQ,MAAM,aAAa,GACvE;AACA,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,UAAU,MAAM,aAAa;AAAA,MACpC,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACF,CAAC;AACI,IAAM,0BAA0BA,IACpC,OAAO;AAAA,EACN,MAAM;AAAA,EACN,IAAI;AAAA,EACJ,WAAW;AACb,CAAC,EACA,OAAO;AACH,IAAM,oBAAoBA,IAC9B,OAAO;AAAA,EACN,WAAW;AAAA,EACX,cAAc;AAAA,EACd,SAAS,wBAAwB,SAAS;AAC5C,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,QAAM,gBAAgB;AAAA,IACpB,CAAC,aAAa,MAAM,WAAW,QAAQ;AAAA,IACvC,CAAC,gBAAgB,MAAM,cAAc,YAAY;AAAA,IACjD,CAAC,WAAW,MAAM,SAAS,MAAM;AAAA,EACnC;AACA,gBAAc,QAAQ,CAAC,CAAC,OAAO,WAAW,YAAY,MAAM;AAC1D,QAAI,aAAa,UAAU,SAAS,cAAc;AAChD,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,OAAO,MAAM;AAAA,QACpB,SAAS,GAAG,KAAK,mBAAmB,YAAY;AAAA,MAClD,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AACH,CAAC;AACI,IAAM,4BAA4BA,IAAE,KAAK,CAAC,UAAU,UAAU,QAAQ,CAAC;AAC9E,IAAM,iBAAiB;AAAA,EACrB,MAAM;AAAA,EACN,IAAI;AAAA,EACJ,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,aAAa,kBAAkB,SAAS;AAC1C;AACA,IAAM,yBAAyB,CAC7B,OAIA,YACG;AACH,MAAI,MAAM,eAAe,YAAY,CAAC,MAAM,aAAa;AACvD,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,aAAa;AAAA,MACpB,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,MAAI,MAAM,eAAe,YAAY,MAAM,aAAa;AACtD,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,aAAa;AAAA,MACpB,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACF;AACO,IAAM,kBAAkBA,IAC5B,OAAO,cAAc,EACrB,OAAO,EACP,YAAY,sBAAsB;AAC9B,IAAM,oBAAoBA,IAC9B,OAAO;AAAA,EACN,GAAG;AAAA,EACH,UAAUA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AAAA,EACpC,eAAe;AAAA,EACf,aAAa;AACf,CAAC,EACA,OAAO,EACP,YAAY,sBAAsB;AACrC,IAAM,oBAAoB,CACxB,cACW,GAAG,UAAU,IAAI,IAAI,UAAU,EAAE,IAAI,UAAU,SAAS;AACrE,IAAM,iBAAiB,CAAC,UACtB,GAAG,kBAAkB,MAAM,SAAS,CAAC,IAAI,kBAAkB,MAAM,YAAY,CAAC,IAAI,MAAM,UAAU,kBAAkB,MAAM,OAAO,IAAI,EAAE;AACzI,IAAM,oBAAoB,CACxB,cAEA,GAAG,UAAU,UAAU,IAAI,UAAU,cAAc,eAAe,UAAU,WAAW,IAAI,EAAE,IAAI,UAAU,IAAI,IAAI,UAAU,EAAE,IAAI,UAAU,SAAS;AACxJ,IAAM,oCAAoC,CACxC,WACA,aACA,MACA,YACG;AACH,MACE,UAAU,eAAe,YACzB,UAAU,eACV,eAAe,UAAU,WAAW,MAAM,eAAe,WAAW,GACpE;AACA,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,GAAG,MAAM,aAAa;AAAA,MAC7B,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACF;AACO,IAAM,uBAAuBA,IACjC,OAAO;AAAA,EACN,UAAU;AAAA,EACV,cAAc;AAAA,EACd,WAAW;AAAA,EACX,YAAY,kBAAkB,SAAS;AAAA,EACvC,aAAa;AACf,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,MAAI,MAAM,SAAS,SAAS,MAAM,aAAa,MAAM;AACnD,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,gBAAgB,MAAM;AAAA,MAC7B,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,MAAI,MAAM,cAAc,MAAM,cAAc,MAAM,WAAW;AAC3D,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,YAAY;AAAA,MACnB,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACF,CAAC;AACI,IAAM,0BAA0BA,IACpC,OAAO;AAAA,EACN,UAAUA,IAAE,QAAQ,mBAAmB;AAAA,EACvC,eAAeA,IAAE,QAAQ,kCAAkC;AAAA,EAC3D,aAAa;AAAA,EACb,SAASA,IAAE,MAAM,oBAAoB;AAAA,EACrC,aAAa;AACf,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,QAAM,YAAY;AAAA,IAAY,MAAM;AAAA,IAAS,CAAC,UAC5C,kBAAkB,MAAM,QAAQ;AAAA,EAClC;AACA,MAAI;AACF,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,SAAS;AAAA,MAChB,SAAS,8BAA8B,SAAS;AAAA,IAClD,CAAC;AACL,CAAC;AACI,IAAM,6BAA6BA,IAAE,KAAK;AAAA,EAC/C;AAAA,EACA;AAAA,EACA;AACF,CAAC;AACM,IAAM,uBAAuBA,IAAE,KAAK,CAAC,UAAU,QAAQ,CAAC;AACxD,IAAM,qCAAqCA,IAAE;AAAA,EAClD;AAAA,EACA;AAAA,IACEA,IAAE,OAAO,EAAE,SAASA,IAAE,QAAQ,KAAK,EAAE,CAAC,EAAE,OAAO;AAAA,IAC/CA,IACG,OAAO;AAAA,MACN,SAASA,IAAE,QAAQ,IAAI;AAAA,MACvB,qBAAqBA,IAAE,KAAK;AAAA,QAC1B;AAAA,QACA;AAAA,MACF,CAAC;AAAA,IACH,CAAC,EACA,OAAO;AAAA,EACZ;AACF;AACO,IAAM,sCAAsCA,IAChD,OAAO;AAAA,EACN,SAAS;AAAA,EACT,QAAQ;AACV,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,MAAI,CAAC,MAAM,OAAO,QAAS;AAC3B,QAAM,oBACJ,MAAM,YAAY,WAAW,2BAA2B;AAC1D,MAAI,MAAM,OAAO,wBAAwB,mBAAmB;AAC1D,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,UAAU,qBAAqB;AAAA,MACtC,SAAS,OAAO,MAAM,OAAO;AAAA,IAC/B,CAAC;AAAA,EACH;AACF,CAAC;AACI,IAAM,0CAA0CA,IACpD,OAAO;AAAA,EACN,kBAAkB;AAAA,EAClB,QAAQ;AACV,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,MAAI,MAAM,iBAAiB,SAAS,SAAS;AAC3C,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,oBAAoB,MAAM;AAAA,MACjC,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACF,CAAC;AACH,IAAM,iBAAiB,gBAAgB,YAAY,CAAC,OAAO,YAAY;AACrE,MAAI,MAAM,SAAS;AACjB,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,MAAM;AAAA,MACb,SAAS;AAAA,IACX,CAAC;AACL,CAAC;AACD,IAAM,2BAA2B,kBAAkB;AAAA,EACjD,CAAC,OAAO,YAAY;AAClB,QAAI,MAAM,SAAS,oBAAoB;AACrC,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,MAAM;AAAA,QACb,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAAA,EACF;AACF;AACO,IAAM,qBAAqBA,IAC/B,OAAO;AAAA,EACN,eAAeA,IAAE,QAAQ;AAAA,EACzB,YAAYA,IAAE,MAAM,cAAc;AAAA,EAClC,YAAYA,IAAE,MAAM,cAAc;AAAA,EAClC,iBAAiBA,IAAE,MAAM,wBAAwB;AAAA,EACjD,iBAAiBA,IAAE,MAAM,wBAAwB;AAAA,EACjD,gBAAgBA,IAAE,MAAM,wBAAwB;AAClD,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,QAAM,SAEF;AAAA,IACF;AAAA,MACE;AAAA,MACA,MAAM;AAAA,MACN,CAAC,cACC,kBAAkB,SAA4C;AAAA,IAClE;AAAA,IACA;AAAA,MACE;AAAA,MACA,MAAM;AAAA,MACN,CAAC,cACC,kBAAkB,SAA4C;AAAA,IAClE;AAAA,IACA,CAAC,mBAAmB,MAAM,iBAAiB,MAAM;AAAA,IACjD,CAAC,mBAAmB,MAAM,iBAAiB,MAAM;AAAA,IACjD;AAAA,MACE;AAAA,MACA,MAAM;AAAA,MACN,CAAC,cACC,GAAG,kBAAkB,SAA4C,CAAC,IAAK,UAAgD,QAAQ;AAAA,IACnI;AAAA,EACF;AACA,SAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,QAAQ,MAAM;AAC5C,QAAI,YAAY,QAAQ,QAAQ;AAC9B,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,KAAK;AAAA,QACZ,SAAS,GAAG,KAAK;AAAA,MACnB,CAAC;AAAA,EACL,CAAC;AACH,CAAC;AAQI,IAAM,oCAAoCA,IAC9C,OAAO;AAAA,EACN,UAAUA,IAAE,QAAQ,6BAA6B;AAAA,EACjD,eAAeA,IAAE,QAAQ,kCAAkC;AAAA,EAC3D,UAAU;AAAA,EACV,cAAcA,IAAE,MAAMA,IAAE,MAAM,wBAAwB,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;AAAA,EACrE,gBAAgBA,IACb,OAAO;AAAA,IACN,YAAY;AAAA,IACZ,WAAW,kBAAkB,SAAS;AAAA,EACxC,CAAC,EACA,OAAO,EACP,SAAS;AACd,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,QAAM,YAAY,MAAM,aAAa,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC;AAC1E,YAAU,QAAQ,CAAC,KAAK,UAAU;AAChC,QAAI,IAAI,WAAW,MAAM,aAAa,KAAK,EAAE,QAAQ;AACnD,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,gBAAgB,KAAK;AAAA,QAC5B,SACE;AAAA,MACJ,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AACD,QAAM,aAAa,UAAU,IAAI,CAAC,QAAQ,IAAI,KAAK,IAAI,CAAC;AACxD,MAAI,IAAI,IAAI,UAAU,EAAE,SAAS,WAAW,QAAQ;AAClD,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,cAAc;AAAA,MACrB,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACF,CAAC;AACI,IAAM,yBAAyBA,IACnC,OAAO;AAAA,EACN,MAAM;AAAA,EACN,SAAS;AAAA,EACT,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,QAAQ;AACV,CAAC,EACA,OAAO;AACH,IAAM,0BAA0BA,IACpC,OAAO,EACP,KAAK,EACL,MAAM,aAAa,wCAAwC,EAC3D,YAAY,CAAC,OAAO,YAAY;AAC/B,MAAI,MAAM,SAAS,GAAG,KAAK,MAAM,SAAS,GAAG,KAAK,MAAM,SAAS,IAAI,GAAG;AACtE,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACA,MACE,MAAM,MAAM,GAAG,EAAE,KAAK,CAAC,YAAY,YAAY,OAAO,YAAY,IAAI,GACtE;AACA,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,MAAI,uBAAuB,KAAK,KAAK,KAAK,MAAM,SAAS,KAAK,GAAG;AAC/D,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACF,CAAC;AACI,IAAM,4BAA4BA,IACtC,OAAO;AAAA,EACN,MAAM;AAAA,EACN,MAAMA,IAAE,KAAK,CAAC,cAAc,WAAW,QAAQ,MAAM,CAAC;AAAA,EACtD,UAAUA,IAAE,QAAQ;AACtB,CAAC,EACA,OAAO;AACH,IAAM,mBAAmBA,IAC7B,OAAO;AAAA,EACN,UAAUA,IAAE,QAAQ,YAAY;AAAA,EAChC,eAAeA,IAAE,QAAQ,kCAAkC;AAAA,EAC3D,cAAc;AAAA,EACd,kBAAkB;AAAA,EAClB,UAAU;AAAA,EACV,eAAeA,IAAE,QAAQ;AAAA,EACzB,eAAeA,IAAE,KAAK,CAAC,YAAY,UAAU,SAAS,CAAC;AAAA,EACvD,eAAeA,IAAE,MAAM,uBAAuB;AAAA,EAC9C,YAAYA,IAAE,MAAM,yBAAyB;AAC/C,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,MAAI,YAAY,MAAM,YAAY,CAAC,cAAc,UAAU,IAAI,GAAG;AAChE,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,YAAY;AAAA,MACnB,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,MAAI,YAAY,MAAM,eAAe,CAAC,SAAS,IAAI,GAAG;AACpD,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,eAAe;AAAA,MACtB,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACF,CAAC;AACH,IAAM,uBAAuBA,IAC1B,OAAO;AAAA,EACN,MAAMA,IAAE,KAAK,CAAC,aAAa,SAAS,UAAU,CAAC;AAAA,EAC/C,uBAAuB;AAAA,EACvB,cAAc;AAAA,EACd,mBAAmB,gBAAgB,SAAS;AAC9C,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,MAAI,MAAM,sBAAsB,SAAS,eAAe;AACtD,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,yBAAyB,MAAM;AAAA,MACtC,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,MAAI,MAAM,SAAS,cAAc,CAAC,MAAM,mBAAmB;AACzD,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,mBAAmB;AAAA,MAC1B,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,MAAI,MAAM,SAAS,cAAc,MAAM,mBAAmB;AACxD,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,mBAAmB;AAAA,MAC1B,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACF,CAAC;AAOI,IAAM,yBAAyB;AAC/B,IAAM,mBAAmB,qBAAqB,WAAW;AAAA,EAC9D,SAAS;AACX,CAAC,EAAE,OAAO;AACV,IAAM,mCAAmCA,IACtC,OAAO;AAAA,EACN,eAAeA,IAAE,QAAQ;AAAA,EACzB,eAAeA,IAAE,KAAK,CAAC,YAAY,UAAU,SAAS,CAAC;AAAA,EACvD,YAAYA,IAAE,MAAM,yBAAyB;AAC/C,CAAC,EACA,OAAO;AACH,IAAM,6BACX,iCAAiC,WAAW;AAAA,EAC1C,SAAS;AACX,CAAC,EAAE,OAAO;AACL,IAAM,2BAA2B,iBAAiB,WAAW;AAAA,EAClE,gBAAgB;AAAA,EAChB,SAAS;AACX,CAAC,EACE,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,MAAI,MAAM,QAAQ,YAAY,MAAM,SAAS;AAC3C,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,WAAW,SAAS;AAAA,MAC3B,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACF,CAAC;AACH,IAAM,iCAAiC,uBAAuB,WAAW;AAAA,EACvE,gBAAgB;AAAA,EAChB,SAAS;AACX,CAAC,EAAE,OAAO;AACV,IAAM,8BAA8B,CAClC,QAMA,YACG;AACH,QAAM,eACJ,aAAa,OAAO,aAAa,OAAO,WAAW,UAAU;AAC/D,QAAM,iBACJ,aAAa,OAAO,WAAW,UAC3B,OAAO,WAAW,QAAQ,UAC1B;AACN,MAAI,iBAAiB,UAAa,mBAAmB,OAAW;AAChE,MAAI,iBAAiB,OAAO,WAAW,mBAAmB,OAAO;AAC/D;AACF,UAAQ,SAAS;AAAA,IACf,MAAM;AAAA,IACN,MAAM,CAAC,UAAU,YAAY;AAAA,IAC7B,SACE;AAAA,EACJ,CAAC;AACH;AACO,IAAM,yBAAyBA,IAAE,KAAK;AAAA,EAC3C;AAAA,EACA;AAAA,EACA;AACF,CAAC;AACM,IAAM,8BAA8BA,IAAE,KAAK;AAAA,EAChD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AACD,IAAM,uBAEF;AAAA,EACF,eAAe;AAAA,EACf,OAAO;AAAA,EACP,MAAM;AAAA,EACN,gBAAgB;AAAA,EAChB,WAAW;AAAA,EACX,qBAAqB;AAAA,EACrB,YAAY;AAAA,EACZ,sBAAsB;AAAA,EACtB,eAAe;AAAA,EACf,4BAA4B;AAAA,EAC5B,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,uBAAuB;AAAA,EACvB,mBAAmB;AAAA,EACnB,oBAAoB;AAAA,EACpB,MAAM;AAAA,EACN,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,kBAAkB;AAAA,EAClB,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,UAAU;AAAA,EACV,OAAO;AAAA,EACP,wBAAwB;AAAA,EACxB,QAAQ;AAAA,EACR,iBAAiB;AAAA,EACjB,sBAAsB;AAAA,EACtB,sBAAsB;AACxB;AACO,IAAM,0BAA0BA,IACpC,OAAO;AAAA,EACN,MAAM;AAAA,EACN,aAAa;AACf,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,QAAM,eAAe,qBAAqB,MAAM,IAAI;AACpD,MAAI,MAAM,YAAY,SAAS,cAAc;AAC3C,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,eAAe,MAAM;AAAA,MAC5B,SAAS,mBAAmB,MAAM,IAAI,4BAA4B,YAAY;AAAA,IAChF,CAAC;AAAA,EACH;AACF,CAAC;AACI,IAAM,0BAA0BA,IACpC,OAAO;AAAA,EACN,QAAQA,IAAE,KAAK,CAAC,QAAQ,MAAM,CAAC;AAAA,EAC/B,WAAW;AAAA,EACX,gBAAgBA,IAAE,MAAM,iBAAiB;AAC3C,CAAC,EACA,OAAO;AACH,IAAM,wBAAwBA,IAClC,OAAO;AAAA,EACN,oBAAoB;AAAA,EACpB,yBAAyB,kBAAkB,SAAS;AAAA,EACpD,YAAY;AAAA,EACZ,2BAA2B;AAAA,EAC3B,6BAA6B;AAAA,EAC7B,UAAU;AAAA,EACV,QAAQA,IAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,IAAI;AAAA,EACzC,gBAAgB;AAAA,EAChB,YAAY;AAAA,EACZ,cAAcA,IAAE,MAAM,iBAAiB,EAAE,IAAI,CAAC;AAChD,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,QAAM,gBAEF;AAAA,IACF,CAAC,sBAAsB,MAAM,oBAAoB,kBAAkB;AAAA,IACnE;AAAA,MACE;AAAA,MACA,MAAM;AAAA,MACN;AAAA,IACF;AAAA,IACA;AAAA,MACE;AAAA,MACA,MAAM;AAAA,MACN;AAAA,IACF;AAAA,IACA,CAAC,YAAY,MAAM,UAAU,OAAO;AAAA,EACtC;AACA,gBAAc,QAAQ,CAAC,CAAC,OAAO,WAAW,YAAY,MAAM;AAC1D,QAAI,UAAU,SAAS,cAAc;AACnC,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,OAAO,MAAM;AAAA,QACpB,SAAS,GAAG,KAAK,mBAAmB,YAAY;AAAA,MAClD,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AACD,QAAM,aAAa,QAAQ,CAAC,WAAW,UAAU;AAC/C,QAAI,UAAU,SAAS;AACrB,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,gBAAgB,OAAO,MAAM;AAAA,QACpC,SAAS;AAAA,MACX,CAAC;AAAA,EACL,CAAC;AACH,CAAC;AACI,IAAM,iCAAiCA,IAC3C,OAAO;AAAA,EACN,aAAaA,IAAE,KAAK;AAAA,IAClB;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAAA,EACD,eAAe;AAAA,EACf,oBAAoB;AAAA,EACpB,yBAAyB,kBAAkB,SAAS;AACtD,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,MACE,MAAM,mBAAmB,SAAS,MAAM,eACxC,MAAM,mBAAmB,OAAO,MAAM,eACtC;AACA,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,oBAAoB;AAAA,MAC3B,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACA,MACE,MAAM,4BACL,MAAM,wBAAwB,SAAS,MAAM,eAC5C,MAAM,wBAAwB,OAAO,MAAM,gBAC7C;AACA,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,yBAAyB;AAAA,MAChC,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACF,CAAC;AACI,IAAM,wBAAwBA,IAClC,OAAO;AAAA,EACN,UAAUA,IAAE,QAAQ,iBAAiB;AAAA,EACrC,eAAeA,IAAE,QAAQ,kCAAkC;AAAA,EAC3D,QAAQ;AAAA,EACR,aAAa;AAAA,EACb,gBAAgB;AAAA,EAChB,YAAYA,IAAE,MAAM,8BAA8B,EAAE,IAAI,CAAC;AAAA,EACzD,YAAY;AAAA,EACZ,2BAA2B;AAAA,EAC3B,6BAA6B;AAAA,EAC7B,UAAU;AAAA,EACV,gBAAgB;AAAA,EAChB,cAAcA,IAAE,MAAM,iBAAiB,EAAE,IAAI,CAAC;AAAA,EAC9C,WAAW;AACb,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,MAAI,MAAM,eAAe,SAAS;AAChC,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,kBAAkB,MAAM;AAAA,MAC/B,SAAS;AAAA,IACX,CAAC;AACH;AAAA,IACE,MAAM;AAAA,IACN,MAAM;AAAA,IACN,CAAC,gBAAgB;AAAA,IACjB;AAAA,EACF;AACA,QAAM,eAEF;AAAA,IACF;AAAA,MACE;AAAA,MACA,MAAM;AAAA,MACN;AAAA,IACF;AAAA,IACA;AAAA,MACE;AAAA,MACA,MAAM;AAAA,MACN;AAAA,IACF;AAAA,IACA,CAAC,YAAY,MAAM,UAAU,OAAO;AAAA,EACtC;AACA,eAAa,QAAQ,CAAC,CAAC,OAAO,WAAW,YAAY,MAAM;AACzD,QAAI,UAAU,SAAS;AACrB,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,OAAO,MAAM;AAAA,QACpB,SAAS,GAAG,KAAK,mBAAmB,YAAY;AAAA,MAClD,CAAC;AACH;AAAA,MACE;AAAA,MACA,MAAM;AAAA,MACN,CAAC,KAAK;AAAA,MACN;AAAA,IACF;AAAA,EACF,CAAC;AACD,QAAM,WAAW,QAAQ,CAAC,WAAW,UAAU;AAC7C,KAAC,UAAU,oBAAoB,UAAU,uBAAuB,EAAE;AAAA,MAChE,CAAC,WAAW,mBAAmB;AAC7B,YACE,WAAW,eACX,eAAe,UAAU,WAAW,MAClC,eAAe,MAAM,WAAW,GAClC;AACA,gBAAM,QACJ,mBAAmB,IACf,uBACA;AACN,kBAAQ,SAAS;AAAA,YACf,MAAM;AAAA,YACN,MAAM,CAAC,cAAc,OAAO,OAAO,aAAa;AAAA,YAChD,SACE;AAAA,UACJ,CAAC;AAAA,QACH;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAC;AACD,QAAM,aAAa,QAAQ,CAAC,WAAW,UAAU;AAC/C,QAAI,UAAU,SAAS;AACrB,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,gBAAgB,OAAO,MAAM;AAAA,QACpC,SACE;AAAA,MACJ,CAAC;AACH;AAAA,MACE;AAAA,MACA,MAAM;AAAA,MACN,CAAC,gBAAgB,KAAK;AAAA,MACtB;AAAA,IACF;AAAA,EACF,CAAC;AACD,MACE;AAAA,IACE,MAAM;AAAA,IACN,CAAC,cAAc,GAAG,UAAU,WAAW,IAAI,UAAU,aAAa;AAAA,EACpE,GACA;AACA,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,YAAY;AAAA,MACnB,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACF,CAAC;AACH,IAAM,iBAAiBA,IACpB,OAAO;AAAA,EACN,MAAM;AAAA,EACN,aAAa,eAAe,SAAS;AAAA,EACrC,MAAMA,IAAE,MAAM,wBAAwB,EAAE,QAAQ,CAAC,CAAC;AACpD,CAAC,EACA,OAAO;AACH,IAAM,0BAA0B,eAAe,OAAO;AAAA,EAC3D,SAAS,gBAAgB,SAAS;AACpC,CAAC,EAAE,OAAO;AACH,IAAM,8BAA8BA,IACxC,OAAO;AAAA,EACN,0BAA0B;AAAA,EAC1B,mBAAmB;AAAA,EACnB,4BAA4B;AAC9B,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,MACE,MAAM,kBAAkB,gBAAgB,MAAM,4BAC9C;AACA,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,4BAA4B;AAAA,MACnC,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACF,CAAC;AAOI,IAAM,yCAAyCA,IACnD,OAAO;AAAA,EACN,UAAUA,IAAE,QAAQ,kCAAkC;AAAA,EACtD,eAAeA,IAAE,QAAQ,kCAAkC;AAAA,EAC3D,uBAAuB;AAAA,EACvB,gBAAgB;AAAA,EAChB,0BAA0B;AAAA,EAC1B,mBAAmB;AAAA,EACnB,4BAA4B;AAAA,EAC5B,mBAAmB;AAAA,EACnB,0BAA0BA,IACvB,OAAO,EAAE,OAAOA,IAAE,OAAO,EAAE,IAAI,GAAG,oBAAoBA,IAAE,QAAQ,EAAE,CAAC,EACnE,OAAO,EACP,SAAS;AAAA,EACZ,aAAa;AACf,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,MAAI,MAAM,sBAAsB,SAAS,eAAe;AACtD,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,yBAAyB,MAAM;AAAA,MACtC,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,MAAI,MAAM,yBAAyB,SAAS,wBAAwB;AAClE,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,4BAA4B,MAAM;AAAA,MACzC,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,MAAI,CAAC,CAAC,QAAQ,WAAW,EAAE,SAAS,MAAM,kBAAkB,IAAI,GAAG;AACjE,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,qBAAqB,MAAM;AAAA,MAClC,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,MACE,MAAM,kBAAkB,gBAAgB,MAAM,4BAC9C;AACA,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,4BAA4B;AAAA,MACnC,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACA,MACE,MAAM,kBAAkB,SAAS,eACjC,CAAC,MAAM,0BACP;AACA,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,0BAA0B;AAAA,MACjC,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACA,MACE,MAAM,kBAAkB,SAAS,UACjC,MAAM,0BACN;AACA,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,0BAA0B;AAAA,MACjC,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACF,CAAC;AAEI,IAAM,8BAA8B,iBAAiB,WAAW;AAAA,EACrE,kCACE,uCAAuC,SAAS;AACpD,CAAC,EAAE,OAAO;AACV,IAAM,oCAAoC,uBAAuB,WAAW;AAAA,EAC1E,kCACE,uCAAuC,SAAS;AACpD,CAAC,EAAE,OAAO;AACV,IAAM,gCAAgC,CACpC,mBACA,aAIA,YACG;AACH,MAAI,YAAY,mBAAmB,CAAC,YAAY,OAAO,GAAG;AACxD,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,mBAAmB;AAAA,MAC1B,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,QAAM,iBAAiB,YAAY;AAAA,IACjC,CAAC,UACC,aAAa;AAAA,EACjB;AACA,MAAI,eAAe,SAAS,KAAK,eAAe,SAAS,YAAY,QAAQ;AAC3E,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,aAAa;AAAA,MACpB,SACE;AAAA,IACJ,CAAC;AACD;AAAA,EACF;AACA,cAAY,QAAQ,CAAC,OAAO,UAAU;AACpC,QAAI,aAAa,SAAS,CAAC,kBAAkB,SAAS,MAAM,OAAO,GAAG;AACpE,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,eAAe,OAAO,SAAS;AAAA,QACtC,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AACD,MAAI,eAAe,WAAW,YAAY,OAAQ;AAClD,oBAAkB,QAAQ,CAAC,YAAY;AACrC,UAAM,iBAAiB,eAAe;AAAA,MACpC,CAAC,UAAU,MAAM,YAAY,WAAW,MAAM,SAAS;AAAA,IACzD,EAAE;AACF,QAAI,mBAAmB,GAAG;AACxB,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,aAAa;AAAA,QACpB,SAAS,WAAW,OAAO;AAAA,MAC7B,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AACH;AACA,IAAM,mBAAmB;AAAA,EACvB,eAAeA,IAAE,QAAQ,kCAAkC;AAAA,EAC3D,eAAe;AAAA,EACf,aAAa;AAAA,EACb,WAAW;AAAA,EACX,mBAAmB,4BAA4B,SAAS;AAAA,EACxD,oBAAoBA,IAAE,MAAM,uBAAuB;AAAA,EACnD,UAAU;AACZ;AACA,IAAM,4BAA4B,CAChC,OAIA,qBACA,YACG;AACH,MAAI,MAAM,cAAc,cAAc,MAAM,mBAAmB;AAC7D,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,mBAAmB;AAAA,MAC1B,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACA,MACE,MAAM,mBAAmB,yBAAyB,SAAS,UAC3D,MAAM,kBAAkB,yBAAyB,SAC/C,qBACF;AACA,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,qBAAqB,4BAA4B,MAAM;AAAA,MAC9D,SAAS,4CAA4C,mBAAmB;AAAA,IAC1E,CAAC;AAAA,EACH;AACF;AACA,IAAM,6BAA6B,CACjC,UACA,YACG;AACH,QAAM,YAAY;AAAA,IAChB;AAAA,IACA,CAAC,eACC,GAAG,WAAW,IAAI,IAAI,kBAAkB,WAAW,WAAW,CAAC,IAAI,WAAW,YAAY,QAAQ;AAAA,EACtG;AACA,MAAI;AACF,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,oBAAoB;AAAA,MAC3B,SAAS,yBAAyB,SAAS;AAAA,IAC7C,CAAC;AACL;AACA,IAAM,iCAAiC,CACrC,OAMA,cACA,YACG;AACH,QAAM,eAAe,MAAM,SAAS;AACpC,MACE,iBACC,aAAa,SAAS,gBACrB,aAAa,OAAO,MAAM,gBAC5B;AACA,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,YAAY,yBAAyB;AAAA,MAC5C,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,MACE,cAAc,eACd,eAAe,aAAa,WAAW,MACrC,eAAe,MAAM,WAAW,GAClC;AACA,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,YAAY,2BAA2B,aAAa;AAAA,MAC3D,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,QAAM,uBAEF;AAAA,IACF,CAAC,CAAC,YAAY,oBAAoB,GAAG,MAAM,SAAS,kBAAkB;AAAA,IACtE;AAAA,MACE,CAAC,YAAY,2BAA2B;AAAA,MACxC,MAAM,SAAS;AAAA,IACjB;AAAA,IACA;AAAA,MACE,CAAC,YAAY,6BAA6B;AAAA,MAC1C,MAAM,SAAS;AAAA,IACjB;AAAA,IACA,CAAC,CAAC,YAAY,UAAU,GAAG,MAAM,SAAS,QAAQ;AAAA,IAClD,GAAG,MAAM,SAAS,WAAW,eAAe;AAAA,MAC1C,CAAC,WAAW,UACV;AAAA,QACE,CAAC,YAAY,cAAc,kBAAkB,KAAK;AAAA,QAClD;AAAA,MACF;AAAA,IACJ;AAAA,IACA,GAAG,MAAM,SAAS,aAAa;AAAA,MAC7B,CAAC,WAAW,UACV,CAAC,CAAC,YAAY,gBAAgB,KAAK,GAAG,SAAS;AAAA,IACnD;AAAA,IACA,GAAI,eACA,CAAC,CAAC,CAAC,YAAY,yBAAyB,GAAG,YAAY,CAAU,IACjE,CAAC;AAAA,IACL,GAAI,MAAM,oBACN;AAAA,MACE;AAAA,QACE,CAAC,qBAAqB,0BAA0B;AAAA,QAChD,MAAM,kBAAkB;AAAA,MAC1B;AAAA,MACA;AAAA,QACE,CAAC,qBAAqB,mBAAmB;AAAA,QACzC,MAAM,kBAAkB;AAAA,MAC1B;AAAA,IACF,IACA,CAAC;AAAA,EACP;AACA,uBAAqB;AAAA,IAAQ,CAAC,CAAC,MAAM,SAAS,MAC5C;AAAA,MACE;AAAA,MACA,MAAM;AAAA,MACN,CAAC,GAAG,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACF;AACO,IAAM,sBAAsBA,IAAE,mBAAmB,QAAQ;AAAA,EAC9DA,IACG,OAAO;AAAA,IACN,MAAMA,IAAE,QAAQ,aAAa;AAAA,IAC7B,MAAMA,IACH,OAAO,EACP,KAAK,EACL,IAAI,CAAC,EACL,IAAI,IAAI,EACR,MAAM,mBAAmB,EACzB;AAAA,MACC,CAAC,SACC,KAAK,MAAM,GAAG,EAAE,UAAU,MAC1B,KACG,MAAM,GAAG,EACT;AAAA,QACC,CAAC,SACC,KAAK,SAAS,KACd,CAAC,CAAC,aAAa,aAAa,aAAa,EAAE,SAAS,IAAI;AAAA,MAC5D;AAAA,MACJ;AAAA,IACF;AAAA,EACJ,CAAC,EACA,OAAO;AAAA,EACVA,IACG,OAAO;AAAA,IACN,MAAMA,IAAE,QAAQ,eAAe;AAAA,IAC/B,WAAW;AAAA,IACX,MAAMA,IACH,OAAO,EACP,KAAK,EACL,MAAM,mBAAmB;AAAA,EAC9B,CAAC,EACA,OAAO;AAAA,EACVA,IACG,OAAO;AAAA,IACN,MAAMA,IAAE,QAAQ,UAAU;AAAA,IAC1B,OAAOA,IAAE,MAAM,CAACA,IAAE,OAAO,GAAGA,IAAE,OAAO,EAAE,OAAO,GAAGA,IAAE,QAAQ,GAAGA,IAAE,KAAK,CAAC,CAAC;AAAA,EACzE,CAAC,EACA,OAAO;AAAA,EACVA,IACG,OAAO;AAAA,IACN,MAAMA,IAAE,QAAQ,iBAAiB;AAAA,IACjC,MAAM;AAAA,EACR,CAAC,EACA,OAAO;AAAA,EACVA,IACG,OAAO;AAAA,IACN,MAAMA,IAAE,QAAQ,iBAAiB;AAAA,IACjC,MAAM;AAAA,EACR,CAAC,EACA,OAAO;AAAA,EACVA,IACG,OAAO;AAAA,IACN,MAAMA,IAAE,QAAQ,UAAU;AAAA,IAC1B,MAAMA,IAAE,KAAK,CAAC,YAAY,UAAU,QAAQ,CAAC;AAAA,EAC/C,CAAC,EAEA,OAAO;AAAA,EACVA,IACG,OAAO;AAAA,IACN,MAAMA,IAAE,QAAQ,cAAc;AAAA,IAC9B,MAAMA,IACH,OAAO,EACP,KAAK,EACL,MAAM,mBAAmB;AAAA,EAC9B,CAAC,EACA,OAAO;AAAA,EACVA,IACG,OAAO;AAAA,IACN,MAAMA,IAAE,QAAQ,YAAY;AAAA,IAC5B,SAAS;AAAA,EACX,CAAC,EACA,OAAO;AACZ,CAAC;AACD,IAAM,gCAAgCA,IACnC,OAAO,EAAE,MAAMA,IAAE,QAAQ,YAAY,GAAG,YAAY,qBAAqB,CAAC,EAC1E,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,MACE,2BAA2B,MAAM,UAAU,EAAE;AAAA,IAC3C,CAAC,SAAS,KAAK,SAAS;AAAA,EAC1B;AAEA,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,YAAY;AAAA,MACnB,SACE;AAAA,IACJ,CAAC;AACL,CAAC;AACH,IAAM,+BAA+BA,IAClC,OAAO;AAAA,EACN,MAAMA,IAAE,QAAQ,YAAY;AAAA,EAC5B,aAAa;AAAA,EACb,MAAMA,IAAE,KAAK,CAAC,YAAY,WAAW,cAAc,CAAC;AACtD,CAAC,EACA,OAAO;AACV,IAAM,wBAAwBA,IAC3B,OAAO;AAAA,EACN,SAAS;AAAA,EACT,QAAQA,IAAE,mBAAmB,QAAQ;AAAA,IACnCA,IACG,OAAO;AAAA,MACN,MAAMA,IAAE,QAAQ,YAAY;AAAA,MAC5B,SAAS;AAAA,IACX,CAAC,EACA,OAAO;AAAA,IACVA,IACG,OAAO;AAAA,MACN,MAAMA,IAAE,QAAQ,cAAc;AAAA,MAC9B,MAAMA,IACH,OAAO,EACP,KAAK,EACL,MAAM,mBAAmB;AAAA,IAC9B,CAAC,EACA,OAAO;AAAA,EACZ,CAAC;AAAA,EACD,UAAUA,IAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,UAAU;AAAA,EAChD,QAAQA,IAAE,OAAO,EAAE,SAAS,kBAAkB,CAAC,EAAE,OAAO,EAAE,SAAS;AAAA,EACnE,QAAQA,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,SAAS;AAC9C,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,MAAI,CAAC,MAAM,UAAU,MAAM,WAAW;AACpC,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,UAAU;AAAA,MACjB,SAAS;AAAA,IACX,CAAC;AACL,CAAC;AACH,IAAM,iCAAiCA,IAAE,mBAAmB,QAAQ;AAAA,EAClE,GAAG,oBAAoB;AAAA,EACvB;AAAA,EACA;AACF,CAAC;AACD,IAAM,iCAAiCA,IAAE,mBAAmB,QAAQ;AAAA,EAClE;AAAA,EACAA,IACG,OAAO;AAAA,IACN,MAAMA,IAAE,QAAQ,UAAU;AAAA,IAC1B,OAAOA,IAAE,MAAM,CAACA,IAAE,OAAO,GAAGA,IAAE,OAAO,EAAE,OAAO,GAAGA,IAAE,QAAQ,GAAGA,IAAE,KAAK,CAAC,CAAC;AAAA,EACzE,CAAC,EACA,OAAO;AAAA,EACVA,IACG,OAAO;AAAA,IACN,MAAMA,IAAE,QAAQ,cAAc;AAAA,IAC9B,MAAMA,IACH,OAAO,EACP,KAAK,EACL,MAAM,mBAAmB;AAAA,EAC9B,CAAC,EACA,OAAO;AAAA,EACVA,IACG,OAAO;AAAA,IACN,MAAMA,IAAE,QAAQ,cAAc;AAAA,IAC9B,MAAMA,IACH,OAAO,EACP,KAAK,EACL,MAAM,mBAAmB;AAAA,EAC9B,CAAC,EACA,OAAO;AAAA,EACVA,IACG,OAAO;AAAA,IACN,MAAMA,IAAE,QAAQ,YAAY;AAAA,IAC5B,SAAS;AAAA,EACX,CAAC,EACA,OAAO;AACZ,CAAC;AACD,IAAM,mCAAmCA,IAAE,MAAM;AAAA,EAC/CA,IAAE,OAAO;AAAA,EACTA,IAAE,OAAO,EAAE,OAAO;AAAA,EAClBA,IAAE,QAAQ;AAAA,EACVA,IAAE,KAAK;AACT,CAAC;AACM,IAAM,2BAA2BA,IAAE,mBAAmB,aAAa;AAAA,EACxEA,IACG,OAAO;AAAA,IACN,SAAS;AAAA,IACT,WAAWA,IAAE,QAAQ,QAAQ;AAAA,IAC7B,OAAO;AAAA,EACT,CAAC,EACA,OAAO;AAAA,EACVA,IACG,OAAO;AAAA,IACN,SAAS;AAAA,IACT,WAAWA,IAAE,QAAQ,YAAY;AAAA,IACjC,OAAO;AAAA,EACT,CAAC,EACA,OAAO;AAAA,EACVA,IACG,OAAO;AAAA,IACN,SAAS;AAAA,IACT,WAAWA,IAAE,QAAQ,QAAQ;AAAA,EAC/B,CAAC,EACA,OAAO;AACZ,CAAC;AAWM,IAAM,4BAA4DA,IAAE;AAAA,EACzE,MACEA,IACG,OAAO;AAAA,IACN,UAAUA,IAAE,KAAK,CAAC,OAAO,KAAK,CAAC;AAAA,IAC/B,YAAYA,IACT,MAAMA,IAAE,MAAM,CAAC,0BAA0B,yBAAyB,CAAC,CAAC,EACpE,IAAI,CAAC;AAAA,EACV,CAAC,EACA,OAAO;AACd;AACA,IAAM,4BAA4B,CAChC,YACA,OACA,OAA+B,CAAC,MACvB;AACT,aAAW,WAAW,QAAQ,CAAC,WAAW,UAAU;AAClD,UAAM,gBAAgB,CAAC,GAAG,MAAM,cAAc,KAAK;AACnD,QAAI,cAAc,WAAW;AAC3B,gCAA0B,WAAW,OAAO,aAAa;AACzD;AAAA,IACF;AACA,UAAM,WAAW,aAAa;AAAA,EAChC,CAAC;AACH;AACA,IAAM,6BAA6BA,IAAE,mBAAmB,QAAQ;AAAA,EAC9DA,IACG,OAAO;AAAA,IACN,MAAMA,IAAE,QAAQ,iBAAiB;AAAA,IACjC,MAAM;AAAA,EACR,CAAC,EACA,OAAO;AAAA,EACVA,IACG,OAAO;AAAA,IACN,MAAMA,IAAE,QAAQ,UAAU;AAAA,IAC1B,OAAOA,IAAE,MAAM,CAACA,IAAE,OAAO,GAAGA,IAAE,OAAO,EAAE,OAAO,GAAGA,IAAE,QAAQ,CAAC,CAAC;AAAA,EAC/D,CAAC,EACA,OAAO;AAAA,EACVA,IACG,OAAO;AAAA,IACN,MAAMA,IAAE,QAAQ,YAAY;AAAA,IAC5B,SAAS;AAAA,EACX,CAAC,EACA,OAAO;AACZ,CAAC;AAMM,IAAM,4BAA4BA,IACtC,OAAO;AAAA,EACN,iBAAiBA,IAAE,KAAK,CAAC,QAAQ,KAAK,CAAC,EAAE,SAAS;AAAA,EAClD,eAAeA,IACZ,OAAO;AAAA,IACN,sBAAsB;AAAA,IACtB,MAAM;AAAA,EACR,CAAC,EACA,OAAO,EACP,SAAS;AAAA,EACZ,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,gBAAgBA,IAAE;AAAA,IAChB;AAAA,IACA;AAAA,EACF;AAAA,EACA,OAAOA,IACJ,OAAO;AAAA,IACN,UAAUA,IAAE,QAAQ;AAAA,IACpB,QAAQA,IAAE,MAAM,wBAAwB;AAAA,IACxC,KAAKA,IAAE,OAAO,0BAA0B,0BAA0B;AAAA,EACpE,CAAC,EACA,OAAO;AACZ,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,MAAK,MAAM,oBAAoB,UAAW,QAAQ,MAAM,aAAa,GAAG;AACtE,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,eAAe;AAAA,MACtB,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACA,MAAI,CAAC,CAAC,QAAQ,WAAW,EAAE,SAAS,MAAM,UAAU,IAAI,GAAG;AACzD,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,aAAa,MAAM;AAAA,MAC1B,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACA,MAAI,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,SAAS,MAAM,MAAM,OAAO,QAAQ;AAClE,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,SAAS,QAAQ;AAAA,MACxB,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACF,CAAC;AACI,IAAM,oCACX,0BAA0B,WAAW;AAAA,EACnC,mBAAmB;AAAA,EACnB,0BAA0B,kBAAkB,SAAS;AAAA,EACrD,oBAAoB;AAAA,EACpB,kBAAkB;AACpB,CAAC,EAAE,OAAO;AACL,IAAM,sCAAsCA,IAChD,OAAO;AAAA,EACN,YAAYA,IAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,EAC5C,UAAUA,IACP;AAAA,IACCA,IAAE,MAAM;AAAA,MACNA,IAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,MAChCA,IAAE,OAAO,EAAE,SAAS,yBAAyB,CAAC,EAAE,OAAO;AAAA,IACzD,CAAC;AAAA,EACH,EACC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS;AAAA,EACZ,WAAWA,IAAE,KAAK,CAAC,UAAU,UAAU,cAAc,MAAM,CAAC;AAC9D,CAAC,EACA,OAAO;AACH,IAAM,4BAA4BA,IACtC,OAAO;AAAA,EACN,SAAS;AAAA,EACT,aAAa,yBAAyB,SAAS;AAAA,EAC/C,cAAc,qBAAqB,SAAS;AAAA,EAC5C,mBAAmB;AAAA,EACnB,cAAc,gBAAgB,SAAS;AAAA,EACvC,aAAaA,IAAE,KAAK;AAAA,IAClB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAAA,EACD,cAAcA,IAAE,KAAK,CAAC,eAAe,OAAO,CAAC,EAAE,SAAS;AAAA,EACxD,4BAA4B,yBAAyB,SAAS;AAAA,EAC9D,+BACE,oCAAoC,SAAS;AACjD,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,MAAI,MAAM,eAAe,MAAM,gBAAgB;AAC7C,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,aAAa;AAAA,MACpB,SACE;AAAA,IACJ,CAAC;AACH,MACE,MAAM,gBACN,CAAC,MAAM,gBACN,MAAM,gBAAgB,UACrB,MAAM,aAAa,SAAS,UAC5B,MAAM,aAAa,SAAS,WAC5B,MAAM,aAAa,KAAK,WAAW;AAErC,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,cAAc;AAAA,MACrB,SACE;AAAA,IACJ,CAAC;AACH,MAAI,MAAM,kBAAkB,SAAS,UAAU;AAC7C,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,qBAAqB,MAAM;AAAA,MAClC,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,MACE,MAAM,+BAA+B,UACrC,MAAM,gBAAgB,uBACtB,MAAM,gBAAgB,8BACtB;AACA,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,4BAA4B;AAAA,MACnC,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,MACE,MAAM,iBAAiB,UACvB,MAAM,gBAAgB,SACtB,MAAM,gBAAgB,8BACtB;AACA,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,cAAc;AAAA,MACrB,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACF,CAAC;AACI,IAAM,2BAA2BA,IACrC,OAAO;AAAA,EACN,WAAW;AAAA,EACX,QAAQA,IACL,OAAO;AAAA,IACN,sBAAsB;AAAA,IACtB,MAAM;AAAA,EACR,CAAC,EACA,OAAO;AAAA,EACV,+BAA+B;AAAA,EAC/B,+BAA+B,kBAAkB,SAAS;AAAA,EAC1D,eAAe;AAAA,EACf,YAAYA,IAAE,KAAK,CAAC,OAAO,SAAS,UAAU,UAAU,UAAU,OAAO,CAAC;AAAA,EAC1E,cAAcA,IAAE;AAAA,IACd;AAAA,IACA;AAAA,EACF;AACF,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,MAAI,MAAM,8BAA8B,SAAS,UAAU;AACzD,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,iCAAiC,MAAM;AAAA,MAC9C,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,QAAM,aAAa,OAAO,OAAO,MAAM,YAAY,EAAE;AAAA,IACnD,CAAC,WACC,OAAO,SAAS,kBACf,OAAO,SAAS,gBACf,2BAA2B,OAAO,UAAU,EAAE;AAAA,MAC5C,CAAC,SAAS,KAAK,SAAS;AAAA,IAC1B;AAAA,EACN;AACA,MAAI,cAAc,CAAC,MAAM,+BAA+B;AACtD,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,+BAA+B;AAAA,MACtC,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACA,MACE,MAAM,+BAA+B,SAAS,UAC9C,MAAM,8BAA8B,SAAS,UAC7C;AACA,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,iCAAiC,MAAM;AAAA,MAC9C,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,MAAI,CAAC,cAAc,MAAM,+BAA+B;AACtD,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,+BAA+B;AAAA,MACtC,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACA,QAAM,eAAe,OAAO,KAAK,MAAM,YAAY;AACnD,OACG,MAAM,eAAe,YAAY,MAAM,eAAe,YACvD,aAAa,SAAS,GACtB;AACA,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,cAAc;AAAA,MACrB,SAAS,GAAG,MAAM,UAAU;AAAA,IAC9B,CAAC;AAAA,EACH;AACA,MACE,MAAM,eAAe,YACrB,MAAM,eAAe,WACrB,aAAa,WAAW,GACxB;AACA,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,cAAc;AAAA,MACrB,SAAS,GAAG,MAAM,UAAU;AAAA,IAC9B,CAAC;AAAA,EACH;AACF,CAAC;AACI,IAAM,oCAAoCA,IAAE,KAAK;AAAA,EACtD;AAAA,EACA;AAAA,EACA;AACF,CAAC;AACM,IAAM,6CAA6CA,IACvD,OAAO;AAAA,EACN,MAAMA,IAAE,QAAQ,kBAAkB;AAAA,EAClC,cAAc;AAChB,CAAC,EACA,OAAO;AACH,IAAM,+CAA+CA,IACzD,OAAO;AAAA,EACN,MAAMA,IAAE,QAAQ,oBAAoB;AACtC,CAAC,EACA,OAAO;AACH,IAAM,8BAA8BA,IAAE,mBAAmB,QAAQ;AAAA,EACtEA,IAAE,OAAO,EAAE,MAAMA,IAAE,QAAQ,YAAY,EAAE,CAAC,EAAE,OAAO;AAAA,EACnDA,IACG,OAAO;AAAA,IACN,MAAMA,IAAE,QAAQ,gBAAgB;AAAA,IAChC,UAAUA,IAAE,KAAK,CAAC,YAAY,MAAM,CAAC;AAAA,IACrC,qBAAqB,yBAAyB,SAAS;AAAA,EACzD,CAAC,EACA,OAAO,EACP,YAAY,CAAC,QAAQ,YAAY;AAChC,QAAI,OAAO,aAAa,UAAU,CAAC,OAAO,qBAAqB;AAC7D,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,qBAAqB;AAAA,QAC5B,SACE;AAAA,MACJ,CAAC;AAAA,IACH;AACA,QAAI,OAAO,aAAa,cAAc,OAAO,qBAAqB;AAChE,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,qBAAqB;AAAA,QAC5B,SACE;AAAA,MACJ,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AAAA,EACHA,IACG,OAAO;AAAA,IACN,MAAMA,IAAE,QAAQ,qBAAqB;AAAA,IACrC,qBAAqB;AAAA,IACrB,iBAAiB;AAAA,EACnB,CAAC,EACA,OAAO;AAAA,EACVA,IAAE,OAAO,EAAE,MAAMA,IAAE,QAAQ,YAAY,EAAE,CAAC,EAAE,OAAO;AAAA,EACnD;AAAA,EACA;AACF,CAAC;AACM,IAAM,8BAA8BA,IACxC,OAAO;AAAA,EACN,UAAUA,IAAE,QAAQ,uBAAuB;AAAA,EAC3C,eAAeA,IAAE,QAAQ,kCAAkC;AAAA,EAC3D,SAAS;AAAA,EACT,aAAa;AAAA,EACb,YAAY,4BAA4B,SAAS;AAAA,EACjD,YAAY,gBAAgB,SAAS;AAAA,EACrC,+BAA+B,kBAAkB,SAAS;AAAA,EAC1D,iBAAiB,kBAAkB,SAAS;AAAA,EAC5C,8BAA8B,kBAAkB,SAAS;AAAA,EACzD,wBAAwB;AAAA,EACxB,yBAAyB;AAAA,EACzB,cAAc;AAAA,EACd,iBAAiBA,IAAE,QAAQ,IAAI;AACjC,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,QAAM,aAAa,MAAM,YAAY,QAAQ;AAC7C,QAAM,gBAAgB;AAAA,IACpB,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AACA,MACE,eAAe,gBACf,cAAc,KAAK,CAAC,cAAc,CAAC,SAAS,GAC5C;AACA,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,YAAY;AAAA,MACnB,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACA,MAAI,eAAe,gBAAgB,cAAc,KAAK,OAAO,GAAG;AAC9D,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,YAAY;AAAA,MACnB,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,MACE,MAAM,eACL,CAAC,MAAM,cAAc,MAAM,WAAW,YAAY,SACnD;AACA,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,YAAY;AAAA,MACnB,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACA,QAAM,OAEF;AAAA,IACF,GAAI,eAAe,gBAAgB,MAAM,gCACrC;AAAA,MACE;AAAA,QACE;AAAA,QACA,MAAM;AAAA,QACN;AAAA,MACF;AAAA,IACF,IACA,CAAC;AAAA,IACL,GAAI,eAAe,gBAAgB,MAAM,kBACrC,CAAC,CAAC,mBAAmB,MAAM,iBAAiB,MAAM,CAAU,IAC5D,CAAC;AAAA,IACL,GAAI,eAAe,gBAAgB,MAAM,+BACrC;AAAA,MACE;AAAA,QACE;AAAA,QACA,MAAM;AAAA,QACN;AAAA,MACF;AAAA,IACF,IACA,CAAC;AAAA,IACL,CAAC,0BAA0B,MAAM,wBAAwB,QAAQ;AAAA,IACjE,CAAC,2BAA2B,MAAM,yBAAyB,QAAQ;AAAA,EACrE;AACA,OAAK,QAAQ,CAAC,CAAC,OAAO,WAAW,YAAY,MAAM;AACjD,QAAI,UAAU,SAAS,cAAc;AACnC,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,OAAO,MAAM;AAAA,QACpB,SAAS,GAAG,KAAK,mBAAmB,YAAY;AAAA,MAClD,CAAC;AAAA,IACH;AACA;AAAA,MACE;AAAA,MACA,MAAM;AAAA,MACN,CAAC,KAAK;AAAA,MACN;AAAA,IACF;AAAA,EACF,CAAC;AACD;AAAA,IACE,GAAG,MAAM,aAAa;AAAA,IACtB,GAAG,MAAM,aAAa;AAAA,EACxB,EAAE;AAAA,IAAQ,CAAC,WAAW,UACpB;AAAA,MACE;AAAA,MACA,MAAM;AAAA,MACN,CAAC,gBAAgB,UAAU,KAAK;AAAA,MAChC;AAAA,IACF;AAAA,EACF;AACA,QAAM,aAAa,eAAe;AAAA,IAAQ,CAAC,WAAW,UACpD;AAAA,MACE;AAAA,MACA,MAAM;AAAA,MACN,CAAC,gBAAgB,kBAAkB,KAAK;AAAA,MACxC;AAAA,IACF;AAAA,EACF;AACA,MACE,MAAM,mBACN,MAAM,gCACN;AAAA,IACE,MAAM;AAAA,IACN,MAAM;AAAA,EACR,GACA;AACA,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,8BAA8B;AAAA,MACrC,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACF,CAAC;AACI,IAAM,4BAA4BA,IACtC,OAAO;AAAA,EACN,4BAA4B,yBAAyB,SAAS;AAAA,EAC9D,gBAAgB;AAAA,EAChB,mCAAmC;AACrC,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,MAAI,MAAM,kCAAkC,SAAS,UAAU;AAC7D,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,qCAAqC,MAAM;AAAA,MAClD,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACF,CAAC;AACI,IAAM,gCAAgCA,IAC1C,OAAO;AAAA,EACN,eAAe;AAAA,EACf,8BAA8B;AAAA,EAC9B,QAAQA,IACL,OAAO,EAAE,MAAMA,IAAE,KAAK,CAAC,mBAAmB,aAAa,CAAC,EAAE,CAAC,EAC3D,OAAO;AACZ,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,MAAI,MAAM,6BAA6B,SAAS,UAAU;AACxD,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,gCAAgC,MAAM;AAAA,MAC7C,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACF,CAAC;AACI,IAAM,qBAAqBA,IAC/B,OAAO;AAAA,EACN,WAAW;AAAA,EACX,4BAA4B;AAAA,EAC5B,YAAYA,IAAE,OAAO,0BAA0B,mBAAmB;AAAA,EAClE,QAAQA,IACL,OAAO;AAAA,IACN,sBAAsB;AAAA,IACtB,MAAM;AAAA,EACR,CAAC,EACA,OAAO;AAAA,EACV,8BAA8B;AAAA,EAC9B,kBAAkBA,IACf,OAAO;AAAA,IACN,YAAY;AAAA,IACZ,mBAAmB;AAAA,EACrB,CAAC,EACA,OAAO,EACP,SAAS;AAAA,EACZ,wBAAwBA,IACrB,OAAO;AAAA,IACN,YAAY;AAAA,IACZ,mBAAmB;AAAA,EACrB,CAAC,EACA,OAAO,EACP,SAAS;AAAA,EACZ,cAAcA,IACX;AAAA,IACCA,IACG,OAAO;AAAA,MACN,eAAe;AAAA,MACf,OAAO;AAAA,MACP,MAAM,qBAAqB,SAAS;AAAA,IACtC,CAAC,EACA,OAAO;AAAA,EACZ,EACC,IAAI,EAAE,EACN,SAAS;AAAA,EACZ,WAAW,0BAA0B,SAAS;AAAA;AAAA,EAE9C,YAAYA,IAAE,KAAK,CAAC,cAAc,iBAAiB,CAAC,EAAE,SAAS;AAAA,EAC/D,eAAeA,IAAE,QAAQ,kBAAkB,EAAE,SAAS;AAAA,EACtD,gBAAgBA,IACb,OAAO;AAAA,IACN,oBAAoBA,IACjB,MAAM,wBAAwB,EAC9B,IAAI,CAAC,EACL,IAAI,EAAE;AAAA,EACX,CAAC,EACA,OAAO,EACP,SAAS;AAAA,EACZ,gBAAgBA,IAAE,OAAO;AAAA,IACvB,oBAAoBA,IAAE,MAAM,wBAAwB,EAAE,IAAI,EAAE;AAAA,EAC9D,CAAC,EAAE,OAAO,EAAE,SAAS;AAAA,EACrB,qBAAqBA,IAClB,MAAM,6BAA6B,EACnC,IAAI,EAAE,EACN,SAAS;AAAA,EACZ,WAAWA,IAAE,KAAK,CAAC,UAAU,aAAa,CAAC,EAAE,QAAQ,QAAQ;AAAA,EAC7D,YAAYA,IAAE,KAAK,CAAC,QAAQ,UAAU,QAAQ,CAAC;AAAA,EAC/C,cAAc,0BAA0B,SAAS;AAAA,EACjD,OAAOA,IAAE,KAAK,CAAC,QAAQ,mBAAmB,eAAe,CAAC;AAAA,EAC1D,gBAAgBA,IAAE,QAAQ;AAAA,EAC1B,eAAeA,IACZ,OAAO;AAAA,IACN,YAAYA,IAAE,OAAO,EAAE,IAAI,EAAE,IAAI,GAAI,EAAE,IAAI,GAAM;AAAA,IACjD,MAAM,qBAAqB,SAAS;AAAA,EACtC,CAAC,EACA,OAAO,EACP,SAAS;AACd,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,MAAI,MAAM,gBAAgB;AACxB,UAAM,QAAQ,MAAM,eAAe;AACnC,QACE,MAAM,cAAc,YACpB,IAAI,IAAI,KAAK,EAAE,SAAS,MAAM,UAC9B,MAAM;AAAA,MACJ,CAAC,SACC,CAAC,OAAO,UAAU,eAAe,KAAK,MAAM,YAAY,IAAI;AAAA,IAChE,GACA;AACA,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,gBAAgB;AAAA,QACvB,SACE;AAAA,MACJ,CAAC;AAAA,IACH;AAAA,EACF;AACA,MAAI,MAAM,gBAAgB;AACxB,UAAM,QAAQ,MAAM,eAAe;AACnC,QACE,MAAM,cAAc,YACpB,IAAI,IAAI,KAAK,EAAE,SAAS,MAAM,UAC9B,MAAM;AAAA,MACJ,CAAC,SACC,CAAC,OAAO,UAAU,eAAe,KAAK,MAAM,YAAY,IAAI;AAAA,IAChE,GACA;AACA,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,gBAAgB;AAAA,QACvB,SACE;AAAA,MACJ,CAAC;AAAA,IACH;AAAA,EACF;AACA,MAAI,MAAM,kBAAkB;AAC1B,QAAI,MAAM,iBAAiB,kBAAkB,SAAS;AACpD,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,oBAAoB,mBAAmB;AAAA,QAC9C,SACE;AAAA,MACJ,CAAC;AACH,eAAW,QAAQ;AAAA,MACjB,MAAM,iBAAiB;AAAA,IACzB;AACE,UAAI,KAAK,SAAS;AAChB,gBAAQ,SAAS;AAAA,UACf,MAAM;AAAA,UACN,MAAM,CAAC,oBAAoB,YAAY;AAAA,UACvC,SACE;AAAA,QACJ,CAAC;AAAA,EACP;AACA,MAAI,MAAM,wBAAwB;AAChC,UAAM,aAAa,MAAM;AACzB,QAAI,WAAW,kBAAkB,SAAS;AACxC,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,0BAA0B,mBAAmB;AAAA,QACpD,SACE;AAAA,MACJ,CAAC;AACH,eAAW,QAAQ;AAAA,MACjB,WAAW;AAAA,IACb;AACE,UAAI,KAAK,SAAS;AAChB,gBAAQ,SAAS;AAAA,UACf,MAAM;AAAA,UACN,MAAM,CAAC,0BAA0B,YAAY;AAAA,UAC7C,SACE;AAAA,QACJ,CAAC;AACL,QAAI,MAAM,cAAc,YAAY,MAAM,eAAe;AACvD,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,wBAAwB;AAAA,QAC/B,SACE;AAAA,MACJ,CAAC;AAAA,EACL;AACA,QAAM,UAAU,MAAM,gBAAgB,CAAC;AACvC,MACE,IAAI,IAAI,QAAQ,IAAI,CAAC,WAAW,OAAO,aAAa,CAAC,EAAE,SACvD,QAAQ;AAER,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,cAAc;AAAA,MACrB,SAAS;AAAA,IACX,CAAC;AACH,aAAW,CAAC,OAAO,MAAM,KAAK,QAAQ,QAAQ;AAC5C,eAAW,cAAc;AAAA,MACvB,OAAO;AAAA,MACP,GAAI,OAAO,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC;AAAA,IACrC,GAAG;AACD,iBAAW,QAAQ,2BAA2B,UAAU;AACtD,YAAI,CAAC,CAAC,SAAS,SAAS,OAAO,EAAE,SAAS,KAAK,IAAI;AACjD,kBAAQ,SAAS;AAAA,YACf,MAAM;AAAA,YACN,MAAM,CAAC,gBAAgB,KAAK;AAAA,YAC5B,SACE;AAAA,UACJ,CAAC;AAAA,IACP;AACF,MACE,QAAQ,WACP,MAAM,cAAc,YAAY,MAAM,eAAe;AAEtD,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,cAAc;AAAA,MACrB,SAAS;AAAA,IACX,CAAC;AACH,MAAI,MAAM,eAAe,MAAM;AAC7B,eAAW,QAAQ;AAAA,MACjB,MAAM,cAAc;AAAA,IACtB,GAAG;AACD,UACE,KAAK,SAAS,WACd,EACE,KAAK,SAAS,aACd,KAAK,KAAK,WAAW,KACrB,KAAK,KAAK,CAAC,MAAM;AAGnB,gBAAQ,SAAS;AAAA,UACf,MAAM;AAAA,UACN,MAAM,CAAC,iBAAiB,MAAM;AAAA,UAC9B,SACE;AAAA,QACJ,CAAC;AAAA,IACL;AAAA,EACF;AACA,MACE,MAAM,kBACL,MAAM,cAAc,YAAY,MAAM,eAAe,SACtD;AACA,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,eAAe;AAAA,MACtB,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,MAAI,MAAM,2BAA2B,SAAS,2BAA2B;AACvE,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,8BAA8B,MAAM;AAAA,MAC3C,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACA,MAAI,MAAM,6BAA6B,SAAS,UAAU;AACxD,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,gCAAgC,MAAM;AAAA,MAC7C,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,MAAI,MAAM,cAAc,iBAAiB,MAAM,eAAe,QAAQ;AACpE,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,YAAY;AAAA,MACnB,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,MAAI,MAAM,cAAc,iBAAiB,MAAM,eAAe;AAC5D,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,eAAe;AAAA,MACtB,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACA,MACE,MAAM,cAAc,kBACnB,MAAM,qBAAqB,UAAU,KAAK,GAC3C;AACA,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,qBAAqB;AAAA,MAC5B,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACA,QAAM,iBACJ,MAAM,qBAAqB,IAAI,CAAC,YAAY,QAAQ,aAAa,KAAK,CAAC;AACzE,MAAI,IAAI,IAAI,cAAc,EAAE,SAAS,eAAe,QAAQ;AAC1D,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,qBAAqB;AAAA,MAC5B,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACA,MAAI,MAAM,gBAAgB,MAAM,eAAe,UAAU;AACvD,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,cAAc;AAAA,MACrB,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,MAAI,MAAM,gBAAgB,MAAM,cAAc,UAAU;AACtD,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,cAAc;AAAA,MACrB,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACF,CAAC;AACI,IAAM,2BAA2BA,IACrC,OAAO;AAAA,EACN,wBAAwB,yBAAyB,SAAS;AAAA,EAC1D,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,uBAAuB;AAAA,EACvB,qBAAqB;AAAA,EACrB,2BAA2B;AAAA,EAC3B,YAAY;AAAA,EACZ,kBAAkBA,IAAE,MAAM,yBAAyB,EAAE,IAAI,GAAG,EAAE,SAAS;AAAA,EACvE,sBAAsBA,IACnB;AAAA,IACCA,IACG,OAAO;AAAA,MACN,MAAM;AAAA,MACN,YAAY;AAAA,IACd,CAAC,EACA,OAAO;AAAA,EACZ,EACC,IAAI,EAAE,EACN,SAAS;AAAA,EACZ,cAAcA,IACX;AAAA,IACCA,IACG,OAAO;AAAA,MACN,YAAY;AAAA,MACZ,+BAA+B;AAAA,MAC/B,mBAAmBA,IAChB,MAAM,wBAAwB,EAC9B,IAAI,CAAC,EACL,IAAI,GAAG;AAAA,IACZ,CAAC,EACA,OAAO;AAAA,EACZ,EACC,IAAI,EAAE,EACN,SAAS;AAAA,EACZ,cAAc,mBAAmB,SAAS;AAAA,EAC1C,gBAAgB,0BAA0B,SAAS;AAAA,EACnD,oBAAoBA,IAAE;AAAA,IACpBA,IAAE,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AAAA,EACH;AACF,CAAC,EACA,OAAO;AACH,IAAM,wBAAwBA,IAClC,OAAO;AAAA,EACN,WAAW;AAAA,EACX,+BAA+B;AAAA,EAC/B,iBAAiB;AAAA,EACjB,8BAA8B;AAAA,EAC9B,YAAYA,IAAE,OAAO,0BAA0B,mBAAmB;AAAA,EAClE,QAAQA,IACL,OAAO;AAAA,IACN,sBAAsB;AAAA,IACtB,MAAM;AAAA,EACR,CAAC,EACA,OAAO;AAAA,EACV,8BAA8B;AAAA,EAC9B,YAAYA,IAAE,KAAK,CAAC,QAAQ,UAAU,QAAQ,CAAC;AAAA,EAC/C,cAAc,0BAA0B,SAAS;AAAA,EACjD,OAAOA,IAAE,KAAK,CAAC,QAAQ,mBAAmB,eAAe,CAAC;AAAA,EAC1D,gBAAgBA,IAAE,QAAQ;AAC5B,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,MAAI,MAAM,gBAAgB,SAAS,QAAQ;AACzC,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,mBAAmB,MAAM;AAAA,MAChC,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,MAAI,MAAM,6BAA6B,SAAS,QAAQ;AACtD,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,gCAAgC,MAAM;AAAA,MAC7C,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACA,MACE;AAAA,IACE,MAAM;AAAA,IACN,MAAM;AAAA,EACR,GACA;AACA,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,8BAA8B;AAAA,MACrC,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACA,MAAI,MAAM,8BAA8B,SAAS,uBAAuB;AACtE,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,iCAAiC,MAAM;AAAA,MAC9C,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,MAAI,MAAM,gBAAgB,MAAM,eAAe,UAAU;AACvD,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,cAAc;AAAA,MACrB,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACF,CAAC;AAEI,IAAM,8BAA8BA,IACxC,OAAO;AAAA,EACN,GAAG,sBAAsB;AAAA,EACzB,iBAAiB,kBAAkB,SAAS;AAAA,EAC5C,8BAA8BA,IAAE,MAAM,EAAE,SAAS;AAAA,EACjD,uBAAuB,kBAAkB,SAAS;AACpD,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,MACE,QAAQ,MAAM,eAAe,MAAM,QAAQ,MAAM,qBAAqB,GACtE;AACA,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,iBAAiB;AAAA,MACxB,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACA,aAAW,CAAC,KAAK,WAAW,IAAI,KAAK;AAAA,IACnC;AAAA,MACE;AAAA,MACA,MAAM;AAAA,MACN;AAAA,IACF;AAAA,IACA,CAAC,mBAAmB,MAAM,iBAAiB,MAAM;AAAA,IACjD,CAAC,yBAAyB,MAAM,uBAAuB,iBAAiB;AAAA,EAC1E,GAAY;AACV,QAAI,aAAa,UAAU,SAAS;AAClC,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,KAAK,MAAM;AAAA,QAClB,SAAS,cAAc,IAAI;AAAA,MAC7B,CAAC;AAAA,EACL;AACA,MAAI,MAAM,gBAAgB,MAAM,eAAe;AAC7C,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,cAAc;AAAA,MACrB,SAAS;AAAA,IACX,CAAC;AACL,CAAC;AAEI,IAAM,iCAAiCA,IAC3C,OAAO;AAAA,EACN,GAAG,sBAAsB;AAAA,EACzB,iBAAiB,kBAAkB,SAAS;AAAA,EAC5C,8BAA8B,kBAAkB,SAAS;AAAA,EACzD,uBAAuB,kBAAkB,SAAS;AACpD,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,QAAM,SAAS,MAAM,+BACjB,wBACA;AACJ,QAAM,SAAS,OAAO,UAAU,KAAK;AACrC,MAAI,CAAC,OAAO;AACV,eAAW,SAAS,OAAO,MAAM;AAC/B,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,MAAM;AAAA,QACZ,SAAS,MAAM;AAAA,MACjB,CAAC;AACP,CAAC;AAEI,IAAM,wCAAwCA,IAAE;AAAA,EACrD;AAAA,EACA;AAAA,IACEA,IACG,OAAO;AAAA,MACN,MAAMA,IAAE,QAAQ,cAAc;AAAA,MAC9B,MAAMA,IACH,OAAO,EACP,KAAK,EACL,MAAM,mBAAmB;AAAA,IAC9B,CAAC,EACA,OAAO;AAAA,IACVA,IAAE,OAAO,EAAE,MAAMA,IAAE,QAAQ,UAAU,GAAG,OAAO,gBAAgB,CAAC,EAAE,OAAO;AAAA,IACzEA,IACG,OAAO;AAAA,MACN,MAAMA,IAAE,QAAQ,mBAAmB;AAAA,MACnC,QAAQA,IAAE,OAAO,EAAE,IAAI,EAAE,IAAI,IAAK,EAAE,IAAI,GAAI;AAAA,IAC9C,CAAC,EACA,OAAO;AAAA,EACZ;AACF;AACO,IAAM,kCAAkCA,IAC5C,OAAO;AAAA,EACN,WAAW;AAAA,EACX,WAAWA,IAAE,KAAK,CAAC,iBAAiB,cAAc,CAAC;AAAA,EACnD,gBAAgBA,IAAE,MAAM,wBAAwB,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC;AAAA,EAC9D,cAAcA,IAAE,MAAM,wBAAwB,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC;AAAA,EAC5D,UAAUA,IACP;AAAA,IACCA,IACG,OAAO;AAAA,MACN,YAAYA,IAAE,MAAM,wBAAwB,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC;AAAA,MAC1D,QAAQ;AAAA,IACV,CAAC,EACA,OAAO;AAAA,EACZ,EACC,IAAI,CAAC,EACL,IAAI,EAAE;AACX,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,QAAM,cAAc,MAAM,SAAS;AAAA,IAAI,CAAC,EAAE,WAAW,MACnD,WAAW,KAAK,GAAG;AAAA,EACrB;AACA,MAAI,IAAI,IAAI,WAAW,EAAE,SAAS,YAAY,QAAQ;AACpD,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,UAAU;AAAA,MACjB,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,MAAI,CAAC,YAAY,SAAS,MAAM,aAAa,KAAK,GAAG,CAAC,GAAG;AACvD,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,cAAc;AAAA,MACrB,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACA,QAAM,kBAAkB,MAAM,SAAS;AAAA,IACrC,CAAC,EAAE,WAAW,MAAM,WAAW,KAAK,GAAG,MAAM,MAAM,aAAa,KAAK,GAAG;AAAA,EAC1E;AACA,MAAI,iBAAiB,OAAO,SAAS,qBAAqB;AACxD,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,cAAc;AAAA,MACrB,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACA,MAAI,MAAM,cAAc,kBAAkB,MAAM,SAAS,WAAW,GAAG;AACrE,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,UAAU;AAAA,MACjB,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACF,CAAC;AAEI,IAAM,oCAAoCA,IAC9C,OAAO;AAAA,EACN,QAAQA,IACL,OAAO;AAAA,IACN,MAAMA,IAAE,QAAQ,cAAc;AAAA,IAC9B,MAAMA,IACH,OAAO,EACP,KAAK,EACL,MAAM,mBAAmB;AAAA,EAC9B,CAAC,EACA,OAAO;AAAA,EACV,aAAa,eAAe,SAAS;AAAA,EACrC,eAAe,eAAe,YAAY,CAAC,OAAO,YAAY;AAC5D,eAAW,CAAC,QAAQ,OAAO,KAAK,OAAO,QAAQ,MAAM,MAAM,GAAG;AAC5D,UAAI,CAAC,QAAQ,SAAS,SAAS,GAAG;AAChC,gBAAQ,SAAS;AAAA,UACf,MAAM;AAAA,UACN,MAAM,CAAC,UAAU,MAAM;AAAA,UACvB,SACE;AAAA,QACJ,CAAC;AAAA,MACH;AAAA,IACF;AAAA,EACF,CAAC;AACH,CAAC,EACA,OAAO;AAEH,IAAM,sBAAsBA,IAChC,OAAO;AAAA,EACN,WAAW;AAAA,EACX,oBAAoB;AAAA,EACpB,QAAQA,IACL,OAAO;AAAA,IACN,sBAAsB;AAAA,IACtB,MAAM;AAAA,EACR,CAAC,EACA,OAAO;AAAA,EACV,+BAA+B;AAAA,EAC/B,wBAAwB;AAAA,EACxB,MAAM,qBAAqB,SAAS;AAAA,EACpC,YAAYA,IAAE,MAAM,qBAAqB,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EAClE,cAAcA,IAAE;AAAA,IACd;AAAA,IACA;AAAA,EACF;AAAA,EACA,qBAAqB,2BAA2B,SAAS;AAAA,EACzD,cAAc;AAAA,EACd,cAAc,eAAe,SAAS;AAAA,EACtC,sBAAsBA,IAAE,KAAK;AAAA,IAC3B;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAAA,EACD,gCAAgC,kBAAkB,SAAS;AAAA,EAC3D,yBAAyB;AAAA,EACzB,SAASA,IACN,OAAO;AAAA,IACN,UAAUA,IACP,mBAAmB,QAAQ;AAAA,MAC1BA,IAAE,OAAO,EAAE,MAAMA,IAAE,QAAQ,QAAQ,EAAE,CAAC,EAAE,OAAO;AAAA,MAC/CA,IACG,OAAO;AAAA,QACN,MAAMA,IAAE,QAAQ,eAAe;AAAA,QAC/B,cAAc,oBAAoB,IAAI,CAAC;AAAA,QACvC,cAAc,oBAAoB,IAAI,CAAC;AAAA,QACvC,aAAa,oBAAoB,IAAI,CAAC;AAAA,QACtC,UAAUA,IAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,OAAO;AAAA,MAC/C,CAAC,EACA,OAAO;AAAA,IACZ,CAAC,EACA,SAAS;AAAA,IACZ,mBAAmBA,IAAE,MAAM,wBAAwB;AAAA,IACnD,iBAAiBA,IACd,OAAO;AAAA,MACN,MAAMA,IAAE,QAAQ,gBAAgB;AAAA,MAChC,WAAW;AAAA,MACX,WAAW;AAAA,MACX,OAAO;AAAA,MACP,aAAa;AAAA,MACb,kBAAkB;AAAA,MAClB,kBAAkB;AAAA,IACpB,CAAC,EACA,OAAO,EACP,SAAS;AAAA,IACZ,sBAAsBA,IACnB,MAAM,+BAA+B,EACrC,IAAI,EAAE,EACN,SAAS;AAAA,IACZ,WAAW,kCAAkC,SAAS;AAAA,IACtD,qBAAqB,gBAAgB,SAAS;AAAA,IAC9C,OAAO,eAAe,SAAS;AAAA,EACjC,CAAC,EACA,OAAO;AAAA,EACV,UAAUA,IAAE,KAAK,CAAC,cAAc,wBAAwB,eAAe,CAAC;AAAA,EACxE,iBAAiBA,IAAE,QAAQ,IAAI;AACjC,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,QAAM,UAAU,oBAAI,IAAY;AAChC,aAAW,QAAQ,MAAM,cAAc,CAAC,GAAG;AACzC,QAAI,QAAQ,IAAI,KAAK,OAAO;AAC1B,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,YAAY;AAAA,QACnB,SAAS;AAAA,MACX,CAAC;AACH,YAAQ,IAAI,KAAK,OAAO;AACxB,QACE,CAAC,OAAO,OAAO,MAAM,YAAY,EAAE;AAAA,MACjC,CAAC,WACC,OAAO,SAAS,gBAAgB,OAAO,gBAAgB,KAAK;AAAA,IAChE;AAEA,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,YAAY;AAAA,QACnB,SAAS;AAAA,MACX,CAAC;AAAA,EACL;AACA,aAAW,CAAC,MAAM,MAAM,KAAK,OAAO,QAAQ,MAAM,YAAY;AAC5D,QAAI,OAAO,SAAS,cAAc;AAChC,YAAM,OAAO,MAAM,YAAY;AAAA,QAC7B,CAACC,UAASA,MAAK,YAAY,OAAO;AAAA,MACpC;AACA,UACG,OAAO,SAAS,kBAAkB,CAAC,MAAM,UACzC,OAAO,SAAS,aAAa,MAAM;AAEpC,gBAAQ,SAAS;AAAA,UACf,MAAM;AAAA,UACN,MAAM,CAAC,gBAAgB,IAAI;AAAA,UAC3B,SAAS;AAAA,QACX,CAAC;AACH,UAAI,CAAC,QAAQ,IAAI,OAAO,WAAW;AACjC,gBAAQ,SAAS;AAAA,UACf,MAAM;AAAA,UACN,MAAM,CAAC,gBAAgB,IAAI;AAAA,UAC3B,SAAS;AAAA,QACX,CAAC;AACH,UACE,OAAO,SAAS,aAChB,CAAC,MAAM,qBAAqB,SAAS,IAAI,IAAI,EAAE;AAE/C,gBAAQ,SAAS;AAAA,UACf,MAAM;AAAA,UACN,MAAM,CAAC,qBAAqB;AAAA,UAC5B,SACE;AAAA,QACJ,CAAC;AAAA,IACL;AACF,MAAI,MAAM;AACR,eAAW,QAAQ,2BAA2B,MAAM,IAAI,GAAG;AACzD,UAAI,CAAC,CAAC,UAAU,SAAS,OAAO,EAAE,SAAS,KAAK,IAAI;AAClD,gBAAQ,SAAS;AAAA,UACf,MAAM;AAAA,UACN,MAAM,CAAC,MAAM;AAAA,UACb,SACE;AAAA,QACJ,CAAC;AAAA,IACL;AACF,MAAI,MAAM,QAAQ,iBAAiB;AACjC,UAAM,EAAE,WAAW,UAAU,IAAI,MAAM,QAAQ;AAC/C,UAAM,WAAW,CAAC,SAAiB,KAAK,MAAM,GAAG,EAAE,MAAM,CAAC;AAC1D,UAAM,gBAAgB,SAAS,SAAS;AACxC,UAAM,gBAAgB,SAAS,SAAS;AACxC,UAAM,eAAe,KAAK,IAAI,cAAc,QAAQ,cAAc,MAAM;AACxE,QACE,cACG,MAAM,GAAG,YAAY,EACrB,MAAM,CAAC,SAAS,UAAU,YAAY,cAAc,KAAK,CAAC,GAC7D;AACA,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,WAAW,mBAAmB,WAAW;AAAA,QAChD,SACE;AAAA,MACJ,CAAC;AAAA,IACH;AAAA,EACF;AACA,MACE,MAAM,QAAQ,oBACb,MAAM,QAAQ,sBAAsB,UAAU,KAAK,GACpD;AACA,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,WAAW,sBAAsB;AAAA,MACxC,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACA,MAAI,MAAM,mBAAmB,SAAS,kBAAkB;AACtD,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,sBAAsB,MAAM;AAAA,MACnC,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,MAAI,MAAM,8BAA8B,SAAS,UAAU;AACzD,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,iCAAiC,MAAM;AAAA,MAC9C,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,MAAI,MAAM,uBAAuB,SAAS,UAAU;AAClD,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,0BAA0B,MAAM;AAAA,MACvC,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,MACE,MAAM,aAAa,0BACnB,CAAC,MAAM,gCACP;AACA,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,gCAAgC;AAAA,MACvC,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACF,CAAC;AACI,IAAM,0CAA0CD,IAAE,KAAK;AAAA,EAC5D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AACM,IAAM,iCAAiCA,IAC3C,OAAO;AAAA,EACN,UAAUA,IAAE,QAAQ,0BAA0B;AAAA,EAC9C,eAAeA,IAAE,QAAQ,CAAC;AAAA,EAC1B,QAAQA,IAAE,QAAQ,gBAAgB;AAAA,EAClC,UAAUA,IACP,OAAO;AAAA,IACN,YAAY;AAAA,IACZ,UAAUA,IAAE,OAAO,EAAE,MAAM,gBAAgB;AAAA,IAC3C,QAAQ;AAAA,IACR,WAAW;AAAA,EACb,CAAC,EACA,OAAO;AAAA,EACV,qBAAqBA,IAClB,MAAM,uCAAuC,EAC7C,IAAI,CAAC;AAAA,EACR,WAAWA,IACR;AAAA,IACCA,IACG,OAAO;AAAA,MACN,YAAY;AAAA,MACZ,OAAOA,IAAE,OAAO,EAAE,IAAI,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI;AAAA,MACzC,QAAQA,IAAE,OAAO,EAAE,IAAI,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI;AAAA,IAC5C,CAAC,EACA,OAAO;AAAA,EACZ,EACC,IAAI,CAAC;AAAA,EACR,WAAWA,IACR;AAAA,IACCA,IACG,OAAO;AAAA,MACN,YAAY;AAAA,MACZ,aAAaA,IAAE,MAAM,wBAAwB,EAAE,IAAI,CAAC;AAAA,IACtD,CAAC,EACA,OAAO;AAAA,EACZ,EACC,IAAI,CAAC;AAAA,EACR,UAAUA,IACP,OAAO;AAAA,IACN,kBAAkBA,IAAE,QAAQ,IAAI;AAAA,IAChC,aAAaA,IAAE,QAAQ,IAAI;AAAA,IAC3B,eAAeA,IAAE,QAAQ,MAAM;AAAA,EACjC,CAAC,EACA,OAAO;AAAA,EACV,oBAAoBA,IAAE;AAAA,IACpBA,IACG,OAAO;AAAA,MACN,cAAc;AAAA,MACd,wBAAwB;AAAA,IAC1B,CAAC,EACA,OAAO;AAAA,EACZ;AACF,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,MAAI,YAAY,MAAM,qBAAqB,CAAC,cAAc,SAAS,GAAG;AACpE,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,qBAAqB;AAAA,MAC5B,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,MAAI,YAAY,MAAM,WAAW,CAAC,cAAc,UAAU,UAAU,GAAG;AACrE,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,WAAW;AAAA,MAClB,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,MAAI,YAAY,MAAM,WAAW,CAAC,cAAc,UAAU,UAAU,GAAG;AACrE,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,WAAW;AAAA,MAClB,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,QAAM,cAAc,IAAI;AAAA,IACtB,MAAM,UAAU,IAAI,CAAC,aAAa,SAAS,UAAU;AAAA,EACvD;AACA,QAAM,UAAU,QAAQ,CAAC,UAAU,UAAU;AAC3C,aAAS,YAAY,QAAQ,CAAC,YAAY,kBAAkB;AAC1D,UAAI,CAAC,YAAY,IAAI,UAAU,GAAG;AAChC,gBAAQ,SAAS;AAAA,UACf,MAAM;AAAA,UACN,MAAM,CAAC,aAAa,OAAO,eAAe,aAAa;AAAA,UACvD,SAAS,8DAA8D,UAAU;AAAA,QACnF,CAAC;AAAA,MACH;AAAA,IACF,CAAC;AAAA,EACH,CAAC;AACH,CAAC;AAEI,IAAM,mCAAmCA,IAC7C,OAAO;AAAA,EACN,SAAS;AAAA,EACT,OAAOA,IAAE,QAAQ,WAAW;AAAA,EAC5B,MAAMA,IAAE,QAAQ,QAAQ;AAAA,EACxB,cAAcA,IAAE,KAAK,CAAC,SAAS,MAAM,CAAC;AAAA,EACtC,OAAO;AAAA,EACP,aAAa,eAAe,SAAS;AACvC,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,QAAM,kBAAkB;AAAA,IACtB,CAAC,SAAS,MAAM,OAAO,GAAG;AAAA,IAC1B,CAAC,eAAe,MAAM,aAAa,GAAI;AAAA,EACzC;AACA,kBAAgB,QAAQ,CAAC,CAAC,OAAO,MAAM,SAAS,MAAM;AACpD,QAAI,CAAC,KAAM;AACX,UAAM,UAAU,OAAO,QAAQ,KAAK,MAAM;AAC1C,QAAI,QAAQ,SAAS,IAAI;AACvB,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,OAAO,QAAQ;AAAA,QACtB,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AACA,YAAQ,QAAQ,CAAC,CAAC,QAAQ,IAAI,MAAM;AAClC,UAAI,KAAK,SAAS,WAAW;AAC3B,gBAAQ,SAAS;AAAA,UACf,MAAM;AAAA,UACN,MAAM,CAAC,OAAO,UAAU,MAAM;AAAA,UAC9B,SAAS,eAAe,KAAK,8BAA8B,SAAS;AAAA,QACtE,CAAC;AAAA,MACH;AAAA,IACF,CAAC;AAAA,EACH,CAAC;AACH,CAAC;AAEI,IAAM,kBAAkB,0BAA0B,KAAK;AAAA,EAC5D,mBAAmB;AACrB,CAAC,EACE,OAAO;AAAA,EACN,SAAS;AAAA,EACT,QAAQ;AACV,CAAC,EACA,OAAO;AAEH,IAAM,wBAAwBA,IAClC,OAAO;AAAA,EACN,MAAMA,IAAE,KAAK,CAAC,QAAQ,WAAW,CAAC;AAAA,EAClC,IAAI;AACN,CAAC,EACA,OAAO;AAEH,IAAM,kBAAkB,0BAA0B,KAAK;AAAA,EAC5D,WAAW;AACb,CAAC,EACE,OAAO;AAAA,EACN,QAAQ;AACV,CAAC,EACA,OAAO;AAEH,IAAM,wBAAwB,yBAAyB,KAAK;AAAA,EACjE,QAAQ;AAAA,EACR,+BAA+B;AAAA,EAC/B,+BAA+B;AACjC,CAAC,EACE,OAAO;AAAA,EACN,MAAM;AACR,CAAC,EACA,OAAO;AAEV,IAAM,yBAAyB,0BAA0B,KAAK;AAAA,EAC5D,mCAAmC;AACrC,CAAC,EAAE,OAAO;AACV,IAAM,+BAA+B,8BAA8B,KAAK;AAAA,EACtE,8BAA8B;AAChC,CAAC,EAAE,OAAO;AAEH,IAAM,iBAAiB,mBAAmB,KAAK;AAAA,EACpD,4BAA4B;AAAA,EAC5B,QAAQ;AAAA,EACR,8BAA8B;AAAA,EAC9B,kBAAkB;AAAA,EAClB,wBAAwB;AAAA,EACxB,cAAc;AAAA,EACd,qBAAqB;AACvB,CAAC,EACE,OAAO;AAAA,EACN,OAAO;AAAA,EACP,MAAM;AAAA,EACN,kBAAkBA,IACf,OAAO,EAAE,YAAY,qBAAqB,CAAC,EAC3C,OAAO,EACP,SAAS;AAAA,EACZ,wBAAwBA,IACrB,OAAO,EAAE,YAAY,qBAAqB,CAAC,EAC3C,OAAO,EACP,SAAS;AAAA,EACZ,cAAc,uBAAuB,SAAS;AAAA,EAC9C,qBAAqBA,IAClB,MAAM,4BAA4B,EAClC,IAAI,EAAE,EACN,SAAS;AACd,CAAC,EACA,OAAO;AAGH,IAAM,qBAAqB;AAC3B,IAAM,6BAA6BA,IACvC,OAAO;AAAA,EACN,OAAOA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,GAAK;AAAA,EAC5C,iBAAiBA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC;AAAA,EAClD,OAAOA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,GAAG;AAAA,EAC1C,cAAcA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,OAAO;AAAA,EACrD,UAAUA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,IAAM;AAAA,EAChD,QAAQA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,GAAM;AAAA,EAC9C,QAAQA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,GAAM;AAChD,CAAC,EACA,OAAO;AACH,IAAM,iCAAiC,OAAO,OAAO;AAAA,EAC1D,OAAO;AAAA,EACP,iBAAiB;AAAA,EACjB,OAAO;AAAA,EACP,cAAc;AAAA,EACd,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,QAAQ;AACV,CAAC;AACD,IAAM,yBAAyB,kBAAkB;AAAA,EAC/C,CAAC,QAAQ,IAAI,SAAS;AAAA,EACtB;AACF;AACO,IAAM,gCAAgCA,IAC1C,OAAO;AAAA,EACN,MAAMA,IAAE,KAAK,CAAC,SAAS,SAAS,CAAC;AAAA,EACjC,aAAa;AAAA,EACb,wBAAwB;AAAA,EACxB,yBAAyB;AAAA,EACzB,UAAU,oBAAoB,MAAM,QAAQ,MAAM;AAAA;AAAA,EAElD,kBAAkBA,IAAE,MAAM,wBAAwB,EAAE,IAAI,GAAG;AAC7D,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,QAAM,WACJ,MAAM,SAAS,UAAU,4BAA4B;AACvD,MAAI,MAAM,YAAY,SAAS;AAC7B,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,eAAe,MAAM;AAAA,MAC5B,SAAS,YAAY,QAAQ;AAAA,IAC/B,CAAC;AACH,MAAI,IAAI,IAAI,MAAM,gBAAgB,EAAE,SAAS,MAAM,iBAAiB;AAClE,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,kBAAkB;AAAA,MACzB,SAAS;AAAA,IACX,CAAC;AACL,CAAC;AACI,IAAM,gCAAgCA,IAC1C,OAAO;AAAA,EACN,UAAUA,IAAE,QAAQ,yBAAyB;AAAA,EAC7C,eAAeA,IAAE,QAAQ,CAAC;AAAA,EAC1B,WAAW;AAAA,EACX,WAAW;AAAA,EACX,aAAa;AAAA,EACb,kBAAkBA,IAAE,QAAQ,QAAQ;AAAA,EACpC,wBAAwB;AAAA,EACxB,yBAAyB;AAAA,EACzB,OAAOA,IAAE,QAAQ,MAAM;AAAA,EACvB,KAAKA,IAAE,QAAQ,kBAAkB;AAAA,EACjC,UAAUA,IAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,EAC1C,QAAQA,IAAE,QAAQ,uBAAuB;AAAA,EACzC,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,eAAe;AAAA,EACf,cAAcA,IAAE,MAAM,6BAA6B,EAAE,IAAI,GAAG;AAAA,EAC5D,SAASA,IACN;AAAA,IACCA,IAAE,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AAAA,EACH,EACC,IAAI,CAAC;AAAA,EACR,gBAAgBA,IAAE,MAAM,wBAAwB,EAAE,IAAI,GAAG;AAAA,EACzD,cAAcA,IACX;AAAA,IACCA,IACG,OAAO;AAAA,MACN,OAAO;AAAA,MACP,mBAAmB;AAAA,IACrB,CAAC,EACA,OAAO;AAAA,EACZ,EACC,IAAI,GAAG;AAAA,EACV,SAAS;AACX,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,aAAW,CAAC,MAAM,IAAI,KAAK;AAAA,IACzB;AAAA,MACE;AAAA,MACA,MAAM,aAAa,IAAI,CAAC,QAAQ,GAAG,IAAI,IAAI,IAAI,IAAI,YAAY,EAAE,EAAE;AAAA,IACrE;AAAA,IACA,CAAC,WAAW,MAAM,OAAO;AAAA,IACzB,CAAC,kBAAkB,MAAM,cAAc;AAAA,IACvC,CAAC,gBAAgB,MAAM,aAAa,IAAI,CAAC,UAAU,MAAM,KAAK,CAAC;AAAA,EACjE;AACE,QAAI,IAAI,IAAI,IAAI,EAAE,SAAS,KAAK;AAC9B,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,IAAI;AAAA,QACX,SAAS;AAAA,MACX,CAAC;AACL,QAAM,OAAO;AAAA,IACX,MAAM;AAAA,IACN,MAAM;AAAA,IACN,GAAG,MAAM,aAAa,QAAQ,CAAC,QAAQ;AAAA,MACrC,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IACN,CAAC;AAAA,IACD,GAAG,MAAM,aAAa,IAAI,CAAC,UAAU,MAAM,iBAAiB;AAAA,EAC9D;AACA,OAAK,QAAQ,CAAC,KAAK,UAAU;AAC3B,QACE,IAAI,eAAe,YACnB,IAAI,eACJ,eAAe,IAAI,WAAW,MAAM,eAAe,MAAM,WAAW;AAEpE,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,cAAc;AAAA,QACrB,SAAS,kCAAkC,KAAK;AAAA,MAClD,CAAC;AAAA,EACL,CAAC;AACH,CAAC;AAOI,IAAM,8BAA8BA,IACxC,OAAO;AAAA,EACN,YAAY;AAAA;AAAA,EAEZ,YAAYA,IACT,OAAO,EACP,IAAI,CAAC,EACL,IAAI,MAAM,EACV;AAAA,IACC,CAAC,UAAU,IAAI,YAAY,EAAE,OAAO,KAAK,EAAE,UAAU;AAAA,IACrD;AAAA,EACF;AAAA,EACF,WAAWA,IACR,OAAO,EACP,IAAI,CAAC,EACL,IAAI,MAAM,EACV;AAAA,IACC,CAAC,UAAU,IAAI,YAAY,EAAE,OAAO,KAAK,EAAE,UAAU;AAAA,IACrD;AAAA,EACF;AACJ,CAAC,EACA,OAAO;AAEV,IAAM,2BAA2BA,IAAE,mBAAmB,QAAQ;AAAA,EAC5D,GAAG,oBAAoB;AAAA,EACvB;AACF,CAAC;AACD,IAAM,sBAAsB;AAAA,EAC1B,WAAW;AAAA,EACX,cAAcA,IAAE,OAAO,0BAA0B,wBAAwB;AAAA,EACzE,kBAAkBA,IAAE;AAAA,IAClB;AAAA,IACAA,IAAE,OAAO,0BAA0B,wBAAwB;AAAA,EAC7D;AAAA,EACA,cAAc;AAAA,EACd,cAAc,eAAe,SAAS;AAAA,EACtC,MAAM,qBAAqB,SAAS;AAAA,EACpC,oBAAoB,oBAAoB,IAAI,CAAC;AAAA,EAC7C,gBAAgBA,IAAE;AAAA,IAChB;AAAA,IACAA,IAAE,MAAM,wBAAwB,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,EAClD;AAAA,EACA,cAAcA,IAAE,OAAO,0BAA0B,wBAAwB;AAC3E;AACO,IAAM,0BAA0BA,IACpC,OAAO;AAAA,EACN,GAAG;AAAA,EACH,SAAS;AAAA,EACT,MAAM;AACR,CAAC,EACA,OAAO;AACH,IAAM,uBAAuBA,IACjC,OAAO;AAAA,EACN,GAAG;AAAA,EACH,QAAQA,IACL,OAAO;AAAA,IACN,sBAAsB;AAAA,IACtB,MAAM;AAAA,EACR,CAAC,EACA,OAAO;AAAA,EACV,+BAA+B;AAAA,EAC/B,oBAAoB,kBAAkB;AAAA,IACpC,CAAC,QAAQ,IAAI,SAAS;AAAA,IACtB;AAAA,EACF;AAAA,EACA,YAAY;AACd,CAAC,EACA,OAAO;AAGV,SAAS,8BACP,MAWA,SACA;AACA,QAAM,MAAM,IAAI,IAAI,KAAK,eAAe,IAAI,CAAC,YAAY,QAAQ,SAAS,CAAC;AAC3E,QAAM,QAAQ,IAAI;AAAA,IAChB,KAAK,eAAe;AAAA,MAClB,CAAC,YACC,GAAG,QAAQ,OAAO,oBAAoB,IAAI,QAAQ,OAAO,IAAI;AAAA,IACjE;AAAA,EACF;AACA,QAAM,UAAU,IAAI;AAAA,IAClB,CAAC,GAAG,KAAK,kBAAkB,GAAI,KAAK,iBAAiB,CAAC,CAAE,EAAE;AAAA,MACxD,CAAC,YAAY,QAAQ;AAAA,IACvB;AAAA,EACF;AACA,aAAW,CAAC,OAAO,OAAO,MAAM,KAAK,mBAAmB,CAAC,GAAG,QAAQ,GAAG;AACrE,UAAM,QAAQ,CAAC,YACb,QAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,mBAAmB,KAAK;AAAA,MAC/B;AAAA,IACF,CAAC;AACH,UAAM,OAAO,GAAG,QAAQ,OAAO,oBAAoB,IAAI,QAAQ,OAAO,IAAI;AAC1E,QAAI,IAAI,IAAI,QAAQ,SAAS,KAAK,MAAM,IAAI,IAAI;AAC9C,YAAM,iDAAiD;AACzD,QAAI,IAAI,QAAQ,SAAS;AACzB,UAAM,IAAI,IAAI;AACd,QACE,CAAC,KAAK,oBAAoB;AAAA,MACxB,CAAC,aACC,SAAS,eAAe,QAAQ,OAAO;AAAA,IAC3C;AAEA,YAAM,qCAAqC;AAC7C,UAAM,YAAY,CAAC,MAAgB,aACjC,KAAK,WAAW,SAAS,UACzB,KAAK,MAAM,CAAC,QAAQ,SAAS,SAAS,GAAG,CAAC;AAC5C,QACE,CAAC;AAAA,MACC,OAAO,KAAK,QAAQ,cAAc;AAAA,MAClC,QAAQ,WAAW;AAAA,IACrB,KACA,OAAO,OAAO,QAAQ,cAAc,EAAE;AAAA,MAAK,CAAC,YAC1C,QAAQ,KAAK,CAAC,WAAW,CAAC,QAAQ,IAAI,MAAM,CAAC;AAAA,IAC/C;AAEA;AAAA,QACE;AAAA,MACF;AACF,QACE,CAAC;AAAA,MACC,OAAO,KAAK,QAAQ,YAAY;AAAA,MAChC,QAAQ,WAAW,aAAa,IAAI,CAAC,UAAU,MAAM,KAAK;AAAA,IAC5D;AAEA,YAAM,gDAAgD;AACxD,eAAW,SAAS,QAAQ,WAAW,cAAc;AACnD,YAAM,QAAQ,KAAK,kBAAkB;AAAA,QACnC,CAACE,WAAUA,OAAM,YAAY,QAAQ,aAAa,MAAM,KAAK;AAAA,MAC/D;AACA,UACE,CAAC,SACD,CAAC,iBAAiB,MAAM,mBAAmB,MAAM,iBAAiB;AAElE,cAAM,iDAAiD;AAAA,IAC3D;AACA,UAAM,gBAAgB,QAAQ,WAAW,aAAa;AAAA,MACpD,CAAC,QAAQ,IAAI,YAAY;AAAA,IAC3B;AACA,QACE,CAAC,OAAO,KAAK,QAAQ,gBAAgB,EAAE;AAAA,MAAM,CAAC,QAC5C,cAAc,SAAS,GAAG;AAAA,IAC5B;AAEA,YAAM,2CAA2C;AACnD,eAAW,OAAO,QAAQ,WAAW,cAAc;AACjD,UACE,OAAO,KAAK,QAAQ,iBAAiB,IAAI,YAAY,EAAE,KAAK,CAAC,CAAC,EAAE;AAAA,QAC9D,CAAC,QAAQ,IAAI,iBAAiB,SAAS,GAAG;AAAA,MAC5C;AAEA,cAAM,2DAA2D;AAAA,IACrE;AAAA,EACF;AACF;AAEO,IAAM,mBAAmB,oBAAoB,KAAK;AAAA,EACvD,oBAAoB;AAAA,EACpB,QAAQ;AAAA,EACR,+BAA+B;AAAA,EAC/B,wBAAwB;AAAA,EACxB,gCAAgC;AAAA,EAChC,yBAAyB;AAC3B,CAAC,EACE,OAAO;AAAA,EACN,SAAS;AAAA,EACT,MAAM;AAAA,EACN,qBAAqB,yBAAyB,SAAS;AACzD,CAAC,EACA,OAAO;AAEV,IAAM,wBAAwBF,IAC3B,OAAO;AAAA,EACN,MAAM;AAAA,EACN,SAASA,IAAE,MAAM,wBAAwB,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAC3D,CAAC,EACA,OAAO;AAqCH,IAAM,iBAAsCA,IAAE;AAAA,EAAK,MACxDA,IACG,OAAO;AAAA,IACN,IAAI;AAAA,IACJ,WAAW;AAAA,IACX,MAAM,qBAAqB,SAAS;AAAA,IACpC,MAAM,yBAAyB,SAAS;AAAA,IACxC,OAAO,iBAAiB,SAAS;AAAA,IACjC,UAAUA,IAAE,MAAM,yBAAyB,EAAE,IAAI,GAAG,EAAE,SAAS;AAAA,IAC/D,OAAO,iBAAiB,SAAS;AAAA,IACjC,OAAO,kBAAkB,SAAS;AAAA,IAClC,QAAQ,mBAAmB,SAAS;AAAA,IACpC,YAAYA,IAAE,MAAM,0BAA0B,EAAE,SAAS;AAAA,IACzD,SAAS,oBAAoB,SAAS;AAAA,IACtC,QAAQ,mBAAmB,SAAS;AAAA,IACpC,YAAY,uBAAuB,SAAS;AAAA,IAC5C,WAAW,sBAAsB,SAAS;AAAA,IAC1C,OAAO,sBAAsB,SAAS;AAAA,IACtC,QAAQ,mBAAmB,SAAS;AAAA,IACpC,YAAY,0BAA0B,SAAS;AAAA,IAC/C,QAAQA,IACL,OAAO;AAAA,MACN,QAAQ;AAAA,MACR,SAAS,oBAAoB,IAAI,CAAC;AAAA,MAClC,OAAOA,IAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,GAAI,EAAE,SAAS;AAAA,IACpD,CAAC,EACA,OAAO,EACP,SAAS;AAAA,IACZ,MAAMA,IAAE,MAAM,cAAc,EAAE,SAAS;AAAA,IACvC,SAASA,IAAE,MAAM,gBAAgB,EAAE,SAAS;AAAA,IAC5C,gBAAgBA,IAAE,MAAM,uBAAuB,EAAE,IAAI,GAAG,EAAE,SAAS;AAAA,IACnE,IAAIA,IAAE,MAAM,qBAAqB,EAAE,SAAS;AAAA,IAC5C,SAASA,IAAE,MAAM,qBAAqB,EAAE,SAAS;AAAA,IACjD,eAAeA,IACZ;AAAA,MACCA,IACG,OAAO;AAAA,QACN,MAAM;AAAA,QACN,YAAY;AAAA,MACd,CAAC,EACA,OAAO;AAAA,IACZ,EACC,SAAS;AAAA,IACZ,UAAUA,IAAE,MAAM,cAAc,EAAE,SAAS;AAAA,EAC7C,CAAC,EACA,OAAO;AACZ;AAGO,IAAM,+BAA+BA,IAAE,OAAO;AAAA,EACnD,WAAW;AAAA,EACX,UAAUA,IAAE,OAAO,EAAE,IAAI,0BAA0B,SAASA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO;AAAA,EAClG,QAAQA,IAAE,OAAO,0BAA0B,wBAAwB,EAAE,OAAO,WAAS,OAAO,KAAK,KAAK,EAAE,SAAS,KAAK,OAAO,KAAK,KAAK,EAAE,UAAU,IAAI,4BAAuB;AAAA,EAC9K,SAASA,IAAE,OAAO,0BAA0B,wBAAwB,EAAE,OAAO,WAAS,OAAO,KAAK,KAAK,EAAE,UAAU,IAAI,6BAA6B;AAAA,EACpJ,mBAAmBA,IAAE,MAAM,wBAAwB,EAAE,IAAI,EAAE;AAC7D,CAAC,EAAE,OAAO;AAGV,IAAM,8BAA8B,CAClC,UACA,QACA,UACA,cACA,YACG;AACH,QAAM,MAAM,oBAAI,IAAY;AAC5B,QAAM,QAAQ,oBAAI,IAAY;AAC9B,aAAW,CAAC,OAAO,OAAO,MAAM,YAAY,CAAC,GAAG,QAAQ,GAAG;AACzD,UAAM,QAAQ,CAAC,YAAoB,QAAQ,SAAS,EAAE,MAAM,UAAU,MAAM,CAAC,uBAAuB,KAAK,GAAG,QAAQ,CAAC;AACrH,QAAI,IAAI,IAAI,QAAQ,SAAS,EAAG,OAAM,0CAA0C;AAChF,QAAI,IAAI,QAAQ,SAAS;AACzB,UAAM,SAAS,OAAO,OAAO,QAAQ,MAAM;AAC3C,eAAW,MAAM,QAAQ;AACvB,UAAI,MAAM,IAAI,EAAE,EAAG,OAAM,+DAA+D;AACxF,YAAM,IAAI,EAAE;AACZ,UAAI,CAAC,OAAO,KAAK,WAAS,MAAM,YAAY,MAAM,CAAC,MAAM,WAAW,EAAG,OAAM,gBAAgB,EAAE,wCAAwC;AAAA,IACzI;AACA,eAAW,MAAM,OAAO,OAAO,QAAQ,OAAO,EAAG,KAAI,CAAC,SAAS,IAAI,EAAE,EAAG,OAAM,8BAA8B,EAAE,GAAG;AACjH,QAAI,IAAI,IAAI,QAAQ,iBAAiB,EAAE,SAAS,QAAQ,kBAAkB,OAAQ,OAAM,iDAAiD;AACzI,eAAW,MAAM,QAAQ,mBAAmB;AAC1C,YAAM,cAAc,aAAa,KAAK,WAAS,MAAM,cAAc,EAAE;AACrE,UAAI,CAAC,eAAe,CAAC,OAAO,SAAS,YAAY,aAAa,EAAG,OAAM,sBAAsB,EAAE,8BAA8B;AAAA,IAC/H;AAAA,EACF;AACF;AAEA,IAAM,2BAA2BA,IAAE,KAAK,CAAC,QAAQ,YAAY,UAAU,CAAC;AAEjE,IAAM,aAAaA,IACvB,OAAO;AAAA,EACN,UAAUA,IAAE,QAAQ,MAAM;AAAA,EAC1B,eAAeA,IAAE,QAAQ,kCAAkC;AAAA,EAC3D,QAAQ;AAAA,EACR,aAAa;AAAA,EACb,UAAU;AAAA,EACV,SAAS;AAAA,EACT,OAAO;AAAA,EACP,YAAY,yBAAyB,SAAS;AAAA,EAC9C,WAAW,2BAA2B,QAAQ,QAAQ;AAAA,EACtD,yBAAyBA,IACtB,MAAM,gCAAgC,EACtC,IAAI,CAAC,EACL,SAAS;AAAA,EACZ,OAAO,yBAAyB,SAAS;AAAA,EACzC,MAAM;AAAA,EACN,oBAAoB,yBAAyB,SAAS;AAAA,EACtD,OAAOA,IAAE,MAAM,eAAe,EAAE,SAAS;AAAA,EACzC,qBAAqBA,IAAE,MAAM,4BAA4B,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,EAC5E,kBAAkBA,IAAE,MAAM,eAAe,EAAE,SAAS;AAAA,EACpD,QAAQ;AAAA,EACR,kBAAkB;AAAA,EAClB,QAAQA,IAAE,MAAM,wBAAwB,EAAE,SAAS;AAAA,EACnD,mBAAmB,yBAAyB,SAAS;AAAA,EACrD,mBAAmB,yBAAyB,SAAS;AAAA,EACrD,uBAAuBA,IACpB,KAAK,CAAC,UAAU,YAAY,gBAAgB,YAAY,CAAC,EACzD,QAAQ,UAAU;AACvB,CAAC,EACA,OAAO,EACP,YAAY,CAAC,MAAM,YAAY;AAC9B,QAAM,MAAM,oBAAI,IAAY;AAC5B,QAAM,UAAU,oBAAI,IAAY;AAChC,QAAM,YAAY,oBAAI,IAAY;AAClC,QAAM,iBAAiB,oBAAI,IAAY;AACvC,QAAM,qBAAqE,CAAC;AAC5E,QAAM,QAAQ,CAAC,MAAgB,SAAiC;AAC9D,QAAI,IAAI,IAAI,KAAK,EAAE;AACjB,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,GAAG,MAAM,IAAI;AAAA,QACpB,SAAS,0BAA0B,KAAK,EAAE;AAAA,MAC5C,CAAC;AACH,QAAI,IAAI,KAAK,EAAE;AACf,eAAW,CAAC,OAAO,QAAQ,MAAM,KAAK;AAAA,MACpC,CAAC,QAAQ,KAAK,QAAQ,CAAC,GAAG,OAAO;AAAA,MACjC,CAAC,WAAW,KAAK,WAAW,CAAC,GAAG,SAAS;AAAA,MACzC,CAAC,kBAAkB,KAAK,kBAAkB,CAAC,GAAG,SAAS;AAAA,MACvD,CAAC,MAAM,KAAK,MAAM,CAAC,GAAG,cAAc;AAAA,IACtC;AACE,iBAAW,CAAC,OAAO,KAAK,KAAK,OAAO,QAAQ,GAAG;AAC7C,YAAI,OAAO,IAAI,MAAM,SAAS;AAC5B,kBAAQ,SAAS;AAAA,YACf,MAAM;AAAA,YACN,MAAM,CAAC,GAAG,MAAM,OAAO,OAAO,WAAW;AAAA,YACzC,SAAS,6BAA6B,MAAM,SAAS;AAAA,UACvD,CAAC;AACH,eAAO,IAAI,MAAM,SAAS;AAAA,MAC5B;AACF,uBAAmB,KAAK,GAAI,KAAK,MAAM,CAAC,CAAE;AAC1C,KAAC,KAAK,YAAY,CAAC,GAAG;AAAA,MAAQ,CAAC,OAAO,UACpC,MAAM,OAAO,CAAC,GAAG,MAAM,YAAY,KAAK,CAAC;AAAA,IAC3C;AAAA,EACF;AACA,QAAM,KAAK,MAAM,CAAC,MAAM,CAAC;AACzB,8BAA4B,KAAK,qBAAqB,KAAK,SAAS,CAAC,GAAG,SAAS,oBAAoB,OAAO;AAC5G,QAAM,YAAY,KAAK,SAAS,CAAC,GAAG,IAAI,CAAC,UAAU,MAAM,OAAO;AAChE,MAAI,IAAI,IAAI,QAAQ,EAAE,SAAS,SAAS;AACtC,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,OAAO;AAAA,MACd,SAAS;AAAA,IACX,CAAC;AACL,CAAC;AAEI,IAAM,qBAAqBA,IAC/B,OAAO;AAAA,EACN,UAAUA,IAAE,QAAQ,MAAM;AAAA,EAC1B,eAAeA,IAAE,QAAQ,kCAAkC;AAAA,EAC3D,QAAQ;AAAA,EACR,aAAa;AAAA,EACb,UAAU;AAAA,EACV,mBAAmBA,IAAE,MAAM,oBAAoB,EAAE,IAAI,CAAC;AAAA,EACtD,WAAW;AAAA,EACX,mBAAmB,wBAAwB,SAAS;AAAA,EACpD,sBAAsB,+BAA+B,SAAS;AAAA,EAC9D,yBAAyBA,IACtB,MAAM,gCAAgC,EACtC,IAAI,CAAC,EACL,SAAS;AAAA,EACZ,aAAaA,IACV;AAAA,IACCA,IAAE,MAAM;AAAA,MACN;AAAA,MACA;AAAA,IACF,CAAC;AAAA,EACH,EACC,IAAI,CAAC;AAAA,EACR,kBAAkB;AAAA,EAClB,YAAY;AAAA,EACZ,qBAAqBA,IAAE,MAAM,wBAAwB,EAAE,IAAI,CAAC;AAAA,EAC5D,kBAAkBA,IAAE,MAAM,yBAAyB,EAAE,SAAS;AAAA,EAC9D,qBAAqBA,IAAE,MAAM,4BAA4B,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,EAC5E,kBAAkBA,IAAE,MAAM,yBAAyB,EAAE,SAAS;AAAA,EAC9D,qBAAqBA,IAAE,MAAM,wBAAwB,EAAE,SAAS;AAAA,EAChE,kBAAkBA,IAAE,MAAM,8BAA8B;AAAA,EACxD,eAAeA,IAAE,MAAM,kBAAkB,EAAE,SAAS;AAAA,EACpD,oBAAoB,yBAAyB,SAAS;AAAA,EACtD,gBAAgBA,IAAE,MAAM,mBAAmB;AAAA,EAC3C,iBAAiBA,IAAE,MAAM,oBAAoB,EAAE,IAAI,GAAG,EAAE,SAAS;AAAA,EACjE,kBAAkB;AAAA,EAClB,kBAAkB;AAAA,EAClB,mBAAmBA,IAAE,MAAM,iBAAiB,EAAE,IAAI,CAAC;AAAA,EACnD,sBAAsB;AAAA,EACtB,8BAA8B;AAAA,EAC9B,uBAAuBA,IAAE,KAAK;AAAA,IAC5B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACH,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,gCAA8B,OAAO,OAAO;AAC5C;AAAA,IACE,MAAM;AAAA,IACN,MAAM;AAAA,IACN;AAAA,EACF;AACA,QAAM,0BAA0B,MAAM,2BAA2B,CAAC;AAClE,MACE;AAAA,IACE;AAAA,IACA,CAAC,cAAc,GAAG,UAAU,OAAO,IAAI,UAAU,KAAK;AAAA,EACxD,GACA;AACA,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,yBAAyB;AAAA,MAChC,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACA,0BAAwB,QAAQ,CAAC,cAAc,UAAU;AACvD,QAAI,CAAC,MAAM,kBAAkB,SAAS,aAAa,OAAO,GAAG;AAC3D,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,2BAA2B,OAAO,SAAS;AAAA,QAClD,SACE;AAAA,MACJ,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AACD,8BAA4B,MAAM,qBAAqB,MAAM,oBAAoB,CAAC,GAAG,IAAI,IAAI,CAAC,GAAI,MAAM,iBAAiB,CAAC,GAAI,GAAG,MAAM,gBAAgB,EAAE,IAAI,aAAW,QAAQ,SAAS,CAAC,GAAG,MAAM,uBAAuB,CAAC,GAAG,OAAO;AACrO,QAAM,mBAAmB,MAAM,oBAAoB,CAAC;AACpD,QAAM,mBAAmB,MAAM,oBAAoB,CAAC;AACpD,QAAM,sBAAsB,MAAM,uBAAuB,CAAC;AAC1D,QAAM,gBAAgB,MAAM,iBAAiB,CAAC;AAC9C,mBAAiB,QAAQ,CAAC,YAAY,UAAU;AAC9C,UAAM,mBAAmB,WAAW;AACpC,UAAM,wBACJ,WAAW,+BAA+B,UAAU;AAAA,MAClD,CAAC,YAAY,OAAO,YAAY;AAAA,IAClC,KAAK,CAAC;AACR,QAAI,CAAC,kBAAkB;AACrB,UAAI,sBAAsB,SAAS,GAAG;AACpC,gBAAQ,SAAS;AAAA,UACf,MAAM;AAAA,UACN,MAAM;AAAA,YACJ;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF;AAAA,UACA,SACE;AAAA,QACJ,CAAC;AAAA,MACH;AACA;AAAA,IACF;AACA,UAAM,sBAAsB,iBAAiB;AAAA,MAC3C,CAAC,cAAc,UAAU,YAAY;AAAA,IACvC;AACA,QACE,qBAAqB,WAAW,WAChC,CAAC,uBACD,oBAAoB,4BACpB;AACA,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,oBAAoB,OAAO,4BAA4B;AAAA,QAC9D,SACE;AAAA,MACJ,CAAC;AAAA,IACH;AACA,eAAW,+BAA+B,UAAU;AAAA,MAClD,CAAC,SAAS,iBAAiB;AACzB,YACE,OAAO,YAAY,YACnB,QAAQ,YAAY,kBACpB;AACA,kBAAQ,SAAS;AAAA,YACf,MAAM;AAAA,YACN,MAAM;AAAA,cACJ;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA,SACE;AAAA,UACJ,CAAC;AAAA,QACH;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAC;AACD,QAAM,aAQF;AAAA,IACF;AAAA,MACE;AAAA,MACA,MAAM;AAAA,MACN,CAAC,cAAc,OAAO,UAAU,UAAU;AAAA,IAC5C;AAAA,IACA;AAAA,MACE;AAAA,MACA;AAAA,MACA,CAAC,cAAc,OAAO,UAAU,OAAO;AAAA,IACzC;AAAA,IACA;AAAA,MACE;AAAA,MACA;AAAA,MACA,CAAC,cAAc,OAAO,UAAU,YAAY;AAAA,IAC9C;AAAA,IACA;AAAA,MACE;AAAA,MACA;AAAA,MACA,CAAC,cAAc,OAAO,UAAU,SAAS;AAAA,IAC3C;AAAA,IACA;AAAA,MACE;AAAA,MACA,MAAM;AAAA,MACN,CAAC,cAAc,OAAO,UAAU,SAAS;AAAA,IAC3C;AAAA,IACA;AAAA,MACE;AAAA,MACA;AAAA,MACA,CAAC,cAAc,OAAO,UAAU,SAAS;AAAA,IAC3C;AAAA,IACA;AAAA,MACE;AAAA,MACA,MAAM;AAAA,MACN,CAAC,cAAc,OAAO,UAAU,SAAS;AAAA,IAC3C;AAAA,EACF;AACA,aAAW,QAAQ,CAAC,CAAC,OAAO,QAAQ,QAAQ,MAAM;AAChD,QAAI,YAAY,QAAQ,QAAQ;AAC9B,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,KAAK;AAAA,QACZ,SAAS,GAAG,KAAK;AAAA,MACnB,CAAC;AAAA,EACL,CAAC;AACD,QAAM,cAAc,IAAI;AAAA,IACtB,MAAM,oBAAoB,IAAI,CAAC,aAAa,SAAS,UAAU;AAAA,EACjE;AACA,QAAM,WAAW,IAAI,IAAI,iBAAiB,IAAI,CAAC,UAAU,MAAM,OAAO,CAAC;AACvE,QAAM,oBAAoB,QAAQ,CAAC,UAAU,UAAU;AACrD,UAAM,QAAQ,oBAAI,IAAY;AAC9B,UAAM,eAAe,oBAAI,IAAY;AACrC,aAAS,sBAAsB,QAAQ,CAAC,SAAS,iBAAiB;AAChE,YAAM,OAAO;AAAA,QACX;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AACA,UAAI,aAAa,IAAI,QAAQ,IAAI;AAC/B,gBAAQ,SAAS;AAAA,UACf,MAAM;AAAA,UACN;AAAA,UACA,SACE;AAAA,QACJ,CAAC;AACH,mBAAa,IAAI,QAAQ,IAAI;AAC7B,iBAAW,QAAQ,2BAA2B,QAAQ,UAAU,GAAG;AACjE,YACE,KAAK,SAAS,aACd,KAAK,SAAS,YACb,KAAK,SAAS,WAAW,CAAC,SAAS,IAAI,KAAK,KAAK,CAAC,KAAK,EAAE,MACxD,KAAK,SAAS,cAAc,KAAK,SAAS,cAC1C,CAAC,CAAC,GAAG,MAAM,kBAAkB,GAAG,aAAa,EAAE;AAAA,UAC7C,CAAC,cAAc,UAAU,cAAc,KAAK,KAAK,CAAC;AAAA,QACpD;AAEF,kBAAQ,SAAS;AAAA,YACf,MAAM;AAAA,YACN;AAAA,YACA,SACE;AAAA,UACJ,CAAC;AAAA,MACL;AAAA,IACF,CAAC;AAED,aAAS,cAAc,QAAQ,CAAC,QAAQ,gBAAgB;AACtD,YAAM,OAAO;AAAA,QACX;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AACA,UACE,OAAO,8BAA8B,SAAS,YAC9C,MAAM,IAAI,OAAO,UAAU;AAE3B,gBAAQ,SAAS;AAAA,UACf,MAAM;AAAA,UACN;AAAA,UACA,SACE;AAAA,QACJ,CAAC;AACH,YAAM,IAAI,OAAO,UAAU;AAC3B,UACE,MAAM,eAAe;AAAA,QACnB,CAAC,YACC,QAAQ,OAAO,yBAAyB,SAAS,cACjD,QAAQ,OAAO,SAAS,OAAO;AAAA,MACnC;AAEA,gBAAQ,SAAS;AAAA,UACf,MAAM;AAAA,UACN;AAAA,UACA,SACE;AAAA,QACJ,CAAC;AACH,iBAAW,MAAM,OAAO;AACtB,YACE,CAAC,CAAC,GAAG,MAAM,kBAAkB,GAAG,aAAa,EAAE;AAAA,UAC7C,CAAC,YAAY,QAAQ,cAAc;AAAA,QACrC;AAEA,kBAAQ,SAAS;AAAA,YACf,MAAM;AAAA,YACN;AAAA,YACA,SAAS;AAAA,UACX,CAAC;AAAA,IACP,CAAC;AAAA,EACH,CAAC;AAED,QAAM,cAAc,IAAI;AAAA,IACtB,MAAM,WAAW,MACd,OAAO,CAAC,SAAS,KAAK,MAAM,EAC5B,IAAI,CAAC,SAAS,KAAK,MAAM;AAAA,EAC9B;AACA,mBAAiB,QAAQ,CAAC,YAAY,UAAU;AAC9C,QAAI,WAAW,eAAe,CAAC,YAAY,IAAI,WAAW,WAAW;AACnE,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,oBAAoB,OAAO,aAAa;AAAA,QAC/C,SACE;AAAA,MACJ,CAAC;AACH,QAAI,WAAW,gBAAgB,CAAC,WAAW,aAAa;AACtD,YAAM,aAAa,WAAW;AAC9B,YAAM,SACJ,WAAW,SAAS,SAChB,iBAAiB;AAAA,QACf,CAAC,UACC,MAAM,YAAY,WAAW,KAAK,CAAC,KAAK,CAAC,MAAM;AAAA,MACnD,IACA;AACN,UACE,CAAC,UACD,OAAO,gBACP,CAAC,CAAC,qBAAqB,4BAA4B,EAAE;AAAA,QACnD,OAAO;AAAA,MACT;AAEA,gBAAQ,SAAS;AAAA,UACf,MAAM;AAAA,UACN,MAAM,CAAC,oBAAoB,OAAO,cAAc;AAAA,UAChD,SACE;AAAA,QACJ,CAAC;AAAA,IACL;AACA,QAAI,WAAW,cAAc;AAC3B,iBAAW,QAAQ;AAAA,QACjB,WAAW;AAAA,MACb,GAAG;AACD,YACE,CAAC,CAAC,SAAS,OAAO,EAAE,SAAS,KAAK,IAAI,KACrC,KAAK,SAAS,WACb,CAAC,iBAAiB;AAAA,UAChB,CAAC,UAAU,MAAM,YAAY,KAAK,KAAK,CAAC,KAAK,CAAC,MAAM;AAAA,QACtD;AAEF,kBAAQ,SAAS;AAAA,YACf,MAAM;AAAA,YACN,MAAM,CAAC,oBAAoB,OAAO,cAAc;AAAA,YAChD,SACE;AAAA,UACJ,CAAC;AAAA,MACL;AAAA,IACF;AAAA,EACF,CAAC;AACD,QAAM,WAAW,MAAM,QAAQ,CAAC,MAAM,UAAU;AAC9C,QAAI,CAAC,KAAK,OAAQ;AAClB,eAAW,QAAQ,2BAA2B,KAAK,OAAO,MAAM,GAAG;AACjE,UACE,KAAK,SAAS,aACd,KAAK,SAAS,YACd,KAAK,SAAS,YACd,KAAK,SAAS,WACb,KAAK,SAAS,WAAW,CAAC,SAAS,IAAI,KAAK,KAAK,CAAC,KAAK,EAAE,MACxD,KAAK,SAAS,cAAc,KAAK,SAAS,cAC1C,CAAC,CAAC,GAAG,MAAM,kBAAkB,GAAG,aAAa,EAAE;AAAA,QAC7C,CAAC,YAAY,QAAQ,cAAc,KAAK,KAAK,CAAC;AAAA,MAChD;AAEF,gBAAQ,SAAS;AAAA,UACf,MAAM;AAAA,UACN,MAAM,CAAC,cAAc,SAAS,OAAO,UAAU,QAAQ;AAAA,UACvD,SACE;AAAA,QACJ,CAAC;AAAA,IACL;AAAA,EACF,CAAC;AAGD,QAAM,kBAAkB,IAAI;AAAA,IAC1B,MAAM,WAAW,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,QAAQ,IAAI,CAAC;AAAA,EAC1D;AACA,QAAM,gBAAgB,IAAI;AAAA,IACxB,MAAM,oBAAoB,IAAI,CAAC,aAAa;AAAA,MAC1C,SAAS;AAAA,MACT,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,QAAM,gBAAgB,CAAC,WAA4C;AACjE,UAAM,SAAS,oBAAI,IAAY;AAC/B,UAAM,UAAU,oBAAI,IAAY;AAChC,QAAI,OAAO,SAAS,gBAAgB,IAAI,MAAM,IAAI;AAClD,WAAO,QAAQ,CAAC,QAAQ,IAAI,KAAK,MAAM,GAAG;AACxC,cAAQ,IAAI,KAAK,MAAM;AACvB,UAAI,KAAK,OAAQ,QAAO,IAAI,KAAK,MAAM;AACvC,aAAO,KAAK,eACR,gBAAgB,IAAI,KAAK,YAAY,IACrC;AAAA,IACN;AACA,WAAO;AAAA,EACT;AACA,QAAM,cAAc,IAAI;AAAA,IACtB,CAAC,GAAG,MAAM,kBAAkB,GAAG,aAAa,EAAE,IAAI,CAAC,YAAY;AAAA,MAC7D,QAAQ;AAAA,MACR;AAAA,QACE,GAAG;AAAA,UACD,cAAc,IAAI,QAAQ,OAAO,oBAAoB;AAAA,QACvD;AAAA,MACF,EAAE,CAAC;AAAA,IACL,CAAC;AAAA,EACH;AACA,QAAM,eAAe,IAAI;AAAA,IACvB,MAAM,eAAe,IAAI,CAAC,YAAY;AAAA,MACpC,QAAQ;AAAA,MACR,cAAc,cAAc,IAAI,QAAQ,OAAO,oBAAoB,CAAC;AAAA,IACtE,CAAC;AAAA,EACH;AACA,QAAM,eAAe,IAAI;AAAA,IACvB,CAAC,GAAG,YAAY,EAAE,IAAI,CAAC,CAAC,IAAI,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC;AAAA,EAC9D;AACA,MAAI,aAAa,SAAS,MAAM,eAAe;AAC7C,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,gBAAgB;AAAA,MACvB,SAAS;AAAA,IACX,CAAC;AACH,QAAM,mBAAmB,CACvB,OACA,QACA,SACG;AACH,eAAW,QAAQ,OAAO;AACxB,UACE,KAAK,SAAS,cACb,CAAC,KAAK,KAAK,CAAC,KACX,CAAC,CAAC,GAAG,MAAM,kBAAkB,GAAG,aAAa,EAAE;AAAA,QAC7C,CAAC,YAAY,QAAQ,cAAc,KAAK,KAAK,CAAC;AAAA,MAChD,KACA,KAAK,KAAK,WAAW,KACrB,CAAC,CAAC,UAAU,WAAW,WAAW,EAAE,SAAS,KAAK,KAAK,CAAC,KAAK,EAAE;AAEjE,gBAAQ,SAAS;AAAA,UACf,MAAM;AAAA,UACN;AAAA,UACA,SACE;AAAA,QACJ,CAAC;AACH,YAAM,QACJ,KAAK,SAAS,UACV,iBAAiB,KAAK,CAAC,UAAU,MAAM,YAAY,KAAK,KAAK,CAAC,CAAC,GAC3D,cACJ,KAAK,SAAS,aACZ,YAAY,IAAI,KAAK,KAAK,CAAC,CAAC,IAC5B,KAAK,SAAS,YACZ,YAAY,IAAI,KAAK,KAAK,CAAC,CAAC,IAC5B,KAAK,SAAS,YACZ,aAAa,IAAI,KAAK,KAAK,CAAC,CAAC,IAC7B;AAGZ,YAAM,mBACJ,KAAK,SAAS,aACd,KAAK,KAAK,WAAW,KACrB,KAAK,KAAK,CAAC,MAAM,aACjB,aAAa,IAAI,KAAK,KAAK,CAAC,CAAC,KAC7B,CAAC,GAAG,MAAM,EAAE;AAAA,QAAM,CAAC,UACjB,aAAa,IAAI,KAAK,KAAK,CAAC,CAAC,EAAG,IAAI,KAAK;AAAA,MAC3C;AACF,UAAI,SAAS,CAAC,OAAO,IAAI,KAAK,KAAK,CAAC;AAClC,gBAAQ,SAAS;AAAA,UACf,MAAM;AAAA,UACN;AAAA,UACA,SACE;AAAA,QACJ,CAAC;AAAA,IACL;AAAA,EACF;AACA,QAAM,qBAAqB,CACzB,SAMA,QACA,SACG;AACH,WAAO,QAAQ,OAAO,EAAE,QAAQ,CAAC,CAAC,MAAM,MAAM,MAAM;AAClD,UAAI,OAAO,SAAS;AAClB;AAAA,UACE,2BAA2B,OAAO,UAAU;AAAA,UAC5C;AAAA,UACA,CAAC,GAAG,MAAM,IAAI;AAAA,QAChB;AACF,UAAI,OAAO,SAAS;AAClB;AAAA,UACE,CAAC,EAAE,MAAM,QAAQ,MAAM,SAAS,MAAM,CAAC,OAAO,OAAO,EAAE,CAAC;AAAA,UACxD;AAAA,UACA,CAAC,GAAG,MAAM,IAAI;AAAA,QAChB;AACF,UAAI,OAAO,SAAS;AAClB;AAAA,UACE,CAAC,EAAE,MAAM,QAAQ,MAAM,YAAY,MAAM,CAAC,OAAO,SAAS,EAAE,CAAC;AAAA,UAC7D;AAAA,UACA,CAAC,GAAG,MAAM,IAAI;AAAA,QAChB;AACF,UAAI,OAAO,SAAS,iBAAiB,OAAO,SAAS;AACnD,gBAAQ,SAAS;AAAA,UACf,MAAM;AAAA,UACN,MAAM,CAAC,GAAG,MAAM,IAAI;AAAA,UACpB,SAAS;AAAA,QACX,CAAC;AAAA,IACL,CAAC;AAAA,EACH;AACA,QAAM,oBAAoB;AAAA,IAAQ,CAAC,UAAU,UAC3C,SAAS,sBAAsB;AAAA,MAAQ,CAAC,SAAS,iBAC/C;AAAA,QACE,2BAA2B,QAAQ,UAAU;AAAA,QAC7C,cAAc,SAAS,MAAM;AAAA,QAC7B,CAAC,uBAAuB,OAAO,wBAAwB,YAAY;AAAA,MACrE;AAAA,IACF;AAAA,EACF;AACA,QAAM,oBAAoB;AAAA,IAAQ,CAAC,UAAU,UAC3C,SAAS,kBAAkB,QAAQ,CAAC,SAAS,iBAAiB;AAC5D;AAAA,QACE,2BAA2B,QAAQ,UAAU;AAAA,QAC7C,cAAc,SAAS,MAAM;AAAA,QAC7B,CAAC,uBAAuB,OAAO,oBAAoB,YAAY;AAAA,MACjE;AAAA,IACF,CAAC;AAAA,EACH;AACA,aAAW,CAAC,YAAY,QAAQ,KAAK;AAAA,IACnC,CAAC,oBAAoB,MAAM,gBAAgB;AAAA,IAC3C,CAAC,iBAAiB,aAAa;AAAA,EACjC,GAAY;AACV,aAAS;AAAA,MAAQ,CAAC,SAAS,UACzB;AAAA,QACE,QAAQ;AAAA,QACR,cAAc,cAAc,IAAI,QAAQ,OAAO,oBAAoB,CAAC;AAAA,QACpE,CAAC,YAAY,OAAO,YAAY;AAAA,MAClC;AAAA,IACF;AAAA,EACF;AACA,GAAC,MAAM,mBAAmB,CAAC,GAAG,QAAQ,CAAC,SAAS,UAAU;AACxD,UAAM,SAAS;AAAA,MACb,cAAc,IAAI,QAAQ,OAAO,oBAAoB;AAAA,IACvD;AACA,uBAAmB,QAAQ,cAAc,QAAQ;AAAA,MAC/C;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AACD,eAAW,CAAC,IAAI,OAAO,KAAK,OAAO,QAAQ,QAAQ,gBAAgB;AACjE,yBAAmB,SAAS,QAAQ;AAAA,QAClC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC;AACH,QAAI,QAAQ,MAAM;AAChB,YAAM,QAAQ,2BAA2B,QAAQ,IAAI;AACrD,uBAAiB,OAAO,QAAQ,CAAC,mBAAmB,OAAO,MAAM,CAAC;AAClE,UACE,MAAM;AAAA,QACJ,CAAC,SAAS,KAAK,SAAS,WAAW,CAAC,SAAS,IAAI,KAAK,KAAK,CAAC,CAAE;AAAA,MAChE;AAEA,gBAAQ,SAAS;AAAA,UACf,MAAM;AAAA,UACN,MAAM,CAAC,mBAAmB,OAAO,MAAM;AAAA,UACvC,SAAS;AAAA,QACX,CAAC;AAAA,IACL;AAAA,EACF,CAAC;AACD,QAAM,eAAe,QAAQ,CAAC,SAAS,UAAU;AAC/C,UAAM,SAAS;AAAA,MACb,cAAc,IAAI,QAAQ,OAAO,oBAAoB;AAAA,IACvD;AACA,uBAAmB,QAAQ,cAAc,QAAQ;AAAA,MAC/C;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AACD,eAAW,CAAC,WAAW,IAAI,MAAM,QAAQ,cAAc,CAAC,GAAG,QAAQ,GAAG;AACpE,UAAI,KAAK,OAAO,SAAS,cAAc;AACrC,cAAM,UAAU,KAAK,OAAO;AAC5B,cAAM,QAAQ,iBAAiB;AAAA,UAC7B,CAAC,cAAc,UAAU,YAAY;AAAA,QACvC;AACA,YAAI,CAAC,SAAS,MAAM,gBAAgB;AAClC,kBAAQ,SAAS;AAAA,YACf,MAAM;AAAA,YACN,MAAM,CAAC,kBAAkB,OAAO,cAAc,SAAS;AAAA,YACvD,SACE;AAAA,UACJ,CAAC;AACH,2BAAmB,EAAE,MAAM,KAAK,OAAO,GAAG,QAAQ;AAAA,UAChD;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF,CAAC;AAAA,MACH;AAAA,IACF;AAEA,QAAI,QAAQ,MAAM;AAChB,YAAM,QAAQ,2BAA2B,QAAQ,IAAI;AACrD,uBAAiB,OAAO,QAAQ,CAAC,kBAAkB,OAAO,MAAM,CAAC;AACjE,iBAAW,QAAQ;AACjB,YAAI,KAAK,SAAS,WAAW,CAAC,SAAS,IAAI,KAAK,KAAK,CAAC,CAAE;AACtD,kBAAQ,SAAS;AAAA,YACf,MAAM;AAAA,YACN,MAAM,CAAC,kBAAkB,OAAO,MAAM;AAAA,YACtC,SAAS;AAAA,UACX,CAAC;AAAA,IACP;AAAA,EACF,CAAC;AACD,sBAAoB,QAAQ,CAAC,SAAS,UAAU;AAC9C,UAAM,eAAe;AAAA,MACnB,cAAc,IAAI,QAAQ,OAAO,oBAAoB;AAAA,IACvD;AACA,UAAM,cAAc,iBAAiB;AAAA,MACnC,CAAC,UAAU,MAAM,YAAY,QAAQ;AAAA,IACvC,GAAG;AACH,QAAI,eAAe,CAAC,aAAa,IAAI,WAAW;AAC9C,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,uBAAuB,OAAO,eAAe;AAAA,QACpD,SACE;AAAA,MACJ,CAAC;AACH;AAAA,MACE,QAAQ;AAAA,MACR,cAAc,cAAc,WAAW,IAAI,oBAAI,IAAI;AAAA,MACnD,CAAC,uBAAuB,OAAO,cAAc;AAAA,IAC/C;AAAA,EACF,CAAC;AACD,QAAM,WAAW,MAAM,QAAQ,CAAC,MAAM,UAAU;AAC9C,QAAI,KAAK;AACP;AAAA,QACE,2BAA2B,KAAK,OAAO,MAAM;AAAA,QAC7C,cAAc,KAAK,YAAY;AAAA,QAC/B,CAAC,cAAc,SAAS,OAAO,UAAU,QAAQ;AAAA,MACnD;AAAA,EACJ,CAAC;AAED,mBAAiB,QAAQ,CAAC,YAAY,oBAAoB;AACxD,QACE,WAAW,kBACV,CAAC,YAAY,IAAI,WAAW,cAAc,oBAAoB,KAC7D,CAAC,oBAAoB;AAAA,MACnB,CAAC,YACC,QAAQ,OAAO,yBACb,WAAW,cAAe,wBAC5B,QAAQ,OAAO,SAAS,WAAW,cAAe;AAAA,IACtD,IACF;AACA,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,oBAAoB,iBAAiB,eAAe;AAAA,QAC3D,SACE;AAAA,MACJ,CAAC;AAAA,IACH;AACA,QACE,WAAW,UAAU,SAAS,UAC9B,WAAW,UAAU,OAAO,MAAM,QAClC;AACA,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,oBAAoB,iBAAiB,WAAW;AAAA,QACvD,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AACA;AAAA,MACE,WAAW;AAAA,MACX,CAAC,WAAW,kBAAkB;AAC5B,YAAI,CAAC,SAAS,IAAI,UAAU,OAAO,GAAG;AACpC,kBAAQ,SAAS;AAAA,YACf,MAAM;AAAA,YACN,MAAM;AAAA,cACJ;AAAA,cACA;AAAA,cACA;AAAA,cACA,GAAG;AAAA,cACH;AAAA,YACF;AAAA,YACA,SAAS,kDAAkD,UAAU,OAAO;AAAA,UAC9E,CAAC;AAAA,QACH;AAAA,MACF;AAAA,IACF;AACA,UAAM,0BAA0B,IAAI;AAAA,MAClC,MAAM,YAAY;AAAA,QAAQ,CAAC,UACzB,CAAC,GAAG,MAAM,aAAa,SAAS,4BAA4B,CAAC,EAAE;AAAA,UAC7D,CAAC,UAAU,MAAM,CAAC;AAAA,QACpB;AAAA,MACF;AAAA,IACF;AACA,eAAW,UAAU;AAAA,MACnB,GAAG,OAAO,OAAO,WAAW,cAAc;AAAA,MAC1C,GAAG,OAAO,OAAO,WAAW,MAAM,GAAG;AAAA,IACvC,GAAG;AACD,UACE,OAAO,SAAS,qBAChB,CAAC,wBAAwB,IAAI,OAAO,IAAI,GACxC;AACA,gBAAQ,SAAS;AAAA,UACf,MAAM;AAAA,UACN,MAAM,CAAC,oBAAoB,eAAe;AAAA,UAC1C,SAAS,8DAA8D,OAAO,IAAI;AAAA,QACpF,CAAC;AAAA,MACH;AAAA,IACF;AACA,UAAM,eAAe;AAAA,MACnB,GAAG,OAAO,OAAO,WAAW,cAAc,EAAE;AAAA,QAAQ,CAAC,WACnD,OAAO,SAAS,eAAe,CAAC,OAAO,OAAO,IAAI,CAAC;AAAA,MACrD;AAAA,MACA,GAAG,OAAO,OAAO,WAAW,MAAM,GAAG,EAAE;AAAA,QAAQ,CAAC,WAC9C,OAAO,SAAS,eAAe,CAAC,OAAO,OAAO,IAAI,CAAC;AAAA,MACrD;AAAA,IACF;AACA,iBAAa,QAAQ,CAAC,YAAY;AAChC,UAAI,CAAC,SAAS,IAAI,OAAO,GAAG;AAC1B,gBAAQ,SAAS;AAAA,UACf,MAAM;AAAA,UACN,MAAM,CAAC,oBAAoB,eAAe;AAAA,UAC1C,SAAS,kDAAkD,OAAO;AAAA,QACpE,CAAC;AAAA,MACH;AAAA,IACF,CAAC;AAAA,EACH,CAAC;AACD,QAAM,2BAA2B,CAC/B,SAMA,SACG;AACH,WAAO,QAAQ,OAAO,EAAE,QAAQ,CAAC,CAAC,MAAM,MAAM,MAAM;AAClD,UAAI,OAAO,SAAS,cAAc;AAChC,mBAAW,QAAQ,2BAA2B,OAAO,UAAU,GAAG;AAChE,cACG,KAAK,SAAS,YACZ,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,SAAS,IAAI,KAAK,KAAK,CAAC,CAAC,MAC9C,KAAK,SAAS,WACd,KAAK,SAAS,cACb,KAAK,SAAS,YAAY,KAAK,CAAC,MAAM,uBACvC;AACA,oBAAQ,SAAS;AAAA,cACf,MAAM;AAAA,cACN,MAAM,CAAC,GAAG,MAAM,MAAM,YAAY;AAAA,cAClC,SACE;AAAA,YACJ,CAAC;AAAA,UACH;AAAA,QACF;AAAA,MACF;AACA,UAAI,OAAO,SAAS,gBAAgB,CAAC,SAAS,IAAI,OAAO,OAAO,GAAG;AACjE,gBAAQ,SAAS;AAAA,UACf,MAAM;AAAA,UACN,MAAM,CAAC,GAAG,MAAM,MAAM,SAAS;AAAA,UAC/B,SAAS,uBAAuB,OAAO,OAAO;AAAA,QAChD,CAAC;AAAA,MACH;AAAA,IACF,CAAC;AAAA,EACH;AACA,sBAAoB,QAAQ,CAAC,SAAS,UAAU;AAC9C,QAAI,CAAC,YAAY,IAAI,QAAQ,OAAO,oBAAoB,GAAG;AACzD,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM;AAAA,UACJ;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QACA,SACE;AAAA,MACJ,CAAC;AAAA,IACH;AACA,QAAI,CAAC,SAAS,IAAI,QAAQ,aAAa,GAAG;AACxC,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,uBAAuB,OAAO,eAAe;AAAA,QACpD,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AACA,6BAAyB,QAAQ,cAAc;AAAA,MAC7C;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AACD,QACE,OAAO,OAAO,QAAQ,YAAY,EAAE;AAAA,MAClC,CAAC,WACC,OAAO,SAAS,kBACf,OAAO,SAAS,gBACf,2BAA2B,OAAO,UAAU,EAAE;AAAA,QAC5C,CAAC,SAAS,KAAK,SAAS;AAAA,MAC1B;AAAA,IACN,GACA;AACA,YAAM,SAAS,MAAM,eAAe;AAAA,QAClC,CAAC,cACC,UAAU,OAAO,yBACf,QAAQ,OAAO,wBACjB,UAAU,OAAO,SAAS,QAAQ,OAAO;AAAA,MAC7C;AACA,UAAI,CAAC,QAAQ;AACX,gBAAQ,SAAS;AAAA,UACf,MAAM;AAAA,UACN,MAAM,CAAC,uBAAuB,OAAO,QAAQ;AAAA,UAC7C,SACE;AAAA,QACJ,CAAC;AAAA,MACH,WACE,CAAC,QAAQ,iCACT,CAAC;AAAA,QACC,QAAQ;AAAA,QACR,OAAO;AAAA,MACT,GACA;AACA,gBAAQ,SAAS;AAAA,UACf,MAAM;AAAA,UACN,MAAM;AAAA,YACJ;AAAA,YACA;AAAA,YACA;AAAA,UACF;AAAA,UACA,SACE;AAAA,QACJ,CAAC;AAAA,MACH;AAAA,IACF;AAAA,EACF,CAAC;AACD,QAAM,oBAAoB,QAAQ,CAAC,UAAU,UAAU;AACrD,UAAM,QAAoB,CAAC;AAC3B,aAAS,kBAAkB,QAAQ,CAAC,SAAS,iBAAiB;AAC5D,YAAM,OAAO;AAAA,QACX;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AACA,UACE,SAAS,sBAAsB,GAAG;AAAA,QAChC;AAAA,MACF,GACA;AACA,cAAM,CAAC,OAAOG,SAAQ,KAAK,IAAI,QAAQ;AACvC,cAAM,WAAW,SAAS,WAAW;AACrC,cAAM,UACJ,YAAY,OAAO,aAAa,YAAY,CAAC,MAAM,QAAQ,QAAQ,IAC/D,SAASA,OAAM,IACf;AACN,cAAM,kBACJ,WAAW,OAAO,YAAY,YAAY,CAAC,MAAM,QAAQ,OAAO;AAClE,cAAM,UACH,UAAU,WAAW,QAAQ,WAAW,UAAU,KAClD,UAAU,cACT,oBACE,UAAU,YAAY,QAAQ,WAAW,UAAU,KAClD,QAAQ,WAAW,WAAW,MAC5B,UAAU,SAAS,UAAU,eAC9B,OAAO,UAAU,eAAe,KAAK,SAAS,KAAK;AAC3D,YAAI,CAAC;AACH,kBAAQ,SAAS;AAAA,YACf,MAAM;AAAA,YACN,MAAM,CAAC,GAAG,MAAM,YAAY;AAAA,YAC5B,SACE;AAAA,UACJ,CAAC;AAAA,MACL;AAEA,UACE,MAAM;AAAA,QAAK,CAAC,aACV,SACG,MAAM,GAAG,KAAK,IAAI,SAAS,QAAQ,QAAQ,WAAW,MAAM,CAAC,EAC7D,MAAM,CAAC,KAAK,MAAM,QAAQ,QAAQ,WAAW,CAAC,CAAC;AAAA,MACpD,GACA;AACA,gBAAQ,SAAS;AAAA,UACf,MAAM;AAAA,UACN,MAAM,CAAC,GAAG,MAAM,YAAY;AAAA,UAC5B,SAAS;AAAA,QACX,CAAC;AAAA,MACH;AACA,YAAM,KAAK,QAAQ,UAAU;AAC7B,0BAAoB,QAAQ,YAAY,CAAC,eAAe;AACtD,YAAI,WAAW,SAAS,OAAQ;AAChC,YACE,WAAW,SAAS,YACnB,CAAC,WAAW,KAAK,CAAC,KAAK,CAAC,SAAS,IAAI,WAAW,KAAK,CAAC,CAAC,IACxD;AACA,kBAAQ,SAAS;AAAA,YACf,MAAM;AAAA,YACN,MAAM,CAAC,GAAG,MAAM,YAAY;AAAA,YAC5B,SACE;AAAA,UACJ,CAAC;AAAA,QACH;AACA,aACG,WAAW,SAAS,cAAc,WAAW,SAAS,cACvD,CAAC,CAAC,GAAG,MAAM,kBAAkB,GAAG,aAAa,EAAE;AAAA,UAC7C,CAAC,cAAc,UAAU,cAAc,WAAW,KAAK,CAAC;AAAA,QAC1D,GACA;AACA,kBAAQ,SAAS;AAAA,YACf,MAAM;AAAA,YACN,MAAM,CAAC,GAAG,MAAM,YAAY;AAAA,YAC5B,SACE;AAAA,UACJ,CAAC;AAAA,QACH;AACA,YACE,WAAW,SAAS,cACnB,WAAW,KAAK,WAAW,KAC1B,CAAC,aAAa,IAAI,WAAW,KAAK,CAAC,CAAC,KACpC,CAAC,CAAC,WAAW,WAAW,EAAE,SAAS,WAAW,KAAK,CAAC,CAAC,IACvD;AACA,kBAAQ,SAAS;AAAA,YACf,MAAM;AAAA,YACN,MAAM,CAAC,GAAG,MAAM,YAAY;AAAA,YAC5B,SACE;AAAA,UACJ,CAAC;AAAA,QACH;AACA,YAAI,WAAW,SAAS,YAAY,WAAW,SAAS,UAAU;AAChE,kBAAQ,SAAS;AAAA,YACf,MAAM;AAAA,YACN,MAAM,CAAC,GAAG,MAAM,YAAY;AAAA,YAC5B,SACE;AAAA,UACJ,CAAC;AAAA,QACH;AAAA,MACF,CAAC;AAAA,IACH,CAAC;AACD,QAAI,CAAC,SAAS,eAAgB;AAC9B;AAAA,MACE,SAAS;AAAA,MACT,CAAC,WAAW,kBAAkB;AAC5B,YAAI,CAAC,SAAS,IAAI,UAAU,OAAO,GAAG;AACpC,kBAAQ,SAAS;AAAA,YACf,MAAM;AAAA,YACN,MAAM;AAAA,cACJ;AAAA,cACA;AAAA,cACA;AAAA,cACA,GAAG;AAAA,cACH;AAAA,YACF;AAAA,YACA,SACE;AAAA,UACJ,CAAC;AAAA,QACH;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAC;AACD,QAAM,iBAAiB,QAAQ,CAAC,SAAS,UAAU;AACjD,QAAI,CAAC,YAAY,IAAI,QAAQ,OAAO,oBAAoB,GAAG;AACzD,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,oBAAoB,OAAO,UAAU,sBAAsB;AAAA,QAClE,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AACA,6BAAyB,QAAQ,YAAY;AAAA,MAC3C;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AAAA,EACH,CAAC;AACD,gBAAc,QAAQ,CAAC,SAAS,UAAU;AACxC,QAAI,CAAC,YAAY,IAAI,QAAQ,OAAO,oBAAoB,GAAG;AACzD,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,iBAAiB,OAAO,UAAU,sBAAsB;AAAA,QAC/D,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AACA,6BAAyB,QAAQ,YAAY;AAAA,MAC3C;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AACD,QAAI,QAAQ,WAAW;AACrB;AAAA,QACE,QAAQ;AAAA,QACR,CAAC,WAAW,kBAAkB;AAC5B,cAAI,CAAC,SAAS,IAAI,UAAU,OAAO,GAAG;AACpC,oBAAQ,SAAS;AAAA,cACf,MAAM;AAAA,cACN,MAAM;AAAA,gBACJ;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA,GAAG;AAAA,gBACH;AAAA,cACF;AAAA,cACA,SACE;AAAA,YACJ,CAAC;AAAA,UACH;AAAA,QACF;AAAA,MACF;AAAA,IACF;AACA,QAAI,QAAQ,eAAe,MAAM;AAC/B,YAAM,OAAO,CAAC,iBAAiB,OAAO,iBAAiB,MAAM;AAC7D,YAAM,QAAQ;AAAA,QACZ,QAAQ,cAAc;AAAA,MACxB;AACA;AAAA,QACE;AAAA,QACA,cAAc,cAAc,IAAI,QAAQ,OAAO,oBAAoB,CAAC;AAAA,QACpE;AAAA,MACF;AACA,iBAAW,QAAQ;AACjB,YAAI,KAAK,SAAS,aAAa,CAAC,aAAa,IAAI,KAAK,KAAK,CAAC,CAAC;AAC3D,kBAAQ,SAAS;AAAA,YACf,MAAM;AAAA,YACN;AAAA,YACA,SACE;AAAA,UACJ,CAAC;AAAA,IACP;AACA,UAAM,eAAe,IAAI;AAAA,MACvB,QAAQ,cAAc;AAAA,QACpB,CAAC,WACC,iBAAiB;AAAA,UACf,CAAC,eAAe,WAAW,YAAY,OAAO;AAAA,QAChD,GAAG,eAAe;AAAA,MACtB,KAAK,CAAC;AAAA,IACR;AACA,QAAI,aAAa,OAAO;AACtB,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,iBAAiB,OAAO,cAAc;AAAA,QAC7C,SACE;AAAA,MACJ,CAAC;AACH,YAAQ,cAAc,QAAQ,CAAC,QAAQ,gBAAgB;AACrD,YAAM,OAAO,CAAC,iBAAiB,OAAO,gBAAgB,WAAW;AACjE,YAAM,QAAQ,iBAAiB;AAAA,QAC7B,CAAC,eAAe,WAAW,YAAY,OAAO;AAAA,MAChD;AACA,YAAM,SAAS;AAAA,QACb,cAAc,IAAI,QAAQ,OAAO,oBAAoB;AAAA,MACvD;AACA,UAAI,CAAC,SAAU,MAAM,eAAe,CAAC,OAAO,IAAI,MAAM,WAAW;AAC/D,gBAAQ,SAAS;AAAA,UACf,MAAM;AAAA,UACN,MAAM,CAAC,GAAG,MAAM,eAAe;AAAA,UAC/B,SACE;AAAA,QACJ,CAAC;AACH,iBAAW,cAAc;AAAA,QACvB,OAAO;AAAA,QACP,GAAI,OAAO,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC;AAAA,MACrC,GAAG;AACD,cAAM,QAAQ,2BAA2B,UAAU;AACnD;AAAA,UACE;AAAA,UACA,OAAO,cAAc,cAAc,MAAM,WAAW,IAAI,oBAAI,IAAI;AAAA,UAChE;AAAA,QACF;AACA,mBAAW,QAAQ;AACjB,cAAI,KAAK,SAAS,WAAW,CAAC,SAAS,IAAI,KAAK,KAAK,CAAC,CAAE;AACtD,oBAAQ,SAAS;AAAA,cACf,MAAM;AAAA,cACN;AAAA,cACA,SAAS;AAAA,YACX,CAAC;AAAA,MACP;AAAA,IACF,CAAC;AACD,YAAQ,qBAAqB,QAAQ,CAAC,eAAe,gBAAgB;AACnE,YAAM,kBAAkB,iBAAiB;AAAA,QACvC,CAAC,eAAe,WAAW,YAAY,cAAc;AAAA,MACvD;AACA,UAAI,CAAC,iBAAiB;AACpB,gBAAQ,SAAS;AAAA,UACf,MAAM;AAAA,UACN,MAAM;AAAA,YACJ;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF;AAAA,UACA,SAAS;AAAA,QACX,CAAC;AACD;AAAA,MACF;AACA,UACE,CAAC;AAAA,QACC,cAAc;AAAA,QACd,gBAAgB;AAAA,MAClB,GACA;AACA,gBAAQ,SAAS;AAAA,UACf,MAAM;AAAA,UACN,MAAM;AAAA,YACJ;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF;AAAA,UACA,SACE;AAAA,QACJ,CAAC;AAAA,MACH;AACA,UAAI,gBAAgB,gBAAgB,QAAQ;AAC1C,gBAAQ,SAAS;AAAA,UACf,MAAM;AAAA,UACN,MAAM;AAAA,YACJ;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF;AAAA,UACA,SACE;AAAA,QACJ,CAAC;AAAA,MACH;AAAA,IACF,CAAC;AAAA,EACH,CAAC;AACD,QAAM,qBAAqB,CAAC,GAAG,MAAM,kBAAkB,GAAG,aAAa;AACvE,iCAA+B,kBAAkB,EAAE,OAAO;AAAA,IACxD,CAAC,UAAU;AACT,YAAM,gBAAgB,MAAM,iBAAiB;AAAA,QAC3C,CAAC,YAAY,QAAQ,cAAc,MAAM;AAAA,MAC3C;AACA,YAAM,aACJ,iBAAiB,IAAI,qBAAqB;AAC5C,YAAM,QACJ,iBAAiB,IACb,gBACA,cAAc;AAAA,QACZ,CAAC,YAAY,QAAQ,cAAc,MAAM;AAAA,MAC3C;AACN,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,YAAY,OAAO,YAAY;AAAA,QACtC,SAAS,2BAA2B,MAAM,IAAI,KAAK,MAAM,gBAAgB,MAAM,SAAS;AAAA,MAC1F,CAAC;AAAA,IACH;AAAA,EACF;AACA,QAAM,yBAAyB,oBAAI,IAAY;AAC/C,gBAAc,QAAQ,CAAC,SAAS,UAAU;AACxC,YAAQ,qBAAqB,QAAQ,CAAC,eAAe,gBAAgB;AACnE,UAAI,uBAAuB,IAAI,cAAc,aAAa,GAAG;AAC3D,gBAAQ,SAAS;AAAA,UACf,MAAM;AAAA,UACN,MAAM;AAAA,YACJ;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF;AAAA,UACA,SACE;AAAA,QACJ,CAAC;AAAA,MACH;AACA,6BAAuB,IAAI,cAAc,aAAa;AAAA,IACxD,CAAC;AAAA,EACH,CAAC;AACD,gBAAc,QAAQ,CAAC,SAAS,UAAU;AACxC,QAAI,QAAQ,cAAc,SAAU;AACpC,UAAM,eAAe,IAAI;AAAA,MACvB,OAAO,OAAO,QAAQ,UAAU,EAAE;AAAA,QAAQ,CAAC,WACzC,OAAO,SAAS,eAAe,CAAC,OAAO,OAAO,IAAI,CAAC;AAAA,MACrD;AAAA,IACF;AACA,QAAI,QAAQ,WAAW;AACrB;AAAA,QAA0B,QAAQ;AAAA,QAAW,CAAC,cAC5C,aAAa,IAAI,UAAU,OAAO;AAAA,MACpC;AAAA,IACF;AACA,UAAM,kBAAkB,CAAC,GAAG,YAAY,EAAE;AAAA,MAAK,CAAC,YAC9C,uBAAuB,IAAI,OAAO;AAAA,IACpC;AACA,QAAI,iBAAiB;AACnB,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,iBAAiB,KAAK;AAAA,QAC7B,SAAS,mEAAmE,eAAe;AAAA,MAC7F,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AACD,QAAM,uBAAuB;AAAA,IAC3B,GAAG,MAAM,iBAAiB,IAAI,CAAC,SAAS,WAAW;AAAA,MACjD;AAAA,MACA;AAAA,MACA,YAAY;AAAA,IACd,EAAE;AAAA,IACF,GAAG,cAAc,IAAI,CAAC,SAAS,WAAW;AAAA,MACxC;AAAA,MACA;AAAA,MACA,YAAY;AAAA,IACd,EAAE;AAAA,EACJ,EAAE,OAAO,CAAC,cAAc,UAAU,QAAQ,iBAAiB,MAAS;AACpE,QAAM,sBAAsB,oBAAI,IAAY;AAC5C,uBAAqB,QAAQ,CAAC,EAAE,SAAS,OAAO,WAAW,MAAM;AAC/D,UAAM,WACJ,QAAQ,aAAc,8BACtB,QAAQ,OAAO;AACjB,QAAI,CAAC,YAAY,IAAI,QAAQ;AAC3B,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM;AAAA,UACJ;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QACA,SACE;AAAA,MACJ,CAAC;AACH,UAAM,eAAe,CAAC,GAAG,cAAc,cAAc,IAAI,QAAQ,CAAC,CAAC;AACnE,UAAM,eAAe;AAAA,MACnB,GAAG;AAAA,QACD,cAAc,IAAI,QAAQ,OAAO,oBAAoB;AAAA,MACvD;AAAA,IACF;AACA,QACE,aAAa,WAAW,aAAa,UACrC,aAAa,KAAK,CAAC,IAAIC,WAAU,OAAO,aAAaA,MAAK,CAAC;AAE3D,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM;AAAA,UACJ;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QACA,SACE;AAAA,MACJ,CAAC;AACH,UAAM,YAAY,GAAG,QAAQ,IAAI,QAAQ,aAAc,cAAc;AACrE,QAAI,oBAAoB,IAAI,SAAS,GAAG;AACtC,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,YAAY,OAAO,gBAAgB,gBAAgB;AAAA,QAC1D,SACE;AAAA,MACJ,CAAC;AAAA,IACH;AACA,wBAAoB,IAAI,SAAS;AACjC,UAAM,yBAAyB,oBAAoB;AAAA,MACjD,CAAC,cACC,UAAU,OAAO,yBAAyB,YAC1C,UAAU,OAAO,SAAS,QAAQ,aAAc;AAAA,IACpD;AACA,UAAM,oBAAoB;AAAA,MACxB,GAAG,MAAM;AAAA,MACT,GAAI,MAAM,mBAAmB,CAAC;AAAA,IAChC,EAAE;AAAA,MACA,CAAC,cACC,UAAU,OAAO,yBAAyB,YAC1C,UAAU,OAAO,SAAS,QAAQ,aAAc;AAAA,IACpD;AACA,QAAI,0BAA0B,mBAAmB;AAC/C,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,YAAY,OAAO,gBAAgB,gBAAgB;AAAA,QAC1D,SACE;AAAA,MACJ,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AACD,GAAC,MAAM,mBAAmB,CAAC,GAAG,QAAQ,CAAC,SAAS,UAAU;AACxD,6BAAyB,QAAQ,cAAc;AAAA,MAC7C;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AACD,eAAW,CAAC,IAAI,OAAO,KAAK,OAAO,QAAQ,QAAQ,gBAAgB;AACjE,+BAAyB,SAAS;AAAA,QAChC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC;AAAA,EACL,CAAC;AACD,QAAM,eAAe,QAAQ,CAAC,SAAS,UAAU;AAC/C,QAAI,CAAC,YAAY,IAAI,QAAQ,OAAO,oBAAoB,GAAG;AACzD,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,kBAAkB,OAAO,UAAU,sBAAsB;AAAA,QAChE,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AACA,6BAAyB,QAAQ,cAAc;AAAA,MAC7C;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AACD,YAAQ,QAAQ,kBAAkB,QAAQ,CAAC,cAAc;AACvD,UACE,CAAC,MAAM,iBAAiB;AAAA,QACtB,CAAC,cAAc,UAAU,cAAc;AAAA,MACzC,KACA,CAAC,cAAc,KAAK,CAAC,cAAc,UAAU,cAAc,SAAS,GACpE;AACA,gBAAQ,SAAS;AAAA,UACf,MAAM;AAAA,UACN,MAAM,CAAC,kBAAkB,OAAO,WAAW,mBAAmB;AAAA,UAC9D,SAAS,4BAA4B,SAAS;AAAA,QAChD,CAAC;AAAA,MACH;AAAA,IACF,CAAC;AACD,UAAM,mBACJ,QAAQ,QAAQ,sBAAsB;AAAA,MACpC,CAAC,WAAW,OAAO;AAAA,IACrB,KAAK,CAAC;AACR,QAAI,IAAI,IAAI,gBAAgB,EAAE,SAAS,iBAAiB,QAAQ;AAC9D,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,kBAAkB,OAAO,WAAW,sBAAsB;AAAA,QACjE,SACE;AAAA,MACJ,CAAC;AAAA,IACH;AACA,YAAQ,QAAQ,sBAAsB,QAAQ,CAAC,QAAQ,gBAAgB;AACrE,UACE,CAAC,MAAM,iBAAiB;AAAA,QACtB,CAAC,cAAc,UAAU,cAAc,OAAO;AAAA,MAChD,KACA,CAAC,cAAc;AAAA,QACb,CAAC,cAAc,UAAU,cAAc,OAAO;AAAA,MAChD,GACA;AACA,gBAAQ,SAAS;AAAA,UACf,MAAM;AAAA,UACN,MAAM;AAAA,YACJ;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF;AAAA,UACA,SAAS,kCAAkC,OAAO,SAAS;AAAA,QAC7D,CAAC;AAAA,MACH;AACA,UAAI,QAAQ,QAAQ,kBAAkB,SAAS,OAAO,SAAS,GAAG;AAChE,gBAAQ,SAAS;AAAA,UACf,MAAM;AAAA,UACN,MAAM;AAAA,YACJ;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF;AAAA,UACA,SACE;AAAA,QACJ,CAAC;AAAA,MACH;AAAA,IACF,CAAC;AACD,QAAI,QAAQ,QAAQ,WAAW;AAC7B,YAAM,iBAAiB,MAAM,oBAAoB;AAAA,QAC/C,CAAC,aACC,SAAS,eAAe,QAAQ,OAAO;AAAA,MAC3C;AACA,UAAI,CAAC,gBAAgB,mBAAmB,SAAS,WAAW;AAC1D,gBAAQ,SAAS;AAAA,UACf,MAAM;AAAA,UACN,MAAM,CAAC,kBAAkB,OAAO,WAAW,WAAW;AAAA,UACtD,SACE;AAAA,QACJ,CAAC;AAAA,IACL;AAAA,EACF,CAAC;AACD,MAAI,MAAM,iBAAiB,SAAS;AAClC,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,oBAAoB,MAAM;AAAA,MACjC,SAAS;AAAA,IACX,CAAC;AACH,QAAM,oBAAoB,QAAQ,CAAC,UAAU,UAAU;AACrD,QAAI,SAAS,cAAc;AACzB;AAAA,QACE,GAAG,SAAS,aAAa;AAAA,QACzB,GAAG,SAAS,aAAa;AAAA,QACzB,GAAG,SAAS,aAAa;AAAA,MAC3B,EAAE;AAAA,QAAQ,CAAC,WAAW,aACpB;AAAA,UACE;AAAA,UACA,MAAM;AAAA,UACN,CAAC,uBAAuB,OAAO,gBAAgB,QAAQ;AAAA,UACvD;AAAA,QACF;AAAA,MACF;AAAA,IACF;AACA,UAAM,OAAmE;AAAA,MACvE,CAAC,yBAAyB,SAAS,uBAAuB,YAAY;AAAA,MACtE,CAAC,uBAAuB,SAAS,qBAAqB,eAAe;AAAA,MACrE;AAAA,QACE;AAAA,QACA,SAAS;AAAA,QACT;AAAA,MACF;AAAA,IACF;AACA,SAAK,QAAQ,CAAC,CAAC,OAAO,WAAW,YAAY,MAAM;AACjD,UAAI,UAAU,SAAS;AACrB,gBAAQ,SAAS;AAAA,UACf,MAAM;AAAA,UACN,MAAM,CAAC,uBAAuB,OAAO,OAAO,MAAM;AAAA,UAClD,SAAS,GAAG,KAAK,mBAAmB,YAAY;AAAA,QAClD,CAAC;AAAA,IACL,CAAC;AAAA,EACH,CAAC;AACD,QAAM,kBAAkB,QAAQ,CAAC,WAAW,UAAU;AACpD,QAAI,UAAU,SAAS;AACrB,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,qBAAqB,OAAO,MAAM;AAAA,QACzC,SAAS;AAAA,MACX,CAAC;AAAA,EACL,CAAC;AACD,MAAI,MAAM,qBAAqB,SAAS;AACtC,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,wBAAwB,MAAM;AAAA,MACrC,SAAS;AAAA,IACX,CAAC;AACH,MAAI,MAAM,6BAA6B,SAAS;AAC9C,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,gCAAgC,MAAM;AAAA,MAC7C,SAAS;AAAA,IACX,CAAC;AACL,CAAC;AACI,IAAM,oBAAoBJ,IAC9B,OAAO;AAAA,EACN,UAAUA,IAAE,QAAQ,aAAa;AAAA,EACjC,GAAG;AAAA,EACH,iBAAiB;AAAA,EACjB,QAAQA,IACL,OAAO;AAAA,IACN,gBAAgB;AAAA,IAChB,SAAS;AAAA,IACT,uBAAuB;AAAA,IACvB,gBAAgB;AAAA,IAChB,YAAYA,IAAE,MAAM;AAAA,MAClB;AAAA,MACA;AAAA,IACF,CAAC;AAAA,IACD,kCACE,uCAAuC,SAAS;AAAA,EACpD,CAAC,EACA,OAAO;AACZ,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,4BAA0B,OAAO,wBAAwB,OAAO;AAChE,6BAA2B,MAAM,oBAAoB,OAAO;AAC5D,iCAA+B,OAAO,gBAAgB,OAAO;AAC7D,MAAI,MAAM,gBAAgB,SAAS;AACjC,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,mBAAmB,MAAM;AAAA,MAChC,SAAS;AAAA,IACX,CAAC;AACH,MAAI,MAAM,OAAO,eAAe,SAAS;AACvC,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,UAAU,kBAAkB,MAAM;AAAA,MACzC,SAAS;AAAA,IACX,CAAC;AACH,MAAI,MAAM,OAAO,sBAAsB,SAAS;AAC9C,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,UAAU,yBAAyB,MAAM;AAAA,MAChD,SAAS;AAAA,IACX,CAAC;AACH,8BAA4B,MAAM,QAAQ,OAAO;AACjD,MACE,MAAM,OAAO,mBAAmB,MAAM,OAAO,WAAW,kBACxD,CAAC;AAAA,IACC,MAAM,OAAO;AAAA,IACb,MAAM,OAAO,WAAW;AAAA,EAC1B,GACA;AACA,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,UAAU,YAAY;AAAA,MAC7B,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACA,QAAM,WAAW,MAAM,OAAO;AAC9B,MACE,aACC,MAAM,OAAO,WAAW,SAAS,eAChC,SAAS,mBAAmB,MAAM,OAAO,kBACzC,CAAC;AAAA,IACC,SAAS;AAAA,IACT,MAAM,OAAO;AAAA,EACf,KACA,SAAS,kBAAkB,SAAS,UACpC,SAAS,kBAAkB,OAAO,MAAM,gBAAgB,MACxD,SAAS,kBAAkB,cACzB,MAAM,gBAAgB,YAC1B;AACA,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,UAAU,kCAAkC;AAAA,MACnD,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACF,CAAC;AACI,IAAM,uBAAuBA,IACjC,OAAO;AAAA,EACN,SAAS;AAAA,EACT,OAAO;AAAA,EACP,SAAS,gBAAgB,SAAS;AAAA,EAClC,OAAOA,IAAE,OAAO,EAAE,IAAI;AAAA,EACtB,oBAAoBA,IAAE,QAAQ;AAAA,EAC9B,cAAc,mBAAmB,SAAS;AAC5C,CAAC,EACA,OAAO;AACH,IAAM,6BAA6BA,IACvC,OAAO;AAAA,EACN,wBAAwB,yBAAyB,SAAS;AAAA,EAC1D,YAAY;AAAA,EACZ,MAAMA,IAAE,KAAK;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAAA,EACD,mBAAmB;AAAA,EACnB,qBAAqB;AAAA,EACrB,wBAAwB;AAAA,EACxB,OAAO;AAAA,EACP,SAAS;AAAA,EACT,OAAOA,IAAE,OAAO,EAAE,IAAI;AAAA,EACtB,SAASA,IACN,OAAO;AAAA,IACN,MAAM,eAAe,SAAS;AAAA,IAC9B,SAAS,gBAAgB,SAAS;AAAA,EACpC,CAAC,EACA,OAAO;AAAA,EACV,cAAc;AAChB,CAAC,EACA,OAAO;AACH,IAAM,kBAAkBA,IAC5B,OAAO;AAAA,EACN,UAAUA,IAAE,QAAQ,WAAW;AAAA,EAC/B,eAAeA,IAAE,QAAQ,kCAAkC;AAAA,EAC3D,aAAa;AAAA,EACb,aAAa;AAAA,EACb,SAASA,IAAE,KAAK,CAAC,YAAY,UAAU,CAAC;AAAA,EACxC,2BAA2B,kBAAkB,SAAS;AAAA,EACtD,UAAU;AAAA,EACV,mBAAmBA,IAAE,MAAM,oBAAoB,EAAE,IAAI,CAAC;AAAA,EACtD,WAAW;AAAA,EACX,aAAaA,IACV;AAAA,IACCA,IAAE,MAAM;AAAA,MACN;AAAA,MACA;AAAA,IACF,CAAC;AAAA,EACH,EACC,IAAI,CAAC;AAAA,EACR,QAAQA,IAAE,MAAM,oBAAoB,EAAE,IAAI,CAAC;AAAA,EAC3C,cAAcA,IAAE,MAAM,0BAA0B,EAAE,IAAI,CAAC;AAAA,EACvD,cAAcA,IACX,OAAO;AAAA,IACN,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,kBAAkBA,IAAE,QAAQ;AAAA,EAC9B,CAAC,EACA,OAAO;AAAA,EACV,QAAQA,IACL,OAAO;AAAA,IACN,wBAAwB,yBAAyB,SAAS;AAAA,IAC1D,2BAA2B;AAAA,IAC3B,yBAAyB;AAAA,IACzB,yBAAyB;AAAA,IACzB,mBAAmBA,IAAE,MAAM,iBAAiB,EAAE,IAAI,CAAC;AAAA,EACrD,CAAC,EACA,OAAO;AAAA,EACV,uBAAuB;AAAA,EACvB,kBAAkB;AAAA,EAClB,2BAA2BA,IACxB,OAAO;AAAA,IACN,SAASA,IAAE;AAAA,MACTA,IAAE,KAAK,CAAC,oBAAoB,gBAAgB,gBAAgB,CAAC;AAAA,IAC/D;AAAA,IACA,WAAWA,IAAE,QAAQ,kBAAkB;AAAA,EACzC,CAAC,EACA,OAAO;AAAA,EACV,sBAAsB;AAAA,EACtB,8BAA8B;AAAA,EAC9B,uBAAuBA,IAAE,KAAK;AAAA,IAC5B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACH,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B;AAAA,IACE,MAAM;AAAA,IACN,MAAM;AAAA,IACN;AAAA,EACF;AACA,MAAI,MAAM,YAAY,cAAc,MAAM,2BAA2B;AACnE,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,2BAA2B;AAAA,MAClC,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,QAAM,iBAAiB,YAAY,MAAM,QAAQ,CAAC,UAAU,MAAM,OAAO;AACzE,MAAI;AACF,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,QAAQ;AAAA,MACf,SAAS,8BAA8B,cAAc;AAAA,IACvD,CAAC;AACH,QAAM,oBAAoB;AAAA,IACxB,MAAM;AAAA,IACN,CAAC,aAAa,SAAS;AAAA,EACzB;AACA,MAAI;AACF,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,cAAc;AAAA,MACrB,SAAS,iCAAiC,iBAAiB;AAAA,IAC7D,CAAC;AACH,QAAM,WAAW,IAAI,IAAI,MAAM,OAAO,IAAI,CAAC,UAAU,MAAM,OAAO,CAAC;AACnE,QAAM,aAAa,QAAQ,CAAC,UAAU,UAAU;AAC9C,QAAI,CAAC,SAAS,IAAI,SAAS,OAAO;AAChC,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,gBAAgB,OAAO,SAAS;AAAA,QACvC,SAAS;AAAA,MACX,CAAC;AAAA,EACL,CAAC;AACD,QAAM,kBAAkB,MAAM,aAAa;AAAA,IACzC,CAAC,aAAa,SAAS,eAAe,MAAM,aAAa;AAAA,EAC3D;AACA,MACE,CAAC,mBACD,gBAAgB,YAAY,MAAM,aAAa,SAC/C;AACA,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,cAAc;AAAA,MACrB,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACA,QAAM,2BAEF;AAAA,IACF,wBAAwB;AAAA,IACxB,iBAAiB;AAAA,IACjB,UAAU;AAAA,IACV,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,YAAY;AAAA,EACd;AACA,QAAM,aAAa,QAAQ,CAAC,UAAU,UAAU;AAC9C,QACE,SAAS,kBAAkB,SAC3B,yBAAyB,SAAS,IAAI;AAEtC,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,gBAAgB,OAAO,qBAAqB,MAAM;AAAA,QACzD,SAAS,aAAa,SAAS,IAAI;AAAA,MACrC,CAAC;AACH,QAAI,SAAS,oBAAoB,SAAS;AACxC,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,gBAAgB,OAAO,uBAAuB,MAAM;AAAA,QAC3D,SAAS;AAAA,MACX,CAAC;AACH,QAAI,SAAS,uBAAuB,SAAS;AAC3C,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,gBAAgB,OAAO,0BAA0B,MAAM;AAAA,QAC9D,SAAS;AAAA,MACX,CAAC;AAAA,EACL,CAAC;AACD,QAAM,aAEF;AAAA,IACF;AAAA,MACE;AAAA,MACA,MAAM,OAAO;AAAA,MACb;AAAA,IACF;AAAA,IACA;AAAA,MACE;AAAA,MACA,MAAM,OAAO;AAAA,MACb;AAAA,IACF;AAAA,IACA;AAAA,MACE;AAAA,MACA,MAAM,OAAO;AAAA,MACb;AAAA,IACF;AAAA,EACF;AACA,aAAW,QAAQ,CAAC,CAAC,OAAO,WAAW,YAAY,MAAM;AACvD,QAAI,UAAU,SAAS;AACrB,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,UAAU,OAAO,MAAM;AAAA,QAC9B,SAAS,GAAG,KAAK,mBAAmB,YAAY;AAAA,MAClD,CAAC;AAAA,EACL,CAAC;AACD,QAAM,OAAO,kBAAkB,QAAQ,CAAC,WAAW,UAAU;AAC3D,QAAI,UAAU,SAAS;AACrB,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,UAAU,qBAAqB,OAAO,MAAM;AAAA,QACnD,SAAS;AAAA,MACX,CAAC;AAAA,EACL,CAAC;AACH,CAAC;AACI,IAAM,yBAAyBA,IACnC,OAAO;AAAA,EACN,UAAUA,IAAE,QAAQ,kBAAkB;AAAA,EACtC,GAAG;AAAA,EACH,sBAAsB;AAAA,EACtB,QAAQA,IACL,OAAO;AAAA,IACN,gBAAgB;AAAA,IAChB,SAAS;AAAA,IACT,aAAa;AAAA,IACb,uBAAuB;AAAA,IACvB,gBAAgB;AAAA,IAChB,YAAYA,IAAE,MAAM;AAAA,MAClB;AAAA,MACA;AAAA,IACF,CAAC;AAAA,IACD,kCACE,uCAAuC,SAAS;AAAA,IAClD,OAAOA,IAAE,OAAO,EAAE,IAAI;AAAA,IACtB,oBAAoBA,IAAE,QAAQ;AAAA,EAChC,CAAC,EACA,OAAO;AACZ,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,4BAA0B,OAAO,4BAA4B,OAAO;AACpE,6BAA2B,MAAM,oBAAoB,OAAO;AAC5D,iCAA+B,OAAO,qBAAqB,OAAO;AAClE,MAAI,MAAM,qBAAqB,SAAS;AACtC,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,wBAAwB,MAAM;AAAA,MACrC,SAAS;AAAA,IACX,CAAC;AACH,MAAI,MAAM,OAAO,eAAe,SAAS;AACvC,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,UAAU,kBAAkB,MAAM;AAAA,MACzC,SAAS;AAAA,IACX,CAAC;AACH,MAAI,MAAM,OAAO,sBAAsB,SAAS;AAC9C,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,UAAU,yBAAyB,MAAM;AAAA,MAChD,SAAS;AAAA,IACX,CAAC;AACH,8BAA4B,MAAM,QAAQ,OAAO;AACjD,MACE,MAAM,OAAO,mBAAmB,MAAM,OAAO,WAAW,kBACxD,CAAC;AAAA,IACC,MAAM,OAAO;AAAA,IACb,MAAM,OAAO,WAAW;AAAA,EAC1B,GACA;AACA,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,UAAU,YAAY;AAAA,MAC7B,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACA,QAAM,WAAW,MAAM,OAAO;AAC9B,MACE,aACC,MAAM,OAAO,WAAW,SAAS,eAChC,SAAS,mBAAmB,MAAM,OAAO,kBACzC,CAAC;AAAA,IACC,SAAS;AAAA,IACT,MAAM,OAAO;AAAA,EACf,KACA,SAAS,kBAAkB,SAAS,eACpC,SAAS,kBAAkB,OAAO,MAAM,qBAAqB,MAC7D,SAAS,kBAAkB,cACzB,MAAM,qBAAqB,YAC/B;AACA,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,UAAU,kCAAkC;AAAA,MACnD,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACF,CAAC;AACH,IAAM,0BAA0B;AAAA,EAC9B,QAAQ;AAAA,EACR,cAAc,yBAAyB,SAAS;AAAA,EAChD,OAAOA,IAAE,OAAO,EAAE,IAAI;AAAA,EACtB,UAAUA,IAAE,QAAQ,EAAE,SAAS;AACjC;AACO,IAAM,4BAA4BA,IACtC,OAAO;AAAA,EACN,GAAG;AAAA,EACH,MAAMA,IAAE,QAAQ,OAAO;AAAA,EACvB,OAAO;AAAA,EACP,SAAS,gBAAgB,SAAS;AAAA,EAClC,oBAAoBA,IAAE,QAAQ;AAAA,EAC9B,UAAU;AACZ,CAAC,EACA,OAAO;AACH,IAAM,6BAA6BA,IACvC,OAAO;AAAA,EACN,GAAG;AAAA,EACH,MAAMA,IAAE,QAAQ,QAAQ;AAAA,EACxB,OAAO;AAAA,EACP,SAAS,gBAAgB,SAAS;AAAA,EAClC,MAAMA,IAAE,KAAK,CAAC,WAAW,QAAQ,CAAC,EAAE,SAAS;AAAA,EAC7C,WAAW;AAAA,EACX,kBAAkBA,IAAE,OAAO,0BAA0B,mBAAmB;AAAA,EACxE,UAAU;AACZ,CAAC,EACA,OAAO;AACH,IAAM,gCAAgCA,IAC1C,OAAO;AAAA,EACN,GAAG;AAAA,EACH,MAAMA,IAAE,QAAQ,WAAW;AAC7B,CAAC,EACA,OAAO;AACH,IAAM,uBAAuBA,IAAE,mBAAmB,QAAQ;AAAA,EAC/D;AAAA,EACA;AAAA,EACA;AACF,CAAC;AACD,IAAM,yBAAyB,CAC7B,OACA,YACG;AACH,QAAM,OAAO,oBAAI,IAMf;AACF,QAAM,QAAQ,CAAC,MAAM,UAAU;AAC7B,QAAI,KAAK,IAAI,KAAK,MAAM;AACtB,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,SAAS,OAAO,QAAQ;AAAA,QAC/B,SAAS,8BAA8B,KAAK,MAAM;AAAA,MACpD,CAAC;AAAA,QACE,MAAK,IAAI,KAAK,QAAQ,EAAE,MAAM,MAAM,CAAC;AAAA,EAC5C,CAAC;AACD,QAAM,gBAAgB,oBAAI,IAAY;AACtC,QAAM,QAAQ,CAAC,MAAM,UAAU;AAC7B,UAAM,WAAW,GAAG,KAAK,gBAAgB,EAAE,IAAI,KAAK,KAAK;AACzD,QAAI,cAAc,IAAI,QAAQ;AAC5B,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,SAAS,OAAO,OAAO;AAAA,QAC9B,SAAS;AAAA,MACX,CAAC;AACH,kBAAc,IAAI,QAAQ;AAC1B,QAAI,KAAK,cAAc;AACrB,YAAM,SAAS,KAAK,IAAI,KAAK,YAAY,GAAG;AAC5C,UAAI,CAAC;AACH,gBAAQ,SAAS;AAAA,UACf,MAAM;AAAA,UACN,MAAM,CAAC,SAAS,OAAO,cAAc;AAAA,UACrC,SAAS;AAAA,QACX,CAAC;AAAA,eACM,OAAO,SAAS;AACvB,gBAAQ,SAAS;AAAA,UACf,MAAM;AAAA,UACN,MAAM,CAAC,SAAS,OAAO,cAAc;AAAA,UACrC,SAAS;AAAA,QACX,CAAC;AAAA,IACL;AACA,UAAM,YAAY,oBAAI,IAAI,CAAC,KAAK,MAAM,CAAC;AACvC,QAAI,WAAW,KAAK;AACpB,WAAO,UAAU;AACf,UAAI,UAAU,IAAI,QAAQ,GAAG;AAC3B,gBAAQ,SAAS;AAAA,UACf,MAAM;AAAA,UACN,MAAM,CAAC,SAAS,OAAO,cAAc;AAAA,UACrC,SAAS,6BAA6B,KAAK,MAAM;AAAA,QACnD,CAAC;AACD;AAAA,MACF;AACA,gBAAU,IAAI,QAAQ;AACtB,iBAAW,KAAK,IAAI,QAAQ,GAAG,KAAK,gBAAgB;AAAA,IACtD;AAAA,EACF,CAAC;AACH;AACO,IAAM,mBAAmBA,IAC7B,OAAO;AAAA,EACN,UAAUA,IAAE,QAAQ,YAAY;AAAA,EAChC,eAAeA,IAAE,QAAQ,kCAAkC;AAAA,EAC3D,cAAc;AAAA,EACd,aAAa;AAAA,EACb,UAAU;AAAA,EACV,mBAAmBA,IAAE,MAAM,oBAAoB,EAAE,IAAI,CAAC;AAAA,EACtD,YAAYA,IAAE,MAAM,wBAAwB,EAAE,IAAI,CAAC;AAAA,EACnD,WAAW;AAAA,EACX,OAAOA,IAAE,MAAM,oBAAoB;AAAA,EACnC,kBAAkB;AAAA,EAClB,sBAAsB;AAAA,EACtB,8BAA8B;AAChC,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,yBAAuB,MAAM,OAAO,OAAO;AAC3C,QAAM,MAAM,QAAQ,CAAC,MAAM,UAAU;AACnC,QACE,KAAK,SAAS,YACd,CAAC,CAAC,QAAQ,aAAa,eAAe,gBAAgB,EAAE;AAAA,MACtD,KAAK,UAAU;AAAA,IACjB,GACA;AACA,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,SAAS,OAAO,aAAa,MAAM;AAAA,QAC1C,SACE;AAAA,MACJ,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AACH,CAAC;AACI,IAAM,iCAAiCA,IAC3C,OAAO;AAAA,EACN,QAAQ;AAAA,EACR,iBAAiB;AAAA,EACjB,mBAAmB;AAAA,EACnB,oBAAoB,kBAAkB,SAAS;AACjD,CAAC,EACA,OAAO;AAGH,IAAM,oCAAoCA,IAC9C,OAAO;AAAA,EACN,QAAQ;AAAA,EACR,iBAAiB,gBAAgB;AAAA,IAC/B,CAAC,cAAc,UAAU,SAAS;AAAA,IAClC;AAAA,EACF;AAAA,EACA,QAAQA,IAAE,QAAQ,cAAc;AAAA,EAChC,cAAc,mBAAmB,SAAS;AAC5C,CAAC,EACA,OAAO;AAEH,IAAM,0BAA0BA,IACpC,OAAO;AAAA,EACN,UAAUA,IAAE,QAAQ,mBAAmB;AAAA,EACvC,GAAG;AAAA,EACH,uBAAuB;AAAA,EACvB,QAAQA,IACL,OAAO;AAAA,IACN,gBAAgB;AAAA,IAChB,SAAS;AAAA,IACT,WAAW;AAAA,EACb,CAAC,EACA,OAAO;AAAA,EACV,iBAAiBA,IAAE,MAAM,8BAA8B;AAAA,EACvD,oBAAoBA,IAAE,MAAM,iCAAiC,EAAE,SAAS;AAC1E,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,4BAA0B,OAAO,6BAA6B,OAAO;AACrE,6BAA2B,MAAM,oBAAoB,OAAO;AAC5D,iCAA+B,OAAO,sBAAsB,OAAO;AACnE,MAAI,MAAM,sBAAsB,SAAS;AACvC,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,yBAAyB,MAAM;AAAA,MACtC,SAAS;AAAA,IACX,CAAC;AACH,MAAI,MAAM,OAAO,eAAe,SAAS;AACvC,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,UAAU,kBAAkB,MAAM;AAAA,MACzC,SAAS;AAAA,IACX,CAAC;AACH,MAAI,YAAY,MAAM,iBAAiB,CAAC,WAAW,OAAO,MAAM;AAC9D,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,iBAAiB;AAAA,MACxB,SAAS;AAAA,IACX,CAAC;AACH,MACE;AAAA,IACE,CAAC,GAAG,MAAM,iBAAiB,GAAI,MAAM,sBAAsB,CAAC,CAAE;AAAA,IAC9D,CAAC,WAAW,OAAO;AAAA,EACrB,GACA;AACA,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,oBAAoB;AAAA,MAC3B,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACF,CAAC;AACH,IAAM,0BAA0B;AAChC,IAAM,yBAAyB;AAAA,EAC7B,eAAeA,IAAE,QAAQ,kCAAkC;AAAA,EAC3D,aAAa;AAAA,EACb,oBAAoB;AAAA,EACpB,qBAAqB;AAAA,EACrB,YAAYA,IAAE,OAAO,EAAE,IAAI,EAAE,YAAY;AAAA,EACzC,oBAAoBA,IAAE,MAAM,uBAAuB;AAAA,EACnD,aAAa;AAAA,EACb,aAAaA,IAAE,QAAQ,IAAI;AAAA,EAC3B,aAAaA,IAAE,MAAM,uBAAuB;AAC9C;AACA,IAAM,iCAAiC,CACrC,WACA,aACA,MACA,cACA,YACA,YACG;AACH,MAAI,UAAU,SAAS,cAAc;AACnC,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,MAAM,MAAM;AAAA,MACnB,SAAS,GAAG,IAAI,mBAAmB,YAAY;AAAA,IACjD,CAAC;AAAA,EACH;AACA,MAAI,eAAe,UAAa,UAAU,OAAO,YAAY;AAC3D,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,MAAM,IAAI;AAAA,MACjB,SAAS,GAAG,IAAI,kBAAkB,UAAU;AAAA,IAC9C,CAAC;AAAA,EACH;AACA,oCAAkC,WAAW,aAAa,CAAC,IAAI,GAAG,OAAO;AAC3E;AACA,IAAM,4BAA4B,CAChC,OAKA,qBACA,YACG;AACH;AAAA,IACE,MAAM;AAAA,IACN,MAAM;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACA;AAAA,IACE,MAAM;AAAA,IACN,MAAM;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AACO,IAAM,wCAAwCA,IAClD,OAAO;AAAA,EACN,cAAcA,IAAE,KAAK,CAAC,QAAQ,WAAW,CAAC;AAAA,EAC1C,eAAe;AAAA,EACf,0BAA0B;AAAA,EAC1B,YAAY;AAAA,EACZ,WAAWA,IAAE,KAAK,CAAC,eAAe,UAAU,aAAa,CAAC;AAAA,EAC1D,mBAAmB,4BAA4B,SAAS;AAC1D,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,MAAI,MAAM,cAAc,YAAY,CAAC,MAAM,mBAAmB;AAC5D,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,mBAAmB;AAAA,MAC1B,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACA,MAAI,MAAM,cAAc,YAAY,MAAM,mBAAmB;AAC3D,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,mBAAmB;AAAA,MAC1B,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACF,CAAC;AACI,IAAM,mCAAmCA,IAC7C,OAAO;AAAA,EACN,UAAUA,IAAE,QAAQ,4BAA4B;AAAA,EAChD,eAAeA,IAAE,QAAQ,kCAAkC;AAAA,EAC3D,aAAa;AAAA,EACb,gBAAgB;AAAA,EAChB,SAAS;AAAA,EACT,YAAYA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AAAA,EACtC,SAASA,IAAE,MAAM,qCAAqC,EAAE,IAAI,IAAI;AAAA,EAChE,aAAa;AAAA,EACb,aAAaA,IAAE,QAAQ,IAAI;AAC7B,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,QAAM,aAAa,MAAM,QAAQ;AAAA,IAC/B,CAAC,UAAU,GAAG,MAAM,YAAY,IAAI,MAAM,aAAa;AAAA,EACzD;AACA,MAAI,IAAI,IAAI,UAAU,EAAE,SAAS,WAAW,QAAQ;AAClD,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,SAAS;AAAA,MAChB,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,MACE,WAAW;AAAA,IACT,CAAC,UAAU,UACT,QAAQ,KAAK,WAAW,QAAQ,CAAC,EAAE,cAAc,QAAQ,IAAI;AAAA,EACjE,GACA;AACA,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,SAAS;AAAA,MAChB,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACF,CAAC;AACI,IAAM,yCAAyCA,IACnD,OAAO;AAAA,EACN,aAAa;AAAA,EACb,WAAWA,IAAE,KAAK,CAAC,eAAe,UAAU,aAAa,CAAC;AAAA,EAC1D,UAAU;AAAA,EACV,OAAOA,IAAE,OAAO,EAAE,IAAI;AAAA,EACtB,oBAAoBA,IAAE,QAAQ;AAAA,EAC9B,0BAA0B,kBAAkB,SAAS;AAAA,EACrD,0BAA0B,kBAAkB,SAAS;AACvD,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,MAAI,MAAM,cAAc,eAAe;AACrC,QAAI,MAAM,0BAA0B,SAAS,qBAAqB;AAChE,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,0BAA0B;AAAA,QACjC,SACE;AAAA,MACJ,CAAC;AAAA,IACH;AACA,QAAI,MAAM,0BAA0B;AAClC,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,0BAA0B;AAAA,QACjC,SACE;AAAA,MACJ,CAAC;AAAA,IACH;AACA;AAAA,EACF;AACA,MAAI,MAAM,0BAA0B;AAClC,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,0BAA0B;AAAA,MACjC,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACA,MACE,MAAM,cAAc,YACpB,MAAM,0BAA0B,SAAS,4BACzC;AACA,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,0BAA0B;AAAA,MACjC,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACA,MAAI,MAAM,cAAc,iBAAiB,MAAM,0BAA0B;AACvE,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,0BAA0B;AAAA,MACjC,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACF,CAAC;AACI,IAAM,oCAAoCA,IAC9C,OAAO;AAAA,EACN,UAAUA,IAAE,QAAQ,6BAA6B;AAAA,EACjD,eAAeA,IAAE,QAAQ,kCAAkC;AAAA,EAC3D,aAAa;AAAA,EACb,gBAAgB;AAAA,EAChB,SAAS;AAAA,EACT,YAAYA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AAAA,EACtC,SAASA,IAAE,MAAM,sCAAsC,EAAE,IAAI,IAAI;AAAA,EACjE,aAAa;AAAA,EACb,aAAaA,IAAE,QAAQ,IAAI;AAC7B,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,MAAI,MAAM,eAAe,SAAS,eAAe;AAC/C,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,kBAAkB,MAAM;AAAA,MAC/B,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,QAAM,MAAM,MAAM,QAAQ,IAAI,CAAC,UAAU,MAAM,WAAW;AAC1D,MAAI,IAAI,IAAI,GAAG,EAAE,SAAS,IAAI,QAAQ;AACpC,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,SAAS;AAAA,MAChB,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,MACE,MAAM,QAAQ;AAAA,IACZ,CAAC,UACC,MAAM,cAAc,iBAAiB,MAAM;AAAA,EAC/C,EAAE,SAAS,GACX;AACA,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,SAAS;AAAA,MAChB,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACA,QAAM,SAAS,CAAC,GAAG,MAAM,OAAO,EAAE;AAAA,IAChC,CAAC,MAAM,UACL,KAAK,QAAQ,MAAM,SACnB,KAAK,YAAY,cAAc,MAAM,WAAW;AAAA,EACpD;AACA,MACE,OAAO;AAAA,IACL,CAAC,OAAO,UACN,MAAM,gBAAgB,MAAM,QAAQ,KAAK,GAAG;AAAA,EAChD,GACA;AACA,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,SAAS;AAAA,MAChB,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACF,CAAC;AACH,IAAM,oCAAoCA,IACvC,OAAO;AAAA,EACN,UAAUA,IAAE,QAAQ,mBAAmB;AAAA,EACvC,GAAG;AAAA,EACH,QAAQ;AAAA,EACR,iBAAiB;AAAA,EACjB,SAAS;AAAA,EACT,aAAaA,IAAE,MAAM,wBAAwB;AAAA,EAC7C,yBAAyBA,IACtB,MAAM,gCAAgC,EACtC,QAAQ,CAAC,CAAC;AAAA,EACb,kBAAkB;AAAA,EAClB,iBAAiB,wCAAwC,SAAS;AAAA,EAClE,YAAY;AAAA,EACZ,qBAAqBA,IAAE,MAAM,wBAAwB;AAAA,EACrD,6BAA6BA,IAAE,MAAM,wBAAwB,EAAE,QAAQ,CAAC,CAAC;AAAA,EACzE,2BAA2BA,IAAE,QAAQ,IAAI,EAAE,SAAS;AAAA,EACpD,kBAAkBA,IAAE,MAAM,yBAAyB,EAAE,QAAQ,CAAC,CAAC;AAAA,EAC/D,qBAAqBA,IAAE,MAAM,4BAA4B,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,EAC5E,kBAAkBA,IAAE,MAAM,iCAAiC,EAAE,QAAQ,CAAC,CAAC;AAAA,EACvE,qBAAqBA,IAAE,MAAM,wBAAwB,EAAE,QAAQ,CAAC,CAAC;AAAA,EACjE,kBAAkBA,IAAE,MAAM,8BAA8B;AAAA,EACxD,eAAeA,IAAE,MAAM,kBAAkB,EAAE,QAAQ,CAAC,CAAC;AAAA,EACrD,oBAAoB,yBAAyB,SAAS;AAAA,EACtD,gBAAgBA,IAAE,MAAM,mBAAmB;AAAA,EAC3C,iBAAiBA,IAAE,MAAM,oBAAoB,EAAE,IAAI,GAAG,EAAE,SAAS;AAAA,EACjE,kBAAkB;AAAA,EAClB,mBAAmBA,IAAE,MAAM,iBAAiB;AAAA,EAC5C,sBAAsB;AAAA,EACtB,8BAA8B;AAAA,EAC9B,uBAAuBA,IAAE,KAAK;AAAA,IAC5B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACH,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,8BAA4B,MAAM,qBAAqB,MAAM,kBAAkB,IAAI,IAAI,CAAC,GAAG,MAAM,eAAe,GAAG,MAAM,gBAAgB,EAAE,IAAI,aAAW,QAAQ,SAAS,CAAC,GAAG,MAAM,qBAAqB,OAAO;AACjN,QAAM,cAAc,IAAI;AAAA,IACtB,MAAM,oBAAoB,IAAI,CAAC,aAAa,SAAS,UAAU;AAAA,EACjE;AACA,MACE,IAAI,IAAI,MAAM,2BAA2B,EAAE,SACzC,MAAM,4BAA4B,UACpC,MAAM,4BAA4B,KAAK,CAAC,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC,GACnE;AACA,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,6BAA6B;AAAA,MACpC,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACA,gCAA8B,OAAO,OAAO;AAC5C,4BAA0B,OAAO,gBAAgB,OAAO;AACxD,QAAM,YAAY,QAAQ,CAAC,OAAO,UAAU;AAC1C,QAAI,MAAM,YAAY,MAAM,SAAS;AACnC,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,eAAe,OAAO,SAAS;AAAA,QACtC,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AACD;AAAA,IACE,MAAM;AAAA,IACN,MAAM;AAAA,IACN;AAAA,IACA;AAAA,IACA,MAAM;AAAA,IACN;AAAA,EACF;AACA,QAAM,wBAAwB,QAAQ,CAAC,cAAc,UAAU;AAC7D,QAAI,aAAa,YAAY,MAAM,SAAS;AAC1C,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,2BAA2B,OAAO,SAAS;AAAA,QAClD,SACE;AAAA,MACJ,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AACH,CAAC;AACI,IAAM,qCACX,2BAA2B,OAAO;AAAA,EAChC,oBAAoB;AACtB,CAAC,EAAE,OAAO;AACL,IAAM,0BACX,kCAAkC,WAAW;AAAA,EAC3C,iBAAiB;AAAA,EACjB,kBAAkBA,IAAE,MAAM,qBAAqB;AACjD,CAAC;AAGI,IAAM,gCACX,kCAAkC,WAAW;AAAA,EAC3C,iBAAiBA,IAAE,MAAM,EAAE,SAAS;AAAA,EACpC,kBAAkBA,IAAE,MAAM,2BAA2B;AACvD,CAAC;AAGI,IAAM,kCAA0FA,IAAE,MAAM,CAAC,yBAAyB,6BAA6B,CAAC;AAEhK,IAAM,iCAAiCA,IAC3C,OAAO;AAAA,EACN,MAAM;AAAA,EACN,aAAa,eAAe,SAAS;AACvC,CAAC,EACA,OAAO;AACV,IAAM,+BAA+B,uBAAuB,MAAM,OAC/D,WAAW;AAAA,EACV,YAAY;AACd,CAAC,EACA,OAAO;AACH,IAAM,+BAA+BA,IACzC,OAAO;AAAA,EACN,UAAUA,IAAE,QAAQ,wBAAwB;AAAA,EAC5C,GAAG;AAAA,EACH,aAAa;AAAA,EACb,sBAAsB;AAAA,EACtB,UAAU;AAAA,EACV,SAAS;AAAA,EACT,aAAaA,IAAE,MAAM,wBAAwB;AAAA,EAC7C,QAAQA,IAAE,MAAM,oBAAoB;AAAA,EACpC,cAAcA,IAAE,MAAM,kCAAkC;AAAA,EACxD,cAAc,gBAAgB,MAAM,aAAa,SAAS;AAAA,EAC1D,QAAQ,gBAAgB,MAAM;AAAA,EAC9B,uBAAuB;AAAA,EACvB,2BAA2B,gBAAgB,MAAM;AAAA,EACjD,QAAQ;AAAA,EACR,sBAAsB;AAAA,EACtB,8BAA8B;AAAA,EAC9B,uBAAuBA,IAAE,KAAK;AAAA,IAC5B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACH,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,4BAA0B,OAAO,qBAAqB,OAAO;AAC7D,QAAM,YAAY,QAAQ,CAAC,OAAO,UAAU;AAC1C,QAAI,MAAM,YAAY,MAAM,SAAS;AACnC,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,eAAe,OAAO,SAAS;AAAA,QACtC,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AACD;AAAA,IACE,MAAM;AAAA,IACN,MAAM;AAAA,IACN;AAAA,IACA;AAAA,IACA,MAAM;AAAA,IACN;AAAA,EACF;AACA,MAAI,MAAM,aAAa,WAAW,GAAG;AACnC,QAAI,MAAM,iBAAiB,MAAM;AAC/B,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,cAAc;AAAA,QACrB,SACE;AAAA,MACJ,CAAC;AAAA,IACH;AACA;AAAA,EACF;AACA,MAAI,MAAM,iBAAiB,MAAM;AAC/B,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,cAAc;AAAA,MACrB,SACE;AAAA,IACJ,CAAC;AACD;AAAA,EACF;AACA,QAAM,kBAAkB,MAAM,aAAa;AAAA,IACzC,CAAC,aAAa,SAAS,eAAe,MAAM,cAAc;AAAA,EAC5D;AACA,MACE,CAAC,mBACD,gBAAgB,YAAY,MAAM,aAAa,SAC/C;AACA,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,cAAc;AAAA,MACrB,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACA,MACE,CAAC,MAAM,OAAO;AAAA,IACZ,CAAC,UAAU,MAAM,YAAY,MAAM,cAAc;AAAA,EACnD,GACA;AACA,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,gBAAgB,SAAS;AAAA,MAChC,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACF,CAAC;AACH,IAAM,iCAAiC,+BAA+B,OAAO;AAAA,EAC3E,MAAMA,IAAE,QAAQ,OAAO;AAAA,EACvB,cAAc;AAAA,EACd,YAAY;AACd,CAAC,EAAE,OAAO;AACH,IAAM,qDACX,+BAA+B,OAAO;AAAA,EACpC,MAAMA,IAAE,QAAQ,wBAAwB;AAAA,EACxC,cAAc;AAAA,EACd,WAAWA,IAAE,QAAQ,QAAQ;AAAA,EAC7B,eAAe;AAAA,EACf,WAAW;AAAA,EACX,gBAAgB,yBAAyB,SAAS;AAAA,EAClD,OAAO;AAAA,EACP,0BAA0B;AAC5B,CAAC,EAAE,OAAO;AACL,IAAM,8CACX,+BAA+B,OAAO;AAAA,EACpC,MAAMA,IAAE,QAAQ,yBAAyB;AAAA,EACzC,cAAc;AAAA,EACd,WAAWA,IAAE,QAAQ,QAAQ;AAAA,EAC7B,oBAAoB;AAAA,EACpB,wBAAwB;AAAA,EACxB,yBAAyB,kBAAkB,SAAS;AAAA,EACpD,OAAO;AACT,CAAC,EAAE,OAAO;AACL,IAAM,yCAAyCA,IAAE;AAAA,EACtD;AAAA,EACA;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA,kCAAkC,KAAK,EAAE,QAAQ,KAAK,CAAC,EACpD,OAAO,EAAE,MAAMA,IAAE,QAAQ,aAAa,EAAE,CAAC,EACzC,OAAO;AAAA,EACZ;AACF;AACO,IAAM,oCACX,0BAA0B,OAAO;AAAA,EAC/B,wBAAwBA,IAAE,MAAM,kBAAkB;AACpD,CAAC,EAAE,OAAO;AACL,IAAM,qCACX,2BAA2B,OAAO;AAAA,EAChC,wBAAwBA,IAAE,MAAM,kBAAkB;AAAA,EAClD,gBAAgB;AAClB,CAAC,EACE,OAAO,EACP,YAAY,CAAC,MAAM,YAAY;AAC9B,MACE,KAAK,eAAe,WAAW,KAAK,UACpC,kBAAkB,KAAK,eAAe,eAAe,MACnD,kBAAkB,KAAK,SAAS,GAClC;AACA,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,gBAAgB;AAAA,MACvB,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,MACE,KAAK,eAAe,SAAS,kBAC5B,KAAK,aAAa,QACjB,OAAO,KAAK,KAAK,gBAAgB,EAAE,SAAS,IAC9C;AACA,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,gBAAgB;AAAA,MACvB,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACF,CAAC;AAEE,IAAM,wCACX,8BAA8B,OAAO;AAAA,EACnC,wBAAwBA,IAAE,MAAM,kBAAkB;AACpD,CAAC,EAAE,OAAO;AACL,IAAM,+BAA+BA,IAAE,mBAAmB,QAAQ;AAAA,EACvE;AAAA,EACA;AAAA,EACA;AACF,CAAC;AACM,IAAM,gCAAgCA,IAC1C,OAAO;AAAA,EACN,UAAUA,IAAE,QAAQ,yBAAyB;AAAA,EAC7C,GAAG;AAAA,EACH,cAAc;AAAA,EACd,uBAAuB;AAAA,EACvB,SAAS;AAAA,EACT,WAAW;AAAA,EACX,OAAOA,IAAE,MAAM,4BAA4B;AAAA,EAC3C,sBAAsB;AAAA,EACtB,8BAA8B;AAChC,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,4BAA0B,OAAO,sBAAsB,OAAO;AAC9D;AAAA,IACE,MAAM;AAAA,IACN,MAAM;AAAA,IACN;AAAA,IACA;AAAA,IACA,MAAM;AAAA,IACN;AAAA,EACF;AACF,CAAC;AACI,IAAM,6CACX,yBAAyB,OAAO;AAAA,EAC9B,gBAAgBA,IAAE,QAAQ,SAAS;AAAA,EACnC,WAAWA,IACR,OAAO;AAAA,IACN,qBAAqBA,IAAE,QAAQ,KAAK;AAAA,IACpC,gBAAgBA,IAAE,QAAQ,KAAK;AAAA,IAC/B,oBAAoBA,IAAE,QAAQ,KAAK;AAAA,IACnC,gBAAgBA,IAAE,QAAQ,KAAK;AAAA,IAC/B,cAAcA,IAAE,QAAQ,KAAK;AAAA,EAC/B,CAAC,EACA,OAAO;AACZ,CAAC,EAAE,OAAO;AACZ,IAAM,oBAAoB,CAAC,YAAoB,kBAC7C,2CAA2C,MAAM;AAAA,EAC/C,UAAU;AAAA,EACV;AAAA,EACA,aAAa;AAAA,EACb,WAAW;AAAA,EACX;AAAA,EACA,WAAW;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA,IACT,OAAO;AAAA,EACT;AAAA,EACA,eAAe,CAAC;AAAA,EAChB,aAAa,CAAC;AAAA,EACd,gBAAgB;AAAA,EAChB,WAAW;AAAA,IACT,qBAAqB;AAAA,IACrB,gBAAgB;AAAA,IAChB,oBAAoB;AAAA,IACpB,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AACF,CAAC;AACI,IAAM,2CAA2C,OAAO,OAAO;AAAA,EACpE,kBAAkB,uBAAuB,wBAAwB;AAAA,EACjE;AAAA,IACE;AAAA,IACA;AAAA,EACF;AAAA,EACA,kBAAkB,4BAA4B,6BAA6B;AAAA,EAC3E;AAAA,IACE;AAAA,IACA;AAAA,EACF;AAAA,EACA;AAAA,IACE;AAAA,IACA;AAAA,EACF;AAAA,EACA;AAAA,IACE;AAAA,IACA;AAAA,EACF;AACF,CAAC;;;ACr2LD,SAAS,KAAAK,WAAS;AASX,IAAM,iBAAiBC,IAAE,KAAK;AAAA,EACnC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAEM,IAAM,uBAAuBA,IACjC,OAAO;AAAA,EACN,eAAeA,IAAE,QAAQ,EAAE,QAAQ,IAAI;AAAA,EACvC,iBAAiBA,IAAE,MAAM,wBAAwB,EAAE,QAAQ,CAAC,CAAC;AAAA,EAC7D,iBAAiBA,IAAE,MAAM,wBAAwB,EAAE,QAAQ,CAAC,CAAC;AAAA,EAC7D,cAAcA,IAAE,MAAM,wBAAwB,EAAE,QAAQ,CAAC,CAAC;AAAA,EAC1D,iBAAiBA,IAAE,MAAMA,IAAE,KAAK,CAAC,UAAU,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC;AAC9D,CAAC,EACA,OAAO;AAEH,IAAM,sBAAsBA,IAChC,OAAO,EACP,KAAK,EACL,MAAM,aAAa,8CAA8C;AAEpE,IAAM,6BAA6B,CACjC,WACA,MACA,YACG;AACH,MAAI,UAAU,SAAS,cAAc;AACnC,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,GAAG,MAAM,MAAM;AAAA,MACtB,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,MAAI,UAAU,YAAY,QAAW;AACnC,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,GAAG,MAAM,SAAS;AAAA,MACzB,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,MAAI,UAAU,cAAc,QAAW;AACrC,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,GAAG,MAAM,WAAW;AAAA,MAC3B,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACF;AAEO,IAAM,uBAAuBA,IACjC,OAAO;AAAA,EACN,UAAUA,IAAE,QAAQ,gBAAgB;AAAA,EACpC,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,OAAO;AAAA,EACP,UAAU;AAAA,EACV,WAAWA,IAAE,OAAO;AAAA,IAClB,QAAQ,yBAAyB,SAAS;AAAA,IAC1C,YAAY,gBAAgB,SAAS;AAAA,IACrC,UAAU,yBAAyB,SAAS;AAAA,IAC5C,SAASA,IAAE,QAAQ;AAAA,EACrB,CAAC,EAAE,OAAO;AAAA,EACV,QAAQA,IAAE,OAAO;AAAA,IACf,kBAAkBA,IAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS;AAAA,IAC1D,kBAAkBA,IAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS;AAAA,IAC1D,SAASA,IAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EACpC,CAAC,EAAE,OAAO;AAAA,EACV,SAASA,IAAE,KAAK,CAAC,QAAQ,aAAa,QAAQ,UAAU,UAAU,WAAW,OAAO,CAAC;AAAA,EACrF,SAAS;AAAA,EACT,WAAW;AAAA,EACX,mBAAmB,wBAAwB,SAAS;AAAA,EACpD,aAAa;AAAA,EACb,eAAe;AAAA,EACf,gBAAgBA,IAAE,MAAM,eAAe,EAAE,QAAQ,CAAC,CAAC;AAAA,EACnD,aAAa,gBAAgB,SAAS;AAAA,EACtC,SAASA,IACN,OAAO;AAAA,IACN,WAAW,yBAAyB,SAAS;AAAA,IAC7C,YAAY,yBAAyB,SAAS;AAAA,IAC9C,eAAe,yBAAyB,SAAS;AAAA,IACjD,UAAU,yBAAyB,SAAS;AAAA,EAC9C,CAAC,EACA,OAAO;AAAA,EACV,QAAQA,IAAE,OAAO;AAAA,IACf,SAASA,IAAE,MAAMA,IAAE,KAAK,CAAC,QAAQ,SAAS,WAAW,oBAAoB,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;AAAA,EACzF,CAAC,EAAE,OAAO;AAAA,EACV,OAAOA,IACJ,OAAO;AAAA,IACN,WAAW;AAAA,EACb,CAAC,EACA,OAAO,EACP,SAAS;AAAA,EACZ,gBAAgBA,IAAE,OAAO;AAAA,IACvB,WAAW;AAAA,IACX,OAAO;AAAA,EACT,CAAC,EAAE,OAAO;AAAA,EACV,YAAYA,IACT,OAAO;AAAA,IACN,OAAO;AAAA,IACP,SAAS,yBAAyB,SAAS;AAAA,IAC3C,cAAc,yBAAyB,SAAS;AAAA,IAChD,OAAOA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AAAA,IACjC,QAAQA,IAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,IACjC,QAAQA,IAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EACnC,CAAC,EACA,OAAO;AAAA,EACV,YAAY;AACd,CAAC,EACA,OAAO,EACP,YAAY,CAAC,MAAM,YAAY;AAC9B,QAAM,eAAe,CAAC,KAAK,eAAe,GAAG,KAAK,cAAc;AAChE,QAAM,uBAAuB,oBAAI,IAAY;AAC7C,eAAa,QAAQ,CAAC,WAAW,UAAU;AACzC,UAAM,OAAO,UAAU,IAAI,CAAC,eAAe,IAAI,CAAC,kBAAkB,QAAQ,CAAC;AAC3E,+BAA2B,WAAW,MAAM,OAAO;AACnD,UAAM,WAAW,GAAG,UAAU,EAAE,IAAI,OAAO,UAAU,OAAO,CAAC,IAAI,UAAU,aAAa,EAAE;AAC1F,QAAI,qBAAqB,IAAI,QAAQ,GAAG;AACtC,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN;AAAA,QACA,SAAS,wCAAwC,QAAQ;AAAA,MAC3D,CAAC;AAAA,IACH;AACA,yBAAqB,IAAI,QAAQ;AAAA,EACnC,CAAC;AACD,MAAI,KAAK,eAAe,KAAK,YAAY,SAAS,WAAY,SAAQ,SAAS,EAAE,MAAM,UAAU,MAAM,CAAC,eAAe,MAAM,GAAG,SAAS,yCAAyC,CAAC;AACrL,CAAC;AAEI,IAAM,8BAA8BA,IACxC,OAAO;AAAA,EACN,UAAUA,IAAE,QAAQ,uBAAuB;AAAA,EAC3C,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,cAAc,yBAAyB,SAAS;AAAA,EAChD,MAAM,yBAAyB,SAAS;AAAA,EACxC,aAAa,yBAAyB,SAAS;AAAA,EAC/C,gBAAgB,yBAAyB,SAAS;AAAA,EAClD,aAAa,gBAAgB,SAAS;AAAA,EACtC,SAASA,IACN,OAAO;AAAA,IACN,YAAY;AAAA,IACZ,MAAM,yBAAyB,SAAS;AAAA,IACxC,SAASA,IAAE,KAAK,CAAC,WAAW,WAAW,aAAa,CAAC,EAAE,QAAQ,SAAS;AAAA,EAC1E,CAAC,EACA,OAAO;AAAA,EACV,QAAQA,IACL,OAAO;AAAA,IACN,OAAOA,IAAE,KAAK,CAAC,QAAQ,WAAW,UAAU,CAAC;AAAA,IAC7C,MAAMA,IAAE,KAAK,CAAC,KAAK,KAAK,QAAQ,MAAM,CAAC;AAAA,IACvC,YAAY,yBAAyB,SAAS;AAAA,IAC9C,aAAaA,IAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EACxC,CAAC,EACA,OAAO;AAAA,EACV,YAAYA,IAAE,KAAK,CAAC,YAAY,UAAU,UAAU,SAAS,YAAY,CAAC;AAAA,EAC1E,WAAWA,IACR,OAAO;AAAA,IACN,aAAaA,IAAE,KAAK,CAAC,UAAU,gBAAgB,aAAa,CAAC;AAAA,IAC7D,aAAaA,IAAE,KAAK,CAAC,UAAU,gBAAgB,eAAe,QAAQ,CAAC;AAAA,IACvE,UAAUA,IAAE,QAAQ;AAAA,IACpB,aAAaA,IAAE,QAAQ;AAAA,EACzB,CAAC,EACA,OAAO;AACZ,CAAC,EACA,OAAO;AAEH,IAAM,4BAA4BA,IAAE,OAAO;AAAA,EAChD,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,MAAM;AACR,CAAC,EAAE,OAAO;AAEH,IAAM,iCAAiCA,IAAE,OAAO;AAAA,EACrD,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,MAAM;AAAA,EACN,OAAO;AAAA,EACP,SAAS,yBAAyB,SAAS;AAAA,EAC3C,cAAc,yBAAyB,SAAS;AAAA,EAChD,OAAOA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AAAA,EACjC,QAAQA,IAAE,QAAQ;AACpB,CAAC,EAAE,OAAO;AAEH,IAAM,4BAA4BA,IAAE,OAAO;AAAA,EAChD,QAAQ;AAAA,EACR,eAAeA,IAAE,QAAQ;AAAA,EACzB,iBAAiBA,IAAE,MAAM,wBAAwB;AAAA,EACjD,iBAAiBA,IAAE,MAAM,wBAAwB;AAAA,EACjD,cAAcA,IAAE,MAAM,wBAAwB;AAAA,EAC9C,SAASA,IAAE,MAAMA,IAAE,KAAK,CAAC,QAAQ,SAAS,WAAW,oBAAoB,CAAC,CAAC;AAC7E,CAAC,EAAE,OAAO;AAEH,IAAM,+BAA+BA,IACzC,OAAO;AAAA,EACN,QAAQ;AAAA,EACR,SAASA,IAAE,KAAK,CAAC,QAAQ,aAAa,QAAQ,UAAU,UAAU,WAAW,OAAO,CAAC;AAAA,EACrF,aAAa;AAAA,EACb,eAAe;AAAA,EACf,gBAAgBA,IAAE,MAAM,eAAe;AAAA,EACvC,aAAa;AAAA,EACb,SAAS,qBAAqB,MAAM;AAAA,EACpC,gBAAgB,qBAAqB,MAAM;AAAA,EAC3C,aAAa,gBAAgB,SAAS;AACxC,CAAC,EACA,OAAO,EACP,YAAY,CAAC,UAAU,YAAY;AAClC,6BAA2B,SAAS,eAAe,CAAC,eAAe,GAAG,OAAO;AAC7E,WAAS,eAAe,QAAQ,CAAC,WAAW,UAAU;AACpD,+BAA2B,WAAW,CAAC,kBAAkB,KAAK,GAAG,OAAO;AAAA,EAC1E,CAAC;AACD,MAAI,SAAS,YAAY,SAAS,iBAAiB;AACjD,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,eAAe,MAAM;AAAA,MAC5B,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,MAAI,SAAS,YAAY,YAAY,QAAW;AAC9C,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,eAAe,SAAS;AAAA,MAC/B,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,MAAI,SAAS,YAAY,cAAc,QAAW;AAChD,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,eAAe,WAAW;AAAA,MACjC,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACF,CAAC;AAEH,IAAM,8BAA8B,CAClC,QACA,aACuB;AACvB,QAAM,OAAO,oBAAI,IAAY;AAC7B,aAAW,SAAS,QAAQ;AAC1B,UAAM,MAAM,SAAS,KAAK;AAC1B,QAAI,KAAK,IAAI,GAAG,EAAG,QAAO;AAC1B,SAAK,IAAI,GAAG;AAAA,EACd;AACA,SAAO;AACT;AAEO,IAAM,8BAA8BA,IACxC,OAAO;AAAA,EACN,UAAUA,IAAE,QAAQ,uBAAuB;AAAA,EAC3C,SAASA,IAAE,KAAK,CAAC,UAAU,QAAQ,CAAC;AAAA,EACpC,QAAQA,IAAE,MAAM,yBAAyB;AAAA,EACzC,YAAYA,IAAE,MAAM,8BAA8B;AAAA,EAClD,QAAQA,IAAE,MAAM,yBAAyB;AAAA,EACzC,WAAWA,IAAE,MAAM,4BAA4B;AACjD,CAAC,EACA,OAAO,EACP,YAAY,CAAC,YAAY,YAAY;AACpC,QAAM,SAAS;AAAA,IACb,CAAC,UAAU,WAAW,OAAO,IAAI,CAAC,UAAU,MAAM,MAAM,CAAC;AAAA,IACzD,CAAC,cAAc,WAAW,WAAW,IAAI,CAAC,UAAU,MAAM,MAAM,CAAC;AAAA,IACjE,CAAC,UAAU,WAAW,OAAO,IAAI,CAAC,UAAU,MAAM,MAAM,CAAC;AAAA,IACzD,CAAC,aAAa,WAAW,UAAU,IAAI,CAAC,UAAU,MAAM,MAAM,CAAC;AAAA,EACjE;AACA,aAAW,CAAC,OAAO,MAAM,KAAK,QAAQ;AACpC,UAAM,YAAY,4BAA4B,QAAQ,CAAC,UAAU,KAAK;AACtE,QAAI,WAAW;AACb,cAAQ,SAAS,EAAE,MAAM,UAAU,MAAM,CAAC,KAAK,GAAG,SAAS,aAAa,KAAK,YAAY,SAAS,GAAG,CAAC;AAAA,IACxG;AAAA,EACF;AAEA,aAAW,YAAY;AAAA,IACrB,CAAC,WAAW,4BAA4B,WAAW,QAAQ,CAAC,UAAU,MAAM,OAAO,CAAC;AAAA,IACpF,CAAC,QAAQ,4BAA4B,WAAW,QAAQ,CAAC,UAAU,MAAM,IAAI,CAAC;AAAA,EAChF,GAAY;AACV,QAAI,SAAS,CAAC,GAAG;AACf,cAAQ,SAAS,EAAE,MAAM,UAAU,MAAM,CAAC,QAAQ,GAAG,SAAS,mBAAmB,SAAS,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,GAAG,CAAC;AAAA,IAClH;AAAA,EACF;AAEA,QAAM,iBAAiB,IAAI,IAAI,WAAW,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,QAAQ,KAAK,CAAC,CAAC;AACtF,QAAM,eAAe,IAAI,IAAI,WAAW,OAAO,IAAI,CAAC,UAAU,MAAM,MAAM,CAAC;AAC3E,QAAM,kBAAkB,IAAI,IAAI,WAAW,UAAU,IAAI,CAAC,aAAa,SAAS,MAAM,CAAC;AACvF,aAAW,SAAS,WAAW,QAAQ;AACrC,QAAI,CAAC,aAAa,IAAI,MAAM,MAAM,GAAG;AACnC,cAAQ,SAAS,EAAE,MAAM,UAAU,MAAM,CAAC,QAAQ,GAAG,SAAS,gCAAgC,MAAM,MAAM,IAAI,CAAC;AAAA,IACjH;AACA,QAAI,CAAC,gBAAgB,IAAI,MAAM,MAAM,GAAG;AACtC,cAAQ,SAAS,EAAE,MAAM,UAAU,MAAM,CAAC,WAAW,GAAG,SAAS,mCAAmC,MAAM,MAAM,IAAI,CAAC;AAAA,IACvH;AAAA,EACF;AACA,aAAW,SAAS,WAAW,QAAQ;AACrC,QAAI,CAAC,eAAe,IAAI,MAAM,MAAM,GAAG;AACrC,cAAQ,SAAS,EAAE,MAAM,UAAU,MAAM,CAAC,QAAQ,GAAG,SAAS,iCAAiC,MAAM,MAAM,IAAI,CAAC;AAAA,IAClH;AAAA,EACF;AACA,aAAW,YAAY,WAAW,WAAW;AAC3C,QAAI,CAAC,eAAe,IAAI,SAAS,MAAM,GAAG;AACxC,cAAQ,SAAS,EAAE,MAAM,UAAU,MAAM,CAAC,WAAW,GAAG,SAAS,oCAAoC,SAAS,MAAM,IAAI,CAAC;AAAA,IAC3H;AAAA,EACF;AACA,aAAW,cAAc,WAAW,YAAY;AAC9C,UAAM,QAAQ,eAAe,IAAI,WAAW,MAAM;AAClD,QAAI,CAAC,SAAS,MAAM,YAAY,WAAW,WAAW,MAAM,SAAS,WAAW,MAAM;AACpF,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,YAAY;AAAA,QACnB,SAAS,mCAAmC,WAAW,MAAM;AAAA,MAC/D,CAAC;AAAA,IACH;AAAA,EACF;AACF,CAAC;;;AC9UH,SAAS,KAAAC,WAAS;AASX,IAAM,kCAAkC;AACxC,IAAM,wBAAwB;AAC9B,IAAM,uBAAuB;AAC7B,IAAM,iBAAiB;AACvB,IAAM,sBAAsB;AAC5B,IAAM,uBAAuB,KAAK;AAClC,IAAM,wBAAwB;AAErC,IAAM,kBAAkBC,IAAE,OAAO,EAAE,IAAI,EAAE,IAAI,IAAU,EAAE,IAAI,GAAS;AAEtE,IAAM,mBAAmB,CAAC,UAAqE;AAC7F,MAAI,WAAW;AACf,MAAI,SAAS;AACb,QAAM,QAAQ,CAAC,WAAoB,UAAkB;AACnD,cAAU;AACV,eAAW,KAAK,IAAI,UAAU,KAAK;AACnC,QAAI,MAAM,QAAQ,SAAS,GAAG;AAC5B,gBAAU,QAAQ,CAAC,SAAS,MAAM,MAAM,QAAQ,CAAC,CAAC;AAClD;AAAA,IACF;AACA,QAAI,aAAa,OAAO,cAAc,UAAU;AAC9C,aAAO,OAAO,SAAoC,EAAE,QAAQ,CAAC,SAAS,MAAM,MAAM,QAAQ,CAAC,CAAC;AAAA,IAC9F;AAAA,EACF;AACA,QAAM,OAAO,CAAC;AACd,SAAO;AAAA,IACL,OAAO,IAAI,YAAY,EAAE,OAAO,KAAK,UAAU,KAAK,CAAC,EAAE;AAAA,IACvD,OAAO;AAAA,IACP;AAAA,EACF;AACF;AAEO,IAAM,yBAAyB,iBAAiB,YAAY,CAAC,OAAO,YAAY;AACrF,QAAM,SAAS,iBAAiB,KAAK;AACrC,MAAI,OAAO,QAAQ,sBAAsB;AACvC,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,SAAS,sBAAsB,oBAAoB;AAAA,IACrD,CAAC;AAAA,EACH;AACA,MAAI,OAAO,QAAQ,qBAAqB;AACtC,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,SAAS,oCAAoC,mBAAmB;AAAA,IAClE,CAAC;AAAA,EACH;AACA,MAAI,OAAO,SAAS,uBAAuB;AACzC,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,SAAS,sBAAsB,qBAAqB;AAAA,IACtD,CAAC;AAAA,EACH;AACF,CAAC;AAEM,IAAM,oBAAoBA,IAC9B,OAAO;AAAA,EACN,eAAe;AAAA,EACf,QAAQ;AACV,CAAC,EACA,OAAO;AAEH,IAAM,+BAA+BA,IAAE,mBAAmB,YAAY;AAAA,EAC3EA,IAAE,OAAO,EAAE,UAAUA,IAAE,QAAQ,QAAQ,GAAG,OAAO,uBAAuB,CAAC,EAAE,OAAO;AAAA,EAClFA,IAAE,OAAO,EAAE,UAAUA,IAAE,QAAQ,QAAQ,GAAG,OAAO,uBAAuB,CAAC,EAAE,OAAO;AACpF,CAAC;AAEM,IAAM,gCAAgCA,IAAE,mBAAmB,YAAY;AAAA,EAC5EA,IAAE,OAAO,EAAE,UAAUA,IAAE,QAAQ,QAAQ,GAAG,OAAO,uBAAuB,CAAC,EAAE,OAAO;AAAA,EAClFA,IAAE,OAAO,EAAE,UAAUA,IAAE,QAAQ,QAAQ,EAAE,CAAC,EAAE,OAAO;AACrD,CAAC;AAEM,IAAM,6BAA6BA,IACvC,OAAO;AAAA,EACN,MAAMA,IAAE,QAAQ,UAAU;AAAA,EAC1B,MAAM;AAAA,EACN,cAAc,yBAAyB,SAAS;AAAA,EAChD,OAAO,6BAA6B,SAAS;AAC/C,CAAC,EACA,OAAO;AAEH,IAAM,2BAA2BA,IACrC,OAAO;AAAA,EACN,MAAMA,IAAE,QAAQ,QAAQ;AAAA,EACxB,WAAW;AAAA,EACX,OAAO,uBAAuB,SAAS;AACzC,CAAC,EACA,OAAO;AAEH,IAAM,qBAAqBA,IAAE,mBAAmB,QAAQ;AAAA,EAC7D;AAAA,EACA;AACF,CAAC;AAED,IAAM,oBAAoB;AAAA,EACxB,QAAQ;AAAA,EACR,cAAc,yBAAyB,SAAS;AAAA,EAChD,OAAO;AACT;AAEO,IAAM,sBAAsBA,IAChC,OAAO;AAAA,EACN,GAAG;AAAA,EACH,MAAMA,IAAE,QAAQ,OAAO;AAAA,EACvB,OAAO,oBAAoB,SAAS;AAAA,EACpC,SAAS,yBAAyB,SAAS;AAAA,EAC3C,UAAUA,IAAE,QAAQ,EAAE,SAAS;AACjC,CAAC,EACA,OAAO;AAEH,IAAM,wBAAwBA,IAClC,OAAO;AAAA,EACN,GAAG;AAAA,EACH,MAAMA,IAAE,QAAQ,SAAS;AAC3B,CAAC,EACA,OAAO;AAEH,IAAM,qBAAqBA,IAC/B,OAAO;AAAA,EACN,GAAG;AAAA,EACH,MAAMA,IAAE,QAAQ,MAAM;AAAA,EACtB,OAAO;AAAA,EACP,SAAS,yBAAyB,SAAS;AAAA,EAC3C,MAAMA,IAAE,KAAK,CAAC,WAAW,QAAQ,CAAC,EAAE,SAAS;AAAA,EAC7C,UAAUA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAC/B,oBAAoB,yBAAyB,SAAS;AAAA,EACtD,UAAU;AACZ,CAAC,EACA,OAAO;AAEH,IAAM,iBAAiBA,IAAE,mBAAmB,QAAQ;AAAA,EACzD;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAEM,IAAM,yBAAyBA,IACnC,OAAO;AAAA,EACN,YAAY;AAAA,EACZ,cAAc,yBAAyB,SAAS;AAAA,EAChD,OAAO;AACT,CAAC,EACA,OAAO;AAEV,IAAM,wBAAwB,CAC5B,MAIA,YACG;AACH,QAAM,YAAY,oBAAI,IAAqE;AAC3F,OAAK,MAAM,QAAQ,CAAC,MAAM,UAAU;AAClC,QAAI,UAAU,IAAI,KAAK,MAAM,GAAG;AAC9B,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,SAAS,OAAO,QAAQ;AAAA,QAC/B,SAAS,0BAA0B,KAAK,MAAM;AAAA,MAChD,CAAC;AACD;AAAA,IACF;AACA,cAAU,IAAI,KAAK,QAAQ,EAAE,MAAM,MAAM,CAAC;AAAA,EAC5C,CAAC;AAED,QAAM,iBAAiB,CAAC,cAAkC,SAA8B;AACtF,QAAI,CAAC,aAAc;AACnB,UAAM,SAAS,UAAU,IAAI,YAAY;AACzC,QAAI,CAAC,QAAQ;AACX,cAAQ,SAAS,EAAE,MAAM,UAAU,MAAM,SAAS,8BAA8B,YAAY,GAAG,CAAC;AAChG;AAAA,IACF;AACA,QAAI,OAAO,KAAK,SAAS,SAAS;AAChC,cAAQ,SAAS,EAAE,MAAM,UAAU,MAAM,SAAS,eAAe,YAAY,oBAAoB,CAAC;AAAA,IACpG;AAAA,EACF;AAEA,OAAK,MAAM,QAAQ,CAAC,MAAM,UAAU,eAAe,KAAK,cAAc,CAAC,SAAS,OAAO,cAAc,CAAC,CAAC;AACvG,OAAK,cAAc,QAAQ,CAAC,cAAc,UACxC,eAAe,aAAa,cAAc,CAAC,iBAAiB,OAAO,cAAc,CAAC,CAAC;AAErF,OAAK,MAAM,QAAQ,CAAC,MAAM,UAAU;AAClC,UAAM,YAAY,oBAAI,IAAI,CAAC,KAAK,MAAM,CAAC;AACvC,QAAI,eAAe,KAAK;AACxB,QAAI,QAAQ;AACZ,WAAO,cAAc;AACnB,UAAI,UAAU,IAAI,YAAY,GAAG;AAC/B,gBAAQ,SAAS;AAAA,UACf,MAAM;AAAA,UACN,MAAM,CAAC,SAAS,OAAO,cAAc;AAAA,UACrC,SAAS,4BAA4B,KAAK,MAAM;AAAA,QAClD,CAAC;AACD;AAAA,MACF;AACA,gBAAU,IAAI,YAAY;AAC1B,eAAS;AACT,UAAI,QAAQ,qBAAqB;AAC/B,gBAAQ,SAAS;AAAA,UACf,MAAM;AAAA,UACN,MAAM,CAAC,SAAS,OAAO,cAAc;AAAA,UACrC,SAAS,mCAAmC,mBAAmB;AAAA,QACjE,CAAC;AACD;AAAA,MACF;AACA,qBAAe,UAAU,IAAI,YAAY,GAAG,KAAK;AAAA,IACnD;AAAA,EACF,CAAC;AAED,QAAM,mBAAmB,oBAAI,IAAY;AACzC,OAAK,cAAc,QAAQ,CAAC,cAAc,UAAU;AAClD,UAAM,MAAM,GAAG,aAAa,gBAAgB,EAAE,KAAS,aAAa,UAAU;AAC9E,QAAI,iBAAiB,IAAI,GAAG,GAAG;AAC7B,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,iBAAiB,OAAO,YAAY;AAAA,QAC3C,SAAS,mDAAmD,aAAa,UAAU;AAAA,MACrF,CAAC;AAAA,IACH;AACA,qBAAiB,IAAI,GAAG;AAAA,EAC1B,CAAC;AACH;AAEO,IAAM,uBAAuBA,IACjC,OAAO;AAAA,EACN,UAAUA,IAAE,QAAQ,gBAAgB;AAAA,EACpC,SAASA,IAAE,QAAQ,qBAAqB;AAAA,EACxC,eAAe;AAAA,EACf,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,OAAOA,IAAE,MAAM,cAAc,EAAE,IAAI,cAAc;AAAA,EACjD,eAAeA,IAAE,MAAM,sBAAsB,EAAE,IAAI,cAAc,EAAE,QAAQ,CAAC,CAAC;AAC/E,CAAC,EACA,OAAO,EACP,YAAY,qBAAqB;AAE7B,IAAM,0BAA0BA,IAAE,MAAM;AAAA,EAC7CA,IAAE,QAAQ,GAAG;AAAA,EACbA,IACG,OAAO;AAAA,IACN,SAASA,IAAE,QAAQ,qBAAqB;AAAA,IACxC,aAAaA,IAAE,MAAM,oBAAoB,EAAE,IAAI,oBAAoB;AAAA,EACrE,CAAC,EACA,OAAO;AACZ,CAAC;AAEM,IAAM,8BAA8BA,IACxC,OAAO;AAAA,EACN,eAAeA,IAAE,QAAQ,EAAE,QAAQ,IAAI;AAAA,EACvC,iBAAiBA,IAAE,MAAM,wBAAwB,EAAE,QAAQ,CAAC,CAAC;AAAA,EAC7D,iBAAiBA,IAAE,MAAM,wBAAwB,EAAE,QAAQ,CAAC,CAAC;AAAA,EAC7D,cAAcA,IAAE,MAAM,wBAAwB,EAAE,QAAQ,CAAC,CAAC;AAC5D,CAAC,EACA,OAAO;AAEH,IAAM,6BAA6BA,IACvC,OAAO;AAAA,EACN,eAAe;AAAA,EACf,MAAM;AACR,CAAC,EACA,OAAO;AAEH,IAAM,+BAA+BA,IACzC,OAAO;AAAA,EACN,eAAe;AAAA,EACf,WAAW;AAAA,EACX,gBAAgB,yBAAyB,SAAS;AAAA,EAClD,QAAQ;AACV,CAAC,EACA,OAAO;AAEH,IAAM,6CAA6CA,IACvD,OAAO;AAAA,EACN,eAAe;AAAA,EACf,YAAY;AAAA,EACZ,UAAUA,IAAE,MAAM,wBAAwB,EAAE,IAAI,CAAC,EAAE,SAAS;AAC9D,CAAC,EACA,OAAO;AAEH,IAAM,qCAAqCA,IAC/C,OAAO;AAAA,EACN,MAAMA,IAAE,QAAQ,UAAU;AAAA,EAC1B,MAAM;AAAA,EACN,cAAc;AAAA,EACd,OAAO,8BAA8B,SAAS;AAChD,CAAC,EACA,OAAO;AAEH,IAAM,mCAAmCA,IAC7C,OAAO;AAAA,EACN,MAAMA,IAAE,QAAQ,QAAQ;AAAA,EACxB,WAAW;AAAA,EACX,OAAO,uBAAuB,SAAS;AACzC,CAAC,EACA,OAAO;AAEH,IAAM,6BAA6BA,IAAE,mBAAmB,QAAQ;AAAA,EACrE;AAAA,EACA;AACF,CAAC;AAEM,IAAM,+BAA+B,4BAA4B,OAAO;AAAA,EAC7E,oBAAoB,yBAAyB,SAAS;AACxD,CAAC,EAAE,OAAO;AAEH,IAAM,8BAA8B;AACpC,IAAM,gCAAgC;AACtC,IAAM,6BAA6B,mBAAmB,KAAK,EAAE,UAAU,MAAM,oBAAoB,KAAK,CAAC,EAAE,OAAO;AAAA,EACrH,UAAU;AAAA,EACV,QAAQ;AACV,CAAC,EAAE,OAAO;AAEH,IAAM,yBAAyBA,IAAE,mBAAmB,QAAQ;AAAA,EACjE;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAEM,IAAM,+BAA+BA,IACzC,OAAO;AAAA,EACN,eAAe;AAAA,EACf,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,OAAOA,IAAE,MAAM,sBAAsB,EAAE,IAAI,cAAc;AAAA,EACzD,eAAeA,IAAE,MAAM,sBAAsB,EAAE,IAAI,cAAc;AACnE,CAAC,EACA,OAAO;AAEH,IAAM,6BAA6BA,IACvC,OAAO;AAAA,EACN,MAAM;AAAA,EACN,cAAc;AAAA,EACd,OAAO,8BAA8B,SAAS;AAChD,CAAC,EACA,OAAO;AAEH,IAAM,0BAA0BA,IACpC,OAAO;AAAA,EACN,UAAUA,IAAE,QAAQ,mBAAmB;AAAA,EACvC,SAASA,IAAE,QAAQ,qBAAqB;AAAA,EACxC,eAAe;AAAA,EACf,eAAe;AAAA,EACf,aAAa;AAAA,EACb,OAAOA,IAAE,MAAM,4BAA4B,EAAE,IAAI,oBAAoB;AAAA,EACrE,mBAAmBA,IAAE,MAAM,0BAA0B;AAAA,EACrD,WAAWA,IAAE,OAAOA,IAAE,OAAO,GAAG,wBAAwB,EAAE,QAAQ,CAAC,CAAC;AACtE,CAAC,EACA,OAAO;AAEH,IAAM,+BAA+BA,IACzC,OAAO;AAAA,EACN,UAAUA,IAAE,QAAQ,wBAAwB;AAAA,EAC5C,eAAe;AAAA,EACf,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,OAAOA,IAAE,MAAM,sBAAsB,EAAE,IAAI,cAAc;AAC3D,CAAC,EACA,OAAO;;;AC5WV,SAAS,KAAAC,WAAS;AAOlB,IAAM,qBAAqB,CAAC,SAAiB,kBAAkB,YAAY,CAAC,OAAO,YAAY;AAC3F,MAAI,MAAM,SAAS;AACf,YAAQ,SAAS,EAAE,MAAM,UAAU,MAAM,CAAC,MAAM,GAAG,SAAS,2BAA2B,IAAI,IAAI,CAAC;AACxG,CAAC;AACM,IAAM,yBAAyBC,IACjC,OAAO;AAAA,EACR,UAAUA,IAAE,QAAQ,QAAQ;AAAA,EAC5B,eAAeA,IAAE,QAAQ,CAAC;AAAA,EAC1B,UAAU;AAAA,EACV,WAAW;AAAA,EACX,SAASA,IAAE,QAAQ,8CAA8C;AAAA,EACjE,UAAU;AACd,CAAC,EACI,OAAO;AACL,IAAM,+BAA+BA,IACvC,OAAO;AAAA,EACR,UAAUA,IAAE,QAAQ,MAAM;AAAA,EAC1B,eAAeA,IAAE,QAAQ,CAAC;AAAA,EAC1B,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,+BAA+B,mBAAmB,qBAAqB;AAAA,EACvE,8BAA8B,mBAAmB,MAAM;AAAA,EACvD,8BAA8B,mBAAmB,QAAQ;AAAA,EACzD,yBAAyBA,IAAE,MAAM,wBAAwB,EAAE,QAAQ,CAAC,CAAC;AACzE,CAAC,EACI,OAAO;AAEL,IAAM,qCAAqC,6BAA6B,KAAK,EAAE,8BAA8B,KAAK,CAAC;AAEnH,IAAM,4BAA4BA,IACpC,OAAO;AAAA,EACR,MAAM;AAAA,EACN,iBAAiB;AAAA,EACjB,aAAaA,IAAE,KAAK,CAAC,OAAO,YAAY,MAAM,CAAC;AACnD,CAAC,EACI,OAAO;AACL,IAAM,0BAA0BA,IAClC,OAAO;AAAA,EACR,UAAUA,IAAE,QAAQ,mBAAmB;AAAA,EACvC,WAAW;AAAA,EACX,WAAW;AAAA,EACX,aAAaA,IAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC;AAAA,EACpC,aAAaA,IAAE,OAAO,EAAE,SAAS;AAAA,EACjC,WAAW;AAAA,EACX,YAAY,yBAAyB,SAAS;AAAA,EAC9C,eAAeA,IAAE,MAAM,wBAAwB,EAAE,QAAQ,CAAC,CAAC;AAAA,EAC3D,cAAcA,IAAE,MAAM,wBAAwB,EAAE,QAAQ,CAAC,CAAC;AAAA,EAC1D,eAAeA,IAAE,MAAM,yBAAyB,EAAE,QAAQ,CAAC,CAAC;AAChE,CAAC,EACI,OAAO;AACL,IAAM,gCAAgCA,IACxC,OAAO;AAAA,EACR,UAAUA,IAAE,QAAQ,yBAAyB;AAAA,EAC7C,aAAa;AAAA,EACb,WAAW;AAAA,EACX,aAAaA,IAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC;AAAA,EACpC,aAAaA,IAAE,OAAO,EAAE,SAAS;AAAA,EACjC,aAAaA,IAAE,MAAM,wBAAwB,EAAE,IAAI,CAAC;AAAA,EACpD,gBAAgB;AAAA,EAChB,iBAAiB,yBAAyB,SAAS;AAAA,EACnD,qBAAqB,2BAA2B,SAAS;AAAA,EACzD,sBAAsB,2BAA2B,SAAS;AAAA,EAC1D,yBAAyBA,IAAE,MAAM,wBAAwB,EAAE,QAAQ,CAAC,CAAC;AAAA,EACrE,YAAY;AAAA,EACZ,aAAaA,IACR,MAAMA,IAAE,KAAK,CAAC,cAAc,aAAa,cAAc,gBAAgB,eAAe,CAAC,CAAC,EACxF,QAAQ,CAAC,CAAC;AACnB,CAAC,EACI,OAAO;AACL,IAAM,sBAAsBA,IAC9B,OAAO;AAAA,EACR,UAAUA,IAAE,QAAQ,eAAe;AAAA,EACnC,WAAW;AAAA,EACX,aAAa;AAAA,EACb,WAAW;AAAA,EACX,SAAS;AAAA,EACT,gBAAgB;AAAA,EAChB,WAAW;AAAA,EACX,UAAU;AAAA,EACV,QAAQA,IACH,OAAO;AAAA,IACR,SAASA,IAAE,KAAK,CAAC,UAAU,UAAU,SAAS,OAAO,SAAS,CAAC;AAAA,IAC/D,QAAQ,yBAAyB,SAAS;AAAA,IAC1C,cAAc,yBAAyB,SAAS;AAAA,EACpD,CAAC,EACI,OAAO;AAAA,EACZ,SAAS;AAAA,EACT,UAAU;AACd,CAAC,EACI,OAAO;AACL,IAAM,2BAA2BA,IACnC,OAAO;AAAA,EACR,UAAUA,IAAE,QAAQ,oBAAoB;AAAA,EACxC,eAAe;AAAA,EACf,WAAW;AAAA,EACX,UAAUA,IAAE,MAAM,uBAAuB,EAAE,QAAQ,CAAC,CAAC;AAAA,EACrD,YAAYA,IAAE,MAAM,wBAAwB,EAAE,QAAQ,CAAC,CAAC;AAAA,EACxD,aAAaA,IAAE,MAAM,oBAAoB,EAAE,QAAQ,CAAC,CAAC;AAAA,EACrD,UAAUA,IAAE,MAAM,6BAA6B,EAAE,QAAQ,CAAC,CAAC;AAAA,EAC3D,cAAcA,IAAE,MAAM,wBAAwB,EAAE,QAAQ,CAAC,CAAC;AAAA,EAC1D,OAAOA,IAAE,MAAM,oBAAoB,EAAE,QAAQ,CAAC,CAAC;AAAA,EAC/C,OAAOA,IAAE,MAAM,oBAAoB,EAAE,QAAQ,CAAC,CAAC;AACnD,CAAC,EACI,OAAO;AACL,IAAM,6BAA6BA,IACrC,OAAO;AAAA,EACR,MAAM;AAAA,EACN,IAAI;AAAA,EACJ,UAAUA,IAAE,KAAK;AAAA,IACb;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,CAAC;AACL,CAAC,EACI,OAAO;AACL,IAAM,qBAAqBA,IAC7B,OAAO;AAAA,EACR,YAAY;AAAA,EACZ,cAAcA,IAAE,MAAM,eAAe;AAAA,EACrC,SAASA,IAAE,MAAM,wBAAwB,EAAE,IAAI,CAAC;AACpD,CAAC,EACI,OAAO;AACL,IAAM,0BAA0BA,IAClC,OAAO;AAAA,EACR,UAAUA,IAAE,QAAQ,mBAAmB;AAAA,EACvC,eAAe;AAAA,EACf,OAAOA,IAAE,MAAM,eAAe;AAAA,EAC9B,OAAOA,IAAE,MAAM,0BAA0B;AAAA,EACzC,SAASA,IAAE,MAAM,kBAAkB;AAAA,EACnC,aAAa;AACjB,CAAC,EACI,OAAO;;;AC5IZ,SAAS,KAAAC,WAAS;AA2CX,IAAM,iCACX;AACK,IAAM,sCACX;AAEK,IAAM,gCAAgCC,IAAE,KAAK;AAAA,EAClD;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAKM,IAAM,mCAAmCA,IAAE,KAAK;AAAA,EACrD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAKD,IAAM,aAAa,CAAC,UAA0B,mBAAmB,KAAK;AAE/D,IAAM,2BAA2B;AAAA,EACtC,uBAAuB,CAAC,SACtB,GAAG,8BAA8B,wBAAwB,IAAI;AAAA,EAC/D,gBAAgB,CAAC,SACf,GAAG,8BAA8B,wBAAwB,IAAI;AAAA,EAC/D,UAAU,CAAC,MAA+B,eACxC,GAAG,8BAA8B,cAAc,IAAI,IAAI,WAAW,UAAU,CAAC;AAAA,EAC/E,SAAS,CAAC,MAA+B,eACvC,GAAG,8BAA8B,cAAc,IAAI,IAAI,WAAW,UAAU,CAAC;AAAA,EAC/E,SAAS,CAAC,MAA+B,eACvC,GAAG,8BAA8B,cAAc,IAAI,IAAI,WAAW,UAAU,CAAC;AAAA,EAC/E,UAAU,CACR,MACA,YACA,kBAEA,GAAG,8BAA8B,cAAc,IAAI,IAAI,WAAW,UAAU,CAAC,aAAa,WAAW,aAAa,CAAC;AAAA,EACrH,eAAe,CAAC,MAA+B,WAC7C,GAAG,8BAA8B,qBAAqB,IAAI,IAAI,WAAW,MAAM,CAAC;AAAA,EAClF,WAAW,CAAC,SACV,GAAG,8BAA8B,cAAc,IAAI;AAAA,EACrD,iBAAiB,CAAC,SAChB,GAAG,8BAA8B,wBAAwB,IAAI;AAAA,EAC/D,OAAO,CAAC,MAA+B,eACrC,GAAG,8BAA8B,cAAc,IAAI,IAAI,WAAW,UAAU,CAAC;AAAA,EAC/E,WAAW,CAAC,MAA+B,eACzC,GAAG,8BAA8B,cAAc,IAAI,IAAI,WAAW,UAAU,CAAC;AAAA,EAC/E,kBAAkB,CAChB,MACA,eAEA,GAAG,8BAA8B,wBAAwB,IAAI,IAAI,WAAW,UAAU,CAAC;AAAA,EACzF,kBAAkB,CAChB,MACA,YACA,kBAEA,GAAG,8BAA8B,cAAc,IAAI,IAAI,WAAW,UAAU,CAAC,aAAa,WAAW,aAAa,CAAC;AAAA,EACrH,YAAY,CAAC,MAA+B,eAC1C,GAAG,8BAA8B,cAAc,IAAI,IAAI,WAAW,UAAU,CAAC;AAAA,EAC/E,QAAQ,CAAC,MAA+B,eACtC,GAAG,8BAA8B,cAAc,IAAI,IAAI,WAAW,UAAU,CAAC;AAAA,EAC/E,oBAAoB,MAClB,GAAG,8BAA8B;AAAA,EACnC,kBAAkB,CAChB,MACA,YACA,WAEA,GAAG,8BAA8B,wBAAwB,IAAI,IAAI,WAAW,UAAU,CAAC,IAAI,MAAM;AAAA,EACnG,sBAAsB,MACpB,GAAG,8BAA8B;AAAA,EACnC,kBAAkB,CAAC,cACjB,GAAG,8BAA8B,oCAAoC,WAAW,SAAS,CAAC;AAAA,EAC5F,yBAAyB,CAAC,cACxB,GAAG,8BAA8B,oCAAoC,WAAW,SAAS,CAAC;AAAA,EAC5F,iBAAiB,MACf,GAAG,8BAA8B;AAAA,EACnC,iBAAiB,MACf,GAAG,8BAA8B;AAAA,EACnC,gBAAgB,CAAC,UACf,GAAG,8BAA8B,+BAA+B,WAAW,KAAK,CAAC;AAAA,EACnF,sBAAsB,CAAC,UACrB,GAAG,8BAA8B,+BAA+B,WAAW,KAAK,CAAC;AAAA,EACnF,sBAAsB,CAAC,UACrB,GAAG,8BAA8B,+BAA+B,WAAW,KAAK,CAAC;AAAA,EACnF,gBAAgB,MACd,GAAG,8BAA8B;AAAA,EACnC,4BAA4B,MAC1B,GAAG,8BAA8B;AAAA,EACnC,2BAA2B,MACzB,GAAG,8BAA8B;AAAA,EACnC,aAAa,CAAC,kBACZ,GAAG,8BAA8B,kBAAkB,WAAW,aAAa,CAAC;AAAA,EAC9E,mBAAmB,CAAC,kBAClB,GAAG,8BAA8B,wBAAwB,WAAW,aAAa,CAAC;AAAA,EACpF,kBAAkB,CAAC,kBACjB,GAAG,8BAA8B,wBAAwB,WAAW,aAAa,CAAC;AAAA,EACpF,gBAAgB,MACd,GAAG,8BAA8B;AAAA,EACnC,4BAA4B,CAAC,cAC3B,GAAG,8BAA8B,8BAA8B,WAAW,SAAS,CAAC;AAAA,EACtF,qBAAqB,CAAC,eAAuB,cAC3C,GAAG,8BAA8B,kBAAkB,WAAW,aAAa,CAAC,aAAa,WAAW,SAAS,CAAC;AAAA,EAChH,sBAAsB,CACpB,eACA,oBAEA,GAAG,8BAA8B,kBAAkB,WAAW,aAAa,CAAC,YAAY,WAAW,eAAe,CAAC;AAAA,EACrH,gCAAgC,CAC9B,eACA,WAEA,GAAG,8BAA8B,wBAAwB,WAAW,aAAa,CAAC,YAAY,WAAW,MAAM,CAAC;AACpH;AAEO,IAAM,mCAAmC,CAC9C,SAEAA,IAAE,OAAO,EAAE,MAAMA,IAAE,OAAO,EAAE,IAAI,GAAG,SAASA,IAAE,OAAO,GAAG,KAAK,CAAC,EAAE,YAAY;AAEvE,IAAM,iCAAiCA,IAC3C,OAAO;AAAA,EACN,MAAMA,IAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC;AAAA,EAC7B,SAASA,IAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC;AAAA,EAChC,WAAWA,IAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EAC7C,SAASA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAC9B,aAAaA,IAAE,MAAMA,IAAE,QAAQ,CAAC,EAAE,SAAS;AAC7C,CAAC,EACA,YAAY;AAEf,IAAM,qCAAqCA,IACxC,OAAO;AAAA,EACN,0BAA0B;AAAA,EAC1B,iBAAiB;AACnB,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,MAAI,MAAM,yBAAyB,SAAS,gBAAgB;AAC1D,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,4BAA4B,MAAM;AAAA,MACzC,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,MAAI,MAAM,gBAAgB,SAAS,QAAQ;AACzC,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,mBAAmB,MAAM;AAAA,MAChC,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACF,CAAC;AAEH,IAAM,gCAAgC,oBAAI,IAAI;AAAA,EAC5C;AAAA,EACA;AAAA,EACA;AACF,CAAC;AACD,IAAM,6BAA6B,CACjC,OACA,SACA,OAAsB,CAAC,MACd;AACT,MAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,UAAM;AAAA,MAAQ,CAAC,OAAO,UACpB,2BAA2B,OAAO,SAAS,CAAC,GAAG,MAAM,KAAK,CAAC;AAAA,IAC7D;AACA;AAAA,EACF;AACA,MAAI,CAAC,SAAS,OAAO,UAAU,SAAU;AACzC,aAAW,OAAO,OAAO,KAAK,KAAK,GAAG;AACpC,QAAI,8BAA8B,IAAI,GAAG,GAAG;AAC1C,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,GAAG,MAAM,GAAG;AAAA,QACnB,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AACA;AAAA,MACG,MAAkC,GAAG;AAAA,MACtC;AAAA,MACA,CAAC,GAAG,MAAM,GAAG;AAAA,IACf;AAAA,EACF;AACF;AACA,IAAM,wBAAwB,CAAC,OAAgB,QAAQ,MAAc;AACnE,MAAI,UAAU,QAAQ,OAAO,UAAU,SAAU,QAAO;AACxD,QAAM,SAAS,MAAM,QAAQ,KAAK,IAC9B,QACA,OAAO,OAAO,KAAgC;AAClD,SAAO,OAAO;AAAA,IACZ,CAAC,SAAS,UACR,KAAK,IAAI,SAAS,sBAAsB,OAAO,QAAQ,CAAC,CAAC;AAAA,IAC3D;AAAA,EACF;AACF;AAEA,IAAM,qCAAqCA,IACxC,IAAI,EACJ,YAAY,0BAA0B,EACtC;AAAA,EACC,iBAAiB,YAAY,CAAC,OAAO,YAAY;AAC/C,UAAM,OAAO,OAAO,KAAK,KAAK;AAC9B,QAAI,KAAK,SAAS;AAChB,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC;AAAA,QACP,SACE;AAAA,MACJ,CAAC;AACH,SAAK,QAAQ,CAAC,QAAQ;AACpB,UAAI,CAAC,yBAAyB,UAAU,GAAG,EAAE;AAC3C,gBAAQ,SAAS;AAAA,UACf,MAAM;AAAA,UACN,MAAM,CAAC,GAAG;AAAA,UACV,SAAS;AAAA,QACX,CAAC;AAAA,IACL,CAAC;AACD,QAAI,sBAAsB,KAAK,IAAI;AACjC,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC;AAAA,QACP,SAAS;AAAA,MACX,CAAC;AACH,UAAM,aAAa,KAAK,UAAU,KAAK;AACvC,QAAI,IAAI,YAAY,EAAE,OAAO,UAAU,EAAE,SAAS,KAAK;AACrD,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC;AAAA,QACP,SAAS;AAAA,MACX,CAAC;AACH,UAAM,QAAQ,CAAC,OAAgB,SAAwB;AACrD,UAAI,OAAO,UAAU,YAAY,MAAM,SAAS;AAC9C,gBAAQ,SAAS;AAAA,UACf,MAAM;AAAA,UACN;AAAA,UACA,SACE;AAAA,QACJ,CAAC;AAAA,eACM,MAAM,QAAQ,KAAK;AAC1B,cAAM,QAAQ,CAAC,OAAO,UAAU,MAAM,OAAO,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC;AAAA,eACvD,SAAS,OAAO,UAAU;AACjC,eAAO,QAAQ,KAAK,EAAE;AAAA,UAAQ,CAAC,CAAC,KAAK,KAAK,MACxC,MAAM,OAAO,CAAC,GAAG,MAAM,GAAG,CAAC;AAAA,QAC7B;AAAA,IACJ;AACA,UAAM,OAAO,CAAC,CAAC;AAAA,EACjB,CAAC;AACH;AAEK,IAAM,6CACX,mCAAmC,WAAW;AAAA,EAC5C,YAAY,mCAAmC,QAAQ,CAAC,CAAC;AAAA,EACzD,UAAUA,IAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,QAAQ,EAAE;AAAA,EACrD,QAAQA,IAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,SAAS;AACtD,CAAC,EAAE,OAAO;AAKL,IAAM,6CAA6CA,IACvD,OAAO;AAAA,EACN,WAAW;AAAA,EACX,0BAA0B;AAAA,EAC1B,iBAAiB;AAAA,EACjB,8BAA8B;AAAA,EAC9B,OAAO;AAAA,EACP,SAASA,IAAE,OAAO,EAAE,UAAUA,IAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,SAAS;AAAA,EAC/D,UAAUA,IACP,OAAO;AAAA,IACN,UAAUA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AAAA,IACpC,UAAUA,IAAE,OAAO,EAAE,IAAI,EAAE,YAAY;AAAA,IACvC,SAASA,IAAE,QAAQ;AAAA,IACnB,YAAYA,IAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,IAC9C,OAAOA,IAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS;AAAA,EACjD,CAAC,EACA,OAAO,EACP,SAAS;AAAA,EACZ,oBAAoBA,IAAE,MAAM,iBAAiB;AAAA,EAC7C,aAAa;AACf,CAAC,EACA,OAAO;AAKH,IAAM,0CAA0CA,IACpD,OAAO,EACP,IAAI,CAAC,EACL,IAAI,IAAI,EACR;AAAA,EACC,CAAC,UACC,MAAM,WAAW,GAAG,KACpB,CAAC,MAAM,WAAW,IAAI,KACtB,UAAU,MAAM,KAAK,KACrB,CAAC,4BAA4B,KAAK,KAAK,KACvC,CAAC,MAAM,SAAS,KAAK;AAAA,EACvB;AACF;AAEK,IAAM,8CACX,mCAAmC,WAAW;AAAA,EAC5C,QAAQ;AAAA,EACR,cAAcA,IAAE,QAAQ,IAAI,EAAE,SAAS;AAAA,EACvC,WAAW;AAAA,EACX,OAAOA,IACJ;AAAA,IACCA,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,IACzBA,IAAE,MAAM;AAAA,MACNA,IACG,OAAO;AAAA,QACN,UAAUA,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,QACnC,SAASA,IAAE,OAAO,EAAE,IAAI,OAAO;AAAA,MACjC,CAAC,EACA,OAAO;AAAA,MACVA,IACG,OAAO;AAAA,QACN,UAAUA,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,QACnC,cAAcA,IACX,OAAO,EACP,MAAM,sBAAsB,EAC5B,IAAI,IAAI;AAAA,MACb,CAAC,EACA,OAAO;AAAA,IACZ,CAAC;AAAA,EACH,EACC,YAAY,CAAC,OAAO,YAAY;AAC/B,QACE,OAAO,KAAK,KAAK,EAAE,SAAS,KAC5B,OAAO,OAAO,KAAK,EAAE;AAAA,MACnB,CAAC,OAAO,SACN,SACC,aAAa,OACV,IAAI,YAAY,EAAE,OAAO,KAAK,OAAO,EAAE,aACvC;AAAA,MACN;AAAA,IACF,IAAI;AAEJ,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,SAAS;AAAA,MACX,CAAC;AAAA,EACL,CAAC,EACA,SAAS;AAAA,EACZ,OAAOA,IACJ,QAAQ,EACR,YAAY,CAAC,OAAO,YAAY;AAC/B,QAAI;AACF,4BAAsB,KAAK;AAAA,IAC7B,QAAQ;AACN,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAAA,EACF,CAAC,EACA,KAAK,gBAAgB,EACrB,SAAS;AAAA,EACZ,WAAW,wCAAwC,SAAS;AAAA,EAC5D,gBAAgBA,IAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAClD,CAAC,EAAE,OAAO;AAEL,IAAM,oDAAoD,4CAA4C,WAAW,EAAE,WAAW,mCAAmC,QAAQ,CAAC,CAAC,EAAE,CAAC;AAO9K,IAAM,kCAAkCA,IAC5C,OAAO;AAAA,EACN,KAAKA,IACF,OAAO,EACP,IAAI,CAAC,EACL,IAAI,KAAK,EACT,OAAO,CAAC,UAAU;AACjB,QAAI;AACF,YAAM,MAAM,IAAI,IAAI,KAAK;AACzB,aACE,CAAC,SAAS,QAAQ,EAAE,SAAS,IAAI,QAAQ,KACzC,CAAC,IAAI,YACL,CAAC,IAAI;AAAA,IAET,QAAQ;AACN,aAAO;AAAA,IACT;AAAA,EACF,GAAG,6DAA6D;AAAA,EAClE,UAAUA,IACP,OAAO,EACP,IAAI,CAAC,EACL,IAAI,IAAI,EACR,MAAM,8BAA8B;AACzC,CAAC,EACA,OAAO;AAEH,IAAM,8CAA8CA,IACxD,OAAO;AAAA,EACN,iBAAiB;AAAA,EACjB,0BAA0B;AAAA,EAC1B,iBAAiB;AAAA,EACjB,oBAAoB;AAAA,EACpB,yBAAyB;AAAA,EACzB,QAAQ;AAAA,EACR,UAAU,gCAAgC,SAAS;AAAA,EACnD,eAAeA,IACZ,OAAO;AAAA,IACN,MAAMA,IAAE,KAAK;AAAA,MACX;AAAA,MACA;AAAA,IACF,CAAC;AAAA,EACH,CAAC,EACA,OAAO,EACP,SAAS;AAAA,EACZ,kBAAkBA,IAAE,QAAQ;AAAA,EAC5B,YAAY;AAAA,EACZ,mBAAmBA,IAAE,MAAM,wBAAwB;AAAA,EACnD,qBAAqB,gBAAgB,SAAS;AAAA,EAC9C,aAAa;AACf,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,MAAI,MAAM,YAAY,MAAM;AAC1B,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,eAAe;AAAA,MACtB,SACE;AAAA,IACJ,CAAC;AACL,CAAC;AAKH,IAAM,2CAA2CA,IAC9C,OAAO;AAAA,EACN,0BAA0B;AAAA,EAC1B,uBAAuB;AACzB,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,MAAI,MAAM,yBAAyB,SAAS,sBAAsB;AAChE,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,4BAA4B,MAAM;AAAA,MACzC,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACA,MAAI,MAAM,sBAAsB,SAAS,cAAc;AACrD,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,yBAAyB,MAAM;AAAA,MACtC,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACF,CAAC;AAEI,IAAM,wDACX,yCAAyC,WAAW;AAAA,EAClD,QAAQ,iBAAiB,QAAQ,CAAC,CAAC;AAAA,EACnC,gBAAgBA,IAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAClD,CAAC,EAAE,OAAO;AAKL,IAAM,wDAAwDA,IAClE,OAAO;AAAA,EACN,QAAQ;AAAA,EACR,0BAA0B;AAAA,EAC1B,uBAAuB;AAAA,EACvB,oBAAoB;AAAA,EACpB,yBAAyB,kBAAkB,SAAS;AAAA,EACpD,QAAQ;AAAA,EACR,kBAAkBA,IAAE,QAAQ;AAAA,EAC5B,YAAY;AAAA,EACZ,qBAAqB,gBAAgB,SAAS;AAAA,EAC9C,aAAa;AACf,CAAC,EACA,OAAO;AAKH,IAAM,sCAAsCA,IAChD,OAAO;AAAA,EACN,WAAWA,IACR,MAAM,eAAe,EACrB,IAAI,GAAG,EACP,QAAQ,CAAC,CAAC,EACV,YAAY,CAAC,YAAY,YAAY;AACpC,eAAW,QAAQ,CAAC,WAAW,UAAU;AACvC,UAAI,UAAU,SAAS;AACrB,gBAAQ,SAAS;AAAA,UACf,MAAM;AAAA,UACN,MAAM,CAAC,OAAO,MAAM;AAAA,UACpB,SAAS;AAAA,QACX,CAAC;AAAA,IACL,CAAC;AAAA,EACH,CAAC;AAAA,EACH,aAAaA,IAAE,MAAM,wBAAwB,EAAE,IAAI,GAAG,EAAE,QAAQ,CAAC,CAAC;AACpE,CAAC,EACA,OAAO;AAKH,IAAM,uCAAuCA,IACjD,OAAO;AAAA,EACN,gBAAgB;AAAA,EAChB,wBAAwB;AAAA,EACxB,SAAS;AAAA,EACT,iBAAiBA,IAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS;AAAA,EACzD,kCACE,uCAAuC,SAAS;AAAA,EAClD,WAAW,yBAAyB,SAAS;AAAA,EAC7C,OAAOA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AAAA,EACjC,oBAAoBA,IAAE,QAAQ,EAAE,SAAS;AAC3C,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,MACE,MAAM,eAAe,SAAS,iBAC9B,MAAM,uBAAuB,SAAS,eACtC;AACA,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,0BAA0B,MAAM;AAAA,MACvC,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,MACE,MAAM,eAAe,OAAO,MAAM,uBAAuB,MACzD,MAAM,eAAe,cAAc,MAAM,uBAAuB,WAChE;AACA,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,wBAAwB;AAAA,MAC/B,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACF,CAAC;AAEI,IAAM,iCAAiCA,IAC3C,OAAO;AAAA,EACN,gBAAgBA,IAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,EAChD,mBAAmBA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AAAA,EAC7C,eAAe,yBAAyB,SAAS;AAAA,EACjD,wBAAwBA,IAAE,OAAO,EAAE,IAAI,EAAE,YAAY;AAAA,EACrD,+BAA+BA,IAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,CAAC;AAAA,EACvE,QAAQ;AAAA,EACR,sBAAsBA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS;AAAA,EAC3D,YAAYA,IAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,IAAI,GAAG,EAAE,SAAS;AAAA,EACvD,oBAAoB,oCAAoC,SAAS;AAAA,EACjE,QAAQA,IAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,SAAS;AACtD,CAAC,EACA,OAAO;AAKH,IAAM,wCAAwCA,IAClD,OAAO;AAAA,EACN,QAAQA,IAAE,KAAK,CAAC,WAAW,YAAY,YAAY,CAAC,EAAE,QAAQ,SAAS;AAAA,EACvE,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,QAAQ;AACV,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,MAAI,MAAM,WAAW,aAAa,CAAC,MAAM,OAAO,eAAe;AAC7D,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,UAAU,eAAe;AAAA,MAChC,SAAS,GAAG,MAAM,MAAM;AAAA,IAC1B,CAAC;AAAA,EACH;AACA,MAAI,MAAM,WAAW,cAAc,CAAC,MAAM,OAAO,sBAAsB;AACrE,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,UAAU,sBAAsB;AAAA,MACvC,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,MAAI,MAAM,WAAW,cAAc,MAAM,OAAO,sBAAsB;AACpE,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,UAAU,sBAAsB;AAAA,MACvC,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACF,CAAC;AAEI,IAAM,yCAAyCA,IACnD,OAAO;AAAA,EACN,gBAAgBA,IAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,EAChD,oBAAoBA,IAAE,OAAO,EAAE,IAAI,EAAE,YAAY;AAAA,EACjD,YAAYA,IAAE,MAAM,qCAAqC,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAC3E,CAAC,EACA,OAAO;AAKH,IAAM,mCAAmCA,IAC7C,OAAO;AAAA,EACN,WAAW;AAAA,EACX,aAAa,kBAAkB,SAAS;AAAA,EACxC,OAAO;AAAA,EACP,cAAc,mBAAmB,SAAS;AAAA,EAC1C,SAAS,qBAAqB,SAAS;AAAA,EACvC,QAAQA,IAAE,KAAK,CAAC,UAAU,cAAc,WAAW,aAAa,CAAC;AAAA,EACjE,UAAUA,IAAE,OAAOA,IAAE,OAAO,GAAGA,IAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC;AACxD,CAAC,EACA,OAAO;AAEV,IAAM,kCAAkCA,IACrC,OAAO;AAAA,EACN,MAAM;AAAA,EACN,mBAAmB;AAAA,EACnB,UAAUA,IAAE,QAAQ;AAAA,EACpB,UAAUA,IAAE,QAAQ;AACtB,CAAC,EACA,OAAO;AAEH,IAAM,4CAA4CA,IACtD,OAAO;AAAA,EACN,mBAAmB;AAAA,EACnB,UAAU;AACZ,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,MAAI,MAAM,kBAAkB,SAAS,UAAU;AAC7C,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,qBAAqB,MAAM;AAAA,MAClC,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACF,CAAC;AAKI,IAAM,mDAAmDA,IAC7D,OAAO;AAAA,EACN,wBAAwB,yBAAyB,SAAS;AAAA,EAC1D,yBAAyB;AAAA,EACzB,uBAAuB;AAAA,EACvB,qBAAqB;AAAA,EACrB,2BAA2B;AAAA,EAC3B,qBAAqB,kBAAkB,SAAS;AAAA,EAChD,gBAAgBA,IAAE,QAAQ;AAAA,EAC1B,UAAU;AAAA,EACV,OAAO;AAAA,EACP,aAAa;AAAA,EACb,mBAAmBA,IAAE,MAAM,oBAAoB,EAAE,IAAI,CAAC;AAAA,EACtD,cAAcA,IAAE,MAAM,wBAAwB;AAAA,EAC9C,6BAA6BA,IAAE,MAAM,eAAe;AAAA,EACpD,4BAA4BA,IAAE,MAAM,eAAe;AAAA,EACnD,YAAYA,IAAE,MAAM,+BAA+B;AAAA,EACnD,aAAaA,IAAE,MAAM,+BAA+B;AAAA,EACpD,oBAAoBA,IAAE;AAAA,IACpBA,IAAE,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EACA,sBAAsBA,IAAE;AAAA,IACtBA,IACG,OAAO;AAAA,MACN,WAAW;AAAA,MACX,8BAA8B;AAAA,MAC9B,OAAOA,IAAE,MAAMA,IAAE,KAAK,CAAC,QAAQ,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC;AAAA,MAChD,yBAAyBA,IAAE,MAAM,wBAAwB;AAAA,IAC3D,CAAC,EACA,OAAO;AAAA,EACZ;AAAA,EACA,oBAAoBA,IAAE;AAAA,IACpBA,IACG,OAAO;AAAA,MACN,YAAY;AAAA,MACZ,qBAAqBA,IAAE,MAAM,wBAAwB;AAAA,MACrD,yBAAyBA,IAAE,MAAM,wBAAwB;AAAA,IAC3D,CAAC,EACA,OAAO;AAAA,EACZ;AAAA,EACA,gBAAgBA,IAAE;AAAA,IAChBA,IACG,OAAO;AAAA,MACN,MAAMA,IAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC;AAAA,MAC7B,OAAO;AAAA,MACP,SAAS;AAAA,MACT,UAAUA,IAAE,QAAQ;AAAA,MACpB,UAAUA,IAAE,QAAQ;AAAA,IACtB,CAAC,EACA,OAAO;AAAA,EACZ;AAAA,EACA,iBAAiBA,IAAE,MAAM,yCAAyC,EAAE,IAAI,CAAC;AAAA,EACzE,mBAAmB;AACrB,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,QAAM,YAAY,oBAAI,IAAoB;AAC1C,QAAM,gBAAgB,QAAQ,CAAC,OAAO,UAAU;AAC9C,UAAM,MAAM,GAAG,MAAM,kBAAkB,SAAS,IAAI,MAAM,kBAAkB,EAAE,IAAI,MAAM,kBAAkB,QAAQ,IAAI,MAAM,kBAAkB,WAAW;AACzJ,QAAI,UAAU,IAAI,GAAG,GAAG;AACtB,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,mBAAmB,KAAK;AAAA,QAC/B,SACE;AAAA,MACJ,CAAC;AAAA,IACH;AACA,cAAU,IAAI,KAAK,KAAK;AAAA,EAC1B,CAAC;AACD,QAAM,WAAW;AAAA,IACf,MAAM;AAAA,IACN,GAAI,MAAM,sBAAsB,CAAC,MAAM,mBAAmB,IAAI,CAAC;AAAA,IAC/D,GAAG,MAAM,WAAW,IAAI,CAAC,SAAS,KAAK,iBAAiB;AAAA,IACxD,GAAG,MAAM,YAAY,IAAI,CAAC,SAAS,KAAK,iBAAiB;AAAA,IACzD,GAAG,MAAM,qBAAqB;AAAA,MAC5B,CAAC,gBAAgB,YAAY;AAAA,IAC/B;AAAA,EACF;AACA,WAAS,QAAQ,CAAC,cAAc;AAC9B,UAAM,MAAM,GAAG,UAAU,SAAS,IAAI,UAAU,EAAE,IAAI,UAAU,QAAQ,IAAI,UAAU,WAAW;AACjG,QAAI,CAAC,UAAU,IAAI,GAAG,GAAG;AACvB,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,iBAAiB;AAAA,QACxB,SAAS,qCAAqC,UAAU,EAAE;AAAA,MAC5D,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AACH,CAAC;AAKI,IAAM,qCAAqCA,IAC/C,OAAO;AAAA,EACN,UAAU;AAAA,EACV,UAAU;AAAA,EACV,yBAAyB;AAC3B,CAAC,EACA,OAAO;AAEH,IAAM,wCAAwCA,IAClD,OAAO;AAAA,EACN,UAAUA,IAAE,QAAQ,iCAAiC;AAAA,EACrD,eAAeA,IAAE,QAAQ,CAAC;AAAA,EAC1B,WAAW;AAAA,EACX,mBAAmB;AAAA,EACnB,SAASA,IAAE,MAAM,kCAAkC,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,EACnE,mBAAmB;AACrB,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,MACE,MAAM,kBAAkB,SAAS,+BACjC,MAAM,kBAAkB,OAAO,MAAM,aACrC,MAAM,kBAAkB,cAAc,oBACtC,MAAM,kBAAkB,eAAe,UACvC;AACA,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,mBAAmB;AAAA,MAC1B,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACA,QAAM,MAAM,MAAM,QAAQ,IAAI,CAAC,UAAU,MAAM,SAAS,EAAE;AAC1D,MAAI,IAAI,IAAI,GAAG,EAAE,SAAS,IAAI,QAAQ;AACpC,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,SAAS;AAAA,MAChB,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,MACE,IAAI,KAAK,CAAC,IAAI,UAAU,QAAQ,KAAK,IAAI,QAAQ,CAAC,EAAE,cAAc,EAAE,IAAI,CAAC,GACzE;AACA,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,SAAS;AAAA,MAChB,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACF,CAAC;AAaI,IAAM,iDAAiDA,IAC3D,OAAO;AAAA,EACN,UAAU;AAAA,EACV,UAAU;AAAA,EACV,yBAAyB;AAAA,EACzB,yBAAyBA,IAAE,MAAM,wBAAwB,EAAE,QAAQ,CAAC,CAAC;AACvE,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,MAAI,MAAM,SAAS,2BAA2B,MAAM,wBAAwB,wBAAwB;AAClG,YAAQ,SAAS,EAAE,MAAM,UAAU,MAAM,CAAC,2BAA2B,wBAAwB,GAAG,SAAS,0DAA0D,CAAC;AAAA,EACtK;AACA,QAAM,YAAY,MAAM,SAAS;AACjC,QAAM,eAAe,MAAM;AAE3B,MAAI,cAAc,kBAAkB;AAClC,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,YAAY,WAAW;AAAA,MAC9B,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACA,MACE,aAAa,sBAAsB,SAAS,gBAC5C,aAAa,sBAAsB,OAAO,MAAM,SAAS,MACzD,aAAa,sBAAsB,cAAc,aACjD,OAAO,aAAa,sBAAsB,QAAQ,MAChD,OAAO,MAAM,SAAS,iBAAiB,KACzC,aAAa,sBAAsB,eAAe,UAClD;AACA,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,2BAA2B,uBAAuB;AAAA,MACzD,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACA,MACE,aAAa,oBAAoB,SAAS,mBAC1C,aAAa,oBAAoB,OAAO,MAAM,SAAS,cACvD,aAAa,oBAAoB,cAAc,aAC/C,MAAM,SAAS,cAAc,aAC7B,OAAO,aAAa,oBAAoB,QAAQ,MAC9C,OAAO,MAAM,SAAS,eAAe,KACvC,aAAa,oBAAoB,eAAe,UAChD;AACA,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,2BAA2B,qBAAqB;AAAA,MACvD,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACA,MACE,MAAM,SAAS,cAAc,SAAS,gBACtC,MAAM,SAAS,cAAc,OAAO,MAAM,SAAS,MACnD,MAAM,SAAS,cAAc,cAAc,aAC3C,OAAO,MAAM,SAAS,cAAc,OAAO,MACzC,OAAO,MAAM,SAAS,iBAAiB,GACzC;AACA,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,YAAY,eAAe;AAAA,MAClC,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,QAAM,0BACJ,MAAM,SAAS,QAAQ,iBAAiB;AAAA,IACtC,CAAC,YACC,QAAQ,YAAY,SAAS,mBAC7B,QAAQ,YAAY,OAAO,MAAM,SAAS,cAC1C,QAAQ,YAAY,cAAc,aAClC,OAAO,QAAQ,YAAY,OAAO,MAChC,OAAO,MAAM,SAAS,eAAe;AAAA,EAC3C;AACF,MAAI,CAAC,yBAAyB;AAC5B,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,YAAY,WAAW,kBAAkB;AAAA,MAChD,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACA,MACE,aAAa,wBAAwB,SACnC,qCACF,aAAa,wBAAwB,cAAc,aACnD,aAAa,wBAAwB,eAAe,YACpD,aAAa,wBAAwB,gBACnC,aAAa,mBACf;AACA,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,2BAA2B,yBAAyB;AAAA,MAC3D,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACA,eAAa,gBAAgB,QAAQ,CAAC,QAAQ,UAAU;AACtD,QACE,OAAO,kBAAkB,cAAc,aACvC,OAAO,kBAAkB,eAAe,UACxC;AACA,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,2BAA2B,mBAAmB,KAAK;AAAA,QAC1D,SACE;AAAA,MACJ,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AACD,QAAM,cAAc,MAAM;AAC1B,MACE,IAAI,IAAI,WAAW,EAAE,SAAS,YAAY,UAC1C,YAAY;AAAA,IACV,CAAC,YAAY,UACX,QAAQ,KAAK,YAAY,QAAQ,CAAC,EAAG,cAAc,UAAU,IAAI;AAAA,EACrE,GACA;AACA,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,yBAAyB;AAAA,MAChC,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACF,CAAC;AAKI,IAAM,6CACX,iCAAiC,OAAO;AAAA,EACtC,cAAc;AAChB,CAAC,EAAE,OAAO;AAEL,IAAM,8CAA8CA,IACxD,OAAO;AAAA,EACN,qBAAqB;AAAA,EACrB,cAAc;AAAA,EACd,OAAO;AAAA,EACP,aAAa;AAAA,EACb,mBAAmBA,IAAE,MAAM,oBAAoB,EAAE,IAAI,CAAC;AAAA,EACtD,8BAA8BA,IAC3B,MAAM,wBAAwB,EAC9B,IAAI,CAAC,EACL,IAAI,GAAG,EACP,SAAS;AAAA,EACZ,UAAUA,IAAE,MAAM;AAAA,IAChB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAAA,EACD,mBAAmB;AACrB,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,QAAM,WACJ,MAAM,SAAS,aAAa,SACxB,SACA,MAAM,SAAS,aAAa,eAC1B,eACA;AACR,MAAI,MAAM,iBAAiB;AACzB,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,cAAc;AAAA,MACrB,SAAS;AAAA,IACX,CAAC;AACH,MAAI,MAAM,oBAAoB,SAAS;AACrC,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,uBAAuB,MAAM;AAAA,MACpC,SACE;AAAA,IACJ,CAAC;AACH,MAAI,MAAM,gCAAgC,MAAM,iBAAiB,QAAQ;AACvE,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,8BAA8B;AAAA,MACrC,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACA,MACE,MAAM,gCACN,IAAI,IAAI,MAAM,4BAA4B,EAAE,SAC1C,MAAM,6BAA6B,QACrC;AACA,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,8BAA8B;AAAA,MACrC,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACF,CAAC;AAKI,IAAM,0CAA0CA,IACpD,OAAO;AAAA,EACN,uBAAuB;AAAA,EACvB,YAAY;AAAA,EACZ,mBAAmB;AACrB,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,MAAI,MAAM,sBAAsB,SAAS,eAAe;AACtD,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,yBAAyB,MAAM;AAAA,MACtC,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,MAAI,MAAM,sBAAsB,OAAO,MAAM,WAAW,cAAc;AACpE,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,yBAAyB,IAAI;AAAA,MACpC,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACF,CAAC;AAKI,IAAM,yCAAyCA,IACnD,OAAO;AAAA,EACN,UAAUA,IAAE,QAAQ,kBAAkB;AAAA,EACtC,eAAeA,IAAE,QAAQ,CAAC;AAAA,EAC1B,2BAA2B;AAAA,EAC3B,yBAAyB;AAAA,EACzB,cAAcA,IAAE,MAAM,wBAAwB,EAAE,IAAI,CAAC;AAAA,EACrD,mBAAmBA,IAAE,MAAM,iBAAiB,EAAE,IAAI,CAAC;AAAA,EACnD,eAAeA,IAAE,MAAM,mCAAmC,EAAE,IAAI,CAAC;AACnE,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,MAAI,MAAM,0BAA0B,SAAS;AAC3C,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,6BAA6B,MAAM;AAAA,MAC1C,SAAS;AAAA,IACX,CAAC;AACH,MAAI,MAAM,wBAAwB,SAAS;AACzC,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,2BAA2B,MAAM;AAAA,MACxC,SAAS;AAAA,IACX,CAAC;AACH,QAAM,kBAAkB,QAAQ,CAAC,WAAW,UAAU;AACpD,QAAI,UAAU,SAAS;AACrB,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,qBAAqB,OAAO,MAAM;AAAA,QACzC,SAAS;AAAA,MACX,CAAC;AAAA,EACL,CAAC;AACD,QAAM,eAAe,oBAAI,IAAY;AACrC,QAAM,cAAc,QAAQ,CAAC,OAAO,UAAU;AAC5C,QAAI,aAAa,IAAI,MAAM,OAAO;AAChC,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,iBAAiB,KAAK;AAAA,QAC7B,SAAS,0CAA0C,MAAM,OAAO;AAAA,MAClE,CAAC;AACH,iBAAa,IAAI,MAAM,OAAO;AAAA,EAChC,CAAC;AACH,CAAC;AAEI,IAAM,gDAAgDA,IAC1D,OAAO;AAAA,EACN,UAAUA,IAAE,QAAQ,yBAAyB;AAAA,EAC7C,eAAeA,IAAE,QAAQ,CAAC;AAAA,EAC1B,cAAcA,IACX,MAAMA,IAAE,KAAK,CAAC,UAAU,QAAQ,WAAW,QAAQ,SAAS,CAAC,CAAC,EAC9D,IAAI,CAAC;AAAA,EACR,2BAA2B;AAC7B,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,MAAI,MAAM,0BAA0B,SAAS;AAC3C,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,6BAA6B,MAAM;AAAA,MAC1C,SAAS;AAAA,IACX,CAAC;AACL,CAAC;AAEI,IAAM,+CAA+CA,IACzD,OAAO;AAAA,EACN,UAAUA,IAAE,QAAQ,wBAAwB;AAAA,EAC5C,eAAeA,IAAE,QAAQ,CAAC;AAAA,EAC1B,eAAe;AAAA,EACf,OAAO;AAAA,EACP,QAAQA,IAAE,QAAQ;AACpB,CAAC,EACA,OAAO;AAEH,IAAM,+CAA+CA,IACzD,OAAO;AAAA,EACN,qBAAqB;AAAA,EACrB,cAAcA,IAAE,KAAK;AAAA,IACnB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAAA,EACD,mBAAmBA,IAAE,MAAM,oBAAoB,EAAE,IAAI,CAAC;AAAA,EACtD,cAAc,mBAAmB,SAAS;AAAA,EAC1C,mBAAmB,kBAAkB,SAAS;AAAA,EAC9C,UAAU;AAAA,EACV,mBAAmB;AACrB,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,MAAI,MAAM,oBAAoB,SAAS,MAAM,cAAc;AACzD,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,uBAAuB,MAAM;AAAA,MACpC,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,MAAI,MAAM,iBAAiB,SAAS;AAClC,UAAM,SAAS,uCAAuC;AAAA,MACpD,MAAM;AAAA,IACR;AACA,QAAI,CAAC,OAAO;AACV,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,UAAU;AAAA,QACjB,SAAS,8BAA8B,OAAO,MAAM,OAAO;AAAA,MAC7D,CAAC;AACH,QAAI,OAAO,SAAS;AAClB,YAAM,mBAAmB,IAAI;AAAA,QAC3B,OAAO,KAAK,cAAc,IAAI,CAAC,UAAU,MAAM,OAAO;AAAA,MACxD;AACA,YAAM,oBAAoB,IAAI,IAAI,MAAM,iBAAiB;AACzD,YAAM,kBAAkB,QAAQ,CAAC,YAAY;AAC3C,YAAI,CAAC,iBAAiB,IAAI,OAAO;AAC/B,kBAAQ,SAAS;AAAA,YACf,MAAM;AAAA,YACN,MAAM,CAAC,YAAY,eAAe;AAAA,YAClC,SAAS,iDAAiD,OAAO;AAAA,UACnE,CAAC;AAAA,MACL,CAAC;AACD,aAAO,KAAK,cAAc,QAAQ,CAAC,UAAU;AAC3C,YAAI,CAAC,kBAAkB,IAAI,MAAM,OAAO;AACtC,kBAAQ,SAAS;AAAA,YACf,MAAM;AAAA,YACN,MAAM,CAAC,YAAY,eAAe;AAAA,YAClC,SAAS,6CAA6C,MAAM,OAAO;AAAA,UACrE,CAAC;AAAA,MACL,CAAC;AAAA,IACH;AAAA,EACF;AACA,MAAI,MAAM,iBAAiB,iBAAiB;AAC1C,UAAM,SAAS,8CAA8C;AAAA,MAC3D,MAAM;AAAA,IACR;AACA,QAAI,CAAC,OAAO;AACV,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,UAAU;AAAA,QACjB,SAAS,sCAAsC,OAAO,MAAM,OAAO;AAAA,MACrE,CAAC;AAAA,EACL;AACA,MAAI,MAAM,iBAAiB,eAAe;AACxC,UAAM,SAAS,6CAA6C;AAAA,MAC1D,MAAM;AAAA,IACR;AACA,QAAI,CAAC,OAAO;AACV,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,UAAU;AAAA,QACjB,SAAS,oCAAoC,OAAO,MAAM,OAAO;AAAA,MACnE,CAAC;AACH,QACE,OAAO,WACP,OAAO,KAAK,kBAAkB,MAAM,oBAAoB,IACxD;AACA,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,YAAY,eAAe;AAAA,QAClC,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAAA,EACF;AACF,CAAC;AAKI,IAAM,6CAA6CA,IACvD,OAAO;AAAA,EACN,MAAMA,IAAE,KAAK;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAAA,EACD,qBAAqB;AAAA,EACrB,mBAAmBA,IAAE,MAAM,oBAAoB,EAAE,IAAI,CAAC;AACxD,CAAC,EACA,OAAO;AAEH,IAAM,qDAAqDA,IAC/D,OAAO;AAAA,EACN,uBAAuB;AAAA,EACvB,YAAY;AACd,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,MAAI,MAAM,sBAAsB,SAAS,2BAA2B;AAClE,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,yBAAyB,MAAM;AAAA,MACtC,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACA,MAAI,MAAM,sBAAsB,OAAO,MAAM,WAAW,SAAS;AAC/D,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,yBAAyB,IAAI;AAAA,MACpC,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACF,CAAC;AAEI,IAAM,uDAAuDA,IACjE,OAAO;AAAA,EACN,uBAAuB;AAAA,EACvB,YAAY;AACd,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,MAAI,MAAM,sBAAsB,SAAS,kBAAkB;AACzD,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,yBAAyB,MAAM;AAAA,MACtC,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACA,MAAI,MAAM,sBAAsB,OAAO,MAAM,WAAW,aAAa;AACnE,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,yBAAyB,IAAI;AAAA,MACpC,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACF,CAAC;AAEI,IAAM,gDAAgDA,IAC1D,OAAO;AAAA,EACN,uBAAuB;AAAA,EACvB,YAAY;AACd,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,MAAI,MAAM,sBAAsB,SAAS,UAAU;AACjD,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,yBAAyB,MAAM;AAAA,MACtC,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,MAAI,MAAM,sBAAsB,OAAO,MAAM,WAAW,UAAU;AAChE,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,yBAAyB,IAAI;AAAA,MACpC,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,MAAI,MAAM,sBAAsB,cAAc,MAAM,WAAW,WAAW;AACxE,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,yBAAyB,WAAW;AAAA,MAC3C,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACF,CAAC;AAGI,IAAM,2CAA2CA,IACrD,OAAO;AAAA,EACN,UAAUA,IAAE,QAAQ,oCAAoC;AAAA,EACxD,eAAeA,IAAE,QAAQ,CAAC;AAAA,EAC1B,eAAe;AAAA,EACf,iBAAiBA,IAAE,MAAM,2CAA2C;AAAA,EACpE,aAAaA,IAAE,MAAM,uCAAuC;AAAA,EAC5D,uBAAuBA,IAAE;AAAA,IACvB;AAAA,EACF;AAAA,EACA,iBAAiBA,IAAE,MAAM,0CAA0C;AAAA,EACnE,wBAAwBA,IACrB,MAAM,kDAAkD,EACxD,QAAQ,CAAC,CAAC;AAAA,EACb,0BAA0BA,IACvB,MAAM,oDAAoD,EAC1D,QAAQ,CAAC,CAAC;AAAA,EACb,mBAAmBA,IAChB,MAAM,6CAA6C,EACnD,QAAQ,CAAC,CAAC;AAAA,EACb,yBAAyBA,IACtB,MAAM,8CAA8C,EACpD,QAAQ,CAAC,CAAC;AACf,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,QAAM,aAAa,CAAC,UAClB,MAAM,KAAK,CAAC,MAAM,UAAU,MAAM,QAAQ,IAAI,MAAM,KAAK;AAC3D,QAAM,oBAAoB;AAAA,IACxB,MAAM,gBAAgB;AAAA,MACpB,CAAC,SACC,GAAG,KAAK,oBAAoB,EAAE,IAAI,KAAK,oBAAoB,QAAQ;AAAA,IACvE;AAAA,EACF;AACA,MAAI;AACF,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,iBAAiB;AAAA,MACxB,SAAS,6BAA6B,iBAAiB;AAAA,IACzD,CAAC;AACH,QAAM,2BAA2B;AAAA,IAC/B,MAAM,gBAAgB;AAAA,MAAQ,CAAC,UAC5B,KAAK,gCAAgC,CAAC,GAAG;AAAA,QAAQ,CAAC,WACjD,KAAK,kBAAkB,IAAI,CAAC,YAAY,GAAG,OAAO,IAAI,MAAM,EAAE;AAAA,MAChE;AAAA,IACF;AAAA,EACF;AACA,MAAI;AACF,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,iBAAiB;AAAA,MACxB,SAAS,0CAA0C,wBAAwB;AAAA,IAC7E,CAAC;AACH,QAAM,sBAAsB;AAAA,IAC1B,MAAM,YAAY;AAAA,MAChB,CAAC,SACC,GAAG,KAAK,sBAAsB,EAAE,IAAI,KAAK,sBAAsB,QAAQ;AAAA,IAC3E;AAAA,EACF;AACA,MAAI;AACF,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,aAAa;AAAA,MACpB,SAAS,yBAAyB,mBAAmB;AAAA,IACvD,CAAC;AACH,QAAM,oBAAoB;AAAA,IACxB,MAAM,sBAAsB;AAAA,MAC1B,CAAC,SACC,GAAG,KAAK,oBAAoB,IAAI,IAAI,KAAK,oBAAoB,EAAE,IAAI,KAAK,oBAAoB,QAAQ;AAAA,IACxG;AAAA,EACF;AACA,MAAI;AACF,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,uBAAuB;AAAA,MAC9B,SAAS,8BAA8B,iBAAiB;AAAA,IAC1D,CAAC;AACH,QAAM,2BAA2B;AAAA,IAC/B,MAAM,uBAAuB;AAAA,MAC3B,CAAC,SACC,GAAG,KAAK,sBAAsB,EAAE,IAAI,KAAK,sBAAsB,QAAQ;AAAA,IAC3E;AAAA,EACF;AACA,MAAI;AACF,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,wBAAwB;AAAA,MAC/B,SAAS,qCAAqC,wBAAwB;AAAA,IACxE,CAAC;AACH,QAAM,6BAA6B;AAAA,IACjC,MAAM,yBAAyB;AAAA,MAC7B,CAAC,SACC,GAAG,KAAK,sBAAsB,EAAE,IAAI,KAAK,sBAAsB,QAAQ;AAAA,IAC3E;AAAA,EACF;AACA,MAAI;AACF,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,0BAA0B;AAAA,MACjC,SAAS,uCAAuC,0BAA0B;AAAA,IAC5E,CAAC;AACH,QAAM,4BAA4B;AAAA,IAChC,MAAM,kBAAkB;AAAA,MACtB,CAAC,SACC,GAAG,KAAK,sBAAsB,EAAE,IAAI,KAAK,sBAAsB,QAAQ;AAAA,IAC3E;AAAA,EACF;AACA,MAAI;AACF,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,mBAAmB;AAAA,MAC1B,SAAS,+BAA+B,yBAAyB;AAAA,IACnE,CAAC;AACH,QAAM,kCAAkC;AAAA,IACtC,MAAM,wBAAwB;AAAA,MAC5B,CAAC,SACC,GAAG,KAAK,wBAAwB,sBAAsB,EAAE,IAAI,KAAK,wBAAwB,sBAAsB,QAAQ;AAAA,IAC3H;AAAA,EACF;AACA,MAAI;AACF,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,yBAAyB;AAAA,MAChC,SAAS,6CAA6C,+BAA+B;AAAA,IACvF,CAAC;AACH,QAAM,gBAAgB,QAAQ,CAAC,WAAW,UAAU;AAClD,UAAM,eAAe;AAAA,MACnB,YAAY;AAAA,MACZ,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,aAAa;AAAA,MACb,eAAe;AAAA,MACf,QAAQ;AAAA,MACR,aAAa;AAAA,IACf,EAAE,UAAU,IAAI;AAChB,QAAI,UAAU,oBAAoB,SAAS,cAAc;AACvD,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,mBAAmB,OAAO,uBAAuB,MAAM;AAAA,QAC9D,SAAS,WAAW,UAAU,IAAI,6BAA6B,YAAY;AAAA,MAC7E,CAAC;AAAA,IACH;AACA,QACE,CAAC,MAAM,sBAAsB;AAAA,MAC3B,CAAC,iBACC,aAAa,oBAAoB,SAC/B,UAAU,oBAAoB,QAChC,aAAa,oBAAoB,OAC/B,UAAU,oBAAoB,MAChC,aAAa,oBAAoB,aAC/B,UAAU,oBAAoB,YAChC,aAAa,oBAAoB,gBAC/B,UAAU,oBAAoB;AAAA,IACpC,GACA;AACA,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,mBAAmB,OAAO,qBAAqB;AAAA,QACtD,SACE;AAAA,MACJ,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AACH,CAAC;AAcI,IAAM,wCACX,iCAAiC,OAAO;AAAA,EACtC,UAAU;AACZ,CAAC,EAAE,OAAO;AAEL,IAAM,oCACX,iCAAiC,OAAO;AAAA,EACtC,cAAc;AAChB,CAAC,EAAE,OAAO;AAEL,IAAM,yCACX,iCAAiC,OAAO;AAAA,EACtC,cAAc;AAChB,CAAC,EAAE,OAAO;AAEL,IAAM,0CACX,iCAAiC,OAAO;AAAA,EACtC,iBAAiBA,IACd,OAAO;AAAA,IACN,MAAMA,IAAE,KAAK,CAAC,YAAY,QAAQ,SAAS,QAAQ,CAAC;AAAA,IACpD,sBAAsBA,IAAE,MAAM,iBAAiB;AAAA,IAC/C,yBAAyBA,IAAE,MAAM,wBAAwB;AAAA,IACzD,eAAeA,IAAE,OAAOA,IAAE,OAAO,GAAGA,IAAE,QAAQ,CAAC;AAAA,EACjD,CAAC,EACA,OAAO;AAAA,EACV,mBAAmBA,IAChB,OAAO;AAAA,IACN,SAASA,IAAE,QAAQ;AAAA,IACnB,wBAAwBA,IAAE,MAAM,wBAAwB;AAAA,IACxD,YAAYA,IAAE,MAAM,wBAAwB;AAAA,EAC9C,CAAC,EACA,OAAO;AACZ,CAAC,EAAE,OAAO;AAEL,IAAM,yCAAyCA,IACnD,OAAO;AAAA,EACN,wBAAwB,yBAAyB,SAAS;AAAA,EAC1D,iBAAiB;AAAA,EACjB,mBAAmB;AAAA,EACnB,qBAAqB;AAAA,EACrB,wBAAwB;AAAA,EACxB,MAAMA,IAAE,KAAK;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAAA,EACD,MAAM;AAAA,EACN,oBAAoB;AAAA,EACpB,mBAAmBA,IAAE,MAAM,oBAAoB,EAAE,IAAI,CAAC;AAAA,EACtD,QAAQA,IAAE,KAAK,CAAC,UAAU,cAAc,WAAW,aAAa,CAAC;AAAA,EACjE,uBAAuB;AACzB,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,MACE,MAAM,kBAAkB,OAAO,MAAM,gBAAgB,MACrD,MAAM,kBAAkB,SAAS,MAAM,gBAAgB,MACvD;AACA,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,mBAAmB;AAAA,MAC1B,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,MAAI,MAAM,oBAAoB,SAAS,iBAAiB;AACtD,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,uBAAuB,MAAM;AAAA,MACpC,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,MAAI,MAAM,uBAAuB,SAAS,UAAU;AAClD,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,0BAA0B,MAAM;AAAA,MACvC,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACF,CAAC;AAKI,IAAM,gCAAgCA,IAC1C,OAAO;AAAA,EACN,YAAY;AAAA,EACZ,qBAAqB,kBAAkB,SAAS;AAAA,EAChD,mBAAmB,kBAAkB,SAAS;AAAA,EAC9C,UAAUA,IACP,OAAO;AAAA,IACN,MAAM;AAAA,IACN,aAAa,eAAe,SAAS;AAAA,IACrC,MAAMA,IAAE,MAAM,wBAAwB,EAAE,QAAQ,CAAC,CAAC;AAAA,EACpD,CAAC,EACA,OAAO;AAAA,EACV,SAAS;AAAA,EACT,cAAcA,IAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EAChD,WAAW,yBAAyB,SAAS;AAAA,EAC7C,gBAAgBA,IAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAClD,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,MACE,OAAO,QAAQ,MAAM,mBAAmB,CAAC,IACvC,OAAO,QAAQ,MAAM,iBAAiB,CAAC,MACzC,GACA;AACA,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,qBAAqB;AAAA,MAC5B,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACF,CAAC;AAKI,IAAM,4BAA4BA,IAAE,MAAM;AAAA,EAC/C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAEM,IAAM,mCAAmCA,IAC7C,OAAO;AAAA,EACN,UAAU;AAAA,EACV,iBAAiBA,IAAE,OAAO,EAAE,IAAI,EAAE,YAAY;AAAA,EAC9C,gBAAgBA,IAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAClD,CAAC,EACA,OAAO;AAKH,IAAM,gCAAgCA,IAC1C,OAAO;AAAA,EACN,iBAAiBA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AAAA,EAC3C,gBAAgBA,IAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,EAChD,QAAQA,IAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,IAAI;AAC3C,CAAC,EACA,OAAO;AAKH,IAAM,yCAAyCA,IACnD,OAAO;AAAA,EACN,gBAAgB;AAAA,EAChB,wBAAwB;AAAA,EACxB,SAAS;AAAA,EACT,iBAAiBA,IAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS;AAAA,EACzD,kCACE,uCAAuC,SAAS;AAAA,EAClD,WAAW,yBAAyB,SAAS;AAAA,EAC7C,OAAOA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AAAA,EACjC,oBAAoBA,IAAE,QAAQ,EAAE,SAAS;AAAA,EACzC,eAAe,yBAAyB,SAAS;AAAA,EACjD,wBAAwBA,IAAE,OAAO,EAAE,IAAI,EAAE,YAAY;AACvD,CAAC,EACA,OAAO;AAEH,IAAM,qCACX,iCAAiC,OAAO;AAAA,EACtC,aAAa;AAAA,EACb,cAAc;AAChB,CAAC,EAAE,OAAO;AAEL,IAAM,qCAAqCA,IAC/C,OAAO;AAAA,EACN,SAASA,IAAE,QAAQ;AAAA,EACnB,eAAeA,IAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,IAAK,EAAE,SAAS;AAAA,EAC5D,UAAUA,IAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,EACzC,UAAUA,IAAE,OAAO,EAAE,IAAI,EAAE,YAAY;AAAA,EACvC,OAAOA,IAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS;AACjD,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,MAAI,MAAM,WAAW,MAAM;AACzB,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,UAAU;AAAA,MACjB,SAAS;AAAA,IACX,CAAC;AACH,MAAI,MAAM,YAAY,QAAQ,MAAM,aAAa;AAC/C,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,eAAe;AAAA,MACtB,SAAS;AAAA,IACX,CAAC;AACL,CAAC;AAEI,IAAM,uCAAuCA,IAAE,KAAK;AAAA,EACzD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAED,IAAM,sBAAsB,CAC1B,YACA,eAEAA,IACG,OAAO;AAAA,EACN,YAAYA,IAAE,QAAQ,UAAU;AAAA,EAChC,OAAOA,IAAE,MAAM,UAAU;AAAA,EACzB,UAAU;AACZ,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,MAAI,MAAM,SAAS,aAAa,MAAM,MAAM;AAC1C,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,YAAY,UAAU;AAAA,MAC7B,SAAS;AAAA,IACX,CAAC;AACL,CAAC;AAEE,IAAM,uCAAuCA,IAAE;AAAA,EACpD;AAAA,EACA;AAAA,IACE;AAAA,MACE;AAAA,MACA;AAAA,IACF;AAAA,IACA,oBAAoB,YAAY,uCAAuC;AAAA,IACvE,oBAAoB,QAAQ,uCAAuC;AAAA,IACnE,oBAAoB,UAAU,uCAAuC;AAAA,IACrE,oBAAoB,UAAU,gCAAgC;AAAA,IAC9D,oBAAoB,oBAAoB,gCAAgC;AAAA,IACxE;AAAA,MACE;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACF;AAEO,IAAM,8CAA8CA,IACxD,OAAO;AAAA,EACN,cAAc,8BAA8B,SAAS;AAAA,EACrD,YAAY,yBAAyB,SAAS;AAAA,EAC9C,SAAS,qBAAqB,SAAS;AAAA,EACvC,WAAW,yBAAyB,SAAS;AAAA,EAC7C,QAAQA,IAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,SAAS;AAAA,EACnD,UAAUA,IAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,QAAQ,EAAE;AAAA,EACrD,WAAWA,IAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,IAAK,EAAE,SAAS;AAC1D,CAAC,EACA,OAAO;AAEH,IAAM,4CAA4CA,IACtD,OAAO;AAAA,EACN,YAAY;AAAA,EACZ,SAAS,qBAAqB,SAAS;AAAA,EACvC,QAAQA,IAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,SAAS;AAAA,EACnD,UAAUA,IAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,QAAQ,EAAE;AAAA,EACrD,WAAWA,IAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,IAAK,EAAE,SAAS;AAC1D,CAAC,EACA,OAAO;AAkBV,IAAM,uCAAuCA,IAC1C,OAAO;AAAA,EACN,cAAcA,IAAE,QAAQ,MAAM;AAAA,EAC9B,OAAO;AAAA,EACP,mBAAmBA,IAAE,MAAM,oBAAoB,EAAE,IAAI,CAAC;AAAA,EACtD,aAAaA,IAAE,MAAM,gBAAgB,EAAE,IAAI,CAAC;AAAA,EAC5C,WAAWA,IAAE,KAAK,CAAC,UAAU,cAAc,SAAS,CAAC;AAAA,EACrD,cAAc;AAAA,EACd,kBAAkB;AACpB,CAAC,EACA,OAAO;AAEV,IAAM,6CAA6CA,IAChD,OAAO;AAAA,EACN,cAAcA,IAAE,QAAQ,YAAY;AAAA,EACpC,OAAO;AAAA,EACP,mBAAmBA,IAAE,MAAM,oBAAoB,EAAE,IAAI,CAAC;AAAA,EACtD,YAAYA,IAAE,MAAM,wBAAwB,EAAE,IAAI,CAAC;AAAA,EACnD,WAAWA,IAAE,OAAO,EAAE,IAAI,EAAE,YAAY;AAAA,EACxC,WAAWA,IAAE,KAAK,CAAC,UAAU,cAAc,SAAS,CAAC;AAAA,EACrD,kBAAkB;AACpB,CAAC,EACA,OAAO;AAEV,IAAM,4CAA4CA,IAC/C,OAAO;AAAA,EACN,cAAcA,IAAE,QAAQ,WAAW;AAAA,EACnC,OAAO;AAAA,EACP,SAASA,IAAE,KAAK,CAAC,YAAY,UAAU,CAAC;AAAA,EACxC,mBAAmBA,IAAE,MAAM,oBAAoB,EAAE,IAAI,CAAC;AAAA,EACtD,aAAaA,IAAE,MAAM,gBAAgB,EAAE,IAAI,CAAC;AAAA,EAC5C,QAAQA,IACL,OAAO;AAAA,IACN,2BAA2B;AAAA,IAC3B,yBAAyB;AAAA,IACzB,yBAAyB;AAAA,EAC3B,CAAC,EACA,OAAO;AAAA,EACV,eAAeA,IAAE,OAAO,EAAE,IAAI,EAAE,YAAY;AAAA,EAC5C,WAAWA,IAAE,KAAK,CAAC,UAAU,cAAc,SAAS,CAAC;AAAA,EACrD,cAAc;AAAA,EACd,kBAAkB;AACpB,CAAC,EACA,OAAO;AAEH,IAAM,mCAAmCA,IAAE;AAAA,EAChD;AAAA,EACA;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAEA,IAAM,qCAAqC,CACzC,UACW,KAAK,UAAU,KAAK;AAEjC,IAAM,0CAA0C;AAAA,EAC9C,MAAM;AAAA,EACN,YAAY;AAAA,EACZ,WAAW;AACb;AAEA,IAAM,uCAAuC;AAAA,EAC3C,MAAM;AAAA,EACN,YAAY;AAAA,EACZ,WAAW;AACb;AAEO,IAAM,4CAA4CA,IACtD,OAAO;AAAA,EACN,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,iBAAiB;AAAA,EACjB,WAAWA,IAAE,KAAK,CAAC,UAAU,cAAc,SAAS,CAAC;AAAA,EACrD,kBAAkB;AAAA,EAClB,2BAA2BA,IAAE,MAAM,iBAAiB;AAAA,EACpD,YAAYA,IAAE,MAAM,wBAAwB;AAAA,EAC5C,WAAWA,IAAE,OAAO,EAAE,SAAS;AAAA,EAC/B,UAAU;AAAA,EACV,iBAAiBA,IAAE,MAAM,sCAAsC;AAAA,EAC/D,mBAAmBA,IAAE;AAAA,IACnBA,IACG,OAAO;AAAA,MACN,oBAAoB;AAAA,MACpB,uBAAuB;AAAA,MACvB,gBAAgB;AAAA,MAChB,SAAS;AAAA,MACT,WAAWA,IAAE,OAAO,EAAE,SAAS;AAAA,MAC/B,WAAW,yBAAyB,SAAS;AAAA,MAC7C,OAAOA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AAAA,MACjC,oBAAoBA,IAAE,QAAQ,EAAE,SAAS;AAAA,IAC3C,CAAC,EACA,OAAO;AAAA,EACZ;AACF,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,QAAM,yBACJ,wCAAwC,MAAM,YAAY;AAC5D,QAAM,sBACJ,qCAAqC,MAAM,YAAY;AACzD,QAAM,sBAAsB;AAAA,IAC1B,MAAM;AAAA,EACR;AACA,QAAM,kBAAkB,oBAAI,IAAY;AAExC,QAAM,kBAAkB,QAAQ,CAAC,WAAW,UAAU;AACpD,UAAM,cAAc;AAAA,MAClB;AAAA,MACA;AAAA,MACA;AAAA,IACF;AACA,UAAM,iBAAiB;AAAA,MACrB;AAAA,MACA;AAAA,MACA;AAAA,IACF;AACA,QAAI,UAAU,mBAAmB,SAAS,qBAAqB;AAC7D,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,GAAG,aAAa,MAAM;AAAA,QAC7B,SAAS,oCAAoC,mBAAmB;AAAA,MAClE,CAAC;AAAA,IACH;AACA,QACE,UAAU,mBAAmB,eAAe,YAC5C;AAAA,MACE,UAAU,mBAAmB;AAAA,IAC/B,MAAM,qBACN;AACA,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,GAAG,aAAa,aAAa;AAAA,QACpC,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AACA,UAAM,kBAAkB,GAAG,UAAU,mBAAmB,IAAI,IAAI,UAAU,mBAAmB,EAAE,IAAI,UAAU,mBAAmB,QAAQ;AACxI,QAAI,gBAAgB,IAAI,eAAe,GAAG;AACxC,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,GAAG,WAAW;AAAA,QACrB,SACE;AAAA,MACJ,CAAC;AAAA,IACH;AACA,oBAAgB,IAAI,eAAe;AAEnC,QAAI,UAAU,sBAAsB,SAAS,wBAAwB;AACnE,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,GAAG,gBAAgB,MAAM;AAAA,QAChC,SAAS,+CAA+C,sBAAsB;AAAA,MAChF,CAAC;AAAA,IACH;AACA,QAAI,UAAU,sBAAsB,OAAO,MAAM,YAAY;AAC3D,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,GAAG,gBAAgB,IAAI;AAAA,QAC9B,SACE;AAAA,MACJ,CAAC;AAAA,IACH;AACA,QACE,UAAU,sBAAsB,eAAe,YAC/C;AAAA,MACE,UAAU,sBAAsB;AAAA,IAClC,MAAM,qBACN;AACA,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,GAAG,gBAAgB,aAAa;AAAA,QACvC,SACE;AAAA,MACJ,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AACH,CAAC;AAEI,IAAM,yCAAyCA,IACnD,OAAO;AAAA,EACN,OAAOA,IAAE,MAAM,yCAAyC;AAAA,EACxD,UAAU;AACZ,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,MAAI,MAAM,SAAS,aAAa,MAAM,MAAM;AAC1C,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,YAAY,UAAU;AAAA,MAC7B,SAAS;AAAA,IACX,CAAC;AACL,CAAC;AAKI,IAAM,yCAAyCA,IACnD,OAAO;AAAA,EACN,aAAa;AAAA,EACb,SAASA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AAAA,EACnC,WAAWA,IAAE,KAAK,CAAC,UAAU,cAAc,SAAS,CAAC;AAAA,EACrD,MAAM;AAAA,EACN,UAAU;AAAA,EACV,QAAQA,IAAE,KAAK,CAAC,QAAQ,aAAa,UAAU,CAAC;AAAA,EAChD,QAAQA,IAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EAC1C,YAAYA,IAAE,OAAO,EAAE,SAAS;AAAA,EAChC,eAAeA,IAAE,QAAQ;AAC3B,CAAC,EACA,OAAO;AACH,IAAM,oCAAoCA,IAC9C,OAAO;AAAA,EACN,OAAOA,IAAE,MAAM,sCAAsC;AAAA,EACrD,mBAAmBA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS;AAC1D,CAAC,EACA,OAAO;AAKV,IAAM,qCAAqC;AAEpC,IAAM,+BAA+BA,IACzC,OAAO;AAAA,EACN,QAAQA,IAAE,KAAK,CAAC,UAAU,MAAM,CAAC;AAAA,EACjC,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,aAAa;AAAA,EACb,UAAU;AAAA,EACV,YAAYA,IAAE,OAAO,EAAE,SAAS;AAAA,EAChC,YAAYA,IACT,OAAO,EAAE,mBAAmB,kBAAkB,CAAC,EAC/C,OAAO,EACP,SAAS;AACd,CAAC,EACA,OAAO;AAKH,IAAM,oCAAoCA,IAC9C,OAAO;AAAA,EACN,QAAQA,IAAE,QAAQ,UAAU;AAAA,EAC5B,OAAOA,IAAE,QAAQ,IAAI;AAAA,EACrB,oBAAoB;AAAA,EACpB,mBAAmB;AAAA,EACnB,aAAaA,IAAE,MAAM,kCAAkC;AACzD,CAAC,EACA,OAAO;AAKH,IAAM,iCAAiCA,IAC3C,OAAO;AAAA,EACN,QAAQA,IAAE,QAAQ,SAAS;AAAA,EAC3B,OAAOA,IAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC;AAAA,EAC9B,WAAWA,IAAE,OAAO,EAAE,SAAS;AAAA,EAC/B,UAAUA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AAAA,EACpC,aAAa;AAAA,EACb,QAAQA,IAAE,MAAM;AAAA,IACd;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAAA,EACD,MAAMA,IAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC;AAAA,EAC7B,mBAAmB;AACrB,CAAC,EACA,OAAO;AAKH,IAAM,yCAAyCA,IACnD,OAAO;AAAA,EACN,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,oBAAoB;AAAA,EACpB,SAASA,IAAE,MAAM;AAAA,IACf;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAAA,EACD,QAAQA,IACL,MAAM;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC,EACA,SAAS;AACd,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,QAAM,sBAAsB;AAAA,IAC1B,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,WAAW;AAAA,EACb,EAAE,MAAM,YAAY;AACpB,QAAM,0BAA0B;AAAA,IAC9B,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,WAAW;AAAA,EACb,EAAE,MAAM,YAAY;AACpB,QAAM,yBAAyB;AAAA,IAC7B,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,WAAW;AAAA,EACb,EAAE,MAAM,YAAY;AACpB,MACE,MAAM,mBAAmB,SAAS,uBAClC,MAAM,mBAAmB,OAAO,MAAM,QAAQ,iBAC9C,MAAM,QAAQ,aAAa,yBAC3B;AACA,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,oBAAoB;AAAA,MAC3B,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACA,QAAM,gBACJ,MAAM,QAAQ,aAAa,gBACvB,MAAM,QAAQ,kBACd,MAAM,QAAQ,aAAa,sBACzB,MAAM,QAAQ,wBACd,MAAM,QAAQ;AACtB,MAAI,cAAc,OAAO,MAAM,YAAY;AACzC,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,YAAY;AAAA,MACnB,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACA,QAAM,cACJ,MAAM,QAAQ,cAAc,gBAC5B,QAAQ,MAAM,QAAQ,iBAAiB;AACzC,MAAI,gBAAgB,QAAQ,MAAM,MAAM,GAAG;AACzC,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,QAAQ;AAAA,MACf,SAAS,cACL,sFACA;AAAA,IACN,CAAC;AAAA,EACH;AACA,MAAI,MAAM,QAAQ;AAChB,UAAM,sBACJ,MAAM,OAAO,aAAa,sBACtB,MAAM,OAAO,kBACb,MAAM,OAAO,aAAa,4BACxB,MAAM,OAAO,wBACb,MAAM,OAAO;AACrB,UAAM,eAAe,CACnB,MACA,UAEA,KAAK,SAAS,MAAM,QACpB,KAAK,OAAO,MAAM,MAClB,KAAK,cAAc,MAAM,aACzB,KAAK,aAAa,MAAM,YACxB,KAAK,kBAAkB,MAAM,iBAC7B,KAAK,gBAAgB,MAAM;AAC7B,QACE,MAAM,OAAO,aAAa,0BAC1B,CAAC;AAAA,MACC,MAAM,OAAO;AAAA,MACb,MAAM;AAAA,IACR,KACA,CAAC,aAAa,qBAAqB,aAAa,GAChD;AACA,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,QAAQ;AAAA,QACf,SACE;AAAA,MACJ,CAAC;AAAA,IACH;AAAA,EACF;AACF,CAAC;AAEH,IAAM,2CAA2CA,IAC9C,OAAO;AAAA,EACN,QAAQA,IAAE,KAAK,CAAC,WAAW,UAAU,CAAC;AAAA,EACtC,YAAYA,IAAE,OAAO,EAAE,IAAI,EAAE,YAAY;AAAA,EACzC,OAAOA,IAAE,MAAM,sCAAsC,EAAE,IAAI,CAAC;AAAA,EAC5D,MAAMA,IAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC;AAC/B,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,QAAM,oBACJ,MAAM,WAAW,YAAY,aAAa;AAC5C,QAAM,MAAM,QAAQ,CAAC,MAAM,UAAU;AACnC,QAAI,KAAK,QAAQ,cAAc,mBAAmB;AAChD,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,SAAS,OAAO,WAAW,WAAW;AAAA,QAC7C,SACE;AAAA,MACJ,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AACH,CAAC;AAEH,IAAM,+CAA+CA,IAClD,OAAO;AAAA,EACN,QAAQA,IAAE,QAAQ,kBAAkB;AAAA,EACpC,YAAYA,IAAE,OAAO,EAAE,IAAI,EAAE,YAAY;AAAA,EACzC,4BAA4B;AAAA,EAC5B,OAAOA,IAAE,MAAM,sCAAsC,EAAE,IAAI,CAAC;AAAA,EAC5D,MAAMA,IAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC;AAC/B,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,MAAI,MAAM,2BAA2B,SAAS,oBAAoB;AAChE,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,8BAA8B,MAAM;AAAA,MAC3C,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACF,CAAC;AAEI,IAAM,qCAAqCA,IAAE,MAAM;AAAA,EACxD;AAAA,EACA;AACF,CAAC;AAKM,IAAM,oCAAoC;AAAA,EAC/C,eAAe;AAAA,EACf,2BAA2B;AAAA,EAC3B,sBAAsB;AAAA,EACtB,0BAA0B;AAAA,EAC1B,oBAAoB;AACtB;AAEO,IAAM,gCAAgCA,IAC1C,OAAO;AAAA,EACN,QAAQA,IAAE,QAAQ,QAAQ;AAAA,EAC1B,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,WAAWA,IAAE,QAAQ,SAAS;AAAA,EAC9B,UAAU;AAAA,EACV,YAAYA,IAAE,OAAO,EAAE,SAAS;AAAA,EAChC,QAAQA,IAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,IAAI;AAC3C,CAAC,EACA,OAAO;AAKH,IAAM,0CAA0CA,IAAE,MAAM;AAAA,EAC7D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAKM,IAAM,iDAAiDA,IAC3D,OAAO;AAAA,EACN,gBAAgBA,IAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAClD,CAAC,EACA,OAAO;AAKV,IAAM,+CAA+CA,IAClD,OAAO;AAAA,EACN,MAAMA,IAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC;AAAA,EAC7B,mBAAmB;AAAA,EACnB,wBAAwB;AAC1B,CAAC,EACA,OAAO;AAEH,IAAM,iDAAiDA,IAC3D,OAAO;AAAA,EACN,SAASA,IAAE,KAAK,CAAC,kBAAkB,mBAAmB,WAAW,CAAC;AAAA,EAClE,WAAW;AAAA,EACX,mBAAmB;AAAA,EACnB,qBAAqB;AAAA,EACrB,kBAAkB,kBAAkB,SAAS;AAAA,EAC7C,0BAA0B,kBAAkB,SAAS;AAAA,EACrD,gBAAgBA,IAAE,QAAQ;AAAA,EAC1B,MAAMA,IAAE,MAAM,4CAA4C;AAC5D,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,MACE,MAAM,YAAY,sBACjB,CAAC,MAAM,kBAAkB,CAAC,MAAM,mBACjC;AACA,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,SAAS;AAAA,MAChB,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,OACG,MAAM,YAAY,oBAAoB,MAAM,YAAY,gBACzD,CAAC,MAAM,0BACP;AACA,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,0BAA0B;AAAA,MACjC,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACF,CAAC;AAKI,IAAM,uCAAuCA,IACjD,OAAO;AAAA,EACN,WAAW;AAAA,EACX,SAAS;AAAA,EACT,WAAWA,IAAE,KAAK,CAAC,UAAU,aAAa,CAAC;AAAA,EAC3C,sBAAsB,kBAAkB,SAAS;AAAA,EACjD,eAAe,gBAAgB,SAAS;AAAA,EACxC,kBAAkB,kBAAkB,SAAS;AAAA,EAC7C,0BAA0B,kBAAkB,SAAS;AAAA,EACrD,yBAAyB,kBAAkB,SAAS;AAAA,EACpD,mBAAmB,aAAa,SAAS;AAAA,EACzC,gBAAgBA,IAAE,QAAQ;AAAA,EAC1B,2BAA2BA,IAAE,QAAQ;AACvC,CAAC,EACA,OAAO;AAEH,IAAM,sCAAsCA,IAChD,OAAO;AAAA,EACN,WAAWA,IAAE,MAAM,yCAAyC;AAAA,EAC5D,iBAAiBA,IAAE,MAAM,qCAAqC;AAAA,EAC9D,aAAaA,IAAE,MAAM,iCAAiC;AAAA,EACtD,kBAAkBA,IAAE,MAAM,sCAAsC;AAAA,EAChE,oBAAoBA,IAAE,MAAM,kCAAkC;AAAA,EAC9D,+BAA+B,kBAAkB,SAAS;AAAA,EAC1D,sBAAsBA,IAAE,MAAM,oCAAoC;AAAA,EAClE,mBAAmBA,IAAE,MAAM,0CAA0C;AAAA,EACrE,iBAAiBA,IAAE,MAAM,uCAAuC;AAAA,EAChE,aAAaA,IAAE,MAAM,uCAAuC;AAAA,EAC5D,eAAeA,IAAE,MAAM,uCAAuC;AAAA,EAC9D,eAAeA,IAAE,MAAM,gCAAgC;AAAA,EACvD,kBAAkBA,IAAE,MAAM,gCAAgC;AAAA,EAC1D,kBAAkBA,IAAE,MAAM,sCAAsC;AAAA,EAChE,mBAAmB,mCAAmC,SAAS;AAAA,EAC/D,qBAAqBA,IAClB,MAAM,oCAAoC,EAC1C,SAAS;AAAA,EACZ,qBAAqB;AAAA,EACrB,YAAYA,IAAE,OAAO,EAAE,IAAI,EAAE,YAAY;AAAA,EACzC,aAAa;AACf,CAAC,EACA,OAAO;AAQH,IAAM,mCAAmCA,IAC7C,OAAO;AAAA,EACN,YAAYA,IAAE,QAAQ,GAAG;AAAA,EACzB,QAAQA,IACL,OAAO;AAAA,IACN,cAAcA,IAAE,KAAK,CAAC,QAAQ,WAAW,CAAC;AAAA,IAC1C,eAAe;AAAA,IACf,0BAA0B;AAAA,IAC1B,YAAY;AAAA,EACd,CAAC,EACA,OAAO;AAAA,EACV,QAAQA,IACL,OAAO;AAAA,IACN,cAAcA,IAAE,KAAK,CAAC,QAAQ,WAAW,CAAC;AAAA,IAC1C,iBAAiB;AAAA,IACjB,eAAe;AAAA,IACf,0BAA0B;AAAA,IAC1B,gBAAgBA,IAAE,OAAO,EAAE,KAAK,EAAE,WAAW,GAAG;AAAA,EAClD,CAAC,EACA,OAAO;AACZ,CAAC,EACA,OAAO;AAEH,IAAM,mCAAmCA,IAC7C,OAAO;AAAA,EACN,SAAS;AAAA,EACT,gBAAgBA,IAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC;AAAA,EACvC,iBAAiBA,IAAE,OAAO,0BAA0BA,IAAE,OAAO,CAAC;AAAA,EAC9D,MAAM,gCAAgC,SAAS;AAAA,EAC/C,WAAW,6BAA6B,SAAS;AAAA,EACjD,UAAU,iCAAiC,SAAS;AAAA,EACpD,YAAY,8BAA8B,SAAS;AAAA,EACnD,iBAAiBA,IAAE;AAAA,IACjBA,IACG,OAAO;AAAA,MACN,cAAc;AAAA,MACd,eAAe;AAAA,IACjB,CAAC,EACA,OAAO;AAAA,EACZ;AAAA,EACA,YAAYA,IAAE,OAAO,EAAE,IAAI,EAAE,YAAY;AAAA,EACzC,aAAa;AACf,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,QAAM,WAAW,CAAC,MAAM,MAAM,MAAM,WAAW,MAAM,QAAQ,EAAE;AAAA,IAC7D;AAAA,EACF,EAAE;AACF,MAAI,aAAa;AACf,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,MAAM;AAAA,MACb,SACE;AAAA,IACJ,CAAC;AACL,CAAC;AAEH,IAAM,kCAAkC;AAAA,EACtC,SAAS;AAAA,EACT,gBAAgBA,IAAE,OAAO,EAAE,KAAK,EAAE,WAAW,GAAG,EAAE,IAAI,IAAI;AAAA,EAC1D,iBAAiBA,IACd,IAAI,EACJ,YAAY,0BAA0B,EACtC,KAAKA,IAAE,OAAO,0BAA0BA,IAAE,OAAO,EAAE,IAAI,IAAI,CAAC,CAAC,EAC7D,YAAY,CAAC,YAAY,YAAY;AACpC,QAAI,OAAO,KAAK,UAAU,EAAE,SAAS,IAAI;AACvC,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC;AAAA,QACP,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AAAA,EACH,YAAYA,IAAE,OAAO,EAAE,IAAI,EAAE,YAAY;AAAA,EACzC,MAAMA,IAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC;AAAA,EAC7B,aAAa;AACf;AAEA,IAAM,wCAAwCA,IAC3C,OAAO;AAAA,EACN,SAASA,IAAE,QAAQ,QAAQ;AAAA,EAC3B,GAAG;AAAA,EACH,0BAA0B;AAC5B,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,MAAI,MAAM,yBAAyB,SAAS,wBAAwB;AAClE,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,4BAA4B,MAAM;AAAA,MACzC,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACF,CAAC;AAEH,IAAM,4CAA4CA,IAC/C,OAAO;AAAA,EACN,SAASA,IAAE,QAAQ,aAAa;AAAA,EAChC,GAAG;AAAA,EACH,UAAU;AACZ,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,MACE,MAAM,SAAS,YAAY,MAAM,WACjC,MAAM,SAAS,mBAAmB,MAAM,gBACxC;AACA,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,UAAU;AAAA,MACjB,SACE;AAAA,IACJ,CAAC;AAAA,EACH;AACF,CAAC;AAEH,IAAM,wCAAwC,CAC5C,SACA,SAEAA,IACG,OAAO;AAAA,EACN,SAASA,IAAE,QAAQ,OAAO;AAAA,EAC1B,GAAG;AAAA,EACH,MAAMA,IAAE,QAAQ,IAAI;AACtB,CAAC,EACA,OAAO;AAEZ,IAAM,2CAA2CA,IAAE;AAAA,EACjD;AAAA,EACA;AAAA,IACEA,IACG,OAAO;AAAA,MACN,SAASA,IAAE,QAAQ,WAAW;AAAA,MAC9B,GAAG;AAAA,MACH,cAAcA,IAAE,QAAQ,MAAM;AAAA,MAC9B,MAAMA,IAAE,QAAQ,4BAA4B;AAAA,MAC5C,cAAc,iCAAiC,SAAS;AAAA,IAC1D,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,UACE,MAAM,gBACN,MAAM,aAAa,YAAY,MAAM,SACrC;AACA,gBAAQ,SAAS;AAAA,UACf,MAAM;AAAA,UACN,MAAM,CAAC,gBAAgB,SAAS;AAAA,UAChC,SACE;AAAA,QACJ,CAAC;AAAA,MACH;AAAA,IACF,CAAC;AAAA,IACHA,IACG,OAAO;AAAA,MACN,SAASA,IAAE,QAAQ,WAAW;AAAA,MAC9B,GAAG;AAAA,MACH,cAAcA,IAAE,QAAQ,WAAW;AAAA,MACnC,MAAMA,IAAE,QAAQ,iCAAiC;AAAA,IACnD,CAAC,EACA,OAAO;AAAA,EACZ;AACF;AAMO,IAAM,wCAAwCA,IAAE,MAAM;AAAA,EAC3D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,IACE;AAAA,IACA;AAAA,EACF;AAAA,EACA;AAAA,IACE;AAAA,IACA;AAAA,EACF;AACF,CAAC;AAKM,IAAM,8CAA8CA,IACxD,OAAO;AAAA,EACN,YAAYA,IAAE;AAAA,IACZA,IACG,OAAO;AAAA,MACN,WAAW;AAAA,MACX,SAAS;AAAA,MACT,WAAWA,IAAE,KAAK,CAAC,UAAU,aAAa,CAAC;AAAA,MAC3C,OAAOA,IAAE,KAAK,CAAC,UAAU,aAAa,CAAC;AAAA,MACvC,eAAe,yBAAyB,SAAS;AAAA,MACjD,0BAA0B,kBAAkB,SAAS;AAAA,MACrD,QAAQ,8BAA8B,SAAS;AAAA,IACjD,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,UAAI,MAAM,cAAc,UAAU;AAChC,YACE,MAAM,iBACN,MAAM,4BACN,MAAM,QACN;AACA,kBAAQ,SAAS;AAAA,YACf,MAAM;AAAA,YACN,MAAM,CAAC,WAAW;AAAA,YAClB,SACE;AAAA,UACJ,CAAC;AAAA,QACH;AACA,YAAI,MAAM,UAAU;AAClB,kBAAQ,SAAS;AAAA,YACf,MAAM;AAAA,YACN,MAAM,CAAC,OAAO;AAAA,YACd,SACE;AAAA,UACJ,CAAC;AACH;AAAA,MACF;AACA,UAAI,CAAC,MAAM,iBAAiB,CAAC,MAAM,0BAA0B;AAC3D,gBAAQ,SAAS;AAAA,UACf,MAAM;AAAA,UACN,MAAM,CAAC,eAAe;AAAA,UACtB,SACE;AAAA,QACJ,CAAC;AAAA,MACH;AACA,UAAI,MAAM,UAAU,YAAY,CAAC,MAAM,QAAQ;AAC7C,gBAAQ,SAAS;AAAA,UACf,MAAM;AAAA,UACN,MAAM,CAAC,QAAQ;AAAA,UACf,SACE;AAAA,QACJ,CAAC;AAAA,MACH;AACA,UAAI,MAAM,UAAU,iBAAiB,MAAM,QAAQ;AACjD,gBAAQ,SAAS;AAAA,UACf,MAAM;AAAA,UACN,MAAM,CAAC,QAAQ;AAAA,UACf,SACE;AAAA,QACJ,CAAC;AAAA,MACH;AACA,UACE,MAAM,WACL,MAAM,OAAO,cAAc,MAAM,aAChC,MAAM,OAAO,YAAY,MAAM,UACjC;AACA,gBAAQ,SAAS;AAAA,UACf,MAAM;AAAA,UACN,MAAM,CAAC,QAAQ;AAAA,UACf,SACE;AAAA,QACJ,CAAC;AAAA,MACH;AAAA,IACF,CAAC;AAAA,EACL;AAAA,EACA,SAASA,IAAE,MAAM,6BAA6B;AAAA,EAC9C,gBAAgBA,IAAE,MAAM,wBAAwB;AAAA,EAChD,YAAYA,IAAE,OAAO,EAAE,IAAI,EAAE,YAAY;AAAA,EACzC,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,MAAMA,IAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC;AAC/B,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,QAAM,SAAS,MAAM,WAAW;AAAA,IAC9B,CAAC,UAAU,MAAM,cAAc,iBAAiB,MAAM,UAAU;AAAA,EAClE;AACA,MACE,OAAO,WAAW,MAAM,QAAQ,UAChC,OAAO,WAAW,MAAM,eAAe,QACvC;AACA,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,YAAY;AAAA,MACnB,SACE;AAAA,IACJ,CAAC;AACD;AAAA,EACF;AACA,SAAO,QAAQ,CAAC,OAAO,UAAU;AAC/B,QACE,MAAM,QAAQ,gBAAgB,MAAM,QAAQ,KAAK,GAAG,eACpD,MAAM,kBAAkB,MAAM,eAAe,KAAK,GAClD;AACA,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,cAAc,KAAK;AAAA,QAC1B,SACE;AAAA,MACJ,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AACH,CAAC;AAEI,IAAM,oCAAoCA,IAC9C,OAAO;AAAA,EACN,aAAa;AAAA,EACb,eAAe;AAAA,EACf,0BAA0B;AAAA,EAC1B,UAAU;AAAA,EACV,aAAaA,IAAE,MAAM,wBAAwB;AAAA,EAC7C,OAAOA,IAAE,OAAO,EAAE,IAAI;AAAA,EACtB,oBAAoBA,IAAE,QAAQ;AAAA,EAC9B,YAAYA,IAAE,OAAO,EAAE,IAAI,EAAE,YAAY;AAAA,EACzC,aAAa;AACf,CAAC,EACA,OAAO;AAEH,IAAM,0CAA0CA,IACpD,OAAO;AAAA,EACN,aAAa;AAAA,EACb,WAAWA,IAAE,QAAQ,QAAQ;AAAA,EAC7B,UAAU;AAAA,EACV,OAAOA,IAAE,OAAO,EAAE,IAAI;AAAA,EACtB,oBAAoBA,IAAE,QAAQ;AAChC,CAAC,EACA,OAAO;AAEH,IAAM,6CAA6CA,IACvD,OAAO;AAAA,EACN,kBAAkBA,IAAE,QAAQ,QAAQ;AAAA,EACpC,aAAaA,IAAE;AAAA,IACbA,IACG,OAAO;AAAA,MACN,aAAa;AAAA,MACb,eAAe;AAAA,MACf,WAAWA,IAAE,KAAK,CAAC,UAAU,aAAa,CAAC;AAAA,MAC3C,OAAOA,IAAE,KAAK,CAAC,UAAU,aAAa,CAAC;AAAA,MACvC,0BAA0B;AAAA,MAC1B,SAASA,IAAE,QAAQ;AAAA,IACrB,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,UAAI,MAAM,cAAc,YAAY,MAAM;AACxC,gBAAQ,SAAS;AAAA,UACf,MAAM;AAAA,UACN,MAAM,CAAC,SAAS;AAAA,UAChB,SACE;AAAA,QACJ,CAAC;AACH,UAAI,MAAM,UAAU,iBAAiB,MAAM;AACzC,gBAAQ,SAAS;AAAA,UACf,MAAM;AAAA,UACN,MAAM,CAAC,SAAS;AAAA,UAChB,SAAS;AAAA,QACX,CAAC;AAAA,IACL,CAAC;AAAA,EACL;AAAA,EACA,iBAAiBA,IAAE,MAAM,uCAAuC;AAAA,EAChE,WAAWA,IAAE,MAAM,iCAAiC;AAAA,EACpD,UAAUA,IACP,OAAO;AAAA,IACN,aAAa;AAAA,IACb,WAAWA,IAAE,KAAK,CAAC,UAAU,aAAa,CAAC;AAAA,IAC3C,eAAe,yBAAyB,SAAS;AAAA,IACjD,0BAA0B,kBAAkB,SAAS;AAAA,IACrD,QAAQA,IAAE,KAAK,CAAC,YAAY,WAAW,kBAAkB,CAAC;AAAA,EAC5D,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,QACE,MAAM,cAAc,kBACnB,CAAC,MAAM,iBAAiB,CAAC,MAAM,2BAChC;AACA,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,eAAe;AAAA,QACtB,SACE;AAAA,MACJ,CAAC;AAAA,IACH;AACA,QACE,MAAM,cAAc,aACnB,MAAM,iBAAiB,MAAM,2BAC9B;AACA,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,MAAM,CAAC,eAAe;AAAA,QACtB,SACE;AAAA,MACJ,CAAC;AAAA,IACH;AAAA,EACF,CAAC,EACA,SAAS;AAAA,EACZ,YAAY;AAAA,EACZ,MAAMA,IAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC;AAC/B,CAAC,EACA,OAAO;AAEH,IAAM,0CAA0CA,IACpD,OAAO;AAAA,EACN,gBAAgB;AAAA,EAChB,SAAS;AAAA,EACT,2BAA2B;AAAA,EAC3B,sBAAsBA,IAAE,OAAO,EAAE,IAAI,EAAE,YAAY;AAAA,EACnD,gBAAgBA,IAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAClD,CAAC,EACA,OAAO;AAEH,IAAM,0CAA0CA,IACpD,OAAO;AAAA,EACN,UAAUA,IAAE,QAAQ;AAAA,EACpB,aAAa;AAAA,EACb,YAAYA,IACT,OAAO;AAAA,IACN,WAAWA,IAAE,QAAQ,iBAAiB;AAAA,IACtC,mBAAmB;AAAA,IACnB,mBAAmB;AAAA,EACrB,CAAC,EACA,OAAO;AAAA,EACV,MAAMA,IACH,OAAO;AAAA,IACN,OAAOA,IAAE,MAAM,wBAAwB;AAAA,IACvC,SAASA,IAAE,MAAM,wBAAwB;AAAA,IACzC,SAASA,IAAE,MAAM,wBAAwB;AAAA,EAC3C,CAAC,EACA,OAAO;AACZ,CAAC,EACA,OAAO;AAEH,IAAM,uCAAuCA,IACjD,OAAO;AAAA;AAAA;AAAA,EAGN,eAAe,yBAAyB,SAAS;AAAA,EACjD,SAAS;AAAA,EACT,MAAMA,IAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,IAAI;AAAA,EACvC,qBAAqB,yBAAyB,SAAS;AACzD,CAAC,EACA,OAAO;AAEH,IAAM,0CAA0CA,IACpD,OAAO;AAAA;AAAA;AAAA;AAAA,EAIN,eAAe,yBAAyB,SAAS;AAAA,EACjD,SAAS;AAAA,EACT,MAAMA,IAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,IAAI;AACzC,CAAC,EACA,OAAO;AAEV,IAAM,0CAA0CA,IAC7C,IAAI,EACJ,YAAY,0BAA0B,EACtC,KAAKA,IAAE,OAAO,0BAA0BA,IAAE,OAAO,EAAE,IAAI,IAAI,CAAC,CAAC,EAC7D,YAAY,CAAC,YAAY,YAAY;AACpC,QAAM,OAAO,OAAO,KAAK,UAAU;AACnC,MAAI,KAAK,SAAS;AAChB,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC;AAAA,MACP,SAAS;AAAA,IACX,CAAC;AACL,CAAC;AAEH,IAAM,oCAAoCA,IACvC,OAAO;AAAA,EACN,WAAWA,IAAE,QAAQ,QAAQ;AAAA,EAC7B,0BAA0B;AAAA,EAC1B,YAAYA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AAAA,EACtC,MAAMA,IAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC;AAC/B,CAAC,EACA,OAAO;AAEV,IAAM,qCAAqCA,IACxC,OAAO;AAAA,EACN,WAAWA,IAAE,QAAQ,aAAa;AAAA,EAClC,cAAcA,IAAE,KAAK,CAAC,QAAQ,WAAW,CAAC;AAAA,EAC1C,eAAe;AAAA,EACf,0BAA0B;AAAA,EAC1B,YAAYA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AAAA,EACtC,MAAMA,IAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC;AAC/B,CAAC,EACA,OAAO;AAEH,IAAM,qCAAqCA,IAC/C,OAAO;AAAA,EACN,SAAS;AAAA,EACT,gBAAgBA,IAAE,OAAO,EAAE,KAAK,EAAE,WAAW,GAAG,EAAE,IAAI,IAAI;AAAA,EAC1D,iBAAiB;AAAA,EACjB,OAAOA,IAAE,mBAAmB,aAAa;AAAA,IACvC;AAAA,IACA;AAAA,EACF,CAAC;AAAA,EACD,aAAa;AACf,CAAC,EACA,OAAO;AA0BH,IAAM,oCAAoC;;;AC71FjD,iBAA6D;;;ACA7D;AAAA,EACE,SAAW;AAAA,EACX,KAAO;AAAA,EACP,OAAS;AAAA,EACT,aAAe;AAAA,EACf,MAAQ;AAAA,EACR,YAAc;AAAA,IACZ,SAAW;AAAA,MACT,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,MACf,UAAY;AAAA,IACd;AAAA,IACA,OAAS;AAAA,MACP,MAAQ;AAAA,IACV;AAAA,IACA,cAAgB;AAAA,MACd,MAAQ;AAAA,MACR,aAAe;AAAA,IACjB;AAAA,IACA,aAAe;AAAA,MACb,MAAQ;AAAA,MACR,aAAe;AAAA,IACjB;AAAA,IACA,UAAY;AAAA,MACV,OAAS;AAAA,QACP;AAAA,UACE,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,aAAe;AAAA,IACjB;AAAA,IACA,aAAe;AAAA,MACb,OAAS;AAAA,QACP;AAAA,UACE,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,aAAe;AAAA,IACjB;AAAA,IACA,OAAS;AAAA,MACP,MAAQ;AAAA,IACV;AAAA,EACF;AAAA,EACA,mBAAqB;AAAA,IACnB,oBAAoB;AAAA,MAClB,MAAQ;AAAA,IACV;AAAA,EACF;AAAA,EACA,sBAAwB;AAAA,EACxB,aAAe;AAAA,IACb,kBAAoB;AAAA,MAClB,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,SAAW;AAAA,MACX,aAAe;AAAA,IACjB;AAAA,IACA,qBAAuB;AAAA,MACrB,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,SAAW;AAAA,MACX,aAAe;AAAA,IACjB;AAAA,IACA,sBAAwB;AAAA,MACtB,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,SAAW;AAAA,MACX,QAAU;AAAA,MACV,aAAe;AAAA,IACjB;AAAA,IACA,4BAA8B;AAAA,MAC5B,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,YAAc;AAAA,QACZ,MAAQ;AAAA,UACN,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,UAAY,CAAC,MAAM;AAAA,MACnB,sBAAwB;AAAA,MACxB,aAAe;AAAA,IACjB;AAAA,IACA,qBAAuB;AAAA,MACrB,OAAS;AAAA,MACT,OAAS;AAAA,QACP;AAAA,UACE,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,aAAe;AAAA,IACjB;AAAA,IACA,sEAAsE;AAAA,MACpE,SAAW;AAAA,MACX,KAAO;AAAA,MACP,OAAS;AAAA,MACT,aAAe;AAAA,MACf,MAAQ;AAAA,MACR,MAAQ;AAAA,QACN;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,IACA,kEAAkE;AAAA,MAChE,SAAW;AAAA,MACX,KAAO;AAAA,MACP,OAAS;AAAA,MACT,aAAe;AAAA,MACf,MAAQ;AAAA,MACR,YAAc;AAAA,QACZ,QAAU;AAAA,UACR,aAAe;AAAA,QACjB;AAAA,QACA,OAAS;AAAA,UACP,MAAQ;AAAA,QACV;AAAA,QACA,MAAQ;AAAA,UACN,MAAQ;AAAA,QACV;AAAA,QACA,cAAgB;AAAA,UACd,MAAQ;AAAA,UACR,aAAe;AAAA,QACjB;AAAA,QACA,aAAe;AAAA,UACb,MAAQ;AAAA,UACR,aAAe;AAAA,QACjB;AAAA,QACA,aAAe;AAAA,UACb,OAAS;AAAA,YACP;AAAA,cACE,MAAQ;AAAA,YACV;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,YACV;AAAA,UACF;AAAA,UACA,aAAe;AAAA,QACjB;AAAA,MACF;AAAA,MACA,sBAAwB;AAAA,MACxB,OAAS;AAAA,QACP;AAAA,UACE,aAAe;AAAA,UACf,IAAM;AAAA,YACJ,UAAY,CAAC,QAAQ;AAAA,YACrB,YAAc;AAAA,cACZ,QAAU;AAAA,YACZ;AAAA,UACF;AAAA,UACA,MAAQ;AAAA,YACN,KAAO;AAAA,cACL,UAAY,CAAC,MAAM;AAAA,cACnB,YAAc;AAAA,gBACZ,MAAQ;AAAA,cACV;AAAA,YACF;AAAA,UACF;AAAA,UACA,MAAQ;AAAA,YACN,UAAY,CAAC,MAAM;AAAA,YACnB,YAAc;AAAA,cACZ,MAAQ;AAAA,YACV;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,IAAM;AAAA,YACJ,UAAY,CAAC,OAAO;AAAA,YACpB,YAAc;AAAA,cACZ,OAAS;AAAA,gBACP,OAAS;AAAA,cACX;AAAA,YACF;AAAA,UACF;AAAA,UACA,MAAQ;AAAA,YACN,YAAc;AAAA,cACZ,QAAU;AAAA,gBACR,OAAS;AAAA,kBACP;AAAA,oBACE,MAAQ;AAAA,kBACV;AAAA,kBACA;AAAA,oBACE,MAAQ;AAAA,kBACV;AAAA,gBACF;AAAA,cACF;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,IAAM;AAAA,YACJ,UAAY,CAAC,OAAO;AAAA,YACpB,YAAc;AAAA,cACZ,OAAS;AAAA,gBACP,OAAS;AAAA,cACX;AAAA,YACF;AAAA,UACF;AAAA,UACA,MAAQ;AAAA,YACN,YAAc;AAAA,cACZ,QAAU;AAAA,gBACR,OAAS;AAAA,kBACP;AAAA,oBACE,MAAQ;AAAA,kBACV;AAAA,kBACA;AAAA,oBACE,MAAQ;AAAA,kBACV;AAAA,gBACF;AAAA,cACF;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,IAAM;AAAA,YACJ,UAAY,CAAC,OAAO;AAAA,YACpB,YAAc;AAAA,cACZ,OAAS;AAAA,gBACP,OAAS;AAAA,cACX;AAAA,YACF;AAAA,UACF;AAAA,UACA,MAAQ;AAAA,YACN,YAAc;AAAA,cACZ,QAAU;AAAA,gBACR,OAAS;AAAA,kBACP;AAAA,oBACE,MAAQ;AAAA,kBACV;AAAA,kBACA;AAAA,oBACE,MAAQ;AAAA,kBACV;AAAA,gBACF;AAAA,cACF;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,IAAM;AAAA,YACJ,UAAY,CAAC,OAAO;AAAA,YACpB,YAAc;AAAA,cACZ,OAAS;AAAA,gBACP,OAAS;AAAA,cACX;AAAA,YACF;AAAA,UACF;AAAA,UACA,MAAQ;AAAA,YACN,YAAc;AAAA,cACZ,QAAU;AAAA,gBACR,OAAS;AAAA,kBACP;AAAA,oBACE,MAAQ;AAAA,kBACV;AAAA,kBACA;AAAA,oBACE,MAAQ;AAAA,kBACV;AAAA,gBACF;AAAA,cACF;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,IAAM;AAAA,YACJ,UAAY,CAAC,OAAO;AAAA,YACpB,YAAc;AAAA,cACZ,OAAS;AAAA,gBACP,OAAS;AAAA,cACX;AAAA,YACF;AAAA,UACF;AAAA,UACA,MAAQ;AAAA,YACN,YAAc;AAAA,cACZ,QAAU;AAAA,gBACR,OAAS;AAAA,kBACP;AAAA,oBACE,MAAQ;AAAA,kBACV;AAAA,kBACA;AAAA,oBACE,MAAQ;AAAA,kBACV;AAAA,gBACF;AAAA,cACF;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,IAAM;AAAA,YACJ,UAAY,CAAC,OAAO;AAAA,YACpB,YAAc;AAAA,cACZ,OAAS;AAAA,gBACP,OAAS;AAAA,cACX;AAAA,YACF;AAAA,UACF;AAAA,UACA,MAAQ;AAAA,YACN,YAAc;AAAA,cACZ,QAAU;AAAA,gBACR,OAAS;AAAA,kBACP;AAAA,oBACE,MAAQ;AAAA,kBACV;AAAA,kBACA;AAAA,oBACE,MAAQ;AAAA,kBACV;AAAA,gBACF;AAAA,cACF;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,IAAM;AAAA,YACJ,UAAY,CAAC,OAAO;AAAA,YACpB,YAAc;AAAA,cACZ,OAAS;AAAA,gBACP,OAAS;AAAA,cACX;AAAA,YACF;AAAA,UACF;AAAA,UACA,MAAQ;AAAA,YACN,YAAc;AAAA,cACZ,QAAU;AAAA,gBACR,OAAS;AAAA,kBACP;AAAA,oBACE,MAAQ;AAAA,kBACV;AAAA,kBACA;AAAA,oBACE,MAAQ;AAAA,kBACV;AAAA,gBACF;AAAA,cACF;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,IAAM;AAAA,YACJ,UAAY,CAAC,OAAO;AAAA,YACpB,YAAc;AAAA,cACZ,OAAS;AAAA,gBACP,OAAS;AAAA,cACX;AAAA,YACF;AAAA,UACF;AAAA,UACA,MAAQ;AAAA,YACN,YAAc;AAAA,cACZ,QAAU;AAAA,gBACR,OAAS;AAAA,kBACP;AAAA,oBACE,MAAQ;AAAA,kBACV;AAAA,kBACA;AAAA,oBACE,MAAQ;AAAA,kBACV;AAAA,gBACF;AAAA,cACF;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,IAAM;AAAA,YACJ,UAAY,CAAC,OAAO;AAAA,YACpB,YAAc;AAAA,cACZ,OAAS;AAAA,gBACP,OAAS;AAAA,cACX;AAAA,YACF;AAAA,UACF;AAAA,UACA,MAAQ;AAAA,YACN,YAAc;AAAA,cACZ,QAAU;AAAA,gBACR,OAAS;AAAA,kBACP;AAAA,oBACE,MAAQ;AAAA,kBACV;AAAA,kBACA;AAAA,oBACE,MAAQ;AAAA,kBACV;AAAA,gBACF;AAAA,cACF;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,IAAM;AAAA,YACJ,UAAY,CAAC,OAAO;AAAA,YACpB,YAAc;AAAA,cACZ,OAAS;AAAA,gBACP,OAAS;AAAA,cACX;AAAA,YACF;AAAA,UACF;AAAA,UACA,MAAQ;AAAA,YACN,YAAc;AAAA,cACZ,QAAU;AAAA,gBACR,OAAS;AAAA,kBACP;AAAA,oBACE,MAAQ;AAAA,kBACV;AAAA,kBACA;AAAA,oBACE,MAAQ;AAAA,kBACV;AAAA,gBACF;AAAA,cACF;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,IAAM;AAAA,YACJ,UAAY,CAAC,OAAO;AAAA,YACpB,YAAc;AAAA,cACZ,OAAS;AAAA,gBACP,OAAS;AAAA,cACX;AAAA,YACF;AAAA,UACF;AAAA,UACA,MAAQ;AAAA,YACN,YAAc;AAAA,cACZ,QAAU;AAAA,gBACR,OAAS;AAAA,kBACP;AAAA,oBACE,MAAQ;AAAA,kBACV;AAAA,kBACA;AAAA,oBACE,MAAQ;AAAA,kBACV;AAAA,gBACF;AAAA,cACF;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,IAAM;AAAA,YACJ,UAAY,CAAC,OAAO;AAAA,YACpB,YAAc;AAAA,cACZ,OAAS;AAAA,gBACP,OAAS;AAAA,cACX;AAAA,YACF;AAAA,UACF;AAAA,UACA,MAAQ;AAAA,YACN,YAAc;AAAA,cACZ,QAAU;AAAA,gBACR,OAAS;AAAA,kBACP;AAAA,oBACE,MAAQ;AAAA,kBACV;AAAA,kBACA;AAAA,oBACE,MAAQ;AAAA,kBACV;AAAA,gBACF;AAAA,cACF;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,IAAM;AAAA,YACJ,UAAY,CAAC,OAAO;AAAA,YACpB,YAAc;AAAA,cACZ,OAAS;AAAA,gBACP,OAAS;AAAA,cACX;AAAA,YACF;AAAA,UACF;AAAA,UACA,MAAQ;AAAA,YACN,YAAc;AAAA,cACZ,QAAU;AAAA,gBACR,OAAS;AAAA,kBACP;AAAA,oBACE,MAAQ;AAAA,kBACV;AAAA,kBACA;AAAA,oBACE,MAAQ;AAAA,kBACV;AAAA,gBACF;AAAA,cACF;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,IAAM;AAAA,YACJ,OAAS;AAAA,cACP;AAAA,gBACE,KAAO;AAAA,kBACL,UAAY,CAAC,OAAO;AAAA,gBACtB;AAAA,cACF;AAAA,cACA;AAAA,gBACE,UAAY,CAAC,QAAQ;AAAA,cACvB;AAAA,cACA;AAAA,gBACE,YAAc;AAAA,kBACZ,QAAU;AAAA,oBACR,KAAO;AAAA,sBACL,MAAQ;AAAA,oBACV;AAAA,kBACF;AAAA,gBACF;AAAA,cACF;AAAA,YACF;AAAA,UACF;AAAA,UACA,MAAQ;AAAA,YACN,YAAc;AAAA,cACZ,QAAU;AAAA,gBACR,OAAS;AAAA,kBACP;AAAA,oBACE,MAAQ;AAAA,kBACV;AAAA,kBACA;AAAA,oBACE,MAAQ;AAAA,kBACV;AAAA,kBACA;AAAA,oBACE,MAAQ;AAAA,kBACV;AAAA,kBACA;AAAA,oBACE,MAAQ;AAAA,kBACV;AAAA,kBACA;AAAA,oBACE,MAAQ;AAAA,kBACV;AAAA,kBACA;AAAA,oBACE,MAAQ;AAAA,kBACV;AAAA,kBACA;AAAA,oBACE,MAAQ;AAAA,kBACV;AAAA,kBACA;AAAA,oBACE,MAAQ;AAAA,kBACV;AAAA,kBACA;AAAA,oBACE,MAAQ;AAAA,kBACV;AAAA,kBACA;AAAA,oBACE,MAAQ;AAAA,kBACV;AAAA,kBACA;AAAA,oBACE,MAAQ;AAAA,kBACV;AAAA,kBACA;AAAA,oBACE,OAAS;AAAA,sBACP;AAAA,wBACE,MAAQ;AAAA,sBACV;AAAA,sBACA;AAAA,wBACE,MAAQ;AAAA,sBACV;AAAA,oBACF;AAAA,kBACF;AAAA,gBACF;AAAA,cACF;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IACA,yEAAyE;AAAA,MACvE,SAAW;AAAA,MACX,KAAO;AAAA,MACP,OAAS;AAAA,MACT,aAAe;AAAA,MACf,MAAQ;AAAA,MACR,YAAc;AAAA,QACZ,YAAc;AAAA,UACZ,aAAe;AAAA,UACf,OAAS;AAAA,YACP;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,gBACN;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,cACF;AAAA,YACF;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,YACV;AAAA,UACF;AAAA,QACF;AAAA,QACA,YAAc;AAAA,UACZ,aAAe;AAAA,UACf,OAAS;AAAA,YACP;AAAA,cACE,MAAQ;AAAA,YACV;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,YACV;AAAA,UACF;AAAA,QACF;AAAA,QACA,OAAS;AAAA,UACP,aAAe;AAAA,UACf,OAAS;AAAA,YACP;AAAA,cACE,MAAQ;AAAA,cACR,SAAW;AAAA,cACX,SAAW;AAAA,YACb;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,YACV;AAAA,UACF;AAAA,QACF;AAAA,QACA,KAAO;AAAA,UACL,aAAe;AAAA,UACf,UAAY;AAAA,UACZ,OAAS;AAAA,YACP;AAAA,cACE,MAAQ;AAAA,cACR,SAAW;AAAA,YACb;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,YACV;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY,CAAC,cAAc,YAAY;AAAA,MACvC,sBAAwB;AAAA,MACxB,aAAe;AAAA,QACb,oBAAsB;AAAA,UACpB,OAAS;AAAA,UACT,aAAe;AAAA,UACf,OAAS;AAAA,YACP;AAAA,cACE,MAAQ;AAAA,cACR,SAAW;AAAA,cACX,SAAW;AAAA,YACb;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,OAAS;AAAA,YACX;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,YACV;AAAA,UACF;AAAA,QACF;AAAA,QACA,cAAgB;AAAA,UACd,OAAS;AAAA,UACT,aAAe;AAAA,UACf,OAAS;AAAA,YACP;AAAA,cACE,MAAQ;AAAA,cACR,SAAW;AAAA,cACX,kBAAoB;AAAA,YACtB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,OAAS;AAAA,YACX;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,YACV;AAAA,UACF;AAAA,QACF;AAAA,QACA,qBAAuB;AAAA,UACrB,OAAS;AAAA,UACT,aAAe;AAAA,UACf,OAAS;AAAA,YACP;AAAA,cACE,MAAQ;AAAA,cACR,SAAW;AAAA,cACX,SAAW;AAAA,YACb;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,OAAS;AAAA,YACX;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,YACV;AAAA,UACF;AAAA,QACF;AAAA,QACA,iBAAmB;AAAA,UACjB,OAAS;AAAA,UACT,aAAe;AAAA,UACf,OAAS;AAAA,YACP;AAAA,cACE,MAAQ;AAAA,cACR,SAAW;AAAA,YACb;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,OAAS;AAAA,YACX;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,YACV;AAAA,UACF;AAAA,QACF;AAAA,QACA,oBAAsB;AAAA,UACpB,OAAS;AAAA,UACT,aAAe;AAAA,UACf,OAAS;AAAA,YACP;AAAA,cACE,MAAQ;AAAA,YACV;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,OAAS;AAAA,YACX;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,YACV;AAAA,UACF;AAAA,QACF;AAAA,QACA,eAAiB;AAAA,UACf,OAAS;AAAA,UACT,aAAe;AAAA,UACf,MAAQ;AAAA,UACR,UAAY;AAAA,UACZ,UAAY;AAAA,UACZ,OAAS;AAAA,YACP;AAAA,cACE,MAAQ;AAAA,YACV;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,YACV;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,YACV;AAAA,UACF;AAAA,QACF;AAAA,QACA,eAAiB;AAAA,UACf,OAAS;AAAA,UACT,aAAe;AAAA,UACf,MAAQ;AAAA,UACR,UAAY;AAAA,UACZ,UAAY;AAAA,UACZ,OAAS;AAAA,YACP;AAAA,cACE,MAAQ;AAAA,YACV;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,YACV;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,YACV;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,OAAS;AAAA,QACP;AAAA,UACE,IAAM;AAAA,YACJ,YAAc;AAAA,cACZ,YAAc;AAAA,gBACZ,OAAS;AAAA,cACX;AAAA,cACA,YAAc;AAAA,gBACZ,MAAQ;AAAA,cACV;AAAA,YACF;AAAA,UACF;AAAA,UACA,MAAQ;AAAA,YACN,YAAc;AAAA,cACZ,YAAc;AAAA,gBACZ,MAAQ;AAAA,cACV;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,IAAM;AAAA,YACJ,YAAc;AAAA,cACZ,YAAc;AAAA,gBACZ,OAAS;AAAA,cACX;AAAA,cACA,YAAc;AAAA,gBACZ,MAAQ;AAAA,cACV;AAAA,YACF;AAAA,UACF;AAAA,UACA,MAAQ;AAAA,YACN,YAAc;AAAA,cACZ,YAAc;AAAA,gBACZ,MAAQ;AAAA,cACV;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,IAAM;AAAA,YACJ,YAAc;AAAA,cACZ,YAAc;AAAA,gBACZ,OAAS;AAAA,cACX;AAAA,cACA,YAAc;AAAA,gBACZ,MAAQ;AAAA,cACV;AAAA,YACF;AAAA,UACF;AAAA,UACA,MAAQ;AAAA,YACN,YAAc;AAAA,cACZ,YAAc;AAAA,gBACZ,MAAQ;AAAA,cACV;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,IAAM;AAAA,YACJ,YAAc;AAAA,cACZ,YAAc;AAAA,gBACZ,OAAS;AAAA,cACX;AAAA,cACA,YAAc;AAAA,gBACZ,MAAQ;AAAA,cACV;AAAA,YACF;AAAA,UACF;AAAA,UACA,MAAQ;AAAA,YACN,YAAc;AAAA,cACZ,YAAc;AAAA,gBACZ,MAAQ;AAAA,cACV;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,IAAM;AAAA,YACJ,YAAc;AAAA,cACZ,YAAc;AAAA,gBACZ,OAAS;AAAA,cACX;AAAA,cACA,YAAc;AAAA,gBACZ,MAAQ;AAAA,cACV;AAAA,YACF;AAAA,UACF;AAAA,UACA,MAAQ;AAAA,YACN,YAAc;AAAA,cACZ,YAAc;AAAA,gBACZ,MAAQ;AAAA,cACV;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,IAAM;AAAA,YACJ,YAAc;AAAA,cACZ,YAAc;AAAA,gBACZ,OAAS;AAAA,cACX;AAAA,cACA,YAAc;AAAA,gBACZ,MAAQ;AAAA,cACV;AAAA,YACF;AAAA,UACF;AAAA,UACA,MAAQ;AAAA,YACN,YAAc;AAAA,cACZ,YAAc;AAAA,gBACZ,MAAQ;AAAA,cACV;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,IAAM;AAAA,YACJ,YAAc;AAAA,cACZ,YAAc;AAAA,gBACZ,OAAS;AAAA,cACX;AAAA,cACA,YAAc;AAAA,gBACZ,MAAQ;AAAA,cACV;AAAA,YACF;AAAA,UACF;AAAA,UACA,MAAQ;AAAA,YACN,YAAc;AAAA,cACZ,YAAc;AAAA,gBACZ,MAAQ;AAAA,cACV;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,IAAM;AAAA,YACJ,YAAc;AAAA,cACZ,YAAc;AAAA,gBACZ,OAAS;AAAA,cACX;AAAA,cACA,YAAc;AAAA,gBACZ,MAAQ;AAAA,cACV;AAAA,YACF;AAAA,UACF;AAAA,UACA,MAAQ;AAAA,YACN,YAAc;AAAA,cACZ,YAAc;AAAA,gBACZ,MAAQ;AAAA,cACV;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,IAAM;AAAA,YACJ,YAAc;AAAA,cACZ,YAAc;AAAA,gBACZ,OAAS;AAAA,cACX;AAAA,cACA,YAAc;AAAA,gBACZ,MAAQ;AAAA,cACV;AAAA,YACF;AAAA,UACF;AAAA,UACA,MAAQ;AAAA,YACN,YAAc;AAAA,cACZ,YAAc;AAAA,gBACZ,MAAQ;AAAA,gBACR,UAAY;AAAA,gBACZ,UAAY;AAAA,gBACZ,OAAS;AAAA,kBACP;AAAA,oBACE,MAAQ;AAAA,kBACV;AAAA,kBACA;AAAA,oBACE,MAAQ;AAAA,kBACV;AAAA,kBACA;AAAA,oBACE,MAAQ;AAAA,kBACV;AAAA,gBACF;AAAA,cACF;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,IAAM;AAAA,YACJ,YAAc;AAAA,cACZ,YAAc;AAAA,gBACZ,OAAS;AAAA,cACX;AAAA,cACA,YAAc;AAAA,gBACZ,MAAQ;AAAA,cACV;AAAA,YACF;AAAA,UACF;AAAA,UACA,MAAQ;AAAA,YACN,YAAc;AAAA,cACZ,YAAc;AAAA,gBACZ,MAAQ;AAAA,gBACR,UAAY;AAAA,gBACZ,UAAY;AAAA,gBACZ,OAAS;AAAA,kBACP;AAAA,oBACE,MAAQ;AAAA,kBACV;AAAA,kBACA;AAAA,oBACE,MAAQ;AAAA,kBACV;AAAA,kBACA;AAAA,oBACE,MAAQ;AAAA,kBACV;AAAA,gBACF;AAAA,cACF;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,IAAM;AAAA,YACJ,YAAc;AAAA,cACZ,YAAc;AAAA,gBACZ,OAAS;AAAA,cACX;AAAA,cACA,YAAc;AAAA,gBACZ,MAAQ;AAAA,cACV;AAAA,YACF;AAAA,UACF;AAAA,UACA,MAAQ;AAAA,YACN,YAAc;AAAA,cACZ,YAAc;AAAA,gBACZ,MAAQ;AAAA,gBACR,UAAY;AAAA,gBACZ,UAAY;AAAA,gBACZ,OAAS;AAAA,kBACP;AAAA,oBACE,MAAQ;AAAA,kBACV;AAAA,kBACA;AAAA,oBACE,MAAQ;AAAA,kBACV;AAAA,kBACA;AAAA,oBACE,MAAQ;AAAA,kBACV;AAAA,gBACF;AAAA,cACF;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,IAAM;AAAA,YACJ,YAAc;AAAA,cACZ,YAAc;AAAA,gBACZ,OAAS;AAAA,cACX;AAAA,cACA,YAAc;AAAA,gBACZ,MAAQ;AAAA,cACV;AAAA,YACF;AAAA,UACF;AAAA,UACA,MAAQ;AAAA,YACN,YAAc;AAAA,cACZ,YAAc;AAAA,gBACZ,MAAQ;AAAA,gBACR,UAAY;AAAA,gBACZ,UAAY;AAAA,gBACZ,OAAS;AAAA,kBACP;AAAA,oBACE,MAAQ;AAAA,kBACV;AAAA,kBACA;AAAA,oBACE,MAAQ;AAAA,kBACV;AAAA,kBACA;AAAA,oBACE,MAAQ;AAAA,kBACV;AAAA,gBACF;AAAA,cACF;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,IAAM;AAAA,YACJ,YAAc;AAAA,cACZ,YAAc;AAAA,gBACZ,OAAS;AAAA,cACX;AAAA,cACA,YAAc;AAAA,gBACZ,MAAQ;AAAA,cACV;AAAA,YACF;AAAA,UACF;AAAA,UACA,MAAQ;AAAA,YACN,YAAc;AAAA,cACZ,YAAc;AAAA,gBACZ,MAAQ;AAAA,gBACR,UAAY;AAAA,gBACZ,UAAY;AAAA,gBACZ,OAAS;AAAA,kBACP;AAAA,oBACE,MAAQ;AAAA,kBACV;AAAA,kBACA;AAAA,oBACE,MAAQ;AAAA,kBACV;AAAA,kBACA;AAAA,oBACE,MAAQ;AAAA,kBACV;AAAA,gBACF;AAAA,cACF;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,IAAM;AAAA,YACJ,YAAc;AAAA,cACZ,YAAc;AAAA,gBACZ,OAAS;AAAA,cACX;AAAA,cACA,YAAc;AAAA,gBACZ,MAAQ;AAAA,cACV;AAAA,YACF;AAAA,UACF;AAAA,UACA,MAAQ;AAAA,YACN,YAAc;AAAA,cACZ,YAAc;AAAA,gBACZ,MAAQ;AAAA,gBACR,UAAY;AAAA,gBACZ,UAAY;AAAA,gBACZ,OAAS;AAAA,kBACP;AAAA,oBACE,MAAQ;AAAA,kBACV;AAAA,kBACA;AAAA,oBACE,MAAQ;AAAA,kBACV;AAAA,kBACA;AAAA,oBACE,MAAQ;AAAA,kBACV;AAAA,gBACF;AAAA,cACF;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IACA,6EAA6E;AAAA,MAC3E,SAAW;AAAA,MACX,KAAO;AAAA,MACP,OAAS;AAAA,MACT,aAAe;AAAA,MACf,MAAQ;AAAA,MACR,YAAc;AAAA,QACZ,OAAS;AAAA,UACP,aAAe;AAAA,UACf,OAAS;AAAA,YACP;AAAA,cACE,MAAQ;AAAA,YACV;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,YACV;AAAA,UACF;AAAA,QACF;AAAA,QACA,MAAQ;AAAA,UACN,aAAe;AAAA,UACf,OAAS;AAAA,YACP;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ,CAAC,MAAM,KAAK;AAAA,YACtB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,YACV;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY,CAAC,SAAS,MAAM;AAAA,MAC5B,sBAAwB;AAAA,IAC1B;AAAA,IACA,8EAA8E;AAAA,MAC5E,SAAW;AAAA,MACX,KAAO;AAAA,MACP,OAAS;AAAA,MACT,aAAe;AAAA,MACf,OAAS;AAAA,QACP;AAAA,UACE,MAAQ;AAAA,UACR,aAAe;AAAA,UACf,KAAO;AAAA,YACL,MAAQ;AAAA,UACV;AAAA,QACF;AAAA,QACA;AAAA,UACE,MAAQ;AAAA,UACR,aAAe;AAAA,UACf,OAAS;AAAA,YACP,OAAS;AAAA,cACP;AAAA,gBACE,MAAQ;AAAA,gBACR,KAAO;AAAA,kBACL,MAAQ;AAAA,gBACV;AAAA,cACF;AAAA,cACA;AAAA,gBACE,MAAQ;AAAA,cACV;AAAA,YACF;AAAA,UACF;AAAA,UACA,UAAY;AAAA,QACd;AAAA,MACF;AAAA,IACF;AAAA,IACA,8EAA8E;AAAA,MAC5E,SAAW;AAAA,MACX,KAAO;AAAA,MACP,OAAS;AAAA,MACT,aAAe;AAAA,MACf,OAAS;AAAA,QACP;AAAA,UACE,MAAQ;AAAA,UACR,aAAe;AAAA,UACf,SAAW;AAAA,UACX,SAAW;AAAA,QACb;AAAA,QACA;AAAA,UACE,MAAQ;AAAA,UACR,aAAe;AAAA,UACf,MAAQ;AAAA,YACN;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IACA,4EAA4E;AAAA,MAC1E,SAAW;AAAA,MACX,KAAO;AAAA,MACP,OAAS;AAAA,MACT,aAAe;AAAA,MACf,MAAQ;AAAA,MACR,YAAc;AAAA,QACZ,OAAS;AAAA,UACP,aAAe;AAAA,UACf,OAAS;AAAA,YACP;AAAA,cACE,MAAQ;AAAA,YACV;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,YACV;AAAA,UACF;AAAA,QACF;AAAA,QACA,MAAQ;AAAA,UACN,aAAe;AAAA,UACf,OAAS;AAAA,YACP;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ,CAAC,MAAM,GAAG;AAAA,YACpB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,YACV;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY,CAAC,SAAS,MAAM;AAAA,MAC5B,sBAAwB;AAAA,IAC1B;AAAA,IACA,+EAA+E;AAAA,MAC7E,SAAW;AAAA,MACX,KAAO;AAAA,MACP,OAAS;AAAA,MACT,aAAe;AAAA,MACf,MAAQ;AAAA,MACR,OAAS;AAAA,QACP;AAAA,UACE,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,iBAAmB;AAAA,MACnB,UAAY;AAAA,MACZ,UAAY;AAAA,MACZ,aAAe;AAAA,QACb,aAAe;AAAA,UACb,OAAS;AAAA,UACT,aAAe;AAAA,UACf,OAAS;AAAA,YACP;AAAA,cACE,MAAQ;AAAA,cACR,SAAW;AAAA,cACX,SAAW;AAAA,YACb;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,YACV;AAAA,UACF;AAAA,QACF;AAAA,QACA,aAAe;AAAA,UACb,OAAS;AAAA,UACT,aAAe;AAAA,UACf,OAAS;AAAA,YACP;AAAA,cACE,MAAQ;AAAA,YACV;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,YACV;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IACA,0EAA0E;AAAA,MACxE,SAAW;AAAA,MACX,KAAO;AAAA,MACP,OAAS;AAAA,MACT,aAAe;AAAA,MACf,MAAQ;AAAA,IACV;AAAA,IACA,+EAA+E;AAAA,MAC7E,SAAW;AAAA,MACX,KAAO;AAAA,MACP,OAAS;AAAA,MACT,aAAe;AAAA,MACf,OAAS;AAAA,QACP;AAAA,UACE,MAAQ;AAAA,UACR,MAAQ;AAAA,YACN;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF;AAAA,UACA,aAAe;AAAA,QACjB;AAAA,QACA;AAAA,UACE,MAAQ;AAAA,UACR,YAAc;AAAA,YACZ,WAAa;AAAA,cACX,aAAe;AAAA,cACf,OAAS;AAAA,gBACP;AAAA,kBACE,MAAQ;AAAA,kBACR,OAAS;AAAA,oBACP,OAAS;AAAA,sBACP;AAAA,wBACE,MAAQ;AAAA,sBACV;AAAA,sBACA;AAAA,wBACE,MAAQ;AAAA,sBACV;AAAA,oBACF;AAAA,kBACF;AAAA,kBACA,UAAY;AAAA,gBACd;AAAA,gBACA;AAAA,kBACE,MAAQ;AAAA,gBACV;AAAA,cACF;AAAA,YACF;AAAA,YACA,SAAW;AAAA,cACT,aAAe;AAAA,cACf,OAAS;AAAA,gBACP;AAAA,kBACE,MAAQ;AAAA,kBACR,MAAQ,CAAC,SAAS,QAAQ,QAAQ;AAAA,gBACpC;AAAA,gBACA;AAAA,kBACE,MAAQ;AAAA,gBACV;AAAA,cACF;AAAA,YACF;AAAA,UACF;AAAA,UACA,UAAY,CAAC,aAAa,SAAS;AAAA,UACnC,sBAAwB;AAAA,QAC1B;AAAA,MACF;AAAA,IACF;AAAA,IACA,0EAA0E;AAAA,MACxE,SAAW;AAAA,MACX,KAAO;AAAA,MACP,OAAS;AAAA,MACT,aAAe;AAAA,MACf,MAAQ;AAAA,MACR,YAAc;AAAA,QACZ,OAAS;AAAA,UACP,aAAe;AAAA,UACf,OAAS;AAAA,YACP;AAAA,cACE,MAAQ;AAAA,YACV;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,YACV;AAAA,UACF;AAAA,QACF;AAAA,QACA,OAAS;AAAA,UACP,aAAe;AAAA,UACf,OAAS;AAAA,YACP;AAAA,cACE,MAAQ;AAAA,YACV;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,YACV;AAAA,UACF;AAAA,QACF;AAAA,QACA,OAAS;AAAA,UACP,aAAe;AAAA,UACf,OAAS;AAAA,YACP;AAAA,cACE,MAAQ;AAAA,YACV;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,YACV;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY,CAAC,SAAS,SAAS,OAAO;AAAA,MACtC,sBAAwB;AAAA,IAC1B;AAAA,IACA,8EAA8E;AAAA,MAC5E,SAAW;AAAA,MACX,KAAO;AAAA,MACP,OAAS;AAAA,MACT,aAAe;AAAA,MACf,MAAQ;AAAA,MACR,YAAc;AAAA,QACZ,UAAY;AAAA,UACV,aAAe;AAAA,UACf,OAAS;AAAA,YACP;AAAA,cACE,MAAQ;AAAA,YACV;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,YACV;AAAA,UACF;AAAA,QACF;AAAA,QACA,OAAS;AAAA,UACP,aAAe;AAAA,UACf,OAAS;AAAA,YACP;AAAA,cACE,MAAQ;AAAA,YACV;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,YACV;AAAA,UACF;AAAA,QACF;AAAA,QACA,gBAAkB;AAAA,UAChB,aAAe;AAAA,UACf,OAAS;AAAA,YACP;AAAA,cACE,MAAQ;AAAA,YACV;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,YACV;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY,CAAC,YAAY,SAAS,gBAAgB;AAAA,MAClD,sBAAwB;AAAA,IAC1B;AAAA,IACA,0EAA0E;AAAA,MACxE,SAAW;AAAA,MACX,KAAO;AAAA,MACP,OAAS;AAAA,MACT,aAAe;AAAA,MACf,OAAS;AAAA,QACP;AAAA,UACE,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,MAAQ;AAAA,UACR,aAAe;AAAA,UACf,OAAS;AAAA,YACP,OAAS;AAAA,cACP;AAAA,gBACE,MAAQ;AAAA,cACV;AAAA,cACA;AAAA,gBACE,MAAQ;AAAA,cACV;AAAA,YACF;AAAA,UACF;AAAA,UACA,UAAY;AAAA,QACd;AAAA,MACF;AAAA,MACA,aAAe;AAAA,QACb,cAAgB;AAAA,UACd,OAAS;AAAA,UACT,MAAQ;AAAA,UACR,YAAc;AAAA,YACZ,OAAS;AAAA,cACP,aAAe;AAAA,cACf,OAAS;AAAA,gBACP;AAAA,kBACE,MAAQ;AAAA,gBACV;AAAA,gBACA;AAAA,kBACE,MAAQ;AAAA,gBACV;AAAA,cACF;AAAA,YACF;AAAA,YACA,SAAW;AAAA,cACT,aAAe;AAAA,cACf,OAAS;AAAA,gBACP;AAAA,kBACE,MAAQ;AAAA,gBACV;AAAA,gBACA;AAAA,kBACE,MAAQ;AAAA,gBACV;AAAA,cACF;AAAA,YACF;AAAA,YACA,SAAW;AAAA,cACT,aAAe;AAAA,cACf,OAAS;AAAA,gBACP;AAAA,kBACE,MAAQ;AAAA,gBACV;AAAA,gBACA;AAAA,kBACE,MAAQ;AAAA,gBACV;AAAA,cACF;AAAA,YACF;AAAA,YACA,MAAQ;AAAA,cACN,aAAe;AAAA,cACf,OAAS;AAAA,gBACP;AAAA,kBACE,MAAQ;AAAA,gBACV;AAAA,gBACA;AAAA,kBACE,MAAQ;AAAA,gBACV;AAAA,cACF;AAAA,YACF;AAAA,YACA,QAAU;AAAA,cACR,aAAe;AAAA,cACf,OAAS;AAAA,gBACP;AAAA,kBACE,MAAQ;AAAA,gBACV;AAAA,gBACA;AAAA,kBACE,MAAQ;AAAA,gBACV;AAAA,cACF;AAAA,YACF;AAAA,YACA,OAAS;AAAA,cACP,aAAe;AAAA,cACf,OAAS;AAAA,gBACP;AAAA,kBACE,MAAQ;AAAA,gBACV;AAAA,gBACA;AAAA,kBACE,MAAQ;AAAA,gBACV;AAAA,cACF;AAAA,YACF;AAAA,UACF;AAAA,UACA,UAAY,CAAC,SAAS,WAAW,WAAW,QAAQ,QAAQ;AAAA,UAC5D,sBAAwB;AAAA,QAC1B;AAAA,MACF;AAAA,IACF;AAAA,IACA,4EAA4E;AAAA,MAC1E,SAAW;AAAA,MACX,KAAO;AAAA,MACP,OAAS;AAAA,MACT,aAAe;AAAA,MACf,MAAQ;AAAA,MACR,OAAS;AAAA,QACP,OAAS;AAAA,UACP;AAAA,YACE,MAAQ;AAAA,UACV;AAAA,UACA;AAAA,YACE,MAAQ;AAAA,UACV;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY;AAAA,MACZ,aAAe;AAAA,QACb,cAAgB;AAAA,UACd,OAAS;AAAA,UACT,MAAQ;AAAA,UACR,YAAc;AAAA,YACZ,OAAS;AAAA,cACP,aAAe;AAAA,cACf,OAAS;AAAA,gBACP;AAAA,kBACE,MAAQ;AAAA,gBACV;AAAA,gBACA;AAAA,kBACE,MAAQ;AAAA,gBACV;AAAA,cACF;AAAA,YACF;AAAA,YACA,UAAY;AAAA,cACV,aAAe;AAAA,cACf,OAAS;AAAA,gBACP;AAAA,kBACE,MAAQ;AAAA,kBACR,SAAW;AAAA,kBACX,SAAW;AAAA,gBACb;AAAA,gBACA;AAAA,kBACE,MAAQ;AAAA,gBACV;AAAA,cACF;AAAA,YACF;AAAA,UACF;AAAA,UACA,UAAY,CAAC,SAAS,UAAU;AAAA,UAChC,sBAAwB;AAAA,QAC1B;AAAA,MACF;AAAA,IACF;AAAA,IACA,8EAA8E;AAAA,MAC5E,SAAW;AAAA,MACX,KAAO;AAAA,MACP,OAAS;AAAA,MACT,aAAe;AAAA,MACf,MAAQ;AAAA,MACR,YAAc;AAAA,QACZ,YAAc;AAAA,UACZ,aAAe;AAAA,UACf,OAAS;AAAA,YACP;AAAA,cACE,MAAQ;AAAA,YACV;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,YACV;AAAA,UACF;AAAA,QACF;AAAA,QACA,UAAY;AAAA,UACV,aAAe;AAAA,UACf,OAAS;AAAA,YACP;AAAA,cACE,MAAQ;AAAA,YACV;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,YACV;AAAA,UACF;AAAA,QACF;AAAA,QACA,YAAc;AAAA,UACZ,aAAe;AAAA,UACf,OAAS;AAAA,YACP;AAAA,cACE,MAAQ;AAAA,YACV;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,YACV;AAAA,UACF;AAAA,QACF;AAAA,QACA,eAAiB;AAAA,UACf,aAAe;AAAA,UACf,OAAS;AAAA,YACP;AAAA,cACE,MAAQ;AAAA,YACV;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,YACV;AAAA,UACF;AAAA,QACF;AAAA,QACA,YAAc;AAAA,UACZ,aAAe;AAAA,UACf,OAAS;AAAA,YACP;AAAA,cACE,MAAQ;AAAA,YACV;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,YACV;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACA,sBAAwB;AAAA,IAC1B;AAAA,IACA,yEAAyE;AAAA,MACvE,SAAW;AAAA,MACX,KAAO;AAAA,MACP,OAAS;AAAA,MACT,aAAe;AAAA,MACf,OAAS;AAAA,QACP;AAAA,UACE,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,IACF;AAAA,IACA,kEAAkE;AAAA,MAChE,SAAW;AAAA,MACX,KAAO;AAAA,MACP,OAAS;AAAA,MACT,aAAe;AAAA,MACf,MAAQ;AAAA,MACR,YAAc;AAAA,QACZ,OAAS;AAAA,UACP,MAAQ;AAAA,QACV;AAAA,QACA,cAAgB;AAAA,UACd,MAAQ;AAAA,UACR,aAAe;AAAA,QACjB;AAAA,QACA,aAAe;AAAA,UACb,MAAQ;AAAA,UACR,aAAe;AAAA,QACjB;AAAA,QACA,UAAY;AAAA,UACV,OAAS;AAAA,YACP;AAAA,cACE,MAAQ;AAAA,YACV;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,YACV;AAAA,UACF;AAAA,UACA,aAAe;AAAA,QACjB;AAAA,QACA,aAAe;AAAA,UACb,OAAS;AAAA,YACP;AAAA,cACE,MAAQ;AAAA,YACV;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,YACV;AAAA,UACF;AAAA,UACA,aAAe;AAAA,QACjB;AAAA,QACA,OAAS;AAAA,UACP,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,mBAAqB;AAAA,QACnB,oBAAoB;AAAA,UAClB,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,sBAAwB;AAAA,IAC1B;AAAA,EACF;AACF;;;AD3tDO,IAAM,oBAAoB;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AA6EO,IAAM,4BAAN,cAAwC,UAAU;AAAA,EAGvD,YAAY,SAAiB,SAAsC,CAAC,GAAG;AACrE,UAAM,OAAO;AACb,SAAK,OAAO;AACZ,SAAK,SAAS;AAAA,EAChB;AACF;AAEA,IAAI;AAEJ,SAAS,mBAAqC;AAG5C,MAAI,CAAC,eAAe;AAClB,UAAM,MAAM,IAAI,WAAAC,QAAI;AAAA,MAClB,WAAW;AAAA,MACX,QAAQ;AAAA,MACR,eAAe;AAAA,MACf,iBAAiB;AAAA,IACnB,CAAC;AACD,oBAAgB,IAAI,QAAQ,0BAA2C;AAAA,EACzE;AACA,SAAO;AACT;AAEA,SAAS,SAAS,OAAkD;AAClE,SAAO,UAAU,QAAQ,OAAO,UAAU,YAAY,CAAC,MAAM,QAAQ,KAAK;AAC5E;AAEA,SAAS,OAAO,OAAgC,KAAsB;AACpE,SAAO,OAAO,UAAU,eAAe,KAAK,OAAO,GAAG;AACxD;AAEA,SAAS,QAAQ,OAA+D;AAC9E,SAAO,SAAS,KAAK,MAAM,OAAO,OAAO,QAAQ,KAAK,OAAO,OAAO,MAAM;AAC5E;AAEA,SAAS,QAAQ,OAA0C;AACzD,SAAO,SAAS,KAAK,KAAK,CAAC,QAAQ,KAAK;AAC1C;AAEA,SAAS,UAAa,OAAa;AACjC,MAAI,MAAM,QAAQ,KAAK,EAAG,QAAO,MAAM,IAAI,CAAC,SAAS,UAAU,IAAI,CAAC;AACpE,MAAI,CAAC,SAAS,KAAK,EAAG,QAAO;AAC7B,SAAO,OAAO,YAAY,OAAO,QAAQ,KAAK,EAAE,IAAI,CAAC,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,CAAC,CAAC;AAC9F;AAEA,SAAS,gBAAgB,QAAuE;AAC9F,UAAQ,UAAU,CAAC,GAAG,IAAI,CAAC,WAAW;AAAA,IACpC,MAAM,MAAM,gBAAgB;AAAA,IAC5B,SAAS,GAAG,MAAM,WAAW,YAAY,GACvC,MAAM,UAAU,OAAO,KAAK,MAAM,MAAM,EAAE,SAAS,IAAI,KAAK,KAAK,UAAU,MAAM,MAAM,CAAC,MAAM,EAChG;AAAA,EACF,EAAE;AACJ;AAEO,SAAS,qCAAqC,OAA6C;AAChG,QAAM,uBAAuB,iBAAiB;AAC9C,MAAI,qBAAqB,KAAK,EAAG,QAAO,CAAC;AACzC,SAAO,gBAAgB,qBAAqB,MAAM;AACpD;AAEO,SAAS,mCAAmC,OAA8C;AAC/F,QAAM,SAAS,qCAAqC,KAAK;AACzD,MAAI,OAAO,WAAW,EAAG;AACzB,QAAM,UAAU,OAAO,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,UAAU,GAAG,MAAM,IAAI,IAAI,MAAM,OAAO,EAAE,EAAE,KAAK,IAAI;AAC7F,QAAM,IAAI,0BAA0B,wCAAwC,OAAO,IAAI,MAAM;AAC/F;AAEA,IAAM,kBAAkB,oBAAI,IAAI,CAAC,WAAW,SAAS,gBAAgB,eAAe,aAAa,CAAC;AAElG,SAAS,YACP,MACA,UACA,MACA,aACiB;AACjB,QAAM,SAAS,UAAU,IAAI;AAC7B,aAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,QAAQ,GAAG;AACnD,QAAI,QAAQ,WAAY;AACxB,QAAI,IAAI,WAAW,GAAG,KAAK,QAAQ,SAAS;AAC1C,aAAO,GAAG,IAAI,UAAU,KAAK;AAC7B;AAAA,IACF;AACA,QAAI,CAAC,OAAO,QAAQ,GAAG,GAAG;AACxB,aAAO,GAAG,IAAI,UAAU,KAAK;AAC7B;AAAA,IACF;AACA,UAAM,WAAW,OAAO,GAAG;AAC3B,UAAM,eAAe,QAAQ,QAAQ,IAAI,UAAU,QAAQ,QAAQ,IAAI,UAAU;AACjF,UAAM,WAAW,QAAQ,KAAK,IAAI,UAAU,QAAQ,KAAK,IAAI,UAAU;AACvE,QAAI,iBAAiB,WAAW,aAAa,SAAS;AACpD,aAAO,GAAG,IAAI,YAAY,UAA6B,OAA0B,CAAC,GAAG,MAAM,GAAG,GAAG,WAAW;AAC5G;AAAA,IACF;AACA,QAAI,iBAAiB,UAAU;AAC7B,YAAM,SAAS,cAAc,kBAAkB;AAC/C,YAAM,IAAI;AAAA,QACR,GAAG,MAAM,kBAAkB,CAAC,GAAG,MAAM,GAAG,EAAE,KAAK,GAAG,CAAC,SAAS,YAAY,OAAO,QAAQ;AAAA,MACzF;AAAA,IACF;AACA,WAAO,GAAG,IAAI,UAAU,KAAK;AAAA,EAC/B;AACA,SAAO;AACT;AAEA,SAAS,kBAAkB,WAA6B;AACtD,MAAI,CAAC,UAAU,WAAW,IAAI,GAAG;AAC/B,UAAM,IAAI,0BAA0B,gDAAgD,SAAS,EAAE;AAAA,EACjG;AACA,MAAI;AACJ,MAAI;AACF,cAAU,mBAAmB,UAAU,MAAM,CAAC,CAAC;AAAA,EACjD,QAAQ;AACN,UAAM,IAAI,0BAA0B,+CAA+C,SAAS,EAAE;AAAA,EAChG;AACA,SAAO,QAAQ,MAAM,CAAC,EAAE,MAAM,GAAG,EAAE,IAAI,CAAC,YAAY,QAAQ,QAAQ,OAAO,GAAG,EAAE,QAAQ,OAAO,GAAG,CAAC;AACrG;AAEA,SAAS,cAAc,UAAmB,UAA6B,WAA4B;AACjG,MAAI,UAAU;AACd,aAAW,WAAW,UAAU;AAC9B,QAAI,MAAM,QAAQ,OAAO,GAAG;AAC1B,UAAI,CAAC,iBAAiB,KAAK,OAAO,KAAK,OAAO,OAAO,KAAK,QAAQ,QAAQ;AACxE,cAAM,IAAI,0BAA0B,sCAAsC,SAAS,EAAE;AAAA,MACvF;AACA,gBAAU,QAAQ,OAAO,OAAO,CAAC;AACjC;AAAA,IACF;AACA,QAAI,CAAC,SAAS,OAAO,KAAK,CAAC,OAAO,SAAS,OAAO,GAAG;AACnD,YAAM,IAAI,0BAA0B,sCAAsC,SAAS,EAAE;AAAA,IACvF;AACA,cAAU,QAAQ,OAAO;AAAA,EAC3B;AACA,SAAO;AACT;AAEA,SAAS,oBAAoB,WAAoC;AAC/D,QAAM,QAAQ,UAAU,MAAM,gBAAgB;AAC9C,SAAO,QAAQ,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;AACvC;AAEA,SAAS,kBACP,UACA,WACyD;AACzD,QAAM,YAAY,oBAAoB,SAAS;AAC/C,QAAM,OAAO,aAAa,kBAAkB,SAAS;AACrD,QAAM,SAAS,cAAc,UAAU,MAAM,SAAS;AACtD,MAAI,CAAC,QAAQ,MAAM,GAAG;AACpB,UAAM,IAAI,0BAA0B,0CAA0C,SAAS,EAAE;AAAA,EAC3F;AACA,SAAO,EAAE,OAAO,QAAQ,KAAK,KAAK,KAAK,GAAG,GAAG,KAAK;AACpD;AAEA,SAAS,kBAAkB,UAAoC;AAC7D,QAAM,eAAe,CACnB,OACA,MACA,iBACoB;AACpB,QAAI,SAA0B,CAAC;AAC/B,UAAM,YAAY,MAAM;AACxB,QAAI,OAAO,cAAc,UAAU;AACjC,YAAM,SAAS,kBAAkB,UAAU,SAAS;AACpD,UAAI,aAAa,SAAS,OAAO,GAAG,GAAG;AACrC,cAAM,IAAI;AAAA,UACR,sCAAsC,CAAC,GAAG,cAAc,OAAO,GAAG,EAAE,KAAK,MAAM,CAAC;AAAA,QAClF;AAAA,MACF;AACA,YAAM,OAAO,aAAa,OAAO,OAAO,OAAO,MAAM,CAAC,GAAG,cAAc,OAAO,GAAG,CAAC;AAClF,eAAS,YAAY,MAAM,OAAO,MAAM,KAAK;AAAA,IAC/C,OAAO;AACL,eAAS,UAAU,KAAK;AACxB,aAAO,OAAO;AAAA,IAChB;AAEA,eAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,MAAM,GAAG;AACjD,UAAI,IAAI,WAAW,GAAG,EAAG;AACzB,UAAI,QAAQ,KAAK,GAAG;AAClB,eAAO,GAAG,IAAI,aAAa,OAAO,CAAC,GAAG,MAAM,GAAG,GAAG,YAAY;AAAA,MAChE;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAEA,SAAO,aAAa,UAAU,CAAC,GAAG,CAAC,gBAAgB,CAAC;AACtD;AAQA,SAAS,cAAc,UAAoD;AACzE,QAAM,SAAS,oBAAI,IAA4B;AAC/C,QAAM,aAAa,CACjB,OACA,MACA,eACA,wBACG;AACH,UAAM,YAAa,MAAM,SAAwC;AACjE,UAAM,kBAAmB,MAAM,eAAoD;AACnF,eAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,KAAK,GAAG;AAChD,UAAI,gBAAgB,IAAI,GAAG,KAAK,QAAQ,WAAY;AACpD,YAAM,YAAY,CAAC,GAAG,MAAM,GAAG,EAAE,KAAK,GAAG;AACzC,UAAI,QAAQ,KAAK,GAAG;AAClB,eAAO,IAAI,WAAW;AAAA,UACpB,OAAO;AAAA,UACP,eAAe;AAAA,UACf,qBAAqB;AAAA,QACvB,CAAC;AAAA,MACH,WAAW,QAAQ,KAAK,GAAG;AACzB,mBAAW,OAAO,CAAC,GAAG,MAAM,GAAG,GAAG,WAAW,eAAe;AAAA,MAC9D;AAAA,IACF;AAAA,EACF;AACA,aAAW,UAAU,CAAC,CAAC;AACvB,SAAO;AACT;AAEA,SAAS,kBAAkB,YAAwC,KAAyC;AAC1G,UAAQ,YAAY;AAAA,IAClB,KAAK;AACH,aAAQ,EAAE,OAAO,SAAS,OAAO,aAAa,OAAO,cAAc,EAAY,GAAG;AAAA,IACpF,KAAK;AACH,aAAQ,EAAE,UAAU,YAAY,OAAO,YAAY,gBAAgB,cAAc,EAAY,GAAG;AAAA,IAClG,KAAK;AACH,aAAQ,EAAE,OAAO,SAAS,SAAS,aAAa,SAAS,aAAa,MAAM,aAAa,QAAQ,YAAY,EAAY,GAAG;AAAA,IAC9H,KAAK;AACH,aAAQ,EAAE,OAAO,SAAS,UAAU,SAAS,EAAY,GAAG;AAAA,IAC9D,KAAK;AACH,aAAQ;AAAA,QACN,YAAY;AAAA,QACZ,UAAU;AAAA,QACV,YAAY;AAAA,QACZ,eAAe;AAAA,QACf,YAAY;AAAA,MACd,EAAY,GAAG;AAAA,IACjB,KAAK;AACH,aAAO,QAAQ,cAAc,cAAc;AAAA,IAC7C,KAAK;AAAA,IACL,KAAK;AACH,aAAO,QAAQ,UAAU,WAAW;AAAA,IACtC,KAAK;AACH,aAAO,QAAQ,WAAW,QAAQ,eAAe,WAAW;AAAA,IAC9D;AACE,aAAO;AAAA,EACX;AACF;AAEA,SAAS,+BAA+B,MAAsB,OAAgB,MAAoB;AAChG,QAAM,oBAAoB;AAAA,IACxB,OAAO;AAAA,MACL,OAAO;AAAA,MACP,QAAQ;AAAA,IACV;AAAA,EACF;AACA,QAAM,SAAS,qCAAqC,iBAAiB;AACrE,MAAI,OAAO,WAAW,EAAG;AACzB,QAAM,SAAS,OAAO,IAAI,CAAC,WAAW;AAAA,IACpC,MAAM,GAAG,IAAI,GAAG,MAAM,KAAK,QAAQ,0BAA0B,EAAE,CAAC;AAAA,IAChE,SAAS,MAAM;AAAA,EACjB,EAAE;AACF,QAAM,UAAU,OAAO,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,UAAU,GAAG,MAAM,IAAI,IAAI,MAAM,OAAO,EAAE,EAAE,KAAK,IAAI;AAC7F,QAAM,IAAI,0BAA0B,SAAS,IAAI,mBAAmB,IAAI,WAAW,OAAO,IAAI,MAAM;AACtG;AAEO,SAAS,mBAAmB,OAAqC;AACtE,qCAAmC,KAAK;AACxC,QAAM,WAAW,UAAU,KAAK;AAChC,QAAM,uBAAuB,kBAAkB,QAAQ;AACvD,QAAM,YAAY,cAAc,oBAAoB;AACpD,QAAM,WAAW,oBAAI,IAAgC;AACrD,QAAM,kBAA4B,CAAC;AAEnC,QAAM,eAAe,CAAC,SAAqC;AACzD,UAAM,SAAS,SAAS,IAAI,IAAI;AAChC,QAAI,OAAQ,QAAO;AACnB,UAAM,QAAQ,UAAU,IAAI,IAAI;AAChC,QAAI,CAAC,MAAO,OAAM,IAAI,0BAA0B,4BAA4B,IAAI,EAAE;AAClF,QAAI,gBAAgB,SAAS,IAAI,GAAG;AAClC,YAAM,IAAI,0BAA0B,6BAA6B,CAAC,GAAG,iBAAiB,IAAI,EAAE,KAAK,MAAM,CAAC,EAAE;AAAA,IAC5G;AACA,oBAAgB,KAAK,IAAI;AAEzB,UAAM,QAAQ,MAAM;AACpB,QAAI,YAAY,MAAM,SAAS,MAAM;AAErC,UAAM,qBAAqB,CAAC,cAAkD;AAC5E,YAAM,WAAW,kBAAkB,SAAS;AAC5C,eAAS,SAAS,SAAS,QAAQ,SAAS,GAAG,UAAU,GAAG;AAC1D,cAAM,YAAY,SAAS,MAAM,GAAG,MAAM,EAAE,KAAK,GAAG;AACpD,YAAI,CAAC,UAAU,IAAI,SAAS,EAAG;AAC/B,cAAM,QAAQ,aAAa,SAAS;AACpC,YAAI,WAAW,SAAS,UAAU,SAAS,MAAM,MAAM,SAAU,QAAO,MAAM;AAC9E,eAAO;AAAA,MACT;AACA,aAAO;AAAA,IACT;AAEA,QAAI,CAAC,aAAa,OAAO,MAAM,WAAW,UAAU;AAClD,YAAM,YAAY,oBAAoB,MAAM,MAAM,GAAG,KAAK,GAAG;AAC7D,UAAI,UAAW,aAAY,aAAa,SAAS,EAAE;AAAA,IACrD;AACA,QAAI,CAAC,aAAa,OAAO,MAAM,SAAS,SAAU,aAAY,mBAAmB,MAAM,IAAI;AAC3F,QAAI,CAAC,WAAW;AACd,sBAAgB,IAAI;AACpB,YAAM,IAAI;AAAA,QACR,SAAS,IAAI;AAAA,MACf;AAAA,IACF;AAEA,UAAM,oBAA8B,CAAC;AACrC,UAAM,iBAAiB,CACrB,WACA,cACA,aACY;AACZ,YAAM,SAAS,GAAG,IAAI,IAAI,SAAS;AACnC,UAAI,kBAAkB,SAAS,MAAM,GAAG;AACtC,cAAM,IAAI;AAAA,UACR,sCAAsC,QAAQ,KAAK,CAAC,GAAG,mBAAmB,MAAM,EAAE,KAAK,MAAM,CAAC;AAAA,QAChG;AAAA,MACF;AACA,wBAAkB,KAAK,MAAM;AAC7B,YAAM,WAAW,kBAAkB,SAAS;AAC5C,YAAM,SAAS,cAAc,sBAAsB,UAAU,SAAS;AACtE,UAAIC;AACJ,UAAI,QAAQ,MAAM,GAAG;AACnB,cAAM,aAAa,SAAS,KAAK,GAAG;AACpC,cAAM,cAAc,aAAa,UAAU;AAC3C,YAAI,gBAAgB,YAAY,SAAS,cAAc;AACrD,gBAAM,IAAI;AAAA,YACR,gBAAgB,QAAQ,YAAY,YAAY,QAAQ,UAAU,OAAO,YAAY,IAAI;AAAA,UAC3F;AAAA,QACF;AACA,QAAAA,UAAS,YAAY;AAAA,MACvB,WAAW,QAAQ,MAAM,GAAG;AAC1B,cAAM,IAAI,0BAA0B,mBAAmB,QAAQ,wBAAwB,SAAS,EAAE;AAAA,MACpG,OAAO;AACL,QAAAA,UAAS,aAAa,QAAQ,cAAc,QAAQ;AAAA,MACtD;AACA,wBAAkB,IAAI;AACtB,aAAOA;AAAA,IACT;AAEA,UAAM,eAAe,CACnBC,QACA,cACA,UACA,cAA0C,iBAC9B;AACZ,UAAI,OAAOA,WAAU,UAAU;AAC7B,cAAM,QAAQ,oBAAoBA,MAAK;AACvC,YAAI,CAAC,MAAO,QAAOA;AACnB,cAAM,YAAY,MAAM,KAAK,GAAG;AAChC,cAAM,SAAS,aAAa,SAAS;AACrC,YAAI,gBAAgB,OAAO,SAAS,cAAc;AAChD,gBAAM,IAAI;AAAA,YACR,gBAAgB,QAAQ,YAAY,YAAY,QAAQ,SAAS,OAAO,OAAO,IAAI;AAAA,UACrF;AAAA,QACF;AACA,eAAO,UAAU,OAAO,KAAK;AAAA,MAC/B;AACA,UAAI,MAAM,QAAQA,MAAK,GAAG;AACxB,eAAOA,OAAM,IAAI,CAAC,MAAM,UAAU;AAChC,gBAAM,YAAY,gBAAgB,gBAAgB,WAC9C,gBAAgB,gBAAgB,cAC9B;AACN,iBAAO,aAAa,MAAM,WAAW,GAAG,QAAQ,IAAI,KAAK,IAAI,WAAW;AAAA,QAC1E,CAAC;AAAA,MACH;AACA,UAAI,CAAC,SAASA,MAAK,EAAG,QAAOA;AAC7B,UAAI,OAAO,KAAKA,MAAK,EAAE,WAAW,KAAK,OAAOA,OAAM,SAAS,UAAU;AACrE,eAAO,eAAeA,OAAM,MAAM,cAAc,QAAQ;AAAA,MAC1D;AACA,aAAO,OAAO,YAAY,OAAO,QAAQA,MAAK,EAAE,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM;AACpE,cAAM,YAAY,kBAAkB,aAAa,GAAG;AACpD,eAAO,CAAC,KAAK,aAAa,OAAO,WAAW,GAAG,QAAQ,IAAI,GAAG,IAAI,WAAW,CAAC;AAAA,MAChF,CAAC,CAAC;AAAA,IACJ;AAEA,QAAI;AACJ,QAAI,OAAO,MAAM,SAAS,UAAU;AAClC,cAAQ,eAAe,MAAM,MAAM,WAAW,IAAI;AAAA,IACpD,OAAO;AACL,cAAQ,aAAa,MAAM,QAAQ,WAAW,IAAI;AAAA,IACpD;AACA,mCAA+B,WAAW,OAAO,IAAI;AAErD,UAAM,SAA6B;AAAA,MACjC;AAAA,MACA,MAAM;AAAA,MACN;AAAA,MACA,aAAa,MAAM;AAAA,MACnB,YAAY,MAAM,eAAe,MAAM;AAAA,MACvC,YAAY,MAAM;AAAA,IACpB;AACA,oBAAgB,IAAI;AACpB,aAAS,IAAI,MAAM,MAAM;AACzB,WAAO;AAAA,EACT;AAEA,aAAW,QAAQ,UAAU,KAAK,EAAG,cAAa,IAAI;AACtD,oBAAkB,QAAQ;AAC1B,QAAM,mBAAgC,CAAC;AACvC,aAAW,SAAS,SAAS,OAAO,GAAG;AACrC,UAAM,WAAW,MAAM,KAAK,MAAM,GAAG;AACrC,QAAI,SAAS;AACb,aAAS,QAAQ,CAAC,SAAS,UAAU;AACnC,UAAI,UAAU,SAAS,SAAS,GAAG;AACjC,eAAO,OAAO,IAAI;AAAA,UAChB,OAAO,MAAM;AAAA,UACb,QAAQ,UAAU,MAAM,KAAK;AAAA,UAC7B,GAAI,MAAM,gBAAgB,SAAY,EAAE,cAAc,MAAM,YAAY,IAAI,CAAC;AAAA,UAC7E,GAAI,MAAM,eAAe,SAAY,EAAE,aAAa,UAAU,MAAM,UAAU,EAAE,IAAI,CAAC;AAAA,UACrF,GAAI,MAAM,eAAe,SAAY,EAAE,aAAa,UAAU,MAAM,UAAU,EAAE,IAAI,CAAC;AAAA,QACvF;AACA;AAAA,MACF;AACA,YAAM,WAAW,OAAO,OAAO;AAC/B,UAAI,CAAC,SAAS,QAAQ,EAAG,QAAO,OAAO,IAAI,CAAC;AAC5C,eAAS,OAAO,OAAO;AAAA,IACzB,CAAC;AAAA,EACH;AACA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA,QAAQ;AAAA,EACV;AACF;AAEO,SAAS,4BAA4B,OAA6C;AACvF,QAAM,mBAAmB,qCAAqC,KAAK;AACnE,MAAI,iBAAiB,SAAS,EAAG,QAAO;AACxC,MAAI;AACF,uBAAmB,KAAK;AACxB,WAAO,CAAC;AAAA,EACV,SAAS,OAAO;AACd,QAAI,iBAAiB,2BAA2B;AAC9C,aAAO,MAAM,OAAO,SAAS,IAAI,CAAC,GAAG,MAAM,MAAM,IAAI,CAAC,EAAE,MAAM,KAAK,SAAS,MAAM,QAAQ,CAAC;AAAA,IAC7F;AACA,WAAO,CAAC,EAAE,MAAM,KAAK,SAAS,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,EAAE,CAAC;AAAA,EACxF;AACF;AAEO,SAAS,yBAAyB,QAAyC;AAChF,MAAI,OAAO,WAAW,GAAG;AACvB,UAAM,IAAI,0BAA0B,6CAA6C;AAAA,EACnF;AACA,MAAI,SAA0B,CAAC;AAC/B,aAAW,SAAS,QAAQ;AAC1B,uCAAmC,KAAK;AACxC,aAAS,YAAY,QAAQ,OAAO,CAAC,GAAG,IAAI;AAAA,EAC9C;AACA,qBAAmB,MAAM;AACzB,SAAO;AACT;AAEA,IAAM,gCAAgC;AAAA,EACpC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAGO,IAAM,qCAA+E,OAAO,OAAO;AAAA,EACxG,GAAG,OAAO;AAAA,IACR,8BAA8B,QAAQ,CAAC,SAAS;AAAA,MAC9C,CAAC,kBAAkB,IAAI,UAAU,OAAO;AAAA,MACxC,CAAC,kBAAkB,IAAI,SAAS,OAAO;AAAA,IACzC,CAAC;AAAA,EACH;AAAA,EACA,wBAAwB;AAAA,EACxB,mCAAmC;AAAA,EACnC,mCAAmC;AAAA,EACnC,uCAAuC;AAAA,EACvC,sBAAsB;AACxB,CAAC;AAGM,SAAS,iCAAiC,OAA6B;AAC5E,QAAM,WAAW,mBAAmB,KAAK;AACzC,QAAM,SAAsC,CAAC;AAC7C,aAAW,CAAC,MAAM,YAAY,KAAK,OAAO,QAAQ,kCAAkC,GAAG;AACrF,UAAM,QAAQ,SAAS,OAAO,IAAI,IAAI;AACtC,QAAI,CAAC,OAAO;AACV,aAAO,KAAK,EAAE,MAAM,IAAI,KAAK,QAAQ,OAAO,GAAG,CAAC,IAAI,SAAS,8CAA8C,CAAC;AAC5G;AAAA,IACF;AACA,QAAI,MAAM,SAAS,cAAc;AAC/B,aAAO,KAAK;AAAA,QACV,MAAM,IAAI,KAAK,QAAQ,OAAO,GAAG,CAAC;AAAA,QAClC,SAAS,iDAAiD,YAAY;AAAA,MACxE,CAAC;AAAA,IACH;AAAA,EACF;AACA,MAAI,OAAO,SAAS,GAAG;AACrB,UAAM,IAAI,0BAA0B,kDAAkD,MAAM;AAAA,EAC9F;AACA,SAAO,SAAS;AAClB;AAGA,SAAS,kBAAkB,QAAuD;AAChF,QAAM,SAAyC;AAAA,IAC7C,YAAY;AAAA,IAAS,aAAa;AAAA,IAAS,aAAa;AAAA,IACxD,aAAa;AAAA,IAAe,QAAQ;AAAA,IAAa,QAAQ;AAAA,IACzD,SAAS;AAAA,IAAa,KAAK;AAAA,EAC7B;AACA,aAAW,CAAC,MAAM,KAAK,KAAK,QAAQ;AAClC,QAAI,CAAC,KAAK,WAAW,iBAAiB,EAAG;AACzC,UAAM,QAAQ,qFAAqF,KAAK,IAAI;AAC5G,UAAM,QAAQ,QAAQ,CAAC;AACvB,UAAM,OAAO,QAAQ,CAAC;AACtB,UAAM,WAAW,SAAS,OAAO,KAAK;AACtC,UAAM,QAAQ,UAAU,aAAa,UAAU,QAC3C,CAAC,WAAW,WAAW,aAAa,IAAI,CAAC,SAAS,MAAM;AAC5D,QAAI,CAAC,SAAS,CAAC,YAAY,MAAM,SAAS,YAAa,QAAQ,CAAC,MAAM,SAAS,IAAI,KAC7E,MAAM,CAAC,KAAK,CAAC,OAAO,cAAc,OAAO,MAAM,CAAC,CAAC,CAAC,GAAI;AAC1D,YAAM,IAAI,0BAA0B,iCAAiC,CAAC,EAAE,MAAM,SAAS,0DAA0D,CAAC,CAAC;AAAA,IACrJ;AACA,QAAI,UAAU,iBAAiB,OAAO,MAAM,UAAU,UAAU;AAC9D,YAAM,IAAI,0BAA0B,+BAA+B,CAAC,EAAE,MAAM,SAAS,8CAA8C,CAAC,CAAC;AAAA,IACvI;AACA,QAAI,MAAM,SAAS,eAAgB,MAAM,MAA8B,QAAQ,GAAG;AAChF,YAAM,IAAI,0BAA0B,4BAA4B,CAAC,EAAE,MAAM,SAAS,yCAAyC,CAAC,CAAC;AAAA,IAC/H;AAAA,EACF;AACF;;;AE1oBA,SAAS,KAAAC,WAAS;AAoBX,IAAM,uBAAuBC,IAAE,KAAK,iBAAiB;AAErD,IAAM,mBAAmBA,IAAE,OAAOA,IAAE,OAAO,GAAGA,IAAE,QAAQ,CAAC,EAAE,YAAY,CAAC,OAAO,YAAY;AAChG,QAAM,SAAS,qCAAqC,EAAE,OAAO,MAAM,CAAC;AACpE,aAAW,SAAS,QAAQ;AAC1B,YAAQ,SAAS,EAAE,MAAM,UAAU,SAAS,GAAG,MAAM,IAAI,IAAI,MAAM,OAAO,GAAG,CAAC;AAAA,EAChF;AACF,CAAC;AAEM,IAAM,wBAAwBA,IAAE,OAAOA,IAAE,OAAO,GAAGA,IAAE,QAAQ,CAAC,EAAE,YAAY,CAAC,OAAO,YAAY;AACrG,QAAM,SAAS,qCAAqC,KAAK;AACzD,aAAW,SAAS,QAAQ;AAC1B,YAAQ,SAAS,EAAE,MAAM,UAAU,SAAS,GAAG,MAAM,IAAI,IAAI,MAAM,OAAO,GAAG,CAAC;AAAA,EAChF;AACF,CAAC;AAQM,IAAM,oBAA4CA,IACtD,OAAOA,IAAE,OAAO,GAAGA,IAAE,QAAQ,CAAC,EAC9B,YAAY,CAAC,OAAO,YAAY;AAC/B,QAAM,SAAS,4BAA4B,KAAK;AAChD,aAAW,SAAS,QAAQ;AAC1B,YAAQ,SAAS,EAAE,MAAM,UAAU,SAAS,GAAG,MAAM,IAAI,IAAI,MAAM,OAAO,GAAG,CAAC;AAAA,EAChF;AACF,CAAC;AAEH,IAAM,sBAAsB;AAGrB,IAAM,4BAAoD,kBAAkB,YAAY,CAAC,OAAO,YAAY;AACjH,QAAM,QAAQ,CAAC,OAAgB,SAAoC;AACjE,QAAI,OAAO,UAAU,YAAY,oBAAoB,KAAK,KAAK,GAAG;AAChE,cAAQ,SAAS,EAAE,MAAM,UAAU,MAAM,SAAS,sDAAsD,CAAC;AACzG;AAAA,IACF;AACA,QAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,YAAM,QAAQ,CAAC,MAAM,UAAU,MAAM,MAAM,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC;AAC5D;AAAA,IACF;AACA,QAAI,CAAC,SAAS,OAAO,UAAU,SAAU;AACzC,eAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,KAAgC,GAAG;AAC3E,UAAI,QAAQ,OAAQ,SAAQ,SAAS,EAAE,MAAM,UAAU,MAAM,CAAC,GAAG,MAAM,GAAG,GAAG,SAAS,6CAA6C,CAAC;AACpI,YAAM,OAAO,CAAC,GAAG,MAAM,GAAG,CAAC;AAAA,IAC7B;AAAA,EACF;AACA,QAAM,OAAO,CAAC,CAAC;AACjB,CAAC;;;ACvED,SAAS,KAAAC,WAAS;AAOlB,IAAM,8BAA8BC,IACjC,OAAO;AAAA,EACN,MAAMA,IAAE,QAAQ,MAAM;AAAA,EACtB,MAAMA,IACH,OAAO,EACP,KAAK,EACL,IAAI,CAAC,EACL,YAAY,CAAC,QAAQ,YAAY;AAChC,UAAM,qBAAqB,gBAAgB,KAAK,MAAM;AACtD,QAAI,CAAC,sBAAsB,sBAAsB,KAAK,MAAM,GAAG;AAC7D,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AACL,CAAC,EACA,OAAO;AAEV,IAAM,6BAA6BA,IAChC,OAAO;AAAA,EACN,MAAMA,IAAE,QAAQ,KAAK;AAAA,EACrB,KAAKA,IACF,OAAO,EACP,KAAK,EACL,IAAI,CAAC,EACL,YAAY,CAAC,QAAQ,YAAY;AAChC,QAAI,CAAC,gBAAgB,KAAK,MAAM,GAAG;AACjC,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AACL,CAAC,EACA,OAAO;AAEV,IAAM,gCAAgCA,IACnC,OAAO;AAAA,EACN,MAAMA,IAAE,QAAQ,QAAQ;AAAA,EACxB,UAAU;AACZ,CAAC,EACA,OAAO;AAGH,IAAM,0BAA0BA,IAAE,mBAAmB,QAAQ,CAAC,6BAA6B,4BAA4B,6BAA6B,CAAC;AAErJ,IAAM,iCAAiCA,IAC3C,OAAO;AAAA;AAAA,EAEN,cAAcA,IAAE,MAAM,uBAAuB;AAC/C,CAAC,EACA,OAAO;AAGH,IAAM,0BAA0BA,IACpC,OAAO;AAAA,EACN,MAAMA,IAAE,QAAQ,eAAe;AAAA,EAC/B,YAAY;AAAA,EACZ,WAAW,yBAAyB,SAAS;AAC/C,CAAC,EACA,OAAO;AAGH,IAAM,0BAA0BA,IAAE,mBAAmB,QAAQ;AAAA,EAClEA,IACG,OAAO;AAAA,IACN,MAAMA,IAAE,QAAQ,eAAe;AAAA,IAC/B,YAAY;AAAA,IACZ,WAAW,yBAAyB,SAAS;AAAA,EAC/C,CAAC,EACA,OAAO;AAAA,EACVA,IACG,OAAO;AAAA,IACN,MAAMA,IAAE,QAAQ,YAAY;AAAA,IAC5B,eAAe;AAAA,IACf,WAAW,yBAAyB,SAAS;AAAA,EAC/C,CAAC,EACA,OAAO;AACZ,CAAC;AAEM,IAAM,2BAA2BA,IAAE,OAAO,0BAA0B,uBAAuB;AAE3F,IAAM,2BAA2BA,IAAE,OAAO,0BAA0B,uBAAuB;AAG3F,IAAM,+BAA+BA,IACzC,OAAO;AAAA,EACN,YAAY;AAAA,EACZ,QAAQ;AACV,CAAC,EACA,OAAO;AAGH,IAAM,yCAAyCA,IACnD,OAAO;AAAA,EACN,YAAY;AACd,CAAC,EACA,OAAO;AAGH,IAAM,mCAAmCA,IAC7C,OAAO;AAAA,EACN,YAAY;AACd,CAAC,EACA,OAAO;AAGH,IAAM,uCAAuCA,IACjD,OAAO;AAAA,EACN,sBAAsB;AAAA,EACtB,yBAAyB;AAAA,EACzB,kBAAkB;AACpB,CAAC,EACA,OAAO,EACP;AAAA,EACC,CAAC,EAAE,sBAAsB,yBAAyB,iBAAiB,OACjE,oBAAI,IAAI,CAAC,sBAAsB,yBAAyB,gBAAgB,CAAC,GAAE,SAAS;AAAA,EACtF,EAAE,SAAS,0DAA0D;AACvE;AAGK,IAAM,gCAAgCA,IAC1C,OAAO;AAAA,EACN,UAAU,6BAA6B,SAAS;AAAA,EAChD,UAAU,6BAA6B,SAAS;AAAA,EAChD,QAAQ,6BAA6B,SAAS;AAAA,EAC9C,YAAY,uCAAuC,SAAS;AAAA,EAC5D,gBAAgB,qCAAqC,SAAS;AAAA,EAC9D,YAAY,iCAAiC,SAAS;AACxD,CAAC,EACA,OAAO;AAEV,IAAM,sBAAsBA,IACzB,OAAO;AAAA,EACN,OAAOA,IAAE,OAAO,EAAE,SAAS;AAAA,EAC3B,MAAMA,IAAE,OAAO,EAAE,SAAS;AAC5B,CAAC,EACA,OAAO;AAEH,IAAM,+BAA+BA,IACzC,OAAO;AAAA,EACN,MAAM,oBAAoB,SAAS;AAAA,EACnC,kBAAkBA,IAAE,KAAK,CAAC,QAAQ,aAAa,aAAa,WAAW,CAAC,EAAE,SAAS;AAAA,EACnF,SAASA,IAAE,KAAK,CAAC,WAAW,WAAW,aAAa,CAAC,EAAE,SAAS;AAAA,EAChE,SAAS,kCAAkC,SAAS;AAAA;AAAA,EAEpD,gBAAgBA,IAAE,KAAK,CAAC,WAAW,WAAW,OAAO,CAAC,EAAE,SAAS;AAAA;AAAA,EAEjE,mBAAmBA,IAAE,QAAQ,EAAE,SAAS;AAC1C,CAAC,EACA,OAAO;AAEH,IAAM,oCAAoC,CAAC,aAAa,YAAY,YAAY,QAAQ;AACxF,IAAM,iCAAiC,CAAC,aAAa,UAAU;AAC/D,IAAM,gCAAgC,CAAC,QAAQ;AAEtD,IAAM,kCAAkCA,IACrC,OAAO,EACP,KAAK,EACL,MAAM,qCAAqC,iDAAiD;AAExF,IAAM,mCAAmCA,IAAE,MAAM;AAAA,EACtDA,IAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC;AAAA,EACvBA,IAAE,OAAOA,IAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,GAAGA,IAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,UAAU,OAAO,KAAK,KAAK,EAAE,SAAS,GAAG,uDAAuD;AACvK,CAAC;AAEM,IAAM,sCAAsCA,IAChD,OAAO;AAAA,EACN,IAAI;AAAA,EACJ,MAAMA,IAAE,QAAQ,YAAY;AAAA,EAC5B,KAAK;AACP,CAAC,EACA,OAAO;AAEH,IAAM,mCAAmCA,IAC7C,OAAO;AAAA,EACN,IAAI;AAAA,EACJ,MAAMA,IAAE,QAAQ,SAAS;AAAA,EACzB,KAAKA,IAAE,KAAK,8BAA8B;AAC5C,CAAC,EACA,OAAO;AAEH,IAAM,kCAAkCA,IAC5C,OAAO;AAAA,EACN,IAAI;AAAA,EACJ,MAAMA,IAAE,QAAQ,QAAQ;AAAA,EACxB,KAAKA,IAAE,KAAK,6BAA6B;AAAA,EACzC,MAAMA,IAAE,KAAK,CAAC,WAAW,QAAQ,CAAC,EAAE,SAAS;AAC/C,CAAC,EACA,OAAO;AAEH,IAAM,4BAA4BA,IAAE,mBAAmB,QAAQ,CAAC,qCAAqC,kCAAkC,+BAA+B,CAAC;AAEvK,IAAM,+BAA+BA,IACzC,OAAO;AAAA,EACN,IAAI;AAAA,EACJ,OAAO,iCAAiC,SAAS;AAAA,EACjD,eAAeA,IAAE,QAAQ,EAAE,SAAS;AAAA,EACpC,OAAOA,IAAE,MAAM,yBAAyB;AAC1C,CAAC,EACA,OAAO;AAEH,IAAM,8BAA8BA,IACxC,OAAO;AAAA,EACN,SAASA,IAAE,QAAQ,CAAC;AAAA,EACpB,UAAUA,IAAE,MAAM,4BAA4B,EAAE,IAAI,EAAE;AACxD,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,QAAM,aAAa,oBAAI,IAAY;AACnC,QAAM,UAAU,oBAAI,IAAY;AAChC,MAAI,YAAY;AAEhB,QAAM,SAAS,QAAQ,CAAC,SAAS,iBAAiB;AAChD,QAAI,WAAW,IAAI,QAAQ,EAAE,GAAG;AAC9B,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,SAAS,0CAA0C,QAAQ,EAAE;AAAA,QAC7D,MAAM,CAAC,YAAY,cAAc,IAAI;AAAA,MACvC,CAAC;AAAA,IACH;AACA,eAAW,IAAI,QAAQ,EAAE;AACzB,iBAAa,QAAQ,MAAM;AAE3B,YAAQ,MAAM,QAAQ,CAAC,MAAM,cAAc;AACzC,UAAI,QAAQ,IAAI,KAAK,EAAE,GAAG;AACxB,gBAAQ,SAAS;AAAA,UACf,MAAM;AAAA,UACN,SAAS,uCAAuC,KAAK,EAAE;AAAA,UACvD,MAAM,CAAC,YAAY,cAAc,SAAS,WAAW,IAAI;AAAA,QAC3D,CAAC;AAAA,MACH;AACA,cAAQ,IAAI,KAAK,EAAE;AAAA,IACrB,CAAC;AAAA,EACH,CAAC;AAED,MAAI,YAAY,KAAK;AACnB,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,SAAS;AAAA,MACT,MAAM,CAAC,UAAU;AAAA,IACnB,CAAC;AAAA,EACH;AACF,CAAC;AAEH,IAAM,qCAAqCA,IAAE,MAAMA,IAAE,KAAK,iCAAiC,CAAC,EAAE,YAAY,CAAC,OAAO,YAAY;AAC5H,QAAM,OAAO,oBAAI,IAAY;AAC7B,QAAM,QAAQ,CAAC,MAAM,UAAU;AAC7B,QAAI,KAAK,IAAI,IAAI,GAAG;AAClB,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,SAAS,2CAA2C,IAAI;AAAA,QACxD,MAAM,CAAC,KAAK;AAAA,MACd,CAAC;AAAA,IACH;AACA,SAAK,IAAI,IAAI;AAAA,EACf,CAAC;AACH,CAAC;AAGM,IAAM,+BAA+BA,IAAE,MAAM,CAACA,IAAE,QAAQ,GAAG,GAAG,oCAAoC,2BAA2B,CAAC;AAE9H,IAAM,qBAAqBA,IAC/B,OAAO;AAAA,EACN,OAAOA,IAAE,KAAK,CAAC,QAAQ,UAAU,OAAO,CAAC,EAAE,SAAS;AAAA,EACpD,aAAaA,IAAE,KAAK,CAAC,QAAQ,UAAU,OAAO,CAAC,EAAE,SAAS;AAAA,EAC1D,SAASA,IAAE,MAAM,CAACA,IAAE,QAAQ,GAAG,GAAGA,IAAE,MAAM,wBAAwB,CAAC,CAAC,EAAE,SAAS;AAAA,EAC/E,SAAS,6BAA6B,SAAS;AAAA,EAC/C,eAAeA,IAAE,QAAQ,EAAE,SAAS;AACtC,CAAC,EACA,OAAO;AAEV,IAAM,gCAAgCA,IACnC,OAAO;AAAA,EACN,IAAI;AAAA,EACJ,WAAWA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAChC,aAAaA,IAAE,MAAM,CAACA,IAAE,OAAO,GAAGA,IAAE,OAAO,wBAAwBA,IAAE,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS;AAAA,EAC1F,SAASA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAC9B,UAAUA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAC/B,MAAMA,IAAE,OAAO,EAAE,SAAS;AAAA,EAC1B,mBAAmBA,IAAE,QAAQ,EAAE,SAAS;AAAA,EACxC,aAAaA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAClC,kBAAkBA,IAAE,QAAQ,EAAE,SAAS;AACzC,CAAC,EACA,OAAO;AAUH,IAAM,gCAAgC,8BAA8B,OAAO;AAAA,EAChF,UAAUA,IAAE,MAAM,6BAA6B,EAAE,SAAS;AAC5D,CAAC,EAAE,OAAO;AAEV,IAAM,sBAAsBA,IACzB,OAAO;AAAA,EACN,OAAOA,IAAE,QAAQ,MAAM,EAAE,SAAS;AAAA,EAClC,YAAYA,IAAE,KAAK,CAAC,SAAS,YAAY,CAAC,EAAE,SAAS;AAAA,EACrD,UAAUA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS;AAAA,EACzC,aAAaA,IAAE,KAAK,CAAC,QAAQ,UAAU,OAAO,CAAC,EAAE,SAAS;AAAA,EAC1D,YAAYA,IAAE,OAAO,EAAE,SAAS;AAAA,EAChC,YAAYA,IAAE,KAAK,CAAC,WAAW,QAAQ,MAAM,MAAM,MAAM,MAAM,MAAM,CAAC,EAAE,SAAS;AACnF,CAAC,EACA,OAAO;AAEV,IAAM,mBAAmBA,IACtB,OAAO;AAAA,EACN,OAAOA,IAAE,OAAO,EAAE,SAAS;AAAA,EAC3B,KAAKA,IAAE,OAAO,EAAE,SAAS;AAAA,EACzB,MAAMA,IAAE,KAAK,CAAC,OAAO,OAAO,CAAC,EAAE,SAAS;AAAA,EACxC,eAAeA,IAAE,OAAO,EAAE,SAAS;AACrC,CAAC,EACA,OAAO;AAEV,IAAM,8BAA8BA,IACjC,OAAO;AAAA,EACN,IAAI;AAAA,EACJ,OAAOA,IAAE,MAAM,CAACA,IAAE,OAAO,GAAGA,IAAE,OAAO,wBAAwBA,IAAE,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS;AAAA,EACpF,OAAOA,IAAE,QAAQ,EAAE,SAAS;AAC9B,CAAC,EACA,OAAO;AAEV,IAAM,gCAAgCA,IACnC,OAAO;AAAA,EACN,YAAYA,IAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC;AAAA,EACnC,sBAAsBA,IAAE,MAAM,wBAAwB,EAAE,SAAS;AAAA,EACjE,sBAAsBA,IAAE,MAAM,wBAAwB,EAAE,SAAS;AAAA,EACjE,uBAAuBA,IAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,SAAS;AACjE,CAAC,EACA,OAAO;AAEH,IAAM,mCAAmCA,IAC7C,OAAO;AAAA,EACN,UAAU,iBAAiB,SAAS;AAAA,EACpC,OAAO,iBAAiB,SAAS;AAAA,EACjC,SAAS,yBAAyB,SAAS;AAAA,EAC3C,eAAe,iBAAiB,SAAS;AAAA,EACzC,kBAAkB,yBAAyB,SAAS;AAAA,EACpD,WAAWA,IAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EAC7C,MAAMA,IACH,OAAO;AAAA,IACN,aAAa,oBAAoB,SAAS;AAAA,IAC1C,aAAa,oBAAoB,SAAS;AAAA,IAC1C,SAASA,IAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EAC7C,CAAC,EACA,OAAO,EACP,SAAS;AAAA,EACZ,iBAAiBA,IAAE,QAAQ,EAAE,SAAS;AAAA,EACtC,mBAAmBA,IAAE,QAAQ,EAAE,SAAS;AAC1C,CAAC,EACA,OAAO;AAOH,IAAM,oCAAoCA,IAC9C,OAAO;AAAA,EACN,YAAY;AAAA,EACZ,SAAS;AACX,CAAC,EACA,OAAO,EACP,YAAY,CAAC,EAAE,WAAW,GAAG,YAAY;AACxC,MAAI,WAAW,YAAY,QAAQ;AACjC,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,cAAc,SAAS;AAAA,MAC9B,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,MAAI,CAAC,WAAW,UAAU,SAAS;AACjC,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,cAAc,aAAa,SAAS;AAAA,MAC3C,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,MAAI,CAAC,WAAW,WAAW,QAAQ;AACjC,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,cAAc,cAAc,QAAQ;AAAA,MAC3C,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,MAAI,CAAC,WAAW,WAAW,gBAAgB,SAAS,QAAQ,GAAG;AAC7D,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,cAAc,cAAc,iBAAiB;AAAA,MACpD,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACF,CAAC;AAEI,IAAM,iCAAiCA,IAC3C,OAAO;AAAA,EACN,IAAI;AAAA,EACJ,SAASA,IAAE,MAAM,wBAAwB;AAAA,EACzC,aAAa;AAAA,EACb,WAAWA,IAAE,QAAQ;AAAA,EACrB,SAASA,IAAE,OAAO,EAAE,SAAS;AAAA,EAC7B,WAAWA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS;AAAA,EAChD,kBAAkB,yBAAyB,SAAS;AAAA,EACpD,aAAa,yBAAyB,SAAS,EAAE,SAAS;AAAA,EAC1D,UAAU,yBAAyB,SAAS;AAC9C,CAAC,EACA,OAAO;AAEH,IAAM,8BAA8BA,IACxC,OAAO;AAAA,EACN,OAAOA,IAAE,MAAM,iCAAiC;AAAA,EAChD,YAAYA,IAAE,MAAM,8BAA8B;AAAA,EAClD,SAASA,IACN,OAAO;AAAA,IACN,SAASA,IAAE,QAAQ,EAAE,SAAS;AAAA,IAC9B,cAAcA,IAAE,QAAQ,EAAE,SAAS;AAAA,EACrC,CAAC,EACA,OAAO,EACP,SAAS;AAAA,EACZ,uBAAuBA,IAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS;AAAA,EAC/D,cAAcA,IACX,OAAO;AAAA,IACN,QAAQA,IAAE,MAAM,wBAAwB;AAAA,IACxC,OAAOA,IAAE,OAAO,0BAA0BA,IAAE,MAAM,wBAAwB,CAAC;AAAA,EAC7E,CAAC,EACA,OAAO,EACP,SAAS;AAAA,EACZ,WAAWA,IACR,OAAO;AAAA,IACN,sBAAsBA,IAAE,MAAM,wBAAwB,EAAE,SAAS;AAAA,IACjE,oBAAoBA,IAAE,MAAM,2BAA2B,EAAE,SAAS;AAAA,IAClE,gBAAgBA,IAAE,KAAK,CAAC,YAAY,MAAM,CAAC,EAAE,SAAS;AAAA,IACtD,kBAAkBA,IACf,OAAO;AAAA,MACN,QAAQA,IAAE,OAAO,EAAE,SAAS;AAAA,MAC5B,UAAUA,IAAE,MAAMA,IAAE,KAAK,CAAC,QAAQ,UAAU,UAAU,CAAC,CAAC,EAAE,SAAS;AAAA,MACnE,kBAAkBA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS;AAAA,MACjD,QAAQA,IACL,OAAO;AAAA,QACN,MAAM;AAAA,QACN,aAAaA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS;AAAA,QAC5C,aAAaA,IAAE,OAAO,EAAE,YAAY,EAAE,SAAS;AAAA,QAC/C,aAAaA,IAAE,OAAO,EAAE,YAAY,EAAE,SAAS;AAAA,MACjD,CAAC,EACA,OAAO,EACP,SAAS;AAAA,MACZ,SAASA,IACN,OAAO;AAAA,QACN,SAASA,IAAE,QAAQ,EAAE,SAAS;AAAA,QAC9B,yBAAyBA,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,QAC3D,QAAQA,IACL,OAAO;AAAA,UACN,OAAOA,IAAE,OAAO,EAAE,SAAS;AAAA,UAC3B,SAASA,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,UAC3C,YAAYA,IAAE,OAAO,EAAE,YAAY,EAAE,SAAS;AAAA,UAC9C,WAAWA,IAAE,OAAO,EAAE,YAAY,EAAE,SAAS;AAAA,UAC7C,OAAOA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS;AAAA,QAC9C,CAAC,EACA,OAAO,EACP,SAAS;AAAA,MACd,CAAC,EACA,OAAO,EACP,SAAS;AAAA,IACd,CAAC,EACA,OAAO,EACP,SAAS;AAAA,IACZ,sBAAsBA,IAAE,QAAQ,EAAE,SAAS;AAAA,IAC3C,sBAAsBA,IAAE,MAAM,wBAAwB,EAAE,SAAS;AAAA,IACjE,uBAAuBA,IAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,IAC/D,iBAAiBA,IAAE,MAAM,6BAA6B,EAAE,SAAS;AAAA,EACnE,CAAC,EACA,OAAO,EACP,SAAS;AACd,CAAC,EACA,OAAO,EACP,YAAY,CAAC,EAAE,OAAO,WAAW,GAAG,YAAY;AAC/C,QAAM,UAAU,MAAM,IAAI,CAAC,EAAE,WAAW,MAAM,WAAW,MAAM;AAC/D,QAAM,YAAY,IAAI,IAAI,OAAO;AACjC,MAAI,UAAU,SAAS,QAAQ,QAAQ;AACrC,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,OAAO;AAAA,MACd,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AAEA,QAAM,WAAW,WAAW,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE;AAC9C,MAAI,IAAI,IAAI,QAAQ,EAAE,SAAS,SAAS,QAAQ;AAC9C,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,YAAY;AAAA,MACnB,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AAEA,aAAW,QAAQ,CAAC,OAAO,eAAe;AACxC,UAAM,QAAQ,QAAQ,CAAC,QAAQ,cAAc;AAC3C,UAAI,CAAC,UAAU,IAAI,MAAM,GAAG;AAC1B,gBAAQ,SAAS;AAAA,UACf,MAAM;AAAA,UACN,MAAM,CAAC,cAAc,YAAY,WAAW,SAAS;AAAA,UACrD,SAAS,0DAA0D,MAAM;AAAA,QAC3E,CAAC;AAAA,MACH;AAAA,IACF,CAAC;AAAA,EACH,CAAC;AACH,CAAC;AAEH,IAAM,kBAAkBA,IACrB,OAAO;AAAA,EACN,YAAYA,IACT,OAAO;AAAA,IACN,UAAUA,IAAE,OAAO,EAAE,SAAS;AAAA,IAC9B,UAAUA,IAAE,OAAO,EAAE,SAAS;AAAA,EAChC,CAAC,EACA,OAAO,EACP,SAAS;AAAA,EACZ,MAAMA,IACH,OAAO;AAAA,IACN,KAAKA,IAAE,OAAO,EAAE,SAAS;AAAA,IACzB,UAAUA,IAAE,OAAO,EAAE,SAAS;AAAA,IAC9B,SAASA,IAAE,OAAO,EAAE,SAAS;AAAA,IAC7B,UAAUA,IAAE,KAAK,CAAC,OAAO,UAAU,QAAQ,CAAC,EAAE,SAAS;AAAA,IACvD,OAAOA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS;AAAA,EACxC,CAAC,EACA,OAAO,EACP,SAAS;AAAA,EACZ,WAAWA,IAAE,OAAO,EAAE,SAAS;AACjC,CAAC,EACA,OAAO;AAEV,IAAM,gCAAgC;AAAA,EACpC,aAAaA,IAAE,KAAK,CAAC,UAAU,QAAQ,CAAC,EAAE,SAAS;AACrD;AAEA,IAAM,iCAAiCA,IACpC,OAAO;AAAA,EACN,MAAMA,IAAE,QAAQ,SAAS;AAAA,EACzB,GAAG;AACL,CAAC,EACA,OAAO;AAEV,IAAM,kCAAkCA,IACrC,OAAO;AAAA,EACN,MAAMA,IAAE,QAAQ,UAAU;AAAA,EAC1B,SAASA,IAAE,OAAO;AAAA,EAClB,GAAG;AACL,CAAC,EACA,OAAO;AAEV,IAAM,8BAA8BA,IACjC,OAAO;AAAA,EACN,MAAMA,IAAE,QAAQ,MAAM;AAAA,EACtB,SAASA,IAAE,OAAO;AAAA,EAClB,GAAG;AACL,CAAC,EACA,OAAO;AAEV,IAAM,gCAAgCA,IACnC,OAAO;AAAA,EACN,MAAMA,IAAE,QAAQ,QAAQ;AAAA,EACxB,GAAG;AAAA,EACH,KAAKA,IAAE,OAAO,EAAE,OAAO,CAAC,UAAU;AAChC,QAAI,YAAY,KAAK,KAAK,GAAG;AAC3B,aAAO,CAAC,MAAM,SAAS,IAAI;AAAA,IAC7B;AACA,QAAI;AACF,YAAM,MAAM,IAAI,IAAI,KAAK;AACzB,cAAQ,IAAI,aAAa,WAAW,IAAI,aAAa,aAAa,CAAC,IAAI,YAAY,CAAC,IAAI;AAAA,IAC1F,QAAQ;AACN,aAAO;AAAA,IACT;AAAA,EACF,GAAG,gGAAgG;AACrG,CAAC,EACA,OAAO;AAEH,IAAM,gCAAgCA,IAAE,mBAAmB,QAAQ;AAAA,EACxE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAED,IAAM,kCAAkCA,IACrC,MAAMA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,GAAI,CAAC,EAC3C,IAAI,CAAC,EACL,IAAI,EAAE,EACN,YAAY,CAAC,SAAS,YAAY;AACjC,QAAM,OAAO,oBAAI,IAAY;AAC7B,UAAQ,QAAQ,CAAC,QAAQ,UAAU;AACjC,QAAI,KAAK,IAAI,MAAM,GAAG;AACpB,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QACN,SAAS,0CAA0C,MAAM;AAAA,QACzD,MAAM,CAAC,KAAK;AAAA,MACd,CAAC;AAAA,IACH;AACA,SAAK,IAAI,MAAM;AAAA,EACjB,CAAC;AACH,CAAC;AAEI,IAAM,+BAA+BA,IACzC,OAAO;AAAA,EACN,WAAWA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAChC,cAAcA,IAAE,QAAQ,EAAE,SAAS;AAAA,EACnC,iBAAiB,gCAAgC,SAAS;AAAA,EAC1D,gBAAgBA,IAAE,KAAK,CAAC,QAAQ,SAAS,SAAS,CAAC,EAAE,SAAS;AAAA,EAC9D,WAAWA,IAAE,KAAK,CAAC,SAAS,OAAO,eAAe,CAAC,EAAE,SAAS;AAAA,EAC9D,SAASA,IAAE,KAAK,CAAC,WAAW,WAAW,aAAa,CAAC,EAAE,SAAS;AAClE,CAAC,EACA,OAAO;AAGH,IAAM,gCAAgCA,IAC1C,OAAO;AAAA,EACN,OAAOA,IACJ,OAAO;AAAA,IACN,IAAIA,IAAE,OAAO,EAAE,SAAS;AAAA,IACxB,MAAMA,IAAE,OAAO,EAAE,SAAS;AAAA,IAC1B,OAAOA,IAAE,OAAO,EAAE,SAAS;AAAA,IAC3B,SAAS,oBAAoB,SAAS;AAAA,IACtC,MAAM,oBAAoB,SAAS;AAAA,IACnC,SAASA,IAAE,OAAO,EAAE,SAAS;AAAA,IAC7B,MAAMA,IACH,OAAO,EAAE,SAASA,IAAE,KAAK,CAAC,SAAS,OAAO,CAAC,EAAE,CAAC,EAC9C,OAAO,EACP,SAAS;AAAA,IACZ,OAAOA,IACJ,OAAO;AAAA,MACN,UAAUA,IAAE,KAAK,CAAC,aAAa,YAAY,gBAAgB,eAAe,cAAc,eAAe,CAAC;AAAA,IAC1G,CAAC,EACA,OAAO,EACP,SAAS;AAAA,IACZ,OAAOA,IACJ,OAAO;AAAA,MACN,OAAO,iBAAiB,SAAS;AAAA,MACjC,OAAO,iBAAiB,SAAS;AAAA,IACnC,CAAC,EACA,OAAO,EACP,SAAS;AAAA,IACZ,OAAOA,IACJ,OAAO;AAAA,MACN,MAAMA,IACH,OAAO;AAAA,QACN,OAAOA,IACJ,OAAO;AAAA,UACN,aAAaA,IAAE,QAAQ;AAAA,UACvB,aAAaA,IAAE,QAAQ;AAAA,QACzB,CAAC,EACA,OAAO;AAAA,QACV,UAAUA,IAAE,KAAK,CAAC,YAAY,UAAU,CAAC;AAAA,QACzC,YAAYA,IAAE,QAAQ;AAAA,QACtB,SAASA,IAAE,OAAO,EAAE,OAAOA,IAAE,KAAK,CAAC,WAAW,YAAY,SAAS,CAAC,EAAE,CAAC,EAAE,OAAO;AAAA,MAClF,CAAC,EACA,OAAO;AAAA,IACZ,CAAC,EACA,OAAO,EACP,SAAS;AAAA,IACZ,WAAW,gBAAgB,SAAS;AAAA,IACpC,kBAAkBA,IAAE,OAAOA,IAAE,OAAO,GAAGA,IAAE,OAAO,CAAC,EAAE,SAAS;AAAA,IAC5D,iBAAiBA,IAAE,QAAQ,EAAE,SAAS;AAAA,IACtC,yBAAyBA,IAAE,QAAQ,EAAE,SAAS;AAAA,IAC9C,sBAAsBA,IAAE,QAAQ,EAAE,SAAS;AAAA,IAC3C,oBAAoBA,IAAE,KAAK,CAAC,WAAW,UAAU,CAAC,EAAE,SAAS;AAAA,IAC7D,UAAUA,IACP,OAAO;AAAA,MACN,uBAAuBA,IAAE,QAAQ,EAAE,SAAS;AAAA,MAC5C,UAAUA,IAAE,KAAK,CAAC,SAAS,QAAQ,MAAM,CAAC,EAAE,SAAS;AAAA,MACrD,UAAUA,IAAE,KAAK,CAAC,SAAS,SAAS,OAAO,CAAC,EAAE,SAAS;AAAA,MACvD,oBAAoBA,IAAE,QAAQ,EAAE,SAAS;AAAA,MACzC,oBAAoBA,IAAE,QAAQ,EAAE,SAAS;AAAA,IAC3C,CAAC,EACA,OAAO,EACP,SAAS;AAAA,IACZ,SAASA,IACN,OAAO;AAAA,MACN,qBAAqBA,IAAE,MAAM,CAACA,IAAE,QAAQ,GAAG,GAAGA,IAAE,MAAM,wBAAwB,CAAC,CAAC,EAAE,SAAS;AAAA,MAC3F,qBAAqBA,IAAE,MAAM,CAACA,IAAE,QAAQ,GAAG,GAAGA,IAAE,MAAM,6BAA6B,CAAC,CAAC,EAAE,SAAS;AAAA,MAChG,iBAAiBA,IAAE,MAAM,CAACA,IAAE,QAAQ,GAAG,GAAGA,IAAE,MAAM,wBAAwB,CAAC,CAAC,EAAE,SAAS;AAAA,IACzF,CAAC,EACA,OAAO,EACP,SAAS;AAAA,IACZ,SAAS,mBAAmB,SAAS;AAAA,IACrC,cAAcA,IACX,OAAO;AAAA,MACN,gBAAgBA,IAAE,KAAK,CAAC,WAAW,QAAQ,CAAC,EAAE,SAAS;AAAA,MACvD,2BAA2BA,IAAE,QAAQ,EAAE,SAAS;AAAA,MAChD,SAAS,oBAAoB,SAAS;AAAA,IACxC,CAAC,EACA,OAAO,EACP,SAAS;AAAA,IACZ,oBAAoBA,IAAE,KAAK,CAAC,QAAQ,OAAO,CAAC,EAAE,SAAS;AAAA,IACvD,YAAY,6BAA6B,SAAS;AAAA,IAClD,qBAAqBA,IAAE,QAAQ,EAAE,SAAS;AAAA,IAC1C,8BAA8BA,IAC3B,OAAO;AAAA,MACN,0BAA0BA,IAAE,KAAK,CAAC,oBAAoB,eAAe,CAAC,EAAE,SAAS;AAAA,MACjF,eAAeA,IAAE,KAAK,CAAC,WAAW,UAAU,aAAa,MAAM,CAAC,EAAE,SAAS;AAAA,MAC3E,iBAAiBA,IAAE,QAAQ,EAAE,SAAS;AAAA,MACtC,aAAaA,IAAE,KAAK,CAAC,QAAQ,SAAS,CAAC,EAAE,SAAS;AAAA,MAClD,kBAAkBA,IAAE,QAAQ,EAAE,SAAS;AAAA,MACvC,aAAaA,IAAE,KAAK,CAAC,OAAO,OAAO,OAAO,QAAQ,MAAM,CAAC,EAAE,SAAS;AAAA,IACtE,CAAC,EACA,OAAO,EACP,SAAS;AAAA,IACZ,6BAA6BA,IAAE,QAAQ,EAAE,SAAS;AAAA,IAClD,4BAA4BA,IAAE,QAAQ,EAAE,SAAS;AAAA,IACjD,uBAAuBA,IAAE,QAAQ,EAAE,SAAS;AAAA,IAC5C,mCAAmCA,IAAE,QAAQ,EAAE,SAAS;AAAA,IACxD,0BAA0BA,IAAE,QAAQ,EAAE,SAAS;AAAA,IAC/C,+BAA+BA,IAAE,QAAQ,EAAE,SAAS;AAAA,IACpD,4BAA4BA,IAAE,QAAQ,EAAE,SAAS;AAAA,IACjD,KAAKA,IACF,OAAO;AAAA,MACN,aAAaA,IAAE,QAAQ;AAAA,MACvB,UAAUA,IAAE,QAAQ,EAAE,SAAS;AAAA,IACjC,CAAC,EACA,OAAO,EACP,SAAS;AAAA,IACZ,iBAAiBA,IAAE,QAAQ,EAAE,SAAS;AAAA,IACtC,mBAAmBA,IAAE,MAAM,CAACA,IAAE,QAAQ,KAAK,GAAGA,IAAE,KAAK,CAAC,UAAU,UAAU,KAAK,CAAC,CAAC,CAAC,EAAE,SAAS;AAAA,IAC7F,YAAYA,IAAE,QAAQ,EAAE,SAAS;AAAA,IACjC,WAAWA,IAAE,KAAK,CAAC,UAAU,QAAQ,CAAC,EAAE,SAAS;AAAA,IACjD,SAASA,IAAE,KAAK,CAAC,WAAW,WAAW,aAAa,CAAC,EAAE,SAAS;AAAA,IAChE,cAAcA,IACX,OAAO;AAAA,MACN,SAASA,IACN,OAAO,EAAE,SAASA,IAAE,KAAK,CAAC,WAAW,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC,EAC9D,OAAO,EACP,SAAS;AAAA,MACZ,OAAOA,IACJ,OAAO,EAAE,SAASA,IAAE,KAAK,CAAC,WAAW,SAAS,CAAC,EAAE,SAAS,EAAE,CAAC,EAC7D,OAAO,EACP,SAAS;AAAA,MACZ,OAAOA,IAAE,OAAO,EAAE,WAAWA,IAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,SAAS;AAAA,MACzE,YAAYA,IAAE,OAAO,EAAE,mBAAmBA,IAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,SAAS;AAAA,MACtF,SAASA,IAAE,KAAK,CAAC,WAAW,WAAW,aAAa,CAAC,EAAE,SAAS;AAAA,IAClE,CAAC,EACA,OAAO,EACP,SAAS;AAAA,IACZ,UAAUA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS;AAAA,IACzC,UAAUA,IAAE,OAAO,EAAE,oCAAoCA,IAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,SAAS;AAAA,IAC1F,UAAUA,IAAE,OAAO,EAAE,qBAAqBA,IAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,SAAS;AAAA,IAC3E,eAAeA,IAAE,OAAO,EAAE,SAASA,IAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,SAAS;AAAA,IACpE,UAAUA,IACP,OAAO;AAAA,MACN,aAAaA,IAAE,KAAK,CAAC,YAAY,YAAY,CAAC;AAAA,MAC9C,aAAaA,IAAE,QAAQ;AAAA,MACvB,YAAYA,IAAE,QAAQ;AAAA,IACxB,CAAC,EACA,OAAO,EACP,SAAS;AAAA,IACZ,gBAAgBA,IACb,OAAO;AAAA,MACN,UAAUA,IAAE,QAAQ;AAAA,MACpB,iBAAiBA,IAAE,QAAQ;AAAA,MAC3B,iBAAiBA,IAAE,QAAQ,EAAE,SAAS;AAAA,MACtC,oBAAoBA,IAAE,QAAQ;AAAA,MAC9B,cAAcA,IAAE,QAAQ;AAAA,MACxB,cAAcA,IAAE,QAAQ;AAAA,MACxB,gBAAgBA,IAAE,QAAQ;AAAA,MAC1B,aAAaA,IAAE,QAAQ;AAAA,MACvB,iBAAiBA,IAAE,KAAK,CAAC,UAAU,MAAM,CAAC,EAAE,SAAS;AAAA,MACrD,iBAAiBA,IAAE,QAAQ;AAAA,MAC3B,iBAAiBA,IAAE,QAAQ;AAAA,MAC3B,yBAAyBA,IAAE,QAAQ,EAAE,SAAS;AAAA,MAC9C,2BAA2BA,IAAE,QAAQ,EAAE,SAAS;AAAA,MAChD,sBAAsBA,IAAE,QAAQ,EAAE,SAAS;AAAA,MAC3C,kBAAkBA,IAAE,QAAQ,EAAE,SAAS;AAAA,MACvC,qBAAqBA,IAAE,QAAQ,EAAE,SAAS;AAAA,MAC1C,cAAcA,IAAE,QAAQ,EAAE,SAAS;AAAA,MACnC,oBAAoBA,IAAE,QAAQ,EAAE,SAAS;AAAA,MACzC,WAAWA,IAAE,QAAQ,EAAE,SAAS;AAAA,MAChC,YAAYA,IAAE,MAAM,wBAAwB,EAAE,SAAS;AAAA,IACzD,CAAC,EACA,OAAO,EACP,SAAS;AAAA,IACZ,WAAW,4BAA4B,SAAS;AAAA,IAChD,oBAAoBA,IAAE,MAAM,wBAAwB,EAAE,SAAS;AAAA,IAC/D,UAAUA,IAAE,QAAQ,EAAE,SAAS;AAAA,IAC/B,gBAAgBA,IAAE,QAAQ,EAAE,SAAS;AAAA,IACrC,OAAOA,IACJ,OAAO;AAAA,MACN,eAAeA,IAAE,MAAM,CAACA,IAAE,QAAQ,GAAG,GAAGA,IAAE,MAAM,wBAAwB,CAAC,CAAC;AAAA,MAC1E,gBAAgB,yBAAyB,SAAS;AAAA,MAClD,kBAAkBA,IAAE,QAAQ,EAAE,SAAS;AAAA,IACzC,CAAC,EACA,OAAO,EACP,SAAS;AAAA,IACZ,OAAO,6BAA6B,SAAS;AAAA,EAC/C,CAAC,EACA,OAAO;AAAA,EACV,aAAa,8BAA8B,SAAS;AAAA,EACpD,MAAMA,IACH,OAAO;AAAA,IACN,SAASA,IAAE,MAAM,wBAAwB,EAAE,QAAQ,CAAC,CAAC;AAAA,IACrD,MAAMA,IACH,OAAO;AAAA,MACN,YAAYA,IAAE,OAAO,EAAE,SAAS;AAAA,MAChC,YAAYA,IAAE,QAAQ,EAAE,SAAS;AAAA,IACnC,CAAC,EACA,OAAO,EACP,SAAS;AAAA,IACZ,UAAUA,IACP,OAAO;AAAA,MACN,qBAAqBA,IAAE,QAAQ,EAAE,SAAS;AAAA,MAC1C,qBAAqBA,IAAE,QAAQ,EAAE,SAAS;AAAA,IAC5C,CAAC,EACA,OAAO,EACP,SAAS;AAAA,IACZ,sBAAsBA,IACnB,OAAO;AAAA,MACN,SAASA,IAAE,QAAQ,EAAE,SAAS;AAAA,IAChC,CAAC,EACA,OAAO,EACP,SAAS;AAAA,IACZ,eAAeA,IAAE,QAAQ,EAAE,SAAS;AAAA,IACpC,YAAYA,IAAE,QAAQ,EAAE,SAAS;AAAA,IACjC,kBAAkBA,IAAE,QAAQ,EAAE,SAAS;AAAA,EACzC,CAAC,EACA,OAAO;AAAA,EACV,WAAWA,IAAE,OAAO,0BAA0BA,IAAE,OAAO,CAAC;AAAA,EACxD,QAAQA,IAAE,MAAM,CAACA,IAAE,QAAQ,GAAG,GAAGA,IAAE,MAAM,wBAAwB,CAAC,CAAC;AAAA,EACnE,UAAUA,IACP,OAAO;AAAA,IACN,qCAAqCA,IAAE,QAAQ,EAAE,SAAS;AAAA,IAC1D,kBAAkBA,IAAE,QAAQ,EAAE,SAAS;AAAA,IACvC,gCAAgCA,IAAE,QAAQ,EAAE,SAAS;AAAA,EACvD,CAAC,EACA,OAAO;AAAA,EACV,gBAAgBA,IACb,OAAO;AAAA,IACN,oBAAoBA,IAAE,OAAO,EAAE,SAAS;AAAA,IACxC,kBAAkBA,IAAE,OAAO,EAAE,SAAS;AAAA,IACtC,oBAAoBA,IAAE,MAAM,wBAAwB,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,IACvE,mBAAmBA,IAAE,OAAO,EAAE,SAAS;AAAA,IACvC,8BAA8BA,IAAE,OAAO,EAAE,SAAS;AAAA,IAClD,0BAA0BA,IAAE,OAAO,EAAE,SAAS;AAAA,IAC9C,mBAAmBA,IAChB,OAAO;AAAA,MACN,YAAY;AAAA,MACZ,QAAQ,yBAAyB,SAAS;AAAA,MAC1C,UAAUA,IAAE,KAAK,CAAC,UAAU,aAAa,YAAY,CAAC,EAAE,SAAS;AAAA,MACjE,QAAQ,yBAAyB,SAAS;AAAA,MAC1C,UAAUA,IAAE,QAAQ,EAAE,SAAS;AAAA,MAC/B,UAAUA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS;AAAA,MAC/C,QAAQA,IAAE,KAAK,CAAC,aAAa,YAAY,qBAAqB,mBAAmB,CAAC,EAAE,SAAS;AAAA,MAC7F,WAAWA,IAAE,KAAK,CAAC,OAAO,MAAM,CAAC,EAAE,SAAS;AAAA,MAC5C,UAAUA,IAAE,OAAOA,IAAE,OAAO,GAAGA,IAAE,OAAO,CAAC,EAAE,SAAS;AAAA,MACpD,WAAWA,IAAE,OAAOA,IAAE,OAAO,GAAGA,IAAE,OAAO,CAAC,EAAE,SAAS;AAAA,IACvD,CAAC,EACA,OAAO,EACP,SAAS;AAAA,IACZ,wBAAwBA,IACrB,OAAO;AAAA,MACN,YAAY;AAAA,MACZ,QAAQ,yBAAyB,SAAS;AAAA,MAC1C,UAAUA,IAAE,KAAK,CAAC,UAAU,aAAa,YAAY,CAAC,EAAE,SAAS;AAAA,MACjE,QAAQ,yBAAyB,SAAS;AAAA,MAC1C,UAAUA,IAAE,QAAQ,EAAE,SAAS;AAAA,MAC/B,UAAUA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS;AAAA,MAC/C,QAAQA,IAAE,KAAK,CAAC,aAAa,YAAY,mBAAmB,CAAC,EAAE,SAAS;AAAA,MACxE,WAAWA,IAAE,KAAK,CAAC,OAAO,MAAM,CAAC,EAAE,SAAS;AAAA,MAC5C,UAAUA,IAAE,OAAOA,IAAE,OAAO,GAAGA,IAAE,OAAO,CAAC,EAAE,SAAS;AAAA,MACpD,WAAWA,IAAE,OAAOA,IAAE,OAAO,GAAGA,IAAE,OAAO,CAAC,EAAE,SAAS;AAAA,IACvD,CAAC,EACA,OAAO,EACP,SAAS;AAAA,IACZ,oBAAoBA,IACjB,OAAO;AAAA,MACN,YAAY,yBAAyB,SAAS;AAAA,MAC9C,QAAQ,yBAAyB,SAAS;AAAA,MAC1C,gBAAgB,yBAAyB,SAAS;AAAA,MAClD,UAAUA,IAAE,OAAO,EAAE,SAAS;AAAA,MAC9B,QAAQ,yBAAyB,SAAS;AAAA,MAC1C,yBAAyB,yBAAyB,SAAS;AAAA,MAC3D,KAAKA,IACF,OAAO;AAAA,QACN,SAASA,IAAE,OAAO,EAAE,SAAS;AAAA,QAC7B,WAAWA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS;AAAA,MAClD,CAAC,EACA,OAAO,EACP,SAAS;AAAA,MACZ,SAASA,IACN,OAAO;AAAA,QACN,OAAO;AAAA,QACP,sBAAsBA,IAAE,QAAQ;AAAA,QAChC,4BAA4BA,IAAE,QAAQ;AAAA,QACtC,qBAAqBA,IAAE,QAAQ;AAAA,MACjC,CAAC,EACA,OAAO,EACP,SAAS;AAAA,IACd,CAAC,EACA,OAAO,EACP,SAAS;AAAA,IACZ,mBAAmBA,IAChB,OAAO;AAAA,MACN,YAAY;AAAA,MACZ,QAAQ,yBAAyB,SAAS;AAAA,MAC1C,QAAQ,yBAAyB,SAAS;AAAA,IAC5C,CAAC,EACA,OAAO,EACP,SAAS;AAAA,IACZ,YAAY,8BAA8B,SAAS;AAAA,IACnD,SAASA,IACN,OAAO;AAAA,MACN,iBAAiBA,IACd,OAAO;AAAA,QACN,SAASA,IAAE,QAAQ,EAAE,SAAS;AAAA,QAC9B,WAAWA,IACR,OAAO;AAAA,UACN,MAAMA,IAAE,KAAK,CAAC,kBAAkB,UAAU,CAAC,EAAE,SAAS;AAAA,UACtD,YAAY,yBAAyB,SAAS;AAAA,UAC9C,UAAU,yBAAyB,SAAS;AAAA,UAC5C,OAAO,yBAAyB,SAAS;AAAA,QAC3C,CAAC,EACA,OAAO,EACP,SAAS;AAAA,MACd,CAAC,EACA,OAAO,EACP,SAAS;AAAA,MACZ,aAAaA,IACV,OAAO;AAAA,QACN,oBAAoBA,IAAE,QAAQ,EAAE,SAAS;AAAA,QACzC,qBAAqBA,IAAE,QAAQ,EAAE,SAAS;AAAA,QAC1C,0BAA0BA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS;AAAA,QAC/D,yBAAyBA,IAAE,KAAK,CAAC,UAAU,MAAM,CAAC,EAAE,SAAS;AAAA,MAC/D,CAAC,EACA,OAAO,EACP,SAAS;AAAA,MACZ,aAAaA,IACV,OAAO;AAAA,QACN,WAAWA,IAAE,KAAK,CAAC,UAAU,YAAY,CAAC,EAAE,SAAS;AAAA,QACrD,UAAUA,IACP,OAAO;AAAA,UACN,SAASA,IAAE,QAAQ,EAAE,SAAS;AAAA,UAC9B,SAASA,IAAE,MAAMA,IAAE,KAAK,CAAC,QAAQ,QAAQ,QAAQ,CAAC,CAAC,EAAE,SAAS;AAAA,UAC9D,SAASA,IAAE,KAAK,CAAC,QAAQ,QAAQ,QAAQ,CAAC,EAAE,SAAS;AAAA,QACvD,CAAC,EACA,OAAO,EACP,SAAS;AAAA,QACZ,aAAaA,IACV,OAAO;AAAA,UACN,SAASA,IAAE,QAAQ,EAAE,SAAS;AAAA,UAC9B,SAASA,IAAE,MAAMA,IAAE,KAAK,CAAC,QAAQ,OAAO,CAAC,CAAC,EAAE,SAAS;AAAA,UACrD,SAASA,IAAE,KAAK,CAAC,QAAQ,OAAO,CAAC,EAAE,SAAS;AAAA,QAC9C,CAAC,EACA,OAAO,EACP,SAAS;AAAA,QACZ,kBAAkBA,IACf,OAAO;AAAA,UACN,SAASA,IAAE,QAAQ,EAAE,SAAS;AAAA,UAC9B,SAASA,IAAE,MAAMA,IAAE,KAAK,CAAC,UAAU,MAAM,CAAC,CAAC,EAAE,SAAS;AAAA,UACtD,SAASA,IAAE,KAAK,CAAC,UAAU,MAAM,CAAC,EAAE,SAAS;AAAA,QAC/C,CAAC,EACA,OAAO,EACP,SAAS;AAAA,MACd,CAAC,EACA,OAAO,EACP,SAAS;AAAA,MACZ,uBAAuBA,IAAE,OAAO,EAAE,WAAWA,IAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,SAAS;AAAA,IAChF,CAAC,EACA,OAAO,EACP,SAAS;AAAA,EACd,CAAC,EACA,OAAO,EACP,SAAS;AAAA,EACZ,eAAeA,IACZ,OAAO;AAAA,IACN,cAAcA,IACX,OAAO;AAAA,MACN,QAAQA,IACL,OAAO;AAAA,QACN,UAAUA,IAAE,OAAO,EAAE,SAAS;AAAA,QAC9B,eAAeA,IAAE,MAAMA,IAAE,OAAO,CAAC,EAAE,SAAS;AAAA,QAC5C,UAAUA,IAAE,OAAO,EAAE,SAAS;AAAA,QAC9B,WAAWA,IAAE,OAAO,EAAE,SAAS;AAAA,QAC/B,UAAUA,IAAE,QAAQ,EAAE,SAAS;AAAA,QAC/B,UAAUA,IAAE,OAAO,EAAE,SAAS;AAAA,MAChC,CAAC,EACA,OAAO,EACP,SAAS;AAAA,MACZ,QAAQA,IACL,OAAO;AAAA,QACN,SAASA,IAAE,OAAO,EAAE,SAAS;AAAA,QAC7B,aAAaA,IAAE,MAAMA,IAAE,OAAO,CAAC,EAAE,SAAS;AAAA,QAC1C,WAAWA,IAAE,OAAO,EAAE,SAAS;AAAA,QAC/B,mBAAmBA,IAAE,OAAO,EAAE,SAAS;AAAA,QACvC,0BAA0BA,IAAE,QAAQ,EAAE,SAAS;AAAA,QAC/C,UAAUA,IAAE,OAAO,EAAE,SAAS;AAAA,MAChC,CAAC,EACA,OAAO,EACP,SAAS;AAAA,MACZ,YAAYA,IACT,OAAO;AAAA,QACN,YAAYA,IAAE,OAAO,EAAE,SAAS;AAAA,QAChC,cAAcA,IAAE,OAAO,EAAE,SAAS;AAAA,QAClC,kBAAkBA,IAAE,OAAO,EAAE,SAAS;AAAA,QACtC,WAAWA,IAAE,OAAO,EAAE,SAAS;AAAA,QAC/B,iBAAiBA,IAAE,MAAMA,IAAE,OAAO,CAAC,EAAE,SAAS;AAAA,QAC9C,wBAAwBA,IAAE,QAAQ,EAAE,SAAS;AAAA,QAC7C,UAAUA,IAAE,OAAO,EAAE,SAAS;AAAA,MAChC,CAAC,EACA,OAAO,EACP,SAAS;AAAA,IACd,CAAC,EACA,OAAO,EACP,SAAS;AAAA,EACd,CAAC,EACA,OAAO,EACP,SAAS;AAAA,EACZ,MAAMA,IAAE,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS;AAAA,EACrC,SAASA,IACN,OAAO;AAAA,IACN,aAAaA,IAAE,KAAK,CAAC,YAAY,WAAW,MAAM,CAAC,EAAE,SAAS;AAAA,IAC9D,SAASA,IACN,OAAO;AAAA,MACN,kBAAkBA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AAAA,MAC5C,SAASA,IAAE;AAAA,QACTA,IACG,OAAO;AAAA,UACN,IAAI;AAAA,UACJ,UAAU;AAAA,UACV,uBAAuB;AAAA,UACvB,aAAaA,IAAE;AAAA,YACbA,IACG,OAAO;AAAA,cACN,IAAI;AAAA,cACJ,MAAMA,IAAE,KAAK,CAAC,mBAAmB,mBAAmB,CAAC;AAAA,cACrD,UAAUA,IAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC;AAAA,cACjC,WAAWA,IAAE,QAAQ,EAAE,SAAS;AAAA,cAChC,eAAeA,IAAE,OAAO,EAAE,SAAS;AAAA,YACrC,CAAC,EACA,OAAO;AAAA,UACZ;AAAA,QACF,CAAC,EACA,OAAO;AAAA,MACZ;AAAA,IACF,CAAC,EACA,OAAO,EACP,SAAS;AAAA,EACd,CAAC,EACA,OAAO,EACP,SAAS;AAAA,EACZ,YAAYA,IAAE,OAAO,EAAE,SAASA,IAAE,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,SAAS;AAC7E,CAAC,EACA,OAAO;AAEH,IAAM,4CAA4CA,IACtD,OAAO;AAAA,EACN,UAAUA,IAAE,QAAQ,qCAAqC;AAAA,EACzD,eAAeA,IAAE,QAAQ,CAAC;AAAA,EAC1B,OAAOA,IAAE,KAAK,CAAC,YAAY,SAAS,CAAC;AAAA,EACrC,YAAY;AAAA,EACZ,iBAAiBA,IAAE,MAAMA,IAAE,KAAK,CAAC,UAAU,QAAQ,CAAC,CAAC;AAAA,EACrD,YAAYA,IAAE,OAAO,EAAE,IAAI,EAAE,YAAY;AAAA,EACzC,MAAMA,IAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC;AAC/B,CAAC,EACA,OAAO;AAEH,IAAM,4BAA4BA,IACtC,OAAO;AAAA,EACN,UAAUA,IAAE,QAAQ,qBAAqB;AAAA,EACzC,UAAU;AAAA,EACV,OAAO;AAAA,EACP,aAAa;AAAA,EACb,cAAc;AAAA,EACd,YAAYA,IAAE,MAAM,wBAAwB,EAAE,QAAQ,CAAC,CAAC;AAAA,EACxD,UAAUA,IAAE,MAAM,wBAAwB,EAAE,QAAQ,CAAC,CAAC;AAAA,EACtD,cAAcA,IAAE,OAAOA,IAAE,OAAO,GAAGA,IAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC;AAAA,EAC1D,aAAa;AAAA,EACb,aAAa;AAAA,EACb,WAAWA,IAAE,OAAOA,IAAE,OAAO,GAAG,wBAAwB;AAAA,EACxD,UAAUA,IAAE,MAAMA,IAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC;AAAA,EACxC,OAAO,wBAAwB,SAAS;AAAA,EACxC,mBAAmB;AAAA,EACnB,oBAAoB,0CAA0C,SAAS;AACzE,CAAC,EACA,OAAO;AAGH,IAAM,4BAA4BA,IACtC,OAAO;AAAA,EACN,UAAUA,IAAE,QAAQ,qBAAqB;AAAA,EACzC,UAAU;AAAA,EACV,OAAO;AAAA,EACP,aAAa;AAAA,EACb,cAAc;AAAA,EACd,YAAYA,IAAE,MAAM,wBAAwB,EAAE,QAAQ,CAAC,CAAC;AAAA,EACxD,UAAUA,IAAE,MAAM,wBAAwB,EAAE,QAAQ,CAAC,CAAC;AAAA,EACtD,cAAcA,IAAE,OAAOA,IAAE,OAAO,GAAGA,IAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC;AAAA,EAC1D,aAAa;AAAA,EACb,aAAa;AAAA,EACb,WAAWA,IAAE,OAAOA,IAAE,OAAO,GAAG,wBAAwB;AAAA,EACxD,UAAUA,IAAE,MAAMA,IAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC;AAAA,EACxC,YAAY,wBAAwB,SAAS;AAAA,EAC7C,mBAAmB;AAAA,EACnB,oBAAoB,0CAA0C,SAAS;AACzE,CAAC,EACA,OAAO;;;ACvlCV,SAAS,KAAAC,WAAS;AAIX,IAAM,8BAA8BC,IAAE,OAAO;AAAA,EAClD,IAAIA,IAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACpB,MAAMA,IAAE,KAAK,CAAC,aAAa,WAAW,WAAW,QAAQ,SAAS,QAAQ,YAAY,SAAS,SAAS,cAAc,cAAc,QAAQ,CAAC;AAAA,EAC7I,GAAGA,IAAE,OAAO,EAAE,OAAO;AAAA,EAAG,GAAGA,IAAE,OAAO,EAAE,OAAO;AAAA,EAC7C,OAAOA,IAAE,OAAO,EAAE,OAAO,EAAE,YAAY;AAAA,EAAG,QAAQA,IAAE,OAAO,EAAE,OAAO,EAAE,YAAY;AAAA,EAClF,YAAYA,IAAE,OAAO;AAAA,IACnB,UAAUA,IAAE,OAAO;AAAA,MACjB,SAASA,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,MACpC,SAASA,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,IACtC,CAAC,EAAE,OAAO,EAAE,SAAS;AAAA,EACvB,CAAC,EAAE,OAAO,EAAE,SAAS;AACvB,CAAC,EAAE,SAAS,eAAe;AAEpB,IAAM,uBAAuBA,IAAE,OAAO;AAAA,EAC3C,QAAQA,IAAE,QAAQ,YAAY;AAAA,EAC9B,eAAeA,IAAE,QAAQ,CAAC;AAAA,EAC1B,UAAUA,IAAE,MAAM,2BAA2B,EAAE,IAAI,GAAK;AAAA,EACxD,OAAOA,IAAE,OAAOA,IAAE,OAAO,GAAGA,IAAE,OAAO;AAAA,IACnC,WAAWA,IAAE,OAAO,EAAE,MAAM,4CAA4C;AAAA,IACxE,UAAUA,IAAE,KAAK,CAAC,aAAa,cAAc,cAAc,aAAa,eAAe,CAAC;AAAA,IACxF,SAASA,IAAE,OAAO,EAAE,OAAO,EAAE,YAAY;AAAA,EAC3C,CAAC,EAAE,OAAO,CAAC;AACb,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,QAAQ,YAAY;AAC3C,MAAI,IAAI,IAAI,OAAO,SAAS,IAAI,aAAW,QAAQ,EAAE,CAAC,EAAE,SAAS,OAAO,SAAS,QAAQ;AACvF,YAAQ,SAAS,EAAE,MAAM,UAAU,MAAM,CAAC,UAAU,GAAG,SAAS,4CAA4C,CAAC;AAAA,EAC/G;AACF,CAAC;;;AC9BD,SAAS,KAAAC,WAAS;AAaX,IAAM,0BAA0BC,IAAE,KAAK;AAAA,EAC5C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AA6CD,IAAM,qBAAmH;AAAA,EACvH,UAAU,CAAC,mBAAmB,UAAU;AAAA,EACxC,OAAO,CAAC,MAAM;AAAA,EACd,WAAW,CAAC,WAAW;AAAA,EACvB,mBAAmB,CAAC,mBAAmB,yBAAyB,gCAAgC;AAAA,EAChG,SAAS,CAAC,iBAAiB;AAAA,EAC3B,MAAM,CAAC,QAAQ;AAAA,EACf,cAAc,CAAC,kBAAkB;AAAA,EACjC,QAAQ,CAAC,mBAAmB,iBAAiB,iBAAiB,YAAY;AAAA,EAC1E,UAAU,CAAC,mBAAmB,eAAe;AAAA,EAC7C,MAAM,CAAC,iBAAiB;AAAA,EACxB,WAAW,CAAC,iBAAiB;AAC/B;AAEO,IAAM,gCAAoEA,IAAE;AAAA,EAAK,MACtFA,IACG,OAAO;AAAA,IACN,MAAM;AAAA,IACN,mBAAmB;AAAA,IACnB,MAAM;AAAA,IACN,iBAAiBA,IAAE,OAAOA,IAAE,OAAO,GAAG,eAAe,EAAE,SAAS;AAAA,IAChE,YAAYA,IAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS;AAAA,IACpD,UAAUA,IAAE,QAAQ,EAAE,SAAS;AAAA,IAC/B,eAAeA,IAAE,QAAQ,EAAE,SAAS;AAAA,IACpC,aAAaA,IAAE,QAAQ,EAAE,SAAS;AAAA,IAClC,YAAYA,IAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS;AAAA,IACpD,gBAAgBA,IAAE,OAAOA,IAAE,OAAO,GAAG,eAAe,EAAE,SAAS;AAAA,IAC/D,eAAeA,IAAE,OAAO,EAAE,SAAS;AAAA,IACnC,UAAUA,IAAE,MAAM,6BAA6B,EAAE,SAAS;AAAA,IAC1D,MAAMA,IAAE,OAAO,EAAE,SAAS;AAAA,IAC1B,WAAWA,IAAE,MAAMA,IAAE,MAAM,6BAA6B,CAAC,EAAE,SAAS;AAAA,IACpE,QAAQA,IAAE,MAAM,wBAAwB,EAAE,SAAS;AAAA,IACnD,0BAA0BA,IAAE,MAAM,wBAAwB,EAAE,SAAS;AAAA,IACrE,uBAAuBA,IAAE,OAAO,EAAE,SAAS;AAAA,IAC3C,gCAAgCA,IAAE,OAAO,EAAE,SAAS;AAAA,IACpD,kBAAkBA,IACf,OAAO;AAAA,MACN,MAAMA,IAAE,OAAO,EAAE,SAAS;AAAA,MAC1B,MAAM;AAAA,MACN,SAASA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS;AAAA,MAC9C,cAAcA,IAAE,OAAOA,IAAE,OAAO,GAAGA,IAAE,OAAO,CAAC,EAAE,SAAS;AAAA,MACxD,oBAAoBA,IAAE,OAAOA,IAAE,OAAO,GAAG,eAAe,EAAE,SAAS;AAAA,IACrE,CAAC,EACA,OAAO,EACP,SAAS;AAAA,IACZ,eAAeA,IAAE,OAAOA,IAAE,OAAO,GAAGA,IAAE,MAAM,6BAA6B,CAAC,EAAE,SAAS;AAAA,IACrF,aAAaA,IAAE,MAAM,6BAA6B,EAAE,SAAS;AAAA,IAC7D,eAAeA,IAAE,KAAK,CAAC,eAAe,cAAc,SAAS,CAAC,EAAE,SAAS;AAAA,IACzE,YAAYA,IAAE,OAAO,EAAE,SAAS;AAAA,IAChC,SAAS,gBAAgB,SAAS;AAAA,IAClC,oBAAoBA,IAAE,QAAQ,EAAE,SAAS;AAAA,IACzC,gBAAgB,gBAAgB,SAAS;AAAA,IACzC,gBAAgBA,IAAE,OAAO,EAAE,SAAS;AAAA,IACpC,cAAcA,IAAE,MAAM,eAAe,EAAE,SAAS;AAAA,IAChD,aAAaA,IAAE,OAAO,EAAE,SAAS;AAAA,IACjC,sBAAsBA,IAAE,OAAO,EAAE,SAAS;AAAA,IAC1C,UAAUA,IAAE,OAAO,EAAE,SAAS;AAAA,IAC9B,YAAYA,IAAE,QAAQ,EAAE,SAAS;AAAA,IACjC,aAAa,yBAAyB,SAAS;AAAA,IAC/C,aAAa,yBAAyB,SAAS;AAAA,EACjD,CAAC,EACA,OAAO,EACP,YAAY,CAAC,MAAM,YAAY;AAC9B,eAAW,SAAS,mBAAmB,KAAK,IAAI,KAAK,CAAC,GAAG;AACvD,UAAI,KAAK,KAAK,MAAM,QAAW;AAC7B,gBAAQ,SAAS,EAAE,MAAM,UAAU,MAAM,CAAC,KAAK,GAAG,SAAS,GAAG,KAAK,IAAI,kBAAkB,OAAO,KAAK,CAAC,IAAI,CAAC;AAAA,MAC7G;AAAA,IACF;AACA,QACE,KAAK,SAAS,eACb,KAAK,iBAAiB,SAAS,UAAa,KAAK,gBAAgB,SAAS,iBAC3E,KAAK,kBAAkB,UACvB,KAAK,iBAAiB,kBAAkB,QACxC;AACA,cAAQ,SAAS,EAAE,MAAM,UAAU,MAAM,CAAC,eAAe,GAAG,SAAS,mDAAmD,CAAC;AAAA,IAC3H;AAAA,EACF,CAAC;AACL;AAEO,IAAM,oCAAoCA,IAAE,OAAO;AAAA,EACxD,UAAUA,IAAE,OAAO,EAAE,SAAS;AAAA,EAC9B,YAAYA,IAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS;AAAA,EACpD,YAAYA,IAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS;AAAA,EACpD,WAAWA,IAAE,OAAO,EAAE,SAAS;AAAA,EAC/B,WAAWA,IAAE,OAAO,EAAE,SAAS;AAAA,EAC/B,MAAM;AAAA,EACN,aAAaA,IAAE,OAAO,EAAE,SAAS;AAAA,EACjC,SAASA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AAAA,EACnC,OAAOA,IAAE,MAAM,6BAA6B;AAAA,EAC5C,iBAAiBA,IAAE,MAAM,wBAAwB;AAAA,EACjD,kBAAkBA,IAAE,OAAOA,IAAE,OAAO,GAAG,eAAe,EAAE,SAAS;AAAA,EACjE,iBAAiB,yBAAyB,SAAS;AAAA,EACnD,eAAeA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS;AAAA,EACpD,aAAaA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAClC,+BAA+BA,IAAE,QAAQ,EAAE,SAAS;AAAA,EACpD,YAAYA,IAAE,OAAO,EAAE,MAAM,EAAE,SAAS;AAAA,EACxC,eAAeA,IAAE,KAAK,CAAC,eAAe,YAAY,CAAC,EAAE,SAAS;AAAA,EAC9D,gBAAgBA,IAAE,OAAO,EAAE,IAAI,EAAE,YAAY;AAAA,EAC7C,WAAWA,IAAE,OAAOA,IAAE,OAAO,GAAG,eAAe,EAAE,SAAS;AAAA,EAC1D,eAAeA,IAAE,OAAOA,IAAE,OAAO,GAAG,eAAe,EAAE,SAAS;AAChE,CAAC,EAAE,OAAO;AAEH,IAAM,8BAA8BA,IAAE,KAAK;AAAA,EAChD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAED,IAAM,iCAAiCA,IACpC,OAAO;AAAA,EACN,YAAYA,IAAE;AAAA,IACZA,IACG,OAAO;AAAA,MACN,OAAOA,IAAE,OAAO;AAAA,MAChB,UAAUA,IAAE,KAAK,CAAC,MAAM,SAAS,iBAAiB,cAAc,wBAAwB,qBAAqB,MAAM,OAAO,CAAC;AAAA,MAC3H,OAAO;AAAA,IACT,CAAC,EACA,OAAO;AAAA,EACZ;AAAA,EACA,OAAOA,IAAE,KAAK,CAAC,OAAO,IAAI,CAAC,EAAE,SAAS;AACxC,CAAC,EACA,OAAO;AAEV,IAAM,qCAAqCA,IACxC,OAAO;AAAA,EACN,SAASA,IAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EACjD,UAAUA,IAAE,KAAK,CAAC,MAAM,MAAM,IAAI,CAAC,EAAE,SAAS;AAAA,EAC9C,kBAAkBA,IAAE,KAAK,CAAC,UAAU,OAAO,OAAO,MAAM,CAAC,EAAE,SAAS;AAAA,EACpE,KAAKA,IAAE,KAAK,CAAC,MAAM,MAAM,IAAI,CAAC,EAAE,SAAS;AAAA,EACzC,QAAQA,IAAE,KAAK,CAAC,MAAM,MAAM,MAAM,IAAI,CAAC,EAAE,SAAS;AAAA,EAClD,aAAaA,IAAE,KAAK,CAAC,QAAQ,QAAQ,QAAQ,CAAC,EAAE,SAAS;AAAA,EACzD,aAAaA,IAAE,MAAM,CAACA,IAAE,QAAQ,CAAC,GAAGA,IAAE,QAAQ,CAAC,GAAGA,IAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS;AAAA,EAC1E,cAAcA,IAAE,QAAQ,EAAE,SAAS;AAAA,EACnC,WAAWA,IAAE,OAAO,EAAE,IAAI,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI,EAAE,SAAS;AAAA,EACxD,gBAAgBA,IAAE,QAAQ,EAAE,SAAS;AAAA,EACrC,aAAaA,IAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EACrD,WAAWA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAChC,iBAAiBA,IAAE,QAAQ,EAAE,SAAS;AAAA,EACtC,WAAWA,IAAE,QAAQ,EAAE,SAAS;AAClC,CAAC,EACA,OAAO;AAEV,IAAM,iCAAiCA,IACpC,OAAO;AAAA,EACN,MAAMA,IAAE,MAAM,CAACA,IAAE,OAAO,GAAGA,IAAE,OAAO,CAAC,CAAC;AAAA,EACtC,KAAKA,IAAE,OAAO,EAAE,SAAS;AAC3B,CAAC,EACA,OAAO;AAEV,IAAM,qCAAqCA,IACxC,OAAO;AAAA,EACN,QAAQA,IAAE,KAAK,CAAC,QAAQ,kBAAkB,cAAc,aAAa,MAAM,CAAC,EAAE,SAAS;AAAA,EACvF,gBAAgBA,IAAE,KAAK,CAAC,cAAc,QAAQ,UAAU,KAAK,CAAC,EAAE,SAAS;AAAA,EACzE,UAAUA,IAAE,OAAO,EAAE,SAAS;AAAA,EAAG,UAAUA,IAAE,OAAO,EAAE,SAAS;AAAA,EAAG,KAAKA,IAAE,OAAO,EAAE,SAAS;AAAA,EAAG,KAAKA,IAAE,OAAO,EAAE,SAAS;AAAA,EACvH,gBAAgBA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAAG,iBAAiBA,IAAE,OAAO,EAAE,YAAY,EAAE,SAAS;AAAA,EAAG,UAAUA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAAG,MAAMA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS;AAAA,EAC3K,WAAWA,IAAE,OAAO,EAAE,SAAS;AAAA,EAAG,QAAQA,IAAE,OAAO,EAAE,SAAS;AAAA,EAAG,SAASA,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS;AAAA,EAAG,UAAUA,IAAE,OAAO,EAAE,SAAS;AAAA,EAC1I,2BAA2BA,IAAE,OAAO,EAAE,SAAS;AAAA,EAAG,0BAA0BA,IAAE,OAAO,EAAE,SAAS;AAAA,EAAG,uBAAuBA,IAAE,OAAO,EAAE,SAAS;AAAA,EAC9I,kBAAkBA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAAG,kBAAkBA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAAG,kBAAkBA,IAAE,OAAO,EAAE,SAAS;AAAA,EAAG,mBAAmBA,IAAE,OAAO,EAAE,SAAS;AAAA,EACpK,wBAAwBA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAAG,uBAAuBA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAAG,iBAAiBA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAAG,cAAc,+BAA+B,SAAS;AAAA,EAAG,sBAAsBA,IAAE,OAAO,EAAE,SAAS;AAAA,EAAG,sBAAsBA,IAAE,OAAO,EAAE,SAAS;AAAA,EACxR,oBAAoB,gBAAgB,SAAS;AAAA,EAAG,kBAAkBA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAAG,UAAUA,IAAE,MAAM,CAACA,IAAE,QAAQ,GAAG,8BAA8B,CAAC,EAAE,SAAS;AAAA,EAAG,UAAUA,IAAE,MAAM,CAACA,IAAE,QAAQ,GAAG,8BAA8B,CAAC,EAAE,SAAS;AAAA,EACjP,mBAAmBA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAAG,yBAAyBA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAAG,aAAaA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAAG,cAAcA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAAG,iBAAiBA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAAG,iBAAiBA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAAG,oBAAoBA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAAG,mBAAmBA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAAG,sBAAsBA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAAG,aAAaA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAAG,sBAAsBA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAAG,kBAAkBA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAAG,oBAAoBA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAAG,uBAAuBA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAAG,aAAaA,IAAE,QAAQ,EAAE,SAAS;AAAA,EACxnB,kBAAkBA,IAAE,OAAO,EAAE,SAAS;AAAA,EAAG,QAAQA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAAG,QAAQA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAAG,iBAAiBA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAAG,uBAAuBA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAAG,0BAA0BA,IAAE,OAAO,EAAE,SAAS;AAAA,EAC/O,wBAAwBA,IAAE,MAAM,CAACA,IAAE,OAAO,EAAE,YAAY,GAAGA,IAAE,OAAO,EAAE,IAAI,CAAC,GAAGA,IAAE,OAAO,EAAE,KAAKA,IAAE,OAAO,EAAE,YAAY,EAAE,SAAS,GAAG,KAAKA,IAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,SAAS;AAAA,EAAG,oBAAoBA,IAAE,MAAM,eAAe,EAAE,SAAS;AAAA,EAAG,qBAAqBA,IAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS;AAAA,EAAG,qBAAqBA,IAAE,OAAO,EAAE,SAAS;AAAA,EACxW,uBAAuBA,IAAE,OAAO,EAAE,SAAS;AAAA,EAAG,0BAA0BA,IAAE,OAAO,EAAE,SAAS;AAAA,EAAG,8BAA8B,mCAAmC,SAAS;AAAA,EAAG,2BAA2BA,IAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EAAG,sCAAsCA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAAG,6BAA6BA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAAG,4BAA4BA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAAG,4BAA4BA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAAG,2CAA2CA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAAG,+BAA+BA,IAAE,OAAO,EAAE,SAAS;AAAA,EAAG,4BAA4BA,IAAE,KAAK,CAAC,kBAAkB,cAAc,CAAC,EAAE,SAAS;AAAA,EAAG,gCAAgCA,IAAE,KAAK,CAAC,WAAW,MAAM,CAAC,EAAE,SAAS;AAAA,EAAG,kCAAkC,oBAAoB,SAAS;AAAA,EAAG,oCAAoC,oBAAoB,SAAS;AAAA,EAAG,8BAA8BA,IAAE,KAAK,CAAC,QAAQ,QAAQ,CAAC,EAAE,SAAS;AAAA,EAAG,gCAAgC,oBAAoB,SAAS;AAAA,EAAG,kCAAkC,oBAAoB,SAAS;AAAA,EAC3iC,WAAWA,IAAE,MAAM,eAAe,EAAE,SAAS;AAAA,EAAG,UAAUA,IAAE,MAAM,eAAe,EAAE,SAAS;AAAA,EAAG,WAAW,gBAAgB,SAAS;AAAA,EAAG,OAAO,gBAAgB,SAAS;AAAA,EAAG,KAAK,gBAAgB,SAAS;AAAA,EAAG,WAAWA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAAG,SAASA,IAAE,MAAM,eAAe,EAAE,SAAS;AAAA,EAAG,eAAeA,IAAE,MAAM,eAAe,EAAE,SAAS;AAAA,EAAG,aAAa,oBAAoB,SAAS;AAAA,EAAG,yBAAyBA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAAG,kBAAkB,gBAAgB,SAAS;AAAA,EAAG,gBAAgBA,IAAE,OAAO,EAAE,SAAS;AAAA,EAAG,kBAAkB,gBAAgB,SAAS;AAAA,EAAG,2BAA2BA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAAG,4BAA4BA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAAG,QAAQA,IAAE,QAAQ,EAAE,SAAS;AAAA,EACprB,4BAA4BA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAAG,yBAAyBA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS;AAAA,EAAG,YAAYA,IAAE,MAAM,eAAe,EAAE,SAAS;AAAA,EAAG,uBAAuBA,IAAE,OAAO,EAAE,SAAS;AAAA,EAAG,mBAAmBA,IAAE,OAAO,EAAE,SAAS;AAAA,EAAG,wBAAwBA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAAG,cAAcA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAAG,wBAAwBA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAAG,gBAAgBA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAAG,oBAAoBA,IAAE,OAAO,EAAE,YAAY,EAAE,SAAS;AAAA,EAAG,MAAM,oBAAoB,SAAS;AAAA,EAAG,YAAY,gBAAgB,SAAS;AAAA,EAAG,iBAAiBA,IAAE,OAAO,EAAE,SAAS;AAAA,EACxlB,sBAAsBA,IAAE,MAAM,eAAe,EAAE,SAAS;AAAA,EAAG,4BAA4BA,IAAE,OAAO,EAAE,SAAS;AAAA,EAAG,yBAAyBA,IAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS;AAAA,EAAG,oBAAoBA,IAAE,OAAO,EAAE,SAAS;AAAA,EAC1N,2BAA2BA,IAAE,OAAO,EAAE,SAAS;AACjD,CAAC,EACA,OAAO;AA0CH,IAAM,0BAAwDA,IAAE;AAAA,EAAK,MAC1EA,IAAE,OAAO;AAAA,IACP,aAAa;AAAA,IACb,MAAM;AAAA,IACN,MAAM;AAAA,IACN,aAAa,mCAAmC,SAAS;AAAA,IACzD,SAAS,gBAAgB,SAAS;AAAA,IAClC,aAAa,oBAAoB,SAAS;AAAA,IAC1C,MAAMA,IAAE,OAAO,EAAE,SAAS;AAAA,IAC1B,gBAAgBA,IAAE,OAAO;AAAA,MACvB,MAAMA,IAAE,OAAOA,IAAE,OAAO,GAAGA,IAAE,MAAM,eAAe,CAAC,EAAE,SAAS;AAAA,MAC9D,MAAMA,IAAE,OAAOA,IAAE,OAAO,GAAGA,IAAE,MAAM,eAAe,CAAC,EAAE,SAAS;AAAA,IAChE,CAAC,EAAE,OAAO,EAAE,SAAS;AAAA,IACrB,SAASA,IAAE,MAAMA,IAAE,MAAM;AAAA,MACvBA,IAAE,OAAO,EAAE,MAAM,qBAAqB,OAAOA,IAAE,MAAM,CAACA,IAAE,OAAO,GAAGA,IAAE,OAAO,GAAGA,IAAE,QAAQ,CAAC,CAAC,GAAG,QAAQA,IAAE,OAAO,EAAE,SAAS,GAAG,aAAa,oBAAoB,SAAS,EAAE,CAAC,EAAE,OAAO;AAAA,MAClL;AAAA,MACAA,IAAE,OAAO,EAAE,aAAaA,IAAE,OAAO,GAAG,MAAM,0BAA0B,QAAQA,IAAE,MAAM,uBAAuB,EAAE,CAAC,EAAE,OAAO;AAAA,IACzH,CAAC,CAAC,EAAE,SAAS;AAAA,IACb,aAAa,oBAAoB,SAAS;AAAA,IAC1C,eAAeA,IAAE,QAAQ,EAAE,SAAS;AAAA,IAAG,kBAAkBA,IAAE,QAAQ,EAAE,SAAS;AAAA,IAAG,UAAUA,IAAE,QAAQ,EAAE,SAAS;AAAA,IAAG,SAASA,IAAE,OAAO,EAAE,SAAS;AAAA,IAChJ,cAAcA,IAAE,OAAO,EAAE,MAAMA,IAAE,QAAQ,OAAO,GAAG,OAAOA,IAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,SAAS;AAAA,IAC1F,YAAYA,IAAE,MAAM,uBAAuB,EAAE,SAAS;AAAA,IAAG,WAAWA,IAAE,OAAO,EAAE,SAAS;AAAA,IAAG,MAAMA,IAAE,QAAQ,EAAE,SAAS;AAAA,IACtH,cAAcA,IAAE,QAAQ,EAAE,SAAS;AAAA,IAAG,aAAaA,IAAE,QAAQ,EAAE,SAAS;AAAA,IAAG,kBAAkBA,IAAE,OAAO,EAAE,SAAS;AAAA,IAAG,0BAA0BA,IAAE,OAAO,EAAE,SAAS;AAAA,IAAG,uBAAuBA,IAAE,OAAO,EAAE,SAAS;AAAA,IAAG,iBAAiBA,IAAE,OAAO,EAAE,SAAS;AAAA,EAC1P,CAAC,EAAE,OAAO;AACZ;AAEO,IAAM,8BAA8BA,IAAE,OAAO,EAAE,KAAK,0BAA0B,OAAOA,IAAE,OAAO,EAAE,CAAC,EAAE,OAAO;AAE1G,IAAM,qBAAqBA,IAC/B,OAAO;AAAA,EACN,IAAI;AAAA,EACJ,eAAe;AAAA,EACf,eAAe;AAAA,EACf,mBAAmB,yBAAyB,SAAS;AAAA,EACrD,eAAeA,IAAE,OAAOA,IAAE,OAAO,GAAG,eAAe,EAAE,QAAQ,CAAC,CAAC;AAAA,EAC/D,eAAeA,IAAE,OAAO,EAAE,UAAUA,IAAE,QAAQ,WAAW,GAAG,MAAM,8BAA8B,CAAC,EAAE,OAAO;AAC5G,CAAC,EACA,OAAO,EACP,YAAY,CAAC,MAAM,YAAY;AAC9B,MAAI,KAAK,cAAc,KAAK,sBAAsB,KAAK,cAAe,SAAQ,SAAS,EAAE,MAAM,UAAU,MAAM,CAAC,iBAAiB,QAAQ,mBAAmB,GAAG,SAAS,0DAA0D,CAAC;AACnO,MAAI,KAAK,cAAc,KAAK,SAAS,KAAK,cAAe,SAAQ,SAAS,EAAE,MAAM,UAAU,MAAM,CAAC,iBAAiB,QAAQ,MAAM,GAAG,SAAS,qDAAqD,CAAC;AACpM,MAAI,KAAK,UAAU,KAAK,cAAc,KAAK,mBAAmB,CAAC,CAAC,MAAM,KAAK,UAAU,KAAK,aAAa,EAAG,SAAQ,SAAS,EAAE,MAAM,UAAU,MAAM,CAAC,iBAAiB,QAAQ,iBAAiB,GAAG,SAAS,uDAAuD,CAAC;AACpQ,CAAC;AAEI,IAAM,qBAAqBA,IAAE,OAAO;AAAA,EACzC,MAAM;AAAA,EAA0B,IAAI;AAAA,EAA0B,YAAY,yBAAyB,SAAS;AAAA,EAAG,WAAW,yBAAyB,SAAS;AAAA,EAAG,WAAWA,IAAE,OAAO,EAAE,SAAS;AAChM,CAAC,EAAE,OAAO;AAEH,IAAM,wBAAwBA,IAAE,OAAO;AAAA,EAC5C,IAAI;AAAA,EACJ,MAAMA,IAAE,KAAK,CAAC,UAAU,YAAY,WAAW,SAAS,KAAK,CAAC;AAAA,EAC9D,SAASA,IAAE,QAAQ;AAAA,EACnB,UAAUA,IAAE,OAAO,EAAE,MAAMA,IAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,SAAS;AAAA,EACzE,SAASA,IAAE,OAAO;AAAA,IAChB,MAAMA,IAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,IACxC,QAAQA,IAAE,KAAK,CAAC,OAAO,QAAQ,OAAO,SAAS,UAAU,WAAW,MAAM,CAAC;AAAA,IAC3E,MAAMA,IAAE,KAAK,CAAC,QAAQ,SAAS,eAAe,CAAC;AAAA,IAC/C,WAAWA,IAAE,OAAO,EAAE,UAAUA,IAAE,OAAO,GAAG,UAAUA,IAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,SAAS;AAAA,IACtF,YAAYA,IAAE,OAAO,EAAE,MAAMA,IAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,OAAOA,IAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,SAAS;AAAA,IAC9F,eAAeA,IAAE,KAAK,CAAC,oBAAoB,gCAAgC,CAAC;AAAA,EAC9E,CAAC,EAAE,OAAO,EAAE,SAAS;AAAA,EACrB,OAAOA,IAAE,OAAO;AAAA,IACd,WAAW;AAAA,IACX,eAAe,gBAAgB,SAAS;AAAA,EAC1C,CAAC,EAAE,OAAO,EAAE,SAAS;AACvB,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,SAAS,YAAY;AAC5C,MAAI,QAAQ,SAAS,cAAc,CAAC,QAAQ,SAAU,SAAQ,SAAS,EAAE,MAAM,UAAU,MAAM,CAAC,UAAU,GAAG,SAAS,oDAAoD,CAAC;AAC3K,MAAI,QAAQ,SAAS,aAAa,CAAC,QAAQ,QAAS,SAAQ,SAAS,EAAE,MAAM,UAAU,MAAM,CAAC,SAAS,GAAG,SAAS,kDAAkD,CAAC;AACtK,MAAI,QAAQ,SAAS,WAAW,CAAC,QAAQ,MAAO,SAAQ,SAAS,EAAE,MAAM,UAAU,MAAM,CAAC,OAAO,GAAG,SAAS,8CAA8C,CAAC;AAC9J,CAAC;AAEM,IAAM,gCAAgCA,IAAE,OAAO;AAAA,EACpD,mBAAmB;AAAA,EACnB,WAAWA,IAAE,KAAK,CAAC,SAAS,SAAS,CAAC;AAAA,EACtC,cAAcA,IAAE,OAAO,EAAE,MAAM,0BAA0B,MAAM,0BAA0B,mBAAmB,gBAAgB,SAAS,EAAE,CAAC,EAAE,OAAO;AAAA,EACjJ,cAAcA,IAAE,OAAO,EAAE,IAAIA,IAAE,OAAO,GAAG,IAAIA,IAAE,OAAO,EAAE,CAAC,EAAE,OAAO;AACpE,CAAC,EAAE,OAAO;AAEH,IAAM,2BAA2BA,IAAE,OAAO;AAAA,EAC/C,UAAUA,IAAE,QAAQ,oBAAoB;AAAA,EACxC,UAAU,uBAAuB,KAAK,EAAE,MAAM,MAAM,aAAa,MAAM,QAAQ,KAAK,CAAC,EAAE,OAAO;AAAA,IAC5F,MAAM;AAAA,IACN,aAAa,oBAAoB,SAAS;AAAA,IAC1C,MAAMA,IAAE,KAAK,CAAC,YAAY,UAAU,CAAC;AAAA,IACrC,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,MAAMA,IAAE,MAAM,wBAAwB,EAAE,QAAQ,CAAC,CAAC;AAAA,EACpD,CAAC,EAAE,OAAO;AAAA,EACV,UAAUA,IAAE,OAAO;AAAA,IACjB,MAAMA,IAAE,KAAK,CAAC,WAAW,QAAQ,CAAC;AAAA,IAClC,eAAeA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AAAA,IACzC,eAAeA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS;AAAA,EACtD,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,UAAU,YAAY;AAC7C,QAAI,SAAS,SAAS,YAAY,SAAS,kBAAkB,OAAW,SAAQ,SAAS,EAAE,MAAM,UAAU,MAAM,CAAC,eAAe,GAAG,SAAS,4CAA4C,CAAC;AAAA,EAC5L,CAAC;AAAA,EACD,cAAcA,IAAE,OAAO,EAAE,SAASA,IAAE,OAAO,EAAE,SAAS,GAAG,WAAWA,IAAE,OAAO,EAAE,SAAS,GAAG,QAAQ,qBAAqB,SAAS,EAAE,CAAC,EAAE,OAAO;AAAA,EAC7I,OAAOA,IAAE,OAAO,EAAE,QAAQA,IAAE,MAAM,kBAAkB,EAAE,QAAQ,CAAC,CAAC,GAAG,SAASA,IAAE,MAAM,kBAAkB,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO;AAAA,EAC9H,YAAYA,IAAE,OAAO,EAAE,WAAWA,IAAE,MAAM,uBAAuB,EAAE,QAAQ,CAAC,CAAC,GAAG,SAASA,IAAE,MAAM,2BAA2B,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO;AAAA,EACpJ,OAAOA,IAAE,OAAO,EAAE,OAAOA,IAAE,MAAM,kBAAkB,GAAG,OAAOA,IAAE,MAAM,kBAAkB,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO;AAAA,EAC/G,WAAWA,IAAE,OAAO;AAAA,IAClB,WAAWA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS;AAAA,IAAG,SAASA,IAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,CAAC;AAAA,IAAG,kBAAkBA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS;AAAA,IAAG,aAAaA,IAAE,KAAK,CAAC,YAAY,aAAa,MAAM,CAAC;AAAA,IACtN,WAAWA,IAAE,OAAO,EAAE,SAASA,IAAE,QAAQ,GAAG,KAAKA,IAAE,OAAO,EAAE,IAAI,EAAE,YAAY,GAAG,UAAUA,IAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,WAAW,YAAY;AACxK,UAAI,UAAU,YAAY,UAAU,QAAQ,KAAK,UAAU,aAAa,GAAI,SAAQ,SAAS,EAAE,MAAM,UAAU,SAAS,yDAAyD,CAAC;AAAA,IACpL,CAAC,EAAE,SAAS;AAAA,IACZ,WAAWA,IAAE,OAAO;AAAA,MAClB,UAAUA,IAAE,OAAO,EAAE,SAAS;AAAA,MAAG,YAAYA,IAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS;AAAA,MAAG,YAAYA,IAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS;AAAA,MAAG,WAAWA,IAAE,OAAO,EAAE,SAAS;AAAA,MAAG,WAAWA,IAAE,OAAO,EAAE,SAAS;AAAA,MAChN,iBAAiB,yBAAyB,SAAS;AAAA,MAAG,eAAeA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS;AAAA,MAAG,aAAaA,IAAE,QAAQ,EAAE,SAAS;AAAA,MAAG,+BAA+BA,IAAE,QAAQ,EAAE,SAAS;AAAA,MAAG,YAAYA,IAAE,OAAO,EAAE,MAAM,EAAE,SAAS;AAAA,MAAG,eAAeA,IAAE,KAAK,CAAC,eAAe,YAAY,CAAC,EAAE,SAAS;AAAA,MAClT,WAAWA,IAAE,OAAOA,IAAE,OAAO,GAAG,eAAe,EAAE,SAAS;AAAA,MAAG,eAAeA,IAAE,OAAOA,IAAE,OAAO,GAAG,eAAe,EAAE,SAAS;AAAA,IAC7H,CAAC,EAAE,OAAO;AAAA,EACZ,CAAC,EAAE,OAAO;AAAA,EACV,UAAUA,IAAE,MAAM,qBAAqB,EAAE,QAAQ,CAAC,CAAC;AAAA,EACnD,OAAOA,IAAE,MAAMA,IAAE,OAAO,EAAE,SAAS,0BAA0B,WAAW,yBAAyB,SAAS,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC;AAAA,EACnI,eAAeA,IAAE,OAAO,EAAE,OAAOA,IAAE,MAAM,wBAAwB,EAAE,QAAQ,CAAC,CAAC,GAAG,QAAQA,IAAE,MAAM,wBAAwB,EAAE,QAAQ,CAAC,CAAC,GAAG,OAAOA,IAAE,MAAM,wBAAwB,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO;AAAA,EACtM,YAAYA,IAAE,OAAO,EAAE,WAAWA,IAAE,QAAQ,GAAG,WAAWA,IAAE,QAAQ,GAAG,kBAAkBA,IAAE,MAAM,6BAA6B,EAAE,QAAQ,CAAC,CAAC,GAAG,QAAQA,IAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO;AAAA,EACtL,YAAYA,IAAE,OAAO;AAAA,IACnB,QAAQA,IAAE,OAAO,EAAE,SAASA,IAAE,QAAQ,GAAG,WAAWA,IAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO;AAAA,IAClG,aAAa,gBAAgB,SAAS;AAAA,IACtC,gBAAgB,yBAAyB,SAAS;AAAA,EACpD,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,YAAY,YAAY;AAC/C,QAAI,WAAW,OAAO,WAAW,CAAC,WAAW,OAAO,UAAW,SAAQ,SAAS,EAAE,MAAM,UAAU,MAAM,CAAC,UAAU,WAAW,GAAG,SAAS,+CAA+C,CAAC;AAC1L,QAAI,WAAW,eAAe,WAAW,YAAY,SAAS,WAAY,SAAQ,SAAS,EAAE,MAAM,UAAU,MAAM,CAAC,eAAe,MAAM,GAAG,SAAS,yCAAyC,CAAC;AAAA,EACjM,CAAC;AACH,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,YAAY,YAAY;AAC/C,QAAM,UAAU,IAAI,IAAI,WAAW,MAAM,MAAM,IAAI,CAAC,SAAS,KAAK,EAAE,CAAC;AACrE,QAAM,aAAa,IAAI,IAAI,WAAW,MAAM,MAAM,IAAI,CAAC,SAAS,KAAK,aAAa,CAAC;AACnF,MAAI,QAAQ,SAAS,WAAW,MAAM,MAAM,OAAQ,SAAQ,SAAS,EAAE,MAAM,UAAU,MAAM,CAAC,SAAS,OAAO,GAAG,SAAS,oCAAoC,CAAC;AAC/J,MAAI,WAAW,SAAS,WAAW,MAAM,MAAM,OAAQ,SAAQ,SAAS,EAAE,MAAM,UAAU,MAAM,CAAC,SAAS,OAAO,GAAG,SAAS,gDAAgD,CAAC;AAC9K,aAAW,MAAM,MAAM,QAAQ,CAAC,MAAM,UAAU;AAC9C,QAAI,CAAC,QAAQ,IAAI,KAAK,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,EAAE,EAAG,SAAQ,SAAS,EAAE,MAAM,UAAU,MAAM,CAAC,SAAS,SAAS,KAAK,GAAG,SAAS,mDAAmD,CAAC;AAAA,EACzL,CAAC;AACD,MAAI,WAAW,SAAS,SAAS,aAAa,WAAW,SAAS,YAAY,WAAW,SAAS,cAAe,SAAQ,SAAS,EAAE,MAAM,UAAU,MAAM,CAAC,YAAY,eAAe,GAAG,SAAS,qDAAqD,CAAC;AAC1P,CAAC;AAEM,IAAM,8BAA8BA,IAAE,OAAO;AAAA,EAClD,uBAAuBA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AAAA,EACjD,WAAWA,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,EACpC,YAAY;AACd,CAAC,EAAE,OAAO;AAEH,IAAM,+BAA+BA,IAAE,OAAO;AAAA,EACnD,eAAeA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AAAA,EACzC,YAAY;AACd,CAAC,EAAE,OAAO;;;ACncV,SAAS,KAAAC,WAAS;AAGX,IAAM,+BAA+BC,IACzC,OAAO;AAAA,EACN,YAAY;AAAA,EACZ,UAAU;AACZ,CAAC,EACA,OAAO;AAEH,IAAM,4BAA4BA,IAAE,mBAAmB,QAAQ;AAAA,EACpEA,IAAE,OAAO,EAAE,MAAMA,IAAE,QAAQ,SAAS,EAAE,CAAC,EAAE,OAAO;AAAA,EAChDA,IAAE,OAAO,EAAE,MAAMA,IAAE,QAAQ,UAAU,GAAG,OAAO,gBAAgB,CAAC,EAAE,OAAO;AAAA,EACzEA,IAAE,OAAO,EAAE,MAAMA,IAAE,QAAQ,OAAO,GAAG,OAAO,6BAA6B,CAAC,EAAE,OAAO;AAAA,EACnFA,IACG,OAAO;AAAA,IACN,MAAMA,IAAE,QAAQ,SAAS;AAAA,IACzB,OAAOA,IAAE,KAAK,CAAC,WAAW,UAAU,cAAc,UAAU,CAAC;AAAA,EAC/D,CAAC,EACA,OAAO;AACZ,CAAC;AAEM,IAAM,iCAAiCA,IAAE,mBAAmB,QAAQ;AAAA,EACzEA,IAAE,OAAO,EAAE,MAAMA,IAAE,QAAQ,OAAO,GAAG,OAAO,6BAA6B,CAAC,EAAE,OAAO;AAAA,EACnFA,IACG,OAAO;AAAA,IACN,MAAMA,IAAE,QAAQ,UAAU;AAAA,IAC1B,UAAU;AAAA,IACV,WAAWA,IAAE,KAAK,CAAC,YAAY,UAAU,CAAC;AAAA,IAC1C,QAAQA,IAAE,MAAM,4BAA4B,EAAE,IAAI,GAAG;AAAA,EACvD,CAAC,EACA,OAAO;AACZ,CAAC;AAGM,IAAM,iCAAiCA,IAAE,MAAMA,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,EAAE;AACjF,IAAM,6BAA6BA,IACvC,OAAO;AAAA,EACN,MAAMA,IAAE,KAAK,CAAC,UAAU,QAAQ,MAAM,CAAC;AAAA,EACvC,MAAM;AAAA,EACN,UAAUA,IAAE,QAAQ,EAAE,QAAQ,KAAK;AACrC,CAAC,EACA,OAAO;AAEH,IAAM,8BAA8BA,IACxC,OAAO;AAAA,EACN,UAAUA,IAAE,QAAQ,uBAAuB;AAAA,EAC3C,SAASA,IAAE,QAAQ,CAAC;AAAA,EACpB,SAASA,IAAE,QAAQ;AAAA,EACnB,QAAQA,IAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EACjC,UAAUA,IACP,OAAO;AAAA,IACN,IAAI;AAAA,IACJ,SAASA,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AAAA,IACnC,iBAAiB;AAAA,EACnB,CAAC,EACA,OAAO;AAAA,EACV,QAAQA,IAAE,OAAOA,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,GAAG,yBAAyB;AAAA,EACtE,cAAcA,IAAE,MAAM,8BAA8B,EAAE,IAAI,GAAG,EAAE,QAAQ,CAAC,CAAC;AAAA,EACzE,QAAQ;AAAA,EACR,QAAQA,IACL,OAAO;AAAA,IACN,YAAYA,IAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,GAAM,EAAE,QAAQ,GAAI;AAAA,IAC5D,YAAYA,IAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,GAAM,EAAE,QAAQ,GAAM;AAAA,IAC9D,aAAaA,IAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,QAAQ,CAAC;AAAA;AAAA,IAEtD,yBAAyBA,IAAE,QAAQ,EAAE,SAAS;AAAA,EAChD,CAAC,EACA,OAAO,EACP,QAAQ,EAAE,YAAY,KAAM,YAAY,KAAQ,aAAa,EAAE,CAAC;AAAA;AAAA;AAAA,EAGnE,QAAQA,IAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC,EAAE,OAAO,EAAE,SAAS;AAC/E,CAAC,EACA,OAAO;;;ACzEV,SAAS,KAAAC,WAAS;AAGlB,IAAM,SAASC,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE;AAAA,EACxC,CAAC,UAAU,CAAC,CAAC,aAAa,aAAa,aAAa,EAAE,SAAS,KAAK;AAAA,EACpE;AACF;AAGO,IAAM,+BAA+BA,IAAE,OAAO;AAAA,EACnD,UAAUA,IAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE;AAAA,EACxC,MAAMA,IAAE,MAAM,MAAM,EAAE,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAC;AAC1C,CAAC,EAAE,OAAO;AAEH,IAAM,8BAA8BA,IAAE,OAAO;AAAA,EAClD,MAAM;AAAA,EACN,WAAWA,IAAE,MAAM,4BAA4B,EAAE,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAC;AAAA,EACnE,gBAAgBA,IAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EACzC,iBAAiBA,IAAE,QAAQ,EAAE,QAAQ,KAAK;AAC5C,CAAC,EAAE,OAAO;AAEH,IAAM,yBAAyBA,IAAE,MAAM;AAAA,EAC5C;AAAA,EACAA,IAAE,OAAO,EAAE,UAAU,eAAe,CAAC,EAAE,OAAO;AAAA,EAC9CA,IAAE,OAAO,EAAE,KAAK,0BAA0B,QAAQA,IAAE,OAAO,QAAQA,IAAE,MAAM,CAACA,IAAE,OAAO,GAAGA,IAAE,OAAO,EAAE,OAAO,GAAGA,IAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO;AACpJ,CAAC;AAGM,IAAM,gCAAgCA,IAAE,OAAO;AAAA,EACpD,MAAMA,IAAE,MAAMA,IAAE,MAAM;AAAA,IACpB,OAAO,OAAO,WAAS,CAAC,+BAA+B,KAAK,KAAK,GAAG,gCAAgC;AAAA,IACpGA,IAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,OAAO,gBAAgB;AAAA,EAC5D,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE;AAAA,EACjB,SAAS;AACX,CAAC,EAAE,OAAO;AAGH,IAAM,0BAA0BA,IAAE,OAAO;AAAA,EAC9C,UAAUA,IAAE,QAAQ,mBAAmB;AAAA,EACvC,eAAeA,IAAE,QAAQ,CAAC;AAAA,EAC1B,OAAO,iBAAiB,QAAQ,CAAC,CAAC;AAAA,EAClC,QAAQA,IAAE,OAAO,QAAQ,2BAA2B,EAAE,QAAQ,CAAC,CAAC;AAAA;AAAA,EAEhE,OAAOA,IAAE,OAAO,QAAQA,IAAE,MAAM,CAAC,0BAA0BA,IAAE,MAAM,wBAAwB,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,OAAO,WAAS,IAAI,IAAI,KAAK,EAAE,SAAS,MAAM,QAAQ,sCAAsC,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;AAAA,EACxN,WAAWA,IAAE,OAAO,QAAQ,wBAAwB,EAAE,QAAQ,CAAC,CAAC;AAAA,EAChE,OAAOA,IAAE,OAAO,QAAQ,wBAAwB,EAAE,QAAQ,CAAC,CAAC;AAAA,EAC5D,UAAUA,IAAE,OAAO,QAAQ,sBAAsB,EAAE,QAAQ,CAAC,CAAC;AAAA,EAC7D,iBAAiBA,IAAE,MAAM,6BAA6B,EAAE,IAAI,GAAG,EAAE,SAAS;AAC5E,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,OAAO,YAAY;AAC1C,QAAM,QAAQ,MAAM,iBAAiB,IAAI,aAAW,QAAQ,IAAI,KAAK,CAAC;AACtE,aAAW,CAAC,OAAO,IAAI,KAAK,MAAM,QAAQ,GAAG;AAC3C,QAAI,OAAO,KAAK,CAAC,MAAM,YAAY,OAAO,UAAU,eAAe,KAAK,MAAM,UAAU,KAAK,CAAC,CAAC,KAAK,MAAM,MAAM,GAAG,KAAK,EAAE,KAAK,cAAY,SAAS,MAAM,CAAC,MAAM,WAAW,KAAK,MAAM,MAAM,IAAI,KAAK,KAAK,MAAM,CAAC,MAAM,WAAW,SAAS,MAAM,MAAM,IAAI,CAAC,GAAG;AAC9P,cAAQ,SAAS,EAAE,MAAM,UAAU,MAAM,CAAC,mBAAmB,OAAO,MAAM,GAAG,SAAS,2EAA2E,CAAC;AAAA,IACpK;AAAA,EACF;AACA,QAAM,OAAO,oBAAI,IAAY;AAC7B,aAAW,SAAS,CAAC,SAAS,UAAU,SAAS,aAAa,SAAS,UAAU,GAAY;AAC3F,eAAW,OAAO,OAAO,KAAK,MAAM,KAAK,CAAC,GAAG;AAC3C,UAAI,CAAC,OAAO,UAAU,GAAG,EAAE,WAAW,KAAK,IAAI,GAAG,GAAG;AACnD,gBAAQ,SAAS,EAAE,MAAM,UAAU,MAAM,CAAC,OAAO,GAAG,GAAG,SAAS,mDAAmD,CAAC;AAAA,MACtH;AACA,WAAK,IAAI,GAAG;AAAA,IACd;AAAA,EACF;AACF,CAAC;;;ACjED,SAAS,KAAAC,WAAS;AAGlB,IAAMC,UAASC,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,aAAa,aAAa,aAAa,EAAE,SAAS,KAAK,GAAG,qBAAqB;AACtI,IAAM,yBAAyBA,IAAE,MAAMA,IAAE,MAAM,CAACD,SAAQC,IAAE,OAAO,EAAE,QAAQA,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,GAAG,OAAOD,QAAO,QAAQ,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE;AACxJ,IAAM,+BAA+BC,IAAE,OAAO,EAAE,MAAM,wBAAwB,MAAMA,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,CAAC,EAAE,OAAO;AAEzH,IAAM,0BAA0BA,IAAE,OAAO;AAAA,EAC9C,UAAUA,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,EACnC,UAAU;AAAA,EACV,OAAO;AAAA,EACP,SAASA,IAAE,MAAM,sBAAsB,EAAE,IAAI,IAAI;AAAA,EACjD,QAAQA,IAAE,MAAM,4BAA4B,EAAE,IAAI,IAAI;AACxD,CAAC,EAAE,OAAO;AACH,IAAM,mCAAmCA,IAAE,mBAAmB,QAAQ;AAAA,EAC3EA,IAAE,OAAO,EAAE,MAAMA,IAAE,QAAQ,KAAK,GAAG,MAAM,wBAAwB,OAAO,gBAAgB,CAAC,EAAE,OAAO;AAAA,EAClGA,IAAE,OAAO,EAAE,MAAMA,IAAE,QAAQ,OAAO,GAAG,MAAM,uBAAuB,CAAC,EAAE,OAAO;AAAA,EAC5EA,IAAE,OAAO,EAAE,MAAMA,IAAE,QAAQ,OAAO,GAAG,UAAUA,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,GAAG,OAAO,iBAAiB,CAAC,EAAE,OAAO;AAAA,EAC7GA,IAAE,OAAO,EAAE,MAAMA,IAAE,QAAQ,QAAQ,GAAG,MAAM,wBAAwB,OAAOD,QAAO,QAAQ,IAAI,GAAG,OAAO,kBAAkB,UAAUC,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO;AAAA,EAC3KA,IAAE,OAAO,EAAE,MAAMA,IAAE,QAAQ,QAAQ,GAAG,MAAM,wBAAwB,OAAOD,QAAO,QAAQ,IAAI,GAAG,QAAQC,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,OAAO;AAAA,EACrIA,IAAE,OAAO,EAAE,MAAMA,IAAE,QAAQ,MAAM,GAAG,MAAM,wBAAwB,OAAOD,QAAO,QAAQ,IAAI,GAAG,QAAQC,IAAE,OAAO,EAAE,IAAI,CAAC,GAAG,UAAUA,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO;AAC7K,CAAC;AAOM,IAAM,sCAAsCA,IAAE,OAAO;AAAA,EAC1D,UAAUA,IAAE,QAAQ,wBAAwB;AAAA,EAC5C,eAAeA,IAAE,QAAQ,CAAC;AAAA,EAC1B,QAAQA,IAAE,MAAM,4BAA4B,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAC9D,CAAC,EAAE,OAAO;AACH,IAAM,uCAAuCA,IAAE,OAAO;AAAA,EAC3D,UAAUA,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,EACnC,OAAO;AACT,CAAC,EAAE,OAAO;","names":["UsedValueState","Type","DataType","_a","Ajv","DiscrError","Ajv","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","file","state","member","index","z","z","z","z","z","z","z","z","Ajv","result","value","z","z","z","z","z","z","z","z","z","z","z","z","z","member","z"]}