@covalent/markdown-navigator 11.8.0 → 11.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"covalent-markdown-navigator.mjs","sources":["../tmp-esm2022/markdown-navigator.component.js","../tmp-esm2022/markdown-navigator-window/markdown-navigator-window.component.js","../tmp-esm2022/markdown-navigator-window-service/markdown-navigator-window.service.js","../tmp-esm2022/markdown-navigator-window-directive/markdown-navigator-window.directive.js","../tmp-esm2022/markdown-navigator.module.js","../tmp-esm2022/covalent-markdown-navigator.js"],"sourcesContent":["import { Component, Input, HostListener, ViewChild, ElementRef, ChangeDetectorRef, ChangeDetectionStrategy, Output, EventEmitter, SecurityContext, inject, } from '@angular/core';\nimport { removeLeadingHash, isAnchorLink, TdMarkdownLoaderService, } from '@covalent/markdown';\nimport { TdFlavoredMarkdownComponent, TdFlavoredMarkdownLoaderComponent, } from '@covalent/flavored-markdown';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { HttpClient } from '@angular/common/http';\nimport { firstValueFrom } from 'rxjs';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatListModule } from '@angular/material/list';\nimport { MatIconModule, MatIconRegistry } from '@angular/material/icon';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { TdMessageComponent } from '@covalent/core/message';\nimport { TdBreadcrumbsComponent, TdBreadcrumbComponent, } from '@covalent/core/breadcrumbs';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nimport * as i2 from \"@angular/material/tooltip\";\nimport * as i3 from \"@angular/material/list\";\nimport * as i4 from \"@angular/material/icon\";\nimport * as i5 from \"@angular/material/progress-bar\";\nconst _c0 = [\"markdownWrapper\"];\nconst _c1 = () => ({});\nconst _forTrack0 = ($index, $item) => $item.id ?? $index;\nfunction TdMarkdownNavigatorComponent_Conditional_0_Conditional_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"mat-progress-bar\", 2);\n} }\nfunction TdMarkdownNavigatorComponent_Conditional_0_Conditional_2_For_4_Template(rf, ctx) { if (rf & 1) {\n const _r3 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"a\", 11);\n i0.ɵɵlistener(\"click\", function TdMarkdownNavigatorComponent_Conditional_0_Conditional_2_For_4_Template_a_click_0_listener() { const ɵ$index_13_r4 = i0.ɵɵrestoreView(_r3).$index; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.goBack(ctx_r1.historyStack.length - ɵ$index_13_r4)); });\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const item_r5 = ctx.$implicit;\n const ɵ$index_13_r4 = ctx.$index;\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵattribute(\"data-test\", \"back-button-\" + ɵ$index_13_r4);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r1.getTitle(item_r5));\n} }\nfunction TdMarkdownNavigatorComponent_Conditional_0_Conditional_2_Template(rf, ctx) { if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"td-breadcrumbs\")(1, \"a\", 8);\n i0.ɵɵlistener(\"click\", function TdMarkdownNavigatorComponent_Conditional_0_Conditional_2_Template_a_click_1_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.reset()); });\n i0.ɵɵtext(2, \"Home\");\n i0.ɵɵelementEnd();\n i0.ɵɵrepeaterCreate(3, TdMarkdownNavigatorComponent_Conditional_0_Conditional_2_For_4_Template, 2, 2, \"a\", 9, _forTrack0);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(5, \"div\", 10);\n i0.ɵɵtext(6);\n i0.ɵɵelementEnd();\n i0.ɵɵelement(7, \"mat-divider\");\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"matTooltip\", ctx_r1.goHomeLabel ?? \"\");\n i0.ɵɵattribute(\"data-test\", \"home-button\");\n i0.ɵɵadvance(2);\n i0.ɵɵrepeater(ctx_r1.navigationBreadcrumbs);\n i0.ɵɵadvance(2);\n i0.ɵɵattribute(\"data-test\", \"title\");\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", ctx_r1.currentItemTitle, \" \");\n i0.ɵɵadvance();\n i0.ɵɵstyleProp(\"position\", \"relative\");\n} }\nfunction TdMarkdownNavigatorComponent_Conditional_0_Conditional_4_Conditional_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"td-message\", 5);\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵproperty(\"sublabel\", ctx_r1.markdownLoaderError);\n i0.ɵɵattribute(\"data-test\", \"markdown-loader-error\");\n} }\nfunction TdMarkdownNavigatorComponent_Conditional_0_Conditional_4_Conditional_3_Template(rf, ctx) { if (rf & 1) {\n const _r6 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"td-flavored-markdown-loader\", 14);\n i0.ɵɵlistener(\"loadFailed\", function TdMarkdownNavigatorComponent_Conditional_0_Conditional_4_Conditional_3_Template_td_flavored_markdown_loader_loadFailed_0_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.handleMarkdownLoaderError($event)); })(\"buttonClicked\", function TdMarkdownNavigatorComponent_Conditional_0_Conditional_4_Conditional_3_Template_td_flavored_markdown_loader_buttonClicked_0_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.buttonClicked.emit($event)); });\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵproperty(\"url\", ctx_r1.url ?? \"\")(\"httpOptions\", ctx_r1.httpOptions ?? i0.ɵɵpureFunction0(5, _c1))(\"anchor\", ctx_r1.anchor ?? \"\")(\"copyCodeToClipboard\", ctx_r1.copyCodeToClipboard)(\"copyCodeTooltips\", ctx_r1.copyCodeTooltips);\n} }\nfunction TdMarkdownNavigatorComponent_Conditional_0_Conditional_4_Conditional_4_Template(rf, ctx) { if (rf & 1) {\n const _r7 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"td-flavored-markdown\", 15);\n i0.ɵɵlistener(\"buttonClicked\", function TdMarkdownNavigatorComponent_Conditional_0_Conditional_4_Conditional_4_Template_td_flavored_markdown_buttonClicked_0_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.buttonClicked.emit($event)); });\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵproperty(\"content\", ctx_r1.markdownString ?? \"\")(\"hostedUrl\", ctx_r1.url ?? \"\")(\"anchor\", ctx_r1.anchor ?? \"\")(\"copyCodeToClipboard\", ctx_r1.copyCodeToClipboard)(\"copyCodeTooltips\", ctx_r1.copyCodeTooltips);\n} }\nfunction TdMarkdownNavigatorComponent_Conditional_0_Conditional_4_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 4, 0);\n i0.ɵɵconditionalCreate(2, TdMarkdownNavigatorComponent_Conditional_0_Conditional_4_Conditional_2_Template, 1, 2, \"td-message\", 5);\n i0.ɵɵconditionalCreate(3, TdMarkdownNavigatorComponent_Conditional_0_Conditional_4_Conditional_3_Template, 1, 6, \"td-flavored-markdown-loader\", 12);\n i0.ɵɵconditionalCreate(4, TdMarkdownNavigatorComponent_Conditional_0_Conditional_4_Conditional_4_Template, 1, 5, \"td-flavored-markdown\", 13);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance(2);\n i0.ɵɵconditional(ctx_r1.markdownLoaderError ? 2 : -1);\n i0.ɵɵadvance();\n i0.ɵɵconditional(ctx_r1.showTdMarkdownLoader ? 3 : -1);\n i0.ɵɵadvance();\n i0.ɵɵconditional(ctx_r1.showTdMarkdown ? 4 : -1);\n} }\nfunction TdMarkdownNavigatorComponent_Conditional_0_Conditional_5_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"td-message\", 5);\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"sublabel\", ctx_r1.childrenUrlError);\n i0.ɵɵattribute(\"data-test\", \"children-url-error\");\n} }\nfunction TdMarkdownNavigatorComponent_Conditional_0_Conditional_6_For_3_Template(rf, ctx) { if (rf & 1) {\n const _r8 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"button\", 17);\n i0.ɵɵlistener(\"click\", function TdMarkdownNavigatorComponent_Conditional_0_Conditional_6_For_3_Template_button_click_0_listener() { const item_r9 = i0.ɵɵrestoreView(_r8).$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.handleItemSelected(item_r9)); });\n i0.ɵɵelementStart(1, \"mat-icon\", 18);\n i0.ɵɵtext(2);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"span\", 19);\n i0.ɵɵtext(4);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(5, \"span\", 20);\n i0.ɵɵtext(6);\n i0.ɵɵelementEnd();\n i0.ɵɵelement(7, \"mat-divider\");\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const item_r9 = ctx.$implicit;\n const ɵ$index_44_r10 = ctx.$index;\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵproperty(\"id\", \"td-markdown-navigator-list-item-\" + (item_r9.id ? item_r9.id : ɵ$index_44_r10))(\"matTooltip\", ctx_r1.getTitle(item_r9));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"fontSet\", ctx_r1.isCovalentIcon(item_r9) ? \"covalent-icons\" : \"\");\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", ctx_r1.getIcon(item_r9), \" \");\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate1(\" \", ctx_r1.getTitle(item_r9), \" \");\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate1(\" \", item_r9.description, \" \");\n} }\nfunction TdMarkdownNavigatorComponent_Conditional_0_Conditional_6_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 6)(1, \"mat-action-list\");\n i0.ɵɵrepeaterCreate(2, TdMarkdownNavigatorComponent_Conditional_0_Conditional_6_For_3_Template, 8, 6, \"button\", 16, _forTrack0);\n i0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance(2);\n i0.ɵɵrepeater(ctx_r1.currentMenuItems);\n} }\nfunction TdMarkdownNavigatorComponent_Conditional_0_ng_container_7_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction TdMarkdownNavigatorComponent_Conditional_0_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵconditionalCreate(1, TdMarkdownNavigatorComponent_Conditional_0_Conditional_1_Template, 1, 0, \"mat-progress-bar\", 2);\n i0.ɵɵconditionalCreate(2, TdMarkdownNavigatorComponent_Conditional_0_Conditional_2_Template, 8, 6);\n i0.ɵɵelementStart(3, \"div\", 3);\n i0.ɵɵconditionalCreate(4, TdMarkdownNavigatorComponent_Conditional_0_Conditional_4_Template, 5, 3, \"div\", 4);\n i0.ɵɵconditionalCreate(5, TdMarkdownNavigatorComponent_Conditional_0_Conditional_5_Template, 1, 2, \"td-message\", 5);\n i0.ɵɵconditionalCreate(6, TdMarkdownNavigatorComponent_Conditional_0_Conditional_6_Template, 4, 0, \"div\", 6);\n i0.ɵɵtemplate(7, TdMarkdownNavigatorComponent_Conditional_0_ng_container_7_Template, 1, 0, \"ng-container\", 7);\n i0.ɵɵelementEnd();\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵconditional(ctx_r1.loading ? 1 : -1);\n i0.ɵɵadvance();\n i0.ɵɵconditional(ctx_r1.showHeader ? 2 : -1);\n i0.ɵɵadvance(2);\n i0.ɵɵconditional(ctx_r1.showTdMarkdownLoader || ctx_r1.showTdMarkdown ? 4 : -1);\n i0.ɵɵadvance();\n i0.ɵɵconditional(ctx_r1.childrenUrlError ? 5 : -1);\n i0.ɵɵadvance();\n i0.ɵɵconditional(ctx_r1.showMenu ? 6 : -1);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngComponentOutlet\", ctx_r1.footerComponent);\n} }\nfunction TdMarkdownNavigatorComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 1)(1, \"mat-icon\", 21);\n i0.ɵɵtext(2, \"subject\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"h2\");\n i0.ɵɵtext(4);\n i0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance(4);\n i0.ɵɵtextInterpolate(ctx_r1.emptyStateLabel);\n} }\nexport const DEFAULT_MARKDOWN_NAVIGATOR_LABELS = {\n goHome: 'Go home',\n goBack: 'Go back',\n emptyState: 'No item(s) to display',\n};\nexport class TdMarkdownNavigatorComponent {\n _markdownUrlLoaderService = inject(TdMarkdownLoaderService);\n _changeDetectorRef = inject(ChangeDetectorRef);\n _sanitizer = inject(DomSanitizer);\n _http = inject(HttpClient);\n _iconRegistry = inject(MatIconRegistry);\n constructor() {\n this._iconRegistry.registerFontClassAlias('covalent-icons', 'covalent-icons mat-ligature-font');\n }\n /**\n * items: IMarkdownNavigatorItem[]\n *\n * List of IMarkdownNavigatorItems to be rendered\n */\n items;\n /**\n * labels?: IMarkdownNavigatorLabels\n *\n * Translated labels\n */\n labels;\n /**\n * startAt?: IMarkdownNavigatorItem | IMarkdownNavigatorItem[];\n *\n * Item or path to start at\n */\n startAt;\n /**\n * copyCodeToClipboard?: boolean\n *\n * Display copy button on code snippets to copy code to clipboard.\n *\n */\n copyCodeToClipboard = false;\n /**\n * copyCodeTooltips?: ICopyCodeTooltips\n *\n * Tooltips for copy button to copy and upon copying.\n */\n copyCodeTooltips = {};\n /**\n * footer?: Type<any>\n *\n * Component to be displayed in footer\n */\n footer;\n /**\n * compareWith?: IMarkdownNavigatorCompareWith\n *\n * Function used to find startAt item\n * Defaults to comparison by strict equality (===)\n */\n compareWith;\n buttonClicked = new EventEmitter();\n itemSelected = new EventEmitter();\n markdownWrapper;\n historyStack = []; // history\n currentMarkdownItem; // currently rendered\n currentMenuItems = []; // current menu items\n loading = false;\n markdownLoaderError;\n childrenUrlError;\n clickListener(event) {\n const element = event.srcElement;\n if (element.matches('a[href]') &&\n isMarkdownHref(element)) {\n this.handleLinkClick(event);\n }\n }\n get showGoBackButton() {\n return this.historyStack.length > 0;\n }\n get showHeader() {\n return !!this.currentItemTitle;\n }\n get showMenu() {\n const showMenu = this.currentMenuItems && this.currentMenuItems.length > 0;\n return showMenu ?? false;\n }\n get showTdMarkdownLoader() {\n return (!!this.currentMarkdownItem &&\n !!this.currentMarkdownItem.url &&\n !this.showTdMarkdown);\n }\n get showTdMarkdown() {\n return (!!this.currentMarkdownItem && !!this.currentMarkdownItem.markdownString);\n }\n get url() {\n if (this.currentMarkdownItem) {\n return this.currentMarkdownItem.url;\n }\n return undefined;\n }\n get footerComponent() {\n if (this.currentMarkdownItem && this.currentMarkdownItem.footer) {\n return this.currentMarkdownItem.footer;\n }\n return this.footer;\n }\n get httpOptions() {\n if (this.currentMarkdownItem) {\n return this.currentMarkdownItem.httpOptions;\n }\n return undefined;\n }\n get markdownString() {\n if (this.currentMarkdownItem) {\n return this.currentMarkdownItem.markdownString;\n }\n return undefined;\n }\n get anchor() {\n if (this.currentMarkdownItem) {\n return this.currentMarkdownItem.anchor;\n }\n return undefined;\n }\n get showEmptyState() {\n return !this.items || this.items.length < 1;\n }\n get goHomeLabel() {\n return ((this.labels && this.labels.goHome) ||\n DEFAULT_MARKDOWN_NAVIGATOR_LABELS.goHome);\n }\n get goBackLabel() {\n return ((this.labels && this.labels.goBack) ||\n DEFAULT_MARKDOWN_NAVIGATOR_LABELS.goBack);\n }\n get emptyStateLabel() {\n return ((this.labels && this.labels.emptyState) ||\n DEFAULT_MARKDOWN_NAVIGATOR_LABELS.emptyState);\n }\n get currentItemTitle() {\n if (this.currentMarkdownItem) {\n return this.getTitle(this.currentMarkdownItem);\n }\n else if (this.historyStack.length > 0) {\n return this.getTitle(this.historyStack[this.historyStack.length - 1]);\n }\n return '';\n }\n get navigationBreadcrumbs() {\n return this.historyStack.slice(0, -1);\n }\n async ngOnChanges(changes) {\n if (changes['items']) {\n this.reset();\n }\n if (changes['startAt'] && this.items && this.startAt) {\n this._jumpTo(this.startAt, undefined);\n }\n }\n hasChildrenOrChildrenUrl(item) {\n return (item.children && item.children.length > 0) || !!item.childrenUrl;\n }\n clearErrors() {\n this.markdownLoaderError = undefined;\n this.childrenUrlError = undefined;\n }\n reset() {\n this.loading = false;\n this.clearErrors();\n // if single item and no children\n if (this.items &&\n this.items.length === 1 &&\n !this.hasChildrenOrChildrenUrl(this.items[0])) {\n this.currentMenuItems = [];\n this.currentMarkdownItem = this.items[0];\n }\n else {\n this.currentMenuItems = this.items;\n this.currentMarkdownItem = undefined;\n }\n this.historyStack = [];\n this.itemSelected.emit(undefined);\n this._changeDetectorRef.markForCheck();\n }\n goBack(goBackLength = 2) {\n this.loading = false;\n this.clearErrors();\n let parent = this.historyStack[this.historyStack.length - goBackLength];\n if (parent?.startAtLink) {\n parent = this.historyStack[this.historyStack.length - 3]\n ? this.historyStack[this.historyStack.length - 3]\n : undefined;\n this.historyStack = this.historyStack.slice(0, -goBackLength);\n }\n if (parent) {\n this.currentMarkdownItem = parent;\n this.historyStack = this.historyStack.slice(0, this.historyStack.length - goBackLength + 1);\n this.setChildrenAsCurrentMenuItems(parent);\n }\n else {\n this.reset();\n }\n this.itemSelected.emit(parent);\n this._changeDetectorRef.markForCheck();\n }\n handleItemSelected(item) {\n this.clearErrors();\n this.currentMarkdownItem = item;\n this.historyStack = [...this.historyStack, item];\n this.setChildrenAsCurrentMenuItems(item);\n this.itemSelected.emit(item);\n this._changeDetectorRef.markForCheck();\n }\n async setChildrenAsCurrentMenuItems(item) {\n this.currentMenuItems = [];\n this.loading = true;\n this._changeDetectorRef.markForCheck();\n const stackSnapshot = this.historyStack;\n let children = [];\n if (item.children) {\n children = item.children;\n }\n else if (item.childrenUrl) {\n children = await this.loadChildrenUrl(item);\n }\n if (children && children.length && item.startAtLink) {\n this._jumpTo(item.startAtLink, children);\n }\n const newStackSnapshot = this.historyStack;\n if (stackSnapshot.length === newStackSnapshot.length &&\n stackSnapshot.every((stackItem, index) => stackItem === newStackSnapshot[index])) {\n this.currentMenuItems = children;\n }\n this.loading = false;\n this._changeDetectorRef.markForCheck();\n }\n async loadChildrenUrl(item) {\n const sanitizedUrl = this._sanitizer.sanitize(SecurityContext.URL, item.childrenUrl ?? null) ??\n '';\n try {\n return await firstValueFrom(this._http.get(sanitizedUrl, {\n ...item.httpOptions,\n }));\n }\n catch (error) {\n this.handleChildrenUrlError(error);\n return [];\n }\n }\n getTitle(item) {\n if (!item) {\n return '';\n }\n return (removeLeadingHash(item.anchor ?? '') ||\n item.title ||\n getTitleFromUrl(item.url ?? '') ||\n getTitleFromMarkdownString(item.markdownString ?? '') ||\n '').trim();\n }\n getIcon(item) {\n const icon = item?.icon || 'subject';\n return icon.split(';')[0];\n }\n isCovalentIcon(item) {\n if (!item?.icon)\n return false;\n return item?.icon.includes(';covalent');\n }\n handleChildrenUrlError(error) {\n this.childrenUrlError = error.message;\n this._changeDetectorRef.markForCheck();\n }\n handleMarkdownLoaderError(error) {\n this.markdownLoaderError = error ? error.message : '';\n this._changeDetectorRef.markForCheck();\n }\n async _jumpTo(itemOrPath, children) {\n const historyStack = this.historyStack;\n let path = [];\n if (this.items?.length) {\n if (Array.isArray(itemOrPath)) {\n path = await this.followPath(this.items, itemOrPath);\n }\n else if (children && children.length > 0) {\n this.historyStack = historyStack;\n path = this.findPath(children, itemOrPath);\n }\n else {\n path = this.findPath(this.items, itemOrPath);\n }\n path.forEach((pathItem, index) => {\n if (index === 0) {\n this.reset();\n }\n this.handleItemSelected(pathItem);\n });\n }\n return !!path.length;\n }\n async followPath(items, path) {\n let pathItems = [];\n let currentLevel = items;\n const compareWith = this.compareWith || defaultCompareWith;\n for (const pathItem of path) {\n const foundItem = currentLevel.find((item) => compareWith(pathItem, item));\n if (foundItem) {\n pathItems = [...pathItems, foundItem];\n if (foundItem.children) {\n currentLevel = foundItem.children;\n }\n else if (foundItem.childrenUrl) {\n currentLevel = await this.loadChildrenUrl(foundItem);\n }\n }\n else {\n break;\n }\n }\n if (pathItems.length !== path.length) {\n pathItems = [];\n }\n return pathItems;\n }\n findPath(items, item) {\n const compareWith = this.compareWith || defaultCompareWith;\n if (items) {\n for (const child of items) {\n if (item && compareWith(child, item)) {\n return [child];\n }\n const ancestors = this.findPath(child.children, item);\n if (ancestors.length) {\n return [child, ...ancestors];\n }\n }\n }\n return [];\n }\n async handleLinkClick(event) {\n event.preventDefault();\n const link = event.target;\n const url = new URL(link.href);\n const urlParts = url.href.split('/');\n const id = urlParts[urlParts.length - 1].split('.md')[0];\n this.loading = true;\n this._changeDetectorRef.markForCheck();\n const pathFound = await this._jumpTo({ id });\n if (pathFound) {\n return;\n }\n try {\n const markdownString = await this._markdownUrlLoaderService.load(url.href);\n // pass in url to be able to use currentMarkdownItem.url later on\n this.handleItemSelected({ markdownString, url: url.href });\n this.markdownWrapper.nativeElement.scrollTop = 0;\n }\n catch (error) {\n const win = window.open(url.href, '_blank');\n win?.focus();\n }\n finally {\n this.loading = false;\n }\n this._changeDetectorRef.markForCheck();\n }\n static ɵfac = function TdMarkdownNavigatorComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TdMarkdownNavigatorComponent)(); };\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TdMarkdownNavigatorComponent, selectors: [[\"td-markdown-navigator\"]], viewQuery: function TdMarkdownNavigatorComponent_Query(rf, ctx) { if (rf & 1) {\n i0.ɵɵviewQuery(_c0, 5);\n } if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.markdownWrapper = _t.first);\n } }, hostBindings: function TdMarkdownNavigatorComponent_HostBindings(rf, ctx) { if (rf & 1) {\n i0.ɵɵlistener(\"click\", function TdMarkdownNavigatorComponent_click_HostBindingHandler($event) { return ctx.clickListener($event); });\n } }, inputs: { items: \"items\", labels: \"labels\", startAt: \"startAt\", copyCodeToClipboard: \"copyCodeToClipboard\", copyCodeTooltips: \"copyCodeTooltips\", footer: \"footer\", compareWith: \"compareWith\" }, outputs: { buttonClicked: \"buttonClicked\", itemSelected: \"itemSelected\" }, features: [i0.ɵɵProvidersFeature([TdMarkdownLoaderService]), i0.ɵɵNgOnChangesFeature], decls: 2, vars: 2, consts: [[\"markdownWrapper\", \"\"], [\"layout\", \"column\", \"layout-align\", \"center center\", 1, \"empty-state\"], [\"mode\", \"indeterminate\", \"color\", \"accent\"], [\"id\", \"td-markdown-navigator-content\", 1, \"scroll-area\"], [1, \"markdown-wrapper\"], [\"color\", \"warn\", \"icon\", \"error\", 3, \"sublabel\"], [1, \"td-markdown-list\"], [4, \"ngComponentOutlet\"], [\"td-breadcrumb\", \"\", 3, \"click\", \"matTooltip\"], [\"td-breadcrumb\", \"\"], [1, \"breadcrumb-current-title\"], [\"td-breadcrumb\", \"\", 3, \"click\"], [3, \"url\", \"httpOptions\", \"anchor\", \"copyCodeToClipboard\", \"copyCodeTooltips\"], [3, \"content\", \"hostedUrl\", \"anchor\", \"copyCodeToClipboard\", \"copyCodeTooltips\"], [3, \"loadFailed\", \"buttonClicked\", \"url\", \"httpOptions\", \"anchor\", \"copyCodeToClipboard\", \"copyCodeTooltips\"], [3, \"buttonClicked\", \"content\", \"hostedUrl\", \"anchor\", \"copyCodeToClipboard\", \"copyCodeTooltips\"], [\"mat-list-item\", \"\", \"matTooltipPosition\", \"before\", \"matTooltipShowDelay\", \"500\", 3, \"id\", \"matTooltip\"], [\"mat-list-item\", \"\", \"matTooltipPosition\", \"before\", \"matTooltipShowDelay\", \"500\", 3, \"click\", \"id\", \"matTooltip\"], [\"matListItemIcon\", \"\", 3, \"fontSet\"], [\"matListItemTitle\", \"\", 1, \"truncate\"], [\"matListItemLine\", \"\", 1, \"truncate\"], [\"matListItemAvatar\", \"\"]], template: function TdMarkdownNavigatorComponent_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵconditionalCreate(0, TdMarkdownNavigatorComponent_Conditional_0_Template, 8, 6, \"ng-container\");\n i0.ɵɵconditionalCreate(1, TdMarkdownNavigatorComponent_Conditional_1_Template, 5, 1, \"div\", 1);\n } if (rf & 2) {\n i0.ɵɵconditional(!ctx.showEmptyState ? 0 : -1);\n i0.ɵɵadvance();\n i0.ɵɵconditional(ctx.showEmptyState ? 1 : -1);\n } }, dependencies: [CommonModule, i1.NgComponentOutlet, MatButtonModule,\n MatTooltipModule, i2.MatTooltip, MatListModule, i3.MatActionList, i3.MatListItem, i3.MatListItemAvatar, i3.MatListItemIcon, i3.MatDivider, i3.MatListItemLine, i3.MatListItemTitle, MatIconModule, i4.MatIcon, MatProgressBarModule, i5.MatProgressBar, TdFlavoredMarkdownComponent,\n TdFlavoredMarkdownLoaderComponent,\n TdMessageComponent,\n TdBreadcrumbsComponent,\n TdBreadcrumbComponent], styles: [\"[_nghost-%COMP%]{position:relative;height:inherit;height:100%;box-sizing:border-box;display:flex;flex-direction:column}[_nghost-%COMP%] .breadcrumb-current-title[_ngcontent-%COMP%]{margin-bottom:16px;padding-left:16px}[_nghost-%COMP%] .breadcrumb-end-icon[_ngcontent-%COMP%]{margin-left:8px;font-size:16px;width:16px;height:16px}[_nghost-%COMP%] .scroll-area[_ngcontent-%COMP%]{min-height:1px;overflow-y:auto;flex:1;box-sizing:border-box}[_nghost-%COMP%] .markdown-wrapper[_ngcontent-%COMP%]{padding:16px 16px 0}[_nghost-%COMP%] .td-markdown-list[_ngcontent-%COMP%] > .mat-list[_ngcontent-%COMP%]{padding-top:0}[_nghost-%COMP%] td-breadcrumbs[_ngcontent-%COMP%]{padding:8px 8px 0 16px}[_nghost-%COMP%] td-flavored-markdown-loader[_ngcontent-%COMP%] .mat-progress-bar{top:0;left:0;right:0;position:absolute}[_nghost-%COMP%] .title[_ngcontent-%COMP%]{display:inline-block;vertical-align:middle;margin:8px 0;padding-left:16px}.truncate[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.empty-state[_ngcontent-%COMP%]{padding:32px}.empty-state[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:4em}\"], changeDetection: 0 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(TdMarkdownNavigatorComponent, [{\n type: Component,\n args: [{ selector: 'td-markdown-navigator', changeDetection: ChangeDetectionStrategy.OnPush, imports: [\n CommonModule,\n MatButtonModule,\n MatTooltipModule,\n MatListModule,\n MatIconModule,\n MatProgressBarModule,\n TdFlavoredMarkdownComponent,\n TdFlavoredMarkdownLoaderComponent,\n TdMessageComponent,\n TdBreadcrumbsComponent,\n TdBreadcrumbComponent,\n ], providers: [TdMarkdownLoaderService], template: \"@if (!showEmptyState) {\\n <ng-container>\\n @if (loading) {\\n <mat-progress-bar mode=\\\"indeterminate\\\" color=\\\"accent\\\"></mat-progress-bar>\\n }\\n\\n @if (showHeader) {\\n <td-breadcrumbs>\\n <a\\n td-breadcrumb\\n [matTooltip]=\\\"goHomeLabel ?? ''\\\"\\n (click)=\\\"reset()\\\"\\n [attr.data-test]=\\\"'home-button'\\\"\\n >Home</a\\n >\\n\\n @for (\\n item of navigationBreadcrumbs;\\n let index = $index;\\n track item.id ?? index\\n ) {\\n <a\\n td-breadcrumb\\n (click)=\\\"goBack(historyStack.length - index)\\\"\\n [attr.data-test]=\\\"'back-button-' + index\\\"\\n >{{ getTitle(item) }}</a\\n >\\n }\\n </td-breadcrumbs>\\n\\n <div class=\\\"breadcrumb-current-title\\\" [attr.data-test]=\\\"'title'\\\">\\n {{ currentItemTitle }}\\n </div>\\n\\n <mat-divider [style.position]=\\\"'relative'\\\"></mat-divider>\\n }\\n\\n <div class=\\\"scroll-area\\\" id=\\\"td-markdown-navigator-content\\\">\\n @if (showTdMarkdownLoader || showTdMarkdown) {\\n <div class=\\\"markdown-wrapper\\\" #markdownWrapper>\\n @if (markdownLoaderError) {\\n <td-message\\n [sublabel]=\\\"markdownLoaderError\\\"\\n color=\\\"warn\\\"\\n icon=\\\"error\\\"\\n [attr.data-test]=\\\"'markdown-loader-error'\\\"\\n ></td-message>\\n }\\n\\n @if (showTdMarkdownLoader) {\\n <td-flavored-markdown-loader\\n [url]=\\\"url ?? ''\\\"\\n [httpOptions]=\\\"httpOptions ?? {}\\\"\\n [anchor]=\\\"anchor ?? ''\\\"\\n [copyCodeToClipboard]=\\\"copyCodeToClipboard\\\"\\n [copyCodeTooltips]=\\\"copyCodeTooltips\\\"\\n (loadFailed)=\\\"handleMarkdownLoaderError($event)\\\"\\n (buttonClicked)=\\\"buttonClicked.emit($event)\\\"\\n ></td-flavored-markdown-loader>\\n }\\n\\n @if (showTdMarkdown) {\\n <td-flavored-markdown\\n [content]=\\\"markdownString ?? ''\\\"\\n [hostedUrl]=\\\"url ?? ''\\\"\\n [anchor]=\\\"anchor ?? ''\\\"\\n [copyCodeToClipboard]=\\\"copyCodeToClipboard\\\"\\n [copyCodeTooltips]=\\\"copyCodeTooltips\\\"\\n (buttonClicked)=\\\"buttonClicked.emit($event)\\\"\\n ></td-flavored-markdown>\\n }\\n </div>\\n }\\n\\n @if (childrenUrlError) {\\n <td-message\\n [sublabel]=\\\"childrenUrlError\\\"\\n color=\\\"warn\\\"\\n icon=\\\"error\\\"\\n [attr.data-test]=\\\"'children-url-error'\\\"\\n ></td-message>\\n }\\n\\n @if (showMenu) {\\n <div class=\\\"td-markdown-list\\\">\\n <mat-action-list>\\n @for (\\n item of currentMenuItems;\\n let index = $index;\\n track item.id ?? index\\n ) {\\n <button\\n [id]=\\\"\\n 'td-markdown-navigator-list-item-' +\\n (item.id ? item.id : index)\\n \\\"\\n (click)=\\\"handleItemSelected(item)\\\"\\n mat-list-item\\n [matTooltip]=\\\"getTitle(item)\\\"\\n matTooltipPosition=\\\"before\\\"\\n matTooltipShowDelay=\\\"500\\\"\\n >\\n <mat-icon\\n matListItemIcon\\n [fontSet]=\\\"isCovalentIcon(item) ? 'covalent-icons' : ''\\\"\\n >\\n {{ getIcon(item) }}\\n </mat-icon>\\n <span matListItemTitle class=\\\"truncate\\\">\\n {{ getTitle(item) }}\\n </span>\\n <span matListItemLine class=\\\"truncate\\\">\\n {{ item.description }}\\n </span>\\n <mat-divider></mat-divider>\\n </button>\\n }\\n </mat-action-list>\\n </div>\\n }\\n <ng-container *ngComponentOutlet=\\\"footerComponent\\\"></ng-container>\\n </div>\\n </ng-container>\\n}\\n\\n@if (showEmptyState) {\\n <div layout=\\\"column\\\" layout-align=\\\"center center\\\" class=\\\"empty-state\\\">\\n <mat-icon matListItemAvatar>subject</mat-icon>\\n <h2>{{ emptyStateLabel }}</h2>\\n </div>\\n}\\n\", styles: [\":host{position:relative;height:inherit;height:100%;box-sizing:border-box;display:flex;flex-direction:column}:host .breadcrumb-current-title{margin-bottom:16px;padding-left:16px}:host .breadcrumb-end-icon{margin-left:8px;font-size:16px;width:16px;height:16px}:host .scroll-area{min-height:1px;overflow-y:auto;flex:1;box-sizing:border-box}:host .markdown-wrapper{padding:16px 16px 0}:host .td-markdown-list>.mat-list{padding-top:0}:host td-breadcrumbs{padding:8px 8px 0 16px}:host td-flavored-markdown-loader ::ng-deep .mat-progress-bar{top:0;left:0;right:0;position:absolute}:host .title{display:inline-block;vertical-align:middle;margin:8px 0;padding-left:16px}.truncate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.empty-state{padding:32px}.empty-state mat-icon{font-size:4em}\\n\"] }]\n }], () => [], { items: [{\n type: Input\n }], labels: [{\n type: Input\n }], startAt: [{\n type: Input\n }], copyCodeToClipboard: [{\n type: Input\n }], copyCodeTooltips: [{\n type: Input\n }], footer: [{\n type: Input\n }], compareWith: [{\n type: Input\n }], buttonClicked: [{\n type: Output\n }], itemSelected: [{\n type: Output\n }], markdownWrapper: [{\n type: ViewChild,\n args: ['markdownWrapper']\n }], clickListener: [{\n type: HostListener,\n args: ['click', ['$event']]\n }] }); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(TdMarkdownNavigatorComponent, { className: \"TdMarkdownNavigatorComponent\", filePath: \"markdown-navigator.component.ts\", lineNumber: 95 }); })();\nfunction getTitleFromUrl(url) {\n if (url) {\n const temp = new URL(url);\n if (temp.hash) {\n return removeLeadingHash(temp.hash);\n }\n else {\n const path = temp.pathname.split('/');\n const fileName = path[path.length - 1];\n return fileName.replace(/\\.[^/.]+$/, ''); // remove .md\n }\n }\n return '';\n}\nfunction getTitleFromMarkdownString(markdownString) {\n if (markdownString) {\n const firstLine = markdownString.split(/[\\r\\n]+/).find((line) => !!line) ?? '';\n return removeLeadingHash(firstLine).trim();\n }\n return '';\n}\nfunction isMarkdownHref(anchor) {\n return !isAnchorLink(anchor) && anchor.pathname.endsWith('.md');\n}\nfunction defaultCompareWith(o1, o2) {\n if (o1.id && o2.id) {\n return o1.id === o2.id;\n }\n return o1 === o2;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2Rvd24tbmF2aWdhdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvbWFya2Rvd24tbmF2aWdhdG9yL3NyYy9tYXJrZG93bi1uYXZpZ2F0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vbGlicy9tYXJrZG93bi1uYXZpZ2F0b3Ivc3JjL21hcmtkb3duLW5hdmlnYXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFHTCxZQUFZLEVBQ1osU0FBUyxFQUNULFVBQVUsRUFDVixpQkFBaUIsRUFDakIsdUJBQXVCLEVBRXZCLE1BQU0sRUFDTixZQUFZLEVBQ1osZUFBZSxFQUNmLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLFlBQVksRUFDWix1QkFBdUIsR0FDeEIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBRUwsMkJBQTJCLEVBQzNCLGlDQUFpQyxHQUNsQyxNQUFNLDZCQUE2QixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdEUsT0FBTyxFQUFF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IElucHV0LFxuICBPbkNoYW5nZXMsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIEhvc3RMaXN0ZW5lcixcbiAgVmlld0NoaWxkLFxuICBFbGVtZW50UmVmLFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIFR5cGUsXG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyLFxuICBTZWN1cml0eUNvbnRleHQsXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICByZW1vdmVMZWFkaW5nSGFzaCxcbiAgaXNBbmNob3JMaW5rLFxuICBUZE1hcmtkb3duTG9hZGVyU2VydmljZSxcbn0gZnJvbSAnQGNvdmFsZW50L21hcmtkb3duJztcbmltcG9ydCB7XG4gIElUZEZsYXZvcmVkTWFya2Rvd25CdXR0b25DbGlja0V2ZW50LFxuICBUZEZsYXZvcmVkTWFya2Rvd25Db21wb25lbnQsXG4gIFRkRmxhdm9yZWRNYXJrZG93bkxvYWRlckNvbXBvbmVudCxcbn0gZnJvbSAnQGNvdmFsZW50L2ZsYXZvcmVkLW1hcmtkb3duJztcbmltcG9ydCB7IERvbVNhbml0aXplciB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IElDb3B5Q29kZVRvb2x0aXBzIH0gZnJvbSAnQGNvdmFsZW50L2hpZ2hsaWdodCc7XG5pbXBvcnQgeyBmaXJzdFZhbHVlRnJvbSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcbmltcG9ydCB7IE1hdExpc3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9saXN0JztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUsIE1hdEljb25SZWdpc3RyeSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NCYXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1iYXInO1xuaW1wb3J0IHsgVGRNZXNzYWdlQ29tcG9uZW50IH0gZnJvbSAnQGNvdmFsZW50L2NvcmUvbWVzc2FnZSc7XG5pbXBvcnQge1xuICBUZEJyZWFkY3J1bWJzQ29tcG9uZW50LFxuICBUZEJyZWFkY3J1bWJDb21wb25lbnQsXG59IGZyb20gJ0Bjb3ZhbGVudC9jb3JlL2JyZWFkY3J1bWJzJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU1hcmtkb3duTmF2aWdhdG9ySXRlbSB7XG4gIGlkPzogc3RyaW5nO1xuICB0aXRsZT86IHN0cmluZztcbiAgdXJsPzogc3RyaW5nO1xuICBodHRwT3B0aW9ucz86IG9iamVjdDtcbiAgbWFya2Rvd25TdHJpbmc/OiBzdHJpbmc7IC8vIHJhdyBtYXJrZG93blxuICBhbmNob3I/OiBzdHJpbmc7XG4gIGNoaWxkcmVuPzogSU1hcmtkb3duTmF2aWdhdG9ySXRlbVtdO1xuICBjaGlsZHJlblVybD86IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGljb24/OiBzdHJpbmc7XG4gIGZvb3Rlcj86IFR5cGU8YW55PjtcbiAgc3RhcnRBdExpbms/OiBJTWFya2Rvd25OYXZpZ2F0b3JJdGVtO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElNYXJrZG93bk5hdmlnYXRvckxhYmVscyB7XG4gIGdvSG9tZT86IHN0cmluZztcbiAgZ29CYWNrPzogc3RyaW5nO1xuICBlbXB0eVN0YXRlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBJTWFya2Rvd25OYXZpZ2F0b3JDb21wYXJlV2l0aCA9IChcbiAgbzE6IElNYXJrZG93bk5hdmlnYXRvckl0ZW0sXG4gIG8yOiBJTWFya2Rvd25OYXZpZ2F0b3JJdGVtLFxuKSA9PiBib29sZWFuO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9NQVJLRE9XTl9OQVZJR0FUT1JfTEFCRUxTOiBJTWFya2Rvd25OYXZpZ2F0b3JMYWJlbHMgPSB7XG4gIGdvSG9tZTogJ0dvIGhvbWUnLFxuICBnb0JhY2s6ICdHbyBiYWNrJyxcbiAgZW1wdHlTdGF0ZTogJ05vIGl0ZW0ocykgdG8gZGlzcGxheScsXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZC1tYXJrZG93bi1uYXZpZ2F0b3InLFxuICB0ZW1wbGF0ZVVybDogJy4vbWFya2Rvd24tbmF2aWdhdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWFya2Rvd24tbmF2aWdhdG9yLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxuICAgIE1hdExpc3RNb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBNYXRQcm9ncmVzc0Jhck1vZHVsZSxcbiAgICBUZEZsYXZvcmVkTWFya2Rvd25Db21wb25lbnQsXG4gICAgVGRGbGF2b3JlZE1hcmtkb3duTG9hZGVyQ29tcG9uZW50LFxuICAgIFRkTWVzc2FnZUNvbXBvbmVudCxcbiAgICBUZEJyZWFkY3J1bWJzQ29tcG9uZW50LFxuICAgIFRkQnJlYWRjcnVtYkNvbXBvbmVudCxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbVGRNYXJrZG93bkxvYWRlclNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBUZE1hcmtkb3duTmF2aWdhdG9yQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgcHJpdmF0ZSBfbWFya2Rvd25VcmxMb2FkZXJTZXJ2aWNlID0gaW5qZWN0KFRkTWFya2Rvd25Mb2FkZXJTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBfY2hhbmdlRGV0ZWN0b3JSZWYgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICBwcml2YXRlIF9zYW5pdGl6ZXIgPSBpbmplY3QoRG9tU2FuaXRpemVyKTtcbiAgcHJpdmF0ZSBfaHR0cCA9IGluamVjdChIdHRwQ2xpZW50KTtcbiAgcHJpdmF0ZSBfaWNvblJlZ2lzdHJ5ID0gaW5qZWN0KE1hdEljb25SZWdpc3RyeSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5faWNvblJlZ2lzdHJ5LnJlZ2lzdGVyRm9udENsYXNzQWxpYXMoXG4gICAgICAnY292YWxlbnQtaWNvbnMnLFxuICAgICAgJ2NvdmFsZW50LWljb25zIG1hdC1saWdhdHVyZS1mb250JyxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIGl0ZW1zOiBJTWFya2Rvd25OYXZpZ2F0b3JJdGVtW11cbiAgICpcbiAgICogTGlzdCBvZiBJTWFya2Rvd25OYXZpZ2F0b3JJdGVtcyB0byBiZSByZW5kZXJlZFxuICAgKi9cbiAgQElucHV0KCkgaXRlbXM/OiBJTWFya2Rvd25OYXZpZ2F0b3JJdGVtW107XG5cbiAgLyoqXG4gICAqIGxhYmVscz86IElNYXJrZG93bk5hdmlnYXRvckxhYmVsc1xuICAgKlxuICAgKiBUcmFuc2xhdGVkIGxhYmVsc1xuICAgKi9cbiAgQElucHV0KCkgbGFiZWxzPzogSU1hcmtkb3duTmF2aWdhdG9yTGFiZWxzO1xuXG4gIC8qKlxuICAgKiBzdGFydEF0PzogSU1hcmtkb3duTmF2aWdhdG9ySXRlbSB8IElNYXJrZG93bk5hdmlnYXRvckl0ZW1bXTtcbiAgICpcbiAgICogSXRlbSBvciBwYXRoIHRvIHN0YXJ0IGF0XG4gICAqL1xuICBASW5wdXQoKSBzdGFydEF0PzogSU1hcmtkb3duTmF2aWdhdG9ySXRlbSB8IElNYXJrZG93bk5hdmlnYXRvckl0ZW1bXTtcblxuICAvKipcbiAgICogY29weUNvZGVUb0NsaXBib2FyZD86IGJvb2xlYW5cbiAgICpcbiAgICogRGlzcGxheSBjb3B5IGJ1dHRvbiBvbiBjb2RlIHNuaXBwZXRzIHRvIGNvcHkgY29kZSB0byBjbGlwYm9hcmQuXG4gICAqXG4gICAqL1xuICBASW5wdXQoKSBjb3B5Q29kZVRvQ2xpcGJvYXJkPyA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBjb3B5Q29kZVRvb2x0aXBzPzogSUNvcHlDb2RlVG9vbHRpcHNcbiAgICpcbiAgICogVG9vbHRpcHMgZm9yIGNvcHkgYnV0dG9uIHRvIGNvcHkgYW5kIHVwb24gY29weWluZy5cbiAgICovXG4gIEBJbnB1dCgpIGNvcHlDb2RlVG9vbHRpcHM/OiBJQ29weUNvZGVUb29sdGlwcyA9IHt9O1xuXG4gIC8qKlxuICAgKiBmb290ZXI/OiBUeXBlPGFueT5cbiAgICpcbiAgICogQ29tcG9uZW50IHRvIGJlIGRpc3BsYXllZCBpbiBmb290ZXJcbiAgICovXG4gIEBJbnB1dCgpIGZvb3Rlcj86IGFueTtcblxuICAvKipcbiAgICogY29tcGFyZVdpdGg/OiBJTWFya2Rvd25OYXZpZ2F0b3JDb21wYXJlV2l0aFxuICAgKlxuICAgKiBGdW5jdGlvbiB1c2VkIHRvIGZpbmQgc3RhcnRBdCBpdGVtXG4gICAqIERlZmF1bHRzIHRvIGNvbXBhcmlzb24gYnkgc3RyaWN0IGVxdWFsaXR5ICg9PT0pXG4gICAqL1xuICBASW5wdXQoKSBjb21wYXJlV2l0aD86IElNYXJrZG93bk5hdmlnYXRvckNvbXBhcmVXaXRoO1xuXG4gIEBPdXRwdXQoKSBidXR0b25DbGlja2VkOiBFdmVudEVtaXR0ZXI8SVRkRmxhdm9yZWRNYXJrZG93bkJ1dHRvbkNsaWNrRXZlbnQ+ID1cbiAgICBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBpdGVtU2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjxJTWFya2Rvd25OYXZpZ2F0b3JJdGVtPiA9XG4gICAgbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBWaWV3Q2hpbGQoJ21hcmtkb3duV3JhcHBlcicpIG1hcmtkb3duV3JhcHBlciE6IEVsZW1lbnRSZWY7XG5cbiAgaGlzdG9yeVN0YWNrOiBJTWFya2Rvd25OYXZpZ2F0b3JJdGVtW10gPSBbXTsgLy8gaGlzdG9yeVxuICBjdXJyZW50TWFya2Rvd25JdGVtPzogSU1hcmtkb3duTmF2aWdhdG9ySXRlbTsgLy8gY3VycmVudGx5IHJlbmRlcmVkXG4gIGN1cnJlbnRNZW51SXRlbXM/OiBJTWFya2Rvd25OYXZpZ2F0b3JJdGVtW10gPSBbXTsgLy8gY3VycmVudCBtZW51IGl0ZW1zXG4gIGxvYWRpbmcgPSBmYWxzZTtcblxuICBtYXJrZG93bkxvYWRlckVycm9yPzogc3RyaW5nO1xuICBjaGlsZHJlblVybEVycm9yPzogc3RyaW5nO1xuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcbiAgY2xpY2tMaXN0ZW5lcihldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBlbGVtZW50OiBIVE1MRWxlbWVudCA9IDxIVE1MRWxlbWVudD5ldmVudC5zcmNFbGVtZW50O1xuICAgIGlmIChcbiAgICAgIGVsZW1lbnQubWF0Y2hlcygnYVtocmVmXScpICYmXG4gICAgICBpc01hcmtkb3duSHJlZig8SFRNTEFuY2hvckVsZW1lbnQ+ZWxlbWVudClcbiAgICApIHtcbiAgICAgIHRoaXMuaGFuZGxlTGlua0NsaWNrKGV2ZW50KTtcbiAgICB9XG4gIH1cblxuICBnZXQgc2hvd0dvQmFja0J1dHRvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oaXN0b3J5U3RhY2subGVuZ3RoID4gMDtcbiAgfVxuXG4gIGdldCBzaG93SGVhZGVyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuY3VycmVudEl0ZW1UaXRsZTtcbiAgfVxuXG4gIGdldCBzaG93TWVudSgpOiBib29sZWFuIHtcbiAgICBjb25zdCBzaG93TWVudSA9IHRoaXMuY3VycmVudE1lbnVJdGVtcyAmJiB0aGlzLmN1cnJlbnRNZW51SXRlbXMubGVuZ3RoID4gMDtcbiAgICByZXR1cm4gc2hvd01lbnUgPz8gZmFsc2U7XG4gIH1cblxuICBnZXQgc2hvd1RkTWFya2Rvd25Mb2FkZXIoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgICEhdGhpcy5jdXJyZW50TWFya2Rvd25JdGVtICYmXG4gICAgICAhIXRoaXMuY3VycmVudE1hcmtkb3duSXRlbS51cmwgJiZcbiAgICAgICF0aGlzLnNob3dUZE1hcmtkb3duXG4gICAgKTtcbiAgfVxuXG4gIGdldCBzaG93VGRNYXJrZG93bigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgISF0aGlzLmN1cnJlbnRNYXJrZG93bkl0ZW0gJiYgISF0aGlzLmN1cnJlbnRNYXJrZG93bkl0ZW0ubWFya2Rvd25TdHJpbmdcbiAgICApO1xuICB9XG5cbiAgZ2V0IHVybCgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGlmICh0aGlzLmN1cnJlbnRNYXJrZG93bkl0ZW0pIHtcbiAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRNYXJrZG93bkl0ZW0udXJsO1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgZ2V0IGZvb3RlckNvbXBvbmVudCgpOiBhbnkge1xuICAgIGlmICh0aGlzLmN1cnJlbnRNYXJrZG93bkl0ZW0gJiYgdGhpcy5jdXJyZW50TWFya2Rvd25JdGVtLmZvb3Rlcikge1xuICAgICAgcmV0dXJuIHRoaXMuY3VycmVudE1hcmtkb3duSXRlbS5mb290ZXI7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmZvb3RlcjtcbiAgfVxuICBnZXQgaHR0cE9wdGlvbnMoKTogb2JqZWN0IHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodGhpcy5jdXJyZW50TWFya2Rvd25JdGVtKSB7XG4gICAgICByZXR1cm4gdGhpcy5jdXJyZW50TWFya2Rvd25JdGVtLmh0dHBPcHRpb25zO1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIGdldCBtYXJrZG93blN0cmluZygpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGlmICh0aGlzLmN1cnJlbnRNYXJrZG93bkl0ZW0pIHtcbiAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRNYXJrZG93bkl0ZW0ubWFya2Rvd25TdHJpbmc7XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBnZXQgYW5jaG9yKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHRoaXMuY3VycmVudE1hcmtkb3duSXRlbSkge1xuICAgICAgcmV0dXJuIHRoaXMuY3VycmVudE1hcmtkb3duSXRlbS5hbmNob3I7XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBnZXQgc2hvd0VtcHR5U3RhdGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLml0ZW1zIHx8IHRoaXMuaXRlbXMubGVuZ3RoIDwgMTtcbiAgfVxuXG4gIGdldCBnb0hvbWVMYWJlbCgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiAoXG4gICAgICAodGhpcy5sYWJlbHMgJiYgdGhpcy5sYWJlbHMuZ29Ib21lKSB8fFxuICAgICAgREVGQVVMVF9NQVJLRE9XTl9OQVZJR0FUT1JfTEFCRUxTLmdvSG9tZVxuICAgICk7XG4gIH1cblxuICBnZXQgZ29CYWNrTGFiZWwoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gKFxuICAgICAgKHRoaXMubGFiZWxzICYmIHRoaXMubGFiZWxzLmdvQmFjaykgfHxcbiAgICAgIERFRkFVTFRfTUFSS0RPV05fTkFWSUdBVE9SX0xBQkVMUy5nb0JhY2tcbiAgICApO1xuICB9XG5cbiAgZ2V0IGVtcHR5U3RhdGVMYWJlbCgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiAoXG4gICAgICAodGhpcy5sYWJlbHMgJiYgdGhpcy5sYWJlbHMuZW1wdHlTdGF0ZSkgfHxcbiAgICAgIERFRkFVTFRfTUFSS0RPV05fTkFWSUdBVE9SX0xBQkVMUy5lbXB0eVN0YXRlXG4gICAgKTtcbiAgfVxuXG4gIGdldCBjdXJyZW50SXRlbVRpdGxlKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuY3VycmVudE1hcmtkb3duSXRlbSkge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0VGl0bGUodGhpcy5jdXJyZW50TWFya2Rvd25JdGVtKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuaGlzdG9yeVN0YWNrLmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiB0aGlzLmdldFRpdGxlKHRoaXMuaGlzdG9yeVN0YWNrW3RoaXMuaGlzdG9yeVN0YWNrLmxlbmd0aCAtIDFdKTtcbiAgICB9XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgZ2V0IG5hdmlnYXRpb25CcmVhZGNydW1icygpOiBJTWFya2Rvd25OYXZpZ2F0b3JJdGVtW10ge1xuICAgIHJldHVybiB0aGlzLmhpc3RvcnlTdGFjay5zbGljZSgwLCAtMSk7XG4gIH1cblxuICBhc3luYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKGNoYW5nZXNbJ2l0ZW1zJ10pIHtcbiAgICAgIHRoaXMucmVzZXQoKTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXNbJ3N0YXJ0QXQnXSAmJiB0aGlzLml0ZW1zICYmIHRoaXMuc3RhcnRBdCkge1xuICAgICAgdGhpcy5fanVtcFRvKHRoaXMuc3RhcnRBdCwgdW5kZWZpbmVkKTtcbiAgICB9XG4gIH1cblxuICBoYXNDaGlsZHJlbk9yQ2hpbGRyZW5VcmwoaXRlbTogSU1hcmtkb3duTmF2aWdhdG9ySXRlbSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoaXRlbS5jaGlsZHJlbiAmJiBpdGVtLmNoaWxkcmVuLmxlbmd0aCA+IDApIHx8ICEhaXRlbS5jaGlsZHJlblVybDtcbiAgfVxuICBjbGVhckVycm9ycygpOiB2b2lkIHtcbiAgICB0aGlzLm1hcmtkb3duTG9hZGVyRXJyb3IgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5jaGlsZHJlblVybEVycm9yID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgcmVzZXQoKTogdm9pZCB7XG4gICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgdGhpcy5jbGVhckVycm9ycygpO1xuICAgIC8vIGlmIHNpbmdsZSBpdGVtIGFuZCBubyBjaGlsZHJlblxuICAgIGlmIChcbiAgICAgIHRoaXMuaXRlbXMgJiZcbiAgICAgIHRoaXMuaXRlbXMubGVuZ3RoID09PSAxICYmXG4gICAgICAhdGhpcy5oYXNDaGlsZHJlbk9yQ2hpbGRyZW5VcmwodGhpcy5pdGVtc1swXSlcbiAgICApIHtcbiAgICAgIHRoaXMuY3VycmVudE1lbnVJdGVtcyA9IFtdO1xuICAgICAgdGhpcy5jdXJyZW50TWFya2Rvd25JdGVtID0gdGhpcy5pdGVtc1swXTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jdXJyZW50TWVudUl0ZW1zID0gdGhpcy5pdGVtcztcbiAgICAgIHRoaXMuY3VycmVudE1hcmtkb3duSXRlbSA9IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgdGhpcy5oaXN0b3J5U3RhY2sgPSBbXTtcbiAgICB0aGlzLml0ZW1TZWxlY3RlZC5lbWl0KHVuZGVmaW5lZCk7XG4gICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBnb0JhY2soZ29CYWNrTGVuZ3RoID0gMik6IHZvaWQge1xuICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgIHRoaXMuY2xlYXJFcnJvcnMoKTtcbiAgICBsZXQgcGFyZW50OiBJTWFya2Rvd25OYXZpZ2F0b3JJdGVtIHwgdW5kZWZpbmVkID1cbiAgICAgIHRoaXMuaGlzdG9yeVN0YWNrW3RoaXMuaGlzdG9yeVN0YWNrLmxlbmd0aCAtIGdvQmFja0xlbmd0aF07XG5cbiAgICBpZiAocGFyZW50Py5zdGFydEF0TGluaykge1xuICAgICAgcGFyZW50ID0gdGhpcy5oaXN0b3J5U3RhY2tbdGhpcy5oaXN0b3J5U3RhY2subGVuZ3RoIC0gM11cbiAgICAgICAgPyB0aGlzLmhpc3RvcnlTdGFja1t0aGlzLmhpc3RvcnlTdGFjay5sZW5ndGggLSAzXVxuICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMuaGlzdG9yeVN0YWNrID0gdGhpcy5oaXN0b3J5U3RhY2suc2xpY2UoMCwgLWdvQmFja0xlbmd0aCk7XG4gICAgfVxuXG4gICAgaWYgKHBhcmVudCkge1xuICAgICAgdGhpcy5jdXJyZW50TWFya2Rvd25JdGVtID0gcGFyZW50O1xuICAgICAgdGhpcy5oaXN0b3J5U3RhY2sgPSB0aGlzLmhpc3RvcnlTdGFjay5zbGljZShcbiAgICAgICAgMCxcbiAgICAgICAgdGhpcy5oaXN0b3J5U3RhY2subGVuZ3RoIC0gZ29CYWNrTGVuZ3RoICsgMSxcbiAgICAgICk7XG4gICAgICB0aGlzLnNldENoaWxkcmVuQXNDdXJyZW50TWVudUl0ZW1zKHBhcmVudCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucmVzZXQoKTtcbiAgICB9XG4gICAgdGhpcy5pdGVtU2VsZWN0ZWQuZW1pdChwYXJlbnQpO1xuICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgaGFuZGxlSXRlbVNlbGVjdGVkKGl0ZW06IElNYXJrZG93bk5hdmlnYXRvckl0ZW0pOiB2b2lkIHtcbiAgICB0aGlzLmNsZWFyRXJyb3JzKCk7XG4gICAgdGhpcy5jdXJyZW50TWFya2Rvd25JdGVtID0gaXRlbTtcbiAgICB0aGlzLmhpc3RvcnlTdGFjayA9IFsuLi50aGlzLmhpc3RvcnlTdGFjaywgaXRlbV07XG4gICAgdGhpcy5zZXRDaGlsZHJlbkFzQ3VycmVudE1lbnVJdGVtcyhpdGVtKTtcbiAgICB0aGlzLml0ZW1TZWxlY3RlZC5lbWl0KGl0ZW0pO1xuICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgYXN5bmMgc2V0Q2hpbGRyZW5Bc0N1cnJlbnRNZW51SXRlbXMoXG4gICAgaXRlbTogSU1hcmtkb3duTmF2aWdhdG9ySXRlbSxcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5jdXJyZW50TWVudUl0ZW1zID0gW107XG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcblxuICAgIGNvbnN0IHN0YWNrU25hcHNob3Q6IElNYXJrZG93bk5hdmlnYXRvckl0ZW1bXSA9IHRoaXMuaGlzdG9yeVN0YWNrO1xuICAgIGxldCBjaGlsZHJlbjogSU1hcmtkb3duTmF2aWdhdG9ySXRlbVtdID0gW107XG4gICAgaWYgKGl0ZW0uY2hpbGRyZW4pIHtcbiAgICAgIGNoaWxkcmVuID0gaXRlbS5jaGlsZHJlbjtcbiAgICB9IGVsc2UgaWYgKGl0ZW0uY2hpbGRyZW5VcmwpIHtcbiAgICAgIGNoaWxkcmVuID0gYXdhaXQgdGhpcy5sb2FkQ2hpbGRyZW5VcmwoaXRlbSk7XG4gICAgfVxuICAgIGlmIChjaGlsZHJlbiAmJiBjaGlsZHJlbi5sZW5ndGggJiYgaXRlbS5zdGFydEF0TGluaykge1xuICAgICAgdGhpcy5fanVtcFRvKGl0ZW0uc3RhcnRBdExpbmssIGNoaWxkcmVuKTtcbiAgICB9XG4gICAgY29uc3QgbmV3U3RhY2tTbmFwc2hvdDogSU1hcmtkb3duTmF2aWdhdG9ySXRlbVtdID0gdGhpcy5oaXN0b3J5U3RhY2s7XG4gICAgaWYgKFxuICAgICAgc3RhY2tTbmFwc2hvdC5sZW5ndGggPT09IG5ld1N0YWNrU25hcHNob3QubGVuZ3RoICYmXG4gICAgICBzdGFja1NuYXBzaG90LmV2ZXJ5KFxuICAgICAgICAoc3RhY2tJdGVtOiBJTWFya2Rvd25OYXZpZ2F0b3JJdGVtLCBpbmRleDogbnVtYmVyKSA9PlxuICAgICAgICAgIHN0YWNrSXRlbSA9PT0gbmV3U3RhY2tTbmFwc2hvdFtpbmRleF0sXG4gICAgICApXG4gICAgKSB7XG4gICAgICB0aGlzLmN1cnJlbnRNZW51SXRlbXMgPSBjaGlsZHJlbjtcbiAgICB9XG5cbiAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIGFzeW5jIGxvYWRDaGlsZHJlblVybChcbiAgICBpdGVtOiBJTWFya2Rvd25OYXZpZ2F0b3JJdGVtLFxuICApOiBQcm9taXNlPElNYXJrZG93bk5hdmlnYXRvckl0ZW1bXT4ge1xuICAgIGNvbnN0IHNhbml0aXplZFVybCA9XG4gICAgICB0aGlzLl9zYW5pdGl6ZXIuc2FuaXRpemUoU2VjdXJpdHlDb250ZXh0LlVSTCwgaXRlbS5jaGlsZHJlblVybCA/PyBudWxsKSA/P1xuICAgICAgJyc7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBhd2FpdCBmaXJzdFZhbHVlRnJvbTxJTWFya2Rvd25OYXZpZ2F0b3JJdGVtW10+KFxuICAgICAgICB0aGlzLl9odHRwLmdldDxJTWFya2Rvd25OYXZpZ2F0b3JJdGVtW10+KHNhbml0aXplZFVybCwge1xuICAgICAgICAgIC4uLml0ZW0uaHR0cE9wdGlvbnMsXG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICB0aGlzLmhhbmRsZUNoaWxkcmVuVXJsRXJyb3IoZXJyb3IpO1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgfVxuXG4gIGdldFRpdGxlKGl0ZW06IElNYXJrZG93bk5hdmlnYXRvckl0ZW0pOiBzdHJpbmcge1xuICAgIGlmICghaXRlbSkge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgICByZXR1cm4gKFxuICAgICAgcmVtb3ZlTGVhZGluZ0hhc2goaXRlbS5hbmNob3IgPz8gJycpIHx8XG4gICAgICBpdGVtLnRpdGxlIHx8XG4gICAgICBnZXRUaXRsZUZyb21VcmwoaXRlbS51cmwgPz8gJycpIHx8XG4gICAgICBnZXRUaXRsZUZyb21NYXJrZG93blN0cmluZyhpdGVtLm1hcmtkb3duU3RyaW5nID8/ICcnKSB8fFxuICAgICAgJydcbiAgICApLnRyaW0oKTtcbiAgfVxuXG4gIGdldEljb24oaXRlbTogSU1hcmtkb3duTmF2aWdhdG9ySXRlbSk6IHN0cmluZyB7XG4gICAgY29uc3QgaWNvbiA9IGl0ZW0/Lmljb24gfHwgJ3N1YmplY3QnO1xuICAgIHJldHVybiBpY29uLnNwbGl0KCc7JylbMF07XG4gIH1cblxuICBpc0NvdmFsZW50SWNvbihpdGVtOiBJTWFya2Rvd25OYXZpZ2F0b3JJdGVtKTogYm9vbGVhbiB7XG4gICAgaWYgKCFpdGVtPy5pY29uKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIGl0ZW0/Lmljb24uaW5jbHVkZXMoJztjb3ZhbGVudCcpO1xuICB9XG5cbiAgaGFuZGxlQ2hpbGRyZW5VcmxFcnJvcihlcnJvcjogRXJyb3IpOiB2b2lkIHtcbiAgICB0aGlzLmNoaWxkcmVuVXJsRXJyb3IgPSBlcnJvci5tZXNzYWdlO1xuICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgaGFuZGxlTWFya2Rvd25Mb2FkZXJFcnJvcihlcnJvcjogRXJyb3IpOiB2b2lkIHtcbiAgICB0aGlzLm1hcmtkb3duTG9hZGVyRXJyb3IgPSBlcnJvciA/IGVycm9yLm1lc3NhZ2UgOiAnJztcbiAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgX2p1bXBUbyhcbiAgICBpdGVtT3JQYXRoOiBJTWFya2Rvd25OYXZpZ2F0b3JJdGVtIHwgSU1hcmtkb3duTmF2aWdhdG9ySXRlbVtdLFxuICAgIGNoaWxkcmVuPzogSU1hcmtkb3duTmF2aWdhdG9ySXRlbVtdLFxuICApOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBoaXN0b3J5U3RhY2s6IElNYXJrZG93bk5hdmlnYXRvckl0ZW1bXSA9IHRoaXMuaGlzdG9yeVN0YWNrO1xuICAgIGxldCBwYXRoOiBJTWFya2Rvd25OYXZpZ2F0b3JJdGVtW10gPSBbXTtcblxuICAgIGlmICh0aGlzLml0ZW1zPy5sZW5ndGgpIHtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KGl0ZW1PclBhdGgpKSB7XG4gICAgICAgIHBhdGggPSBhd2FpdCB0aGlzLmZvbGxvd1BhdGgodGhpcy5pdGVtcywgaXRlbU9yUGF0aCk7XG4gICAgICB9IGVsc2UgaWYgKGNoaWxkcmVuICYmIGNoaWxkcmVuLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhpcy5oaXN0b3J5U3RhY2sgPSBoaXN0b3J5U3RhY2s7XG4gICAgICAgIHBhdGggPSB0aGlzLmZpbmRQYXRoKGNoaWxkcmVuLCBpdGVtT3JQYXRoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBhdGggPSB0aGlzLmZpbmRQYXRoKHRoaXMuaXRlbXMsIGl0ZW1PclBhdGgpO1xuICAgICAgfVxuICAgICAgcGF0aC5mb3JFYWNoKChwYXRoSXRlbTogSU1hcmtkb3duTmF2aWdhdG9ySXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgaWYgKGluZGV4ID09PSAwKSB7XG4gICAgICAgICAgdGhpcy5yZXNldCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5oYW5kbGVJdGVtU2VsZWN0ZWQocGF0aEl0ZW0pO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuICEhcGF0aC5sZW5ndGg7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGZvbGxvd1BhdGgoXG4gICAgaXRlbXM6IElNYXJrZG93bk5hdmlnYXRvckl0ZW1bXSxcbiAgICBwYXRoOiBJTWFya2Rvd25OYXZpZ2F0b3JJdGVtW10sXG4gICk6IFByb21pc2U8SU1hcmtkb3duTmF2aWdhdG9ySXRlbVtdPiB7XG4gICAgbGV0IHBhdGhJdGVtczogSU1hcmtkb3duTmF2aWdhdG9ySXRlbVtdID0gW107XG4gICAgbGV0IGN1cnJlbnRMZXZlbDogSU1hcmtkb3duTmF2aWdhdG9ySXRlbVtdID0gaXRlbXM7XG4gICAgY29uc3QgY29tcGFyZVdpdGg6IElNYXJrZG93bk5hdmlnYXRvckNvbXBhcmVXaXRoID1cbiAgICAgIHRoaXMuY29tcGFyZVdpdGggfHwgZGVmYXVsdENvbXBhcmVXaXRoO1xuICAgIGZvciAoY29uc3QgcGF0aEl0ZW0gb2YgcGF0aCkge1xuICAgICAgY29uc3QgZm91bmRJdGVtOiBJTWFya2Rvd25OYXZpZ2F0b3JJdGVtIHwgdW5kZWZpbmVkID0gY3VycmVudExldmVsLmZpbmQoXG4gICAgICAgIChpdGVtOiBJTWFya2Rvd25OYXZpZ2F0b3JJdGVtKSA9PiBjb21wYXJlV2l0aChwYXRoSXRlbSwgaXRlbSksXG4gICAgICApO1xuXG4gICAgICBpZiAoZm91bmRJdGVtKSB7XG4gICAgICAgIHBhdGhJdGVtcyA9IFsuLi5wYXRoSXRlbXMsIGZvdW5kSXRlbV07XG5cbiAgICAgICAgaWYgKGZvdW5kSXRlbS5jaGlsZHJlbikge1xuICAgICAgICAgIGN1cnJlbnRMZXZlbCA9IGZvdW5kSXRlbS5jaGlsZHJlbjtcbiAgICAgICAgfSBlbHNlIGlmIChmb3VuZEl0ZW0uY2hpbGRyZW5VcmwpIHtcbiAgICAgICAgICBjdXJyZW50TGV2ZWwgPSBhd2FpdCB0aGlzLmxvYWRDaGlsZHJlblVybChmb3VuZEl0ZW0pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHBhdGhJdGVtcy5sZW5ndGggIT09IHBhdGgubGVuZ3RoKSB7XG4gICAgICBwYXRoSXRlbXMgPSBbXTtcbiAgICB9XG4gICAgcmV0dXJuIHBhdGhJdGVtcztcbiAgfVxuXG4gIHByaXZhdGUgZmluZFBhdGgoXG4gICAgaXRlbXM/OiBJTWFya2Rvd25OYXZpZ2F0b3JJdGVtW10sXG4gICAgaXRlbT86IElNYXJrZG93bk5hdmlnYXRvckl0ZW0sXG4gICk6IElNYXJrZG93bk5hdmlnYXRvckl0ZW1bXSB7XG4gICAgY29uc3QgY29tcGFyZVdpdGg6IElNYXJrZG93bk5hdmlnYXRvckNvbXBhcmVXaXRoID1cbiAgICAgIHRoaXMuY29tcGFyZVdpdGggfHwgZGVmYXVsdENvbXBhcmVXaXRoO1xuICAgIGlmIChpdGVtcykge1xuICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiBpdGVtcykge1xuICAgICAgICBpZiAoaXRlbSAmJiBjb21wYXJlV2l0aChjaGlsZCwgaXRlbSkpIHtcbiAgICAgICAgICByZXR1cm4gW2NoaWxkXTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBhbmNlc3RvcnM6IElNYXJrZG93bk5hdmlnYXRvckl0ZW1bXSA9IHRoaXMuZmluZFBhdGgoXG4gICAgICAgICAgY2hpbGQuY2hpbGRyZW4sXG4gICAgICAgICAgaXRlbSxcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKGFuY2VzdG9ycy5sZW5ndGgpIHtcbiAgICAgICAgICByZXR1cm4gW2NoaWxkLCAuLi5hbmNlc3RvcnNdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgaGFuZGxlTGlua0NsaWNrKGV2ZW50OiBFdmVudCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgY29uc3QgbGluazogSFRNTEFuY2hvckVsZW1lbnQgPSA8SFRNTEFuY2hvckVsZW1lbnQ+ZXZlbnQudGFyZ2V0O1xuICAgIGNvbnN0IHVybDogVVJMID0gbmV3IFVSTChsaW5rLmhyZWYpO1xuICAgIGNvbnN0IHVybFBhcnRzID0gdXJsLmhyZWYuc3BsaXQoJy8nKTtcbiAgICBjb25zdCBpZCA9IHVybFBhcnRzW3VybFBhcnRzLmxlbmd0aCAtIDFdLnNwbGl0KCcubWQnKVswXTtcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIGNvbnN0IHBhdGhGb3VuZCA9IGF3YWl0IHRoaXMuX2p1bXBUbyh7IGlkIH0pO1xuXG4gICAgaWYgKHBhdGhGb3VuZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBtYXJrZG93blN0cmluZzogc3RyaW5nID0gYXdhaXQgdGhpcy5fbWFya2Rvd25VcmxMb2FkZXJTZXJ2aWNlLmxvYWQoXG4gICAgICAgIHVybC5ocmVmLFxuICAgICAgKTtcbiAgICAgIC8vIHBhc3MgaW4gdXJsIHRvIGJlIGFibGUgdG8gdXNlIGN1cnJlbnRNYXJrZG93bkl0ZW0udXJsIGxhdGVyIG9uXG4gICAgICB0aGlzLmhhbmRsZUl0ZW1TZWxlY3RlZCh7IG1hcmtkb3duU3RyaW5nLCB1cmw6IHVybC5ocmVmIH0pO1xuICAgICAgdGhpcy5tYXJrZG93bldyYXBwZXIubmF0aXZlRWxlbWVudC5zY3JvbGxUb3AgPSAwO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zdCB3aW4gPSB3aW5kb3cub3Blbih1cmwuaHJlZiwgJ19ibGFuaycpO1xuICAgICAgd2luPy5mb2N1cygpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICB9XG4gICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0VGl0bGVGcm9tVXJsKHVybDogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKHVybCkge1xuICAgIGNvbnN0IHRlbXA6IFVSTCA9IG5ldyBVUkwodXJsKTtcbiAgICBpZiAodGVtcC5oYXNoKSB7XG4gICAgICByZXR1cm4gcmVtb3ZlTGVhZGluZ0hhc2godGVtcC5oYXNoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgcGF0aDogc3RyaW5nW10gPSB0ZW1wLnBhdGhuYW1lLnNwbGl0KCcvJyk7XG4gICAgICBjb25zdCBmaWxlTmFtZTogc3RyaW5nID0gcGF0aFtwYXRoLmxlbmd0aCAtIDFdO1xuICAgICAgcmV0dXJuIGZpbGVOYW1lLnJlcGxhY2UoL1xcLlteLy5dKyQvLCAnJyk7IC8vIHJlbW92ZSAubWRcbiAgICB9XG4gIH1cbiAgcmV0dXJuICcnO1xufVxuXG5mdW5jdGlvbiBnZXRUaXRsZUZyb21NYXJrZG93blN0cmluZyhtYXJrZG93blN0cmluZzogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKG1hcmtkb3duU3RyaW5nKSB7XG4gICAgY29uc3QgZmlyc3RMaW5lOiBzdHJpbmcgPVxuICAgICAgbWFya2Rvd25TdHJpbmcuc3BsaXQoL1tcXHJcXG5dKy8pLmZpbmQoKGxpbmU6IHN0cmluZykgPT4gISFsaW5lKSA/PyAnJztcbiAgICByZXR1cm4gcmVtb3ZlTGVhZGluZ0hhc2goZmlyc3RMaW5lKS50cmltKCk7XG4gIH1cbiAgcmV0dXJuICcnO1xufVxuXG5mdW5jdGlvbiBpc01hcmtkb3duSHJlZihhbmNob3I6IEhUTUxBbmNob3JFbGVtZW50KTogYm9vbGVhbiB7XG4gIHJldHVybiAhaXNBbmNob3JMaW5rKGFuY2hvcikgJiYgYW5jaG9yLnBhdGhuYW1lLmVuZHNXaXRoKCcubWQnKTtcbn1cbmZ1bmN0aW9uIGRlZmF1bHRDb21wYXJlV2l0aChcbiAgbzE6IElNYXJrZG93bk5hdmlnYXRvckl0ZW0sXG4gIG8yOiBJTWFya2Rvd25OYXZpZ2F0b3JJdGVtLFxuKTogYm9vbGVhbiB7XG4gIGlmIChvMS5pZCAmJiBvMi5pZCkge1xuICAgIHJldHVybiBvMS5pZCA9PT0gbzIuaWQ7XG4gIH1cbiAgcmV0dXJuIG8xID09PSBvMjtcbn1cbiIsIkBpZiAoIXNob3dFbXB0eVN0YXRlKSB7XG4gIDxuZy1jb250YWluZXI+XG4gICAgQGlmIChsb2FkaW5nKSB7XG4gICAgICA8bWF0LXByb2dyZXNzLWJhciBtb2RlPVwiaW5kZXRlcm1pbmF0ZVwiIGNvbG9yPVwiYWNjZW50XCI+PC9tYXQtcHJvZ3Jlc3MtYmFyPlxuICAgIH1cblxuICAgIEBpZiAoc2hvd0hlYWRlcikge1xuICAgICAgPHRkLWJyZWFkY3J1bWJzPlxuICAgICAgICA8YVxuICAgICAgICAgIHRkLWJyZWFkY3J1bWJcbiAgICAgICAgICBbbWF0VG9vbHRpcF09XCJnb0hvbWVMYWJlbCA/PyAnJ1wiXG4gICAgICAgICAgKGNsaWNrKT1cInJlc2V0KClcIlxuICAgICAgICAgIFthdHRyLmRhdGEtdGVzdF09XCInaG9tZS1idXR0b24nXCJcbiAgICAgICAgICA+SG9tZTwvYVxuICAgICAgICA+XG5cbiAgICAgICAgQGZvciAoXG4gICAgICAgICAgaXRlbSBvZiBuYXZpZ2F0aW9uQnJlYWRjcnVtYnM7XG4gICAgICAgICAgbGV0IGluZGV4ID0gJGluZGV4O1xuICAgICAgICAgIHRyYWNrIGl0ZW0uaWQgPz8gaW5kZXhcbiAgICAgICAgKSB7XG4gICAgICAgICAgPGFcbiAgICAgICAgICAgIHRkLWJyZWFkY3J1bWJcbiAgICAgICAgICAgIChjbGljayk9XCJnb0JhY2soaGlzdG9yeVN0YWNrLmxlbmd0aCAtIGluZGV4KVwiXG4gICAgICAgICAgICBbYXR0ci5kYXRhLXRlc3RdPVwiJ2JhY2stYnV0dG9uLScgKyBpbmRleFwiXG4gICAgICAgICAgICA+e3sgZ2V0VGl0bGUoaXRlbSkgfX08L2FcbiAgICAgICAgICA+XG4gICAgICAgIH1cbiAgICAgIDwvdGQtYnJlYWRjcnVtYnM+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJicmVhZGNydW1iLWN1cnJlbnQtdGl0bGVcIiBbYXR0ci5kYXRhLXRlc3RdPVwiJ3RpdGxlJ1wiPlxuICAgICAgICB7eyBjdXJyZW50SXRlbVRpdGxlIH19XG4gICAgICA8L2Rpdj5cblxuICAgICAgPG1hdC1kaXZpZGVyIFtzdHlsZS5wb3NpdGlvbl09XCIncmVsYXRpdmUnXCI+PC9tYXQtZGl2aWRlcj5cbiAgICB9XG5cbiAgICA8ZGl2IGNsYXNzPVwic2Nyb2xsLWFyZWFcIiBpZD1cInRkLW1hcmtkb3duLW5hdmlnYXRvci1jb250ZW50XCI+XG4gICAgICBAaWYgKHNob3dUZE1hcmtkb3duTG9hZGVyIHx8IHNob3dUZE1hcmtkb3duKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYXJrZG93bi13cmFwcGVyXCIgI21hcmtkb3duV3JhcHBlcj5cbiAgICAgICAgICBAaWYgKG1hcmtkb3duTG9hZGVyRXJyb3IpIHtcbiAgICAgICAgICAgIDx0ZC1tZXNzYWdlXG4gICAgICAgICAgICAgIFtzdWJsYWJlbF09XCJtYXJrZG93bkxvYWRlckVycm9yXCJcbiAgICAgICAgICAgICAgY29sb3I9XCJ3YXJuXCJcbiAgICAgICAgICAgICAgaWNvbj1cImVycm9yXCJcbiAgICAgICAgICAgICAgW2F0dHIuZGF0YS10ZXN0XT1cIidtYXJrZG93bi1sb2FkZXItZXJyb3InXCJcbiAgICAgICAgICAgID48L3RkLW1lc3NhZ2U+XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGlmIChzaG93VGRNYXJrZG93bkxvYWRlcikge1xuICAgICAgICAgICAgPHRkLWZsYXZvcmVkLW1hcmtkb3duLWxvYWRlclxuICAgICAgICAgICAgICBbdXJsXT1cInVybCA/PyAnJ1wiXG4gICAgICAgICAgICAgIFtodHRwT3B0aW9uc109XCJodHRwT3B0aW9ucyA/PyB7fVwiXG4gICAgICAgICAgICAgIFthbmNob3JdPVwiYW5jaG9yID8/ICcnXCJcbiAgICAgICAgICAgICAgW2NvcHlDb2RlVG9DbGlwYm9hcmRdPVwiY29weUNvZGVUb0NsaXBib2FyZFwiXG4gICAgICAgICAgICAgIFtjb3B5Q29kZVRvb2x0aXBzXT1cImNvcHlDb2RlVG9vbHRpcHNcIlxuICAgICAgICAgICAgICAobG9hZEZhaWxlZCk9XCJoYW5kbGVNYXJrZG93bkxvYWRlckVycm9yKCRldmVudClcIlxuICAgICAgICAgICAgICAoYnV0dG9uQ2xpY2tlZCk9XCJidXR0b25DbGlja2VkLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICA+PC90ZC1mbGF2b3JlZC1tYXJrZG93bi1sb2FkZXI+XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGlmIChzaG93VGRNYXJrZG93bikge1xuICAgICAgICAgICAgPHRkLWZsYXZvcmVkLW1hcmtkb3duXG4gICAgICAgICAgICAgIFtjb250ZW50XT1cIm1hcmtkb3duU3RyaW5nID8/ICcnXCJcbiAgICAgICAgICAgICAgW2hvc3RlZFVybF09XCJ1cmwgPz8gJydcIlxuICAgICAgICAgICAgICBbYW5jaG9yXT1cImFuY2hvciA/PyAnJ1wiXG4gICAgICAgICAgICAgIFtjb3B5Q29kZVRvQ2xpcGJvYXJkXT1cImNvcHlDb2RlVG9DbGlwYm9hcmRcIlxuICAgICAgICAgICAgICBbY29weUNvZGVUb29sdGlwc109XCJjb3B5Q29kZVRvb2x0aXBzXCJcbiAgICAgICAgICAgICAgKGJ1dHRvbkNsaWNrZWQpPVwiYnV0dG9uQ2xpY2tlZC5lbWl0KCRldmVudClcIlxuICAgICAgICAgICAgPjwvdGQtZmxhdm9yZWQtbWFya2Rvd24+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cblxuICAgICAgQGlmIChjaGlsZHJlblVybEVycm9yKSB7XG4gICAgICAgIDx0ZC1tZXNzYWdlXG4gICAgICAgICAgW3N1YmxhYmVsXT1cImNoaWxkcmVuVXJsRXJyb3JcIlxuICAgICAgICAgIGNvbG9yPVwid2FyblwiXG4gICAgICAgICAgaWNvbj1cImVycm9yXCJcbiAgICAgICAgICBbYXR0ci5kYXRhLXRlc3RdPVwiJ2NoaWxkcmVuLXVybC1lcnJvcidcIlxuICAgICAgICA+PC90ZC1tZXNzYWdlPlxuICAgICAgfVxuXG4gICAgICBAaWYgKHNob3dNZW51KSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZC1tYXJrZG93bi1saXN0XCI+XG4gICAgICAgICAgPG1hdC1hY3Rpb24tbGlzdD5cbiAgICAgICAgICAgIEBmb3IgKFxuICAgICAgICAgICAgICBpdGVtIG9mIGN1cnJlbnRNZW51SXRlbXM7XG4gICAgICAgICAgICAgIGxldCBpbmRleCA9ICRpbmRleDtcbiAgICAgICAgICAgICAgdHJhY2sgaXRlbS5pZCA/PyBpbmRleFxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBbaWRdPVwiXG4gICAgICAgICAgICAgICAgICAndGQtbWFya2Rvd24tbmF2aWdhdG9yLWxpc3QtaXRlbS0nICtcbiAgICAgICAgICAgICAgICAgIChpdGVtLmlkID8gaXRlbS5pZCA6IGluZGV4KVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZUl0ZW1TZWxlY3RlZChpdGVtKVwiXG4gICAgICAgICAgICAgICAgbWF0LWxpc3QtaXRlbVxuICAgICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cImdldFRpdGxlKGl0ZW0pXCJcbiAgICAgICAgICAgICAgICBtYXRUb29sdGlwUG9zaXRpb249XCJiZWZvcmVcIlxuICAgICAgICAgICAgICAgIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgICBtYXRMaXN0SXRlbUljb25cbiAgICAgICAgICAgICAgICAgIFtmb250U2V0XT1cImlzQ292YWxlbnRJY29uKGl0ZW0pID8gJ2NvdmFsZW50LWljb25zJyA6ICcnXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7eyBnZXRJY29uKGl0ZW0pIH19XG4gICAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICA8c3BhbiBtYXRMaXN0SXRlbVRpdGxlIGNsYXNzPVwidHJ1bmNhdGVcIj5cbiAgICAgICAgICAgICAgICAgIHt7IGdldFRpdGxlKGl0ZW0pIH19XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIG1hdExpc3RJdGVtTGluZSBjbGFzcz1cInRydW5jYXRlXCI+XG4gICAgICAgICAgICAgICAgICB7eyBpdGVtLmRlc2NyaXB0aW9uIH19XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L21hdC1hY3Rpb24tbGlzdD5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgICA8bmctY29udGFpbmVyICpuZ0NvbXBvbmVudE91dGxldD1cImZvb3RlckNvbXBvbmVudFwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cbn1cblxuQGlmIChzaG93RW1wdHlTdGF0ZSkge1xuICA8ZGl2IGxheW91dD1cImNvbHVtblwiIGxheW91dC1hbGlnbj1cImNlbnRlciBjZW50ZXJcIiBjbGFzcz1cImVtcHR5LXN0YXRlXCI+XG4gICAgPG1hdC1pY29uIG1hdExpc3RJdGVtQXZhdGFyPnN1YmplY3Q8L21hdC1pY29uPlxuICAgIDxoMj57eyBlbXB0eVN0YXRlTGFiZWwgfX08L2gyPlxuICA8L2Rpdj5cbn1cbiJdfQ==","import { Component, Output, EventEmitter, Input, ChangeDetectionStrategy, Type, } from '@angular/core';\nimport { TdMarkdownNavigatorComponent, } from '../markdown-navigator.component';\nimport { TdWindowDialogComponent } from '@covalent/core/dialogs';\nimport * as i0 from \"@angular/core\";\nexport const DEFAULT_MARKDOWN_NAVIGATOR_WINDOW_LABELS = {\n title: 'Help',\n close: 'Close',\n dock: 'Dock',\n unDock: 'Undock',\n};\nexport class TdMarkdownNavigatorWindowComponent {\n items;\n labels;\n toolbarColor = 'primary';\n startAt;\n compareWith;\n docked = false;\n copyCodeToClipboard = false;\n copyCodeTooltips = {};\n footer;\n closed = new EventEmitter();\n dockToggled = new EventEmitter();\n buttonClicked = new EventEmitter();\n itemSelected = new EventEmitter();\n get markdownNavigatorLabels() {\n if (!this.labels) {\n return undefined;\n }\n const { goHome, goBack, emptyState } = this.labels;\n return {\n goHome,\n goBack,\n emptyState,\n };\n }\n get titleLabel() {\n return ((this.labels && this.labels.title) ||\n DEFAULT_MARKDOWN_NAVIGATOR_WINDOW_LABELS.title);\n }\n get closeLabel() {\n return ((this.labels && this.labels.close) ||\n DEFAULT_MARKDOWN_NAVIGATOR_WINDOW_LABELS.close);\n }\n get toggleDockedStateLabel() {\n if (this.docked) {\n return ((this.labels && this.labels.unDock) ||\n DEFAULT_MARKDOWN_NAVIGATOR_WINDOW_LABELS.unDock);\n }\n else {\n return ((this.labels && this.labels.dock) ||\n DEFAULT_MARKDOWN_NAVIGATOR_WINDOW_LABELS.dock);\n }\n }\n toggleDockedState() {\n this.dockToggled.emit(this.docked);\n }\n static ɵfac = function TdMarkdownNavigatorWindowComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TdMarkdownNavigatorWindowComponent)(); };\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TdMarkdownNavigatorWindowComponent, selectors: [[\"td-markdown-navigator-window\"]], inputs: { items: \"items\", labels: \"labels\", toolbarColor: \"toolbarColor\", startAt: \"startAt\", compareWith: \"compareWith\", docked: \"docked\", copyCodeToClipboard: \"copyCodeToClipboard\", copyCodeTooltips: \"copyCodeTooltips\", footer: \"footer\" }, outputs: { closed: \"closed\", dockToggled: \"dockToggled\", buttonClicked: \"buttonClicked\", itemSelected: \"itemSelected\" }, decls: 2, vars: 14, consts: [[3, \"dockToggled\", \"closed\", \"toolbarColor\", \"docked\", \"title\", \"toggleDockedStateLabel\", \"closeLabel\"], [3, \"buttonClicked\", \"itemSelected\", \"items\", \"labels\", \"startAt\", \"compareWith\", \"footer\", \"copyCodeToClipboard\", \"copyCodeTooltips\"]], template: function TdMarkdownNavigatorWindowComponent_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"td-window-dialog\", 0);\n i0.ɵɵlistener(\"dockToggled\", function TdMarkdownNavigatorWindowComponent_Template_td_window_dialog_dockToggled_0_listener() { return ctx.toggleDockedState(); })(\"closed\", function TdMarkdownNavigatorWindowComponent_Template_td_window_dialog_closed_0_listener() { return ctx.closed.emit(); });\n i0.ɵɵelementStart(1, \"td-markdown-navigator\", 1);\n i0.ɵɵlistener(\"buttonClicked\", function TdMarkdownNavigatorWindowComponent_Template_td_markdown_navigator_buttonClicked_1_listener($event) { return ctx.buttonClicked.emit($event); })(\"itemSelected\", function TdMarkdownNavigatorWindowComponent_Template_td_markdown_navigator_itemSelected_1_listener($event) { return ctx.itemSelected.emit($event); });\n i0.ɵɵelementEnd()();\n } if (rf & 2) {\n i0.ɵɵproperty(\"toolbarColor\", ctx.toolbarColor)(\"docked\", ctx.docked)(\"title\", ctx.titleLabel)(\"toggleDockedStateLabel\", ctx.toggleDockedStateLabel)(\"closeLabel\", ctx.closeLabel);\n i0.ɵɵadvance();\n i0.ɵɵstyleProp(\"display\", ctx.docked ? \"none\" : \"inherit\");\n i0.ɵɵproperty(\"items\", ctx.items)(\"labels\", ctx.markdownNavigatorLabels)(\"startAt\", ctx.startAt)(\"compareWith\", ctx.compareWith)(\"footer\", ctx.footer)(\"copyCodeToClipboard\", ctx.copyCodeToClipboard)(\"copyCodeTooltips\", ctx.copyCodeTooltips);\n } }, dependencies: [TdWindowDialogComponent, TdMarkdownNavigatorComponent], styles: [\"[_nghost-%COMP%]{height:100%;display:flex;flex-direction:column}td-markdown-navigator[_ngcontent-%COMP%]{height:calc(100% - 56px)}\"], changeDetection: 0 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(TdMarkdownNavigatorWindowComponent, [{\n type: Component,\n args: [{ selector: 'td-markdown-navigator-window', changeDetection: ChangeDetectionStrategy.OnPush, imports: [TdWindowDialogComponent, TdMarkdownNavigatorComponent], template: \"<td-window-dialog\\n [toolbarColor]=\\\"toolbarColor\\\"\\n [docked]=\\\"docked\\\"\\n [title]=\\\"titleLabel\\\"\\n [toggleDockedStateLabel]=\\\"toggleDockedStateLabel\\\"\\n [closeLabel]=\\\"closeLabel\\\"\\n (dockToggled)=\\\"toggleDockedState()\\\"\\n (closed)=\\\"closed.emit()\\\"\\n>\\n <td-markdown-navigator\\n [items]=\\\"items\\\"\\n [labels]=\\\"markdownNavigatorLabels\\\"\\n [style.display]=\\\"docked ? 'none' : 'inherit'\\\"\\n [startAt]=\\\"startAt\\\"\\n [compareWith]=\\\"compareWith\\\"\\n [footer]=\\\"footer\\\"\\n [copyCodeToClipboard]=\\\"copyCodeToClipboard\\\"\\n [copyCodeTooltips]=\\\"copyCodeTooltips\\\"\\n (buttonClicked)=\\\"buttonClicked.emit($event)\\\"\\n (itemSelected)=\\\"itemSelected.emit($event)\\\"\\n ></td-markdown-navigator>\\n</td-window-dialog>\\n\", styles: [\":host{height:100%;display:flex;flex-direction:column}td-markdown-navigator{height:calc(100% - 56px)}\\n\"] }]\n }], null, { items: [{\n type: Input\n }], labels: [{\n type: Input\n }], toolbarColor: [{\n type: Input\n }], startAt: [{\n type: Input\n }], compareWith: [{\n type: Input\n }], docked: [{\n type: Input\n }], copyCodeToClipboard: [{\n type: Input\n }], copyCodeTooltips: [{\n type: Input\n }], footer: [{\n type: Input\n }], closed: [{\n type: Output\n }], dockToggled: [{\n type: Output\n }], buttonClicked: [{\n type: Output\n }], itemSelected: [{\n type: Output\n }] }); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(TdMarkdownNavigatorWindowComponent, { className: \"TdMarkdownNavigatorWindowComponent\", filePath: \"markdown-navigator-window/markdown-navigator-window.component.ts\", lineNumber: 42 }); })();\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2Rvd24tbmF2aWdhdG9yLXdpbmRvdy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL21hcmtkb3duLW5hdmlnYXRvci9zcmMvbWFya2Rvd24tbmF2aWdhdG9yLXdpbmRvdy9tYXJrZG93bi1uYXZpZ2F0b3Itd2luZG93LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYnMvbWFya2Rvd24tbmF2aWdhdG9yL3NyYy9tYXJrZG93bi1uYXZpZ2F0b3Itd2luZG93L21hcmtkb3duLW5hdmlnYXRvci13aW5kb3cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxNQUFNLEVBQ04sWUFBWSxFQUNaLEtBQUssRUFDTCx1QkFBdUIsRUFDdkIsSUFBSSxHQUNMLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFJTCw0QkFBNEIsR0FDN0IsTUFBTSxpQ0FBaUMsQ0FBQztBQUd6QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFTakUsTUFBTSxDQUFDLE1BQU0sd0NBQXdDLEdBQ25EO0lBQ0UsS0FBSyxFQUFFLE1BQU07SUFDYixLQUFLLEVBQUUsT0FBTztJQUNkLElBQUksRUFBRSxNQUFNO0lBQ1osTUFBTSxFQUFFLFFBQVE7Q0FDakIsQ0FBQztBQVNKLE1BQU0sT0FBTyxrQ0FBa0M7SUFDcEMsS0FBSyxDQUE0QjtJQUNqQyxNQUFNLENBQWtDO0lBQ3hDLFlBQVksR0FBaUIsU0FBUyxDQUFDO0lBQ3ZDLE9BQU8sQ0FBcUQ7SUFDNUQsV0FBVyxDQUFpQztJQUM1QyxNQUFNLEdBQUksS0FBSyxDQUFDO0lBQ2hCLG1CQUFtQixHQUFJLEtBQUssQ0FBQztJQUM3QixnQkFBZ0IsR0FBdUIsRUFBRSxDQUFDO0lBQzFDLE1BQU0sQ0FBYTtJQUVsQixNQUFNLEdBQXVCLElBQUksWUFBWSxFQUFFLENBQUM7SUFDaEQsV0FBVyxHQUEwQixJQUFJLFlBQVksRUFBRSxDQUFDO0lBQ3hELGFBQWEsR0FDckIsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUNYLFlBQVksR0FDcEIsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUVyQixJQUFJLHVCQUF1QjtRQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2pCLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7UUFFRCxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsR0FDbEMsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUNkLE9BQU87WUFDTCxNQUFNO1lBQ04sTUFBTTtZQUNOLFVBQVU7U0FDWCxDQUFDO0lBQ0osQ0FBQztJQUNELElBQUksVUFBVTtRQUNaLE9BQU8sQ0FDTCxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7WUFDbEMsd0NBQXdDLENBQUMsS0FBSyxDQUMvQyxDQUFDO0lBQ0osQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLE9BQU8sQ0FDTCxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7WUFDbEMsd0NBQXdDLENBQUMsS0FBSyxDQUMvQyxDQUFDO0lBQ0osQ0FBQztJQUVELElBQUksc0JBQXNCO1FBQ3hCLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2hCLE9BQU8sQ0FDTCxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7Z0JBQ25DLHdDQUF3QyxDQUFDLE1BQU0sQ0FDaEQsQ0FBQztRQUNKLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxDQUNMLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztnQkFDakMsd0NBQXdDLENBQUMsSUFBSSxDQUM5QyxDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7SUFFRCxpQkFBaUI7UUFDZixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDckMsQ0FBQzs0SEE3RFUsa0NBQWtDOzZEQUFsQyxrQ0FBa0M7WUN6Qy9DLDJDQVFDO1lBREMsQUFEQSxxSUFBZSx1QkFBbUIsSUFBQyw4R0FDekIsaUJBQWEsSUFBQztZQUV4QixnREFXQztZQURDLEFBREEsb0pBQWlCLDhCQUEwQixJQUFDLHFJQUM1Qiw2QkFBeUIsSUFBQztZQUU5QyxBQURHLGlCQUF3QixFQUNSOztZQWhCakIsQUFEQSxBQURBLEFBREEsQUFEQSwrQ0FBNkIsc0JBQ1oseUJBQ0csc0RBQzZCLDhCQUN4QjtZQU92QixjQUE2QztZQUE3QywwREFBNkM7WUFLN0MsQUFEQSxBQURBLEFBREEsQUFEQSxBQUZBLEFBREEsaUNBQWUsdUNBQ21CLHdCQUVmLGdDQUNRLHNCQUNWLGdEQUMwQiwwQ0FDTjs0QkRzQjdCLHVCQUF1QixFQUFFLDRCQUE0Qjs7aUZBRXBELGtDQUFrQztjQVA5QyxTQUFTOzJCQUNFLDhCQUE4QixtQkFHdkIsdUJBQXVCLENBQUMsTUFBTSxXQUN0QyxDQUFDLHVCQUF1QixFQUFFLDRCQUE0QixDQUFDOztrQkFHL0QsS0FBSzs7a0JBQ0wsS0FBSzs7a0JBQ0wsS0FBSzs7a0JBQ0wsS0FBSzs7a0JBQ0wsS0FBSzs7a0JBQ0wsS0FBSzs7a0JBQ0wsS0FBSzs7a0JBQ0wsS0FBSzs7a0JBQ0wsS0FBSzs7a0JBRUwsTUFBTTs7a0JBQ04sTUFBTTs7a0JBQ04sTUFBTTs7a0JBRU4sTUFBTTs7a0ZBZkksa0NBQWtDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBUeXBlLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRoZW1lUGFsZXR0ZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHtcbiAgSU1hcmtkb3duTmF2aWdhdG9ySXRlbSxcbiAgSU1hcmtkb3duTmF2aWdhdG9yTGFiZWxzLFxuICBJTWFya2Rvd25OYXZpZ2F0b3JDb21wYXJlV2l0aCxcbiAgVGRNYXJrZG93bk5hdmlnYXRvckNvbXBvbmVudCxcbn0gZnJvbSAnLi4vbWFya2Rvd24tbmF2aWdhdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJVGRGbGF2b3JlZE1hcmtkb3duQnV0dG9uQ2xpY2tFdmVudCB9IGZyb20gJ0Bjb3ZhbGVudC9mbGF2b3JlZC1tYXJrZG93bic7XG5pbXBvcnQgeyBJQ29weUNvZGVUb29sdGlwcyB9IGZyb20gJ0Bjb3ZhbGVudC9oaWdobGlnaHQnO1xuaW1wb3J0IHsgVGRXaW5kb3dEaWFsb2dDb21wb25lbnQgfSBmcm9tICdAY292YWxlbnQvY29yZS9kaWFsb2dzJztcblxuZXhwb3J0IGludGVyZmFjZSBJTWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dMYWJlbHNcbiAgZXh0ZW5kcyBJTWFya2Rvd25OYXZpZ2F0b3JMYWJlbHMge1xuICB0aXRsZT86IHN0cmluZztcbiAgY2xvc2U/OiBzdHJpbmc7XG4gIGRvY2s/OiBzdHJpbmc7XG4gIHVuRG9jaz86IHN0cmluZztcbn1cbmV4cG9ydCBjb25zdCBERUZBVUxUX01BUktET1dOX05BVklHQVRPUl9XSU5ET1dfTEFCRUxTOiBJTWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dMYWJlbHMgPVxuICB7XG4gICAgdGl0bGU6ICdIZWxwJyxcbiAgICBjbG9zZTogJ0Nsb3NlJyxcbiAgICBkb2NrOiAnRG9jaycsXG4gICAgdW5Eb2NrOiAnVW5kb2NrJyxcbiAgfTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGQtbWFya2Rvd24tbmF2aWdhdG9yLXdpbmRvdycsXG4gIHRlbXBsYXRlVXJsOiAnLi9tYXJrZG93bi1uYXZpZ2F0b3Itd2luZG93LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWFya2Rvd24tbmF2aWdhdG9yLXdpbmRvdy5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW1RkV2luZG93RGlhbG9nQ29tcG9uZW50LCBUZE1hcmtkb3duTmF2aWdhdG9yQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgVGRNYXJrZG93bk5hdmlnYXRvcldpbmRvd0NvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGl0ZW1zPzogSU1hcmtkb3duTmF2aWdhdG9ySXRlbVtdO1xuICBASW5wdXQoKSBsYWJlbHM/OiBJTWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dMYWJlbHM7XG4gIEBJbnB1dCgpIHRvb2xiYXJDb2xvcjogVGhlbWVQYWxldHRlID0gJ3ByaW1hcnknO1xuICBASW5wdXQoKSBzdGFydEF0PzogSU1hcmtkb3duTmF2aWdhdG9ySXRlbSB8IElNYXJrZG93bk5hdmlnYXRvckl0ZW1bXTtcbiAgQElucHV0KCkgY29tcGFyZVdpdGg/OiBJTWFya2Rvd25OYXZpZ2F0b3JDb21wYXJlV2l0aDtcbiAgQElucHV0KCkgZG9ja2VkPyA9IGZhbHNlO1xuICBASW5wdXQoKSBjb3B5Q29kZVRvQ2xpcGJvYXJkPyA9IGZhbHNlO1xuICBASW5wdXQoKSBjb3B5Q29kZVRvb2x0aXBzPzogSUNvcHlDb2RlVG9vbHRpcHMgPSB7fTtcbiAgQElucHV0KCkgZm9vdGVyPzogVHlwZTxhbnk+O1xuXG4gIEBPdXRwdXQoKSBjbG9zZWQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGRvY2tUb2dnbGVkOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBidXR0b25DbGlja2VkOiBFdmVudEVtaXR0ZXI8SVRkRmxhdm9yZWRNYXJrZG93bkJ1dHRvbkNsaWNrRXZlbnQ+ID1cbiAgICBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBpdGVtU2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjxJTWFya2Rvd25OYXZpZ2F0b3JJdGVtPiA9XG4gICAgbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGdldCBtYXJrZG93bk5hdmlnYXRvckxhYmVscygpOiBJTWFya2Rvd25OYXZpZ2F0b3JMYWJlbHMgfCB1bmRlZmluZWQge1xuICAgIGlmICghdGhpcy5sYWJlbHMpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgY29uc3QgeyBnb0hvbWUsIGdvQmFjaywgZW1wdHlTdGF0ZSB9OiBJTWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dMYWJlbHMgPVxuICAgICAgdGhpcy5sYWJlbHM7XG4gICAgcmV0dXJuIHtcbiAgICAgIGdvSG9tZSxcbiAgICAgIGdvQmFjayxcbiAgICAgIGVtcHR5U3RhdGUsXG4gICAgfTtcbiAgfVxuICBnZXQgdGl0bGVMYWJlbCgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiAoXG4gICAgICAodGhpcy5sYWJlbHMgJiYgdGhpcy5sYWJlbHMudGl0bGUpIHx8XG4gICAgICBERUZBVUxUX01BUktET1dOX05BVklHQVRPUl9XSU5ET1dfTEFCRUxTLnRpdGxlXG4gICAgKTtcbiAgfVxuXG4gIGdldCBjbG9zZUxhYmVsKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIChcbiAgICAgICh0aGlzLmxhYmVscyAmJiB0aGlzLmxhYmVscy5jbG9zZSkgfHxcbiAgICAgIERFRkFVTFRfTUFSS0RPV05fTkFWSUdBVE9SX1dJTkRPV19MQUJFTFMuY2xvc2VcbiAgICApO1xuICB9XG5cbiAgZ2V0IHRvZ2dsZURvY2tlZFN0YXRlTGFiZWwoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodGhpcy5kb2NrZWQpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgICh0aGlzLmxhYmVscyAmJiB0aGlzLmxhYmVscy51bkRvY2spIHx8XG4gICAgICAgIERFRkFVTFRfTUFSS0RPV05fTkFWSUdBVE9SX1dJTkRPV19MQUJFTFMudW5Eb2NrXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICAodGhpcy5sYWJlbHMgJiYgdGhpcy5sYWJlbHMuZG9jaykgfHxcbiAgICAgICAgREVGQVVMVF9NQVJLRE9XTl9OQVZJR0FUT1JfV0lORE9XX0xBQkVMUy5kb2NrXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHRvZ2dsZURvY2tlZFN0YXRlKCk6IHZvaWQge1xuICAgIHRoaXMuZG9ja1RvZ2dsZWQuZW1pdCh0aGlzLmRvY2tlZCk7XG4gIH1cbn1cbiIsIjx0ZC13aW5kb3ctZGlhbG9nXG4gIFt0b29sYmFyQ29sb3JdPVwidG9vbGJhckNvbG9yXCJcbiAgW2RvY2tlZF09XCJkb2NrZWRcIlxuICBbdGl0bGVdPVwidGl0bGVMYWJlbFwiXG4gIFt0b2dnbGVEb2NrZWRTdGF0ZUxhYmVsXT1cInRvZ2dsZURvY2tlZFN0YXRlTGFiZWxcIlxuICBbY2xvc2VMYWJlbF09XCJjbG9zZUxhYmVsXCJcbiAgKGRvY2tUb2dnbGVkKT1cInRvZ2dsZURvY2tlZFN0YXRlKClcIlxuICAoY2xvc2VkKT1cImNsb3NlZC5lbWl0KClcIlxuPlxuICA8dGQtbWFya2Rvd24tbmF2aWdhdG9yXG4gICAgW2l0ZW1zXT1cIml0ZW1zXCJcbiAgICBbbGFiZWxzXT1cIm1hcmtkb3duTmF2aWdhdG9yTGFiZWxzXCJcbiAgICBbc3R5bGUuZGlzcGxheV09XCJkb2NrZWQgPyAnbm9uZScgOiAnaW5oZXJpdCdcIlxuICAgIFtzdGFydEF0XT1cInN0YXJ0QXRcIlxuICAgIFtjb21wYXJlV2l0aF09XCJjb21wYXJlV2l0aFwiXG4gICAgW2Zvb3Rlcl09XCJmb290ZXJcIlxuICAgIFtjb3B5Q29kZVRvQ2xpcGJvYXJkXT1cImNvcHlDb2RlVG9DbGlwYm9hcmRcIlxuICAgIFtjb3B5Q29kZVRvb2x0aXBzXT1cImNvcHlDb2RlVG9vbHRpcHNcIlxuICAgIChidXR0b25DbGlja2VkKT1cImJ1dHRvbkNsaWNrZWQuZW1pdCgkZXZlbnQpXCJcbiAgICAoaXRlbVNlbGVjdGVkKT1cIml0ZW1TZWxlY3RlZC5lbWl0KCRldmVudClcIlxuICA+PC90ZC1tYXJrZG93bi1uYXZpZ2F0b3I+XG48L3RkLXdpbmRvdy1kaWFsb2c+XG4iXX0=","import { Injectable, RendererFactory2, inject, } from '@angular/core';\nimport { TdMarkdownNavigatorWindowComponent, } from '../markdown-navigator-window/markdown-navigator-window.component';\nimport { TdDialogService, ResizableDraggableDialog, } from '@covalent/core/dialogs';\nimport { DOCUMENT } from '@angular/common';\nimport * as i0 from \"@angular/core\";\nconst CDK_OVERLAY_CUSTOM_CLASS = 'td-window-dialog';\nconst DEFAULT_POSITION = { bottom: '0px', right: '0px' };\nconst DEFAULT_WIDTH = '360px';\nconst DEFAULT_HEIGHT = '75vh';\nconst MAX_WIDTH = '100vw';\nconst DEFAULT_DRAGGABLE_DIALOG_CONFIG = {\n hasBackdrop: false,\n closeOnNavigation: true,\n panelClass: [CDK_OVERLAY_CUSTOM_CLASS],\n position: DEFAULT_POSITION,\n height: DEFAULT_HEIGHT,\n width: DEFAULT_WIDTH,\n maxWidth: MAX_WIDTH,\n};\nexport class TdMarkdownNavigatorWindowService {\n _tdDialogService = inject(TdDialogService);\n _document = inject(DOCUMENT);\n rendererFactory = inject(RendererFactory2);\n _renderer2;\n dragRef;\n resizableDraggableDialog;\n markdownNavigatorWindowDialog;\n markdownNavigatorWindowDialogsOpen = 0;\n constructor() {\n const rendererFactory = this.rendererFactory;\n this._renderer2 = rendererFactory.createRenderer(undefined, null);\n }\n open(config) {\n this.close();\n const configClass = config?.dialogConfig?.panelClass;\n const panelClass = configClass && !Array.isArray(configClass) ? [configClass] : [];\n const draggableConfig = {\n ...DEFAULT_DRAGGABLE_DIALOG_CONFIG,\n ...config.dialogConfig,\n ...panelClass,\n };\n const { matDialogRef, dragRefSubject, } = this._tdDialogService.openDraggable({\n component: TdMarkdownNavigatorWindowComponent,\n config: draggableConfig,\n dragHandleSelectors: ['.td-window-dialog-toolbar'],\n draggableClass: 'td-draggable-markdown-navigator-window',\n });\n this.markdownNavigatorWindowDialog = matDialogRef;\n this.markdownNavigatorWindowDialog.componentInstance.items = config.items;\n this.markdownNavigatorWindowDialog.componentInstance.labels = config.labels;\n this.markdownNavigatorWindowDialog.componentInstance.startAt =\n config.startAt;\n this.markdownNavigatorWindowDialog.componentInstance.copyCodeToClipboard =\n config.copyCodeToClipboard;\n this.markdownNavigatorWindowDialog.componentInstance.copyCodeTooltips =\n config.copyCodeTooltips;\n this.markdownNavigatorWindowDialog.componentInstance.compareWith =\n config.compareWith;\n this.markdownNavigatorWindowDialog.componentInstance.toolbarColor =\n 'toolbarColor' in config ? config.toolbarColor : 'primary';\n this.markdownNavigatorWindowDialogsOpen++;\n this.markdownNavigatorWindowDialog.componentInstance.footer = config.footer;\n dragRefSubject.subscribe((dragRf) => {\n this.dragRef = dragRf;\n this.resizableDraggableDialog = new ResizableDraggableDialog(this._document, this._renderer2, this.markdownNavigatorWindowDialog, this.dragRef);\n });\n this._handleEvents();\n return this.markdownNavigatorWindowDialog;\n }\n close() {\n if (this.markdownNavigatorWindowDialog) {\n if (this.resizableDraggableDialog) {\n this.resizableDraggableDialog.detach();\n }\n this.markdownNavigatorWindowDialog.close();\n }\n }\n get isOpen() {\n return this.markdownNavigatorWindowDialogsOpen > 0;\n }\n _handleEvents() {\n this.markdownNavigatorWindowDialog.componentInstance.closed.subscribe(() => this.close());\n this.markdownNavigatorWindowDialog\n .afterClosed()\n .toPromise()\n .then(() => {\n this.markdownNavigatorWindowDialogsOpen--;\n });\n }\n static ɵfac = function TdMarkdownNavigatorWindowService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TdMarkdownNavigatorWindowService)(); };\n static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: TdMarkdownNavigatorWindowService, factory: TdMarkdownNavigatorWindowService.ɵfac });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(TdMarkdownNavigatorWindowService, [{\n type: Injectable\n }], () => [], null); })();\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2Rvd24tbmF2aWdhdG9yLXdpbmRvdy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9tYXJrZG93bi1uYXZpZ2F0b3Ivc3JjL21hcmtkb3duLW5hdmlnYXRvci13aW5kb3ctc2VydmljZS9tYXJrZG93bi1uYXZpZ2F0b3Itd2luZG93LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFVBQVUsRUFDVixnQkFBZ0IsRUFHaEIsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBT3ZCLE9BQU8sRUFDTCxrQ0FBa0MsR0FFbkMsTUFBTSxrRUFBa0UsQ0FBQztBQUMxRSxPQUFPLEVBQ0wsZUFBZSxFQUVmLHdCQUF3QixHQUN6QixNQUFNLHdCQUF3QixDQUFDO0FBRWhDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFtQjNDLE1BQU0sd0JBQXdCLEdBQUcsa0JBQWtCLENBQUM7QUFFcEQsTUFBTSxnQkFBZ0IsR0FBbUIsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQztBQUN6RSxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUM7QUFDOUIsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDO0FBQzlCLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQztBQUUxQixNQUFNLCtCQUErQixHQUFvQjtJQUN2RCxXQUFXLEVBQUUsS0FBSztJQUNsQixpQkFBaUIsRUFBRSxJQUFJO0lBQ3ZCLFVBQVUsRUFBRSxDQUFDLHdCQUF3QixDQUFDO0lBQ3RDLFFBQVEsRUFBRSxnQkFBZ0I7SUFDMUIsTUFBTSxFQUFFLGNBQWM7SUFDdEIsS0FBSyxFQUFFLGFBQWE7SUFDcEIsUUFBUSxFQUFFLFNBQVM7Q0FDcEIsQ0FBQztBQUdGLE1BQU0sT0FBTyxnQ0FBZ0M7SUFDbkMsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFD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NkIsQ0FBQztJQUM1QyxDQUFDO0lBRU0sS0FBSztRQUNWLElBQUksSUFBSSxDQUFDLDZCQUE2QixFQUFFLENBQUM7WUFDdkMsSUFBSSxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztnQkFDbEMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3pDLENBQUM7WUFDRCxJQUFJLENBQUMsNkJBQTZCLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDN0MsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFXLE1BQU07UUFDZixPQUFPLElBQUksQ0FBQyxrQ0FBa0MsR0FBRyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVPLGFBQWE7UUFDbkIsSUFBSSxDQUFDLDZCQUE2QixDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQ3pFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FDYixDQUFDO1FBRUYsSUFBSSxDQUFDLDZCQUE2QjthQUMvQixXQUFXLEVBQUU7YUFDYixTQUFTLEVBQUU7YUFDWCxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ1QsSUFBSSxDQUFDLGtDQUFrQyxFQUFFLENBQUM7UUFDNUMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOzBIQTdGVSxnQ0FBZ0M7Z0VBQWhDLGdDQUFnQyxXQUFoQyxnQ0FBZ0M7O2lGQUFoQyxnQ0FBZ0M7Y0FENUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEluamVjdGFibGUsXG4gIFJlbmRlcmVyRmFjdG9yeTIsXG4gIFJlbmRlcmVyMixcbiAgVHlwZSxcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIE1hdERpYWxvZ1JlZixcbiAgTWF0RGlhbG9nQ29uZmlnLFxuICBEaWFsb2dQb3NpdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IFRoZW1lUGFsZXR0ZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHtcbiAgVGRNYXJrZG93bk5hdmlnYXRvcldpbmRvd0NvbXBvbmVudCxcbiAgSU1hcmtkb3duTmF2aWdhdG9yV2luZG93TGFiZWxzLFxufSBmcm9tICcuLi9tYXJrZG93bi1uYXZpZ2F0b3Itd2luZG93L21hcmtkb3duLW5hdmlnYXRvci13aW5kb3cuY29tcG9uZW50JztcbmltcG9ydCB7XG4gIFRkRGlhbG9nU2VydmljZSxcbiAgSURyYWdnYWJsZVJlZnMsXG4gIFJlc2l6YWJsZURyYWdnYWJsZURpYWxvZyxcbn0gZnJvbSAnQGNvdmFsZW50L2NvcmUvZGlhbG9ncyc7XG5pbXBvcnQgeyBEcmFnUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBJTWFya2Rvd25OYXZpZ2F0b3JJdGVtLFxuICBJTWFya2Rvd25OYXZpZ2F0b3JDb21wYXJlV2l0aCxcbn0gZnJvbSAnLi4vbWFya2Rvd24tbmF2aWdhdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJQ29weUNvZGVUb29sdGlwcyB9IGZyb20gJ0Bjb3ZhbGVudC9oaWdobGlnaHQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElNYXJrZG93bk5hdmlnYXRvcldpbmRvd0NvbmZpZyB7XG4gIGl0ZW1zOiBJTWFya2Rvd25OYXZpZ2F0b3JJdGVtW107XG4gIGRpYWxvZ0NvbmZpZz86IE1hdERpYWxvZ0NvbmZpZztcbiAgbGFiZWxzPzogSU1hcmtkb3duTmF2aWdhdG9yV2luZG93TGFiZWxzO1xuICB0b29sYmFyQ29sb3I/OiBUaGVtZVBhbGV0dGU7XG4gIHN0YXJ0QXQ/OiBJTWFya2Rvd25OYXZpZ2F0b3JJdGVtIHwgSU1hcmtkb3duTmF2aWdhdG9ySXRlbVtdO1xuICBjb21wYXJlV2l0aD86IElNYXJrZG93bk5hdmlnYXRvckNvbXBhcmVXaXRoO1xuICBjb3B5Q29kZVRvQ2xpcGJvYXJkPzogYm9vbGVhbjtcbiAgY29weUNvZGVUb29sdGlwcz86IElDb3B5Q29kZVRvb2x0aXBzO1xuICBmb290ZXI/OiBUeXBlPGFueT47XG59XG5cbmNvbnN0IENES19PVkVSTEFZX0NVU1RPTV9DTEFTUyA9ICd0ZC13aW5kb3ctZGlhbG9nJztcblxuY29uc3QgREVGQVVMVF9QT1NJVElPTjogRGlhbG9nUG9zaXRpb24gPSB7IGJvdHRvbTogJzBweCcsIHJpZ2h0OiAnMHB4JyB9O1xuY29uc3QgREVGQVVMVF9XSURUSCA9ICczNjBweCc7XG5jb25zdCBERUZBVUxUX0hFSUdIVCA9ICc3NXZoJztcbmNvbnN0IE1BWF9XSURUSCA9ICcxMDB2dyc7XG5cbmNvbnN0IERFRkFVTFRfRFJBR0dBQkxFX0RJQUxPR19DT05GSUc6IE1hdERpYWxvZ0NvbmZpZyA9IHtcbiAgaGFzQmFja2Ryb3A6IGZhbHNlLFxuICBjbG9zZU9uTmF2aWdhdGlvbjogdHJ1ZSxcbiAgcGFuZWxDbGFzczogW0NES19PVkVSTEFZX0NVU1RPTV9DTEFTU10sXG4gIHBvc2l0aW9uOiBERUZBVUxUX1BPU0lUSU9OLFxuICBoZWlnaHQ6IERFRkFVTFRfSEVJR0hULFxuICB3aWR0aDogREVGQVVMVF9XSURUSCxcbiAgbWF4V2lkdGg6IE1BWF9XSURUSCxcbn07XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBUZE1hcmtkb3duTmF2aWdhdG9yV2luZG93U2VydmljZSB7XG4gIHByaXZhdGUgX3RkRGlhbG9nU2VydmljZSA9IGluamVjdChUZERpYWxvZ1NlcnZpY2UpO1xuICBwcml2YXRlIF9kb2N1bWVudCA9IGluamVjdChET0NVTUVOVCk7XG4gIHByaXZhdGUgcmVuZGVyZXJGYWN0b3J5ID0gaW5qZWN0KFJlbmRlcmVyRmFjdG9yeTIpO1xuXG4gIHByaXZhdGUgX3JlbmRlcmVyMjogUmVuZGVyZXIyO1xuICBwcml2YXRlIGRyYWdSZWYhOiBEcmFnUmVmO1xuICBwcml2YXRlIHJlc2l6YWJsZURyYWdnYWJsZURpYWxvZyE6IFJlc2l6YWJsZURyYWdnYWJsZURpYWxvZztcbiAgcHJpdmF0ZSBtYXJrZG93bk5hdmlnYXRvcldpbmRvd0RpYWxvZyE6IE1hdERpYWxvZ1JlZjxUZE1hcmtkb3duTmF2aWdhdG9yV2luZG93Q29tcG9uZW50PjtcbiAgcHJpdmF0ZSBtYXJrZG93bk5hdmlnYXRvcldpbmRvd0RpYWxvZ3NPcGVuID0gMDtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBjb25zdCByZW5kZXJlckZhY3RvcnkgPSB0aGlzLnJlbmRlcmVyRmFjdG9yeTtcblxuICAgIHRoaXMuX3JlbmRlcmVyMiA9IHJlbmRlcmVyRmFjdG9yeS5jcmVhdGVSZW5kZXJlcih1bmRlZmluZWQsIG51bGwpO1xuICB9XG5cbiAgcHVibGljIG9wZW4oXG4gICAgY29uZmlnOiBJTWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dDb25maWcsXG4gICk6IE1hdERpYWxvZ1JlZjxUZE1hcmtkb3duTmF2aWdhdG9yV2luZG93Q29tcG9uZW50PiB7XG4gICAgdGhpcy5jbG9zZSgpO1xuXG4gICAgY29uc3QgY29uZmlnQ2xhc3MgPSBjb25maWc/LmRpYWxvZ0NvbmZpZz8ucGFuZWxDbGFzcztcbiAgICBjb25zdCBwYW5lbENsYXNzID1cbiAgICAgIGNvbmZpZ0NsYXNzICYmICFBcnJheS5pc0FycmF5KGNvbmZpZ0NsYXNzKSA/IFtjb25maWdDbGFzc10gOiBbXTtcblxuICAgIGNvbnN0IGRyYWdnYWJsZUNvbmZpZzogTWF0RGlhbG9nQ29uZmlnID0ge1xuICAgICAgLi4uREVGQVVMVF9EUkFHR0FCTEVfRElBTE9HX0NPTkZJRyxcbiAgICAgIC4uLmNvbmZpZy5kaWFsb2dDb25maWcsXG4gICAgICAuLi5wYW5lbENsYXNzLFxuICAgIH07XG4gICAgY29uc3Qge1xuICAgICAgbWF0RGlhbG9nUmVmLFxuICAgICAgZHJhZ1JlZlN1YmplY3QsXG4gICAgfTogSURyYWdnYWJsZVJlZnM8VGRNYXJrZG93bk5hdmlnYXRvcldpbmRvd0NvbXBvbmVudD4gPVxuICAgICAgdGhpcy5fdGREaWFsb2dTZXJ2aWNlLm9wZW5EcmFnZ2FibGUoe1xuICAgICAgICBjb21wb25lbnQ6IFRkTWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dDb21wb25lbnQsXG4gICAgICAgIGNvbmZpZzogZHJhZ2dhYmxlQ29uZmlnLFxuICAgICAgICBkcmFnSGFuZGxlU2VsZWN0b3JzOiBbJy50ZC13aW5kb3ctZGlhbG9nLXRvb2xiYXInXSxcbiAgICAgICAgZHJhZ2dhYmxlQ2xhc3M6ICd0ZC1kcmFnZ2FibGUtbWFya2Rvd24tbmF2aWdhdG9yLXdpbmRvdycsXG4gICAgICB9KTtcbiAgICB0aGlzLm1hcmtkb3duTmF2aWdhdG9yV2luZG93RGlhbG9nID0gbWF0RGlhbG9nUmVmO1xuICAgIHRoaXMubWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dEaWFsb2cuY29tcG9uZW50SW5zdGFuY2UuaXRlbXMgPSBjb25maWcuaXRlbXM7XG4gICAgdGhpcy5tYXJrZG93bk5hdmlnYXRvcldpbmRvd0RpYWxvZy5jb21wb25lbnRJbnN0YW5jZS5sYWJlbHMgPSBjb25maWcubGFiZWxzO1xuICAgIHRoaXMubWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dEaWFsb2cuY29tcG9uZW50SW5zdGFuY2Uuc3RhcnRBdCA9XG4gICAgICBjb25maWcuc3RhcnRBdDtcbiAgICB0aGlzLm1hcmtkb3duTmF2aWdhdG9yV2luZG93RGlhbG9nLmNvbXBvbmVudEluc3RhbmNlLmNvcHlDb2RlVG9DbGlwYm9hcmQgPVxuICAgICAgY29uZmlnLmNvcHlDb2RlVG9DbGlwYm9hcmQ7XG4gICAgdGhpcy5tYXJrZG93bk5hdmlnYXRvcldpbmRvd0RpYWxvZy5jb21wb25lbnRJbnN0YW5jZS5jb3B5Q29kZVRvb2x0aXBzID1cbiAgICAgIGNvbmZpZy5jb3B5Q29kZVRvb2x0aXBzO1xuICAgIHRoaXMubWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dEaWFsb2cuY29tcG9uZW50SW5zdGFuY2UuY29tcGFyZVdpdGggPVxuICAgICAgY29uZmlnLmNvbXBhcmVXaXRoO1xuICAgIHRoaXMubWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dEaWFsb2cuY29tcG9uZW50SW5zdGFuY2UudG9vbGJhckNvbG9yID1cbiAgICAgICd0b29sYmFyQ29sb3InIGluIGNvbmZpZyA/IGNvbmZpZy50b29sYmFyQ29sb3IgOiAncHJpbWFyeSc7XG4gICAgdGhpcy5tYXJrZG93bk5hdmlnYXRvcldpbmRvd0RpYWxvZ3NPcGVuKys7XG4gICAgdGhpcy5tYXJrZG93bk5hdmlnYXRvcldpbmRvd0RpYWxvZy5jb21wb25lbnRJbnN0YW5jZS5mb290ZXIgPSBjb25maWcuZm9vdGVyO1xuICAgIGRyYWdSZWZTdWJqZWN0LnN1YnNjcmliZSgoZHJhZ1JmOiBEcmFnUmVmKSA9PiB7XG4gICAgICB0aGlzLmRyYWdSZWYgPSBkcmFnUmY7XG4gICAgICB0aGlzLnJlc2l6YWJsZURyYWdnYWJsZURpYWxvZyA9IG5ldyBSZXNpemFibGVEcmFnZ2FibGVEaWFsb2coXG4gICAgICAgIHRoaXMuX2RvY3VtZW50LFxuICAgICAgICB0aGlzLl9yZW5kZXJlcjIsXG4gICAgICAgIHRoaXMubWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dEaWFsb2csXG4gICAgICAgIHRoaXMuZHJhZ1JlZixcbiAgICAgICk7XG4gICAgfSk7XG4gICAgdGhpcy5faGFuZGxlRXZlbnRzKCk7XG4gICAgcmV0dXJuIHRoaXMubWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dEaWFsb2c7XG4gIH1cblxuICBwdWJsaWMgY2xvc2UoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dEaWFsb2cpIHtcbiAgICAgIGlmICh0aGlzLnJlc2l6YWJsZURyYWdnYWJsZURpYWxvZykge1xuICAgICAgICB0aGlzLnJlc2l6YWJsZURyYWdnYWJsZURpYWxvZy5kZXRhY2goKTtcbiAgICAgIH1cbiAgICAgIHRoaXMubWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dEaWFsb2cuY2xvc2UoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzT3BlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5tYXJrZG93bk5hdmlnYXRvcldpbmRvd0RpYWxvZ3NPcGVuID4gMDtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZUV2ZW50cygpOiB2b2lkIHtcbiAgICB0aGlzLm1hcmtkb3duTmF2aWdhdG9yV2luZG93RGlhbG9nLmNvbXBvbmVudEluc3RhbmNlLmNsb3NlZC5zdWJzY3JpYmUoKCkgPT5cbiAgICAgIHRoaXMuY2xvc2UoKSxcbiAgICApO1xuXG4gICAgdGhpcy5tYXJrZG93bk5hdmlnYXRvcldpbmRvd0RpYWxvZ1xuICAgICAgLmFmdGVyQ2xvc2VkKClcbiAgICAgIC50b1Byb21pc2UoKVxuICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICB0aGlzLm1hcmtkb3duTmF2aWdhdG9yV2luZG93RGlhbG9nc09wZW4tLTtcbiAgICAgIH0pO1xuICB9XG59XG4iXX0=","import { Directive, HostListener, Input, inject } from '@angular/core';\nimport { TdMarkdownNavigatorWindowService, } from '../markdown-navigator-window-service/markdown-navigator-window.service';\nimport * as i0 from \"@angular/core\";\nexport class TdMarkdownNavigatorWindowDirective {\n _markdownNavigatorWindowService = inject(TdMarkdownNavigatorWindowService);\n config;\n disabled = false;\n click() {\n if (!this.disabled && this.config) {\n this._markdownNavigatorWindowService.open(this.config);\n }\n }\n static ɵfac = function TdMarkdownNavigatorWindowDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TdMarkdownNavigatorWindowDirective)(); };\n static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: TdMarkdownNavigatorWindowDirective, selectors: [[\"\", \"tdMarkdownNavigatorWindow\", \"\"]], hostBindings: function TdMarkdownNavigatorWindowDirective_HostBindings(rf, ctx) { if (rf & 1) {\n i0.ɵɵlistener(\"click\", function TdMarkdownNavigatorWindowDirective_click_HostBindingHandler() { return ctx.click(); });\n } }, inputs: { config: [0, \"tdMarkdownNavigatorWindow\", \"config\"], disabled: \"disabled\" } });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(TdMarkdownNavigatorWindowDirective, [{\n type: Directive,\n args: [{\n selector: '[tdMarkdownNavigatorWindow]',\n }]\n }], null, { config: [{\n type: Input,\n args: ['tdMarkdownNavigatorWindow']\n }], disabled: [{\n type: Input\n }], click: [{\n type: HostListener,\n args: ['click']\n }] }); })();\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2Rvd24tbmF2aWdhdG9yLXdpbmRvdy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL21hcmtkb3duLW5hdmlnYXRvci9zcmMvbWFya2Rvd24tbmF2aWdhdG9yLXdpbmRvdy1kaXJlY3RpdmUvbWFya2Rvd24tbmF2aWdhdG9yLXdpbmRvdy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQ0wsZ0NBQWdDLEdBRWpDLE1BQU0sd0VBQXdFLENBQUM7O0FBS2hGLE1BQU0sT0FBTyxrQ0FBa0M7SUFDckMsK0JBQStCLEdBQUcsTUFBTSxDQUM5QyxnQ0FBZ0MsQ0FDakMsQ0FBQztJQUVrQyxNQUFNLENBQWtDO0lBQ25FLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFFSCxLQUFLO1FBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNsQyxJQUFJLENBQUMsK0JBQStCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6RCxDQUFDO0lBQ0gsQ0FBQzs0SEFaVSxrQ0FBa0M7NkRBQWxDLGtDQUFrQztZQUFsQyx1R0FBQSxXQUFPLElBQTJCOzs7aUZBQWxDLGtDQUFrQztjQUg5QyxTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFFLDZCQUE2QjthQUN4Qzs7a0JBTUUsS0FBSzttQkFBQywyQkFBMkI7O2tCQUNqQyxLQUFLOztrQkFFTCxZQUFZO21CQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgVGRNYXJrZG93bk5hdmlnYXRvcldpbmRvd1NlcnZpY2UsXG4gIElNYXJrZG93bk5hdmlnYXRvcldpbmRvd0NvbmZpZyxcbn0gZnJvbSAnLi4vbWFya2Rvd24tbmF2aWdhdG9yLXdpbmRvdy1zZXJ2aWNlL21hcmtkb3duLW5hdmlnYXRvci13aW5kb3cuc2VydmljZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1t0ZE1hcmtkb3duTmF2aWdhdG9yV2luZG93XScsXG59KVxuZXhwb3J0IGNsYXNzIFRkTWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dEaXJlY3RpdmUge1xuICBwcml2YXRlIF9tYXJrZG93bk5hdmlnYXRvcldpbmRvd1NlcnZpY2UgPSBpbmplY3QoXG4gICAgVGRNYXJrZG93bk5hdmlnYXRvcldpbmRvd1NlcnZpY2UsXG4gICk7XG5cbiAgQElucHV0KCd0ZE1hcmtkb3duTmF2aWdhdG9yV2luZG93JykgY29uZmlnPzogSU1hcmtkb3duTmF2aWdhdG9yV2luZG93Q29uZmlnO1xuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJykgY2xpY2soKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkICYmIHRoaXMuY29uZmlnKSB7XG4gICAgICB0aGlzLl9tYXJrZG93bk5hdmlnYXRvcldpbmRvd1NlcnZpY2Uub3Blbih0aGlzLmNvbmZpZyk7XG4gICAgfVxuICB9XG59XG4iXX0=","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TdMarkdownNavigatorComponent } from './markdown-navigator.component';\nimport { TdMarkdownNavigatorWindowComponent } from './markdown-navigator-window/markdown-navigator-window.component';\nimport { TdMarkdownNavigatorWindowDirective } from './markdown-navigator-window-directive/markdown-navigator-window.directive';\nimport { TdMarkdownNavigatorWindowService } from './markdown-navigator-window-service/markdown-navigator-window.service';\nimport { TdDialogService } from '@covalent/core/dialogs';\nimport { MatIconRegistry } from '@angular/material/icon';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/icon\";\n/**\n * @deprecated This module is deprecated and will be removed in future versions.\n * Please migrate to using standalone components as soon as possible.\n */\nexport class CovalentMarkdownNavigatorModule {\n constructor(iconRegistry) {\n iconRegistry.registerFontClassAlias('covalent-icons', 'covalent-icons mat-ligature-font');\n }\n static ɵfac = function CovalentMarkdownNavigatorModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CovalentMarkdownNavigatorModule)(i0.ɵɵinject(i1.MatIconRegistry)); };\n static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: CovalentMarkdownNavigatorModule });\n static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ providers: [TdMarkdownNavigatorWindowService, TdDialogService], imports: [CommonModule,\n TdMarkdownNavigatorComponent,\n TdMarkdownNavigatorWindowComponent] });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CovalentMarkdownNavigatorModule, [{\n type: NgModule,\n args: [{\n imports: [\n CommonModule,\n TdMarkdownNavigatorComponent,\n TdMarkdownNavigatorWindowComponent,\n TdMarkdownNavigatorWindowDirective,\n ],\n exports: [\n TdMarkdownNavigatorComponent,\n TdMarkdownNavigatorWindowComponent,\n TdMarkdownNavigatorWindowDirective,\n ],\n providers: [TdMarkdownNavigatorWindowService, TdDialogService],\n }]\n }], () => [{ type: i1.MatIconRegistry }], null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(CovalentMarkdownNavigatorModule, { imports: [CommonModule,\n TdMarkdownNavigatorComponent,\n TdMarkdownNavigatorWindowComponent,\n TdMarkdownNavigatorWindowDirective], exports: [TdMarkdownNavigatorComponent,\n TdMarkdownNavigatorWindowComponent,\n TdMarkdownNavigatorWindowDirective] }); })();\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2Rvd24tbmF2aWdhdG9yLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvbWFya2Rvd24tbmF2aWdhdG9yL3NyYy9tYXJrZG93bi1uYXZpZ2F0b3IubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLGlFQUFpRSxDQUFDO0FBQ3JILE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLDJFQUEyRSxDQUFDO0FBQy9ILE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLHVFQUF1RSxDQUFDO0FBQ3pILE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7OztBQUV6RDs7O0dBR0c7QUFnQkgsTUFBTSxPQUFPLCtCQUErQjtJQUMxQyxZQUFZLFlBQTZCO1FBQ3ZDLFlBQVksQ0FBQyxzQkFBc0IsQ0FDakMsZ0JBQWdCLEVBQ2hCLGtDQUFrQyxDQUNuQyxDQUFDO0lBQ0osQ0FBQzt5SEFOVSwrQkFBK0I7NERBQS9CLCtCQUErQjtpRUFGL0IsQ0FBQyxnQ0FBZ0MsRUFBRSxlQUFlLENBQUMsWUFYNUQsWUFBWTtZQUVaLDRCQUE0QjtZQUM1QixrQ0FBa0M7O2lGQVV6QiwrQkFBK0I7Y0FmM0MsUUFBUTtlQUFDO2dCQUNSLE9BQU8sRUFBRTtvQkFDUCxZQUFZO29CQUVaLDRCQUE0QjtvQkFDNUIsa0NBQWtDO29CQUNsQyxrQ0FBa0M7aUJBQ25DO2dCQUNELE9BQU8sRUFBRTtvQkFDUCw0QkFBNEI7b0JBQzVCLGtDQUFrQztvQkFDbEMsa0NBQWtDO2lCQUNuQztnQkFDRCxTQUFTLEVBQUUsQ0FBQyxnQ0FBZ0MsRUFBRSxlQUFlLENBQUM7YUFDL0Q7O3dGQUNZLCtCQUErQixjQWJ4QyxZQUFZO1FBRVosNEJBQTRCO1FBQzVCLGtDQUFrQztRQUNsQyxrQ0FBa0MsYUFHbEMsNEJBQTRCO1FBQzVCLGtDQUFrQztRQUNsQyxrQ0FBa0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFRkTWFya2Rvd25OYXZpZ2F0b3JDb21wb25lbnQgfSBmcm9tICcuL21hcmtkb3duLW5hdmlnYXRvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGRNYXJrZG93bk5hdmlnYXRvcldpbmRvd0NvbXBvbmVudCB9IGZyb20gJy4vbWFya2Rvd24tbmF2aWdhdG9yLXdpbmRvdy9tYXJrZG93bi1uYXZpZ2F0b3Itd2luZG93LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZE1hcmtkb3duTmF2aWdhdG9yV2luZG93RGlyZWN0aXZlIH0gZnJvbSAnLi9tYXJrZG93bi1uYXZpZ2F0b3Itd2luZG93LWRpcmVjdGl2ZS9tYXJrZG93bi1uYXZpZ2F0b3Itd2luZG93LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBUZE1hcmtkb3duTmF2aWdhdG9yV2luZG93U2VydmljZSB9IGZyb20gJy4vbWFya2Rvd24tbmF2aWdhdG9yLXdpbmRvdy1zZXJ2aWNlL21hcmtkb3duLW5hdmlnYXRvci13aW5kb3cuc2VydmljZSc7XG5pbXBvcnQgeyBUZERpYWxvZ1NlcnZpY2UgfSBmcm9tICdAY292YWxlbnQvY29yZS9kaWFsb2dzJztcbmltcG9ydCB7IE1hdEljb25SZWdpc3RyeSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkIFRoaXMgbW9kdWxlIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBmdXR1cmUgdmVyc2lvbnMuXG4gKiBQbGVhc2UgbWlncmF0ZSB0byB1c2luZyBzdGFuZGFsb25lIGNvbXBvbmVudHMgYXMgc29vbiBhcyBwb3NzaWJsZS5cbiAqL1xuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcblxuICAgIFRkTWFya2Rvd25OYXZpZ2F0b3JDb21wb25lbnQsXG4gICAgVGRNYXJrZG93bk5hdmlnYXRvcldpbmRvd0NvbXBvbmVudCxcbiAgICBUZE1hcmtkb3duTmF2aWdhdG9yV2luZG93RGlyZWN0aXZlLFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgVGRNYXJrZG93bk5hdmlnYXRvckNvbXBvbmVudCxcbiAgICBUZE1hcmtkb3duTmF2aWdhdG9yV2luZG93Q29tcG9uZW50LFxuICAgIFRkTWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dEaXJlY3RpdmUsXG4gIF0sXG4gIHByb3ZpZGVyczogW1RkTWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dTZXJ2aWNlLCBUZERpYWxvZ1NlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBDb3ZhbGVudE1hcmtkb3duTmF2aWdhdG9yTW9kdWxlIHtcbiAgY29uc3RydWN0b3IoaWNvblJlZ2lzdHJ5OiBNYXRJY29uUmVnaXN0cnkpIHtcbiAgICBpY29uUmVnaXN0cnkucmVnaXN0ZXJGb250Q2xhc3NBbGlhcyhcbiAgICAgICdjb3ZhbGVudC1pY29ucycsXG4gICAgICAnY292YWxlbnQtaWNvbnMgbWF0LWxpZ2F0dXJlLWZvbnQnLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public_api';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY292YWxlbnQtbWFya2Rvd24tbmF2aWdhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicy9tYXJrZG93bi1uYXZpZ2F0b3Ivc3JjL2NvdmFsZW50LW1hcmtkb3duLW5hdmlnYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpY19hcGknO1xuIl19"],"names":["i4","i1"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAoBA,MAAM,GAAG,GAAG,CAAC,iBAAiB,CAAC;AAC/B,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC;AACtB,MAAM,UAAU,GAAG,CAAC,MAAM,EAAE,KAAK,KAAK,KAAK,CAAC,EAAE,IAAI,MAAM;AACxD,SAAS,iEAAiE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE;AAClG,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,kBAAkB,EAAE,CAAC,CAAC;AAC1C,CAAC,CAAC;AACF,SAAS,uEAAuE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE;AACxG,IAAI,MAAM,GAAG,GAAG,EAAE,CAAC,gBAAgB,EAAE;AACrC,IAAI,EAAE,CAAC,cAAc,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC;AACjC,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,0FAA0F,GAAG,EAAE,MAAM,aAAa,GAAG,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,MAAM,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/S,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AAChB,IAAI,EAAE,CAAC,YAAY,EAAE;AACrB,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;AACd,IAAI,MAAM,OAAO,GAAG,GAAG,CAAC,SAAS;AACjC,IAAI,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM;AACpC,IAAI,MAAM,MAAM,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;AACtC,IAAI,EAAE,CAAC,WAAW,CAAC,WAAW,EAAE,cAAc,GAAG,aAAa,CAAC;AAC/D,IAAI,EAAE,CAAC,SAAS,EAAE;AAClB,IAAI,EAAE,CAAC,iBAAiB,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AAClD,CAAC,CAAC;AACF,SAAS,iEAAiE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE;AAClG,IAAI,MAAM,GAAG,GAAG,EAAE,CAAC,gBAAgB,EAAE;AACrC,IAAI,EAAE,CAAC,cAAc,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;AACrD,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,oFAAoF,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,MAAM,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACjO,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC;AACxB,IAAI,EAAE,CAAC,YAAY,EAAE;AACrB,IAAI,EAAE,CAAC,gBAAgB,CAAC,CAAC,EAAE,uEAAuE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,UAAU,CAAC;AAC7H,IAAI,EAAE,CAAC,YAAY,EAAE;AACrB,IAAI,EAAE,CAAC,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;AACnC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AAChB,IAAI,EAAE,CAAC,YAAY,EAAE;AACrB,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,aAAa,CAAC;AAClC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;AACd,IAAI,MAAM,MAAM,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;AACtC,IAAI,EAAE,CAAC,SAAS,EAAE;AAClB,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,EAAE,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC;AACzD,IAAI,EAAE,CAAC,WAAW,CAAC,WAAW,EAAE,aAAa,CAAC;AAC9C,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;AACnB,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,qBAAqB,CAAC;AAC/C,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;AACnB,IAAI,EAAE,CAAC,WAAW,CAAC,WAAW,EAAE,OAAO,CAAC;AACxC,IAAI,EAAE,CAAC,SAAS,EAAE;AAClB,IAAI,EAAE,CAAC,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,gBAAgB,EAAE,GAAG,CAAC;AAC5D,IAAI,EAAE,CAAC,SAAS,EAAE;AAClB,IAAI,EAAE,CAAC,WAAW,CAAC,UAAU,EAAE,UAAU,CAAC;AAC1C,CAAC,CAAC;AACF,SAAS,+EAA+E,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE;AAChH,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;AACpC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;AACd,IAAI,MAAM,MAAM,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;AACtC,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,EAAE,MAAM,CAAC,mBAAmB,CAAC;AACzD,IAAI,EAAE,CAAC,WAAW,CAAC,WAAW,EAAE,uBAAuB,CAAC;AACxD,CAAC,CAAC;AACF,SAAS,+EAA+E,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE;AAChH,IAAI,MAAM,GAAG,GAAG,EAAE,CAAC,gBAAgB,EAAE;AACrC,IAAI,EAAE,CAAC,cAAc,CAAC,CAAC,EAAE,6BAA6B,EAAE,EAAE,CAAC;AAC3D,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,EAAE,SAAS,iIAAiI,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,MAAM,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,EAAE,SAAS,oIAAoI,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,MAAM,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACplB,IAAI,EAAE,CAAC,YAAY,EAAE;AACrB,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;AACd,IAAI,MAAM,MAAM,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;AACtC,IAAI,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,aAAa,EAAE,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC,eAAe,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,qBAAqB,EAAE,MAAM,CAAC,mBAAmB,CAAC,CAAC,kBAAkB,EAAE,MAAM,CAAC,gBAAgB,CAAC;AAC1O,CAAC,CAAC;AACF,SAAS,+EAA+E,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE;AAChH,IAAI,MAAM,GAAG,GAAG,EAAE,CAAC,gBAAgB,EAAE;AACrC,IAAI,EAAE,CAAC,cAAc,CAAC,CAAC,EAAE,sBAAsB,EAAE,EAAE,CAAC;AACpD,IAAI,EAAE,CAAC,UAAU,CAAC,eAAe,EAAE,SAAS,6HAA6H,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,MAAM,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3S,IAAI,EAAE,CAAC,YAAY,EAAE;AACrB,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;AACd,IAAI,MAAM,MAAM,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;AACtC,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,qBAAqB,EAAE,MAAM,CAAC,mBAAmB,CAAC,CAAC,kBAAkB,EAAE,MAAM,CAAC,gBAAgB,CAAC;AACvN,CAAC,CAAC;AACF,SAAS,iEAAiE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE;AAClG,IAAI,EAAE,CAAC,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;AACrC,IAAI,EAAE,CAAC,mBAAmB,CAAC,CAAC,EAAE,+EAA+E,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;AACrI,IAAI,EAAE,CAAC,mBAAmB,CAAC,CAAC,EAAE,+EAA+E,EAAE,CAAC,EAAE,CAAC,EAAE,6BAA6B,EAAE,EAAE,CAAC;AACvJ,IAAI,EAAE,CAAC,mBAAmB,CAAC,CAAC,EAAE,+EAA+E,EAAE,CAAC,EAAE,CAAC,EAAE,sBAAsB,EAAE,EAAE,CAAC;AAChJ,IAAI,EAAE,CAAC,YAAY,EAAE;AACrB,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;AACd,IAAI,MAAM,MAAM,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;AACtC,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;AACnB,IAAI,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,mBAAmB,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACzD,IAAI,EAAE,CAAC,SAAS,EAAE;AAClB,IAAI,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,oBAAoB,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,IAAI,EAAE,CAAC,SAAS,EAAE;AAClB,IAAI,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,cAAc,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACpD,CAAC,CAAC;AACF,SAAS,iEAAiE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE;AAClG,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;AACpC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;AACd,IAAI,MAAM,MAAM,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;AACtC,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,EAAE,MAAM,CAAC,gBAAgB,CAAC;AACtD,IAAI,EAAE,CAAC,WAAW,CAAC,WAAW,EAAE,oBAAoB,CAAC;AACrD,CAAC,CAAC;AACF,SAAS,uEAAuE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE;AACxG,IAAI,MAAM,GAAG,GAAG,EAAE,CAAC,gBAAgB,EAAE;AACrC,IAAI,EAAE,CAAC,cAAc,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,CAAC;AACtC,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,+FAA+F,GAAG,EAAE,MAAM,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,MAAM,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1R,IAAI,EAAE,CAAC,cAAc,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,CAAC;AACxC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AAChB,IAAI,EAAE,CAAC,YAAY,EAAE;AACrB,IAAI,EAAE,CAAC,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC;AACpC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AAChB,IAAI,EAAE,CAAC,YAAY,EAAE;AACrB,IAAI,EAAE,CAAC,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC;AACpC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AAChB,IAAI,EAAE,CAAC,YAAY,EAAE;AACrB,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,aAAa,CAAC;AAClC,IAAI,EAAE,CAAC,YAAY,EAAE;AACrB,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;AACd,IAAI,MAAM,OAAO,GAAG,GAAG,CAAC,SAAS;AACjC,IAAI,MAAM,cAAc,GAAG,GAAG,CAAC,MAAM;AACrC,IAAI,MAAM,MAAM,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;AACtC,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,kCAAkC,IAAI,OAAO,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,GAAG,cAAc,CAAC,CAAC,CAAC,YAAY,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AAChJ,IAAI,EAAE,CAAC,SAAS,EAAE;AAClB,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,gBAAgB,GAAG,EAAE,CAAC;AACpF,IAAI,EAAE,CAAC,SAAS,EAAE;AAClB,IAAI,EAAE,CAAC,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC;AAC5D,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;AACnB,IAAI,EAAE,CAAC,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC;AAC7D,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;AACnB,IAAI,EAAE,CAAC,kBAAkB,CAAC,GAAG,EAAE,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC;AACxD,CAAC,CAAC;AACF,SAAS,iEAAiE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE;AAClG,IAAI,EAAE,CAAC,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC;AACxD,IAAI,EAAE,CAAC,gBAAgB,CAAC,CAAC,EAAE,uEAAuE,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,CAAC;AACnI,IAAI,EAAE,CAAC,YAAY,EAAE,EAAE;AACvB,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;AACd,IAAI,MAAM,MAAM,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;AACtC,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;AACnB,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,gBAAgB,CAAC;AAC1C,CAAC,CAAC;AACF,SAAS,kEAAkE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE;AACnG,IAAI,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC;AAC5B,CAAC,CAAC;AACF,SAAS,mDAAmD,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE;AACpF,IAAI,EAAE,CAAC,uBAAuB,CAAC,CAAC,CAAC;AACjC,IAAI,EAAE,CAAC,mBAAmB,CAAC,CAAC,EAAE,iEAAiE,EAAE,CAAC,EAAE,CAAC,EAAE,kBAAkB,EAAE,CAAC,CAAC;AAC7H,IAAI,EAAE,CAAC,mBAAmB,CAAC,CAAC,EAAE,iEAAiE,EAAE,CAAC,EAAE,CAAC,CAAC;AACtG,IAAI,EAAE,CAAC,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AAClC,IAAI,EAAE,CAAC,mBAAmB,CAAC,CAAC,EAAE,iEAAiE,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AAChH,IAAI,EAAE,CAAC,mBAAmB,CAAC,CAAC,EAAE,iEAAiE,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;AACvH,IAAI,EAAE,CAAC,mBAAmB,CAAC,CAAC,EAAE,iEAAiE,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AAChH,IAAI,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,kEAAkE,EAAE,CAAC,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC;AACjH,IAAI,EAAE,CAAC,YAAY,EAAE;AACrB,IAAI,EAAE,CAAC,qBAAqB,EAAE;AAC9B,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;AACd,IAAI,MAAM,MAAM,GAAG,EAAE,CAAC,aAAa,EAAE;AACrC,IAAI,EAAE,CAAC,SAAS,EAAE;AAClB,IAAI,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7C,IAAI,EAAE,CAAC,SAAS,EAAE;AAClB,IAAI,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAChD,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;AACnB,IAAI,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,oBAAoB,IAAI,MAAM,CAAC,cAAc,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACnF,IAAI,EAAE,CAAC,SAAS,EAAE;AAClB,IAAI,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,gBAAgB,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACtD,IAAI,EAAE,CAAC,SAAS,EAAE;AAClB,IAAI,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9C,IAAI,EAAE,CAAC,SAAS,EAAE;AAClB,IAAI,EAAE,CAAC,UAAU,CAAC,mBAAmB,EAAE,MAAM,CAAC,eAAe,CAAC;AAC9D,CAAC,CAAC;AACF,SAAS,mDAAmD,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE;AACpF,IAAI,EAAE,CAAC,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,CAAC;AACrD,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,CAAC;AAC3B,IAAI,EAAE,CAAC,YAAY,EAAE;AACrB,IAAI,EAAE,CAAC,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC;AAC9B,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AAChB,IAAI,EAAE,CAAC,YAAY,EAAE,EAAE;AACvB,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;AACd,IAAI,MAAM,MAAM,GAAG,EAAE,CAAC,aAAa,EAAE;AACrC,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;AACnB,IAAI,EAAE,CAAC,iBAAiB,CAAC,MAAM,CAAC,eAAe,CAAC;AAChD,CAAC,CAAC;AACU,MAAC,iCAAiC,GAAG;AACjD,IAAI,MAAM,EAAE,SAAS;AACrB,IAAI,MAAM,EAAE,SAAS;AACrB,IAAI,UAAU,EAAE,uBAAuB;AACvC;AACO,MAAM,4BAA4B,CAAC;AAC1C,IAAI,yBAAyB,GAAG,MAAM,CAAC,uBAAuB,CAAC;AAC/D,IAAI,kBAAkB,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAClD,IAAI,UAAU,GAAG,MAAM,CAAC,YAAY,CAAC;AACrC,IAAI,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC;AAC9B,IAAI,aAAa,GAAG,MAAM,CAAC,eAAe,CAAC;AAC3C,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,aAAa,CAAC,sBAAsB,CAAC,gBAAgB,EAAE,kCAAkC,CAAC;AACvG,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,KAAK;AACT;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM;AACV;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO;AACX;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,mBAAmB,GAAG,KAAK;AAC/B;AACA;AACA;AACA;AACA;AACA,IAAI,gBAAgB,GAAG,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM;AACV;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,WAAW;AACf,IAAI,aAAa,GAAG,IAAI,YAAY,EAAE;AACtC,IAAI,YAAY,GAAG,IAAI,YAAY,EAAE;AACrC,IAAI,eAAe;AACnB,IAAI,YAAY,GAAG,EAAE,CAAC;AACtB,IAAI,mBAAmB,CAAC;AACxB,IAAI,gBAAgB,GAAG,EAAE,CAAC;AAC1B,IAAI,OAAO,GAAG,KAAK;AACnB,IAAI,mBAAmB;AACvB,IAAI,gBAAgB;AACpB,IAAI,aAAa,CAAC,KAAK,EAAE;AACzB,QAAQ,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU;AACxC,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC;AACtC,YAAY,cAAc,CAAC,OAAO,CAAC,EAAE;AACrC,YAAY,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;AACvC,QAAQ;AACR,IAAI;AACJ,IAAI,IAAI,gBAAgB,GAAG;AAC3B,QAAQ,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC;AAC3C,IAAI;AACJ,IAAI,IAAI,UAAU,GAAG;AACrB,QAAQ,OAAO,CAAC,CAAC,IAAI,CAAC,gBAAgB;AACtC,IAAI;AACJ,IAAI,IAAI,QAAQ,GAAG;AACnB,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC;AAClF,QAAQ,OAAO,QAAQ,IAAI,KAAK;AAChC,IAAI;AACJ,IAAI,IAAI,oBAAoB,GAAG;AAC/B,QAAQ,QAAQ,CAAC,CAAC,IAAI,CAAC,mBAAmB;AAC1C,YAAY,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG;AAC1C,YAAY,CAAC,IAAI,CAAC,cAAc;AAChC,IAAI;AACJ,IAAI,IAAI,cAAc,GAAG;AACzB,QAAQ,QAAQ,CAAC,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,cAAc;AACvF,IAAI;AACJ,IAAI,IAAI,GAAG,GAAG;AACd,QAAQ,IAAI,IAAI,CAAC,mBAAmB,EAAE;AACtC,YAAY,OAAO,IAAI,CAAC,mBAAmB,CAAC,GAAG;AAC/C,QAAQ;AACR,QAAQ,OAAO,SAAS;AACxB,IAAI;AACJ,IAAI,IAAI,eAAe,GAAG;AAC1B,QAAQ,IAAI,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE;AACzE,YAAY,OAAO,IAAI,CAAC,mBAAmB,CAAC,MAAM;AAClD,QAAQ;AACR,QAAQ,OAAO,IAAI,CAAC,MAAM;AAC1B,IAAI;AACJ,IAAI,IAAI,WAAW,GAAG;AACtB,QAAQ,IAAI,IAAI,CAAC,mBAAmB,EAAE;AACtC,YAAY,OAAO,IAAI,CAAC,mBAAmB,CAAC,WAAW;AACvD,QAAQ;AACR,QAAQ,OAAO,SAAS;AACxB,IAAI;AACJ,IAAI,IAAI,cAAc,GAAG;AACzB,QAAQ,IAAI,IAAI,CAAC,mBAAmB,EAAE;AACtC,YAAY,OAAO,IAAI,CAAC,mBAAmB,CAAC,cAAc;AAC1D,QAAQ;AACR,QAAQ,OAAO,SAAS;AACxB,IAAI;AACJ,IAAI,IAAI,MAAM,GAAG;AACjB,QAAQ,IAAI,IAAI,CAAC,mBAAmB,EAAE;AACtC,YAAY,OAAO,IAAI,CAAC,mBAAmB,CAAC,MAAM;AAClD,QAAQ;AACR,QAAQ,OAAO,SAAS;AACxB,IAAI;AACJ,IAAI,IAAI,cAAc,GAAG;AACzB,QAAQ,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;AACnD,IAAI;AACJ,IAAI,IAAI,WAAW,GAAG;AACtB,QAAQ,QAAQ,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM;AAClD,YAAY,iCAAiC,CAAC,MAAM;AACpD,IAAI;AACJ,IAAI,IAAI,WAAW,GAAG;AACtB,QAAQ,QAAQ,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM;AAClD,YAAY,iCAAiC,CAAC,MAAM;AACpD,IAAI;AACJ,IAAI,IAAI,eAAe,GAAG;AAC1B,QAAQ,QAAQ,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU;AACtD,YAAY,iCAAiC,CAAC,UAAU;AACxD,IAAI;AACJ,IAAI,IAAI,gBAAgB,GAAG;AAC3B,QAAQ,IAAI,IAAI,CAAC,mBAAmB,EAAE;AACtC,YAAY,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC;AAC1D,QAAQ;AACR,aAAa,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;AAC/C,YAAY,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACjF,QAAQ;AACR,QAAQ,OAAO,EAAE;AACjB,IAAI;AACJ,IAAI,IAAI,qBAAqB,GAAG;AAChC,QAAQ,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7C,IAAI;AACJ,IAAI,MAAM,WAAW,CAAC,OAAO,EAAE;AAC/B,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;AAC9B,YAAY,IAAI,CAAC,KAAK,EAAE;AACxB,QAAQ;AACR,QAAQ,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE;AAC9D,YAAY,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC;AACjD,QAAQ;AACR,IAAI;AACJ,IAAI,wBAAwB,CAAC,IAAI,EAAE;AACnC,QAAQ,OAAO,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW;AAChF,IAAI;AACJ,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,mBAAmB,GAAG,SAAS;AAC5C,QAAQ,IAAI,CAAC,gBAAgB,GAAG,SAAS;AACzC,IAAI;AACJ,IAAI,KAAK,GAAG;AACZ,QAAQ,IAAI,CAAC,OAAO,GAAG,KAAK;AAC5B,QAAQ,IAAI,CAAC,WAAW,EAAE;AAC1B;AACA,QAAQ,IAAI,IAAI,CAAC,KAAK;AACtB,YAAY,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;AACnC,YAAY,CAAC,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;AAC3D,YAAY,IAAI,CAAC,gBAAgB,GAAG,EAAE;AACtC,YAAY,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AACpD,QAAQ;AACR,aAAa;AACb,YAAY,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,KAAK;AAC9C,YAAY,IAAI,CAAC,mBAAmB,GAAG,SAAS;AAChD,QAAQ;AACR,QAAQ,IAAI,CAAC,YAAY,GAAG,EAAE;AAC9B,QAAQ,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,QAAQ,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;AAC9C,IAAI;AACJ,IAAI,MAAM,CAAC,YAAY,GAAG,CAAC,EAAE;AAC7B,QAAQ,IAAI,CAAC,OAAO,GAAG,KAAK;AAC5B,QAAQ,IAAI,CAAC,WAAW,EAAE;AAC1B,QAAQ,IAAI,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,YAAY,CAAC;AAC/E,QAAQ,IAAI,MAAM,EAAE,WAAW,EAAE;AACjC,YAAY,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC;AACnE,kBAAkB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC;AAChE,kBAAkB,SAAS;AAC3B,YAAY,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC;AACzE,QAAQ;AACR,QAAQ,IAAI,MAAM,EAAE;AACpB,YAAY,IAAI,CAAC,mBAAmB,GAAG,MAAM;AAC7C,YAAY,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,YAAY,GAAG,CAAC,CAAC;AACvG,YAAY,IAAI,CAAC,6BAA6B,CAAC,MAAM,CAAC;AACtD,QAAQ;AACR,aAAa;AACb,YAAY,IAAI,CAAC,KAAK,EAAE;AACxB,QAAQ;AACR,QAAQ,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC;AACtC,QAAQ,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;AAC9C,IAAI;AACJ,IAAI,kBAAkB,CAAC,IAAI,EAAE;AAC7B,QAAQ,IAAI,CAAC,WAAW,EAAE;AAC1B,QAAQ,IAAI,CAAC,mBAAmB,GAAG,IAAI;AACvC,QAAQ,IAAI,CAAC,YAAY,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC;AACxD,QAAQ,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC;AAChD,QAAQ,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;AACpC,QAAQ,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;AAC9C,IAAI;AACJ,IAAI,MAAM,6BAA6B,CAAC,IAAI,EAAE;AAC9C,QAAQ,IAAI,CAAC,gBAAgB,GAAG,EAAE;AAClC,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI;AAC3B,QAAQ,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;AAC9C,QAAQ,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY;AAC/C,QAAQ,IAAI,QAAQ,GAAG,EAAE;AACzB,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;AAC3B,YAAY,QAAQ,GAAG,IAAI,CAAC,QAAQ;AACpC,QAAQ;AACR,aAAa,IAAI,IAAI,CAAC,WAAW,EAAE;AACnC,YAAY,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;AACvD,QAAQ;AACR,QAAQ,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,IAAI,IAAI,CAAC,WAAW,EAAE;AAC7D,YAAY,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC;AACpD,QAAQ;AACR,QAAQ,MAAM,gBAAgB,GAAG,IAAI,CAAC,YAAY;AAClD,QAAQ,IAAI,aAAa,CAAC,MAAM,KAAK,gBAAgB,CAAC,MAAM;AAC5D,YAAY,aAAa,CAAC,KAAK,CAAC,CAAC,SAAS,EAAE,KAAK,KAAK,SAAS,KAAK,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE;AAC9F,YAAY,IAAI,CAAC,gBAAgB,GAAG,QAAQ;AAC5C,QAAQ;AACR,QAAQ,IAAI,CAAC,OAAO,GAAG,KAAK;AAC5B,QAAQ,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;AAC9C,IAAI;AACJ,IAAI,MAAM,eAAe,CAAC,IAAI,EAAE;AAChC,QAAQ,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC;AACpG,YAAY,EAAE;AACd,QAAQ,IAAI;AACZ,YAAY,OAAO,MAAM,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE;AACrE,gBAAgB,GAAG,IAAI,CAAC,WAAW;AACnC,aAAa,CAAC,CAAC;AACf,QAAQ;AACR,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC;AAC9C,YAAY,OAAO,EAAE;AACrB,QAAQ;AACR,IAAI;AACJ,IAAI,QAAQ,CAAC,IAAI,EAAE;AACnB,QAAQ,IAAI,CAAC,IAAI,EAAE;AACnB,YAAY,OAAO,EAAE;AACrB,QAAQ;AACR,QAAQ,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;AACpD,YAAY,IAAI,CAAC,KAAK;AACtB,YAAY,eAAe,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC;AAC3C,YAAY,0BAA0B,CAAC,IAAI,CAAC,cAAc,IAAI,EAAE,CAAC;AACjE,YAAY,EAAE,EAAE,IAAI,EAAE;AACtB,IAAI;AACJ,IAAI,OAAO,CAAC,IAAI,EAAE;AAClB,QAAQ,MAAM,IAAI,GAAG,IAAI,EAAE,IAAI,IAAI,SAAS;AAC5C,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACjC,IAAI;AACJ,IAAI,cAAc,CAAC,IAAI,EAAE;AACzB,QAAQ,IAAI,CAAC,IAAI,EAAE,IAAI;AACvB,YAAY,OAAO,KAAK;AACxB,QAAQ,OAAO,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;AAC/C,IAAI;AACJ,IAAI,sBAAsB,CAAC,KAAK,EAAE;AAClC,QAAQ,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,OAAO;AAC7C,QAAQ,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;AAC9C,IAAI;AACJ,IAAI,yBAAyB,CAAC,KAAK,EAAE;AACrC,QAAQ,IAAI,CAAC,mBAAmB,GAAG,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,EAAE;AAC7D,QAAQ,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;AAC9C,IAAI;AACJ,IAAI,MAAM,OAAO,CAAC,UAAU,EAAE,QAAQ,EAAE;AACxC,QAAQ,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY;AAC9C,QAAQ,IAAI,IAAI,GAAG,EAAE;AACrB,QAAQ,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE;AAChC,YAAY,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;AAC3C,gBAAgB,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC;AACpE,YAAY;AACZ,iBAAiB,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;AACtD,gBAAgB,IAAI,CAAC,YAAY,GAAG,YAAY;AAChD,gBAAgB,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC;AAC1D,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC;AAC5D,YAAY;AACZ,YAAY,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,KAAK;AAC9C,gBAAgB,IAAI,KAAK,KAAK,CAAC,EAAE;AACjC,oBAAoB,IAAI,CAAC,KAAK,EAAE;AAChC,gBAAgB;AAChB,gBAAgB,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC;AACjD,YAAY,CAAC,CAAC;AACd,QAAQ;AACR,QAAQ,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM;AAC5B,IAAI;AACJ,IAAI,MAAM,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE;AAClC,QAAQ,IAAI,SAAS,GAAG,EAAE;AAC1B,QAAQ,IAAI,YAAY,GAAG,KAAK;AAChC,QAAQ,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,kBAAkB;AAClE,QAAQ,KAAK,MAAM,QAAQ,IAAI,IAAI,EAAE;AACrC,YAAY,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AACtF,YAAY,IAAI,SAAS,EAAE;AAC3B,gBAAgB,SAAS,GAAG,CAAC,GAAG,SAAS,EAAE,SAAS,CAAC;AACrD,gBAAgB,IAAI,SAAS,CAAC,QAAQ,EAAE;AACxC,oBAAoB,YAAY,GAAG,SAAS,CAAC,QAAQ;AACrD,gBAAgB;AAChB,qBAAqB,IAAI,SAAS,CAAC,WAAW,EAAE;AAChD,oBAAoB,YAAY,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC;AACxE,gBAAgB;AAChB,YAAY;AACZ,iBAAiB;AACjB,gBAAgB;AAChB,YAAY;AACZ,QAAQ;AACR,QAAQ,IAAI,SAAS,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE;AAC9C,YAAY,SAAS,GAAG,EAAE;AAC1B,QAAQ;AACR,QAAQ,OAAO,SAAS;AACxB,IAAI;AACJ,IAAI,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE;AAC1B,QAAQ,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,kBAAkB;AAClE,QAAQ,IAAI,KAAK,EAAE;AACnB,YAAY,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE;AACvC,gBAAgB,IAAI,IAAI,IAAI,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE;AACtD,oBAAoB,OAAO,CAAC,KAAK,CAAC;AAClC,gBAAgB;AAChB,gBAAgB,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC;AACrE,gBAAgB,IAAI,SAAS,CAAC,MAAM,EAAE;AACtC,oBAAoB,OAAO,CAAC,KAAK,EAAE,GAAG,SAAS,CAAC;AAChD,gBAAgB;AAChB,YAAY;AACZ,QAAQ;AACR,QAAQ,OAAO,EAAE;AACjB,IAAI;AACJ,IAAI,MAAM,eAAe,CAAC,KAAK,EAAE;AACjC,QAAQ,KAAK,CAAC,cAAc,EAAE;AAC9B,QAAQ,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM;AACjC,QAAQ,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;AACtC,QAAQ,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;AAC5C,QAAQ,MAAM,EAAE,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAChE,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI;AAC3B,QAAQ,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;AAC9C,QAAQ,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC;AACpD,QAAQ,IAAI,SAAS,EAAE;AACvB,YAAY;AACZ,QAAQ;AACR,QAAQ,IAAI;AACZ,YAAY,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;AACtF;AACA,YAAY,IAAI,CAAC,kBAAkB,CAAC,EAAE,cAAc,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;AACtE,YAAY,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,SAAS,GAAG,CAAC;AAC5D,QAAQ;AACR,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC;AACvD,YAAY,GAAG,EAAE,KAAK,EAAE;AACxB,QAAQ;AACR,gBAAgB;AAChB,YAAY,IAAI,CAAC,OAAO,GAAG,KAAK;AAChC,QAAQ;AACR,QAAQ,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;AAC9C,IAAI;AACJ,IAAI,OAAO,IAAI,GAAG,SAAS,oCAAoC,CAAC,iBAAiB,EAAE,EAAE,OAAO,KAAK,iBAAiB,IAAI,4BAA4B,GAAG,CAAC,CAAC,CAAC;AACxJ,IAAI,OAAO,IAAI,iBAAiB,EAAE,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,4BAA4B,EAAE,SAAS,EAAE,CAAC,CAAC,uBAAuB,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,kCAAkC,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE;AACjN,YAAY,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC;AAClC,QAAQ,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;AACtB,YAAY,IAAI,EAAE;AAClB,YAAY,EAAE,CAAC,cAAc,CAAC,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,GAAG,CAAC,eAAe,GAAG,EAAE,CAAC,KAAK,CAAC;AACxF,QAAQ,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,SAAS,yCAAyC,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE;AACrG,YAAY,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,qDAAqD,CAAC,MAAM,EAAE,EAAE,OAAO,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAChJ,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,eAAe,EAAE,YAAY,EAAE,cAAc,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,uBAAuB,CAAC,CAAC,EAAE,EAAE,CAAC,oBAAoB,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,iBAAiB,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,eAAe,EAAE,CAAC,EAAE,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,+BAA+B,EAAE,CAAC,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC,EAAE,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,kBAAkB,CAAC,EAAE,CAAC,CAAC,EAAE,mBAAmB,CAAC,EAAE,CAAC,eAAe,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE,CAAC,eAAe,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,0BAA0B,CAAC,EAAE,CAAC,eAAe,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,qBAAqB,EAAE,kBAAkB,CAAC,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,qBAAqB,EAAE,kBAAkB,CAAC,EAAE,CAAC,CAAC,EAAE,YAAY,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,qBAAqB,EAAE,kBAAkB,CAAC,EAAE,CAAC,CAAC,EAAE,eAAe,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,qBAAqB,EAAE,kBAAkB,CAAC,EAAE,CAAC,eAAe,EAAE,EAAE,EAAE,oBAAoB,EAAE,QAAQ,EAAE,qBAAqB,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,EAAE,CAAC,eAAe,EAAE,EAAE,EAAE,oBAAoB,EAAE,QAAQ,EAAE,qBAAqB,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,CAAC,EAAE,CAAC,iBAAiB,EAAE,EAAE,EAAE,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC,kBAAkB,EAAE,EAAE,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE,CAAC,iBAAiB,EAAE,EAAE,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,SAAS,qCAAqC,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE;AAC5pD,YAAY,EAAE,CAAC,mBAAmB,CAAC,CAAC,EAAE,mDAAmD,EAAE,CAAC,EAAE,CAAC,EAAE,cAAc,CAAC;AAChH,YAAY,EAAE,CAAC,mBAAmB,CAAC,CAAC,EAAE,mDAAmD,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AAC1G,QAAQ,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;AACtB,YAAY,EAAE,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,cAAc,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,YAAY,EAAE,CAAC,SAAS,EAAE;AAC1B,YAAY,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,cAAc,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACzD,QAAQ,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,YAAY,EAAE,EAAE,CAAC,iBAAiB,EAAE,eAAe;AAC/E,YAAY,gBAAgB,EAAE,EAAE,CAAC,UAAU,EAAE,aAAa,EAAE,EAAE,CAAC,aAAa,EAAE,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,iBAAiB,EAAE,EAAE,CAAC,eAAe,EAAE,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,eAAe,EAAE,EAAE,CAAC,gBAAgB,EAAE,aAAa,EAAEA,IAAE,CAAC,OAAO,EAAE,oBAAoB,EAAE,EAAE,CAAC,cAAc,EAAE,2BAA2B;AAC/R,YAAY,iCAAiC;AAC7C,YAAY,kBAAkB;AAC9B,YAAY,sBAAsB;AAClC,YAAY,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC,ioCAAioC,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,CAAC;AACtsC;AACA,CAAC,MAAM,EAAE,CAAC,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,KAAK,EAAE,CAAC,iBAAiB,CAAC,4BAA4B,EAAE,CAAC;AAChH,QAAQ,IAAI,EAAE,SAAS;AACvB,QAAQ,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,uBAAuB,EAAE,eAAe,EAAE,uBAAuB,CAAC,MAAM,EAAE,OAAO,EAAE;AAC9G,oBAAoB,YAAY;AAChC,oBAAoB,eAAe;AACnC,oBAAoB,gBAAgB;AACpC,oBAAoB,aAAa;AACjC,oBAAoB,aAAa;AACjC,oBAAoB,oBAAoB;AACxC,oBAAoB,2BAA2B;AAC/C,oBAAoB,iCAAiC;AACrD,oBAAoB,kBAAkB;AACtC,oBAAoB,sBAAsB;AAC1C,oBAAoB,qBAAqB;AACzC,iBAAiB,EAAE,SAAS,EAAE,CAAC,uBAAuB,CAAC,EAAE,QAAQ,EAAE,upIAAupI,EAAE,MAAM,EAAE,CAAC,2xBAA2xB,CAAC,EAAE;AACngK,KAAK,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;AAC5B,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;AACrB,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC;AACtB,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,mBAAmB,EAAE,CAAC;AAClC,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,gBAAgB,EAAE,CAAC;AAC/B,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;AACrB,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,WAAW,EAAE,CAAC;AAC1B,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,aAAa,EAAE,CAAC;AAC5B,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC;AAC3B,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,eAAe,EAAE,CAAC;AAC9B,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,iBAAiB;AACpC,SAAS,CAAC,EAAE,aAAa,EAAE,CAAC;AAC5B,YAAY,IAAI,EAAE,YAAY;AAC9B,YAAY,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;AACtC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG;AACnB,CAAC,MAAM,EAAE,CAAC,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,KAAK,EAAE,CAAC,kBAAkB,CAAC,4BAA4B,EAAE,EAAE,SAAS,EAAE,8BAA8B,EAAE,QAAQ,EAAE,iCAAiC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG;AACjO,SAAS,eAAe,CAAC,GAAG,EAAE;AAC9B,IAAI,IAAI,GAAG,EAAE;AACb,QAAQ,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC;AACjC,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE;AACvB,YAAY,OAAO,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;AAC/C,QAAQ;AACR,aAAa;AACb,YAAY,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC;AACjD,YAAY,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAClD,YAAY,OAAO,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AACrD,QAAQ;AACR,IAAI;AACJ,IAAI,OAAO,EAAE;AACb;AACA,SAAS,0BAA0B,CAAC,cAAc,EAAE;AACpD,IAAI,IAAI,cAAc,EAAE;AACxB,QAAQ,MAAM,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE;AACtF,QAAQ,OAAO,iBAAiB,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE;AAClD,IAAI;AACJ,IAAI,OAAO,EAAE;AACb;AACA,SAAS,cAAc,CAAC,MAAM,EAAE;AAChC,IAAI,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC;AACnE;AACA,SAAS,kBAAkB,CAAC,EAAE,EAAE,EAAE,EAAE;AACpC,IAAI,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE;AACxB,QAAQ,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;AAC9B,IAAI;AACJ,IAAI,OAAO,EAAE,KAAK,EAAE;AACpB;;ACnoBY,MAAC,wCAAwC,GAAG;AACxD,IAAI,KAAK,EAAE,MAAM;AACjB,IAAI,KAAK,EAAE,OAAO;AAClB,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,MAAM,EAAE,QAAQ;AACpB;AACO,MAAM,kCAAkC,CAAC;AAChD,IAAI,KAAK;AACT,IAAI,MAAM;AACV,IAAI,YAAY,GAAG,SAAS;AAC5B,IAAI,OAAO;AACX,IAAI,WAAW;AACf,IAAI,MAAM,GAAG,KAAK;AAClB,IAAI,mBAAmB,GAAG,KAAK;AAC/B,IAAI,gBAAgB,GAAG,EAAE;AACzB,IAAI,MAAM;AACV,IAAI,MAAM,GAAG,IAAI,YAAY,EAAE;AAC/B,IAAI,WAAW,GAAG,IAAI,YAAY,EAAE;AACpC,IAAI,aAAa,GAAG,IAAI,YAAY,EAAE;AACtC,IAAI,YAAY,GAAG,IAAI,YAAY,EAAE;AACrC,IAAI,IAAI,uBAAuB,GAAG;AAClC,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAC1B,YAAY,OAAO,SAAS;AAC5B,QAAQ;AACR,QAAQ,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,MAAM;AAC1D,QAAQ,OAAO;AACf,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,YAAY,UAAU;AACtB,SAAS;AACT,IAAI;AACJ,IAAI,IAAI,UAAU,GAAG;AACrB,QAAQ,QAAQ,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK;AACjD,YAAY,wCAAwC,CAAC,KAAK;AAC1D,IAAI;AACJ,IAAI,IAAI,UAAU,GAAG;AACrB,QAAQ,QAAQ,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK;AACjD,YAAY,wCAAwC,CAAC,KAAK;AAC1D,IAAI;AACJ,IAAI,IAAI,sBAAsB,GAAG;AACjC,QAAQ,IAAI,IAAI,CAAC,MAAM,EAAE;AACzB,YAAY,QAAQ,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM;AACtD,gBAAgB,wCAAwC,CAAC,MAAM;AAC/D,QAAQ;AACR,aAAa;AACb,YAAY,QAAQ,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI;AACpD,gBAAgB,wCAAwC,CAAC,IAAI;AAC7D,QAAQ;AACR,IAAI;AACJ,IAAI,iBAAiB,GAAG;AACxB,QAAQ,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;AAC1C,IAAI;AACJ,IAAI,OAAO,IAAI,GAAG,SAAS,0CAA0C,CAAC,iBAAiB,EAAE,EAAE,OAAO,KAAK,iBAAiB,IAAI,kCAAkC,GAAG,CAAC,CAAC,CAAC;AACpK,IAAI,OAAO,IAAI,iBAAiB,EAAE,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,kCAAkC,EAAE,SAAS,EAAE,CAAC,CAAC,8BAA8B,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,cAAc,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe,EAAE,YAAY,EAAE,cAAc,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,OAAO,EAAE,wBAAwB,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,eAAe,EAAE,cAAc,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,qBAAqB,EAAE,kBAAkB,CAAC,CAAC,EAAE,QAAQ,EAAE,SAAS,2CAA2C,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE;AACh2B,YAAY,EAAE,CAAC,cAAc,CAAC,CAAC,EAAE,kBAAkB,EAAE,CAAC,CAAC;AACvD,YAAY,EAAE,CAAC,UAAU,CAAC,aAAa,EAAE,SAAS,mFAAmF,GAAG,EAAE,OAAO,GAAG,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,SAAS,8EAA8E,GAAG,EAAE,OAAO,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC/S,YAAY,EAAE,CAAC,cAAc,CAAC,CAAC,EAAE,uBAAuB,EAAE,CAAC,CAAC;AAC5D,YAAY,EAAE,CAAC,UAAU,CAAC,eAAe,EAAE,SAAS,0FAA0F,CAAC,MAAM,EAAE,EAAE,OAAO,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,EAAE,SAAS,yFAAyF,CAAC,MAAM,EAAE,EAAE,OAAO,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACxW,YAAY,EAAE,CAAC,YAAY,EAAE,EAAE;AAC/B,QAAQ,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;AACtB,YAAY,EAAE,CAAC,UAAU,CAAC,cAAc,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,wBAAwB,EAAE,GAAG,CAAC,sBAAsB,CAAC,CAAC,YAAY,EAAE,GAAG,CAAC,UAAU,CAAC;AAC9L,YAAY,EAAE,CAAC,SAAS,EAAE;AAC1B,YAAY,EAAE,CAAC,WAAW,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;AACtE,YAAY,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,uBAAuB,CAAC,CAAC,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,qBAAqB,EAAE,GAAG,CAAC,mBAAmB,CAAC,CAAC,kBAAkB,EAAE,GAAG,CAAC,gBAAgB,CAAC;AAC5P,QAAQ,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,uBAAuB,EAAE,4BAA4B,CAAC,EAAE,MAAM,EAAE,CAAC,oIAAoI,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,CAAC;AACzP;AACA,CAAC,MAAM,EAAE,CAAC,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,KAAK,EAAE,CAAC,iBAAiB,CAAC,kCAAkC,EAAE,CAAC;AACtH,QAAQ,IAAI,EAAE,SAAS;AACvB,QAAQ,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,8BAA8B,EAAE,eAAe,EAAE,uBAAuB,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,uBAAuB,EAAE,4BAA4B,CAAC,EAAE,QAAQ,EAAE,wuBAAwuB,EAAE,MAAM,EAAE,CAAC,wGAAwG,CAAC,EAAE;AACthC,KAAK,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC;AACxB,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;AACrB,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC;AAC3B,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC;AACtB,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,WAAW,EAAE,CAAC;AAC1B,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;AACrB,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,mBAAmB,EAAE,CAAC;AAClC,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,gBAAgB,EAAE,CAAC;AAC/B,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;AACrB,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;AACrB,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,WAAW,EAAE,CAAC;AAC1B,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,aAAa,EAAE,CAAC;AAC5B,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC;AAC3B,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG;AACnB,CAAC,MAAM,EAAE,CAAC,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,KAAK,EAAE,CAAC,kBAAkB,CAAC,kCAAkC,EAAE,EAAE,SAAS,EAAE,oCAAoC,EAAE,QAAQ,EAAE,kEAAkE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG;;AC/F9Q,MAAM,wBAAwB,GAAG,kBAAkB;AACnD,MAAM,gBAAgB,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;AACxD,MAAM,aAAa,GAAG,OAAO;AAC7B,MAAM,cAAc,GAAG,MAAM;AAC7B,MAAM,SAAS,GAAG,OAAO;AACzB,MAAM,+BAA+B,GAAG;AACxC,IAAI,WAAW,EAAE,KAAK;AACtB,IAAI,iBAAiB,EAAE,IAAI;AAC3B,IAAI,UAAU,EAAE,CAAC,wBAAwB,CAAC;AAC1C,IAAI,QAAQ,EAAE,gBAAgB;AAC9B,IAAI,MAAM,EAAE,cAAc;AAC1B,IAAI,KAAK,EAAE,aAAa;AACxB,IAAI,QAAQ,EAAE,SAAS;AACvB,CAAC;AACM,MAAM,gCAAgC,CAAC;AAC9C,IAAI,gBAAgB,GAAG,MAAM,CAAC,eAAe,CAAC;AAC9C,IAAI,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC;AAChC,IAAI,eAAe,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAC9C,IAAI,UAAU;AACd,IAAI,OAAO;AACX,IAAI,wBAAwB;AAC5B,IAAI,6BAA6B;AACjC,IAAI,kCAAkC,GAAG,CAAC;AAC1C,IAAI,WAAW,GAAG;AAClB,QAAQ,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe;AACpD,QAAQ,IAAI,CAAC,UAAU,GAAG,eAAe,CAAC,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC;AACzE,IAAI;AACJ,IAAI,IAAI,CAAC,MAAM,EAAE;AACjB,QAAQ,IAAI,CAAC,KAAK,EAAE;AACpB,QAAQ,MAAM,WAAW,GAAG,MAAM,EAAE,YAAY,EAAE,UAAU;AAC5D,QAAQ,MAAM,UAAU,GAAG,WAAW,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,EAAE;AAC1F,QAAQ,MAAM,eAAe,GAAG;AAChC,YAAY,GAAG,+BAA+B;AAC9C,YAAY,GAAG,MAAM,CAAC,YAAY;AAClC,YAAY,GAAG,UAAU;AACzB,SAAS;AACT,QAAQ,MAAM,EAAE,YAAY,EAAE,cAAc,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC;AACtF,YAAY,SAAS,EAAE,kCAAkC;AACzD,YAAY,MAAM,EAAE,eAAe;AACnC,YAAY,mBAAmB,EAAE,CAAC,2BAA2B,CAAC;AAC9D,YAAY,cAAc,EAAE,wCAAwC;AACpE,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,6BAA6B,GAAG,YAAY;AACzD,QAAQ,IAAI,CAAC,6BAA6B,CAAC,iBAAiB,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK;AACjF,QAAQ,IAAI,CAAC,6BAA6B,CAAC,iBAAiB,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM;AACnF,QAAQ,IAAI,CAAC,6BAA6B,CAAC,iBAAiB,CAAC,OAAO;AACpE,YAAY,MAAM,CAAC,OAAO;AAC1B,QAAQ,IAAI,CAAC,6BAA6B,CAAC,iBAAiB,CAAC,mBAAmB;AAChF,YAAY,MAAM,CAAC,mBAAmB;AACtC,QAAQ,IAAI,CAAC,6BAA6B,CAAC,iBAAiB,CAAC,gBAAgB;AAC7E,YAAY,MAAM,CAAC,gBAAgB;AACnC,QAAQ,IAAI,CAAC,6BAA6B,CAAC,iBAAiB,CAAC,WAAW;AACxE,YAAY,MAAM,CAAC,WAAW;AAC9B,QAAQ,IAAI,CAAC,6BAA6B,CAAC,iBAAiB,CAAC,YAAY;AACzE,YAAY,cAAc,IAAI,MAAM,GAAG,MAAM,CAAC,YAAY,GAAG,SAAS;AACtE,QAAQ,IAAI,CAAC,kCAAkC,EAAE;AACjD,QAAQ,IAAI,CAAC,6BAA6B,CAAC,iBAAiB,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM;AACnF,QAAQ,cAAc,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK;AAC7C,YAAY,IAAI,CAAC,OAAO,GAAG,MAAM;AACjC,YAAY,IAAI,CAAC,wBAAwB,GAAG,IAAI,wBAAwB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,6BAA6B,EAAE,IAAI,CAAC,OAAO,CAAC;AAC3J,QAAQ,CAAC,CAAC;AACV,QAAQ,IAAI,CAAC,aAAa,EAAE;AAC5B,QAAQ,OAAO,IAAI,CAAC,6BAA6B;AACjD,IAAI;AACJ,IAAI,KAAK,GAAG;AACZ,QAAQ,IAAI,IAAI,CAAC,6BAA6B,EAAE;AAChD,YAAY,IAAI,IAAI,CAAC,wBAAwB,EAAE;AAC/C,gBAAgB,IAAI,CAAC,wBAAwB,CAAC,MAAM,EAAE;AACtD,YAAY;AACZ,YAAY,IAAI,CAAC,6BAA6B,CAAC,KAAK,EAAE;AACtD,QAAQ;AACR,IAAI;AACJ,IAAI,IAAI,MAAM,GAAG;AACjB,QAAQ,OAAO,IAAI,CAAC,kCAAkC,GAAG,CAAC;AAC1D,IAAI;AACJ,IAAI,aAAa,GAAG;AACpB,QAAQ,IAAI,CAAC,6BAA6B,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;AACjG,QAAQ,IAAI,CAAC;AACb,aAAa,WAAW;AACxB,aAAa,SAAS;AACtB,aAAa,IAAI,CAAC,MAAM;AACxB,YAAY,IAAI,CAAC,kCAAkC,EAAE;AACrD,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,OAAO,IAAI,GAAG,SAAS,wCAAwC,CAAC,iBAAiB,EAAE,EAAE,OAAO,KAAK,iBAAiB,IAAI,gCAAgC,GAAG,CAAC,CAAC,CAAC;AAChK,IAAI,OAAO,KAAK,iBAAiB,EAAE,CAAC,kBAAkB,CAAC,EAAE,KAAK,EAAE,gCAAgC,EAAE,OAAO,EAAE,gCAAgC,CAAC,IAAI,EAAE,CAAC;AACnJ;AACA,CAAC,MAAM,EAAE,CAAC,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,KAAK,EAAE,CAAC,iBAAiB,CAAC,gCAAgC,EAAE,CAAC;AACpH,QAAQ,IAAI,EAAE;AACd,KAAK,CAAC,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG;;AC3FtB,MAAM,kCAAkC,CAAC;AAChD,IAAI,+BAA+B,GAAG,MAAM,CAAC,gCAAgC,CAAC;AAC9E,IAAI,MAAM;AACV,IAAI,QAAQ,GAAG,KAAK;AACpB,IAAI,KAAK,GAAG;AACZ,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,EAAE;AAC3C,YAAY,IAAI,CAAC,+BAA+B,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;AAClE,QAAQ;AACR,IAAI;AACJ,IAAI,OAAO,IAAI,GAAG,SAAS,0CAA0C,CAAC,iBAAiB,EAAE,EAAE,OAAO,KAAK,iBAAiB,IAAI,kCAAkC,GAAG,CAAC,CAAC,CAAC;AACpK,IAAI,OAAO,IAAI,iBAAiB,EAAE,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,kCAAkC,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,2BAA2B,EAAE,EAAE,CAAC,CAAC,EAAE,YAAY,EAAE,SAAS,+CAA+C,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE;AACnP,YAAY,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,2DAA2D,GAAG,EAAE,OAAO,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;AAClI,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,2BAA2B,EAAE,QAAQ,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,CAAC;AACpG;AACA,CAAC,MAAM,EAAE,CAAC,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,KAAK,EAAE,CAAC,iBAAiB,CAAC,kCAAkC,EAAE,CAAC;AACtH,QAAQ,IAAI,EAAE,SAAS;AACvB,QAAQ,IAAI,EAAE,CAAC;AACf,gBAAgB,QAAQ,EAAE,6BAA6B;AACvD,aAAa;AACb,KAAK,CAAC,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC;AACzB,YAAY,IAAI,EAAE,KAAK;AACvB,YAAY,IAAI,EAAE,CAAC,2BAA2B;AAC9C,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;AACvB,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC;AACpB,YAAY,IAAI,EAAE,YAAY;AAC9B,YAAY,IAAI,EAAE,CAAC,OAAO;AAC1B,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG;;ACpBnB;AACA;AACA;AACA;AACO,MAAM,+BAA+B,CAAC;AAC7C,IAAI,WAAW,CAAC,YAAY,EAAE;AAC9B,QAAQ,YAAY,CAAC,sBAAsB,CAAC,gBAAgB,EAAE,kCAAkC,CAAC;AACjG,IAAI;AACJ,IAAI,OAAO,IAAI,GAAG,SAAS,uCAAuC,CAAC,iBAAiB,EAAE,EAAE,OAAO,KAAK,iBAAiB,IAAI,+BAA+B,EAAE,EAAE,CAAC,QAAQ,CAACC,IAAE,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7L,IAAI,OAAO,IAAI,iBAAiB,EAAE,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,+BAA+B,EAAE,CAAC;AAC9F,IAAI,OAAO,IAAI,iBAAiB,EAAE,CAAC,gBAAgB,CAAC,EAAE,SAAS,EAAE,CAAC,gCAAgC,EAAE,eAAe,CAAC,EAAE,OAAO,EAAE,CAAC,YAAY;AAC5I,YAAY,4BAA4B;AACxC,YAAY,kCAAkC,CAAC,EAAE,CAAC;AAClD;AACA,CAAC,MAAM,EAAE,CAAC,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,KAAK,EAAE,CAAC,iBAAiB,CAAC,+BAA+B,EAAE,CAAC;AACnH,QAAQ,IAAI,EAAE,QAAQ;AACtB,QAAQ,IAAI,EAAE,CAAC;AACf,gBAAgB,OAAO,EAAE;AACzB,oBAAoB,YAAY;AAChC,oBAAoB,4BAA4B;AAChD,oBAAoB,kCAAkC;AACtD,oBAAoB,kCAAkC;AACtD,iBAAiB;AACjB,gBAAgB,OAAO,EAAE;AACzB,oBAAoB,4BAA4B;AAChD,oBAAoB,kCAAkC;AACtD,oBAAoB,kCAAkC;AACtD,iBAAiB;AACjB,gBAAgB,SAAS,EAAE,CAAC,gCAAgC,EAAE,eAAe,CAAC;AAC9E,aAAa;AACb,KAAK,CAAC,EAAE,MAAM,CAAC,EAAE,IAAI,EAAEA,IAAE,CAAC,eAAe,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG;AACzD,CAAC,YAAY,EAAE,CAAC,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,KAAK,EAAE,CAAC,kBAAkB,CAAC,+BAA+B,EAAE,EAAE,OAAO,EAAE,CAAC,YAAY;AACjJ,QAAQ,4BAA4B;AACpC,QAAQ,kCAAkC;AAC1C,QAAQ,kCAAkC,CAAC,EAAE,OAAO,EAAE,CAAC,4BAA4B;AACnF,QAAQ,kCAAkC;AAC1C,QAAQ,kCAAkC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG;;AC9CpD;AACA;AACA;;;;"}
|
|
1
|
+
{"version":3,"file":"covalent-markdown-navigator.mjs","sources":["../tmp-esm2022/markdown-navigator.component.js","../tmp-esm2022/markdown-navigator-window/markdown-navigator-window.component.js","../tmp-esm2022/markdown-navigator-window-service/markdown-navigator-window.service.js","../tmp-esm2022/markdown-navigator-window-directive/markdown-navigator-window.directive.js","../tmp-esm2022/markdown-navigator.module.js","../tmp-esm2022/covalent-markdown-navigator.js"],"sourcesContent":["import { Component, Input, HostListener, ViewChild, ElementRef, ChangeDetectorRef, ChangeDetectionStrategy, Output, EventEmitter, SecurityContext, inject, } from '@angular/core';\nimport { removeLeadingHash, isAnchorLink, TdMarkdownLoaderService, } from '@covalent/markdown';\nimport { TdFlavoredMarkdownComponent, TdFlavoredMarkdownLoaderComponent, } from '@covalent/flavored-markdown';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { HttpClient } from '@angular/common/http';\nimport { firstValueFrom } from 'rxjs';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatListModule } from '@angular/material/list';\nimport { MatIconModule, MatIconRegistry } from '@angular/material/icon';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { TdMessageComponent } from '@covalent/core/message';\nimport { TdBreadcrumbsComponent, TdBreadcrumbComponent, } from '@covalent/core/breadcrumbs';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nimport * as i2 from \"@angular/material/tooltip\";\nimport * as i3 from \"@angular/material/list\";\nimport * as i4 from \"@angular/material/icon\";\nimport * as i5 from \"@angular/material/progress-bar\";\nconst _c0 = [\"markdownWrapper\"];\nconst _c1 = () => ({});\nconst _forTrack0 = ($index, $item) => $item.id ?? $index;\nfunction TdMarkdownNavigatorComponent_Conditional_0_Conditional_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"mat-progress-bar\", 2);\n} }\nfunction TdMarkdownNavigatorComponent_Conditional_0_Conditional_2_For_4_Template(rf, ctx) { if (rf & 1) {\n const _r3 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"a\", 11);\n i0.ɵɵlistener(\"click\", function TdMarkdownNavigatorComponent_Conditional_0_Conditional_2_For_4_Template_a_click_0_listener() { const ɵ$index_13_r4 = i0.ɵɵrestoreView(_r3).$index; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.goBack(ctx_r1.historyStack.length - ɵ$index_13_r4)); });\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const item_r5 = ctx.$implicit;\n const ɵ$index_13_r4 = ctx.$index;\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵattribute(\"data-test\", \"back-button-\" + ɵ$index_13_r4);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r1.getTitle(item_r5));\n} }\nfunction TdMarkdownNavigatorComponent_Conditional_0_Conditional_2_Template(rf, ctx) { if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"td-breadcrumbs\")(1, \"a\", 8);\n i0.ɵɵlistener(\"click\", function TdMarkdownNavigatorComponent_Conditional_0_Conditional_2_Template_a_click_1_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.reset()); });\n i0.ɵɵtext(2, \"Home\");\n i0.ɵɵelementEnd();\n i0.ɵɵrepeaterCreate(3, TdMarkdownNavigatorComponent_Conditional_0_Conditional_2_For_4_Template, 2, 2, \"a\", 9, _forTrack0);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(5, \"div\", 10);\n i0.ɵɵtext(6);\n i0.ɵɵelementEnd();\n i0.ɵɵelement(7, \"mat-divider\");\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"matTooltip\", ctx_r1.goHomeLabel ?? \"\");\n i0.ɵɵattribute(\"data-test\", \"home-button\");\n i0.ɵɵadvance(2);\n i0.ɵɵrepeater(ctx_r1.navigationBreadcrumbs);\n i0.ɵɵadvance(2);\n i0.ɵɵattribute(\"data-test\", \"title\");\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", ctx_r1.currentItemTitle, \" \");\n i0.ɵɵadvance();\n i0.ɵɵstyleProp(\"position\", \"relative\");\n} }\nfunction TdMarkdownNavigatorComponent_Conditional_0_Conditional_4_Conditional_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"td-message\", 5);\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵproperty(\"sublabel\", ctx_r1.markdownLoaderError);\n i0.ɵɵattribute(\"data-test\", \"markdown-loader-error\");\n} }\nfunction TdMarkdownNavigatorComponent_Conditional_0_Conditional_4_Conditional_3_Template(rf, ctx) { if (rf & 1) {\n const _r6 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"td-flavored-markdown-loader\", 14);\n i0.ɵɵlistener(\"loadFailed\", function TdMarkdownNavigatorComponent_Conditional_0_Conditional_4_Conditional_3_Template_td_flavored_markdown_loader_loadFailed_0_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.handleMarkdownLoaderError($event)); })(\"buttonClicked\", function TdMarkdownNavigatorComponent_Conditional_0_Conditional_4_Conditional_3_Template_td_flavored_markdown_loader_buttonClicked_0_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.buttonClicked.emit($event)); });\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵproperty(\"url\", ctx_r1.url ?? \"\")(\"httpOptions\", ctx_r1.httpOptions ?? i0.ɵɵpureFunction0(5, _c1))(\"anchor\", ctx_r1.anchor ?? \"\")(\"copyCodeToClipboard\", ctx_r1.copyCodeToClipboard)(\"copyCodeTooltips\", ctx_r1.copyCodeTooltips);\n} }\nfunction TdMarkdownNavigatorComponent_Conditional_0_Conditional_4_Conditional_4_Template(rf, ctx) { if (rf & 1) {\n const _r7 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"td-flavored-markdown\", 15);\n i0.ɵɵlistener(\"buttonClicked\", function TdMarkdownNavigatorComponent_Conditional_0_Conditional_4_Conditional_4_Template_td_flavored_markdown_buttonClicked_0_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.buttonClicked.emit($event)); });\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵproperty(\"content\", ctx_r1.markdownString ?? \"\")(\"hostedUrl\", ctx_r1.url ?? \"\")(\"anchor\", ctx_r1.anchor ?? \"\")(\"copyCodeToClipboard\", ctx_r1.copyCodeToClipboard)(\"copyCodeTooltips\", ctx_r1.copyCodeTooltips);\n} }\nfunction TdMarkdownNavigatorComponent_Conditional_0_Conditional_4_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 4, 0);\n i0.ɵɵconditionalCreate(2, TdMarkdownNavigatorComponent_Conditional_0_Conditional_4_Conditional_2_Template, 1, 2, \"td-message\", 5);\n i0.ɵɵconditionalCreate(3, TdMarkdownNavigatorComponent_Conditional_0_Conditional_4_Conditional_3_Template, 1, 6, \"td-flavored-markdown-loader\", 12);\n i0.ɵɵconditionalCreate(4, TdMarkdownNavigatorComponent_Conditional_0_Conditional_4_Conditional_4_Template, 1, 5, \"td-flavored-markdown\", 13);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance(2);\n i0.ɵɵconditional(ctx_r1.markdownLoaderError ? 2 : -1);\n i0.ɵɵadvance();\n i0.ɵɵconditional(ctx_r1.showTdMarkdownLoader ? 3 : -1);\n i0.ɵɵadvance();\n i0.ɵɵconditional(ctx_r1.showTdMarkdown ? 4 : -1);\n} }\nfunction TdMarkdownNavigatorComponent_Conditional_0_Conditional_5_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"td-message\", 5);\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"sublabel\", ctx_r1.childrenUrlError);\n i0.ɵɵattribute(\"data-test\", \"children-url-error\");\n} }\nfunction TdMarkdownNavigatorComponent_Conditional_0_Conditional_6_For_3_Template(rf, ctx) { if (rf & 1) {\n const _r8 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"button\", 17);\n i0.ɵɵlistener(\"click\", function TdMarkdownNavigatorComponent_Conditional_0_Conditional_6_For_3_Template_button_click_0_listener() { const item_r9 = i0.ɵɵrestoreView(_r8).$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.handleItemSelected(item_r9)); });\n i0.ɵɵelementStart(1, \"mat-icon\", 18);\n i0.ɵɵtext(2);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"span\", 19);\n i0.ɵɵtext(4);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(5, \"span\", 20);\n i0.ɵɵtext(6);\n i0.ɵɵelementEnd();\n i0.ɵɵelement(7, \"mat-divider\");\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const item_r9 = ctx.$implicit;\n const ɵ$index_44_r10 = ctx.$index;\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵproperty(\"id\", \"td-markdown-navigator-list-item-\" + (item_r9.id ? item_r9.id : ɵ$index_44_r10))(\"matTooltip\", ctx_r1.getTitle(item_r9));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"fontSet\", ctx_r1.isCovalentIcon(item_r9) ? \"covalent-icons\" : \"\");\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", ctx_r1.getIcon(item_r9), \" \");\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate1(\" \", ctx_r1.getTitle(item_r9), \" \");\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate1(\" \", item_r9.description, \" \");\n} }\nfunction TdMarkdownNavigatorComponent_Conditional_0_Conditional_6_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 6)(1, \"mat-action-list\");\n i0.ɵɵrepeaterCreate(2, TdMarkdownNavigatorComponent_Conditional_0_Conditional_6_For_3_Template, 8, 6, \"button\", 16, _forTrack0);\n i0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance(2);\n i0.ɵɵrepeater(ctx_r1.currentMenuItems);\n} }\nfunction TdMarkdownNavigatorComponent_Conditional_0_ng_container_7_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainer(0);\n} }\nfunction TdMarkdownNavigatorComponent_Conditional_0_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵconditionalCreate(1, TdMarkdownNavigatorComponent_Conditional_0_Conditional_1_Template, 1, 0, \"mat-progress-bar\", 2);\n i0.ɵɵconditionalCreate(2, TdMarkdownNavigatorComponent_Conditional_0_Conditional_2_Template, 8, 6);\n i0.ɵɵelementStart(3, \"div\", 3);\n i0.ɵɵconditionalCreate(4, TdMarkdownNavigatorComponent_Conditional_0_Conditional_4_Template, 5, 3, \"div\", 4);\n i0.ɵɵconditionalCreate(5, TdMarkdownNavigatorComponent_Conditional_0_Conditional_5_Template, 1, 2, \"td-message\", 5);\n i0.ɵɵconditionalCreate(6, TdMarkdownNavigatorComponent_Conditional_0_Conditional_6_Template, 4, 0, \"div\", 6);\n i0.ɵɵtemplate(7, TdMarkdownNavigatorComponent_Conditional_0_ng_container_7_Template, 1, 0, \"ng-container\", 7);\n i0.ɵɵelementEnd();\n i0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵconditional(ctx_r1.loading ? 1 : -1);\n i0.ɵɵadvance();\n i0.ɵɵconditional(ctx_r1.showHeader ? 2 : -1);\n i0.ɵɵadvance(2);\n i0.ɵɵconditional(ctx_r1.showTdMarkdownLoader || ctx_r1.showTdMarkdown ? 4 : -1);\n i0.ɵɵadvance();\n i0.ɵɵconditional(ctx_r1.childrenUrlError ? 5 : -1);\n i0.ɵɵadvance();\n i0.ɵɵconditional(ctx_r1.showMenu ? 6 : -1);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngComponentOutlet\", ctx_r1.footerComponent);\n} }\nfunction TdMarkdownNavigatorComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 1)(1, \"mat-icon\", 21);\n i0.ɵɵtext(2, \"subject\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"h2\");\n i0.ɵɵtext(4);\n i0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance(4);\n i0.ɵɵtextInterpolate(ctx_r1.emptyStateLabel);\n} }\nexport const DEFAULT_MARKDOWN_NAVIGATOR_LABELS = {\n goHome: 'Go home',\n goBack: 'Go back',\n emptyState: 'No item(s) to display',\n};\nexport class TdMarkdownNavigatorComponent {\n _markdownUrlLoaderService = inject(TdMarkdownLoaderService);\n _changeDetectorRef = inject(ChangeDetectorRef);\n _sanitizer = inject(DomSanitizer);\n _http = inject(HttpClient);\n _iconRegistry = inject(MatIconRegistry);\n constructor() {\n this._iconRegistry.registerFontClassAlias('covalent-icons', 'covalent-icons mat-ligature-font');\n }\n /**\n * items: IMarkdownNavigatorItem[]\n *\n * List of IMarkdownNavigatorItems to be rendered\n */\n items;\n /**\n * labels?: IMarkdownNavigatorLabels\n *\n * Translated labels\n */\n labels;\n /**\n * startAt?: IMarkdownNavigatorItem | IMarkdownNavigatorItem[];\n *\n * Item or path to start at\n */\n startAt;\n /**\n * copyCodeToClipboard?: boolean\n *\n * Display copy button on code snippets to copy code to clipboard.\n *\n */\n copyCodeToClipboard = false;\n /**\n * copyCodeTooltips?: ICopyCodeTooltips\n *\n * Tooltips for copy button to copy and upon copying.\n */\n copyCodeTooltips = {};\n /**\n * footer?: Type<any>\n *\n * Component to be displayed in footer\n */\n footer;\n /**\n * compareWith?: IMarkdownNavigatorCompareWith\n *\n * Function used to find startAt item\n * Defaults to comparison by strict equality (===)\n */\n compareWith;\n buttonClicked = new EventEmitter();\n itemSelected = new EventEmitter();\n markdownWrapper;\n historyStack = []; // history\n currentMarkdownItem; // currently rendered\n currentMenuItems = []; // current menu items\n loading = false;\n markdownLoaderError;\n childrenUrlError;\n clickListener(event) {\n const element = event.srcElement;\n if (element.matches('a[href]') &&\n isMarkdownHref(element)) {\n this.handleLinkClick(event);\n }\n }\n get showGoBackButton() {\n return this.historyStack.length > 0;\n }\n get showHeader() {\n return !!this.currentItemTitle;\n }\n get showMenu() {\n const showMenu = this.currentMenuItems && this.currentMenuItems.length > 0;\n return showMenu ?? false;\n }\n get showTdMarkdownLoader() {\n return (!!this.currentMarkdownItem &&\n !!this.currentMarkdownItem.url &&\n !this.showTdMarkdown);\n }\n get showTdMarkdown() {\n return (!!this.currentMarkdownItem && !!this.currentMarkdownItem.markdownString);\n }\n get url() {\n if (this.currentMarkdownItem) {\n return this.currentMarkdownItem.url;\n }\n return undefined;\n }\n get footerComponent() {\n if (this.currentMarkdownItem && this.currentMarkdownItem.footer) {\n return this.currentMarkdownItem.footer;\n }\n return this.footer;\n }\n get httpOptions() {\n if (this.currentMarkdownItem) {\n return this.currentMarkdownItem.httpOptions;\n }\n return undefined;\n }\n get markdownString() {\n if (this.currentMarkdownItem) {\n return this.currentMarkdownItem.markdownString;\n }\n return undefined;\n }\n get anchor() {\n if (this.currentMarkdownItem) {\n return this.currentMarkdownItem.anchor;\n }\n return undefined;\n }\n get showEmptyState() {\n return !this.items || this.items.length < 1;\n }\n get goHomeLabel() {\n return ((this.labels && this.labels.goHome) ||\n DEFAULT_MARKDOWN_NAVIGATOR_LABELS.goHome);\n }\n get goBackLabel() {\n return ((this.labels && this.labels.goBack) ||\n DEFAULT_MARKDOWN_NAVIGATOR_LABELS.goBack);\n }\n get emptyStateLabel() {\n return ((this.labels && this.labels.emptyState) ||\n DEFAULT_MARKDOWN_NAVIGATOR_LABELS.emptyState);\n }\n get currentItemTitle() {\n if (this.currentMarkdownItem) {\n return this.getTitle(this.currentMarkdownItem);\n }\n else if (this.historyStack.length > 0) {\n return this.getTitle(this.historyStack[this.historyStack.length - 1]);\n }\n return '';\n }\n get navigationBreadcrumbs() {\n return this.historyStack.slice(0, -1);\n }\n async ngOnChanges(changes) {\n if (changes['items']) {\n this.reset();\n }\n if (changes['startAt'] && this.items && this.startAt) {\n this._jumpTo(this.startAt, undefined);\n }\n }\n hasChildrenOrChildrenUrl(item) {\n return (item.children && item.children.length > 0) || !!item.childrenUrl;\n }\n clearErrors() {\n this.markdownLoaderError = undefined;\n this.childrenUrlError = undefined;\n }\n reset() {\n this.loading = false;\n this.clearErrors();\n // if single item and no children\n if (this.items &&\n this.items.length === 1 &&\n !this.hasChildrenOrChildrenUrl(this.items[0])) {\n this.currentMenuItems = [];\n this.currentMarkdownItem = this.items[0];\n }\n else {\n this.currentMenuItems = this.items;\n this.currentMarkdownItem = undefined;\n }\n this.historyStack = [];\n this.itemSelected.emit(undefined);\n this._changeDetectorRef.markForCheck();\n }\n goBack(goBackLength = 2) {\n this.loading = false;\n this.clearErrors();\n let parent = this.historyStack[this.historyStack.length - goBackLength];\n if (parent?.startAtLink) {\n parent = this.historyStack[this.historyStack.length - 3]\n ? this.historyStack[this.historyStack.length - 3]\n : undefined;\n this.historyStack = this.historyStack.slice(0, -goBackLength);\n }\n if (parent) {\n this.currentMarkdownItem = parent;\n this.historyStack = this.historyStack.slice(0, this.historyStack.length - goBackLength + 1);\n this.setChildrenAsCurrentMenuItems(parent);\n }\n else {\n this.reset();\n }\n this.itemSelected.emit(parent);\n this._changeDetectorRef.markForCheck();\n }\n handleItemSelected(item) {\n this.clearErrors();\n this.currentMarkdownItem = item;\n this.historyStack = [...this.historyStack, item];\n this.setChildrenAsCurrentMenuItems(item);\n this.itemSelected.emit(item);\n this._changeDetectorRef.markForCheck();\n }\n async setChildrenAsCurrentMenuItems(item) {\n this.currentMenuItems = [];\n this.loading = true;\n this._changeDetectorRef.markForCheck();\n const stackSnapshot = this.historyStack;\n let children = [];\n if (item.children) {\n children = item.children;\n }\n else if (item.childrenUrl) {\n children = await this.loadChildrenUrl(item);\n }\n if (children && children.length && item.startAtLink) {\n this._jumpTo(item.startAtLink, children);\n }\n const newStackSnapshot = this.historyStack;\n if (stackSnapshot.length === newStackSnapshot.length &&\n stackSnapshot.every((stackItem, index) => stackItem === newStackSnapshot[index])) {\n this.currentMenuItems = children;\n }\n this.loading = false;\n this._changeDetectorRef.markForCheck();\n }\n async loadChildrenUrl(item) {\n const sanitizedUrl = this._sanitizer.sanitize(SecurityContext.URL, item.childrenUrl ?? null) ??\n '';\n try {\n return await firstValueFrom(this._http.get(sanitizedUrl, {\n ...item.httpOptions,\n }));\n }\n catch (error) {\n this.handleChildrenUrlError(error);\n return [];\n }\n }\n getTitle(item) {\n if (!item) {\n return '';\n }\n return (removeLeadingHash(item.anchor ?? '') ||\n item.title ||\n getTitleFromUrl(item.url ?? '') ||\n getTitleFromMarkdownString(item.markdownString ?? '') ||\n '').trim();\n }\n getIcon(item) {\n const icon = item?.icon || 'subject';\n return icon.split(';')[0];\n }\n isCovalentIcon(item) {\n if (!item?.icon)\n return false;\n return item?.icon.includes(';covalent');\n }\n handleChildrenUrlError(error) {\n this.childrenUrlError = error.message;\n this._changeDetectorRef.markForCheck();\n }\n handleMarkdownLoaderError(error) {\n this.markdownLoaderError = error ? error.message : '';\n this._changeDetectorRef.markForCheck();\n }\n async _jumpTo(itemOrPath, children) {\n const historyStack = this.historyStack;\n let path = [];\n if (this.items?.length) {\n if (Array.isArray(itemOrPath)) {\n path = await this.followPath(this.items, itemOrPath);\n }\n else if (children && children.length > 0) {\n this.historyStack = historyStack;\n path = this.findPath(children, itemOrPath);\n }\n else {\n path = this.findPath(this.items, itemOrPath);\n }\n path.forEach((pathItem, index) => {\n if (index === 0) {\n this.reset();\n }\n this.handleItemSelected(pathItem);\n });\n }\n return !!path.length;\n }\n async followPath(items, path) {\n let pathItems = [];\n let currentLevel = items;\n const compareWith = this.compareWith || defaultCompareWith;\n for (const pathItem of path) {\n const foundItem = currentLevel.find((item) => compareWith(pathItem, item));\n if (foundItem) {\n pathItems = [...pathItems, foundItem];\n if (foundItem.children) {\n currentLevel = foundItem.children;\n }\n else if (foundItem.childrenUrl) {\n currentLevel = await this.loadChildrenUrl(foundItem);\n }\n }\n else {\n break;\n }\n }\n if (pathItems.length !== path.length) {\n pathItems = [];\n }\n return pathItems;\n }\n findPath(items, item) {\n const compareWith = this.compareWith || defaultCompareWith;\n if (items) {\n for (const child of items) {\n if (item && compareWith(child, item)) {\n return [child];\n }\n const ancestors = this.findPath(child.children, item);\n if (ancestors.length) {\n return [child, ...ancestors];\n }\n }\n }\n return [];\n }\n async handleLinkClick(event) {\n event.preventDefault();\n const link = event.target;\n const url = new URL(link.href);\n const urlParts = url.href.split('/');\n const id = urlParts[urlParts.length - 1].split('.md')[0];\n this.loading = true;\n this._changeDetectorRef.markForCheck();\n const pathFound = await this._jumpTo({ id });\n if (pathFound) {\n return;\n }\n try {\n const markdownString = await this._markdownUrlLoaderService.load(url.href);\n // pass in url to be able to use currentMarkdownItem.url later on\n this.handleItemSelected({ markdownString, url: url.href });\n this.markdownWrapper.nativeElement.scrollTop = 0;\n }\n catch (error) {\n const win = window.open(url.href, '_blank');\n win?.focus();\n }\n finally {\n this.loading = false;\n }\n this._changeDetectorRef.markForCheck();\n }\n static ɵfac = function TdMarkdownNavigatorComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TdMarkdownNavigatorComponent)(); };\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TdMarkdownNavigatorComponent, selectors: [[\"td-markdown-navigator\"]], viewQuery: function TdMarkdownNavigatorComponent_Query(rf, ctx) { if (rf & 1) {\n i0.ɵɵviewQuery(_c0, 5);\n } if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.markdownWrapper = _t.first);\n } }, hostBindings: function TdMarkdownNavigatorComponent_HostBindings(rf, ctx) { if (rf & 1) {\n i0.ɵɵlistener(\"click\", function TdMarkdownNavigatorComponent_click_HostBindingHandler($event) { return ctx.clickListener($event); });\n } }, inputs: { items: \"items\", labels: \"labels\", startAt: \"startAt\", copyCodeToClipboard: \"copyCodeToClipboard\", copyCodeTooltips: \"copyCodeTooltips\", footer: \"footer\", compareWith: \"compareWith\" }, outputs: { buttonClicked: \"buttonClicked\", itemSelected: \"itemSelected\" }, features: [i0.ɵɵProvidersFeature([TdMarkdownLoaderService]), i0.ɵɵNgOnChangesFeature], decls: 2, vars: 2, consts: [[\"markdownWrapper\", \"\"], [\"layout\", \"column\", \"layout-align\", \"center center\", 1, \"empty-state\"], [\"mode\", \"indeterminate\", \"color\", \"accent\"], [\"id\", \"td-markdown-navigator-content\", 1, \"scroll-area\"], [1, \"markdown-wrapper\"], [\"color\", \"warn\", \"icon\", \"error\", 3, \"sublabel\"], [1, \"td-markdown-list\"], [4, \"ngComponentOutlet\"], [\"td-breadcrumb\", \"\", 3, \"click\", \"matTooltip\"], [\"td-breadcrumb\", \"\"], [1, \"breadcrumb-current-title\"], [\"td-breadcrumb\", \"\", 3, \"click\"], [3, \"url\", \"httpOptions\", \"anchor\", \"copyCodeToClipboard\", \"copyCodeTooltips\"], [3, \"content\", \"hostedUrl\", \"anchor\", \"copyCodeToClipboard\", \"copyCodeTooltips\"], [3, \"loadFailed\", \"buttonClicked\", \"url\", \"httpOptions\", \"anchor\", \"copyCodeToClipboard\", \"copyCodeTooltips\"], [3, \"buttonClicked\", \"content\", \"hostedUrl\", \"anchor\", \"copyCodeToClipboard\", \"copyCodeTooltips\"], [\"mat-list-item\", \"\", \"matTooltipPosition\", \"before\", \"matTooltipShowDelay\", \"500\", 3, \"id\", \"matTooltip\"], [\"mat-list-item\", \"\", \"matTooltipPosition\", \"before\", \"matTooltipShowDelay\", \"500\", 3, \"click\", \"id\", \"matTooltip\"], [\"matListItemIcon\", \"\", 3, \"fontSet\"], [\"matListItemTitle\", \"\", 1, \"truncate\"], [\"matListItemLine\", \"\", 1, \"truncate\"], [\"matListItemAvatar\", \"\"]], template: function TdMarkdownNavigatorComponent_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵconditionalCreate(0, TdMarkdownNavigatorComponent_Conditional_0_Template, 8, 6, \"ng-container\");\n i0.ɵɵconditionalCreate(1, TdMarkdownNavigatorComponent_Conditional_1_Template, 5, 1, \"div\", 1);\n } if (rf & 2) {\n i0.ɵɵconditional(!ctx.showEmptyState ? 0 : -1);\n i0.ɵɵadvance();\n i0.ɵɵconditional(ctx.showEmptyState ? 1 : -1);\n } }, dependencies: [CommonModule, i1.NgComponentOutlet, MatButtonModule,\n MatTooltipModule, i2.MatTooltip, MatListModule, i3.MatActionList, i3.MatListItem, i3.MatListItemAvatar, i3.MatListItemIcon, i3.MatDivider, i3.MatListItemLine, i3.MatListItemTitle, MatIconModule, i4.MatIcon, MatProgressBarModule, i5.MatProgressBar, TdFlavoredMarkdownComponent,\n TdFlavoredMarkdownLoaderComponent,\n TdMessageComponent,\n TdBreadcrumbsComponent,\n TdBreadcrumbComponent], styles: [\"[_nghost-%COMP%]{position:relative;height:inherit;height:100%;box-sizing:border-box;display:flex;flex-direction:column}[_nghost-%COMP%] .breadcrumb-current-title[_ngcontent-%COMP%]{margin-bottom:16px;padding-left:16px}[_nghost-%COMP%] .breadcrumb-end-icon[_ngcontent-%COMP%]{margin-left:8px;font-size:16px;width:16px;height:16px}[_nghost-%COMP%] .scroll-area[_ngcontent-%COMP%]{min-height:1px;overflow-y:auto;flex:1;box-sizing:border-box}[_nghost-%COMP%] .markdown-wrapper[_ngcontent-%COMP%]{padding:16px 16px 0}[_nghost-%COMP%] .td-markdown-list[_ngcontent-%COMP%] > .mat-list[_ngcontent-%COMP%]{padding-top:0}[_nghost-%COMP%] td-breadcrumbs[_ngcontent-%COMP%]{padding:8px 8px 0 16px}[_nghost-%COMP%] td-flavored-markdown-loader[_ngcontent-%COMP%] .mat-progress-bar{top:0;left:0;right:0;position:absolute}[_nghost-%COMP%] .title[_ngcontent-%COMP%]{display:inline-block;vertical-align:middle;margin:8px 0;padding-left:16px}.truncate[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.empty-state[_ngcontent-%COMP%]{padding:32px}.empty-state[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:4em}\"], changeDetection: 0 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(TdMarkdownNavigatorComponent, [{\n type: Component,\n args: [{ selector: 'td-markdown-navigator', changeDetection: ChangeDetectionStrategy.OnPush, imports: [\n CommonModule,\n MatButtonModule,\n MatTooltipModule,\n MatListModule,\n MatIconModule,\n MatProgressBarModule,\n TdFlavoredMarkdownComponent,\n TdFlavoredMarkdownLoaderComponent,\n TdMessageComponent,\n TdBreadcrumbsComponent,\n TdBreadcrumbComponent,\n ], providers: [TdMarkdownLoaderService], template: \"@if (!showEmptyState) {\\n <ng-container>\\n @if (loading) {\\n <mat-progress-bar mode=\\\"indeterminate\\\" color=\\\"accent\\\"></mat-progress-bar>\\n }\\n\\n @if (showHeader) {\\n <td-breadcrumbs>\\n <a\\n td-breadcrumb\\n [matTooltip]=\\\"goHomeLabel ?? ''\\\"\\n (click)=\\\"reset()\\\"\\n [attr.data-test]=\\\"'home-button'\\\"\\n >Home</a\\n >\\n\\n @for (\\n item of navigationBreadcrumbs;\\n let index = $index;\\n track item.id ?? index\\n ) {\\n <a\\n td-breadcrumb\\n (click)=\\\"goBack(historyStack.length - index)\\\"\\n [attr.data-test]=\\\"'back-button-' + index\\\"\\n >{{ getTitle(item) }}</a\\n >\\n }\\n </td-breadcrumbs>\\n\\n <div class=\\\"breadcrumb-current-title\\\" [attr.data-test]=\\\"'title'\\\">\\n {{ currentItemTitle }}\\n </div>\\n\\n <mat-divider [style.position]=\\\"'relative'\\\"></mat-divider>\\n }\\n\\n <div class=\\\"scroll-area\\\" id=\\\"td-markdown-navigator-content\\\">\\n @if (showTdMarkdownLoader || showTdMarkdown) {\\n <div class=\\\"markdown-wrapper\\\" #markdownWrapper>\\n @if (markdownLoaderError) {\\n <td-message\\n [sublabel]=\\\"markdownLoaderError\\\"\\n color=\\\"warn\\\"\\n icon=\\\"error\\\"\\n [attr.data-test]=\\\"'markdown-loader-error'\\\"\\n ></td-message>\\n }\\n\\n @if (showTdMarkdownLoader) {\\n <td-flavored-markdown-loader\\n [url]=\\\"url ?? ''\\\"\\n [httpOptions]=\\\"httpOptions ?? {}\\\"\\n [anchor]=\\\"anchor ?? ''\\\"\\n [copyCodeToClipboard]=\\\"copyCodeToClipboard\\\"\\n [copyCodeTooltips]=\\\"copyCodeTooltips\\\"\\n (loadFailed)=\\\"handleMarkdownLoaderError($event)\\\"\\n (buttonClicked)=\\\"buttonClicked.emit($event)\\\"\\n ></td-flavored-markdown-loader>\\n }\\n\\n @if (showTdMarkdown) {\\n <td-flavored-markdown\\n [content]=\\\"markdownString ?? ''\\\"\\n [hostedUrl]=\\\"url ?? ''\\\"\\n [anchor]=\\\"anchor ?? ''\\\"\\n [copyCodeToClipboard]=\\\"copyCodeToClipboard\\\"\\n [copyCodeTooltips]=\\\"copyCodeTooltips\\\"\\n (buttonClicked)=\\\"buttonClicked.emit($event)\\\"\\n ></td-flavored-markdown>\\n }\\n </div>\\n }\\n\\n @if (childrenUrlError) {\\n <td-message\\n [sublabel]=\\\"childrenUrlError\\\"\\n color=\\\"warn\\\"\\n icon=\\\"error\\\"\\n [attr.data-test]=\\\"'children-url-error'\\\"\\n ></td-message>\\n }\\n\\n @if (showMenu) {\\n <div class=\\\"td-markdown-list\\\">\\n <mat-action-list>\\n @for (\\n item of currentMenuItems;\\n let index = $index;\\n track item.id ?? index\\n ) {\\n <button\\n [id]=\\\"\\n 'td-markdown-navigator-list-item-' +\\n (item.id ? item.id : index)\\n \\\"\\n (click)=\\\"handleItemSelected(item)\\\"\\n mat-list-item\\n [matTooltip]=\\\"getTitle(item)\\\"\\n matTooltipPosition=\\\"before\\\"\\n matTooltipShowDelay=\\\"500\\\"\\n >\\n <mat-icon\\n matListItemIcon\\n [fontSet]=\\\"isCovalentIcon(item) ? 'covalent-icons' : ''\\\"\\n >\\n {{ getIcon(item) }}\\n </mat-icon>\\n <span matListItemTitle class=\\\"truncate\\\">\\n {{ getTitle(item) }}\\n </span>\\n <span matListItemLine class=\\\"truncate\\\">\\n {{ item.description }}\\n </span>\\n <mat-divider></mat-divider>\\n </button>\\n }\\n </mat-action-list>\\n </div>\\n }\\n <ng-container *ngComponentOutlet=\\\"footerComponent\\\"></ng-container>\\n </div>\\n </ng-container>\\n}\\n\\n@if (showEmptyState) {\\n <div layout=\\\"column\\\" layout-align=\\\"center center\\\" class=\\\"empty-state\\\">\\n <mat-icon matListItemAvatar>subject</mat-icon>\\n <h2>{{ emptyStateLabel }}</h2>\\n </div>\\n}\\n\", styles: [\":host{position:relative;height:inherit;height:100%;box-sizing:border-box;display:flex;flex-direction:column}:host .breadcrumb-current-title{margin-bottom:16px;padding-left:16px}:host .breadcrumb-end-icon{margin-left:8px;font-size:16px;width:16px;height:16px}:host .scroll-area{min-height:1px;overflow-y:auto;flex:1;box-sizing:border-box}:host .markdown-wrapper{padding:16px 16px 0}:host .td-markdown-list>.mat-list{padding-top:0}:host td-breadcrumbs{padding:8px 8px 0 16px}:host td-flavored-markdown-loader ::ng-deep .mat-progress-bar{top:0;left:0;right:0;position:absolute}:host .title{display:inline-block;vertical-align:middle;margin:8px 0;padding-left:16px}.truncate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.empty-state{padding:32px}.empty-state mat-icon{font-size:4em}\\n\"] }]\n }], () => [], { items: [{\n type: Input\n }], labels: [{\n type: Input\n }], startAt: [{\n type: Input\n }], copyCodeToClipboard: [{\n type: Input\n }], copyCodeTooltips: [{\n type: Input\n }], footer: [{\n type: Input\n }], compareWith: [{\n type: Input\n }], buttonClicked: [{\n type: Output\n }], itemSelected: [{\n type: Output\n }], markdownWrapper: [{\n type: ViewChild,\n args: ['markdownWrapper']\n }], clickListener: [{\n type: HostListener,\n args: ['click', ['$event']]\n }] }); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(TdMarkdownNavigatorComponent, { className: \"TdMarkdownNavigatorComponent\", filePath: \"markdown-navigator.component.ts\", lineNumber: 95 }); })();\nfunction getTitleFromUrl(url) {\n if (url) {\n const temp = new URL(url);\n if (temp.hash) {\n return removeLeadingHash(temp.hash);\n }\n else {\n const path = temp.pathname.split('/');\n const fileName = path[path.length - 1];\n return fileName.replace(/\\.[^/.]+$/, ''); // remove .md\n }\n }\n return '';\n}\nfunction getTitleFromMarkdownString(markdownString) {\n if (markdownString) {\n const firstLine = markdownString.split(/[\\r\\n]+/).find((line) => !!line) ?? '';\n return removeLeadingHash(firstLine).trim();\n }\n return '';\n}\nfunction isMarkdownHref(anchor) {\n return !isAnchorLink(anchor) && anchor.pathname.endsWith('.md');\n}\nfunction defaultCompareWith(o1, o2) {\n if (o1.id && o2.id) {\n return o1.id === o2.id;\n }\n return o1 === o2;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2Rvd24tbmF2aWdhdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvbWFya2Rvd24tbmF2aWdhdG9yL3NyYy9tYXJrZG93bi1uYXZpZ2F0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vbGlicy9tYXJrZG93bi1uYXZpZ2F0b3Ivc3JjL21hcmtkb3duLW5hdmlnYXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFHTCxZQUFZLEVBQ1osU0FBUyxFQUNULFVBQVUsRUFDVixpQkFBaUIsRUFDakIsdUJBQXVCLEVBRXZCLE1BQU0sRUFDTixZQUFZLEVBQ1osZUFBZSxFQUNmLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLFlBQVksRUFDWix1QkFBdUIsR0FDeEIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBRUwsMkJBQTJCLEVBQzNCLGlDQUFpQyxHQUNsQyxNQUFNLDZCQUE2QixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdEUsT0FBTyxFQUFF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IElucHV0LFxuICBPbkNoYW5nZXMsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIEhvc3RMaXN0ZW5lcixcbiAgVmlld0NoaWxkLFxuICBFbGVtZW50UmVmLFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIFR5cGUsXG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyLFxuICBTZWN1cml0eUNvbnRleHQsXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICByZW1vdmVMZWFkaW5nSGFzaCxcbiAgaXNBbmNob3JMaW5rLFxuICBUZE1hcmtkb3duTG9hZGVyU2VydmljZSxcbn0gZnJvbSAnQGNvdmFsZW50L21hcmtkb3duJztcbmltcG9ydCB7XG4gIElUZEZsYXZvcmVkTWFya2Rvd25CdXR0b25DbGlja0V2ZW50LFxuICBUZEZsYXZvcmVkTWFya2Rvd25Db21wb25lbnQsXG4gIFRkRmxhdm9yZWRNYXJrZG93bkxvYWRlckNvbXBvbmVudCxcbn0gZnJvbSAnQGNvdmFsZW50L2ZsYXZvcmVkLW1hcmtkb3duJztcbmltcG9ydCB7IERvbVNhbml0aXplciB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IElDb3B5Q29kZVRvb2x0aXBzIH0gZnJvbSAnQGNvdmFsZW50L2hpZ2hsaWdodCc7XG5pbXBvcnQgeyBmaXJzdFZhbHVlRnJvbSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcbmltcG9ydCB7IE1hdExpc3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9saXN0JztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUsIE1hdEljb25SZWdpc3RyeSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NCYXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1iYXInO1xuaW1wb3J0IHsgVGRNZXNzYWdlQ29tcG9uZW50IH0gZnJvbSAnQGNvdmFsZW50L2NvcmUvbWVzc2FnZSc7XG5pbXBvcnQge1xuICBUZEJyZWFkY3J1bWJzQ29tcG9uZW50LFxuICBUZEJyZWFkY3J1bWJDb21wb25lbnQsXG59IGZyb20gJ0Bjb3ZhbGVudC9jb3JlL2JyZWFkY3J1bWJzJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU1hcmtkb3duTmF2aWdhdG9ySXRlbSB7XG4gIGlkPzogc3RyaW5nO1xuICB0aXRsZT86IHN0cmluZztcbiAgdXJsPzogc3RyaW5nO1xuICBodHRwT3B0aW9ucz86IG9iamVjdDtcbiAgbWFya2Rvd25TdHJpbmc/OiBzdHJpbmc7IC8vIHJhdyBtYXJrZG93blxuICBhbmNob3I/OiBzdHJpbmc7XG4gIGNoaWxkcmVuPzogSU1hcmtkb3duTmF2aWdhdG9ySXRlbVtdO1xuICBjaGlsZHJlblVybD86IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGljb24/OiBzdHJpbmc7XG4gIGZvb3Rlcj86IFR5cGU8YW55PjtcbiAgc3RhcnRBdExpbms/OiBJTWFya2Rvd25OYXZpZ2F0b3JJdGVtO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElNYXJrZG93bk5hdmlnYXRvckxhYmVscyB7XG4gIGdvSG9tZT86IHN0cmluZztcbiAgZ29CYWNrPzogc3RyaW5nO1xuICBlbXB0eVN0YXRlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBJTWFya2Rvd25OYXZpZ2F0b3JDb21wYXJlV2l0aCA9IChcbiAgbzE6IElNYXJrZG93bk5hdmlnYXRvckl0ZW0sXG4gIG8yOiBJTWFya2Rvd25OYXZpZ2F0b3JJdGVtLFxuKSA9PiBib29sZWFuO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9NQVJLRE9XTl9OQVZJR0FUT1JfTEFCRUxTOiBJTWFya2Rvd25OYXZpZ2F0b3JMYWJlbHMgPSB7XG4gIGdvSG9tZTogJ0dvIGhvbWUnLFxuICBnb0JhY2s6ICdHbyBiYWNrJyxcbiAgZW1wdHlTdGF0ZTogJ05vIGl0ZW0ocykgdG8gZGlzcGxheScsXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZC1tYXJrZG93bi1uYXZpZ2F0b3InLFxuICB0ZW1wbGF0ZVVybDogJy4vbWFya2Rvd24tbmF2aWdhdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWFya2Rvd24tbmF2aWdhdG9yLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxuICAgIE1hdExpc3RNb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBNYXRQcm9ncmVzc0Jhck1vZHVsZSxcbiAgICBUZEZsYXZvcmVkTWFya2Rvd25Db21wb25lbnQsXG4gICAgVGRGbGF2b3JlZE1hcmtkb3duTG9hZGVyQ29tcG9uZW50LFxuICAgIFRkTWVzc2FnZUNvbXBvbmVudCxcbiAgICBUZEJyZWFkY3J1bWJzQ29tcG9uZW50LFxuICAgIFRkQnJlYWRjcnVtYkNvbXBvbmVudCxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbVGRNYXJrZG93bkxvYWRlclNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBUZE1hcmtkb3duTmF2aWdhdG9yQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgcHJpdmF0ZSBfbWFya2Rvd25VcmxMb2FkZXJTZXJ2aWNlID0gaW5qZWN0KFRkTWFya2Rvd25Mb2FkZXJTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBfY2hhbmdlRGV0ZWN0b3JSZWYgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICBwcml2YXRlIF9zYW5pdGl6ZXIgPSBpbmplY3QoRG9tU2FuaXRpemVyKTtcbiAgcHJpdmF0ZSBfaHR0cCA9IGluamVjdChIdHRwQ2xpZW50KTtcbiAgcHJpdmF0ZSBfaWNvblJlZ2lzdHJ5ID0gaW5qZWN0KE1hdEljb25SZWdpc3RyeSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5faWNvblJlZ2lzdHJ5LnJlZ2lzdGVyRm9udENsYXNzQWxpYXMoXG4gICAgICAnY292YWxlbnQtaWNvbnMnLFxuICAgICAgJ2NvdmFsZW50LWljb25zIG1hdC1saWdhdHVyZS1mb250JyxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIGl0ZW1zOiBJTWFya2Rvd25OYXZpZ2F0b3JJdGVtW11cbiAgICpcbiAgICogTGlzdCBvZiBJTWFya2Rvd25OYXZpZ2F0b3JJdGVtcyB0byBiZSByZW5kZXJlZFxuICAgKi9cbiAgQElucHV0KCkgaXRlbXM/OiBJTWFya2Rvd25OYXZpZ2F0b3JJdGVtW107XG5cbiAgLyoqXG4gICAqIGxhYmVscz86IElNYXJrZG93bk5hdmlnYXRvckxhYmVsc1xuICAgKlxuICAgKiBUcmFuc2xhdGVkIGxhYmVsc1xuICAgKi9cbiAgQElucHV0KCkgbGFiZWxzPzogSU1hcmtkb3duTmF2aWdhdG9yTGFiZWxzO1xuXG4gIC8qKlxuICAgKiBzdGFydEF0PzogSU1hcmtkb3duTmF2aWdhdG9ySXRlbSB8IElNYXJrZG93bk5hdmlnYXRvckl0ZW1bXTtcbiAgICpcbiAgICogSXRlbSBvciBwYXRoIHRvIHN0YXJ0IGF0XG4gICAqL1xuICBASW5wdXQoKSBzdGFydEF0PzogSU1hcmtkb3duTmF2aWdhdG9ySXRlbSB8IElNYXJrZG93bk5hdmlnYXRvckl0ZW1bXTtcblxuICAvKipcbiAgICogY29weUNvZGVUb0NsaXBib2FyZD86IGJvb2xlYW5cbiAgICpcbiAgICogRGlzcGxheSBjb3B5IGJ1dHRvbiBvbiBjb2RlIHNuaXBwZXRzIHRvIGNvcHkgY29kZSB0byBjbGlwYm9hcmQuXG4gICAqXG4gICAqL1xuICBASW5wdXQoKSBjb3B5Q29kZVRvQ2xpcGJvYXJkPyA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBjb3B5Q29kZVRvb2x0aXBzPzogSUNvcHlDb2RlVG9vbHRpcHNcbiAgICpcbiAgICogVG9vbHRpcHMgZm9yIGNvcHkgYnV0dG9uIHRvIGNvcHkgYW5kIHVwb24gY29weWluZy5cbiAgICovXG4gIEBJbnB1dCgpIGNvcHlDb2RlVG9vbHRpcHM/OiBJQ29weUNvZGVUb29sdGlwcyA9IHt9O1xuXG4gIC8qKlxuICAgKiBmb290ZXI/OiBUeXBlPGFueT5cbiAgICpcbiAgICogQ29tcG9uZW50IHRvIGJlIGRpc3BsYXllZCBpbiBmb290ZXJcbiAgICovXG4gIEBJbnB1dCgpIGZvb3Rlcj86IGFueTtcblxuICAvKipcbiAgICogY29tcGFyZVdpdGg/OiBJTWFya2Rvd25OYXZpZ2F0b3JDb21wYXJlV2l0aFxuICAgKlxuICAgKiBGdW5jdGlvbiB1c2VkIHRvIGZpbmQgc3RhcnRBdCBpdGVtXG4gICAqIERlZmF1bHRzIHRvIGNvbXBhcmlzb24gYnkgc3RyaWN0IGVxdWFsaXR5ICg9PT0pXG4gICAqL1xuICBASW5wdXQoKSBjb21wYXJlV2l0aD86IElNYXJrZG93bk5hdmlnYXRvckNvbXBhcmVXaXRoO1xuXG4gIEBPdXRwdXQoKSBidXR0b25DbGlja2VkOiBFdmVudEVtaXR0ZXI8SVRkRmxhdm9yZWRNYXJrZG93bkJ1dHRvbkNsaWNrRXZlbnQ+ID1cbiAgICBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBpdGVtU2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjxJTWFya2Rvd25OYXZpZ2F0b3JJdGVtPiA9XG4gICAgbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBWaWV3Q2hpbGQoJ21hcmtkb3duV3JhcHBlcicpIG1hcmtkb3duV3JhcHBlciE6IEVsZW1lbnRSZWY7XG5cbiAgaGlzdG9yeVN0YWNrOiBJTWFya2Rvd25OYXZpZ2F0b3JJdGVtW10gPSBbXTsgLy8gaGlzdG9yeVxuICBjdXJyZW50TWFya2Rvd25JdGVtPzogSU1hcmtkb3duTmF2aWdhdG9ySXRlbTsgLy8gY3VycmVudGx5IHJlbmRlcmVkXG4gIGN1cnJlbnRNZW51SXRlbXM/OiBJTWFya2Rvd25OYXZpZ2F0b3JJdGVtW10gPSBbXTsgLy8gY3VycmVudCBtZW51IGl0ZW1zXG4gIGxvYWRpbmcgPSBmYWxzZTtcblxuICBtYXJrZG93bkxvYWRlckVycm9yPzogc3RyaW5nO1xuICBjaGlsZHJlblVybEVycm9yPzogc3RyaW5nO1xuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcbiAgY2xpY2tMaXN0ZW5lcihldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBlbGVtZW50OiBIVE1MRWxlbWVudCA9IDxIVE1MRWxlbWVudD5ldmVudC5zcmNFbGVtZW50O1xuICAgIGlmIChcbiAgICAgIGVsZW1lbnQubWF0Y2hlcygnYVtocmVmXScpICYmXG4gICAgICBpc01hcmtkb3duSHJlZig8SFRNTEFuY2hvckVsZW1lbnQ+ZWxlbWVudClcbiAgICApIHtcbiAgICAgIHRoaXMuaGFuZGxlTGlua0NsaWNrKGV2ZW50KTtcbiAgICB9XG4gIH1cblxuICBnZXQgc2hvd0dvQmFja0J1dHRvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oaXN0b3J5U3RhY2subGVuZ3RoID4gMDtcbiAgfVxuXG4gIGdldCBzaG93SGVhZGVyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuY3VycmVudEl0ZW1UaXRsZTtcbiAgfVxuXG4gIGdldCBzaG93TWVudSgpOiBib29sZWFuIHtcbiAgICBjb25zdCBzaG93TWVudSA9IHRoaXMuY3VycmVudE1lbnVJdGVtcyAmJiB0aGlzLmN1cnJlbnRNZW51SXRlbXMubGVuZ3RoID4gMDtcbiAgICByZXR1cm4gc2hvd01lbnUgPz8gZmFsc2U7XG4gIH1cblxuICBnZXQgc2hvd1RkTWFya2Rvd25Mb2FkZXIoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgICEhdGhpcy5jdXJyZW50TWFya2Rvd25JdGVtICYmXG4gICAgICAhIXRoaXMuY3VycmVudE1hcmtkb3duSXRlbS51cmwgJiZcbiAgICAgICF0aGlzLnNob3dUZE1hcmtkb3duXG4gICAgKTtcbiAgfVxuXG4gIGdldCBzaG93VGRNYXJrZG93bigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgISF0aGlzLmN1cnJlbnRNYXJrZG93bkl0ZW0gJiYgISF0aGlzLmN1cnJlbnRNYXJrZG93bkl0ZW0ubWFya2Rvd25TdHJpbmdcbiAgICApO1xuICB9XG5cbiAgZ2V0IHVybCgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGlmICh0aGlzLmN1cnJlbnRNYXJrZG93bkl0ZW0pIHtcbiAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRNYXJrZG93bkl0ZW0udXJsO1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgZ2V0IGZvb3RlckNvbXBvbmVudCgpOiBhbnkge1xuICAgIGlmICh0aGlzLmN1cnJlbnRNYXJrZG93bkl0ZW0gJiYgdGhpcy5jdXJyZW50TWFya2Rvd25JdGVtLmZvb3Rlcikge1xuICAgICAgcmV0dXJuIHRoaXMuY3VycmVudE1hcmtkb3duSXRlbS5mb290ZXI7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmZvb3RlcjtcbiAgfVxuICBnZXQgaHR0cE9wdGlvbnMoKTogb2JqZWN0IHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodGhpcy5jdXJyZW50TWFya2Rvd25JdGVtKSB7XG4gICAgICByZXR1cm4gdGhpcy5jdXJyZW50TWFya2Rvd25JdGVtLmh0dHBPcHRpb25zO1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIGdldCBtYXJrZG93blN0cmluZygpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGlmICh0aGlzLmN1cnJlbnRNYXJrZG93bkl0ZW0pIHtcbiAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRNYXJrZG93bkl0ZW0ubWFya2Rvd25TdHJpbmc7XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBnZXQgYW5jaG9yKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHRoaXMuY3VycmVudE1hcmtkb3duSXRlbSkge1xuICAgICAgcmV0dXJuIHRoaXMuY3VycmVudE1hcmtkb3duSXRlbS5hbmNob3I7XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBnZXQgc2hvd0VtcHR5U3RhdGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLml0ZW1zIHx8IHRoaXMuaXRlbXMubGVuZ3RoIDwgMTtcbiAgfVxuXG4gIGdldCBnb0hvbWVMYWJlbCgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiAoXG4gICAgICAodGhpcy5sYWJlbHMgJiYgdGhpcy5sYWJlbHMuZ29Ib21lKSB8fFxuICAgICAgREVGQVVMVF9NQVJLRE9XTl9OQVZJR0FUT1JfTEFCRUxTLmdvSG9tZVxuICAgICk7XG4gIH1cblxuICBnZXQgZ29CYWNrTGFiZWwoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gKFxuICAgICAgKHRoaXMubGFiZWxzICYmIHRoaXMubGFiZWxzLmdvQmFjaykgfHxcbiAgICAgIERFRkFVTFRfTUFSS0RPV05fTkFWSUdBVE9SX0xBQkVMUy5nb0JhY2tcbiAgICApO1xuICB9XG5cbiAgZ2V0IGVtcHR5U3RhdGVMYWJlbCgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiAoXG4gICAgICAodGhpcy5sYWJlbHMgJiYgdGhpcy5sYWJlbHMuZW1wdHlTdGF0ZSkgfHxcbiAgICAgIERFRkFVTFRfTUFSS0RPV05fTkFWSUdBVE9SX0xBQkVMUy5lbXB0eVN0YXRlXG4gICAgKTtcbiAgfVxuXG4gIGdldCBjdXJyZW50SXRlbVRpdGxlKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuY3VycmVudE1hcmtkb3duSXRlbSkge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0VGl0bGUodGhpcy5jdXJyZW50TWFya2Rvd25JdGVtKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuaGlzdG9yeVN0YWNrLmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiB0aGlzLmdldFRpdGxlKHRoaXMuaGlzdG9yeVN0YWNrW3RoaXMuaGlzdG9yeVN0YWNrLmxlbmd0aCAtIDFdKTtcbiAgICB9XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgZ2V0IG5hdmlnYXRpb25CcmVhZGNydW1icygpOiBJTWFya2Rvd25OYXZpZ2F0b3JJdGVtW10ge1xuICAgIHJldHVybiB0aGlzLmhpc3RvcnlTdGFjay5zbGljZSgwLCAtMSk7XG4gIH1cblxuICBhc3luYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKGNoYW5nZXNbJ2l0ZW1zJ10pIHtcbiAgICAgIHRoaXMucmVzZXQoKTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXNbJ3N0YXJ0QXQnXSAmJiB0aGlzLml0ZW1zICYmIHRoaXMuc3RhcnRBdCkge1xuICAgICAgdGhpcy5fanVtcFRvKHRoaXMuc3RhcnRBdCwgdW5kZWZpbmVkKTtcbiAgICB9XG4gIH1cblxuICBoYXNDaGlsZHJlbk9yQ2hpbGRyZW5VcmwoaXRlbTogSU1hcmtkb3duTmF2aWdhdG9ySXRlbSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoaXRlbS5jaGlsZHJlbiAmJiBpdGVtLmNoaWxkcmVuLmxlbmd0aCA+IDApIHx8ICEhaXRlbS5jaGlsZHJlblVybDtcbiAgfVxuICBjbGVhckVycm9ycygpOiB2b2lkIHtcbiAgICB0aGlzLm1hcmtkb3duTG9hZGVyRXJyb3IgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5jaGlsZHJlblVybEVycm9yID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgcmVzZXQoKTogdm9pZCB7XG4gICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgdGhpcy5jbGVhckVycm9ycygpO1xuICAgIC8vIGlmIHNpbmdsZSBpdGVtIGFuZCBubyBjaGlsZHJlblxuICAgIGlmIChcbiAgICAgIHRoaXMuaXRlbXMgJiZcbiAgICAgIHRoaXMuaXRlbXMubGVuZ3RoID09PSAxICYmXG4gICAgICAhdGhpcy5oYXNDaGlsZHJlbk9yQ2hpbGRyZW5VcmwodGhpcy5pdGVtc1swXSlcbiAgICApIHtcbiAgICAgIHRoaXMuY3VycmVudE1lbnVJdGVtcyA9IFtdO1xuICAgICAgdGhpcy5jdXJyZW50TWFya2Rvd25JdGVtID0gdGhpcy5pdGVtc1swXTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jdXJyZW50TWVudUl0ZW1zID0gdGhpcy5pdGVtcztcbiAgICAgIHRoaXMuY3VycmVudE1hcmtkb3duSXRlbSA9IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgdGhpcy5oaXN0b3J5U3RhY2sgPSBbXTtcbiAgICB0aGlzLml0ZW1TZWxlY3RlZC5lbWl0KHVuZGVmaW5lZCk7XG4gICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBnb0JhY2soZ29CYWNrTGVuZ3RoID0gMik6IHZvaWQge1xuICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgIHRoaXMuY2xlYXJFcnJvcnMoKTtcbiAgICBsZXQgcGFyZW50OiBJTWFya2Rvd25OYXZpZ2F0b3JJdGVtIHwgdW5kZWZpbmVkID1cbiAgICAgIHRoaXMuaGlzdG9yeVN0YWNrW3RoaXMuaGlzdG9yeVN0YWNrLmxlbmd0aCAtIGdvQmFja0xlbmd0aF07XG5cbiAgICBpZiAocGFyZW50Py5zdGFydEF0TGluaykge1xuICAgICAgcGFyZW50ID0gdGhpcy5oaXN0b3J5U3RhY2tbdGhpcy5oaXN0b3J5U3RhY2subGVuZ3RoIC0gM11cbiAgICAgICAgPyB0aGlzLmhpc3RvcnlTdGFja1t0aGlzLmhpc3RvcnlTdGFjay5sZW5ndGggLSAzXVxuICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMuaGlzdG9yeVN0YWNrID0gdGhpcy5oaXN0b3J5U3RhY2suc2xpY2UoMCwgLWdvQmFja0xlbmd0aCk7XG4gICAgfVxuXG4gICAgaWYgKHBhcmVudCkge1xuICAgICAgdGhpcy5jdXJyZW50TWFya2Rvd25JdGVtID0gcGFyZW50O1xuICAgICAgdGhpcy5oaXN0b3J5U3RhY2sgPSB0aGlzLmhpc3RvcnlTdGFjay5zbGljZShcbiAgICAgICAgMCxcbiAgICAgICAgdGhpcy5oaXN0b3J5U3RhY2subGVuZ3RoIC0gZ29CYWNrTGVuZ3RoICsgMSxcbiAgICAgICk7XG4gICAgICB0aGlzLnNldENoaWxkcmVuQXNDdXJyZW50TWVudUl0ZW1zKHBhcmVudCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucmVzZXQoKTtcbiAgICB9XG4gICAgdGhpcy5pdGVtU2VsZWN0ZWQuZW1pdChwYXJlbnQpO1xuICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgaGFuZGxlSXRlbVNlbGVjdGVkKGl0ZW06IElNYXJrZG93bk5hdmlnYXRvckl0ZW0pOiB2b2lkIHtcbiAgICB0aGlzLmNsZWFyRXJyb3JzKCk7XG4gICAgdGhpcy5jdXJyZW50TWFya2Rvd25JdGVtID0gaXRlbTtcbiAgICB0aGlzLmhpc3RvcnlTdGFjayA9IFsuLi50aGlzLmhpc3RvcnlTdGFjaywgaXRlbV07XG4gICAgdGhpcy5zZXRDaGlsZHJlbkFzQ3VycmVudE1lbnVJdGVtcyhpdGVtKTtcbiAgICB0aGlzLml0ZW1TZWxlY3RlZC5lbWl0KGl0ZW0pO1xuICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgYXN5bmMgc2V0Q2hpbGRyZW5Bc0N1cnJlbnRNZW51SXRlbXMoXG4gICAgaXRlbTogSU1hcmtkb3duTmF2aWdhdG9ySXRlbSxcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5jdXJyZW50TWVudUl0ZW1zID0gW107XG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcblxuICAgIGNvbnN0IHN0YWNrU25hcHNob3Q6IElNYXJrZG93bk5hdmlnYXRvckl0ZW1bXSA9IHRoaXMuaGlzdG9yeVN0YWNrO1xuICAgIGxldCBjaGlsZHJlbjogSU1hcmtkb3duTmF2aWdhdG9ySXRlbVtdID0gW107XG4gICAgaWYgKGl0ZW0uY2hpbGRyZW4pIHtcbiAgICAgIGNoaWxkcmVuID0gaXRlbS5jaGlsZHJlbjtcbiAgICB9IGVsc2UgaWYgKGl0ZW0uY2hpbGRyZW5VcmwpIHtcbiAgICAgIGNoaWxkcmVuID0gYXdhaXQgdGhpcy5sb2FkQ2hpbGRyZW5VcmwoaXRlbSk7XG4gICAgfVxuICAgIGlmIChjaGlsZHJlbiAmJiBjaGlsZHJlbi5sZW5ndGggJiYgaXRlbS5zdGFydEF0TGluaykge1xuICAgICAgdGhpcy5fanVtcFRvKGl0ZW0uc3RhcnRBdExpbmssIGNoaWxkcmVuKTtcbiAgICB9XG4gICAgY29uc3QgbmV3U3RhY2tTbmFwc2hvdDogSU1hcmtkb3duTmF2aWdhdG9ySXRlbVtdID0gdGhpcy5oaXN0b3J5U3RhY2s7XG4gICAgaWYgKFxuICAgICAgc3RhY2tTbmFwc2hvdC5sZW5ndGggPT09IG5ld1N0YWNrU25hcHNob3QubGVuZ3RoICYmXG4gICAgICBzdGFja1NuYXBzaG90LmV2ZXJ5KFxuICAgICAgICAoc3RhY2tJdGVtOiBJTWFya2Rvd25OYXZpZ2F0b3JJdGVtLCBpbmRleDogbnVtYmVyKSA9PlxuICAgICAgICAgIHN0YWNrSXRlbSA9PT0gbmV3U3RhY2tTbmFwc2hvdFtpbmRleF0sXG4gICAgICApXG4gICAgKSB7XG4gICAgICB0aGlzLmN1cnJlbnRNZW51SXRlbXMgPSBjaGlsZHJlbjtcbiAgICB9XG5cbiAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIGFzeW5jIGxvYWRDaGlsZHJlblVybChcbiAgICBpdGVtOiBJTWFya2Rvd25OYXZpZ2F0b3JJdGVtLFxuICApOiBQcm9taXNlPElNYXJrZG93bk5hdmlnYXRvckl0ZW1bXT4ge1xuICAgIGNvbnN0IHNhbml0aXplZFVybCA9XG4gICAgICB0aGlzLl9zYW5pdGl6ZXIuc2FuaXRpemUoU2VjdXJpdHlDb250ZXh0LlVSTCwgaXRlbS5jaGlsZHJlblVybCA/PyBudWxsKSA/P1xuICAgICAgJyc7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBhd2FpdCBmaXJzdFZhbHVlRnJvbTxJTWFya2Rvd25OYXZpZ2F0b3JJdGVtW10+KFxuICAgICAgICB0aGlzLl9odHRwLmdldDxJTWFya2Rvd25OYXZpZ2F0b3JJdGVtW10+KHNhbml0aXplZFVybCwge1xuICAgICAgICAgIC4uLml0ZW0uaHR0cE9wdGlvbnMsXG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICB0aGlzLmhhbmRsZUNoaWxkcmVuVXJsRXJyb3IoZXJyb3IpO1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgfVxuXG4gIGdldFRpdGxlKGl0ZW06IElNYXJrZG93bk5hdmlnYXRvckl0ZW0pOiBzdHJpbmcge1xuICAgIGlmICghaXRlbSkge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgICByZXR1cm4gKFxuICAgICAgcmVtb3ZlTGVhZGluZ0hhc2goaXRlbS5hbmNob3IgPz8gJycpIHx8XG4gICAgICBpdGVtLnRpdGxlIHx8XG4gICAgICBnZXRUaXRsZUZyb21VcmwoaXRlbS51cmwgPz8gJycpIHx8XG4gICAgICBnZXRUaXRsZUZyb21NYXJrZG93blN0cmluZyhpdGVtLm1hcmtkb3duU3RyaW5nID8/ICcnKSB8fFxuICAgICAgJydcbiAgICApLnRyaW0oKTtcbiAgfVxuXG4gIGdldEljb24oaXRlbTogSU1hcmtkb3duTmF2aWdhdG9ySXRlbSk6IHN0cmluZyB7XG4gICAgY29uc3QgaWNvbiA9IGl0ZW0/Lmljb24gfHwgJ3N1YmplY3QnO1xuICAgIHJldHVybiBpY29uLnNwbGl0KCc7JylbMF07XG4gIH1cblxuICBpc0NvdmFsZW50SWNvbihpdGVtOiBJTWFya2Rvd25OYXZpZ2F0b3JJdGVtKTogYm9vbGVhbiB7XG4gICAgaWYgKCFpdGVtPy5pY29uKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIGl0ZW0/Lmljb24uaW5jbHVkZXMoJztjb3ZhbGVudCcpO1xuICB9XG5cbiAgaGFuZGxlQ2hpbGRyZW5VcmxFcnJvcihlcnJvcjogRXJyb3IpOiB2b2lkIHtcbiAgICB0aGlzLmNoaWxkcmVuVXJsRXJyb3IgPSBlcnJvci5tZXNzYWdlO1xuICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgaGFuZGxlTWFya2Rvd25Mb2FkZXJFcnJvcihlcnJvcjogRXJyb3IpOiB2b2lkIHtcbiAgICB0aGlzLm1hcmtkb3duTG9hZGVyRXJyb3IgPSBlcnJvciA/IGVycm9yLm1lc3NhZ2UgOiAnJztcbiAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgX2p1bXBUbyhcbiAgICBpdGVtT3JQYXRoOiBJTWFya2Rvd25OYXZpZ2F0b3JJdGVtIHwgSU1hcmtkb3duTmF2aWdhdG9ySXRlbVtdLFxuICAgIGNoaWxkcmVuPzogSU1hcmtkb3duTmF2aWdhdG9ySXRlbVtdLFxuICApOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBoaXN0b3J5U3RhY2s6IElNYXJrZG93bk5hdmlnYXRvckl0ZW1bXSA9IHRoaXMuaGlzdG9yeVN0YWNrO1xuICAgIGxldCBwYXRoOiBJTWFya2Rvd25OYXZpZ2F0b3JJdGVtW10gPSBbXTtcblxuICAgIGlmICh0aGlzLml0ZW1zPy5sZW5ndGgpIHtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KGl0ZW1PclBhdGgpKSB7XG4gICAgICAgIHBhdGggPSBhd2FpdCB0aGlzLmZvbGxvd1BhdGgodGhpcy5pdGVtcywgaXRlbU9yUGF0aCk7XG4gICAgICB9IGVsc2UgaWYgKGNoaWxkcmVuICYmIGNoaWxkcmVuLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhpcy5oaXN0b3J5U3RhY2sgPSBoaXN0b3J5U3RhY2s7XG4gICAgICAgIHBhdGggPSB0aGlzLmZpbmRQYXRoKGNoaWxkcmVuLCBpdGVtT3JQYXRoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBhdGggPSB0aGlzLmZpbmRQYXRoKHRoaXMuaXRlbXMsIGl0ZW1PclBhdGgpO1xuICAgICAgfVxuICAgICAgcGF0aC5mb3JFYWNoKChwYXRoSXRlbTogSU1hcmtkb3duTmF2aWdhdG9ySXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgaWYgKGluZGV4ID09PSAwKSB7XG4gICAgICAgICAgdGhpcy5yZXNldCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5oYW5kbGVJdGVtU2VsZWN0ZWQocGF0aEl0ZW0pO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuICEhcGF0aC5sZW5ndGg7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGZvbGxvd1BhdGgoXG4gICAgaXRlbXM6IElNYXJrZG93bk5hdmlnYXRvckl0ZW1bXSxcbiAgICBwYXRoOiBJTWFya2Rvd25OYXZpZ2F0b3JJdGVtW10sXG4gICk6IFByb21pc2U8SU1hcmtkb3duTmF2aWdhdG9ySXRlbVtdPiB7XG4gICAgbGV0IHBhdGhJdGVtczogSU1hcmtkb3duTmF2aWdhdG9ySXRlbVtdID0gW107XG4gICAgbGV0IGN1cnJlbnRMZXZlbDogSU1hcmtkb3duTmF2aWdhdG9ySXRlbVtdID0gaXRlbXM7XG4gICAgY29uc3QgY29tcGFyZVdpdGg6IElNYXJrZG93bk5hdmlnYXRvckNvbXBhcmVXaXRoID1cbiAgICAgIHRoaXMuY29tcGFyZVdpdGggfHwgZGVmYXVsdENvbXBhcmVXaXRoO1xuICAgIGZvciAoY29uc3QgcGF0aEl0ZW0gb2YgcGF0aCkge1xuICAgICAgY29uc3QgZm91bmRJdGVtOiBJTWFya2Rvd25OYXZpZ2F0b3JJdGVtIHwgdW5kZWZpbmVkID0gY3VycmVudExldmVsLmZpbmQoXG4gICAgICAgIChpdGVtOiBJTWFya2Rvd25OYXZpZ2F0b3JJdGVtKSA9PiBjb21wYXJlV2l0aChwYXRoSXRlbSwgaXRlbSksXG4gICAgICApO1xuXG4gICAgICBpZiAoZm91bmRJdGVtKSB7XG4gICAgICAgIHBhdGhJdGVtcyA9IFsuLi5wYXRoSXRlbXMsIGZvdW5kSXRlbV07XG5cbiAgICAgICAgaWYgKGZvdW5kSXRlbS5jaGlsZHJlbikge1xuICAgICAgICAgIGN1cnJlbnRMZXZlbCA9IGZvdW5kSXRlbS5jaGlsZHJlbjtcbiAgICAgICAgfSBlbHNlIGlmIChmb3VuZEl0ZW0uY2hpbGRyZW5VcmwpIHtcbiAgICAgICAgICBjdXJyZW50TGV2ZWwgPSBhd2FpdCB0aGlzLmxvYWRDaGlsZHJlblVybChmb3VuZEl0ZW0pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHBhdGhJdGVtcy5sZW5ndGggIT09IHBhdGgubGVuZ3RoKSB7XG4gICAgICBwYXRoSXRlbXMgPSBbXTtcbiAgICB9XG4gICAgcmV0dXJuIHBhdGhJdGVtcztcbiAgfVxuXG4gIHByaXZhdGUgZmluZFBhdGgoXG4gICAgaXRlbXM/OiBJTWFya2Rvd25OYXZpZ2F0b3JJdGVtW10sXG4gICAgaXRlbT86IElNYXJrZG93bk5hdmlnYXRvckl0ZW0sXG4gICk6IElNYXJrZG93bk5hdmlnYXRvckl0ZW1bXSB7XG4gICAgY29uc3QgY29tcGFyZVdpdGg6IElNYXJrZG93bk5hdmlnYXRvckNvbXBhcmVXaXRoID1cbiAgICAgIHRoaXMuY29tcGFyZVdpdGggfHwgZGVmYXVsdENvbXBhcmVXaXRoO1xuICAgIGlmIChpdGVtcykge1xuICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiBpdGVtcykge1xuICAgICAgICBpZiAoaXRlbSAmJiBjb21wYXJlV2l0aChjaGlsZCwgaXRlbSkpIHtcbiAgICAgICAgICByZXR1cm4gW2NoaWxkXTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBhbmNlc3RvcnM6IElNYXJrZG93bk5hdmlnYXRvckl0ZW1bXSA9IHRoaXMuZmluZFBhdGgoXG4gICAgICAgICAgY2hpbGQuY2hpbGRyZW4sXG4gICAgICAgICAgaXRlbSxcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKGFuY2VzdG9ycy5sZW5ndGgpIHtcbiAgICAgICAgICByZXR1cm4gW2NoaWxkLCAuLi5hbmNlc3RvcnNdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgaGFuZGxlTGlua0NsaWNrKGV2ZW50OiBFdmVudCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgY29uc3QgbGluazogSFRNTEFuY2hvckVsZW1lbnQgPSA8SFRNTEFuY2hvckVsZW1lbnQ+ZXZlbnQudGFyZ2V0O1xuICAgIGNvbnN0IHVybDogVVJMID0gbmV3IFVSTChsaW5rLmhyZWYpO1xuICAgIGNvbnN0IHVybFBhcnRzID0gdXJsLmhyZWYuc3BsaXQoJy8nKTtcbiAgICBjb25zdCBpZCA9IHVybFBhcnRzW3VybFBhcnRzLmxlbmd0aCAtIDFdLnNwbGl0KCcubWQnKVswXTtcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIGNvbnN0IHBhdGhGb3VuZCA9IGF3YWl0IHRoaXMuX2p1bXBUbyh7IGlkIH0pO1xuXG4gICAgaWYgKHBhdGhGb3VuZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBtYXJrZG93blN0cmluZzogc3RyaW5nID0gYXdhaXQgdGhpcy5fbWFya2Rvd25VcmxMb2FkZXJTZXJ2aWNlLmxvYWQoXG4gICAgICAgIHVybC5ocmVmLFxuICAgICAgKTtcbiAgICAgIC8vIHBhc3MgaW4gdXJsIHRvIGJlIGFibGUgdG8gdXNlIGN1cnJlbnRNYXJrZG93bkl0ZW0udXJsIGxhdGVyIG9uXG4gICAgICB0aGlzLmhhbmRsZUl0ZW1TZWxlY3RlZCh7IG1hcmtkb3duU3RyaW5nLCB1cmw6IHVybC5ocmVmIH0pO1xuICAgICAgdGhpcy5tYXJrZG93bldyYXBwZXIubmF0aXZlRWxlbWVudC5zY3JvbGxUb3AgPSAwO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zdCB3aW4gPSB3aW5kb3cub3Blbih1cmwuaHJlZiwgJ19ibGFuaycpO1xuICAgICAgd2luPy5mb2N1cygpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICB9XG4gICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0VGl0bGVGcm9tVXJsKHVybDogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKHVybCkge1xuICAgIGNvbnN0IHRlbXA6IFVSTCA9IG5ldyBVUkwodXJsKTtcbiAgICBpZiAodGVtcC5oYXNoKSB7XG4gICAgICByZXR1cm4gcmVtb3ZlTGVhZGluZ0hhc2godGVtcC5oYXNoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgcGF0aDogc3RyaW5nW10gPSB0ZW1wLnBhdGhuYW1lLnNwbGl0KCcvJyk7XG4gICAgICBjb25zdCBmaWxlTmFtZTogc3RyaW5nID0gcGF0aFtwYXRoLmxlbmd0aCAtIDFdO1xuICAgICAgcmV0dXJuIGZpbGVOYW1lLnJlcGxhY2UoL1xcLlteLy5dKyQvLCAnJyk7IC8vIHJlbW92ZSAubWRcbiAgICB9XG4gIH1cbiAgcmV0dXJuICcnO1xufVxuXG5mdW5jdGlvbiBnZXRUaXRsZUZyb21NYXJrZG93blN0cmluZyhtYXJrZG93blN0cmluZzogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKG1hcmtkb3duU3RyaW5nKSB7XG4gICAgY29uc3QgZmlyc3RMaW5lOiBzdHJpbmcgPVxuICAgICAgbWFya2Rvd25TdHJpbmcuc3BsaXQoL1tcXHJcXG5dKy8pLmZpbmQoKGxpbmU6IHN0cmluZykgPT4gISFsaW5lKSA/PyAnJztcbiAgICByZXR1cm4gcmVtb3ZlTGVhZGluZ0hhc2goZmlyc3RMaW5lKS50cmltKCk7XG4gIH1cbiAgcmV0dXJuICcnO1xufVxuXG5mdW5jdGlvbiBpc01hcmtkb3duSHJlZihhbmNob3I6IEhUTUxBbmNob3JFbGVtZW50KTogYm9vbGVhbiB7XG4gIHJldHVybiAhaXNBbmNob3JMaW5rKGFuY2hvcikgJiYgYW5jaG9yLnBhdGhuYW1lLmVuZHNXaXRoKCcubWQnKTtcbn1cbmZ1bmN0aW9uIGRlZmF1bHRDb21wYXJlV2l0aChcbiAgbzE6IElNYXJrZG93bk5hdmlnYXRvckl0ZW0sXG4gIG8yOiBJTWFya2Rvd25OYXZpZ2F0b3JJdGVtLFxuKTogYm9vbGVhbiB7XG4gIGlmIChvMS5pZCAmJiBvMi5pZCkge1xuICAgIHJldHVybiBvMS5pZCA9PT0gbzIuaWQ7XG4gIH1cbiAgcmV0dXJuIG8xID09PSBvMjtcbn1cbiIsIkBpZiAoIXNob3dFbXB0eVN0YXRlKSB7XG4gIDxuZy1jb250YWluZXI+XG4gICAgQGlmIChsb2FkaW5nKSB7XG4gICAgICA8bWF0LXByb2dyZXNzLWJhciBtb2RlPVwiaW5kZXRlcm1pbmF0ZVwiIGNvbG9yPVwiYWNjZW50XCI+PC9tYXQtcHJvZ3Jlc3MtYmFyPlxuICAgIH1cblxuICAgIEBpZiAoc2hvd0hlYWRlcikge1xuICAgICAgPHRkLWJyZWFkY3J1bWJzPlxuICAgICAgICA8YVxuICAgICAgICAgIHRkLWJyZWFkY3J1bWJcbiAgICAgICAgICBbbWF0VG9vbHRpcF09XCJnb0hvbWVMYWJlbCA/PyAnJ1wiXG4gICAgICAgICAgKGNsaWNrKT1cInJlc2V0KClcIlxuICAgICAgICAgIFthdHRyLmRhdGEtdGVzdF09XCInaG9tZS1idXR0b24nXCJcbiAgICAgICAgICA+SG9tZTwvYVxuICAgICAgICA+XG5cbiAgICAgICAgQGZvciAoXG4gICAgICAgICAgaXRlbSBvZiBuYXZpZ2F0aW9uQnJlYWRjcnVtYnM7XG4gICAgICAgICAgbGV0IGluZGV4ID0gJGluZGV4O1xuICAgICAgICAgIHRyYWNrIGl0ZW0uaWQgPz8gaW5kZXhcbiAgICAgICAgKSB7XG4gICAgICAgICAgPGFcbiAgICAgICAgICAgIHRkLWJyZWFkY3J1bWJcbiAgICAgICAgICAgIChjbGljayk9XCJnb0JhY2soaGlzdG9yeVN0YWNrLmxlbmd0aCAtIGluZGV4KVwiXG4gICAgICAgICAgICBbYXR0ci5kYXRhLXRlc3RdPVwiJ2JhY2stYnV0dG9uLScgKyBpbmRleFwiXG4gICAgICAgICAgICA+e3sgZ2V0VGl0bGUoaXRlbSkgfX08L2FcbiAgICAgICAgICA+XG4gICAgICAgIH1cbiAgICAgIDwvdGQtYnJlYWRjcnVtYnM+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJicmVhZGNydW1iLWN1cnJlbnQtdGl0bGVcIiBbYXR0ci5kYXRhLXRlc3RdPVwiJ3RpdGxlJ1wiPlxuICAgICAgICB7eyBjdXJyZW50SXRlbVRpdGxlIH19XG4gICAgICA8L2Rpdj5cblxuICAgICAgPG1hdC1kaXZpZGVyIFtzdHlsZS5wb3NpdGlvbl09XCIncmVsYXRpdmUnXCI+PC9tYXQtZGl2aWRlcj5cbiAgICB9XG5cbiAgICA8ZGl2IGNsYXNzPVwic2Nyb2xsLWFyZWFcIiBpZD1cInRkLW1hcmtkb3duLW5hdmlnYXRvci1jb250ZW50XCI+XG4gICAgICBAaWYgKHNob3dUZE1hcmtkb3duTG9hZGVyIHx8IHNob3dUZE1hcmtkb3duKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYXJrZG93bi13cmFwcGVyXCIgI21hcmtkb3duV3JhcHBlcj5cbiAgICAgICAgICBAaWYgKG1hcmtkb3duTG9hZGVyRXJyb3IpIHtcbiAgICAgICAgICAgIDx0ZC1tZXNzYWdlXG4gICAgICAgICAgICAgIFtzdWJsYWJlbF09XCJtYXJrZG93bkxvYWRlckVycm9yXCJcbiAgICAgICAgICAgICAgY29sb3I9XCJ3YXJuXCJcbiAgICAgICAgICAgICAgaWNvbj1cImVycm9yXCJcbiAgICAgICAgICAgICAgW2F0dHIuZGF0YS10ZXN0XT1cIidtYXJrZG93bi1sb2FkZXItZXJyb3InXCJcbiAgICAgICAgICAgID48L3RkLW1lc3NhZ2U+XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGlmIChzaG93VGRNYXJrZG93bkxvYWRlcikge1xuICAgICAgICAgICAgPHRkLWZsYXZvcmVkLW1hcmtkb3duLWxvYWRlclxuICAgICAgICAgICAgICBbdXJsXT1cInVybCA/PyAnJ1wiXG4gICAgICAgICAgICAgIFtodHRwT3B0aW9uc109XCJodHRwT3B0aW9ucyA/PyB7fVwiXG4gICAgICAgICAgICAgIFthbmNob3JdPVwiYW5jaG9yID8/ICcnXCJcbiAgICAgICAgICAgICAgW2NvcHlDb2RlVG9DbGlwYm9hcmRdPVwiY29weUNvZGVUb0NsaXBib2FyZFwiXG4gICAgICAgICAgICAgIFtjb3B5Q29kZVRvb2x0aXBzXT1cImNvcHlDb2RlVG9vbHRpcHNcIlxuICAgICAgICAgICAgICAobG9hZEZhaWxlZCk9XCJoYW5kbGVNYXJrZG93bkxvYWRlckVycm9yKCRldmVudClcIlxuICAgICAgICAgICAgICAoYnV0dG9uQ2xpY2tlZCk9XCJidXR0b25DbGlja2VkLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICA+PC90ZC1mbGF2b3JlZC1tYXJrZG93bi1sb2FkZXI+XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGlmIChzaG93VGRNYXJrZG93bikge1xuICAgICAgICAgICAgPHRkLWZsYXZvcmVkLW1hcmtkb3duXG4gICAgICAgICAgICAgIFtjb250ZW50XT1cIm1hcmtkb3duU3RyaW5nID8/ICcnXCJcbiAgICAgICAgICAgICAgW2hvc3RlZFVybF09XCJ1cmwgPz8gJydcIlxuICAgICAgICAgICAgICBbYW5jaG9yXT1cImFuY2hvciA/PyAnJ1wiXG4gICAgICAgICAgICAgIFtjb3B5Q29kZVRvQ2xpcGJvYXJkXT1cImNvcHlDb2RlVG9DbGlwYm9hcmRcIlxuICAgICAgICAgICAgICBbY29weUNvZGVUb29sdGlwc109XCJjb3B5Q29kZVRvb2x0aXBzXCJcbiAgICAgICAgICAgICAgKGJ1dHRvbkNsaWNrZWQpPVwiYnV0dG9uQ2xpY2tlZC5lbWl0KCRldmVudClcIlxuICAgICAgICAgICAgPjwvdGQtZmxhdm9yZWQtbWFya2Rvd24+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cblxuICAgICAgQGlmIChjaGlsZHJlblVybEVycm9yKSB7XG4gICAgICAgIDx0ZC1tZXNzYWdlXG4gICAgICAgICAgW3N1YmxhYmVsXT1cImNoaWxkcmVuVXJsRXJyb3JcIlxuICAgICAgICAgIGNvbG9yPVwid2FyblwiXG4gICAgICAgICAgaWNvbj1cImVycm9yXCJcbiAgICAgICAgICBbYXR0ci5kYXRhLXRlc3RdPVwiJ2NoaWxkcmVuLXVybC1lcnJvcidcIlxuICAgICAgICA+PC90ZC1tZXNzYWdlPlxuICAgICAgfVxuXG4gICAgICBAaWYgKHNob3dNZW51KSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZC1tYXJrZG93bi1saXN0XCI+XG4gICAgICAgICAgPG1hdC1hY3Rpb24tbGlzdD5cbiAgICAgICAgICAgIEBmb3IgKFxuICAgICAgICAgICAgICBpdGVtIG9mIGN1cnJlbnRNZW51SXRlbXM7XG4gICAgICAgICAgICAgIGxldCBpbmRleCA9ICRpbmRleDtcbiAgICAgICAgICAgICAgdHJhY2sgaXRlbS5pZCA/PyBpbmRleFxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBbaWRdPVwiXG4gICAgICAgICAgICAgICAgICAndGQtbWFya2Rvd24tbmF2aWdhdG9yLWxpc3QtaXRlbS0nICtcbiAgICAgICAgICAgICAgICAgIChpdGVtLmlkID8gaXRlbS5pZCA6IGluZGV4KVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZUl0ZW1TZWxlY3RlZChpdGVtKVwiXG4gICAgICAgICAgICAgICAgbWF0LWxpc3QtaXRlbVxuICAgICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cImdldFRpdGxlKGl0ZW0pXCJcbiAgICAgICAgICAgICAgICBtYXRUb29sdGlwUG9zaXRpb249XCJiZWZvcmVcIlxuICAgICAgICAgICAgICAgIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgICBtYXRMaXN0SXRlbUljb25cbiAgICAgICAgICAgICAgICAgIFtmb250U2V0XT1cImlzQ292YWxlbnRJY29uKGl0ZW0pID8gJ2NvdmFsZW50LWljb25zJyA6ICcnXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7eyBnZXRJY29uKGl0ZW0pIH19XG4gICAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICA8c3BhbiBtYXRMaXN0SXRlbVRpdGxlIGNsYXNzPVwidHJ1bmNhdGVcIj5cbiAgICAgICAgICAgICAgICAgIHt7IGdldFRpdGxlKGl0ZW0pIH19XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIG1hdExpc3RJdGVtTGluZSBjbGFzcz1cInRydW5jYXRlXCI+XG4gICAgICAgICAgICAgICAgICB7eyBpdGVtLmRlc2NyaXB0aW9uIH19XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L21hdC1hY3Rpb24tbGlzdD5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgICA8bmctY29udGFpbmVyICpuZ0NvbXBvbmVudE91dGxldD1cImZvb3RlckNvbXBvbmVudFwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cbn1cblxuQGlmIChzaG93RW1wdHlTdGF0ZSkge1xuICA8ZGl2IGxheW91dD1cImNvbHVtblwiIGxheW91dC1hbGlnbj1cImNlbnRlciBjZW50ZXJcIiBjbGFzcz1cImVtcHR5LXN0YXRlXCI+XG4gICAgPG1hdC1pY29uIG1hdExpc3RJdGVtQXZhdGFyPnN1YmplY3Q8L21hdC1pY29uPlxuICAgIDxoMj57eyBlbXB0eVN0YXRlTGFiZWwgfX08L2gyPlxuICA8L2Rpdj5cbn1cbiJdfQ==","import { Component, Output, EventEmitter, Input, ChangeDetectionStrategy, Type, } from '@angular/core';\nimport { TdMarkdownNavigatorComponent, } from '../markdown-navigator.component';\nimport { TdWindowDialogComponent } from '@covalent/core/dialogs';\nimport * as i0 from \"@angular/core\";\nexport const DEFAULT_MARKDOWN_NAVIGATOR_WINDOW_LABELS = {\n title: 'Help',\n close: 'Close',\n dock: 'Dock',\n unDock: 'Undock',\n};\nexport class TdMarkdownNavigatorWindowComponent {\n items;\n labels;\n toolbarColor = 'primary';\n startAt;\n compareWith;\n docked = false;\n copyCodeToClipboard = false;\n copyCodeTooltips = {};\n footer;\n closed = new EventEmitter();\n dockToggled = new EventEmitter();\n buttonClicked = new EventEmitter();\n itemSelected = new EventEmitter();\n get markdownNavigatorLabels() {\n if (!this.labels) {\n return undefined;\n }\n const { goHome, goBack, emptyState } = this.labels;\n return {\n goHome,\n goBack,\n emptyState,\n };\n }\n get titleLabel() {\n return ((this.labels && this.labels.title) ||\n DEFAULT_MARKDOWN_NAVIGATOR_WINDOW_LABELS.title);\n }\n get closeLabel() {\n return ((this.labels && this.labels.close) ||\n DEFAULT_MARKDOWN_NAVIGATOR_WINDOW_LABELS.close);\n }\n get toggleDockedStateLabel() {\n if (this.docked) {\n return ((this.labels && this.labels.unDock) ||\n DEFAULT_MARKDOWN_NAVIGATOR_WINDOW_LABELS.unDock);\n }\n else {\n return ((this.labels && this.labels.dock) ||\n DEFAULT_MARKDOWN_NAVIGATOR_WINDOW_LABELS.dock);\n }\n }\n toggleDockedState() {\n this.dockToggled.emit(this.docked);\n }\n static ɵfac = function TdMarkdownNavigatorWindowComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TdMarkdownNavigatorWindowComponent)(); };\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TdMarkdownNavigatorWindowComponent, selectors: [[\"td-markdown-navigator-window\"]], inputs: { items: \"items\", labels: \"labels\", toolbarColor: \"toolbarColor\", startAt: \"startAt\", compareWith: \"compareWith\", docked: \"docked\", copyCodeToClipboard: \"copyCodeToClipboard\", copyCodeTooltips: \"copyCodeTooltips\", footer: \"footer\" }, outputs: { closed: \"closed\", dockToggled: \"dockToggled\", buttonClicked: \"buttonClicked\", itemSelected: \"itemSelected\" }, decls: 2, vars: 14, consts: [[3, \"dockToggled\", \"closed\", \"toolbarColor\", \"docked\", \"title\", \"toggleDockedStateLabel\", \"closeLabel\"], [3, \"buttonClicked\", \"itemSelected\", \"items\", \"labels\", \"startAt\", \"compareWith\", \"footer\", \"copyCodeToClipboard\", \"copyCodeTooltips\"]], template: function TdMarkdownNavigatorWindowComponent_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"td-window-dialog\", 0);\n i0.ɵɵlistener(\"dockToggled\", function TdMarkdownNavigatorWindowComponent_Template_td_window_dialog_dockToggled_0_listener() { return ctx.toggleDockedState(); })(\"closed\", function TdMarkdownNavigatorWindowComponent_Template_td_window_dialog_closed_0_listener() { return ctx.closed.emit(); });\n i0.ɵɵelementStart(1, \"td-markdown-navigator\", 1);\n i0.ɵɵlistener(\"buttonClicked\", function TdMarkdownNavigatorWindowComponent_Template_td_markdown_navigator_buttonClicked_1_listener($event) { return ctx.buttonClicked.emit($event); })(\"itemSelected\", function TdMarkdownNavigatorWindowComponent_Template_td_markdown_navigator_itemSelected_1_listener($event) { return ctx.itemSelected.emit($event); });\n i0.ɵɵelementEnd()();\n } if (rf & 2) {\n i0.ɵɵproperty(\"toolbarColor\", ctx.toolbarColor)(\"docked\", ctx.docked)(\"title\", ctx.titleLabel)(\"toggleDockedStateLabel\", ctx.toggleDockedStateLabel)(\"closeLabel\", ctx.closeLabel);\n i0.ɵɵadvance();\n i0.ɵɵstyleProp(\"display\", ctx.docked ? \"none\" : \"inherit\");\n i0.ɵɵproperty(\"items\", ctx.items)(\"labels\", ctx.markdownNavigatorLabels)(\"startAt\", ctx.startAt)(\"compareWith\", ctx.compareWith)(\"footer\", ctx.footer)(\"copyCodeToClipboard\", ctx.copyCodeToClipboard)(\"copyCodeTooltips\", ctx.copyCodeTooltips);\n } }, dependencies: [TdWindowDialogComponent, TdMarkdownNavigatorComponent], styles: [\"[_nghost-%COMP%]{height:100%;display:flex;flex-direction:column}td-markdown-navigator[_ngcontent-%COMP%]{height:calc(100% - 56px)}\"], changeDetection: 0 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(TdMarkdownNavigatorWindowComponent, [{\n type: Component,\n args: [{ selector: 'td-markdown-navigator-window', changeDetection: ChangeDetectionStrategy.OnPush, imports: [TdWindowDialogComponent, TdMarkdownNavigatorComponent], template: \"<td-window-dialog\\n [toolbarColor]=\\\"toolbarColor\\\"\\n [docked]=\\\"docked\\\"\\n [title]=\\\"titleLabel\\\"\\n [toggleDockedStateLabel]=\\\"toggleDockedStateLabel\\\"\\n [closeLabel]=\\\"closeLabel\\\"\\n (dockToggled)=\\\"toggleDockedState()\\\"\\n (closed)=\\\"closed.emit()\\\"\\n>\\n <td-markdown-navigator\\n [items]=\\\"items\\\"\\n [labels]=\\\"markdownNavigatorLabels\\\"\\n [style.display]=\\\"docked ? 'none' : 'inherit'\\\"\\n [startAt]=\\\"startAt\\\"\\n [compareWith]=\\\"compareWith\\\"\\n [footer]=\\\"footer\\\"\\n [copyCodeToClipboard]=\\\"copyCodeToClipboard\\\"\\n [copyCodeTooltips]=\\\"copyCodeTooltips\\\"\\n (buttonClicked)=\\\"buttonClicked.emit($event)\\\"\\n (itemSelected)=\\\"itemSelected.emit($event)\\\"\\n ></td-markdown-navigator>\\n</td-window-dialog>\\n\", styles: [\":host{height:100%;display:flex;flex-direction:column}td-markdown-navigator{height:calc(100% - 56px)}\\n\"] }]\n }], null, { items: [{\n type: Input\n }], labels: [{\n type: Input\n }], toolbarColor: [{\n type: Input\n }], startAt: [{\n type: Input\n }], compareWith: [{\n type: Input\n }], docked: [{\n type: Input\n }], copyCodeToClipboard: [{\n type: Input\n }], copyCodeTooltips: [{\n type: Input\n }], footer: [{\n type: Input\n }], closed: [{\n type: Output\n }], dockToggled: [{\n type: Output\n }], buttonClicked: [{\n type: Output\n }], itemSelected: [{\n type: Output\n }] }); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(TdMarkdownNavigatorWindowComponent, { className: \"TdMarkdownNavigatorWindowComponent\", filePath: \"markdown-navigator-window/markdown-navigator-window.component.ts\", lineNumber: 42 }); })();\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2Rvd24tbmF2aWdhdG9yLXdpbmRvdy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL21hcmtkb3duLW5hdmlnYXRvci9zcmMvbWFya2Rvd24tbmF2aWdhdG9yLXdpbmRvdy9tYXJrZG93bi1uYXZpZ2F0b3Itd2luZG93LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYnMvbWFya2Rvd24tbmF2aWdhdG9yL3NyYy9tYXJrZG93bi1uYXZpZ2F0b3Itd2luZG93L21hcmtkb3duLW5hdmlnYXRvci13aW5kb3cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxNQUFNLEVBQ04sWUFBWSxFQUNaLEtBQUssRUFDTCx1QkFBdUIsRUFDdkIsSUFBSSxHQUNMLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFJTCw0QkFBNEIsR0FDN0IsTUFBTSxpQ0FBaUMsQ0FBQztBQUd6QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFTakUsTUFBTSxDQUFDLE1BQU0sd0NBQXdDLEdBQ25EO0lBQ0UsS0FBSyxFQUFFLE1BQU07SUFDYixLQUFLLEVBQUUsT0FBTztJQUNkLElBQUksRUFBRSxNQUFNO0lBQ1osTUFBTSxFQUFFLFFBQVE7Q0FDakIsQ0FBQztBQVNKLE1BQU0sT0FBTyxrQ0FBa0M7SUFDcEMsS0FBSyxDQUE0QjtJQUNqQyxNQUFNLENBQWtDO0lBQ3hDLFlBQVksR0FBaUIsU0FBUyxDQUFDO0lBQ3ZDLE9BQU8sQ0FBcUQ7SUFDNUQsV0FBVyxDQUFpQztJQUM1QyxNQUFNLEdBQUksS0FBSyxDQUFDO0lBQ2hCLG1CQUFtQixHQUFJLEtBQUssQ0FBQztJQUM3QixnQkFBZ0IsR0FBdUIsRUFBRSxDQUFDO0lBQzFDLE1BQU0sQ0FBYTtJQUVsQixNQUFNLEdBQXVCLElBQUksWUFBWSxFQUFFLENBQUM7SUFDaEQsV0FBVyxHQUEwQixJQUFJLFlBQVksRUFBRSxDQUFDO0lBQ3hELGFBQWEsR0FDckIsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUNYLFlBQVksR0FDcEIsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUVyQixJQUFJLHVCQUF1QjtRQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2pCLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7UUFFRCxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsR0FDbEMsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUNkLE9BQU87WUFDTCxNQUFNO1lBQ04sTUFBTTtZQUNOLFVBQVU7U0FDWCxDQUFDO0lBQ0osQ0FBQztJQUNELElBQUksVUFBVTtRQUNaLE9BQU8sQ0FDTCxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7WUFDbEMsd0NBQXdDLENBQUMsS0FBSyxDQUMvQyxDQUFDO0lBQ0osQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLE9BQU8sQ0FDTCxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7WUFDbEMsd0NBQXdDLENBQUMsS0FBSyxDQUMvQyxDQUFDO0lBQ0osQ0FBQztJQUVELElBQUksc0JBQXNCO1FBQ3hCLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2hCLE9BQU8sQ0FDTCxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7Z0JBQ25DLHdDQUF3QyxDQUFDLE1BQU0sQ0FDaEQsQ0FBQztRQUNKLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxDQUNMLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztnQkFDakMsd0NBQXdDLENBQUMsSUFBSSxDQUM5QyxDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7SUFFRCxpQkFBaUI7UUFDZixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDckMsQ0FBQzs0SEE3RFUsa0NBQWtDOzZEQUFsQyxrQ0FBa0M7WUN6Qy9DLDJDQVFDO1lBREMsQUFEQSxxSUFBZSx1QkFBbUIsSUFBQyw4R0FDekIsaUJBQWEsSUFBQztZQUV4QixnREFXQztZQURDLEFBREEsb0pBQWlCLDhCQUEwQixJQUFDLHFJQUM1Qiw2QkFBeUIsSUFBQztZQUU5QyxBQURHLGlCQUF3QixFQUNSOztZQWhCakIsQUFEQSxBQURBLEFBREEsQUFEQSwrQ0FBNkIsc0JBQ1oseUJBQ0csc0RBQzZCLDhCQUN4QjtZQU92QixjQUE2QztZQUE3QywwREFBNkM7WUFLN0MsQUFEQSxBQURBLEFBREEsQUFEQSxBQUZBLEFBREEsaUNBQWUsdUNBQ21CLHdCQUVmLGdDQUNRLHNCQUNWLGdEQUMwQiwwQ0FDTjs0QkRzQjdCLHVCQUF1QixFQUFFLDRCQUE0Qjs7aUZBRXBELGtDQUFrQztjQVA5QyxTQUFTOzJCQUNFLDhCQUE4QixtQkFHdkIsdUJBQXVCLENBQUMsTUFBTSxXQUN0QyxDQUFDLHVCQUF1QixFQUFFLDRCQUE0QixDQUFDOztrQkFHL0QsS0FBSzs7a0JBQ0wsS0FBSzs7a0JBQ0wsS0FBSzs7a0JBQ0wsS0FBSzs7a0JBQ0wsS0FBSzs7a0JBQ0wsS0FBSzs7a0JBQ0wsS0FBSzs7a0JBQ0wsS0FBSzs7a0JBQ0wsS0FBSzs7a0JBRUwsTUFBTTs7a0JBQ04sTUFBTTs7a0JBQ04sTUFBTTs7a0JBRU4sTUFBTTs7a0ZBZkksa0NBQWtDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBUeXBlLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRoZW1lUGFsZXR0ZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHtcbiAgSU1hcmtkb3duTmF2aWdhdG9ySXRlbSxcbiAgSU1hcmtkb3duTmF2aWdhdG9yTGFiZWxzLFxuICBJTWFya2Rvd25OYXZpZ2F0b3JDb21wYXJlV2l0aCxcbiAgVGRNYXJrZG93bk5hdmlnYXRvckNvbXBvbmVudCxcbn0gZnJvbSAnLi4vbWFya2Rvd24tbmF2aWdhdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJVGRGbGF2b3JlZE1hcmtkb3duQnV0dG9uQ2xpY2tFdmVudCB9IGZyb20gJ0Bjb3ZhbGVudC9mbGF2b3JlZC1tYXJrZG93bic7XG5pbXBvcnQgeyBJQ29weUNvZGVUb29sdGlwcyB9IGZyb20gJ0Bjb3ZhbGVudC9oaWdobGlnaHQnO1xuaW1wb3J0IHsgVGRXaW5kb3dEaWFsb2dDb21wb25lbnQgfSBmcm9tICdAY292YWxlbnQvY29yZS9kaWFsb2dzJztcblxuZXhwb3J0IGludGVyZmFjZSBJTWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dMYWJlbHNcbiAgZXh0ZW5kcyBJTWFya2Rvd25OYXZpZ2F0b3JMYWJlbHMge1xuICB0aXRsZT86IHN0cmluZztcbiAgY2xvc2U/OiBzdHJpbmc7XG4gIGRvY2s/OiBzdHJpbmc7XG4gIHVuRG9jaz86IHN0cmluZztcbn1cbmV4cG9ydCBjb25zdCBERUZBVUxUX01BUktET1dOX05BVklHQVRPUl9XSU5ET1dfTEFCRUxTOiBJTWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dMYWJlbHMgPVxuICB7XG4gICAgdGl0bGU6ICdIZWxwJyxcbiAgICBjbG9zZTogJ0Nsb3NlJyxcbiAgICBkb2NrOiAnRG9jaycsXG4gICAgdW5Eb2NrOiAnVW5kb2NrJyxcbiAgfTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGQtbWFya2Rvd24tbmF2aWdhdG9yLXdpbmRvdycsXG4gIHRlbXBsYXRlVXJsOiAnLi9tYXJrZG93bi1uYXZpZ2F0b3Itd2luZG93LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWFya2Rvd24tbmF2aWdhdG9yLXdpbmRvdy5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW1RkV2luZG93RGlhbG9nQ29tcG9uZW50LCBUZE1hcmtkb3duTmF2aWdhdG9yQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgVGRNYXJrZG93bk5hdmlnYXRvcldpbmRvd0NvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGl0ZW1zPzogSU1hcmtkb3duTmF2aWdhdG9ySXRlbVtdO1xuICBASW5wdXQoKSBsYWJlbHM/OiBJTWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dMYWJlbHM7XG4gIEBJbnB1dCgpIHRvb2xiYXJDb2xvcjogVGhlbWVQYWxldHRlID0gJ3ByaW1hcnknO1xuICBASW5wdXQoKSBzdGFydEF0PzogSU1hcmtkb3duTmF2aWdhdG9ySXRlbSB8IElNYXJrZG93bk5hdmlnYXRvckl0ZW1bXTtcbiAgQElucHV0KCkgY29tcGFyZVdpdGg/OiBJTWFya2Rvd25OYXZpZ2F0b3JDb21wYXJlV2l0aDtcbiAgQElucHV0KCkgZG9ja2VkPyA9IGZhbHNlO1xuICBASW5wdXQoKSBjb3B5Q29kZVRvQ2xpcGJvYXJkPyA9IGZhbHNlO1xuICBASW5wdXQoKSBjb3B5Q29kZVRvb2x0aXBzPzogSUNvcHlDb2RlVG9vbHRpcHMgPSB7fTtcbiAgQElucHV0KCkgZm9vdGVyPzogVHlwZTxhbnk+O1xuXG4gIEBPdXRwdXQoKSBjbG9zZWQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGRvY2tUb2dnbGVkOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBidXR0b25DbGlja2VkOiBFdmVudEVtaXR0ZXI8SVRkRmxhdm9yZWRNYXJrZG93bkJ1dHRvbkNsaWNrRXZlbnQ+ID1cbiAgICBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBpdGVtU2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjxJTWFya2Rvd25OYXZpZ2F0b3JJdGVtPiA9XG4gICAgbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGdldCBtYXJrZG93bk5hdmlnYXRvckxhYmVscygpOiBJTWFya2Rvd25OYXZpZ2F0b3JMYWJlbHMgfCB1bmRlZmluZWQge1xuICAgIGlmICghdGhpcy5sYWJlbHMpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgY29uc3QgeyBnb0hvbWUsIGdvQmFjaywgZW1wdHlTdGF0ZSB9OiBJTWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dMYWJlbHMgPVxuICAgICAgdGhpcy5sYWJlbHM7XG4gICAgcmV0dXJuIHtcbiAgICAgIGdvSG9tZSxcbiAgICAgIGdvQmFjayxcbiAgICAgIGVtcHR5U3RhdGUsXG4gICAgfTtcbiAgfVxuICBnZXQgdGl0bGVMYWJlbCgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiAoXG4gICAgICAodGhpcy5sYWJlbHMgJiYgdGhpcy5sYWJlbHMudGl0bGUpIHx8XG4gICAgICBERUZBVUxUX01BUktET1dOX05BVklHQVRPUl9XSU5ET1dfTEFCRUxTLnRpdGxlXG4gICAgKTtcbiAgfVxuXG4gIGdldCBjbG9zZUxhYmVsKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIChcbiAgICAgICh0aGlzLmxhYmVscyAmJiB0aGlzLmxhYmVscy5jbG9zZSkgfHxcbiAgICAgIERFRkFVTFRfTUFSS0RPV05fTkFWSUdBVE9SX1dJTkRPV19MQUJFTFMuY2xvc2VcbiAgICApO1xuICB9XG5cbiAgZ2V0IHRvZ2dsZURvY2tlZFN0YXRlTGFiZWwoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodGhpcy5kb2NrZWQpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgICh0aGlzLmxhYmVscyAmJiB0aGlzLmxhYmVscy51bkRvY2spIHx8XG4gICAgICAgIERFRkFVTFRfTUFSS0RPV05fTkFWSUdBVE9SX1dJTkRPV19MQUJFTFMudW5Eb2NrXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICAodGhpcy5sYWJlbHMgJiYgdGhpcy5sYWJlbHMuZG9jaykgfHxcbiAgICAgICAgREVGQVVMVF9NQVJLRE9XTl9OQVZJR0FUT1JfV0lORE9XX0xBQkVMUy5kb2NrXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHRvZ2dsZURvY2tlZFN0YXRlKCk6IHZvaWQge1xuICAgIHRoaXMuZG9ja1RvZ2dsZWQuZW1pdCh0aGlzLmRvY2tlZCk7XG4gIH1cbn1cbiIsIjx0ZC13aW5kb3ctZGlhbG9nXG4gIFt0b29sYmFyQ29sb3JdPVwidG9vbGJhckNvbG9yXCJcbiAgW2RvY2tlZF09XCJkb2NrZWRcIlxuICBbdGl0bGVdPVwidGl0bGVMYWJlbFwiXG4gIFt0b2dnbGVEb2NrZWRTdGF0ZUxhYmVsXT1cInRvZ2dsZURvY2tlZFN0YXRlTGFiZWxcIlxuICBbY2xvc2VMYWJlbF09XCJjbG9zZUxhYmVsXCJcbiAgKGRvY2tUb2dnbGVkKT1cInRvZ2dsZURvY2tlZFN0YXRlKClcIlxuICAoY2xvc2VkKT1cImNsb3NlZC5lbWl0KClcIlxuPlxuICA8dGQtbWFya2Rvd24tbmF2aWdhdG9yXG4gICAgW2l0ZW1zXT1cIml0ZW1zXCJcbiAgICBbbGFiZWxzXT1cIm1hcmtkb3duTmF2aWdhdG9yTGFiZWxzXCJcbiAgICBbc3R5bGUuZGlzcGxheV09XCJkb2NrZWQgPyAnbm9uZScgOiAnaW5oZXJpdCdcIlxuICAgIFtzdGFydEF0XT1cInN0YXJ0QXRcIlxuICAgIFtjb21wYXJlV2l0aF09XCJjb21wYXJlV2l0aFwiXG4gICAgW2Zvb3Rlcl09XCJmb290ZXJcIlxuICAgIFtjb3B5Q29kZVRvQ2xpcGJvYXJkXT1cImNvcHlDb2RlVG9DbGlwYm9hcmRcIlxuICAgIFtjb3B5Q29kZVRvb2x0aXBzXT1cImNvcHlDb2RlVG9vbHRpcHNcIlxuICAgIChidXR0b25DbGlja2VkKT1cImJ1dHRvbkNsaWNrZWQuZW1pdCgkZXZlbnQpXCJcbiAgICAoaXRlbVNlbGVjdGVkKT1cIml0ZW1TZWxlY3RlZC5lbWl0KCRldmVudClcIlxuICA+PC90ZC1tYXJrZG93bi1uYXZpZ2F0b3I+XG48L3RkLXdpbmRvdy1kaWFsb2c+XG4iXX0=","import { Injectable, RendererFactory2, inject, } from '@angular/core';\nimport { TdMarkdownNavigatorWindowComponent, } from '../markdown-navigator-window/markdown-navigator-window.component';\nimport { TdDialogService, ResizableDraggableDialog, } from '@covalent/core/dialogs';\nimport { DOCUMENT } from '@angular/common';\nimport * as i0 from \"@angular/core\";\nconst CDK_OVERLAY_CUSTOM_CLASS = 'td-window-dialog';\nconst DEFAULT_POSITION = { bottom: '0px', right: '0px' };\nconst DEFAULT_WIDTH = '360px';\nconst DEFAULT_HEIGHT = '75vh';\nconst MAX_WIDTH = '100vw';\nconst DEFAULT_DRAGGABLE_DIALOG_CONFIG = {\n hasBackdrop: false,\n closeOnNavigation: true,\n panelClass: [CDK_OVERLAY_CUSTOM_CLASS],\n position: DEFAULT_POSITION,\n height: DEFAULT_HEIGHT,\n width: DEFAULT_WIDTH,\n maxWidth: MAX_WIDTH,\n};\nexport class TdMarkdownNavigatorWindowService {\n _tdDialogService = inject(TdDialogService);\n _document = inject(DOCUMENT);\n rendererFactory = inject(RendererFactory2);\n _renderer2;\n dragRef;\n resizableDraggableDialog;\n markdownNavigatorWindowDialog;\n markdownNavigatorWindowDialogsOpen = 0;\n constructor() {\n const rendererFactory = this.rendererFactory;\n this._renderer2 = rendererFactory.createRenderer(undefined, null);\n }\n open(config) {\n this.close();\n const configClass = config?.dialogConfig?.panelClass;\n const panelClass = configClass && !Array.isArray(configClass) ? [configClass] : [];\n const draggableConfig = {\n ...DEFAULT_DRAGGABLE_DIALOG_CONFIG,\n ...config.dialogConfig,\n ...panelClass,\n };\n const { matDialogRef, dragRefSubject, } = this._tdDialogService.openDraggable({\n component: TdMarkdownNavigatorWindowComponent,\n config: draggableConfig,\n dragHandleSelectors: ['.td-window-dialog-toolbar'],\n draggableClass: 'td-draggable-markdown-navigator-window',\n });\n this.markdownNavigatorWindowDialog = matDialogRef;\n this.markdownNavigatorWindowDialog.componentInstance.items = config.items;\n this.markdownNavigatorWindowDialog.componentInstance.labels = config.labels;\n this.markdownNavigatorWindowDialog.componentInstance.startAt =\n config.startAt;\n this.markdownNavigatorWindowDialog.componentInstance.copyCodeToClipboard =\n config.copyCodeToClipboard;\n this.markdownNavigatorWindowDialog.componentInstance.copyCodeTooltips =\n config.copyCodeTooltips;\n this.markdownNavigatorWindowDialog.componentInstance.compareWith =\n config.compareWith;\n this.markdownNavigatorWindowDialog.componentInstance.toolbarColor =\n 'toolbarColor' in config ? config.toolbarColor : 'primary';\n this.markdownNavigatorWindowDialogsOpen++;\n this.markdownNavigatorWindowDialog.componentInstance.footer = config.footer;\n dragRefSubject.subscribe((dragRf) => {\n this.dragRef = dragRf;\n this.resizableDraggableDialog = new ResizableDraggableDialog(this._document, this._renderer2, this.markdownNavigatorWindowDialog, this.dragRef);\n });\n this._handleEvents();\n return this.markdownNavigatorWindowDialog;\n }\n close() {\n if (this.markdownNavigatorWindowDialog) {\n if (this.resizableDraggableDialog) {\n this.resizableDraggableDialog.detach();\n }\n this.markdownNavigatorWindowDialog.close();\n }\n }\n get isOpen() {\n return this.markdownNavigatorWindowDialogsOpen > 0;\n }\n _handleEvents() {\n this.markdownNavigatorWindowDialog.componentInstance.closed.subscribe(() => this.close());\n this.markdownNavigatorWindowDialog\n .afterClosed()\n .toPromise()\n .then(() => {\n this.markdownNavigatorWindowDialogsOpen--;\n });\n }\n static ɵfac = function TdMarkdownNavigatorWindowService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TdMarkdownNavigatorWindowService)(); };\n static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: TdMarkdownNavigatorWindowService, factory: TdMarkdownNavigatorWindowService.ɵfac });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(TdMarkdownNavigatorWindowService, [{\n type: Injectable\n }], () => [], null); })();\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2Rvd24tbmF2aWdhdG9yLXdpbmRvdy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9tYXJrZG93bi1uYXZpZ2F0b3Ivc3JjL21hcmtkb3duLW5hdmlnYXRvci13aW5kb3ctc2VydmljZS9tYXJrZG93bi1uYXZpZ2F0b3Itd2luZG93LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFVBQVUsRUFDVixnQkFBZ0IsRUFHaEIsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBT3ZCLE9BQU8sRUFDTCxrQ0FBa0MsR0FFbkMsTUFBTSxrRUFBa0UsQ0FBQztBQUMxRSxPQUFPLEVBQ0wsZUFBZSxFQUVmLHdCQUF3QixHQUN6QixNQUFNLHdCQUF3QixDQUFDO0FBRWhDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFtQjNDLE1BQU0sd0JBQXdCLEdBQUcsa0JBQWtCLENBQUM7QUFFcEQsTUFBTSxnQkFBZ0IsR0FBbUIsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQztBQUN6RSxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUM7QUFDOUIsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDO0FBQzlCLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQztBQUUxQixNQUFNLCtCQUErQixHQUFvQjtJQUN2RCxXQUFXLEVBQUUsS0FBSztJQUNsQixpQkFBaUIsRUFBRSxJQUFJO0lBQ3ZCLFVBQVUsRUFBRSxDQUFDLHdCQUF3QixDQUFDO0lBQ3RDLFFBQVEsRUFBRSxnQkFBZ0I7SUFDMUIsTUFBTSxFQUFFLGNBQWM7SUFDdEIsS0FBSyxFQUFFLGFBQWE7SUFDcEIsUUFBUSxFQUFFLFNBQVM7Q0FDcEIsQ0FBQztBQUdGLE1BQU0sT0FBTyxnQ0FBZ0M7SUFDbkMsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFD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NkIsQ0FBQztJQUM1QyxDQUFDO0lBRU0sS0FBSztRQUNWLElBQUksSUFBSSxDQUFDLDZCQUE2QixFQUFFLENBQUM7WUFDdkMsSUFBSSxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztnQkFDbEMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3pDLENBQUM7WUFDRCxJQUFJLENBQUMsNkJBQTZCLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDN0MsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFXLE1BQU07UUFDZixPQUFPLElBQUksQ0FBQyxrQ0FBa0MsR0FBRyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVPLGFBQWE7UUFDbkIsSUFBSSxDQUFDLDZCQUE2QixDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQ3pFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FDYixDQUFDO1FBRUYsSUFBSSxDQUFDLDZCQUE2QjthQUMvQixXQUFXLEVBQUU7YUFDYixTQUFTLEVBQUU7YUFDWCxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ1QsSUFBSSxDQUFDLGtDQUFrQyxFQUFFLENBQUM7UUFDNUMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOzBIQTdGVSxnQ0FBZ0M7Z0VBQWhDLGdDQUFnQyxXQUFoQyxnQ0FBZ0M7O2lGQUFoQyxnQ0FBZ0M7Y0FENUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEluamVjdGFibGUsXG4gIFJlbmRlcmVyRmFjdG9yeTIsXG4gIFJlbmRlcmVyMixcbiAgVHlwZSxcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIE1hdERpYWxvZ1JlZixcbiAgTWF0RGlhbG9nQ29uZmlnLFxuICBEaWFsb2dQb3NpdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IFRoZW1lUGFsZXR0ZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHtcbiAgVGRNYXJrZG93bk5hdmlnYXRvcldpbmRvd0NvbXBvbmVudCxcbiAgSU1hcmtkb3duTmF2aWdhdG9yV2luZG93TGFiZWxzLFxufSBmcm9tICcuLi9tYXJrZG93bi1uYXZpZ2F0b3Itd2luZG93L21hcmtkb3duLW5hdmlnYXRvci13aW5kb3cuY29tcG9uZW50JztcbmltcG9ydCB7XG4gIFRkRGlhbG9nU2VydmljZSxcbiAgSURyYWdnYWJsZVJlZnMsXG4gIFJlc2l6YWJsZURyYWdnYWJsZURpYWxvZyxcbn0gZnJvbSAnQGNvdmFsZW50L2NvcmUvZGlhbG9ncyc7XG5pbXBvcnQgeyBEcmFnUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBJTWFya2Rvd25OYXZpZ2F0b3JJdGVtLFxuICBJTWFya2Rvd25OYXZpZ2F0b3JDb21wYXJlV2l0aCxcbn0gZnJvbSAnLi4vbWFya2Rvd24tbmF2aWdhdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJQ29weUNvZGVUb29sdGlwcyB9IGZyb20gJ0Bjb3ZhbGVudC9oaWdobGlnaHQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElNYXJrZG93bk5hdmlnYXRvcldpbmRvd0NvbmZpZyB7XG4gIGl0ZW1zOiBJTWFya2Rvd25OYXZpZ2F0b3JJdGVtW107XG4gIGRpYWxvZ0NvbmZpZz86IE1hdERpYWxvZ0NvbmZpZztcbiAgbGFiZWxzPzogSU1hcmtkb3duTmF2aWdhdG9yV2luZG93TGFiZWxzO1xuICB0b29sYmFyQ29sb3I/OiBUaGVtZVBhbGV0dGU7XG4gIHN0YXJ0QXQ/OiBJTWFya2Rvd25OYXZpZ2F0b3JJdGVtIHwgSU1hcmtkb3duTmF2aWdhdG9ySXRlbVtdO1xuICBjb21wYXJlV2l0aD86IElNYXJrZG93bk5hdmlnYXRvckNvbXBhcmVXaXRoO1xuICBjb3B5Q29kZVRvQ2xpcGJvYXJkPzogYm9vbGVhbjtcbiAgY29weUNvZGVUb29sdGlwcz86IElDb3B5Q29kZVRvb2x0aXBzO1xuICBmb290ZXI/OiBUeXBlPGFueT47XG59XG5cbmNvbnN0IENES19PVkVSTEFZX0NVU1RPTV9DTEFTUyA9ICd0ZC13aW5kb3ctZGlhbG9nJztcblxuY29uc3QgREVGQVVMVF9QT1NJVElPTjogRGlhbG9nUG9zaXRpb24gPSB7IGJvdHRvbTogJzBweCcsIHJpZ2h0OiAnMHB4JyB9O1xuY29uc3QgREVGQVVMVF9XSURUSCA9ICczNjBweCc7XG5jb25zdCBERUZBVUxUX0hFSUdIVCA9ICc3NXZoJztcbmNvbnN0IE1BWF9XSURUSCA9ICcxMDB2dyc7XG5cbmNvbnN0IERFRkFVTFRfRFJBR0dBQkxFX0RJQUxPR19DT05GSUc6IE1hdERpYWxvZ0NvbmZpZyA9IHtcbiAgaGFzQmFja2Ryb3A6IGZhbHNlLFxuICBjbG9zZU9uTmF2aWdhdGlvbjogdHJ1ZSxcbiAgcGFuZWxDbGFzczogW0NES19PVkVSTEFZX0NVU1RPTV9DTEFTU10sXG4gIHBvc2l0aW9uOiBERUZBVUxUX1BPU0lUSU9OLFxuICBoZWlnaHQ6IERFRkFVTFRfSEVJR0hULFxuICB3aWR0aDogREVGQVVMVF9XSURUSCxcbiAgbWF4V2lkdGg6IE1BWF9XSURUSCxcbn07XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBUZE1hcmtkb3duTmF2aWdhdG9yV2luZG93U2VydmljZSB7XG4gIHByaXZhdGUgX3RkRGlhbG9nU2VydmljZSA9IGluamVjdChUZERpYWxvZ1NlcnZpY2UpO1xuICBwcml2YXRlIF9kb2N1bWVudCA9IGluamVjdChET0NVTUVOVCk7XG4gIHByaXZhdGUgcmVuZGVyZXJGYWN0b3J5ID0gaW5qZWN0KFJlbmRlcmVyRmFjdG9yeTIpO1xuXG4gIHByaXZhdGUgX3JlbmRlcmVyMjogUmVuZGVyZXIyO1xuICBwcml2YXRlIGRyYWdSZWYhOiBEcmFnUmVmO1xuICBwcml2YXRlIHJlc2l6YWJsZURyYWdnYWJsZURpYWxvZyE6IFJlc2l6YWJsZURyYWdnYWJsZURpYWxvZztcbiAgcHJpdmF0ZSBtYXJrZG93bk5hdmlnYXRvcldpbmRvd0RpYWxvZyE6IE1hdERpYWxvZ1JlZjxUZE1hcmtkb3duTmF2aWdhdG9yV2luZG93Q29tcG9uZW50PjtcbiAgcHJpdmF0ZSBtYXJrZG93bk5hdmlnYXRvcldpbmRvd0RpYWxvZ3NPcGVuID0gMDtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBjb25zdCByZW5kZXJlckZhY3RvcnkgPSB0aGlzLnJlbmRlcmVyRmFjdG9yeTtcblxuICAgIHRoaXMuX3JlbmRlcmVyMiA9IHJlbmRlcmVyRmFjdG9yeS5jcmVhdGVSZW5kZXJlcih1bmRlZmluZWQsIG51bGwpO1xuICB9XG5cbiAgcHVibGljIG9wZW4oXG4gICAgY29uZmlnOiBJTWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dDb25maWcsXG4gICk6IE1hdERpYWxvZ1JlZjxUZE1hcmtkb3duTmF2aWdhdG9yV2luZG93Q29tcG9uZW50PiB7XG4gICAgdGhpcy5jbG9zZSgpO1xuXG4gICAgY29uc3QgY29uZmlnQ2xhc3MgPSBjb25maWc/LmRpYWxvZ0NvbmZpZz8ucGFuZWxDbGFzcztcbiAgICBjb25zdCBwYW5lbENsYXNzID1cbiAgICAgIGNvbmZpZ0NsYXNzICYmICFBcnJheS5pc0FycmF5KGNvbmZpZ0NsYXNzKSA/IFtjb25maWdDbGFzc10gOiBbXTtcblxuICAgIGNvbnN0IGRyYWdnYWJsZUNvbmZpZzogTWF0RGlhbG9nQ29uZmlnID0ge1xuICAgICAgLi4uREVGQVVMVF9EUkFHR0FCTEVfRElBTE9HX0NPTkZJRyxcbiAgICAgIC4uLmNvbmZpZy5kaWFsb2dDb25maWcsXG4gICAgICAuLi5wYW5lbENsYXNzLFxuICAgIH07XG4gICAgY29uc3Qge1xuICAgICAgbWF0RGlhbG9nUmVmLFxuICAgICAgZHJhZ1JlZlN1YmplY3QsXG4gICAgfTogSURyYWdnYWJsZVJlZnM8VGRNYXJrZG93bk5hdmlnYXRvcldpbmRvd0NvbXBvbmVudD4gPVxuICAgICAgdGhpcy5fdGREaWFsb2dTZXJ2aWNlLm9wZW5EcmFnZ2FibGUoe1xuICAgICAgICBjb21wb25lbnQ6IFRkTWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dDb21wb25lbnQsXG4gICAgICAgIGNvbmZpZzogZHJhZ2dhYmxlQ29uZmlnLFxuICAgICAgICBkcmFnSGFuZGxlU2VsZWN0b3JzOiBbJy50ZC13aW5kb3ctZGlhbG9nLXRvb2xiYXInXSxcbiAgICAgICAgZHJhZ2dhYmxlQ2xhc3M6ICd0ZC1kcmFnZ2FibGUtbWFya2Rvd24tbmF2aWdhdG9yLXdpbmRvdycsXG4gICAgICB9KTtcbiAgICB0aGlzLm1hcmtkb3duTmF2aWdhdG9yV2luZG93RGlhbG9nID0gbWF0RGlhbG9nUmVmO1xuICAgIHRoaXMubWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dEaWFsb2cuY29tcG9uZW50SW5zdGFuY2UuaXRlbXMgPSBjb25maWcuaXRlbXM7XG4gICAgdGhpcy5tYXJrZG93bk5hdmlnYXRvcldpbmRvd0RpYWxvZy5jb21wb25lbnRJbnN0YW5jZS5sYWJlbHMgPSBjb25maWcubGFiZWxzO1xuICAgIHRoaXMubWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dEaWFsb2cuY29tcG9uZW50SW5zdGFuY2Uuc3RhcnRBdCA9XG4gICAgICBjb25maWcuc3RhcnRBdDtcbiAgICB0aGlzLm1hcmtkb3duTmF2aWdhdG9yV2luZG93RGlhbG9nLmNvbXBvbmVudEluc3RhbmNlLmNvcHlDb2RlVG9DbGlwYm9hcmQgPVxuICAgICAgY29uZmlnLmNvcHlDb2RlVG9DbGlwYm9hcmQ7XG4gICAgdGhpcy5tYXJrZG93bk5hdmlnYXRvcldpbmRvd0RpYWxvZy5jb21wb25lbnRJbnN0YW5jZS5jb3B5Q29kZVRvb2x0aXBzID1cbiAgICAgIGNvbmZpZy5jb3B5Q29kZVRvb2x0aXBzO1xuICAgIHRoaXMubWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dEaWFsb2cuY29tcG9uZW50SW5zdGFuY2UuY29tcGFyZVdpdGggPVxuICAgICAgY29uZmlnLmNvbXBhcmVXaXRoO1xuICAgIHRoaXMubWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dEaWFsb2cuY29tcG9uZW50SW5zdGFuY2UudG9vbGJhckNvbG9yID1cbiAgICAgICd0b29sYmFyQ29sb3InIGluIGNvbmZpZyA/IGNvbmZpZy50b29sYmFyQ29sb3IgOiAncHJpbWFyeSc7XG4gICAgdGhpcy5tYXJrZG93bk5hdmlnYXRvcldpbmRvd0RpYWxvZ3NPcGVuKys7XG4gICAgdGhpcy5tYXJrZG93bk5hdmlnYXRvcldpbmRvd0RpYWxvZy5jb21wb25lbnRJbnN0YW5jZS5mb290ZXIgPSBjb25maWcuZm9vdGVyO1xuICAgIGRyYWdSZWZTdWJqZWN0LnN1YnNjcmliZSgoZHJhZ1JmOiBEcmFnUmVmKSA9PiB7XG4gICAgICB0aGlzLmRyYWdSZWYgPSBkcmFnUmY7XG4gICAgICB0aGlzLnJlc2l6YWJsZURyYWdnYWJsZURpYWxvZyA9IG5ldyBSZXNpemFibGVEcmFnZ2FibGVEaWFsb2coXG4gICAgICAgIHRoaXMuX2RvY3VtZW50LFxuICAgICAgICB0aGlzLl9yZW5kZXJlcjIsXG4gICAgICAgIHRoaXMubWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dEaWFsb2csXG4gICAgICAgIHRoaXMuZHJhZ1JlZixcbiAgICAgICk7XG4gICAgfSk7XG4gICAgdGhpcy5faGFuZGxlRXZlbnRzKCk7XG4gICAgcmV0dXJuIHRoaXMubWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dEaWFsb2c7XG4gIH1cblxuICBwdWJsaWMgY2xvc2UoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dEaWFsb2cpIHtcbiAgICAgIGlmICh0aGlzLnJlc2l6YWJsZURyYWdnYWJsZURpYWxvZykge1xuICAgICAgICB0aGlzLnJlc2l6YWJsZURyYWdnYWJsZURpYWxvZy5kZXRhY2goKTtcbiAgICAgIH1cbiAgICAgIHRoaXMubWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dEaWFsb2cuY2xvc2UoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzT3BlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5tYXJrZG93bk5hdmlnYXRvcldpbmRvd0RpYWxvZ3NPcGVuID4gMDtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZUV2ZW50cygpOiB2b2lkIHtcbiAgICB0aGlzLm1hcmtkb3duTmF2aWdhdG9yV2luZG93RGlhbG9nLmNvbXBvbmVudEluc3RhbmNlLmNsb3NlZC5zdWJzY3JpYmUoKCkgPT5cbiAgICAgIHRoaXMuY2xvc2UoKSxcbiAgICApO1xuXG4gICAgdGhpcy5tYXJrZG93bk5hdmlnYXRvcldpbmRvd0RpYWxvZ1xuICAgICAgLmFmdGVyQ2xvc2VkKClcbiAgICAgIC50b1Byb21pc2UoKVxuICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICB0aGlzLm1hcmtkb3duTmF2aWdhdG9yV2luZG93RGlhbG9nc09wZW4tLTtcbiAgICAgIH0pO1xuICB9XG59XG4iXX0=","import { Directive, HostListener, Input, inject } from '@angular/core';\nimport { TdMarkdownNavigatorWindowService, } from '../markdown-navigator-window-service/markdown-navigator-window.service';\nimport * as i0 from \"@angular/core\";\nexport class TdMarkdownNavigatorWindowDirective {\n _markdownNavigatorWindowService = inject(TdMarkdownNavigatorWindowService);\n config;\n disabled = false;\n click() {\n if (!this.disabled && this.config) {\n this._markdownNavigatorWindowService.open(this.config);\n }\n }\n static ɵfac = function TdMarkdownNavigatorWindowDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TdMarkdownNavigatorWindowDirective)(); };\n static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: TdMarkdownNavigatorWindowDirective, selectors: [[\"\", \"tdMarkdownNavigatorWindow\", \"\"]], hostBindings: function TdMarkdownNavigatorWindowDirective_HostBindings(rf, ctx) { if (rf & 1) {\n i0.ɵɵlistener(\"click\", function TdMarkdownNavigatorWindowDirective_click_HostBindingHandler() { return ctx.click(); });\n } }, inputs: { config: [0, \"tdMarkdownNavigatorWindow\", \"config\"], disabled: \"disabled\" } });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(TdMarkdownNavigatorWindowDirective, [{\n type: Directive,\n args: [{\n selector: '[tdMarkdownNavigatorWindow]',\n }]\n }], null, { config: [{\n type: Input,\n args: ['tdMarkdownNavigatorWindow']\n }], disabled: [{\n type: Input\n }], click: [{\n type: HostListener,\n args: ['click']\n }] }); })();\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2Rvd24tbmF2aWdhdG9yLXdpbmRvdy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL21hcmtkb3duLW5hdmlnYXRvci9zcmMvbWFya2Rvd24tbmF2aWdhdG9yLXdpbmRvdy1kaXJlY3RpdmUvbWFya2Rvd24tbmF2aWdhdG9yLXdpbmRvdy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQ0wsZ0NBQWdDLEdBRWpDLE1BQU0sd0VBQXdFLENBQUM7O0FBS2hGLE1BQU0sT0FBTyxrQ0FBa0M7SUFDckMsK0JBQStCLEdBQUcsTUFBTSxDQUM5QyxnQ0FBZ0MsQ0FDakMsQ0FBQztJQUVrQyxNQUFNLENBQWtDO0lBQ25FLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFFSCxLQUFLO1FBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNsQyxJQUFJLENBQUMsK0JBQStCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6RCxDQUFDO0lBQ0gsQ0FBQzs0SEFaVSxrQ0FBa0M7NkRBQWxDLGtDQUFrQztZQUFsQyx1R0FBQSxXQUFPLElBQTJCOzs7aUZBQWxDLGtDQUFrQztjQUg5QyxTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFFLDZCQUE2QjthQUN4Qzs7a0JBTUUsS0FBSzttQkFBQywyQkFBMkI7O2tCQUNqQyxLQUFLOztrQkFFTCxZQUFZO21CQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgVGRNYXJrZG93bk5hdmlnYXRvcldpbmRvd1NlcnZpY2UsXG4gIElNYXJrZG93bk5hdmlnYXRvcldpbmRvd0NvbmZpZyxcbn0gZnJvbSAnLi4vbWFya2Rvd24tbmF2aWdhdG9yLXdpbmRvdy1zZXJ2aWNlL21hcmtkb3duLW5hdmlnYXRvci13aW5kb3cuc2VydmljZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1t0ZE1hcmtkb3duTmF2aWdhdG9yV2luZG93XScsXG59KVxuZXhwb3J0IGNsYXNzIFRkTWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dEaXJlY3RpdmUge1xuICBwcml2YXRlIF9tYXJrZG93bk5hdmlnYXRvcldpbmRvd1NlcnZpY2UgPSBpbmplY3QoXG4gICAgVGRNYXJrZG93bk5hdmlnYXRvcldpbmRvd1NlcnZpY2UsXG4gICk7XG5cbiAgQElucHV0KCd0ZE1hcmtkb3duTmF2aWdhdG9yV2luZG93JykgY29uZmlnPzogSU1hcmtkb3duTmF2aWdhdG9yV2luZG93Q29uZmlnO1xuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJykgY2xpY2soKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkICYmIHRoaXMuY29uZmlnKSB7XG4gICAgICB0aGlzLl9tYXJrZG93bk5hdmlnYXRvcldpbmRvd1NlcnZpY2Uub3Blbih0aGlzLmNvbmZpZyk7XG4gICAgfVxuICB9XG59XG4iXX0=","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TdMarkdownNavigatorComponent } from './markdown-navigator.component';\nimport { TdMarkdownNavigatorWindowComponent } from './markdown-navigator-window/markdown-navigator-window.component';\nimport { TdMarkdownNavigatorWindowDirective } from './markdown-navigator-window-directive/markdown-navigator-window.directive';\nimport { TdMarkdownNavigatorWindowService } from './markdown-navigator-window-service/markdown-navigator-window.service';\nimport { TdDialogService } from '@covalent/core/dialogs';\nimport { MatIconRegistry } from '@angular/material/icon';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/icon\";\n/**\n * @deprecated This module is deprecated and will be removed in future versions.\n * Please migrate to using standalone components as soon as possible.\n */\nexport class CovalentMarkdownNavigatorModule {\n constructor(iconRegistry) {\n iconRegistry.registerFontClassAlias('covalent-icons', 'covalent-icons mat-ligature-font');\n }\n static ɵfac = function CovalentMarkdownNavigatorModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CovalentMarkdownNavigatorModule)(i0.ɵɵinject(i1.MatIconRegistry)); };\n static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: CovalentMarkdownNavigatorModule });\n static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ providers: [TdMarkdownNavigatorWindowService, TdDialogService], imports: [CommonModule,\n TdMarkdownNavigatorComponent,\n TdMarkdownNavigatorWindowComponent] });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CovalentMarkdownNavigatorModule, [{\n type: NgModule,\n args: [{\n imports: [\n CommonModule,\n TdMarkdownNavigatorComponent,\n TdMarkdownNavigatorWindowComponent,\n TdMarkdownNavigatorWindowDirective,\n ],\n exports: [\n TdMarkdownNavigatorComponent,\n TdMarkdownNavigatorWindowComponent,\n TdMarkdownNavigatorWindowDirective,\n ],\n providers: [TdMarkdownNavigatorWindowService, TdDialogService],\n }]\n }], () => [{ type: i1.MatIconRegistry }], null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(CovalentMarkdownNavigatorModule, { imports: [CommonModule,\n TdMarkdownNavigatorComponent,\n TdMarkdownNavigatorWindowComponent,\n TdMarkdownNavigatorWindowDirective], exports: [TdMarkdownNavigatorComponent,\n TdMarkdownNavigatorWindowComponent,\n TdMarkdownNavigatorWindowDirective] }); })();\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2Rvd24tbmF2aWdhdG9yLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvbWFya2Rvd24tbmF2aWdhdG9yL3NyYy9tYXJrZG93bi1uYXZpZ2F0b3IubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLGlFQUFpRSxDQUFDO0FBQ3JILE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLDJFQUEyRSxDQUFDO0FBQy9ILE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLHVFQUF1RSxDQUFDO0FBQ3pILE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7OztBQUV6RDs7O0dBR0c7QUFnQkgsTUFBTSxPQUFPLCtCQUErQjtJQUMxQyxZQUFZLFlBQTZCO1FBQ3ZDLFlBQVksQ0FBQyxzQkFBc0IsQ0FDakMsZ0JBQWdCLEVBQ2hCLGtDQUFrQyxDQUNuQyxDQUFDO0lBQ0osQ0FBQzt5SEFOVSwrQkFBK0I7NERBQS9CLCtCQUErQjtpRUFGL0IsQ0FBQyxnQ0FBZ0MsRUFBRSxlQUFlLENBQUMsWUFYNUQsWUFBWTtZQUVaLDRCQUE0QjtZQUM1QixrQ0FBa0M7O2lGQVV6QiwrQkFBK0I7Y0FmM0MsUUFBUTtlQUFDO2dCQUNSLE9BQU8sRUFBRTtvQkFDUCxZQUFZO29CQUVaLDRCQUE0QjtvQkFDNUIsa0NBQWtDO29CQUNsQyxrQ0FBa0M7aUJBQ25DO2dCQUNELE9BQU8sRUFBRTtvQkFDUCw0QkFBNEI7b0JBQzVCLGtDQUFrQztvQkFDbEMsa0NBQWtDO2lCQUNuQztnQkFDRCxTQUFTLEVBQUUsQ0FBQyxnQ0FBZ0MsRUFBRSxlQUFlLENBQUM7YUFDL0Q7O3dGQUNZLCtCQUErQixjQWJ4QyxZQUFZO1FBRVosNEJBQTRCO1FBQzVCLGtDQUFrQztRQUNsQyxrQ0FBa0MsYUFHbEMsNEJBQTRCO1FBQzVCLGtDQUFrQztRQUNsQyxrQ0FBa0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFRkTWFya2Rvd25OYXZpZ2F0b3JDb21wb25lbnQgfSBmcm9tICcuL21hcmtkb3duLW5hdmlnYXRvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGRNYXJrZG93bk5hdmlnYXRvcldpbmRvd0NvbXBvbmVudCB9IGZyb20gJy4vbWFya2Rvd24tbmF2aWdhdG9yLXdpbmRvdy9tYXJrZG93bi1uYXZpZ2F0b3Itd2luZG93LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZE1hcmtkb3duTmF2aWdhdG9yV2luZG93RGlyZWN0aXZlIH0gZnJvbSAnLi9tYXJrZG93bi1uYXZpZ2F0b3Itd2luZG93LWRpcmVjdGl2ZS9tYXJrZG93bi1uYXZpZ2F0b3Itd2luZG93LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBUZE1hcmtkb3duTmF2aWdhdG9yV2luZG93U2VydmljZSB9IGZyb20gJy4vbWFya2Rvd24tbmF2aWdhdG9yLXdpbmRvdy1zZXJ2aWNlL21hcmtkb3duLW5hdmlnYXRvci13aW5kb3cuc2VydmljZSc7XG5pbXBvcnQgeyBUZERpYWxvZ1NlcnZpY2UgfSBmcm9tICdAY292YWxlbnQvY29yZS9kaWFsb2dzJztcbmltcG9ydCB7IE1hdEljb25SZWdpc3RyeSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkIFRoaXMgbW9kdWxlIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBmdXR1cmUgdmVyc2lvbnMuXG4gKiBQbGVhc2UgbWlncmF0ZSB0byB1c2luZyBzdGFuZGFsb25lIGNvbXBvbmVudHMgYXMgc29vbiBhcyBwb3NzaWJsZS5cbiAqL1xuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcblxuICAgIFRkTWFya2Rvd25OYXZpZ2F0b3JDb21wb25lbnQsXG4gICAgVGRNYXJrZG93bk5hdmlnYXRvcldpbmRvd0NvbXBvbmVudCxcbiAgICBUZE1hcmtkb3duTmF2aWdhdG9yV2luZG93RGlyZWN0aXZlLFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgVGRNYXJrZG93bk5hdmlnYXRvckNvbXBvbmVudCxcbiAgICBUZE1hcmtkb3duTmF2aWdhdG9yV2luZG93Q29tcG9uZW50LFxuICAgIFRkTWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dEaXJlY3RpdmUsXG4gIF0sXG4gIHByb3ZpZGVyczogW1RkTWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dTZXJ2aWNlLCBUZERpYWxvZ1NlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBDb3ZhbGVudE1hcmtkb3duTmF2aWdhdG9yTW9kdWxlIHtcbiAgY29uc3RydWN0b3IoaWNvblJlZ2lzdHJ5OiBNYXRJY29uUmVnaXN0cnkpIHtcbiAgICBpY29uUmVnaXN0cnkucmVnaXN0ZXJGb250Q2xhc3NBbGlhcyhcbiAgICAgICdjb3ZhbGVudC1pY29ucycsXG4gICAgICAnY292YWxlbnQtaWNvbnMgbWF0LWxpZ2F0dXJlLWZvbnQnLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public_api';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY292YWxlbnQtbWFya2Rvd24tbmF2aWdhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicy9tYXJrZG93bi1uYXZpZ2F0b3Ivc3JjL2NvdmFsZW50LW1hcmtkb3duLW5hdmlnYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpY19hcGknO1xuIl19"],"names":["i4","i1"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@covalent/markdown-navigator",
|
|
3
|
-
"version": "11.
|
|
3
|
+
"version": "11.9.0",
|
|
4
4
|
"description": "Teradata UI Platform Markdown Navigator Module",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"angular",
|
|
@@ -28,9 +28,9 @@
|
|
|
28
28
|
"@angular/core": "20.x.x",
|
|
29
29
|
"@angular/material": "20.x.x",
|
|
30
30
|
"@angular/cdk": "20.x.x",
|
|
31
|
-
"@covalent/core": "11.
|
|
32
|
-
"@covalent/flavored-markdown": "11.
|
|
33
|
-
"@covalent/highlight": "11.
|
|
31
|
+
"@covalent/core": "11.9.0",
|
|
32
|
+
"@covalent/flavored-markdown": "11.9.0",
|
|
33
|
+
"@covalent/highlight": "11.9.0"
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
36
|
"tslib": "^2.8.1"
|