@eui/components 18.2.0-snapshot-1726794925687 → 18.2.0-snapshot-1727423302613

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.
Files changed (51) hide show
  1. package/directives/eui-maxlength.directive.d.ts +4 -0
  2. package/directives/eui-maxlength.directive.d.ts.map +1 -1
  3. package/docs/components/EuiChipListComponent.html +1 -1
  4. package/docs/components/EuiHeaderComponent.html +0 -4
  5. package/docs/components/EuiHeaderLogoComponent.html +2 -5
  6. package/docs/components/EuiLanguageSelectorComponent.html +25 -1
  7. package/docs/components/EuiPaginatorComponent.html +25 -1
  8. package/docs/components/EuiPopoverComponent.html +1 -26
  9. package/docs/dependencies.html +2 -2
  10. package/docs/directives/EuiMaxLengthDirective.html +7 -0
  11. package/docs/js/menu-wc.js +3 -3
  12. package/docs/js/menu-wc_es5.js +1 -1
  13. package/docs/js/search/search_index.js +2 -2
  14. package/esm2022/directives/eui-maxlength.directive.mjs +14 -2
  15. package/esm2022/eui-chip-list/eui-chip-list.component.mjs +3 -3
  16. package/esm2022/eui-language-selector/language-selector.component.mjs +7 -3
  17. package/esm2022/eui-menu/eui-menu-item.component.mjs +3 -7
  18. package/esm2022/eui-paginator/eui-paginator.component.mjs +7 -3
  19. package/esm2022/eui-popover/eui-popover.component.mjs +3 -5
  20. package/esm2022/externals/eui-editor/eui-editor.component.mjs +4 -4
  21. package/esm2022/layout/eui-app/eui-app-toolbar/toolbar.component.mjs +1 -1
  22. package/esm2022/layout/eui-header/header-logo/header-logo.component.mjs +8 -5
  23. package/esm2022/layout/eui-header/header.component.mjs +4 -4
  24. package/esm2022/layout/eui-header/header.module.mjs +3 -2
  25. package/eui-language-selector/language-selector.component.d.ts +2 -1
  26. package/eui-language-selector/language-selector.component.d.ts.map +1 -1
  27. package/eui-menu/eui-menu-item.component.d.ts.map +1 -1
  28. package/eui-paginator/eui-paginator.component.d.ts +3 -1
  29. package/eui-paginator/eui-paginator.component.d.ts.map +1 -1
  30. package/eui-popover/eui-popover.component.d.ts +0 -1
  31. package/eui-popover/eui-popover.component.d.ts.map +1 -1
  32. package/externals/eui-editor/eui-editor.component.d.ts.map +1 -1
  33. package/fesm2022/eui-components-directives.mjs +13 -1
  34. package/fesm2022/eui-components-directives.mjs.map +1 -1
  35. package/fesm2022/eui-components-eui-chip-list.mjs +2 -2
  36. package/fesm2022/eui-components-eui-chip-list.mjs.map +1 -1
  37. package/fesm2022/eui-components-eui-language-selector.mjs +6 -2
  38. package/fesm2022/eui-components-eui-language-selector.mjs.map +1 -1
  39. package/fesm2022/eui-components-eui-menu.mjs +2 -6
  40. package/fesm2022/eui-components-eui-menu.mjs.map +1 -1
  41. package/fesm2022/eui-components-eui-paginator.mjs +6 -2
  42. package/fesm2022/eui-components-eui-paginator.mjs.map +1 -1
  43. package/fesm2022/eui-components-eui-popover.mjs +2 -4
  44. package/fesm2022/eui-components-eui-popover.mjs.map +1 -1
  45. package/fesm2022/eui-components-externals-eui-editor.mjs +3 -3
  46. package/fesm2022/eui-components-externals-eui-editor.mjs.map +1 -1
  47. package/fesm2022/eui-components-layout.mjs +9 -7
  48. package/fesm2022/eui-components-layout.mjs.map +1 -1
  49. package/layout/eui-header/header-logo/header-logo.component.d.ts.map +1 -1
  50. package/layout/eui-header/header.component.d.ts.map +1 -1
  51. package/package.json +9 -9
@@ -30,7 +30,6 @@ export class EuiPopoverComponent {
30
30
  this.outsideClick = new EventEmitter();
31
31
  this.popoverOpen = new EventEmitter();
32
32
  this.popoverClose = new EventEmitter();
33
- this.cdkTrapFocusAutoCapture = true;
34
33
  this.destroy$ = new Subject();
35
34
  this.isOpen$ = new BehaviorSubject(false);
36
35
  this.scrollDispatcherSubscription = new Subscription();
@@ -96,7 +95,6 @@ export class EuiPopoverComponent {
96
95
  */
97
96
  openPopover(origin) {
98
97
  if (!this.isPopoverOpen) {
99
- this.cdkTrapFocusAutoCapture = true;
100
98
  this.scrollDispatcherSubscription = this.scrollDispatcher.ancestorScrolled(origin).subscribe((event) => {
101
99
  const scrollableParent = event ? event.getElementRef().nativeElement : document.querySelector('body');
102
100
  if (!this.isVisible(origin, scrollableParent)) {
@@ -174,7 +172,7 @@ export class EuiPopoverComponent {
174
172
  }));
175
173
  }
176
174
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: EuiPopoverComponent, deps: [{ token: i1.Overlay }, { token: i0.ViewContainerRef }, { token: i1.ScrollDispatcher }, { token: i2.BaseStatesDirective }], target: i0.ɵɵFactoryTarget.Component }); }
177
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: EuiPopoverComponent, selector: "eui-popover", inputs: { title: "title", position: "position", size: "size", type: "type", width: "width", hasBackDrop: ["hasBackDrop", "hasBackDrop", booleanAttribute], hasCloseButton: ["hasCloseButton", "hasCloseButton", booleanAttribute], isDismissable: ["isDismissable", "isDismissable", booleanAttribute] }, outputs: { outsideClick: "outsideClick", popoverOpen: "popoverOpen", popoverClose: "popoverClose" }, viewQueries: [{ propertyName: "templatePortalContent", first: true, predicate: ["templatePortalContent"], descendants: true }], usesOnChanges: true, hostDirectives: [{ directive: i2.BaseStatesDirective, inputs: ["euiSizeS", "euiSizeS", "euiSizeM", "euiSizeM", "euiSizeL", "euiSizeL", "euiSizeXL", "euiSizeXL", "euiSize2XL", "euiSize2XL", "euiSizeAuto", "euiSizeAuto", "euiSizeVariant", "euiSizeVariant"] }], ngImport: i0, template: "<ng-template #templatePortalContent>\n @if (cdkTrapFocusAutoCapture) {\n <ng-container *ngTemplateOutlet=\"template; context: { $implicit: true }\"></ng-container>\n }\n @if (!cdkTrapFocusAutoCapture) {\n <ng-container *ngTemplateOutlet=\"template; context: { $implicit: false }\"></ng-container>\n }\n</ng-template>\n\n<ng-template #template let-autoCapture>\n <div class=\"eui-popover__container eui-popover__container--{{ type }} eui-18\" cdkTrapFocus [cdkTrapFocusAutoCapture]=\"autoCapture\" (keydown)=\"onKeyDown($event)\">\n <div class=\"eui-popover__arrow\" [euiPopoverArrowPosition]=\"position$\">\n <div class=\"eui-popover__arrow-inner\"></div>\n </div>\n @if (title) {\n <div class=\"eui-popover__header\">\n <div class=\"eui-popover__header-title\">{{ title }}</div>\n @if (hasCloseButton) {\n <button\n class=\"eui-popover__header-close\"\n (click)=\"closePopover()\"\n euiButton\n euiSizeS\n euiIconButton\n euiRounded\n euiBasicButton\n aria-label=\"Dialog close icon\">\n <eui-icon-svg icon=\"close:outline\"></eui-icon-svg>\n </button>\n }\n </div>\n }\n <div (cdkObserveContent)=\"onContentChange()\" class=\"eui-popover__content\">\n <ng-content></ng-content>\n </div>\n </div>\n</ng-template>\n", styles: [".eui-18 .eui-popover-position .eui-popover__arrow{border-color:inherit;border-style:solid;border-width:8px;display:none;height:0;position:absolute;width:0}.eui-18 .eui-popover-position .eui-popover__arrow-inner{border-color:var(--eui-c-white);border-style:solid;border-width:7px;content:\" \";display:block;height:0;position:absolute;width:0}.eui-18 .eui-popover-position--top .eui-popover__arrow,.eui-18 .eui-popover-position--bottom .eui-popover__arrow,.eui-18 .eui-popover-position--left .eui-popover__arrow,.eui-18 .eui-popover-position--right .eui-popover__arrow{display:block}.eui-18 .eui-popover-position--top .eui-popover__arrow,.eui-18 .eui-popover-position--bottom .eui-popover__arrow{border-left-color:transparent;border-right-color:transparent;left:50%;transform:translate(-8px)}.eui-18 .eui-popover-position--top .eui-popover__arrow-inner,.eui-18 .eui-popover-position--bottom .eui-popover__arrow-inner{border-left-color:transparent;border-right-color:transparent;margin-left:-7px}.eui-18 .eui-popover-position--top .eui-popover__arrow{border-bottom-width:0;bottom:-7px}.eui-18 .eui-popover-position--top .eui-popover__arrow-inner{border-bottom-width:0;bottom:2px}.eui-18 .eui-popover-position--bottom .eui-popover__arrow{border-top-width:0;top:-7px}.eui-18 .eui-popover-position--bottom .eui-popover__arrow-inner{border-top-width:0;top:1px}.eui-18 .eui-popover-position--left .eui-popover__arrow,.eui-18 .eui-popover-position--right .eui-popover__arrow{border-bottom-color:transparent;border-top-color:transparent;top:50%;transform:translateY(-8px)}.eui-18 .eui-popover-position--left .eui-popover__arrow-inner,.eui-18 .eui-popover-position--right .eui-popover__arrow-inner{border-bottom-color:transparent;border-top-color:transparent;top:-7px}.eui-18 .eui-popover-position--left .eui-popover__arrow{border-right-width:0;right:-7px}.eui-18 .eui-popover-position--left .eui-popover__arrow-inner{border-right-width:0;right:2px}.eui-18 .eui-popover-position--right .eui-popover__arrow{border-left-width:0;left:-7px}.eui-18 .eui-popover-position--right .eui-popover__arrow-inner{border-left-width:0;border-right-color:var(--eui-c-white);left:2px}.eui-18 .eui-popover{background-color:var(--eui-c-white);border:var(--eui-bw-xs) solid var(--eui-c-neutral-lightest);border-radius:var(--eui-br-m);box-shadow:var(--eui-sh-2);width:25rem}.eui-18 .eui-popover__container{width:100%}.eui-18 .eui-popover__header{align-items:center;border-bottom:1px solid var(--eui-c-neutral-lightest);display:flex;justify-content:space-between;padding:var(--eui-s-xs)}.eui-18 .eui-popover__header-title{font:var(--eui-f-m-bold)}.eui-18 .eui-popover__content{padding:var(--eui-s-xs)}.eui-18 .eui-popover--has-custom-width{width:100%!important}.eui-18 .eui-popover--size-s{max-width:12rem;width:12rem}.eui-18 .eui-popover--size-m{max-width:25rem;width:25rem}.eui-18 .eui-popover--size-l{max-width:35rem;width:35rem}.eui-18 .eui-popover--size-xl{max-width:50rem;width:50rem}.eui-18 .eui-popover--size-2xl{max-width:75rem;width:75rem}.eui-18 .eui-popover--size-auto{max-width:none;width:auto}.eui-18 .eui-popover__container--flat .eui-popover__header{border-bottom:none;padding-bottom:0}.eui-18 .eui-popover__container--colored-header{background:none;border:var(--eui-bw-none);border-color:var(--eui-c-neutral)}.eui-18 .eui-popover__container--colored-header .eui-popover__header{background-color:var(--eui-c-neutral);border:var(--eui-bw-none);color:var(--eui-c-white);border-top-left-radius:var(--eui-br-m);border-top-right-radius:var(--eui-br-m)}.eui-18 .eui-popover__container--colored-header .eui-popover__header+.eui-popover__content{border-top:0;border-top-left-radius:0;border-top-right-radius:0}.eui-18 .eui-popover__container--colored-header .eui-popover__header-title{color:var(--eui-c-white)}.eui-18 .eui-popover__container--colored-header .eui-popover__header-close .eui-icon-svg>svg{color:var(--eui-c-white)}.eui-18 .eui-popover__container--colored-header .eui-popover__header-close:hover .eui-icon-svg>svg,.eui-18 .eui-popover__container--colored-header .eui-popover__header-close:active .eui-icon-svg>svg{color:var(--eui-c-neutral)}.eui-18 .eui-popover__container--colored-header .eui-popover__content{background-color:var(--eui-c-white);border-color:inherit;border-radius:var(--eui-br-m);border-style:solid;border-width:2px}.eui-18 .eui-popover__container--colored-header.eui-popover--left .eui-popover__arrow-inner{right:3px}.eui-18 .eui-popover__container--colored-header.eui-popover--right .eui-popover__arrow-inner{left:3px}.eui-18 .eui-popover__container--colored-header.eui-popover--top .eui-popover__arrow-inner{bottom:3px}.eui-18 .eui-popover__container--colored-header.eui-popover--bottom .eui-popover__arrow-inner,.eui-18 .eui-popover__container--colored-header .eui-popover__arrow-inner{border:var(--eui-bw-none)}.eui-18 .eui-popover__container--colored-solid{background-color:var(--eui-c-neutral);border-color:var(--eui-c-neutral);border-style:none}.eui-18 .eui-popover__container--colored-solid .eui-popover__header{border-bottom-color:var(--eui-c-neutral-bg-light)}.eui-18 .eui-popover__container--colored-solid .eui-popover__header-title,.eui-18 .eui-popover__container--colored-solid .eui-popover__content{color:var(--eui-c-white)}.eui-18 .eui-popover__container--colored-solid .eui-popover__header-close .eui-icon-svg>svg{color:var(--eui-c-white)}.eui-18 .eui-popover__container--colored-solid .eui-popover__header-close:hover .eui-icon-svg>svg,.eui-18 .eui-popover__container--colored-solid .eui-popover__header-close:active .eui-icon-svg>svg{color:var(--eui-c-neutral)}.eui-18 .eui-popover__container--colored-solid .eui-popover__arrow-inner{border:var(--eui-bw-none)}\n"], dependencies: [{ kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "euiIconButton", "euiLineWrap", "isChecked", "euiDisabled"], outputs: ["buttonClick"] }, { kind: "component", type: i5.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "fillColor", "set", "size", "style", "iconUrl", "transform", "euiVariant", "aria-label", "ariaHidden", "focusable", "isLoading", "isInputIcon", "euiStart", "euiEnd"] }, { kind: "directive", type: i6.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "directive", type: i7.CdkObserveContent, selector: "[cdkObserveContent]", inputs: ["cdkObserveContentDisabled", "debounce"], outputs: ["cdkObserveContent"], exportAs: ["cdkObserveContent"] }, { kind: "directive", type: i8.EuiPopoverArrowPositionDirective, selector: "[euiPopoverArrowPosition]", inputs: ["euiPopoverArrowPosition"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
175
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: EuiPopoverComponent, selector: "eui-popover", inputs: { title: "title", position: "position", size: "size", type: "type", width: "width", hasBackDrop: ["hasBackDrop", "hasBackDrop", booleanAttribute], hasCloseButton: ["hasCloseButton", "hasCloseButton", booleanAttribute], isDismissable: ["isDismissable", "isDismissable", booleanAttribute] }, outputs: { outsideClick: "outsideClick", popoverOpen: "popoverOpen", popoverClose: "popoverClose" }, viewQueries: [{ propertyName: "templatePortalContent", first: true, predicate: ["templatePortalContent"], descendants: true }], usesOnChanges: true, hostDirectives: [{ directive: i2.BaseStatesDirective, inputs: ["euiSizeS", "euiSizeS", "euiSizeM", "euiSizeM", "euiSizeL", "euiSizeL", "euiSizeXL", "euiSizeXL", "euiSize2XL", "euiSize2XL", "euiSizeAuto", "euiSizeAuto", "euiSizeVariant", "euiSizeVariant"] }], ngImport: i0, template: "<ng-template #templatePortalContent>\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n</ng-template>\n\n<ng-template #template>\n <div class=\"eui-popover__container eui-popover__container--{{ type }} eui-18\" cdkTrapFocus cdkTrapFocusAutoCapture (keydown)=\"onKeyDown($event)\">\n <div class=\"eui-popover__arrow\" [euiPopoverArrowPosition]=\"position$\">\n <div class=\"eui-popover__arrow-inner\"></div>\n </div>\n @if (title) {\n <div class=\"eui-popover__header\">\n <div class=\"eui-popover__header-title\">{{ title }}</div>\n @if (hasCloseButton) {\n <button\n class=\"eui-popover__header-close\"\n (click)=\"closePopover()\"\n euiButton\n euiSizeS\n euiIconButton\n euiRounded\n euiBasicButton\n aria-label=\"Dialog close icon\">\n <eui-icon-svg icon=\"close:outline\"></eui-icon-svg>\n </button>\n }\n </div>\n }\n <div (cdkObserveContent)=\"onContentChange()\" class=\"eui-popover__content\">\n <ng-content></ng-content>\n </div>\n </div>\n</ng-template>\n", styles: [".eui-18 .eui-popover-position .eui-popover__arrow{border-color:inherit;border-style:solid;border-width:8px;display:none;height:0;position:absolute;width:0}.eui-18 .eui-popover-position .eui-popover__arrow-inner{border-color:var(--eui-c-white);border-style:solid;border-width:7px;content:\" \";display:block;height:0;position:absolute;width:0}.eui-18 .eui-popover-position--top .eui-popover__arrow,.eui-18 .eui-popover-position--bottom .eui-popover__arrow,.eui-18 .eui-popover-position--left .eui-popover__arrow,.eui-18 .eui-popover-position--right .eui-popover__arrow{display:block}.eui-18 .eui-popover-position--top .eui-popover__arrow,.eui-18 .eui-popover-position--bottom .eui-popover__arrow{border-left-color:transparent;border-right-color:transparent;left:50%;transform:translate(-8px)}.eui-18 .eui-popover-position--top .eui-popover__arrow-inner,.eui-18 .eui-popover-position--bottom .eui-popover__arrow-inner{border-left-color:transparent;border-right-color:transparent;margin-left:-7px}.eui-18 .eui-popover-position--top .eui-popover__arrow{border-bottom-width:0;bottom:-7px}.eui-18 .eui-popover-position--top .eui-popover__arrow-inner{border-bottom-width:0;bottom:2px}.eui-18 .eui-popover-position--bottom .eui-popover__arrow{border-top-width:0;top:-7px}.eui-18 .eui-popover-position--bottom .eui-popover__arrow-inner{border-top-width:0;top:1px}.eui-18 .eui-popover-position--left .eui-popover__arrow,.eui-18 .eui-popover-position--right .eui-popover__arrow{border-bottom-color:transparent;border-top-color:transparent;top:50%;transform:translateY(-8px)}.eui-18 .eui-popover-position--left .eui-popover__arrow-inner,.eui-18 .eui-popover-position--right .eui-popover__arrow-inner{border-bottom-color:transparent;border-top-color:transparent;top:-7px}.eui-18 .eui-popover-position--left .eui-popover__arrow{border-right-width:0;right:-7px}.eui-18 .eui-popover-position--left .eui-popover__arrow-inner{border-right-width:0;right:2px}.eui-18 .eui-popover-position--right .eui-popover__arrow{border-left-width:0;left:-7px}.eui-18 .eui-popover-position--right .eui-popover__arrow-inner{border-left-width:0;border-right-color:var(--eui-c-white);left:2px}.eui-18 .eui-popover{background-color:var(--eui-c-white);border:var(--eui-bw-xs) solid var(--eui-c-neutral-lightest);border-radius:var(--eui-br-m);box-shadow:var(--eui-sh-2);width:25rem}.eui-18 .eui-popover__container{width:100%}.eui-18 .eui-popover__header{align-items:center;border-bottom:1px solid var(--eui-c-neutral-lightest);display:flex;justify-content:space-between;padding:var(--eui-s-xs)}.eui-18 .eui-popover__header-title{font:var(--eui-f-m-bold)}.eui-18 .eui-popover__content{padding:var(--eui-s-xs)}.eui-18 .eui-popover--has-custom-width{width:100%!important}.eui-18 .eui-popover--size-s{max-width:12rem;width:12rem}.eui-18 .eui-popover--size-m{max-width:25rem;width:25rem}.eui-18 .eui-popover--size-l{max-width:35rem;width:35rem}.eui-18 .eui-popover--size-xl{max-width:50rem;width:50rem}.eui-18 .eui-popover--size-2xl{max-width:75rem;width:75rem}.eui-18 .eui-popover--size-auto{max-width:none;width:auto}.eui-18 .eui-popover__container--flat .eui-popover__header{border-bottom:none;padding-bottom:0}.eui-18 .eui-popover__container--colored-header{background:none;border:var(--eui-bw-none);border-color:var(--eui-c-neutral)}.eui-18 .eui-popover__container--colored-header .eui-popover__header{background-color:var(--eui-c-neutral);border:var(--eui-bw-none);color:var(--eui-c-white);border-top-left-radius:var(--eui-br-m);border-top-right-radius:var(--eui-br-m)}.eui-18 .eui-popover__container--colored-header .eui-popover__header+.eui-popover__content{border-top:0;border-top-left-radius:0;border-top-right-radius:0}.eui-18 .eui-popover__container--colored-header .eui-popover__header-title{color:var(--eui-c-white)}.eui-18 .eui-popover__container--colored-header .eui-popover__header-close .eui-icon-svg>svg{color:var(--eui-c-white)}.eui-18 .eui-popover__container--colored-header .eui-popover__header-close:hover .eui-icon-svg>svg,.eui-18 .eui-popover__container--colored-header .eui-popover__header-close:active .eui-icon-svg>svg{color:var(--eui-c-neutral)}.eui-18 .eui-popover__container--colored-header .eui-popover__content{background-color:var(--eui-c-white);border-color:inherit;border-radius:var(--eui-br-m);border-style:solid;border-width:2px}.eui-18 .eui-popover__container--colored-header.eui-popover--left .eui-popover__arrow-inner{right:3px}.eui-18 .eui-popover__container--colored-header.eui-popover--right .eui-popover__arrow-inner{left:3px}.eui-18 .eui-popover__container--colored-header.eui-popover--top .eui-popover__arrow-inner{bottom:3px}.eui-18 .eui-popover__container--colored-header.eui-popover--bottom .eui-popover__arrow-inner,.eui-18 .eui-popover__container--colored-header .eui-popover__arrow-inner{border:var(--eui-bw-none)}.eui-18 .eui-popover__container--colored-solid{background-color:var(--eui-c-neutral);border-color:var(--eui-c-neutral);border-style:none}.eui-18 .eui-popover__container--colored-solid .eui-popover__header{border-bottom-color:var(--eui-c-neutral-bg-light)}.eui-18 .eui-popover__container--colored-solid .eui-popover__header-title,.eui-18 .eui-popover__container--colored-solid .eui-popover__content{color:var(--eui-c-white)}.eui-18 .eui-popover__container--colored-solid .eui-popover__header-close .eui-icon-svg>svg{color:var(--eui-c-white)}.eui-18 .eui-popover__container--colored-solid .eui-popover__header-close:hover .eui-icon-svg>svg,.eui-18 .eui-popover__container--colored-solid .eui-popover__header-close:active .eui-icon-svg>svg{color:var(--eui-c-neutral)}.eui-18 .eui-popover__container--colored-solid .eui-popover__arrow-inner{border:var(--eui-bw-none)}\n"], dependencies: [{ kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "euiIconButton", "euiLineWrap", "isChecked", "euiDisabled"], outputs: ["buttonClick"] }, { kind: "component", type: i5.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "fillColor", "set", "size", "style", "iconUrl", "transform", "euiVariant", "aria-label", "ariaHidden", "focusable", "isLoading", "isInputIcon", "euiStart", "euiEnd"] }, { kind: "directive", type: i6.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "directive", type: i7.CdkObserveContent, selector: "[cdkObserveContent]", inputs: ["cdkObserveContentDisabled", "debounce"], outputs: ["cdkObserveContent"], exportAs: ["cdkObserveContent"] }, { kind: "directive", type: i8.EuiPopoverArrowPositionDirective, selector: "[euiPopoverArrowPosition]", inputs: ["euiPopoverArrowPosition"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
178
176
  }
179
177
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: EuiPopoverComponent, decorators: [{
180
178
  type: Component,
@@ -191,7 +189,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
191
189
  'euiSizeVariant',
192
190
  ],
193
191
  },
194
- ], template: "<ng-template #templatePortalContent>\n @if (cdkTrapFocusAutoCapture) {\n <ng-container *ngTemplateOutlet=\"template; context: { $implicit: true }\"></ng-container>\n }\n @if (!cdkTrapFocusAutoCapture) {\n <ng-container *ngTemplateOutlet=\"template; context: { $implicit: false }\"></ng-container>\n }\n</ng-template>\n\n<ng-template #template let-autoCapture>\n <div class=\"eui-popover__container eui-popover__container--{{ type }} eui-18\" cdkTrapFocus [cdkTrapFocusAutoCapture]=\"autoCapture\" (keydown)=\"onKeyDown($event)\">\n <div class=\"eui-popover__arrow\" [euiPopoverArrowPosition]=\"position$\">\n <div class=\"eui-popover__arrow-inner\"></div>\n </div>\n @if (title) {\n <div class=\"eui-popover__header\">\n <div class=\"eui-popover__header-title\">{{ title }}</div>\n @if (hasCloseButton) {\n <button\n class=\"eui-popover__header-close\"\n (click)=\"closePopover()\"\n euiButton\n euiSizeS\n euiIconButton\n euiRounded\n euiBasicButton\n aria-label=\"Dialog close icon\">\n <eui-icon-svg icon=\"close:outline\"></eui-icon-svg>\n </button>\n }\n </div>\n }\n <div (cdkObserveContent)=\"onContentChange()\" class=\"eui-popover__content\">\n <ng-content></ng-content>\n </div>\n </div>\n</ng-template>\n", styles: [".eui-18 .eui-popover-position .eui-popover__arrow{border-color:inherit;border-style:solid;border-width:8px;display:none;height:0;position:absolute;width:0}.eui-18 .eui-popover-position .eui-popover__arrow-inner{border-color:var(--eui-c-white);border-style:solid;border-width:7px;content:\" \";display:block;height:0;position:absolute;width:0}.eui-18 .eui-popover-position--top .eui-popover__arrow,.eui-18 .eui-popover-position--bottom .eui-popover__arrow,.eui-18 .eui-popover-position--left .eui-popover__arrow,.eui-18 .eui-popover-position--right .eui-popover__arrow{display:block}.eui-18 .eui-popover-position--top .eui-popover__arrow,.eui-18 .eui-popover-position--bottom .eui-popover__arrow{border-left-color:transparent;border-right-color:transparent;left:50%;transform:translate(-8px)}.eui-18 .eui-popover-position--top .eui-popover__arrow-inner,.eui-18 .eui-popover-position--bottom .eui-popover__arrow-inner{border-left-color:transparent;border-right-color:transparent;margin-left:-7px}.eui-18 .eui-popover-position--top .eui-popover__arrow{border-bottom-width:0;bottom:-7px}.eui-18 .eui-popover-position--top .eui-popover__arrow-inner{border-bottom-width:0;bottom:2px}.eui-18 .eui-popover-position--bottom .eui-popover__arrow{border-top-width:0;top:-7px}.eui-18 .eui-popover-position--bottom .eui-popover__arrow-inner{border-top-width:0;top:1px}.eui-18 .eui-popover-position--left .eui-popover__arrow,.eui-18 .eui-popover-position--right .eui-popover__arrow{border-bottom-color:transparent;border-top-color:transparent;top:50%;transform:translateY(-8px)}.eui-18 .eui-popover-position--left .eui-popover__arrow-inner,.eui-18 .eui-popover-position--right .eui-popover__arrow-inner{border-bottom-color:transparent;border-top-color:transparent;top:-7px}.eui-18 .eui-popover-position--left .eui-popover__arrow{border-right-width:0;right:-7px}.eui-18 .eui-popover-position--left .eui-popover__arrow-inner{border-right-width:0;right:2px}.eui-18 .eui-popover-position--right .eui-popover__arrow{border-left-width:0;left:-7px}.eui-18 .eui-popover-position--right .eui-popover__arrow-inner{border-left-width:0;border-right-color:var(--eui-c-white);left:2px}.eui-18 .eui-popover{background-color:var(--eui-c-white);border:var(--eui-bw-xs) solid var(--eui-c-neutral-lightest);border-radius:var(--eui-br-m);box-shadow:var(--eui-sh-2);width:25rem}.eui-18 .eui-popover__container{width:100%}.eui-18 .eui-popover__header{align-items:center;border-bottom:1px solid var(--eui-c-neutral-lightest);display:flex;justify-content:space-between;padding:var(--eui-s-xs)}.eui-18 .eui-popover__header-title{font:var(--eui-f-m-bold)}.eui-18 .eui-popover__content{padding:var(--eui-s-xs)}.eui-18 .eui-popover--has-custom-width{width:100%!important}.eui-18 .eui-popover--size-s{max-width:12rem;width:12rem}.eui-18 .eui-popover--size-m{max-width:25rem;width:25rem}.eui-18 .eui-popover--size-l{max-width:35rem;width:35rem}.eui-18 .eui-popover--size-xl{max-width:50rem;width:50rem}.eui-18 .eui-popover--size-2xl{max-width:75rem;width:75rem}.eui-18 .eui-popover--size-auto{max-width:none;width:auto}.eui-18 .eui-popover__container--flat .eui-popover__header{border-bottom:none;padding-bottom:0}.eui-18 .eui-popover__container--colored-header{background:none;border:var(--eui-bw-none);border-color:var(--eui-c-neutral)}.eui-18 .eui-popover__container--colored-header .eui-popover__header{background-color:var(--eui-c-neutral);border:var(--eui-bw-none);color:var(--eui-c-white);border-top-left-radius:var(--eui-br-m);border-top-right-radius:var(--eui-br-m)}.eui-18 .eui-popover__container--colored-header .eui-popover__header+.eui-popover__content{border-top:0;border-top-left-radius:0;border-top-right-radius:0}.eui-18 .eui-popover__container--colored-header .eui-popover__header-title{color:var(--eui-c-white)}.eui-18 .eui-popover__container--colored-header .eui-popover__header-close .eui-icon-svg>svg{color:var(--eui-c-white)}.eui-18 .eui-popover__container--colored-header .eui-popover__header-close:hover .eui-icon-svg>svg,.eui-18 .eui-popover__container--colored-header .eui-popover__header-close:active .eui-icon-svg>svg{color:var(--eui-c-neutral)}.eui-18 .eui-popover__container--colored-header .eui-popover__content{background-color:var(--eui-c-white);border-color:inherit;border-radius:var(--eui-br-m);border-style:solid;border-width:2px}.eui-18 .eui-popover__container--colored-header.eui-popover--left .eui-popover__arrow-inner{right:3px}.eui-18 .eui-popover__container--colored-header.eui-popover--right .eui-popover__arrow-inner{left:3px}.eui-18 .eui-popover__container--colored-header.eui-popover--top .eui-popover__arrow-inner{bottom:3px}.eui-18 .eui-popover__container--colored-header.eui-popover--bottom .eui-popover__arrow-inner,.eui-18 .eui-popover__container--colored-header .eui-popover__arrow-inner{border:var(--eui-bw-none)}.eui-18 .eui-popover__container--colored-solid{background-color:var(--eui-c-neutral);border-color:var(--eui-c-neutral);border-style:none}.eui-18 .eui-popover__container--colored-solid .eui-popover__header{border-bottom-color:var(--eui-c-neutral-bg-light)}.eui-18 .eui-popover__container--colored-solid .eui-popover__header-title,.eui-18 .eui-popover__container--colored-solid .eui-popover__content{color:var(--eui-c-white)}.eui-18 .eui-popover__container--colored-solid .eui-popover__header-close .eui-icon-svg>svg{color:var(--eui-c-white)}.eui-18 .eui-popover__container--colored-solid .eui-popover__header-close:hover .eui-icon-svg>svg,.eui-18 .eui-popover__container--colored-solid .eui-popover__header-close:active .eui-icon-svg>svg{color:var(--eui-c-neutral)}.eui-18 .eui-popover__container--colored-solid .eui-popover__arrow-inner{border:var(--eui-bw-none)}\n"] }]
192
+ ], template: "<ng-template #templatePortalContent>\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n</ng-template>\n\n<ng-template #template>\n <div class=\"eui-popover__container eui-popover__container--{{ type }} eui-18\" cdkTrapFocus cdkTrapFocusAutoCapture (keydown)=\"onKeyDown($event)\">\n <div class=\"eui-popover__arrow\" [euiPopoverArrowPosition]=\"position$\">\n <div class=\"eui-popover__arrow-inner\"></div>\n </div>\n @if (title) {\n <div class=\"eui-popover__header\">\n <div class=\"eui-popover__header-title\">{{ title }}</div>\n @if (hasCloseButton) {\n <button\n class=\"eui-popover__header-close\"\n (click)=\"closePopover()\"\n euiButton\n euiSizeS\n euiIconButton\n euiRounded\n euiBasicButton\n aria-label=\"Dialog close icon\">\n <eui-icon-svg icon=\"close:outline\"></eui-icon-svg>\n </button>\n }\n </div>\n }\n <div (cdkObserveContent)=\"onContentChange()\" class=\"eui-popover__content\">\n <ng-content></ng-content>\n </div>\n </div>\n</ng-template>\n", styles: [".eui-18 .eui-popover-position .eui-popover__arrow{border-color:inherit;border-style:solid;border-width:8px;display:none;height:0;position:absolute;width:0}.eui-18 .eui-popover-position .eui-popover__arrow-inner{border-color:var(--eui-c-white);border-style:solid;border-width:7px;content:\" \";display:block;height:0;position:absolute;width:0}.eui-18 .eui-popover-position--top .eui-popover__arrow,.eui-18 .eui-popover-position--bottom .eui-popover__arrow,.eui-18 .eui-popover-position--left .eui-popover__arrow,.eui-18 .eui-popover-position--right .eui-popover__arrow{display:block}.eui-18 .eui-popover-position--top .eui-popover__arrow,.eui-18 .eui-popover-position--bottom .eui-popover__arrow{border-left-color:transparent;border-right-color:transparent;left:50%;transform:translate(-8px)}.eui-18 .eui-popover-position--top .eui-popover__arrow-inner,.eui-18 .eui-popover-position--bottom .eui-popover__arrow-inner{border-left-color:transparent;border-right-color:transparent;margin-left:-7px}.eui-18 .eui-popover-position--top .eui-popover__arrow{border-bottom-width:0;bottom:-7px}.eui-18 .eui-popover-position--top .eui-popover__arrow-inner{border-bottom-width:0;bottom:2px}.eui-18 .eui-popover-position--bottom .eui-popover__arrow{border-top-width:0;top:-7px}.eui-18 .eui-popover-position--bottom .eui-popover__arrow-inner{border-top-width:0;top:1px}.eui-18 .eui-popover-position--left .eui-popover__arrow,.eui-18 .eui-popover-position--right .eui-popover__arrow{border-bottom-color:transparent;border-top-color:transparent;top:50%;transform:translateY(-8px)}.eui-18 .eui-popover-position--left .eui-popover__arrow-inner,.eui-18 .eui-popover-position--right .eui-popover__arrow-inner{border-bottom-color:transparent;border-top-color:transparent;top:-7px}.eui-18 .eui-popover-position--left .eui-popover__arrow{border-right-width:0;right:-7px}.eui-18 .eui-popover-position--left .eui-popover__arrow-inner{border-right-width:0;right:2px}.eui-18 .eui-popover-position--right .eui-popover__arrow{border-left-width:0;left:-7px}.eui-18 .eui-popover-position--right .eui-popover__arrow-inner{border-left-width:0;border-right-color:var(--eui-c-white);left:2px}.eui-18 .eui-popover{background-color:var(--eui-c-white);border:var(--eui-bw-xs) solid var(--eui-c-neutral-lightest);border-radius:var(--eui-br-m);box-shadow:var(--eui-sh-2);width:25rem}.eui-18 .eui-popover__container{width:100%}.eui-18 .eui-popover__header{align-items:center;border-bottom:1px solid var(--eui-c-neutral-lightest);display:flex;justify-content:space-between;padding:var(--eui-s-xs)}.eui-18 .eui-popover__header-title{font:var(--eui-f-m-bold)}.eui-18 .eui-popover__content{padding:var(--eui-s-xs)}.eui-18 .eui-popover--has-custom-width{width:100%!important}.eui-18 .eui-popover--size-s{max-width:12rem;width:12rem}.eui-18 .eui-popover--size-m{max-width:25rem;width:25rem}.eui-18 .eui-popover--size-l{max-width:35rem;width:35rem}.eui-18 .eui-popover--size-xl{max-width:50rem;width:50rem}.eui-18 .eui-popover--size-2xl{max-width:75rem;width:75rem}.eui-18 .eui-popover--size-auto{max-width:none;width:auto}.eui-18 .eui-popover__container--flat .eui-popover__header{border-bottom:none;padding-bottom:0}.eui-18 .eui-popover__container--colored-header{background:none;border:var(--eui-bw-none);border-color:var(--eui-c-neutral)}.eui-18 .eui-popover__container--colored-header .eui-popover__header{background-color:var(--eui-c-neutral);border:var(--eui-bw-none);color:var(--eui-c-white);border-top-left-radius:var(--eui-br-m);border-top-right-radius:var(--eui-br-m)}.eui-18 .eui-popover__container--colored-header .eui-popover__header+.eui-popover__content{border-top:0;border-top-left-radius:0;border-top-right-radius:0}.eui-18 .eui-popover__container--colored-header .eui-popover__header-title{color:var(--eui-c-white)}.eui-18 .eui-popover__container--colored-header .eui-popover__header-close .eui-icon-svg>svg{color:var(--eui-c-white)}.eui-18 .eui-popover__container--colored-header .eui-popover__header-close:hover .eui-icon-svg>svg,.eui-18 .eui-popover__container--colored-header .eui-popover__header-close:active .eui-icon-svg>svg{color:var(--eui-c-neutral)}.eui-18 .eui-popover__container--colored-header .eui-popover__content{background-color:var(--eui-c-white);border-color:inherit;border-radius:var(--eui-br-m);border-style:solid;border-width:2px}.eui-18 .eui-popover__container--colored-header.eui-popover--left .eui-popover__arrow-inner{right:3px}.eui-18 .eui-popover__container--colored-header.eui-popover--right .eui-popover__arrow-inner{left:3px}.eui-18 .eui-popover__container--colored-header.eui-popover--top .eui-popover__arrow-inner{bottom:3px}.eui-18 .eui-popover__container--colored-header.eui-popover--bottom .eui-popover__arrow-inner,.eui-18 .eui-popover__container--colored-header .eui-popover__arrow-inner{border:var(--eui-bw-none)}.eui-18 .eui-popover__container--colored-solid{background-color:var(--eui-c-neutral);border-color:var(--eui-c-neutral);border-style:none}.eui-18 .eui-popover__container--colored-solid .eui-popover__header{border-bottom-color:var(--eui-c-neutral-bg-light)}.eui-18 .eui-popover__container--colored-solid .eui-popover__header-title,.eui-18 .eui-popover__container--colored-solid .eui-popover__content{color:var(--eui-c-white)}.eui-18 .eui-popover__container--colored-solid .eui-popover__header-close .eui-icon-svg>svg{color:var(--eui-c-white)}.eui-18 .eui-popover__container--colored-solid .eui-popover__header-close:hover .eui-icon-svg>svg,.eui-18 .eui-popover__container--colored-solid .eui-popover__header-close:active .eui-icon-svg>svg{color:var(--eui-c-neutral)}.eui-18 .eui-popover__container--colored-solid .eui-popover__arrow-inner{border:var(--eui-bw-none)}\n"] }]
195
193
  }], ctorParameters: () => [{ type: i1.Overlay }, { type: i0.ViewContainerRef }, { type: i1.ScrollDispatcher }, { type: i2.BaseStatesDirective }], propDecorators: { title: [{
196
194
  type: Input
197
195
  }], position: [{
@@ -221,4 +219,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
221
219
  type: ViewChild,
222
220
  args: ['templatePortalContent']
223
221
  }] } });
224
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLXBvcG92ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vZXVpLXBvcG92ZXIvZXVpLXBvcG92ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vZXVpLXBvcG92ZXIvZXVpLXBvcG92ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLEtBQUssRUFDTCxTQUFTLEVBTVQsTUFBTSxFQUNOLFlBQVksRUFJWixnQkFBZ0IsR0FDbkIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBVXJELE9BQU8sRUFBRSxlQUFlLEVBQWMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUU3RCxPQUFPLEVBQXNCLE1BQU0sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7Ozs7Ozs7OztBQXVCaEgsTUFBTSxPQUFPLG1CQUFtQjtJQThCNUIsWUFBb0IsT0FBZ0IsRUFDaEIsZ0JBQWtDLEVBQ2xDLGdCQUFrQyxFQUNsQyxtQkFBd0M7UUFIeEMsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUNoQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQS9CbkQsYUFBUSxHQUF1QixRQUFRLENBQUM7UUFDakQseUZBQXlGO1FBQ2hGLFNBQUksR0FBNkUsU0FBUyxD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ICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBJbnB1dCxcbiAgICBWaWV3Q2hpbGQsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NvbnRhaW5lclJlZixcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBFbGVtZW50UmVmLFxuICAgIE9uQ2hhbmdlcyxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIGJvb2xlYW5BdHRyaWJ1dGUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGVtcGxhdGVQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7XG4gICAgT3ZlcmxheSxcbiAgICBPdmVybGF5UmVmLFxuICAgIENvbm5lY3Rpb25Qb3NpdGlvblBhaXIsXG4gICAgRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5T3JpZ2luLFxuICAgIFNjcm9sbERpc3BhdGNoZXIsXG4gICAgQ2RrU2Nyb2xsYWJsZSxcbiAgICBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3ksXG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCBzd2l0Y2hNYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgQmFzZVN0YXRlc0RpcmVjdGl2ZSB9IGZyb20gJ0BldWkvY29tcG9uZW50cy9zaGFyZWQnO1xuXG5pbXBvcnQgeyBFdWlQb3BvdmVyUG9zaXRpb24sIEJPVFRPTSwgTEVGVCwgUklHSFQsIFRPUCwgZ2V0UG9zaXRpb24gfSBmcm9tICcuL21vZGVscy9ldWktcG9wb3Zlci1wb3NpdGlvbi5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZXVpLXBvcG92ZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9ldWktcG9wb3Zlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc3R5bGVzL19pbmRleC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBob3N0RGlyZWN0aXZlczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBkaXJlY3RpdmU6IEJhc2VTdGF0ZXNEaXJlY3RpdmUsXG4gICAgICAgICAgICBpbnB1dHM6IFtcbiAgICAgICAgICAgICAgICAnZXVpU2l6ZVMnLFxuICAgICAgICAgICAgICAgICdldWlTaXplTScsXG4gICAgICAgICAgICAgICAgJ2V1aVNpemVMJyxcbiAgICAgICAgICAgICAgICAnZXVpU2l6ZVhMJyxcbiAgICAgICAgICAgICAgICAnZXVpU2l6ZTJYTCcsXG4gICAgICAgICAgICAgICAgJ2V1aVNpemVBdXRvJyxcbiAgICAgICAgICAgICAgICAnZXVpU2l6ZVZhcmlhbnQnLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBFdWlQb3BvdmVyQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gICAgQElucHV0KCkgdGl0bGU6IHN0cmluZztcbiAgICBASW5wdXQoKSBwb3NpdGlvbjogRXVpUG9wb3ZlclBvc2l0aW9uID0gJ2JvdHRvbSc7XG4gICAgLyoqIEBkZXByZWNhdGVkIFRoaXMgd2lsbCBiZSByZW1vdmVkIGluIG5leHQgdmVyc2lvbiBvZiBldWkgaW4gZmF2b3Igb2YgZXVpU2l6ZVZhcmlhbnQgKi9cbiAgICBASW5wdXQoKSBzaXplOiAnZGVmYXVsdCcgfCAnc21hbGwnIHwgJ2xhcmdlJyB8ICdhdXRvJyB8ICdzJyB8ICdtJyB8ICdsJyB8ICd4bCcgfCBzdHJpbmcgPSAnZGVmYXVsdCc7XG4gICAgQElucHV0KCkgdHlwZTogJ2RlZmF1bHQnIHwgJ2ZsYXQnIHwgJ2NvbG9yZWQtaGVhZGVyJyB8ICdjb2xvcmVkLXNvbGlkJyA9ICdkZWZhdWx0JztcbiAgICBASW5wdXQoKSB3aWR0aDogc3RyaW5nID0gbnVsbDtcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaGFzQmFja0Ryb3AgPSBmYWxzZTtcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaGFzQ2xvc2VCdXR0b24gPSB0cnVlO1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBpc0Rpc21pc3NhYmxlID0gdHJ1ZTtcblxuICAgIEBPdXRwdXQoKSBvdXRzaWRlQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIHBvcG92ZXJPcGVuID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBwb3BvdmVyQ2xvc2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBwdWJsaWMgY2RrVHJhcEZvY3VzQXV0b0NhcHR1cmUgPSB0cnVlO1xuICAgIHB1YmxpYyBwb3NpdGlvbiQ6IE9ic2VydmFibGU8W0V1aVBvcG92ZXJQb3NpdGlvbiwgRE9NUmVjdF0+O1xuXG4gICAgQFZpZXdDaGlsZCgndGVtcGxhdGVQb3J0YWxDb250ZW50JykgdGVtcGxhdGVQb3J0YWxDb250ZW50OiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICAgIHByaXZhdGUgdGVtcGxhdGVQb3J0YWw6IFRlbXBsYXRlUG9ydGFsO1xuICAgIHByaXZhdGUgb3ZlcmxheVJlZjogT3ZlcmxheVJlZjtcbiAgICBwcml2YXRlIGRlc3Ryb3kkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgICBwcml2YXRlIGlzT3BlbiQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICAgIHByaXZhdGUgc2Nyb2xsRGlzcGF0Y2hlclN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgICBwcml2YXRlIG9yaWdpbjogRWxlbWVudFJlZjtcbiAgICBwcml2YXRlIHByZWZlcnJlZFBvc2l0b25zOiBDb25uZWN0aW9uUG9zaXRpb25QYWlyW10gPSBbQk9UVE9NLCBUT1AsIExFRlQsIFJJR0hUXTtcbiAgICBwcml2YXRlIHBvc2l0aW9uU3RyYXRlZ3k6IEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneTtcbiAgICBwcml2YXRlIHBvc2l0aW9uU3RyYXRlZ3lVcGRhdGUkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgb3ZlcmxheTogT3ZlcmxheSxcbiAgICAgICAgICAgICAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBzY3JvbGxEaXNwYXRjaGVyOiBTY3JvbGxEaXNwYXRjaGVyLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgYmFzZVN0YXRlc0RpcmVjdGl2ZTogQmFzZVN0YXRlc0RpcmVjdGl2ZSl7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoYzogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5wb3NpdGlvbiA9PT0gJ3RvcCcpIHtcbiAgICAgICAgICAgIHRoaXMucHJlZmVycmVkUG9zaXRvbnMgPSBbVE9QLCBCT1RUT00sIExFRlQsIFJJR0hUXTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnBvc2l0aW9uID09PSAncmlnaHQnKSB7XG4gICAgICAgICAgICB0aGlzLnByZWZlcnJlZFBvc2l0b25zID0gW1JJR0hULCBMRUZULCBUT1AsIEJPVFRPTV07XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5wb3NpdGlvbiA9PT0gJ2xlZnQnKSB7XG4gICAgICAgICAgICB0aGlzLnByZWZlcnJlZFBvc2l0b25zID0gW0xFRlQsIFJJR0hULCBUT1AsIEJPVFRPTV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnByZWZlcnJlZFBvc2l0b25zID0gW0JPVFRPTSwgVE9QLCBMRUZULCBSSUdIVF07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRQb3NpdGlvblN0cmVhbSgpO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50ZW1wbGF0ZVBvcnRhbCA9IG5ldyBUZW1wbGF0ZVBvcnRhbCh0aGlzLnRlbXBsYXRlUG9ydGFsQ29udGVudCwgdGhpcy52aWV3Q29udGFpbmVyUmVmKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuc2Nyb2xsRGlzcGF0Y2hlclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLm92ZXJsYXlSZWY/LmRpc3Bvc2UoKTtcbiAgICAgICAgdGhpcy5vdmVybGF5UmVmID0gbnVsbDtcbiAgICB9XG5cbiAgICAvKiogQGRlcHJlY2F0ZWQgVGhpcyB3aWxsIGJlIHJlbW92ZWQgaW4gbmV4dCB2ZXJzaW9uIG9mIGV1aSBpbiBmYXZvciBvZiBpc09wZW4gKi9cbiAgICBnZXQgaXNQb3BvdmVyT3BlbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNPcGVuJC52YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSBldWktcG9wb3ZlciBpcyBvcGVuLlxuICAgICAqXG4gICAgICogQHVzYWdlTm90ZXNcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGV1aS1wb3BvdmVyICNwb3BvdmVyPlxuICAgICAqICAgICBcXEBpZiAocG9wb3Zlci5pc09wZW4pIHtcbiAgICAgKiAgICAgICAgICA8bXktY29tcG9uZW50PjwvbXktY29tcG9uZW50PlxuICAgICAqICAgICB9XG4gICAgICogPC9ldWktcG9wb3Zlcj5cbiAgICAgKiBgYGBcbiAgICAgKiBAcmV0dXJucyBBIGJvb2xlYW4gd2l0aCB2YWx1ZSBgdHJ1ZWAgd2hlbiBvcGVuLCBvdGhlcndpc2UgYGZhbHNlYC5cbiAgICAgKi9cbiAgICBnZXQgaXNPcGVuKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc09wZW4kLnZhbHVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkNvbnRlbnRDaGFuZ2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucG9zaXRpb25TdHJhdGVneSA9IHRoaXMuZ2V0UG9zaXRpb25TdHJhdGVneSgpO1xuICAgICAgICB0aGlzLnBvc2l0aW9uU3RyYXRlZ3lVcGRhdGUkLm5leHQoKTtcbiAgICAgICAgdGhpcy5vdmVybGF5UmVmLnVwZGF0ZVBvc2l0aW9uU3RyYXRlZ3kodGhpcy5wb3NpdGlvblN0cmF0ZWd5KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBPcGVuIGEgcG9wb3ZlclxuICAgICAqXG4gICAgICogQHBhcmFtIG9yaWdpbiBPcmlnaW4gb2YgdGhlIHBvcG92ZXIgcG9zaXRpb25cbiAgICAgKi9cbiAgICBwdWJsaWMgb3BlblBvcG92ZXIob3JpZ2luOiBFbGVtZW50UmVmKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5pc1BvcG92ZXJPcGVuKSB7XG4gICAgICAgICAgICB0aGlzLmNka1RyYXBGb2N1c0F1dG9DYXB0dXJlID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuc2Nyb2xsRGlzcGF0Y2hlclN1YnNjcmlwdGlvbiA9IHRoaXMuc2Nyb2xsRGlzcGF0Y2hlci5hbmNlc3RvclNjcm9sbGVkKG9yaWdpbikuc3Vic2NyaWJlKChldmVudDogQ2RrU2Nyb2xsYWJsZSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHNjcm9sbGFibGVQYXJlbnQgPSBldmVudCA/IGV2ZW50LmdldEVsZW1lbnRSZWYoKS5uYXRpdmVFbGVtZW50IDogZG9jdW1lbnQucXVlcnlTZWxlY3RvcignYm9keScpO1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5pc1Zpc2libGUob3JpZ2luIGFzIHVua25vd24gYXMgSFRNTEVsZW1lbnQsIHNjcm9sbGFibGVQYXJlbnQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VQb3BvdmVyKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHRoaXMub3JpZ2luID0gb3JpZ2luO1xuICAgICAgICAgICAgY29uc3QgcG9zaXRpb25TdHJhdGVneSA9IHRoaXMuZ2V0UG9zaXRpb25TdHJhdGVneSgpO1xuXG4gICAgICAgICAgICBjb25zdCBzY3JvbGxTdHJhdGVneSA9IHRoaXMub3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLnJlcG9zaXRpb24oeyBzY3JvbGxUaHJvdHRsZTogMTAgfSk7XG5cbiAgICAgICAgICAgIHRoaXMub3ZlcmxheVJlZiA9IHRoaXMub3ZlcmxheS5jcmVhdGUoe1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uU3RyYXRlZ3ksXG4gICAgICAgICAgICAgICAgc2Nyb2xsU3RyYXRlZ3ksXG4gICAgICAgICAgICAgICAgZGlzcG9zZU9uTmF2aWdhdGlvbjogdHJ1ZSxcbiAgICAgICAgICAgICAgICB3aWR0aDogdGhpcy53aWR0aCxcbiAgICAgICAgICAgICAgICBwYW5lbENsYXNzOiB0aGlzLmJhc2VTdGF0ZXNEaXJlY3RpdmUuZ2V0Q3NzQ2xhc3NlcygnZXVpLXBvcG92ZXInKS5zcGxpdCgnICcpLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLm92ZXJsYXlSZWYuYXR0YWNoKHRoaXMudGVtcGxhdGVQb3J0YWwpO1xuXG4gICAgICAgICAgICB0aGlzLnBvc2l0aW9uU3RyYXRlZ3kgPSBwb3NpdGlvblN0cmF0ZWd5O1xuICAgICAgICAgICAgdGhpcy5wb3NpdGlvblN0cmF0ZWd5VXBkYXRlJC5uZXh0KCk7XG5cbiAgICAgICAgICAgIHRoaXMub3ZlcmxheVJlZlxuICAgICAgICAgICAgICAgIC5vdXRzaWRlUG9pbnRlckV2ZW50cygpXG4gICAgICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pc0Rpc21pc3NhYmxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm91dHNpZGVDbGljay5lbWl0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNsb3NlUG9wb3ZlcigpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHRoaXMuaXNPcGVuJC5uZXh0KHRydWUpO1xuICAgICAgICAgICAgdGhpcy5wb3BvdmVyT3Blbi5lbWl0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDbG9zZSBhIHBvcG92ZXJcbiAgICAgKi9cbiAgICBwdWJsaWMgY2xvc2VQb3BvdmVyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNjcm9sbERpc3BhdGNoZXJTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5vdmVybGF5UmVmLmRpc3Bvc2UoKTtcbiAgICAgICAgdGhpcy5vdmVybGF5UmVmID0gbnVsbDtcbiAgICAgICAgdGhpcy5pc09wZW4kLm5leHQoZmFsc2UpO1xuICAgICAgICB0aGlzLnBvcG92ZXJDbG9zZS5lbWl0KCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVhY3RzIG9uIHRoZSBFc2Mga2V5ZG93biBldmVudCB0byBjbG9zZSB0aGUgcG9wdXAuIENhbiBiZSB1c2VkIGFzIGFsdGVybmF0aXZlIHRvIHRoZSBjbG9zZSBpY29uIGJ1dHRvbixcbiAgICAgKiBvciBhcyB0aGUgbWFpbiB3YXkgdG8gY2xvc2UgdGhlIHBvcHVwIHdoZW4gaGFzQ2xvc2VCdXR0b24gaXMgZmFsc2VcbiAgICAgKlxuICAgICAqIEBwYXJhbSBldmVudCBUaGUga2V5IGV2ZW50IHByZXNzZWRcbiAgICAgKi9cbiAgICBwdWJsaWMgb25LZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09ICdFc2NhcGUnKSB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlUG9wb3ZlcigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc1Zpc2libGUob3JpZ2luOiBIVE1MRWxlbWVudCwgc2Nyb2xsYWJsZVBhcmVudDogSFRNTEVsZW1lbnQpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3Qgb3JpZ2luWSA9IG9yaWdpbi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS55O1xuICAgICAgICBjb25zdCBzY3JvbGxhYmxlUGFyZW50WSA9IE1hdGguYWJzKHNjcm9sbGFibGVQYXJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkueSk7XG4gICAgICAgIGNvbnN0IHNjcm9sbGFibGVQYXJlbnRIZWlnaHQgPSBzY3JvbGxhYmxlUGFyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodCAtIDUwO1xuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAob3JpZ2luWSA+IDAgJiYgb3JpZ2luWSA8IHNjcm9sbGFibGVQYXJlbnRIZWlnaHQpIHx8XG4gICAgICAgICAgICAob3JpZ2luWSAtIHNjcm9sbGFibGVQYXJlbnRZID4gMCAmJiBvcmlnaW5ZIDwgc2Nyb2xsYWJsZVBhcmVudFkgKyBzY3JvbGxhYmxlUGFyZW50SGVpZ2h0KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0UG9zaXRpb25TdHJhdGVneSgpOiBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3kge1xuICAgICAgICByZXR1cm4gdGhpcy5vdmVybGF5XG4gICAgICAgICAgICAucG9zaXRpb24oKVxuICAgICAgICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8odGhpcy5vcmlnaW4gYXMgRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5T3JpZ2luKVxuICAgICAgICAgICAgLndpdGhQb3NpdGlvbnModGhpcy5wcmVmZXJyZWRQb3NpdG9ucylcbiAgICAgICAgICAgIC53aXRoRmxleGlibGVEaW1lbnNpb25zKGZhbHNlKVxuICAgICAgICAgICAgLndpdGhMb2NrZWRQb3NpdGlvbih0cnVlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFBvc2l0aW9uU3RyZWFtKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnBvc2l0aW9uJCA9IHRoaXMucG9zaXRpb25TdHJhdGVneVVwZGF0ZSQucGlwZShcbiAgICAgICAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLnBvc2l0aW9uU3RyYXRlZ3kucG9zaXRpb25DaGFuZ2VzKSxcbiAgICAgICAgICAgIG1hcChnZXRQb3NpdGlvbiksXG4gICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICAgICAgbWFwKChwb3NpdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlY3QgPSB0aGlzLm9yaWdpbi5uYXRpdmVFbGVtZW50ID9cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcmlnaW4ubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSA6XG4gICAgICAgICAgICAgICAgICAgICh0aGlzLm9yaWdpbiBhcyB1bmtub3duIGFzIEhUTUxFbGVtZW50KS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gW3Bvc2l0aW9uLCByZWN0XTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICApO1xuICAgIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSAjdGVtcGxhdGVQb3J0YWxDb250ZW50PlxuICAgIEBpZiAoY2RrVHJhcEZvY3VzQXV0b0NhcHR1cmUpIHtcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogdHJ1ZSB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgfVxuICAgIEBpZiAoIWNka1RyYXBGb2N1c0F1dG9DYXB0dXJlKSB7XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0ZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IGZhbHNlIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICB9XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3RlbXBsYXRlIGxldC1hdXRvQ2FwdHVyZT5cbiAgICA8ZGl2IGNsYXNzPVwiZXVpLXBvcG92ZXJfX2NvbnRhaW5lciBldWktcG9wb3Zlcl9fY29udGFpbmVyLS17eyB0eXBlIH19IGV1aS0xOFwiIGNka1RyYXBGb2N1cyBbY2RrVHJhcEZvY3VzQXV0b0NhcHR1cmVdPVwiYXV0b0NhcHR1cmVcIiAoa2V5ZG93bik9XCJvbktleURvd24oJGV2ZW50KVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpLXBvcG92ZXJfX2Fycm93XCIgW2V1aVBvcG92ZXJBcnJvd1Bvc2l0aW9uXT1cInBvc2l0aW9uJFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV1aS1wb3BvdmVyX19hcnJvdy1pbm5lclwiPjwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgQGlmICh0aXRsZSkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV1aS1wb3BvdmVyX19oZWFkZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpLXBvcG92ZXJfX2hlYWRlci10aXRsZVwiPnt7IHRpdGxlIH19PC9kaXY+XG4gICAgICAgICAgICAgICAgQGlmIChoYXNDbG9zZUJ1dHRvbikge1xuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImV1aS1wb3BvdmVyX19oZWFkZXItY2xvc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlUG9wb3ZlcigpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGV1aUJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgZXVpU2l6ZVNcbiAgICAgICAgICAgICAgICAgICAgICAgIGV1aUljb25CdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGV1aVJvdW5kZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIGV1aUJhc2ljQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiRGlhbG9nIGNsb3NlIGljb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxldWktaWNvbi1zdmcgaWNvbj1cImNsb3NlOm91dGxpbmVcIj48L2V1aS1pY29uLXN2Zz5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgICAgPGRpdiAoY2RrT2JzZXJ2ZUNvbnRlbnQpPVwib25Db250ZW50Q2hhbmdlKClcIiBjbGFzcz1cImV1aS1wb3BvdmVyX19jb250ZW50XCI+XG4gICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
222
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLXBvcG92ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vZXVpLXBvcG92ZXIvZXVpLXBvcG92ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vZXVpLXBvcG92ZXIvZXVpLXBvcG92ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLEtBQUssRUFDTCxTQUFTLEVBTVQsTUFBTSxFQUNOLFlBQVksRUFJWixnQkFBZ0IsR0FDbkIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBVXJELE9BQU8sRUFBRSxlQUFlLEVBQWMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUU3RCxPQUFPLEVBQXNCLE1BQU0sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7Ozs7Ozs7OztBQXVCaEgsTUFBTSxPQUFPLG1CQUFtQjtJQTZCNUIsWUFBb0IsT0FBZ0IsRUFDaEIsZ0JBQWtDLEVBQ2xDLGdCQUFrQyxFQUNsQyxtQkFBd0M7UUFIeEMsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUNoQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQTlCbkQsYUFBUSxHQUF1QixRQUFRLENBQUM7UUFDakQseUZBQXlGO1FBQ2hGLFNBQUksR0FBNkUsU0FBUyxD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cEUsT0FBTyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ04sQ0FBQzs4R0FoTVEsbUJBQW1CO2tHQUFuQixtQkFBbUIsbUtBT1IsZ0JBQWdCLHdEQUNoQixnQkFBZ0IscURBQ2hCLGdCQUFnQiwwaEJDakV4Qyx1MUNBZ0NBOzsyRkR3QmEsbUJBQW1CO2tCQXJCL0IsU0FBUzsrQkFDSSxhQUFhLG1CQUdOLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksa0JBQ3JCO3dCQUNaOzRCQUNJLFNBQVMsRUFBRSxtQkFBbUI7NEJBQzlCLE1BQU0sRUFBRTtnQ0FDSixVQUFVO2dDQUNWLFVBQVU7Z0NBQ1YsVUFBVTtnQ0FDVixXQUFXO2dDQUNYLFlBQVk7Z0NBQ1osYUFBYTtnQ0FDYixnQkFBZ0I7NkJBQ25CO3lCQUNKO3FCQUNKOzRLQUdRLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVHLElBQUk7c0JBQVosS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNrQyxXQUFXO3NCQUFsRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUNFLGNBQWM7c0JBQXJELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQ0UsYUFBYTtzQkFBcEQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFFNUIsWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBSTZCLHFCQUFxQjtzQkFBeEQsU0FBUzt1QkFBQyx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBJbnB1dCxcbiAgICBWaWV3Q2hpbGQsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NvbnRhaW5lclJlZixcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBFbGVtZW50UmVmLFxuICAgIE9uQ2hhbmdlcyxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIGJvb2xlYW5BdHRyaWJ1dGUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGVtcGxhdGVQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7XG4gICAgT3ZlcmxheSxcbiAgICBPdmVybGF5UmVmLFxuICAgIENvbm5lY3Rpb25Qb3NpdGlvblBhaXIsXG4gICAgRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5T3JpZ2luLFxuICAgIFNjcm9sbERpc3BhdGNoZXIsXG4gICAgQ2RrU2Nyb2xsYWJsZSxcbiAgICBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3ksXG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCBzd2l0Y2hNYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgQmFzZVN0YXRlc0RpcmVjdGl2ZSB9IGZyb20gJ0BldWkvY29tcG9uZW50cy9zaGFyZWQnO1xuXG5pbXBvcnQgeyBFdWlQb3BvdmVyUG9zaXRpb24sIEJPVFRPTSwgTEVGVCwgUklHSFQsIFRPUCwgZ2V0UG9zaXRpb24gfSBmcm9tICcuL21vZGVscy9ldWktcG9wb3Zlci1wb3NpdGlvbi5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZXVpLXBvcG92ZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9ldWktcG9wb3Zlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc3R5bGVzL19pbmRleC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBob3N0RGlyZWN0aXZlczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBkaXJlY3RpdmU6IEJhc2VTdGF0ZXNEaXJlY3RpdmUsXG4gICAgICAgICAgICBpbnB1dHM6IFtcbiAgICAgICAgICAgICAgICAnZXVpU2l6ZVMnLFxuICAgICAgICAgICAgICAgICdldWlTaXplTScsXG4gICAgICAgICAgICAgICAgJ2V1aVNpemVMJyxcbiAgICAgICAgICAgICAgICAnZXVpU2l6ZVhMJyxcbiAgICAgICAgICAgICAgICAnZXVpU2l6ZTJYTCcsXG4gICAgICAgICAgICAgICAgJ2V1aVNpemVBdXRvJyxcbiAgICAgICAgICAgICAgICAnZXVpU2l6ZVZhcmlhbnQnLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBFdWlQb3BvdmVyQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gICAgQElucHV0KCkgdGl0bGU6IHN0cmluZztcbiAgICBASW5wdXQoKSBwb3NpdGlvbjogRXVpUG9wb3ZlclBvc2l0aW9uID0gJ2JvdHRvbSc7XG4gICAgLyoqIEBkZXByZWNhdGVkIFRoaXMgd2lsbCBiZSByZW1vdmVkIGluIG5leHQgdmVyc2lvbiBvZiBldWkgaW4gZmF2b3Igb2YgZXVpU2l6ZVZhcmlhbnQgKi9cbiAgICBASW5wdXQoKSBzaXplOiAnZGVmYXVsdCcgfCAnc21hbGwnIHwgJ2xhcmdlJyB8ICdhdXRvJyB8ICdzJyB8ICdtJyB8ICdsJyB8ICd4bCcgfCBzdHJpbmcgPSAnZGVmYXVsdCc7XG4gICAgQElucHV0KCkgdHlwZTogJ2RlZmF1bHQnIHwgJ2ZsYXQnIHwgJ2NvbG9yZWQtaGVhZGVyJyB8ICdjb2xvcmVkLXNvbGlkJyA9ICdkZWZhdWx0JztcbiAgICBASW5wdXQoKSB3aWR0aDogc3RyaW5nID0gbnVsbDtcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaGFzQmFja0Ryb3AgPSBmYWxzZTtcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaGFzQ2xvc2VCdXR0b24gPSB0cnVlO1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBpc0Rpc21pc3NhYmxlID0gdHJ1ZTtcblxuICAgIEBPdXRwdXQoKSBvdXRzaWRlQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIHBvcG92ZXJPcGVuID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBwb3BvdmVyQ2xvc2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBwdWJsaWMgcG9zaXRpb24kOiBPYnNlcnZhYmxlPFtFdWlQb3BvdmVyUG9zaXRpb24sIERPTVJlY3RdPjtcblxuICAgIEBWaWV3Q2hpbGQoJ3RlbXBsYXRlUG9ydGFsQ29udGVudCcpIHRlbXBsYXRlUG9ydGFsQ29udGVudDogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgICBwcml2YXRlIHRlbXBsYXRlUG9ydGFsOiBUZW1wbGF0ZVBvcnRhbDtcbiAgICBwcml2YXRlIG92ZXJsYXlSZWY6IE92ZXJsYXlSZWY7XG4gICAgcHJpdmF0ZSBkZXN0cm95JDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gICAgcHJpdmF0ZSBpc09wZW4kOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgICBwcml2YXRlIHNjcm9sbERpc3BhdGNoZXJTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gICAgcHJpdmF0ZSBvcmlnaW46IEVsZW1lbnRSZWY7XG4gICAgcHJpdmF0ZSBwcmVmZXJyZWRQb3NpdG9uczogQ29ubmVjdGlvblBvc2l0aW9uUGFpcltdID0gW0JPVFRPTSwgVE9QLCBMRUZULCBSSUdIVF07XG4gICAgcHJpdmF0ZSBwb3NpdGlvblN0cmF0ZWd5OiBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3k7XG4gICAgcHJpdmF0ZSBwb3NpdGlvblN0cmF0ZWd5VXBkYXRlJDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXksXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgc2Nyb2xsRGlzcGF0Y2hlcjogU2Nyb2xsRGlzcGF0Y2hlcixcbiAgICAgICAgICAgICAgICBwcml2YXRlIGJhc2VTdGF0ZXNEaXJlY3RpdmU6IEJhc2VTdGF0ZXNEaXJlY3RpdmUpe1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMucG9zaXRpb24gPT09ICd0b3AnKSB7XG4gICAgICAgICAgICB0aGlzLnByZWZlcnJlZFBvc2l0b25zID0gW1RPUCwgQk9UVE9NLCBMRUZULCBSSUdIVF07XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5wb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xuICAgICAgICAgICAgdGhpcy5wcmVmZXJyZWRQb3NpdG9ucyA9IFtSSUdIVCwgTEVGVCwgVE9QLCBCT1RUT01dO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMucG9zaXRpb24gPT09ICdsZWZ0Jykge1xuICAgICAgICAgICAgdGhpcy5wcmVmZXJyZWRQb3NpdG9ucyA9IFtMRUZULCBSSUdIVCwgVE9QLCBCT1RUT01dO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5wcmVmZXJyZWRQb3NpdG9ucyA9IFtCT1RUT00sIFRPUCwgTEVGVCwgUklHSFRdO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0UG9zaXRpb25TdHJlYW0oKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudGVtcGxhdGVQb3J0YWwgPSBuZXcgVGVtcGxhdGVQb3J0YWwodGhpcy50ZW1wbGF0ZVBvcnRhbENvbnRlbnQsIHRoaXMudmlld0NvbnRhaW5lclJlZik7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLnNjcm9sbERpc3BhdGNoZXJTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5vdmVybGF5UmVmPy5kaXNwb3NlKCk7XG4gICAgICAgIHRoaXMub3ZlcmxheVJlZiA9IG51bGw7XG4gICAgfVxuXG4gICAgLyoqIEBkZXByZWNhdGVkIFRoaXMgd2lsbCBiZSByZW1vdmVkIGluIG5leHQgdmVyc2lvbiBvZiBldWkgaW4gZmF2b3Igb2YgaXNPcGVuICovXG4gICAgZ2V0IGlzUG9wb3Zlck9wZW4oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzT3BlbiQudmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgZXVpLXBvcG92ZXIgaXMgb3Blbi5cbiAgICAgKlxuICAgICAqIEB1c2FnZU5vdGVzXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxldWktcG9wb3ZlciAjcG9wb3Zlcj5cbiAgICAgKiAgICAgXFxAaWYgKHBvcG92ZXIuaXNPcGVuKSB7XG4gICAgICogICAgICAgICAgPG15LWNvbXBvbmVudD48L215LWNvbXBvbmVudD5cbiAgICAgKiAgICAgfVxuICAgICAqIDwvZXVpLXBvcG92ZXI+XG4gICAgICogYGBgXG4gICAgICogQHJldHVybnMgQSBib29sZWFuIHdpdGggdmFsdWUgYHRydWVgIHdoZW4gb3Blbiwgb3RoZXJ3aXNlIGBmYWxzZWAuXG4gICAgICovXG4gICAgZ2V0IGlzT3BlbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNPcGVuJC52YWx1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25Db250ZW50Q2hhbmdlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnBvc2l0aW9uU3RyYXRlZ3kgPSB0aGlzLmdldFBvc2l0aW9uU3RyYXRlZ3koKTtcbiAgICAgICAgdGhpcy5wb3NpdGlvblN0cmF0ZWd5VXBkYXRlJC5uZXh0KCk7XG4gICAgICAgIHRoaXMub3ZlcmxheVJlZi51cGRhdGVQb3NpdGlvblN0cmF0ZWd5KHRoaXMucG9zaXRpb25TdHJhdGVneSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogT3BlbiBhIHBvcG92ZXJcbiAgICAgKlxuICAgICAqIEBwYXJhbSBvcmlnaW4gT3JpZ2luIG9mIHRoZSBwb3BvdmVyIHBvc2l0aW9uXG4gICAgICovXG4gICAgcHVibGljIG9wZW5Qb3BvdmVyKG9yaWdpbjogRWxlbWVudFJlZik6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuaXNQb3BvdmVyT3Blbikge1xuICAgICAgICAgICAgdGhpcy5zY3JvbGxEaXNwYXRjaGVyU3Vic2NyaXB0aW9uID0gdGhpcy5zY3JvbGxEaXNwYXRjaGVyLmFuY2VzdG9yU2Nyb2xsZWQob3JpZ2luKS5zdWJzY3JpYmUoKGV2ZW50OiBDZGtTY3JvbGxhYmxlKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2Nyb2xsYWJsZVBhcmVudCA9IGV2ZW50ID8gZXZlbnQuZ2V0RWxlbWVudFJlZigpLm5hdGl2ZUVsZW1lbnQgOiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdib2R5Jyk7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLmlzVmlzaWJsZShvcmlnaW4gYXMgdW5rbm93biBhcyBIVE1MRWxlbWVudCwgc2Nyb2xsYWJsZVBhcmVudCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jbG9zZVBvcG92ZXIoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgdGhpcy5vcmlnaW4gPSBvcmlnaW47XG4gICAgICAgICAgICBjb25zdCBwb3NpdGlvblN0cmF0ZWd5ID0gdGhpcy5nZXRQb3NpdGlvblN0cmF0ZWd5KCk7XG5cbiAgICAgICAgICAgIGNvbnN0IHNjcm9sbFN0cmF0ZWd5ID0gdGhpcy5vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMucmVwb3NpdGlvbih7IHNjcm9sbFRocm90dGxlOiAxMCB9KTtcblxuICAgICAgICAgICAgdGhpcy5vdmVybGF5UmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZSh7XG4gICAgICAgICAgICAgICAgcG9zaXRpb25TdHJhdGVneSxcbiAgICAgICAgICAgICAgICBzY3JvbGxTdHJhdGVneSxcbiAgICAgICAgICAgICAgICBkaXNwb3NlT25OYXZpZ2F0aW9uOiB0cnVlLFxuICAgICAgICAgICAgICAgIHdpZHRoOiB0aGlzLndpZHRoLFxuICAgICAgICAgICAgICAgIHBhbmVsQ2xhc3M6IHRoaXMuYmFzZVN0YXRlc0RpcmVjdGl2ZS5nZXRDc3NDbGFzc2VzKCdldWktcG9wb3ZlcicpLnNwbGl0KCcgJyksXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMub3ZlcmxheVJlZi5hdHRhY2godGhpcy50ZW1wbGF0ZVBvcnRhbCk7XG5cbiAgICAgICAgICAgIHRoaXMucG9zaXRpb25TdHJhdGVneSA9IHBvc2l0aW9uU3RyYXRlZ3k7XG4gICAgICAgICAgICB0aGlzLnBvc2l0aW9uU3RyYXRlZ3lVcGRhdGUkLm5leHQoKTtcblxuICAgICAgICAgICAgdGhpcy5vdmVybGF5UmVmXG4gICAgICAgICAgICAgICAgLm91dHNpZGVQb2ludGVyRXZlbnRzKClcbiAgICAgICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzRGlzbWlzc2FibGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub3V0c2lkZUNsaWNrLmVtaXQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VQb3BvdmVyKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgdGhpcy5pc09wZW4kLm5leHQodHJ1ZSk7XG4gICAgICAgICAgICB0aGlzLnBvcG92ZXJPcGVuLmVtaXQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENsb3NlIGEgcG9wb3ZlclxuICAgICAqL1xuICAgIHB1YmxpYyBjbG9zZVBvcG92ZXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2Nyb2xsRGlzcGF0Y2hlclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLm92ZXJsYXlSZWYuZGlzcG9zZSgpO1xuICAgICAgICB0aGlzLm92ZXJsYXlSZWYgPSBudWxsO1xuICAgICAgICB0aGlzLmlzT3BlbiQubmV4dChmYWxzZSk7XG4gICAgICAgIHRoaXMucG9wb3ZlckNsb3NlLmVtaXQoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZWFjdHMgb24gdGhlIEVzYyBrZXlkb3duIGV2ZW50IHRvIGNsb3NlIHRoZSBwb3B1cC4gQ2FuIGJlIHVzZWQgYXMgYWx0ZXJuYXRpdmUgdG8gdGhlIGNsb3NlIGljb24gYnV0dG9uLFxuICAgICAqIG9yIGFzIHRoZSBtYWluIHdheSB0byBjbG9zZSB0aGUgcG9wdXAgd2hlbiBoYXNDbG9zZUJ1dHRvbiBpcyBmYWxzZVxuICAgICAqXG4gICAgICogQHBhcmFtIGV2ZW50IFRoZSBrZXkgZXZlbnQgcHJlc3NlZFxuICAgICAqL1xuICAgIHB1YmxpYyBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VzY2FwZScpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2VQb3BvdmVyKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGlzVmlzaWJsZShvcmlnaW46IEhUTUxFbGVtZW50LCBzY3JvbGxhYmxlUGFyZW50OiBIVE1MRWxlbWVudCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBvcmlnaW5ZID0gb3JpZ2luLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnk7XG4gICAgICAgIGNvbnN0IHNjcm9sbGFibGVQYXJlbnRZID0gTWF0aC5hYnMoc2Nyb2xsYWJsZVBhcmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS55KTtcbiAgICAgICAgY29uc3Qgc2Nyb2xsYWJsZVBhcmVudEhlaWdodCA9IHNjcm9sbGFibGVQYXJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0IC0gNTA7XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIChvcmlnaW5ZID4gMCAmJiBvcmlnaW5ZIDwgc2Nyb2xsYWJsZVBhcmVudEhlaWdodCkgfHxcbiAgICAgICAgICAgIChvcmlnaW5ZIC0gc2Nyb2xsYWJsZVBhcmVudFkgPiAwICYmIG9yaWdpblkgPCBzY3JvbGxhYmxlUGFyZW50WSArIHNjcm9sbGFibGVQYXJlbnRIZWlnaHQpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRQb3NpdGlvblN0cmF0ZWd5KCk6IEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneSB7XG4gICAgICAgIHJldHVybiB0aGlzLm92ZXJsYXlcbiAgICAgICAgICAgIC5wb3NpdGlvbigpXG4gICAgICAgICAgICAuZmxleGlibGVDb25uZWN0ZWRUbyh0aGlzLm9yaWdpbiBhcyBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3lPcmlnaW4pXG4gICAgICAgICAgICAud2l0aFBvc2l0aW9ucyh0aGlzLnByZWZlcnJlZFBvc2l0b25zKVxuICAgICAgICAgICAgLndpdGhGbGV4aWJsZURpbWVuc2lvbnMoZmFsc2UpXG4gICAgICAgICAgICAud2l0aExvY2tlZFBvc2l0aW9uKHRydWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0UG9zaXRpb25TdHJlYW0oKTogdm9pZCB7XG4gICAgICAgIHRoaXMucG9zaXRpb24kID0gdGhpcy5wb3NpdGlvblN0cmF0ZWd5VXBkYXRlJC5waXBlKFxuICAgICAgICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMucG9zaXRpb25TdHJhdGVneS5wb3NpdGlvbkNoYW5nZXMpLFxuICAgICAgICAgICAgbWFwKGdldFBvc2l0aW9uKSxcbiAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgICAgICBtYXAoKHBvc2l0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVjdCA9IHRoaXMub3JpZ2luLm5hdGl2ZUVsZW1lbnQgP1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9yaWdpbi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpIDpcbiAgICAgICAgICAgICAgICAgICAgKHRoaXMub3JpZ2luIGFzIHVua25vd24gYXMgSFRNTEVsZW1lbnQpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgICAgICAgIHJldHVybiBbcG9zaXRpb24sIHJlY3RdO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICk7XG4gICAgfVxufVxuIiwiPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZVBvcnRhbENvbnRlbnQ+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3RlbXBsYXRlPlxuICAgIDxkaXYgY2xhc3M9XCJldWktcG9wb3Zlcl9fY29udGFpbmVyIGV1aS1wb3BvdmVyX19jb250YWluZXItLXt7IHR5cGUgfX0gZXVpLTE4XCIgY2RrVHJhcEZvY3VzIGNka1RyYXBGb2N1c0F1dG9DYXB0dXJlIChrZXlkb3duKT1cIm9uS2V5RG93bigkZXZlbnQpXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJldWktcG9wb3Zlcl9fYXJyb3dcIiBbZXVpUG9wb3ZlckFycm93UG9zaXRpb25dPVwicG9zaXRpb24kXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpLXBvcG92ZXJfX2Fycm93LWlubmVyXCI+PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICBAaWYgKHRpdGxlKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpLXBvcG92ZXJfX2hlYWRlclwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldWktcG9wb3Zlcl9faGVhZGVyLXRpdGxlXCI+e3sgdGl0bGUgfX08L2Rpdj5cbiAgICAgICAgICAgICAgICBAaWYgKGhhc0Nsb3NlQnV0dG9uKSB7XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZXVpLXBvcG92ZXJfX2hlYWRlci1jbG9zZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2xvc2VQb3BvdmVyKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZXVpQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBldWlTaXplU1xuICAgICAgICAgICAgICAgICAgICAgICAgZXVpSWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgZXVpUm91bmRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgZXVpQmFzaWNCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJEaWFsb2cgY2xvc2UgaWNvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGV1aS1pY29uLXN2ZyBpY29uPVwiY2xvc2U6b3V0bGluZVwiPjwvZXVpLWljb24tc3ZnPlxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgICA8ZGl2IChjZGtPYnNlcnZlQ29udGVudCk9XCJvbkNvbnRlbnRDaGFuZ2UoKVwiIGNsYXNzPVwiZXVpLXBvcG92ZXJfX2NvbnRlbnRcIj5cbiAgICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -374,12 +374,12 @@ export class EuiEditorComponent {
374
374
  }
375
375
  calculateCounters(content) {
376
376
  let text;
377
- const regex = /\s+/;
377
+ const regex = /[\s\n]+/;
378
378
  if (this.format === 'html') {
379
379
  if (content && content.length > 0 && this.quill) {
380
380
  text = this.stripHtml(content);
381
381
  this.charactersCount = text.length;
382
- text = this.cleanHtml(content);
382
+ text = content.replace(/<\/(p|div|br|li|h[1-6])>/gi, ' ').replace(/<[^>]+>/g, '');
383
383
  this.wordsCount = !text ? 0 : text.trim().split(regex).filter(t => t !== '').length;
384
384
  }
385
385
  else {
@@ -392,7 +392,7 @@ export class EuiEditorComponent {
392
392
  if (content && this.quill) {
393
393
  text = this.stripHtml(this.quill.root.innerHTML);
394
394
  this.charactersCount = text.length;
395
- text = this.cleanHtml(this.quill.root.innerHTML);
395
+ text = this.quill.root.innerHTML.replace(/<\/(p|div|br|li|h[1-6])>/gi, ' ').replace(/<[^>]+>/g, '');
396
396
  this.wordsCount = !text ? 0 : text.trim().split(regex).filter(t => t !== '').length;
397
397
  }
398
398
  else {
@@ -535,4 +535,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
535
535
  type: Pipe,
536
536
  args: [{ name: 'classFilter' }]
537
537
  }] });
538
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLWVkaXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9leHRlcm5hbHMvZXVpLWVkaXRvci9ldWktZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL2V4dGVybmFscy9ldWktZWRpdG9yL2V1aS1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFFTixpQkFBaUIsRUFDakIsdUJBQXVCLEVBQ3ZCLFdBQVcsRUFFWCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFFVixZQUFZLEVBQ1osSUFBSSxHQUVQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsV0FBVyxFQUF3QixNQUFNLGdCQUFnQixDQUFDO0FBR3pGLE9BQU8sRUFBRSxxQkFBcUIsRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUc1RSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxLQUFLLE1BQU0sYUFBYSxDQUFDO0FBRWhDLE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUcvRSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQzs7Ozs7Ozs7Ozs7QUFUOUYsMEdBQTBHO0FBQzFHLE1BQU0sU0FBUyxHQUFRLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztBQVN2Qyx3Q0FBd0M7QUFDeEMsSUFBSSxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztBQWNsRCxNQUFNLE9BQU8sa0JBQWtCO0lBQzNCLElBQ0ksS0FBSztRQUNMLE9BQU87WUFDSCxZQUFZO1lBQ1osSUFBSSxDQUFDLFVBQVUs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YUFDcEMsT0FBTyxDQUFDLG9CQUFvQixFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzNDLENBQUM7OEdBTlEsZUFBZTs0R0FBZixlQUFlOzsyRkFBZixlQUFlO2tCQUQzQixJQUFJO21CQUFDLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgT25Jbml0LFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIE9uRGVzdHJveSxcbiAgICBEaXJlY3RpdmUsXG4gICAgQ29udGVudENoaWxkLFxuICAgIGZvcndhcmRSZWYsXG4gICAgRWxlbWVudFJlZixcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgUGlwZSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ29udGVudENoYW5nZSwgUXVpbGxNb2R1bGVzIH0gZnJvbSAnQGV1aS9jb21wb25lbnRzL2V4dGVybmFscy9xdWlsbCc7XG5cbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSwgQm9vbGVhbklucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb24sbm8tdW5kZXJzY29yZS1kYW5nbGUsaWQtZGVueWxpc3QsaWQtbWF0Y2hcbmNvbnN0IFF1aWxsVHlwZTogYW55ID0gd2luZG93WydRdWlsbCddO1xuaW1wb3J0IHsgc3RhcnRXaXRoLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgRGVsdGEgZnJvbSAncXVpbGwtZGVsdGEnO1xuXG5pbXBvcnQgeyBFdWlEaWFsb2dDb25maWcsIEV1aURpYWxvZ1NlcnZpY2UgfSBmcm9tICdAZXVpL2NvbXBvbmVudHMvZXVpLWRpYWxvZyc7XG5cbmltcG9ydCB7IExvYWRlclNlcnZpY2UsIEJldHRlclRhYmxlTW9kdWxlLCBCbHVyLCBFZGl0b3JDaGFuZ2VTZWxlY3Rpb24sIEZvY3VzLCBTZWxlY3Rpb25DaGFuZ2UsIFRvb2xiYXJJdGVtQ29uZmlnIH0gZnJvbSAnQGV1aS9jb21wb25lbnRzL2V4dGVybmFscy9xdWlsbCc7XG5pbXBvcnQgeyBFdWlFZGl0b3JJbWFnZURpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vaW1hZ2UtdXJsLWRpYWxvZy9pbWFnZS11cmwtZGlhbG9nLmNvbXBvbmVudCc7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJlZmVyLWNvbnN0XG5sZXQgUXVpbGxCZXR0ZXJUYWJsZSA9IHdpbmRvd1sncXVpbGxCZXR0ZXJUYWJsZSddO1xuXG5AQ29tcG9uZW50KHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICBzZWxlY3RvcjogJ2V1aS1lZGl0b3InLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9ldWktZWRpdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9zdHlsZXMvX2luZGV4LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICAvLyBUT0RPOiBDaGVjayB0byBjaGFuZ2UgdGhlIHByb3ZpZGluZyB3YXkuIFByb3ZpZGUgd2l0aCBpbmplY3RvciByZWZlcmVuY2VcbiAgICAgICAgRXVpRGlhbG9nU2VydmljZSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBFdWlFZGl0b3JDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICAgIGdldCBjbGFzcygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgJ2V1aS1lZGl0b3InLFxuICAgICAgICAgICAgdGhpcy5pc1JlYWRPbmx5ID8gJ2V1aS1lZGl0b3ItLXJlYWRvbmx5JyA6ICcnLFxuICAgICAgICAgICAgdGhpcy5pc1JlYWRPbmx5ICYmIHRoaXMudmFsdWUgPyAnJzogJ2V1aS1lZGl0b3ItLWVtcHR5JyxcbiAgICAgICAgICAgICF0aGlzLmlzUmVhZE9ubHkgPyAnZXVpLWVkaXRvci13cmFwcGVyJyA6ICcnLFxuICAgICAgICBdLmpvaW4oJyAnKS50cmltKCk7XG4gICAgfVxuICAgIEBJbnB1dCgpIGUyZUF0dHIgPSAnZXVpLWVkaXRvcic7XG4gICAgQElucHV0KCkgaWQ6IHN0cmluZztcbiAgICBASW5wdXQoKSBwbGFjZWhvbGRlciA9ICcnO1xuICAgIEBJbnB1dCgpIGZvcm1hdDogJ2h0bWwnIHwgJ2pzb24nID0gJ2h0bWwnO1xuICAgIEBJbnB1dCgpIHRoZW1lOiAnc25vdycgfCAnYnViYmxlJyA9ICdzbm93JztcbiAgICBASW5wdXQoKSBkZWJ1ZzogJ3dhcm4nIHwgJ2xvZycgfCAnZXJyb3InIHwgZmFsc2UgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBjdXN0b21Ub29sYmFyUG9zaXRpb246ICd0b3AnIHwgJ2JvdHRvbScgPSAndG9wJztcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIudGFiaW5kZXgnKVxuICAgIEBJbnB1dCgpIHRhYmluZGV4ID0gJzAnO1xuICAgIEBJbnB1dCgpIG1vZHVsZXM6IFF1aWxsTW9kdWxlcztcbiAgICBASW5wdXQoKSBmb3JtYXRzPzogc3RyaW5nW10gfCBudWxsO1xuICAgIC8vIE5FVyBFVUkgSU5QVVRTXG4gICAgQElucHV0KCkgY3VzdG9tVG9vbGJhckNvbmZpZzogVG9vbGJhckl0ZW1Db25maWdbXTtcbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLmhlaWdodCcpXG4gICAgQElucHV0KCkgaGVpZ2h0OiBzdHJpbmc7XG4gICAgLy8gTkVXIE9VVFBVVFMgPT4gZVVJMTMrIG9ubHlcbiAgICBAT3V0cHV0KCkgZWRpdG9yQ3JlYXRlID0gbmV3IEV2ZW50RW1pdHRlcjx0eXBlb2YgUXVpbGxUeXBlPigpO1xuICAgIEBPdXRwdXQoKSBlZGl0b3JDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEVkaXRvckNoYW5nZVNlbGVjdGlvbiB8IENvbnRlbnRDaGFuZ2U+KCk7XG4gICAgQE91dHB1dCgpIGNvbnRlbnRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPENvbnRlbnRDaGFuZ2U+KCk7XG4gICAgQE91dHB1dCgpIHNlbGVjdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8U2VsZWN0aW9uQ2hhbmdlPigpO1xuICAgIEBPdXRwdXQoKSBmb2N1cyA9IG5ldyBFdmVudEVtaXR0ZXI8Rm9jdXM+KCk7XG4gICAgQE91dHB1dCgpIGJsdXIgPSBuZXcgRXZlbnRFbWl0dGVyPEJsdXI+KCk7XG4gICAgQE91dHB1dCgpIGNoYXJhY3RlcnNDb3VudENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuICAgIEBPdXRwdXQoKSB3b3Jkc0NvdW50Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmV1aS1lZGl0b3InKSB0cnVlOiBib29sZWFuO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLnJlYWRvbmx5JylcbiAgICBnZXQgcmVhZG9ubHkoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNSZWFkT25seSA/ICdyZWFkb25seScgOiBudWxsO1xuICAgIH1cblxuICAgIHB1YmxpYyB2YWx1ZTogc3RyaW5nIHwgYW55ID0gJyc7XG4gICAgcHVibGljIGNoYXJhY3RlcnNDb3VudCA9IDA7XG4gICAgcHVibGljIHdvcmRzQ291bnQgPSAwO1xuICAgIHB1YmxpYyBieXRlc0NvdW50ID0gMDtcbiAgICBwdWJsaWMgaXNGb2N1c2VkID0gZmFsc2U7XG4gICAgcHVibGljIGdlbmVyYXRlZElkOiBzdHJpbmc7XG4gICAgcHVibGljIGZvcm1Db250cm9sOiBGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xuICAgIHB1YmxpYyBqc29uVG9IdG1sQ29udGVudDogc3RyaW5nO1xuICAgIHB1YmxpYyB0b29sYmFyQ29uZmlnOiB7IFtpZDogc3RyaW5nXTogeyBsYWJlbDogc3RyaW5nOyBvcHRpb25zOiBhbnlbXTsgZGlhbG9nTWVzc2FnZTogc3RyaW5nIH0gfTtcbiAgICBwcm90ZWN0ZWQgcmVhZHlUb1JlbmRlcjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1sZW5cbiAgICBAQ29udGVudENoaWxkKGZvcndhcmRSZWYoKCkgPT4gRXVpRWRpdG9yQ3VzdG9tVG9vbGJhclRhZ0RpcmVjdGl2ZSksIHsgc3RhdGljOiBmYWxzZSB9KVxuICAgIGV1aUVkaXRvckN1c3RvbVRvb2xiYXI6IEV1aUVkaXRvckN1c3RvbVRvb2xiYXJUYWdEaXJlY3RpdmU7XG5cbiAgICBASW5wdXQoKVxuICAgIGdldCBpc1JlYWRPbmx5KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNSZWFkT25seTtcbiAgICB9XG4gICAgc2V0IGlzUmVhZE9ubHkodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9pc1JlYWRPbmx5ID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaXNSZWFkT25seSA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IHNob3dDb3VudGVycygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Nob3dDb3VudGVycztcbiAgICB9XG4gICAgc2V0IHNob3dDb3VudGVycyh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX3Nob3dDb3VudGVycyA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX3Nob3dDb3VudGVycyA9IHRydWU7XG4gICAgQElucHV0KClcbiAgICBnZXQgaXNFbmFibGVkT25Gb2N1cygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzRW5hYmxlZE9uRm9jdXM7XG4gICAgfVxuICAgIHNldCBpc0VuYWJsZWRPbkZvY3VzKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuX2lzRW5hYmxlZE9uRm9jdXMgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9pc0VuYWJsZWRPbkZvY3VzID0gZmFsc2U7XG4gICAgQElucHV0KClcbiAgICBnZXQgaXNNaW5pbWFsVG9vbGJhcigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzTWluaW1hbFRvb2xiYXI7XG4gICAgfVxuICAgIHNldCBpc01pbmltYWxUb29sYmFyKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5faXNNaW5pbWFsVG9vbGJhciA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX2lzTWluaW1hbFRvb2xiYXIgPSBmYWxzZTtcblxuICAgIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWludmFsaWQnKVxuICAgIGdldCBpc0ludmFsaWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0ludmFsaWQ7XG4gICAgfVxuICAgIHNldCBpc0ludmFsaWQodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9pc0ludmFsaWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9pc0ludmFsaWQgPSBmYWxzZTtcblxuICAgIHByaXZhdGUgcXVpbGw6IHR5cGVvZiBRdWlsbFR5cGU7XG4gICAgcHJpdmF0ZSBtaW5pbWFsVG9vbGJhckNvbmZpZzogVG9vbGJhckl0ZW1Db25maWdbXSA9IFtcbiAgICAgICAgeyBuYW1lOiAnaGVhZGluZ3MnIH0sXG4gICAgICAgIHsgbmFtZTogJ2JvbGQnIH0sXG4gICAgICAgIHsgbmFtZTogJ2l0YWxpYycgfSxcbiAgICAgICAgeyBuYW1lOiAndW5kZXJsaW5lJyB9LFxuICAgICAgICB7IG5hbWU6ICdmb250Q29sb3InIH0sXG4gICAgICAgIHsgbmFtZTogJ3RleHRBbGlnbicgfSxcbiAgICAgICAgeyBuYW1lOiAnbGluaycgfSxcbiAgICAgICAgeyBuYW1lOiAnaW1hZ2UnIH0sXG4gICAgICAgIHsgbmFtZTogJ2ltYWdlVXJsJyB9LFxuICAgICAgICB7IG5hbWU6ICdjbGVhbicgfSxcbiAgICAgICAgeyBuYW1lOiAnZGVsZXRlJyB9LFxuICAgICAgICB7IG5hbWU6ICd1bmRvJyB9LFxuICAgICAgICB7IG5hbWU6ICdyZWRvJyB9LFxuICAgICAgICB7IG5hbWU6ICdjb3VudGVycycgfSxcbiAgICBdO1xuICAgIHByaXZhdGUgZGVmYXVsdFRvb2xiYXJDb25maWc6IFRvb2xiYXJJdGVtQ29uZmlnW10gPSBbXG4gICAgICAgIHsgbmFtZTogJ2hlYWRpbmdzJywgbGFiZWw6ICdTdHlsZSAtIEFwcGx5IGFuIEhUTUwgdGFnIG9yIENTUyBjbGFzcyB0byB0aGUgc2VsZWN0ZWQgdGV4dCcsIG9wdGlvbnM6IFsxLCAyLCAzLCA0LCA1LCA2XSB9LFxuICAgICAgICB7IG5hbWU6ICdmb250JywgbGFiZWw6ICdGb250IC0gQ2hhbmdlIHRoZSBmb250IGZhY2UnIH0sXG4gICAgICAgIHsgbmFtZTogJ2JvbGQnLCBsYWJlbDogJ0JvbGQgKEN0cmwgKyBCKSAtIE1ha2UgdGhlIHNlbGVjdGVkIHRleHQgYm9sZCcgfSxcbiAgICAgICAgeyBuYW1lOiAnaXRhbGljJywgbGFiZWw6ICdJdGFsaWMgKEN0cmwgKyBJKSAtIEl0YWxpY2l6ZSB0aGUgc2VsZWN0ZWQgdGV4dCcgfSxcbiAgICAgICAgeyBuYW1lOiAndW5kZXJsaW5lJywgbGFiZWw6ICdVbmRlcmxpbmUgKEN0cmwgKyBVKSAtIFVuZGVybGluZSB0aGUgc2VsZWN0ZWQgdGV4dCcgfSxcbiAgICAgICAgeyBuYW1lOiAnc3RyaWtlJywgbGFiZWw6ICdTdHJpa2V0aHJvdWdoIC0gRHJhdyBhIGxpbmUgdG8gdGhlIG1pZGRsZSBvZiB0aGUgc2VsZWN0ZWQgdGV4dCcgfSxcbiAgICAgICAgeyBuYW1lOiAnZm9udENvbG9yJywgbGFiZWw6ICdGb250IENvbG9yIC0gQ2hhbmdlIHRoZSB0ZXh0IGNvbG9yJyB9LFxuICAgICAgICB7IG5hbWU6ICdmb250QmFja2dyb3VuZCcsIGxhYmVsOiAnRm9udCBCYWNrZ3JvdW5kIC0gQ2hhbmdlIHRoZSB0ZXh0IGJhY2tncm91bmQgY29sb3InIH0sXG4gICAgICAgIHsgbmFtZTogJ3N1YnNjcmlwdCcsIGxhYmVsOiAnU3Vic2NyaXB0IC0gQ3JlYXRlIHNzbWFsbCBsZXR0ZXJzIGJlbG93IHRoZSB0ZXh0IGJhc2VsaW5lJyB9LFxuICAgICAgICB7IG5hbWU6ICdzdXBlcnNjcmlwdCcsIGxhYmVsOiAnU3VwZXJzY3JpcHQgLSBDcmVhdGUgc21hbGwgbGV0dGVycyBhYm92ZSB0aGUgbGluZSBvZiB0aGUgdGV4dCcgfSxcbiAgICAgICAgeyBuYW1lOiAndGV4dEFsaWduJywgbGFiZWw6ICdUZXh0IEFsaWduIC0gQWxpZ24gdGhlIHRleHQgdG8gdGhlIHNlbGVjdGVkIHBvc2l0aW9uOiBsZWZ0IChkZWZhdWx0KSwgY2VudGVyLCByaWdodCBvciBqdXN0aWZ5JyB9LFxuICAgICAgICB7IG5hbWU6ICdvcmRlcmVkTGlzdCcsIGxhYmVsOiAnTnVtYmVyaW5nIC0gU3RhcnQgYW4gb3JkZXJlZCBsaXN0JyB9LFxuICAgICAgICB7IG5hbWU6ICdidWxsZXRMaXN0JywgbGFiZWw6ICdCdWxsZXRzIC0gU3RhcnQgYSBidWxsZXRlZCBsaXN0JyB9LFxuICAgICAgICB7IG5hbWU6ICdpbmRlbnRMZXNzJywgbGFiZWw6ICdEZWNyZWFzZSBJbmRlbnQgLSBEZWNyZWFzZSB0aGUgaW5kZW50IGxldmVsIG9mIHRoZSBwYXJhZ3JhcGgnIH0sXG4gICAgICAgIHsgbmFtZTogJ2luZGVudE1vcmUnLCBsYWJlbDogJ0luY3JlYXNlIEluZGVudCAtIEluY3JlYXNlIHRoZSBpbmRlbnQgbGV2ZWwgb2YgdGhlIHBhcmFncmFwaCcgfSxcbiAgICAgICAgeyBuYW1lOiAnYmxvY2txdW90ZScsIGxhYmVsOiAnQmxvY2txdW90ZSAtIENyZWF0ZSBhIHF1b3RlZCBibG9jayBvZiB0aGUgc2VsZWN0ZWQgdGV4dCcgfSxcbiAgICAgICAgeyBuYW1lOiAnY29kZUJsb2NrJywgbGFiZWw6ICdJbnNlcnQgQ29kZSBCbG9jayAtIEluc2VydCBhIGNvZGUgYmxvY2sgYXQgdGhlIGN1cnNvciByb3cgcG9zaXRpb24nIH0sXG4gICAgICAgIHsgbmFtZTogJ2xpbmsnLCBsYWJlbDogJ0luc2VydCBIeXBlcmxpbmsgKEN0cmwgKyBLKSAtIENyZWF0ZSBhIGxpbmsgdG8gYSBXZWIgcGFnZSwgYSBwaWN0dXJlLCBhbiBlLW1haWwgYWRkcmVzcyBvciBhIHByb2dyYW0nIH0sXG4gICAgICAgIHsgbmFtZTogJ2ltYWdlJywgbGFiZWw6ICdJbnNlcnQgUGljdHVyZSAtIEluc2VydCBhIHBpY3R1cmUgZnJvbSBhIGZpbGUnIH0sXG4gICAgICAgIHsgbmFtZTogJ2ltYWdlVXJsJywgbGFiZWw6ICdJbnNlcnQgUGljdHVyZSBmcm9tIFVSTCAtIEluc2VydCBhIHBpY3R1cmUgZnJvbSBhIHJlbW90ZSBVUkwnLCBkaWFsb2dNZXNzYWdlOiAnRW50ZXIgaW1hZ2UgbGluayBVUkwnIH0sXG4gICAgICAgIHsgbmFtZTogJ3ZpZGVvJywgbGFiZWw6ICdJbnNlcnQgVmlkZW8gLSBJbnNlcnQgYSB2aWRlbyBmcm9tIGEgZmlsZScgfSxcbiAgICAgICAgeyBuYW1lOiAndGFibGUnLCBsYWJlbDogJ0luc2VydCBUYWJsZSAtIEluc2VydCBhIDN4MyByb3dzL2NvbHMgdGFibGUnIH0sXG4gICAgICAgIHsgbmFtZTogJ2NsZWFuJywgbGFiZWw6ICdSZW1vdmUgU3R5bGVzIC0gUmVtb3ZlIHRoZSBzdHlsZXMgb2YgdGhlIHNlbGVjdGVkIHRleHQnIH0sXG4gICAgICAgIHsgbmFtZTogJ2RlbGV0ZScsIGxhYmVsOiBcIkRlbGV0ZSBjb250ZW50IC0gUGVybWFuZW50bHkgZGVsZXRlcyBlZGl0b3IncyBjb250ZW50c1wiIH0sXG4gICAgICAgIHsgbmFtZTogJ3VuZG8nLCBsYWJlbDogJ1VuZG8gKEN0cmwgKyBaKSAtIENhbmNlbHMgdGhlIHByZXZpb3VzIGFjdGlvbicgfSxcbiAgICAgICAgeyBuYW1lOiAncmVkbycsIGxhYmVsOiAnUmVkbyAoQ3RybCArIFkpIC0gRG8gdGhlIG5leHQgaGlzdG9yeSBhY3Rpb24gYWdhaW4nIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdjb3VudGVycycsXG4gICAgICAgICAgICBsYWJlbDogJ0NvdW50ZXJzIC0gQ2hhcmFjdGVycyBhbmQgd29yZHMgY291bnRlcnMgKHN0cmlwcGVkIEh0bWwpJyxcbiAgICAgICAgICAgIG9wdGlvbnM6IFtcbiAgICAgICAgICAgICAgICB7IG5hbWU6ICdjaGFyYWN0ZXJzJywgbGFiZWw6ICdDaGFyYWN0ZXJzJyB9LFxuICAgICAgICAgICAgICAgIHsgbmFtZTogJ3dvcmRzJywgbGFiZWw6ICdXb3JkcycgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgXTtcbiAgICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZXVpRGlhbG9nU2VydmljZTogRXVpRGlhbG9nU2VydmljZSxcbiAgICAgICAgICAgICAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBuZ0NvbnRyb2w6IE5nQ29udHJvbCxcbiAgICAgICAgICAgICAgICBwcml2YXRlIGxvYWRlcjogTG9hZGVyU2VydmljZSkge1xuICAgICAgICB0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5sb2FkZXIubG9hZCgpLnN1YnNjcmliZSh7XG4gICAgICAgICAgICBjb21wbGV0ZTogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucmVhZHlUb1JlbmRlciA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5uZ0NvbnRyb2wuc3RhdHVzQ2hhbmdlcy5waXBlKHN0YXJ0V2l0aCh0aGlzLm5nQ29udHJvbC5jb250cm9sLnN0YXR1cyksIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKChzdGF0dXMpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0ludmFsaWQgPSBzdGF0dXMgIT09ICdWQUxJRCc7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLmdlbmVyYXRlZElkID0gdGhpcy5pZCA/IHRoaXMuaWQgOiAnZXVpLWVkaXRvci0nICsgKE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDEwMDAwMDApICsgMSkudG9TdHJpbmcoKTtcblxuICAgICAgICAgICAgICAgIHRoaXMudG9vbGJhckNvbmZpZyA9IHt9O1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5jdXN0b21Ub29sYmFyQ29uZmlnICYmICF0aGlzLmlzTWluaW1hbFRvb2xiYXIpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kZWZhdWx0VG9vbGJhckNvbmZpZy5mb3JFYWNoKCh0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRvb2xiYXJDb25maWcgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4udGhpcy50b29sYmFyQ29uZmlnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0Lm5hbWVdOiB7IGxhYmVsOiB0LmxhYmVsLCBvcHRpb25zOiB0Lm9wdGlvbnMsIGRpYWxvZ01lc3NhZ2U6IHQuZGlhbG9nTWVzc2FnZSB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuY3VzdG9tVG9vbGJhckNvbmZpZyAmJiAhdGhpcy5pc01pbmltYWxUb29sYmFyKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3VzdG9tVG9vbGJhckNvbmZpZy5mb3JFYWNoKCh0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsYWJlbCA9ICF0LmxhYmVsID8gdGhpcy5kZWZhdWx0VG9vbGJhckNvbmZpZy5maW5kKChjKSA9PiBjLm5hbWUgPT09IHQubmFtZSkubGFiZWwgOiB0LmxhYmVsO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG9wdGlvbnMgPSAhdC5vcHRpb25zID8gdGhpcy5kZWZhdWx0VG9vbGJhckNvbmZpZy5maW5kKChjKSA9PiBjLm5hbWUgPT09IHQubmFtZSkub3B0aW9ucyA6IHQub3B0aW9ucztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGQgPSAhdC5kaWFsb2dNZXNzYWdlID8gdGhpcy5kZWZhdWx0VG9vbGJhckNvbmZpZy5maW5kKChjKSA9PiBjLm5hbWUgPT09IHQubmFtZSkuZGlhbG9nTWVzc2FnZSA6IHQuZGlhbG9nTWVzc2FnZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHQubmFtZSA9PT0gJ2NvdW50ZXJzJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdC5vcHRpb25zKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMgPSB0aGlzLmRlZmF1bHRUb29sYmFyQ29uZmlnLmZpbmQoKGMpID0+IGMubmFtZSA9PT0gdC5uYW1lKS5vcHRpb25zO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMgPSB0Lm9wdGlvbnMubWFwKChvcHRpb24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbkxhYmVsID0gb3B0aW9uLmxhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBvcHRpb24ubGFiZWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHRoaXMuZGVmYXVsdFRvb2xiYXJDb25maWdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmZpbmQoKGR0YykgPT4gZHRjLm5hbWUgPT09ICdjb3VudGVycycpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5vcHRpb25zLmZpbmQoKG8pID0+IG8ubmFtZSA9PT0gb3B0aW9uLm5hbWUpLmxhYmVsO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgbmFtZTogb3B0aW9uLm5hbWUsIGxhYmVsOiBvcHRpb25MYWJlbCB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudG9vbGJhckNvbmZpZyA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi50aGlzLnRvb2xiYXJDb25maWcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3QubmFtZV06IHsgbGFiZWwsIG9wdGlvbnMsIGRpYWxvZ01lc3NhZ2U6IGQgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzTWluaW1hbFRvb2xiYXIpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5taW5pbWFsVG9vbGJhckNvbmZpZy5mb3JFYWNoKCh0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsYWJlbCA9ICF0LmxhYmVsID8gdGhpcy5kZWZhdWx0VG9vbGJhckNvbmZpZy5maW5kKChjKSA9PiBjLm5hbWUgPT09IHQubmFtZSkubGFiZWwgOiB0LmxhYmVsO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9ICF0Lm9wdGlvbnMgPyB0aGlzLmRlZmF1bHRUb29sYmFyQ29uZmlnLmZpbmQoKGMpID0+IGMubmFtZSA9PT0gdC5uYW1lKS5vcHRpb25zIDogdC5vcHRpb25zO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZCA9ICF0LmRpYWxvZ01lc3NhZ2UgPyB0aGlzLmRlZmF1bHRUb29sYmFyQ29uZmlnLmZpbmQoKGMpID0+IGMubmFtZSA9PT0gdC5uYW1lKS5kaWFsb2dNZXNzYWdlIDogdC5kaWFsb2dNZXNzYWdlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRvb2xiYXJDb25maWcgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4udGhpcy50b29sYmFyQ29uZmlnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0Lm5hbWVdOiB7IGxhYmVsLCBvcHRpb25zLCBkaWFsb2dNZXNzYWdlOiBkIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQudW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycpXG4gICAgQEhvc3RMaXN0ZW5lcignZm9jdXNpbicpXG4gICAgcHVibGljIGVuYWJsZUVkaXRvck9uRm9jdXMoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzRW5hYmxlZE9uRm9jdXMgJiYgdGhpcy5pc1JlYWRPbmx5KSB7XG4gICAgICAgICAgICB0aGlzLmlzUmVhZE9ubHkgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBpbWFnZVVybEhhbmRsZXIoKTogdm9pZCB7XG4gICAgICAgIGxldCBpbWFnZVVybERpYWxvZ0Zvcm06IEZvcm1Hcm91cCA9IG51bGw7XG4gICAgICAgIHRoaXMuZXVpRGlhbG9nU2VydmljZS5vcGVuRGlhbG9nKFxuICAgICAgICAgICAgbmV3IEV1aURpYWxvZ0NvbmZpZyh7XG4gICAgICAgICAgICAgICAgdGl0bGU6IHRoaXMudG9vbGJhckNvbmZpZy5pbWFnZVVybC5kaWFsb2dNZXNzYWdlLFxuICAgICAgICAgICAgICAgIGlzSGFuZGxlQ2xvc2VPbkFjY2VwdDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBib2R5Q29tcG9uZW50OiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudDogRXVpRWRpdG9ySW1hZ2VEaWFsb2dDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZzoge1xuICAgICAgICAgICAgICAgICAgICAgICAgb25Gb3JtVmFsdWVDaGFuZ2U6IChmb3JtOiBGb3JtR3JvdXApOiB2b2lkID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbWFnZVVybERpYWxvZ0Zvcm0gPSBmb3JtO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGFjY2VwdDogKCk6IHZvaWQgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaW1hZ2VVcmxEaWFsb2dGb3JtICYmIGltYWdlVXJsRGlhbG9nRm9ybS52YWxpZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ldWlEaWFsb2dTZXJ2aWNlLmNsb3NlRGlhbG9nKCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJhbmdlID0gdGhpcy5xdWlsbC5nZXRTZWxlY3Rpb24oKSB8fCB7IGluZGV4OiAwLCBsZW5ndGg6IDAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucXVpbGwuaW5zZXJ0RW1iZWQocmFuZ2UuaW5kZXgsICdpbWFnZScsIGltYWdlVXJsRGlhbG9nRm9ybS5nZXQoJ3VybCcpLnZhbHVlLCAndXNlcicpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIGVkaXRvclVuZG8oKTogdm9pZCB7XG4gICAgICAgIHRoaXMucXVpbGxbJ2hpc3RvcnknXS51bmRvKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGVkaXRvclJlZG8oKTogdm9pZCB7XG4gICAgICAgIHRoaXMucXVpbGxbJ2hpc3RvcnknXS5yZWRvKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGVkaXRvckRlbGV0ZUNvbnRlbnQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IG5ldyBFdWlEaWFsb2dDb25maWcoe1xuICAgICAgICAgICAgdGl0bGU6ICdEZWxldGUgY29udGVudCcsXG4gICAgICAgICAgICBjb250ZW50OiBcIjxwPkFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgZWRpdG9yJ3MgY29udGVudD88L3A+XCIsXG4gICAgICAgICAgICBoYXNDbG9zZUJ1dHRvbjogZmFsc2UsXG4gICAgICAgICAgICBhY2NlcHQ6ICgpOiB2b2lkID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnF1aWxsLnNldENvbnRlbnRzKG51bGwpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5ldWlEaWFsb2dTZXJ2aWNlLm9wZW5EaWFsb2coY29uZmlnKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaW5zZXJ0VGFibGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudGFibGVNb2R1bGUuaW5zZXJ0VGFibGUoMywgMyk7XG4gICAgfVxuXG4gICAgZ2V0IGhhc0ltYWdlRmVhdHVyZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZXVpRWRpdG9yQ3VzdG9tVG9vbGJhclxuICAgICAgICAgICAgPyB0aGlzLmV1aUVkaXRvckN1c3RvbVRvb2xiYXI/LmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcucWwtaW1hZ2UnKVxuICAgICAgICAgICAgOiB0aGlzLnRvb2xiYXJDb25maWcuaW1hZ2U7XG4gICAgfVxuXG4gICAgcHVibGljIF9vbkVkaXRvckNyZWF0ZWQocXVpbGw6IHR5cGVvZiBRdWlsbFR5cGUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5xdWlsbCA9IHF1aWxsO1xuXG4gICAgICAgIGlmICh0aGlzLmlzRW5hYmxlZE9uRm9jdXMpIHtcbiAgICAgICAgICAgIHRoaXMucXVpbGwuZm9jdXMoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmZvcm1hdCA9PT0gJ2h0bWwnKSB7XG4gICAgICAgICAgICBjb25zdCBkZWx0YSA9IHRoaXMucXVpbGwuY2xpcGJvYXJkLmNvbnZlcnQoeyBodG1sOiB0aGlzLnZhbHVlIGFzIHN0cmluZyB9KTtcbiAgICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2wucGF0Y2hWYWx1ZShkZWx0YSk7XG4gICAgICAgICAgICB0aGlzLnF1aWxsLnNldENvbnRlbnRzKGRlbHRhKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmZvcm1hdCA9PT0gJ2pzb24nKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm1Db250cm9sLnBhdGNoVmFsdWUodGhpcy52YWx1ZSk7XG4gICAgICAgICAgICB0aGlzLnF1aWxsLnNldENvbnRlbnRzKEpTT04ucGFyc2UodGhpcy52YWx1ZSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLmhhc0ltYWdlRmVhdHVyZSkge1xuICAgICAgICAgICAgcXVpbGwuY2xpcGJvYXJkLmFkZE1hdGNoZXIoJ0lNRycsIChlbGVtZW50OiBFbGVtZW50LCBkZWx0YTogRGVsdGEpID0+IG5ldyBEZWx0YSgpLmluc2VydCgnJykpO1xuICAgICAgICAgICAgcXVpbGwuY2xpcGJvYXJkLmFkZE1hdGNoZXIoJ1BJQ1RVUkUnLCAoZWxlbWVudDogRWxlbWVudCwgZGVsdGE6IERlbHRhKSA9PiBuZXcgRGVsdGEoKS5pbnNlcnQoJycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZWRpdG9yQ3JlYXRlLmVtaXQocXVpbGwpO1xuICAgIH1cblxuICAgIHB1YmxpYyBfb25FZGl0b3JDaGFuZ2VkKGV2ZW50OiBFZGl0b3JDaGFuZ2VTZWxlY3Rpb24gfCBDb250ZW50Q2hhbmdlIHwgRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc29sZS53YXJuKCdvbkVkaXRvckNoYW5nZWQoKSBldmVudCBpcyBERVBSRUNBVEVEIHBsZWFzZSB1c2UgY29udGVudENoYW5nZSgpIGV2ZW50IGluc3RlYWQuJyk7XG4gICAgICAgIHRoaXMuZWRpdG9yQ2hhbmdlLmVtaXQoZXZlbnQgYXMgRWRpdG9yQ2hhbmdlU2VsZWN0aW9uKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgX29uQ29udGVudENoYW5nZWQoZXZlbnQ6IENvbnRlbnRDaGFuZ2UpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZm9ybWF0ID09PSAnaHRtbCcpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSBldmVudC5odG1sO1xuICAgICAgICAgICAgdGhpcy5jYWxjdWxhdGVDb3VudGVycyh0aGlzLnZhbHVlIGFzIHN0cmluZyk7XG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuaHRtbEVudGl0aWVzRGVjb2RlKHRoaXMudmFsdWUgYXMgc3RyaW5nKSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuZm9ybWF0ID09PSAnanNvbicpIHtcbiAgICAgICAgICAgIGlmIChldmVudC50ZXh0ICE9PSAnXFxuJykge1xuICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSBldmVudC5jb250ZW50O1xuICAgICAgICAgICAgICAgIHRoaXMuY2FsY3VsYXRlQ291bnRlcnMoZXZlbnQudGV4dCk7XG4gICAgICAgICAgICAgICAgdGhpcy5qc29uVG9IdG1sQ29udGVudCA9IHRoaXMuaHRtbEVudGl0aWVzRGVjb2RlKEpTT04uc3RyaW5naWZ5KHRoaXMudmFsdWUpKTtcbiAgICAgICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuanNvblRvSHRtbENvbnRlbnQpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gbnVsbDtcbiAgICAgICAgICAgICAgICB0aGlzLmNhbGN1bGF0ZUNvdW50ZXJzKCcnKTtcbiAgICAgICAgICAgICAgICB0aGlzLmpzb25Ub0h0bWxDb250ZW50ID0gJyc7XG4gICAgICAgICAgICAgICAgdGhpcy5vbkNoYW5nZShudWxsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNvbnRlbnRDaGFuZ2UuZW1pdChldmVudCk7IC8vIE5ldyBlbWl0dGVyXG4gICAgICAgIHRoaXMuX29uRWRpdG9yQ2hhbmdlZChldmVudCk7IC8vIFN5bmMgd2l0aCBlZGl0b3IgY2hhbmdlIGV2ZW50IHNpbmNlIGl0J3MgZHVwbGljYXRlZCBldmVudFxuICAgIH1cblxuICAgIHB1YmxpYyBfb25TZWxlY3Rpb25DaGFuZ2VkKGV2ZW50OiBTZWxlY3Rpb25DaGFuZ2UpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UuZW1pdChldmVudCk7XG4gICAgfVxuXG4gICAgcHVibGljIF9vbkZvY3VzKGV2ZW50OiBGb2N1cyk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzRm9jdXNlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuZm9jdXMuZW1pdChldmVudCk7XG4gICAgfVxuXG4gICAgcHVibGljIF9vbkJsdXIoZXZlbnQ6IEJsdXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc0ZvY3VzZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5vblRvdWNoKCk7XG4gICAgICAgIHRoaXMuYmx1ci5lbWl0KGV2ZW50KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVG91Y2ggPSBmbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZSB8fCBudWxsO1xuICAgICAgICB0aGlzLmpzb25Ub0h0bWxDb250ZW50ID0gdGhpcy52YWx1ZTtcblxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLnF1aWxsKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZm9ybWF0ID09PSAnaHRtbCcpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGVsdGEgPSB0aGlzLnF1aWxsLmNsaXBib2FyZC5jb252ZXJ0KHsgaHRtbDogdGhpcy52YWx1ZSBhcyBzdHJpbmcgfSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2wucGF0Y2hWYWx1ZShkZWx0YSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucXVpbGwuc2V0Q29udGVudHMoZGVsdGEpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmZvcm1hdCA9PT0gJ2pzb24nKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2wucGF0Y2hWYWx1ZSh0aGlzLnZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gdGhpcy5xdWlsbC5zZXRDb250ZW50cyhKU09OLnBhcnNlKHRoaXMudmFsdWUpKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0aGlzLmNhbGN1bGF0ZUNvdW50ZXJzKHRoaXMudmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCB0YWJsZU1vZHVsZSgpOiBCZXR0ZXJUYWJsZU1vZHVsZSB7XG4gICAgICAgIHJldHVybiB0aGlzLnF1aWxsLmdldE1vZHVsZSgnYmV0dGVyLXRhYmxlJyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbkNoYW5nZTogYW55ID0gKCkgPT4ge307XG5cbiAgICBwcml2YXRlIG9uVG91Y2g6IGFueSA9ICgpID0+IHt9O1xuXG4gICAgcHJpdmF0ZSBodG1sRW50aXRpZXNEZWNvZGUoY29udGVudDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IGMgPSBjb250ZW50O1xuICAgICAgICBpZiAoYykge1xuICAgICAgICAgICAgYyA9IGMucmVwbGFjZSgnJmFtcDsnLCAnJicpO1xuICAgICAgICAgICAgYyA9IGMucmVwbGFjZSgnJm5ic3A7JywgJyAnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjO1xuICAgIH1cblxuICAgIGdldCBoYXNDaGFyYWN0ZXJzQ291bnRlcigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudG9vbGJhckNvbmZpZy5jb3VudGVycy5vcHRpb25zLmZpbmQoKG8pID0+IG8ubmFtZSA9PT0gJ2NoYXJhY3RlcnMnKTtcbiAgICB9XG5cbiAgICBnZXQgY2hhcmFjdGVyc0NvdW50ZXJMYWJlbCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy50b29sYmFyQ29uZmlnLmNvdW50ZXJzLm9wdGlvbnMuZmluZCgobykgPT4gby5uYW1lID09PSAnY2hhcmFjdGVycycpPy5sYWJlbDtcbiAgICB9XG5cbiAgICBnZXQgaGFzV29yZHNDb3VudGVyKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy50b29sYmFyQ29uZmlnLmNvdW50ZXJzLm9wdGlvbnMuZmluZCgobykgPT4gby5uYW1lID09PSAnd29yZHMnKTtcbiAgICB9XG5cbiAgICBnZXQgd29yZHNDb3VudGVyTGFiZWwoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudG9vbGJhckNvbmZpZy5jb3VudGVycy5vcHRpb25zLmZpbmQoKG8pID0+IG8ubmFtZSA9PT0gJ3dvcmRzJyk/LmxhYmVsO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2FsY3VsYXRlQ291bnRlcnMoY29udGVudDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGxldCB0ZXh0OiBzdHJpbmc7XG4gICAgICAgIGNvbnN0IHJlZ2V4ID0gL1xccysvO1xuICAgICAgICBpZiAodGhpcy5mb3JtYXQgPT09ICdodG1sJykge1xuICAgICAgICAgICAgaWYgKGNvbnRlbnQgJiYgY29udGVudC5sZW5ndGggPiAwICYmIHRoaXMucXVpbGwpIHtcbiAgICAgICAgICAgICAgICB0ZXh0ID0gdGhpcy5zdHJpcEh0bWwoY29udGVudCk7XG4gICAgICAgICAgICAgICAgdGhpcy5jaGFyYWN0ZXJzQ291bnQgPSB0ZXh0Lmxlbmd0aDtcbiAgICAgICAgICAgICAgICB0ZXh0ID0gdGhpcy5jbGVhbkh0bWwoY29udGVudCk7XG4gICAgICAgICAgICAgICAgdGhpcy53b3Jkc0NvdW50ID0gIXRleHQgPyAwIDogdGV4dC50cmltKCkuc3BsaXQocmVnZXgpLmZpbHRlcih0ID0+IHQgIT09ICcnKS5sZW5ndGg7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuY2hhcmFjdGVyc0NvdW50ID0gMDtcbiAgICAgICAgICAgICAgICB0aGlzLndvcmRzQ291bnQgPSAwO1xuICAgICAgICAgICAgICAgIHRoaXMuYnl0ZXNDb3VudCA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5mb3JtYXQgPT09ICdqc29uJykge1xuICAgICAgICAgICAgaWYgKGNvbnRlbnQgJiYgdGhpcy5xdWlsbCkge1xuICAgICAgICAgICAgICAgIHRleHQgPSB0aGlzLnN0cmlwSHRtbCh0aGlzLnF1aWxsLnJvb3QuaW5uZXJIVE1MKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNoYXJhY3RlcnNDb3VudCA9IHRleHQubGVuZ3RoO1xuXG4gICAgICAgICAgICAgICAgdGV4dCA9IHRoaXMuY2xlYW5IdG1sKHRoaXMucXVpbGwucm9vdC5pbm5lckhUTUwpO1xuICAgICAgICAgICAgICAgIHRoaXMud29yZHNDb3VudCA9ICF0ZXh0ID8gMCA6IHRleHQudHJpbSgpLnNwbGl0KHJlZ2V4KS5maWx0ZXIodCA9PiB0ICE9PSAnJykubGVuZ3RoO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNoYXJhY3RlcnNDb3VudCA9IDA7XG4gICAgICAgICAgICAgICAgdGhpcy53b3Jkc0NvdW50ID0gMDtcbiAgICAgICAgICAgICAgICB0aGlzLmJ5dGVzQ291bnQgPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jaGFyYWN0ZXJzQ291bnRDaGFuZ2UuZW1pdCh0aGlzLmNoYXJhY3RlcnNDb3VudCk7XG5cbiAgICAgICAgdGhpcy53b3Jkc0NvdW50Q2hhbmdlLmVtaXQodGhpcy53b3Jkc0NvdW50KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0cmlwSHRtbChjb250ZW50OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCByZWdleCA9IC8oPChbXj5dKyk+KS9nbTtcbiAgICAgICAgY29uc3QgY29udGVudFRvUmVwbGFjZSA9IGNvbnRlbnQucmVwbGFjZShyZWdleCwgJycpO1xuICAgICAgICByZXR1cm4gY29udGVudFRvUmVwbGFjZS5yZXBsYWNlKC9bXFx1MjAwQi1cXHUyMDBEXFx1RkVGRl0vZywgJycpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2xlYW5IdG1sKGNvbnRlbnQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGNvbnRlbnRUb1JlcGxhY2UgPSBjb250ZW50LnJlcGxhY2UoLzxbXj5dKj4vZywgJycpO1xuICAgICAgICByZXR1cm4gY29udGVudFRvUmVwbGFjZS5yZXBsYWNlKC9bXFx1MjAwQi1cXHUyMDBEXFx1RkVGRl0vZywgJycpO1xuICAgIH1cbn1cblxuLyogZXNsaW50LWRpc2FibGUgKi9cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ2V1aUVkaXRvckN1c3RvbVRvb2xiYXInIH0pXG5leHBvcnQgY2xhc3MgRXVpRWRpdG9yQ3VzdG9tVG9vbGJhclRhZ0RpcmVjdGl2ZSB7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIGVsZW1lbnRDbGFzcyA9ICdldWktZWRpdG9yLWN1c3RvbS10b29sYmFyJztcblxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7fVxufVxuLyogZXNsaW50LWVuYWJsZSAqL1xuXG4vKipcbiAqIFBpcGUgdG8gcmVtb3ZlIGNsYXNzZXMgZnJvbSB0aGUgZWRpdG9yXG4gKi9cbkBQaXBlKHsgbmFtZTogJ2NsYXNzRmlsdGVyJyB9KVxuZXhwb3J0IGNsYXNzIENsYXNzRmlsdGVyUGlwZSB7XG4gICAgdHJhbnNmb3JtKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdmFsdWVcbiAgICAgICAgICAgIC5yZXBsYWNlKC9ldWktZWRpdG9yLXdyYXBwZXIvZywgJycpXG4gICAgICAgICAgICAucmVwbGFjZSgvZXVpLWVkaXRvci0tcmVhZG9ubHkvZywgJycpXG4gICAgICAgICAgICAucmVwbGFjZSgvZXVpLWVkaXRvci0tZW1wdHkvZywgJycpO1xuICAgIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJyZWFkeVRvUmVuZGVyXCI+XG5AaWYgKCFpc1JlYWRPbmx5KSB7XG4gICAgPHF1aWxsLWVkaXRvclxuICAgICAgICBbaWRdPVwiZ2VuZXJhdGVkSWRcIlxuICAgICAgICBjbGFzcz1cInt7IGNsYXNzIHwgY2xhc3NGaWx0ZXIgfX1cIlxuICAgICAgICBbY2xhc3MuZXVpLWVkaXRvci0tZm9jdXNlZF09XCJpc0ZvY3VzZWRcIlxuICAgICAgICBbZm9ybWF0XT1cImZvcm1hdFwiXG4gICAgICAgIFtmb3JtYXRzXT1cImZvcm1hdHNcIlxuICAgICAgICBbc2FuaXRpemVdPVwidHJ1ZVwiXG4gICAgICAgIFttb2R1bGVzXT1cIm1vZHVsZXNcIlxuICAgICAgICBbdGhlbWVdPVwidGhlbWVcIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgICBbY3VzdG9tVG9vbGJhclBvc2l0aW9uXT1cImN1c3RvbVRvb2xiYXJQb3NpdGlvblwiXG4gICAgICAgIFtmb3JtQ29udHJvbF09XCJmb3JtQ29udHJvbFwiXG4gICAgICAgIFtkZWJ1Z109XCJkZWJ1Z1wiXG4gICAgICAgIFt0YWJpbmRleF09XCJ0YWJpbmRleFwiXG4gICAgICAgIFtwcmVzZXJ2ZVdoaXRlc3BhY2VdPVwidHJ1ZVwiXG4gICAgICAgIFtoYXNJbWFnZUZlYXR1cmVdPVwiaGFzSW1hZ2VGZWF0dXJlXCJcbiAgICAgICAgKG9uRWRpdG9yQ3JlYXRlZCk9XCJfb25FZGl0b3JDcmVhdGVkKCRldmVudClcIlxuICAgICAgICAob25FZGl0b3JDaGFuZ2VkKT1cIl9vbkVkaXRvckNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgIChvbkNvbnRlbnRDaGFuZ2VkKT1cIl9vbkNvbnRlbnRDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAob25TZWxlY3Rpb25DaGFuZ2VkKT1cIl9vblNlbGVjdGlvbkNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgIChvbkZvY3VzKT1cIl9vbkZvY3VzKCRldmVudClcIlxuICAgICAgICAob25CbHVyKT1cIl9vbkJsdXIoJGV2ZW50KVwiPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiIWV1aUVkaXRvckN1c3RvbVRvb2xiYXJcIiBxdWlsbC1lZGl0b3ItdG9vbGJhcj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAqbmdJZj1cInRvb2xiYXJDb25maWcuaGVhZGluZ3NcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwicWwtZm9ybWF0c1wiXG4gICAgICAgICAgICAgICAgcm9sZT1cImFwcGxpY2F0aW9uXCJcbiAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiU2VsZWN0IGhlYWRpbmdzIHN0eWxlXCJcbiAgICAgICAgICAgICAgICBldWlUb29sdGlwPVwie3sgdG9vbGJhckNvbmZpZy5oZWFkaW5ncy5sYWJlbCB9fVwiPlxuICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJxbC1oZWFkZXJcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInRvb2xiYXJDb25maWcuaGVhZGluZ3MubGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cInt7IHZhbHVlIH19XCIgKm5nRm9yPVwibGV0IHZhbHVlIG9mIHRvb2xiYXJDb25maWcuaGVhZGluZ3Mub3B0aW9uc1wiPkhlYWRpbmcge3sgdmFsdWUgfX08L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBzZWxlY3RlZD5Ob3JtYWw8L29wdGlvbj5cbiAgICAgICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICpuZ0lmPVwidG9vbGJhckNvbmZpZy5mb250XCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInFsLWZvcm1hdHNcIlxuICAgICAgICAgICAgICAgIHJvbGU9XCJhcHBsaWNhdGlvblwiXG4gICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIlNlbGVjdCBmb250IHN0eWxlXCJcbiAgICAgICAgICAgICAgICBldWlUb29sdGlwPVwie3sgdG9vbGJhckNvbmZpZy5mb250LmxhYmVsIH19XCI+XG4gICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cInFsLWZvbnRcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInRvb2xiYXJDb25maWcuZm9udC5sYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHNlbGVjdGVkPlNhbnMgU2VyaWY8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cInNlcmlmXCI+U2VyaWY8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIm1vbm9zcGFjZVwiPk1vbm9zcGFjZTwvb3B0aW9uPlxuICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidG9vbGJhckNvbmZpZy5ib2xkIHx8IHRvb2xiYXJDb25maWcuaXRhbGljIHx8IHRvb2xiYXJDb25maWcudW5kZXJsaW5lIHx8IHRvb2xiYXJDb25maWcuc3RyaWtlXCIgY2xhc3M9XCJxbC1mb3JtYXRzXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInRvb2xiYXJDb25maWcuYm9sZFwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicWwtYm9sZFwiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRvb2xiYXJDb25maWcuYm9sZC5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIGV1aVRvb2x0aXA9XCJ7eyB0b29sYmFyQ29uZmlnLmJvbGQubGFiZWwgfX1cIj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidG9vbGJhckNvbmZpZy5pdGFsaWNcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInFsLWl0YWxpY1wiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRvb2xiYXJDb25maWcuaXRhbGljLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgZXVpVG9vbHRpcD1cInt7IHRvb2xiYXJDb25maWcuaXRhbGljLmxhYmVsIH19XCI+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInRvb2xiYXJDb25maWcudW5kZXJsaW5lXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJxbC11bmRlcmxpbmVcIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0b29sYmFyQ29uZmlnLnVuZGVybGluZS5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIGV1aVRvb2x0aXA9XCJ7eyB0b29sYmFyQ29uZmlnLnVuZGVybGluZS5sYWJlbCB9fVwiPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ0b29sYmFyQ29uZmlnLnN0cmlrZVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicWwtc3RyaWtlXCJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidG9vbGJhckNvbmZpZy5zdHJpa2UubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICBldWlUb29sdGlwPVwie3sgdG9vbGJhckNvbmZpZy5zdHJpa2UubGFiZWwgfX1cIj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInRvb2xiYXJDb25maWcuZm9udENvbG9yIHx8IHRvb2xiYXJDb25maWcuZm9udEJhY2tncm91bmRcIiBjbGFzcz1cInFsLWZvcm1hdHNcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInRvb2xiYXJDb25maWcuZm9udENvbG9yXCIgZXVpVG9vbHRpcD1cInt7IHRvb2xiYXJDb25maWcuZm9udENvbG9yLmxhYmVsIH19XCI+XG4gICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJxbC1jb2xvclwiIFthdHRyLmFyaWEtbGFiZWxdPVwidG9vbGJhckNvbmZpZy5mb250Q29sb3IubGFiZWxcIj48L3NlbGVjdD5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJ0b29sYmFyQ29uZmlnLmZvbnRCYWNrZ3JvdW5kXCIgZXVpVG9vbHRpcD1cInt7IHRvb2xiYXJDb25maWcuZm9udEJhY2tncm91bmQubGFiZWwgfX1cIj5cbiAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cInFsLWJhY2tncm91bmRcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInRvb2xiYXJDb25maWcuZm9udEJhY2tncm91bmQubGFiZWxcIj48L3NlbGVjdD5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ0b29sYmFyQ29uZmlnLnN1YnNjcmlwdCB8fCB0b29sYmFyQ29uZmlnLnN1cGVyc2NyaXB0XCIgY2xhc3M9XCJxbC1mb3JtYXRzXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInRvb2xiYXJDb25maWcuc3Vic2NyaXB0XCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJxbC1zY3JpcHRcIlxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cInN1YlwiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRvb2xiYXJDb25maWcuc3Vic2NyaXB0LmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgZXVpVG9vbHRpcD1cInt7IHRvb2xiYXJDb25maWcuc3Vic2NyaXB0LmxhYmVsIH19XCI+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInRvb2xiYXJDb25maWcuc3VwZXJzY3JpcHRcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInFsLXNjcmlwdFwiXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPVwic3VwZXJcIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0b29sYmFyQ29uZmlnLnN1cGVyc2NyaXB0LmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgZXVpVG9vbHRpcD1cInt7IHRvb2xiYXJDb25maWcuc3VwZXJzY3JpcHQubGFiZWwgfX1cIj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInRvb2xiYXJDb25maWcudGV4dEFsaWduXCIgY2xhc3M9XCJxbC1mb3JtYXRzXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gZXVpVG9vbHRpcD1cInt7IHRvb2xiYXJDb25maWcudGV4dEFsaWduLmxhYmVsIH19XCI+XG4gICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJxbC1hbGlnblwiIFthdHRyLmFyaWEtbGFiZWxdPVwidG9vbGJhckNvbmZpZy50ZXh0QWxpZ24ubGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gc2VsZWN0ZWQ+PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiY2VudGVyXCI+PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwicmlnaHRcIj48L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJqdXN0aWZ5XCI+PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICpuZ0lmPVwidG9vbGJhckNvbmZpZy5vcmRlcmVkTGlzdCB8fCB0b29sYmFyQ29uZmlnLmJ1bGxldExpc3QgfHwgdG9vbGJhckNvbmZpZy5pbmRlbnRMZXNzIHx8IHRvb2xiYXJDb25maWcuaW5kZW50TW9yZVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJxbC1mb3JtYXRzXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInRvb2xiYXJDb25maWcub3JkZXJlZExpc3RcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInFsLWxpc3RcIlxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cIm9yZGVyZWRcIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0b29sYmFyQ29uZmlnLm9yZGVyZWRMaXN0LmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgZXVpVG9vbHRpcD1cInt7IHRvb2xiYXJDb25maWcub3JkZXJlZExpc3QubGFiZWwgfX1cIj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidG9vbGJhckNvbmZpZy5idWxsZXRMaXN0XCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJxbC1saXN0XCJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCJidWxsZXRcIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0b29sYmFyQ29uZmlnLmJ1bGxldExpc3QubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICBldWlUb29sdGlwPVwie3sgdG9vbGJhckNvbmZpZy5idWxsZXRMaXN0LmxhYmVsIH19XCI+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ0b29sYmFyQ29uZmlnLmluZGVudExlc3NcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInFsLWluZGVudFwiXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPVwiLTFcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRvb2xiYXJDb25maWcuaW5kZW50TGVzcy5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIGV1aVRvb2x0aXA9XCJ7eyB0b29sYmFyQ29uZmlnLmluZGVudExlc3MubGFiZWwgfX1cIj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInRvb2xiYXJDb25maWcuaW5kZW50TW9yZVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicWwtaW5kZW50XCJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCIrMVwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidG9vbGJhckNvbmZpZy5pbmRlbnRNb3JlLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgZXVpVG9vbHRpcD1cInt7IHRvb2xiYXJDb25maWcuaW5kZW50TW9yZS5sYWJlbCB9fVwiPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAgICAgdG9vbGJhckNvbmZpZy5ibG9ja3F1b3RlIHx8XG4gICAgICAgICAgICAgICAgICAgIHRvb2xiYXJDb25maWcuY29kZUJsb2NrIHx8XG4gICAgICAgICAgICAgICAgICAgIHRvb2xiYXJDb25maWcubGluayB8fFxuICAgICAgICAgICAgICAgICAgICB0b29sYmFyQ29uZmlnLmltYWdlIHx8XG4gICAgICAgICAgICAgICAgICAgIHRvb2xiYXJDb25maWcuaW1hZ2VVcmwgfHxcbiAgICAgICAgICAgICAgICAgICAgdG9vbGJhckNvbmZpZy52aWRlbyB8fFxuICAgICAgICAgICAgICAgICAgICB0b29sYmFyQ29uZmlnLnRhYmxlXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInFsLWZvcm1hdHNcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidG9vbGJhckNvbmZpZy5ibG9ja3F1b3RlXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJxbC1ibG9ja3F1b3RlXCJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidG9vbGJhckNvbmZpZy5ibG9ja3F1b3RlLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgZXVpVG9vbHRpcD1cInt7IHRvb2xiYXJDb25maWcuYmxvY2txdW90ZS5sYWJlbCB9fVwiPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ0b29sYmFyQ29uZmlnLmNvZGVCbG9ja1wiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicWwtY29kZS1ibG9ja1wiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRvb2xiYXJDb25maWcuY29kZUJsb2NrLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgZXVpVG9vbHRpcD1cInt7IHRvb2xiYXJDb25maWcuY29kZUJsb2NrLmxhYmVsIH19XCI+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInRvb2xiYXJDb25maWcubGlua1wiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicWwtbGlua1wiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRvb2xiYXJDb25maWcubGluay5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIGV1aVRvb2x0aXA9XCJ7eyB0b29sYmFyQ29uZmlnLmxpbmsubGFiZWwgfX1cIj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidG9vbGJhckNvbmZpZy5pbWFnZVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicWwtaW1hZ2VcIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0b29sYmFyQ29uZmlnLmltYWdlLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgZXVpVG9vbHRpcD1cInt7IHRvb2xiYXJDb25maWcuaW1hZ2UubGFiZWwgfX1cIj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInRvb2xiYXJDb25maWcuaW1hZ2VVcmxcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRvb2xiYXJDb25maWcuaW1hZ2VVcmwubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICBldWlUb29sdGlwPVwie3sgdG9vbGJhckNvbmZpZy5pbWFnZVVybC5sYWJlbCB9fVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJpbWFnZVVybEhhbmRsZXIoKVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZXVpLWljb24tc3ZnIGljb249XCJldWktZWNsLWltYWdlXCIgc2l6ZT1cInNcIj48L2V1aS1pY29uLXN2Zz5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidG9vbGJhckNvbmZpZy52aWRlb1wiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicWwtdmlkZW9cIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0b29sYmFyQ29uZmlnLnZpZGVvLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgZXVpVG9vbHRpcD1cInt7IHRvb2xiYXJDb25maWcudmlkZW8ubGFiZWwgfX1cIj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInRvb2xiYXJDb25maWcudGFibGVcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRvb2xiYXJDb25maWcudGFibGUubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICBldWlUb29sdGlwPVwie3sgdG9vbGJhckNvbmZpZy50YWJsZS5sYWJlbCB9fVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJpbnNlcnRUYWJsZSgpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxldWktaWNvbi1zdmcgaWNvbj1cImV1aS1lY2wtc3ByZWFkc2hlZXRcIiBzaXplPVwic1wiPjwvZXVpLWljb24tc3ZnPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidG9vbGJhckNvbmZpZy5jbGVhbiB8fCB0b29sYmFyQ29uZmlnLmRlbGV0ZVwiIGNsYXNzPVwicWwtZm9ybWF0c1wiPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ0b29sYmFyQ29uZmlnLmNsZWFuXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJxbC1jbGVhblwiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRvb2xiYXJDb25maWcuY2xlYW4ubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICBldWlUb29sdGlwPVwie3sgdG9vbGJhckNvbmZpZy5jbGVhbi5sYWJlbCB9fVwiPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidG9vbGJhckNvbmZpZy5kZWxldGVcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRvb2xiYXJDb25maWcuZGVsZXRlLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgZXVpVG9vbHRpcD1cInt7IHRvb2xiYXJDb25maWcuZGVsZXRlLmxhYmVsIH19XCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImVkaXRvckRlbGV0ZUNvbnRlbnQoKVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZXVpLWljb24tc3ZnIGljb249XCJldWktZWNsLXRyYXNoXCIgc2l6ZT1cInNcIj48L2V1aS1pY29uLXN2Zz5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInRvb2xiYXJDb25maWcudW5kbyB8fCB0b29sYmFyQ29uZmlnLnJlZG9cIiBjbGFzcz1cInFsLWZvcm1hdHNcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInRvb2xiYXJDb25maWcudW5kb1wiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidG9vbGJhckNvbmZpZy51bmRvLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgZXVpVG9vbHRpcD1cInt7IHRvb2xiYXJDb25maWcudW5kby5sYWJlbCB9fVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJlZGl0b3JVbmRvKClcIj5cbiAgICAgICAgICAgICAgICAgICAgPGV1aS1pY29uLXN2ZyBpY29uPVwiYXJyb3ctdW5kbzpvdXRsaW5lXCIgc2l6ZT1cInNcIj48L2V1aS1pY29uLXN2Zz5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInRvb2xiYXJDb25maWcucmVkb1wiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidG9vbGJhckNvbmZpZy5yZWRvLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgZXVpVG9vbHRpcD1cInt7IHRvb2xiYXJDb25maWcucmVkby5sYWJlbCB9fVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJlZGl0b3JSZWRvKClcIj5cbiAgICAgICAgICAgICAgICAgICAgPGV1aS1pY29uLXN2ZyBpY29uPVwiYXJyb3ctcmVkbzpvdXRsaW5lXCIgc2l6ZT1cInNcIj48L2V1aS1pY29uLXN2Zz5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInRvb2xiYXJDb25maWcuY291bnRlcnNcIiBjbGFzcz1cInFsLWZvcm1hdHNcIj5cbiAgICAgICAgICAgICAgICA8ZXVpLWVkaXRvci1jb3VudGVyc1xuICAgICAgICAgICAgICAgICAgICBbaGFzQ2hhcmFjdGVyc0NvdW50ZXJdPVwiaGFzQ2hhcmFjdGVyc0NvdW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICBbY2hhcmFjdGVyc0NvdW50ZXJdPVwiY2hhcmFjdGVyc0NvdW50XCJcbiAgICAgICAgICAgICAgICAgICAgW2NoYXJhY3RlcnNMYWJlbF09XCJjaGFyYWN0ZXJzQ291bnRlckxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgW2hhc1dvcmRzQ291bnRlcl09XCJoYXNXb3Jkc0NvdW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICBbd29yZHNDb3VudGVyXT1cIndvcmRzQ291bnRcIlxuICAgICAgICAgICAgICAgICAgICBbd29yZHNMYWJlbF09XCJ3b3Jkc0NvdW50ZXJMYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidG9vbGJhckNvbmZpZy5jb3VudGVycy5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBldWlUb29sdGlwPVwie3sgdG9vbGJhckNvbmZpZy5jb3VudGVycy5sYWJlbCB9fVwiPlxuICAgICAgICAgICAgICAgIDwvZXVpLWVkaXRvci1jb3VudGVycz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiAqbmdJZj1cImV1aUVkaXRvckN1c3RvbVRvb2xiYXJcIiBxdWlsbC1lZGl0b3ItdG9vbGJhcj5cbiAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImV1aUVkaXRvckN1c3RvbVRvb2xiYXJcIj48L25nLWNvbnRlbnQ+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvcXVpbGwtZWRpdG9yPlxuPCEtLSBSRUFET05MWSBNT0RFIC0tPlxufSBAZWxzZSB7XG4gICAgPGV1aS1lZGl0b3ItaHRtbC12aWV3ICpuZ0lmPVwiZm9ybWF0ID09PSAnaHRtbCdcIiBbY29udGVudF09XCJ2YWx1ZVwiIFt0aGVtZV09XCJ0aGVtZVwiPjwvZXVpLWVkaXRvci1odG1sLXZpZXc+XG4gICAgPGV1aS1lZGl0b3ItanNvbi12aWV3ICpuZ0lmPVwiZm9ybWF0ID09PSAnanNvbidcIiBbY29udGVudF09XCJqc29uVG9IdG1sQ29udGVudFwiIFt0aGVtZV09XCJ0aGVtZVwiPjwvZXVpLWVkaXRvci1qc29uLXZpZXc+XG59XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
538
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLWVkaXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9leHRlcm5hbHMvZXVpLWVkaXRvci9ldWktZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL2V4dGVybmFscy9ldWktZWRpdG9yL2V1aS1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFFTixpQkFBaUIsRUFDakIsdUJBQXVCLEVBQ3ZCLFdBQVcsRUFFWCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFFVixZQUFZLEVBQ1osSUFBSSxHQUVQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsV0FBVyxFQUF3QixNQUFNLGdCQUFnQixDQUFDO0FBR3pGLE9BQU8sRUFBRSxxQkFBcUIsRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUc1RSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxLQUFLLE1BQU0sYUFBYSxDQUFDO0FBRWhDLE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUcvRSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQzs7Ozs7Ozs7Ozs7QUFUOUYsMEdBQTBHO0FBQzFHLE1BQU0sU0FBUyxHQUFRLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztBQVN2Qyx3Q0FBd0M7QUFDeEMsSUFBSSxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztBQWNsRCxNQUFNLE9BQU8sa0JBQWtCO0lBQzNCLElBQ0ksS0FBSztRQUNMLE9BQU87WUFDSCxZQUFZO1lBQ1osSUFBSSxDQUFDLFVBQVUs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QWE7UUFDbkIsT0FBTyxLQUFLO2FBQ1AsT0FBTyxDQUFDLHFCQUFxQixFQUFFLEVBQUUsQ0FBQzthQUNsQyxPQUFPLENBQUMsdUJBQXVCLEVBQUUsRUFBRSxDQUFDO2FBQ3BDLE9BQU8sQ0FBQyxvQkFBb0IsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMzQyxDQUFDOzhHQU5RLGVBQWU7NEdBQWYsZUFBZTs7MkZBQWYsZUFBZTtrQkFEM0IsSUFBSTttQkFBQyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIE9uSW5pdCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBIb3N0QmluZGluZyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgRGlyZWN0aXZlLFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBmb3J3YXJkUmVmLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIFBpcGUsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENvbnRlbnRDaGFuZ2UsIFF1aWxsTW9kdWxlcyB9IGZyb20gJ0BldWkvY29tcG9uZW50cy9leHRlcm5hbHMvcXVpbGwnO1xuXG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHksIEJvb2xlYW5JbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uLG5vLXVuZGVyc2NvcmUtZGFuZ2xlLGlkLWRlbnlsaXN0LGlkLW1hdGNoXG5jb25zdCBRdWlsbFR5cGU6IGFueSA9IHdpbmRvd1snUXVpbGwnXTtcbmltcG9ydCB7IHN0YXJ0V2l0aCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IERlbHRhIGZyb20gJ3F1aWxsLWRlbHRhJztcblxuaW1wb3J0IHsgRXVpRGlhbG9nQ29uZmlnLCBFdWlEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnQGV1aS9jb21wb25lbnRzL2V1aS1kaWFsb2cnO1xuXG5pbXBvcnQgeyBMb2FkZXJTZXJ2aWNlLCBCZXR0ZXJUYWJsZU1vZHVsZSwgQmx1ciwgRWRpdG9yQ2hhbmdlU2VsZWN0aW9uLCBGb2N1cywgU2VsZWN0aW9uQ2hhbmdlLCBUb29sYmFySXRlbUNvbmZpZyB9IGZyb20gJ0BldWkvY29tcG9uZW50cy9leHRlcm5hbHMvcXVpbGwnO1xuaW1wb3J0IHsgRXVpRWRpdG9ySW1hZ2VEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2ltYWdlLXVybC1kaWFsb2cvaW1hZ2UtdXJsLWRpYWxvZy5jb21wb25lbnQnO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByZWZlci1jb25zdFxubGV0IFF1aWxsQmV0dGVyVGFibGUgPSB3aW5kb3dbJ3F1aWxsQmV0dGVyVGFibGUnXTtcblxuQENvbXBvbmVudCh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgc2VsZWN0b3I6ICdldWktZWRpdG9yJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZXVpLWVkaXRvci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc3R5bGVzL19pbmRleC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgLy8gVE9ETzogQ2hlY2sgdG8gY2hhbmdlIHRoZSBwcm92aWRpbmcgd2F5LiBQcm92aWRlIHdpdGggaW5qZWN0b3IgcmVmZXJlbmNlXG4gICAgICAgIEV1aURpYWxvZ1NlcnZpY2UsXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRXVpRWRpdG9yQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgICBnZXQgY2xhc3MoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICdldWktZWRpdG9yJyxcbiAgICAgICAgICAgIHRoaXMuaXNSZWFkT25seSA/ICdldWktZWRpdG9yLS1yZWFkb25seScgOiAnJyxcbiAgICAgICAgICAgIHRoaXMuaXNSZWFkT25seSAmJiB0aGlzLnZhbHVlID8gJyc6ICdldWktZWRpdG9yLS1lbXB0eScsXG4gICAgICAgICAgICAhdGhpcy5pc1JlYWRPbmx5ID8gJ2V1aS1lZGl0b3Itd3JhcHBlcicgOiAnJyxcbiAgICAgICAgXS5qb2luKCcgJykudHJpbSgpO1xuICAgIH1cbiAgICBASW5wdXQoKSBlMmVBdHRyID0gJ2V1aS1lZGl0b3InO1xuICAgIEBJbnB1dCgpIGlkOiBzdHJpbmc7XG4gICAgQElucHV0KCkgcGxhY2Vob2xkZXIgPSAnJztcbiAgICBASW5wdXQoKSBmb3JtYXQ6ICdodG1sJyB8ICdqc29uJyA9ICdodG1sJztcbiAgICBASW5wdXQoKSB0aGVtZTogJ3Nub3cnIHwgJ2J1YmJsZScgPSAnc25vdyc7XG4gICAgQElucHV0KCkgZGVidWc6ICd3YXJuJyB8ICdsb2cnIHwgJ2Vycm9yJyB8IGZhbHNlID0gZmFsc2U7XG4gICAgQElucHV0KCkgY3VzdG9tVG9vbGJhclBvc2l0aW9uOiAndG9wJyB8ICdib3R0b20nID0gJ3RvcCc7XG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLnRhYmluZGV4JylcbiAgICBASW5wdXQoKSB0YWJpbmRleCA9ICcwJztcbiAgICBASW5wdXQoKSBtb2R1bGVzOiBRdWlsbE1vZHVsZXM7XG4gICAgQElucHV0KCkgZm9ybWF0cz86IHN0cmluZ1tdIHwgbnVsbDtcbiAgICAvLyBORVcgRVVJIElOUFVUU1xuICAgIEBJbnB1dCgpIGN1c3RvbVRvb2xiYXJDb25maWc6IFRvb2xiYXJJdGVtQ29uZmlnW107XG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5oZWlnaHQnKVxuICAgIEBJbnB1dCgpIGhlaWdodDogc3RyaW5nO1xuICAgIC8vIE5FVyBPVVRQVVRTID0+IGVVSTEzKyBvbmx5XG4gICAgQE91dHB1dCgpIGVkaXRvckNyZWF0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8dHlwZW9mIFF1aWxsVHlwZT4oKTtcbiAgICBAT3V0cHV0KCkgZWRpdG9yQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxFZGl0b3JDaGFuZ2VTZWxlY3Rpb24gfCBDb250ZW50Q2hhbmdlPigpO1xuICAgIEBPdXRwdXQoKSBjb250ZW50Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxDb250ZW50Q2hhbmdlPigpO1xuICAgIEBPdXRwdXQoKSBzZWxlY3Rpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFNlbGVjdGlvbkNoYW5nZT4oKTtcbiAgICBAT3V0cHV0KCkgZm9jdXMgPSBuZXcgRXZlbnRFbWl0dGVyPEZvY3VzPigpO1xuICAgIEBPdXRwdXQoKSBibHVyID0gbmV3IEV2ZW50RW1pdHRlcjxCbHVyPigpO1xuICAgIEBPdXRwdXQoKSBjaGFyYWN0ZXJzQ291bnRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcbiAgICBAT3V0cHV0KCkgd29yZHNDb3VudENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5ldWktZWRpdG9yJykgdHJ1ZTogYm9vbGVhbjtcblxuICAgIEBIb3N0QmluZGluZygnYXR0ci5yZWFkb25seScpXG4gICAgZ2V0IHJlYWRvbmx5KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzUmVhZE9ubHkgPyAncmVhZG9ubHknIDogbnVsbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgdmFsdWU6IHN0cmluZyB8IGFueSA9ICcnO1xuICAgIHB1YmxpYyBjaGFyYWN0ZXJzQ291bnQgPSAwO1xuICAgIHB1YmxpYyB3b3Jkc0NvdW50ID0gMDtcbiAgICBwdWJsaWMgYnl0ZXNDb3VudCA9IDA7XG4gICAgcHVibGljIGlzRm9jdXNlZCA9IGZhbHNlO1xuICAgIHB1YmxpYyBnZW5lcmF0ZWRJZDogc3RyaW5nO1xuICAgIHB1YmxpYyBmb3JtQ29udHJvbDogRm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcbiAgICBwdWJsaWMganNvblRvSHRtbENvbnRlbnQ6IHN0cmluZztcbiAgICBwdWJsaWMgdG9vbGJhckNvbmZpZzogeyBbaWQ6IHN0cmluZ106IHsgbGFiZWw6IHN0cmluZzsgb3B0aW9uczogYW55W107IGRpYWxvZ01lc3NhZ2U6IHN0cmluZyB9IH07XG4gICAgcHJvdGVjdGVkIHJlYWR5VG9SZW5kZXI6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBtYXgtbGVuXG4gICAgQENvbnRlbnRDaGlsZChmb3J3YXJkUmVmKCgpID0+IEV1aUVkaXRvckN1c3RvbVRvb2xiYXJUYWdEaXJlY3RpdmUpLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgICBldWlFZGl0b3JDdXN0b21Ub29sYmFyOiBFdWlFZGl0b3JDdXN0b21Ub29sYmFyVGFnRGlyZWN0aXZlO1xuXG4gICAgQElucHV0KClcbiAgICBnZXQgaXNSZWFkT25seSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzUmVhZE9ubHk7XG4gICAgfVxuICAgIHNldCBpc1JlYWRPbmx5KHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5faXNSZWFkT25seSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX2lzUmVhZE9ubHkgPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBzaG93Q291bnRlcnMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zaG93Q291bnRlcnM7XG4gICAgfVxuICAgIHNldCBzaG93Q291bnRlcnModmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9zaG93Q291bnRlcnMgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9zaG93Q291bnRlcnMgPSB0cnVlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGlzRW5hYmxlZE9uRm9jdXMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0VuYWJsZWRPbkZvY3VzO1xuICAgIH1cbiAgICBzZXQgaXNFbmFibGVkT25Gb2N1cyh2YWx1ZSkge1xuICAgICAgICB0aGlzLl9pc0VuYWJsZWRPbkZvY3VzID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaXNFbmFibGVkT25Gb2N1cyA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGlzTWluaW1hbFRvb2xiYXIoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc01pbmltYWxUb29sYmFyO1xuICAgIH1cbiAgICBzZXQgaXNNaW5pbWFsVG9vbGJhcih2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2lzTWluaW1hbFRvb2xiYXIgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9pc01pbmltYWxUb29sYmFyID0gZmFsc2U7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1pbnZhbGlkJylcbiAgICBnZXQgaXNJbnZhbGlkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNJbnZhbGlkO1xuICAgIH1cbiAgICBzZXQgaXNJbnZhbGlkKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5faXNJbnZhbGlkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaXNJbnZhbGlkID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIHF1aWxsOiB0eXBlb2YgUXVpbGxUeXBlO1xuICAgIHByaXZhdGUgbWluaW1hbFRvb2xiYXJDb25maWc6IFRvb2xiYXJJdGVtQ29uZmlnW10gPSBbXG4gICAgICAgIHsgbmFtZTogJ2hlYWRpbmdzJyB9LFxuICAgICAgICB7IG5hbWU6ICdib2xkJyB9LFxuICAgICAgICB7IG5hbWU6ICdpdGFsaWMnIH0sXG4gICAgICAgIHsgbmFtZTogJ3VuZGVybGluZScgfSxcbiAgICAgICAgeyBuYW1lOiAnZm9udENvbG9yJyB9LFxuICAgICAgICB7IG5hbWU6ICd0ZXh0QWxpZ24nIH0sXG4gICAgICAgIHsgbmFtZTogJ2xpbmsnIH0sXG4gICAgICAgIHsgbmFtZTogJ2ltYWdlJyB9LFxuICAgICAgICB7IG5hbWU6ICdpbWFnZVVybCcgfSxcbiAgICAgICAgeyBuYW1lOiAnY2xlYW4nIH0sXG4gICAgICAgIHsgbmFtZTogJ2RlbGV0ZScgfSxcbiAgICAgICAgeyBuYW1lOiAndW5kbycgfSxcbiAgICAgICAgeyBuYW1lOiAncmVkbycgfSxcbiAgICAgICAgeyBuYW1lOiAnY291bnRlcnMnIH0sXG4gICAgXTtcbiAgICBwcml2YXRlIGRlZmF1bHRUb29sYmFyQ29uZmlnOiBUb29sYmFySXRlbUNvbmZpZ1tdID0gW1xuICAgICAgICB7IG5hbWU6ICdoZWFkaW5ncycsIGxhYmVsOiAnU3R5bGUgLSBBcHBseSBhbiBIVE1MIHRhZyBvciBDU1MgY2xhc3MgdG8gdGhlIHNlbGVjdGVkIHRleHQnLCBvcHRpb25zOiBbMSwgMiwgMywgNCwgNSwgNl0gfSxcbiAgICAgICAgeyBuYW1lOiAnZm9udCcsIGxhYmVsOiAnRm9udCAtIENoYW5nZSB0aGUgZm9udCBmYWNlJyB9LFxuICAgICAgICB7IG5hbWU6ICdib2xkJywgbGFiZWw6ICdCb2xkIChDdHJsICsgQikgLSBNYWtlIHRoZSBzZWxlY3RlZCB0ZXh0IGJvbGQnIH0sXG4gICAgICAgIHsgbmFtZTogJ2l0YWxpYycsIGxhYmVsOiAnSXRhbGljIChDdHJsICsgSSkgLSBJdGFsaWNpemUgdGhlIHNlbGVjdGVkIHRleHQnIH0sXG4gICAgICAgIHsgbmFtZTogJ3VuZGVybGluZScsIGxhYmVsOiAnVW5kZXJsaW5lIChDdHJsICsgVSkgLSBVbmRlcmxpbmUgdGhlIHNlbGVjdGVkIHRleHQnIH0sXG4gICAgICAgIHsgbmFtZTogJ3N0cmlrZScsIGxhYmVsOiAnU3RyaWtldGhyb3VnaCAtIERyYXcgYSBsaW5lIHRvIHRoZSBtaWRkbGUgb2YgdGhlIHNlbGVjdGVkIHRleHQnIH0sXG4gICAgICAgIHsgbmFtZTogJ2ZvbnRDb2xvcicsIGxhYmVsOiAnRm9udCBDb2xvciAtIENoYW5nZSB0aGUgdGV4dCBjb2xvcicgfSxcbiAgICAgICAgeyBuYW1lOiAnZm9udEJhY2tncm91bmQnLCBsYWJlbDogJ0ZvbnQgQmFja2dyb3VuZCAtIENoYW5nZSB0aGUgdGV4dCBiYWNrZ3JvdW5kIGNvbG9yJyB9LFxuICAgICAgICB7IG5hbWU6ICdzdWJzY3JpcHQnLCBsYWJlbDogJ1N1YnNjcmlwdCAtIENyZWF0ZSBzc21hbGwgbGV0dGVycyBiZWxvdyB0aGUgdGV4dCBiYXNlbGluZScgfSxcbiAgICAgICAgeyBuYW1lOiAnc3VwZXJzY3JpcHQnLCBsYWJlbDogJ1N1cGVyc2NyaXB0IC0gQ3JlYXRlIHNtYWxsIGxldHRlcnMgYWJvdmUgdGhlIGxpbmUgb2YgdGhlIHRleHQnIH0sXG4gICAgICAgIHsgbmFtZTogJ3RleHRBbGlnbicsIGxhYmVsOiAnVGV4dCBBbGlnbiAtIEFsaWduIHRoZSB0ZXh0IHRvIHRoZSBzZWxlY3RlZCBwb3NpdGlvbjogbGVmdCAoZGVmYXVsdCksIGNlbnRlciwgcmlnaHQgb3IganVzdGlmeScgfSxcbiAgICAgICAgeyBuYW1lOiAnb3JkZXJlZExpc3QnLCBsYWJlbDogJ051bWJlcmluZyAtIFN0YXJ0IGFuIG9yZGVyZWQgbGlzdCcgfSxcbiAgICAgICAgeyBuYW1lOiAnYnVsbGV0TGlzdCcsIGxhYmVsOiAnQnVsbGV0cyAtIFN0YXJ0IGEgYnVsbGV0ZWQgbGlzdCcgfSxcbiAgICAgICAgeyBuYW1lOiAnaW5kZW50TGVzcycsIGxhYmVsOiAnRGVjcmVhc2UgSW5kZW50IC0gRGVjcmVhc2UgdGhlIGluZGVudCBsZXZlbCBvZiB0aGUgcGFyYWdyYXBoJyB9LFxuICAgICAgICB7IG5hbWU6ICdpbmRlbnRNb3JlJywgbGFiZWw6ICdJbmNyZWFzZSBJbmRlbnQgLSBJbmNyZWFzZSB0aGUgaW5kZW50IGxldmVsIG9mIHRoZSBwYXJhZ3JhcGgnIH0sXG4gICAgICAgIHsgbmFtZTogJ2Jsb2NrcXVvdGUnLCBsYWJlbDogJ0Jsb2NrcXVvdGUgLSBDcmVhdGUgYSBxdW90ZWQgYmxvY2sgb2YgdGhlIHNlbGVjdGVkIHRleHQnIH0sXG4gICAgICAgIHsgbmFtZTogJ2NvZGVCbG9jaycsIGxhYmVsOiAnSW5zZXJ0IENvZGUgQmxvY2sgLSBJbnNlcnQgYSBjb2RlIGJsb2NrIGF0IHRoZSBjdXJzb3Igcm93IHBvc2l0aW9uJyB9LFxuICAgICAgICB7IG5hbWU6ICdsaW5rJywgbGFiZWw6ICdJbnNlcnQgSHlwZXJsaW5rIChDdHJsICsgSykgLSBDcmVhdGUgYSBsaW5rIHRvIGEgV2ViIHBhZ2UsIGEgcGljdHVyZSwgYW4gZS1tYWlsIGFkZHJlc3Mgb3IgYSBwcm9ncmFtJyB9LFxuICAgICAgICB7IG5hbWU6ICdpbWFnZScsIGxhYmVsOiAnSW5zZXJ0IFBpY3R1cmUgLSBJbnNlcnQgYSBwaWN0dXJlIGZyb20gYSBmaWxlJyB9LFxuICAgICAgICB7IG5hbWU6ICdpbWFnZVVybCcsIGxhYmVsOiAnSW5zZXJ0IFBpY3R1cmUgZnJvbSBVUkwgLSBJbnNlcnQgYSBwaWN0dXJlIGZyb20gYSByZW1vdGUgVVJMJywgZGlhbG9nTWVzc2FnZTogJ0VudGVyIGltYWdlIGxpbmsgVVJMJyB9LFxuICAgICAgICB7IG5hbWU6ICd2aWRlbycsIGxhYmVsOiAnSW5zZXJ0IFZpZGVvIC0gSW5zZXJ0IGEgdmlkZW8gZnJvbSBhIGZpbGUnIH0sXG4gICAgICAgIHsgbmFtZTogJ3RhYmxlJywgbGFiZWw6ICdJbnNlcnQgVGFibGUgLSBJbnNlcnQgYSAzeDMgcm93cy9jb2xzIHRhYmxlJyB9LFxuICAgICAgICB7IG5hbWU6ICdjbGVhbicsIGxhYmVsOiAnUmVtb3ZlIFN0eWxlcyAtIFJlbW92ZSB0aGUgc3R5bGVzIG9mIHRoZSBzZWxlY3RlZCB0ZXh0JyB9LFxuICAgICAgICB7IG5hbWU6ICdkZWxldGUnLCBsYWJlbDogXCJEZWxldGUgY29udGVudCAtIFBlcm1hbmVudGx5IGRlbGV0ZXMgZWRpdG9yJ3MgY29udGVudHNcIiB9LFxuICAgICAgICB7IG5hbWU6ICd1bmRvJywgbGFiZWw6ICdVbmRvIChDdHJsICsgWikgLSBDYW5jZWxzIHRoZSBwcmV2aW91cyBhY3Rpb24nIH0sXG4gICAgICAgIHsgbmFtZTogJ3JlZG8nLCBsYWJlbDogJ1JlZG8gKEN0cmwgKyBZKSAtIERvIHRoZSBuZXh0IGhpc3RvcnkgYWN0aW9uIGFnYWluJyB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnY291bnRlcnMnLFxuICAgICAgICAgICAgbGFiZWw6ICdDb3VudGVycyAtIENoYXJhY3RlcnMgYW5kIHdvcmRzIGNvdW50ZXJzIChzdHJpcHBlZCBIdG1sKScsXG4gICAgICAgICAgICBvcHRpb25zOiBbXG4gICAgICAgICAgICAgICAgeyBuYW1lOiAnY2hhcmFjdGVycycsIGxhYmVsOiAnQ2hhcmFjdGVycycgfSxcbiAgICAgICAgICAgICAgICB7IG5hbWU6ICd3b3JkcycsIGxhYmVsOiAnV29yZHMnIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgIF07XG4gICAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGV1aURpYWxvZ1NlcnZpY2U6IEV1aURpYWxvZ1NlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgbmdDb250cm9sOiBOZ0NvbnRyb2wsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBsb2FkZXI6IExvYWRlclNlcnZpY2UpIHtcbiAgICAgICAgdGhpcy5uZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubG9hZGVyLmxvYWQoKS5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgY29tcGxldGU6ICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlYWR5VG9SZW5kZXIgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMubmdDb250cm9sLnN0YXR1c0NoYW5nZXMucGlwZShzdGFydFdpdGgodGhpcy5uZ0NvbnRyb2wuY29udHJvbC5zdGF0dXMpLCB0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoc3RhdHVzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNJbnZhbGlkID0gc3RhdHVzICE9PSAnVkFMSUQnO1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5nZW5lcmF0ZWRJZCA9IHRoaXMuaWQgPyB0aGlzLmlkIDogJ2V1aS1lZGl0b3ItJyArIChNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAxMDAwMDAwKSArIDEpLnRvU3RyaW5nKCk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLnRvb2xiYXJDb25maWcgPSB7fTtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuY3VzdG9tVG9vbGJhckNvbmZpZyAmJiAhdGhpcy5pc01pbmltYWxUb29sYmFyKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGVmYXVsdFRvb2xiYXJDb25maWcuZm9yRWFjaCgodCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b29sYmFyQ29uZmlnID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLnRoaXMudG9vbGJhckNvbmZpZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdC5uYW1lXTogeyBsYWJlbDogdC5sYWJlbCwgb3B0aW9uczogdC5vcHRpb25zLCBkaWFsb2dNZXNzYWdlOiB0LmRpYWxvZ01lc3NhZ2UgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmN1c3RvbVRvb2xiYXJDb25maWcgJiYgIXRoaXMuaXNNaW5pbWFsVG9vbGJhcikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmN1c3RvbVRvb2xiYXJDb25maWcuZm9yRWFjaCgodCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGFiZWwgPSAhdC5sYWJlbCA/IHRoaXMuZGVmYXVsdFRvb2xiYXJDb25maWcuZmluZCgoYykgPT4gYy5uYW1lID09PSB0Lm5hbWUpLmxhYmVsIDogdC5sYWJlbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBvcHRpb25zID0gIXQub3B0aW9ucyA/IHRoaXMuZGVmYXVsdFRvb2xiYXJDb25maWcuZmluZCgoYykgPT4gYy5uYW1lID09PSB0Lm5hbWUpLm9wdGlvbnMgOiB0Lm9wdGlvbnM7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkID0gIXQuZGlhbG9nTWVzc2FnZSA/IHRoaXMuZGVmYXVsdFRvb2xiYXJDb25maWcuZmluZCgoYykgPT4gYy5uYW1lID09PSB0Lm5hbWUpLmRpYWxvZ01lc3NhZ2UgOiB0LmRpYWxvZ01lc3NhZ2U7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0Lm5hbWUgPT09ICdjb3VudGVycycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXQub3B0aW9ucykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zID0gdGhpcy5kZWZhdWx0VG9vbGJhckNvbmZpZy5maW5kKChjKSA9PiBjLm5hbWUgPT09IHQubmFtZSkub3B0aW9ucztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zID0gdC5vcHRpb25zLm1hcCgob3B0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvcHRpb25MYWJlbCA9IG9wdGlvbi5sYWJlbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gb3B0aW9uLmxhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0aGlzLmRlZmF1bHRUb29sYmFyQ29uZmlnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5maW5kKChkdGMpID0+IGR0Yy5uYW1lID09PSAnY291bnRlcnMnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAub3B0aW9ucy5maW5kKChvKSA9PiBvLm5hbWUgPT09IG9wdGlvbi5uYW1lKS5sYWJlbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7IG5hbWU6IG9wdGlvbi5uYW1lLCBsYWJlbDogb3B0aW9uTGFiZWwgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRvb2xiYXJDb25maWcgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4udGhpcy50b29sYmFyQ29uZmlnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0Lm5hbWVdOiB7IGxhYmVsLCBvcHRpb25zLCBkaWFsb2dNZXNzYWdlOiBkIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc01pbmltYWxUb29sYmFyKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubWluaW1hbFRvb2xiYXJDb25maWcuZm9yRWFjaCgodCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGFiZWwgPSAhdC5sYWJlbCA/IHRoaXMuZGVmYXVsdFRvb2xiYXJDb25maWcuZmluZCgoYykgPT4gYy5uYW1lID09PSB0Lm5hbWUpLmxhYmVsIDogdC5sYWJlbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSAhdC5vcHRpb25zID8gdGhpcy5kZWZhdWx0VG9vbGJhckNvbmZpZy5maW5kKChjKSA9PiBjLm5hbWUgPT09IHQubmFtZSkub3B0aW9ucyA6IHQub3B0aW9ucztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGQgPSAhdC5kaWFsb2dNZXNzYWdlID8gdGhpcy5kZWZhdWx0VG9vbGJhckNvbmZpZy5maW5kKChjKSA9PiBjLm5hbWUgPT09IHQubmFtZSkuZGlhbG9nTWVzc2FnZSA6IHQuZGlhbG9nTWVzc2FnZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b29sYmFyQ29uZmlnID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLnRoaXMudG9vbGJhckNvbmZpZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdC5uYW1lXTogeyBsYWJlbCwgb3B0aW9ucywgZGlhbG9nTWVzc2FnZTogZCB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snKVxuICAgIEBIb3N0TGlzdGVuZXIoJ2ZvY3VzaW4nKVxuICAgIHB1YmxpYyBlbmFibGVFZGl0b3JPbkZvY3VzKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc0VuYWJsZWRPbkZvY3VzICYmIHRoaXMuaXNSZWFkT25seSkge1xuICAgICAgICAgICAgdGhpcy5pc1JlYWRPbmx5ID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgaW1hZ2VVcmxIYW5kbGVyKCk6IHZvaWQge1xuICAgICAgICBsZXQgaW1hZ2VVcmxEaWFsb2dGb3JtOiBGb3JtR3JvdXAgPSBudWxsO1xuICAgICAgICB0aGlzLmV1aURpYWxvZ1NlcnZpY2Uub3BlbkRpYWxvZyhcbiAgICAgICAgICAgIG5ldyBFdWlEaWFsb2dDb25maWcoe1xuICAgICAgICAgICAgICAgIHRpdGxlOiB0aGlzLnRvb2xiYXJDb25maWcuaW1hZ2VVcmwuZGlhbG9nTWVzc2FnZSxcbiAgICAgICAgICAgICAgICBpc0hhbmRsZUNsb3NlT25BY2NlcHQ6IHRydWUsXG4gICAgICAgICAgICAgICAgYm9keUNvbXBvbmVudDoge1xuICAgICAgICAgICAgICAgICAgICBjb21wb25lbnQ6IEV1aUVkaXRvckltYWdlRGlhbG9nQ29tcG9uZW50LFxuICAgICAgICAgICAgICAgICAgICBjb25maWc6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uRm9ybVZhbHVlQ2hhbmdlOiAoZm9ybTogRm9ybUdyb3VwKTogdm9pZCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2VVcmxEaWFsb2dGb3JtID0gZm9ybTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBhY2NlcHQ6ICgpOiB2b2lkID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGltYWdlVXJsRGlhbG9nRm9ybSAmJiBpbWFnZVVybERpYWxvZ0Zvcm0udmFsaWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZXVpRGlhbG9nU2VydmljZS5jbG9zZURpYWxvZygpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByYW5nZSA9IHRoaXMucXVpbGwuZ2V0U2VsZWN0aW9uKCkgfHwgeyBpbmRleDogMCwgbGVuZ3RoOiAwIH07XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnF1aWxsLmluc2VydEVtYmVkKHJhbmdlLmluZGV4LCAnaW1hZ2UnLCBpbWFnZVVybERpYWxvZ0Zvcm0uZ2V0KCd1cmwnKS52YWx1ZSwgJ3VzZXInKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBlZGl0b3JVbmRvKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnF1aWxsWydoaXN0b3J5J10udW5kbygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBlZGl0b3JSZWRvKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnF1aWxsWydoaXN0b3J5J10ucmVkbygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBlZGl0b3JEZWxldGVDb250ZW50KCk6IHZvaWQge1xuICAgICAgICBjb25zdCBjb25maWcgPSBuZXcgRXVpRGlhbG9nQ29uZmlnKHtcbiAgICAgICAgICAgIHRpdGxlOiAnRGVsZXRlIGNvbnRlbnQnLFxuICAgICAgICAgICAgY29udGVudDogXCI8cD5BcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIGVkaXRvcidzIGNvbnRlbnQ/PC9wPlwiLFxuICAgICAgICAgICAgaGFzQ2xvc2VCdXR0b246IGZhbHNlLFxuICAgICAgICAgICAgYWNjZXB0OiAoKTogdm9pZCA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5xdWlsbC5zZXRDb250ZW50cyhudWxsKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuZXVpRGlhbG9nU2VydmljZS5vcGVuRGlhbG9nKGNvbmZpZyk7XG4gICAgfVxuXG4gICAgcHVibGljIGluc2VydFRhYmxlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnRhYmxlTW9kdWxlLmluc2VydFRhYmxlKDMsIDMpO1xuICAgIH1cblxuICAgIGdldCBoYXNJbWFnZUZlYXR1cmUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmV1aUVkaXRvckN1c3RvbVRvb2xiYXJcbiAgICAgICAgICAgID8gdGhpcy5ldWlFZGl0b3JDdXN0b21Ub29sYmFyPy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLnFsLWltYWdlJylcbiAgICAgICAgICAgIDogdGhpcy50b29sYmFyQ29uZmlnLmltYWdlO1xuICAgIH1cblxuICAgIHB1YmxpYyBfb25FZGl0b3JDcmVhdGVkKHF1aWxsOiB0eXBlb2YgUXVpbGxUeXBlKTogdm9pZCB7XG4gICAgICAgIHRoaXMucXVpbGwgPSBxdWlsbDtcblxuICAgICAgICBpZiAodGhpcy5pc0VuYWJsZWRPbkZvY3VzKSB7XG4gICAgICAgICAgICB0aGlzLnF1aWxsLmZvY3VzKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5mb3JtYXQgPT09ICdodG1sJykge1xuICAgICAgICAgICAgY29uc3QgZGVsdGEgPSB0aGlzLnF1aWxsLmNsaXBib2FyZC5jb252ZXJ0KHsgaHRtbDogdGhpcy52YWx1ZSBhcyBzdHJpbmcgfSk7XG4gICAgICAgICAgICB0aGlzLmZvcm1Db250cm9sLnBhdGNoVmFsdWUoZGVsdGEpO1xuICAgICAgICAgICAgdGhpcy5xdWlsbC5zZXRDb250ZW50cyhkZWx0YSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5mb3JtYXQgPT09ICdqc29uJykge1xuICAgICAgICAgICAgdGhpcy5mb3JtQ29udHJvbC5wYXRjaFZhbHVlKHRoaXMudmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5xdWlsbC5zZXRDb250ZW50cyhKU09OLnBhcnNlKHRoaXMudmFsdWUpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5oYXNJbWFnZUZlYXR1cmUpIHtcbiAgICAgICAgICAgIHF1aWxsLmNsaXBib2FyZC5hZGRNYXRjaGVyKCdJTUcnLCAoZWxlbWVudDogRWxlbWVudCwgZGVsdGE6IERlbHRhKSA9PiBuZXcgRGVsdGEoKS5pbnNlcnQoJycpKTtcbiAgICAgICAgICAgIHF1aWxsLmNsaXBib2FyZC5hZGRNYXRjaGVyKCdQSUNUVVJFJywgKGVsZW1lbnQ6IEVsZW1lbnQsIGRlbHRhOiBEZWx0YSkgPT4gbmV3IERlbHRhKCkuaW5zZXJ0KCcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmVkaXRvckNyZWF0ZS5lbWl0KHF1aWxsKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgX29uRWRpdG9yQ2hhbmdlZChldmVudDogRWRpdG9yQ2hhbmdlU2VsZWN0aW9uIHwgQ29udGVudENoYW5nZSB8IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnNvbGUud2Fybignb25FZGl0b3JDaGFuZ2VkKCkgZXZlbnQgaXMgREVQUkVDQVRFRCBwbGVhc2UgdXNlIGNvbnRlbnRDaGFuZ2UoKSBldmVudCBpbnN0ZWFkLicpO1xuICAgICAgICB0aGlzLmVkaXRvckNoYW5nZS5lbWl0KGV2ZW50IGFzIEVkaXRvckNoYW5nZVNlbGVjdGlvbik7XG4gICAgfVxuXG4gICAgcHVibGljIF9vbkNvbnRlbnRDaGFuZ2VkKGV2ZW50OiBDb250ZW50Q2hhbmdlKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmZvcm1hdCA9PT0gJ2h0bWwnKSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gZXZlbnQuaHRtbDtcbiAgICAgICAgICAgIHRoaXMuY2FsY3VsYXRlQ291bnRlcnModGhpcy52YWx1ZSBhcyBzdHJpbmcpO1xuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLmh0bWxFbnRpdGllc0RlY29kZSh0aGlzLnZhbHVlIGFzIHN0cmluZykpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmZvcm1hdCA9PT0gJ2pzb24nKSB7XG4gICAgICAgICAgICBpZiAoZXZlbnQudGV4dCAhPT0gJ1xcbicpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gZXZlbnQuY29udGVudDtcbiAgICAgICAgICAgICAgICB0aGlzLmNhbGN1bGF0ZUNvdW50ZXJzKGV2ZW50LnRleHQpO1xuICAgICAgICAgICAgICAgIHRoaXMuanNvblRvSHRtbENvbnRlbnQgPSB0aGlzLmh0bWxFbnRpdGllc0RlY29kZShKU09OLnN0cmluZ2lmeSh0aGlzLnZhbHVlKSk7XG4gICAgICAgICAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLmpzb25Ub0h0bWxDb250ZW50KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy52YWx1ZSA9IG51bGw7XG4gICAgICAgICAgICAgICAgdGhpcy5jYWxjdWxhdGVDb3VudGVycygnJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5qc29uVG9IdG1sQ29udGVudCA9ICcnO1xuICAgICAgICAgICAgICAgIHRoaXMub25DaGFuZ2UobnVsbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jb250ZW50Q2hhbmdlLmVtaXQoZXZlbnQpOyAvLyBOZXcgZW1pdHRlclxuICAgICAgICB0aGlzLl9vbkVkaXRvckNoYW5nZWQoZXZlbnQpOyAvLyBTeW5jIHdpdGggZWRpdG9yIGNoYW5nZSBldmVudCBzaW5jZSBpdCdzIGR1cGxpY2F0ZWQgZXZlbnRcbiAgICB9XG5cbiAgICBwdWJsaWMgX29uU2VsZWN0aW9uQ2hhbmdlZChldmVudDogU2VsZWN0aW9uQ2hhbmdlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlLmVtaXQoZXZlbnQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBfb25Gb2N1cyhldmVudDogRm9jdXMpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc0ZvY3VzZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLmZvY3VzLmVtaXQoZXZlbnQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBfb25CbHVyKGV2ZW50OiBCbHVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNGb2N1c2VkID0gZmFsc2U7XG4gICAgICAgIHRoaXMub25Ub3VjaCgpO1xuICAgICAgICB0aGlzLmJsdXIuZW1pdChldmVudCk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gICAgfVxuXG4gICAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vblRvdWNoID0gZm47XG4gICAgfVxuXG4gICAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWUgfHwgbnVsbDtcbiAgICAgICAgdGhpcy5qc29uVG9IdG1sQ29udGVudCA9IHRoaXMudmFsdWU7XG5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5xdWlsbCkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmZvcm1hdCA9PT0gJ2h0bWwnKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRlbHRhID0gdGhpcy5xdWlsbC5jbGlwYm9hcmQuY29udmVydCh7IGh0bWw6IHRoaXMudmFsdWUgYXMgc3RyaW5nIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm1Db250cm9sLnBhdGNoVmFsdWUoZGVsdGEpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnF1aWxsLnNldENvbnRlbnRzKGRlbHRhKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5mb3JtYXQgPT09ICdqc29uJykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm1Db250cm9sLnBhdGNoVmFsdWUodGhpcy52YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIC8vIHRoaXMucXVpbGwuc2V0Q29udGVudHMoSlNPTi5wYXJzZSh0aGlzLnZhbHVlKSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdGhpcy5jYWxjdWxhdGVDb3VudGVycyh0aGlzLnZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgdGFibGVNb2R1bGUoKTogQmV0dGVyVGFibGVNb2R1bGUge1xuICAgICAgICByZXR1cm4gdGhpcy5xdWlsbC5nZXRNb2R1bGUoJ2JldHRlci10YWJsZScpO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25DaGFuZ2U6IGFueSA9ICgpID0+IHt9O1xuXG4gICAgcHJpdmF0ZSBvblRvdWNoOiBhbnkgPSAoKSA9PiB7fTtcblxuICAgIHByaXZhdGUgaHRtbEVudGl0aWVzRGVjb2RlKGNvbnRlbnQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGxldCBjID0gY29udGVudDtcbiAgICAgICAgaWYgKGMpIHtcbiAgICAgICAgICAgIGMgPSBjLnJlcGxhY2UoJyZhbXA7JywgJyYnKTtcbiAgICAgICAgICAgIGMgPSBjLnJlcGxhY2UoJyZuYnNwOycsICcgJyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYztcbiAgICB9XG5cbiAgICBnZXQgaGFzQ2hhcmFjdGVyc0NvdW50ZXIoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnRvb2xiYXJDb25maWcuY291bnRlcnMub3B0aW9ucy5maW5kKChvKSA9PiBvLm5hbWUgPT09ICdjaGFyYWN0ZXJzJyk7XG4gICAgfVxuXG4gICAgZ2V0IGNoYXJhY3RlcnNDb3VudGVyTGFiZWwoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudG9vbGJhckNvbmZpZy5jb3VudGVycy5vcHRpb25zLmZpbmQoKG8pID0+IG8ubmFtZSA9PT0gJ2NoYXJhY3RlcnMnKT8ubGFiZWw7XG4gICAgfVxuXG4gICAgZ2V0IGhhc1dvcmRzQ291bnRlcigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudG9vbGJhckNvbmZpZy5jb3VudGVycy5vcHRpb25zLmZpbmQoKG8pID0+IG8ubmFtZSA9PT0gJ3dvcmRzJyk7XG4gICAgfVxuXG4gICAgZ2V0IHdvcmRzQ291bnRlckxhYmVsKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnRvb2xiYXJDb25maWcuY291bnRlcnMub3B0aW9ucy5maW5kKChvKSA9PiBvLm5hbWUgPT09ICd3b3JkcycpPy5sYWJlbDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNhbGN1bGF0ZUNvdW50ZXJzKGNvbnRlbnQ6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBsZXQgdGV4dDogc3RyaW5nO1xuICAgICAgICBjb25zdCByZWdleCA9IC9bXFxzXFxuXSsvO1xuICAgICAgICBcbiAgICAgICAgaWYgKHRoaXMuZm9ybWF0ID09PSAnaHRtbCcpIHtcbiAgICAgICAgICAgIGlmIChjb250ZW50ICYmIGNvbnRlbnQubGVuZ3RoID4gMCAmJiB0aGlzLnF1aWxsKSB7XG4gICAgICAgICAgICAgICAgdGV4dCA9IHRoaXMuc3RyaXBIdG1sKGNvbnRlbnQpO1xuICAgICAgICAgICAgICAgIHRoaXMuY2hhcmFjdGVyc0NvdW50ID0gdGV4dC5sZW5ndGg7XG5cbiAgICAgICAgICAgICAgICB0ZXh0ID0gY29udGVudC5yZXBsYWNlKC88XFwvKHB8ZGl2fGJyfGxpfGhbMS02XSk+L2dpLCAnICcpLnJlcGxhY2UoLzxbXj5dKz4vZywgJycpO1xuICAgICAgICAgICAgICAgIHRoaXMud29yZHNDb3VudCA9ICF0ZXh0ID8gMCA6IHRleHQudHJpbSgpLnNwbGl0KHJlZ2V4KS5maWx0ZXIodCA9PiB0ICE9PSAnJykubGVuZ3RoO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNoYXJhY3RlcnNDb3VudCA9IDA7XG4gICAgICAgICAgICAgICAgdGhpcy53b3Jkc0NvdW50ID0gMDtcbiAgICAgICAgICAgICAgICB0aGlzLmJ5dGVzQ291bnQgPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZm9ybWF0ID09PSAnanNvbicpIHtcbiAgICAgICAgICAgIGlmIChjb250ZW50ICYmIHRoaXMucXVpbGwpIHtcbiAgICAgICAgICAgICAgICB0ZXh0ID0gdGhpcy5zdHJpcEh0bWwodGhpcy5xdWlsbC5yb290LmlubmVySFRNTCk7XG4gICAgICAgICAgICAgICAgdGhpcy5jaGFyYWN0ZXJzQ291bnQgPSB0ZXh0Lmxlbmd0aDtcbiAgICBcbiAgICAgICAgICAgICAgICB0ZXh0ID0gdGhpcy5xdWlsbC5yb290LmlubmVySFRNTC5yZXBsYWNlKC88XFwvKHB8ZGl2fGJyfGxpfGhbMS02XSk+L2dpLCAnICcpLnJlcGxhY2UoLzxbXj5dKz4vZywgJycpO1xuICAgICAgICAgICAgICAgIHRoaXMud29yZHNDb3VudCA9ICF0ZXh0ID8gMCA6IHRleHQudHJpbSgpLnNwbGl0KHJlZ2V4KS5maWx0ZXIodCA9PiB0ICE9PSAnJykubGVuZ3RoO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNoYXJhY3RlcnNDb3VudCA9IDA7XG4gICAgICAgICAgICAgICAgdGhpcy53b3Jkc0NvdW50ID0gMDtcbiAgICAgICAgICAgICAgICB0aGlzLmJ5dGVzQ291bnQgPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgXG4gICAgICAgIHRoaXMuY2hhcmFjdGVyc0NvdW50Q2hhbmdlLmVtaXQodGhpcy5jaGFyYWN0ZXJzQ291bnQpO1xuICAgICAgICB0aGlzLndvcmRzQ291bnRDaGFuZ2UuZW1pdCh0aGlzLndvcmRzQ291bnQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RyaXBIdG1sKGNvbnRlbnQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHJlZ2V4ID0gLyg8KFtePl0rKT4pL2dtO1xuICAgICAgICBjb25zdCBjb250ZW50VG9SZXBsYWNlID0gY29udGVudC5yZXBsYWNlKHJlZ2V4LCAnJyk7XG4gICAgICAgIHJldHVybiBjb250ZW50VG9SZXBsYWNlLnJlcGxhY2UoL1tcXHUyMDBCLVxcdTIwMERcXHVGRUZGXS9nLCAnJyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjbGVhbkh0bWwoY29udGVudDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgY29udGVudFRvUmVwbGFjZSA9IGNvbnRlbnQucmVwbGFjZSgvPFtePl0qPi9nLCAnJyk7XG4gICAgICAgIHJldHVybiBjb250ZW50VG9SZXBsYWNlLnJlcGxhY2UoL1tcXHUyMDBCLVxcdTIwMERcXHVGRUZGXS9nLCAnJyk7XG4gICAgfVxufVxuXG4vKiBlc2xpbnQtZGlzYWJsZSAqL1xuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnZXVpRWRpdG9yQ3VzdG9tVG9vbGJhcicgfSlcbmV4cG9ydCBjbGFzcyBFdWlFZGl0b3JDdXN0b21Ub29sYmFyVGFnRGlyZWN0aXZlIHtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgZWxlbWVudENsYXNzID0gJ2V1aS1lZGl0b3ItY3VzdG9tLXRvb2xiYXInO1xuXG4gICAgY29uc3RydWN0b3IocHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHt9XG59XG4vKiBlc2xpbnQtZW5hYmxlICovXG5cbi8qKlxuICogUGlwZSB0byByZW1vdmUgY2xhc3NlcyBmcm9tIHRoZSBlZGl0b3JcbiAqL1xuQFBpcGUoeyBuYW1lOiAnY2xhc3NGaWx0ZXInIH0pXG5leHBvcnQgY2xhc3MgQ2xhc3NGaWx0ZXJQaXBlIHtcbiAgICB0cmFuc2Zvcm0odmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB2YWx1ZVxuICAgICAgICAgICAgLnJlcGxhY2UoL2V1aS1lZGl0b3Itd3JhcHBlci9nLCAnJylcbiAgICAgICAgICAgIC5yZXBsYWNlKC9ldWktZWRpdG9yLS1yZWFkb25seS9nLCAnJylcbiAgICAgICAgICAgIC5yZXBsYWNlKC9ldWktZWRpdG9yLS1lbXB0eS9nLCAnJyk7XG4gICAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cInJlYWR5VG9SZW5kZXJcIj5cbkBpZiAoIWlzUmVhZE9ubHkpIHtcbiAgICA8cXVpbGwtZWRpdG9yXG4gICAgICAgIFtpZF09XCJnZW5lcmF0ZWRJZFwiXG4gICAgICAgIGNsYXNzPVwie3sgY2xhc3MgfCBjbGFzc0ZpbHRlciB9fVwiXG4gICAgICAgIFtjbGFzcy5ldWktZWRpdG9yLS1mb2N1c2VkXT1cImlzRm9jdXNlZFwiXG4gICAgICAgIFtmb3JtYXRdPVwiZm9ybWF0XCJcbiAgICAgICAgW2Zvcm1hdHNdPVwiZm9ybWF0c1wiXG4gICAgICAgIFtzYW5pdGl6ZV09XCJ0cnVlXCJcbiAgICAgICAgW21vZHVsZXNdPVwibW9kdWxlc1wiXG4gICAgICAgIFt0aGVtZV09XCJ0aGVtZVwiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICAgIFtjdXN0b21Ub29sYmFyUG9zaXRpb25dPVwiY3VzdG9tVG9vbGJhclBvc2l0aW9uXCJcbiAgICAgICAgW2Zvcm1Db250cm9sXT1cImZvcm1Db250cm9sXCJcbiAgICAgICAgW2RlYnVnXT1cImRlYnVnXCJcbiAgICAgICAgW3RhYmluZGV4XT1cInRhYmluZGV4XCJcbiAgICAgICAgW3ByZXNlcnZlV2hpdGVzcGFjZV09XCJ0cnVlXCJcbiAgICAgICAgW2hhc0ltYWdlRmVhdHVyZV09XCJoYXNJbWFnZUZlYXR1cmVcIlxuICAgICAgICAob25FZGl0b3JDcmVhdGVkKT1cIl9vbkVkaXRvckNyZWF0ZWQoJGV2ZW50KVwiXG4gICAgICAgIChvbkVkaXRvckNoYW5nZWQpPVwiX29uRWRpdG9yQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgKG9uQ29udGVudENoYW5nZWQpPVwiX29uQ29udGVudENoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgIChvblNlbGVjdGlvbkNoYW5nZWQpPVwiX29uU2VsZWN0aW9uQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgKG9uRm9jdXMpPVwiX29uRm9jdXMoJGV2ZW50KVwiXG4gICAgICAgIChvbkJsdXIpPVwiX29uQmx1cigkZXZlbnQpXCI+XG4gICAgICAgIDxkaXYgKm5nSWY9XCIhZXVpRWRpdG9yQ3VzdG9tVG9vbGJhclwiIHF1aWxsLWVkaXRvci10b29sYmFyPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICpuZ0lmPVwidG9vbGJhckNvbmZpZy5oZWFkaW5nc1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJxbC1mb3JtYXRzXCJcbiAgICAgICAgICAgICAgICByb2xlPVwiYXBwbGljYXRpb25cIlxuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJTZWxlY3QgaGVhZGluZ3Mgc3R5bGVcIlxuICAgICAgICAgICAgICAgIGV1aVRvb2x0aXA9XCJ7eyB0b29sYmFyQ29uZmlnLmhlYWRpbmdzLmxhYmVsIH19XCI+XG4gICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cInFsLWhlYWRlclwiIFthdHRyLmFyaWEtbGFiZWxdPVwidG9vbGJhckNvbmZpZy5oZWFkaW5ncy5sYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwie3sgdmFsdWUgfX1cIiAqbmdGb3I9XCJsZXQgdmFsdWUgb2YgdG9vbGJhckNvbmZpZy5oZWFkaW5ncy5vcHRpb25zXCI+SGVhZGluZyB7eyB2YWx1ZSB9fTwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHNlbGVjdGVkPk5vcm1hbDwvb3B0aW9uPlxuICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgKm5nSWY9XCJ0b29sYmFyQ29uZmlnLmZvbnRcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwicWwtZm9ybWF0c1wiXG4gICAgICAgICAgICAgICAgcm9sZT1cImFwcGxpY2F0aW9uXCJcbiAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiU2VsZWN0IGZvbnQgc3R5bGVcIlxuICAgICAgICAgICAgICAgIGV1aVRvb2x0aXA9XCJ7eyB0b29sYmFyQ29uZmlnLmZvbnQubGFiZWwgfX1cIj5cbiAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwicWwtZm9udFwiIFthdHRyLmFyaWEtbGFiZWxdPVwidG9vbGJhckNvbmZpZy5mb250LmxhYmVsXCI+XG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gc2VsZWN0ZWQ+U2FucyBTZXJpZjwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwic2VyaWZcIj5TZXJpZjwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwibW9ub3NwYWNlXCI+TW9ub3NwYWNlPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ0b29sYmFyQ29uZmlnLmJvbGQgfHwgdG9vbGJhckNvbmZpZy5pdGFsaWMgfHwgdG9vbGJhckNvbmZpZy51bmRlcmxpbmUgfHwgdG9vbGJhckNvbmZpZy5zdHJpa2VcIiBjbGFzcz1cInFsLWZvcm1hdHNcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidG9vbGJhckNvbmZpZy5ib2xkXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJxbC1ib2xkXCJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidG9vbGJhckNvbmZpZy5ib2xkLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgZXVpVG9vbHRpcD1cInt7IHRvb2xiYXJDb25maWcuYm9sZC5sYWJlbCB9fVwiPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ0b29sYmFyQ29uZmlnLml0YWxpY1wiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicWwtaXRhbGljXCJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidG9vbGJhckNvbmZpZy5pdGFsaWMubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICBldWlUb29sdGlwPVwie3sgdG9vbGJhckNvbmZpZy5pdGFsaWMubGFiZWwgfX1cIj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidG9vbGJhckNvbmZpZy51bmRlcmxpbmVcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInFsLXVuZGVybGluZVwiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRvb2xiYXJDb25maWcudW5kZXJsaW5lLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgZXVpVG9vbHRpcD1cInt7IHRvb2xiYXJDb25maWcudW5kZXJsaW5lLmxhYmVsIH19XCI+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInRvb2xiYXJDb25maWcuc3RyaWtlXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJxbC1zdHJpa2VcIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0b29sYmFyQ29uZmlnLnN0cmlrZS5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIGV1aVRvb2x0aXA9XCJ7eyB0b29sYmFyQ29uZmlnLnN0cmlrZS5sYWJlbCB9fVwiPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidG9vbGJhckNvbmZpZy5mb250Q29sb3IgfHwgdG9vbGJhckNvbmZpZy5mb250QmFja2dyb3VuZFwiIGNsYXNzPVwicWwtZm9ybWF0c1wiPlxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwidG9vbGJhckNvbmZpZy5mb250Q29sb3JcIiBldWlUb29sdGlwPVwie3sgdG9vbGJhckNvbmZpZy5mb250Q29sb3IubGFiZWwgfX1cIj5cbiAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cInFsLWNvbG9yXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJ0b29sYmFyQ29uZmlnLmZvbnRDb2xvci5sYWJlbFwiPjwvc2VsZWN0PlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInRvb2xiYXJDb25maWcuZm9udEJhY2tncm91bmRcIiBldWlUb29sdGlwPVwie3sgdG9vbGJhckNvbmZpZy5mb250QmFja2dyb3VuZC5sYWJlbCB9fVwiPlxuICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwicWwtYmFja2dyb3VuZFwiIFthdHRyLmFyaWEtbGFiZWxdPVwidG9vbGJhckNvbmZpZy5mb250QmFja2dyb3VuZC5sYWJlbFwiPjwvc2VsZWN0PlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInRvb2xiYXJDb25maWcuc3Vic2NyaXB0IHx8IHRvb2xiYXJDb25maWcuc3VwZXJzY3JpcHRcIiBjbGFzcz1cInFsLWZvcm1hdHNcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidG9vbGJhckNvbmZpZy5zdWJzY3JpcHRcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInFsLXNjcmlwdFwiXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPVwic3ViXCJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidG9vbGJhckNvbmZpZy5zdWJzY3JpcHQubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICBldWlUb29sdGlwPVwie3sgdG9vbGJhckNvbmZpZy5zdWJzY3JpcHQubGFiZWwgfX1cIj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidG9vbGJhckNvbmZpZy5zdXBlcnNjcmlwdFwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicWwtc2NyaXB0XCJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCJzdXBlclwiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRvb2xiYXJDb25maWcuc3VwZXJzY3JpcHQubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICBldWlUb29sdGlwPVwie3sgdG9vbGJhckNvbmZpZy5zdXBlcnNjcmlwdC5sYWJlbCB9fVwiPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidG9vbGJhckNvbmZpZy50ZXh0QWxpZ25cIiBjbGFzcz1cInFsLWZvcm1hdHNcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBldWlUb29sdGlwPVwie3sgdG9vbGJhckNvbmZpZy50ZXh0QWxpZ24ubGFiZWwgfX1cIj5cbiAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cInFsLWFsaWduXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJ0b29sYmFyQ29uZmlnLnRleHRBbGlnbi5sYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBzZWxlY3RlZD48L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJjZW50ZXJcIj48L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJyaWdodFwiPjwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cImp1c3RpZnlcIj48L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgKm5nSWY9XCJ0b29sYmFyQ29uZmlnLm9yZGVyZWRMaXN0IHx8IHRvb2xiYXJDb25maWcuYnVsbGV0TGlzdCB8fCB0b29sYmFyQ29uZmlnLmluZGVudExlc3MgfHwgdG9vbGJhckNvbmZpZy5pbmRlbnRNb3JlXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInFsLWZvcm1hdHNcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidG9vbGJhckNvbmZpZy5vcmRlcmVkTGlzdFwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicWwtbGlzdFwiXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPVwib3JkZXJlZFwiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRvb2xiYXJDb25maWcub3JkZXJlZExpc3QubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICBldWlUb29sdGlwPVwie3sgdG9vbGJhckNvbmZpZy5vcmRlcmVkTGlzdC5sYWJlbCB9fVwiPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ0b29sYmFyQ29uZmlnLmJ1bGxldExpc3RcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInFsLWxpc3RcIlxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cImJ1bGxldFwiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRvb2xiYXJDb25maWcuYnVsbGV0TGlzdC5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIGV1aVRvb2x0aXA9XCJ7eyB0b29sYmFyQ29uZmlnLmJ1bGxldExpc3QubGFiZWwgfX1cIj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInRvb2xiYXJDb25maWcuaW5kZW50TGVzc1wiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicWwtaW5kZW50XCJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCItMVwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidG9vbGJhckNvbmZpZy5pbmRlbnRMZXNzLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgZXVpVG9vbHRpcD1cInt7IHRvb2xiYXJDb25maWcuaW5kZW50TGVzcy5sYWJlbCB9fVwiPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidG9vbGJhckNvbmZpZy5pbmRlbnRNb3JlXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJxbC1pbmRlbnRcIlxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cIisxXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0b29sYmFyQ29uZmlnLmluZGVudE1vcmUubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICBldWlUb29sdGlwPVwie3sgdG9vbGJhckNvbmZpZy5pbmRlbnRNb3JlLmxhYmVsIH19XCI+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgICAgICB0b29sYmFyQ29uZmlnLmJsb2NrcXVvdGUgfHxcbiAgICAgICAgICAgICAgICAgICAgdG9vbGJhckNvbmZpZy5jb2RlQmxvY2sgfHxcbiAgICAgICAgICAgICAgICAgICAgdG9vbGJhckNvbmZpZy5saW5rIHx8XG4gICAgICAgICAgICAgICAgICAgIHRvb2xiYXJDb25maWcuaW1hZ2UgfHxcbiAgICAgICAgICAgICAgICAgICAgdG9vbGJhckNvbmZpZy5pbWFnZVVybCB8fFxuICAgICAgICAgICAgICAgICAgICB0b29sYmFyQ29uZmlnLnZpZGVvIHx8XG4gICAgICAgICAgICAgICAgICAgIHRvb2xiYXJDb25maWcudGFibGVcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwicWwtZm9ybWF0c1wiPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ0b29sYmFyQ29uZmlnLmJsb2NrcXVvdGVcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInFsLWJsb2NrcXVvdGVcIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0b29sYmFyQ29uZmlnLmJsb2NrcXVvdGUubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICBldWlUb29sdGlwPVwie3sgdG9vbGJhckNvbmZpZy5ibG9ja3F1b3RlLmxhYmVsIH19XCI+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInRvb2xiYXJDb25maWcuY29kZUJsb2NrXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJxbC1jb2RlLWJsb2NrXCJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidG9vbGJhckNvbmZpZy5jb2RlQmxvY2subGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICBldWlUb29sdGlwPVwie3sgdG9vbGJhckNvbmZpZy5jb2RlQmxvY2subGFiZWwgfX1cIj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidG9vbGJhckNvbmZpZy5saW5rXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJxbC1saW5rXCJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidG9vbGJhckNvbmZpZy5saW5rLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgZXVpVG9vbHRpcD1cInt7IHRvb2xiYXJDb25maWcubGluay5sYWJlbCB9fVwiPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ0b29sYmFyQ29uZmlnLmltYWdlXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJxbC1pbWFnZVwiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRvb2xiYXJDb25maWcuaW1hZ2UubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICBldWlUb29sdGlwPVwie3sgdG9vbGJhckNvbmZpZy5pbWFnZS5sYWJlbCB9fVwiPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidG9vbGJhckNvbmZpZy5pbWFnZVVybFwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidG9vbGJhckNvbmZpZy5pbWFnZVVybC5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIGV1aVRvb2x0aXA9XCJ7eyB0b29sYmFyQ29uZmlnLmltYWdlVXJsLmxhYmVsIH19XCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImltYWdlVXJsSGFuZGxlcigpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxldWktaWNvbi1zdmcgaWNvbj1cImV1aS1lY2wtaW1hZ2VcIiBzaXplPVwic1wiPjwvZXVpLWljb24tc3ZnPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ0b29sYmFyQ29uZmlnLnZpZGVvXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJxbC12aWRlb1wiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRvb2xiYXJDb25maWcudmlkZW8ubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICBldWlUb29sdGlwPVwie3sgdG9vbGJhckNvbmZpZy52aWRlby5sYWJlbCB9fVwiPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidG9vbGJhckNvbmZpZy50YWJsZVwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidG9vbGJhckNvbmZpZy50YWJsZS5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIGV1aVRvb2x0aXA9XCJ7eyB0b29sYmFyQ29uZmlnLnRhYmxlLmxhYmVsIH19XCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImluc2VydFRhYmxlKClcIj5cbiAgICAgICAgICAgICAgICAgICAgPGV1aS1pY29uLXN2ZyBpY29uPVwiZXVpLWVjbC1zcHJlYWRzaGVldFwiIHNpemU9XCJzXCI+PC9ldWktaWNvbi1zdmc+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ0b29sYmFyQ29uZmlnLmNsZWFuIHx8IHRvb2xiYXJDb25maWcuZGVsZXRlXCIgY2xhc3M9XCJxbC1mb3JtYXRzXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInRvb2xiYXJDb25maWcuY2xlYW5cIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInFsLWNsZWFuXCJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidG9vbGJhckNvbmZpZy5jbGVhbi5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIGV1aVRvb2x0aXA9XCJ7eyB0b29sYmFyQ29uZmlnLmNsZWFuLmxhYmVsIH19XCI+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ0b29sYmFyQ29uZmlnLmRlbGV0ZVwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidG9vbGJhckNvbmZpZy5kZWxldGUubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICBldWlUb29sdGlwPVwie3sgdG9vbGJhckNvbmZpZy5kZWxldGUubGFiZWwgfX1cIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZWRpdG9yRGVsZXRlQ29udGVudCgpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxldWktaWNvbi1zdmcgaWNvbj1cImV1aS1lY2wtdHJhc2hcIiBzaXplPVwic1wiPjwvZXVpLWljb24tc3ZnPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidG9vbGJhckNvbmZpZy51bmRvIHx8IHRvb2xiYXJDb25maWcucmVkb1wiIGNsYXNzPVwicWwtZm9ybWF0c1wiPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidG9vbGJhckNvbmZpZy51bmRvXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0b29sYmFyQ29uZmlnLnVuZG8ubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICBldWlUb29sdGlwPVwie3sgdG9vbGJhckNvbmZpZy51bmRvLmxhYmVsIH19XCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImVkaXRvclVuZG8oKVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZXVpLWljb24tc3ZnIGljb249XCJhcnJvdy11bmRvOm91dGxpbmVcIiBzaXplPVwic1wiPjwvZXVpLWljb24tc3ZnPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidG9vbGJhckNvbmZpZy5yZWRvXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0b29sYmFyQ29uZmlnLnJlZG8ubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICBldWlUb29sdGlwPVwie3sgdG9vbGJhckNvbmZpZy5yZWRvLmxhYmVsIH19XCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImVkaXRvclJlZG8oKVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZXVpLWljb24tc3ZnIGljb249XCJhcnJvdy1yZWRvOm91dGxpbmVcIiBzaXplPVwic1wiPjwvZXVpLWljb24tc3ZnPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidG9vbGJhckNvbmZpZy5jb3VudGVyc1wiIGNsYXNzPVwicWwtZm9ybWF0c1wiPlxuICAgICAgICAgICAgICAgIDxldWktZWRpdG9yLWNvdW50ZXJzXG4gICAgICAgICAgICAgICAgICAgIFtoYXNDaGFyYWN0ZXJzQ291bnRlcl09XCJoYXNDaGFyYWN0ZXJzQ291bnRlclwiXG4gICAgICAgICAgICAgICAgICAgIFtjaGFyYWN0ZXJzQ291bnRlcl09XCJjaGFyYWN0ZXJzQ291bnRcIlxuICAgICAgICAgICAgICAgICAgICBbY2hhcmFjdGVyc0xhYmVsXT1cImNoYXJhY3RlcnNDb3VudGVyTGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICBbaGFzV29yZHNDb3VudGVyXT1cImhhc1dvcmRzQ291bnRlclwiXG4gICAgICAgICAgICAgICAgICAgIFt3b3Jkc0NvdW50ZXJdPVwid29yZHNDb3VudFwiXG4gICAgICAgICAgICAgICAgICAgIFt3b3Jkc0xhYmVsXT1cIndvcmRzQ291bnRlckxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0b29sYmFyQ29uZmlnLmNvdW50ZXJzLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIGV1aVRvb2x0aXA9XCJ7eyB0b29sYmFyQ29uZmlnLmNvdW50ZXJzLmxhYmVsIH19XCI+XG4gICAgICAgICAgICAgICAgPC9ldWktZWRpdG9yLWNvdW50ZXJzPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiZXVpRWRpdG9yQ3VzdG9tVG9vbGJhclwiIHF1aWxsLWVkaXRvci10b29sYmFyPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZXVpRWRpdG9yQ3VzdG9tVG9vbGJhclwiPjwvbmctY29udGVudD5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9xdWlsbC1lZGl0b3I+XG48IS0tIFJFQURPTkxZIE1PREUgLS0+XG59IEBlbHNlIHtcbiAgICA8ZXVpLWVkaXRvci1odG1sLXZpZXcgKm5nSWY9XCJmb3JtYXQgPT09ICdodG1sJ1wiIFtjb250ZW50XT1cInZhbHVlXCIgW3RoZW1lXT1cInRoZW1lXCI+PC9ldWktZWRpdG9yLWh0bWwtdmlldz5cbiAgICA8ZXVpLWVkaXRvci1qc29uLXZpZXcgKm5nSWY9XCJmb3JtYXQgPT09ICdqc29uJ1wiIFtjb250ZW50XT1cImpzb25Ub0h0bWxDb250ZW50XCIgW3RoZW1lXT1cInRoZW1lXCI+PC9ldWktZWRpdG9yLWpzb24tdmlldz5cbn1cbjwvbmctY29udGFpbmVyPlxuIl19
@@ -29,7 +29,7 @@ export class EuiAppToolbarComponent {
29
29
  this.document.documentElement.style.removeProperty('--eui-app-toolbar-height');
30
30
  }
31
31
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: EuiAppToolbarComponent, deps: [{ token: i1.EuiAppShellService }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component }); }
32
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: EuiAppToolbarComponent, selector: "eui-app-toolbar", inputs: { euiSecondary: ["euiSecondary", "euiSecondary", booleanAttribute] }, host: { properties: { "class": "this.cssClasses", "attr.role": "this.role" } }, ngImport: i0, template: "@if (asService.getState('hasSidebar') | async) {\n <eui-sidebar-toggle class=\"eui-app-toolbar__sidebar-toggle\"/>\n}\n\n<ng-content/>\n\n@if ((asService.getState('hasHeader') | async) && (asService.breakpoints$ | async).isMobile) {\n <eui-language-selector isToolbarSelector/>\n}\n", styles: [".eui-app-toolbar{align-items:center;width:100%;height:var(--eui-app-toolbar-height);display:flex;position:fixed;right:0;left:0;top:calc(var(--eui-app-header-height) + var(--eui-app-top-message-height));z-index:var(--eui-zi-nav);border-bottom:1px solid var(--eui-c-neutral-lightest)}.eui-app-toolbar__sidebar-toggle{padding-left:var(--eui-s-xs);padding-right:var(--eui-s-xs)}.eui-app-toolbar--primary{background-color:var(--eui-c-branding);color:var(--eui-c-white)}.eui-app-toolbar--primary .eui-icon-svg svg{fill:var(--eui-c-white);color:var(--eui-c-white)}.eui-app-toolbar--secondary{background-color:var(--eui-c-neutral-bg-light);color:var(--eui-c-text)}.modal-open .eui-app-toolbar{z-index:auto}.eui-t-ec .eui-app-toolbar__sidebar-toggle{padding-top:calc(var(--eui-s-m) + 2px)}\n"], dependencies: [{ kind: "component", type: i2.EuiSidebarToggleComponent, selector: "eui-sidebar-toggle", inputs: ["e2eAttr", "iconSvgFillColor"] }, { kind: "component", type: i3.EuiLanguageSelectorComponent, selector: "eui-language-selector", inputs: ["hasLanguageSelection", "isToolbarSelector", "euiPrimary"], outputs: ["languageSelectorClick"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
32
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: EuiAppToolbarComponent, selector: "eui-app-toolbar", inputs: { euiSecondary: ["euiSecondary", "euiSecondary", booleanAttribute] }, host: { properties: { "class": "this.cssClasses", "attr.role": "this.role" } }, ngImport: i0, template: "@if (asService.getState('hasSidebar') | async) {\n <eui-sidebar-toggle class=\"eui-app-toolbar__sidebar-toggle\"/>\n}\n\n<ng-content/>\n\n@if ((asService.getState('hasHeader') | async) && (asService.breakpoints$ | async).isMobile) {\n <eui-language-selector isToolbarSelector/>\n}\n", styles: [".eui-app-toolbar{align-items:center;width:100%;height:var(--eui-app-toolbar-height);display:flex;position:fixed;right:0;left:0;top:calc(var(--eui-app-header-height) + var(--eui-app-top-message-height));z-index:var(--eui-zi-nav);border-bottom:1px solid var(--eui-c-neutral-lightest)}.eui-app-toolbar__sidebar-toggle{padding-left:var(--eui-s-xs);padding-right:var(--eui-s-xs)}.eui-app-toolbar--primary{background-color:var(--eui-c-branding);color:var(--eui-c-white)}.eui-app-toolbar--primary .eui-icon-svg svg{fill:var(--eui-c-white);color:var(--eui-c-white)}.eui-app-toolbar--secondary{background-color:var(--eui-c-neutral-bg-light);color:var(--eui-c-text)}.modal-open .eui-app-toolbar{z-index:auto}.eui-t-ec .eui-app-toolbar__sidebar-toggle{padding-top:calc(var(--eui-s-m) + 2px)}\n"], dependencies: [{ kind: "component", type: i2.EuiSidebarToggleComponent, selector: "eui-sidebar-toggle", inputs: ["e2eAttr", "iconSvgFillColor"] }, { kind: "component", type: i3.EuiLanguageSelectorComponent, selector: "eui-language-selector", inputs: ["hasLanguageSelection", "isToolbarSelector", "euiPrimary", "aria-label"], outputs: ["languageSelectorClick"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
33
33
  }
34
34
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: EuiAppToolbarComponent, decorators: [{
35
35
  type: Component,