{"version":3,"file":"shival99-z-ui-components-z-tabs.mjs","sources":["../../../../libs/core-ui/components/z-tabs/directives/z-tab-panel.directive.ts","../../../../libs/core-ui/components/z-tabs/z-tabs.variants.ts","../../../../libs/core-ui/components/z-tabs/z-tabs.component.ts","../../../../libs/core-ui/components/z-tabs/z-tabs.component.html","../../../../libs/core-ui/components/z-tabs/shival99-z-ui-components-z-tabs.ts"],"sourcesContent":["import { Directive, inject, input, TemplateRef } from '@angular/core';\n\n@Directive({\n  selector: '[z-tab-panel], [zTabPanel]',\n  standalone: true,\n  exportAs: 'zTabPanel',\n})\nexport class ZTabPanelDirective {\n  public readonly zTabPanel = input.required<string>();\n  public readonly template = inject(TemplateRef<unknown>);\n}\n","import { cva, type VariantProps } from 'class-variance-authority';\n\nexport const zTabsVariants = cva('z-tabs flex min-w-0', {\n  variants: {\n    zType: {\n      line: 'gap-0',\n      soft: 'gap-1 bg-background p-0 dark:bg-transparent',\n      segment: 'gap-1 rounded-lg bg-muted/60 p-1 dark:bg-muted/35',\n      folder: 'isolate gap-0 bg-background p-0 dark:bg-transparent',\n      'folder-soft': 'isolate gap-0 bg-background p-0 dark:bg-transparent',\n      'folder-solid': 'isolate gap-0 bg-background p-0 dark:bg-transparent',\n      underline: 'gap-0',\n      underlined: 'gap-0 rounded-none bg-background p-0 dark:bg-transparent',\n      badge: 'gap-0 rounded-none bg-background p-0 dark:bg-transparent',\n      sharp: 'gap-1 rounded-none bg-background p-0 dark:bg-transparent',\n      'sharp-line': 'gap-0 rounded-none bg-background p-0 dark:bg-transparent',\n      'sharp-line-filled': 'gap-0 rounded-none bg-background p-0 dark:bg-transparent',\n      'vertical-sharp': 'gap-1 rounded-none bg-background p-0 dark:bg-transparent',\n      'code-line': 'h-10 w-full justify-start gap-0 rounded-none bg-background p-0 dark:bg-transparent',\n    },\n    zOrientation: {\n      horizontal: 'w-max flex-row items-center',\n      vertical: 'w-full flex-col items-stretch gap-1 border-b-0',\n    },\n  },\n  defaultVariants: {\n    zType: 'line',\n    zOrientation: 'horizontal',\n  },\n  compoundVariants: [\n    {\n      zType: 'vertical-sharp',\n      zOrientation: 'vertical',\n      class: 'border-r-0 pr-0',\n    },\n    {\n      zType: 'sharp-line',\n      zOrientation: 'vertical',\n      class: 'gap-0',\n    },\n    {\n      zType: 'sharp-line-filled',\n      zOrientation: 'vertical',\n      class: 'gap-0',\n    },\n  ],\n});\n\nexport const zTabItemVariants = cva(\n  'z-tab-item relative inline-flex min-h-10 select-none items-center justify-center gap-2 whitespace-nowrap font-medium text-sm leading-none text-muted-foreground transition-[color,background-color,border-color,box-shadow,transform] duration-200 outline-none focus-visible:outline-none focus-visible:ring-0 focus-visible:ring-offset-0 cursor-pointer disabled:opacity-45 disabled:cursor-not-allowed',\n  {\n    variants: {\n      zType: {\n        line: 'rounded-none border-0 hover:text-foreground data-[active=true]:text-primary after:pointer-events-none after:absolute after:inset-x-0 after:bottom-[-1px] after:h-1 after:bg-primary after:origin-center after:scale-x-0 after:transition-transform after:duration-200 data-[active=true]:after:scale-x-100',\n        soft: 'rounded-md border-0 text-muted-foreground hover:text-foreground data-[active=true]:bg-primary/10 data-[active=true]:text-primary data-[active=true]:shadow-xs! dark:data-[active=true]:bg-primary/15',\n        segment:\n          'rounded-md border-0 text-muted-foreground hover:text-foreground data-[active=true]:bg-background data-[active=true]:text-primary data-[active=true]:shadow-sm',\n        folder:\n          'rounded-t-md border-0 bg-transparent text-muted-foreground shadow-[inset_0_-1px_0_var(--border)] hover:text-foreground focus-visible:ring-0 focus-visible:ring-offset-0 data-[active=true]:z-[2] data-[active=true]:bg-background data-[active=true]:text-primary data-[active=true]:shadow-[inset_1px_0_0_var(--border),inset_-1px_0_0_var(--border),inset_0_1px_0_var(--border)]',\n        'folder-soft':\n          'rounded-t-md border-0 bg-transparent text-muted-foreground shadow-[inset_0_-1px_0_var(--border)] hover:text-foreground focus-visible:ring-0 focus-visible:ring-offset-0 data-[active=true]:z-[2] data-[active=true]:bg-primary/10 data-[active=true]:text-primary data-[active=true]:shadow-[inset_1px_0_0_var(--border),inset_-1px_0_0_var(--border),inset_0_1px_0_var(--border)] dark:data-[active=true]:bg-primary/15',\n        'folder-solid':\n          'rounded-t-md border-0 bg-transparent text-muted-foreground shadow-[inset_0_-1px_0_var(--border)] hover:text-foreground focus-visible:ring-0 focus-visible:ring-offset-0 data-[active=true]:z-[2] data-[active=true]:bg-primary data-[active=true]:text-primary-foreground data-[active=true]:shadow-[inset_1px_0_0_var(--primary),inset_-1px_0_0_var(--primary),inset_0_1px_0_var(--primary)]',\n        underline:\n          'hover:text-foreground data-[active=true]:text-primary after:pointer-events-none after:absolute after:inset-x-1 after:bottom-[-1px] after:h-[0.1875rem] after:bg-primary after:origin-center after:scale-x-0 after:transition-transform after:duration-200 data-[active=true]:after:scale-x-100',\n        underlined:\n          'rounded-none border-0 border-b-2 border-b-transparent! bg-background text-foreground/60 hover:text-foreground data-[active=true]:border-b-primary! data-[active=true]:bg-primary/10 data-[active=true]:text-primary data-[active=true]:shadow-sm!',\n        badge:\n          'rounded-none border-0 border-b-2 border-b-transparent! bg-background text-foreground/60 hover:text-foreground data-[active=true]:border-b-primary! data-[active=true]:bg-primary/10 data-[active=true]:text-primary data-[active=true]:shadow-none',\n        sharp:\n          'rounded-none border border-border/45 border-b-[3px] bg-background text-foreground/60 hover:text-foreground data-[active=true]:border-primary! data-[active=true]:border-b-primary! data-[active=true]:text-primary',\n        'sharp-line':\n          'rounded-none border border-border/45 border-b-[3px] bg-background text-foreground/60 hover:text-foreground data-[active=true]:border-primary! data-[active=true]:border-b-primary! data-[active=true]:text-primary',\n        'sharp-line-filled':\n          'rounded-none border border-border/45 border-b-[3px] bg-background text-foreground/60 hover:text-foreground data-[active=true]:border-primary! data-[active=true]:border-b-primary! data-[active=true]:bg-primary/30 data-[active=true]:text-primary',\n        'vertical-sharp':\n          'rounded-none border border-transparent border-b-[3px] bg-background text-foreground/60 hover:text-foreground data-[active=true]:border-primary data-[active=true]:bg-primary/10 data-[active=true]:text-primary data-[active=true]:shadow-none',\n        'code-line':\n          'relative inline-flex h-full min-h-8 flex-1 items-center justify-center gap-1.5 whitespace-nowrap rounded-none border border-border/45 border-b-2 bg-background px-4 py-1.5 font-medium text-foreground/60 transition-all hover:text-foreground data-[active=true]:relative data-[active=true]:z-[1] data-[active=true]:-mb-px data-[active=true]:border-x-primary/70! data-[active=true]:border-t-primary/70! data-[active=true]:border-b-primary! data-[active=true]:bg-primary/30 data-[active=true]:text-primary data-[active=true]:shadow-none [&_span.z-tab-item-label]:font-mono [&_span.z-tab-item-label]:text-[13px]',\n      },\n      zSize: {\n        xs: 'min-h-8 px-2.5 py-1 text-xs',\n        sm: 'min-h-9 px-3 py-1.5 text-sm',\n        default: 'min-h-10 px-4 py-2 text-sm',\n        lg: 'min-h-[2.625rem] px-4.5 py-2.25 text-sm',\n      },\n      zOrientation: {\n        horizontal: '',\n        vertical: 'justify-start px-3 py-2',\n      },\n    },\n    compoundVariants: [\n      {\n        zType: 'line',\n        zOrientation: 'vertical',\n        class: 'w-full justify-start rounded-sm data-[active=true]:shadow-xs',\n      },\n      {\n        zType: 'soft',\n        zOrientation: 'vertical',\n        class:\n          'w-full justify-start rounded-md data-[active=true]:bg-primary/10 data-[active=true]:shadow-xs dark:data-[active=true]:bg-primary/15',\n      },\n      {\n        zType: 'segment',\n        zOrientation: 'vertical',\n        class: 'w-full justify-start rounded-md data-[active=true]:bg-background data-[active=true]:shadow-xs',\n      },\n      {\n        zType: 'folder',\n        zOrientation: 'vertical',\n        class: 'w-full justify-start rounded-sm data-[active=true]:shadow-xs',\n      },\n      {\n        zType: 'folder-soft',\n        zOrientation: 'vertical',\n        class: 'w-full justify-start rounded-sm data-[active=true]:shadow-xs',\n      },\n      {\n        zType: 'folder-solid',\n        zOrientation: 'vertical',\n        class: 'w-full justify-start rounded-sm data-[active=true]:shadow-xs',\n      },\n      {\n        zType: 'underline',\n        zOrientation: 'vertical',\n        class: 'w-full justify-start rounded-sm data-[active=true]:shadow-xs',\n      },\n\n      {\n        zType: 'underlined',\n        zOrientation: 'vertical',\n        class: 'w-full justify-start rounded-none data-[active=true]:shadow-xs',\n      },\n      {\n        zType: 'badge',\n        zOrientation: 'vertical',\n        class: 'w-full justify-start rounded-none data-[active=true]:shadow-xs',\n      },\n      {\n        zType: 'sharp',\n        zOrientation: 'vertical',\n        class: 'w-full justify-start rounded-none data-[active=true]:shadow-xs',\n      },\n      {\n        zType: 'sharp-line',\n        zOrientation: 'vertical',\n        class: 'w-full justify-start rounded-none data-[active=true]:shadow-xs',\n      },\n      {\n        zType: 'sharp-line-filled',\n        zOrientation: 'vertical',\n        class: 'w-full justify-start rounded-none data-[active=true]:shadow-xs',\n      },\n      {\n        zType: 'vertical-sharp',\n        zOrientation: 'vertical',\n        class:\n          'w-full justify-start rounded-none border border-transparent border-b-[3px] px-3 py-1.5 data-[active=true]:border-primary data-[active=true]:shadow-xs',\n      },\n      {\n        zType: 'code-line',\n        zSize: 'xs',\n        zOrientation: 'horizontal',\n        class: 'min-h-7 px-3 py-1 text-xs [&_span.z-tab-item-label]:text-xs',\n      },\n      {\n        zType: 'code-line',\n        zSize: 'sm',\n        zOrientation: 'horizontal',\n        class: 'min-h-8 px-3.5 py-1.5 text-sm',\n      },\n      {\n        zType: 'code-line',\n        zSize: 'default',\n        zOrientation: 'horizontal',\n        class: 'min-h-8 px-4 py-1.5 text-sm',\n      },\n      {\n        zType: 'code-line',\n        zSize: 'lg',\n        zOrientation: 'horizontal',\n        class: 'min-h-9 px-4.5 py-2 text-sm',\n      },\n      {\n        zType: 'code-line',\n        zOrientation: 'vertical',\n        class: 'h-auto w-full flex-none justify-start rounded-none px-3 py-2 data-[active=true]:shadow-xs',\n      },\n    ],\n    defaultVariants: {\n      zType: 'line',\n      zSize: 'default',\n      zOrientation: 'horizontal',\n    },\n  }\n);\n\nexport type ZTabsVariants = VariantProps<typeof zTabsVariants>;\nexport type ZTabItemVariants = VariantProps<typeof zTabItemVariants>;\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  Component,\n  computed,\n  contentChildren,\n  effect,\n  ElementRef,\n  input,\n  model,\n  output,\n  signal,\n  viewChild,\n  viewChildren,\n  ViewEncapsulation,\n  OnDestroy,\n  OnInit,\n} from '@angular/core';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { ZButtonComponent } from '@shival99/z-ui/components/z-button';\nimport { ZIconComponent } from '@shival99/z-ui/components/z-icon';\nimport { ZPopoverDirective } from '@shival99/z-ui/components/z-popover';\nimport { ZTooltipDirective } from '@shival99/z-ui/components/z-tooltip';\nimport { ZCacheService } from '@shival99/z-ui/services';\nimport { zMergeClasses } from '@shival99/z-ui/utils';\nimport type { ClassValue } from 'clsx';\nimport { NgScrollbar } from 'ngx-scrollbar';\nimport { ZTabPanelDirective } from './directives/z-tab-panel.directive';\nimport type { ZTab, ZTabsType, ZTabsSize, ZTabsOrientation } from './z-tabs.types';\nimport { zTabsVariants, zTabItemVariants } from './z-tabs.variants';\n\nlet zTabsInstanceId = 0;\nconst Z_TABS_SCROLL_TOLERANCE = 4;\n\n@Component({\n  selector: 'z-tabs',\n  imports: [\n    ZIconComponent,\n    ZButtonComponent,\n    ZTooltipDirective,\n    NgTemplateOutlet,\n    ZPopoverDirective,\n    TranslatePipe,\n    NgScrollbar,\n  ],\n  standalone: true,\n  templateUrl: './z-tabs.component.html',\n  styleUrl: './z-tabs.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  host: {\n    class: 'z-tabs-wrapper block',\n  },\n})\nexport class ZTabsComponent implements OnInit, AfterViewInit, OnDestroy {\n  public readonly tabPanels = contentChildren(ZTabPanelDirective);\n  public readonly tabsListContainer = viewChild<ElementRef<HTMLDivElement>>('tabsListContainer');\n  public readonly tabButtons = viewChildren<ElementRef<HTMLButtonElement>>('tabButton');\n\n  public readonly class = input<ClassValue>('');\n  public readonly zTabs = input.required<ZTab[]>();\n  public readonly zType = input<ZTabsType>('line');\n  public readonly zSize = input<ZTabsSize>('default');\n  public readonly zOrientation = input<ZTabsOrientation>('horizontal');\n  public readonly zLazy = input(false);\n  public readonly zDestroyInactive = input(false);\n  public readonly zTabsOnly = input(false);\n  public readonly zShowContentWrapper = input(true);\n  public readonly zReloadable = input(true);\n  public readonly zEmitOnActiveClick = input(true);\n  public readonly zCache = input(true);\n  public readonly zCacheKey = input('');\n\n  public readonly activeTab = model<string>('');\n  public readonly zTabChange = output<string>();\n\n  protected readonly loadedTabs = signal<Set<string>>(new Set());\n  protected readonly canScrollLeft = signal(false);\n  protected readonly canScrollRight = signal(false);\n\n  protected readonly panelRenderStates = computed(\n    () =>\n      new Map(\n        this.tabPanels().map(panel => {\n          const tabValue = panel.zTabPanel();\n\n          if (this.zDestroyInactive()) {\n            return [tabValue, this.activeTab() === tabValue] as const;\n          }\n\n          if (!this.zLazy()) {\n            return [tabValue, true] as const;\n          }\n\n          return [tabValue, this.loadedTabs().has(tabValue) || this.activeTab() === tabValue] as const;\n        })\n      )\n  );\n\n  private _resizeObserver?: ResizeObserver;\n  private readonly _cacheInstanceId = ++zTabsInstanceId;\n\n  constructor() {\n    effect(() => {\n      this.zTabs();\n      requestAnimationFrame(() => this.checkScroll());\n    });\n  }\n\n  ngOnInit(): void {\n    this._restoreActiveTabFromCache();\n  }\n\n  ngAfterViewInit(): void {\n    this.checkScroll();\n    this._setupResizeObserver();\n  }\n\n  ngOnDestroy(): void {\n    this._resizeObserver?.disconnect();\n  }\n\n  protected readonly tabsClasses = computed(() =>\n    zMergeClasses(\n      zTabsVariants({\n        zType: this.zType(),\n        zOrientation: this.zOrientation(),\n      }),\n      this.class()\n    )\n  );\n\n  protected readonly contentWrapperFramed = computed(() => {\n    if (!this.zShowContentWrapper()) {\n      return false;\n    }\n\n    if (this.zOrientation() === 'vertical') {\n      return false;\n    }\n\n    const type = this.zType();\n    return (\n      type === 'folder' ||\n      type === 'folder-soft' ||\n      type === 'folder-solid' ||\n      type === 'sharp' ||\n      type === 'sharp-line' ||\n      type === 'sharp-line-filled' ||\n      type === 'code-line'\n    );\n  });\n\n  protected readonly tabsListHasBottomPadding = computed(() => {\n    if (this.zOrientation() !== 'horizontal') {\n      return false;\n    }\n\n    const type = this.zType();\n    return (\n      type !== 'folder' &&\n      type !== 'folder-soft' &&\n      type !== 'folder-solid' &&\n      type !== 'segment' &&\n      type !== 'sharp' &&\n      type !== 'sharp-line' &&\n      type !== 'sharp-line-filled' &&\n      type !== 'code-line'\n    );\n  });\n\n  protected readonly verticalTabsScrollable = computed(\n    () => this.zOrientation() === 'vertical' && this.zTabs().length > 8\n  );\n\n  protected getTabItemClasses(_tab: ZTab): string {\n    return zMergeClasses(\n      zTabItemVariants({\n        zType: this.zType(),\n        zSize: this.zSize(),\n        zOrientation: this.zOrientation(),\n      })\n    );\n  }\n\n  protected selectTab(tab: ZTab, scrollToView = false): void {\n    if (tab.disabled) {\n      return;\n    }\n\n    const isAlreadyActive = this.activeTab() === tab.value;\n    if (isAlreadyActive && !this.zReloadable()) {\n      return;\n    }\n\n    this.activeTab.set(tab.value);\n    this._saveActiveTabToCache(tab.value);\n\n    if (!isAlreadyActive || this.zEmitOnActiveClick()) {\n      this.zTabChange.emit(tab.value);\n    }\n\n    if (this.zLazy()) {\n      this.loadedTabs.update(tabs => {\n        const newTabs = new Set(tabs);\n        newTabs.add(tab.value);\n        return newTabs;\n      });\n    }\n\n    if (scrollToView && this.zOrientation() === 'horizontal') {\n      requestAnimationFrame(() => {\n        const tabIndex = this.zTabs().findIndex(t => t.value === tab.value);\n        const tabButtonsList = this.tabButtons();\n        const tabButton = tabButtonsList[tabIndex];\n        if (tabButton) {\n          tabButton.nativeElement.scrollIntoView({\n            behavior: 'smooth',\n            block: 'nearest',\n            inline: 'center',\n          });\n        }\n      });\n    }\n  }\n\n  protected isTabActive(tab: ZTab): boolean {\n    return this.activeTab() === tab.value;\n  }\n\n  protected onTabKeydown(event: KeyboardEvent, currentIndex: number): void {\n    const tabs = this.zTabs().filter(t => !t.disabled);\n    const currentTab = tabs[currentIndex];\n\n    if (!currentTab) {\n      return;\n    }\n\n    const isHorizontal = this.zOrientation() === 'horizontal';\n    const nextKey = isHorizontal ? 'ArrowRight' : 'ArrowDown';\n    const prevKey = isHorizontal ? 'ArrowLeft' : 'ArrowUp';\n\n    if (event.key === nextKey) {\n      event.preventDefault();\n      const nextIndex = (currentIndex + 1) % tabs.length;\n      this.selectTab(tabs[nextIndex]);\n      return;\n    }\n\n    if (event.key === prevKey) {\n      event.preventDefault();\n      const prevIndex = (currentIndex - 1 + tabs.length) % tabs.length;\n      this.selectTab(tabs[prevIndex]);\n      return;\n    }\n\n    if (event.key === 'Home') {\n      event.preventDefault();\n      this.selectTab(tabs[0]);\n      return;\n    }\n\n    if (event.key === 'End') {\n      event.preventDefault();\n      this.selectTab(tabs[tabs.length - 1]);\n    }\n  }\n\n  protected checkScroll(): void {\n    const container = this.tabsListContainer()?.nativeElement;\n    if (!container || this.zOrientation() !== 'horizontal') {\n      this.canScrollLeft.set(false);\n      this.canScrollRight.set(false);\n      return;\n    }\n\n    const { scrollLeft, scrollWidth, clientWidth } = container;\n    const maxScrollLeft = scrollWidth - clientWidth;\n\n    if (maxScrollLeft <= Z_TABS_SCROLL_TOLERANCE) {\n      container.scrollLeft = 0;\n      this.canScrollLeft.set(false);\n      this.canScrollRight.set(false);\n      return;\n    }\n\n    this.canScrollLeft.set(scrollLeft > Z_TABS_SCROLL_TOLERANCE);\n    this.canScrollRight.set(maxScrollLeft - scrollLeft > Z_TABS_SCROLL_TOLERANCE);\n  }\n\n  protected scrollLeft(): void {\n    const container = this.tabsListContainer()?.nativeElement;\n    if (!container) {\n      return;\n    }\n\n    container.scrollBy({ left: -200, behavior: 'smooth' });\n    setTimeout(() => this.checkScroll(), 300);\n  }\n\n  protected scrollRight(): void {\n    const container = this.tabsListContainer()?.nativeElement;\n    if (!container) {\n      return;\n    }\n\n    container.scrollBy({ left: 200, behavior: 'smooth' });\n    setTimeout(() => this.checkScroll(), 300);\n  }\n\n  protected onTabsScroll(): void {\n    this.checkScroll();\n  }\n\n  private _setupResizeObserver(): void {\n    const container = this.tabsListContainer()?.nativeElement;\n    if (!container) {\n      return;\n    }\n\n    this._resizeObserver = new ResizeObserver(() => {\n      this.checkScroll();\n    });\n\n    this._resizeObserver.observe(container);\n  }\n\n  private _restoreActiveTabFromCache(): void {\n    if (!this.zCache()) {\n      return;\n    }\n\n    const cacheKey = this._getCacheKey();\n    const cachedTab = ZCacheService.get<string>(cacheKey);\n    if (!cachedTab) {\n      return;\n    }\n\n    const tab = this.zTabs().find(item => item.value === cachedTab && !item.disabled);\n    if (!tab) {\n      return;\n    }\n\n    this.activeTab.set(tab.value);\n\n    if (this.zLazy()) {\n      this.loadedTabs.update(tabs => {\n        const newTabs = new Set(tabs);\n        newTabs.add(tab.value);\n        return newTabs;\n      });\n    }\n  }\n\n  private _saveActiveTabToCache(value: string): void {\n    if (!this.zCache()) {\n      return;\n    }\n\n    ZCacheService.set(this._getCacheKey(), value);\n  }\n\n  private _getCacheKey(): string {\n    const customKey = this.zCacheKey().trim();\n    if (customKey) {\n      return customKey;\n    }\n\n    const path = typeof window === 'undefined' ? 'ssr' : window.location.pathname;\n    return `z-tabs:${path}:${this._cacheInstanceId}`;\n  }\n\n  protected scrollToActiveDropdownItem(): void {\n    setTimeout(() => {\n      const activeIndex = this.zTabs().findIndex(tab => tab.value === this.activeTab());\n      if (activeIndex === -1) {\n        return;\n      }\n\n      const dropdownMenu = document.querySelector('.z-tabs-dropdown-menu') as HTMLElement;\n      if (!dropdownMenu) {\n        return;\n      }\n\n      const dropdownItems = Array.from(dropdownMenu.querySelectorAll('button'));\n      const activeItem = dropdownItems[activeIndex];\n\n      if (activeItem && dropdownMenu) {\n        const menuRect = dropdownMenu.getBoundingClientRect();\n        const itemRect = activeItem.getBoundingClientRect();\n        const scrollTop = activeItem.offsetTop - menuRect.height / 2 + itemRect.height / 2;\n\n        dropdownMenu.scrollTo({\n          top: scrollTop,\n          behavior: 'smooth',\n        });\n      }\n    }, 150);\n  }\n}\n","<div\n  class=\"z-tabs-container flex gap-1\"\n  [attr.data-type]=\"zType()\"\n  [attr.data-orientation]=\"zOrientation()\"\n  [class.flex-col]=\"!zTabsOnly()\"\n  [class.flex-row]=\"zOrientation() === 'vertical'\"\n  [class.gap-4]=\"zOrientation() === 'vertical'\">\n  <!-- Tabs Navigation (Left/Scroll/Tabs/Right/Dropdown) -->\n  <div\n    class=\"z-tabs-nav flex items-center gap-1.5\"\n    [class.w-full]=\"zOrientation() === 'horizontal'\"\n    [class.w-auto]=\"zOrientation() === 'vertical'\"\n    [class.shrink-0]=\"zOrientation() === 'vertical'\">\n    <!-- Scroll Left Button -->\n    @if (canScrollLeft() && zOrientation() === 'horizontal') {\n      <z-button\n        zType=\"ghost\"\n        zSize=\"sm\"\n        zIconOnly=\"true\"\n        [zWave]=\"false\"\n        class=\"z-tabs-nav-control shrink-0\"\n        (click)=\"scrollLeft()\"\n        aria-label=\"Scroll left\">\n        <z-icon zType=\"lucideChevronLeft\" zSize=\"16\" />\n      </z-button>\n    }\n\n    <!-- Tabs List Container with Scroll + Fade -->\n    <div class=\"z-tabs-scroll-container relative min-w-0 flex-1\" [attr.data-type]=\"zType()\">\n      @if (zOrientation() === 'vertical') {\n        <ng-scrollbar\n          class=\"z-tabs-scroll-wrapper z-tabs-scrollbar vertical\"\n          [class.z-tabs-scroll-wrapper-limited]=\"verticalTabsScrollable()\"\n          track=\"vertical\"\n          orientation=\"vertical\"\n          appearance=\"compact\"\n          visibility=\"hover\">\n          <ng-container *ngTemplateOutlet=\"tabsListTpl\" />\n        </ng-scrollbar>\n      } @else {\n        <div\n          #tabsListContainer\n          class=\"z-tabs-scroll-wrapper\"\n          [class.z-tabs-scroll-wrapper-scrollable]=\"canScrollLeft() || canScrollRight()\"\n          (scroll)=\"onTabsScroll()\">\n          <ng-container *ngTemplateOutlet=\"tabsListTpl\" />\n        </div>\n      }\n\n      <!-- Fade overlays (outside scroll container) -->\n      @if (canScrollLeft() && zOrientation() === 'horizontal') {\n        <div class=\"z-tabs-fade-left\"></div>\n      }\n      @if (canScrollRight() && zOrientation() === 'horizontal') {\n        <div class=\"z-tabs-fade-right\"></div>\n      }\n    </div>\n\n    <!-- Scroll Right Button -->\n    @if (canScrollRight() && zOrientation() === 'horizontal') {\n      <z-button\n        zType=\"ghost\"\n        zSize=\"sm\"\n        zIconOnly=\"true\"\n        class=\"z-tabs-nav-control shrink-0\"\n        (click)=\"scrollRight()\"\n        [zWave]=\"false\"\n        aria-label=\"Scroll right\">\n        <z-icon zType=\"lucideChevronRight\" zSize=\"16\" />\n      </z-button>\n    }\n\n    <!-- Dropdown Button (Mobile or Overflow) -->\n    @if (zOrientation() === 'horizontal' && (canScrollLeft() || canScrollRight())) {\n      <z-button\n        zType=\"ghost\"\n        zSize=\"sm\"\n        zIconOnly=\"true\"\n        class=\"z-tabs-nav-control shrink-0\"\n        z-popover\n        [zPopoverContent]=\"dropdownTpl\"\n        zPosition=\"bottom-right\"\n        [zWave]=\"false\"\n        zClass=\"min-w-[6.25rem] max-w-[12.5rem]\"\n        (zShow)=\"scrollToActiveDropdownItem()\"\n        aria-label=\"Select tab\">\n        <z-icon zType=\"lucideChevronDown\" zSize=\"16\" />\n      </z-button>\n    }\n  </div>\n\n  <ng-template #tabsListTpl>\n    <!-- Tab List -->\n    <div\n      [class]=\"tabsClasses()\"\n      [class.pb-0.5]=\"tabsListHasBottomPadding()\"\n      role=\"tablist\"\n      [attr.aria-orientation]=\"zOrientation()\"\n      [attr.data-type]=\"zType()\">\n      @for (tab of zTabs(); track tab.value; let idx = $index; let last = $last) {\n        <button\n          #tabButton\n          type=\"button\"\n          role=\"tab\"\n          [class]=\"getTabItemClasses(tab)\"\n          [attr.data-active]=\"isTabActive(tab)\"\n          [attr.data-state]=\"isTabActive(tab) ? 'active' : 'inactive'\"\n          [attr.data-type]=\"zType()\"\n          [attr.data-orientation]=\"zOrientation()\"\n          [attr.data-last]=\"last\"\n          [attr.aria-selected]=\"isTabActive(tab)\"\n          [attr.aria-controls]=\"'panel-' + tab.value\"\n          [disabled]=\"tab.disabled\"\n          [tabindex]=\"isTabActive(tab) ? 0 : -1\"\n          z-tooltip\n          [zContent]=\"zOrientation() === 'vertical' ? (tab.label | translate) : ''\"\n          zPosition=\"top\"\n          [zHideDelay]=\"0\"\n          [zOffset]=\"5\"\n          [zArrow]=\"false\"\n          (click)=\"selectTab(tab)\"\n          (keydown)=\"onTabKeydown($event, idx)\">\n          @if (tab.icon) {\n            <z-icon [zType]=\"tab.icon\" zSize=\"16\" class=\"shrink-0\" />\n          }\n          <span class=\"z-tab-item-label min-w-0 flex-1 truncate text-left\">{{ tab.label | translate }}</span>\n          @if (tab.badge) {\n            <span\n              class=\"ring-background ml-1.5 inline-flex h-5 min-w-5 items-center justify-center rounded-full px-1.5 text-xs font-semibold ring-2\"\n              [class.bg-primary]=\"zType() !== 'badge'\"\n              [class.text-primary-foreground]=\"zType() !== 'badge'\"\n              [class.bg-primary!]=\"zType() === 'badge'\"\n              [class.text-primary-foreground!]=\"zType() === 'badge'\">\n              {{ tab.badge }}\n            </span>\n          }\n        </button>\n      }\n    </div>\n  </ng-template>\n\n  <!-- Tab Panels -->\n  @if (!zTabsOnly()) {\n    <div\n      class=\"z-tabs-panels min-h-0\"\n      [class.flex-1]=\"zOrientation() === 'vertical'\"\n      [class.shadow-xs]=\"contentWrapperFramed()\"\n      [class.z-tabs-panels-unwrapped]=\"!contentWrapperFramed()\">\n      @for (panel of tabPanels(); track panel.zTabPanel()) {\n        @if (panelRenderStates().get(panel.zTabPanel())) {\n          <div\n            role=\"tabpanel\"\n            [id]=\"'panel-' + panel.zTabPanel()\"\n            [attr.aria-labelledby]=\"panel.zTabPanel()\"\n            [hidden]=\"activeTab() !== panel.zTabPanel()\">\n            <ng-container *ngTemplateOutlet=\"panel.template\" />\n          </div>\n        }\n      }\n    </div>\n  }\n</div>\n\n<!-- Dropdown Menu Template -->\n<ng-template #dropdownTpl let-close=\"close\">\n  <div\n    class=\"z-tabs-dropdown-menu flex max-h-[18.75rem] max-w-[12.5rem] min-w-[6.25rem] flex-col gap-0.5 overflow-y-auto p-1\">\n    @for (tab of zTabs(); track tab.value) {\n      <button\n        #dropdownItem\n        type=\"button\"\n        class=\"flex w-full cursor-pointer items-center justify-start gap-2 rounded-sm px-2 py-1.5 text-left text-sm font-medium transition-colors outline-none disabled:pointer-events-none disabled:opacity-50\"\n        [class.hover:text-foreground]=\"!isTabActive(tab)\"\n        [class.focus:bg-primary/10]=\"!isTabActive(tab)\"\n        [class.bg-primary/15]=\"isTabActive(tab)\"\n        [class.text-primary]=\"isTabActive(tab)\"\n        [disabled]=\"tab.disabled\"\n        (click)=\"selectTab(tab, true); close()\">\n        @if (tab.icon) {\n          <z-icon [zType]=\"tab.icon\" zSize=\"16\" class=\"text-muted-foreground shrink-0\" />\n        }\n        <span\n          class=\"min-w-0 flex-1 truncate\"\n          z-tooltip\n          [zContent]=\"tab.label | translate\"\n          zPosition=\"top\"\n          [zHideDelay]=\"0\"\n          [zOffset]=\"5\"\n          [zArrow]=\"false\"\n          [zTriggerElement]=\"dropdownItem\">\n          {{ tab.label | translate }}\n        </span>\n        @if (tab.badge) {\n          <span\n            class=\"bg-primary text-primary-foreground inline-flex h-5 min-w-5 items-center justify-center rounded-full px-1.5 text-xs font-semibold\">\n            {{ tab.badge }}\n          </span>\n        }\n        @if (isTabActive(tab)) {\n          <z-icon zType=\"lucideCheck\" zSize=\"16\" class=\"text-primary shink-0\" />\n        }\n      </button>\n    }\n  </div>\n</ng-template>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;MAOa,kBAAkB,CAAA;AACb,IAAA,SAAS,GAAG,KAAK,CAAC,QAAQ,oDAAU;AACpC,IAAA,QAAQ,GAAG,MAAM,EAAC,WAAoB,EAAC;uGAF5C,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,4BAA4B;AACtC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,WAAW;AACtB,iBAAA;;;ACJM,MAAM,aAAa,GAAG,GAAG,CAAC,qBAAqB,EAAE;AACtD,IAAA,QAAQ,EAAE;AACR,QAAA,KAAK,EAAE;AACL,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,IAAI,EAAE,6CAA6C;AACnD,YAAA,OAAO,EAAE,mDAAmD;AAC5D,YAAA,MAAM,EAAE,qDAAqD;AAC7D,YAAA,aAAa,EAAE,qDAAqD;AACpE,YAAA,cAAc,EAAE,qDAAqD;AACrE,YAAA,SAAS,EAAE,OAAO;AAClB,YAAA,UAAU,EAAE,0DAA0D;AACtE,YAAA,KAAK,EAAE,0DAA0D;AACjE,YAAA,KAAK,EAAE,0DAA0D;AACjE,YAAA,YAAY,EAAE,0DAA0D;AACxE,YAAA,mBAAmB,EAAE,0DAA0D;AAC/E,YAAA,gBAAgB,EAAE,0DAA0D;AAC5E,YAAA,WAAW,EAAE,oFAAoF;AAClG,SAAA;AACD,QAAA,YAAY,EAAE;AACZ,YAAA,UAAU,EAAE,6BAA6B;AACzC,YAAA,QAAQ,EAAE,gDAAgD;AAC3D,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,YAAY,EAAE,YAAY;AAC3B,KAAA;AACD,IAAA,gBAAgB,EAAE;AAChB,QAAA;AACE,YAAA,KAAK,EAAE,gBAAgB;AACvB,YAAA,YAAY,EAAE,UAAU;AACxB,YAAA,KAAK,EAAE,iBAAiB;AACzB,SAAA;AACD,QAAA;AACE,YAAA,KAAK,EAAE,YAAY;AACnB,YAAA,YAAY,EAAE,UAAU;AACxB,YAAA,KAAK,EAAE,OAAO;AACf,SAAA;AACD,QAAA;AACE,YAAA,KAAK,EAAE,mBAAmB;AAC1B,YAAA,YAAY,EAAE,UAAU;AACxB,YAAA,KAAK,EAAE,OAAO;AACf,SAAA;AACF,KAAA;AACF,CAAA;AAEM,MAAM,gBAAgB,GAAG,GAAG,CACjC,4YAA4Y,EAC5Y;AACE,IAAA,QAAQ,EAAE;AACR,QAAA,KAAK,EAAE;AACL,YAAA,IAAI,EAAE,4SAA4S;AAClT,YAAA,IAAI,EAAE,sMAAsM;AAC5M,YAAA,OAAO,EACL,+JAA+J;AACjK,YAAA,MAAM,EACJ,oXAAoX;AACtX,YAAA,aAAa,EACX,0ZAA0Z;AAC5Z,YAAA,cAAc,EACZ,+XAA+X;AACjY,YAAA,SAAS,EACP,gSAAgS;AAClS,YAAA,UAAU,EACR,mPAAmP;AACrP,YAAA,KAAK,EACH,oPAAoP;AACtP,YAAA,KAAK,EACH,oNAAoN;AACtN,YAAA,YAAY,EACV,oNAAoN;AACtN,YAAA,mBAAmB,EACjB,qPAAqP;AACvP,YAAA,gBAAgB,EACd,gPAAgP;AAClP,YAAA,WAAW,EACT,8lBAA8lB;AACjmB,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,EAAE,EAAE,6BAA6B;AACjC,YAAA,EAAE,EAAE,6BAA6B;AACjC,YAAA,OAAO,EAAE,4BAA4B;AACrC,YAAA,EAAE,EAAE,yCAAyC;AAC9C,SAAA;AACD,QAAA,YAAY,EAAE;AACZ,YAAA,UAAU,EAAE,EAAE;AACd,YAAA,QAAQ,EAAE,yBAAyB;AACpC,SAAA;AACF,KAAA;AACD,IAAA,gBAAgB,EAAE;AAChB,QAAA;AACE,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,YAAY,EAAE,UAAU;AACxB,YAAA,KAAK,EAAE,8DAA8D;AACtE,SAAA;AACD,QAAA;AACE,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,YAAY,EAAE,UAAU;AACxB,YAAA,KAAK,EACH,qIAAqI;AACxI,SAAA;AACD,QAAA;AACE,YAAA,KAAK,EAAE,SAAS;AAChB,YAAA,YAAY,EAAE,UAAU;AACxB,YAAA,KAAK,EAAE,+FAA+F;AACvG,SAAA;AACD,QAAA;AACE,YAAA,KAAK,EAAE,QAAQ;AACf,YAAA,YAAY,EAAE,UAAU;AACxB,YAAA,KAAK,EAAE,8DAA8D;AACtE,SAAA;AACD,QAAA;AACE,YAAA,KAAK,EAAE,aAAa;AACpB,YAAA,YAAY,EAAE,UAAU;AACxB,YAAA,KAAK,EAAE,8DAA8D;AACtE,SAAA;AACD,QAAA;AACE,YAAA,KAAK,EAAE,cAAc;AACrB,YAAA,YAAY,EAAE,UAAU;AACxB,YAAA,KAAK,EAAE,8DAA8D;AACtE,SAAA;AACD,QAAA;AACE,YAAA,KAAK,EAAE,WAAW;AAClB,YAAA,YAAY,EAAE,UAAU;AACxB,YAAA,KAAK,EAAE,8DAA8D;AACtE,SAAA;AAED,QAAA;AACE,YAAA,KAAK,EAAE,YAAY;AACnB,YAAA,YAAY,EAAE,UAAU;AACxB,YAAA,KAAK,EAAE,gEAAgE;AACxE,SAAA;AACD,QAAA;AACE,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,YAAY,EAAE,UAAU;AACxB,YAAA,KAAK,EAAE,gEAAgE;AACxE,SAAA;AACD,QAAA;AACE,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,YAAY,EAAE,UAAU;AACxB,YAAA,KAAK,EAAE,gEAAgE;AACxE,SAAA;AACD,QAAA;AACE,YAAA,KAAK,EAAE,YAAY;AACnB,YAAA,YAAY,EAAE,UAAU;AACxB,YAAA,KAAK,EAAE,gEAAgE;AACxE,SAAA;AACD,QAAA;AACE,YAAA,KAAK,EAAE,mBAAmB;AAC1B,YAAA,YAAY,EAAE,UAAU;AACxB,YAAA,KAAK,EAAE,gEAAgE;AACxE,SAAA;AACD,QAAA;AACE,YAAA,KAAK,EAAE,gBAAgB;AACvB,YAAA,YAAY,EAAE,UAAU;AACxB,YAAA,KAAK,EACH,uJAAuJ;AAC1J,SAAA;AACD,QAAA;AACE,YAAA,KAAK,EAAE,WAAW;AAClB,YAAA,KAAK,EAAE,IAAI;AACX,YAAA,YAAY,EAAE,YAAY;AAC1B,YAAA,KAAK,EAAE,6DAA6D;AACrE,SAAA;AACD,QAAA;AACE,YAAA,KAAK,EAAE,WAAW;AAClB,YAAA,KAAK,EAAE,IAAI;AACX,YAAA,YAAY,EAAE,YAAY;AAC1B,YAAA,KAAK,EAAE,+BAA+B;AACvC,SAAA;AACD,QAAA;AACE,YAAA,KAAK,EAAE,WAAW;AAClB,YAAA,KAAK,EAAE,SAAS;AAChB,YAAA,YAAY,EAAE,YAAY;AAC1B,YAAA,KAAK,EAAE,6BAA6B;AACrC,SAAA;AACD,QAAA;AACE,YAAA,KAAK,EAAE,WAAW;AAClB,YAAA,KAAK,EAAE,IAAI;AACX,YAAA,YAAY,EAAE,YAAY;AAC1B,YAAA,KAAK,EAAE,6BAA6B;AACrC,SAAA;AACD,QAAA;AACE,YAAA,KAAK,EAAE,WAAW;AAClB,YAAA,YAAY,EAAE,UAAU;AACxB,YAAA,KAAK,EAAE,2FAA2F;AACnG,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,YAAY,EAAE,YAAY;AAC3B,KAAA;AACF,CAAA;;ACnKH,IAAI,eAAe,GAAG,CAAC;AACvB,MAAM,uBAAuB,GAAG,CAAC;MAsBpB,cAAc,CAAA;AACT,IAAA,SAAS,GAAG,eAAe,CAAC,kBAAkB,qDAAC;AAC/C,IAAA,iBAAiB,GAAG,SAAS,CAA6B,mBAAmB,6DAAC;AAC9E,IAAA,UAAU,GAAG,YAAY,CAAgC,WAAW,sDAAC;AAErE,IAAA,KAAK,GAAG,KAAK,CAAa,EAAE,iDAAC;AAC7B,IAAA,KAAK,GAAG,KAAK,CAAC,QAAQ,gDAAU;AAChC,IAAA,KAAK,GAAG,KAAK,CAAY,MAAM,iDAAC;AAChC,IAAA,KAAK,GAAG,KAAK,CAAY,SAAS,iDAAC;AACnC,IAAA,YAAY,GAAG,KAAK,CAAmB,YAAY,wDAAC;AACpD,IAAA,KAAK,GAAG,KAAK,CAAC,KAAK,iDAAC;AACpB,IAAA,gBAAgB,GAAG,KAAK,CAAC,KAAK,4DAAC;AAC/B,IAAA,SAAS,GAAG,KAAK,CAAC,KAAK,qDAAC;AACxB,IAAA,mBAAmB,GAAG,KAAK,CAAC,IAAI,+DAAC;AACjC,IAAA,WAAW,GAAG,KAAK,CAAC,IAAI,uDAAC;AACzB,IAAA,kBAAkB,GAAG,KAAK,CAAC,IAAI,8DAAC;AAChC,IAAA,MAAM,GAAG,KAAK,CAAC,IAAI,kDAAC;AACpB,IAAA,SAAS,GAAG,KAAK,CAAC,EAAE,qDAAC;AAErB,IAAA,SAAS,GAAG,KAAK,CAAS,EAAE,qDAAC;IAC7B,UAAU,GAAG,MAAM,EAAU;AAE1B,IAAA,UAAU,GAAG,MAAM,CAAc,IAAI,GAAG,EAAE,sDAAC;AAC3C,IAAA,aAAa,GAAG,MAAM,CAAC,KAAK,yDAAC;AAC7B,IAAA,cAAc,GAAG,MAAM,CAAC,KAAK,0DAAC;AAE9B,IAAA,iBAAiB,GAAG,QAAQ,CAC7C,MACE,IAAI,GAAG,CACL,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,KAAK,IAAG;AAC3B,QAAA,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,EAAE;AAElC,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE,EAAE;YAC3B,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,QAAQ,CAAU;QAC3D;AAEA,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE;AACjB,YAAA,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAU;QAClC;QAEA,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,KAAK,QAAQ,CAAU;IAC9F,CAAC,CAAC,CACH,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CACJ;AAEO,IAAA,eAAe;IACN,gBAAgB,GAAG,EAAE,eAAe;AAErD,IAAA,WAAA,GAAA;QACE,MAAM,CAAC,MAAK;YACV,IAAI,CAAC,KAAK,EAAE;YACZ,qBAAqB,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;AACjD,QAAA,CAAC,CAAC;IACJ;IAEA,QAAQ,GAAA;QACN,IAAI,CAAC,0BAA0B,EAAE;IACnC;IAEA,eAAe,GAAA;QACb,IAAI,CAAC,WAAW,EAAE;QAClB,IAAI,CAAC,oBAAoB,EAAE;IAC7B;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,eAAe,EAAE,UAAU,EAAE;IACpC;IAEmB,WAAW,GAAG,QAAQ,CAAC,MACxC,aAAa,CACX,aAAa,CAAC;AACZ,QAAA,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;AACnB,QAAA,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE;AAClC,KAAA,CAAC,EACF,IAAI,CAAC,KAAK,EAAE,CACb,uDACF;AAEkB,IAAA,oBAAoB,GAAG,QAAQ,CAAC,MAAK;AACtD,QAAA,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE;AAC/B,YAAA,OAAO,KAAK;QACd;AAEA,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE,KAAK,UAAU,EAAE;AACtC,YAAA,OAAO,KAAK;QACd;AAEA,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE;QACzB,QACE,IAAI,KAAK,QAAQ;AACjB,YAAA,IAAI,KAAK,aAAa;AACtB,YAAA,IAAI,KAAK,cAAc;AACvB,YAAA,IAAI,KAAK,OAAO;AAChB,YAAA,IAAI,KAAK,YAAY;AACrB,YAAA,IAAI,KAAK,mBAAmB;YAC5B,IAAI,KAAK,WAAW;AAExB,IAAA,CAAC,gEAAC;AAEiB,IAAA,wBAAwB,GAAG,QAAQ,CAAC,MAAK;AAC1D,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE,KAAK,YAAY,EAAE;AACxC,YAAA,OAAO,KAAK;QACd;AAEA,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE;QACzB,QACE,IAAI,KAAK,QAAQ;AACjB,YAAA,IAAI,KAAK,aAAa;AACtB,YAAA,IAAI,KAAK,cAAc;AACvB,YAAA,IAAI,KAAK,SAAS;AAClB,YAAA,IAAI,KAAK,OAAO;AAChB,YAAA,IAAI,KAAK,YAAY;AACrB,YAAA,IAAI,KAAK,mBAAmB;YAC5B,IAAI,KAAK,WAAW;AAExB,IAAA,CAAC,oEAAC;IAEiB,sBAAsB,GAAG,QAAQ,CAClD,MAAM,IAAI,CAAC,YAAY,EAAE,KAAK,UAAU,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,GAAG,CAAC,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,wBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CACpE;AAES,IAAA,iBAAiB,CAAC,IAAU,EAAA;QACpC,OAAO,aAAa,CAClB,gBAAgB,CAAC;AACf,YAAA,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;AACnB,YAAA,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;AACnB,YAAA,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE;AAClC,SAAA,CAAC,CACH;IACH;AAEU,IAAA,SAAS,CAAC,GAAS,EAAE,YAAY,GAAG,KAAK,EAAA;AACjD,QAAA,IAAI,GAAG,CAAC,QAAQ,EAAE;YAChB;QACF;QAEA,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK,GAAG,CAAC,KAAK;QACtD,IAAI,eAAe,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE;YAC1C;QACF;QAEA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC;AAC7B,QAAA,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAC;QAErC,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,kBAAkB,EAAE,EAAE;YACjD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;QACjC;AAEA,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE;AAChB,YAAA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,IAAG;AAC5B,gBAAA,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC;AAC7B,gBAAA,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC;AACtB,gBAAA,OAAO,OAAO;AAChB,YAAA,CAAC,CAAC;QACJ;QAEA,IAAI,YAAY,IAAI,IAAI,CAAC,YAAY,EAAE,KAAK,YAAY,EAAE;YACxD,qBAAqB,CAAC,MAAK;gBACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,CAAC;AACnE,gBAAA,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,EAAE;AACxC,gBAAA,MAAM,SAAS,GAAG,cAAc,CAAC,QAAQ,CAAC;gBAC1C,IAAI,SAAS,EAAE;AACb,oBAAA,SAAS,CAAC,aAAa,CAAC,cAAc,CAAC;AACrC,wBAAA,QAAQ,EAAE,QAAQ;AAClB,wBAAA,KAAK,EAAE,SAAS;AAChB,wBAAA,MAAM,EAAE,QAAQ;AACjB,qBAAA,CAAC;gBACJ;AACF,YAAA,CAAC,CAAC;QACJ;IACF;AAEU,IAAA,WAAW,CAAC,GAAS,EAAA;QAC7B,OAAO,IAAI,CAAC,SAAS,EAAE,KAAK,GAAG,CAAC,KAAK;IACvC;IAEU,YAAY,CAAC,KAAoB,EAAE,YAAoB,EAAA;AAC/D,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;AAClD,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC;QAErC,IAAI,CAAC,UAAU,EAAE;YACf;QACF;QAEA,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,KAAK,YAAY;QACzD,MAAM,OAAO,GAAG,YAAY,GAAG,YAAY,GAAG,WAAW;QACzD,MAAM,OAAO,GAAG,YAAY,GAAG,WAAW,GAAG,SAAS;AAEtD,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,EAAE;YACzB,KAAK,CAAC,cAAc,EAAE;YACtB,MAAM,SAAS,GAAG,CAAC,YAAY,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM;YAClD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC/B;QACF;AAEA,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,EAAE;YACzB,KAAK,CAAC,cAAc,EAAE;AACtB,YAAA,MAAM,SAAS,GAAG,CAAC,YAAY,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM;YAChE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC/B;QACF;AAEA,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,MAAM,EAAE;YACxB,KAAK,CAAC,cAAc,EAAE;YACtB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACvB;QACF;AAEA,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,KAAK,EAAE;YACvB,KAAK,CAAC,cAAc,EAAE;AACtB,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACvC;IACF;IAEU,WAAW,GAAA;QACnB,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,EAAE,EAAE,aAAa;QACzD,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,YAAY,EAAE,KAAK,YAAY,EAAE;AACtD,YAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC;AAC7B,YAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC;YAC9B;QACF;QAEA,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,SAAS;AAC1D,QAAA,MAAM,aAAa,GAAG,WAAW,GAAG,WAAW;AAE/C,QAAA,IAAI,aAAa,IAAI,uBAAuB,EAAE;AAC5C,YAAA,SAAS,CAAC,UAAU,GAAG,CAAC;AACxB,YAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC;AAC7B,YAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC;YAC9B;QACF;QAEA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,GAAG,uBAAuB,CAAC;QAC5D,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,aAAa,GAAG,UAAU,GAAG,uBAAuB,CAAC;IAC/E;IAEU,UAAU,GAAA;QAClB,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,EAAE,EAAE,aAAa;QACzD,IAAI,CAAC,SAAS,EAAE;YACd;QACF;AAEA,QAAA,SAAS,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;QACtD,UAAU,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,EAAE,GAAG,CAAC;IAC3C;IAEU,WAAW,GAAA;QACnB,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,EAAE,EAAE,aAAa;QACzD,IAAI,CAAC,SAAS,EAAE;YACd;QACF;AAEA,QAAA,SAAS,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;QACrD,UAAU,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,EAAE,GAAG,CAAC;IAC3C;IAEU,YAAY,GAAA;QACpB,IAAI,CAAC,WAAW,EAAE;IACpB;IAEQ,oBAAoB,GAAA;QAC1B,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,EAAE,EAAE,aAAa;QACzD,IAAI,CAAC,SAAS,EAAE;YACd;QACF;AAEA,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,cAAc,CAAC,MAAK;YAC7C,IAAI,CAAC,WAAW,EAAE;AACpB,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,SAAS,CAAC;IACzC;IAEQ,0BAA0B,GAAA;AAChC,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE;YAClB;QACF;AAEA,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE;QACpC,MAAM,SAAS,GAAG,aAAa,CAAC,GAAG,CAAS,QAAQ,CAAC;QACrD,IAAI,CAAC,SAAS,EAAE;YACd;QACF;QAEA,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;QACjF,IAAI,CAAC,GAAG,EAAE;YACR;QACF;QAEA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC;AAE7B,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE;AAChB,YAAA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,IAAG;AAC5B,gBAAA,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC;AAC7B,gBAAA,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC;AACtB,gBAAA,OAAO,OAAO;AAChB,YAAA,CAAC,CAAC;QACJ;IACF;AAEQ,IAAA,qBAAqB,CAAC,KAAa,EAAA;AACzC,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE;YAClB;QACF;QAEA,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,KAAK,CAAC;IAC/C;IAEQ,YAAY,GAAA;QAClB,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE;QACzC,IAAI,SAAS,EAAE;AACb,YAAA,OAAO,SAAS;QAClB;AAEA,QAAA,MAAM,IAAI,GAAG,OAAO,MAAM,KAAK,WAAW,GAAG,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ;AAC7E,QAAA,OAAO,UAAU,IAAI,CAAA,CAAA,EAAI,IAAI,CAAC,gBAAgB,EAAE;IAClD;IAEU,0BAA0B,GAAA;QAClC,UAAU,CAAC,MAAK;YACd,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,SAAS,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC;AACjF,YAAA,IAAI,WAAW,KAAK,CAAC,CAAC,EAAE;gBACtB;YACF;YAEA,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,uBAAuB,CAAgB;YACnF,IAAI,CAAC,YAAY,EAAE;gBACjB;YACF;AAEA,YAAA,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;AACzE,YAAA,MAAM,UAAU,GAAG,aAAa,CAAC,WAAW,CAAC;AAE7C,YAAA,IAAI,UAAU,IAAI,YAAY,EAAE;AAC9B,gBAAA,MAAM,QAAQ,GAAG,YAAY,CAAC,qBAAqB,EAAE;AACrD,gBAAA,MAAM,QAAQ,GAAG,UAAU,CAAC,qBAAqB,EAAE;AACnD,gBAAA,MAAM,SAAS,GAAG,UAAU,CAAC,SAAS,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC;gBAElF,YAAY,CAAC,QAAQ,CAAC;AACpB,oBAAA,GAAG,EAAE,SAAS;AACd,oBAAA,QAAQ,EAAE,QAAQ;AACnB,iBAAA,CAAC;YACJ;QACF,CAAC,EAAE,GAAG,CAAC;IACT;uGAxVW,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAd,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,cAAc,8iEACmB,kBAAkB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,YAAA,EAAA,SAAA,EAAA,CAAA,WAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECxDhE,irPA6MA,EAAA,MAAA,EAAA,CAAA,+vLAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDvKI,cAAc,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,eAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,OAAA,EAAA,cAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACd,gBAAgB,EAAA,QAAA,EAAA,yCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,UAAA,EAAA,WAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAChB,iBAAiB,ueACjB,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAChB,iBAAiB,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,YAAA,EAAA,WAAA,EAAA,SAAA,EAAA,eAAA,EAAA,aAAA,EAAA,cAAA,EAAA,oBAAA,EAAA,cAAA,EAAA,SAAA,EAAA,YAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,YAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAEjB,WAAW,sHADX,aAAa,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAYJ,cAAc,EAAA,UAAA,EAAA,CAAA;kBApB1B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,QAAQ,EAAA,OAAA,EACT;wBACP,cAAc;wBACd,gBAAgB;wBAChB,iBAAiB;wBACjB,gBAAgB;wBAChB,iBAAiB;wBACjB,aAAa;wBACb,WAAW;qBACZ,EAAA,UAAA,EACW,IAAI,mBAGC,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAAA,IAAA,EAC/B;AACJ,wBAAA,KAAK,EAAE,sBAAsB;AAC9B,qBAAA,EAAA,QAAA,EAAA,irPAAA,EAAA,MAAA,EAAA,CAAA,+vLAAA,CAAA,EAAA;2HAG2C,kBAAkB,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,CACY,mBAAmB,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,IAAA,EAAA,CACpB,WAAW,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,cAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,aAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,kBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,QAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,YAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;AE1DtF;;AAEG;;;;"}