@magicx-eng/ai-autocomplete-angular 0.17.0 → 0.17.2

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.
@@ -370,7 +370,7 @@ AIAutocompleteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0"
370
370
  useExisting: forwardRef(() => AIAutocompleteComponent),
371
371
  multi: true,
372
372
  },
373
- ], viewQueries: [{ propertyName: "containerRef", first: true, predicate: ["container"], descendants: true, static: true }, { propertyName: "editorRef", first: true, predicate: ["editor"], descendants: true }, { propertyName: "pillContainerRef", first: true, predicate: ["pillContainer"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n #container\n class=\"magicx-aia magicx-aia-container\"\n [attr.data-pill-placement]=\"pillPlacement\"\n [attr.data-options-position]=\"optionsPosition\"\n [attr.data-animations]=\"animations ? 'on' : 'off'\"\n [attr.data-mode]=\"resolvedMode\"\n>\n <ai-autocomplete-dropdown\n *ngIf=\"controller\"\n [controller]=\"controller\"\n [showPills]=\"showDropdownPills\"\n [showSkipButton]=\"showSkipButton\"\n [showOptionIcons]=\"showOptionIcons\"\n ></ai-autocomplete-dropdown>\n\n <div\n class=\"magicx-aia-input-wrapper\"\n (click)=\"onWrapperClick($event)\"\n (keyup)=\"$event.stopPropagation()\"\n >\n <div class=\"magicx-aia-editor-area\" data-aia-editor=\"\">\n <div\n #editor\n *ngIf=\"controller\"\n [aiaEditorHost]=\"controller\"\n [autoFocus]=\"autoFocus\"\n [showChipIcons]=\"showChipIcons\"\n class=\"magicx-aia-input\"\n data-aia-input=\"\"\n ></div>\n\n <ng-container *ngIf=\"controller && showInlinePills\">\n <span\n #pillContainer\n class=\"magicx-aia-pill-list-container\"\n data-aia-pill-list-container=\"\"\n *ngIf=\"\n (controller.isLoading$ | async) ||\n ((controller.suggestionPills$ | async)?.length ?? 0) > 0\n \"\n >\n <aia-pill-list\n [pills]=\"(controller.suggestionPills$ | async) ?? []\"\n [activePillIndex]=\"0\"\n [activeSelected]=\"(controller.isActivePillSelected$ | async) ?? false\"\n [loading]=\"(controller.isLoading$ | async) ?? false\"\n (selectPill)=\"onSelectPill($event)\"\n ></aia-pill-list>\n </span>\n </ng-container>\n </div>\n\n <ng-container [ngSwitch]=\"submitButtonState\">\n <aia-submit-button\n *ngSwitchCase=\"'default'\"\n [disabled]=\"\n !(\n controller &&\n canSubmit({\n segments: (controller.segments$ | async) ?? [],\n completedParams: (controller.completedParams$ | async) ?? []\n })\n )\n \"\n (submit)=\"onSubmitButtonClick($event)\"\n ></aia-submit-button>\n\n <span\n *ngSwitchCase=\"'custom'\"\n data-aia-submit=\"\"\n class=\"magicx-aia-submit-slot\"\n (click)=\"onSubmitSlotClick($event)\"\n >\n <ng-container *ngTemplateOutlet=\"customSubmitTemplate\"></ng-container>\n </span>\n </ng-container>\n </div>\n</div>\n", styles: [":where(.magicx-aia,.magicx-aia *,.magicx-aia *::before,.magicx-aia *::after){box-sizing:border-box}:where(.magicx-aia),:where(.magicx-aia[data-mode=\"light\"]){--aia-surface: #ffffff;--aia-border: #b0b0b0;--aia-dropdown-border: rgba(231, 231, 231, .5);--aia-dropdown-shadow: 0 8px 12px rgba(0, 0, 0, .05);--aia-pill-bg: #bdbdbd;--aia-pill-color: #333539;--aia-pill-font-size: 16px;--aia-completed-pill-bg: rgba(189, 189, 189, .105);--aia-completed-pill-bg-active: rgba(189, 189, 189, .35);--aia-completed-pill-color: #000000;--aia-option-bg: #eef2ff;--aia-option-color: #1a1b1d;--aia-option-color-selected: #000000;--aia-option-font-size: 16px;--aia-written-text-color: #000000;--aia-written-text-font-size: 16px;--aia-caret-color: var(--aia-written-text-color, #000000);--aia-submit-bg: #000000;--aia-submit-color: #ffffff;--aia-color-text-muted: #6b7280;--aia-skeleton-bg: rgba(189, 189, 189, .25);--aia-streak-rgb: 99, 102, 241;--aia-footer-hint-color: #505050;--aia-footer-brand-color: #b0b0b0;--aia-footer-badge-border: rgba(189, 189, 189, .51)}:where(.magicx-aia[data-mode=\"dark\"]){--aia-surface: #000000;--aia-border: #505050;--aia-dropdown-border: rgba(72, 72, 72, .5);--aia-dropdown-shadow: 0 8px 12px rgba(0, 0, 0, .05);--aia-pill-bg: #bdbdbd;--aia-pill-color: #b0b0b0;--aia-pill-font-size: 16px;--aia-completed-pill-bg: rgba(189, 189, 189, .15);--aia-completed-pill-bg-active: rgba(189, 189, 189, .35);--aia-completed-pill-color: #ffffff;--aia-option-bg: #323232;--aia-option-color: #e7e7e7;--aia-option-color-selected: #ffffff;--aia-option-font-size: 16px;--aia-written-text-color: #ffffff;--aia-written-text-font-size: 16px;--aia-caret-color: var(--aia-written-text-color, #ffffff);--aia-submit-bg: #ffffff;--aia-submit-color: #000000;--aia-color-text-muted: #c1c4cb;--aia-skeleton-bg: #1a1b1d;--aia-streak-rgb: 255, 255, 255;--aia-footer-hint-color: #b0b0b0;--aia-footer-brand-color: #505050;--aia-footer-badge-border: #505050}[data-aia-dropdown]{--aia-footer-row-height: 23px;--aia-footer-band: calc(var(--aia-footer-gap, 8px) + var(--aia-footer-row-height, 23px));--aia-grid-scroll-bottom: var(--aia-footer-band);--aia-grid-overlap-bottom: calc(-1 * (var(--aia-footer-band) + 8px));--aia-footer-fade-lead: 20px;--aia-footer-fade-inset: calc(-1 * var(--aia-footer-fade-lead)) 0 0}[data-aia-dropdown] [data-aia-pillbar] .aia-pill-list{padding-inline:10px}[data-aia-dropdown] [data-aia-pillbar] .aia-pill{justify-content:flex-start;border-inline-width:0;padding-inline:0}[data-aia-dropdown][data-aia-has-products]{--aia-grid-scroll-bottom: 0px;--aia-grid-overlap-bottom: 0px;--aia-grid-scroll-top: 0px;--aia-grid-overlap-top: 0px;--aia-footer-fade-lead: 0px}[data-aia-dropdown] .aia-grid[data-scroll]{padding-top:var(--aia-grid-scroll-top, 0);padding-bottom:var(--aia-grid-scroll-bottom, 0);margin-top:var(--aia-grid-overlap-top, 0);margin-bottom:var(--aia-grid-overlap-bottom, 0)}[data-aia-dropdown] [data-aia-footer]:before{content:\"\";position:absolute;inset:var(--aia-footer-fade-inset, -20px 0 0);z-index:-1;pointer-events:none;background:linear-gradient(to bottom,transparent,var(--aia-surface, #ffffff))}[data-aia-dropdown][data-aia-surface=glass]{--aia-footer-chip-bg: transparent}[data-aia-dropdown][data-aia-surface=glass] [data-aia-footer]:before{display:none}:where(.magicx-aia[data-options-position=\"above\"]) [data-aia-dropdown]{--aia-grid-scroll-bottom: 0px;--aia-grid-overlap-bottom: 0px;--aia-grid-scroll-top: var(--aia-footer-band);--aia-grid-overlap-top: calc(-1 * (var(--aia-footer-band) + 8px));--aia-footer-fade-inset: 0 0 calc(-1 * var(--aia-footer-fade-lead));transform-origin:50% 100%;top:auto;bottom:100%;margin-top:0;margin-bottom:6px}:where(.magicx-aia[data-options-position=\"above\"]) [data-aia-dropdown] .aia-stack{flex-direction:column-reverse}:where(.magicx-aia[data-options-position=\"above\"]) [data-aia-dropdown] [data-aia-footer]{padding:0 0 var(--aia-footer-gap, 8px) 8px}:where(.magicx-aia[data-options-position=\"above\"]) [data-aia-dropdown] [data-aia-footer]:before{background:linear-gradient(to top,transparent,var(--aia-surface, #ffffff))}:where(.magicx-aia[data-animations=\"off\"]) *,:where(.magicx-aia[data-animations=\"off\"]) *:before,:where(.magicx-aia[data-animations=\"off\"]) *:after{animation-duration:0s!important;transition-duration:0s!important}.magicx-aia-container{position:relative;font-family:var(--aia-font-family, inherit);container-type:inline-size}.magicx-aia-input-wrapper{padding:12px 16px;border:1px solid var(--aia-border, #b0b0b0);border-radius:20px;background:var(--aia-surface, #ffffff);box-shadow:var(--aia-shadow, none);overflow:hidden;display:flex;align-items:flex-start;gap:12px}.magicx-aia-editor-area{position:relative;flex:1;min-width:0;min-height:22px;line-height:var(--aia-editor-line-height, 1.9);font-family:inherit;font-size:var(--aia-written-text-font-size, 14px);white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere;max-height:var(--aia-editor-max-height, calc(var(--aia-editor-line-height, 1.9) * 5em));overflow-y:auto;scrollbar-width:none}.magicx-aia-editor-area::-webkit-scrollbar{display:none}.magicx-aia-input{display:inline;outline:none;background:transparent;color:var(--aia-written-text-color, var(--aia-color-text-default, #fff));caret-color:var( --aia-caret-color, var(--aia-written-text-color, var(--aia-color-text-default, #fff)) );font-weight:300;vertical-align:middle}:where(.magicx-aia-input) strong[class~=magicx-aia-segment--completed]{display:inline;padding:3px 6px;border-radius:6px;-webkit-box-decoration-break:clone;box-decoration-break:clone;background:var(--aia-completed-pill-bg, rgba(189, 189, 189, .105));color:var(--aia-completed-pill-color, var(--aia-written-text-color, #fff));font-size:var(--aia-pill-font-size, 14px);font-weight:400;line-height:normal;white-space:normal;letter-spacing:var(--aia-completed-pill-tracking, -.02em);cursor:pointer;transition:background-color .15s ease}:where(.magicx-aia-input) strong[class~=magicx-aia-segment--completed]:hover{background:var(--aia-completed-pill-bg-active, rgba(189, 189, 189, .35))}:where(.magicx-aia-input) span[class~=magicx-aia-segment-icon]{display:inline-block;width:1em;height:1em;margin-right:4px;vertical-align:-.125em;pointer-events:none;-webkit-user-select:none;user-select:none}:where(.magicx-aia-input) span[class~=magicx-aia-segment-icon] svg{display:block;width:100%;height:100%}:where(.magicx-aia-input) strong[class~=magicx-aia-segment--editing]{background:var(--aia-completed-pill-bg-active, rgba(189, 189, 189, .35));caret-color:transparent;cursor:text}.magicx-aia-input:has(strong[class~=\"magicx-aia-segment--editing\"]){caret-color:transparent}:where(.magicx-aia-input) strong[class~=magicx-aia-segment--editing]::selection{background:transparent;color:inherit}:where(.magicx-aia-input) strong[class~=magicx-aia-segment--editing]::-moz-selection{background:transparent;color:inherit}.magicx-aia-input[data-aia-empty=true][data-placeholder]:before{content:attr(data-placeholder);color:var(--aia-color-text-muted, #c1c4cb);opacity:.7;pointer-events:none;transition:opacity var(--aia-placeholder-fade, .12s) ease-out}.magicx-aia-input[data-aia-placeholder-leaving]:before{opacity:0}@media (prefers-reduced-motion: reduce){.magicx-aia-input[data-aia-empty=true][data-placeholder]:before{transition-duration:0s}}.magicx-aia-input[data-aia-empty=true]{display:inline-block;min-width:1px}.magicx-aia-pill-list-container{display:inline;margin-left:8px}.magicx-aia-pill-list-container:empty,.magicx-aia-pill-list-container[data-aia-pill-wrapped]{margin-left:0}.magicx-aia-submit-slot{display:contents}:where(.magicx-aia-input) strong[class~=magicx-aia-shimmer-sweep]{animation:aiaPillReveal .4s cubic-bezier(.4,0,.2,1) forwards}@keyframes aiaPillReveal{0%{opacity:0}}@media (min-width: 769px){[data-aia-dropdown] [data-aia-footer]:before,[data-aia-dropdown][data-options-position=above] [data-aia-footer]:before,:where(.magicx-aia[data-options-position=\"above\"]) [data-aia-dropdown] [data-aia-footer]:before{inset:0;background:var(--aia-surface, #ffffff)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "component", type: AIAutocompleteDropdownComponent, selector: "ai-autocomplete-dropdown", inputs: ["controller", "showPills", "showSkipButton", "showOptionIcons", "className", "mode"] }, { kind: "directive", type: AIAutocompleteEditorHostDirective, selector: "[aiaEditorHost]", inputs: ["aiaEditorHost", "autoFocus", "showChipIcons"] }, { kind: "component", type: PillListComponent, selector: "aia-pill-list", inputs: ["pills", "activePillIndex", "rounded", "loading", "activeSelected"], outputs: ["selectPill"] }, { kind: "component", type: SubmitButtonComponent, selector: "aia-submit-button", inputs: ["disabled"], outputs: ["submit"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
373
+ ], viewQueries: [{ propertyName: "containerRef", first: true, predicate: ["container"], descendants: true, static: true }, { propertyName: "editorRef", first: true, predicate: ["editor"], descendants: true }, { propertyName: "pillContainerRef", first: true, predicate: ["pillContainer"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n #container\n class=\"magicx-aia magicx-aia-container\"\n [attr.data-pill-placement]=\"pillPlacement\"\n [attr.data-options-position]=\"optionsPosition\"\n [attr.data-animations]=\"animations ? 'on' : 'off'\"\n [attr.data-mode]=\"resolvedMode\"\n>\n <ai-autocomplete-dropdown\n *ngIf=\"controller\"\n [controller]=\"controller\"\n [showPills]=\"showDropdownPills\"\n [showSkipButton]=\"showSkipButton\"\n [showOptionIcons]=\"showOptionIcons\"\n ></ai-autocomplete-dropdown>\n\n <div\n class=\"magicx-aia-input-wrapper\"\n (click)=\"onWrapperClick($event)\"\n (keyup)=\"$event.stopPropagation()\"\n >\n <div class=\"magicx-aia-editor-area\" data-aia-editor=\"\">\n <div\n #editor\n *ngIf=\"controller\"\n [aiaEditorHost]=\"controller\"\n [autoFocus]=\"autoFocus\"\n [showChipIcons]=\"showChipIcons\"\n class=\"magicx-aia-input\"\n data-aia-input=\"\"\n ></div>\n\n <ng-container *ngIf=\"controller && showInlinePills\">\n <span\n #pillContainer\n class=\"magicx-aia-pill-list-container\"\n data-aia-pill-list-container=\"\"\n *ngIf=\"\n (controller.isLoading$ | async) ||\n ((controller.suggestionPills$ | async)?.length ?? 0) > 0\n \"\n >\n <aia-pill-list\n [pills]=\"(controller.suggestionPills$ | async) ?? []\"\n [activePillIndex]=\"0\"\n [activeSelected]=\"(controller.isActivePillSelected$ | async) ?? false\"\n [loading]=\"(controller.isLoading$ | async) ?? false\"\n (selectPill)=\"onSelectPill($event)\"\n ></aia-pill-list>\n </span>\n </ng-container>\n </div>\n\n <ng-container [ngSwitch]=\"submitButtonState\">\n <aia-submit-button\n *ngSwitchCase=\"'default'\"\n [disabled]=\"\n !(\n controller &&\n canSubmit({\n segments: (controller.segments$ | async) ?? [],\n completedParams: (controller.completedParams$ | async) ?? []\n })\n )\n \"\n (submit)=\"onSubmitButtonClick($event)\"\n ></aia-submit-button>\n\n <span\n *ngSwitchCase=\"'custom'\"\n data-aia-submit=\"\"\n class=\"magicx-aia-submit-slot\"\n (click)=\"onSubmitSlotClick($event)\"\n >\n <ng-container *ngTemplateOutlet=\"customSubmitTemplate\"></ng-container>\n </span>\n </ng-container>\n </div>\n</div>\n", styles: [":where(.magicx-aia,.magicx-aia *,.magicx-aia *::before,.magicx-aia *::after){box-sizing:border-box}:where(.magicx-aia),:where(.magicx-aia[data-mode=\"light\"]){--aia-surface: #ffffff;--aia-border: #b0b0b0;--aia-dropdown-border: rgba(231, 231, 231, .5);--aia-dropdown-shadow: 0 8px 12px rgba(0, 0, 0, .05);--aia-pill-bg: #bdbdbd;--aia-pill-color: #333539;--aia-pill-font-size: 16px;--aia-completed-pill-bg: rgba(189, 189, 189, .105);--aia-completed-pill-bg-active: rgba(189, 189, 189, .35);--aia-completed-pill-color: #000000;--aia-option-bg: #eef2ff;--aia-option-color: #1a1b1d;--aia-option-color-selected: #000000;--aia-option-font-size: 16px;--aia-written-text-color: #000000;--aia-written-text-font-size: 16px;--aia-caret-color: var(--aia-written-text-color, #000000);--aia-submit-bg: #000000;--aia-submit-color: #ffffff;--aia-color-text-muted: #6b7280;--aia-skeleton-bg: rgba(189, 189, 189, .25);--aia-streak-rgb: 99, 102, 241;--aia-footer-hint-color: #505050;--aia-footer-brand-color: #b0b0b0;--aia-footer-badge-border: rgba(189, 189, 189, .51)}:where(.magicx-aia[data-mode=\"dark\"]){--aia-surface: #000000;--aia-border: #505050;--aia-dropdown-border: rgba(72, 72, 72, .5);--aia-dropdown-shadow: 0 8px 12px rgba(0, 0, 0, .05);--aia-pill-bg: #bdbdbd;--aia-pill-color: #b0b0b0;--aia-pill-font-size: 16px;--aia-completed-pill-bg: rgba(189, 189, 189, .15);--aia-completed-pill-bg-active: rgba(189, 189, 189, .35);--aia-completed-pill-color: #ffffff;--aia-option-bg: #323232;--aia-option-color: #e7e7e7;--aia-option-color-selected: #ffffff;--aia-option-font-size: 16px;--aia-written-text-color: #ffffff;--aia-written-text-font-size: 16px;--aia-caret-color: var(--aia-written-text-color, #ffffff);--aia-submit-bg: #ffffff;--aia-submit-color: #000000;--aia-color-text-muted: #c1c4cb;--aia-skeleton-bg: #1a1b1d;--aia-streak-rgb: 255, 255, 255;--aia-footer-hint-color: #b0b0b0;--aia-footer-brand-color: #505050;--aia-footer-badge-border: #505050}[data-aia-dropdown]{--aia-footer-row-height: 23px;--aia-footer-band: calc(var(--aia-footer-gap, 8px) + var(--aia-footer-row-height, 23px));--aia-grid-scroll-bottom: var(--aia-footer-band);--aia-grid-overlap-bottom: calc(-1 * (var(--aia-footer-band) + 8px));--aia-footer-fade-lead: 20px;--aia-footer-fade-inset: calc(-1 * var(--aia-footer-fade-lead)) 0 0}[data-aia-dropdown] [data-aia-pillbar] .aia-pill-list{padding-inline:10px}[data-aia-dropdown] [data-aia-pillbar] .aia-pill{justify-content:flex-start;border-inline-width:0;padding-inline:0}[data-aia-dropdown][data-aia-has-products]{--aia-grid-scroll-bottom: 0px;--aia-grid-overlap-bottom: 0px;--aia-grid-scroll-top: 0px;--aia-grid-overlap-top: 0px;--aia-footer-fade-lead: 0px}[data-aia-dropdown] .aia-grid[data-scroll]{padding-top:var(--aia-grid-scroll-top, 0);padding-bottom:var(--aia-grid-scroll-bottom, 0);margin-top:var(--aia-grid-overlap-top, 0);margin-bottom:var(--aia-grid-overlap-bottom, 0)}[data-aia-dropdown] [data-aia-footer]:before{content:\"\";position:absolute;inset:var(--aia-footer-fade-inset, -20px 0 0);z-index:-1;pointer-events:none;background:linear-gradient(to bottom,transparent,var(--aia-surface, #ffffff))}[data-aia-dropdown][data-aia-surface=glass]{--aia-footer-chip-bg: transparent}[data-aia-dropdown][data-aia-surface=glass] [data-aia-footer]:before{display:none}:where(.magicx-aia[data-options-position=\"above\"]) [data-aia-dropdown]{--aia-grid-scroll-bottom: 0px;--aia-grid-overlap-bottom: 0px;--aia-grid-scroll-top: var(--aia-footer-band);--aia-grid-overlap-top: calc(-1 * (var(--aia-footer-band) + 8px));--aia-footer-fade-inset: 0 0 calc(-1 * var(--aia-footer-fade-lead));transform-origin:50% 100%;top:auto;bottom:100%;margin-top:0;margin-bottom:6px}:where(.magicx-aia[data-options-position=\"above\"]) [data-aia-dropdown] .aia-stack{flex-direction:column-reverse}:where(.magicx-aia[data-options-position=\"above\"]) [data-aia-dropdown] [data-aia-footer]{padding:0 0 var(--aia-footer-gap, 8px) 8px}:where(.magicx-aia[data-options-position=\"above\"]) [data-aia-dropdown] [data-aia-footer]:before{background:linear-gradient(to top,transparent,var(--aia-surface, #ffffff))}:where(.magicx-aia[data-animations=\"off\"]) *,:where(.magicx-aia[data-animations=\"off\"]) *:before,:where(.magicx-aia[data-animations=\"off\"]) *:after{animation-duration:0s!important;transition-duration:0s!important}.magicx-aia-container{position:relative;font-family:var(--aia-font-family, inherit);container-type:inline-size}.magicx-aia-input-wrapper{padding:12px 16px;border:1px solid var(--aia-border, #b0b0b0);border-radius:20px;background:var(--aia-surface, #ffffff);box-shadow:var(--aia-shadow, none);overflow:hidden;display:flex;align-items:flex-start;gap:12px}.magicx-aia-editor-area{position:relative;flex:1;min-width:0;min-height:22px;line-height:var(--aia-editor-line-height, 1.9);font-family:inherit;font-size:var(--aia-written-text-font-size, 14px);white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere;max-height:var(--aia-editor-max-height, calc(var(--aia-editor-line-height, 1.9) * 5em));overflow-y:auto;scrollbar-width:none}.magicx-aia-editor-area::-webkit-scrollbar{display:none}.magicx-aia-input{display:inline;outline:none;background:transparent;color:var(--aia-written-text-color, var(--aia-color-text-default, #fff));caret-color:var( --aia-caret-color, var(--aia-written-text-color, var(--aia-color-text-default, #fff)) );font-weight:300;vertical-align:middle}:where(.magicx-aia-input) strong[class~=magicx-aia-segment--completed]{display:inline;padding:3px 6px;border-radius:6px;-webkit-box-decoration-break:clone;box-decoration-break:clone;background:var(--aia-completed-pill-bg, rgba(189, 189, 189, .105));color:var(--aia-completed-pill-color, var(--aia-written-text-color, #fff));font-size:var(--aia-pill-font-size, 14px);font-weight:400;line-height:normal;white-space:normal;letter-spacing:var(--aia-completed-pill-tracking, -.02em);cursor:pointer;transition:background-color .15s ease}:where(.magicx-aia-input) strong[class~=magicx-aia-segment--completed]:hover{background:var(--aia-completed-pill-bg-active, rgba(189, 189, 189, .35))}:where(.magicx-aia-input) span[class~=magicx-aia-segment-icon]{display:inline-block;width:1em;height:1em;margin-right:4px;vertical-align:-.125em;pointer-events:none;-webkit-user-select:none;user-select:none;will-change:transform}:where(.magicx-aia-input) span[class~=magicx-aia-segment-icon] svg{display:block;width:100%;height:100%}:where(.magicx-aia-input) strong[class~=magicx-aia-segment--editing]{background:var(--aia-completed-pill-bg-active, rgba(189, 189, 189, .35));caret-color:transparent;cursor:text}.magicx-aia-input:has(strong[class~=\"magicx-aia-segment--editing\"]){caret-color:transparent}:where(.magicx-aia-input) strong[class~=magicx-aia-segment--editing]::selection{background:transparent;color:inherit}:where(.magicx-aia-input) strong[class~=magicx-aia-segment--editing]::-moz-selection{background:transparent;color:inherit}.magicx-aia-input[data-aia-empty=true][data-placeholder]:before{content:attr(data-placeholder);color:var(--aia-color-text-muted, #c1c4cb);opacity:.7;pointer-events:none;transition:opacity var(--aia-placeholder-fade, .12s) ease-out}.magicx-aia-input[data-aia-placeholder-leaving]:before{opacity:0}@media (prefers-reduced-motion: reduce){.magicx-aia-input[data-aia-empty=true][data-placeholder]:before{transition-duration:0s}}.magicx-aia-input[data-aia-empty=true]{display:inline-block;min-width:1px}.magicx-aia-pill-list-container{display:inline;margin-left:8px}.magicx-aia-pill-list-container:empty,.magicx-aia-pill-list-container[data-aia-pill-wrapped]{margin-left:0}.magicx-aia-submit-slot{display:contents}:where(.magicx-aia-input) strong[class~=magicx-aia-shimmer-sweep]{animation:aiaPillReveal .4s cubic-bezier(.4,0,.2,1) forwards}@keyframes aiaPillReveal{0%{opacity:0}}@media (min-width: 769px){[data-aia-dropdown] [data-aia-footer]:before,[data-aia-dropdown][data-options-position=above] [data-aia-footer]:before,:where(.magicx-aia[data-options-position=\"above\"]) [data-aia-dropdown] [data-aia-footer]:before{inset:0;background:var(--aia-surface, #ffffff)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "component", type: AIAutocompleteDropdownComponent, selector: "ai-autocomplete-dropdown", inputs: ["controller", "showPills", "showSkipButton", "showOptionIcons", "className", "mode"] }, { kind: "directive", type: AIAutocompleteEditorHostDirective, selector: "[aiaEditorHost]", inputs: ["aiaEditorHost", "autoFocus", "showChipIcons"] }, { kind: "component", type: PillListComponent, selector: "aia-pill-list", inputs: ["pills", "activePillIndex", "rounded", "loading", "activeSelected"], outputs: ["selectPill"] }, { kind: "component", type: SubmitButtonComponent, selector: "aia-submit-button", inputs: ["disabled"], outputs: ["submit"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
374
374
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AIAutocompleteComponent, decorators: [{
375
375
  type: Component,
376
376
  args: [{ selector: "ai-autocomplete", standalone: true, imports: [
@@ -386,7 +386,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
386
386
  useExisting: forwardRef(() => AIAutocompleteComponent),
387
387
  multi: true,
388
388
  },
389
- ], template: "<div\n #container\n class=\"magicx-aia magicx-aia-container\"\n [attr.data-pill-placement]=\"pillPlacement\"\n [attr.data-options-position]=\"optionsPosition\"\n [attr.data-animations]=\"animations ? 'on' : 'off'\"\n [attr.data-mode]=\"resolvedMode\"\n>\n <ai-autocomplete-dropdown\n *ngIf=\"controller\"\n [controller]=\"controller\"\n [showPills]=\"showDropdownPills\"\n [showSkipButton]=\"showSkipButton\"\n [showOptionIcons]=\"showOptionIcons\"\n ></ai-autocomplete-dropdown>\n\n <div\n class=\"magicx-aia-input-wrapper\"\n (click)=\"onWrapperClick($event)\"\n (keyup)=\"$event.stopPropagation()\"\n >\n <div class=\"magicx-aia-editor-area\" data-aia-editor=\"\">\n <div\n #editor\n *ngIf=\"controller\"\n [aiaEditorHost]=\"controller\"\n [autoFocus]=\"autoFocus\"\n [showChipIcons]=\"showChipIcons\"\n class=\"magicx-aia-input\"\n data-aia-input=\"\"\n ></div>\n\n <ng-container *ngIf=\"controller && showInlinePills\">\n <span\n #pillContainer\n class=\"magicx-aia-pill-list-container\"\n data-aia-pill-list-container=\"\"\n *ngIf=\"\n (controller.isLoading$ | async) ||\n ((controller.suggestionPills$ | async)?.length ?? 0) > 0\n \"\n >\n <aia-pill-list\n [pills]=\"(controller.suggestionPills$ | async) ?? []\"\n [activePillIndex]=\"0\"\n [activeSelected]=\"(controller.isActivePillSelected$ | async) ?? false\"\n [loading]=\"(controller.isLoading$ | async) ?? false\"\n (selectPill)=\"onSelectPill($event)\"\n ></aia-pill-list>\n </span>\n </ng-container>\n </div>\n\n <ng-container [ngSwitch]=\"submitButtonState\">\n <aia-submit-button\n *ngSwitchCase=\"'default'\"\n [disabled]=\"\n !(\n controller &&\n canSubmit({\n segments: (controller.segments$ | async) ?? [],\n completedParams: (controller.completedParams$ | async) ?? []\n })\n )\n \"\n (submit)=\"onSubmitButtonClick($event)\"\n ></aia-submit-button>\n\n <span\n *ngSwitchCase=\"'custom'\"\n data-aia-submit=\"\"\n class=\"magicx-aia-submit-slot\"\n (click)=\"onSubmitSlotClick($event)\"\n >\n <ng-container *ngTemplateOutlet=\"customSubmitTemplate\"></ng-container>\n </span>\n </ng-container>\n </div>\n</div>\n", styles: [":where(.magicx-aia,.magicx-aia *,.magicx-aia *::before,.magicx-aia *::after){box-sizing:border-box}:where(.magicx-aia),:where(.magicx-aia[data-mode=\"light\"]){--aia-surface: #ffffff;--aia-border: #b0b0b0;--aia-dropdown-border: rgba(231, 231, 231, .5);--aia-dropdown-shadow: 0 8px 12px rgba(0, 0, 0, .05);--aia-pill-bg: #bdbdbd;--aia-pill-color: #333539;--aia-pill-font-size: 16px;--aia-completed-pill-bg: rgba(189, 189, 189, .105);--aia-completed-pill-bg-active: rgba(189, 189, 189, .35);--aia-completed-pill-color: #000000;--aia-option-bg: #eef2ff;--aia-option-color: #1a1b1d;--aia-option-color-selected: #000000;--aia-option-font-size: 16px;--aia-written-text-color: #000000;--aia-written-text-font-size: 16px;--aia-caret-color: var(--aia-written-text-color, #000000);--aia-submit-bg: #000000;--aia-submit-color: #ffffff;--aia-color-text-muted: #6b7280;--aia-skeleton-bg: rgba(189, 189, 189, .25);--aia-streak-rgb: 99, 102, 241;--aia-footer-hint-color: #505050;--aia-footer-brand-color: #b0b0b0;--aia-footer-badge-border: rgba(189, 189, 189, .51)}:where(.magicx-aia[data-mode=\"dark\"]){--aia-surface: #000000;--aia-border: #505050;--aia-dropdown-border: rgba(72, 72, 72, .5);--aia-dropdown-shadow: 0 8px 12px rgba(0, 0, 0, .05);--aia-pill-bg: #bdbdbd;--aia-pill-color: #b0b0b0;--aia-pill-font-size: 16px;--aia-completed-pill-bg: rgba(189, 189, 189, .15);--aia-completed-pill-bg-active: rgba(189, 189, 189, .35);--aia-completed-pill-color: #ffffff;--aia-option-bg: #323232;--aia-option-color: #e7e7e7;--aia-option-color-selected: #ffffff;--aia-option-font-size: 16px;--aia-written-text-color: #ffffff;--aia-written-text-font-size: 16px;--aia-caret-color: var(--aia-written-text-color, #ffffff);--aia-submit-bg: #ffffff;--aia-submit-color: #000000;--aia-color-text-muted: #c1c4cb;--aia-skeleton-bg: #1a1b1d;--aia-streak-rgb: 255, 255, 255;--aia-footer-hint-color: #b0b0b0;--aia-footer-brand-color: #505050;--aia-footer-badge-border: #505050}[data-aia-dropdown]{--aia-footer-row-height: 23px;--aia-footer-band: calc(var(--aia-footer-gap, 8px) + var(--aia-footer-row-height, 23px));--aia-grid-scroll-bottom: var(--aia-footer-band);--aia-grid-overlap-bottom: calc(-1 * (var(--aia-footer-band) + 8px));--aia-footer-fade-lead: 20px;--aia-footer-fade-inset: calc(-1 * var(--aia-footer-fade-lead)) 0 0}[data-aia-dropdown] [data-aia-pillbar] .aia-pill-list{padding-inline:10px}[data-aia-dropdown] [data-aia-pillbar] .aia-pill{justify-content:flex-start;border-inline-width:0;padding-inline:0}[data-aia-dropdown][data-aia-has-products]{--aia-grid-scroll-bottom: 0px;--aia-grid-overlap-bottom: 0px;--aia-grid-scroll-top: 0px;--aia-grid-overlap-top: 0px;--aia-footer-fade-lead: 0px}[data-aia-dropdown] .aia-grid[data-scroll]{padding-top:var(--aia-grid-scroll-top, 0);padding-bottom:var(--aia-grid-scroll-bottom, 0);margin-top:var(--aia-grid-overlap-top, 0);margin-bottom:var(--aia-grid-overlap-bottom, 0)}[data-aia-dropdown] [data-aia-footer]:before{content:\"\";position:absolute;inset:var(--aia-footer-fade-inset, -20px 0 0);z-index:-1;pointer-events:none;background:linear-gradient(to bottom,transparent,var(--aia-surface, #ffffff))}[data-aia-dropdown][data-aia-surface=glass]{--aia-footer-chip-bg: transparent}[data-aia-dropdown][data-aia-surface=glass] [data-aia-footer]:before{display:none}:where(.magicx-aia[data-options-position=\"above\"]) [data-aia-dropdown]{--aia-grid-scroll-bottom: 0px;--aia-grid-overlap-bottom: 0px;--aia-grid-scroll-top: var(--aia-footer-band);--aia-grid-overlap-top: calc(-1 * (var(--aia-footer-band) + 8px));--aia-footer-fade-inset: 0 0 calc(-1 * var(--aia-footer-fade-lead));transform-origin:50% 100%;top:auto;bottom:100%;margin-top:0;margin-bottom:6px}:where(.magicx-aia[data-options-position=\"above\"]) [data-aia-dropdown] .aia-stack{flex-direction:column-reverse}:where(.magicx-aia[data-options-position=\"above\"]) [data-aia-dropdown] [data-aia-footer]{padding:0 0 var(--aia-footer-gap, 8px) 8px}:where(.magicx-aia[data-options-position=\"above\"]) [data-aia-dropdown] [data-aia-footer]:before{background:linear-gradient(to top,transparent,var(--aia-surface, #ffffff))}:where(.magicx-aia[data-animations=\"off\"]) *,:where(.magicx-aia[data-animations=\"off\"]) *:before,:where(.magicx-aia[data-animations=\"off\"]) *:after{animation-duration:0s!important;transition-duration:0s!important}.magicx-aia-container{position:relative;font-family:var(--aia-font-family, inherit);container-type:inline-size}.magicx-aia-input-wrapper{padding:12px 16px;border:1px solid var(--aia-border, #b0b0b0);border-radius:20px;background:var(--aia-surface, #ffffff);box-shadow:var(--aia-shadow, none);overflow:hidden;display:flex;align-items:flex-start;gap:12px}.magicx-aia-editor-area{position:relative;flex:1;min-width:0;min-height:22px;line-height:var(--aia-editor-line-height, 1.9);font-family:inherit;font-size:var(--aia-written-text-font-size, 14px);white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere;max-height:var(--aia-editor-max-height, calc(var(--aia-editor-line-height, 1.9) * 5em));overflow-y:auto;scrollbar-width:none}.magicx-aia-editor-area::-webkit-scrollbar{display:none}.magicx-aia-input{display:inline;outline:none;background:transparent;color:var(--aia-written-text-color, var(--aia-color-text-default, #fff));caret-color:var( --aia-caret-color, var(--aia-written-text-color, var(--aia-color-text-default, #fff)) );font-weight:300;vertical-align:middle}:where(.magicx-aia-input) strong[class~=magicx-aia-segment--completed]{display:inline;padding:3px 6px;border-radius:6px;-webkit-box-decoration-break:clone;box-decoration-break:clone;background:var(--aia-completed-pill-bg, rgba(189, 189, 189, .105));color:var(--aia-completed-pill-color, var(--aia-written-text-color, #fff));font-size:var(--aia-pill-font-size, 14px);font-weight:400;line-height:normal;white-space:normal;letter-spacing:var(--aia-completed-pill-tracking, -.02em);cursor:pointer;transition:background-color .15s ease}:where(.magicx-aia-input) strong[class~=magicx-aia-segment--completed]:hover{background:var(--aia-completed-pill-bg-active, rgba(189, 189, 189, .35))}:where(.magicx-aia-input) span[class~=magicx-aia-segment-icon]{display:inline-block;width:1em;height:1em;margin-right:4px;vertical-align:-.125em;pointer-events:none;-webkit-user-select:none;user-select:none}:where(.magicx-aia-input) span[class~=magicx-aia-segment-icon] svg{display:block;width:100%;height:100%}:where(.magicx-aia-input) strong[class~=magicx-aia-segment--editing]{background:var(--aia-completed-pill-bg-active, rgba(189, 189, 189, .35));caret-color:transparent;cursor:text}.magicx-aia-input:has(strong[class~=\"magicx-aia-segment--editing\"]){caret-color:transparent}:where(.magicx-aia-input) strong[class~=magicx-aia-segment--editing]::selection{background:transparent;color:inherit}:where(.magicx-aia-input) strong[class~=magicx-aia-segment--editing]::-moz-selection{background:transparent;color:inherit}.magicx-aia-input[data-aia-empty=true][data-placeholder]:before{content:attr(data-placeholder);color:var(--aia-color-text-muted, #c1c4cb);opacity:.7;pointer-events:none;transition:opacity var(--aia-placeholder-fade, .12s) ease-out}.magicx-aia-input[data-aia-placeholder-leaving]:before{opacity:0}@media (prefers-reduced-motion: reduce){.magicx-aia-input[data-aia-empty=true][data-placeholder]:before{transition-duration:0s}}.magicx-aia-input[data-aia-empty=true]{display:inline-block;min-width:1px}.magicx-aia-pill-list-container{display:inline;margin-left:8px}.magicx-aia-pill-list-container:empty,.magicx-aia-pill-list-container[data-aia-pill-wrapped]{margin-left:0}.magicx-aia-submit-slot{display:contents}:where(.magicx-aia-input) strong[class~=magicx-aia-shimmer-sweep]{animation:aiaPillReveal .4s cubic-bezier(.4,0,.2,1) forwards}@keyframes aiaPillReveal{0%{opacity:0}}@media (min-width: 769px){[data-aia-dropdown] [data-aia-footer]:before,[data-aia-dropdown][data-options-position=above] [data-aia-footer]:before,:where(.magicx-aia[data-options-position=\"above\"]) [data-aia-dropdown] [data-aia-footer]:before{inset:0;background:var(--aia-surface, #ffffff)}}\n"] }]
389
+ ], template: "<div\n #container\n class=\"magicx-aia magicx-aia-container\"\n [attr.data-pill-placement]=\"pillPlacement\"\n [attr.data-options-position]=\"optionsPosition\"\n [attr.data-animations]=\"animations ? 'on' : 'off'\"\n [attr.data-mode]=\"resolvedMode\"\n>\n <ai-autocomplete-dropdown\n *ngIf=\"controller\"\n [controller]=\"controller\"\n [showPills]=\"showDropdownPills\"\n [showSkipButton]=\"showSkipButton\"\n [showOptionIcons]=\"showOptionIcons\"\n ></ai-autocomplete-dropdown>\n\n <div\n class=\"magicx-aia-input-wrapper\"\n (click)=\"onWrapperClick($event)\"\n (keyup)=\"$event.stopPropagation()\"\n >\n <div class=\"magicx-aia-editor-area\" data-aia-editor=\"\">\n <div\n #editor\n *ngIf=\"controller\"\n [aiaEditorHost]=\"controller\"\n [autoFocus]=\"autoFocus\"\n [showChipIcons]=\"showChipIcons\"\n class=\"magicx-aia-input\"\n data-aia-input=\"\"\n ></div>\n\n <ng-container *ngIf=\"controller && showInlinePills\">\n <span\n #pillContainer\n class=\"magicx-aia-pill-list-container\"\n data-aia-pill-list-container=\"\"\n *ngIf=\"\n (controller.isLoading$ | async) ||\n ((controller.suggestionPills$ | async)?.length ?? 0) > 0\n \"\n >\n <aia-pill-list\n [pills]=\"(controller.suggestionPills$ | async) ?? []\"\n [activePillIndex]=\"0\"\n [activeSelected]=\"(controller.isActivePillSelected$ | async) ?? false\"\n [loading]=\"(controller.isLoading$ | async) ?? false\"\n (selectPill)=\"onSelectPill($event)\"\n ></aia-pill-list>\n </span>\n </ng-container>\n </div>\n\n <ng-container [ngSwitch]=\"submitButtonState\">\n <aia-submit-button\n *ngSwitchCase=\"'default'\"\n [disabled]=\"\n !(\n controller &&\n canSubmit({\n segments: (controller.segments$ | async) ?? [],\n completedParams: (controller.completedParams$ | async) ?? []\n })\n )\n \"\n (submit)=\"onSubmitButtonClick($event)\"\n ></aia-submit-button>\n\n <span\n *ngSwitchCase=\"'custom'\"\n data-aia-submit=\"\"\n class=\"magicx-aia-submit-slot\"\n (click)=\"onSubmitSlotClick($event)\"\n >\n <ng-container *ngTemplateOutlet=\"customSubmitTemplate\"></ng-container>\n </span>\n </ng-container>\n </div>\n</div>\n", styles: [":where(.magicx-aia,.magicx-aia *,.magicx-aia *::before,.magicx-aia *::after){box-sizing:border-box}:where(.magicx-aia),:where(.magicx-aia[data-mode=\"light\"]){--aia-surface: #ffffff;--aia-border: #b0b0b0;--aia-dropdown-border: rgba(231, 231, 231, .5);--aia-dropdown-shadow: 0 8px 12px rgba(0, 0, 0, .05);--aia-pill-bg: #bdbdbd;--aia-pill-color: #333539;--aia-pill-font-size: 16px;--aia-completed-pill-bg: rgba(189, 189, 189, .105);--aia-completed-pill-bg-active: rgba(189, 189, 189, .35);--aia-completed-pill-color: #000000;--aia-option-bg: #eef2ff;--aia-option-color: #1a1b1d;--aia-option-color-selected: #000000;--aia-option-font-size: 16px;--aia-written-text-color: #000000;--aia-written-text-font-size: 16px;--aia-caret-color: var(--aia-written-text-color, #000000);--aia-submit-bg: #000000;--aia-submit-color: #ffffff;--aia-color-text-muted: #6b7280;--aia-skeleton-bg: rgba(189, 189, 189, .25);--aia-streak-rgb: 99, 102, 241;--aia-footer-hint-color: #505050;--aia-footer-brand-color: #b0b0b0;--aia-footer-badge-border: rgba(189, 189, 189, .51)}:where(.magicx-aia[data-mode=\"dark\"]){--aia-surface: #000000;--aia-border: #505050;--aia-dropdown-border: rgba(72, 72, 72, .5);--aia-dropdown-shadow: 0 8px 12px rgba(0, 0, 0, .05);--aia-pill-bg: #bdbdbd;--aia-pill-color: #b0b0b0;--aia-pill-font-size: 16px;--aia-completed-pill-bg: rgba(189, 189, 189, .15);--aia-completed-pill-bg-active: rgba(189, 189, 189, .35);--aia-completed-pill-color: #ffffff;--aia-option-bg: #323232;--aia-option-color: #e7e7e7;--aia-option-color-selected: #ffffff;--aia-option-font-size: 16px;--aia-written-text-color: #ffffff;--aia-written-text-font-size: 16px;--aia-caret-color: var(--aia-written-text-color, #ffffff);--aia-submit-bg: #ffffff;--aia-submit-color: #000000;--aia-color-text-muted: #c1c4cb;--aia-skeleton-bg: #1a1b1d;--aia-streak-rgb: 255, 255, 255;--aia-footer-hint-color: #b0b0b0;--aia-footer-brand-color: #505050;--aia-footer-badge-border: #505050}[data-aia-dropdown]{--aia-footer-row-height: 23px;--aia-footer-band: calc(var(--aia-footer-gap, 8px) + var(--aia-footer-row-height, 23px));--aia-grid-scroll-bottom: var(--aia-footer-band);--aia-grid-overlap-bottom: calc(-1 * (var(--aia-footer-band) + 8px));--aia-footer-fade-lead: 20px;--aia-footer-fade-inset: calc(-1 * var(--aia-footer-fade-lead)) 0 0}[data-aia-dropdown] [data-aia-pillbar] .aia-pill-list{padding-inline:10px}[data-aia-dropdown] [data-aia-pillbar] .aia-pill{justify-content:flex-start;border-inline-width:0;padding-inline:0}[data-aia-dropdown][data-aia-has-products]{--aia-grid-scroll-bottom: 0px;--aia-grid-overlap-bottom: 0px;--aia-grid-scroll-top: 0px;--aia-grid-overlap-top: 0px;--aia-footer-fade-lead: 0px}[data-aia-dropdown] .aia-grid[data-scroll]{padding-top:var(--aia-grid-scroll-top, 0);padding-bottom:var(--aia-grid-scroll-bottom, 0);margin-top:var(--aia-grid-overlap-top, 0);margin-bottom:var(--aia-grid-overlap-bottom, 0)}[data-aia-dropdown] [data-aia-footer]:before{content:\"\";position:absolute;inset:var(--aia-footer-fade-inset, -20px 0 0);z-index:-1;pointer-events:none;background:linear-gradient(to bottom,transparent,var(--aia-surface, #ffffff))}[data-aia-dropdown][data-aia-surface=glass]{--aia-footer-chip-bg: transparent}[data-aia-dropdown][data-aia-surface=glass] [data-aia-footer]:before{display:none}:where(.magicx-aia[data-options-position=\"above\"]) [data-aia-dropdown]{--aia-grid-scroll-bottom: 0px;--aia-grid-overlap-bottom: 0px;--aia-grid-scroll-top: var(--aia-footer-band);--aia-grid-overlap-top: calc(-1 * (var(--aia-footer-band) + 8px));--aia-footer-fade-inset: 0 0 calc(-1 * var(--aia-footer-fade-lead));transform-origin:50% 100%;top:auto;bottom:100%;margin-top:0;margin-bottom:6px}:where(.magicx-aia[data-options-position=\"above\"]) [data-aia-dropdown] .aia-stack{flex-direction:column-reverse}:where(.magicx-aia[data-options-position=\"above\"]) [data-aia-dropdown] [data-aia-footer]{padding:0 0 var(--aia-footer-gap, 8px) 8px}:where(.magicx-aia[data-options-position=\"above\"]) [data-aia-dropdown] [data-aia-footer]:before{background:linear-gradient(to top,transparent,var(--aia-surface, #ffffff))}:where(.magicx-aia[data-animations=\"off\"]) *,:where(.magicx-aia[data-animations=\"off\"]) *:before,:where(.magicx-aia[data-animations=\"off\"]) *:after{animation-duration:0s!important;transition-duration:0s!important}.magicx-aia-container{position:relative;font-family:var(--aia-font-family, inherit);container-type:inline-size}.magicx-aia-input-wrapper{padding:12px 16px;border:1px solid var(--aia-border, #b0b0b0);border-radius:20px;background:var(--aia-surface, #ffffff);box-shadow:var(--aia-shadow, none);overflow:hidden;display:flex;align-items:flex-start;gap:12px}.magicx-aia-editor-area{position:relative;flex:1;min-width:0;min-height:22px;line-height:var(--aia-editor-line-height, 1.9);font-family:inherit;font-size:var(--aia-written-text-font-size, 14px);white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere;max-height:var(--aia-editor-max-height, calc(var(--aia-editor-line-height, 1.9) * 5em));overflow-y:auto;scrollbar-width:none}.magicx-aia-editor-area::-webkit-scrollbar{display:none}.magicx-aia-input{display:inline;outline:none;background:transparent;color:var(--aia-written-text-color, var(--aia-color-text-default, #fff));caret-color:var( --aia-caret-color, var(--aia-written-text-color, var(--aia-color-text-default, #fff)) );font-weight:300;vertical-align:middle}:where(.magicx-aia-input) strong[class~=magicx-aia-segment--completed]{display:inline;padding:3px 6px;border-radius:6px;-webkit-box-decoration-break:clone;box-decoration-break:clone;background:var(--aia-completed-pill-bg, rgba(189, 189, 189, .105));color:var(--aia-completed-pill-color, var(--aia-written-text-color, #fff));font-size:var(--aia-pill-font-size, 14px);font-weight:400;line-height:normal;white-space:normal;letter-spacing:var(--aia-completed-pill-tracking, -.02em);cursor:pointer;transition:background-color .15s ease}:where(.magicx-aia-input) strong[class~=magicx-aia-segment--completed]:hover{background:var(--aia-completed-pill-bg-active, rgba(189, 189, 189, .35))}:where(.magicx-aia-input) span[class~=magicx-aia-segment-icon]{display:inline-block;width:1em;height:1em;margin-right:4px;vertical-align:-.125em;pointer-events:none;-webkit-user-select:none;user-select:none;will-change:transform}:where(.magicx-aia-input) span[class~=magicx-aia-segment-icon] svg{display:block;width:100%;height:100%}:where(.magicx-aia-input) strong[class~=magicx-aia-segment--editing]{background:var(--aia-completed-pill-bg-active, rgba(189, 189, 189, .35));caret-color:transparent;cursor:text}.magicx-aia-input:has(strong[class~=\"magicx-aia-segment--editing\"]){caret-color:transparent}:where(.magicx-aia-input) strong[class~=magicx-aia-segment--editing]::selection{background:transparent;color:inherit}:where(.magicx-aia-input) strong[class~=magicx-aia-segment--editing]::-moz-selection{background:transparent;color:inherit}.magicx-aia-input[data-aia-empty=true][data-placeholder]:before{content:attr(data-placeholder);color:var(--aia-color-text-muted, #c1c4cb);opacity:.7;pointer-events:none;transition:opacity var(--aia-placeholder-fade, .12s) ease-out}.magicx-aia-input[data-aia-placeholder-leaving]:before{opacity:0}@media (prefers-reduced-motion: reduce){.magicx-aia-input[data-aia-empty=true][data-placeholder]:before{transition-duration:0s}}.magicx-aia-input[data-aia-empty=true]{display:inline-block;min-width:1px}.magicx-aia-pill-list-container{display:inline;margin-left:8px}.magicx-aia-pill-list-container:empty,.magicx-aia-pill-list-container[data-aia-pill-wrapped]{margin-left:0}.magicx-aia-submit-slot{display:contents}:where(.magicx-aia-input) strong[class~=magicx-aia-shimmer-sweep]{animation:aiaPillReveal .4s cubic-bezier(.4,0,.2,1) forwards}@keyframes aiaPillReveal{0%{opacity:0}}@media (min-width: 769px){[data-aia-dropdown] [data-aia-footer]:before,[data-aia-dropdown][data-options-position=above] [data-aia-footer]:before,:where(.magicx-aia[data-options-position=\"above\"]) [data-aia-dropdown] [data-aia-footer]:before{inset:0;background:var(--aia-surface, #ffffff)}}\n"] }]
390
390
  }], propDecorators: { apiConfig: [{
391
391
  type: Input
392
392
  }], additionalContext: [{
@@ -469,4 +469,4 @@ function resolveInitialMode(mode) {
469
469
  return "dark";
470
470
  return window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
471
471
  }
472
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWktYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvYWktYXV0b2NvbXBsZXRlL2FpLWF1dG9jb21wbGV0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvbGliL2FpLWF1dG9jb21wbGV0ZS9haS1hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xFLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFFVCxZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFDTCxNQUFNLEVBQ04sTUFBTSxFQUlOLE1BQU0sRUFDTixXQUFXLEVBR1gsU0FBUyxFQUNULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQTZCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUUsT0FBTyxFQUlMLGlCQUFpQixFQUVqQixnQkFBZ0IsRUFDaEIsY0FBYyxFQUlkLGVBQWUsR0FDaEIsTUFBTSxxQ0FBcUMsQ0FBQztBQUM3QyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQztBQUNqSCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNwRixPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUNsRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUM5RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQzs7O0FBRTFGOzs7Ozs7O0dBT0c7QUF3QkgsTUFBTSxPQUFPLHVCQUF1QjtJQXZCcEM7UUFxQ1csc0JBQWlCLEdBQUcsS0FBSyxDQUFDO1FBRW5DLHdEQUF3RDtRQUMvQyxr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QUFPLENBQUM7QUFDdEYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSwgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQge1xuICB0eXBlIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICB0eXBlIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgSW5wdXQsXG4gIGluamVjdCxcbiAgTmdab25lLFxuICB0eXBlIE9uQ2hhbmdlcyxcbiAgdHlwZSBPbkRlc3Ryb3ksXG4gIHR5cGUgT25Jbml0LFxuICBPdXRwdXQsXG4gIFBMQVRGT1JNX0lELFxuICB0eXBlIFNpbXBsZUNoYW5nZXMsXG4gIHR5cGUgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyB0eXBlIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHtcbiAgdHlwZSBBUElDb25maWcsXG4gIHR5cGUgQXBwZWFyYW5jZU1vZGUsXG4gIHR5cGUgQXV0b2NvbXBsZXRlUmVzdWx0LFxuICBidWlsZFN1Ym1pdFJlc3VsdCxcbiAgdHlwZSBDb21wbGV0ZWRQYXJhbVN0YXRlLFxuICBleHRyYWN0UGxhaW5UZXh0LFxuICBNb2RlQ29udHJvbGxlcixcbiAgdHlwZSBPcHRpb25PdmVycmlkZXMsXG4gIHR5cGUgUHJvZHVjdCxcbiAgdHlwZSBQcm9kdWN0c0NvbmZpZyxcbiAgc2V0Q3Vyc29yT2Zmc2V0LFxufSBmcm9tIFwiQG1hZ2ljeC1lbmcvYWktYXV0b2NvbXBsZXRlLXZhbmlsbGFcIjtcbmltcG9ydCB7IEFJQXV0b2NvbXBsZXRlRHJvcGRvd25Db21wb25lbnQgfSBmcm9tIFwiLi4vYWktYXV0b2NvbXBsZXRlLWRyb3Bkb3duL2FpLWF1dG9jb21wbGV0ZS1kcm9wZG93bi5jb21wb25lbnRcIjtcbmltcG9ydCB7IEFJQXV0b2NvbXBsZXRlQ29udHJvbGxlciB9IGZyb20gXCIuLi9jb250cm9sbGVyL2FpLWF1dG9jb21wbGV0ZS5jb250cm9sbGVyXCI7XG5pbXBvcnQgeyBBSUF1dG9jb21wbGV0ZUVkaXRvckhvc3REaXJlY3RpdmUgfSBmcm9tIFwiLi4vaW50ZXJuYWwvZWRpdG9yLWhvc3QvZWRpdG9yLWhvc3QuZGlyZWN0aXZlXCI7XG5pbXBvcnQgeyBQaWxsTGlzdENvbXBvbmVudCB9IGZyb20gXCIuLi9pbnRlcm5hbC9waWxsLWxpc3QvcGlsbC1saXN0LmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgU3VibWl0QnV0dG9uQ29tcG9uZW50IH0gZnJvbSBcIi4uL2ludGVybmFsL3N1Ym1pdC1idXR0b24vc3VibWl0LWJ1dHRvbi5jb21wb25lbnRcIjtcblxuLyoqXG4gKiBUaWVyIDEgY29tcG9uZW50IOKAlCBgPGFpLWF1dG9jb21wbGV0ZT5gLiBUaGUgQW5ndWxhciBlcXVpdmFsZW50IG9mIFJlYWN0J3NcbiAqIGA8QUlBdXRvY29tcGxldGUgLz5gLiBPd25zIHRoZSBjb250ZW50RWRpdGFibGUgZWRpdG9yLCBpbmxpbmUgcGlsbHMsIG1vZGVcbiAqIGNvbnRyb2xsZXIsIHN1Ym1pdCBidXR0b24gc2xvdCwgYW5kIGFuIGVtYmVkZGVkXG4gKiB7QGxpbmsgQUlBdXRvY29tcGxldGVDb250cm9sbGVyfSB0aGF0IGRyaXZlcyB0aGUgZHJvcGRvd24uXG4gKlxuICogQHB1YmxpY1xuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwiYWktYXV0b2NvbXBsZXRlXCIsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQUlBdXRvY29tcGxldGVEcm9wZG93bkNvbXBvbmVudCxcbiAgICBBSUF1dG9jb21wbGV0ZUVkaXRvckhvc3REaXJlY3RpdmUsXG4gICAgUGlsbExpc3RDb21wb25lbnQsXG4gICAgU3VibWl0QnV0dG9uQ29tcG9uZW50LFxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgdGVtcGxhdGVVcmw6IFwiLi9haS1hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXCIuL2FpLWF1dG9jb21wbGV0ZS5jb21wb25lbnQuY3NzXCJdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdXNlLWJlZm9yZS1kZWZpbmVcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEFJQXV0b2NvbXBsZXRlQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFJQXV0b2NvbXBsZXRlQ29tcG9uZW50XG4gIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgQ29udHJvbFZhbHVlQWNjZXNzb3JcbntcbiAgLy8gPT09IElucHV0cyAobWlycm9ycyBSZWFjdCdzIEFJQXV0b2NvbXBsZXRlUHJvcHMpID09PVxuXG4gIEBJbnB1dCgpIGFwaUNvbmZpZz86IEFQSUNvbmZpZztcbiAgLyoqXG4gICAqIE9wdGlvbmFsIHVzZXIgY29udGV4dC4gSW5jbHVkZSB3aGF0ZXZlciB5b3Uga25vdyBhYm91dCB0aGUgdXNlciDigJQgYVxuICAgKiBwcm9maWxlLCBwcmVmZXJlbmNlcywgd29ya3NwYWNlLCBhbnl0aGluZyDigJQgdG8gcGVyc29uYWxpemUgc3VnZ2VzdGVkXG4gICAqIHBhcmFtZXRlcnMgYW5kIG9wdGlvbnMgdG8gdGhlbS4gQmluZCBhIHN0YWJsZSByZWZlcmVuY2U7IHRoZSBzYW1lIHN3YXBcbiAgICogcnVsZSB0aGF0IGFwcGxpZXMgdG8gYGFwaUNvbmZpZ2AgYXBwbGllcyBoZXJlLlxuICAgKi9cbiAgQElucHV0KCkgYWRkaXRpb25hbENvbnRleHQ/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgQElucHV0KCkgb3B0aW9uT3ZlcnJpZGVzPzogT3B0aW9uT3ZlcnJpZGVzO1xuICBASW5wdXQoKSBtYXNrQ29tcGxldGVkVGV4dCA9IGZhbHNlO1xuICBASW5wdXQoKSBjb2x1bW5zPzogbnVtYmVyO1xuICAvKiogV2hlcmUgdW5maWxsZWQgcGlsbHMgcmVuZGVyLiBEZWZhdWx0OiBcImRyb3Bkb3duXCIuICovXG4gIEBJbnB1dCgpIHBpbGxQbGFjZW1lbnQ6IFwiaW5saW5lXCIgfCBcImRyb3Bkb3duXCIgfCBcImhpZGRlblwiID0gXCJkcm9wZG93blwiO1xuICAvKiogQ29sb3IgbW9kZS4gXCJhdXRvXCIgZm9sbG93cyBwcmVmZXJzLWNvbG9yLXNjaGVtZS4gRGVmYXVsdDogXCJhdXRvXCIuICovXG4gIEBJbnB1dCgpIG1vZGU6IEFwcGVhcmFuY2VNb2RlID0gXCJhdXRvXCI7XG4gIEBJbnB1dCgpIG9wdGlvbnNQb3NpdGlvbjogXCJhYm92ZVwiIHwgXCJiZWxvd1wiID0gXCJiZWxvd1wiO1xuICBASW5wdXQoKSBhbmltYXRpb25zID0gdHJ1ZTtcbiAgQElucHV0KCkgZHJvcGRvd25UcmlnZ2VyPzogXCJhdXRvXCIgfCBcIm1hbnVhbFwiIHwgXCJoaWRkZW5cIjtcbiAgQElucHV0KCkgY2xvc2VEcm9wZG93bk9uQmx1cj86IGJvb2xlYW47XG4gIEBJbnB1dCgpIHNob3dOb25UYXBwYWJsZU9wdGlvbnM/OiBib29sZWFuO1xuICAvKipcbiAgICogV2hlbiB0cnVlIChkZWZhdWx0KSwgdGhlIGRyb3Bkb3duJ3MgcGlsbCBiYXIgZW5kcyBpbiBhIHNtYWxsIFwic2tpcFwiIGJ1dHRvblxuICAgKiB0aGF0IGRpc21pc3NlcyB0aGUgYWN0aXZlIHBpbGwg4oCUIHNhbWUgYWN0aW9uIGFzIHByZXNzaW5nIOKGkiBhdCB0aGUgZW5kIG9mXG4gICAqIHRoZSBpbnB1dC4gU2V0IHRvIGZhbHNlIHRvIGhpZGUgaXQuIFdoZW4gcGlsbHMgcmVuZGVyIGVsc2V3aGVyZVxuICAgKiAoYHBpbGxQbGFjZW1lbnQ6IFwiaW5saW5lXCJgIC8gYFwiaGlkZGVuXCJgKSB0aGUgYmFyIHJlbmRlcnMgYXMgYSBza2lwLW9ubHlcbiAgICogcm93IGhvbGRpbmcganVzdCB0aGUgYnV0dG9uLiBIaWRkZW4gd2hpbGUgdGhlIGlucHV0IGlzIGVtcHR5IOKAlCBpdCBhcHBlYXJzXG4gICAqIGFsb25nc2lkZSB0aGUgZm9vdGVyJ3MgXCLihpIgdG8gc2tpcFwiIGhpbnQgb25jZSB0aGUgdXNlciBoYXMgdHlwZWQuXG4gICAqL1xuICBASW5wdXQoKSBzaG93U2tpcEJ1dHRvbiA9IHRydWU7XG4gIC8qKiBXaGVuIHRydWUgKGRlZmF1bHQpLCBhbiBvcHRpb24gdGhhdCBjYXJyaWVzIGFuIGBpY29uX3N2Z2AgZHJhd3MgaXRzIGljb24gYmVmb3JlIGl0cyB0ZXh0IGluIHRoZSBkcm9wZG93bi4gU2V0IHRvIGZhbHNlIHRvIHJlbmRlciBvcHRpb24gcm93cyBhcyB0ZXh0IG9ubHkuICovXG4gIEBJbnB1dCgpIHNob3dPcHRpb25JY29ucyA9IHRydWU7XG4gIC8qKiBXaGVuIHRydWUgKGRlZmF1bHQpLCBhIGNvbXBsZXRlZCBjaGlwIGluIHRoZSBpbnB1dCBkcmF3cyB0aGUgaWNvbiBvZiB0aGUgb3B0aW9uIHRoYXQgYW5zd2VyZWQgaXQuIFNldCB0byBmYWxzZSB0byByZW5kZXIgY2hpcHMgYXMgdGV4dCBvbmx5LiAqL1xuICBASW5wdXQoKSBzaG93Q2hpcEljb25zID0gdHJ1ZTtcbiAgLyoqIEZvY3VzIHRoZSBlZGl0b3Igb24gbW91bnQuIERlZmF1bHQ6IHRydWUuICovXG4gIEBJbnB1dCgpIGF1dG9Gb2N1cyA9IHRydWU7XG4gIC8qKiBDb250cm9sbGVkLW1vZGUgdGV4dCB2YWx1ZS4gKi9cbiAgQElucHV0KCkgdmFsdWU/OiBzdHJpbmc7XG4gIC8qKiBDb250cm9sbGVkLW1vZGUgY29tcGxldGVkIHBhcmFtcy4gKi9cbiAgQElucHV0KCkgY29tcGxldGVkUGFyYW1zPzogQ29tcGxldGVkUGFyYW1TdGF0ZVtdO1xuICAvKipcbiAgICogT3B0LWluIHByb2R1Y3Qgc3RyaXAuIFdoZW4gc2V0LCB0aGUgZHJvcGRvd24gcmVuZGVycyBhIGhvcml6b250YWwgcm93IG9mXG4gICAqIHByb2R1Y3QgY2FyZHMgYmVsb3cgdGhlIG9wdGlvbnMgZ3JpZCwgZmVkIGJ5IHlvdXIgb3duIHNlYXJjaCBlbmRwb2ludCBvblxuICAgKiB0aGUgU0RLJ3MgZXhpc3RpbmcgZmV0Y2ggY2FkZW5jZS4gT21pdCBpdCBhbmQgbm90aGluZyBhYm91dCB0aGUgZHJvcGRvd25cbiAgICogY2hhbmdlcyDigJQgbm8gcmVxdWVzdCwgbm8gbWFya3VwLCBubyBsYXlvdXQgc2hpZnQuXG4gICAqXG4gICAqIEJpbmQgYSBzdGFibGUgcmVmZXJlbmNlIChhIGNvbXBvbmVudCBmaWVsZCwgbm90IGFuIGlubGluZSBvYmplY3QgbGl0ZXJhbCk6XG4gICAqIGEgbmV3IG9iamVjdCBvbiBlYWNoIGNoYW5nZS1kZXRlY3Rpb24gcGFzcyByZWFkcyBhcyBhIHN3YXBwZWQgaW50ZWdyYXRpb25cbiAgICogYW5kIGNsZWFycyB0aGUgY3VycmVudCBjYXJkcyDigJQgdGhlIHNhbWUgcnVsZSB0aGF0IGFscmVhZHkgYXBwbGllcyB0b1xuICAgKiBgYXBpQ29uZmlnYCBhbmQgYG9wdGlvbk92ZXJyaWRlc2AuXG4gICAqL1xuICBASW5wdXQoKSBwcm9kdWN0cz86IFByb2R1Y3RzQ29uZmlnO1xuICAvKipcbiAgICogQ3VzdG9tIHN1Ym1pdCBidXR0b24uIFBhc3MgYSBgPG5nLXRlbXBsYXRlPmAgdG8gcmVwbGFjZSB0aGUgZGVmYXVsdCBhcnJvd1xuICAgKiBidXR0b24uIFBhc3MgYG51bGxgIHRvIHJlbmRlciBubyBidXR0b24uIERlZmF1bHQgKGB1bmRlZmluZWRgKSByZW5kZXJzXG4gICAqIHRoZSBidWlsdC1pbiBhcnJvdy5cbiAgICovXG4gIEBJbnB1dCgpIHN1Ym1pdEJ1dHRvbj86IFRlbXBsYXRlUmVmPHVua25vd24+IHwgbnVsbDtcblxuICAvLyA9PT0gT3V0cHV0cyA9PT1cblxuICAvKiogQ2FsbGVkIG9uIEVudGVyIG9yIHN1Ym1pdC1idXR0b24gY2xpY2suICovXG4gIEBPdXRwdXQoKSByZWFkb25seSBzdWJtaXR0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEF1dG9jb21wbGV0ZVJlc3VsdD4oKTtcbiAgLyoqXG4gICAqIEZpcmVzIGFmdGVyIGV2ZXJ5IHN1Y2Nlc3NmdWwgc3VnZ2VzdGlvbiByb3VuZC10cmlwIHdpdGggdGhlIHN0cnVjdHVyZWRcbiAgICogcXVlcnkgYXMgdGhlIFNESyBub3cgdW5kZXJzdGFuZHMgaXQg4oCUIHRoZSBzYW1lIGBBdXRvY29tcGxldGVSZXN1bHRgIHNoYXBlXG4gICAqIGBzdWJtaXR0ZWRgIGNhcnJpZXMsIHNvIHlvdSBjYW4gbWlycm9yIHRoZSBxdWVyeSBhcyBpdCBpcyBidWlsdCAoYSBsaXZlXG4gICAqIHByZXZpZXcsIGEgZHJhZnQsIGFuYWx5dGljcykgd2l0aG91dCB3YWl0aW5nIGZvciBzdWJtaXQuIEZpcmVzIG9uY2UgcGVyXG4gICAqIGFwcGxpZWQgcmVzcG9uc2UsIGluY2x1ZGluZyB0aGUgaW5pdGlhbCByZXF1ZXN0IG9uIGluaXQgKGFuIGVtcHR5XG4gICAqIHJlc3VsdCk7IG5ldmVyIGZvciBhIGZhaWxlZCwgYWJvcnRlZCBvciBzdXBlcnNlZGVkIHJlcXVlc3QuXG4gICAqL1xuICBAT3V0cHV0KCkgcmVhZG9ubHkgcmVzdWx0Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxBdXRvY29tcGxldGVSZXN1bHQ+KCk7XG4gIEBPdXRwdXQoKSByZWFkb25seSBlcnJvcmVkID0gbmV3IEV2ZW50RW1pdHRlcjxFcnJvcj4oKTtcbiAgQE91dHB1dCgpIHJlYWRvbmx5IHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIEBPdXRwdXQoKSByZWFkb25seSBjb21wbGV0ZWRQYXJhbXNDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPENvbXBsZXRlZFBhcmFtU3RhdGVbXT4oKTtcbiAgQE91dHB1dCgpIHJlYWRvbmx5IGZvY3VzZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSByZWFkb25seSBibHVycmVkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSB1c2VyIGFjdGl2YXRlcyBhIHByb2R1Y3QgY2FyZC4gVGhlIFNESyBkb2VzIG5vdFxuICAgKiBuYXZpZ2F0ZSDigJQgeW91IGRlY2lkZSB3aGF0IGEgc2VsZWN0aW9uIG1lYW5zLiBNb2RpZmllciAvIG1pZGRsZSBjbGlja3MgYXJlXG4gICAqIGxlZnQgdG8gdGhlIGJyb3dzZXIgKGNtZC1jbGljayBzdGlsbCBvcGVucyBhIHRhYikgYW5kIGRvbid0IGVtaXQuXG4gICAqL1xuICBAT3V0cHV0KCkgcmVhZG9ubHkgcHJvZHVjdFNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8UHJvZHVjdD4oKTtcblxuICAvLyA9PT0gVmlldyByZWZzID09PVxuXG4gIEBWaWV3Q2hpbGQoXCJjb250YWluZXJcIiwgeyBzdGF0aWM6IHRydWUgfSkgY29udGFpbmVyUmVmITogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG4gIEBWaWV3Q2hpbGQoXCJlZGl0b3JcIiwgeyBzdGF0aWM6IGZhbHNlIH0pIGVkaXRvclJlZj86IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuICBAVmlld0NoaWxkKFwicGlsbENvbnRhaW5lclwiKSBwaWxsQ29udGFpbmVyUmVmPzogRWxlbWVudFJlZjxIVE1MU3BhbkVsZW1lbnQ+O1xuXG4gIC8vID09PSBQdWJsaWMgc3RhdGUgZm9yIHRoZSB0ZW1wbGF0ZSA9PT1cblxuICBjb250cm9sbGVyITogQUlBdXRvY29tcGxldGVDb250cm9sbGVyO1xuICAvKipcbiAgICogQ29uY3JldGUgbGlnaHQvZGFyayB2YWx1ZSBib3VuZCB0byBgW2F0dHIuZGF0YS1tb2RlXWAuIFNlZWRlZCBpbiBuZ09uSW5pdFxuICAgKiBzbyB0aGUgYXR0cmlidXRlIGlzIHByZXNlbnQgZHVyaW5nIFNTUiAod2hlcmUgTW9kZUNvbnRyb2xsZXIsIGdhdGVkIGJlaGluZFxuICAgKiBpc1BsYXRmb3JtQnJvd3NlciBpbiBuZ0FmdGVyVmlld0luaXQsIG5ldmVyIHJ1bnMpLiBPbiB0aGUgYnJvd3NlciB0aGVcbiAgICogTW9kZUNvbnRyb2xsZXIncyByZXNvbHZlIGNhbGxiYWNrIGtlZXBzIHRoaXMgaW4gc3luYyDigJQgc28gaXRzIHJ1bnRpbWVcbiAgICogcHJlZmVycy1jb2xvci1zY2hlbWUgdXBkYXRlcyBhbmQgdGhpcyBiaW5kaW5nIGFsd2F5cyBhZ3JlZSAobm8gY2xvYmJlcikuXG4gICAqL1xuICByZXNvbHZlZE1vZGU6IFwibGlnaHRcIiB8IFwiZGFya1wiID0gXCJkYXJrXCI7XG5cbiAgLy8gPT09IEludGVybmFsID09PVxuXG4gIHByaXZhdGUgbW9kZUNvbnRyb2xsZXI/OiBNb2RlQ29udHJvbGxlcjtcbiAgcHJpdmF0ZSByZXNpemVPYnNlcnZlcj86IFJlc2l6ZU9ic2VydmVyO1xuICBwcml2YXRlIG9uQ2hhbmdlRm46ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkID0gbm9vcDtcbiAgcHJpdmF0ZSBvblRvdWNoZWRGbjogKCkgPT4gdm9pZCA9IG5vb3A7XG4gIC8vIEhvbGRzIGEgdmFsdWUgd3JpdHRlbiBieSBSZWFjdGl2ZSBGb3JtcyBiZWZvcmUgbmdPbkluaXQgcmFuLiBSZWFjdGl2ZVxuICAvLyBGb3JtcyBjYW4gY2FsbCB3cml0ZVZhbHVlKCkgZHVyaW5nIGR5bmFtaWMgZm9ybSBjb25zdHJ1Y3Rpb24gKGUuZy4gd2hlblxuICAvLyBhIEZvcm1Db250cm9sIGFscmVhZHkgaG9sZHMgYSB2YWx1ZSBhdCB0aGUgbW9tZW50IHRoZSBkaXJlY3RpdmUgaXNcbiAgLy8gY3JlYXRlZCkuIFdlIHN0YXNoIHRoZSB2YWx1ZSBoZXJlIGFuZCBmbHVzaCBpdCBpbiBuZ09uSW5pdCAqYWZ0ZXIqXG4gIC8vIHRoZSBjb250cm9sbGVyIGV4aXN0cyDigJQgb3RoZXJ3aXNlIHRoZSBlZGl0b3IgcmVuZGVycyBlbXB0eSBldmVuIHRob3VnaFxuICAvLyB0aGUgZm9ybSBoYWQgYSB2YWx1ZS4gYHVuZGVmaW5lZGAgbWVhbnMgXCJubyBwZW5kaW5nIHdyaXRlXCIuXG4gIHByaXZhdGUgcGVuZGluZ1dyaXRlVmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvLyDCpzE2Ljk6IHByZWZlciBgaW5qZWN0KClgIG92ZXIgY29uc3RydWN0b3ItcGFyYW1ldGVyIERJIGZvciBjb21wb25lbnRzLlxuICBwcml2YXRlIHJlYWRvbmx5IHBsYXRmb3JtSWQgPSBpbmplY3QoUExBVEZPUk1fSUQpO1xuICBwcml2YXRlIHJlYWRvbmx5IHpvbmUgPSBpbmplY3QoTmdab25lKTtcbiAgcHJpdmF0ZSByZWFkb25seSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIFNlZWQgYmVmb3JlIHRoZSBicm93c2VyIGd1YXJkIHNvIFNTUiByZW5kZXJzIGEgY29uY3JldGUgZGF0YS1tb2RlLlxuICAgIHRoaXMucmVzb2x2ZWRNb2RlID0gcmVzb2x2ZUluaXRpYWxNb2RlKHRoaXMubW9kZSk7XG4gICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSByZXR1cm47XG5cbiAgICB0aGlzLmNvbnRyb2xsZXIgPSBuZXcgQUlBdXRvY29tcGxldGVDb250cm9sbGVyKHtcbiAgICAgIGFwaUNvbmZpZzogdGhpcy5hcGlDb25maWcsXG4gICAgICBhZGRpdGlvbmFsQ29udGV4dDogdGhpcy5hZGRpdGlvbmFsQ29udGV4dCxcbiAgICAgIG9wdGlvbk92ZXJyaWRlczogdGhpcy5vcHRpb25PdmVycmlkZXMsXG4gICAgICBtYXNrQ29tcGxldGVkVGV4dDogdGhpcy5tYXNrQ29tcGxldGVkVGV4dCxcbiAgICAgIGNvbHVtbnM6IHRoaXMuY29sdW1ucyxcbiAgICAgIGRyb3Bkb3duVHJpZ2dlcjogdGhpcy5kcm9wZG93blRyaWdnZXIsXG4gICAgICBvcHRpb25zUG9zaXRpb246IHRoaXMub3B0aW9uc1Bvc2l0aW9uLFxuICAgICAgY2xvc2VEcm9wZG93bk9uQmx1cjogdGhpcy5jbG9zZURyb3Bkb3duT25CbHVyLFxuICAgICAgc2hvd05vblRhcHBhYmxlT3B0aW9uczogdGhpcy5zaG93Tm9uVGFwcGFibGVPcHRpb25zLFxuICAgICAgc291cmNlOiBcImZ1bGwtc2RrXCIsXG4gICAgICBwcm9kdWN0czogdGhpcy5wcm9kdWN0cyxcbiAgICAgIHZhbHVlOiB0aGlzLnZhbHVlLFxuICAgICAgY29tcGxldGVkUGFyYW1zOiB0aGlzLmNvbXBsZXRlZFBhcmFtcyxcbiAgICAgIG9uU3VibWl0OiAocmVzdWx0KSA9PiB0aGlzLmhhbmRsZVN1Ym1pdChyZXN1bHQpLFxuICAgICAgb25SZXN1bHQ6IChyZXN1bHQpID0+IHRoaXMucmVzdWx0Q2hhbmdlLmVtaXQocmVzdWx0KSxcbiAgICAgIG9uRXJyb3I6IChlcnJvcikgPT4gdGhpcy5lcnJvcmVkLmVtaXQoZXJyb3IpLFxuICAgICAgb25DaGFuZ2U6ICh0ZXh0KSA9PiB7XG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0ZXh0KTtcbiAgICAgICAgdGhpcy5vbkNoYW5nZUZuKHRleHQpO1xuICAgICAgfSxcbiAgICAgIG9uUGFyYW1zQ2hhbmdlOiAocGFyYW1zKSA9PiB0aGlzLmNvbXBsZXRlZFBhcmFtc0NoYW5nZS5lbWl0KHBhcmFtcyksXG4gICAgICBvbkZvY3VzOiAoKSA9PiB0aGlzLmZvY3VzZWQuZW1pdCgpLFxuICAgICAgb25Qcm9kdWN0U2VsZWN0OiAocHJvZHVjdCkgPT4gdGhpcy5wcm9kdWN0U2VsZWN0LmVtaXQocHJvZHVjdCksXG4gICAgICBvbkJsdXI6ICgpID0+IHtcbiAgICAgICAgdGhpcy5ibHVycmVkLmVtaXQoKTtcbiAgICAgICAgdGhpcy5vblRvdWNoZWRGbigpO1xuICAgICAgfSxcbiAgICAgIHNldEN1cnNvcjogKG9mZnNldCkgPT4ge1xuICAgICAgICBjb25zdCBlZGl0b3IgPSB0aGlzLmVkaXRvclJlZj8ubmF0aXZlRWxlbWVudDtcbiAgICAgICAgaWYgKCFlZGl0b3IpIHJldHVybjtcbiAgICAgICAgZWRpdG9yLmZvY3VzKCk7XG4gICAgICAgIHNldEN1cnNvck9mZnNldChlZGl0b3IsIG9mZnNldCk7XG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMucGVuZGluZ1dyaXRlVmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5jb250cm9sbGVyLnNldFZhbHVlKHRoaXMucGVuZGluZ1dyaXRlVmFsdWUpO1xuICAgICAgdGhpcy5wZW5kaW5nV3JpdGVWYWx1ZSA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSByZXR1cm47XG4gICAgLy8gTW9kZUNvbnRyb2xsZXIgd3JpdGVzIGBkYXRhLW1vZGVgIHRvIHRoZSBlbGVtZW50IGl0J3MgZ2l2ZW4uIFRoZSBDU1NcbiAgICAvLyBzZWxlY3RvcnMgYXJlIHNjb3BlZCB0byBgLm1hZ2ljeC1haWFbZGF0YS1tb2RlPVwiLi4uXCJdYCDigJQgd2hpY2ggbGl2ZXMgb25cbiAgICAvLyB0aGUgaW5uZXIgYDxkaXYgY2xhc3M9XCJtYWdpY3gtYWlhIG1hZ2ljeC1haWEtY29udGFpbmVyXCIgI2NvbnRhaW5lcj5gLFxuICAgIC8vIE5PVCB0aGUgaG9zdCBgPGFpLWF1dG9jb21wbGV0ZT5gIGVsZW1lbnQuIFRoZSByZXNvbHZlIGNhbGxiYWNrIG1pcnJvcnNcbiAgICAvLyB0aGUgdmFsdWUgaW50byBgcmVzb2x2ZWRNb2RlYCBzbyB0aGUgYFthdHRyLmRhdGEtbW9kZV1gIGJpbmRpbmcgc3RheXMgaW5cbiAgICAvLyBsb2Nrc3RlcCB3aXRoIE1vZGVDb250cm9sbGVyIOKAlCB0aGUgYmluZGluZyBoYW5kbGVzIFNTUiwgTW9kZUNvbnRyb2xsZXJcbiAgICAvLyBoYW5kbGVzIHJ1bnRpbWUgcHJlZmVycy1jb2xvci1zY2hlbWUgc3dpdGNoZXMsIGFuZCBiZWNhdXNlIHRoZXkgYWx3YXlzXG4gICAgLy8gYWdyZWUgbmVpdGhlciBjbG9iYmVycyB0aGUgb3RoZXIuXG4gICAgdGhpcy5tb2RlQ29udHJvbGxlciA9IG5ldyBNb2RlQ29udHJvbGxlcihcbiAgICAgIHRoaXMuY29udGFpbmVyUmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICB0aGlzLm1vZGUsXG4gICAgICAocmVzb2x2ZWQpID0+IHtcbiAgICAgICAgdGhpcy5yZXNvbHZlZE1vZGUgPSByZXNvbHZlZDtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICB9LFxuICAgICk7XG5cbiAgICAvLyBQaWxsLXdyYXAgZGV0ZWN0aW9uIOKAlCB3aGVuIHRoZSBwaWxsIGxpc3Qgd3JhcHMgYmVsb3cgdGhlIGVkaXRvcidzIGxhc3RcbiAgICAvLyBsaW5lLCBkcm9wIGl0cyA4cHggbGVmdCBtYXJnaW4gdmlhIGEgZGF0YSBhdHRyaWJ1dGUgdGhlIENTUyBrZXlzIG9mZi5cbiAgICAvLyBNaXJyb3JzIHRoZSBSZWFjdCBjb21wb25lbnQncyB1c2VMYXlvdXRFZmZlY3QuXG4gICAgaWYgKHR5cGVvZiBSZXNpemVPYnNlcnZlciAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgdGhpcy5yZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoKSA9PiB0aGlzLm1lYXN1cmVQaWxsV3JhcCgpKTtcbiAgICAgICAgY29uc3QgZWRpdG9yID0gdGhpcy5lZGl0b3JSZWY/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGlmIChlZGl0b3IpIHRoaXMucmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZShlZGl0b3IpO1xuICAgICAgfSk7XG4gICAgICB0aGlzLm1lYXN1cmVQaWxsV3JhcCgpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuY29udHJvbGxlcikgcmV0dXJuO1xuICAgIC8vIGBTaW1wbGVDaGFuZ2VzYCBpcyBgeyBba2V5OiBzdHJpbmddOiBTaW1wbGVDaGFuZ2UgfWAsIHNvIHBlclxuICAgIC8vIGBub1Byb3BlcnR5QWNjZXNzRnJvbUluZGV4U2lnbmF0dXJlYCBlYWNoIGtleSBsb29rdXAgdXNlcyBicmFja2V0XG4gICAgLy8gbm90YXRpb24g4oCUIHRoaXMga2VlcHMgdGhlIHN0cmljdG5lc3MgY29udHJhY3QgdGhhdCB0aGUgcmVzdCBvZiB0aGVcbiAgICAvLyB3b3Jrc3BhY2UgZW5mb3JjZXMuXG4gICAgLy8gQ29udHJvbGxlZC1tb2RlIHByb3BhZ2F0aW9uXG4gICAgaWYgKGNoYW5nZXNbXCJ2YWx1ZVwiXSAmJiB0aGlzLnZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuY29udHJvbGxlci5zZXRWYWx1ZSh0aGlzLnZhbHVlKTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXNbXCJjb21wbGV0ZWRQYXJhbXNcIl0gJiYgdGhpcy5jb21wbGV0ZWRQYXJhbXMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5jb250cm9sbGVyLnNldENvbXBsZXRlZFBhcmFtcyh0aGlzLmNvbXBsZXRlZFBhcmFtcyk7XG4gICAgfVxuICAgIC8vIFJlYWN0aXZlIG9wdGlvbnNcbiAgICBpZiAoXG4gICAgICBjaGFuZ2VzW1wiYXBpQ29uZmlnXCJdIHx8XG4gICAgICBjaGFuZ2VzW1wiYWRkaXRpb25hbENvbnRleHRcIl0gfHxcbiAgICAgIGNoYW5nZXNbXCJvcHRpb25PdmVycmlkZXNcIl0gfHxcbiAgICAgIGNoYW5nZXNbXCJkcm9wZG93blRyaWdnZXJcIl0gfHxcbiAgICAgIGNoYW5nZXNbXCJvcHRpb25zUG9zaXRpb25cIl0gfHxcbiAgICAgIGNoYW5nZXNbXCJjbG9zZURyb3Bkb3duT25CbHVyXCJdIHx8XG4gICAgICBjaGFuZ2VzW1wic2hvd05vblRhcHBhYmxlT3B0aW9uc1wiXSB8fFxuICAgICAgY2hhbmdlc1tcInByb2R1Y3RzXCJdXG4gICAgKSB7XG4gICAgICB0aGlzLmNvbnRyb2xsZXIudXBkYXRlKHtcbiAgICAgICAgYXBpQ29uZmlnOiB0aGlzLmFwaUNvbmZpZyxcbiAgICAgICAgYWRkaXRpb25hbENvbnRleHQ6IHRoaXMuYWRkaXRpb25hbENvbnRleHQsXG4gICAgICAgIG9wdGlvbk92ZXJyaWRlczogdGhpcy5vcHRpb25PdmVycmlkZXMsXG4gICAgICAgIGRyb3Bkb3duVHJpZ2dlcjogdGhpcy5kcm9wZG93blRyaWdnZXIsXG4gICAgICAgIG9wdGlvbnNQb3NpdGlvbjogdGhpcy5vcHRpb25zUG9zaXRpb24sXG4gICAgICAgIGNsb3NlRHJvcGRvd25PbkJsdXI6IHRoaXMuY2xvc2VEcm9wZG93bk9uQmx1cixcbiAgICAgICAgc2hvd05vblRhcHBhYmxlT3B0aW9uczogdGhpcy5zaG93Tm9uVGFwcGFibGVPcHRpb25zLFxuICAgICAgICAvLyBTYW1lIHJlZmVyZW5jZSBvbiBhbiB1bnJlbGF0ZWQgY2hhbmdlIGlzIGEgbm8tb3AgaW4gdGhlIGNvcmU7IG9ubHkgYVxuICAgICAgICAvLyBnZW51aW5lbHkgc3dhcHBlZCAob3IgcmVtb3ZlZCkgaW50ZWdyYXRpb24gY2xlYXJzIHRoZSBzdHJpcC5cbiAgICAgICAgcHJvZHVjdHM6IHRoaXMucHJvZHVjdHMsXG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXNbXCJtb2RlXCJdKSB7XG4gICAgICAvLyBLZWVwIHRoZSBiaW5kaW5nIGNvcnJlY3QgZXZlbiB3aGVuIE1vZGVDb250cm9sbGVyIGRvZXNuJ3QgZXhpc3QgeWV0XG4gICAgICAvLyAoU1NSIC8gcHJlLW5nQWZ0ZXJWaWV3SW5pdCkuIE9uIHRoZSBicm93c2VyLCBzZXRNb2RlIHRyaWdnZXJzIHRoZVxuICAgICAgLy8gcmVzb2x2ZSBjYWxsYmFjayB3aGljaCBzZXRzIHRoZSBzYW1lIHZhbHVlLlxuICAgICAgdGhpcy5yZXNvbHZlZE1vZGUgPSByZXNvbHZlSW5pdGlhbE1vZGUodGhpcy5tb2RlKTtcbiAgICAgIHRoaXMubW9kZUNvbnRyb2xsZXI/LnNldE1vZGUodGhpcy5tb2RlKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnJlc2l6ZU9ic2VydmVyPy5kaXNjb25uZWN0KCk7XG4gICAgdGhpcy5tb2RlQ29udHJvbGxlcj8uZGVzdHJveSgpO1xuICAgIHRoaXMuY29udHJvbGxlcj8uZGVzdHJveSgpO1xuICB9XG5cbiAgLy8gPT09IEltcGVyYXRpdmUgQVBJIChleHBvc2VkIG9uIHRoZSBjb21wb25lbnQgaW5zdGFuY2UgdmlhIEBWaWV3Q2hpbGQpID09PVxuXG4gIC8qKiBQcm9ncmFtbWF0aWNhbGx5IGZvY3VzIHRoZSBlZGl0b3IuICovXG4gIGZvY3VzKCk6IHZvaWQge1xuICAgIHRoaXMuZWRpdG9yUmVmPy5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gIH1cblxuICAvKiogUHJvZ3JhbW1hdGljYWxseSBibHVyIHRoZSBlZGl0b3IuICovXG4gIGJsdXIoKTogdm9pZCB7XG4gICAgdGhpcy5lZGl0b3JSZWY/Lm5hdGl2ZUVsZW1lbnQuYmx1cigpO1xuICB9XG5cbiAgLyoqIENsZWFyIGFsbCBzdGF0ZSwgcm90YXRlIHNlc3Npb24sIGFuZCByZS1mZXRjaC4gKi9cbiAgcmVzZXQoKTogdm9pZCB7XG4gICAgdGhpcy5jb250cm9sbGVyPy5yZXNldCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNraXAgdGhlIGFjdGl2ZSBwaWxsIOKAlCBzYW1lIGFjdGlvbiBhcyB0aGUgZHJvcGRvd24ncyBza2lwIGJ1dHRvbiAvIOKGki5cbiAgICogTGV0cyBhIGNvbnN1bWVyIHdobyBoaWRlcyB0aGUgYnVpbHQtaW4gYnV0dG9uIChgc2hvd1NraXBCdXR0b249ZmFsc2VgKVxuICAgKiBkcml2ZSBza2lwcGluZyBmcm9tIHRoZWlyIG93biBVSS5cbiAgICovXG4gIHNraXBBY3RpdmVQaWxsKCk6IHZvaWQge1xuICAgIHRoaXMuY29udHJvbGxlcj8uc2tpcEFjdGl2ZVBpbGwoKTtcbiAgfVxuXG4gIC8qKiBTd2l0Y2ggY29sb3IgbW9kZSBhdCBydW50aW1lLiAqL1xuICBzZXRNb2RlKG1vZGU6IEFwcGVhcmFuY2VNb2RlKTogdm9pZCB7XG4gICAgdGhpcy5tb2RlID0gbW9kZTtcbiAgICB0aGlzLnJlc29sdmVkTW9kZSA9IHJlc29sdmVJbml0aWFsTW9kZShtb2RlKTtcbiAgICB0aGlzLm1vZGVDb250cm9sbGVyPy5zZXRNb2RlKG1vZGUpO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgLy8gPT09IFRlbXBsYXRlIGhlbHBlcnMgPT09XG5cbiAgLyoqXG4gICAqICdkZWZhdWx0JyDihpIgcmVuZGVyIHRoZSBidWlsdC1pbiBhcnJvdyBidXR0b24uXG4gICAqICdjdXN0b20nICDihpIgcHJvamVjdCB0aGUgY29uc3VtZXItc3VwcGxpZWQgVGVtcGxhdGVSZWYuXG4gICAqICdoaWRkZW4nICDihpIgbm8gYnV0dG9uLlxuICAgKi9cbiAgZ2V0IHN1Ym1pdEJ1dHRvblN0YXRlKCk6IFwiZGVmYXVsdFwiIHwgXCJjdXN0b21cIiB8IFwiaGlkZGVuXCIge1xuICAgIGlmICh0aGlzLnN1Ym1pdEJ1dHRvbiA9PT0gbnVsbCkgcmV0dXJuIFwiaGlkZGVuXCI7XG4gICAgaWYgKHRoaXMuc3VibWl0QnV0dG9uID09PSB1bmRlZmluZWQpIHJldHVybiBcImRlZmF1bHRcIjtcbiAgICByZXR1cm4gXCJjdXN0b21cIjtcbiAgfVxuXG4gIC8qKiBOYXJyb3dlZCBhY2Nlc3NvciBmb3IgKm5nVGVtcGxhdGVPdXRsZXQg4oCUIG5ldmVyIHVuZGVmaW5lZC4gKi9cbiAgZ2V0IGN1c3RvbVN1Ym1pdFRlbXBsYXRlKCk6IFRlbXBsYXRlUmVmPHVua25vd24+IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuc3VibWl0QnV0dG9uID8/IG51bGw7XG4gIH1cblxuICBnZXQgc2hvd0lubGluZVBpbGxzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnBpbGxQbGFjZW1lbnQgPT09IFwiaW5saW5lXCI7XG4gIH1cblxuICBnZXQgc2hvd0Ryb3Bkb3duUGlsbHMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucGlsbFBsYWNlbWVudCA9PT0gXCJkcm9wZG93blwiO1xuICB9XG5cbiAgLyoqXG4gICAqIGB0cnVlYCB3aGVuIHRoZXJlJ3Mgc29tZXRoaW5nIHRvIHN1Ym1pdCDigJQgZHJpdmVuIGJ5IGN1cnJlbnQgc2VnbWVudHNcbiAgICogYW5kIGNvbXBsZXRlZCBwYXJhbXMuIFJlYWQgb2ZmIHRoZSBsaXZlIGVkaXRvciB2aWEgdGhlIGNvbnRyb2xsZXIgc3RhdGUuXG4gICAqL1xuICBjYW5TdWJtaXQoc3RhdGU6IHsgc2VnbWVudHM6IHsgbGVuZ3RoOiBudW1iZXIgfTsgY29tcGxldGVkUGFyYW1zOiB7IGxlbmd0aDogbnVtYmVyIH0gfSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBzdGF0ZS5zZWdtZW50cy5sZW5ndGggPiAwIHx8IHN0YXRlLmNvbXBsZXRlZFBhcmFtcy5sZW5ndGggPiAwO1xuICB9XG5cbiAgb25XcmFwcGVyQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAvLyBDbGlja2luZyBhIHBpbGwgc2hvdWxkIGFjdGl2YXRlIGl0IHdpdGhvdXQgc3RlYWxpbmcgZm9jdXMgZWxzZXdoZXJlLlxuICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCB8IG51bGw7XG4gICAgaWYgKHRhcmdldD8uY2xvc2VzdChcIltkYXRhLWFpYS1waWxsXVwiKSkgcmV0dXJuO1xuICAgIHRoaXMuZm9jdXMoKTtcbiAgfVxuXG4gIG9uU3VibWl0QnV0dG9uQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLmhhbmRsZVN1Ym1pdEZyb21Vc2VyQWN0aW9uKCk7XG4gIH1cblxuICBvblN1Ym1pdFNsb3RDbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuaGFuZGxlU3VibWl0RnJvbVVzZXJBY3Rpb24oKTtcbiAgfVxuXG4gIG9uU2VsZWN0UGlsbChpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5jb250cm9sbGVyLnNldEFjdGl2ZVBpbGwoaW5kZXgpO1xuICB9XG5cbiAgLy8gPT09IENvbnRyb2xWYWx1ZUFjY2Vzc29yID09PVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IHN0cmluZyB8IG51bGwpOiB2b2lkIHtcbiAgICBjb25zdCBuZXh0ID0gdmFsdWUgPz8gXCJcIjtcbiAgICBpZiAoIXRoaXMuY29udHJvbGxlcikge1xuICAgICAgLy8gUmVhY3RpdmUgRm9ybXMgY2FuIGNhbGwgd3JpdGVWYWx1ZSgpIGJlZm9yZSBuZ09uSW5pdCBjcmVhdGVzIHRoZVxuICAgICAgLy8gY29udHJvbGxlciAoZHluYW1pYyBmb3JtIGNvbnN0cnVjdGlvbiwgb3IgYSBGb3JtQ29udHJvbCB0aGF0IGFscmVhZHlcbiAgICAgIC8vIGhhZCBhIHZhbHVlIGF0IGRpcmVjdGl2ZS1jcmVhdGlvbiB0aW1lKS4gQnVmZmVyIHRoZSB2YWx1ZTsgbmdPbkluaXRcbiAgICAgIC8vIGZsdXNoZXMgaXQgYXMgc29vbiBhcyB0aGUgY29udHJvbGxlciBleGlzdHMuXG4gICAgICB0aGlzLnBlbmRpbmdXcml0ZVZhbHVlID0gbmV4dDtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5jb250cm9sbGVyLnNldFZhbHVlKG5leHQpO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlRm4gPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWRGbiA9IGZuO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShfZGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAvLyBUaGUgY29udGVudEVkaXRhYmxlIGhvc3QgZG9lc24ndCBoYXZlIGEgbmF0aXZlIGRpc2FibGVkIGF0dHJpYnV0ZS4gRm9yXG4gICAgLy8gdjAuMSB3ZSBhY2NlcHQgdGhlIGNhbGwgc28gQW5ndWxhcidzIGZvcm1zIGxheWVyIGRvZXNuJ3QgdGhyb3csIGJ1dFxuICAgIC8vIHRoZSBlZGl0b3Igc3RheXMgaW50ZXJhY3RpdmUuIEEgZnV0dXJlIGVuaGFuY2VtZW50IGNhbiB0b2dnbGVcbiAgICAvLyBjb250ZW50RWRpdGFibGUgKyBBUklBIGRpc2FibGVkIGhlcmUuXG4gIH1cblxuICAvLyA9PT0gU3VibWl0IGZsb3cgPT09XG5cbiAgLyoqXG4gICAqIENhbGxlZCBieSB0aGUgY29udHJvbGxlcidzIG9uU3VibWl0IGNhbGxiYWNrICh3aGljaCBmaXJlcyBmcm9tIHRoZVxuICAgKiBrZXlib2FyZCBjb250cm9sbGVyIG9uIEVudGVyKS4gUmVhZHMgdGhlIGxpdmUgZWRpdG9yIHRleHQg4oCUIHNhbWUgdHJpY2tcbiAgICogdGhlIFJlYWN0IGNvbXBvbmVudCB1c2VzIOKAlCBzbyB0aGUgZW1pdHRlZCBxdWVyeSByZWZsZWN0cyB3aGF0ZXZlcidzIGluXG4gICAqIHRoZSBET00gcmlnaHQgbm93LCBub3QgYSBwb3NzaWJseS1zdGFsZSBzdGF0ZSBzbmFwc2hvdC5cbiAgICovXG4gIHByaXZhdGUgaGFuZGxlU3VibWl0KF9yZXN1bHQ6IEF1dG9jb21wbGV0ZVJlc3VsdCk6IHZvaWQge1xuICAgIGNvbnN0IGVkaXRvciA9IHRoaXMuZWRpdG9yUmVmPy5uYXRpdmVFbGVtZW50O1xuICAgIGlmICghZWRpdG9yKSByZXR1cm47XG4gICAgY29uc3QgdGV4dCA9IGV4dHJhY3RQbGFpblRleHQoZWRpdG9yKTtcbiAgICBjb25zdCBzdGF0ZSA9IHRoaXMuY29udHJvbGxlci5nZXRTdGF0ZSgpO1xuICAgIGNvbnN0IHBhcmFtcyA9IHRoaXMuY29tcGxldGVkUGFyYW1zID8/IHN0YXRlLmNvbXBsZXRlZFBhcmFtcztcbiAgICB0aGlzLnN1Ym1pdHRlZC5lbWl0KFxuICAgICAgYnVpbGRTdWJtaXRSZXN1bHQodGV4dCwgcGFyYW1zLCBzdGF0ZS5za2lwcGVkUGFyYW1zLCB7XG4gICAgICAgIGlkZW50aWZpZWRQYXJhbXM6IHN0YXRlLmlkZW50aWZpZWRQYXJhbXMsXG4gICAgICAgIGlzUmVhZHk6IHN0YXRlLmlzUmVhZHksXG4gICAgICB9KSxcbiAgICApO1xuICAgIHRoaXMuY29udHJvbGxlci5yZXNldCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVTdWJtaXRGcm9tVXNlckFjdGlvbigpOiB2b2lkIHtcbiAgICBjb25zdCBzdGF0ZSA9IHRoaXMuY29udHJvbGxlci5nZXRTdGF0ZSgpO1xuICAgIGlmICghdGhpcy5jYW5TdWJtaXQoc3RhdGUpKSByZXR1cm47XG4gICAgLy8gU3ludGhlc2l6ZSB0aGUgcmVzdWx0IGZvciB0aGUgc3VibWl0LWJ1dHRvbiBjbGljayBwYXRoOyBzYW1lIHNoYXBlXG4gICAgLy8gdGhlIGNvbnRyb2xsZXIgd291bGQgZGVsaXZlciBmcm9tIGEga2V5Ym9hcmQgRW50ZXIsIHNvIGhhbmRsZVN1Ym1pdFxuICAgIC8vIGNhbiB0YWtlIGVpdGhlciBlbnRyeSBwb2ludC5cbiAgICB0aGlzLmhhbmRsZVN1Ym1pdCh7XG4gICAgICBxdWVyeTogc3RhdGUudGV4dC50cmltKCksXG4gICAgICByYXdfcXVlcnk6IFwiXCIsXG4gICAgICBjb21wbGV0ZWRfcGFyYW1zOiBbXSxcbiAgICAgIGlkZW50aWZpZWRfcGFyYW1zOiBbXSxcbiAgICAgIGlzX3JlYWR5OiBzdGF0ZS5pc1JlYWR5LFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBtZWFzdXJlUGlsbFdyYXAoKTogdm9pZCB7XG4gICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5waWxsQ29udGFpbmVyUmVmPy5uYXRpdmVFbGVtZW50O1xuICAgIGNvbnN0IGVkaXRvciA9IHRoaXMuZWRpdG9yUmVmPy5uYXRpdmVFbGVtZW50O1xuICAgIGlmICghY29udGFpbmVyIHx8ICFlZGl0b3IpIHJldHVybjtcbiAgICBjb25zdCBpbm5lciA9IGNvbnRhaW5lci5maXJzdEVsZW1lbnRDaGlsZCBhcyBIVE1MRWxlbWVudCB8IG51bGw7XG4gICAgaWYgKCFpbm5lcikgcmV0dXJuO1xuICAgIC8vIFdyYXAgZGV0ZWN0aW9uOiB0aGUgcGlsbCByb3cncyB0b3AgdnMgdGhlIGVkaXRvcidzIGJvdHRvbS4gV2hlbiB0aGVcbiAgICAvLyBwaWxscyBzaXQgb24gKG9yIGFib3ZlKSB0aGUgZWRpdG9yJ3MgbGFzdCBsaW5lIHRoZXkncmUgTk9UIHdyYXBwZWQg4oCUXG4gICAgLy8ga2VlcCB0aGUgOHB4IG1hcmdpbiBzbyB0aGV5IGRvbid0IGJ1dHQgYWdhaW5zdCB0eXBlZCB0ZXh0IG9yIHRoZVxuICAgIC8vIHBsYWNlaG9sZGVyLiBUaGlzIGhhbmRsZXMgdGhlIGVtcHR5LWVkaXRvciArIHBsYWNlaG9sZGVyIGNhc2VcbiAgICAvLyBuYXR1cmFsbHk6IHRoZSBwbGFjZWhvbGRlciBzdGlsbCBvY2N1cGllcyB0aGUgZWRpdG9yJ3MgbGluZSBib3guXG4gICAgY29uc3QgY1JlY3QgPSBpbm5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCBlUmVjdCA9IGVkaXRvci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCB3cmFwcGVkID0gY1JlY3QudG9wID49IGVSZWN0LmJvdHRvbSAtIDI7XG4gICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XG4gICAgICBpZiAod3JhcHBlZCkgY29udGFpbmVyLnNldEF0dHJpYnV0ZShcImRhdGEtYWlhLXBpbGwtd3JhcHBlZFwiLCBcIlwiKTtcbiAgICAgIGVsc2UgY29udGFpbmVyLnJlbW92ZUF0dHJpYnV0ZShcImRhdGEtYWlhLXBpbGwtd3JhcHBlZFwiKTtcbiAgICB9KTtcbiAgfVxufVxuXG5mdW5jdGlvbiBub29wKCk6IHZvaWQge1xuICAvLyBEZWZhdWx0IG5vLW9wIGZvciBDVkEgY2FsbGJhY2tzLlxufVxuXG4vKipcbiAqIFJlc29sdmUgYSBjb25jcmV0ZSBsaWdodC9kYXJrIHZhbHVlIGZyb20gdGhlIGNvbmZpZ3VyZWQgbW9kZS4gVXNlZCB0byBzZWVkXG4gKiB0aGUgYGRhdGEtbW9kZWAgYXR0cmlidXRlIHN5bmNocm9ub3VzbHkgKGluY2x1ZGluZyBkdXJpbmcgU1NSLCB3aGVyZVxuICogTW9kZUNvbnRyb2xsZXIgbmV2ZXIgcnVucykuIE9uIHRoZSBzZXJ2ZXIgYHdpbmRvd2AgaXMgdW5kZWZpbmVkIOKGkiBkZWZhdWx0c1xuICogdG8gXCJkYXJrXCIgKG1hdGNoZXMgdGhlIHZhbmlsbGEvUmVhY3QgYmVoYXZpb3IpLlxuICovXG5mdW5jdGlvbiByZXNvbHZlSW5pdGlhbE1vZGUobW9kZTogQXBwZWFyYW5jZU1vZGUpOiBcImxpZ2h0XCIgfCBcImRhcmtcIiB7XG4gIGlmIChtb2RlICE9PSBcImF1dG9cIikgcmV0dXJuIG1vZGU7XG4gIGlmICh0eXBlb2Ygd2luZG93ID09PSBcInVuZGVmaW5lZFwiKSByZXR1cm4gXCJkYXJrXCI7XG4gIHJldHVybiB3aW5kb3cubWF0Y2hNZWRpYShcIihwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaylcIikubWF0Y2hlcyA/IFwiZGFya1wiIDogXCJsaWdodFwiO1xufVxuIiwiPGRpdlxuICAjY29udGFpbmVyXG4gIGNsYXNzPVwibWFnaWN4LWFpYSBtYWdpY3gtYWlhLWNvbnRhaW5lclwiXG4gIFthdHRyLmRhdGEtcGlsbC1wbGFjZW1lbnRdPVwicGlsbFBsYWNlbWVudFwiXG4gIFthdHRyLmRhdGEtb3B0aW9ucy1wb3NpdGlvbl09XCJvcHRpb25zUG9zaXRpb25cIlxuICBbYXR0ci5kYXRhLWFuaW1hdGlvbnNdPVwiYW5pbWF0aW9ucyA/ICdvbicgOiAnb2ZmJ1wiXG4gIFthdHRyLmRhdGEtbW9kZV09XCJyZXNvbHZlZE1vZGVcIlxuPlxuICA8YWktYXV0b2NvbXBsZXRlLWRyb3Bkb3duXG4gICAgKm5nSWY9XCJjb250cm9sbGVyXCJcbiAgICBbY29udHJvbGxlcl09XCJjb250cm9sbGVyXCJcbiAgICBbc2hvd1BpbGxzXT1cInNob3dEcm9wZG93blBpbGxzXCJcbiAgICBbc2hvd1NraXBCdXR0b25dPVwic2hvd1NraXBCdXR0b25cIlxuICAgIFtzaG93T3B0aW9uSWNvbnNdPVwic2hvd09wdGlvbkljb25zXCJcbiAgPjwvYWktYXV0b2NvbXBsZXRlLWRyb3Bkb3duPlxuXG4gIDxkaXZcbiAgICBjbGFzcz1cIm1hZ2ljeC1haWEtaW5wdXQtd3JhcHBlclwiXG4gICAgKGNsaWNrKT1cIm9uV3JhcHBlckNsaWNrKCRldmVudClcIlxuICAgIChrZXl1cCk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cIm1hZ2ljeC1haWEtZWRpdG9yLWFyZWFcIiBkYXRhLWFpYS1lZGl0b3I9XCJcIj5cbiAgICAgIDxkaXZcbiAgICAgICAgI2VkaXRvclxuICAgICAgICAqbmdJZj1cImNvbnRyb2xsZXJcIlxuICAgICAgICBbYWlhRWRpdG9ySG9zdF09XCJjb250cm9sbGVyXCJcbiAgICAgICAgW2F1dG9Gb2N1c109XCJhdXRvRm9jdXNcIlxuICAgICAgICBbc2hvd0NoaXBJY29uc109XCJzaG93Q2hpcEljb25zXCJcbiAgICAgICAgY2xhc3M9XCJtYWdpY3gtYWlhLWlucHV0XCJcbiAgICAgICAgZGF0YS1haWEtaW5wdXQ9XCJcIlxuICAgICAgPjwvZGl2PlxuXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29udHJvbGxlciAmJiBzaG93SW5saW5lUGlsbHNcIj5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAjcGlsbENvbnRhaW5lclxuICAgICAgICAgIGNsYXNzPVwibWFnaWN4LWFpYS1waWxsLWxpc3QtY29udGFpbmVyXCJcbiAgICAgICAgICBkYXRhLWFpYS1waWxsLWxpc3QtY29udGFpbmVyPVwiXCJcbiAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgKGNvbnRyb2xsZXIuaXNMb2FkaW5nJCB8IGFzeW5jKSB8fFxuICAgICAgICAgICAgICAoKGNvbnRyb2xsZXIuc3VnZ2VzdGlvblBpbGxzJCB8IGFzeW5jKT8ubGVuZ3RoID8/IDApID4gMFxuICAgICAgICAgIFwiXG4gICAgICAgID5cbiAgICAgICAgICA8YWlhLXBpbGwtbGlzdFxuICAgICAgICAgICAgW3BpbGxzXT1cIihjb250cm9sbGVyLnN1Z2dlc3Rpb25QaWxscyQgfCBhc3luYykgPz8gW11cIlxuICAgICAgICAgICAgW2FjdGl2ZVBpbGxJbmRleF09XCIwXCJcbiAgICAgICAgICAgIFthY3RpdmVTZWxlY3RlZF09XCIoY29udHJvbGxlci5pc0FjdGl2ZVBpbGxTZWxlY3RlZCQgfCBhc3luYykgPz8gZmFsc2VcIlxuICAgICAgICAgICAgW2xvYWRpbmddPVwiKGNvbnRyb2xsZXIuaXNMb2FkaW5nJCB8IGFzeW5jKSA/PyBmYWxzZVwiXG4gICAgICAgICAgICAoc2VsZWN0UGlsbCk9XCJvblNlbGVjdFBpbGwoJGV2ZW50KVwiXG4gICAgICAgICAgPjwvYWlhLXBpbGwtbGlzdD5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG5cbiAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJzdWJtaXRCdXR0b25TdGF0ZVwiPlxuICAgICAgPGFpYS1zdWJtaXQtYnV0dG9uXG4gICAgICAgICpuZ1N3aXRjaENhc2U9XCInZGVmYXVsdCdcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiXG4gICAgICAgICAgIShcbiAgICAgICAgICAgIGNvbnRyb2xsZXIgJiZcbiAgICAgICAgICAgIGNhblN1Ym1pdCh7XG4gICAgICAgICAgICAgIHNlZ21lbnRzOiAoY29udHJvbGxlci5zZWdtZW50cyQgfCBhc3luYykgPz8gW10sXG4gICAgICAgICAgICAgIGNvbXBsZXRlZFBhcmFtczogKGNvbnRyb2xsZXIuY29tcGxldGVkUGFyYW1zJCB8IGFzeW5jKSA/PyBbXVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICApXG4gICAgICAgIFwiXG4gICAgICAgIChzdWJtaXQpPVwib25TdWJtaXRCdXR0b25DbGljaygkZXZlbnQpXCJcbiAgICAgID48L2FpYS1zdWJtaXQtYnV0dG9uPlxuXG4gICAgICA8c3BhblxuICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ2N1c3RvbSdcIlxuICAgICAgICBkYXRhLWFpYS1zdWJtaXQ9XCJcIlxuICAgICAgICBjbGFzcz1cIm1hZ2ljeC1haWEtc3VibWl0LXNsb3RcIlxuICAgICAgICAoY2xpY2spPVwib25TdWJtaXRTbG90Q2xpY2soJGV2ZW50KVwiXG4gICAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjdXN0b21TdWJtaXRUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9zcGFuPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
472
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWktYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvYWktYXV0b2NvbXBsZXRlL2FpLWF1dG9jb21wbGV0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvbGliL2FpLWF1dG9jb21wbGV0ZS9haS1hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xFLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFFVCxZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFDTCxNQUFNLEVBQ04sTUFBTSxFQUlOLE1BQU0sRUFDTixXQUFXLEVBR1gsU0FBUyxFQUNULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQTZCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUUsT0FBTyxFQUlMLGlCQUFpQixFQUVqQixnQkFBZ0IsRUFDaEIsY0FBYyxFQUlkLGVBQWUsR0FDaEIsTUFBTSxxQ0FBcUMsQ0FBQztBQUM3QyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQztBQUNqSCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNwRixPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUNsRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUM5RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQzs7O0FBRTFGOzs7Ozs7O0dBT0c7QUF3QkgsTUFBTSxPQUFPLHVCQUF1QjtJQXZCcEM7UUFxQ1csc0JBQWlCLEdBQUcsS0FBSyxDQUFDO1FBRW5DLHdEQUF3RDtRQUMvQyxr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QUFPLENBQUM7QUFDdEYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSwgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQge1xuICB0eXBlIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICB0eXBlIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgSW5wdXQsXG4gIGluamVjdCxcbiAgTmdab25lLFxuICB0eXBlIE9uQ2hhbmdlcyxcbiAgdHlwZSBPbkRlc3Ryb3ksXG4gIHR5cGUgT25Jbml0LFxuICBPdXRwdXQsXG4gIFBMQVRGT1JNX0lELFxuICB0eXBlIFNpbXBsZUNoYW5nZXMsXG4gIHR5cGUgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyB0eXBlIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHtcbiAgdHlwZSBBUElDb25maWcsXG4gIHR5cGUgQXBwZWFyYW5jZU1vZGUsXG4gIHR5cGUgQXV0b2NvbXBsZXRlUmVzdWx0LFxuICBidWlsZFN1Ym1pdFJlc3VsdCxcbiAgdHlwZSBDb21wbGV0ZWRQYXJhbVN0YXRlLFxuICBleHRyYWN0UGxhaW5UZXh0LFxuICBNb2RlQ29udHJvbGxlcixcbiAgdHlwZSBPcHRpb25PdmVycmlkZXMsXG4gIHR5cGUgUHJvZHVjdCxcbiAgdHlwZSBQcm9kdWN0c0NvbmZpZyxcbiAgc2V0Q3Vyc29yT2Zmc2V0LFxufSBmcm9tIFwiQG1hZ2ljeC1lbmcvYWktYXV0b2NvbXBsZXRlLXZhbmlsbGFcIjtcbmltcG9ydCB7IEFJQXV0b2NvbXBsZXRlRHJvcGRvd25Db21wb25lbnQgfSBmcm9tIFwiLi4vYWktYXV0b2NvbXBsZXRlLWRyb3Bkb3duL2FpLWF1dG9jb21wbGV0ZS1kcm9wZG93bi5jb21wb25lbnRcIjtcbmltcG9ydCB7IEFJQXV0b2NvbXBsZXRlQ29udHJvbGxlciB9IGZyb20gXCIuLi9jb250cm9sbGVyL2FpLWF1dG9jb21wbGV0ZS5jb250cm9sbGVyXCI7XG5pbXBvcnQgeyBBSUF1dG9jb21wbGV0ZUVkaXRvckhvc3REaXJlY3RpdmUgfSBmcm9tIFwiLi4vaW50ZXJuYWwvZWRpdG9yLWhvc3QvZWRpdG9yLWhvc3QuZGlyZWN0aXZlXCI7XG5pbXBvcnQgeyBQaWxsTGlzdENvbXBvbmVudCB9IGZyb20gXCIuLi9pbnRlcm5hbC9waWxsLWxpc3QvcGlsbC1saXN0LmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgU3VibWl0QnV0dG9uQ29tcG9uZW50IH0gZnJvbSBcIi4uL2ludGVybmFsL3N1Ym1pdC1idXR0b24vc3VibWl0LWJ1dHRvbi5jb21wb25lbnRcIjtcblxuLyoqXG4gKiBUaWVyIDEgY29tcG9uZW50IOKAlCBgPGFpLWF1dG9jb21wbGV0ZT5gLiBUaGUgQW5ndWxhciBlcXVpdmFsZW50IG9mIFJlYWN0J3NcbiAqIGA8QUlBdXRvY29tcGxldGUgLz5gLiBPd25zIHRoZSBjb250ZW50RWRpdGFibGUgZWRpdG9yLCBpbmxpbmUgcGlsbHMsIG1vZGVcbiAqIGNvbnRyb2xsZXIsIHN1Ym1pdCBidXR0b24gc2xvdCwgYW5kIGFuIGVtYmVkZGVkXG4gKiB7QGxpbmsgQUlBdXRvY29tcGxldGVDb250cm9sbGVyfSB0aGF0IGRyaXZlcyB0aGUgZHJvcGRvd24uXG4gKlxuICogQHB1YmxpY1xuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwiYWktYXV0b2NvbXBsZXRlXCIsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQUlBdXRvY29tcGxldGVEcm9wZG93bkNvbXBvbmVudCxcbiAgICBBSUF1dG9jb21wbGV0ZUVkaXRvckhvc3REaXJlY3RpdmUsXG4gICAgUGlsbExpc3RDb21wb25lbnQsXG4gICAgU3VibWl0QnV0dG9uQ29tcG9uZW50LFxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgdGVtcGxhdGVVcmw6IFwiLi9haS1hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXCIuL2FpLWF1dG9jb21wbGV0ZS5jb21wb25lbnQuY3NzXCJdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdXNlLWJlZm9yZS1kZWZpbmVcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEFJQXV0b2NvbXBsZXRlQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFJQXV0b2NvbXBsZXRlQ29tcG9uZW50XG4gIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgQ29udHJvbFZhbHVlQWNjZXNzb3JcbntcbiAgLy8gPT09IElucHV0cyAobWlycm9ycyBSZWFjdCdzIEFJQXV0b2NvbXBsZXRlUHJvcHMpID09PVxuXG4gIEBJbnB1dCgpIGFwaUNvbmZpZz86IEFQSUNvbmZpZztcbiAgLyoqXG4gICAqIE9wdGlvbmFsIHVzZXIgY29udGV4dC4gSW5jbHVkZSB3aGF0ZXZlciB5b3Uga25vdyBhYm91dCB0aGUgdXNlciDigJQgYVxuICAgKiBwcm9maWxlLCBwcmVmZXJlbmNlcywgd29ya3NwYWNlLCBhbnl0aGluZyDigJQgdG8gcGVyc29uYWxpemUgc3VnZ2VzdGVkXG4gICAqIHBhcmFtZXRlcnMgYW5kIG9wdGlvbnMgdG8gdGhlbS4gQmluZCBhIHN0YWJsZSByZWZlcmVuY2U7IHRoZSBzYW1lIHN3YXBcbiAgICogcnVsZSB0aGF0IGFwcGxpZXMgdG8gYGFwaUNvbmZpZ2AgYXBwbGllcyBoZXJlLlxuICAgKi9cbiAgQElucHV0KCkgYWRkaXRpb25hbENvbnRleHQ/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgQElucHV0KCkgb3B0aW9uT3ZlcnJpZGVzPzogT3B0aW9uT3ZlcnJpZGVzO1xuICBASW5wdXQoKSBtYXNrQ29tcGxldGVkVGV4dCA9IGZhbHNlO1xuICBASW5wdXQoKSBjb2x1bW5zPzogbnVtYmVyO1xuICAvKiogV2hlcmUgdW5maWxsZWQgcGlsbHMgcmVuZGVyLiBEZWZhdWx0OiBcImRyb3Bkb3duXCIuICovXG4gIEBJbnB1dCgpIHBpbGxQbGFjZW1lbnQ6IFwiaW5saW5lXCIgfCBcImRyb3Bkb3duXCIgfCBcImhpZGRlblwiID0gXCJkcm9wZG93blwiO1xuICAvKiogQ29sb3IgbW9kZS4gXCJhdXRvXCIgZm9sbG93cyBwcmVmZXJzLWNvbG9yLXNjaGVtZS4gRGVmYXVsdDogXCJhdXRvXCIuICovXG4gIEBJbnB1dCgpIG1vZGU6IEFwcGVhcmFuY2VNb2RlID0gXCJhdXRvXCI7XG4gIEBJbnB1dCgpIG9wdGlvbnNQb3NpdGlvbjogXCJhYm92ZVwiIHwgXCJiZWxvd1wiID0gXCJiZWxvd1wiO1xuICBASW5wdXQoKSBhbmltYXRpb25zID0gdHJ1ZTtcbiAgQElucHV0KCkgZHJvcGRvd25UcmlnZ2VyPzogXCJhdXRvXCIgfCBcIm1hbnVhbFwiIHwgXCJoaWRkZW5cIjtcbiAgQElucHV0KCkgY2xvc2VEcm9wZG93bk9uQmx1cj86IGJvb2xlYW47XG4gIEBJbnB1dCgpIHNob3dOb25UYXBwYWJsZU9wdGlvbnM/OiBib29sZWFuO1xuICAvKipcbiAgICogV2hlbiB0cnVlIChkZWZhdWx0KSwgdGhlIGRyb3Bkb3duJ3MgcGlsbCBiYXIgZW5kcyBpbiBhIHNtYWxsIFwic2tpcFwiIGJ1dHRvblxuICAgKiB0aGF0IGRpc21pc3NlcyB0aGUgYWN0aXZlIHBpbGwg4oCUIHNhbWUgYWN0aW9uIGFzIHByZXNzaW5nIOKGkiBhdCB0aGUgZW5kIG9mXG4gICAqIHRoZSBpbnB1dC4gU2V0IHRvIGZhbHNlIHRvIGhpZGUgaXQuIFdoZW4gcGlsbHMgcmVuZGVyIGVsc2V3aGVyZVxuICAgKiAoYHBpbGxQbGFjZW1lbnQ6IFwiaW5saW5lXCJgIC8gYFwiaGlkZGVuXCJgKSB0aGUgYmFyIHJlbmRlcnMgYXMgYSBza2lwLW9ubHlcbiAgICogcm93IGhvbGRpbmcganVzdCB0aGUgYnV0dG9uLiBIaWRkZW4gd2hpbGUgdGhlIGlucHV0IGlzIGVtcHR5IOKAlCBpdCBhcHBlYXJzXG4gICAqIGFsb25nc2lkZSB0aGUgZm9vdGVyJ3MgXCLihpIgdG8gc2tpcFwiIGhpbnQgb25jZSB0aGUgdXNlciBoYXMgdHlwZWQuXG4gICAqL1xuICBASW5wdXQoKSBzaG93U2tpcEJ1dHRvbiA9IHRydWU7XG4gIC8qKiBXaGVuIHRydWUgKGRlZmF1bHQpLCBhbiBvcHRpb24gdGhhdCBjYXJyaWVzIGFuIGBpY29uX3N2Z2AgZHJhd3MgaXRzIGljb24gYmVmb3JlIGl0cyB0ZXh0IGluIHRoZSBkcm9wZG93bi4gU2V0IHRvIGZhbHNlIHRvIHJlbmRlciBvcHRpb24gcm93cyBhcyB0ZXh0IG9ubHkuICovXG4gIEBJbnB1dCgpIHNob3dPcHRpb25JY29ucyA9IHRydWU7XG4gIC8qKiBXaGVuIHRydWUgKGRlZmF1bHQpLCBhIGNvbXBsZXRlZCBjaGlwIGluIHRoZSBpbnB1dCBkcmF3cyB0aGUgaWNvbiBvZiB0aGUgb3B0aW9uIHRoYXQgYW5zd2VyZWQgaXQuIFNldCB0byBmYWxzZSB0byByZW5kZXIgY2hpcHMgYXMgdGV4dCBvbmx5LiAqL1xuICBASW5wdXQoKSBzaG93Q2hpcEljb25zID0gdHJ1ZTtcbiAgLyoqIEZvY3VzIHRoZSBlZGl0b3Igb24gbW91bnQuIERlZmF1bHQ6IHRydWUuICovXG4gIEBJbnB1dCgpIGF1dG9Gb2N1cyA9IHRydWU7XG4gIC8qKiBDb250cm9sbGVkLW1vZGUgdGV4dCB2YWx1ZS4gKi9cbiAgQElucHV0KCkgdmFsdWU/OiBzdHJpbmc7XG4gIC8qKiBDb250cm9sbGVkLW1vZGUgY29tcGxldGVkIHBhcmFtcy4gKi9cbiAgQElucHV0KCkgY29tcGxldGVkUGFyYW1zPzogQ29tcGxldGVkUGFyYW1TdGF0ZVtdO1xuICAvKipcbiAgICogT3B0LWluIHByb2R1Y3Qgc3RyaXAuIFdoZW4gc2V0LCB0aGUgZHJvcGRvd24gcmVuZGVycyBhIGhvcml6b250YWwgcm93IG9mXG4gICAqIHByb2R1Y3QgY2FyZHMgYmVsb3cgdGhlIG9wdGlvbnMgZ3JpZCwgZmVkIGJ5IHlvdXIgb3duIHNlYXJjaCBlbmRwb2ludCBvblxuICAgKiB0aGUgU0RLJ3MgZXhpc3RpbmcgZmV0Y2ggY2FkZW5jZS4gT21pdCBpdCBhbmQgbm90aGluZyBhYm91dCB0aGUgZHJvcGRvd25cbiAgICogY2hhbmdlcyDigJQgbm8gcmVxdWVzdCwgbm8gbWFya3VwLCBubyBsYXlvdXQgc2hpZnQuXG4gICAqXG4gICAqIEJpbmQgYSBzdGFibGUgcmVmZXJlbmNlIChhIGNvbXBvbmVudCBmaWVsZCwgbm90IGFuIGlubGluZSBvYmplY3QgbGl0ZXJhbCk6XG4gICAqIGEgbmV3IG9iamVjdCBvbiBlYWNoIGNoYW5nZS1kZXRlY3Rpb24gcGFzcyByZWFkcyBhcyBhIHN3YXBwZWQgaW50ZWdyYXRpb25cbiAgICogYW5kIGNsZWFycyB0aGUgY3VycmVudCBjYXJkcyDigJQgdGhlIHNhbWUgcnVsZSB0aGF0IGFscmVhZHkgYXBwbGllcyB0b1xuICAgKiBgYXBpQ29uZmlnYCBhbmQgYG9wdGlvbk92ZXJyaWRlc2AuXG4gICAqL1xuICBASW5wdXQoKSBwcm9kdWN0cz86IFByb2R1Y3RzQ29uZmlnO1xuICAvKipcbiAgICogQ3VzdG9tIHN1Ym1pdCBidXR0b24uIFBhc3MgYSBgPG5nLXRlbXBsYXRlPmAgdG8gcmVwbGFjZSB0aGUgZGVmYXVsdCBhcnJvd1xuICAgKiBidXR0b24uIFBhc3MgYG51bGxgIHRvIHJlbmRlciBubyBidXR0b24uIERlZmF1bHQgKGB1bmRlZmluZWRgKSByZW5kZXJzXG4gICAqIHRoZSBidWlsdC1pbiBhcnJvdy5cbiAgICovXG4gIEBJbnB1dCgpIHN1Ym1pdEJ1dHRvbj86IFRlbXBsYXRlUmVmPHVua25vd24+IHwgbnVsbDtcblxuICAvLyA9PT0gT3V0cHV0cyA9PT1cblxuICAvKiogQ2FsbGVkIG9uIEVudGVyIG9yIHN1Ym1pdC1idXR0b24gY2xpY2suICovXG4gIEBPdXRwdXQoKSByZWFkb25seSBzdWJtaXR0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEF1dG9jb21wbGV0ZVJlc3VsdD4oKTtcbiAgLyoqXG4gICAqIEZpcmVzIGFmdGVyIGV2ZXJ5IHN1Y2Nlc3NmdWwgc3VnZ2VzdGlvbiByb3VuZC10cmlwIHdpdGggdGhlIHN0cnVjdHVyZWRcbiAgICogcXVlcnkgYXMgdGhlIFNESyBub3cgdW5kZXJzdGFuZHMgaXQg4oCUIHRoZSBzYW1lIGBBdXRvY29tcGxldGVSZXN1bHRgIHNoYXBlXG4gICAqIGBzdWJtaXR0ZWRgIGNhcnJpZXMsIHNvIHlvdSBjYW4gbWlycm9yIHRoZSBxdWVyeSBhcyBpdCBpcyBidWlsdCAoYSBsaXZlXG4gICAqIHByZXZpZXcsIGEgZHJhZnQsIGFuYWx5dGljcykgd2l0aG91dCB3YWl0aW5nIGZvciBzdWJtaXQuIEZpcmVzIG9uY2UgcGVyXG4gICAqIGFwcGxpZWQgcmVzcG9uc2UsIGluY2x1ZGluZyB0aGUgaW5pdGlhbCByZXF1ZXN0IG9uIGluaXQgKGFuIGVtcHR5XG4gICAqIHJlc3VsdCk7IG5ldmVyIGZvciBhIGZhaWxlZCwgYWJvcnRlZCBvciBzdXBlcnNlZGVkIHJlcXVlc3QuXG4gICAqL1xuICBAT3V0cHV0KCkgcmVhZG9ubHkgcmVzdWx0Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxBdXRvY29tcGxldGVSZXN1bHQ+KCk7XG4gIEBPdXRwdXQoKSByZWFkb25seSBlcnJvcmVkID0gbmV3IEV2ZW50RW1pdHRlcjxFcnJvcj4oKTtcbiAgQE91dHB1dCgpIHJlYWRvbmx5IHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIEBPdXRwdXQoKSByZWFkb25seSBjb21wbGV0ZWRQYXJhbXNDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPENvbXBsZXRlZFBhcmFtU3RhdGVbXT4oKTtcbiAgQE91dHB1dCgpIHJlYWRvbmx5IGZvY3VzZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSByZWFkb25seSBibHVycmVkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSB1c2VyIGFjdGl2YXRlcyBhIHByb2R1Y3QgY2FyZC4gVGhlIFNESyBkb2VzIG5vdFxuICAgKiBuYXZpZ2F0ZSDigJQgeW91IGRlY2lkZSB3aGF0IGEgc2VsZWN0aW9uIG1lYW5zLiBNb2RpZmllciAvIG1pZGRsZSBjbGlja3MgYXJlXG4gICAqIGxlZnQgdG8gdGhlIGJyb3dzZXIgKGNtZC1jbGljayBzdGlsbCBvcGVucyBhIHRhYikgYW5kIGRvbid0IGVtaXQuXG4gICAqL1xuICBAT3V0cHV0KCkgcmVhZG9ubHkgcHJvZHVjdFNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8UHJvZHVjdD4oKTtcblxuICAvLyA9PT0gVmlldyByZWZzID09PVxuXG4gIEBWaWV3Q2hpbGQoXCJjb250YWluZXJcIiwgeyBzdGF0aWM6IHRydWUgfSkgY29udGFpbmVyUmVmITogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG4gIEBWaWV3Q2hpbGQoXCJlZGl0b3JcIiwgeyBzdGF0aWM6IGZhbHNlIH0pIGVkaXRvclJlZj86IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuICBAVmlld0NoaWxkKFwicGlsbENvbnRhaW5lclwiKSBwaWxsQ29udGFpbmVyUmVmPzogRWxlbWVudFJlZjxIVE1MU3BhbkVsZW1lbnQ+O1xuXG4gIC8vID09PSBQdWJsaWMgc3RhdGUgZm9yIHRoZSB0ZW1wbGF0ZSA9PT1cblxuICBjb250cm9sbGVyITogQUlBdXRvY29tcGxldGVDb250cm9sbGVyO1xuICAvKipcbiAgICogQ29uY3JldGUgbGlnaHQvZGFyayB2YWx1ZSBib3VuZCB0byBgW2F0dHIuZGF0YS1tb2RlXWAuIFNlZWRlZCBpbiBuZ09uSW5pdFxuICAgKiBzbyB0aGUgYXR0cmlidXRlIGlzIHByZXNlbnQgZHVyaW5nIFNTUiAod2hlcmUgTW9kZUNvbnRyb2xsZXIsIGdhdGVkIGJlaGluZFxuICAgKiBpc1BsYXRmb3JtQnJvd3NlciBpbiBuZ0FmdGVyVmlld0luaXQsIG5ldmVyIHJ1bnMpLiBPbiB0aGUgYnJvd3NlciB0aGVcbiAgICogTW9kZUNvbnRyb2xsZXIncyByZXNvbHZlIGNhbGxiYWNrIGtlZXBzIHRoaXMgaW4gc3luYyDigJQgc28gaXRzIHJ1bnRpbWVcbiAgICogcHJlZmVycy1jb2xvci1zY2hlbWUgdXBkYXRlcyBhbmQgdGhpcyBiaW5kaW5nIGFsd2F5cyBhZ3JlZSAobm8gY2xvYmJlcikuXG4gICAqL1xuICByZXNvbHZlZE1vZGU6IFwibGlnaHRcIiB8IFwiZGFya1wiID0gXCJkYXJrXCI7XG5cbiAgLy8gPT09IEludGVybmFsID09PVxuXG4gIHByaXZhdGUgbW9kZUNvbnRyb2xsZXI/OiBNb2RlQ29udHJvbGxlcjtcbiAgcHJpdmF0ZSByZXNpemVPYnNlcnZlcj86IFJlc2l6ZU9ic2VydmVyO1xuICBwcml2YXRlIG9uQ2hhbmdlRm46ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkID0gbm9vcDtcbiAgcHJpdmF0ZSBvblRvdWNoZWRGbjogKCkgPT4gdm9pZCA9IG5vb3A7XG4gIC8vIEhvbGRzIGEgdmFsdWUgd3JpdHRlbiBieSBSZWFjdGl2ZSBGb3JtcyBiZWZvcmUgbmdPbkluaXQgcmFuLiBSZWFjdGl2ZVxuICAvLyBGb3JtcyBjYW4gY2FsbCB3cml0ZVZhbHVlKCkgZHVyaW5nIGR5bmFtaWMgZm9ybSBjb25zdHJ1Y3Rpb24gKGUuZy4gd2hlblxuICAvLyBhIEZvcm1Db250cm9sIGFscmVhZHkgaG9sZHMgYSB2YWx1ZSBhdCB0aGUgbW9tZW50IHRoZSBkaXJlY3RpdmUgaXNcbiAgLy8gY3JlYXRlZCkuIFdlIHN0YXNoIHRoZSB2YWx1ZSBoZXJlIGFuZCBmbHVzaCBpdCBpbiBuZ09uSW5pdCAqYWZ0ZXIqXG4gIC8vIHRoZSBjb250cm9sbGVyIGV4aXN0cyDigJQgb3RoZXJ3aXNlIHRoZSBlZGl0b3IgcmVuZGVycyBlbXB0eSBldmVuIHRob3VnaFxuICAvLyB0aGUgZm9ybSBoYWQgYSB2YWx1ZS4gYHVuZGVmaW5lZGAgbWVhbnMgXCJubyBwZW5kaW5nIHdyaXRlXCIuXG4gIHByaXZhdGUgcGVuZGluZ1dyaXRlVmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvLyDCpzE2Ljk6IHByZWZlciBgaW5qZWN0KClgIG92ZXIgY29uc3RydWN0b3ItcGFyYW1ldGVyIERJIGZvciBjb21wb25lbnRzLlxuICBwcml2YXRlIHJlYWRvbmx5IHBsYXRmb3JtSWQgPSBpbmplY3QoUExBVEZPUk1fSUQpO1xuICBwcml2YXRlIHJlYWRvbmx5IHpvbmUgPSBpbmplY3QoTmdab25lKTtcbiAgcHJpdmF0ZSByZWFkb25seSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIFNlZWQgYmVmb3JlIHRoZSBicm93c2VyIGd1YXJkIHNvIFNTUiByZW5kZXJzIGEgY29uY3JldGUgZGF0YS1tb2RlLlxuICAgIHRoaXMucmVzb2x2ZWRNb2RlID0gcmVzb2x2ZUluaXRpYWxNb2RlKHRoaXMubW9kZSk7XG4gICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSByZXR1cm47XG5cbiAgICB0aGlzLmNvbnRyb2xsZXIgPSBuZXcgQUlBdXRvY29tcGxldGVDb250cm9sbGVyKHtcbiAgICAgIGFwaUNvbmZpZzogdGhpcy5hcGlDb25maWcsXG4gICAgICBhZGRpdGlvbmFsQ29udGV4dDogdGhpcy5hZGRpdGlvbmFsQ29udGV4dCxcbiAgICAgIG9wdGlvbk92ZXJyaWRlczogdGhpcy5vcHRpb25PdmVycmlkZXMsXG4gICAgICBtYXNrQ29tcGxldGVkVGV4dDogdGhpcy5tYXNrQ29tcGxldGVkVGV4dCxcbiAgICAgIGNvbHVtbnM6IHRoaXMuY29sdW1ucyxcbiAgICAgIGRyb3Bkb3duVHJpZ2dlcjogdGhpcy5kcm9wZG93blRyaWdnZXIsXG4gICAgICBvcHRpb25zUG9zaXRpb246IHRoaXMub3B0aW9uc1Bvc2l0aW9uLFxuICAgICAgY2xvc2VEcm9wZG93bk9uQmx1cjogdGhpcy5jbG9zZURyb3Bkb3duT25CbHVyLFxuICAgICAgc2hvd05vblRhcHBhYmxlT3B0aW9uczogdGhpcy5zaG93Tm9uVGFwcGFibGVPcHRpb25zLFxuICAgICAgc291cmNlOiBcImZ1bGwtc2RrXCIsXG4gICAgICBwcm9kdWN0czogdGhpcy5wcm9kdWN0cyxcbiAgICAgIHZhbHVlOiB0aGlzLnZhbHVlLFxuICAgICAgY29tcGxldGVkUGFyYW1zOiB0aGlzLmNvbXBsZXRlZFBhcmFtcyxcbiAgICAgIG9uU3VibWl0OiAocmVzdWx0KSA9PiB0aGlzLmhhbmRsZVN1Ym1pdChyZXN1bHQpLFxuICAgICAgb25SZXN1bHQ6IChyZXN1bHQpID0+IHRoaXMucmVzdWx0Q2hhbmdlLmVtaXQocmVzdWx0KSxcbiAgICAgIG9uRXJyb3I6IChlcnJvcikgPT4gdGhpcy5lcnJvcmVkLmVtaXQoZXJyb3IpLFxuICAgICAgb25DaGFuZ2U6ICh0ZXh0KSA9PiB7XG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0ZXh0KTtcbiAgICAgICAgdGhpcy5vbkNoYW5nZUZuKHRleHQpO1xuICAgICAgfSxcbiAgICAgIG9uUGFyYW1zQ2hhbmdlOiAocGFyYW1zKSA9PiB0aGlzLmNvbXBsZXRlZFBhcmFtc0NoYW5nZS5lbWl0KHBhcmFtcyksXG4gICAgICBvbkZvY3VzOiAoKSA9PiB0aGlzLmZvY3VzZWQuZW1pdCgpLFxuICAgICAgb25Qcm9kdWN0U2VsZWN0OiAocHJvZHVjdCkgPT4gdGhpcy5wcm9kdWN0U2VsZWN0LmVtaXQocHJvZHVjdCksXG4gICAgICBvbkJsdXI6ICgpID0+IHtcbiAgICAgICAgdGhpcy5ibHVycmVkLmVtaXQoKTtcbiAgICAgICAgdGhpcy5vblRvdWNoZWRGbigpO1xuICAgICAgfSxcbiAgICAgIHNldEN1cnNvcjogKG9mZnNldCkgPT4ge1xuICAgICAgICBjb25zdCBlZGl0b3IgPSB0aGlzLmVkaXRvclJlZj8ubmF0aXZlRWxlbWVudDtcbiAgICAgICAgaWYgKCFlZGl0b3IpIHJldHVybjtcbiAgICAgICAgZWRpdG9yLmZvY3VzKCk7XG4gICAgICAgIHNldEN1cnNvck9mZnNldChlZGl0b3IsIG9mZnNldCk7XG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMucGVuZGluZ1dyaXRlVmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5jb250cm9sbGVyLnNldFZhbHVlKHRoaXMucGVuZGluZ1dyaXRlVmFsdWUpO1xuICAgICAgdGhpcy5wZW5kaW5nV3JpdGVWYWx1ZSA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSByZXR1cm47XG4gICAgLy8gTW9kZUNvbnRyb2xsZXIgd3JpdGVzIGBkYXRhLW1vZGVgIHRvIHRoZSBlbGVtZW50IGl0J3MgZ2l2ZW4uIFRoZSBDU1NcbiAgICAvLyBzZWxlY3RvcnMgYXJlIHNjb3BlZCB0byBgLm1hZ2ljeC1haWFbZGF0YS1tb2RlPVwiLi4uXCJdYCDigJQgd2hpY2ggbGl2ZXMgb25cbiAgICAvLyB0aGUgaW5uZXIgYDxkaXYgY2xhc3M9XCJtYWdpY3gtYWlhIG1hZ2ljeC1haWEtY29udGFpbmVyXCIgI2NvbnRhaW5lcj5gLFxuICAgIC8vIE5PVCB0aGUgaG9zdCBgPGFpLWF1dG9jb21wbGV0ZT5gIGVsZW1lbnQuIFRoZSByZXNvbHZlIGNhbGxiYWNrIG1pcnJvcnNcbiAgICAvLyB0aGUgdmFsdWUgaW50byBgcmVzb2x2ZWRNb2RlYCBzbyB0aGUgYFthdHRyLmRhdGEtbW9kZV1gIGJpbmRpbmcgc3RheXMgaW5cbiAgICAvLyBsb2Nrc3RlcCB3aXRoIE1vZGVDb250cm9sbGVyIOKAlCB0aGUgYmluZGluZyBoYW5kbGVzIFNTUiwgTW9kZUNvbnRyb2xsZXJcbiAgICAvLyBoYW5kbGVzIHJ1bnRpbWUgcHJlZmVycy1jb2xvci1zY2hlbWUgc3dpdGNoZXMsIGFuZCBiZWNhdXNlIHRoZXkgYWx3YXlzXG4gICAgLy8gYWdyZWUgbmVpdGhlciBjbG9iYmVycyB0aGUgb3RoZXIuXG4gICAgdGhpcy5tb2RlQ29udHJvbGxlciA9IG5ldyBNb2RlQ29udHJvbGxlcihcbiAgICAgIHRoaXMuY29udGFpbmVyUmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICB0aGlzLm1vZGUsXG4gICAgICAocmVzb2x2ZWQpID0+IHtcbiAgICAgICAgdGhpcy5yZXNvbHZlZE1vZGUgPSByZXNvbHZlZDtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICB9LFxuICAgICk7XG5cbiAgICAvLyBQaWxsLXdyYXAgZGV0ZWN0aW9uIOKAlCB3aGVuIHRoZSBwaWxsIGxpc3Qgd3JhcHMgYmVsb3cgdGhlIGVkaXRvcidzIGxhc3RcbiAgICAvLyBsaW5lLCBkcm9wIGl0cyA4cHggbGVmdCBtYXJnaW4gdmlhIGEgZGF0YSBhdHRyaWJ1dGUgdGhlIENTUyBrZXlzIG9mZi5cbiAgICAvLyBNaXJyb3JzIHRoZSBSZWFjdCBjb21wb25lbnQncyB1c2VMYXlvdXRFZmZlY3QuXG4gICAgaWYgKHR5cGVvZiBSZXNpemVPYnNlcnZlciAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgdGhpcy5yZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoKSA9PiB0aGlzLm1lYXN1cmVQaWxsV3JhcCgpKTtcbiAgICAgICAgY29uc3QgZWRpdG9yID0gdGhpcy5lZGl0b3JSZWY/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGlmIChlZGl0b3IpIHRoaXMucmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZShlZGl0b3IpO1xuICAgICAgfSk7XG4gICAgICB0aGlzLm1lYXN1cmVQaWxsV3JhcCgpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuY29udHJvbGxlcikgcmV0dXJuO1xuICAgIC8vIGBTaW1wbGVDaGFuZ2VzYCBpcyBgeyBba2V5OiBzdHJpbmddOiBTaW1wbGVDaGFuZ2UgfWAsIHNvIHBlclxuICAgIC8vIGBub1Byb3BlcnR5QWNjZXNzRnJvbUluZGV4U2lnbmF0dXJlYCBlYWNoIGtleSBsb29rdXAgdXNlcyBicmFja2V0XG4gICAgLy8gbm90YXRpb24g4oCUIHRoaXMga2VlcHMgdGhlIHN0cmljdG5lc3MgY29udHJhY3QgdGhhdCB0aGUgcmVzdCBvZiB0aGVcbiAgICAvLyB3b3Jrc3BhY2UgZW5mb3JjZXMuXG4gICAgLy8gQ29udHJvbGxlZC1tb2RlIHByb3BhZ2F0aW9uXG4gICAgaWYgKGNoYW5nZXNbXCJ2YWx1ZVwiXSAmJiB0aGlzLnZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuY29udHJvbGxlci5zZXRWYWx1ZSh0aGlzLnZhbHVlKTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXNbXCJjb21wbGV0ZWRQYXJhbXNcIl0gJiYgdGhpcy5jb21wbGV0ZWRQYXJhbXMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5jb250cm9sbGVyLnNldENvbXBsZXRlZFBhcmFtcyh0aGlzLmNvbXBsZXRlZFBhcmFtcyk7XG4gICAgfVxuICAgIC8vIFJlYWN0aXZlIG9wdGlvbnNcbiAgICBpZiAoXG4gICAgICBjaGFuZ2VzW1wiYXBpQ29uZmlnXCJdIHx8XG4gICAgICBjaGFuZ2VzW1wiYWRkaXRpb25hbENvbnRleHRcIl0gfHxcbiAgICAgIGNoYW5nZXNbXCJvcHRpb25PdmVycmlkZXNcIl0gfHxcbiAgICAgIGNoYW5nZXNbXCJkcm9wZG93blRyaWdnZXJcIl0gfHxcbiAgICAgIGNoYW5nZXNbXCJvcHRpb25zUG9zaXRpb25cIl0gfHxcbiAgICAgIGNoYW5nZXNbXCJjbG9zZURyb3Bkb3duT25CbHVyXCJdIHx8XG4gICAgICBjaGFuZ2VzW1wic2hvd05vblRhcHBhYmxlT3B0aW9uc1wiXSB8fFxuICAgICAgY2hhbmdlc1tcInByb2R1Y3RzXCJdXG4gICAgKSB7XG4gICAgICB0aGlzLmNvbnRyb2xsZXIudXBkYXRlKHtcbiAgICAgICAgYXBpQ29uZmlnOiB0aGlzLmFwaUNvbmZpZyxcbiAgICAgICAgYWRkaXRpb25hbENvbnRleHQ6IHRoaXMuYWRkaXRpb25hbENvbnRleHQsXG4gICAgICAgIG9wdGlvbk92ZXJyaWRlczogdGhpcy5vcHRpb25PdmVycmlkZXMsXG4gICAgICAgIGRyb3Bkb3duVHJpZ2dlcjogdGhpcy5kcm9wZG93blRyaWdnZXIsXG4gICAgICAgIG9wdGlvbnNQb3NpdGlvbjogdGhpcy5vcHRpb25zUG9zaXRpb24sXG4gICAgICAgIGNsb3NlRHJvcGRvd25PbkJsdXI6IHRoaXMuY2xvc2VEcm9wZG93bk9uQmx1cixcbiAgICAgICAgc2hvd05vblRhcHBhYmxlT3B0aW9uczogdGhpcy5zaG93Tm9uVGFwcGFibGVPcHRpb25zLFxuICAgICAgICAvLyBTYW1lIHJlZmVyZW5jZSBvbiBhbiB1bnJlbGF0ZWQgY2hhbmdlIGlzIGEgbm8tb3AgaW4gdGhlIGNvcmU7IG9ubHkgYVxuICAgICAgICAvLyBnZW51aW5lbHkgc3dhcHBlZCAob3IgcmVtb3ZlZCkgaW50ZWdyYXRpb24gY2xlYXJzIHRoZSBzdHJpcC5cbiAgICAgICAgcHJvZHVjdHM6IHRoaXMucHJvZHVjdHMsXG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXNbXCJtb2RlXCJdKSB7XG4gICAgICAvLyBLZWVwIHRoZSBiaW5kaW5nIGNvcnJlY3QgZXZlbiB3aGVuIE1vZGVDb250cm9sbGVyIGRvZXNuJ3QgZXhpc3QgeWV0XG4gICAgICAvLyAoU1NSIC8gcHJlLW5nQWZ0ZXJWaWV3SW5pdCkuIE9uIHRoZSBicm93c2VyLCBzZXRNb2RlIHRyaWdnZXJzIHRoZVxuICAgICAgLy8gcmVzb2x2ZSBjYWxsYmFjayB3aGljaCBzZXRzIHRoZSBzYW1lIHZhbHVlLlxuICAgICAgdGhpcy5yZXNvbHZlZE1vZGUgPSByZXNvbHZlSW5pdGlhbE1vZGUodGhpcy5tb2RlKTtcbiAgICAgIHRoaXMubW9kZUNvbnRyb2xsZXI/LnNldE1vZGUodGhpcy5tb2RlKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnJlc2l6ZU9ic2VydmVyPy5kaXNjb25uZWN0KCk7XG4gICAgdGhpcy5tb2RlQ29udHJvbGxlcj8uZGVzdHJveSgpO1xuICAgIHRoaXMuY29udHJvbGxlcj8uZGVzdHJveSgpO1xuICB9XG5cbiAgLy8gPT09IEltcGVyYXRpdmUgQVBJIChleHBvc2VkIG9uIHRoZSBjb21wb25lbnQgaW5zdGFuY2UgdmlhIEBWaWV3Q2hpbGQpID09PVxuXG4gIC8qKiBQcm9ncmFtbWF0aWNhbGx5IGZvY3VzIHRoZSBlZGl0b3IuICovXG4gIGZvY3VzKCk6IHZvaWQge1xuICAgIHRoaXMuZWRpdG9yUmVmPy5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gIH1cblxuICAvKiogUHJvZ3JhbW1hdGljYWxseSBibHVyIHRoZSBlZGl0b3IuICovXG4gIGJsdXIoKTogdm9pZCB7XG4gICAgdGhpcy5lZGl0b3JSZWY/Lm5hdGl2ZUVsZW1lbnQuYmx1cigpO1xuICB9XG5cbiAgLyoqIENsZWFyIGFsbCBzdGF0ZSwgcm90YXRlIHNlc3Npb24sIGFuZCByZS1mZXRjaC4gKi9cbiAgcmVzZXQoKTogdm9pZCB7XG4gICAgdGhpcy5jb250cm9sbGVyPy5yZXNldCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNraXAgdGhlIGFjdGl2ZSBwaWxsIOKAlCBzYW1lIGFjdGlvbiBhcyB0aGUgZHJvcGRvd24ncyBza2lwIGJ1dHRvbiAvIOKGki5cbiAgICogTGV0cyBhIGNvbnN1bWVyIHdobyBoaWRlcyB0aGUgYnVpbHQtaW4gYnV0dG9uIChgc2hvd1NraXBCdXR0b249ZmFsc2VgKVxuICAgKiBkcml2ZSBza2lwcGluZyBmcm9tIHRoZWlyIG93biBVSS5cbiAgICovXG4gIHNraXBBY3RpdmVQaWxsKCk6IHZvaWQge1xuICAgIHRoaXMuY29udHJvbGxlcj8uc2tpcEFjdGl2ZVBpbGwoKTtcbiAgfVxuXG4gIC8qKiBTd2l0Y2ggY29sb3IgbW9kZSBhdCBydW50aW1lLiAqL1xuICBzZXRNb2RlKG1vZGU6IEFwcGVhcmFuY2VNb2RlKTogdm9pZCB7XG4gICAgdGhpcy5tb2RlID0gbW9kZTtcbiAgICB0aGlzLnJlc29sdmVkTW9kZSA9IHJlc29sdmVJbml0aWFsTW9kZShtb2RlKTtcbiAgICB0aGlzLm1vZGVDb250cm9sbGVyPy5zZXRNb2RlKG1vZGUpO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgLy8gPT09IFRlbXBsYXRlIGhlbHBlcnMgPT09XG5cbiAgLyoqXG4gICAqICdkZWZhdWx0JyDihpIgcmVuZGVyIHRoZSBidWlsdC1pbiBhcnJvdyBidXR0b24uXG4gICAqICdjdXN0b20nICDihpIgcHJvamVjdCB0aGUgY29uc3VtZXItc3VwcGxpZWQgVGVtcGxhdGVSZWYuXG4gICAqICdoaWRkZW4nICDihpIgbm8gYnV0dG9uLlxuICAgKi9cbiAgZ2V0IHN1Ym1pdEJ1dHRvblN0YXRlKCk6IFwiZGVmYXVsdFwiIHwgXCJjdXN0b21cIiB8IFwiaGlkZGVuXCIge1xuICAgIGlmICh0aGlzLnN1Ym1pdEJ1dHRvbiA9PT0gbnVsbCkgcmV0dXJuIFwiaGlkZGVuXCI7XG4gICAgaWYgKHRoaXMuc3VibWl0QnV0dG9uID09PSB1bmRlZmluZWQpIHJldHVybiBcImRlZmF1bHRcIjtcbiAgICByZXR1cm4gXCJjdXN0b21cIjtcbiAgfVxuXG4gIC8qKiBOYXJyb3dlZCBhY2Nlc3NvciBmb3IgKm5nVGVtcGxhdGVPdXRsZXQg4oCUIG5ldmVyIHVuZGVmaW5lZC4gKi9cbiAgZ2V0IGN1c3RvbVN1Ym1pdFRlbXBsYXRlKCk6IFRlbXBsYXRlUmVmPHVua25vd24+IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuc3VibWl0QnV0dG9uID8/IG51bGw7XG4gIH1cblxuICBnZXQgc2hvd0lubGluZVBpbGxzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnBpbGxQbGFjZW1lbnQgPT09IFwiaW5saW5lXCI7XG4gIH1cblxuICBnZXQgc2hvd0Ryb3Bkb3duUGlsbHMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucGlsbFBsYWNlbWVudCA9PT0gXCJkcm9wZG93blwiO1xuICB9XG5cbiAgLyoqXG4gICAqIGB0cnVlYCB3aGVuIHRoZXJlJ3Mgc29tZXRoaW5nIHRvIHN1Ym1pdCDigJQgZHJpdmVuIGJ5IGN1cnJlbnQgc2VnbWVudHNcbiAgICogYW5kIGNvbXBsZXRlZCBwYXJhbXMuIFJlYWQgb2ZmIHRoZSBsaXZlIGVkaXRvciB2aWEgdGhlIGNvbnRyb2xsZXIgc3RhdGUuXG4gICAqL1xuICBjYW5TdWJtaXQoc3RhdGU6IHsgc2VnbWVudHM6IHsgbGVuZ3RoOiBudW1iZXIgfTsgY29tcGxldGVkUGFyYW1zOiB7IGxlbmd0aDogbnVtYmVyIH0gfSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBzdGF0ZS5zZWdtZW50cy5sZW5ndGggPiAwIHx8IHN0YXRlLmNvbXBsZXRlZFBhcmFtcy5sZW5ndGggPiAwO1xuICB9XG5cbiAgb25XcmFwcGVyQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAvLyBDbGlja2luZyBhIHBpbGwgc2hvdWxkIGFjdGl2YXRlIGl0IHdpdGhvdXQgc3RlYWxpbmcgZm9jdXMgZWxzZXdoZXJlLlxuICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCB8IG51bGw7XG4gICAgaWYgKHRhcmdldD8uY2xvc2VzdChcIltkYXRhLWFpYS1waWxsXVwiKSkgcmV0dXJuO1xuICAgIHRoaXMuZm9jdXMoKTtcbiAgfVxuXG4gIG9uU3VibWl0QnV0dG9uQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLmhhbmRsZVN1Ym1pdEZyb21Vc2VyQWN0aW9uKCk7XG4gIH1cblxuICBvblN1Ym1pdFNsb3RDbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuaGFuZGxlU3VibWl0RnJvbVVzZXJBY3Rpb24oKTtcbiAgfVxuXG4gIG9uU2VsZWN0UGlsbChpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5jb250cm9sbGVyLnNldEFjdGl2ZVBpbGwoaW5kZXgpO1xuICB9XG5cbiAgLy8gPT09IENvbnRyb2xWYWx1ZUFjY2Vzc29yID09PVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IHN0cmluZyB8IG51bGwpOiB2b2lkIHtcbiAgICBjb25zdCBuZXh0ID0gdmFsdWUgPz8gXCJcIjtcbiAgICBpZiAoIXRoaXMuY29udHJvbGxlcikge1xuICAgICAgLy8gUmVhY3RpdmUgRm9ybXMgY2FuIGNhbGwgd3JpdGVWYWx1ZSgpIGJlZm9yZSBuZ09uSW5pdCBjcmVhdGVzIHRoZVxuICAgICAgLy8gY29udHJvbGxlciAoZHluYW1pYyBmb3JtIGNvbnN0cnVjdGlvbiwgb3IgYSBGb3JtQ29udHJvbCB0aGF0IGFscmVhZHlcbiAgICAgIC8vIGhhZCBhIHZhbHVlIGF0IGRpcmVjdGl2ZS1jcmVhdGlvbiB0aW1lKS4gQnVmZmVyIHRoZSB2YWx1ZTsgbmdPbkluaXRcbiAgICAgIC8vIGZsdXNoZXMgaXQgYXMgc29vbiBhcyB0aGUgY29udHJvbGxlciBleGlzdHMuXG4gICAgICB0aGlzLnBlbmRpbmdXcml0ZVZhbHVlID0gbmV4dDtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5jb250cm9sbGVyLnNldFZhbHVlKG5leHQpO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlRm4gPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWRGbiA9IGZuO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShfZGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAvLyBUaGUgY29udGVudEVkaXRhYmxlIGhvc3QgZG9lc24ndCBoYXZlIGEgbmF0aXZlIGRpc2FibGVkIGF0dHJpYnV0ZS4gRm9yXG4gICAgLy8gdjAuMSB3ZSBhY2NlcHQgdGhlIGNhbGwgc28gQW5ndWxhcidzIGZvcm1zIGxheWVyIGRvZXNuJ3QgdGhyb3csIGJ1dFxuICAgIC8vIHRoZSBlZGl0b3Igc3RheXMgaW50ZXJhY3RpdmUuIEEgZnV0dXJlIGVuaGFuY2VtZW50IGNhbiB0b2dnbGVcbiAgICAvLyBjb250ZW50RWRpdGFibGUgKyBBUklBIGRpc2FibGVkIGhlcmUuXG4gIH1cblxuICAvLyA9PT0gU3VibWl0IGZsb3cgPT09XG5cbiAgLyoqXG4gICAqIENhbGxlZCBieSB0aGUgY29udHJvbGxlcidzIG9uU3VibWl0IGNhbGxiYWNrICh3aGljaCBmaXJlcyBmcm9tIHRoZVxuICAgKiBrZXlib2FyZCBjb250cm9sbGVyIG9uIEVudGVyKS4gUmVhZHMgdGhlIGxpdmUgZWRpdG9yIHRleHQg4oCUIHNhbWUgdHJpY2tcbiAgICogdGhlIFJlYWN0IGNvbXBvbmVudCB1c2VzIOKAlCBzbyB0aGUgZW1pdHRlZCBxdWVyeSByZWZsZWN0cyB3aGF0ZXZlcidzIGluXG4gICAqIHRoZSBET00gcmlnaHQgbm93LCBub3QgYSBwb3NzaWJseS1zdGFsZSBzdGF0ZSBzbmFwc2hvdC5cbiAgICovXG4gIHByaXZhdGUgaGFuZGxlU3VibWl0KF9yZXN1bHQ6IEF1dG9jb21wbGV0ZVJlc3VsdCk6IHZvaWQge1xuICAgIGNvbnN0IGVkaXRvciA9IHRoaXMuZWRpdG9yUmVmPy5uYXRpdmVFbGVtZW50O1xuICAgIGlmICghZWRpdG9yKSByZXR1cm47XG4gICAgY29uc3QgdGV4dCA9IGV4dHJhY3RQbGFpblRleHQoZWRpdG9yKTtcbiAgICBjb25zdCBzdGF0ZSA9IHRoaXMuY29udHJvbGxlci5nZXRTdGF0ZSgpO1xuICAgIGNvbnN0IHBhcmFtcyA9IHRoaXMuY29tcGxldGVkUGFyYW1zID8/IHN0YXRlLmNvbXBsZXRlZFBhcmFtcztcbiAgICB0aGlzLnN1Ym1pdHRlZC5lbWl0KFxuICAgICAgYnVpbGRTdWJtaXRSZXN1bHQodGV4dCwgcGFyYW1zLCBzdGF0ZS5za2lwcGVkUGFyYW1zLCB7XG4gICAgICAgIGlkZW50aWZpZWRQYXJhbXM6IHN0YXRlLmlkZW50aWZpZWRQYXJhbXMsXG4gICAgICAgIGlzUmVhZHk6IHN0YXRlLmlzUmVhZHksXG4gICAgICB9KSxcbiAgICApO1xuICAgIHRoaXMuY29udHJvbGxlci5yZXNldCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVTdWJtaXRGcm9tVXNlckFjdGlvbigpOiB2b2lkIHtcbiAgICBjb25zdCBzdGF0ZSA9IHRoaXMuY29udHJvbGxlci5nZXRTdGF0ZSgpO1xuICAgIGlmICghdGhpcy5jYW5TdWJtaXQoc3RhdGUpKSByZXR1cm47XG4gICAgLy8gU3ludGhlc2l6ZSB0aGUgcmVzdWx0IGZvciB0aGUgc3VibWl0LWJ1dHRvbiBjbGljayBwYXRoOyBzYW1lIHNoYXBlXG4gICAgLy8gdGhlIGNvbnRyb2xsZXIgd291bGQgZGVsaXZlciBmcm9tIGEga2V5Ym9hcmQgRW50ZXIsIHNvIGhhbmRsZVN1Ym1pdFxuICAgIC8vIGNhbiB0YWtlIGVpdGhlciBlbnRyeSBwb2ludC5cbiAgICB0aGlzLmhhbmRsZVN1Ym1pdCh7XG4gICAgICBxdWVyeTogc3RhdGUudGV4dC50cmltKCksXG4gICAgICByYXdfcXVlcnk6IFwiXCIsXG4gICAgICBjb21wbGV0ZWRfcGFyYW1zOiBbXSxcbiAgICAgIGlkZW50aWZpZWRfcGFyYW1zOiBbXSxcbiAgICAgIGlzX3JlYWR5OiBzdGF0ZS5pc1JlYWR5LFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBtZWFzdXJlUGlsbFdyYXAoKTogdm9pZCB7XG4gICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5waWxsQ29udGFpbmVyUmVmPy5uYXRpdmVFbGVtZW50O1xuICAgIGNvbnN0IGVkaXRvciA9IHRoaXMuZWRpdG9yUmVmPy5uYXRpdmVFbGVtZW50O1xuICAgIGlmICghY29udGFpbmVyIHx8ICFlZGl0b3IpIHJldHVybjtcbiAgICBjb25zdCBpbm5lciA9IGNvbnRhaW5lci5maXJzdEVsZW1lbnRDaGlsZCBhcyBIVE1MRWxlbWVudCB8IG51bGw7XG4gICAgaWYgKCFpbm5lcikgcmV0dXJuO1xuICAgIC8vIFdyYXAgZGV0ZWN0aW9uOiB0aGUgcGlsbCByb3cncyB0b3AgdnMgdGhlIGVkaXRvcidzIGJvdHRvbS4gV2hlbiB0aGVcbiAgICAvLyBwaWxscyBzaXQgb24gKG9yIGFib3ZlKSB0aGUgZWRpdG9yJ3MgbGFzdCBsaW5lIHRoZXkncmUgTk9UIHdyYXBwZWQg4oCUXG4gICAgLy8ga2VlcCB0aGUgOHB4IG1hcmdpbiBzbyB0aGV5IGRvbid0IGJ1dHQgYWdhaW5zdCB0eXBlZCB0ZXh0IG9yIHRoZVxuICAgIC8vIHBsYWNlaG9sZGVyLiBUaGlzIGhhbmRsZXMgdGhlIGVtcHR5LWVkaXRvciArIHBsYWNlaG9sZGVyIGNhc2VcbiAgICAvLyBuYXR1cmFsbHk6IHRoZSBwbGFjZWhvbGRlciBzdGlsbCBvY2N1cGllcyB0aGUgZWRpdG9yJ3MgbGluZSBib3guXG4gICAgY29uc3QgY1JlY3QgPSBpbm5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCBlUmVjdCA9IGVkaXRvci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCB3cmFwcGVkID0gY1JlY3QudG9wID49IGVSZWN0LmJvdHRvbSAtIDI7XG4gICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XG4gICAgICBpZiAod3JhcHBlZCkgY29udGFpbmVyLnNldEF0dHJpYnV0ZShcImRhdGEtYWlhLXBpbGwtd3JhcHBlZFwiLCBcIlwiKTtcbiAgICAgIGVsc2UgY29udGFpbmVyLnJlbW92ZUF0dHJpYnV0ZShcImRhdGEtYWlhLXBpbGwtd3JhcHBlZFwiKTtcbiAgICB9KTtcbiAgfVxufVxuXG5mdW5jdGlvbiBub29wKCk6IHZvaWQge1xuICAvLyBEZWZhdWx0IG5vLW9wIGZvciBDVkEgY2FsbGJhY2tzLlxufVxuXG4vKipcbiAqIFJlc29sdmUgYSBjb25jcmV0ZSBsaWdodC9kYXJrIHZhbHVlIGZyb20gdGhlIGNvbmZpZ3VyZWQgbW9kZS4gVXNlZCB0byBzZWVkXG4gKiB0aGUgYGRhdGEtbW9kZWAgYXR0cmlidXRlIHN5bmNocm9ub3VzbHkgKGluY2x1ZGluZyBkdXJpbmcgU1NSLCB3aGVyZVxuICogTW9kZUNvbnRyb2xsZXIgbmV2ZXIgcnVucykuIE9uIHRoZSBzZXJ2ZXIgYHdpbmRvd2AgaXMgdW5kZWZpbmVkIOKGkiBkZWZhdWx0c1xuICogdG8gXCJkYXJrXCIgKG1hdGNoZXMgdGhlIHZhbmlsbGEvUmVhY3QgYmVoYXZpb3IpLlxuICovXG5mdW5jdGlvbiByZXNvbHZlSW5pdGlhbE1vZGUobW9kZTogQXBwZWFyYW5jZU1vZGUpOiBcImxpZ2h0XCIgfCBcImRhcmtcIiB7XG4gIGlmIChtb2RlICE9PSBcImF1dG9cIikgcmV0dXJuIG1vZGU7XG4gIGlmICh0eXBlb2Ygd2luZG93ID09PSBcInVuZGVmaW5lZFwiKSByZXR1cm4gXCJkYXJrXCI7XG4gIHJldHVybiB3aW5kb3cubWF0Y2hNZWRpYShcIihwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaylcIikubWF0Y2hlcyA/IFwiZGFya1wiIDogXCJsaWdodFwiO1xufVxuIiwiPGRpdlxuICAjY29udGFpbmVyXG4gIGNsYXNzPVwibWFnaWN4LWFpYSBtYWdpY3gtYWlhLWNvbnRhaW5lclwiXG4gIFthdHRyLmRhdGEtcGlsbC1wbGFjZW1lbnRdPVwicGlsbFBsYWNlbWVudFwiXG4gIFthdHRyLmRhdGEtb3B0aW9ucy1wb3NpdGlvbl09XCJvcHRpb25zUG9zaXRpb25cIlxuICBbYXR0ci5kYXRhLWFuaW1hdGlvbnNdPVwiYW5pbWF0aW9ucyA/ICdvbicgOiAnb2ZmJ1wiXG4gIFthdHRyLmRhdGEtbW9kZV09XCJyZXNvbHZlZE1vZGVcIlxuPlxuICA8YWktYXV0b2NvbXBsZXRlLWRyb3Bkb3duXG4gICAgKm5nSWY9XCJjb250cm9sbGVyXCJcbiAgICBbY29udHJvbGxlcl09XCJjb250cm9sbGVyXCJcbiAgICBbc2hvd1BpbGxzXT1cInNob3dEcm9wZG93blBpbGxzXCJcbiAgICBbc2hvd1NraXBCdXR0b25dPVwic2hvd1NraXBCdXR0b25cIlxuICAgIFtzaG93T3B0aW9uSWNvbnNdPVwic2hvd09wdGlvbkljb25zXCJcbiAgPjwvYWktYXV0b2NvbXBsZXRlLWRyb3Bkb3duPlxuXG4gIDxkaXZcbiAgICBjbGFzcz1cIm1hZ2ljeC1haWEtaW5wdXQtd3JhcHBlclwiXG4gICAgKGNsaWNrKT1cIm9uV3JhcHBlckNsaWNrKCRldmVudClcIlxuICAgIChrZXl1cCk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cIm1hZ2ljeC1haWEtZWRpdG9yLWFyZWFcIiBkYXRhLWFpYS1lZGl0b3I9XCJcIj5cbiAgICAgIDxkaXZcbiAgICAgICAgI2VkaXRvclxuICAgICAgICAqbmdJZj1cImNvbnRyb2xsZXJcIlxuICAgICAgICBbYWlhRWRpdG9ySG9zdF09XCJjb250cm9sbGVyXCJcbiAgICAgICAgW2F1dG9Gb2N1c109XCJhdXRvRm9jdXNcIlxuICAgICAgICBbc2hvd0NoaXBJY29uc109XCJzaG93Q2hpcEljb25zXCJcbiAgICAgICAgY2xhc3M9XCJtYWdpY3gtYWlhLWlucHV0XCJcbiAgICAgICAgZGF0YS1haWEtaW5wdXQ9XCJcIlxuICAgICAgPjwvZGl2PlxuXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29udHJvbGxlciAmJiBzaG93SW5saW5lUGlsbHNcIj5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAjcGlsbENvbnRhaW5lclxuICAgICAgICAgIGNsYXNzPVwibWFnaWN4LWFpYS1waWxsLWxpc3QtY29udGFpbmVyXCJcbiAgICAgICAgICBkYXRhLWFpYS1waWxsLWxpc3QtY29udGFpbmVyPVwiXCJcbiAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgKGNvbnRyb2xsZXIuaXNMb2FkaW5nJCB8IGFzeW5jKSB8fFxuICAgICAgICAgICAgICAoKGNvbnRyb2xsZXIuc3VnZ2VzdGlvblBpbGxzJCB8IGFzeW5jKT8ubGVuZ3RoID8/IDApID4gMFxuICAgICAgICAgIFwiXG4gICAgICAgID5cbiAgICAgICAgICA8YWlhLXBpbGwtbGlzdFxuICAgICAgICAgICAgW3BpbGxzXT1cIihjb250cm9sbGVyLnN1Z2dlc3Rpb25QaWxscyQgfCBhc3luYykgPz8gW11cIlxuICAgICAgICAgICAgW2FjdGl2ZVBpbGxJbmRleF09XCIwXCJcbiAgICAgICAgICAgIFthY3RpdmVTZWxlY3RlZF09XCIoY29udHJvbGxlci5pc0FjdGl2ZVBpbGxTZWxlY3RlZCQgfCBhc3luYykgPz8gZmFsc2VcIlxuICAgICAgICAgICAgW2xvYWRpbmddPVwiKGNvbnRyb2xsZXIuaXNMb2FkaW5nJCB8IGFzeW5jKSA/PyBmYWxzZVwiXG4gICAgICAgICAgICAoc2VsZWN0UGlsbCk9XCJvblNlbGVjdFBpbGwoJGV2ZW50KVwiXG4gICAgICAgICAgPjwvYWlhLXBpbGwtbGlzdD5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG5cbiAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJzdWJtaXRCdXR0b25TdGF0ZVwiPlxuICAgICAgPGFpYS1zdWJtaXQtYnV0dG9uXG4gICAgICAgICpuZ1N3aXRjaENhc2U9XCInZGVmYXVsdCdcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiXG4gICAgICAgICAgIShcbiAgICAgICAgICAgIGNvbnRyb2xsZXIgJiZcbiAgICAgICAgICAgIGNhblN1Ym1pdCh7XG4gICAgICAgICAgICAgIHNlZ21lbnRzOiAoY29udHJvbGxlci5zZWdtZW50cyQgfCBhc3luYykgPz8gW10sXG4gICAgICAgICAgICAgIGNvbXBsZXRlZFBhcmFtczogKGNvbnRyb2xsZXIuY29tcGxldGVkUGFyYW1zJCB8IGFzeW5jKSA/PyBbXVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICApXG4gICAgICAgIFwiXG4gICAgICAgIChzdWJtaXQpPVwib25TdWJtaXRCdXR0b25DbGljaygkZXZlbnQpXCJcbiAgICAgID48L2FpYS1zdWJtaXQtYnV0dG9uPlxuXG4gICAgICA8c3BhblxuICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ2N1c3RvbSdcIlxuICAgICAgICBkYXRhLWFpYS1zdWJtaXQ9XCJcIlxuICAgICAgICBjbGFzcz1cIm1hZ2ljeC1haWEtc3VibWl0LXNsb3RcIlxuICAgICAgICAoY2xpY2spPVwib25TdWJtaXRTbG90Q2xpY2soJGV2ZW50KVwiXG4gICAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjdXN0b21TdWJtaXRUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9zcGFuPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -101,10 +101,10 @@ export class SuggestionItemComponent {
101
101
  }
102
102
  }
103
103
  SuggestionItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SuggestionItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
104
- SuggestionItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: SuggestionItemComponent, isStandalone: true, selector: "aia-suggestion-item", inputs: { option: "option", isHighlighted: "isHighlighted", id: "id", loading: "loading", showIcon: "showIcon", scrollHint: "scrollHint", enterDelayMs: "enterDelayMs" }, outputs: { select: "select", highlight: "highlight" }, ngImport: i0, template: "<div\n [id]=\"id\"\n role=\"option\"\n data-aia-option=\"\"\n [attr.data-aia-loading]=\"loading ? '' : null\"\n [attr.data-aia-icon]=\"iconHtml && option.icon ? option.icon : null\"\n [attr.aria-selected]=\"isHighlighted\"\n class=\"aia-suggestion-item\"\n [style.--aia-option-enter-delay]=\"(enterDelay ?? 0) + 'ms'\"\n [class.aia-suggestion-item-highlighted]=\"isHighlighted && !loading\"\n [class.aia-suggestion-item-tappable]=\"option.is_tappable\"\n [class.aia-suggestion-item-non-tappable]=\"!option.is_tappable\"\n [class.aia-suggestion-item-pressed]=\"pressed\"\n [class.aia-suggestion-item-scroll-hint]=\"scrollHint\"\n [attr.tabindex]=\"loading || !option.is_tappable ? -1 : 0\"\n (click)=\"onSelect()\"\n (keydown)=\"onKeyDown($event)\"\n (mouseenter)=\"onMouseEnter()\"\n>\n <span class=\"aia-suggestion-content\">\n <span\n *ngIf=\"iconHtml\"\n class=\"aia-suggestion-icon\"\n aria-hidden=\"true\"\n [innerHTML]=\"iconHtml\"\n ></span>\n <span class=\"aia-suggestion-text\">{{ label }}</span>\n <span *ngIf=\"option.tag\" class=\"aia-suggestion-tag\">{{ option.tag }}</span>\n </span>\n</div>\n", styles: [".aia-suggestion-item{position:relative;overflow:visible;display:flex;align-items:flex-start;font-family:inherit;font-size:var(--aia-option-font-size, 16px);font-weight:450;line-height:21px;color:var(--aia-option-color, var(--aia-color-text-muted, #c1c4cb));white-space:normal;word-break:break-word;border-radius:8px;padding:8px 10px;animation:aiaSuggestionFadeIn .15s ease-out both,aiaSuggestionRiseIn .28s cubic-bezier(.25,.46,.45,.94) both;animation-delay:var(--aia-option-enter-delay, 0ms)}@keyframes aiaSuggestionFadeIn{0%{opacity:0}}@keyframes aiaSuggestionRiseIn{0%{transform:translateY(16px)}}@media (prefers-reduced-motion: reduce){.aia-suggestion-item{animation-duration:0s;animation-delay:0s}}.aia-suggestion-content{position:relative;z-index:2}.aia-suggestion-item-tappable{cursor:pointer}.aia-suggestion-item-tappable:hover{color:var(--aia-option-color-selected, var(--aia-color-text-default, #fff))}.aia-suggestion-item-non-tappable{cursor:default}.aia-suggestion-item-highlighted{color:var(--aia-option-color-selected, var(--aia-color-text-default, #fff));background:var(--aia-option-bg, transparent);font-weight:500}.aia-suggestion-tag{font-size:11px;margin-left:6px;opacity:.5}.aia-suggestion-item-pressed{color:var(--aia-option-color-selected, var(--aia-color-text-default, #fff));animation:aiaPressCompress .17s ease forwards}[role=listbox]:has(.aia-suggestion-item-pressed) .aia-suggestion-item:not(.aia-suggestion-item-pressed){opacity:.35;transition:opacity 60ms ease}@keyframes aiaPressCompress{0%{transform:scale(1)}25%{transform:scale(.93)}60%{transform:scale(.93)}to{transform:scale(1)}}.aia-suggestion-item-scroll-hint .aia-suggestion-content{mask-image:linear-gradient(to bottom,rgb(0 0 0),rgb(0 0 0 / .6))}.aia-suggestion-item[data-aia-loading]{cursor:default;animation:aiaSuggestionSkeletonPulse 1.4s ease-in-out infinite}.aia-suggestion-item[data-aia-loading] .aia-suggestion-text{color:transparent;background:var(--aia-skeleton-bg, var(--aia-pill-bg, rgba(189, 189, 189, .25)));border-radius:999px;-webkit-box-decoration-break:clone;box-decoration-break:clone}.aia-suggestion-item[data-aia-loading] .aia-suggestion-tag{display:none}.aia-suggestion-icon{display:inline-flex;align-items:center;height:21px;margin-right:8px;vertical-align:top}.aia-suggestion-icon svg{display:block;width:1em;height:1em}.aia-suggestion-item[data-aia-loading] .aia-suggestion-icon{display:none}.aia-suggestion-item:not([data-aia-loading]) .aia-suggestion-content:has(.aia-suggestion-icon){padding-left:calc(1em + 8px);text-indent:calc(-1em - 8px)}@keyframes aiaSuggestionSkeletonPulse{0%,to{filter:brightness(1)}50%{filter:brightness(.55)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
104
+ SuggestionItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: SuggestionItemComponent, isStandalone: true, selector: "aia-suggestion-item", inputs: { option: "option", isHighlighted: "isHighlighted", id: "id", loading: "loading", showIcon: "showIcon", scrollHint: "scrollHint", enterDelayMs: "enterDelayMs" }, outputs: { select: "select", highlight: "highlight" }, ngImport: i0, template: "<div\n [id]=\"id\"\n role=\"option\"\n data-aia-option=\"\"\n [attr.data-aia-loading]=\"loading ? '' : null\"\n [attr.data-aia-icon]=\"iconHtml && option.icon ? option.icon : null\"\n [attr.aria-selected]=\"isHighlighted\"\n class=\"aia-suggestion-item\"\n [style.--aia-option-enter-delay]=\"(enterDelay ?? 0) + 'ms'\"\n [class.aia-suggestion-item-highlighted]=\"isHighlighted && !loading\"\n [class.aia-suggestion-item-tappable]=\"option.is_tappable\"\n [class.aia-suggestion-item-non-tappable]=\"!option.is_tappable\"\n [class.aia-suggestion-item-pressed]=\"pressed\"\n [class.aia-suggestion-item-scroll-hint]=\"scrollHint\"\n [attr.tabindex]=\"loading || !option.is_tappable ? -1 : 0\"\n (click)=\"onSelect()\"\n (keydown)=\"onKeyDown($event)\"\n (mouseenter)=\"onMouseEnter()\"\n>\n <span class=\"aia-suggestion-content\">\n <span\n *ngIf=\"iconHtml\"\n class=\"aia-suggestion-icon\"\n aria-hidden=\"true\"\n [innerHTML]=\"iconHtml\"\n ></span>\n <span class=\"aia-suggestion-text\">{{ label }}</span>\n <span *ngIf=\"option.tag\" class=\"aia-suggestion-tag\">{{ option.tag }}</span>\n </span>\n</div>\n", styles: [".aia-suggestion-item{position:relative;overflow:visible;display:flex;align-items:flex-start;font-family:inherit;font-size:var(--aia-option-font-size, 16px);font-weight:450;line-height:21px;color:var(--aia-option-color, var(--aia-color-text-muted, #c1c4cb));white-space:normal;word-break:break-word;border-radius:8px;padding:8px 10px;animation:aiaSuggestionFadeIn .15s ease-out both,aiaSuggestionRiseIn .28s cubic-bezier(.25,.46,.45,.94) both;animation-delay:var(--aia-option-enter-delay, 0ms)}@keyframes aiaSuggestionFadeIn{0%{opacity:0}}@keyframes aiaSuggestionRiseIn{0%{transform:translateY(16px)}}@media (prefers-reduced-motion: reduce){.aia-suggestion-item{animation-duration:0s;animation-delay:0s}}.aia-suggestion-content{position:relative;z-index:2}.aia-suggestion-item-tappable{cursor:pointer}.aia-suggestion-item-tappable:hover{color:var(--aia-option-color-selected, var(--aia-color-text-default, #fff))}.aia-suggestion-item-non-tappable{cursor:default}.aia-suggestion-item-highlighted{color:var(--aia-option-color-selected, var(--aia-color-text-default, #fff));background:var(--aia-option-bg, transparent);font-weight:500}.aia-suggestion-tag{font-size:11px;margin-left:6px;opacity:.5}.aia-suggestion-item-pressed{color:var(--aia-option-color-selected, var(--aia-color-text-default, #fff));animation:aiaPressCompress .17s ease forwards}[role=listbox]:has(.aia-suggestion-item-pressed) .aia-suggestion-item:not(.aia-suggestion-item-pressed){opacity:.35;transition:opacity 60ms ease}@keyframes aiaPressCompress{0%{transform:scale(1)}25%{transform:scale(.93)}60%{transform:scale(.93)}to{transform:scale(1)}}.aia-suggestion-item-scroll-hint .aia-suggestion-content{mask-image:linear-gradient(to bottom,rgb(0 0 0),rgb(0 0 0 / .6))}.aia-suggestion-item[data-aia-loading]{cursor:default;animation:aiaSuggestionSkeletonPulse 1.4s ease-in-out infinite}.aia-suggestion-item[data-aia-loading] .aia-suggestion-text{color:transparent;background:var(--aia-skeleton-bg, var(--aia-pill-bg, rgba(189, 189, 189, .25)));border-radius:999px;-webkit-box-decoration-break:clone;box-decoration-break:clone}.aia-suggestion-item[data-aia-loading] .aia-suggestion-tag{display:none}.aia-suggestion-icon{display:inline-flex;align-items:center;height:21px;margin-right:8px;vertical-align:top;will-change:transform}.aia-suggestion-icon svg{display:block;width:1em;height:1em}.aia-suggestion-item[data-aia-loading] .aia-suggestion-icon{visibility:hidden}.aia-suggestion-content:has(.aia-suggestion-icon){padding-left:calc(1em + 8px);text-indent:calc(-1em - 8px)}@keyframes aiaSuggestionSkeletonPulse{0%,to{filter:brightness(1)}50%{filter:brightness(.55)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
105
105
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SuggestionItemComponent, decorators: [{
106
106
  type: Component,
107
- args: [{ selector: "aia-suggestion-item", standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div\n [id]=\"id\"\n role=\"option\"\n data-aia-option=\"\"\n [attr.data-aia-loading]=\"loading ? '' : null\"\n [attr.data-aia-icon]=\"iconHtml && option.icon ? option.icon : null\"\n [attr.aria-selected]=\"isHighlighted\"\n class=\"aia-suggestion-item\"\n [style.--aia-option-enter-delay]=\"(enterDelay ?? 0) + 'ms'\"\n [class.aia-suggestion-item-highlighted]=\"isHighlighted && !loading\"\n [class.aia-suggestion-item-tappable]=\"option.is_tappable\"\n [class.aia-suggestion-item-non-tappable]=\"!option.is_tappable\"\n [class.aia-suggestion-item-pressed]=\"pressed\"\n [class.aia-suggestion-item-scroll-hint]=\"scrollHint\"\n [attr.tabindex]=\"loading || !option.is_tappable ? -1 : 0\"\n (click)=\"onSelect()\"\n (keydown)=\"onKeyDown($event)\"\n (mouseenter)=\"onMouseEnter()\"\n>\n <span class=\"aia-suggestion-content\">\n <span\n *ngIf=\"iconHtml\"\n class=\"aia-suggestion-icon\"\n aria-hidden=\"true\"\n [innerHTML]=\"iconHtml\"\n ></span>\n <span class=\"aia-suggestion-text\">{{ label }}</span>\n <span *ngIf=\"option.tag\" class=\"aia-suggestion-tag\">{{ option.tag }}</span>\n </span>\n</div>\n", styles: [".aia-suggestion-item{position:relative;overflow:visible;display:flex;align-items:flex-start;font-family:inherit;font-size:var(--aia-option-font-size, 16px);font-weight:450;line-height:21px;color:var(--aia-option-color, var(--aia-color-text-muted, #c1c4cb));white-space:normal;word-break:break-word;border-radius:8px;padding:8px 10px;animation:aiaSuggestionFadeIn .15s ease-out both,aiaSuggestionRiseIn .28s cubic-bezier(.25,.46,.45,.94) both;animation-delay:var(--aia-option-enter-delay, 0ms)}@keyframes aiaSuggestionFadeIn{0%{opacity:0}}@keyframes aiaSuggestionRiseIn{0%{transform:translateY(16px)}}@media (prefers-reduced-motion: reduce){.aia-suggestion-item{animation-duration:0s;animation-delay:0s}}.aia-suggestion-content{position:relative;z-index:2}.aia-suggestion-item-tappable{cursor:pointer}.aia-suggestion-item-tappable:hover{color:var(--aia-option-color-selected, var(--aia-color-text-default, #fff))}.aia-suggestion-item-non-tappable{cursor:default}.aia-suggestion-item-highlighted{color:var(--aia-option-color-selected, var(--aia-color-text-default, #fff));background:var(--aia-option-bg, transparent);font-weight:500}.aia-suggestion-tag{font-size:11px;margin-left:6px;opacity:.5}.aia-suggestion-item-pressed{color:var(--aia-option-color-selected, var(--aia-color-text-default, #fff));animation:aiaPressCompress .17s ease forwards}[role=listbox]:has(.aia-suggestion-item-pressed) .aia-suggestion-item:not(.aia-suggestion-item-pressed){opacity:.35;transition:opacity 60ms ease}@keyframes aiaPressCompress{0%{transform:scale(1)}25%{transform:scale(.93)}60%{transform:scale(.93)}to{transform:scale(1)}}.aia-suggestion-item-scroll-hint .aia-suggestion-content{mask-image:linear-gradient(to bottom,rgb(0 0 0),rgb(0 0 0 / .6))}.aia-suggestion-item[data-aia-loading]{cursor:default;animation:aiaSuggestionSkeletonPulse 1.4s ease-in-out infinite}.aia-suggestion-item[data-aia-loading] .aia-suggestion-text{color:transparent;background:var(--aia-skeleton-bg, var(--aia-pill-bg, rgba(189, 189, 189, .25)));border-radius:999px;-webkit-box-decoration-break:clone;box-decoration-break:clone}.aia-suggestion-item[data-aia-loading] .aia-suggestion-tag{display:none}.aia-suggestion-icon{display:inline-flex;align-items:center;height:21px;margin-right:8px;vertical-align:top}.aia-suggestion-icon svg{display:block;width:1em;height:1em}.aia-suggestion-item[data-aia-loading] .aia-suggestion-icon{display:none}.aia-suggestion-item:not([data-aia-loading]) .aia-suggestion-content:has(.aia-suggestion-icon){padding-left:calc(1em + 8px);text-indent:calc(-1em - 8px)}@keyframes aiaSuggestionSkeletonPulse{0%,to{filter:brightness(1)}50%{filter:brightness(.55)}}\n"] }]
107
+ args: [{ selector: "aia-suggestion-item", standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div\n [id]=\"id\"\n role=\"option\"\n data-aia-option=\"\"\n [attr.data-aia-loading]=\"loading ? '' : null\"\n [attr.data-aia-icon]=\"iconHtml && option.icon ? option.icon : null\"\n [attr.aria-selected]=\"isHighlighted\"\n class=\"aia-suggestion-item\"\n [style.--aia-option-enter-delay]=\"(enterDelay ?? 0) + 'ms'\"\n [class.aia-suggestion-item-highlighted]=\"isHighlighted && !loading\"\n [class.aia-suggestion-item-tappable]=\"option.is_tappable\"\n [class.aia-suggestion-item-non-tappable]=\"!option.is_tappable\"\n [class.aia-suggestion-item-pressed]=\"pressed\"\n [class.aia-suggestion-item-scroll-hint]=\"scrollHint\"\n [attr.tabindex]=\"loading || !option.is_tappable ? -1 : 0\"\n (click)=\"onSelect()\"\n (keydown)=\"onKeyDown($event)\"\n (mouseenter)=\"onMouseEnter()\"\n>\n <span class=\"aia-suggestion-content\">\n <span\n *ngIf=\"iconHtml\"\n class=\"aia-suggestion-icon\"\n aria-hidden=\"true\"\n [innerHTML]=\"iconHtml\"\n ></span>\n <span class=\"aia-suggestion-text\">{{ label }}</span>\n <span *ngIf=\"option.tag\" class=\"aia-suggestion-tag\">{{ option.tag }}</span>\n </span>\n</div>\n", styles: [".aia-suggestion-item{position:relative;overflow:visible;display:flex;align-items:flex-start;font-family:inherit;font-size:var(--aia-option-font-size, 16px);font-weight:450;line-height:21px;color:var(--aia-option-color, var(--aia-color-text-muted, #c1c4cb));white-space:normal;word-break:break-word;border-radius:8px;padding:8px 10px;animation:aiaSuggestionFadeIn .15s ease-out both,aiaSuggestionRiseIn .28s cubic-bezier(.25,.46,.45,.94) both;animation-delay:var(--aia-option-enter-delay, 0ms)}@keyframes aiaSuggestionFadeIn{0%{opacity:0}}@keyframes aiaSuggestionRiseIn{0%{transform:translateY(16px)}}@media (prefers-reduced-motion: reduce){.aia-suggestion-item{animation-duration:0s;animation-delay:0s}}.aia-suggestion-content{position:relative;z-index:2}.aia-suggestion-item-tappable{cursor:pointer}.aia-suggestion-item-tappable:hover{color:var(--aia-option-color-selected, var(--aia-color-text-default, #fff))}.aia-suggestion-item-non-tappable{cursor:default}.aia-suggestion-item-highlighted{color:var(--aia-option-color-selected, var(--aia-color-text-default, #fff));background:var(--aia-option-bg, transparent);font-weight:500}.aia-suggestion-tag{font-size:11px;margin-left:6px;opacity:.5}.aia-suggestion-item-pressed{color:var(--aia-option-color-selected, var(--aia-color-text-default, #fff));animation:aiaPressCompress .17s ease forwards}[role=listbox]:has(.aia-suggestion-item-pressed) .aia-suggestion-item:not(.aia-suggestion-item-pressed){opacity:.35;transition:opacity 60ms ease}@keyframes aiaPressCompress{0%{transform:scale(1)}25%{transform:scale(.93)}60%{transform:scale(.93)}to{transform:scale(1)}}.aia-suggestion-item-scroll-hint .aia-suggestion-content{mask-image:linear-gradient(to bottom,rgb(0 0 0),rgb(0 0 0 / .6))}.aia-suggestion-item[data-aia-loading]{cursor:default;animation:aiaSuggestionSkeletonPulse 1.4s ease-in-out infinite}.aia-suggestion-item[data-aia-loading] .aia-suggestion-text{color:transparent;background:var(--aia-skeleton-bg, var(--aia-pill-bg, rgba(189, 189, 189, .25)));border-radius:999px;-webkit-box-decoration-break:clone;box-decoration-break:clone}.aia-suggestion-item[data-aia-loading] .aia-suggestion-tag{display:none}.aia-suggestion-icon{display:inline-flex;align-items:center;height:21px;margin-right:8px;vertical-align:top;will-change:transform}.aia-suggestion-icon svg{display:block;width:1em;height:1em}.aia-suggestion-item[data-aia-loading] .aia-suggestion-icon{visibility:hidden}.aia-suggestion-content:has(.aia-suggestion-icon){padding-left:calc(1em + 8px);text-indent:calc(-1em - 8px)}@keyframes aiaSuggestionSkeletonPulse{0%,to{filter:brightness(1)}50%{filter:brightness(.55)}}\n"] }]
108
108
  }], propDecorators: { option: [{
109
109
  type: Input
110
110
  }], isHighlighted: [{
@@ -124,4 +124,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
124
124
  }], highlight: [{
125
125
  type: Output
126
126
  }] } });
127
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VnZ2VzdGlvbi1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvaW50ZXJuYWwvc3VnZ2VzdGlvbi1pdGVtL3N1Z2dlc3Rpb24taXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2ludGVybmFsL3N1Z2dlc3Rpb24taXRlbS9zdWdnZXN0aW9uLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFFTixNQUFNLEVBQ04saUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQWlCLE1BQU0sMkJBQTJCLENBQUM7QUFDeEUsT0FBTyxFQUNMLFdBQVcsRUFFWCxxQkFBcUIsR0FDdEIsTUFBTSxxQ0FBcUMsQ0FBQzs7O0FBRTdDOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFVSCxNQUFNLE9BQU8sdUJBQXVCO0lBVHBDO1FBV1csa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFDdEIsT0FBRSxHQUFHLEVBQUUsQ0FBQztRQUNSLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDekIsOEVBQThFO1FBQ3JFLGFBQVEsR0FBRyxJQUFJLENBQUM7UUFDekIsOEZBQThGO1FBQ3JGLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFTNUI7Ozs7V0FJRztRQUNILGVBQVUsR0FBa0IsSUFBSSxDQUFDO1FBRWQsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFvQixDQUFDO1FBQzlDLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBRXhELFlBQU8sR0FBRyxLQUFLLENBQUM7UUFFQyxRQUFHLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDaEMsY0FBUyxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUcxQyxhQUFRLEdBQW9CLElBQUksQ0FBQztLQW9EMUM7SUE1RUM7Ozs7T0FJRztJQUNILElBQWEsWUFBWSxDQUFDLEtBQWE7UUFDckMsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLElBQUk7WUFBRSxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUN4RCxDQUFDO0lBbUJELHdFQUF3RTtJQUN4RSxJQUFJLEtBQUs7UUFDUCxPQUFPLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILElBQUksUUFBUTtRQUNWLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDN0QsSUFBSSxHQUFHLEtBQUssSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUMzQixJQUFJLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQztZQUN0QixNQUFNLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDckQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztTQUM1RTtRQUNELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLFlBQVksS0FBSyxTQUFTO1lBQUUsWUFBWSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxPQUFPO1lBQUUsT0FBTztRQUNyRSxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNwQixJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM5QixJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssU0FBUztZQUFFLFlBQVksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDckUsSUFBSSxDQUFDLFlBQVksR0FBRyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2xDLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3JCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDMUIsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ1YsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVc7WUFBRSxPQUFPO1FBQ3JELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUFvQjtRQUM1QixJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVc7WUFBRSxPQUFPO1FBQ3JELElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxPQUFPLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxHQUFHLEVBQUU7WUFDOUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUNqQjtJQUNILENBQUM7O3FIQXBGVSx1QkFBdUI7eUdBQXZCLHVCQUF1QixnVEMxQ3BDLHdvQ0E4QkEscXBGRE1ZLFlBQVk7NEZBTVgsdUJBQXVCO2tCQVRuQyxTQUFTOytCQUNFLHFCQUFxQixjQUNuQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLENBQUMsbUJBQ04sdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSTs4QkFLNUIsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csRUFBRTtzQkFBVixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFFRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBTU8sWUFBWTtzQkFBeEIsS0FBSztnQkFVYSxNQUFNO3NCQUF4QixNQUFNO2dCQUNZLFNBQVM7c0JBQTNCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgaW5qZWN0LFxuICB0eXBlIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IERvbVNhbml0aXplciwgdHlwZSBTYWZlSHRtbCB9IGZyb20gXCJAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyXCI7XG5pbXBvcnQge1xuICBvcHRpb25MYWJlbCxcbiAgdHlwZSBTdWdnZXN0aW9uT3B0aW9uLFxuICBzYW5pdGl6ZU9wdGlvbkljb25TdmcsXG59IGZyb20gXCJAbWFnaWN4LWVuZy9haS1hdXRvY29tcGxldGUtdmFuaWxsYVwiO1xuXG4vKipcbiAqIEludGVybmFsIHNpbmdsZS1vcHRpb24gY2VsbCB1c2VkIGluc2lkZSB0aGUgc3VnZ2VzdGlvbiBncmlkLiBNaXJyb3JzXG4gKiBgcGFja2FnZXMvcmVhY3Qvc3JjL2NvbXBvbmVudHMvU3VnZ2VzdGlvbkl0ZW0udHN4YC4gSGFuZGxlczpcbiAqXG4gKiAtIFRhcHBhYmxlIHZzIG5vbi10YXBwYWJsZSBjdXJzb3IgKyBob3ZlciBzdHlsaW5nXG4gKiAtIFByZXNzZWQtc3RhdGUgY29tcHJlc3MgYW5pbWF0aW9uICgxNzBtcywgc2luZ2xlLWZsaWdodClcbiAqIC0gS2V5Ym9hcmQgYWN0aXZhdGlvbiAoRW50ZXIvU3BhY2UpXG4gKiAtIEFSSUEgYHJvbGU9XCJvcHRpb25cImAgKyBgYXJpYS1zZWxlY3RlZGAgZm9yIHRoZSBsaXN0Ym94IHBhdHRlcm5cbiAqIC0gTG9hZGluZyBza2VsZXRvbiB3aGVuIGBsb2FkaW5nPXRydWVgXG4gKiAtIFNlcnZlci1wcm92aWRlZCBpY29uIChgaWNvbl9zdmdgKSwgYWxsb3dsaXN0ZWQgdGhyb3VnaCB0aGUgY29yZSdzXG4gKiAgIGBzYW5pdGl6ZU9wdGlvbkljb25TdmdgIGJlZm9yZSBpdCBpcyBib3VuZCBhcyBIVE1MXG4gKlxuICogQGludGVybmFsXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJhaWEtc3VnZ2VzdGlvbi1pdGVtXCIsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgdGVtcGxhdGVVcmw6IFwiLi9zdWdnZXN0aW9uLWl0ZW0uY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXCIuL3N1Z2dlc3Rpb24taXRlbS5jb21wb25lbnQuY3NzXCJdLFxufSlcbmV4cG9ydCBjbGFzcyBTdWdnZXN0aW9uSXRlbUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIG9wdGlvbiE6IFN1Z2dlc3Rpb25PcHRpb247XG4gIEBJbnB1dCgpIGlzSGlnaGxpZ2h0ZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgaWQgPSBcIlwiO1xuICBASW5wdXQoKSBsb2FkaW5nID0gZmFsc2U7XG4gIC8qKiBXaGV0aGVyIHRvIGRyYXcgdGhlIG9wdGlvbidzIGBpY29uX3N2Z2AgYmVmb3JlIGl0cyB0ZXh0LiBEZWZhdWx0OiB0cnVlLiAqL1xuICBASW5wdXQoKSBzaG93SWNvbiA9IHRydWU7XG4gIC8qKiBGYWRlIHRoaXMgb3B0aW9uJ3MgdGV4dCB0b3dhcmQgaXRzIGJvdHRvbSBlZGdlIChsYXN0IHZpc2libGUgcm93IG9mIGEgc2Nyb2xsYWJsZSBncmlkKS4gKi9cbiAgQElucHV0KCkgc2Nyb2xsSGludCA9IGZhbHNlO1xuICAvKipcbiAgICogU3RhcnQgZGVsYXkgb2YgdGhpcyByb3cncyBlbnRyYW5jZSBhbmltYXRpb24gKG1zKSDigJQgZWFjaCByb3cgcmlzZXMgaW4gYVxuICAgKiBiZWF0IGFmdGVyIHRoZSBvbmUgbmVhcmVyIHRoZSBpbnB1dC4gQ2FwdHVyZWQgb25jZSwgb24gZmlyc3QgcmVuZGVyLCBzbyBhXG4gICAqIGxhdGVyIGNoYW5nZS1kZXRlY3Rpb24gcGFzcyBjYW4ndCByZXN0YXJ0IGEgcm93IG1pZC1yaXNlLlxuICAgKi9cbiAgQElucHV0KCkgc2V0IGVudGVyRGVsYXlNcyh2YWx1ZTogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMuZW50ZXJEZWxheSA9PT0gbnVsbCkgdGhpcy5lbnRlckRlbGF5ID0gdmFsdWU7XG4gIH1cbiAgLyoqXG4gICAqIFRoZSBjYXB0dXJlZCBkZWxheTsgYG51bGxgIHVudGlsIHRoZSBmaXJzdCBgZW50ZXJEZWxheU1zYCBiaW5kaW5nIGxhbmRzLlxuICAgKiBUaGUgdGVtcGxhdGUgYmluZHMgaXQgdG8gYC0tYWlhLW9wdGlvbi1lbnRlci1kZWxheWAgKHRoZSBjb3JlJ3NcbiAgICogT1BUSU9OX0VOVEVSX0RFTEFZX1ZBUiksIHdoaWNoIHRoZSBzdHlsZXNoZWV0J3MgZW50cmFuY2UgcnVsZSByZWFkcy5cbiAgICovXG4gIGVudGVyRGVsYXk6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gIEBPdXRwdXQoKSByZWFkb25seSBzZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPFN1Z2dlc3Rpb25PcHRpb24+KCk7XG4gIEBPdXRwdXQoKSByZWFkb25seSBoaWdobGlnaHQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgcHJlc3NlZCA9IGZhbHNlO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSBzYW5pdGl6ZXIgPSBpbmplY3QoRG9tU2FuaXRpemVyKTtcbiAgcHJpdmF0ZSBwcmVzc2VkVGltZXI6IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+IHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIGljb25Tb3VyY2U6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBpY29uU2FmZTogU2FmZUh0bWwgfCBudWxsID0gbnVsbDtcblxuICAvKiogVGhlIG9wdGlvbidzIHRleHQsIHdpdGggYSBsZWdhY3kgYGljb25gIChubyBgaWNvbl9zdmdgKSBwcmVmaXhlZC4gKi9cbiAgZ2V0IGxhYmVsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIG9wdGlvbkxhYmVsKHRoaXMub3B0aW9uKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgb3B0aW9uJ3MgaWNvbiBhcyBiaW5kYWJsZSBIVE1MLCBvciBgbnVsbGAgd2hlbiBpdCBoYXMgbm9uZSAob3IgaXRzXG4gICAqIG1hcmt1cCBmYWlsZWQgdGhlIGFsbG93bGlzdCkuIEFuZ3VsYXIncyBvd24gSFRNTCBzYW5pdGl6ZXIgc3RyaXBzIGA8c3ZnPmBcbiAgICogd2hvbGVzYWxlLCBzbyB0aGUgY29yZSdzIGFsbG93bGlzdGVkIG91dHB1dCBpcyBtYXJrZWQgdHJ1c3RlZCBpbnN0ZWFkIOKAlFxuICAgKiBpdCBpcyBuZXZlciB0aGUgc2VydmVyJ3MgcmF3IHN0cmluZy4gUmVjb21wdXRlZCBvbmx5IHdoZW4gdGhlIG1hcmt1cFxuICAgKiBjaGFuZ2VzOyB0aGUgZ2V0dGVyIHJ1bnMgb24gZXZlcnkgT25QdXNoIGNoZWNrLlxuICAgKi9cbiAgZ2V0IGljb25IdG1sKCk6IFNhZmVIdG1sIHwgbnVsbCB7XG4gICAgY29uc3Qgc3ZnID0gdGhpcy5zaG93SWNvbiA/IHRoaXMub3B0aW9uLmljb25fc3ZnIDogdW5kZWZpbmVkO1xuICAgIGlmIChzdmcgIT09IHRoaXMuaWNvblNvdXJjZSkge1xuICAgICAgdGhpcy5pY29uU291cmNlID0gc3ZnO1xuICAgICAgY29uc3QgaHRtbCA9IHN2ZyA/IHNhbml0aXplT3B0aW9uSWNvblN2ZyhzdmcpIDogbnVsbDtcbiAgICAgIHRoaXMuaWNvblNhZmUgPSBodG1sID8gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoaHRtbCkgOiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5pY29uU2FmZTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnByZXNzZWRUaW1lciAhPT0gdW5kZWZpbmVkKSBjbGVhclRpbWVvdXQodGhpcy5wcmVzc2VkVGltZXIpO1xuICB9XG5cbiAgb25TZWxlY3QoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubG9hZGluZyB8fCAhdGhpcy5vcHRpb24uaXNfdGFwcGFibGUgfHwgdGhpcy5wcmVzc2VkKSByZXR1cm47XG4gICAgdGhpcy5wcmVzc2VkID0gdHJ1ZTtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB0aGlzLnNlbGVjdC5lbWl0KHRoaXMub3B0aW9uKTtcbiAgICBpZiAodGhpcy5wcmVzc2VkVGltZXIgIT09IHVuZGVmaW5lZCkgY2xlYXJUaW1lb3V0KHRoaXMucHJlc3NlZFRpbWVyKTtcbiAgICB0aGlzLnByZXNzZWRUaW1lciA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5wcmVzc2VkID0gZmFsc2U7XG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9LCAxNzApO1xuICB9XG5cbiAgb25Nb3VzZUVudGVyKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmxvYWRpbmcgfHwgIXRoaXMub3B0aW9uLmlzX3RhcHBhYmxlKSByZXR1cm47XG4gICAgdGhpcy5oaWdobGlnaHQuZW1pdCgpO1xuICB9XG5cbiAgb25LZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMubG9hZGluZyB8fCAhdGhpcy5vcHRpb24uaXNfdGFwcGFibGUpIHJldHVybjtcbiAgICBpZiAoZXZlbnQua2V5ID09PSBcIkVudGVyXCIgfHwgZXZlbnQua2V5ID09PSBcIiBcIikge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHRoaXMub25TZWxlY3QoKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXZcbiAgW2lkXT1cImlkXCJcbiAgcm9sZT1cIm9wdGlvblwiXG4gIGRhdGEtYWlhLW9wdGlvbj1cIlwiXG4gIFthdHRyLmRhdGEtYWlhLWxvYWRpbmddPVwibG9hZGluZyA/ICcnIDogbnVsbFwiXG4gIFthdHRyLmRhdGEtYWlhLWljb25dPVwiaWNvbkh0bWwgJiYgb3B0aW9uLmljb24gPyBvcHRpb24uaWNvbiA6IG51bGxcIlxuICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cImlzSGlnaGxpZ2h0ZWRcIlxuICBjbGFzcz1cImFpYS1zdWdnZXN0aW9uLWl0ZW1cIlxuICBbc3R5bGUuLS1haWEtb3B0aW9uLWVudGVyLWRlbGF5XT1cIihlbnRlckRlbGF5ID8/IDApICsgJ21zJ1wiXG4gIFtjbGFzcy5haWEtc3VnZ2VzdGlvbi1pdGVtLWhpZ2hsaWdodGVkXT1cImlzSGlnaGxpZ2h0ZWQgJiYgIWxvYWRpbmdcIlxuICBbY2xhc3MuYWlhLXN1Z2dlc3Rpb24taXRlbS10YXBwYWJsZV09XCJvcHRpb24uaXNfdGFwcGFibGVcIlxuICBbY2xhc3MuYWlhLXN1Z2dlc3Rpb24taXRlbS1ub24tdGFwcGFibGVdPVwiIW9wdGlvbi5pc190YXBwYWJsZVwiXG4gIFtjbGFzcy5haWEtc3VnZ2VzdGlvbi1pdGVtLXByZXNzZWRdPVwicHJlc3NlZFwiXG4gIFtjbGFzcy5haWEtc3VnZ2VzdGlvbi1pdGVtLXNjcm9sbC1oaW50XT1cInNjcm9sbEhpbnRcIlxuICBbYXR0ci50YWJpbmRleF09XCJsb2FkaW5nIHx8ICFvcHRpb24uaXNfdGFwcGFibGUgPyAtMSA6IDBcIlxuICAoY2xpY2spPVwib25TZWxlY3QoKVwiXG4gIChrZXlkb3duKT1cIm9uS2V5RG93bigkZXZlbnQpXCJcbiAgKG1vdXNlZW50ZXIpPVwib25Nb3VzZUVudGVyKClcIlxuPlxuICA8c3BhbiBjbGFzcz1cImFpYS1zdWdnZXN0aW9uLWNvbnRlbnRcIj5cbiAgICA8c3BhblxuICAgICAgKm5nSWY9XCJpY29uSHRtbFwiXG4gICAgICBjbGFzcz1cImFpYS1zdWdnZXN0aW9uLWljb25cIlxuICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgIFtpbm5lckhUTUxdPVwiaWNvbkh0bWxcIlxuICAgID48L3NwYW4+XG4gICAgPHNwYW4gY2xhc3M9XCJhaWEtc3VnZ2VzdGlvbi10ZXh0XCI+e3sgbGFiZWwgfX08L3NwYW4+XG4gICAgPHNwYW4gKm5nSWY9XCJvcHRpb24udGFnXCIgY2xhc3M9XCJhaWEtc3VnZ2VzdGlvbi10YWdcIj57eyBvcHRpb24udGFnIH19PC9zcGFuPlxuICA8L3NwYW4+XG48L2Rpdj5cbiJdfQ==
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VnZ2VzdGlvbi1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvaW50ZXJuYWwvc3VnZ2VzdGlvbi1pdGVtL3N1Z2dlc3Rpb24taXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2ludGVybmFsL3N1Z2dlc3Rpb24taXRlbS9zdWdnZXN0aW9uLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFFTixNQUFNLEVBQ04saUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQWlCLE1BQU0sMkJBQTJCLENBQUM7QUFDeEUsT0FBTyxFQUNMLFdBQVcsRUFFWCxxQkFBcUIsR0FDdEIsTUFBTSxxQ0FBcUMsQ0FBQzs7O0FBRTdDOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFVSCxNQUFNLE9BQU8sdUJBQXVCO0lBVHBDO1FBV1csa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFDdEIsT0FBRSxHQUFHLEVBQUUsQ0FBQztRQUNSLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDekIsOEVBQThFO1FBQ3JFLGFBQVEsR0FBRyxJQUFJLENBQUM7UUFDekIsOEZBQThGO1FBQ3JGLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFTNUI7Ozs7V0FJRztRQUNILGVBQVUsR0FBa0IsSUFBSSxDQUFDO1FBRWQsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFvQixDQUFDO1FBQzlDLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBRXhELFlBQU8sR0FBRyxLQUFLLENBQUM7UUFFQyxRQUFHLEdBQUcsTUFBTSxDQUFDLGlCQUFp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LFdBQ1AsQ0FBQyxZQUFZLENBQUMsbUJBQ04sdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSTs4QkFLNUIsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csRUFBRTtzQkFBVixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFFRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBTU8sWUFBWTtzQkFBeEIsS0FBSztnQkFVYSxNQUFNO3NCQUF4QixNQUFNO2dCQUNZLFNBQVM7c0JBQTNCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgaW5qZWN0LFxuICB0eXBlIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IERvbVNhbml0aXplciwgdHlwZSBTYWZlSHRtbCB9IGZyb20gXCJAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyXCI7XG5pbXBvcnQge1xuICBvcHRpb25MYWJlbCxcbiAgdHlwZSBTdWdnZXN0aW9uT3B0aW9uLFxuICBzYW5pdGl6ZU9wdGlvbkljb25TdmcsXG59IGZyb20gXCJAbWFnaWN4LWVuZy9haS1hdXRvY29tcGxldGUtdmFuaWxsYVwiO1xuXG4vKipcbiAqIEludGVybmFsIHNpbmdsZS1vcHRpb24gY2VsbCB1c2VkIGluc2lkZSB0aGUgc3VnZ2VzdGlvbiBncmlkLiBNaXJyb3JzXG4gKiBgcGFja2FnZXMvcmVhY3Qvc3JjL2NvbXBvbmVudHMvU3VnZ2VzdGlvbkl0ZW0udHN4YC4gSGFuZGxlczpcbiAqXG4gKiAtIFRhcHBhYmxlIHZzIG5vbi10YXBwYWJsZSBjdXJzb3IgKyBob3ZlciBzdHlsaW5nXG4gKiAtIFByZXNzZWQtc3RhdGUgY29tcHJlc3MgYW5pbWF0aW9uICgxNzBtcywgc2luZ2xlLWZsaWdodClcbiAqIC0gS2V5Ym9hcmQgYWN0aXZhdGlvbiAoRW50ZXIvU3BhY2UpXG4gKiAtIEFSSUEgYHJvbGU9XCJvcHRpb25cImAgKyBgYXJpYS1zZWxlY3RlZGAgZm9yIHRoZSBsaXN0Ym94IHBhdHRlcm5cbiAqIC0gTG9hZGluZyBza2VsZXRvbiB3aGVuIGBsb2FkaW5nPXRydWVgXG4gKiAtIFNlcnZlci1wcm92aWRlZCBpY29uIChgaWNvbl9zdmdgKSwgYWxsb3dsaXN0ZWQgdGhyb3VnaCB0aGUgY29yZSdzXG4gKiAgIGBzYW5pdGl6ZU9wdGlvbkljb25TdmdgIGJlZm9yZSBpdCBpcyBib3VuZCBhcyBIVE1MXG4gKlxuICogQGludGVybmFsXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJhaWEtc3VnZ2VzdGlvbi1pdGVtXCIsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgdGVtcGxhdGVVcmw6IFwiLi9zdWdnZXN0aW9uLWl0ZW0uY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXCIuL3N1Z2dlc3Rpb24taXRlbS5jb21wb25lbnQuY3NzXCJdLFxufSlcbmV4cG9ydCBjbGFzcyBTdWdnZXN0aW9uSXRlbUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIG9wdGlvbiE6IFN1Z2dlc3Rpb25PcHRpb247XG4gIEBJbnB1dCgpIGlzSGlnaGxpZ2h0ZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgaWQgPSBcIlwiO1xuICBASW5wdXQoKSBsb2FkaW5nID0gZmFsc2U7XG4gIC8qKiBXaGV0aGVyIHRvIGRyYXcgdGhlIG9wdGlvbidzIGBpY29uX3N2Z2AgYmVmb3JlIGl0cyB0ZXh0LiBEZWZhdWx0OiB0cnVlLiAqL1xuICBASW5wdXQoKSBzaG93SWNvbiA9IHRydWU7XG4gIC8qKiBGYWRlIHRoaXMgb3B0aW9uJ3MgdGV4dCB0b3dhcmQgaXRzIGJvdHRvbSBlZGdlIChsYXN0IHZpc2libGUgcm93IG9mIGEgc2Nyb2xsYWJsZSBncmlkKS4gKi9cbiAgQElucHV0KCkgc2Nyb2xsSGludCA9IGZhbHNlO1xuICAvKipcbiAgICogU3RhcnQgZGVsYXkgb2YgdGhpcyByb3cncyBlbnRyYW5jZSBhbmltYXRpb24gKG1zKSDigJQgZWFjaCByb3cgcmlzZXMgaW4gYVxuICAgKiBiZWF0IGFmdGVyIHRoZSBvbmUgbmVhcmVyIHRoZSBpbnB1dC4gQ2FwdHVyZWQgb25jZSwgb24gZmlyc3QgcmVuZGVyLCBzbyBhXG4gICAqIGxhdGVyIGNoYW5nZS1kZXRlY3Rpb24gcGFzcyBjYW4ndCByZXN0YXJ0IGEgcm93IG1pZC1yaXNlLlxuICAgKi9cbiAgQElucHV0KCkgc2V0IGVudGVyRGVsYXlNcyh2YWx1ZTogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMuZW50ZXJEZWxheSA9PT0gbnVsbCkgdGhpcy5lbnRlckRlbGF5ID0gdmFsdWU7XG4gIH1cbiAgLyoqXG4gICAqIFRoZSBjYXB0dXJlZCBkZWxheTsgYG51bGxgIHVudGlsIHRoZSBmaXJzdCBgZW50ZXJEZWxheU1zYCBiaW5kaW5nIGxhbmRzLlxuICAgKiBUaGUgdGVtcGxhdGUgYmluZHMgaXQgdG8gYC0tYWlhLW9wdGlvbi1lbnRlci1kZWxheWAgKHRoZSBjb3JlJ3NcbiAgICogT1BUSU9OX0VOVEVSX0RFTEFZX1ZBUiksIHdoaWNoIHRoZSBzdHlsZXNoZWV0J3MgZW50cmFuY2UgcnVsZSByZWFkcy5cbiAgICovXG4gIGVudGVyRGVsYXk6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gIEBPdXRwdXQoKSByZWFkb25seSBzZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPFN1Z2dlc3Rpb25PcHRpb24+KCk7XG4gIEBPdXRwdXQoKSByZWFkb25seSBoaWdobGlnaHQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgcHJlc3NlZCA9IGZhbHNlO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSBzYW5pdGl6ZXIgPSBpbmplY3QoRG9tU2FuaXRpemVyKTtcbiAgcHJpdmF0ZSBwcmVzc2VkVGltZXI6IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+IHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIGljb25Tb3VyY2U6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBpY29uU2FmZTogU2FmZUh0bWwgfCBudWxsID0gbnVsbDtcblxuICAvKiogVGhlIG9wdGlvbidzIHRleHQsIHdpdGggYSBsZWdhY3kgYGljb25gIChubyBgaWNvbl9zdmdgKSBwcmVmaXhlZC4gKi9cbiAgZ2V0IGxhYmVsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIG9wdGlvbkxhYmVsKHRoaXMub3B0aW9uKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgb3B0aW9uJ3MgaWNvbiBhcyBiaW5kYWJsZSBIVE1MLCBvciBgbnVsbGAgd2hlbiBpdCBoYXMgbm9uZSAob3IgaXRzXG4gICAqIG1hcmt1cCBmYWlsZWQgdGhlIGFsbG93bGlzdCkuIEFuZ3VsYXIncyBvd24gSFRNTCBzYW5pdGl6ZXIgc3RyaXBzIGA8c3ZnPmBcbiAgICogd2hvbGVzYWxlLCBzbyB0aGUgY29yZSdzIGFsbG93bGlzdGVkIG91dHB1dCBpcyBtYXJrZWQgdHJ1c3RlZCBpbnN0ZWFkIOKAlFxuICAgKiBpdCBpcyBuZXZlciB0aGUgc2VydmVyJ3MgcmF3IHN0cmluZy4gUmVjb21wdXRlZCBvbmx5IHdoZW4gdGhlIG1hcmt1cFxuICAgKiBjaGFuZ2VzOyB0aGUgZ2V0dGVyIHJ1bnMgb24gZXZlcnkgT25QdXNoIGNoZWNrLlxuICAgKi9cbiAgZ2V0IGljb25IdG1sKCk6IFNhZmVIdG1sIHwgbnVsbCB7XG4gICAgY29uc3Qgc3ZnID0gdGhpcy5zaG93SWNvbiA/IHRoaXMub3B0aW9uLmljb25fc3ZnIDogdW5kZWZpbmVkO1xuICAgIGlmIChzdmcgIT09IHRoaXMuaWNvblNvdXJjZSkge1xuICAgICAgdGhpcy5pY29uU291cmNlID0gc3ZnO1xuICAgICAgY29uc3QgaHRtbCA9IHN2ZyA/IHNhbml0aXplT3B0aW9uSWNvblN2ZyhzdmcpIDogbnVsbDtcbiAgICAgIHRoaXMuaWNvblNhZmUgPSBodG1sID8gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoaHRtbCkgOiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5pY29uU2FmZTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnByZXNzZWRUaW1lciAhPT0gdW5kZWZpbmVkKSBjbGVhclRpbWVvdXQodGhpcy5wcmVzc2VkVGltZXIpO1xuICB9XG5cbiAgb25TZWxlY3QoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubG9hZGluZyB8fCAhdGhpcy5vcHRpb24uaXNfdGFwcGFibGUgfHwgdGhpcy5wcmVzc2VkKSByZXR1cm47XG4gICAgdGhpcy5wcmVzc2VkID0gdHJ1ZTtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB0aGlzLnNlbGVjdC5lbWl0KHRoaXMub3B0aW9uKTtcbiAgICBpZiAodGhpcy5wcmVzc2VkVGltZXIgIT09IHVuZGVmaW5lZCkgY2xlYXJUaW1lb3V0KHRoaXMucHJlc3NlZFRpbWVyKTtcbiAgICB0aGlzLnByZXNzZWRUaW1lciA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5wcmVzc2VkID0gZmFsc2U7XG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9LCAxNzApO1xuICB9XG5cbiAgb25Nb3VzZUVudGVyKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmxvYWRpbmcgfHwgIXRoaXMub3B0aW9uLmlzX3RhcHBhYmxlKSByZXR1cm47XG4gICAgdGhpcy5oaWdobGlnaHQuZW1pdCgpO1xuICB9XG5cbiAgb25LZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMubG9hZGluZyB8fCAhdGhpcy5vcHRpb24uaXNfdGFwcGFibGUpIHJldHVybjtcbiAgICBpZiAoZXZlbnQua2V5ID09PSBcIkVudGVyXCIgfHwgZXZlbnQua2V5ID09PSBcIiBcIikge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHRoaXMub25TZWxlY3QoKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXZcbiAgW2lkXT1cImlkXCJcbiAgcm9sZT1cIm9wdGlvblwiXG4gIGRhdGEtYWlhLW9wdGlvbj1cIlwiXG4gIFthdHRyLmRhdGEtYWlhLWxvYWRpbmddPVwibG9hZGluZyA/ICcnIDogbnVsbFwiXG4gIFthdHRyLmRhdGEtYWlhLWljb25dPVwiaWNvbkh0bWwgJiYgb3B0aW9uLmljb24gPyBvcHRpb24uaWNvbiA6IG51bGxcIlxuICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cImlzSGlnaGxpZ2h0ZWRcIlxuICBjbGFzcz1cImFpYS1zdWdnZXN0aW9uLWl0ZW1cIlxuICBbc3R5bGUuLS1haWEtb3B0aW9uLWVudGVyLWRlbGF5XT1cIihlbnRlckRlbGF5ID8/IDApICsgJ21zJ1wiXG4gIFtjbGFzcy5haWEtc3VnZ2VzdGlvbi1pdGVtLWhpZ2hsaWdodGVkXT1cImlzSGlnaGxpZ2h0ZWQgJiYgIWxvYWRpbmdcIlxuICBbY2xhc3MuYWlhLXN1Z2dlc3Rpb24taXRlbS10YXBwYWJsZV09XCJvcHRpb24uaXNfdGFwcGFibGVcIlxuICBbY2xhc3MuYWlhLXN1Z2dlc3Rpb24taXRlbS1ub24tdGFwcGFibGVdPVwiIW9wdGlvbi5pc190YXBwYWJsZVwiXG4gIFtjbGFzcy5haWEtc3VnZ2VzdGlvbi1pdGVtLXByZXNzZWRdPVwicHJlc3NlZFwiXG4gIFtjbGFzcy5haWEtc3VnZ2VzdGlvbi1pdGVtLXNjcm9sbC1oaW50XT1cInNjcm9sbEhpbnRcIlxuICBbYXR0ci50YWJpbmRleF09XCJsb2FkaW5nIHx8ICFvcHRpb24uaXNfdGFwcGFibGUgPyAtMSA6IDBcIlxuICAoY2xpY2spPVwib25TZWxlY3QoKVwiXG4gIChrZXlkb3duKT1cIm9uS2V5RG93bigkZXZlbnQpXCJcbiAgKG1vdXNlZW50ZXIpPVwib25Nb3VzZUVudGVyKClcIlxuPlxuICA8c3BhbiBjbGFzcz1cImFpYS1zdWdnZXN0aW9uLWNvbnRlbnRcIj5cbiAgICA8c3BhblxuICAgICAgKm5nSWY9XCJpY29uSHRtbFwiXG4gICAgICBjbGFzcz1cImFpYS1zdWdnZXN0aW9uLWljb25cIlxuICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgIFtpbm5lckhUTUxdPVwiaWNvbkh0bWxcIlxuICAgID48L3NwYW4+XG4gICAgPHNwYW4gY2xhc3M9XCJhaWEtc3VnZ2VzdGlvbi10ZXh0XCI+e3sgbGFiZWwgfX08L3NwYW4+XG4gICAgPHNwYW4gKm5nSWY9XCJvcHRpb24udGFnXCIgY2xhc3M9XCJhaWEtc3VnZ2VzdGlvbi10YWdcIj57eyBvcHRpb24udGFnIH19PC9zcGFuPlxuICA8L3NwYW4+XG48L2Rpdj5cbiJdfQ==