{"version":3,"file":"siarashield_workspace.mjs","sources":["../../../projects/siarashield-workspace/src/lib/siara-shield.globals.ts","../../../projects/siarashield-workspace/src/lib/siara-shield-log-utils.ts","../../../projects/siarashield-workspace/src/lib/siara-shield-submit-guard.ts","../../../projects/siarashield-workspace/src/lib/siara-shield-vendor-event-migration.ts","../../../projects/siarashield-workspace/src/lib/siara-shield-script-utils.ts","../../../projects/siarashield-workspace/src/lib/siara-shield-vendor-runtime.ts","../../../projects/siarashield-workspace/src/lib/siara-shield-urls.ts","../../../projects/siarashield-workspace/src/lib/siara-shield-loader.service.ts","../../../projects/siarashield-workspace/src/lib/siara-shield.component.ts","../../../projects/siarashield-workspace/src/lib/siara-shield.ts","../../../projects/siarashield-workspace/src/lib/siara-shield-csp.ts","../../../projects/siarashield-workspace/src/public-api.ts","../../../projects/siarashield-workspace/src/siarashield_workspace.ts"],"sourcesContent":["export type InitCaptchaFn = (publicKey: string) => void;\nexport type CheckCaptchaFn = () => boolean;\n\nexport interface SiaraShieldGlobals {\n  initCaptcha?: InitCaptchaFn;\n  InitCaptcha?: InitCaptchaFn;\n  CheckCaptcha?: CheckCaptchaFn;\n  AppendValidationJS?: () => void;\n  CyberSiaraToken?: string;\n  jQuery?: unknown;\n  $?: unknown;\n}\n\nexport function getSiaraShieldGlobals(): SiaraShieldGlobals {\n  return (globalThis as unknown as { [k: string]: unknown }) as SiaraShieldGlobals;\n}\n\nexport function getInitCaptchaFn(g: SiaraShieldGlobals): InitCaptchaFn | undefined {\n  return g.initCaptcha ?? g.InitCaptcha;\n}\n","interface ConsolePatchState {\n  depth: number;\n  originalLog: Console['log'];\n  originalInfo: Console['info'];\n  originalWarn: Console['warn'];\n  originalDebug: Console['debug'];\n  originalError: Console['error'];\n}\n\ninterface VendorRuntimeErrorPatchState {\n  installed: boolean;\n  originalOnError: OnErrorEventHandler | null;\n}\n\nconst CONSOLE_PATCH_STATE_KEY = '__siaraShieldConsolePatchState__';\nconst VENDOR_RUNTIME_ERROR_PATCH_STATE_KEY = '__siaraShieldVendorRuntimeErrorPatchState__';\nconst DEFAULT_SUPPRESS_WINDOW_MS = 8000;\n\nfunction getConsolePatchState(): ConsolePatchState {\n  const globalState = globalThis as typeof globalThis & {\n    [CONSOLE_PATCH_STATE_KEY]?: ConsolePatchState;\n  };\n\n  if (!globalState[CONSOLE_PATCH_STATE_KEY]) {\n    globalState[CONSOLE_PATCH_STATE_KEY] = {\n      depth: 0,\n      originalLog: console.log.bind(console),\n      originalInfo: console.info.bind(console),\n      originalWarn: console.warn.bind(console),\n      originalDebug: console.debug.bind(console),\n      originalError: console.error.bind(console),\n    };\n  }\n\n  return globalState[CONSOLE_PATCH_STATE_KEY];\n}\n\nfunction muteConsole(): void {\n  const patchState = getConsolePatchState();\n  patchState.depth += 1;\n  if (patchState.depth > 1) return;\n\n  console.log = () => undefined;\n  console.info = () => undefined;\n  console.warn = () => undefined;\n  console.debug = () => undefined;\n  console.error = (...args: unknown[]) => {\n    const normalized = args\n      .map((arg) => (typeof arg === 'string' ? arg : arg instanceof Error ? arg.message : ''))\n      .join(' ')\n      .toLowerCase();\n\n    // Known noisy upstream vendor runtime error path from CaptchaResources.js bootstrap.\n    if (\n      normalized.includes('an errorevent with no error occurred') ||\n      normalized.includes('script error') ||\n      normalized.includes('captcharesources.js') ||\n      normalized.includes('getcybersiara')\n    ) {\n      return;\n    }\n\n    patchState.originalError(...args);\n  };\n}\n\nfunction unmuteConsole(): void {\n  const patchState = getConsolePatchState();\n  if (patchState.depth === 0) return;\n  patchState.depth -= 1;\n  if (patchState.depth > 0) return;\n\n  console.log = patchState.originalLog;\n  console.info = patchState.originalInfo;\n  console.warn = patchState.originalWarn;\n  console.debug = patchState.originalDebug;\n  console.error = patchState.originalError;\n}\n\nexport function suppressVendorConsoleWindow(windowMs = DEFAULT_SUPPRESS_WINDOW_MS): void {\n  muteConsole();\n  setTimeout(() => {\n    unmuteConsole();\n  }, windowMs);\n}\n\nfunction getVendorRuntimeErrorPatchState(): VendorRuntimeErrorPatchState {\n  const globalState = globalThis as typeof globalThis & {\n    [VENDOR_RUNTIME_ERROR_PATCH_STATE_KEY]?: VendorRuntimeErrorPatchState;\n  };\n\n  if (!globalState[VENDOR_RUNTIME_ERROR_PATCH_STATE_KEY]) {\n    globalState[VENDOR_RUNTIME_ERROR_PATCH_STATE_KEY] = {\n      installed: false,\n      originalOnError: globalThis.onerror ?? null,\n    };\n  }\n\n  return globalState[VENDOR_RUNTIME_ERROR_PATCH_STATE_KEY];\n}\n\nfunction isLikelyVendorScriptRuntimeError(message: unknown, source: unknown): boolean {\n  const normalizedMessage = String(message ?? '').trim().toLowerCase();\n  const normalizedSource = String(source ?? '').trim().toLowerCase();\n  const fromSiaraHost =\n    normalizedSource.includes('embed.mycybersiara.com') || normalizedSource.includes('embedcdn.mycybersiara.com');\n  const fromRequestsJs = normalizedSource.includes('requests.js');\n  const isKnownVendorDomError =\n    normalizedMessage.includes(\"cannot read properties of null (reading 'removechild')\") &&\n    (normalizedSource.includes('jquery') || normalizedSource.includes('captcharesources'));\n  const isKnownNoErrorErrorEvent =\n    normalizedMessage.includes('an errorevent with no error occurred') || normalizedMessage.includes('script error');\n\n  if (fromSiaraHost) return true;\n  if (fromRequestsJs) return true;\n  if (isKnownVendorDomError) return true;\n  if (isKnownNoErrorErrorEvent) return true;\n  return normalizedMessage === 'script error.' || normalizedMessage === 'script error';\n}\n\n/**\n * Suppresses noisy cross-origin vendor runtime script errors so Angular does not\n * surface them as unhandled `ErrorEvent` crashes in the console.\n */\nexport function installVendorRuntimeErrorSuppression(): void {\n  const patchState = getVendorRuntimeErrorPatchState();\n  if (patchState.installed) return;\n\n  const previousOnError = patchState.originalOnError;\n  const previousErrorListener = (globalThis as unknown as { __siaraShieldPrevErrorListener__?: (ev: Event) => void })\n    .__siaraShieldPrevErrorListener__;\n\n  const captureErrorListener = (event: Event) => {\n    // Angular can surface cross-origin script failures as generic ErrorEvent \"Script error.\"\n    // even when the underlying vendor request succeeds. This blocks those from bubbling.\n    const errorEvent = event as ErrorEvent;\n    const message = String(errorEvent?.message ?? '').trim().toLowerCase();\n    const filename = String((errorEvent as unknown as { filename?: string })?.filename ?? '').trim().toLowerCase();\n\n    const isGenericCrossOriginNoise =\n      message === 'script error.' ||\n      message === 'script error' ||\n      message.includes('an errorevent with no error occurred');\n\n    if (!isGenericCrossOriginNoise) return;\n\n    // Requests.js and vendor scripts are commonly cross-origin; suppress the generic noise.\n    if (\n      filename.includes('requests.js') ||\n      filename.includes('embed.mycybersiara.com') ||\n      filename.includes('embedcdn.mycybersiara.com') ||\n      filename.includes('jquery')\n    ) {\n      event.preventDefault?.();\n      (event as unknown as { stopImmediatePropagation?: () => void }).stopImmediatePropagation?.();\n    }\n  };\n\n  globalThis.onerror = (message, source, lineno, colno, error) => {\n    if (isLikelyVendorScriptRuntimeError(message, source)) {\n      return true;\n    }\n\n    if (typeof previousOnError === 'function') {\n      return previousOnError.call(globalThis, message, source, lineno, colno, error);\n    }\n\n    return false;\n  };\n\n  // Capture-phase listener to prevent Angular global error handler from logging generic cross-origin noise.\n  if (!previousErrorListener) {\n    (globalThis as unknown as { __siaraShieldPrevErrorListener__?: (ev: Event) => void }).__siaraShieldPrevErrorListener__ =\n      captureErrorListener;\n    globalThis.addEventListener('error', captureErrorListener, true);\n  }\n\n  patchState.installed = true;\n}\n\n","const SUBMIT_GUARD_STATE_KEY = '__siaraShieldSubmitGuardInstalled__';\nconst SYNTHETIC_CLICK_GUARD_WINDOW_MS = 1200;\n\nexport function installCaptchaSubmitGuard(): void {\n  const globalState = globalThis as typeof globalThis & {\n    [SUBMIT_GUARD_STATE_KEY]?: boolean;\n  };\n\n  if (globalState[SUBMIT_GUARD_STATE_KEY]) return;\n\n  const lastSyntheticClickByButton = new WeakMap<EventTarget, number>();\n\n  document.addEventListener(\n    'click',\n    (event) => {\n      const target = event.target;\n      if (!(target instanceof Element)) return;\n\n      const submitButton = target.closest('.CaptchaSubmit');\n      if (!submitButton) return;\n\n      // Vendor runtime can emit synthetic clicks on .CaptchaSubmit.\n      // Allow one synthetic click (needed for vendor auto-submit) but block rapid duplicates.\n      if (!event.isTrusted) {\n        const now = Date.now();\n        const lastSyntheticClickAt = lastSyntheticClickByButton.get(submitButton) ?? 0;\n        if (now - lastSyntheticClickAt < SYNTHETIC_CLICK_GUARD_WINDOW_MS) {\n          event.preventDefault();\n          event.stopImmediatePropagation();\n          return;\n        }\n        lastSyntheticClickByButton.set(submitButton, now);\n      }\n    },\n    true,\n  );\n\n  globalState[SUBMIT_GUARD_STATE_KEY] = true;\n}\n\n","import { getSiaraShieldGlobals } from './siara-shield.globals';\r\n\r\nconst VENDOR_EVENT_MIGRATION_KEY = '__siaraShieldVendorEventMigrationInstalled__';\r\nconst MIGRATED_MARKER = 'data-siara-shield-event-migrated';\r\n\r\nconst INLINE_EVENT_ATTRIBUTES = [\r\n  'onclick',\r\n  'ondblclick',\r\n  'onmousedown',\r\n  'onmouseup',\r\n  'onkeydown',\r\n  'onkeyup',\r\n  'onchange',\r\n  'oninput',\r\n  'onsubmit',\r\n] as const;\r\n\r\ntype InlineEventAttribute = (typeof INLINE_EVENT_ATTRIBUTES)[number];\r\n\r\nfunction toDomEventName(attributeName: InlineEventAttribute): string {\r\n  return attributeName.slice(2);\r\n}\r\n\r\nfunction resolveGlobalCallable(name: string): ((...args: unknown[]) => unknown) | undefined {\r\n  const globals = getSiaraShieldGlobals() as Record<string, unknown>;\r\n  const candidate = globals[name];\r\n  return typeof candidate === 'function' ? (candidate as (...args: unknown[]) => unknown) : undefined;\r\n}\r\n\r\nfunction invokeWindowOpenExpression(expression: string): boolean {\r\n  const match = /^window\\.open\\(\\s*(['\"])(.*?)\\1\\s*(?:,\\s*(['\"])(.*?)\\3\\s*)?\\)(?:\\.focus\\(\\))?;?$/i.exec(expression);\r\n  if (!match) {\r\n    return false;\r\n  }\r\n\r\n  const targetWindow = globalThis.open(match[2], match[4] || '_blank');\r\n  targetWindow?.focus();\r\n  return true;\r\n}\r\n\r\nfunction invokeGlobalFunctionExpression(expression: string): boolean {\r\n  const match = /^([_$a-zA-Z][\\w$]*)\\((.*)\\);?$/s.exec(expression);\r\n  if (!match) {\r\n    return false;\r\n  }\r\n\r\n  const fn = resolveGlobalCallable(match[1]);\r\n  if (!fn) {\r\n    return false;\r\n  }\r\n\r\n  const args = match[2].trim();\r\n  if (!args) {\r\n    fn();\r\n    return true;\r\n  }\r\n\r\n  if (/^(['\"]).*\\1$/.test(args)) {\r\n    fn(args.slice(1, -1));\r\n    return true;\r\n  }\r\n\r\n  fn();\r\n  return true;\r\n}\r\n\r\nfunction invokeInlineEventExpression(expression: string): void {\r\n  const trimmed = expression.trim();\r\n  if (!trimmed) {\r\n    return;\r\n  }\r\n\r\n  for (const part of trimmed.split(';')) {\r\n    const statement = part.trim();\r\n    if (!statement) {\r\n      continue;\r\n    }\r\n\r\n    if (invokeWindowOpenExpression(statement) || invokeGlobalFunctionExpression(statement)) {\r\n      continue;\r\n    }\r\n  }\r\n}\r\n\r\nfunction migrateInlineEventAttribute(element: HTMLElement, attributeName: InlineEventAttribute): void {\r\n  const expression = element.getAttribute(attributeName);\r\n  if (!expression) {\r\n    return;\r\n  }\r\n\r\n  element.removeAttribute(attributeName);\r\n  const eventName = toDomEventName(attributeName);\r\n  element.addEventListener(eventName, (event) => {\r\n    if (eventName === 'submit') {\r\n      event.preventDefault();\r\n    }\r\n    invokeInlineEventExpression(expression);\r\n  });\r\n}\r\n\r\nexport function migrateVendorInlineEventAttributes(root: Node): void {\r\n  if (root instanceof HTMLElement && root.hasAttribute(MIGRATED_MARKER)) {\r\n    return;\r\n  }\r\n\r\n  const elements: HTMLElement[] = [];\r\n  if (root instanceof HTMLElement) {\r\n    elements.push(root);\r\n  }\r\n\r\n  if (root instanceof Element || root instanceof Document || root instanceof DocumentFragment) {\r\n    elements.push(\r\n      ...Array.from(\r\n        root.querySelectorAll<HTMLElement>(\r\n          '[onclick],[ondblclick],[onmousedown],[onmouseup],[onkeydown],[onkeyup],[onchange],[oninput],[onsubmit]',\r\n        ),\r\n      ),\r\n    );\r\n  }\r\n\r\n  for (const element of elements) {\r\n    if (element.hasAttribute(MIGRATED_MARKER)) {\r\n      continue;\r\n    }\r\n\r\n    for (const attributeName of INLINE_EVENT_ATTRIBUTES) {\r\n      migrateInlineEventAttribute(element, attributeName);\r\n    }\r\n\r\n    element.setAttribute(MIGRATED_MARKER, 'true');\r\n  }\r\n}\r\n\r\nexport function installVendorInlineEventMigration(documentRef: Document): void {\r\n  const globals = globalThis as typeof globalThis & { [VENDOR_EVENT_MIGRATION_KEY]?: boolean };\r\n  if (globals[VENDOR_EVENT_MIGRATION_KEY]) {\r\n    migrateVendorInlineEventAttributes(documentRef);\r\n    return;\r\n  }\r\n\r\n  const observer = new MutationObserver((records) => {\r\n    for (const record of records) {\r\n      if (record.type === 'attributes' && record.target instanceof HTMLElement) {\r\n        migrateVendorInlineEventAttributes(record.target);\r\n        continue;\r\n      }\r\n\r\n      for (const node of record.addedNodes) {\r\n        migrateVendorInlineEventAttributes(node);\r\n      }\r\n    }\r\n  });\r\n\r\n  const root = documentRef.documentElement ?? documentRef;\r\n  observer.observe(root, {\r\n    childList: true,\r\n    subtree: true,\r\n    attributes: true,\r\n    attributeFilter: [...INLINE_EVENT_ATTRIBUTES],\r\n  });\r\n\r\n  migrateVendorInlineEventAttributes(documentRef);\r\n  globals[VENDOR_EVENT_MIGRATION_KEY] = true;\r\n}\r\n","import { installVendorInlineEventMigration } from './siara-shield-vendor-event-migration';\n\ntype ScriptStatus = 'loading' | 'loaded' | 'error';\n\nexport interface ScriptLoadOptions {\n  nonce?: string;\n}\n\ninterface DynamicScriptNoncePatchState {\n  nonceByDocument: WeakMap<Document, string>;\n  observerByDocument: WeakMap<Document, MutationObserver>;\n  inlineCaptchaScriptByDocument: WeakMap<Document, Set<string>>;\n  patched: boolean;\n}\n\nconst SCRIPT_STATUS_BY_DOCUMENT = new WeakMap<Document, Map<string, ScriptStatus>>();\nconst SCRIPT_PENDING_BY_DOCUMENT = new WeakMap<Document, Map<string, Promise<void>>>();\nconst DYNAMIC_SCRIPT_NONCE_STATE_KEY = '__siaraShieldDynamicScriptNonceState__';\n\nfunction getStatusBySrc(documentRef: Document): Map<string, ScriptStatus> {\n  let statusBySrc = SCRIPT_STATUS_BY_DOCUMENT.get(documentRef);\n  if (!statusBySrc) {\n    statusBySrc = new Map<string, ScriptStatus>();\n    SCRIPT_STATUS_BY_DOCUMENT.set(documentRef, statusBySrc);\n  }\n\n  return statusBySrc;\n}\n\nfunction getPendingBySrc(documentRef: Document): Map<string, Promise<void>> {\n  let pendingBySrc = SCRIPT_PENDING_BY_DOCUMENT.get(documentRef);\n  if (!pendingBySrc) {\n    pendingBySrc = new Map<string, Promise<void>>();\n    SCRIPT_PENDING_BY_DOCUMENT.set(documentRef, pendingBySrc);\n  }\n\n  return pendingBySrc;\n}\n\nfunction getDynamicScriptNoncePatchState(): DynamicScriptNoncePatchState {\n  const globalState = globalThis as typeof globalThis & {\n    [DYNAMIC_SCRIPT_NONCE_STATE_KEY]?: DynamicScriptNoncePatchState;\n  };\n\n  if (!globalState[DYNAMIC_SCRIPT_NONCE_STATE_KEY]) {\n    globalState[DYNAMIC_SCRIPT_NONCE_STATE_KEY] = {\n      nonceByDocument: new WeakMap<Document, string>(),\n      observerByDocument: new WeakMap<Document, MutationObserver>(),\n      inlineCaptchaScriptByDocument: new WeakMap<Document, Set<string>>(),\n      patched: false,\n    };\n  }\n\n  return globalState[DYNAMIC_SCRIPT_NONCE_STATE_KEY];\n}\n\nfunction normalizeNonce(nonce?: string | null): string | undefined {\n  const trimmed = nonce?.trim();\n  return trimmed ? trimmed : undefined;\n}\n\nfunction isScriptElement(node: Node): node is HTMLScriptElement {\n  return node instanceof Element && node.tagName.toLowerCase() === 'script';\n}\n\nfunction isStyleElement(node: Node): node is HTMLStyleElement {\n  return node instanceof Element && node.tagName.toLowerCase() === 'style';\n}\n\nfunction isStylesheetLinkElement(node: Node): node is HTMLLinkElement {\n  if (!(node instanceof Element) || node.tagName.toLowerCase() !== 'link') {\n    return false;\n  }\n  const rel = (node.getAttribute('rel') ?? '').toLowerCase();\n  return rel === 'stylesheet';\n}\n\nexport function applyScriptNonce(script: HTMLScriptElement, nonce?: string): void {\n  const resolvedNonce = normalizeNonce(nonce);\n  if (!resolvedNonce) {\n    return;\n  }\n\n  script.setAttribute('nonce', resolvedNonce);\n  script.nonce = resolvedNonce;\n\n  // Some vendor HTML fragments include inline scripts that execute immediately during insertion.\n  // In strict CSP mode these run with a nonce, but can still race DOM insertion and crash\n  // (e.g. `null.querySelector(...)`). We defensively retry once on failure.\n  if (!script.src) {\n    const body = script.textContent ?? '';\n    if (body && !body.includes('__siaraShieldInlineRetry__')) {\n      script.textContent = `(function(){\\n` +\n        `  var __siaraShieldInlineRetry__ = true;\\n` +\n        `  function __run(){\\n${body}\\n  }\\n` +\n        `  try { __run(); } catch (e) {\\n` +\n        `    try { setTimeout(function(){ try { __run(); } catch (_e) {} }, 0); } catch (_t) {}\\n` +\n        `  }\\n` +\n        `})();`;\n    }\n  }\n}\n\nfunction applyStyleNonce(style: HTMLStyleElement, nonce?: string): void {\n  const resolvedNonce = normalizeNonce(nonce);\n  if (!resolvedNonce) {\n    return;\n  }\n\n  style.setAttribute('nonce', resolvedNonce);\n  style.nonce = resolvedNonce;\n}\n\nfunction applyLinkNonce(link: HTMLLinkElement, nonce?: string): void {\n  const resolvedNonce = normalizeNonce(nonce);\n  if (!resolvedNonce) {\n    return;\n  }\n\n  link.setAttribute('nonce', resolvedNonce);\n  // `HTMLLinkElement.nonce` exists in modern browsers.\n  (link as HTMLLinkElement & { nonce?: string }).nonce = resolvedNonce;\n}\n\nfunction applyNonceToNode(node: Node, nonce?: string): void {\n  if (isScriptElement(node)) {\n    applyScriptNonce(node, nonce);\n    return;\n  }\n  if (isStyleElement(node)) {\n    applyStyleNonce(node, nonce);\n    return;\n  }\n  if (isStylesheetLinkElement(node)) {\n    applyLinkNonce(node, nonce);\n  }\n}\n\nfunction applyTrackedNonce(node: Node): void {\n  const documentRef = node.ownerDocument;\n  if (!documentRef) {\n    return;\n  }\n\n  const nonce = getDynamicScriptNoncePatchState().nonceByDocument.get(documentRef);\n  applyNonceToNode(node, nonce);\n}\n\nfunction getTrackedInlineCaptchaScripts(documentRef: Document): Set<string> {\n  const patchState = getDynamicScriptNoncePatchState();\n  let trackedScripts = patchState.inlineCaptchaScriptByDocument.get(documentRef);\n  if (!trackedScripts) {\n    trackedScripts = new Set<string>();\n    patchState.inlineCaptchaScriptByDocument.set(documentRef, trackedScripts);\n  }\n\n  return trackedScripts;\n}\n\nfunction shouldSkipDuplicateInlineCaptchaScript(node: Node): boolean {\n  if (!isScriptElement(node) || Boolean(node.src)) {\n    return false;\n  }\n\n  const scriptBody = (node.textContent ?? '').trim();\n  if (!scriptBody || !scriptBody.includes('currentLangCode')) {\n    return false;\n  }\n\n  const documentRef = node.ownerDocument;\n  if (!documentRef) {\n    return false;\n  }\n\n  const trackedScripts = getTrackedInlineCaptchaScripts(documentRef);\n  if (trackedScripts.has(scriptBody)) {\n    return true;\n  }\n\n  trackedScripts.add(scriptBody);\n  return false;\n}\n\nfunction walkAndApplyNonce(root: Node, nonce?: string): void {\n  if (!nonce) return;\n\n  // Fast path: root itself is nonceable.\n  if (isScriptElement(root) || isStyleElement(root) || isStylesheetLinkElement(root)) {\n    applyNonceToNode(root, nonce);\n    return;\n  }\n\n  // Common path for jQuery: append DocumentFragment containing nodes created via HTML parsing.\n  if (root instanceof Element || root instanceof DocumentFragment) {\n    const nonceable = root.querySelectorAll?.('script,style,link[rel=\"stylesheet\"]') ?? [];\n    for (const el of nonceable) {\n      applyNonceToNode(el as unknown as Node, nonce);\n    }\n  }\n}\n\nfunction ensureNonceMutationObserver(documentRef: Document): void {\n  const patchState = getDynamicScriptNoncePatchState();\n  if (patchState.observerByDocument.get(documentRef)) {\n    return;\n  }\n\n  const observer = new MutationObserver((records) => {\n    const nonce = patchState.nonceByDocument.get(documentRef);\n    if (!nonce) return;\n\n    for (const record of records) {\n      for (const node of record.addedNodes) {\n        walkAndApplyNonce(node, nonce);\n      }\n    }\n  });\n\n  // Observe the full document because scripts can be injected into body/head by vendor/jQuery.\n  const root = documentRef.documentElement ?? documentRef;\n  observer.observe(root, { childList: true, subtree: true });\n  patchState.observerByDocument.set(documentRef, observer);\n}\n\nfunction teardownNonceMutationObserver(documentRef: Document): void {\n  const patchState = getDynamicScriptNoncePatchState();\n  const observer = patchState.observerByDocument.get(documentRef);\n  if (!observer) return;\n  observer.disconnect();\n  patchState.observerByDocument.delete(documentRef);\n}\n\nfunction injectNonceIntoHtml(html: string, nonce: string): string {\n  const resolvedNonce = normalizeNonce(nonce);\n  if (!resolvedNonce) return html;\n\n  // If tag already includes nonce, leave it.\n  const withNonceAttr = ` nonce=\"${resolvedNonce}\"`;\n\n  const addNonceToTag = (tag: 'script' | 'style') => {\n    const openTag = new RegExp(`<${tag}(\\\\s[^>]*?)?>`, 'gi');\n    return (input: string) =>\n      input.replace(openTag, (match) => {\n        if (/[\\s\"']nonce\\s*=/.test(match)) return match;\n        // Insert nonce before closing `>`\n        return match.replace(/>$/, `${withNonceAttr}>`);\n      });\n  };\n\n  // For link rel=stylesheet, add nonce when missing.\n  const linkOpenTag = /<link\\b[^>]*>/gi;\n  const addNonceToStylesheetLink = (input: string) =>\n    input.replace(linkOpenTag, (match) => {\n      if (/[\\s\"']nonce\\s*=/.test(match)) return match;\n      if (!/\\brel\\s*=\\s*[\"']?stylesheet[\"']?/i.test(match)) return match;\n      return match.replace(/>$/, `${withNonceAttr}>`);\n    });\n\n  return addNonceToStylesheetLink(addNonceToTag('style')(addNonceToTag('script')(html)));\n}\n\nfunction patchDynamicScriptInsertion(): void {\n  const patchState = getDynamicScriptNoncePatchState();\n  if (patchState.patched) {\n    return;\n  }\n\n  const originalAppendChild = Node.prototype.appendChild;\n  const originalInsertBefore = Node.prototype.insertBefore;\n  const originalReplaceChild = Node.prototype.replaceChild;\n  const originalInsertAdjacentHTML = Element.prototype.insertAdjacentHTML;\n\n  Node.prototype.appendChild = function <T extends Node>(node: T): T {\n    // Vendor captcha injects an inline snippet with `currentLangCode` that crashes when appended twice.\n    if (shouldSkipDuplicateInlineCaptchaScript(node)) {\n      return node;\n    }\n    applyTrackedNonce(node);\n    return originalAppendChild.call(this, node) as T;\n  };\n\n  Node.prototype.insertBefore = function <T extends Node>(node: T, child: Node | null): T {\n    if (shouldSkipDuplicateInlineCaptchaScript(node)) {\n      return node;\n    }\n    applyTrackedNonce(node);\n    return originalInsertBefore.call(this, node, child) as T;\n  };\n\n  Node.prototype.replaceChild = function <T extends Node>(node: Node, child: T): T {\n    applyTrackedNonce(node);\n    return originalReplaceChild.call(this, node, child) as T;\n  };\n\n  Element.prototype.insertAdjacentHTML = function (position: InsertPosition, text: string): void {\n    const documentRef = this.ownerDocument;\n    const nonce = documentRef ? patchState.nonceByDocument.get(documentRef) : undefined;\n    const patchedText = nonce ? injectNonceIntoHtml(text, nonce) : text;\n    return originalInsertAdjacentHTML.call(this, position, patchedText);\n  };\n\n  patchState.patched = true;\n}\n\nexport function resolveCspNonce(documentRef: Document | null | undefined, explicitNonce?: string): string | undefined {\n  const resolvedExplicitNonce = normalizeNonce(explicitNonce);\n  if (resolvedExplicitNonce) {\n    return resolvedExplicitNonce;\n  }\n\n  if (!documentRef) {\n    return undefined;\n  }\n\n  const scriptWithNonce = documentRef.querySelector<HTMLScriptElement>('script[nonce]');\n  const nonceFromScript = normalizeNonce(scriptWithNonce?.getAttribute('nonce') ?? scriptWithNonce?.nonce);\n  if (nonceFromScript) {\n    return nonceFromScript;\n  }\n\n  const nonceMeta = documentRef.querySelector<HTMLMetaElement>('meta[name=\"csp-nonce\"]');\n  return normalizeNonce(nonceMeta?.content);\n}\n\nexport function prepareScriptNonce(documentRef: Document | null | undefined, explicitNonce?: string): string | undefined {\n  const resolvedNonce = resolveCspNonce(documentRef, explicitNonce);\n  const patchState = getDynamicScriptNoncePatchState();\n\n  if (resolvedNonce) {\n    // DOM patching is only needed when a CSP nonce must be propagated.\n    patchDynamicScriptInsertion();\n    const effectiveDocumentRef = documentRef ?? globalThis.document;\n    if (effectiveDocumentRef) {\n      patchState.nonceByDocument.set(effectiveDocumentRef, resolvedNonce);\n      ensureNonceMutationObserver(effectiveDocumentRef);\n      installVendorInlineEventMigration(effectiveDocumentRef);\n    }\n  } else {\n    if (documentRef) {\n      patchState.nonceByDocument.delete(documentRef);\n      teardownNonceMutationObserver(documentRef);\n    }\n  }\n\n  return resolvedNonce;\n}\n\nexport function loadScript(documentRef: Document, src: string, options?: ScriptLoadOptions): Promise<void> {\n  const nonce = normalizeNonce(options?.nonce);\n  const statusBySrc = getStatusBySrc(documentRef);\n  const pendingBySrc = getPendingBySrc(documentRef);\n  const existing = documentRef.querySelector<HTMLScriptElement>(`script[src=\"${src}\"]`);\n\n  if (existing) {\n    applyScriptNonce(existing, nonce);\n    const status = statusBySrc.get(src);\n    if (status === 'loaded') {\n      return Promise.resolve();\n    }\n\n    const pending = pendingBySrc.get(src);\n    if (pending) {\n      return pending;\n    }\n\n    return Promise.resolve();\n  }\n\n  statusBySrc.set(src, 'loading');\n\n  const pending = new Promise<void>((resolve, reject) => {\n    const script = documentRef.createElement('script');\n    script.src = src;\n    script.async = true;\n    applyScriptNonce(script, nonce);\n    script.onload = () => {\n      statusBySrc.set(src, 'loaded');\n      pendingBySrc.delete(src);\n      resolve();\n    };\n    script.onerror = () => {\n      statusBySrc.set(src, 'error');\n      pendingBySrc.delete(src);\n      reject(new Error(`Failed to load script: ${src}. Check CSP allowlist and nonce configuration.`));\n    };\n    documentRef.head.appendChild(script);\n  });\n\n  pendingBySrc.set(src, pending);\n  return pending;\n}\n","import { getSiaraShieldGlobals } from './siara-shield.globals';\r\n\r\nconst VENDOR_RUNTIME_PATCH_KEY = '__siaraShieldVendorRuntimePatchInstalled__';\r\nconst VENDOR_TOKEN_BRIDGE_KEY = '__siaraShieldVendorTokenBridgeInstalled__';\r\nconst WRAPPED_FN_PREFIX = '__siaraShieldWrappedVendorFn__';\r\n\r\ntype VendorFnName = 'Open_Pluin' | 'Open_Plugin' | 'Open_Plugin_';\r\ntype OptionalVendorFnName = VendorFnName | 'OpenCaptchaSlid' | 'GetCyberSiara';\r\ntype VendorFn = (...args: unknown[]) => unknown;\r\n\r\nfunction isKnownVendorNullDomError(error: unknown): boolean {\r\n  const msg = error instanceof Error ? error.message.toLowerCase() : String(error ?? '').toLowerCase();\r\n  return (\r\n    msg.includes(\"cannot read properties of null (reading 'style')\") ||\r\n    msg.includes(\"cannot read properties of null (reading 'queryselector')\") ||\r\n    msg.includes(\"cannot read properties of null (reading 'removechild')\")\r\n  );\r\n}\r\n\r\nfunction runFallbackChallengeOpen(excluding: OptionalVendorFnName): void {\r\n  const globals = getSiaraShieldGlobals() as typeof globalThis & Record<string, unknown>;\r\n  const candidates: OptionalVendorFnName[] = ['OpenCaptchaSlid', 'GetCyberSiara', 'Open_Pluin', 'Open_Plugin', 'Open_Plugin_'];\r\n\r\n  for (const name of candidates) {\r\n    if (name === excluding) continue;\r\n    const fn = globals[name];\r\n    if (typeof fn !== 'function') continue;\r\n    try {\r\n      (fn as VendorFn)();\r\n      return;\r\n    } catch {\r\n      // Try next candidate.\r\n    }\r\n  }\r\n}\r\n\r\nfunction wrapVendorOpenFunction(name: VendorFnName): void {\r\n  const globals = getSiaraShieldGlobals() as typeof globalThis & Record<string, unknown>;\r\n  const marker = `${WRAPPED_FN_PREFIX}${name}`;\r\n  if (globals[marker] === true) return;\r\n\r\n  const candidate = globals[name];\r\n  if (typeof candidate !== 'function') return;\r\n\r\n  const original = candidate as VendorFn;\r\n  globals[name] = ((...args: unknown[]) => {\r\n    try {\r\n      return original(...args);\r\n    } catch (error) {\r\n      if (!isKnownVendorNullDomError(error)) {\r\n        throw error;\r\n      }\r\n\r\n      // Vendor challenge opener hit a missing DOM node.\r\n      // Try alternative open functions so challenge can still render.\r\n      runFallbackChallengeOpen(name);\r\n      return undefined;\r\n    }\r\n  }) as unknown;\r\n  globals[marker] = true;\r\n}\r\n\r\nfunction installVerifiedSubmitTokenBridge(): void {\r\n  const globals = getSiaraShieldGlobals() as typeof globalThis & {\r\n    [VENDOR_TOKEN_BRIDGE_KEY]?: boolean;\r\n    JQuryName?: { ajax?: (...args: unknown[]) => unknown };\r\n    $?: { ajax?: (...args: unknown[]) => unknown };\r\n    CyberSiaraToken?: string;\r\n  };\r\n  if (globals[VENDOR_TOKEN_BRIDGE_KEY]) return;\r\n\r\n  const patchAjaxOwner = (owner: { ajax?: (...args: unknown[]) => unknown } | undefined): void => {\r\n    if (!owner || typeof owner.ajax !== 'function') return;\r\n    const originalAjax = owner.ajax.bind(owner);\r\n\r\n    owner.ajax = ((...args: unknown[]) => {\r\n      const firstArg = args[0];\r\n      if (!firstArg || typeof firstArg !== 'object') {\r\n        return originalAjax(...args);\r\n      }\r\n\r\n      const options = firstArg as Record<string, unknown>;\r\n      const url = String(options['url'] ?? '').toLowerCase();\r\n      const originalSuccess = options['success'];\r\n      if (!url.includes('/submitcaptcha/verifiedsubmit') || typeof originalSuccess !== 'function') {\r\n        return originalAjax(options);\r\n      }\r\n\r\n      options['success'] = ((response: unknown, ...rest: unknown[]) => {\r\n        const payload = response as { data?: unknown; Data?: unknown } | null;\r\n        const maybeTokenRaw = payload?.data ?? payload?.Data;\r\n        if (typeof maybeTokenRaw === 'string' && maybeTokenRaw.trim()) {\r\n          globals.CyberSiaraToken = maybeTokenRaw.trim();\r\n        }\r\n\r\n        return (originalSuccess as (...fnArgs: unknown[]) => unknown)(response, ...rest);\r\n      }) as unknown;\r\n\r\n      return originalAjax(options);\r\n    }) as typeof owner.ajax;\r\n  };\r\n\r\n  patchAjaxOwner(globals.$);\r\n  patchAjaxOwner(globals.JQuryName);\r\n  globals[VENDOR_TOKEN_BRIDGE_KEY] = true;\r\n}\r\n\r\nexport function installVendorChallengeRuntimePatch(): void {\r\n  const globals = getSiaraShieldGlobals() as typeof globalThis & {\r\n    [VENDOR_RUNTIME_PATCH_KEY]?: boolean;\r\n  };\r\n  if (globals[VENDOR_RUNTIME_PATCH_KEY]) return;\r\n\r\n  wrapVendorOpenFunction('Open_Pluin');\r\n  wrapVendorOpenFunction('Open_Plugin');\r\n  wrapVendorOpenFunction('Open_Plugin_');\r\n  installVerifiedSubmitTokenBridge();\r\n  globals[VENDOR_RUNTIME_PATCH_KEY] = true;\r\n}\r\n","/**\n * SiaraShield vendor scripts are served from the CDN origin (embedcdn.mycybersiara.com).\n * Single module used by `initSiaraShield` and `<siara-shield>` so URLs stay in one place.\n */\nexport const SIARA_SHIELD_JQUERY_FALLBACK_SRC = 'https://embedcdn.mycybersiara.com/CaptchaFormate/jquery.min.js';\nexport const SIARA_SHIELD_CAPTCHA_RESOURCES_SRC = 'https://embedcdn.mycybersiara.com/CaptchaFormate/CaptchaResources.js';\nexport const SIARA_SHIELD_VALIDATION_SCRIPT_SRC = 'https://embedcdn.mycybersiara.com/CaptchaFormate/SiaraShield_Validation.js';\n","import { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable } from '@angular/core';\n\nimport { loadScript, type ScriptLoadOptions } from './siara-shield-script-utils';\n\n@Injectable({ providedIn: 'root' })\nexport class SiaraShieldLoaderService {\n  constructor(@Inject(DOCUMENT) private readonly document: Document) {}\n\n  loadScript(src: string, options?: ScriptLoadOptions): Promise<void> {\n    return loadScript(this.document, src, options);\n  }\n}\n","import { AfterViewInit, Component, ElementRef, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\nimport { SiaraShieldLoaderService } from './siara-shield-loader.service';\nimport { getInitCaptchaFn, getSiaraShieldGlobals } from './siara-shield.globals';\nimport { installVendorRuntimeErrorSuppression, suppressVendorConsoleWindow } from './siara-shield-log-utils';\nimport { installCaptchaSubmitGuard } from './siara-shield-submit-guard';\nimport { prepareScriptNonce } from './siara-shield-script-utils';\nimport { installVendorChallengeRuntimePatch } from './siara-shield-vendor-runtime';\nimport {\n  SIARA_SHIELD_CAPTCHA_RESOURCES_SRC as CAPTCHA_SCRIPT_SRC,\n  SIARA_SHIELD_JQUERY_FALLBACK_SRC as JQUERY_FALLBACK_SRC,\n  SIARA_SHIELD_VALIDATION_SCRIPT_SRC as VALIDATION_SCRIPT_SRC,\n} from './siara-shield-urls';\nconst CAPTCHA_READY_TIMEOUT_MS = 8000;\nconst CAPTCHA_CONTAINER_READY_TIMEOUT_MS = 2000;\nconst CAPTCHA_CONTAINER_POLL_MS = 50;\n\nasync function waitForCaptchaContainer(documentRef: Document, timeoutMs = CAPTCHA_CONTAINER_READY_TIMEOUT_MS): Promise<void> {\n  const startedAt = Date.now();\n  while (Date.now() - startedAt < timeoutMs) {\n    if (documentRef.querySelector('.SiaraShield')) {\n      return;\n    }\n    await new Promise((resolve) => setTimeout(resolve, CAPTCHA_CONTAINER_POLL_MS));\n  }\n}\n\nfunction ensureAccessibilityPopupAliases(): void {\n  const g = globalThis as typeof globalThis & Record<string, unknown>;\n  const aliasNames = [\n    'RemoveAccesibilityPopup',\n    '_RemoveAccesibilityPopup',\n    'RemoveAccesiblityPopup',\n    '_RemoveAccesiblityPopup',\n  ] as const;\n\n  const existing = aliasNames\n    .map((name) => g[name])\n    .find((value): value is () => void => typeof value === 'function');\n\n  const stableFn = existing ?? (() => undefined);\n  for (const name of aliasNames) {\n    g[name] = stableFn;\n  }\n}\n\nfunction runInRootZone<T>(fn: () => T): T {\n  const g = globalThis as typeof globalThis & { Zone?: { root?: { run?: <U>(cb: () => U) => U } } };\n  const zoneRootRun = g.Zone?.root?.run;\n  if (typeof zoneRootRun === 'function') {\n    return zoneRootRun.call(g.Zone?.root, fn) as T;\n  }\n  return fn();\n}\n\nexport interface SiaraShieldInitOptions {\n  /** SiaraShield public key. Use \"TEST-CYBERSIARA\" for staging/development. */\n  publicKey: string;\n  /** Loads jQuery before SiaraShield script. Default is true for easier integration. Set to false only if your page already includes jQuery. */\n  loadJQuery?: boolean;\n  /**\n   * CSP nonce value (without the `'nonce-'` prefix).\n   * If omitted, we attempt to resolve it from existing `script[nonce]` or `meta[name=\"csp-nonce\"]`.\n   */\n  cspNonce?: string;\n  /** Set true only when actively debugging vendor/runtime internals in browser console. */\n  allowVendorConsoleLogs?: boolean;\n}\n\n@Component({\n  selector: 'siara-shield',\n  standalone: true,\n  template: `<div class=\"SiaraShield\"></div>`,\n  encapsulation: ViewEncapsulation.None,\n})\nexport class SiaraShieldComponent implements AfterViewInit {\n  @Input({ required: true }) publicKey!: string;\n  @Input() loadJQuery = true;\n  @Input() cspNonce?: string;\n  @Input() allowVendorConsoleLogs = false;\n\n  /**\n   * Emits the current `CyberSiaraToken` right after a successful `checkCaptcha()`.\n   */\n  @Output() token = new EventEmitter<string>();\n\n  private initialized = false;\n\n  constructor(\n    private readonly host: ElementRef<HTMLElement>,\n    private readonly loader: SiaraShieldLoaderService,\n  ) {}\n\n  async ngAfterViewInit(): Promise<void> {\n    await this.init({\n      publicKey: this.publicKey,\n      loadJQuery: this.loadJQuery,\n      cspNonce: this.cspNonce,\n      allowVendorConsoleLogs: this.allowVendorConsoleLogs,\n    });\n  }\n\n  async init(options: SiaraShieldInitOptions): Promise<void> {\n    if (this.initialized) return;\n\n    // Ensure the host element is in DOM before scripts run.\n    void this.host.nativeElement;\n    if (!options.allowVendorConsoleLogs) {\n      // Install suppression as early as possible so Angular doesn't log cross-origin vendor noise during bootstrap.\n      installVendorRuntimeErrorSuppression();\n      suppressVendorConsoleWindow();\n    }\n    installCaptchaSubmitGuard();\n\n    if (!options.publicKey) {\n      throw new Error('SiaraShieldComponent: publicKey is required.');\n    }\n\n    // Prepare CSP nonce propagation so any vendor-injected child scripts get the same nonce.\n    const documentRef = this.host.nativeElement.ownerDocument ?? globalThis.document ?? null;\n    const nonce = prepareScriptNonce(documentRef, options.cspNonce);\n    if (documentRef) {\n      // Vendor scripts often query `.SiaraShield` immediately; ensure it's present in DOM.\n      await waitForCaptchaContainer(documentRef);\n    }\n    if ((options.loadJQuery ?? true) && !this.isJQueryAlreadyAvailable()) {\n      await this.loader.loadScript(JQUERY_FALLBACK_SRC, { nonce });\n    }\n\n    await this.loader.loadScript(CAPTCHA_SCRIPT_SRC, { nonce });\n    await this.loader.loadScript(VALIDATION_SCRIPT_SRC, { nonce });\n\n    const g = getSiaraShieldGlobals();\n    ensureAccessibilityPopupAliases();\n    this.preventDuplicateValidationBootstrap(g);\n    installVendorChallengeRuntimePatch();\n    const initCaptchaFn = getInitCaptchaFn(g);\n    if (!initCaptchaFn) {\n      throw new Error(\n        'SiaraShield: InitCaptcha() is not available after loading scripts.',\n      );\n    }\n\n    runInRootZone(() => initCaptchaFn(options.publicKey));\n    await this.waitForCheckCaptchaApi();\n    this.initialized = true;\n  }\n\n  /**\n   * Detect preloaded jQuery from global object or an existing script tag.\n   */\n  private isJQueryAlreadyAvailable(): boolean {\n    const g = getSiaraShieldGlobals();\n    if (typeof g.jQuery === 'function' || typeof g.$ === 'function') {\n      return true;\n    }\n\n    const existingJqueryScript = this.host.nativeElement.ownerDocument.querySelector<HTMLScriptElement>(\n      'script[src*=\"jquery\"]',\n    );\n    return Boolean(existingJqueryScript);\n  }\n\n  private preventDuplicateValidationBootstrap(g: ReturnType<typeof getSiaraShieldGlobals>): void {\n    const originalAppendValidation = g.AppendValidationJS;\n    if (typeof originalAppendValidation !== 'function') {\n      return;\n    }\n\n    g.AppendValidationJS = () => {\n      const existing = this.host.nativeElement.ownerDocument.querySelector<HTMLScriptElement>(\n        `script[src=\"${VALIDATION_SCRIPT_SRC}\"]`,\n      );\n      if (existing) {\n        return;\n      }\n\n      originalAppendValidation();\n    };\n  }\n\n  private async waitForCheckCaptchaApi(timeoutMs = CAPTCHA_READY_TIMEOUT_MS): Promise<void> {\n    const startedAt = Date.now();\n    while (Date.now() - startedAt < timeoutMs) {\n      if (getSiaraShieldGlobals().CheckCaptcha) {\n        return;\n      }\n      await new Promise((resolve) => setTimeout(resolve, 100));\n    }\n    throw new Error('SiaraShield: CheckCaptcha() was not available within timeout.');\n  }\n\n  /**\n   * Calls the global `CheckCaptcha()` from SiaraShield script.\n   * Returns true when captcha is valid; emits token if available.\n   */\n  checkCaptcha(): boolean {\n    const g = getSiaraShieldGlobals();\n    if (!g.CheckCaptcha) {\n      throw new Error('SiaraShield: CheckCaptcha() is not available. Did init() run?');\n    }\n\n    const existingToken = typeof g.CyberSiaraToken === 'string' && g.CyberSiaraToken.length > 0 ? g.CyberSiaraToken : undefined;\n    if (existingToken) {\n      this.token.emit(existingToken);\n      return true;\n    }\n\n    if (!this.allowVendorConsoleLogs) {\n      suppressVendorConsoleWindow();\n    }\n    const ok = g.CheckCaptcha();\n    if (ok && typeof g.CyberSiaraToken === 'string') {\n      this.token.emit(g.CyberSiaraToken);\n    }\n    return ok;\n  }\n\n  /**\n   * Async-friendly captcha validation to avoid first-click timing issues.\n   * Performs one validation call and waits for token propagation.\n   */\n  async checkCaptchaAsync(options?: {\n    timeoutMs?: number;\n    pollIntervalMs?: number;\n    beforeCheckDelayMs?: number;\n    retryOnFalseMs?: number;\n    falseResultTokenWaitMs?: number;\n  }): Promise<boolean> {\n    const timeoutMs = options?.timeoutMs ?? 2000;\n    const pollIntervalMs = options?.pollIntervalMs ?? 120;\n    const beforeCheckDelayMs = options?.beforeCheckDelayMs ?? 140;\n    const retryOnFalseMs = options?.retryOnFalseMs ?? 0;\n    const falseResultTokenWaitMs = options?.falseResultTokenWaitMs ?? 900;\n    const existingToken = getSiaraShieldGlobals().CyberSiaraToken;\n    if (typeof existingToken === 'string' && existingToken.length > 0) {\n      this.token.emit(existingToken);\n      return true;\n    }\n    await new Promise((resolve) => setTimeout(resolve, beforeCheckDelayMs));\n    let ok = this.checkCaptcha();\n    // Optional retry for integrations that observe late vendor-state settling.\n    if (!ok && retryOnFalseMs > 0) {\n      await new Promise((resolve) => setTimeout(resolve, retryOnFalseMs));\n      ok = this.checkCaptcha();\n    }\n    if (!ok) {\n      // Some vendor flows return false first, then set token shortly after.\n      const falseStartedAt = Date.now();\n      while (Date.now() - falseStartedAt < falseResultTokenWaitMs) {\n        await new Promise((resolve) => setTimeout(resolve, pollIntervalMs));\n        const token = getSiaraShieldGlobals().CyberSiaraToken;\n        if (typeof token === 'string' && token.length > 0) {\n          this.token.emit(token);\n          return true;\n        }\n      }\n      return false;\n    }\n\n    const g = getSiaraShieldGlobals();\n    if (typeof g.CyberSiaraToken === 'string' && g.CyberSiaraToken.length > 0) {\n      return true;\n    }\n\n    const startedAt = Date.now();\n    while (Date.now() - startedAt < timeoutMs) {\n      await new Promise((resolve) => setTimeout(resolve, pollIntervalMs));\n      const token = getSiaraShieldGlobals().CyberSiaraToken;\n      if (typeof token === 'string' && token.length > 0) {\n        this.token.emit(token);\n        return true;\n      }\n    }\n\n    return true;\n  }\n}\n\n","import { getInitCaptchaFn, getSiaraShieldGlobals } from './siara-shield.globals';\nimport { installVendorRuntimeErrorSuppression, suppressVendorConsoleWindow } from './siara-shield-log-utils';\nimport { loadScript, prepareScriptNonce } from './siara-shield-script-utils';\nimport { installCaptchaSubmitGuard } from './siara-shield-submit-guard';\nimport { installVendorChallengeRuntimePatch } from './siara-shield-vendor-runtime';\nimport {\n  SIARA_SHIELD_CAPTCHA_RESOURCES_SRC as CAPTCHA_SCRIPT_SRC,\n  SIARA_SHIELD_JQUERY_FALLBACK_SRC as JQUERY_FALLBACK_SRC,\n  SIARA_SHIELD_VALIDATION_SCRIPT_SRC as VALIDATION_SCRIPT_SRC,\n} from './siara-shield-urls';\nconst CAPTCHA_READY_TIMEOUT_MS = 8000;\nconst CAPTCHA_CONTAINER_READY_TIMEOUT_MS = 2000;\nconst CAPTCHA_CONTAINER_POLL_MS = 50;\n\nasync function waitForCaptchaContainer(timeoutMs = CAPTCHA_CONTAINER_READY_TIMEOUT_MS): Promise<void> {\n  const startedAt = Date.now();\n  while (Date.now() - startedAt < timeoutMs) {\n    if (document.querySelector('.SiaraShield')) {\n      return;\n    }\n    await new Promise((resolve) => setTimeout(resolve, CAPTCHA_CONTAINER_POLL_MS));\n  }\n}\n\nexport interface InitSiaraShieldOptions {\n  /** SiaraShield public key. Use \"TEST-CYBERSIARA\" for staging/development. */\n  publicKey: string;\n  /**\n   * Loads jQuery before SiaraShield script.\n   * Default is true for easier integration.\n   * Set to false only if your site/app already loads jQuery.\n   */\n  loadJQuery?: boolean;\n  /**\n   * CSP nonce value (without the `'nonce-'` prefix).\n   * If omitted, we attempt to resolve it from existing `script[nonce]` or `meta[name=\"csp-nonce\"]`.\n   */\n  cspNonce?: string;\n  /** Set true only when actively debugging vendor/runtime internals in browser console. */\n  allowVendorConsoleLogs?: boolean;\n}\n\nlet pending: Promise<void> | null = null;\nlet initialized = false;\n\nfunction ensureAccessibilityPopupAliases(): void {\n  const g = globalThis as typeof globalThis & Record<string, unknown>;\n  const aliasNames = [\n    'RemoveAccesibilityPopup',\n    '_RemoveAccesibilityPopup',\n    'RemoveAccesiblityPopup',\n    '_RemoveAccesiblityPopup',\n  ] as const;\n\n  const existing = aliasNames\n    .map((name) => g[name])\n    .find((value): value is () => void => typeof value === 'function');\n\n  const stableFn = existing ?? (() => undefined);\n  for (const name of aliasNames) {\n    g[name] = stableFn;\n  }\n}\n\nfunction isJQueryAlreadyAvailable(): boolean {\n  const g = getSiaraShieldGlobals();\n  if (typeof g.jQuery === 'function' || typeof g.$ === 'function') {\n    return true;\n  }\n\n  const existingJqueryScript = document.querySelector<HTMLScriptElement>('script[src*=\"jquery\"]');\n  return Boolean(existingJqueryScript);\n}\n\nfunction runInRootZone<T>(fn: () => T): T {\n  const g = globalThis as typeof globalThis & { Zone?: { root?: { run?: <U>(cb: () => U) => U } } };\n  const zoneRootRun = g.Zone?.root?.run;\n  if (typeof zoneRootRun === 'function') {\n    return zoneRootRun.call(g.Zone?.root, fn) as T;\n  }\n  return fn();\n}\n\nfunction preventDuplicateValidationBootstrap(g: ReturnType<typeof getSiaraShieldGlobals>): void {\n  const originalAppendValidation = g.AppendValidationJS;\n  if (typeof originalAppendValidation !== 'function') {\n    return;\n  }\n\n  g.AppendValidationJS = () => {\n    const existing = document.querySelector<HTMLScriptElement>(`script[src=\"${VALIDATION_SCRIPT_SRC}\"]`);\n    if (existing) {\n      return;\n    }\n\n    originalAppendValidation();\n  };\n}\n\nasync function waitForCheckCaptchaApi(timeoutMs = CAPTCHA_READY_TIMEOUT_MS): Promise<void> {\n  const startedAt = Date.now();\n  while (Date.now() - startedAt < timeoutMs) {\n    if (getSiaraShieldGlobals().CheckCaptcha) {\n      return;\n    }\n    await new Promise((resolve) => setTimeout(resolve, 100));\n  }\n  throw new Error('SiaraShield: CheckCaptcha() was not available within timeout.');\n}\n\n/**\n * Drop-in initializer for SiaraShield.\n * - Loads required scripts (optionally jQuery)\n * - Calls global `initCaptcha(publicKey)`\n *\n * Requirements in your HTML/template:\n * - You must render: `<div class=\"SiaraShield\"></div>`\n */\nexport async function initSiaraShield(options: InitSiaraShieldOptions): Promise<void> {\n  if (initialized) return;\n  if (pending) return pending;\n\n  if (!options?.publicKey) {\n    throw new Error('initSiaraShield: publicKey is required.');\n  }\n\n  pending = (async () => {\n    if (!options.allowVendorConsoleLogs) {\n      // Install suppression as early as possible so Angular doesn't log cross-origin vendor noise during bootstrap.\n      installVendorRuntimeErrorSuppression();\n      suppressVendorConsoleWindow();\n    }\n    installCaptchaSubmitGuard();\n    const nonce = prepareScriptNonce(document, options.cspNonce);\n    await waitForCaptchaContainer();\n    if ((options.loadJQuery ?? true) && !isJQueryAlreadyAvailable()) {\n      await loadScript(document, JQUERY_FALLBACK_SRC, { nonce });\n    }\n\n    await loadScript(document, CAPTCHA_SCRIPT_SRC, { nonce });\n    await loadScript(document, VALIDATION_SCRIPT_SRC, { nonce });\n\n    const g = getSiaraShieldGlobals();\n    ensureAccessibilityPopupAliases();\n    preventDuplicateValidationBootstrap(g);\n    installVendorChallengeRuntimePatch();\n    const initCaptchaFn = getInitCaptchaFn(g);\n    if (!initCaptchaFn) {\n      throw new Error(\n        'SiaraShield: InitCaptcha() is not available after loading scripts.',\n      );\n    }\n\n    runInRootZone(() => initCaptchaFn(options.publicKey));\n    await waitForCheckCaptchaApi();\n    initialized = true;\n  })();\n\n  try {\n    await pending;\n  } finally {\n    // keep `pending` cached for subsequent callers\n  }\n}\n\n/**\n * Calls global `CheckCaptcha()` and returns its boolean result.\n * If successful, returns `{ ok: true, token?: string }`.\n */\nexport function checkSiaraShieldCaptcha(options?: { allowVendorConsoleLogs?: boolean }): { ok: boolean; token?: string } {\n  const g = getSiaraShieldGlobals();\n  if (!g.CheckCaptcha) {\n    throw new Error('SiaraShield: CheckCaptcha() is not available. Did initSiaraShield() run?');\n  }\n\n  const existingToken = typeof g.CyberSiaraToken === 'string' && g.CyberSiaraToken.length > 0 ? g.CyberSiaraToken : undefined;\n  if (existingToken) {\n    return { ok: true, token: existingToken };\n  }\n\n  if (!options?.allowVendorConsoleLogs) {\n    suppressVendorConsoleWindow();\n  }\n  const ok = g.CheckCaptcha();\n  const token = typeof g.CyberSiaraToken === 'string' ? g.CyberSiaraToken : undefined;\n  return ok ? { ok: true, token } : { ok: false };\n}\n\n/**\n * Async-friendly captcha check to handle delayed token population.\n */\nexport async function checkSiaraShieldCaptchaAsync(options?: {\n  timeoutMs?: number;\n  pollIntervalMs?: number;\n  beforeCheckDelayMs?: number;\n  retryOnFalseMs?: number;\n  falseResultTokenWaitMs?: number;\n}): Promise<{ ok: boolean; token?: string }> {\n  const timeoutMs = options?.timeoutMs ?? 1200;\n  const pollIntervalMs = options?.pollIntervalMs ?? 120;\n  const beforeCheckDelayMs = options?.beforeCheckDelayMs ?? 140;\n  const retryOnFalseMs = options?.retryOnFalseMs ?? 0;\n  const falseResultTokenWaitMs = options?.falseResultTokenWaitMs ?? 900;\n  const existingToken = getSiaraShieldGlobals().CyberSiaraToken;\n  if (typeof existingToken === 'string' && existingToken.length > 0) {\n    return { ok: true, token: existingToken };\n  }\n  await new Promise((resolve) => setTimeout(resolve, beforeCheckDelayMs));\n  let firstCheck = checkSiaraShieldCaptcha(); // one API call only\n  if (!firstCheck.ok && retryOnFalseMs > 0) {\n    // Optional retry for integrations that observe late vendor-state settling.\n    await new Promise((resolve) => setTimeout(resolve, retryOnFalseMs));\n    firstCheck = checkSiaraShieldCaptcha();\n  }\n  if (!firstCheck.ok) {\n    // Some vendor flows return false first, then set token shortly after.\n    const falseStartedAt = Date.now();\n    while (Date.now() - falseStartedAt < falseResultTokenWaitMs) {\n      await new Promise((resolve) => setTimeout(resolve, pollIntervalMs));\n      const token = getSiaraShieldGlobals().CyberSiaraToken;\n      if (typeof token === 'string' && token.length > 0) {\n        return { ok: true, token };\n      }\n    }\n    return firstCheck;\n  }\n  if (firstCheck.token) return firstCheck;\n\n  const startedAt = Date.now();\n  // Token can be assigned slightly after successful verification.\n  while (Date.now() - startedAt < timeoutMs) {\n    await new Promise((resolve) => setTimeout(resolve, pollIntervalMs));\n    const token = getSiaraShieldGlobals().CyberSiaraToken;\n    if (typeof token === 'string' && token.length > 0) {\n      return { ok: true, token };\n    }\n  }\n\n  return { ok: true };\n}\n\n","export interface SiaraShieldCspOptions {\n  /** Server-generated nonce value without the `'nonce-'` prefix. */\n  nonce?: string;\n  /** Optional if the customer still loads jQuery from Google's CDN. */\n  includeGoogleApis?: boolean;\n  /** Include `script-src 'unsafe-inline'` (not recommended for production). */\n  includeUnsafeInlineScript?: boolean;\n  /** Include `script-src-attr 'self' 'unsafe-inline'` instead of `'none'`. */\n  allowInlineEventAttributes?: boolean;\n  /** Include `style-src 'unsafe-inline'` (not recommended for production). */\n  includeUnsafeInlineStyle?: boolean;\n}\n\nexport type SiaraShieldCspDirectives = Record<string, string[]>;\n\nconst SELF = \"'self'\";\nconst DATA = 'data:';\nconst UNSAFE_INLINE = \"'unsafe-inline'\";\n\nconst SCRIPT_HOSTS = ['https://embed.mycybersiara.com', 'https://embedcdn.mycybersiara.com'] as const;\nconst OPTIONAL_SCRIPT_HOSTS = ['https://ajax.googleapis.com'] as const;\nconst CONNECT_HOSTS = ['https://embed.mycybersiara.com', 'https://embedcdn.mycybersiara.com'] as const;\nconst STYLE_HOSTS = [\n  'https://embed.mycybersiara.com',\n  'https://embedcdn.mycybersiara.com',\n  'https://mycybersiara.com',\n  'https://fonts.googleapis.com',\n  'https://cdnjs.cloudflare.com',\n] as const;\nconst FONT_HOSTS = [\n  'https://fonts.gstatic.com',\n  'https://mycybersiara.com',\n  'https://cdnjs.cloudflare.com',\n] as const;\nconst IMG_HOSTS = ['https://embed.mycybersiara.com', 'https://embedcdn.mycybersiara.com', 'https://mycybersiara.com'] as const;\n\nfunction unique(values: Array<string | undefined>): string[] {\n  return [...new Set(values.filter((value): value is string => Boolean(value && value.trim())))];\n}\n\nfunction nonceSource(nonce?: string): string | undefined {\n  return nonce ? `'nonce-${nonce}'` : undefined;\n}\n\nfunction serializeDirective(name: string, values: string[]): string {\n  return values.length > 0 ? `${name} ${values.join(' ')}` : name;\n}\n\nfunction parsePolicy(policy: string): Map<string, string[]> {\n  const directives = new Map<string, string[]>();\n\n  for (const rawDirective of policy.split(';')) {\n    const directive = rawDirective.trim();\n    if (!directive) {\n      continue;\n    }\n\n    const parts = directive.split(/\\s+/).filter(Boolean);\n    const [name, ...values] = parts;\n    if (!name) {\n      continue;\n    }\n\n    directives.set(name, values);\n  }\n\n  return directives;\n}\n\nexport function getSiaraShieldCspDirectives(options?: SiaraShieldCspOptions): SiaraShieldCspDirectives {\n  const includeGoogleApis = options?.includeGoogleApis ?? false;\n  // Default to strict/safe CSP. Customers can explicitly opt-in if they accept the risk.\n  const includeUnsafeInlineScript = options?.includeUnsafeInlineScript ?? false;\n  const includeUnsafeInlineStyle = options?.includeUnsafeInlineStyle ?? false;\n  const allowInlineEventAttributes = options?.allowInlineEventAttributes ?? false;\n  const nonce = nonceSource(options?.nonce);\n  const scriptHosts = includeGoogleApis ? [...SCRIPT_HOSTS, ...OPTIONAL_SCRIPT_HOSTS] : [...SCRIPT_HOSTS];\n  const styleSources = unique([SELF, nonce, ...STYLE_HOSTS]);\n\n  return {\n    'default-src': unique([SELF]),\n    /**\n     * CSP note:\n     * - Vendor HTML can include inline event handlers (onclick, etc). CSP nonces do NOT cover those.\n     * - With a configured nonce, the package migrates those handlers to addEventListener so `script-src-attr 'none'` works.\n     */\n    'script-src': unique([SELF, nonce, ...scriptHosts, includeUnsafeInlineScript ? UNSAFE_INLINE : undefined]),\n    'script-src-elem': unique([SELF, nonce, ...scriptHosts]),\n    'script-src-attr': unique(allowInlineEventAttributes ? [SELF, UNSAFE_INLINE] : [\"'none'\"]),\n    'connect-src': unique([SELF, ...CONNECT_HOSTS]),\n    'img-src': unique([SELF, DATA, ...IMG_HOSTS]),\n    /**\n     * CSP note:\n     * - A nonce allows `<style nonce=\"...\">...</style>` but does NOT allow `style=\"\"` attributes / `element.style=...`.\n     * - Vendor/jQuery uses style attributes in some flows, so we scope `'unsafe-inline'` to *attributes only*.\n     * - This keeps scripts strict while restoring compatibility without requiring `style-src 'unsafe-inline'`.\n     */\n    'style-src': unique([...styleSources, includeUnsafeInlineStyle ? UNSAFE_INLINE : undefined]),\n    'style-src-elem': unique(styleSources),\n    'style-src-attr': unique(includeUnsafeInlineStyle ? [SELF, UNSAFE_INLINE] : [\"'none'\"]),\n    'font-src': unique([SELF, ...FONT_HOSTS, DATA]),\n  };\n}\n\nexport function getSiaraShieldCspPolicy(options?: SiaraShieldCspOptions): string {\n  return Object.entries(getSiaraShieldCspDirectives(options))\n    .map(([name, values]) => serializeDirective(name, values))\n    .join('; ');\n}\n\nexport function mergeSiaraShieldCspPolicy(existingPolicy: string, options?: SiaraShieldCspOptions): string {\n  const directives = parsePolicy(existingPolicy);\n  const recommended = getSiaraShieldCspDirectives(options);\n\n  for (const [name, values] of Object.entries(recommended)) {\n    directives.set(name, unique([...(directives.get(name) ?? []), ...values]));\n  }\n\n  return [...directives.entries()]\n    .map(([name, values]) => serializeDirective(name, values))\n    .join('; ');\n}\n","/*\n * Public API Surface of siarashield-workspace\n */\n\nexport * from './lib/siarashield-workspace';\nexport * from './lib/siara-shield.component';\nexport * from './lib/siara-shield-loader.service';\nexport * from './lib/siara-shield.globals';\nexport * from './lib/siara-shield';\nexport * from './lib/siara-shield-csp';\nexport * from './lib/siara-shield-urls';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["CAPTCHA_READY_TIMEOUT_MS","CAPTCHA_CONTAINER_READY_TIMEOUT_MS","CAPTCHA_CONTAINER_POLL_MS","waitForCaptchaContainer","ensureAccessibilityPopupAliases","runInRootZone","JQUERY_FALLBACK_SRC","CAPTCHA_SCRIPT_SRC","VALIDATION_SCRIPT_SRC","i1.SiaraShieldLoaderService"],"mappings":";;;;SAagB,qBAAqB,GAAA;AACnC,IAAA,OAAQ,UAAwE;AAClF;AAEM,SAAU,gBAAgB,CAAC,CAAqB,EAAA;AACpD,IAAA,OAAO,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,WAAW;AACvC;;ACLA,MAAM,uBAAuB,GAAG,kCAAkC;AAClE,MAAM,oCAAoC,GAAG,6CAA6C;AAC1F,MAAM,0BAA0B,GAAG,IAAI;AAEvC,SAAS,oBAAoB,GAAA;IAC3B,MAAM,WAAW,GAAG,UAEnB;AAED,IAAA,IAAI,CAAC,WAAW,CAAC,uBAAuB,CAAC,EAAE;QACzC,WAAW,CAAC,uBAAuB,CAAC,GAAG;AACrC,YAAA,KAAK,EAAE,CAAC;YACR,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;YACtC,YAAY,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;YACxC,YAAY,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;YACxC,aAAa,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;YAC1C,aAAa,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;SAC3C;IACH;AAEA,IAAA,OAAO,WAAW,CAAC,uBAAuB,CAAC;AAC7C;AAEA,SAAS,WAAW,GAAA;AAClB,IAAA,MAAM,UAAU,GAAG,oBAAoB,EAAE;AACzC,IAAA,UAAU,CAAC,KAAK,IAAI,CAAC;AACrB,IAAA,IAAI,UAAU,CAAC,KAAK,GAAG,CAAC;QAAE;AAE1B,IAAA,OAAO,CAAC,GAAG,GAAG,MAAM,SAAS;AAC7B,IAAA,OAAO,CAAC,IAAI,GAAG,MAAM,SAAS;AAC9B,IAAA,OAAO,CAAC,IAAI,GAAG,MAAM,SAAS;AAC9B,IAAA,OAAO,CAAC,KAAK,GAAG,MAAM,SAAS;AAC/B,IAAA,OAAO,CAAC,KAAK,GAAG,CAAC,GAAG,IAAe,KAAI;QACrC,MAAM,UAAU,GAAG;AAChB,aAAA,GAAG,CAAC,CAAC,GAAG,MAAM,OAAO,GAAG,KAAK,QAAQ,GAAG,GAAG,GAAG,GAAG,YAAY,KAAK,GAAG,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC;aACtF,IAAI,CAAC,GAAG;AACR,aAAA,WAAW,EAAE;;AAGhB,QAAA,IACE,UAAU,CAAC,QAAQ,CAAC,sCAAsC,CAAC;AAC3D,YAAA,UAAU,CAAC,QAAQ,CAAC,cAAc,CAAC;AACnC,YAAA,UAAU,CAAC,QAAQ,CAAC,qBAAqB,CAAC;AAC1C,YAAA,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,EACpC;YACA;QACF;AAEA,QAAA,UAAU,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC;AACnC,IAAA,CAAC;AACH;AAEA,SAAS,aAAa,GAAA;AACpB,IAAA,MAAM,UAAU,GAAG,oBAAoB,EAAE;AACzC,IAAA,IAAI,UAAU,CAAC,KAAK,KAAK,CAAC;QAAE;AAC5B,IAAA,UAAU,CAAC,KAAK,IAAI,CAAC;AACrB,IAAA,IAAI,UAAU,CAAC,KAAK,GAAG,CAAC;QAAE;AAE1B,IAAA,OAAO,CAAC,GAAG,GAAG,UAAU,CAAC,WAAW;AACpC,IAAA,OAAO,CAAC,IAAI,GAAG,UAAU,CAAC,YAAY;AACtC,IAAA,OAAO,CAAC,IAAI,GAAG,UAAU,CAAC,YAAY;AACtC,IAAA,OAAO,CAAC,KAAK,GAAG,UAAU,CAAC,aAAa;AACxC,IAAA,OAAO,CAAC,KAAK,GAAG,UAAU,CAAC,aAAa;AAC1C;AAEM,SAAU,2BAA2B,CAAC,QAAQ,GAAG,0BAA0B,EAAA;AAC/E,IAAA,WAAW,EAAE;IACb,UAAU,CAAC,MAAK;AACd,QAAA,aAAa,EAAE;IACjB,CAAC,EAAE,QAAQ,CAAC;AACd;AAEA,SAAS,+BAA+B,GAAA;IACtC,MAAM,WAAW,GAAG,UAEnB;AAED,IAAA,IAAI,CAAC,WAAW,CAAC,oCAAoC,CAAC,EAAE;QACtD,WAAW,CAAC,oCAAoC,CAAC,GAAG;AAClD,YAAA,SAAS,EAAE,KAAK;AAChB,YAAA,eAAe,EAAE,UAAU,CAAC,OAAO,IAAI,IAAI;SAC5C;IACH;AAEA,IAAA,OAAO,WAAW,CAAC,oCAAoC,CAAC;AAC1D;AAEA,SAAS,gCAAgC,CAAC,OAAgB,EAAE,MAAe,EAAA;AACzE,IAAA,MAAM,iBAAiB,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE;AACpE,IAAA,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE;AAClE,IAAA,MAAM,aAAa,GACjB,gBAAgB,CAAC,QAAQ,CAAC,wBAAwB,CAAC,IAAI,gBAAgB,CAAC,QAAQ,CAAC,2BAA2B,CAAC;IAC/G,MAAM,cAAc,GAAG,gBAAgB,CAAC,QAAQ,CAAC,aAAa,CAAC;AAC/D,IAAA,MAAM,qBAAqB,GACzB,iBAAiB,CAAC,QAAQ,CAAC,wDAAwD,CAAC;AACpF,SAAC,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,gBAAgB,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;AACxF,IAAA,MAAM,wBAAwB,GAC5B,iBAAiB,CAAC,QAAQ,CAAC,sCAAsC,CAAC,IAAI,iBAAiB,CAAC,QAAQ,CAAC,cAAc,CAAC;AAElH,IAAA,IAAI,aAAa;AAAE,QAAA,OAAO,IAAI;AAC9B,IAAA,IAAI,cAAc;AAAE,QAAA,OAAO,IAAI;AAC/B,IAAA,IAAI,qBAAqB;AAAE,QAAA,OAAO,IAAI;AACtC,IAAA,IAAI,wBAAwB;AAAE,QAAA,OAAO,IAAI;AACzC,IAAA,OAAO,iBAAiB,KAAK,eAAe,IAAI,iBAAiB,KAAK,cAAc;AACtF;AAEA;;;AAGG;SACa,oCAAoC,GAAA;AAClD,IAAA,MAAM,UAAU,GAAG,+BAA+B,EAAE;IACpD,IAAI,UAAU,CAAC,SAAS;QAAE;AAE1B,IAAA,MAAM,eAAe,GAAG,UAAU,CAAC,eAAe;IAClD,MAAM,qBAAqB,GAAI;AAC5B,SAAA,gCAAgC;AAEnC,IAAA,MAAM,oBAAoB,GAAG,CAAC,KAAY,KAAI;;;QAG5C,MAAM,UAAU,GAAG,KAAmB;AACtC,QAAA,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE;AACtE,QAAA,MAAM,QAAQ,GAAG,MAAM,CAAE,UAA+C,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE;AAE9G,QAAA,MAAM,yBAAyB,GAC7B,OAAO,KAAK,eAAe;AAC3B,YAAA,OAAO,KAAK,cAAc;AAC1B,YAAA,OAAO,CAAC,QAAQ,CAAC,sCAAsC,CAAC;AAE1D,QAAA,IAAI,CAAC,yBAAyB;YAAE;;AAGhC,QAAA,IACE,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC;AAChC,YAAA,QAAQ,CAAC,QAAQ,CAAC,wBAAwB,CAAC;AAC3C,YAAA,QAAQ,CAAC,QAAQ,CAAC,2BAA2B,CAAC;AAC9C,YAAA,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAC3B;AACA,YAAA,KAAK,CAAC,cAAc,IAAI;AACvB,YAAA,KAA8D,CAAC,wBAAwB,IAAI;QAC9F;AACF,IAAA,CAAC;AAED,IAAA,UAAU,CAAC,OAAO,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,KAAI;AAC7D,QAAA,IAAI,gCAAgC,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE;AACrD,YAAA,OAAO,IAAI;QACb;AAEA,QAAA,IAAI,OAAO,eAAe,KAAK,UAAU,EAAE;AACzC,YAAA,OAAO,eAAe,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC;QAChF;AAEA,QAAA,OAAO,KAAK;AACd,IAAA,CAAC;;IAGD,IAAI,CAAC,qBAAqB,EAAE;AACzB,QAAA,UAAoF,CAAC,gCAAgC;AACpH,YAAA,oBAAoB;QACtB,UAAU,CAAC,gBAAgB,CAAC,OAAO,EAAE,oBAAoB,EAAE,IAAI,CAAC;IAClE;AAEA,IAAA,UAAU,CAAC,SAAS,GAAG,IAAI;AAC7B;;AClLA,MAAM,sBAAsB,GAAG,qCAAqC;AACpE,MAAM,+BAA+B,GAAG,IAAI;SAE5B,yBAAyB,GAAA;IACvC,MAAM,WAAW,GAAG,UAEnB;IAED,IAAI,WAAW,CAAC,sBAAsB,CAAC;QAAE;AAEzC,IAAA,MAAM,0BAA0B,GAAG,IAAI,OAAO,EAAuB;IAErE,QAAQ,CAAC,gBAAgB,CACvB,OAAO,EACP,CAAC,KAAK,KAAI;AACR,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM;AAC3B,QAAA,IAAI,EAAE,MAAM,YAAY,OAAO,CAAC;YAAE;QAElC,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC;AACrD,QAAA,IAAI,CAAC,YAAY;YAAE;;;AAInB,QAAA,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE;AACpB,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;YACtB,MAAM,oBAAoB,GAAG,0BAA0B,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC;AAC9E,YAAA,IAAI,GAAG,GAAG,oBAAoB,GAAG,+BAA+B,EAAE;gBAChE,KAAK,CAAC,cAAc,EAAE;gBACtB,KAAK,CAAC,wBAAwB,EAAE;gBAChC;YACF;AACA,YAAA,0BAA0B,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC;QACnD;IACF,CAAC,EACD,IAAI,CACL;AAED,IAAA,WAAW,CAAC,sBAAsB,CAAC,GAAG,IAAI;AAC5C;;ACpCA,MAAM,0BAA0B,GAAG,8CAA8C;AACjF,MAAM,eAAe,GAAG,kCAAkC;AAE1D,MAAM,uBAAuB,GAAG;IAC9B,SAAS;IACT,YAAY;IACZ,aAAa;IACb,WAAW;IACX,WAAW;IACX,SAAS;IACT,UAAU;IACV,SAAS;IACT,UAAU;CACF;AAIV,SAAS,cAAc,CAAC,aAAmC,EAAA;AACzD,IAAA,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;AAC/B;AAEA,SAAS,qBAAqB,CAAC,IAAY,EAAA;AACzC,IAAA,MAAM,OAAO,GAAG,qBAAqB,EAA6B;AAClE,IAAA,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;AAC/B,IAAA,OAAO,OAAO,SAAS,KAAK,UAAU,GAAI,SAA6C,GAAG,SAAS;AACrG;AAEA,SAAS,0BAA0B,CAAC,UAAkB,EAAA;IACpD,MAAM,KAAK,GAAG,mFAAmF,CAAC,IAAI,CAAC,UAAU,CAAC;IAClH,IAAI,CAAC,KAAK,EAAE;AACV,QAAA,OAAO,KAAK;IACd;AAEA,IAAA,MAAM,YAAY,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC;IACpE,YAAY,EAAE,KAAK,EAAE;AACrB,IAAA,OAAO,IAAI;AACb;AAEA,SAAS,8BAA8B,CAAC,UAAkB,EAAA;IACxD,MAAM,KAAK,GAAG,iCAAiC,CAAC,IAAI,CAAC,UAAU,CAAC;IAChE,IAAI,CAAC,KAAK,EAAE;AACV,QAAA,OAAO,KAAK;IACd;IAEA,MAAM,EAAE,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC1C,IAAI,CAAC,EAAE,EAAE;AACP,QAAA,OAAO,KAAK;IACd;IAEA,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;IAC5B,IAAI,CAAC,IAAI,EAAE;AACT,QAAA,EAAE,EAAE;AACJ,QAAA,OAAO,IAAI;IACb;AAEA,IAAA,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QAC7B,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACrB,QAAA,OAAO,IAAI;IACb;AAEA,IAAA,EAAE,EAAE;AACJ,IAAA,OAAO,IAAI;AACb;AAEA,SAAS,2BAA2B,CAAC,UAAkB,EAAA;AACrD,IAAA,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,EAAE;IACjC,IAAI,CAAC,OAAO,EAAE;QACZ;IACF;IAEA,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;AACrC,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE;QAC7B,IAAI,CAAC,SAAS,EAAE;YACd;QACF;QAEA,IAAI,0BAA0B,CAAC,SAAS,CAAC,IAAI,8BAA8B,CAAC,SAAS,CAAC,EAAE;YACtF;QACF;IACF;AACF;AAEA,SAAS,2BAA2B,CAAC,OAAoB,EAAE,aAAmC,EAAA;IAC5F,MAAM,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,aAAa,CAAC;IACtD,IAAI,CAAC,UAAU,EAAE;QACf;IACF;AAEA,IAAA,OAAO,CAAC,eAAe,CAAC,aAAa,CAAC;AACtC,IAAA,MAAM,SAAS,GAAG,cAAc,CAAC,aAAa,CAAC;IAC/C,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,KAAK,KAAI;AAC5C,QAAA,IAAI,SAAS,KAAK,QAAQ,EAAE;YAC1B,KAAK,CAAC,cAAc,EAAE;QACxB;QACA,2BAA2B,CAAC,UAAU,CAAC;AACzC,IAAA,CAAC,CAAC;AACJ;AAEM,SAAU,kCAAkC,CAAC,IAAU,EAAA;IAC3D,IAAI,IAAI,YAAY,WAAW,IAAI,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,EAAE;QACrE;IACF;IAEA,MAAM,QAAQ,GAAkB,EAAE;AAClC,IAAA,IAAI,IAAI,YAAY,WAAW,EAAE;AAC/B,QAAA,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;IACrB;AAEA,IAAA,IAAI,IAAI,YAAY,OAAO,IAAI,IAAI,YAAY,QAAQ,IAAI,IAAI,YAAY,gBAAgB,EAAE;AAC3F,QAAA,QAAQ,CAAC,IAAI,CACX,GAAG,KAAK,CAAC,IAAI,CACX,IAAI,CAAC,gBAAgB,CACnB,wGAAwG,CACzG,CACF,CACF;IACH;AAEA,IAAA,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;AAC9B,QAAA,IAAI,OAAO,CAAC,YAAY,CAAC,eAAe,CAAC,EAAE;YACzC;QACF;AAEA,QAAA,KAAK,MAAM,aAAa,IAAI,uBAAuB,EAAE;AACnD,YAAA,2BAA2B,CAAC,OAAO,EAAE,aAAa,CAAC;QACrD;AAEA,QAAA,OAAO,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC;IAC/C;AACF;AAEM,SAAU,iCAAiC,CAAC,WAAqB,EAAA;IACrE,MAAM,OAAO,GAAG,UAA4E;AAC5F,IAAA,IAAI,OAAO,CAAC,0BAA0B,CAAC,EAAE;QACvC,kCAAkC,CAAC,WAAW,CAAC;QAC/C;IACF;IAEA,MAAM,QAAQ,GAAG,IAAI,gBAAgB,CAAC,CAAC,OAAO,KAAI;AAChD,QAAA,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;AAC5B,YAAA,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY,IAAI,MAAM,CAAC,MAAM,YAAY,WAAW,EAAE;AACxE,gBAAA,kCAAkC,CAAC,MAAM,CAAC,MAAM,CAAC;gBACjD;YACF;AAEA,YAAA,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,UAAU,EAAE;gBACpC,kCAAkC,CAAC,IAAI,CAAC;YAC1C;QACF;AACF,IAAA,CAAC,CAAC;AAEF,IAAA,MAAM,IAAI,GAAG,WAAW,CAAC,eAAe,IAAI,WAAW;AACvD,IAAA,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE;AACrB,QAAA,SAAS,EAAE,IAAI;AACf,QAAA,OAAO,EAAE,IAAI;AACb,QAAA,UAAU,EAAE,IAAI;AAChB,QAAA,eAAe,EAAE,CAAC,GAAG,uBAAuB,CAAC;AAC9C,KAAA,CAAC;IAEF,kCAAkC,CAAC,WAAW,CAAC;AAC/C,IAAA,OAAO,CAAC,0BAA0B,CAAC,GAAG,IAAI;AAC5C;;ACpJA,MAAM,yBAAyB,GAAG,IAAI,OAAO,EAAuC;AACpF,MAAM,0BAA0B,GAAG,IAAI,OAAO,EAAwC;AACtF,MAAM,8BAA8B,GAAG,wCAAwC;AAE/E,SAAS,cAAc,CAAC,WAAqB,EAAA;IAC3C,IAAI,WAAW,GAAG,yBAAyB,CAAC,GAAG,CAAC,WAAW,CAAC;IAC5D,IAAI,CAAC,WAAW,EAAE;AAChB,QAAA,WAAW,GAAG,IAAI,GAAG,EAAwB;AAC7C,QAAA,yBAAyB,CAAC,GAAG,CAAC,WAAW,EAAE,WAAW,CAAC;IACzD;AAEA,IAAA,OAAO,WAAW;AACpB;AAEA,SAAS,eAAe,CAAC,WAAqB,EAAA;IAC5C,IAAI,YAAY,GAAG,0BAA0B,CAAC,GAAG,CAAC,WAAW,CAAC;IAC9D,IAAI,CAAC,YAAY,EAAE;AACjB,QAAA,YAAY,GAAG,IAAI,GAAG,EAAyB;AAC/C,QAAA,0BAA0B,CAAC,GAAG,CAAC,WAAW,EAAE,YAAY,CAAC;IAC3D;AAEA,IAAA,OAAO,YAAY;AACrB;AAEA,SAAS,+BAA+B,GAAA;IACtC,MAAM,WAAW,GAAG,UAEnB;AAED,IAAA,IAAI,CAAC,WAAW,CAAC,8BAA8B,CAAC,EAAE;QAChD,WAAW,CAAC,8BAA8B,CAAC,GAAG;YAC5C,eAAe,EAAE,IAAI,OAAO,EAAoB;YAChD,kBAAkB,EAAE,IAAI,OAAO,EAA8B;YAC7D,6BAA6B,EAAE,IAAI,OAAO,EAAyB;AACnE,YAAA,OAAO,EAAE,KAAK;SACf;IACH;AAEA,IAAA,OAAO,WAAW,CAAC,8BAA8B,CAAC;AACpD;AAEA,SAAS,cAAc,CAAC,KAAqB,EAAA;AAC3C,IAAA,MAAM,OAAO,GAAG,KAAK,EAAE,IAAI,EAAE;IAC7B,OAAO,OAAO,GAAG,OAAO,GAAG,SAAS;AACtC;AAEA,SAAS,eAAe,CAAC,IAAU,EAAA;AACjC,IAAA,OAAO,IAAI,YAAY,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,QAAQ;AAC3E;AAEA,SAAS,cAAc,CAAC,IAAU,EAAA;AAChC,IAAA,OAAO,IAAI,YAAY,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,OAAO;AAC1E;AAEA,SAAS,uBAAuB,CAAC,IAAU,EAAA;AACzC,IAAA,IAAI,EAAE,IAAI,YAAY,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,MAAM,EAAE;AACvE,QAAA,OAAO,KAAK;IACd;AACA,IAAA,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE;IAC1D,OAAO,GAAG,KAAK,YAAY;AAC7B;AAEM,SAAU,gBAAgB,CAAC,MAAyB,EAAE,KAAc,EAAA;AACxE,IAAA,MAAM,aAAa,GAAG,cAAc,CAAC,KAAK,CAAC;IAC3C,IAAI,CAAC,aAAa,EAAE;QAClB;IACF;AAEA,IAAA,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,aAAa,CAAC;AAC3C,IAAA,MAAM,CAAC,KAAK,GAAG,aAAa;;;;AAK5B,IAAA,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE;AACf,QAAA,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,IAAI,EAAE;QACrC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,4BAA4B,CAAC,EAAE;YACxD,MAAM,CAAC,WAAW,GAAG,CAAA,cAAA,CAAgB;gBACnC,CAAA,0CAAA,CAA4C;AAC5C,gBAAA,CAAA,qBAAA,EAAwB,IAAI,CAAA,OAAA,CAAS;gBACrC,CAAA,gCAAA,CAAkC;gBAClC,CAAA,wFAAA,CAA0F;gBAC1F,CAAA,KAAA,CAAO;AACP,gBAAA,CAAA,KAAA,CAAO;QACX;IACF;AACF;AAEA,SAAS,eAAe,CAAC,KAAuB,EAAE,KAAc,EAAA;AAC9D,IAAA,MAAM,aAAa,GAAG,cAAc,CAAC,KAAK,CAAC;IAC3C,IAAI,CAAC,aAAa,EAAE;QAClB;IACF;AAEA,IAAA,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,aAAa,CAAC;AAC1C,IAAA,KAAK,CAAC,KAAK,GAAG,aAAa;AAC7B;AAEA,SAAS,cAAc,CAAC,IAAqB,EAAE,KAAc,EAAA;AAC3D,IAAA,MAAM,aAAa,GAAG,cAAc,CAAC,KAAK,CAAC;IAC3C,IAAI,CAAC,aAAa,EAAE;QAClB;IACF;AAEA,IAAA,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,aAAa,CAAC;;AAExC,IAAA,IAA6C,CAAC,KAAK,GAAG,aAAa;AACtE;AAEA,SAAS,gBAAgB,CAAC,IAAU,EAAE,KAAc,EAAA;AAClD,IAAA,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE;AACzB,QAAA,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC;QAC7B;IACF;AACA,IAAA,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE;AACxB,QAAA,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC;QAC5B;IACF;AACA,IAAA,IAAI,uBAAuB,CAAC,IAAI,CAAC,EAAE;AACjC,QAAA,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC;IAC7B;AACF;AAEA,SAAS,iBAAiB,CAAC,IAAU,EAAA;AACnC,IAAA,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa;IACtC,IAAI,CAAC,WAAW,EAAE;QAChB;IACF;IAEA,MAAM,KAAK,GAAG,+BAA+B,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC;AAChF,IAAA,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC;AAC/B;AAEA,SAAS,8BAA8B,CAAC,WAAqB,EAAA;AAC3D,IAAA,MAAM,UAAU,GAAG,+BAA+B,EAAE;IACpD,IAAI,cAAc,GAAG,UAAU,CAAC,6BAA6B,CAAC,GAAG,CAAC,WAAW,CAAC;IAC9E,IAAI,CAAC,cAAc,EAAE;AACnB,QAAA,cAAc,GAAG,IAAI,GAAG,EAAU;QAClC,UAAU,CAAC,6BAA6B,CAAC,GAAG,CAAC,WAAW,EAAE,cAAc,CAAC;IAC3E;AAEA,IAAA,OAAO,cAAc;AACvB;AAEA,SAAS,sCAAsC,CAAC,IAAU,EAAA;AACxD,IAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;AAC/C,QAAA,OAAO,KAAK;IACd;AAEA,IAAA,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,EAAE,IAAI,EAAE;IAClD,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE;AAC1D,QAAA,OAAO,KAAK;IACd;AAEA,IAAA,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa;IACtC,IAAI,CAAC,WAAW,EAAE;AAChB,QAAA,OAAO,KAAK;IACd;AAEA,IAAA,MAAM,cAAc,GAAG,8BAA8B,CAAC,WAAW,CAAC;AAClE,IAAA,IAAI,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;AAClC,QAAA,OAAO,IAAI;IACb;AAEA,IAAA,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC;AAC9B,IAAA,OAAO,KAAK;AACd;AAEA,SAAS,iBAAiB,CAAC,IAAU,EAAE,KAAc,EAAA;AACnD,IAAA,IAAI,CAAC,KAAK;QAAE;;AAGZ,IAAA,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,uBAAuB,CAAC,IAAI,CAAC,EAAE;AAClF,QAAA,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC;QAC7B;IACF;;IAGA,IAAI,IAAI,YAAY,OAAO,IAAI,IAAI,YAAY,gBAAgB,EAAE;QAC/D,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,GAAG,qCAAqC,CAAC,IAAI,EAAE;AACtF,QAAA,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE;AAC1B,YAAA,gBAAgB,CAAC,EAAqB,EAAE,KAAK,CAAC;QAChD;IACF;AACF;AAEA,SAAS,2BAA2B,CAAC,WAAqB,EAAA;AACxD,IAAA,MAAM,UAAU,GAAG,+BAA+B,EAAE;IACpD,IAAI,UAAU,CAAC,kBAAkB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;QAClD;IACF;IAEA,MAAM,QAAQ,GAAG,IAAI,gBAAgB,CAAC,CAAC,OAAO,KAAI;QAChD,MAAM,KAAK,GAAG,UAAU,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC;AACzD,QAAA,IAAI,CAAC,KAAK;YAAE;AAEZ,QAAA,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;AAC5B,YAAA,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,UAAU,EAAE;AACpC,gBAAA,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC;YAChC;QACF;AACF,IAAA,CAAC,CAAC;;AAGF,IAAA,MAAM,IAAI,GAAG,WAAW,CAAC,eAAe,IAAI,WAAW;AACvD,IAAA,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC1D,UAAU,CAAC,kBAAkB,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC;AAC1D;AAEA,SAAS,6BAA6B,CAAC,WAAqB,EAAA;AAC1D,IAAA,MAAM,UAAU,GAAG,+BAA+B,EAAE;IACpD,MAAM,QAAQ,GAAG,UAAU,CAAC,kBAAkB,CAAC,GAAG,CAAC,WAAW,CAAC;AAC/D,IAAA,IAAI,CAAC,QAAQ;QAAE;IACf,QAAQ,CAAC,UAAU,EAAE;AACrB,IAAA,UAAU,CAAC,kBAAkB,CAAC,MAAM,CAAC,WAAW,CAAC;AACnD;AAEA,SAAS,mBAAmB,CAAC,IAAY,EAAE,KAAa,EAAA;AACtD,IAAA,MAAM,aAAa,GAAG,cAAc,CAAC,KAAK,CAAC;AAC3C,IAAA,IAAI,CAAC,aAAa;AAAE,QAAA,OAAO,IAAI;;AAG/B,IAAA,MAAM,aAAa,GAAG,CAAA,QAAA,EAAW,aAAa,GAAG;AAEjD,IAAA,MAAM,aAAa,GAAG,CAAC,GAAuB,KAAI;QAChD,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,CAAA,CAAA,EAAI,GAAG,CAAA,aAAA,CAAe,EAAE,IAAI,CAAC;AACxD,QAAA,OAAO,CAAC,KAAa,KACnB,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,KAAI;AAC/B,YAAA,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC;AAAE,gBAAA,OAAO,KAAK;;YAE/C,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAA,EAAG,aAAa,CAAA,CAAA,CAAG,CAAC;AACjD,QAAA,CAAC,CAAC;AACN,IAAA,CAAC;;IAGD,MAAM,WAAW,GAAG,iBAAiB;AACrC,IAAA,MAAM,wBAAwB,GAAG,CAAC,KAAa,KAC7C,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,KAAK,KAAI;AACnC,QAAA,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC;AAAE,YAAA,OAAO,KAAK;AAC/C,QAAA,IAAI,CAAC,mCAAmC,CAAC,IAAI,CAAC,KAAK,CAAC;AAAE,YAAA,OAAO,KAAK;QAClE,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAA,EAAG,aAAa,CAAA,CAAA,CAAG,CAAC;AACjD,IAAA,CAAC,CAAC;AAEJ,IAAA,OAAO,wBAAwB,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACxF;AAEA,SAAS,2BAA2B,GAAA;AAClC,IAAA,MAAM,UAAU,GAAG,+BAA+B,EAAE;AACpD,IAAA,IAAI,UAAU,CAAC,OAAO,EAAE;QACtB;IACF;AAEA,IAAA,MAAM,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW;AACtD,IAAA,MAAM,oBAAoB,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY;AACxD,IAAA,MAAM,oBAAoB,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY;AACxD,IAAA,MAAM,0BAA0B,GAAG,OAAO,CAAC,SAAS,CAAC,kBAAkB;AAEvE,IAAA,IAAI,CAAC,SAAS,CAAC,WAAW,GAAG,UAA0B,IAAO,EAAA;;AAE5D,QAAA,IAAI,sCAAsC,CAAC,IAAI,CAAC,EAAE;AAChD,YAAA,OAAO,IAAI;QACb;QACA,iBAAiB,CAAC,IAAI,CAAC;QACvB,OAAO,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAM;AAClD,IAAA,CAAC;IAED,IAAI,CAAC,SAAS,CAAC,YAAY,GAAG,UAA0B,IAAO,EAAE,KAAkB,EAAA;AACjF,QAAA,IAAI,sCAAsC,CAAC,IAAI,CAAC,EAAE;AAChD,YAAA,OAAO,IAAI;QACb;QACA,iBAAiB,CAAC,IAAI,CAAC;QACvB,OAAO,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAM;AAC1D,IAAA,CAAC;IAED,IAAI,CAAC,SAAS,CAAC,YAAY,GAAG,UAA0B,IAAU,EAAE,KAAQ,EAAA;QAC1E,iBAAiB,CAAC,IAAI,CAAC;QACvB,OAAO,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAM;AAC1D,IAAA,CAAC;IAED,OAAO,CAAC,SAAS,CAAC,kBAAkB,GAAG,UAAU,QAAwB,EAAE,IAAY,EAAA;AACrF,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa;AACtC,QAAA,MAAM,KAAK,GAAG,WAAW,GAAG,UAAU,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,SAAS;AACnF,QAAA,MAAM,WAAW,GAAG,KAAK,GAAG,mBAAmB,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,IAAI;QACnE,OAAO,0BAA0B,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC;AACrE,IAAA,CAAC;AAED,IAAA,UAAU,CAAC,OAAO,GAAG,IAAI;AAC3B;AAEM,SAAU,eAAe,CAAC,WAAwC,EAAE,aAAsB,EAAA;AAC9F,IAAA,MAAM,qBAAqB,GAAG,cAAc,CAAC,aAAa,CAAC;IAC3D,IAAI,qBAAqB,EAAE;AACzB,QAAA,OAAO,qBAAqB;IAC9B;IAEA,IAAI,CAAC,WAAW,EAAE;AAChB,QAAA,OAAO,SAAS;IAClB;IAEA,MAAM,eAAe,GAAG,WAAW,CAAC,aAAa,CAAoB,eAAe,CAAC;AACrF,IAAA,MAAM,eAAe,GAAG,cAAc,CAAC,eAAe,EAAE,YAAY,CAAC,OAAO,CAAC,IAAI,eAAe,EAAE,KAAK,CAAC;IACxG,IAAI,eAAe,EAAE;AACnB,QAAA,OAAO,eAAe;IACxB;IAEA,MAAM,SAAS,GAAG,WAAW,CAAC,aAAa,CAAkB,wBAAwB,CAAC;AACtF,IAAA,OAAO,cAAc,CAAC,SAAS,EAAE,OAAO,CAAC;AAC3C;AAEM,SAAU,kBAAkB,CAAC,WAAwC,EAAE,aAAsB,EAAA;IACjG,MAAM,aAAa,GAAG,eAAe,CAAC,WAAW,EAAE,aAAa,CAAC;AACjE,IAAA,MAAM,UAAU,GAAG,+BAA+B,EAAE;IAEpD,IAAI,aAAa,EAAE;;AAEjB,QAAA,2BAA2B,EAAE;AAC7B,QAAA,MAAM,oBAAoB,GAAG,WAAW,IAAI,UAAU,CAAC,QAAQ;QAC/D,IAAI,oBAAoB,EAAE;YACxB,UAAU,CAAC,eAAe,CAAC,GAAG,CAAC,oBAAoB,EAAE,aAAa,CAAC;YACnE,2BAA2B,CAAC,oBAAoB,CAAC;YACjD,iCAAiC,CAAC,oBAAoB,CAAC;QACzD;IACF;SAAO;QACL,IAAI,WAAW,EAAE;AACf,YAAA,UAAU,CAAC,eAAe,CAAC,MAAM,CAAC,WAAW,CAAC;YAC9C,6BAA6B,CAAC,WAAW,CAAC;QAC5C;IACF;AAEA,IAAA,OAAO,aAAa;AACtB;SAEgB,UAAU,CAAC,WAAqB,EAAE,GAAW,EAAE,OAA2B,EAAA;IACxF,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC;AAC5C,IAAA,MAAM,WAAW,GAAG,cAAc,CAAC,WAAW,CAAC;AAC/C,IAAA,MAAM,YAAY,GAAG,eAAe,CAAC,WAAW,CAAC;IACjD,MAAM,QAAQ,GAAG,WAAW,CAAC,aAAa,CAAoB,CAAA,YAAA,EAAe,GAAG,CAAA,EAAA,CAAI,CAAC;IAErF,IAAI,QAAQ,EAAE;AACZ,QAAA,gBAAgB,CAAC,QAAQ,EAAE,KAAK,CAAC;QACjC,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC;AACnC,QAAA,IAAI,MAAM,KAAK,QAAQ,EAAE;AACvB,YAAA,OAAO,OAAO,CAAC,OAAO,EAAE;QAC1B;QAEA,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC;QACrC,IAAI,OAAO,EAAE;AACX,YAAA,OAAO,OAAO;QAChB;AAEA,QAAA,OAAO,OAAO,CAAC,OAAO,EAAE;IAC1B;AAEA,IAAA,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC;IAE/B,MAAM,OAAO,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,KAAI;QACpD,MAAM,MAAM,GAAG,WAAW,CAAC,aAAa,CAAC,QAAQ,CAAC;AAClD,QAAA,MAAM,CAAC,GAAG,GAAG,GAAG;AAChB,QAAA,MAAM,CAAC,KAAK,GAAG,IAAI;AACnB,QAAA,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC;AAC/B,QAAA,MAAM,CAAC,MAAM,GAAG,MAAK;AACnB,YAAA,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC;AAC9B,YAAA,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC;AACxB,YAAA,OAAO,EAAE;AACX,QAAA,CAAC;AACD,QAAA,MAAM,CAAC,OAAO,GAAG,MAAK;AACpB,YAAA,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC;AAC7B,YAAA,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC;YACxB,MAAM,CAAC,IAAI,KAAK,CAAC,0BAA0B,GAAG,CAAA,8CAAA,CAAgD,CAAC,CAAC;AAClG,QAAA,CAAC;AACD,QAAA,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;AACtC,IAAA,CAAC,CAAC;AAEF,IAAA,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC;AAC9B,IAAA,OAAO,OAAO;AAChB;;ACpYA,MAAM,wBAAwB,GAAG,4CAA4C;AAC7E,MAAM,uBAAuB,GAAG,2CAA2C;AAC3E,MAAM,iBAAiB,GAAG,gCAAgC;AAM1D,SAAS,yBAAyB,CAAC,KAAc,EAAA;IAC/C,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE;AACpG,IAAA,QACE,GAAG,CAAC,QAAQ,CAAC,kDAAkD,CAAC;AAChE,QAAA,GAAG,CAAC,QAAQ,CAAC,0DAA0D,CAAC;AACxE,QAAA,GAAG,CAAC,QAAQ,CAAC,wDAAwD,CAAC;AAE1E;AAEA,SAAS,wBAAwB,CAAC,SAA+B,EAAA;AAC/D,IAAA,MAAM,OAAO,GAAG,qBAAqB,EAAiD;AACtF,IAAA,MAAM,UAAU,GAA2B,CAAC,iBAAiB,EAAE,eAAe,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,CAAC;AAE5H,IAAA,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE;QAC7B,IAAI,IAAI,KAAK,SAAS;YAAE;AACxB,QAAA,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;QACxB,IAAI,OAAO,EAAE,KAAK,UAAU;YAAE;AAC9B,QAAA,IAAI;AACD,YAAA,EAAe,EAAE;YAClB;QACF;AAAE,QAAA,MAAM;;QAER;IACF;AACF;AAEA,SAAS,sBAAsB,CAAC,IAAkB,EAAA;AAChD,IAAA,MAAM,OAAO,GAAG,qBAAqB,EAAiD;AACtF,IAAA,MAAM,MAAM,GAAG,CAAA,EAAG,iBAAiB,CAAA,EAAG,IAAI,EAAE;AAC5C,IAAA,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI;QAAE;AAE9B,IAAA,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAC/B,IAAI,OAAO,SAAS,KAAK,UAAU;QAAE;IAErC,MAAM,QAAQ,GAAG,SAAqB;IACtC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAe,KAAI;AACtC,QAAA,IAAI;AACF,YAAA,OAAO,QAAQ,CAAC,GAAG,IAAI,CAAC;QAC1B;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC,EAAE;AACrC,gBAAA,MAAM,KAAK;YACb;;;YAIA,wBAAwB,CAAC,IAAI,CAAC;AAC9B,YAAA,OAAO,SAAS;QAClB;AACF,IAAA,CAAC,CAAY;AACb,IAAA,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI;AACxB;AAEA,SAAS,gCAAgC,GAAA;AACvC,IAAA,MAAM,OAAO,GAAG,qBAAqB,EAKpC;IACD,IAAI,OAAO,CAAC,uBAAuB,CAAC;QAAE;AAEtC,IAAA,MAAM,cAAc,GAAG,CAAC,KAA6D,KAAU;QAC7F,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,UAAU;YAAE;QAChD,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QAE3C,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAe,KAAI;AACnC,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC;YACxB,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;AAC7C,gBAAA,OAAO,YAAY,CAAC,GAAG,IAAI,CAAC;YAC9B;YAEA,MAAM,OAAO,GAAG,QAAmC;AACnD,YAAA,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE;AACtD,YAAA,MAAM,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC;AAC1C,YAAA,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,+BAA+B,CAAC,IAAI,OAAO,eAAe,KAAK,UAAU,EAAE;AAC3F,gBAAA,OAAO,YAAY,CAAC,OAAO,CAAC;YAC9B;YAEA,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,QAAiB,EAAE,GAAG,IAAe,KAAI;gBAC9D,MAAM,OAAO,GAAG,QAAqD;gBACrE,MAAM,aAAa,GAAG,OAAO,EAAE,IAAI,IAAI,OAAO,EAAE,IAAI;gBACpD,IAAI,OAAO,aAAa,KAAK,QAAQ,IAAI,aAAa,CAAC,IAAI,EAAE,EAAE;AAC7D,oBAAA,OAAO,CAAC,eAAe,GAAG,aAAa,CAAC,IAAI,EAAE;gBAChD;AAEA,gBAAA,OAAQ,eAAqD,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC;AAClF,YAAA,CAAC,CAAY;AAEb,YAAA,OAAO,YAAY,CAAC,OAAO,CAAC;AAC9B,QAAA,CAAC,CAAsB;AACzB,IAAA,CAAC;AAED,IAAA,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;AACzB,IAAA,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC;AACjC,IAAA,OAAO,CAAC,uBAAuB,CAAC,GAAG,IAAI;AACzC;SAEgB,kCAAkC,GAAA;AAChD,IAAA,MAAM,OAAO,GAAG,qBAAqB,EAEpC;IACD,IAAI,OAAO,CAAC,wBAAwB,CAAC;QAAE;IAEvC,sBAAsB,CAAC,YAAY,CAAC;IACpC,sBAAsB,CAAC,aAAa,CAAC;IACrC,sBAAsB,CAAC,cAAc,CAAC;AACtC,IAAA,gCAAgC,EAAE;AAClC,IAAA,OAAO,CAAC,wBAAwB,CAAC,GAAG,IAAI;AAC1C;;ACtHA;;;AAGG;AACI,MAAM,gCAAgC,GAAG;AACzC,MAAM,kCAAkC,GAAG;AAC3C,MAAM,kCAAkC,GAAG;;MCArC,wBAAwB,CAAA;AACY,IAAA,QAAA;AAA/C,IAAA,WAAA,CAA+C,QAAkB,EAAA;QAAlB,IAAA,CAAA,QAAQ,GAAR,QAAQ;IAAa;IAEpE,UAAU,CAAC,GAAW,EAAE,OAA2B,EAAA;QACjD,OAAO,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC;IAChD;AALW,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,kBACf,QAAQ,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AADjB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,cADX,MAAM,EAAA,CAAA;;4FACnB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBADpC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;0BAEnB,MAAM;2BAAC,QAAQ;;;ACK9B,MAAMA,0BAAwB,GAAG,IAAI;AACrC,MAAMC,oCAAkC,GAAG,IAAI;AAC/C,MAAMC,2BAAyB,GAAG,EAAE;AAEpC,eAAeC,yBAAuB,CAAC,WAAqB,EAAE,SAAS,GAAGF,oCAAkC,EAAA;AAC1G,IAAA,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE;IAC5B,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,SAAS,EAAE;AACzC,QAAA,IAAI,WAAW,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE;YAC7C;QACF;AACA,QAAA,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,UAAU,CAAC,OAAO,EAAEC,2BAAyB,CAAC,CAAC;IAChF;AACF;AAEA,SAASE,iCAA+B,GAAA;IACtC,MAAM,CAAC,GAAG,UAAyD;AACnE,IAAA,MAAM,UAAU,GAAG;QACjB,yBAAyB;QACzB,0BAA0B;QAC1B,wBAAwB;QACxB,yBAAyB;KACjB;IAEV,MAAM,QAAQ,GAAG;SACd,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC;SACrB,IAAI,CAAC,CAAC,KAAK,KAA0B,OAAO,KAAK,KAAK,UAAU,CAAC;IAEpE,MAAM,QAAQ,GAAG,QAAQ,KAAK,MAAM,SAAS,CAAC;AAC9C,IAAA,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE;AAC7B,QAAA,CAAC,CAAC,IAAI,CAAC,GAAG,QAAQ;IACpB;AACF;AAEA,SAASC,eAAa,CAAI,EAAW,EAAA;IACnC,MAAM,CAAC,GAAG,UAAuF;IACjG,MAAM,WAAW,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG;AACrC,IAAA,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE;AACrC,QAAA,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAM;IAChD;IACA,OAAO,EAAE,EAAE;AACb;MAsBa,oBAAoB,CAAA;AAcZ,IAAA,IAAA;AACA,IAAA,MAAA;AAdQ,IAAA,SAAS;IAC3B,UAAU,GAAG,IAAI;AACjB,IAAA,QAAQ;IACR,sBAAsB,GAAG,KAAK;AAEvC;;AAEG;AACO,IAAA,KAAK,GAAG,IAAI,YAAY,EAAU;IAEpC,WAAW,GAAG,KAAK;IAE3B,WAAA,CACmB,IAA6B,EAC7B,MAAgC,EAAA;QADhC,IAAA,CAAA,IAAI,GAAJ,IAAI;QACJ,IAAA,CAAA,MAAM,GAAN,MAAM;IACtB;AAEH,IAAA,MAAM,eAAe,GAAA;QACnB,MAAM,IAAI,CAAC,IAAI,CAAC;YACd,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;AACpD,SAAA,CAAC;IACJ;IAEA,MAAM,IAAI,CAAC,OAA+B,EAAA;QACxC,IAAI,IAAI,CAAC,WAAW;YAAE;;AAGtB,QAAA,KAAK,IAAI,CAAC,IAAI,CAAC,aAAa;AAC5B,QAAA,IAAI,CAAC,OAAO,CAAC,sBAAsB,EAAE;;AAEnC,YAAA,oCAAoC,EAAE;AACtC,YAAA,2BAA2B,EAAE;QAC/B;AACA,QAAA,yBAAyB,EAAE;AAE3B,QAAA,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;AACtB,YAAA,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC;QACjE;;AAGA,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,IAAI,UAAU,CAAC,QAAQ,IAAI,IAAI;QACxF,MAAM,KAAK,GAAG,kBAAkB,CAAC,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC;QAC/D,IAAI,WAAW,EAAE;;AAEf,YAAA,MAAMF,yBAAuB,CAAC,WAAW,CAAC;QAC5C;AACA,QAAA,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,wBAAwB,EAAE,EAAE;AACpE,YAAA,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAACG,gCAAmB,EAAE,EAAE,KAAK,EAAE,CAAC;QAC9D;AAEA,QAAA,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAACC,kCAAkB,EAAE,EAAE,KAAK,EAAE,CAAC;AAC3D,QAAA,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAACC,kCAAqB,EAAE,EAAE,KAAK,EAAE,CAAC;AAE9D,QAAA,MAAM,CAAC,GAAG,qBAAqB,EAAE;AACjC,QAAAJ,iCAA+B,EAAE;AACjC,QAAA,IAAI,CAAC,mCAAmC,CAAC,CAAC,CAAC;AAC3C,QAAA,kCAAkC,EAAE;AACpC,QAAA,MAAM,aAAa,GAAG,gBAAgB,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,aAAa,EAAE;AAClB,YAAA,MAAM,IAAI,KAAK,CACb,oEAAoE,CACrE;QACH;QAEAC,eAAa,CAAC,MAAM,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AACrD,QAAA,MAAM,IAAI,CAAC,sBAAsB,EAAE;AACnC,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI;IACzB;AAEA;;AAEG;IACK,wBAAwB,GAAA;AAC9B,QAAA,MAAM,CAAC,GAAG,qBAAqB,EAAE;AACjC,QAAA,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,UAAU,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,UAAU,EAAE;AAC/D,YAAA,OAAO,IAAI;QACb;AAEA,QAAA,MAAM,oBAAoB,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,aAAa,CAC9E,uBAAuB,CACxB;AACD,QAAA,OAAO,OAAO,CAAC,oBAAoB,CAAC;IACtC;AAEQ,IAAA,mCAAmC,CAAC,CAA2C,EAAA;AACrF,QAAA,MAAM,wBAAwB,GAAG,CAAC,CAAC,kBAAkB;AACrD,QAAA,IAAI,OAAO,wBAAwB,KAAK,UAAU,EAAE;YAClD;QACF;AAEA,QAAA,CAAC,CAAC,kBAAkB,GAAG,MAAK;AAC1B,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,aAAa,CAClE,CAAA,YAAA,EAAeG,kCAAqB,CAAA,EAAA,CAAI,CACzC;YACD,IAAI,QAAQ,EAAE;gBACZ;YACF;AAEA,YAAA,wBAAwB,EAAE;AAC5B,QAAA,CAAC;IACH;AAEQ,IAAA,MAAM,sBAAsB,CAAC,SAAS,GAAGR,0BAAwB,EAAA;AACvE,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE;QAC5B,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,SAAS,EAAE;AACzC,YAAA,IAAI,qBAAqB,EAAE,CAAC,YAAY,EAAE;gBACxC;YACF;AACA,YAAA,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAC1D;AACA,QAAA,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC;IAClF;AAEA;;;AAGG;IACH,YAAY,GAAA;AACV,QAAA,MAAM,CAAC,GAAG,qBAAqB,EAAE;AACjC,QAAA,IAAI,CAAC,CAAC,CAAC,YAAY,EAAE;AACnB,YAAA,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC;QAClF;QAEA,MAAM,aAAa,GAAG,OAAO,CAAC,CAAC,eAAe,KAAK,QAAQ,IAAI,CAAC,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,eAAe,GAAG,SAAS;QAC3H,IAAI,aAAa,EAAE;AACjB,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC;AAC9B,YAAA,OAAO,IAAI;QACb;AAEA,QAAA,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE;AAChC,YAAA,2BAA2B,EAAE;QAC/B;AACA,QAAA,MAAM,EAAE,GAAG,CAAC,CAAC,YAAY,EAAE;QAC3B,IAAI,EAAE,IAAI,OAAO,CAAC,CAAC,eAAe,KAAK,QAAQ,EAAE;YAC/C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC;QACpC;AACA,QAAA,OAAO,EAAE;IACX;AAEA;;;AAGG;IACH,MAAM,iBAAiB,CAAC,OAMvB,EAAA;AACC,QAAA,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,IAAI;AAC5C,QAAA,MAAM,cAAc,GAAG,OAAO,EAAE,cAAc,IAAI,GAAG;AACrD,QAAA,MAAM,kBAAkB,GAAG,OAAO,EAAE,kBAAkB,IAAI,GAAG;AAC7D,QAAA,MAAM,cAAc,GAAG,OAAO,EAAE,cAAc,IAAI,CAAC;AACnD,QAAA,MAAM,sBAAsB,GAAG,OAAO,EAAE,sBAAsB,IAAI,GAAG;AACrE,QAAA,MAAM,aAAa,GAAG,qBAAqB,EAAE,CAAC,eAAe;QAC7D,IAAI,OAAO,aAAa,KAAK,QAAQ,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;AACjE,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC;AAC9B,YAAA,OAAO,IAAI;QACb;AACA,QAAA,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,UAAU,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;AACvE,QAAA,IAAI,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE;;AAE5B,QAAA,IAAI,CAAC,EAAE,IAAI,cAAc,GAAG,CAAC,EAAE;AAC7B,YAAA,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,UAAU,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;AACnE,YAAA,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE;QAC1B;QACA,IAAI,CAAC,EAAE,EAAE;;AAEP,YAAA,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE;YACjC,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,cAAc,GAAG,sBAAsB,EAAE;AAC3D,gBAAA,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,UAAU,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;AACnE,gBAAA,MAAM,KAAK,GAAG,qBAAqB,EAAE,CAAC,eAAe;gBACrD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AACjD,oBAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;AACtB,oBAAA,OAAO,IAAI;gBACb;YACF;AACA,YAAA,OAAO,KAAK;QACd;AAEA,QAAA,MAAM,CAAC,GAAG,qBAAqB,EAAE;AACjC,QAAA,IAAI,OAAO,CAAC,CAAC,eAAe,KAAK,QAAQ,IAAI,CAAC,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;AACzE,YAAA,OAAO,IAAI;QACb;AAEA,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE;QAC5B,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,SAAS,EAAE;AACzC,YAAA,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,UAAU,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;AACnE,YAAA,MAAM,KAAK,GAAG,qBAAqB,EAAE,CAAC,eAAe;YACrD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AACjD,gBAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;AACtB,gBAAA,OAAO,IAAI;YACb;QACF;AAEA,QAAA,OAAO,IAAI;IACb;wGAzMW,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAS,wBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAApB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,2OAHrB,CAAA,+BAAA,CAAiC,EAAA,QAAA,EAAA,IAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;4FAGhC,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBANhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,CAAA,+BAAA,CAAiC;oBAC3C,aAAa,EAAE,iBAAiB,CAAC,IAAI;AACtC,iBAAA;mHAE4B,SAAS,EAAA,CAAA;sBAAnC,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAChB,UAAU,EAAA,CAAA;sBAAlB;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,sBAAsB,EAAA,CAAA;sBAA9B;gBAKS,KAAK,EAAA,CAAA;sBAAd;;;ACzEH,MAAM,wBAAwB,GAAG,IAAI;AACrC,MAAM,kCAAkC,GAAG,IAAI;AAC/C,MAAM,yBAAyB,GAAG,EAAE;AAEpC,eAAe,uBAAuB,CAAC,SAAS,GAAG,kCAAkC,EAAA;AACnF,IAAA,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE;IAC5B,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,SAAS,EAAE;AACzC,QAAA,IAAI,QAAQ,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE;YAC1C;QACF;AACA,QAAA,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,UAAU,CAAC,OAAO,EAAE,yBAAyB,CAAC,CAAC;IAChF;AACF;AAoBA,IAAI,OAAO,GAAyB,IAAI;AACxC,IAAI,WAAW,GAAG,KAAK;AAEvB,SAAS,+BAA+B,GAAA;IACtC,MAAM,CAAC,GAAG,UAAyD;AACnE,IAAA,MAAM,UAAU,GAAG;QACjB,yBAAyB;QACzB,0BAA0B;QAC1B,wBAAwB;QACxB,yBAAyB;KACjB;IAEV,MAAM,QAAQ,GAAG;SACd,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC;SACrB,IAAI,CAAC,CAAC,KAAK,KAA0B,OAAO,KAAK,KAAK,UAAU,CAAC;IAEpE,MAAM,QAAQ,GAAG,QAAQ,KAAK,MAAM,SAAS,CAAC;AAC9C,IAAA,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE;AAC7B,QAAA,CAAC,CAAC,IAAI,CAAC,GAAG,QAAQ;IACpB;AACF;AAEA,SAAS,wBAAwB,GAAA;AAC/B,IAAA,MAAM,CAAC,GAAG,qBAAqB,EAAE;AACjC,IAAA,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,UAAU,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,UAAU,EAAE;AAC/D,QAAA,OAAO,IAAI;IACb;IAEA,MAAM,oBAAoB,GAAG,QAAQ,CAAC,aAAa,CAAoB,uBAAuB,CAAC;AAC/F,IAAA,OAAO,OAAO,CAAC,oBAAoB,CAAC;AACtC;AAEA,SAAS,aAAa,CAAI,EAAW,EAAA;IACnC,MAAM,CAAC,GAAG,UAAuF;IACjG,MAAM,WAAW,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG;AACrC,IAAA,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE;AACrC,QAAA,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAM;IAChD;IACA,OAAO,EAAE,EAAE;AACb;AAEA,SAAS,mCAAmC,CAAC,CAA2C,EAAA;AACtF,IAAA,MAAM,wBAAwB,GAAG,CAAC,CAAC,kBAAkB;AACrD,IAAA,IAAI,OAAO,wBAAwB,KAAK,UAAU,EAAE;QAClD;IACF;AAEA,IAAA,CAAC,CAAC,kBAAkB,GAAG,MAAK;QAC1B,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAoB,CAAA,YAAA,EAAeD,kCAAqB,CAAA,EAAA,CAAI,CAAC;QACpG,IAAI,QAAQ,EAAE;YACZ;QACF;AAEA,QAAA,wBAAwB,EAAE;AAC5B,IAAA,CAAC;AACH;AAEA,eAAe,sBAAsB,CAAC,SAAS,GAAG,wBAAwB,EAAA;AACxE,IAAA,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE;IAC5B,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,SAAS,EAAE;AACzC,QAAA,IAAI,qBAAqB,EAAE,CAAC,YAAY,EAAE;YACxC;QACF;AACA,QAAA,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC1D;AACA,IAAA,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC;AAClF;AAEA;;;;;;;AAOG;AACI,eAAe,eAAe,CAAC,OAA+B,EAAA;AACnE,IAAA,IAAI,WAAW;QAAE;AACjB,IAAA,IAAI,OAAO;AAAE,QAAA,OAAO,OAAO;AAE3B,IAAA,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE;AACvB,QAAA,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC;IAC5D;AAEA,IAAA,OAAO,GAAG,CAAC,YAAW;AACpB,QAAA,IAAI,CAAC,OAAO,CAAC,sBAAsB,EAAE;;AAEnC,YAAA,oCAAoC,EAAE;AACtC,YAAA,2BAA2B,EAAE;QAC/B;AACA,QAAA,yBAAyB,EAAE;QAC3B,MAAM,KAAK,GAAG,kBAAkB,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC;QAC5D,MAAM,uBAAuB,EAAE;AAC/B,QAAA,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,KAAK,CAAC,wBAAwB,EAAE,EAAE;YAC/D,MAAM,UAAU,CAAC,QAAQ,EAAEF,gCAAmB,EAAE,EAAE,KAAK,EAAE,CAAC;QAC5D;QAEA,MAAM,UAAU,CAAC,QAAQ,EAAEC,kCAAkB,EAAE,EAAE,KAAK,EAAE,CAAC;QACzD,MAAM,UAAU,CAAC,QAAQ,EAAEC,kCAAqB,EAAE,EAAE,KAAK,EAAE,CAAC;AAE5D,QAAA,MAAM,CAAC,GAAG,qBAAqB,EAAE;AACjC,QAAA,+BAA+B,EAAE;QACjC,mCAAmC,CAAC,CAAC,CAAC;AACtC,QAAA,kCAAkC,EAAE;AACpC,QAAA,MAAM,aAAa,GAAG,gBAAgB,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,aAAa,EAAE;AAClB,YAAA,MAAM,IAAI,KAAK,CACb,oEAAoE,CACrE;QACH;QAEA,aAAa,CAAC,MAAM,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACrD,MAAM,sBAAsB,EAAE;QAC9B,WAAW,GAAG,IAAI;IACpB,CAAC,GAAG;AAEJ,IAAA,IAAI;AACF,QAAA,MAAM,OAAO;IACf;YAAU;;IAEV;AACF;AAEA;;;AAGG;AACG,SAAU,uBAAuB,CAAC,OAA8C,EAAA;AACpF,IAAA,MAAM,CAAC,GAAG,qBAAqB,EAAE;AACjC,IAAA,IAAI,CAAC,CAAC,CAAC,YAAY,EAAE;AACnB,QAAA,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC;IAC7F;IAEA,MAAM,aAAa,GAAG,OAAO,CAAC,CAAC,eAAe,KAAK,QAAQ,IAAI,CAAC,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,eAAe,GAAG,SAAS;IAC3H,IAAI,aAAa,EAAE;QACjB,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE;IAC3C;AAEA,IAAA,IAAI,CAAC,OAAO,EAAE,sBAAsB,EAAE;AACpC,QAAA,2BAA2B,EAAE;IAC/B;AACA,IAAA,MAAM,EAAE,GAAG,CAAC,CAAC,YAAY,EAAE;AAC3B,IAAA,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,eAAe,KAAK,QAAQ,GAAG,CAAC,CAAC,eAAe,GAAG,SAAS;AACnF,IAAA,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE;AACjD;AAEA;;AAEG;AACI,eAAe,4BAA4B,CAAC,OAMlD,EAAA;AACC,IAAA,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,IAAI;AAC5C,IAAA,MAAM,cAAc,GAAG,OAAO,EAAE,cAAc,IAAI,GAAG;AACrD,IAAA,MAAM,kBAAkB,GAAG,OAAO,EAAE,kBAAkB,IAAI,GAAG;AAC7D,IAAA,MAAM,cAAc,GAAG,OAAO,EAAE,cAAc,IAAI,CAAC;AACnD,IAAA,MAAM,sBAAsB,GAAG,OAAO,EAAE,sBAAsB,IAAI,GAAG;AACrE,IAAA,MAAM,aAAa,GAAG,qBAAqB,EAAE,CAAC,eAAe;IAC7D,IAAI,OAAO,aAAa,KAAK,QAAQ,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;QACjE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE;IAC3C;AACA,IAAA,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,UAAU,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;AACvE,IAAA,IAAI,UAAU,GAAG,uBAAuB,EAAE,CAAC;IAC3C,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,cAAc,GAAG,CAAC,EAAE;;AAExC,QAAA,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,UAAU,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QACnE,UAAU,GAAG,uBAAuB,EAAE;IACxC;AACA,IAAA,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE;;AAElB,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE;QACjC,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,cAAc,GAAG,sBAAsB,EAAE;AAC3D,YAAA,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,UAAU,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;AACnE,YAAA,MAAM,KAAK,GAAG,qBAAqB,EAAE,CAAC,eAAe;YACrD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AACjD,gBAAA,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;YAC5B;QACF;AACA,QAAA,OAAO,UAAU;IACnB;IACA,IAAI,UAAU,CAAC,KAAK;AAAE,QAAA,OAAO,UAAU;AAEvC,IAAA,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE;;IAE5B,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,SAAS,EAAE;AACzC,QAAA,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,UAAU,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;AACnE,QAAA,MAAM,KAAK,GAAG,qBAAqB,EAAE,CAAC,eAAe;QACrD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AACjD,YAAA,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;QAC5B;IACF;AAEA,IAAA,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE;AACrB;;AChOA,MAAM,IAAI,GAAG,QAAQ;AACrB,MAAM,IAAI,GAAG,OAAO;AACpB,MAAM,aAAa,GAAG,iBAAiB;AAEvC,MAAM,YAAY,GAAG,CAAC,gCAAgC,EAAE,mCAAmC,CAAU;AACrG,MAAM,qBAAqB,GAAG,CAAC,6BAA6B,CAAU;AACtE,MAAM,aAAa,GAAG,CAAC,gCAAgC,EAAE,mCAAmC,CAAU;AACtG,MAAM,WAAW,GAAG;IAClB,gCAAgC;IAChC,mCAAmC;IACnC,0BAA0B;IAC1B,8BAA8B;IAC9B,8BAA8B;CACtB;AACV,MAAM,UAAU,GAAG;IACjB,2BAA2B;IAC3B,0BAA0B;IAC1B,8BAA8B;CACtB;AACV,MAAM,SAAS,GAAG,CAAC,gCAAgC,EAAE,mCAAmC,EAAE,0BAA0B,CAAU;AAE9H,SAAS,MAAM,CAAC,MAAiC,EAAA;IAC/C,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,KAAsB,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAChG;AAEA,SAAS,WAAW,CAAC,KAAc,EAAA;IACjC,OAAO,KAAK,GAAG,CAAA,OAAA,EAAU,KAAK,CAAA,CAAA,CAAG,GAAG,SAAS;AAC/C;AAEA,SAAS,kBAAkB,CAAC,IAAY,EAAE,MAAgB,EAAA;IACxD,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,CAAA,EAAG,IAAI,CAAA,CAAA,EAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI;AACjE;AAEA,SAAS,WAAW,CAAC,MAAc,EAAA;AACjC,IAAA,MAAM,UAAU,GAAG,IAAI,GAAG,EAAoB;IAE9C,KAAK,MAAM,YAAY,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;AAC5C,QAAA,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,EAAE;QACrC,IAAI,CAAC,SAAS,EAAE;YACd;QACF;AAEA,QAAA,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;QACpD,MAAM,CAAC,IAAI,EAAE,GAAG,MAAM,CAAC,GAAG,KAAK;QAC/B,IAAI,CAAC,IAAI,EAAE;YACT;QACF;AAEA,QAAA,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC;IAC9B;AAEA,IAAA,OAAO,UAAU;AACnB;AAEM,SAAU,2BAA2B,CAAC,OAA+B,EAAA;AACzE,IAAA,MAAM,iBAAiB,GAAG,OAAO,EAAE,iBAAiB,IAAI,KAAK;;AAE7D,IAAA,MAAM,yBAAyB,GAAG,OAAO,EAAE,yBAAyB,IAAI,KAAK;AAC7E,IAAA,MAAM,wBAAwB,GAAG,OAAO,EAAE,wBAAwB,IAAI,KAAK;AAC3E,IAAA,MAAM,0BAA0B,GAAG,OAAO,EAAE,0BAA0B,IAAI,KAAK;IAC/E,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC;IACzC,MAAM,WAAW,GAAG,iBAAiB,GAAG,CAAC,GAAG,YAAY,EAAE,GAAG,qBAAqB,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC;AACvG,IAAA,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,WAAW,CAAC,CAAC;IAE1D,OAAO;AACL,QAAA,aAAa,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;AAC7B;;;;AAIG;QACH,YAAY,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,WAAW,EAAE,yBAAyB,GAAG,aAAa,GAAG,SAAS,CAAC,CAAC;QAC1G,iBAAiB,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,WAAW,CAAC,CAAC;AACxD,QAAA,iBAAiB,EAAE,MAAM,CAAC,0BAA0B,GAAG,CAAC,IAAI,EAAE,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC1F,aAAa,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,GAAG,aAAa,CAAC,CAAC;QAC/C,SAAS,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,SAAS,CAAC,CAAC;AAC7C;;;;;AAKG;AACH,QAAA,WAAW,EAAE,MAAM,CAAC,CAAC,GAAG,YAAY,EAAE,wBAAwB,GAAG,aAAa,GAAG,SAAS,CAAC,CAAC;AAC5F,QAAA,gBAAgB,EAAE,MAAM,CAAC,YAAY,CAAC;AACtC,QAAA,gBAAgB,EAAE,MAAM,CAAC,wBAAwB,GAAG,CAAC,IAAI,EAAE,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACvF,UAAU,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,GAAG,UAAU,EAAE,IAAI,CAAC,CAAC;KAChD;AACH;AAEM,SAAU,uBAAuB,CAAC,OAA+B,EAAA;IACrE,OAAO,MAAM,CAAC,OAAO,CAAC,2BAA2B,CAAC,OAAO,CAAC;AACvD,SAAA,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC;SACxD,IAAI,CAAC,IAAI,CAAC;AACf;AAEM,SAAU,yBAAyB,CAAC,cAAsB,EAAE,OAA+B,EAAA;AAC/F,IAAA,MAAM,UAAU,GAAG,WAAW,CAAC,cAAc,CAAC;AAC9C,IAAA,MAAM,WAAW,GAAG,2BAA2B,CAAC,OAAO,CAAC;AAExD,IAAA,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;QACxD,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC;IAC5E;AAEA,IAAA,OAAO,CAAC,GAAG,UAAU,CAAC,OAAO,EAAE;AAC5B,SAAA,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC;SACxD,IAAI,CAAC,IAAI,CAAC;AACf;;ACzHA;;AAEG;;ACFH;;AAEG;;;;"}