@ngbracket/ngx-layout
Version:
ngbracket/ngx-layout =======
1 lines • 36 kB
Source Map (JSON)
{"version":3,"file":"ngbracket-ngx-layout-extended.mjs","sources":["../../../../projects/libs/flex-layout/extended/class/class.ts","../../../../projects/libs/flex-layout/extended/img-src/img-src.ts","../../../../projects/libs/flex-layout/extended/show-hide/show-hide.ts","../../../../projects/libs/flex-layout/extended/style/style-transforms.ts","../../../../projects/libs/flex-layout/extended/style/style.ts","../../../../projects/libs/flex-layout/extended/module.ts","../../../../projects/libs/flex-layout/extended/ngbracket-ngx-layout-extended.ts"],"sourcesContent":["import { NgClass } from '@angular/common';\nimport {\n Directive,\n DoCheck,\n ElementRef,\n Input,\n Optional,\n Renderer2,\n Self,\n} from '@angular/core';\nimport {\n BaseDirective2,\n MediaMarshaller,\n StyleUtils,\n} from '@ngbracket/ngx-layout/core';\nconst inputs = [\n 'ngClass',\n 'ngClass.xs',\n 'ngClass.sm',\n 'ngClass.md',\n 'ngClass.lg',\n 'ngClass.xl',\n 'ngClass.lt-sm',\n 'ngClass.lt-md',\n 'ngClass.lt-lg',\n 'ngClass.lt-xl',\n 'ngClass.gt-xs',\n 'ngClass.gt-sm',\n 'ngClass.gt-md',\n 'ngClass.gt-lg',\n];\n\nconst selector = `\n [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl],\n [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl],\n [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]\n`;\n@Directive({ selector, inputs })\nexport class ClassDirective extends BaseDirective2 implements DoCheck {\n protected override DIRECTIVE_KEY = 'ngClass';\n protected override inputs = inputs;\n\n /**\n * Capture class assignments so we cache the default classes\n * which are merged with activated styles and used as fallbacks.\n */\n @Input('class')\n set klass(val: string) {\n this.ngClassInstance.klass = val;\n this.setValue(val, '');\n }\n\n constructor(\n elementRef: ElementRef,\n styler: StyleUtils,\n marshal: MediaMarshaller,\n renderer2: Renderer2,\n @Optional() @Self() protected readonly ngClassInstance: NgClass,\n ) {\n super(elementRef, null!, styler, marshal);\n if (!this.ngClassInstance) {\n // Create an instance NgClass Directive instance only if `ngClass=\"\"` has NOT been defined on\n // the same host element; since the responsive variations may be defined...\n this.ngClassInstance = new NgClass(elementRef, renderer2);\n }\n this.init();\n this.setValue('', '');\n }\n\n protected override updateWithValue(value: any) {\n this.ngClassInstance.ngClass = value;\n this.ngClassInstance.ngDoCheck();\n }\n\n // ******************************************************************\n // Lifecycle Hooks\n // ******************************************************************\n\n /**\n * For ChangeDetectionStrategy.onPush and ngOnChanges() updates\n */\n ngDoCheck() {\n this.ngClassInstance.ngDoCheck();\n }\n}\n","import { isPlatformServer } from '@angular/common';\nimport {\n Directive,\n ElementRef,\n Inject,\n Injectable,\n Input,\n PLATFORM_ID,\n} from '@angular/core';\nimport {\n BaseDirective2,\n MediaMarshaller,\n SERVER_TOKEN,\n StyleBuilder,\n StyleDefinition,\n StyleUtils,\n} from '@ngbracket/ngx-layout/core';\n\n@Injectable({ providedIn: 'root' })\nexport class ImgSrcStyleBuilder extends StyleBuilder {\n buildStyles(url: string) {\n return { content: url ? `url(${url})` : '' };\n }\n}\n\nconst inputs = [\n 'src.xs',\n 'src.sm',\n 'src.md',\n 'src.lg',\n 'src.xl',\n 'src.lt-sm',\n 'src.lt-md',\n 'src.lt-lg',\n 'src.lt-xl',\n 'src.gt-xs',\n 'src.gt-sm',\n 'src.gt-md',\n 'src.gt-lg',\n];\n\nconst selector = `\n img[src.xs], img[src.sm], img[src.md], img[src.lg], img[src.xl],\n img[src.lt-sm], img[src.lt-md], img[src.lt-lg], img[src.lt-xl],\n img[src.gt-xs], img[src.gt-sm], img[src.gt-md], img[src.gt-lg]\n`;\n\n@Directive({ selector, inputs })\nexport class ImgSrcDirective extends BaseDirective2 {\n protected override DIRECTIVE_KEY = 'img-src';\n protected override inputs = inputs;\n protected defaultSrc = '';\n\n @Input('src')\n set src(val: string) {\n this.defaultSrc = val;\n this.setValue(this.defaultSrc, '');\n }\n\n constructor(\n elementRef: ElementRef,\n styleBuilder: ImgSrcStyleBuilder,\n styler: StyleUtils,\n marshal: MediaMarshaller,\n @Inject(PLATFORM_ID) protected platformId: Object,\n @Inject(SERVER_TOKEN) protected serverModuleLoaded: boolean,\n ) {\n super(elementRef, styleBuilder, styler, marshal);\n this.init();\n this.setValue(this.nativeElement.getAttribute('src') || '', '');\n if (isPlatformServer(this.platformId) && this.serverModuleLoaded) {\n this.nativeElement.setAttribute('src', '');\n }\n }\n\n /**\n * Use the [responsively] activated input value to update\n * the host img src attribute or assign a default `img.src=''`\n * if the src has not been defined.\n *\n * Do nothing to standard `<img src=\"\">` usages, only when responsive\n * keys are present do we actually call `setAttribute()`\n */\n protected override updateWithValue(value?: string) {\n const url = value || this.defaultSrc;\n if (isPlatformServer(this.platformId) && this.serverModuleLoaded) {\n this.addStyles(url);\n } else {\n this.nativeElement.setAttribute('src', url);\n }\n }\n\n protected override styleCache = imgSrcCache;\n}\n\nconst imgSrcCache: Map<string, StyleDefinition> = new Map();\n","/* eslint-disable @typescript-eslint/no-non-null-assertion */\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { isPlatformServer } from '@angular/common';\nimport {\n AfterViewInit,\n Directive,\n ElementRef,\n Inject,\n Injectable,\n OnChanges,\n PLATFORM_ID,\n SimpleChanges,\n} from '@angular/core';\nimport {\n BaseDirective2,\n LAYOUT_CONFIG,\n LayoutConfigOptions,\n MediaMarshaller,\n SERVER_TOKEN,\n StyleBuilder,\n StyleUtils,\n} from '@ngbracket/ngx-layout/core';\nimport { takeUntil } from 'rxjs/operators';\n\nexport interface ShowHideParent {\n display: string;\n isServer: boolean;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ShowHideStyleBuilder extends StyleBuilder {\n buildStyles(show: string, parent: ShowHideParent) {\n const shouldShow = show === 'true';\n return {\n display: shouldShow\n ? parent.display || (parent.isServer ? 'initial' : '')\n : 'none',\n };\n }\n}\n\nconst inputs = [\n 'fxShow',\n 'fxShow.print',\n 'fxShow.xs',\n 'fxShow.sm',\n 'fxShow.md',\n 'fxShow.lg',\n 'fxShow.xl',\n 'fxShow.lt-sm',\n 'fxShow.lt-md',\n 'fxShow.lt-lg',\n 'fxShow.lt-xl',\n 'fxShow.gt-xs',\n 'fxShow.gt-sm',\n 'fxShow.gt-md',\n 'fxShow.gt-lg',\n 'fxHide',\n 'fxHide.print',\n 'fxHide.xs',\n 'fxHide.sm',\n 'fxHide.md',\n 'fxHide.lg',\n 'fxHide.xl',\n 'fxHide.lt-sm',\n 'fxHide.lt-md',\n 'fxHide.lt-lg',\n 'fxHide.lt-xl',\n 'fxHide.gt-xs',\n 'fxHide.gt-sm',\n 'fxHide.gt-md',\n 'fxHide.gt-lg',\n];\n\nconst selector = `\n [fxShow], [fxShow.print],\n [fxShow.xs], [fxShow.sm], [fxShow.md], [fxShow.lg], [fxShow.xl],\n [fxShow.lt-sm], [fxShow.lt-md], [fxShow.lt-lg], [fxShow.lt-xl],\n [fxShow.gt-xs], [fxShow.gt-sm], [fxShow.gt-md], [fxShow.gt-lg],\n [fxHide], [fxHide.print],\n [fxHide.xs], [fxHide.sm], [fxHide.md], [fxHide.lg], [fxHide.xl],\n [fxHide.lt-sm], [fxHide.lt-md], [fxHide.lt-lg], [fxHide.lt-xl],\n [fxHide.gt-xs], [fxHide.gt-sm], [fxHide.gt-md], [fxHide.gt-lg]\n`;\n@Directive({ selector, inputs })\nexport class ShowHideDirective\n extends BaseDirective2\n implements AfterViewInit, OnChanges\n{\n protected override DIRECTIVE_KEY = 'show-hide';\n protected override inputs = inputs;\n\n /** Original DOM Element CSS display style */\n protected display = '';\n protected hasLayout = false;\n protected hasFlexChild = false;\n\n constructor(\n elementRef: ElementRef,\n styleBuilder: ShowHideStyleBuilder,\n styler: StyleUtils,\n marshal: MediaMarshaller,\n @Inject(LAYOUT_CONFIG) protected layoutConfig: LayoutConfigOptions,\n @Inject(PLATFORM_ID) protected platformId: object,\n @Inject(SERVER_TOKEN) protected serverModuleLoaded: boolean,\n ) {\n super(elementRef, styleBuilder, styler, marshal);\n }\n\n // *********************************************\n // Lifecycle Methods\n // *********************************************\n\n ngAfterViewInit() {\n this.trackExtraTriggers();\n\n const children = Array.from(this.nativeElement.children);\n for (let i = 0; i < children.length; i++) {\n if (this.marshal.hasValue(children[i] as HTMLElement, 'flex')) {\n this.hasFlexChild = true;\n break;\n }\n }\n\n if (DISPLAY_MAP.has(this.nativeElement)) {\n this.display = DISPLAY_MAP.get(this.nativeElement)!;\n } else {\n this.display = this.getDisplayStyle();\n DISPLAY_MAP.set(this.nativeElement, this.display);\n }\n\n this.init();\n // set the default to show unless explicitly overridden\n const defaultValue = this.marshal.getValue(\n this.nativeElement,\n this.DIRECTIVE_KEY,\n '',\n );\n if (defaultValue === undefined || defaultValue === '') {\n this.setValue(true, '');\n } else {\n this.triggerUpdate();\n }\n }\n\n /**\n * On changes to any @Input properties...\n * Default to use the non-responsive Input value ('fxShow')\n * Then conditionally override with the mq-activated Input's current value\n */\n override ngOnChanges(changes: SimpleChanges) {\n Object.keys(changes).forEach((key) => {\n if (this.inputs.indexOf(key) !== -1) {\n const inputKey = key.split('.');\n const bp = inputKey.slice(1).join('.');\n const inputValue = changes[key].currentValue;\n let shouldShow =\n inputValue !== ''\n ? inputValue !== 0\n ? coerceBooleanProperty(inputValue)\n : false\n : true;\n if (inputKey[0] === 'fxHide') {\n shouldShow = !shouldShow;\n }\n this.setValue(shouldShow, bp);\n }\n });\n }\n\n // *********************************************\n // Protected methods\n // *********************************************\n\n /**\n * Watch for these extra triggers to update fxShow, fxHide stylings\n */\n protected trackExtraTriggers() {\n this.hasLayout = this.marshal.hasValue(this.nativeElement, 'layout');\n\n ['layout', 'layout-align'].forEach((key) => {\n this.marshal\n .trackValue(this.nativeElement, key)\n .pipe(takeUntil(this.destroySubject))\n .subscribe(this.triggerUpdate.bind(this));\n });\n }\n\n /**\n * Override accessor to the current HTMLElement's `display` style\n * Note: Show/Hide will not change the display to 'flex' but will set it to 'block'\n * unless it was already explicitly specified inline or in a CSS stylesheet.\n */\n protected getDisplayStyle(): string {\n return this.hasLayout ||\n (this.hasFlexChild && this.layoutConfig.addFlexToParent)\n ? 'flex'\n : this.styler.lookupStyle(this.nativeElement, 'display', true);\n }\n\n /** Validate the visibility value and then update the host's inline display style */\n protected override updateWithValue(value: boolean | string = true) {\n if (value === '') {\n return;\n }\n const isServer = isPlatformServer(this.platformId);\n this.addStyles(value ? 'true' : 'false', {\n display: this.display,\n isServer,\n });\n if (isServer && this.serverModuleLoaded) {\n this.nativeElement.style.setProperty('display', '');\n }\n this.marshal.triggerUpdate(this.parentElement!, 'layout-gap');\n }\n}\n\nconst DISPLAY_MAP: WeakMap<HTMLElement, string> = new WeakMap();\n","export type NgStyleRawList = string[];\nexport type NgStyleMap = { [klass: string]: string };\n// NgStyle selectors accept NgStyleType values\nexport type NgStyleType = string | Set<string> | NgStyleRawList | NgStyleMap;\n\n/**\n * Callback function for SecurityContext.STYLE sanitization\n */\nexport type NgStyleSanitizer = (val: any) => string;\n\n/** NgStyle allowed inputs */\nexport class NgStyleKeyValue {\n constructor(\n public key: string,\n public value: string,\n noQuotes = true,\n ) {\n this.key = noQuotes ? key.replace(/['\"]/g, '').trim() : key.trim();\n\n this.value = noQuotes ? value.replace(/['\"]/g, '').trim() : value.trim();\n this.value = this.value.replace(/;/, '');\n }\n}\n\nexport function getType(target: any): string {\n const what = typeof target;\n if (what === 'object') {\n return target.constructor === Array\n ? 'array'\n : target.constructor === Set\n ? 'set'\n : 'object';\n }\n return what;\n}\n\n/**\n * Split string of key:value pairs into Array of k-v pairs\n * e.g. 'key:value; key:value; key:value;' -> ['key:value',...]\n */\nexport function buildRawList(source: any, delimiter = ';'): NgStyleRawList {\n return String(source)\n .trim()\n .split(delimiter)\n .map((val: string) => val.trim())\n .filter((val) => val !== '');\n}\n\n/** Convert array of key:value strings to a iterable map object */\nexport function buildMapFromList(\n styles: NgStyleRawList,\n sanitize?: NgStyleSanitizer,\n): NgStyleMap {\n const sanitizeValue = (it: NgStyleKeyValue) => {\n if (sanitize) {\n it.value = sanitize(it.value);\n }\n return it;\n };\n\n return styles\n .map(stringToKeyValue)\n .filter((entry) => !!entry)\n .map(sanitizeValue)\n .reduce(keyValuesToMap, {} as NgStyleMap);\n}\n\n/** Convert Set<string> or raw Object to an iterable NgStyleMap */\nexport function buildMapFromSet(\n source: NgStyleType,\n sanitize?: NgStyleSanitizer,\n): NgStyleMap {\n const list: string[] = [];\n if (getType(source) === 'set') {\n (source as Set<string>).forEach((entry) => list.push(entry));\n } else {\n Object.keys(source).forEach((key: string) => {\n list.push(`${key}:${(source as NgStyleMap)[key]}`);\n });\n }\n return buildMapFromList(list, sanitize);\n}\n\n/** Convert 'key:value' -> [key, value] */\nexport function stringToKeyValue(it: string): NgStyleKeyValue {\n const [key, ...vals] = it.split(':');\n return new NgStyleKeyValue(key, vals.join(':'));\n}\n\n/** Convert [ [key,value] ] -> { key : value } */\nexport function keyValuesToMap(\n map: NgStyleMap,\n entry: NgStyleKeyValue,\n): NgStyleMap {\n if (entry.key) {\n map[entry.key] = entry.value;\n }\n return map;\n}\n","import { isPlatformServer, NgStyle } from '@angular/common';\nimport {\n Directive,\n DoCheck,\n ElementRef,\n Inject,\n KeyValueDiffers,\n Optional,\n PLATFORM_ID,\n Renderer2,\n SecurityContext,\n Self,\n} from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport {\n BaseDirective2,\n MediaMarshaller,\n SERVER_TOKEN,\n StyleUtils,\n} from '@ngbracket/ngx-layout/core';\nimport {\n buildMapFromSet,\n buildRawList,\n getType,\n keyValuesToMap,\n NgStyleKeyValue,\n NgStyleMap,\n NgStyleRawList,\n NgStyleSanitizer,\n NgStyleType,\n stringToKeyValue,\n} from './style-transforms';\n\nconst inputs = [\n 'ngStyle',\n 'ngStyle.xs',\n 'ngStyle.sm',\n 'ngStyle.md',\n 'ngStyle.lg',\n 'ngStyle.xl',\n 'ngStyle.lt-sm',\n 'ngStyle.lt-md',\n 'ngStyle.lt-lg',\n 'ngStyle.lt-xl',\n 'ngStyle.gt-xs',\n 'ngStyle.gt-sm',\n 'ngStyle.gt-md',\n 'ngStyle.gt-lg',\n];\n\nconst selector = `\n [ngStyle],\n [ngStyle.xs], [ngStyle.sm], [ngStyle.md], [ngStyle.lg], [ngStyle.xl],\n [ngStyle.lt-sm], [ngStyle.lt-md], [ngStyle.lt-lg], [ngStyle.lt-xl],\n [ngStyle.gt-xs], [ngStyle.gt-sm], [ngStyle.gt-md], [ngStyle.gt-lg]\n`;\n\n@Directive({ selector, inputs })\nexport class StyleDirective extends BaseDirective2 implements DoCheck {\n protected override DIRECTIVE_KEY = 'ngStyle';\n protected override inputs = inputs;\n protected fallbackStyles: NgStyleMap;\n protected isServer: boolean;\n\n constructor(\n elementRef: ElementRef,\n styler: StyleUtils,\n marshal: MediaMarshaller,\n protected sanitizer: DomSanitizer,\n differs: KeyValueDiffers,\n renderer2: Renderer2,\n @Optional() @Self() private readonly ngStyleInstance: NgStyle,\n @Inject(SERVER_TOKEN) serverLoaded: boolean,\n @Inject(PLATFORM_ID) platformId: Object,\n ) {\n super(elementRef, null!, styler, marshal);\n if (!this.ngStyleInstance) {\n // Create an instance NgStyle Directive instance only if `ngStyle=\"\"` has NOT been\n // defined on the same host element; since the responsive variations may be defined...\n this.ngStyleInstance = new NgStyle(elementRef, differs, renderer2);\n }\n this.init();\n const styles = this.nativeElement.getAttribute('style') ?? '';\n this.fallbackStyles = this.buildStyleMap(styles);\n this.isServer = serverLoaded && isPlatformServer(platformId);\n }\n\n /** Add generated styles */\n protected override updateWithValue(value: any) {\n const styles = this.buildStyleMap(value);\n this.ngStyleInstance.ngStyle = { ...this.fallbackStyles, ...styles };\n if (this.isServer) {\n this.applyStyleToElement(styles);\n }\n this.ngStyleInstance.ngDoCheck();\n }\n\n /** Remove generated styles */\n protected override clearStyles() {\n this.ngStyleInstance.ngStyle = this.fallbackStyles;\n this.ngStyleInstance.ngDoCheck();\n }\n\n /**\n * Convert raw strings to ngStyleMap; which is required by ngStyle\n * NOTE: Raw string key-value pairs MUST be delimited by `;`\n * Comma-delimiters are not supported due to complexities of\n * possible style values such as `rgba(x,x,x,x)` and others\n */\n protected buildStyleMap(styles: NgStyleType): NgStyleMap {\n // Always safe-guard (aka sanitize) style property values\n const sanitizer: NgStyleSanitizer = (val: any) =>\n this.sanitizer.sanitize(SecurityContext.STYLE, val) ?? '';\n if (styles) {\n switch (getType(styles)) {\n case 'string':\n return buildMapFromList(buildRawList(styles), sanitizer);\n case 'array':\n return buildMapFromList(styles as NgStyleRawList, sanitizer);\n case 'set':\n return buildMapFromSet(styles, sanitizer);\n default:\n return buildMapFromSet(styles, sanitizer);\n }\n }\n\n return {};\n }\n\n // ******************************************************************\n // Lifecycle Hooks\n // ******************************************************************\n\n /** For ChangeDetectionStrategy.onPush and ngOnChanges() updates */\n ngDoCheck() {\n this.ngStyleInstance.ngDoCheck();\n }\n}\n\n/** Build a styles map from a list of styles, while sanitizing bad values first */\nfunction buildMapFromList(\n styles: NgStyleRawList,\n sanitize?: NgStyleSanitizer,\n): NgStyleMap {\n const sanitizeValue = (it: NgStyleKeyValue) => {\n if (sanitize) {\n it.value = sanitize(it.value);\n }\n return it;\n };\n\n return styles\n .map(stringToKeyValue)\n .filter((entry) => !!entry)\n .map(sanitizeValue)\n .reduce(keyValuesToMap, {} as NgStyleMap);\n}\n","import { NgModule } from '@angular/core';\nimport { CoreModule } from '@ngbracket/ngx-layout/core';\n\nimport { ClassDirective } from './class/class';\nimport { ImgSrcDirective } from './img-src/img-src';\nimport { ShowHideDirective } from './show-hide/show-hide';\nimport { StyleDirective } from './style/style';\n\nconst ALL_DIRECTIVES = [\n ShowHideDirective,\n ClassDirective,\n StyleDirective,\n ImgSrcDirective,\n];\n\n/**\n * *****************************************************************\n * Define module for the Extended API\n * *****************************************************************\n */\n\n@NgModule({\n imports: [CoreModule, ...ALL_DIRECTIVES],\n exports: [...ALL_DIRECTIVES],\n})\nexport class ExtendedModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["inputs","selector","buildMapFromList","i2","i3"],"mappings":";;;;;;;;;;AAeA,MAAMA,QAAM,GAAG;IACb,SAAS;IACT,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,eAAe;IACf,eAAe;IACf,eAAe;IACf,eAAe;IACf,eAAe;IACf,eAAe;IACf,eAAe;IACf,eAAe;CAChB;AAED,MAAMC,UAAQ,GAAG;;;;CAIhB;AAEK,MAAO,cAAe,SAAQ,cAAc,CAAA;AAIhD;;;AAGG;IACH,IACI,KAAK,CAAC,GAAW,EAAA;AACnB,QAAA,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,GAAG;AAChC,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC;IACxB;IAEA,WAAA,CACE,UAAsB,EACtB,MAAkB,EAClB,OAAwB,EACxB,SAAoB,EACmB,eAAwB,EAAA;QAE/D,KAAK,CAAC,UAAU,EAAE,IAAK,EAAE,MAAM,EAAE,OAAO,CAAC;QAFF,IAAA,CAAA,eAAe,GAAf,eAAe;QAlBrC,IAAA,CAAA,aAAa,GAAG,SAAS;QACzB,IAAA,CAAA,MAAM,GAAGD,QAAM;AAoBhC,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;;;YAGzB,IAAI,CAAC,eAAe,GAAG,IAAI,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC;QAC3D;QACA,IAAI,CAAC,IAAI,EAAE;AACX,QAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC;IACvB;AAEmB,IAAA,eAAe,CAAC,KAAU,EAAA;AAC3C,QAAA,IAAI,CAAC,eAAe,CAAC,OAAO,GAAG,KAAK;AACpC,QAAA,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE;IAClC;;;;AAMA;;AAEG;IACH,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE;IAClC;8GA7CW,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,IAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qOAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,KAAA,EAAA,CAAA,OAAA,EAAA,OAAA,CAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAD1B,SAAS;mBAAC,YAAEC,UAAQ,UAAED,QAAM,EAAE;;0BAoB1B;;0BAAY;;sBAXd,KAAK;uBAAC,OAAO;;;AC3BV,MAAO,kBAAmB,SAAQ,YAAY,CAAA;AAClD,IAAA,WAAW,CAAC,GAAW,EAAA;AACrB,QAAA,OAAO,EAAE,OAAO,EAAE,GAAG,GAAG,CAAA,IAAA,EAAO,GAAG,GAAG,GAAG,EAAE,EAAE;IAC9C;8GAHW,kBAAkB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,cADL,MAAM,EAAA,CAAA,CAAA;;2FACnB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAD9B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;AAOlC,MAAMA,QAAM,GAAG;IACb,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;CACZ;AAED,MAAMC,UAAQ,GAAG;;;;CAIhB;AAGK,MAAO,eAAgB,SAAQ,cAAc,CAAA;IAKjD,IACI,GAAG,CAAC,GAAW,EAAA;AACjB,QAAA,IAAI,CAAC,UAAU,GAAG,GAAG;QACrB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC;IACpC;IAEA,WAAA,CACE,UAAsB,EACtB,YAAgC,EAChC,MAAkB,EAClB,OAAwB,EACO,UAAkB,EACjB,kBAA2B,EAAA;QAE3D,KAAK,CAAC,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC;QAHjB,IAAA,CAAA,UAAU,GAAV,UAAU;QACT,IAAA,CAAA,kBAAkB,GAAlB,kBAAkB;QAhBjC,IAAA,CAAA,aAAa,GAAG,SAAS;QACzB,IAAA,CAAA,MAAM,GAAGD,QAAM;QACxB,IAAA,CAAA,UAAU,GAAG,EAAE;QAyCN,IAAA,CAAA,UAAU,GAAG,WAAW;QAxBzC,IAAI,CAAC,IAAI,EAAE;AACX,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC;QAC/D,IAAI,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,kBAAkB,EAAE;YAChE,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,CAAC;QAC5C;IACF;AAEA;;;;;;;AAOG;AACgB,IAAA,eAAe,CAAC,KAAc,EAAA;AAC/C,QAAA,MAAM,GAAG,GAAG,KAAK,IAAI,IAAI,CAAC,UAAU;QACpC,IAAI,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,kBAAkB,EAAE;AAChE,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;QACrB;aAAO;YACL,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC;QAC7C;IACF;8GA1CW,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAgBhB,WAAW,EAAA,EAAA,EAAA,KAAA,EACX,YAAY,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAjBX,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wNAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,GAAA,EAAA,KAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAD3B,SAAS;mBAAC,YAAEC,UAAQ,UAAED,QAAM,EAAE;;0BAiB1B,MAAM;2BAAC,WAAW;;0BAClB,MAAM;2BAAC,YAAY;;sBAZrB,KAAK;uBAAC,KAAK;;AA0Cd,MAAM,WAAW,GAAiC,IAAI,GAAG,EAAE;;AC/F3D;AA8BM,MAAO,oBAAqB,SAAQ,YAAY,CAAA;IACpD,WAAW,CAAC,IAAY,EAAE,MAAsB,EAAA;AAC9C,QAAA,MAAM,UAAU,GAAG,IAAI,KAAK,MAAM;QAClC,OAAO;AACL,YAAA,OAAO,EAAE;AACP,kBAAE,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,QAAQ,GAAG,SAAS,GAAG,EAAE;AACrD,kBAAE,MAAM;SACX;IACH;8GARW,oBAAoB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,cADP,MAAM,EAAA,CAAA,CAAA;;2FACnB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBADhC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;AAYlC,MAAMA,QAAM,GAAG;IACb,QAAQ;IACR,cAAc;IACd,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,cAAc;IACd,cAAc;IACd,cAAc;IACd,cAAc;IACd,cAAc;IACd,cAAc;IACd,cAAc;IACd,cAAc;IACd,QAAQ;IACR,cAAc;IACd,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,cAAc;IACd,cAAc;IACd,cAAc;IACd,cAAc;IACd,cAAc;IACd,cAAc;IACd,cAAc;IACd,cAAc;CACf;AAED,MAAMC,UAAQ,GAAG;;;;;;;;;CAShB;AAEK,MAAO,iBACX,SAAQ,cAAc,CAAA;AAWtB,IAAA,WAAA,CACE,UAAsB,EACtB,YAAkC,EAClC,MAAkB,EAClB,OAAwB,EACS,YAAiC,EACnC,UAAkB,EACjB,kBAA2B,EAAA;QAE3D,KAAK,CAAC,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC;QAJf,IAAA,CAAA,YAAY,GAAZ,YAAY;QACd,IAAA,CAAA,UAAU,GAAV,UAAU;QACT,IAAA,CAAA,kBAAkB,GAAlB,kBAAkB;QAfjC,IAAA,CAAA,aAAa,GAAG,WAAW;QAC3B,IAAA,CAAA,MAAM,GAAGD,QAAM;;QAGxB,IAAA,CAAA,OAAO,GAAG,EAAE;QACZ,IAAA,CAAA,SAAS,GAAG,KAAK;QACjB,IAAA,CAAA,YAAY,GAAG,KAAK;IAY9B;;;;IAMA,eAAe,GAAA;QACb,IAAI,CAAC,kBAAkB,EAAE;AAEzB,QAAA,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;AACxD,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACxC,YAAA,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAgB,EAAE,MAAM,CAAC,EAAE;AAC7D,gBAAA,IAAI,CAAC,YAAY,GAAG,IAAI;gBACxB;YACF;QACF;QAEA,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE;YACvC,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAE;QACrD;aAAO;AACL,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,eAAe,EAAE;YACrC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC;QACnD;QAEA,IAAI,CAAC,IAAI,EAAE;;AAEX,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CACxC,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,aAAa,EAClB,EAAE,CACH;QACD,IAAI,YAAY,KAAK,SAAS,IAAI,YAAY,KAAK,EAAE,EAAE;AACrD,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;QACzB;aAAO;YACL,IAAI,CAAC,aAAa,EAAE;QACtB;IACF;AAEA;;;;AAIG;AACM,IAAA,WAAW,CAAC,OAAsB,EAAA;QACzC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;AACnC,YAAA,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;gBACnC,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC;AAC/B,gBAAA,MAAM,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;gBACtC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,YAAY;AAC5C,gBAAA,IAAI,UAAU,GACZ,UAAU,KAAK;sBACX,UAAU,KAAK;AACf,0BAAE,qBAAqB,CAAC,UAAU;AAClC,0BAAE;sBACF,IAAI;AACV,gBAAA,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;oBAC5B,UAAU,GAAG,CAAC,UAAU;gBAC1B;AACA,gBAAA,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC;YAC/B;AACF,QAAA,CAAC,CAAC;IACJ;;;;AAMA;;AAEG;IACO,kBAAkB,GAAA;AAC1B,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC;QAEpE,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;AACzC,YAAA,IAAI,CAAC;AACF,iBAAA,UAAU,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG;AAClC,iBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC;iBACnC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7C,QAAA,CAAC,CAAC;IACJ;AAEA;;;;AAIG;IACO,eAAe,GAAA;QACvB,OAAO,IAAI,CAAC,SAAS;aAClB,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,eAAe;AACvD,cAAE;AACF,cAAE,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,EAAE,IAAI,CAAC;IAClE;;IAGmB,eAAe,CAAC,QAA0B,IAAI,EAAA;AAC/D,QAAA,IAAI,KAAK,KAAK,EAAE,EAAE;YAChB;QACF;QACA,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC;AAClD,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,MAAM,GAAG,OAAO,EAAE;YACvC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ;AACT,SAAA,CAAC;AACF,QAAA,IAAI,QAAQ,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACvC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,EAAE,EAAE,CAAC;QACrD;QACA,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,aAAc,EAAE,YAAY,CAAC;IAC/D;AAjIW,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAiBlB,aAAa,EAAA,EAAA,EAAA,KAAA,EACb,WAAW,aACX,YAAY,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAnBX,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,idAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,cAAA,EAAA,cAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,MAAA,EAAA,QAAA,EAAA,cAAA,EAAA,cAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B,SAAS;mBAAC,YAAEC,UAAQ,UAAED,QAAM,EAAE;;0BAkB1B,MAAM;2BAAC,aAAa;;0BACpB,MAAM;2BAAC,WAAW;;0BAClB,MAAM;2BAAC,YAAY;;AAiHxB,MAAM,WAAW,GAAiC,IAAI,OAAO,EAAE;;AC/M/D;MACa,eAAe,CAAA;AAC1B,IAAA,WAAA,CACS,GAAW,EACX,KAAa,EACpB,QAAQ,GAAG,IAAI,EAAA;QAFR,IAAA,CAAA,GAAG,GAAH,GAAG;QACH,IAAA,CAAA,KAAK,GAAL,KAAK;QAGZ,IAAI,CAAC,GAAG,GAAG,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,GAAG,CAAC,IAAI,EAAE;QAElE,IAAI,CAAC,KAAK,GAAG,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE;AACxE,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;IAC1C;AACD;AAEK,SAAU,OAAO,CAAC,MAAW,EAAA;AACjC,IAAA,MAAM,IAAI,GAAG,OAAO,MAAM;AAC1B,IAAA,IAAI,IAAI,KAAK,QAAQ,EAAE;AACrB,QAAA,OAAO,MAAM,CAAC,WAAW,KAAK;AAC5B,cAAE;AACF,cAAE,MAAM,CAAC,WAAW,KAAK;AACvB,kBAAE;kBACA,QAAQ;IAChB;AACA,IAAA,OAAO,IAAI;AACb;AAEA;;;AAGG;SACa,YAAY,CAAC,MAAW,EAAE,SAAS,GAAG,GAAG,EAAA;IACvD,OAAO,MAAM,CAAC,MAAM;AACjB,SAAA,IAAI;SACJ,KAAK,CAAC,SAAS;SACf,GAAG,CAAC,CAAC,GAAW,KAAK,GAAG,CAAC,IAAI,EAAE;SAC/B,MAAM,CAAC,CAAC,GAAG,KAAK,GAAG,KAAK,EAAE,CAAC;AAChC;AAEA;AACM,SAAUE,kBAAgB,CAC9B,MAAsB,EACtB,QAA2B,EAAA;AAE3B,IAAA,MAAM,aAAa,GAAG,CAAC,EAAmB,KAAI;QAC5C,IAAI,QAAQ,EAAE;YACZ,EAAE,CAAC,KAAK,GAAG,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC;QAC/B;AACA,QAAA,OAAO,EAAE;AACX,IAAA,CAAC;AAED,IAAA,OAAO;SACJ,GAAG,CAAC,gBAAgB;SACpB,MAAM,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK;SACzB,GAAG,CAAC,aAAa;AACjB,SAAA,MAAM,CAAC,cAAc,EAAE,EAAgB,CAAC;AAC7C;AAEA;AACM,SAAU,eAAe,CAC7B,MAAmB,EACnB,QAA2B,EAAA;IAE3B,MAAM,IAAI,GAAa,EAAE;AACzB,IAAA,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,KAAK,EAAE;AAC5B,QAAA,MAAsB,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9D;SAAO;QACL,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,GAAW,KAAI;AAC1C,YAAA,IAAI,CAAC,IAAI,CAAC,CAAA,EAAG,GAAG,CAAA,CAAA,EAAK,MAAqB,CAAC,GAAG,CAAC,CAAA,CAAE,CAAC;AACpD,QAAA,CAAC,CAAC;IACJ;AACA,IAAA,OAAOA,kBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC;AACzC;AAEA;AACM,SAAU,gBAAgB,CAAC,EAAU,EAAA;AACzC,IAAA,MAAM,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC;AACpC,IAAA,OAAO,IAAI,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACjD;AAEA;AACM,SAAU,cAAc,CAC5B,GAAe,EACf,KAAsB,EAAA;AAEtB,IAAA,IAAI,KAAK,CAAC,GAAG,EAAE;QACb,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK;IAC9B;AACA,IAAA,OAAO,GAAG;AACZ;;ACjEA,MAAM,MAAM,GAAG;IACb,SAAS;IACT,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,eAAe;IACf,eAAe;IACf,eAAe;IACf,eAAe;IACf,eAAe;IACf,eAAe;IACf,eAAe;IACf,eAAe;CAChB;AAED,MAAM,QAAQ,GAAG;;;;;CAKhB;AAGK,MAAO,cAAe,SAAQ,cAAc,CAAA;AAMhD,IAAA,WAAA,CACE,UAAsB,EACtB,MAAkB,EAClB,OAAwB,EACd,SAAuB,EACjC,OAAwB,EACxB,SAAoB,EACiB,eAAwB,EACvC,YAAqB,EACtB,UAAkB,EAAA;QAEvC,KAAK,CAAC,UAAU,EAAE,IAAK,EAAE,MAAM,EAAE,OAAO,CAAC;QAP/B,IAAA,CAAA,SAAS,GAAT,SAAS;QAGkB,IAAA,CAAA,eAAe,GAAf,eAAe;QAZnC,IAAA,CAAA,aAAa,GAAG,SAAS;QACzB,IAAA,CAAA,MAAM,GAAG,MAAM;AAgBhC,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;;;AAGzB,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,OAAO,CAAC,UAAU,EAAE,OAAO,EAAE,SAAS,CAAC;QACpE;QACA,IAAI,CAAC,IAAI,EAAE;AACX,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE;QAC7D,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;QAChD,IAAI,CAAC,QAAQ,GAAG,YAAY,IAAI,gBAAgB,CAAC,UAAU,CAAC;IAC9D;;AAGmB,IAAA,eAAe,CAAC,KAAU,EAAA;QAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;AACxC,QAAA,IAAI,CAAC,eAAe,CAAC,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,cAAc,EAAE,GAAG,MAAM,EAAE;AACpE,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC;QAClC;AACA,QAAA,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE;IAClC;;IAGmB,WAAW,GAAA;QAC5B,IAAI,CAAC,eAAe,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc;AAClD,QAAA,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE;IAClC;AAEA;;;;;AAKG;AACO,IAAA,aAAa,CAAC,MAAmB,EAAA;;QAEzC,MAAM,SAAS,GAAqB,CAAC,GAAQ,KAC3C,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE;QAC3D,IAAI,MAAM,EAAE;AACV,YAAA,QAAQ,OAAO,CAAC,MAAM,CAAC;AACrB,gBAAA,KAAK,QAAQ;oBACX,OAAO,gBAAgB,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC;AAC1D,gBAAA,KAAK,OAAO;AACV,oBAAA,OAAO,gBAAgB,CAAC,MAAwB,EAAE,SAAS,CAAC;AAC9D,gBAAA,KAAK,KAAK;AACR,oBAAA,OAAO,eAAe,CAAC,MAAM,EAAE,SAAS,CAAC;AAC3C,gBAAA;AACE,oBAAA,OAAO,eAAe,CAAC,MAAM,EAAE,SAAS,CAAC;;QAE/C;AAEA,QAAA,OAAO,EAAE;IACX;;;;;IAOA,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE;IAClC;8GA9EW,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,IAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAcf,YAAY,EAAA,EAAA,EAAA,KAAA,EACZ,WAAW,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAfV,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wOAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAD1B,SAAS;mBAAC,EAAE,QAAQ,EAAE,MAAM,EAAE;;0BAc1B;;0BAAY;;0BACZ,MAAM;2BAAC,YAAY;;0BACnB,MAAM;2BAAC,WAAW;;AAkEvB;AACA,SAAS,gBAAgB,CACvB,MAAsB,EACtB,QAA2B,EAAA;AAE3B,IAAA,MAAM,aAAa,GAAG,CAAC,EAAmB,KAAI;QAC5C,IAAI,QAAQ,EAAE;YACZ,EAAE,CAAC,KAAK,GAAG,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC;QAC/B;AACA,QAAA,OAAO,EAAE;AACX,IAAA,CAAC;AAED,IAAA,OAAO;SACJ,GAAG,CAAC,gBAAgB;SACpB,MAAM,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK;SACzB,GAAG,CAAC,aAAa;AACjB,SAAA,MAAM,CAAC,cAAc,EAAE,EAAgB,CAAC;AAC7C;;ACpJA,MAAM,cAAc,GAAG;IACrB,iBAAiB;IACjB,cAAc;IACd,cAAc;IACd,eAAe;CAChB;AAED;;;;AAIG;MAMU,cAAc,CAAA;8GAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;+GAAd,cAAc,EAAA,OAAA,EAAA,CAHf,UAAU,EAbpB,iBAAiB;YACjB,cAAc;YACd,cAAc;AACd,YAAA,eAAe,aAHf,iBAAiB;YACjB,cAAc;YACd,cAAc;YACd,eAAe,CAAA,EAAA,CAAA,CAAA;AAaJ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,YAHf,UAAU,CAAA,EAAA,CAAA,CAAA;;2FAGT,cAAc,EAAA,UAAA,EAAA,CAAA;kBAJ1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,UAAU,EAAE,GAAG,cAAc,CAAC;AACxC,oBAAA,OAAO,EAAE,CAAC,GAAG,cAAc,CAAC;AAC7B,iBAAA;;;ACxBD;;AAEG;;;;"}