UNPKG

@ng-doc/app

Version:

<!-- PROJECT LOGO --> <br /> <div align="center"> <a href="https://github.com/ng-doc/ng-doc"> <img src="https://ng-doc.com/assets/images/ng-doc.svg?raw=true" alt="Logo" height="150px"> </a>

1 lines 35.6 kB
{"version":3,"file":"ng-doc-app-components-toc.mjs","sources":["../tmp-esm2022/components/toc/toc-element/toc-element.component.js","../tmp-esm2022/components/toc/toc.component.js","../tmp-esm2022/components/toc/ng-doc-app-components-toc.js"],"sourcesContent":["import { ChangeDetectionStrategy, Component, ElementRef, HostBinding, inject, Input, } from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport { NgDocDecodeUriComponentPipe } from '@ng-doc/app/pipes/decode-uri-component';\nimport * as i0 from \"@angular/core\";\nexport class NgDocTocElementComponent {\n constructor() {\n this.path = '';\n this.hash = '';\n this.selected = false;\n this.level = 1;\n this.elementRef = inject(ElementRef);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: NgDocTocElementComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.3\", type: NgDocTocElementComponent, isStandalone: true, selector: \"li[ng-doc-toc-element]\", inputs: { path: \"path\", hash: \"hash\", selected: \"selected\", level: \"level\" }, host: { properties: { \"attr.data-ng-doc-selected\": \"this.selected\", \"attr.data-ng-doc-level\": \"this.level\" } }, ngImport: i0, template: \"<a\\n [routerLink]=\\\"[]\\\"\\n [fragment]=\\\"hash | decodeUriComponent\\\"\\n [style.padding-left]=\\\"'calc(var(--ng-doc-toc-indent) * ' + level + ')'\\\">\\n <ng-content></ng-content>\\n</a>\\n\", styles: [\":host{display:flex;margin:0;color:var(--ng-doc-text)}:host[data-ng-doc-level=\\\"1\\\"] a{padding-left:var(--ng-doc-base-gutter)}:host[data-ng-doc-selected=true]{color:var(--ng-doc-primary)}:host:hover{cursor:pointer;color:var(--ng-doc-primary)}:host a{font-family:var(--ng-doc-font-family);font-variant:no-contextual;color:var(--ng-doc-text);line-height:var(--ng-doc-line-height);font-size:var(--ng-doc-font-size);font-weight:var(--ng-doc-font-weight);padding:calc(var(--ng-doc-base-gutter) / 2);color:inherit;width:100%;text-decoration:none;word-break:break-word;--ng-doc-font-size: 14px}\\n\"], dependencies: [{ kind: \"directive\", type: RouterLink, selector: \"[routerLink]\", inputs: [\"target\", \"queryParams\", \"fragment\", \"queryParamsHandling\", \"state\", \"info\", \"relativeTo\", \"preserveFragment\", \"skipLocationChange\", \"replaceUrl\", \"routerLink\"] }, { kind: \"pipe\", type: NgDocDecodeUriComponentPipe, name: \"decodeUriComponent\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: NgDocTocElementComponent, decorators: [{\n type: Component,\n args: [{ selector: 'li[ng-doc-toc-element]', changeDetection: ChangeDetectionStrategy.OnPush, imports: [RouterLink, NgDocDecodeUriComponentPipe], template: \"<a\\n [routerLink]=\\\"[]\\\"\\n [fragment]=\\\"hash | decodeUriComponent\\\"\\n [style.padding-left]=\\\"'calc(var(--ng-doc-toc-indent) * ' + level + ')'\\\">\\n <ng-content></ng-content>\\n</a>\\n\", styles: [\":host{display:flex;margin:0;color:var(--ng-doc-text)}:host[data-ng-doc-level=\\\"1\\\"] a{padding-left:var(--ng-doc-base-gutter)}:host[data-ng-doc-selected=true]{color:var(--ng-doc-primary)}:host:hover{cursor:pointer;color:var(--ng-doc-primary)}:host a{font-family:var(--ng-doc-font-family);font-variant:no-contextual;color:var(--ng-doc-text);line-height:var(--ng-doc-line-height);font-size:var(--ng-doc-font-size);font-weight:var(--ng-doc-font-weight);padding:calc(var(--ng-doc-base-gutter) / 2);color:inherit;width:100%;text-decoration:none;word-break:break-word;--ng-doc-font-size: 14px}\\n\"] }]\n }], propDecorators: { path: [{\n type: Input\n }], hash: [{\n type: Input\n }], selected: [{\n type: Input\n }, {\n type: HostBinding,\n args: ['attr.data-ng-doc-selected']\n }], level: [{\n type: Input\n }, {\n type: HostBinding,\n args: ['attr.data-ng-doc-level']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9jLWVsZW1lbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hcHAvY29tcG9uZW50cy90b2MvdG9jLWVsZW1lbnQvdG9jLWVsZW1lbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hcHAvY29tcG9uZW50cy90b2MvdG9jLWVsZW1lbnQvdG9jLWVsZW1lbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLFdBQVcsRUFDWCxNQUFNLEVBQ04sS0FBSyxHQUNOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQzs7QUFTckYsTUFBTSxPQUFPLHdCQUF3QjtJQVByQztRQVNFLFNBQUksR0FBVyxFQUFFLENBQUM7UUFHbEIsU0FBSSxHQUFXLEVBQUUsQ0FBQztRQUlsQixhQUFRLEdBQVksS0FBSyxDQUFDO1FBSTFCLFVBQUssR0FBVyxDQUFDLENBQUM7UUFFVCxlQUFVLEdBQTRCLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztLQUNuRTs4R0FoQlksd0JBQXdCO2tHQUF4Qix3QkFBd0IsZ1JDbEJyQywwTEFNQSxzb0JEVVksVUFBVSwrTkFBRSwyQkFBMkI7OzJGQUV0Qyx3QkFBd0I7a0JBUHBDLFNBQVM7K0JBQ0Usd0JBQXdCLG1CQUdqQix1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDLENBQUMsVUFBVSxFQUFFLDJCQUEyQixDQUFDOzhCQUlsRCxJQUFJO3NCQURILEtBQUs7Z0JBSU4sSUFBSTtzQkFESCxLQUFLO2dCQUtOLFFBQVE7c0JBRlAsS0FBSzs7c0JBQ0wsV0FBVzt1QkFBQywyQkFBMkI7Z0JBS3hDLEtBQUs7c0JBRkosS0FBSzs7c0JBQ0wsV0FBVzt1QkFBQyx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBIb3N0QmluZGluZyxcbiAgaW5qZWN0LFxuICBJbnB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXJMaW5rIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IE5nRG9jRGVjb2RlVXJpQ29tcG9uZW50UGlwZSB9IGZyb20gJ0BuZy1kb2MvYXBwL3BpcGVzL2RlY29kZS11cmktY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGlbbmctZG9jLXRvYy1lbGVtZW50XScsXG4gIHRlbXBsYXRlVXJsOiAnLi90b2MtZWxlbWVudC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RvYy1lbGVtZW50LmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbUm91dGVyTGluaywgTmdEb2NEZWNvZGVVcmlDb21wb25lbnRQaXBlXSxcbn0pXG5leHBvcnQgY2xhc3MgTmdEb2NUb2NFbGVtZW50Q29tcG9uZW50IHtcbiAgQElucHV0KClcbiAgcGF0aDogc3RyaW5nID0gJyc7XG5cbiAgQElucHV0KClcbiAgaGFzaDogc3RyaW5nID0gJyc7XG5cbiAgQElucHV0KClcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtbmctZG9jLXNlbGVjdGVkJylcbiAgc2VsZWN0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS1uZy1kb2MtbGV2ZWwnKVxuICBsZXZlbDogbnVtYmVyID0gMTtcblxuICByZWFkb25seSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PiA9IGluamVjdChFbGVtZW50UmVmKTtcbn1cbiIsIjxhXG4gIFtyb3V0ZXJMaW5rXT1cIltdXCJcbiAgW2ZyYWdtZW50XT1cImhhc2ggfCBkZWNvZGVVcmlDb21wb25lbnRcIlxuICBbc3R5bGUucGFkZGluZy1sZWZ0XT1cIidjYWxjKHZhcigtLW5nLWRvYy10b2MtaW5kZW50KSAqICcgKyBsZXZlbCArICcpJ1wiPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2E+XG4iXX0=","import { afterNextRender, ChangeDetectionStrategy, ChangeDetectorRef, Component, DestroyRef, DOCUMENT, ElementRef, inject, Input, NgZone, QueryList, Renderer2, signal, ViewChild, ViewChildren, } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Router, Scroll } from '@angular/router';\nimport { isPresent } from '@ng-doc/core/helpers/is-present';\nimport { ngDocZoneOptimize } from '@ng-doc/ui-kit';\nimport { fromEvent, merge } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, filter, map, startWith } from 'rxjs/operators';\nimport { NgDocTocElementComponent } from './toc-element/toc-element.component';\nimport * as i0 from \"@angular/core\";\nexport class NgDocTocComponent {\n constructor() {\n this.tableOfContent = [];\n this.elements = new QueryList();\n this.activeItem = signal(undefined);\n this.document = inject(DOCUMENT);\n this.ngZone = inject(NgZone);\n this.changeDetectorRef = inject(ChangeDetectorRef);\n this.renderer = inject(Renderer2);\n this.router = inject(Router);\n this.destroyRef = inject(DestroyRef);\n afterNextRender({\n write: () => {\n const scrollSelection = fromEvent(this.document, 'scroll').pipe(filter(() => !!this.tableOfContent.length), map((event) => event.target.scrollingElement), startWith(this.document.scrollingElement), map((target) => {\n const percentage = (target.scrollTop * 100) / (target.scrollHeight - target.offsetHeight);\n const selectionLine = target.scrollTop + (target.offsetHeight * percentage) / 100;\n if (!this.tableOfContent.length) {\n return null;\n }\n return this.tableOfContent.reduce((pTarget, cTarget) => {\n const pTop = pTarget.element.getBoundingClientRect().top + target.scrollTop;\n const cTop = cTarget.element.getBoundingClientRect().top + target.scrollTop;\n return Math.abs(cTop - selectionLine) < Math.abs(pTop - selectionLine)\n ? cTarget\n : pTarget;\n });\n }), filter(isPresent));\n const routerSelection = this.router.events.pipe(map((event) => {\n if (event instanceof Scroll) {\n const item = this.tableOfContent.find((item) => item.path.includes(event.routerEvent.url));\n if (item) {\n return item;\n }\n }\n return null;\n }), filter(isPresent), debounceTime(20));\n const elementsChanges = this.elements.changes.pipe(map(() => this.activeItem()), filter(isPresent));\n merge(merge(scrollSelection, routerSelection).pipe(distinctUntilChanged()), elementsChanges)\n .pipe(debounceTime(0), ngDocZoneOptimize(this.ngZone), takeUntilDestroyed(this.destroyRef))\n .subscribe(this.select.bind(this));\n },\n });\n }\n ngOnInit() {\n this.activeItem.set(this.tableOfContent[0]);\n }\n /**\n * Selects the item in the table of content.\n * @param item - Item to select.\n */\n select(item) {\n const index = this.tableOfContent.indexOf(item);\n if (this.selection) {\n const element = this.elements.toArray()[index]?.elementRef.nativeElement;\n if (element) {\n this.renderer.setStyle(this.selection.nativeElement, 'top', `${element.offsetTop}px`);\n this.renderer.setStyle(this.selection.nativeElement, 'height', `${element.offsetHeight}px`);\n element.scrollIntoView({ block: 'nearest' });\n }\n }\n this.activeItem.set(item);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: NgDocTocComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.3\", type: NgDocTocComponent, isStandalone: true, selector: \"ng-doc-toc\", inputs: { tableOfContent: \"tableOfContent\" }, viewQueries: [{ propertyName: \"selection\", first: true, predicate: [\"selection\"], descendants: true, read: ElementRef }, { propertyName: \"elements\", predicate: NgDocTocElementComponent, descendants: true }], ngImport: i0, template: \"<div class=\\\"ng-doc-toc-wrapper\\\">\\n <div class=\\\"ng-doc-toc-container\\\">\\n <div class=\\\"ng-doc-toc-selection\\\" #selection></div>\\n <ul class=\\\"ng-doc-toc\\\">\\n @for (item of tableOfContent; track item) {\\n <li\\n ng-doc-toc-element\\n [path]=\\\"item.path\\\"\\n [hash]=\\\"item.hash\\\"\\n [level]=\\\"item.level\\\"\\n [selected]=\\\"item === activeItem()\\\">\\n {{ item.title }}\\n </li>\\n }\\n </ul>\\n </div>\\n</div>\\n\", styles: [\":host .ng-doc-toc-wrapper{position:relative;width:var(--ng-doc-toc-width)}:host .ng-doc-toc-wrapper .ng-doc-toc-container{position:fixed;top:calc(var(--ng-doc-navbar-height) + var(--ng-doc-toc-top-padding));overflow-y:auto;height:calc(100% - var(--ng-doc-navbar-height) - var(--ng-doc-base-gutter) * 5);width:var(--ng-doc-toc-width)}:host .ng-doc-toc-wrapper .ng-doc-toc-selection{position:absolute;transform:translate(-50%);width:3px;border-radius:calc(var(--ng-doc-base-gutter) / 2);background-color:var(--ng-doc-primary);left:calc(var(--ng-doc-toc-margin) + 1px);transition:var(--ng-doc-transition)}:host .ng-doc-toc-wrapper .ng-doc-toc{list-style:none;margin:0 0 0 var(--ng-doc-toc-margin);border-left:1px solid var(--ng-doc-base-3);padding:0 0 0 var(--ng-doc-base-gutter)}@media (max-width: 1200px){:host .ng-doc-toc-wrapper{display:none}}\\n\"], dependencies: [{ kind: \"component\", type: NgDocTocElementComponent, selector: \"li[ng-doc-toc-element]\", inputs: [\"path\", \"hash\", \"selected\", \"level\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: NgDocTocComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ng-doc-toc', changeDetection: ChangeDetectionStrategy.OnPush, imports: [NgDocTocElementComponent], template: \"<div class=\\\"ng-doc-toc-wrapper\\\">\\n <div class=\\\"ng-doc-toc-container\\\">\\n <div class=\\\"ng-doc-toc-selection\\\" #selection></div>\\n <ul class=\\\"ng-doc-toc\\\">\\n @for (item of tableOfContent; track item) {\\n <li\\n ng-doc-toc-element\\n [path]=\\\"item.path\\\"\\n [hash]=\\\"item.hash\\\"\\n [level]=\\\"item.level\\\"\\n [selected]=\\\"item === activeItem()\\\">\\n {{ item.title }}\\n </li>\\n }\\n </ul>\\n </div>\\n</div>\\n\", styles: [\":host .ng-doc-toc-wrapper{position:relative;width:var(--ng-doc-toc-width)}:host .ng-doc-toc-wrapper .ng-doc-toc-container{position:fixed;top:calc(var(--ng-doc-navbar-height) + var(--ng-doc-toc-top-padding));overflow-y:auto;height:calc(100% - var(--ng-doc-navbar-height) - var(--ng-doc-base-gutter) * 5);width:var(--ng-doc-toc-width)}:host .ng-doc-toc-wrapper .ng-doc-toc-selection{position:absolute;transform:translate(-50%);width:3px;border-radius:calc(var(--ng-doc-base-gutter) / 2);background-color:var(--ng-doc-primary);left:calc(var(--ng-doc-toc-margin) + 1px);transition:var(--ng-doc-transition)}:host .ng-doc-toc-wrapper .ng-doc-toc{list-style:none;margin:0 0 0 var(--ng-doc-toc-margin);border-left:1px solid var(--ng-doc-base-3);padding:0 0 0 var(--ng-doc-base-gutter)}@media (max-width: 1200px){:host .ng-doc-toc-wrapper{display:none}}\\n\"] }]\n }], ctorParameters: () => [], propDecorators: { tableOfContent: [{\n type: Input\n }], selection: [{\n type: ViewChild,\n args: ['selection', { read: ElementRef }]\n }], elements: [{\n type: ViewChildren,\n args: [NgDocTocElementComponent]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9jLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBwL2NvbXBvbmVudHMvdG9jL3RvYy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwcC9jb21wb25lbnRzL3RvYy90b2MuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGVBQWUsRUFDZix1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsUUFBUSxFQUNSLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFFTixTQUFTLEVBQ1QsU0FBUyxFQUNULE1BQU0sRUFDTixTQUFTLEVBQ1QsWUFBWSxHQUViLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBbUIsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWxFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM1RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNwRCxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFNUYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0scUNBQXFDLENBQUM7O0FBUy9FLE1BQU0sT0FBTyxpQkFBaUI7SUFtQjVCO1FBakJBLG1CQUFjLEdBQW1CLEVBQUUsQ0FBQztRQU1wQyxhQUFRLEdBQXdDLElBQUksU0FBUyxFQUE0QixDQUFDO1FBRTFGLGVBQVUsR0FBNkMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRXRELGFBQVEsR0FBYSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdEMsV0FBTSxHQUFXLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNoQyxzQkFBaUIsR0FBc0IsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDakUsYUFBUSxHQUFjLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN4QyxXQUFNLEdBQVcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2hDLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFHakQsZUFBZSxDQUFDO1lBQ2QsS0FBSyxFQUFFLEdBQUcsRUFBRTtnQkFDVixNQUFNLGVBQWUsR0FBNkIsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUN2RixNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEVBQzFDLEdBQUcsQ0FBQyxDQUFDLEtBQVksRUFBRSxFQUFFLENBQUUsS0FBSyxDQUFDLE1BQW1CLENBQUMsZ0JBQStCLENBQUMsRUFDakYsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsZ0JBQStCLENBQUMsRUFDeEQsR0FBRyxDQUFDLENBQUMsTUFBbUIsRUFBRSxFQUFFO29CQUMxQixNQUFNLFVBQVUsR0FDZCxDQUFDLE1BQU0sQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztvQkFDekUsTUFBTSxhQUFhLEdBQ2pCLE1BQU0sQ0FBQyxTQUFTLEdBQUcsQ0FBQyxNQUFNLENBQUMsWUFBWSxHQUFHLFVBQVUsQ0FBQyxHQUFHLEdBQUcsQ0FBQztvQkFDOUQsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLENBQUM7d0JBQ2hDLE9BQU8sSUFBSSxDQUFDO29CQUNkLENBQUM7b0JBQ0QsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQXFCLEVBQUUsT0FBcUIsRUFBRSxFQUFFO3dCQUNqRixNQUFNLElBQUksR0FBVyxPQUFPLENBQUMsT0FBTyxDQUFDLHFCQUFxQixFQUFFLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUM7d0JBQ3BGLE1BQU0sSUFBSSxHQUFXLE9BQU8sQ0FBQyxPQUFPLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQzt3QkFDcEYsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxhQUFhLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxhQUFhLENBQUM7NEJBQ3BFLENBQUMsQ0FBQyxPQUFPOzRCQUNULENBQUMsQ0FBQyxPQUFPLENBQUM7b0JBQ2QsQ0FBQyxDQUFDLENBQUM7Z0JBQ0wsQ0FBQyxDQUFDLEVBQ0YsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUNsQixDQUFDO2dCQUNGLE1BQU0sZUFBZSxHQUE2QixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ3ZFLEdBQUcsQ0FBQyxDQUFDLEtBQWEsRUFBRSxFQUFFO29CQUNwQixJQUFJLEtBQUssWUFBWSxNQUFNLEVBQUUsQ0FBQzt3QkFDNUIsTUFBTSxJQUFJLEdBQTZCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUM3RCxDQUFDLElBQWtCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQ2xFLENBQUM7d0JBQ0YsSUFBSSxJQUFJLEVBQUUsQ0FBQzs0QkFDVCxPQUFPLElBQUksQ0FBQzt3QkFDZCxDQUFDO29CQUNILENBQUM7b0JBQ0QsT0FBTyxJQUFJLENBQUM7Z0JBQ2QsQ0FBQyxDQUFDLEVBQ0YsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUNqQixZQUFZLENBQUMsRUFBRSxDQUFDLENBQ2pCLENBQUM7Z0JBQ0YsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUNoRCxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLEVBQzVCLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FDbEIsQ0FBQztnQkFDRixLQUFLLENBQUMsS0FBSyxDQUFDLGVBQWUsRUFBRSxlQUFlLENBQUMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxFQUFFLGVBQWUsQ0FBQztxQkFDekYsSUFBSSxDQUNILFlBQVksQ0FBQyxDQUFDLENBQUMsRUFDZixpQkFBaUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQzlCLGtCQUFrQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FDcEM7cUJBQ0EsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDdkMsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRDs7O09BR0c7SUFDTyxNQUFNLENBQUMsSUFBa0I7UUFDakMsTUFBTSxLQUFLLEdBQVcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFeEQsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbkIsTUFBTSxPQUFPLEdBQ1gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxVQUFVLENBQUMsYUFBYSxDQUFDO1lBRTNELElBQUksT0FBTyxFQUFFLENBQUM7Z0JBQ1osSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUUsS0FBSyxFQUFFLEdBQUcsT0FBTyxDQUFDLFNBQVMsSUFBSSxDQUFDLENBQUM7Z0JBQ3RGLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUFFLFFBQVEsRUFBRSxHQUFHLE9BQU8sQ0FBQyxZQUFZLElBQUksQ0FBQyxDQUFDO2dCQUU1RixPQUFPLENBQUMsY0FBYyxDQUFDLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7WUFDL0MsQ0FBQztRQUNILENBQUM7UUFFRCxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QixDQUFDOzhHQWxHVSxpQkFBaUI7a0dBQWpCLGlCQUFpQix1TUFJSSxVQUFVLDJDQUc1Qix3QkFBd0IsZ0RDM0N4QywwZUFpQkEsdzRCRGlCWSx3QkFBd0I7OzJGQUV2QixpQkFBaUI7a0JBUDdCLFNBQVM7K0JBQ0UsWUFBWSxtQkFHTCx1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDLENBQUMsd0JBQXdCLENBQUM7d0RBSW5DLGNBQWM7c0JBRGIsS0FBSztnQkFJTixTQUFTO3NCQURSLFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFJNUMsUUFBUTtzQkFEUCxZQUFZO3VCQUFDLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGFmdGVyTmV4dFJlbmRlcixcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIERlc3Ryb3lSZWYsXG4gIERPQ1VNRU5ULFxuICBFbGVtZW50UmVmLFxuICBpbmplY3QsXG4gIElucHV0LFxuICBOZ1pvbmUsXG4gIE9uSW5pdCxcbiAgUXVlcnlMaXN0LFxuICBSZW5kZXJlcjIsXG4gIHNpZ25hbCxcbiAgVmlld0NoaWxkLFxuICBWaWV3Q2hpbGRyZW4sXG4gIFdyaXRhYmxlU2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IEV2ZW50IGFzIFJFdmVudCwgUm91dGVyLCBTY3JvbGwgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgTmdEb2NQYWdlVG9jLCBOZ0RvY1RvY0l0ZW0gfSBmcm9tICdAbmctZG9jL2FwcC9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGlzUHJlc2VudCB9IGZyb20gJ0BuZy1kb2MvY29yZS9oZWxwZXJzL2lzLXByZXNlbnQnO1xuaW1wb3J0IHsgbmdEb2Nab25lT3B0aW1pemUgfSBmcm9tICdAbmctZG9jL3VpLWtpdCc7XG5pbXBvcnQgeyBmcm9tRXZlbnQsIG1lcmdlLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIG1hcCwgc3RhcnRXaXRoIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBOZ0RvY1RvY0VsZW1lbnRDb21wb25lbnQgfSBmcm9tICcuL3RvYy1lbGVtZW50L3RvYy1lbGVtZW50LmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25nLWRvYy10b2MnLFxuICB0ZW1wbGF0ZVVybDogJy4vdG9jLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdG9jLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbTmdEb2NUb2NFbGVtZW50Q29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgTmdEb2NUb2NDb21wb25lbnQgaW1wbGVtZW50cyBOZ0RvY1BhZ2VUb2MsIE9uSW5pdCB7XG4gIEBJbnB1dCgpXG4gIHRhYmxlT2ZDb250ZW50OiBOZ0RvY1RvY0l0ZW1bXSA9IFtdO1xuXG4gIEBWaWV3Q2hpbGQoJ3NlbGVjdGlvbicsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICBzZWxlY3Rpb24/OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICBAVmlld0NoaWxkcmVuKE5nRG9jVG9jRWxlbWVudENvbXBvbmVudClcbiAgZWxlbWVudHM6IFF1ZXJ5TGlzdDxOZ0RvY1RvY0VsZW1lbnRDb21wb25lbnQ+ID0gbmV3IFF1ZXJ5TGlzdDxOZ0RvY1RvY0VsZW1lbnRDb21wb25lbnQ+KCk7XG5cbiAgYWN0aXZlSXRlbTogV3JpdGFibGVTaWduYWw8TmdEb2NUb2NJdGVtIHwgdW5kZWZpbmVkPiA9IHNpZ25hbCh1bmRlZmluZWQpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBkb2N1bWVudDogRG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbmdab25lOiBOZ1pvbmUgPSBpbmplY3QoTmdab25lKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZiA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gIHByb3RlY3RlZCByZWFkb25seSByZW5kZXJlcjogUmVuZGVyZXIyID0gaW5qZWN0KFJlbmRlcmVyMik7XG4gIHByb3RlY3RlZCByZWFkb25seSByb3V0ZXI6IFJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBhZnRlck5leHRSZW5kZXIoe1xuICAgICAgd3JpdGU6ICgpID0+IHtcbiAgICAgICAgY29uc3Qgc2Nyb2xsU2VsZWN0aW9uOiBPYnNlcnZhYmxlPE5nRG9jVG9jSXRlbT4gPSBmcm9tRXZlbnQodGhpcy5kb2N1bWVudCwgJ3Njcm9sbCcpLnBpcGUoXG4gICAgICAgICAgZmlsdGVyKCgpID0+ICEhdGhpcy50YWJsZU9mQ29udGVudC5sZW5ndGgpLFxuICAgICAgICAgIG1hcCgoZXZlbnQ6IEV2ZW50KSA9PiAoZXZlbnQudGFyZ2V0IGFzIERvY3VtZW50KS5zY3JvbGxpbmdFbGVtZW50IGFzIEhUTUxFbGVtZW50KSxcbiAgICAgICAgICBzdGFydFdpdGgodGhpcy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50IGFzIEhUTUxFbGVtZW50KSxcbiAgICAgICAgICBtYXAoKHRhcmdldDogSFRNTEVsZW1lbnQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHBlcmNlbnRhZ2U6IG51bWJlciA9XG4gICAgICAgICAgICAgICh0YXJnZXQuc2Nyb2xsVG9wICogMTAwKSAvICh0YXJnZXQuc2Nyb2xsSGVpZ2h0IC0gdGFyZ2V0Lm9mZnNldEhlaWdodCk7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3Rpb25MaW5lOiBudW1iZXIgPVxuICAgICAgICAgICAgICB0YXJnZXQuc2Nyb2xsVG9wICsgKHRhcmdldC5vZmZzZXRIZWlnaHQgKiBwZXJjZW50YWdlKSAvIDEwMDtcbiAgICAgICAgICAgIGlmICghdGhpcy50YWJsZU9mQ29udGVudC5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdGhpcy50YWJsZU9mQ29udGVudC5yZWR1Y2UoKHBUYXJnZXQ6IE5nRG9jVG9jSXRlbSwgY1RhcmdldDogTmdEb2NUb2NJdGVtKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IHBUb3A6IG51bWJlciA9IHBUYXJnZXQuZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AgKyB0YXJnZXQuc2Nyb2xsVG9wO1xuICAgICAgICAgICAgICBjb25zdCBjVG9wOiBudW1iZXIgPSBjVGFyZ2V0LmVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wICsgdGFyZ2V0LnNjcm9sbFRvcDtcbiAgICAgICAgICAgICAgcmV0dXJuIE1hdGguYWJzKGNUb3AgLSBzZWxlY3Rpb25MaW5lKSA8IE1hdGguYWJzKHBUb3AgLSBzZWxlY3Rpb25MaW5lKVxuICAgICAgICAgICAgICAgID8gY1RhcmdldFxuICAgICAgICAgICAgICAgIDogcFRhcmdldDtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIGZpbHRlcihpc1ByZXNlbnQpLFxuICAgICAgICApO1xuICAgICAgICBjb25zdCByb3V0ZXJTZWxlY3Rpb246IE9ic2VydmFibGU8TmdEb2NUb2NJdGVtPiA9IHRoaXMucm91dGVyLmV2ZW50cy5waXBlKFxuICAgICAgICAgIG1hcCgoZXZlbnQ6IFJFdmVudCkgPT4ge1xuICAgICAgICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgU2Nyb2xsKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGl0ZW06IE5nRG9jVG9jSXRlbSB8IHVuZGVmaW5lZCA9IHRoaXMudGFibGVPZkNvbnRlbnQuZmluZChcbiAgICAgICAgICAgICAgICAoaXRlbTogTmdEb2NUb2NJdGVtKSA9PiBpdGVtLnBhdGguaW5jbHVkZXMoZXZlbnQucm91dGVyRXZlbnQudXJsKSxcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgaWYgKGl0ZW0pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaXRlbTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgfSksXG4gICAgICAgICAgZmlsdGVyKGlzUHJlc2VudCksXG4gICAgICAgICAgZGVib3VuY2VUaW1lKDIwKSxcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgZWxlbWVudHNDaGFuZ2VzID0gdGhpcy5lbGVtZW50cy5jaGFuZ2VzLnBpcGUoXG4gICAgICAgICAgbWFwKCgpID0+IHRoaXMuYWN0aXZlSXRlbSgpKSxcbiAgICAgICAgICBmaWx0ZXIoaXNQcmVzZW50KSxcbiAgICAgICAgKTtcbiAgICAgICAgbWVyZ2UobWVyZ2Uoc2Nyb2xsU2VsZWN0aW9uLCByb3V0ZXJTZWxlY3Rpb24pLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSksIGVsZW1lbnRzQ2hhbmdlcylcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIGRlYm91bmNlVGltZSgwKSxcbiAgICAgICAgICAgIG5nRG9jWm9uZU9wdGltaXplKHRoaXMubmdab25lKSxcbiAgICAgICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpLFxuICAgICAgICAgIClcbiAgICAgICAgICAuc3Vic2NyaWJlKHRoaXMuc2VsZWN0LmJpbmQodGhpcykpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuYWN0aXZlSXRlbS5zZXQodGhpcy50YWJsZU9mQ29udGVudFswXSk7XG4gIH1cblxuICAvKipcbiAgICogU2VsZWN0cyB0aGUgaXRlbSBpbiB0aGUgdGFibGUgb2YgY29udGVudC5cbiAgICogQHBhcmFtIGl0ZW0gLSBJdGVtIHRvIHNlbGVjdC5cbiAgICovXG4gIHByb3RlY3RlZCBzZWxlY3QoaXRlbTogTmdEb2NUb2NJdGVtKTogdm9pZCB7XG4gICAgY29uc3QgaW5kZXg6IG51bWJlciA9IHRoaXMudGFibGVPZkNvbnRlbnQuaW5kZXhPZihpdGVtKTtcblxuICAgIGlmICh0aGlzLnNlbGVjdGlvbikge1xuICAgICAgY29uc3QgZWxlbWVudDogSFRNTEVsZW1lbnQgfCB1bmRlZmluZWQgPVxuICAgICAgICB0aGlzLmVsZW1lbnRzLnRvQXJyYXkoKVtpbmRleF0/LmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcblxuICAgICAgaWYgKGVsZW1lbnQpIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnNlbGVjdGlvbi5uYXRpdmVFbGVtZW50LCAndG9wJywgYCR7ZWxlbWVudC5vZmZzZXRUb3B9cHhgKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnNlbGVjdGlvbi5uYXRpdmVFbGVtZW50LCAnaGVpZ2h0JywgYCR7ZWxlbWVudC5vZmZzZXRIZWlnaHR9cHhgKTtcblxuICAgICAgICBlbGVtZW50LnNjcm9sbEludG9WaWV3KHsgYmxvY2s6ICduZWFyZXN0JyB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmFjdGl2ZUl0ZW0uc2V0KGl0ZW0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibmctZG9jLXRvYy13cmFwcGVyXCI+XG4gIDxkaXYgY2xhc3M9XCJuZy1kb2MtdG9jLWNvbnRhaW5lclwiPlxuICAgIDxkaXYgY2xhc3M9XCJuZy1kb2MtdG9jLXNlbGVjdGlvblwiICNzZWxlY3Rpb24+PC9kaXY+XG4gICAgPHVsIGNsYXNzPVwibmctZG9jLXRvY1wiPlxuICAgICAgQGZvciAoaXRlbSBvZiB0YWJsZU9mQ29udGVudDsgdHJhY2sgaXRlbSkge1xuICAgICAgICA8bGlcbiAgICAgICAgICBuZy1kb2MtdG9jLWVsZW1lbnRcbiAgICAgICAgICBbcGF0aF09XCJpdGVtLnBhdGhcIlxuICAgICAgICAgIFtoYXNoXT1cIml0ZW0uaGFzaFwiXG4gICAgICAgICAgW2xldmVsXT1cIml0ZW0ubGV2ZWxcIlxuICAgICAgICAgIFtzZWxlY3RlZF09XCJpdGVtID09PSBhY3RpdmVJdGVtKClcIj5cbiAgICAgICAgICB7eyBpdGVtLnRpdGxlIH19XG4gICAgICAgIDwvbGk+XG4gICAgICB9XG4gICAgPC91bD5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctZG9jLWFwcC1jb21wb25lbnRzLXRvYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBwL2NvbXBvbmVudHMvdG9jL25nLWRvYy1hcHAtY29tcG9uZW50cy10b2MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0="],"names":[],"mappings":";;;;;;;;;;AAIO,MAAM,wBAAwB,CAAC;AACtC,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,IAAI,GAAG,EAAE;AACtB,QAAQ,IAAI,CAAC,IAAI,GAAG,EAAE;AACtB,QAAQ,IAAI,CAAC,QAAQ,GAAG,KAAK;AAC7B,QAAQ,IAAI,CAAC,KAAK,GAAG,CAAC;AACtB,QAAQ,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAC5C;AACA,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAC1L,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,wBAAwB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,wBAAwB,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,EAAE,2BAA2B,EAAE,eAAe,EAAE,wBAAwB,EAAE,YAAY,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,0LAA0L,EAAE,MAAM,EAAE,CAAC,8kBAA8kB,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,YAAY,EAAE,YAAY,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,2BAA2B,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC,CAAC;AACriD;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,UAAU,EAAE,CAAC;AAClI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,wBAAwB,EAAE,eAAe,EAAE,uBAAuB,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,UAAU,EAAE,2BAA2B,CAAC,EAAE,QAAQ,EAAE,0LAA0L,EAAE,MAAM,EAAE,CAAC,8kBAA8kB,CAAC,EAAE;AAC97B,SAAS,CAAC,EAAE,cAAc,EAAE,EAAE,IAAI,EAAE,CAAC;AACrC,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,IAAI,EAAE,CAAC;AACvB,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC;AAC3B,gBAAgB,IAAI,EAAE;AACtB,aAAa,EAAE;AACf,gBAAgB,IAAI,EAAE,WAAW;AACjC,gBAAgB,IAAI,EAAE,CAAC,2BAA2B;AAClD,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC;AACxB,gBAAgB,IAAI,EAAE;AACtB,aAAa,EAAE;AACf,gBAAgB,IAAI,EAAE,WAAW;AACjC,gBAAgB,IAAI,EAAE,CAAC,wBAAwB;AAC/C,aAAa,CAAC,EAAE,EAAE,CAAC;;ACvBZ,MAAM,iBAAiB,CAAC;AAC/B,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,cAAc,GAAG,EAAE;AAChC,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,SAAS,EAAE;AACvC,QAAQ,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC;AAC3C,QAAQ,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AACxC,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AACpC,QAAQ,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC1D,QAAQ,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC;AACzC,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AACpC,QAAQ,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAC5C,QAAQ,eAAe,CAAC;AACxB,YAAY,KAAK,EAAE,MAAM;AACzB,gBAAgB,MAAM,eAAe,GAAG,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,GAAG,CAAC,CAAC,MAAM,KAAK;AACtO,oBAAoB,MAAM,UAAU,GAAG,CAAC,MAAM,CAAC,SAAS,GAAG,GAAG,KAAK,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;AAC7G,oBAAoB,MAAM,aAAa,GAAG,MAAM,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,YAAY,GAAG,UAAU,IAAI,GAAG;AACrG,oBAAoB,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE;AACrD,wBAAwB,OAAO,IAAI;AACnC;AACA,oBAAoB,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,OAAO,KAAK;AAC5E,wBAAwB,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,GAAG,GAAG,MAAM,CAAC,SAAS;AACnG,wBAAwB,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,GAAG,GAAG,MAAM,CAAC,SAAS;AACnG,wBAAwB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,aAAa,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,aAAa;AAC7F,8BAA8B;AAC9B,8BAA8B,OAAO;AACrC,qBAAqB,CAAC;AACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;AACtC,gBAAgB,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK;AAC/E,oBAAoB,IAAI,KAAK,YAAY,MAAM,EAAE;AACjD,wBAAwB,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;AAClH,wBAAwB,IAAI,IAAI,EAAE;AAClC,4BAA4B,OAAO,IAAI;AACvC;AACA;AACA,oBAAoB,OAAO,IAAI;AAC/B,iBAAiB,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC;AACxD,gBAAgB,MAAM,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;AACnH,gBAAgB,KAAK,CAAC,KAAK,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,EAAE,eAAe;AAC3G,qBAAqB,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;AAC9G,qBAAqB,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtD,aAAa;AACb,SAAS,CAAC;AACV;AACA,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;AACnD;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,IAAI,EAAE;AACjB,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC;AACvD,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;AAC5B,YAAY,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,aAAa;AACpF,YAAY,IAAI,OAAO,EAAE;AACzB,gBAAgB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;AACrG,gBAAgB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;AAC3G,gBAAgB,OAAO,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AAC5D;AACA;AACA,QAAQ,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;AACjC;AACA,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AACnL,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,iBAAiB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,gBAAgB,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,WAAW,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,wBAAwB,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,0eAA0e,EAAE,MAAM,EAAE,CAAC,g1BAAg1B,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,wBAAwB,EAAE,QAAQ,EAAE,wBAAwB,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC,CAAC;AAC/8D;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,UAAU,EAAE,CAAC;AAC3H,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,eAAe,EAAE,uBAAuB,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,wBAAwB,CAAC,EAAE,QAAQ,EAAE,0eAA0e,EAAE,MAAM,EAAE,CAAC,g1BAAg1B,CAAC,EAAE;AACr9C,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,EAAE,cAAc,EAAE,CAAC;AACzE,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,SAAS,EAAE,CAAC;AAC5B,gBAAgB,IAAI,EAAE,SAAS;AAC/B,gBAAgB,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;AACxD,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC;AAC3B,gBAAgB,IAAI,EAAE,YAAY;AAClC,gBAAgB,IAAI,EAAE,CAAC,wBAAwB;AAC/C,aAAa,CAAC,EAAE,EAAE,CAAC;;ACrFnB;AACA;AACA;;;;"}