@seniorsistemas/data-seniorx-core 3.1.0 → 3.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/core/constants/accordion.const.d.ts +4 -4
- package/core/constants/alert.const.d.ts +1 -1
- package/core/constants/autocomplete.const.d.ts +2 -2
- package/core/constants/badge.const.d.ts +1 -1
- package/core/constants/card.const.d.ts +8 -8
- package/core/constants/chips.const.d.ts +2 -2
- package/core/constants/code-editor.const.d.ts +4 -4
- package/core/constants/collapse-link.const.d.ts +2 -2
- package/core/constants/color-picker.const.d.ts +2 -2
- package/core/constants/combobox.const.d.ts +3 -3
- package/core/constants/context-selector.const.d.ts +1 -1
- package/core/constants/editable-overlay.const.d.ts +4 -4
- package/core/constants/fileupload.const.d.ts +3 -3
- package/core/constants/gantt.const.d.ts +1 -1
- package/core/constants/help-popover.const.d.ts +2 -2
- package/core/constants/hyperlink.const.d.ts +2 -2
- package/core/constants/info-sign.const.d.ts +1 -1
- package/core/constants/inline-edit.const.d.ts +4 -4
- package/core/constants/kanban.const.d.ts +2 -2
- package/core/constants/list.const.d.ts +1 -1
- package/core/constants/modalc.const.d.ts +1 -1
- package/core/constants/navigation-button.const.d.ts +3 -3
- package/core/constants/object-card.const.d.ts +2 -2
- package/core/constants/picklist.const.d.ts +2 -2
- package/core/constants/pin-code-field.const.d.ts +3 -3
- package/core/constants/popover.const.d.ts +1 -1
- package/core/constants/progressbar.const.d.ts +1 -1
- package/core/constants/radio.const.d.ts +2 -2
- package/core/constants/rating-scale.const.d.ts +1 -1
- package/core/constants/sidebar.const.d.ts +1 -1
- package/core/constants/slider.const.d.ts +1 -1
- package/core/constants/split-button.const.d.ts +2 -2
- package/core/constants/spotlight.const.d.ts +8 -8
- package/core/constants/star-rating.const.d.ts +2 -2
- package/core/constants/tab.const.d.ts +3 -3
- package/core/constants/table.const.d.ts +1 -0
- package/core/constants/thumbnails.const.d.ts +4 -4
- package/core/constants/token-list.const.d.ts +1 -1
- package/core/types/table-column.type.d.ts +4 -0
- package/core/types/table-options.type.d.ts +3 -0
- package/core/types/table-shared.type.d.ts +1 -1
- package/core/types/tile-select.type.d.ts +17 -0
- package/esm2022/core/constants/accordion.const.mjs +5 -5
- package/esm2022/core/constants/alert.const.mjs +2 -2
- package/esm2022/core/constants/autocomplete.const.mjs +3 -3
- package/esm2022/core/constants/badge.const.mjs +2 -2
- package/esm2022/core/constants/card.const.mjs +9 -9
- package/esm2022/core/constants/chips.const.mjs +3 -3
- package/esm2022/core/constants/code-editor.const.mjs +5 -5
- package/esm2022/core/constants/collapse-link.const.mjs +3 -3
- package/esm2022/core/constants/color-picker.const.mjs +3 -3
- package/esm2022/core/constants/combobox.const.mjs +7 -4
- package/esm2022/core/constants/context-selector.const.mjs +2 -2
- package/esm2022/core/constants/editable-overlay.const.mjs +5 -5
- package/esm2022/core/constants/fileupload.const.mjs +4 -4
- package/esm2022/core/constants/gantt.const.mjs +2 -2
- package/esm2022/core/constants/help-popover.const.mjs +3 -3
- package/esm2022/core/constants/hyperlink.const.mjs +3 -3
- package/esm2022/core/constants/info-sign.const.mjs +2 -2
- package/esm2022/core/constants/inline-edit.const.mjs +5 -5
- package/esm2022/core/constants/kanban.const.mjs +3 -3
- package/esm2022/core/constants/list.const.mjs +2 -2
- package/esm2022/core/constants/loading-state.const.mjs +2 -2
- package/esm2022/core/constants/modalc.const.mjs +2 -2
- package/esm2022/core/constants/navigation-button.const.mjs +4 -4
- package/esm2022/core/constants/object-card.const.mjs +3 -3
- package/esm2022/core/constants/picklist.const.mjs +3 -3
- package/esm2022/core/constants/pin-code-field.const.mjs +4 -4
- package/esm2022/core/constants/popover.const.mjs +8 -2
- package/esm2022/core/constants/progressbar.const.mjs +2 -2
- package/esm2022/core/constants/radio.const.mjs +3 -3
- package/esm2022/core/constants/rating-scale.const.mjs +2 -2
- package/esm2022/core/constants/sidebar.const.mjs +2 -2
- package/esm2022/core/constants/slider.const.mjs +2 -2
- package/esm2022/core/constants/split-button.const.mjs +3 -3
- package/esm2022/core/constants/spotlight.const.mjs +9 -9
- package/esm2022/core/constants/star-rating.const.mjs +3 -3
- package/esm2022/core/constants/tab.const.mjs +4 -4
- package/esm2022/core/constants/table.const.mjs +4 -3
- package/esm2022/core/constants/thumbnails.const.mjs +5 -5
- package/esm2022/core/constants/token-list.const.mjs +2 -2
- package/esm2022/core/data/fontawesome-v5-solid-icons.data.mjs +2 -2
- package/esm2022/core/types/table-column.type.mjs +1 -1
- package/esm2022/core/types/table-options.type.mjs +1 -1
- package/esm2022/core/types/table-shared.type.mjs +1 -1
- package/esm2022/core/types/tile-select.type.mjs +8 -0
- package/esm2022/core/utils/combobox.util.mjs +6 -6
- package/esm2022/features/accordion/components/accordion-item/accordion-item.component.mjs +3 -3
- package/esm2022/features/autocomplete/autocomplete.component.mjs +3 -3
- package/esm2022/features/bignumber-input/bignumber-input.component.mjs +1 -1
- package/esm2022/features/breadcrumb/breadcrumb.component.mjs +3 -3
- package/esm2022/features/button/button.component.mjs +7 -3
- package/esm2022/features/card-list/card/card.component.mjs +2 -2
- package/esm2022/features/card-list/card-list.component.mjs +7 -3
- package/esm2022/features/chat/chat.component.mjs +4 -4
- package/esm2022/features/checkbox/checkbox.component.mjs +3 -3
- package/esm2022/features/checkbox-list/checkbox-list.component.mjs +3 -3
- package/esm2022/features/chips/chips.component.mjs +3 -3
- package/esm2022/features/code-editor/code-editor.component.mjs +23 -5
- package/esm2022/features/color-picker/color-picker.component.mjs +3 -3
- package/esm2022/features/country-phone-picker/country-phone-picker.component.mjs +3 -3
- package/esm2022/features/currency/currency.component.mjs +1 -1
- package/esm2022/features/editable-overlay/editable-overlay.component.mjs +3 -3
- package/esm2022/features/empty-state/empty-state.component.mjs +1 -1
- package/esm2022/features/fileupload/fileupload.component.mjs +4 -4
- package/esm2022/features/filters/filters.component.mjs +3 -3
- package/esm2022/features/help-popover/help-popover.component.mjs +2 -2
- package/esm2022/features/hyperlink/hyperlink.component.mjs +3 -3
- package/esm2022/features/icon-picker/icon-picker.component.mjs +1 -1
- package/esm2022/features/image-cropper/image-cropper.component.mjs +9 -9
- package/esm2022/features/inline-edit/components/fields/inline-edit-number/inline-edit-number.component.mjs +1 -1
- package/esm2022/features/inline-edit/components/inline-edit-item/inline-edit-item.component.mjs +2 -2
- package/esm2022/features/list/list.component.mjs +7 -3
- package/esm2022/features/loading-state/loading-state.component.mjs +5 -5
- package/esm2022/features/localized-number-input/localized-number-input.component.mjs +4 -4
- package/esm2022/features/lookup/lookup.component.mjs +5 -5
- package/esm2022/features/mask/mask.component.mjs +4 -4
- package/esm2022/features/modal/modal.component.mjs +3 -3
- package/esm2022/features/modalc/modalc.component.mjs +3 -3
- package/esm2022/features/number-input/number-input.component.mjs +32 -5
- package/esm2022/features/object-card/components/object-card-field/object-card-field.component.mjs +1 -1
- package/esm2022/features/object-card/components/object-card-main/object-card-main.component.mjs +1 -1
- package/esm2022/features/object-card/object-card.component.mjs +2 -2
- package/esm2022/features/paginator/paginator.component.mjs +3 -3
- package/esm2022/features/panel/panel.component.mjs +6 -6
- package/esm2022/features/password-strength/password-strength.component.mjs +6 -6
- package/esm2022/features/picklist/picklist.component.mjs +6 -4
- package/esm2022/features/pin-code-field/pin-code-field.component.mjs +3 -3
- package/esm2022/features/profile-picture-picker/profile-picture-picker.component.mjs +11 -11
- package/esm2022/features/rating-scale/rating-scale.component.mjs +3 -3
- package/esm2022/features/row-card-list/row-card/row-card.component.mjs +100 -7
- package/esm2022/features/row-card-list/row-card-list.component.mjs +7 -3
- package/esm2022/features/scaffold/scaffold.component.mjs +3 -3
- package/esm2022/features/searchbox/searchbox.component.mjs +4 -4
- package/esm2022/features/select-button/select-button.component.mjs +5 -5
- package/esm2022/features/sidebar/sidebar.component.mjs +3 -3
- package/esm2022/features/slider/slider.component.mjs +3 -3
- package/esm2022/features/speech-recognition/speech-recognition.component.mjs +12 -12
- package/esm2022/features/spotlight/spotlight.component.mjs +2 -2
- package/esm2022/features/star-rating/star-rating.component.mjs +3 -3
- package/esm2022/features/switch/switch.component.mjs +4 -4
- package/esm2022/features/table/components/table-actions-menu.component.mjs +2 -2
- package/esm2022/features/table/components/table-cell-content.component.mjs +16 -10
- package/esm2022/features/table/table.component.mjs +46 -16
- package/esm2022/features/table/utils/table-visual.util.mjs +25 -7
- package/esm2022/features/textarea/textarea.component.mjs +3 -3
- package/esm2022/features/textbox/textbox.component.mjs +3 -3
- package/esm2022/features/tile-select/tile-select.component.mjs +80 -0
- package/esm2022/features/toast/toast.component.mjs +3 -3
- package/esm2022/features/tree/components/tree-node-item/tree-node-item.component.mjs +6 -6
- package/esm2022/features/visual-sql-editor/visual-sql-editor.component.mjs +2 -2
- package/esm2022/locales/en.json +4760 -4749
- package/esm2022/locales/es-CO.json +4760 -4749
- package/esm2022/locales/pt.json +4760 -4749
- package/esm2022/providers/features.provider.mjs +3 -1
- package/esm2022/public-api.mjs +3 -1
- package/features/button/button.component.d.ts +2 -1
- package/features/card-list/card-list.component.d.ts +3 -1
- package/features/code-editor/code-editor.component.d.ts +2 -1
- package/features/help-popover/help-popover.component.d.ts +1 -1
- package/features/inline-edit/components/inline-edit-item/inline-edit-item.component.d.ts +4 -4
- package/features/kanban/components/kanban-item-dragging/kanban-item-dragging.component.d.ts +2 -2
- package/features/list/list.component.d.ts +3 -1
- package/features/navigation-button/navigation-button.component.d.ts +3 -3
- package/features/number-input/number-input.component.d.ts +7 -1
- package/features/panel/panel.component.d.ts +1 -1
- package/features/picklist/picklist.component.d.ts +3 -2
- package/features/pin-code-field/pin-code-field.component.d.ts +3 -3
- package/features/row-card-list/row-card/row-card.component.d.ts +15 -2
- package/features/row-card-list/row-card-list.component.d.ts +3 -1
- package/features/spotlight/spotlight.component.d.ts +8 -8
- package/features/table/components/table-cell-content.component.d.ts +4 -1
- package/features/table/table.component.d.ts +9 -2
- package/features/table/utils/table-visual.util.d.ts +5 -0
- package/features/textarea/textarea.component.d.ts +1 -1
- package/features/thumbnails/components/thumbnail-item/thumbnail-item.component.d.ts +3 -3
- package/features/thumbnails/components/thumbnail-item-image/thumbnail-item-image.component.d.ts +1 -1
- package/features/thumbnails/components/thumbnail-item-video/thumbnail-item-video.component.d.ts +1 -1
- package/features/tile-select/tile-select.component.d.ts +21 -0
- package/fesm2022/seniorsistemas-data-seniorx-core-fontawesome-v5-solid-icons.data-fK3MF8KJ.mjs +4 -0
- package/fesm2022/{seniorsistemas-data-seniorx-core-fontawesome-v5-solid-icons.data-B7opbaVg.mjs.map → seniorsistemas-data-seniorx-core-fontawesome-v5-solid-icons.data-fK3MF8KJ.mjs.map} +1 -1
- package/fesm2022/seniorsistemas-data-seniorx-core.mjs +14859 -14534
- package/fesm2022/seniorsistemas-data-seniorx-core.mjs.map +1 -1
- package/package.json +57 -22
- package/public-api.d.ts +3 -0
- package/src/locales/en.json +4760 -4749
- package/src/locales/es-CO.json +4760 -4749
- package/src/locales/pt.json +4760 -4749
- package/styles/sdc-global-variables.scss +2 -2
- package/styles.css +2 -2
- package/fesm2022/seniorsistemas-data-seniorx-core-fontawesome-v5-solid-icons.data-B7opbaVg.mjs +0 -4
|
@@ -87,11 +87,11 @@ export class SidebarComponent {
|
|
|
87
87
|
focusFirstDescendant(panel, this.closeButtonRef?.nativeElement ?? panel);
|
|
88
88
|
}
|
|
89
89
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SidebarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
90
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: SidebarComponent, isStandalone: true, selector: "sdc-sidebar", inputs: { visible: "visible", header: "header", largeSized: "largeSized", closeOnBackdrop: "closeOnBackdrop", width: "width", showClose: "showClose" }, outputs: { visibleChange: "visibleChange" }, host: { listeners: { "document:keydown": "onDocumentKeydown($event)" } }, queries: [{ propertyName: "headerTpl", first: true, predicate: ["header"], descendants: true, read: TemplateRef }, { propertyName: "contentTpl", first: true, predicate: ["content"], descendants: true, read: TemplateRef }, { propertyName: "footerTpl", first: true, predicate: ["footer"], descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "panelRef", first: true, predicate: ["panelRef"], descendants: true }, { propertyName: "closeButtonRef", first: true, predicate: ["closeButtonRef"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"sdc-overlay\" [class.sdc-overlay--open]=\"visible\" [attr.aria-hidden]=\"!visible\">\n <div class=\"sdc-backdrop\" (click)=\"onBackdropClick()\"></div>\n\n <section\n #panelRef\n class=\"sdc-sidebar-panel\"\n [class.sdc-sidebar-panel--open]=\"visible\"\n role=\"dialog\"\n aria-modal=\"true\"\n [attr.aria-labelledby]=\"'sidebar-header'\"\n [style.width]=\"sidebarWidth\"\n tabindex=\"-1\"\n >\n <div class=\"sdc-sidebar-header\">\n <h2 class=\"sdc-sidebar-title\" id=\"sidebar-header\">{{ header | translate }}</h2>\n\n <div class=\"sdc-sidebar-header-actions\">\n @if (headerTpl) {\n <div class=\"sdc-sidebar-header-extra\">\n <ng-container *ngTemplateOutlet=\"headerTpl\"></ng-container>\n </div>\n }\n\n @if (showClose) {\n <button\n #closeButtonRef\n type=\"button\"\n class=\"sdc-sidebar-close\"\n (click)=\"close()\"\n [attr.aria-label]=\"'platform.datacore.
|
|
90
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: SidebarComponent, isStandalone: true, selector: "sdc-sidebar", inputs: { visible: "visible", header: "header", largeSized: "largeSized", closeOnBackdrop: "closeOnBackdrop", width: "width", showClose: "showClose" }, outputs: { visibleChange: "visibleChange" }, host: { listeners: { "document:keydown": "onDocumentKeydown($event)" } }, queries: [{ propertyName: "headerTpl", first: true, predicate: ["header"], descendants: true, read: TemplateRef }, { propertyName: "contentTpl", first: true, predicate: ["content"], descendants: true, read: TemplateRef }, { propertyName: "footerTpl", first: true, predicate: ["footer"], descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "panelRef", first: true, predicate: ["panelRef"], descendants: true }, { propertyName: "closeButtonRef", first: true, predicate: ["closeButtonRef"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"sdc-overlay\" [class.sdc-overlay--open]=\"visible\" [attr.aria-hidden]=\"!visible\">\n <div class=\"sdc-backdrop\" (click)=\"onBackdropClick()\"></div>\n\n <section\n #panelRef\n class=\"sdc-sidebar-panel\"\n [class.sdc-sidebar-panel--open]=\"visible\"\n role=\"dialog\"\n aria-modal=\"true\"\n [attr.aria-labelledby]=\"'sidebar-header'\"\n [style.width]=\"sidebarWidth\"\n tabindex=\"-1\"\n >\n <div class=\"sdc-sidebar-header\">\n <h2 class=\"sdc-sidebar-title\" id=\"sidebar-header\">{{ header | translate }}</h2>\n\n <div class=\"sdc-sidebar-header-actions\">\n @if (headerTpl) {\n <div class=\"sdc-sidebar-header-extra\">\n <ng-container *ngTemplateOutlet=\"headerTpl\"></ng-container>\n </div>\n }\n\n @if (showClose) {\n <button\n #closeButtonRef\n type=\"button\"\n class=\"sdc-sidebar-close\"\n (click)=\"close()\"\n [attr.aria-label]=\"'platform.datacore.accessibility_close_sidebar' | translate\"\n >\n <i class=\"fas fa-times\" aria-hidden=\"true\"></i>\n </button>\n }\n </div>\n </div>\n\n <div class=\"sdc-sidebar-content\">\n @if (contentTpl) {\n <ng-container *ngTemplateOutlet=\"contentTpl\"></ng-container>\n } @else {\n <ng-content></ng-content>\n }\n </div>\n\n <div class=\"sdc-sidebar-footer\">\n <hr class=\"sdc-footer-divider\" />\n <div class=\"sdc-footer-actions\">\n @if (footerTpl) {\n <ng-container *ngTemplateOutlet=\"footerTpl\"></ng-container>\n }\n </div>\n </div>\n </section>\n</div>\n", styles: [":host{display:block}.sdc-overlay{position:fixed;inset:0;z-index:1100;pointer-events:none}.sdc-overlay--open{pointer-events:auto}.sdc-backdrop{position:absolute;inset:0;background:var(--sdc-sidebar-backdrop-bg, rgba(51, 51, 51, .8));opacity:0;transition:opacity var(--sdc-transition-medium, .26s ease)}.sdc-overlay--open .sdc-backdrop{opacity:1}.sdc-sidebar-panel{position:absolute;right:0;top:0;height:100vh;background:var(--sdc-sidebar-panel-bg, #ffffff);display:flex;flex-direction:column;max-width:100%;box-shadow:var(--sdc-sidebar-shadow, 0 0 0 1px rgba(0, 0, 0, .04), 0 10px 30px rgba(0, 0, 0, .2));width:var(--sdc-sidebar-width, 70%);transform:translate(100%);transition:transform var(--sdc-transition-medium-emphasized, .26s cubic-bezier(.2, .8, .2, 1));will-change:transform}.sdc-sidebar-panel--open{transform:translate(0)}.sdc-sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:var(--sdc-sidebar-header-padding, .75rem 1rem);border-bottom:1px solid var(--sdc-sidebar-border-color, #e5e7eb);font-size:var(--sdc-sidebar-title-size, .9rem);text-transform:uppercase}.sdc-sidebar-title{font-weight:600;font-size:var(--sdc-sidebar-title-size, .9rem);margin:0;min-width:0}.sdc-sidebar-header-actions{display:flex;align-items:center;gap:.5rem;flex:0 0 auto;min-width:0}.sdc-sidebar-header-extra{display:inline-flex;align-items:center;min-width:0}.sdc-sidebar-close{background:transparent;border:0;cursor:pointer;padding:.5rem;min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center;line-height:1}.sdc-sidebar-close:focus-visible{outline:2px solid var(--sdc-primary-color, #007bff);outline-offset:-2px;box-shadow:0 0 0 3px #007bff40}.sdc-sidebar-content{flex:1 1 auto;overflow:auto;padding:var(--sdc-sidebar-content-padding, 0 1rem)}.sdc-sidebar-footer{background:var(--sdc-sidebar-panel-bg, #ffffff);position:sticky;bottom:0;padding:var(--sdc-sidebar-footer-padding, 0 1rem 1rem)}.sdc-footer-divider{margin:.75rem 0 1rem;border:0;border-top:1px solid var(--sdc-sidebar-divider-color, #dcdcdc)}.sdc-footer-actions{display:flex;align-items:center;justify-content:flex-start;gap:1rem}.sdc-body-locked{overflow:hidden}@media (prefers-reduced-motion: reduce){.sdc-backdrop,.sdc-sidebar-panel{transition:none}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
91
91
|
}
|
|
92
92
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SidebarComponent, decorators: [{
|
|
93
93
|
type: Component,
|
|
94
|
-
args: [{ selector: 'sdc-sidebar', standalone: true, imports: [CommonModule, TranslateModule], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.Emulated, template: "<div class=\"sdc-overlay\" [class.sdc-overlay--open]=\"visible\" [attr.aria-hidden]=\"!visible\">\n <div class=\"sdc-backdrop\" (click)=\"onBackdropClick()\"></div>\n\n <section\n #panelRef\n class=\"sdc-sidebar-panel\"\n [class.sdc-sidebar-panel--open]=\"visible\"\n role=\"dialog\"\n aria-modal=\"true\"\n [attr.aria-labelledby]=\"'sidebar-header'\"\n [style.width]=\"sidebarWidth\"\n tabindex=\"-1\"\n >\n <div class=\"sdc-sidebar-header\">\n <h2 class=\"sdc-sidebar-title\" id=\"sidebar-header\">{{ header | translate }}</h2>\n\n <div class=\"sdc-sidebar-header-actions\">\n @if (headerTpl) {\n <div class=\"sdc-sidebar-header-extra\">\n <ng-container *ngTemplateOutlet=\"headerTpl\"></ng-container>\n </div>\n }\n\n @if (showClose) {\n <button\n #closeButtonRef\n type=\"button\"\n class=\"sdc-sidebar-close\"\n (click)=\"close()\"\n [attr.aria-label]=\"'platform.datacore.
|
|
94
|
+
args: [{ selector: 'sdc-sidebar', standalone: true, imports: [CommonModule, TranslateModule], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.Emulated, template: "<div class=\"sdc-overlay\" [class.sdc-overlay--open]=\"visible\" [attr.aria-hidden]=\"!visible\">\n <div class=\"sdc-backdrop\" (click)=\"onBackdropClick()\"></div>\n\n <section\n #panelRef\n class=\"sdc-sidebar-panel\"\n [class.sdc-sidebar-panel--open]=\"visible\"\n role=\"dialog\"\n aria-modal=\"true\"\n [attr.aria-labelledby]=\"'sidebar-header'\"\n [style.width]=\"sidebarWidth\"\n tabindex=\"-1\"\n >\n <div class=\"sdc-sidebar-header\">\n <h2 class=\"sdc-sidebar-title\" id=\"sidebar-header\">{{ header | translate }}</h2>\n\n <div class=\"sdc-sidebar-header-actions\">\n @if (headerTpl) {\n <div class=\"sdc-sidebar-header-extra\">\n <ng-container *ngTemplateOutlet=\"headerTpl\"></ng-container>\n </div>\n }\n\n @if (showClose) {\n <button\n #closeButtonRef\n type=\"button\"\n class=\"sdc-sidebar-close\"\n (click)=\"close()\"\n [attr.aria-label]=\"'platform.datacore.accessibility_close_sidebar' | translate\"\n >\n <i class=\"fas fa-times\" aria-hidden=\"true\"></i>\n </button>\n }\n </div>\n </div>\n\n <div class=\"sdc-sidebar-content\">\n @if (contentTpl) {\n <ng-container *ngTemplateOutlet=\"contentTpl\"></ng-container>\n } @else {\n <ng-content></ng-content>\n }\n </div>\n\n <div class=\"sdc-sidebar-footer\">\n <hr class=\"sdc-footer-divider\" />\n <div class=\"sdc-footer-actions\">\n @if (footerTpl) {\n <ng-container *ngTemplateOutlet=\"footerTpl\"></ng-container>\n }\n </div>\n </div>\n </section>\n</div>\n", styles: [":host{display:block}.sdc-overlay{position:fixed;inset:0;z-index:1100;pointer-events:none}.sdc-overlay--open{pointer-events:auto}.sdc-backdrop{position:absolute;inset:0;background:var(--sdc-sidebar-backdrop-bg, rgba(51, 51, 51, .8));opacity:0;transition:opacity var(--sdc-transition-medium, .26s ease)}.sdc-overlay--open .sdc-backdrop{opacity:1}.sdc-sidebar-panel{position:absolute;right:0;top:0;height:100vh;background:var(--sdc-sidebar-panel-bg, #ffffff);display:flex;flex-direction:column;max-width:100%;box-shadow:var(--sdc-sidebar-shadow, 0 0 0 1px rgba(0, 0, 0, .04), 0 10px 30px rgba(0, 0, 0, .2));width:var(--sdc-sidebar-width, 70%);transform:translate(100%);transition:transform var(--sdc-transition-medium-emphasized, .26s cubic-bezier(.2, .8, .2, 1));will-change:transform}.sdc-sidebar-panel--open{transform:translate(0)}.sdc-sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:var(--sdc-sidebar-header-padding, .75rem 1rem);border-bottom:1px solid var(--sdc-sidebar-border-color, #e5e7eb);font-size:var(--sdc-sidebar-title-size, .9rem);text-transform:uppercase}.sdc-sidebar-title{font-weight:600;font-size:var(--sdc-sidebar-title-size, .9rem);margin:0;min-width:0}.sdc-sidebar-header-actions{display:flex;align-items:center;gap:.5rem;flex:0 0 auto;min-width:0}.sdc-sidebar-header-extra{display:inline-flex;align-items:center;min-width:0}.sdc-sidebar-close{background:transparent;border:0;cursor:pointer;padding:.5rem;min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center;line-height:1}.sdc-sidebar-close:focus-visible{outline:2px solid var(--sdc-primary-color, #007bff);outline-offset:-2px;box-shadow:0 0 0 3px #007bff40}.sdc-sidebar-content{flex:1 1 auto;overflow:auto;padding:var(--sdc-sidebar-content-padding, 0 1rem)}.sdc-sidebar-footer{background:var(--sdc-sidebar-panel-bg, #ffffff);position:sticky;bottom:0;padding:var(--sdc-sidebar-footer-padding, 0 1rem 1rem)}.sdc-footer-divider{margin:.75rem 0 1rem;border:0;border-top:1px solid var(--sdc-sidebar-divider-color, #dcdcdc)}.sdc-footer-actions{display:flex;align-items:center;justify-content:flex-start;gap:1rem}.sdc-body-locked{overflow:hidden}@media (prefers-reduced-motion: reduce){.sdc-backdrop,.sdc-sidebar-panel{transition:none}}\n"] }]
|
|
95
95
|
}], propDecorators: { visible: [{
|
|
96
96
|
type: Input,
|
|
97
97
|
args: [{ required: true }]
|
|
@@ -127,4 +127,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
127
127
|
type: HostListener,
|
|
128
128
|
args: ['document:keydown', ['$event']]
|
|
129
129
|
}] } });
|
|
130
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL3NpZGViYXIvc2lkZWJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL3NpZGViYXIvc2lkZWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUVaLFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFFTixXQUFXLEVBQ1gsU0FBUyxFQUNULGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLDBCQUEwQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDOUgsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7O0FBV3ZHLE1BQU0sT0FBTyxnQkFBZ0I7SUFDQSxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ2hCLE1BQU0sR0FBRywwQkFBMEIsQ0FBQztJQUN0RCxVQUFVLEdBQUcsSUFBSSxDQUFDO0lBQ2xCLGVBQWUsR0FBRyxJQUFJLENBQUM7SUFDdkIsS0FBSyxHQUFvQixxQkFBcUIsQ0FBQztJQUMvQyxTQUFTLEdBQUcsSUFBSSxDQUFDO0lBRWhCLGFBQWEsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO0lBRVAsU0FBUyxDQUF3QjtJQUNoQyxVQUFVLENBQXdCO0lBQ25DLFNBQVMsQ0FBd0I7SUFDekQsUUFBUSxDQUEyQjtJQUM3QixjQUFjLENBQWlDO0lBRXBFLHNCQUFzQixH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QUFJLEVBQUUsV0FBVyxFQUFFO2dCQUNDLFNBQVM7c0JBQXZELFlBQVk7dUJBQUMsUUFBUSxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtnQkFDdEIsUUFBUTtzQkFBOUIsU0FBUzt1QkFBQyxVQUFVO2dCQUNRLGNBQWM7c0JBQTFDLFNBQVM7dUJBQUMsZ0JBQWdCO2dCQXlDM0IsaUJBQWlCO3NCQURoQixZQUFZO3VCQUFDLGtCQUFrQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG5pbXBvcnQgeyBTSURFQkFSX0NPTVBBQ1RfV0lEVEgsIFNJREVCQVJfREVGQVVMVF9IRUFERVJfS0VZLCBTSURFQkFSX0RFRkFVTFRfV0lEVEggfSBmcm9tICcuLi8uLi9jb3JlL2NvbnN0YW50cy9zaWRlYmFyLmNvbnN0JztcbmltcG9ydCB7IGZvY3VzRmlyc3REZXNjZW5kYW50LCByZXN0b3JlRm9jdXMsIHRyYXBGb2N1c0luQ29udGFpbmVyIH0gZnJvbSAnLi4vLi4vY29yZS91dGlscy9mb2N1cy51dGlsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2RjLXNpZGViYXInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vc2lkZWJhci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NpZGViYXIuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLkVtdWxhdGVkXG59KVxuZXhwb3J0IGNsYXNzIFNpZGViYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIHZpc2libGUgPSBmYWxzZTtcbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgaGVhZGVyID0gU0lERUJBUl9ERUZBVUxUX0hFQURFUl9LRVk7XG4gIEBJbnB1dCgpIGxhcmdlU2l6ZWQgPSB0cnVlO1xuICBASW5wdXQoKSBjbG9zZU9uQmFja2Ryb3AgPSB0cnVlO1xuICBASW5wdXQoKSB3aWR0aDogc3RyaW5nIHwgbnVtYmVyID0gU0lERUJBUl9ERUZBVUxUX1dJRFRIO1xuICBASW5wdXQoKSBzaG93Q2xvc2UgPSB0cnVlO1xuXG4gIEBPdXRwdXQoKSB2aXNpYmxlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIEBDb250ZW50Q2hpbGQoJ2hlYWRlcicsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSkgaGVhZGVyVHBsPzogVGVtcGxhdGVSZWY8dW5rbm93bj47XG4gIEBDb250ZW50Q2hpbGQoJ2NvbnRlbnQnLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pIGNvbnRlbnRUcGw/OiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcbiAgQENvbnRlbnRDaGlsZCgnZm9vdGVyJywgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KSBmb290ZXJUcGw/OiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcbiAgQFZpZXdDaGlsZCgncGFuZWxSZWYnKSBwYW5lbFJlZj86IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuICBAVmlld0NoaWxkKCdjbG9zZUJ1dHRvblJlZicpIGNsb3NlQnV0dG9uUmVmPzogRWxlbWVudFJlZjxIVE1MQnV0dG9uRWxlbWVudD47XG5cbiAgcHJpdmF0ZSBwcmV2aW91c0ZvY3VzZWRFbGVtZW50OiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1sndmlzaWJsZSddKSB7XG4gICAgICB0aGlzLmxvY2tCb2R5KHRoaXMudmlzaWJsZSk7XG4gICAgICB0aGlzLmhhbmRsZVZpc2liaWxpdHlDaGFuZ2UoY2hhbmdlc1sndmlzaWJsZSddLnByZXZpb3VzVmFsdWUsIGNoYW5nZXNbJ3Zpc2libGUnXS5jdXJyZW50VmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMubG9ja0JvZHkoZmFsc2UpO1xuICB9XG5cbiAgb25CYWNrZHJvcENsaWNrKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnZpc2libGUgJiYgdGhpcy5jbG9zZU9uQmFja2Ryb3ApIHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9XG4gIH1cblxuICBjbG9zZSgpOiB2b2lkIHtcbiAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcbiAgICB0aGlzLmxvY2tCb2R5KGZhbHNlKTtcbiAgICBxdWV1ZU1pY3JvdGFzaygoKSA9PiByZXN0b3JlRm9jdXModGhpcy5wcmV2aW91c0ZvY3VzZWRFbGVtZW50KSk7XG4gICAgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQoZmFsc2UpO1xuICB9XG5cbiAgZ2V0IHNpZGViYXJXaWR0aCgpOiBzdHJpbmcge1xuICAgIGlmICh0eXBlb2YgdGhpcy53aWR0aCA9PT0gJ251bWJlcicpIHtcbiAgICAgIHJldHVybiBgJHt0aGlzLndpZHRofSVgO1xuICAgIH1cblxuICAgIGlmICh0aGlzLndpZHRoKSB7XG4gICAgICByZXR1cm4gU3RyaW5nKHRoaXMud2lkdGgpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmxhcmdlU2l6ZWQgPyBTSURFQkFSX0RFRkFVTFRfV0lEVEggOiBTSURFQkFSX0NPTVBBQ1RfV0lEVEg7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duJywgWyckZXZlbnQnXSlcbiAgb25Eb2N1bWVudEtleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMudmlzaWJsZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChldmVudC5rZXkgPT09ICdFc2NhcGUnKSB7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ1RhYicgJiYgdGhpcy5wYW5lbFJlZj8ubmF0aXZlRWxlbWVudCkge1xuICAgICAgdHJhcEZvY3VzSW5Db250YWluZXIoXG4gICAgICAgIGV2ZW50LFxuICAgICAgICB0aGlzLnBhbmVsUmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQgfCBudWxsLFxuICAgICAgICB0aGlzLmNsb3NlQnV0dG9uUmVmPy5uYXRpdmVFbGVtZW50ID8/IHRoaXMucGFuZWxSZWYubmF0aXZlRWxlbWVudFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGxvY2tCb2R5KGxvY2s6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAodHlwZW9mIGRvY3VtZW50ID09PSAndW5kZWZpbmVkJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnRvZ2dsZSgnc2RjLWJvZHktbG9ja2VkJywgISFsb2NrKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlVmlzaWJpbGl0eUNoYW5nZShwcmV2aW91c1ZhbHVlOiBib29sZWFuLCBjdXJyZW50VmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAoIXByZXZpb3VzVmFsdWUgJiYgY3VycmVudFZhbHVlKSB7XG4gICAgICB0aGlzLnByZXZpb3VzRm9jdXNlZEVsZW1lbnQgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50IGluc3RhbmNlb2YgSFRNTEVsZW1lbnRcbiAgICAgICAgPyBkb2N1bWVudC5hY3RpdmVFbGVtZW50XG4gICAgICAgIDogbnVsbDtcbiAgICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHRoaXMuZm9jdXNQYW5lbCgpKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAocHJldmlvdXNWYWx1ZSAmJiAhY3VycmVudFZhbHVlKSB7XG4gICAgICBxdWV1ZU1pY3JvdGFzaygoKSA9PiByZXN0b3JlRm9jdXModGhpcy5wcmV2aW91c0ZvY3VzZWRFbGVtZW50KSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmb2N1c1BhbmVsKCk6IHZvaWQge1xuICAgIGNvbnN0IHBhbmVsID0gdGhpcy5wYW5lbFJlZj8ubmF0aXZlRWxlbWVudDtcblxuICAgIGlmICghcGFuZWwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBmb2N1c0ZpcnN0RGVzY2VuZGFudChwYW5lbCwgdGhpcy5jbG9zZUJ1dHRvblJlZj8ubmF0aXZlRWxlbWVudCA/PyBwYW5lbCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJzZGMtb3ZlcmxheVwiIFtjbGFzcy5zZGMtb3ZlcmxheS0tb3Blbl09XCJ2aXNpYmxlXCIgW2F0dHIuYXJpYS1oaWRkZW5dPVwiIXZpc2libGVcIj5cbiAgPGRpdiBjbGFzcz1cInNkYy1iYWNrZHJvcFwiIChjbGljayk9XCJvbkJhY2tkcm9wQ2xpY2soKVwiPjwvZGl2PlxuXG4gIDxzZWN0aW9uXG4gICAgI3BhbmVsUmVmXG4gICAgY2xhc3M9XCJzZGMtc2lkZWJhci1wYW5lbFwiXG4gICAgW2NsYXNzLnNkYy1zaWRlYmFyLXBhbmVsLS1vcGVuXT1cInZpc2libGVcIlxuICAgIHJvbGU9XCJkaWFsb2dcIlxuICAgIGFyaWEtbW9kYWw9XCJ0cnVlXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiJ3NpZGViYXItaGVhZGVyJ1wiXG4gICAgW3N0eWxlLndpZHRoXT1cInNpZGViYXJXaWR0aFwiXG4gICAgdGFiaW5kZXg9XCItMVwiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwic2RjLXNpZGViYXItaGVhZGVyXCI+XG4gICAgICA8aDIgY2xhc3M9XCJzZGMtc2lkZWJhci10aXRsZVwiIGlkPVwic2lkZWJhci1oZWFkZXJcIj57eyBoZWFkZXIgfCB0cmFuc2xhdGUgfX08L2gyPlxuXG4gICAgICA8ZGl2IGNsYXNzPVwic2RjLXNpZGViYXItaGVhZGVyLWFjdGlvbnNcIj5cbiAgICAgICAgQGlmIChoZWFkZXJUcGwpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2RjLXNpZGViYXItaGVhZGVyLWV4dHJhXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaGVhZGVyVHBsXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKHNob3dDbG9zZSkge1xuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICNjbG9zZUJ1dHRvblJlZlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBjbGFzcz1cInNkYy1zaWRlYmFyLWNsb3NlXCJcbiAgICAgICAgICAgIChjbGljayk9XCJjbG9zZSgpXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHkuY2xvc2Vfc2lkZWJhcicgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLXRpbWVzXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJzZGMtc2lkZWJhci1jb250ZW50XCI+XG4gICAgICBAaWYgKGNvbnRlbnRUcGwpIHtcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRUcGxcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICB9XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwic2RjLXNpZGViYXItZm9vdGVyXCI+XG4gICAgICA8aHIgY2xhc3M9XCJzZGMtZm9vdGVyLWRpdmlkZXJcIiAvPlxuICAgICAgPGRpdiBjbGFzcz1cInNkYy1mb290ZXItYWN0aW9uc1wiPlxuICAgICAgICBAaWYgKGZvb3RlclRwbCkge1xuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmb290ZXJUcGxcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvc2VjdGlvbj5cbjwvZGl2PlxuIl19
|
|
130
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL3NpZGViYXIvc2lkZWJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL3NpZGViYXIvc2lkZWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUVaLFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFFTixXQUFXLEVBQ1gsU0FBUyxFQUNULGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLDBCQUEwQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDOUgsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7O0FBV3ZHLE1BQU0sT0FBTyxnQkFBZ0I7SUFDQSxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ2hCLE1BQU0sR0FBRywwQkFBMEIsQ0FBQztJQUN0RCxVQUFVLEdBQUcsSUFBSSxDQUFDO0lBQ2xCLGVBQWUsR0FBRyxJQUFJLENBQUM7SUFDdkIsS0FBSyxHQUFvQixxQkFBcUIsQ0FBQztJQUMvQyxTQUFTLEdBQUcsSUFBSSxDQUFDO0lBRWhCLGFBQWEsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO0lBRVAsU0FBUyxDQUF3QjtJQUNoQyxVQUFVLENBQXdCO0lBQ25DLFNBQVMsQ0FBd0I7SUFDekQsUUFBUSxDQUEyQjtJQUM3QixjQUFjLENBQWlDO0lBRXBFLHNCQUFzQixH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QUFJLEVBQUUsV0FBVyxFQUFFO2dCQUNDLFNBQVM7c0JBQXZELFlBQVk7dUJBQUMsUUFBUSxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtnQkFDdEIsUUFBUTtzQkFBOUIsU0FBUzt1QkFBQyxVQUFVO2dCQUNRLGNBQWM7c0JBQTFDLFNBQVM7dUJBQUMsZ0JBQWdCO2dCQXlDM0IsaUJBQWlCO3NCQURoQixZQUFZO3VCQUFDLGtCQUFrQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG5pbXBvcnQgeyBTSURFQkFSX0NPTVBBQ1RfV0lEVEgsIFNJREVCQVJfREVGQVVMVF9IRUFERVJfS0VZLCBTSURFQkFSX0RFRkFVTFRfV0lEVEggfSBmcm9tICcuLi8uLi9jb3JlL2NvbnN0YW50cy9zaWRlYmFyLmNvbnN0JztcbmltcG9ydCB7IGZvY3VzRmlyc3REZXNjZW5kYW50LCByZXN0b3JlRm9jdXMsIHRyYXBGb2N1c0luQ29udGFpbmVyIH0gZnJvbSAnLi4vLi4vY29yZS91dGlscy9mb2N1cy51dGlsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2RjLXNpZGViYXInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vc2lkZWJhci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NpZGViYXIuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLkVtdWxhdGVkXG59KVxuZXhwb3J0IGNsYXNzIFNpZGViYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIHZpc2libGUgPSBmYWxzZTtcbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgaGVhZGVyID0gU0lERUJBUl9ERUZBVUxUX0hFQURFUl9LRVk7XG4gIEBJbnB1dCgpIGxhcmdlU2l6ZWQgPSB0cnVlO1xuICBASW5wdXQoKSBjbG9zZU9uQmFja2Ryb3AgPSB0cnVlO1xuICBASW5wdXQoKSB3aWR0aDogc3RyaW5nIHwgbnVtYmVyID0gU0lERUJBUl9ERUZBVUxUX1dJRFRIO1xuICBASW5wdXQoKSBzaG93Q2xvc2UgPSB0cnVlO1xuXG4gIEBPdXRwdXQoKSB2aXNpYmxlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIEBDb250ZW50Q2hpbGQoJ2hlYWRlcicsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSkgaGVhZGVyVHBsPzogVGVtcGxhdGVSZWY8dW5rbm93bj47XG4gIEBDb250ZW50Q2hpbGQoJ2NvbnRlbnQnLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pIGNvbnRlbnRUcGw/OiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcbiAgQENvbnRlbnRDaGlsZCgnZm9vdGVyJywgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KSBmb290ZXJUcGw/OiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcbiAgQFZpZXdDaGlsZCgncGFuZWxSZWYnKSBwYW5lbFJlZj86IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuICBAVmlld0NoaWxkKCdjbG9zZUJ1dHRvblJlZicpIGNsb3NlQnV0dG9uUmVmPzogRWxlbWVudFJlZjxIVE1MQnV0dG9uRWxlbWVudD47XG5cbiAgcHJpdmF0ZSBwcmV2aW91c0ZvY3VzZWRFbGVtZW50OiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1sndmlzaWJsZSddKSB7XG4gICAgICB0aGlzLmxvY2tCb2R5KHRoaXMudmlzaWJsZSk7XG4gICAgICB0aGlzLmhhbmRsZVZpc2liaWxpdHlDaGFuZ2UoY2hhbmdlc1sndmlzaWJsZSddLnByZXZpb3VzVmFsdWUsIGNoYW5nZXNbJ3Zpc2libGUnXS5jdXJyZW50VmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMubG9ja0JvZHkoZmFsc2UpO1xuICB9XG5cbiAgb25CYWNrZHJvcENsaWNrKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnZpc2libGUgJiYgdGhpcy5jbG9zZU9uQmFja2Ryb3ApIHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9XG4gIH1cblxuICBjbG9zZSgpOiB2b2lkIHtcbiAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcbiAgICB0aGlzLmxvY2tCb2R5KGZhbHNlKTtcbiAgICBxdWV1ZU1pY3JvdGFzaygoKSA9PiByZXN0b3JlRm9jdXModGhpcy5wcmV2aW91c0ZvY3VzZWRFbGVtZW50KSk7XG4gICAgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQoZmFsc2UpO1xuICB9XG5cbiAgZ2V0IHNpZGViYXJXaWR0aCgpOiBzdHJpbmcge1xuICAgIGlmICh0eXBlb2YgdGhpcy53aWR0aCA9PT0gJ251bWJlcicpIHtcbiAgICAgIHJldHVybiBgJHt0aGlzLndpZHRofSVgO1xuICAgIH1cblxuICAgIGlmICh0aGlzLndpZHRoKSB7XG4gICAgICByZXR1cm4gU3RyaW5nKHRoaXMud2lkdGgpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmxhcmdlU2l6ZWQgPyBTSURFQkFSX0RFRkFVTFRfV0lEVEggOiBTSURFQkFSX0NPTVBBQ1RfV0lEVEg7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duJywgWyckZXZlbnQnXSlcbiAgb25Eb2N1bWVudEtleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMudmlzaWJsZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChldmVudC5rZXkgPT09ICdFc2NhcGUnKSB7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ1RhYicgJiYgdGhpcy5wYW5lbFJlZj8ubmF0aXZlRWxlbWVudCkge1xuICAgICAgdHJhcEZvY3VzSW5Db250YWluZXIoXG4gICAgICAgIGV2ZW50LFxuICAgICAgICB0aGlzLnBhbmVsUmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQgfCBudWxsLFxuICAgICAgICB0aGlzLmNsb3NlQnV0dG9uUmVmPy5uYXRpdmVFbGVtZW50ID8/IHRoaXMucGFuZWxSZWYubmF0aXZlRWxlbWVudFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGxvY2tCb2R5KGxvY2s6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAodHlwZW9mIGRvY3VtZW50ID09PSAndW5kZWZpbmVkJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnRvZ2dsZSgnc2RjLWJvZHktbG9ja2VkJywgISFsb2NrKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlVmlzaWJpbGl0eUNoYW5nZShwcmV2aW91c1ZhbHVlOiBib29sZWFuLCBjdXJyZW50VmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAoIXByZXZpb3VzVmFsdWUgJiYgY3VycmVudFZhbHVlKSB7XG4gICAgICB0aGlzLnByZXZpb3VzRm9jdXNlZEVsZW1lbnQgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50IGluc3RhbmNlb2YgSFRNTEVsZW1lbnRcbiAgICAgICAgPyBkb2N1bWVudC5hY3RpdmVFbGVtZW50XG4gICAgICAgIDogbnVsbDtcbiAgICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHRoaXMuZm9jdXNQYW5lbCgpKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAocHJldmlvdXNWYWx1ZSAmJiAhY3VycmVudFZhbHVlKSB7XG4gICAgICBxdWV1ZU1pY3JvdGFzaygoKSA9PiByZXN0b3JlRm9jdXModGhpcy5wcmV2aW91c0ZvY3VzZWRFbGVtZW50KSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmb2N1c1BhbmVsKCk6IHZvaWQge1xuICAgIGNvbnN0IHBhbmVsID0gdGhpcy5wYW5lbFJlZj8ubmF0aXZlRWxlbWVudDtcblxuICAgIGlmICghcGFuZWwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBmb2N1c0ZpcnN0RGVzY2VuZGFudChwYW5lbCwgdGhpcy5jbG9zZUJ1dHRvblJlZj8ubmF0aXZlRWxlbWVudCA/PyBwYW5lbCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJzZGMtb3ZlcmxheVwiIFtjbGFzcy5zZGMtb3ZlcmxheS0tb3Blbl09XCJ2aXNpYmxlXCIgW2F0dHIuYXJpYS1oaWRkZW5dPVwiIXZpc2libGVcIj5cbiAgPGRpdiBjbGFzcz1cInNkYy1iYWNrZHJvcFwiIChjbGljayk9XCJvbkJhY2tkcm9wQ2xpY2soKVwiPjwvZGl2PlxuXG4gIDxzZWN0aW9uXG4gICAgI3BhbmVsUmVmXG4gICAgY2xhc3M9XCJzZGMtc2lkZWJhci1wYW5lbFwiXG4gICAgW2NsYXNzLnNkYy1zaWRlYmFyLXBhbmVsLS1vcGVuXT1cInZpc2libGVcIlxuICAgIHJvbGU9XCJkaWFsb2dcIlxuICAgIGFyaWEtbW9kYWw9XCJ0cnVlXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiJ3NpZGViYXItaGVhZGVyJ1wiXG4gICAgW3N0eWxlLndpZHRoXT1cInNpZGViYXJXaWR0aFwiXG4gICAgdGFiaW5kZXg9XCItMVwiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwic2RjLXNpZGViYXItaGVhZGVyXCI+XG4gICAgICA8aDIgY2xhc3M9XCJzZGMtc2lkZWJhci10aXRsZVwiIGlkPVwic2lkZWJhci1oZWFkZXJcIj57eyBoZWFkZXIgfCB0cmFuc2xhdGUgfX08L2gyPlxuXG4gICAgICA8ZGl2IGNsYXNzPVwic2RjLXNpZGViYXItaGVhZGVyLWFjdGlvbnNcIj5cbiAgICAgICAgQGlmIChoZWFkZXJUcGwpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2RjLXNpZGViYXItaGVhZGVyLWV4dHJhXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaGVhZGVyVHBsXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKHNob3dDbG9zZSkge1xuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICNjbG9zZUJ1dHRvblJlZlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBjbGFzcz1cInNkYy1zaWRlYmFyLWNsb3NlXCJcbiAgICAgICAgICAgIChjbGljayk9XCJjbG9zZSgpXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHlfY2xvc2Vfc2lkZWJhcicgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLXRpbWVzXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJzZGMtc2lkZWJhci1jb250ZW50XCI+XG4gICAgICBAaWYgKGNvbnRlbnRUcGwpIHtcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRUcGxcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICB9XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwic2RjLXNpZGViYXItZm9vdGVyXCI+XG4gICAgICA8aHIgY2xhc3M9XCJzZGMtZm9vdGVyLWRpdmlkZXJcIiAvPlxuICAgICAgPGRpdiBjbGFzcz1cInNkYy1mb290ZXItYWN0aW9uc1wiPlxuICAgICAgICBAaWYgKGZvb3RlclRwbCkge1xuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmb290ZXJUcGxcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvc2VjdGlvbj5cbjwvZGl2PlxuIl19
|
|
@@ -95,10 +95,10 @@ export class SliderComponent {
|
|
|
95
95
|
return resolveTranslatableText(this.translate, this.ariaLabel);
|
|
96
96
|
}
|
|
97
97
|
get rangeAriaLabelStart() {
|
|
98
|
-
return `${this.resolvedAriaLabel} - ${resolveTranslatableText(this.translate, 'platform.datacore.
|
|
98
|
+
return `${this.resolvedAriaLabel} - ${resolveTranslatableText(this.translate, 'platform.datacore.accessibility_range_start')}`;
|
|
99
99
|
}
|
|
100
100
|
get rangeAriaLabelEnd() {
|
|
101
|
-
return `${this.resolvedAriaLabel} - ${resolveTranslatableText(this.translate, 'platform.datacore.
|
|
101
|
+
return `${this.resolvedAriaLabel} - ${resolveTranslatableText(this.translate, 'platform.datacore.accessibility_range_end')}`;
|
|
102
102
|
}
|
|
103
103
|
get startThumbAriaLabel() {
|
|
104
104
|
return `${this.rangeAriaLabelStart} - ${this.startValue}`;
|
|
@@ -325,4 +325,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
325
325
|
}], valueChange: [{
|
|
326
326
|
type: Output
|
|
327
327
|
}] } });
|
|
328
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9zcmMvZmVhdHVyZXMvc2xpZGVyL3NsaWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL3NsaWRlci9zbGlkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFFTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLFVBQVUsRUFDVixNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV4RSxPQUFPLEVBQ0wseUJBQXlCLEVBQ3pCLGtCQUFrQixFQUNsQixrQkFBa0IsRUFDbEIsbUJBQW1CLEVBQ3BCLE1BQU0sbUNBQW1DLENBQUM7QUFFM0MsT0FBTyxFQUFFLCtCQUErQixFQUFFLHVCQUF1QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7OztBQW9CckUsTUFBTSxPQUFPLGVBQWU7SUFDVCxTQUFTLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDckMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ2hDLFdBQVcsR0FBRyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUV2QyxRQUFRLENBQTJC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QUFXO3NCQUFuQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFFSSxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBmb3J3YXJkUmVmLFxuICBpbmplY3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUsIFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuaW1wb3J0IHtcbiAgU0xJREVSX0RFRkFVTFRfQVJJQV9MQUJFTCxcbiAgU0xJREVSX0RFRkFVTFRfTUFYLFxuICBTTElERVJfREVGQVVMVF9NSU4sXG4gIFNMSURFUl9ERUZBVUxUX1NURVBcbn0gZnJvbSAnLi4vLi4vY29yZS9jb25zdGFudHMvc2xpZGVyLmNvbnN0JztcbmltcG9ydCB0eXBlIHsgU2xpZGVyVHJhbnNsYXRlUGFyYW1zLCBTbGlkZXJWYWx1ZSB9IGZyb20gJy4uLy4uL2NvcmUvdHlwZXMvc2xpZGVyLnR5cGUnO1xuaW1wb3J0IHsgcmVzb2x2ZU51bGxhYmxlVHJhbnNsYXRhYmxlVGV4dCwgcmVzb2x2ZVRyYW5zbGF0YWJsZVRleHQgfSBmcm9tICcuLi8uLi9jb3JlL3V0aWxzL2kxOG4udXRpbCc7XG5pbXBvcnQgeyBuZXh0U2VxdWVudGlhbElkIH0gZnJvbSAnLi4vLi4vY29yZS91dGlscy9pZC51dGlsJztcbmltcG9ydCB7IEluZm9TaWduQ29tcG9uZW50IH0gZnJvbSAnLi4vaW5mby1zaWduL2luZm8tc2lnbi5jb21wb25lbnQnO1xuXG50eXBlIFNsaWRlclRodW1iID0gJ3N0YXJ0JyB8ICdlbmQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzZGMtc2xpZGVyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgVHJhbnNsYXRlTW9kdWxlLCBJbmZvU2lnbkNvbXBvbmVudF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9zbGlkZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vc2xpZGVyLmNvbXBvbmVudC5zY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLkVtdWxhdGVkLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNsaWRlckNvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBTbGlkZXJDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZSA9IGluamVjdChUcmFuc2xhdGVTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICBwcml2YXRlIHJlYWRvbmx5IGdlbmVyYXRlZElkID0gbmV4dFNlcXVlbnRpYWxJZCgnc2RjLXNsaWRlcicpO1xuXG4gIEBWaWV3Q2hpbGQoJ3RyYWNrUmVmJykgdHJhY2tSZWY/OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICBASW5wdXQoKSBpZCA9IHRoaXMuZ2VuZXJhdGVkSWQ7XG4gIEBJbnB1dCgpIGxhYmVsPzogc3RyaW5nO1xuICBASW5wdXQoKSBsYWJlbFBhcmFtcz86IFNsaWRlclRyYW5zbGF0ZVBhcmFtcztcbiAgQElucHV0KCkgaW5mb1Rvb2x0aXA/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGluZm9Ub29sdGlwUGFyYW1zPzogU2xpZGVyVHJhbnNsYXRlUGFyYW1zO1xuICBASW5wdXQoKSBhcmlhTGFiZWwgPSBTTElERVJfREVGQVVMVF9BUklBX0xBQkVMO1xuICBASW5wdXQoKSBtdWx0aXBsZSA9IGZhbHNlO1xuICBASW5wdXQoKSB2YWx1ZTogU2xpZGVyVmFsdWUgPSAwO1xuICBASW5wdXQoKSBzdGVwID0gU0xJREVSX0RFRkFVTFRfU1RFUDtcbiAgQElucHV0KCkgaGlkZGVuVGh1bWIgPSBmYWxzZTtcbiAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgbWluID0gU0xJREVSX0RFRkFVTFRfTUlOO1xuICBASW5wdXQoKSBtYXggPSBTTElERVJfREVGQVVMVF9NQVg7XG4gIEBJbnB1dCgpIG1pblZhbHVlTGFiZWw/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIG1pblZhbHVlTGFiZWxQYXJhbXM/OiBTbGlkZXJUcmFuc2xhdGVQYXJhbXM7XG4gIEBJbnB1dCgpIG1heFZhbHVlTGFiZWw/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIG1heFZhbHVlTGFiZWxQYXJhbXM/OiBTbGlkZXJUcmFuc2xhdGVQYXJhbXM7XG5cbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxTbGlkZXJWYWx1ZT4oKTtcblxuICBkcmFnZ2luZ1RodW1iOiBTbGlkZXJUaHVtYiB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgb25DaGFuZ2U6ICh2YWx1ZTogU2xpZGVyVmFsdWUpID0+IHZvaWQgPSAoKSA9PiB7fTtcbiAgcHJpdmF0ZSBvblRvdWNoZWQ6ICgpID0+IHZvaWQgPSAoKSA9PiB7fTtcblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2hvdWxkTm9ybWFsaXplVmFsdWUoY2hhbmdlcykpIHtcbiAgICAgIHRoaXMudmFsdWUgPSB0aGlzLm5vcm1hbGl6ZVZhbHVlKHRoaXMudmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGV0YWNoRHJhZ0xpc3RlbmVycygpO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogU2xpZGVyVmFsdWUpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gdGhpcy5ub3JtYWxpemVWYWx1ZSh2YWx1ZSk7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IFNsaWRlclZhbHVlKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBnZXQgbGFiZWxUZXh0KCk6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiByZXNvbHZlTnVsbGFibGVUcmFuc2xhdGFibGVUZXh0KHRoaXMudHJhbnNsYXRlLCB0aGlzLmxhYmVsLCAnJywgdGhpcy5sYWJlbFBhcmFtcyk7XG4gIH1cblxuICBnZXQgaW5mb1Rvb2x0aXBUZXh0KCk6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiByZXNvbHZlTnVsbGFibGVUcmFuc2xhdGFibGVUZXh0KHRoaXMudHJhbnNsYXRlLCB0aGlzLmluZm9Ub29sdGlwLCAnJywgdGhpcy5pbmZvVG9vbHRpcFBhcmFtcyk7XG4gIH1cblxuICBnZXQgbWluTGFiZWxUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHJlc29sdmVUcmFuc2xhdGFibGVUZXh0KHRoaXMudHJhbnNsYXRlLCB0aGlzLm1pblZhbHVlTGFiZWwsIFN0cmluZyh0aGlzLm1pbiksIHRoaXMubWluVmFsdWVMYWJlbFBhcmFtcyk7XG4gIH1cblxuICBnZXQgbWF4TGFiZWxUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHJlc29sdmVUcmFuc2xhdGFibGVUZXh0KHRoaXMudHJhbnNsYXRlLCB0aGlzLm1heFZhbHVlTGFiZWwsIFN0cmluZyh0aGlzLm1heCksIHRoaXMubWF4VmFsdWVMYWJlbFBhcmFtcyk7XG4gIH1cblxuICBnZXQgc3RhcnRWYWx1ZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLm11bHRpcGxlICYmIEFycmF5LmlzQXJyYXkodGhpcy52YWx1ZSkgPyB0aGlzLnZhbHVlWzBdIDogdGhpcy5zaW5nbGVWYWx1ZTtcbiAgfVxuXG4gIGdldCBlbmRWYWx1ZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLm11bHRpcGxlICYmIEFycmF5LmlzQXJyYXkodGhpcy52YWx1ZSkgPyB0aGlzLnZhbHVlWzFdIDogdGhpcy5zaW5nbGVWYWx1ZTtcbiAgfVxuXG4gIGdldCBzaW5nbGVWYWx1ZSgpOiBudW1iZXIge1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KHRoaXMudmFsdWUpID8gdGhpcy52YWx1ZVsxXSA6IE51bWJlcih0aGlzLnZhbHVlID8/IHRoaXMubWluKTtcbiAgfVxuXG4gIGdldCBwcm9ncmVzc0xlZnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5tdWx0aXBsZSA/IHRoaXMudG9QZXJjZW50YWdlKHRoaXMuc3RhcnRWYWx1ZSkgOiAwO1xuICB9XG5cbiAgZ2V0IHByb2dyZXNzV2lkdGgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5tdWx0aXBsZVxuICAgICAgPyB0aGlzLnRvUGVyY2VudGFnZSh0aGlzLmVuZFZhbHVlKSAtIHRoaXMudG9QZXJjZW50YWdlKHRoaXMuc3RhcnRWYWx1ZSlcbiAgICAgIDogdGhpcy50b1BlcmNlbnRhZ2UodGhpcy5lbmRWYWx1ZSk7XG4gIH1cblxuICBnZXQgc3RhcnRUaHVtYlN0eWxlKCk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4ge1xuICAgIHJldHVybiB7IGxlZnQ6IGAke3RoaXMudG9QZXJjZW50YWdlKHRoaXMuc3RhcnRWYWx1ZSl9JWAgfTtcbiAgfVxuXG4gIGdldCBlbmRUaHVtYlN0eWxlKCk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4ge1xuICAgIHJldHVybiB7IGxlZnQ6IGAke3RoaXMudG9QZXJjZW50YWdlKHRoaXMuZW5kVmFsdWUpfSVgIH07XG4gIH1cblxuICBnZXQgcmVzb2x2ZWRBcmlhTGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gcmVzb2x2ZVRyYW5zbGF0YWJsZVRleHQodGhpcy50cmFuc2xhdGUsIHRoaXMuYXJpYUxhYmVsKTtcbiAgfVxuXG4gIGdldCByYW5nZUFyaWFMYWJlbFN0YXJ0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RoaXMucmVzb2x2ZWRBcmlhTGFiZWx9IC0gJHtyZXNvbHZlVHJhbnNsYXRhYmxlVGV4dCh0aGlzLnRyYW5zbGF0ZSwgJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHkucmFuZ2Vfc3RhcnQnKX1gO1xuICB9XG5cbiAgZ2V0IHJhbmdlQXJpYUxhYmVsRW5kKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RoaXMucmVzb2x2ZWRBcmlhTGFiZWx9IC0gJHtyZXNvbHZlVHJhbnNsYXRhYmxlVGV4dCh0aGlzLnRyYW5zbGF0ZSwgJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHkucmFuZ2VfZW5kJyl9YDtcbiAgfVxuXG4gIGdldCBzdGFydFRodW1iQXJpYUxhYmVsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RoaXMucmFuZ2VBcmlhTGFiZWxTdGFydH0gLSAke3RoaXMuc3RhcnRWYWx1ZX1gO1xuICB9XG5cbiAgZ2V0IGVuZFRodW1iQXJpYUxhYmVsKCk6IHN0cmluZyB7XG4gICAgY29uc3QgbGFiZWwgPSB0aGlzLm11bHRpcGxlID8gdGhpcy5yYW5nZUFyaWFMYWJlbEVuZCA6IHRoaXMucmVzb2x2ZWRBcmlhTGFiZWw7XG4gICAgcmV0dXJuIGAke2xhYmVsfSAtICR7dGhpcy5lbmRWYWx1ZX1gO1xuICB9XG5cbiAgb25UcmFja0NsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBuZXh0VmFsdWUgPSB0aGlzLnZhbHVlRnJvbUNsaWVudFgoZXZlbnQuY2xpZW50WCk7XG5cbiAgICBpZiAoIXRoaXMubXVsdGlwbGUpIHtcbiAgICAgIHRoaXMuY29tbWl0KG5leHRWYWx1ZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGlzdGFuY2VUb1N0YXJ0ID0gTWF0aC5hYnMobmV4dFZhbHVlIC0gdGhpcy5zdGFydFZhbHVlKTtcbiAgICBjb25zdCBkaXN0YW5jZVRvRW5kID0gTWF0aC5hYnMobmV4dFZhbHVlIC0gdGhpcy5lbmRWYWx1ZSk7XG5cbiAgICBpZiAoZGlzdGFuY2VUb1N0YXJ0IDw9IGRpc3RhbmNlVG9FbmQpIHtcbiAgICAgIHRoaXMuY29tbWl0KFtNYXRoLm1pbihuZXh0VmFsdWUsIHRoaXMuZW5kVmFsdWUpLCB0aGlzLmVuZFZhbHVlXSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5jb21taXQoW3RoaXMuc3RhcnRWYWx1ZSwgTWF0aC5tYXgobmV4dFZhbHVlLCB0aGlzLnN0YXJ0VmFsdWUpXSk7XG4gIH1cblxuICBvblRyYWNrS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbmV4dFZhbHVlID0gdGhpcy5yZXNvbHZlVHJhY2tLZXlib2FyZFZhbHVlKGV2ZW50KTtcblxuICAgIGlmIChuZXh0VmFsdWUgPT09IG51bGwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgaWYgKCF0aGlzLm11bHRpcGxlKSB7XG4gICAgICB0aGlzLmNvbW1pdChuZXh0VmFsdWUpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuY29tbWl0KFt0aGlzLnN0YXJ0VmFsdWUsIE1hdGgubWF4KG5leHRWYWx1ZSwgdGhpcy5zdGFydFZhbHVlKV0pO1xuICB9XG5cbiAgb25UaHVtYk1vdXNlRG93bihldmVudDogTW91c2VFdmVudCwgdGh1bWI6IFNsaWRlclRodW1iKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuZHJhZ2dpbmdUaHVtYiA9IHRodW1iO1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHRoaXMuaGFuZGxlRHJhZ01vdmUpO1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCB0aGlzLmhhbmRsZURyYWdFbmQpO1xuICB9XG5cbiAgb25UaHVtYktleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQsIHRodW1iOiBTbGlkZXJUaHVtYik6IHZvaWQge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgaW5jcmVtZW50ID0gZXZlbnQua2V5ID09PSAnQXJyb3dSaWdodCcgfHwgZXZlbnQua2V5ID09PSAnQXJyb3dVcCc7XG4gICAgY29uc3QgZGVjcmVtZW50ID0gZXZlbnQua2V5ID09PSAnQXJyb3dMZWZ0JyB8fCBldmVudC5rZXkgPT09ICdBcnJvd0Rvd24nO1xuXG4gICAgaWYgKCFpbmNyZW1lbnQgJiYgIWRlY3JlbWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgY29uc3QgZGVsdGEgPSBpbmNyZW1lbnQgPyB0aGlzLnN0ZXAgOiAtdGhpcy5zdGVwO1xuICAgIGNvbnN0IG5leHRWYWx1ZSA9IHRoaXMuc25hcCh0aGlzLmN1cnJlbnRUaHVtYlZhbHVlKHRodW1iKSArIGRlbHRhKTtcblxuICAgIGlmICghdGhpcy5tdWx0aXBsZSkge1xuICAgICAgdGhpcy5jb21taXQobmV4dFZhbHVlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGh1bWIgPT09ICdzdGFydCcpIHtcbiAgICAgIHRoaXMuY29tbWl0KFtNYXRoLm1pbihuZXh0VmFsdWUsIHRoaXMuZW5kVmFsdWUpLCB0aGlzLmVuZFZhbHVlXSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5jb21taXQoW3RoaXMuc3RhcnRWYWx1ZSwgTWF0aC5tYXgobmV4dFZhbHVlLCB0aGlzLnN0YXJ0VmFsdWUpXSk7XG4gIH1cblxuICBtYXJrVG91Y2hlZCgpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBoYW5kbGVEcmFnTW92ZSA9IChldmVudDogTW91c2VFdmVudCk6IHZvaWQgPT4ge1xuICAgIGlmICghdGhpcy5kcmFnZ2luZ1RodW1iKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbmV4dFZhbHVlID0gdGhpcy52YWx1ZUZyb21DbGllbnRYKGV2ZW50LmNsaWVudFgpO1xuXG4gICAgaWYgKCF0aGlzLm11bHRpcGxlKSB7XG4gICAgICB0aGlzLmNvbW1pdChuZXh0VmFsdWUsIGZhbHNlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5kcmFnZ2luZ1RodW1iID09PSAnc3RhcnQnKSB7XG4gICAgICB0aGlzLmNvbW1pdChbTWF0aC5taW4obmV4dFZhbHVlLCB0aGlzLmVuZFZhbHVlKSwgdGhpcy5lbmRWYWx1ZV0sIGZhbHNlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmNvbW1pdChbdGhpcy5zdGFydFZhbHVlLCBNYXRoLm1heChuZXh0VmFsdWUsIHRoaXMuc3RhcnRWYWx1ZSldLCBmYWxzZSk7XG4gIH07XG5cbiAgcHJpdmF0ZSByZWFkb25seSBoYW5kbGVEcmFnRW5kID0gKCk6IHZvaWQgPT4ge1xuICAgIHRoaXMuZHJhZ2dpbmdUaHVtYiA9IG51bGw7XG4gICAgdGhpcy5kZXRhY2hEcmFnTGlzdGVuZXJzKCk7XG4gICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgfTtcblxuICBwcml2YXRlIGRldGFjaERyYWdMaXN0ZW5lcnMoKTogdm9pZCB7XG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgdGhpcy5oYW5kbGVEcmFnTW92ZSk7XG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIHRoaXMuaGFuZGxlRHJhZ0VuZCk7XG4gIH1cblxuICBwcml2YXRlIGNvbW1pdCh2YWx1ZTogU2xpZGVyVmFsdWUsIGVtaXRUb3VjaGVkID0gdHJ1ZSk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB0aGlzLm5vcm1hbGl6ZVZhbHVlKHZhbHVlKTtcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcblxuICAgIGlmIChlbWl0VG91Y2hlZCkge1xuICAgICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICB9XG5cbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHByaXZhdGUgY3VycmVudFRodW1iVmFsdWUodGh1bWI6IFNsaWRlclRodW1iKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGh1bWIgPT09ICdzdGFydCcgPyB0aGlzLnN0YXJ0VmFsdWUgOiB0aGlzLmVuZFZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBzaG91bGROb3JtYWxpemVWYWx1ZShjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIFsnbWluJywgJ21heCcsICdzdGVwJywgJ211bHRpcGxlJywgJ3ZhbHVlJ10uc29tZSgoa2V5KSA9PiBrZXkgaW4gY2hhbmdlcyk7XG4gIH1cblxuICBwcml2YXRlIHJlc29sdmVUcmFja0tleWJvYXJkVmFsdWUoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiBudW1iZXIgfCBudWxsIHtcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnSG9tZScpIHtcbiAgICAgIHJldHVybiB0aGlzLm1pbjtcbiAgICB9XG5cbiAgICBpZiAoZXZlbnQua2V5ID09PSAnRW5kJykge1xuICAgICAgcmV0dXJuIHRoaXMubWF4O1xuICAgIH1cblxuICAgIGlmIChldmVudC5rZXkgPT09ICdFbnRlcicgfHwgZXZlbnQua2V5ID09PSAnICcpIHtcbiAgICAgIHJldHVybiB0aGlzLm11bHRpcGxlID8gdGhpcy5lbmRWYWx1ZSA6IHRoaXMuc2luZ2xlVmFsdWU7XG4gICAgfVxuXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93UmlnaHQnIHx8IGV2ZW50LmtleSA9PT0gJ0Fycm93VXAnKSB7XG4gICAgICByZXR1cm4gdGhpcy5zbmFwKHRoaXMuZW5kVmFsdWUgKyB0aGlzLnN0ZXApO1xuICAgIH1cblxuICAgIGlmIChldmVudC5rZXkgPT09ICdBcnJvd0xlZnQnIHx8IGV2ZW50LmtleSA9PT0gJ0Fycm93RG93bicpIHtcbiAgICAgIHJldHVybiB0aGlzLnNuYXAodGhpcy5lbmRWYWx1ZSAtIHRoaXMuc3RlcCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBwcml2YXRlIG5vcm1hbGl6ZVZhbHVlKHZhbHVlOiBTbGlkZXJWYWx1ZSk6IFNsaWRlclZhbHVlIHtcbiAgICBpZiAoIXRoaXMubXVsdGlwbGUpIHtcbiAgICAgIHJldHVybiB0aGlzLmNsYW1wKHRoaXMuc25hcChBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlWzFdIDogdmFsdWUpKTtcbiAgICB9XG5cbiAgICBjb25zdCByYXcgPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW3RoaXMubWluLCBOdW1iZXIodmFsdWUgPz8gdGhpcy5taW4pXTtcbiAgICBjb25zdCBzdGFydCA9IHRoaXMuY2xhbXAodGhpcy5zbmFwKE1hdGgubWluKHJhd1swXSwgcmF3WzFdKSkpO1xuICAgIGNvbnN0IGVuZCA9IHRoaXMuY2xhbXAodGhpcy5zbmFwKE1hdGgubWF4KHJhd1swXSwgcmF3WzFdKSkpO1xuICAgIHJldHVybiBbc3RhcnQsIGVuZF07XG4gIH1cblxuICBwcml2YXRlIGNsYW1wKHZhbHVlOiBudW1iZXIpOiBudW1iZXIge1xuICAgIHJldHVybiBNYXRoLm1pbih0aGlzLm1heCwgTWF0aC5tYXgodGhpcy5taW4sIE51bWJlci5pc0Zpbml0ZSh2YWx1ZSkgPyB2YWx1ZSA6IHRoaXMubWluKSk7XG4gIH1cblxuICBwcml2YXRlIHNuYXAodmFsdWU6IG51bWJlcik6IG51bWJlciB7XG4gICAgaWYgKCFOdW1iZXIuaXNGaW5pdGUodmFsdWUpKSB7XG4gICAgICByZXR1cm4gdGhpcy5taW47XG4gICAgfVxuXG4gICAgY29uc3Qgc2FmZVN0ZXAgPSB0aGlzLnN0ZXAgPiAwID8gdGhpcy5zdGVwIDogMTtcbiAgICBjb25zdCBub3JtYWxpemVkID0gTWF0aC5yb3VuZCgodmFsdWUgLSB0aGlzLm1pbikgLyBzYWZlU3RlcCkgKiBzYWZlU3RlcCArIHRoaXMubWluO1xuICAgIHJldHVybiBOdW1iZXIobm9ybWFsaXplZC50b0ZpeGVkKDQpKTtcbiAgfVxuXG4gIHByaXZhdGUgdmFsdWVGcm9tQ2xpZW50WChjbGllbnRYOiBudW1iZXIpOiBudW1iZXIge1xuICAgIGNvbnN0IHRyYWNrID0gdGhpcy50cmFja1JlZj8ubmF0aXZlRWxlbWVudDtcblxuICAgIGlmICghdHJhY2spIHtcbiAgICAgIHJldHVybiB0aGlzLm1pbjtcbiAgICB9XG5cbiAgICBjb25zdCByZWN0ID0gdHJhY2suZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3QgcGVyY2VudGFnZSA9IHJlY3Qud2lkdGggPiAwID8gKGNsaWVudFggLSByZWN0LmxlZnQpIC8gcmVjdC53aWR0aCA6IDA7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLm1pbiArICh0aGlzLm1heCAtIHRoaXMubWluKSAqIHBlcmNlbnRhZ2U7XG4gICAgcmV0dXJuIHRoaXMuY2xhbXAodGhpcy5zbmFwKHZhbHVlKSk7XG4gIH1cblxuICBwcml2YXRlIHRvUGVyY2VudGFnZSh2YWx1ZTogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBpZiAodGhpcy5tYXggPD0gdGhpcy5taW4pIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cblxuICAgIHJldHVybiAoKHZhbHVlIC0gdGhpcy5taW4pIC8gKHRoaXMubWF4IC0gdGhpcy5taW4pKSAqIDEwMDtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInNkYy1zbGlkZXJcIj5cbiAgQGlmIChsYWJlbFRleHQgfHwgaW5mb1Rvb2x0aXBUZXh0KSB7XG4gICAgPGRpdiBjbGFzcz1cInNkYy1zbGlkZXJfX2xhYmVsUm93XCI+XG4gICAgICBAaWYgKGxhYmVsVGV4dCkge1xuICAgICAgICA8c3BhbiBjbGFzcz1cInNkYy1zbGlkZXJfX2xhYmVsXCI+e3sgbGFiZWxUZXh0IH19PC9zcGFuPlxuICAgICAgfVxuXG4gICAgICBAaWYgKGluZm9Ub29sdGlwVGV4dCkge1xuICAgICAgICA8c2RjLWluZm8tc2lnbiBbdG9vbHRpcF09XCJpbmZvVG9vbHRpcCFcIiBbdG9vbHRpcFBhcmFtc109XCJpbmZvVG9vbHRpcFBhcmFtc1wiPjwvc2RjLWluZm8tc2lnbj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgfVxuXG4gIDxkaXYgY2xhc3M9XCJzZGMtc2xpZGVyX19zdXJmYWNlXCIgW2NsYXNzLnNkYy1zbGlkZXJfX3N1cmZhY2UtLWRpc2FibGVkXT1cImRpc2FibGVkXCI+XG4gICAgPGRpdlxuICAgICAgI3RyYWNrUmVmXG4gICAgICBjbGFzcz1cInNkYy1zbGlkZXJfX3RyYWNrXCJcbiAgICAgIFthdHRyLnRhYmluZGV4XT1cImRpc2FibGVkID8gLTEgOiAwXCJcbiAgICAgIChjbGljayk9XCJvblRyYWNrQ2xpY2soJGV2ZW50KVwiXG4gICAgICAoa2V5ZG93bik9XCJvblRyYWNrS2V5ZG93bigkZXZlbnQpXCJcbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzPVwic2RjLXNsaWRlcl9fcHJvZ3Jlc3NcIiBbc3R5bGUubGVmdC4lXT1cInByb2dyZXNzTGVmdFwiIFtzdHlsZS53aWR0aC4lXT1cInByb2dyZXNzV2lkdGhcIj48L2Rpdj5cblxuICAgICAgQGlmIChtdWx0aXBsZSkge1xuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgY2xhc3M9XCJzZGMtc2xpZGVyX190aHVtYlwiXG4gICAgICAgICAgW2NsYXNzLnNkYy1zbGlkZXJfX3RodW1iLS1oaWRkZW5dPVwiaGlkZGVuVGh1bWJcIlxuICAgICAgICAgIFtjbGFzcy5zZGMtc2xpZGVyX190aHVtYi0tZHJhZ2dpbmddPVwiZHJhZ2dpbmdUaHVtYiA9PT0gJ3N0YXJ0J1wiXG4gICAgICAgICAgW25nU3R5bGVdPVwic3RhcnRUaHVtYlN0eWxlXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInN0YXJ0VGh1bWJBcmlhTGFiZWxcIlxuICAgICAgICAgIFthdHRyLmRhdGEtdmFsdWVdPVwic3RhcnRWYWx1ZVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAobW91c2Vkb3duKT1cIm9uVGh1bWJNb3VzZURvd24oJGV2ZW50LCAnc3RhcnQnKVwiXG4gICAgICAgICAgKGtleWRvd24pPVwib25UaHVtYktleWRvd24oJGV2ZW50LCAnc3RhcnQnKVwiXG4gICAgICAgICAgKGJsdXIpPVwibWFya1RvdWNoZWQoKVwiXG4gICAgICAgID48L2J1dHRvbj5cbiAgICAgIH1cblxuICAgICAgPGJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgY2xhc3M9XCJzZGMtc2xpZGVyX190aHVtYlwiXG4gICAgICAgIFtjbGFzcy5zZGMtc2xpZGVyX190aHVtYi0taGlkZGVuXT1cImhpZGRlblRodW1iXCJcbiAgICAgICAgW2NsYXNzLnNkYy1zbGlkZXJfX3RodW1iLS1kcmFnZ2luZ109XCJkcmFnZ2luZ1RodW1iID09PSAnZW5kJ1wiXG4gICAgICAgIFtuZ1N0eWxlXT1cImVuZFRodW1iU3R5bGVcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImVuZFRodW1iQXJpYUxhYmVsXCJcbiAgICAgICAgW2F0dHIuZGF0YS12YWx1ZV09XCJlbmRWYWx1ZVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIChtb3VzZWRvd24pPVwib25UaHVtYk1vdXNlRG93bigkZXZlbnQsICdlbmQnKVwiXG4gICAgICAgIChrZXlkb3duKT1cIm9uVGh1bWJLZXlkb3duKCRldmVudCwgJ2VuZCcpXCJcbiAgICAgICAgKGJsdXIpPVwibWFya1RvdWNoZWQoKVwiXG4gICAgICA+PC9idXR0b24+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwic2RjLXNsaWRlcl9fZm9vdGVyXCI+XG4gICAgICA8c3Bhbj57eyBtaW5MYWJlbFRleHQgfX08L3NwYW4+XG4gICAgICA8c3Bhbj57eyBtYXhMYWJlbFRleHQgfX08L3NwYW4+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
328
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9zcmMvZmVhdHVyZXMvc2xpZGVyL3NsaWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL3NsaWRlci9zbGlkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFFTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLFVBQVUsRUFDVixNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV4RSxPQUFPLEVBQ0wseUJBQXlCLEVBQ3pCLGtCQUFrQixFQUNsQixrQkFBa0IsRUFDbEIsbUJBQW1CLEVBQ3BCLE1BQU0sbUNBQW1DLENBQUM7QUFFM0MsT0FBTyxFQUFFLCtCQUErQixFQUFFLHVCQUF1QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7OztBQW9CckUsTUFBTSxPQUFPLGVBQWU7SUFDVCxTQUFTLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDckMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ2hDLFdBQVcsR0FBRyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUV2QyxRQUFRLENBQTJC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QUFXO3NCQUFuQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFFSSxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBmb3J3YXJkUmVmLFxuICBpbmplY3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUsIFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuaW1wb3J0IHtcbiAgU0xJREVSX0RFRkFVTFRfQVJJQV9MQUJFTCxcbiAgU0xJREVSX0RFRkFVTFRfTUFYLFxuICBTTElERVJfREVGQVVMVF9NSU4sXG4gIFNMSURFUl9ERUZBVUxUX1NURVBcbn0gZnJvbSAnLi4vLi4vY29yZS9jb25zdGFudHMvc2xpZGVyLmNvbnN0JztcbmltcG9ydCB0eXBlIHsgU2xpZGVyVHJhbnNsYXRlUGFyYW1zLCBTbGlkZXJWYWx1ZSB9IGZyb20gJy4uLy4uL2NvcmUvdHlwZXMvc2xpZGVyLnR5cGUnO1xuaW1wb3J0IHsgcmVzb2x2ZU51bGxhYmxlVHJhbnNsYXRhYmxlVGV4dCwgcmVzb2x2ZVRyYW5zbGF0YWJsZVRleHQgfSBmcm9tICcuLi8uLi9jb3JlL3V0aWxzL2kxOG4udXRpbCc7XG5pbXBvcnQgeyBuZXh0U2VxdWVudGlhbElkIH0gZnJvbSAnLi4vLi4vY29yZS91dGlscy9pZC51dGlsJztcbmltcG9ydCB7IEluZm9TaWduQ29tcG9uZW50IH0gZnJvbSAnLi4vaW5mby1zaWduL2luZm8tc2lnbi5jb21wb25lbnQnO1xuXG50eXBlIFNsaWRlclRodW1iID0gJ3N0YXJ0JyB8ICdlbmQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzZGMtc2xpZGVyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgVHJhbnNsYXRlTW9kdWxlLCBJbmZvU2lnbkNvbXBvbmVudF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9zbGlkZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vc2xpZGVyLmNvbXBvbmVudC5zY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLkVtdWxhdGVkLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNsaWRlckNvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBTbGlkZXJDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZSA9IGluamVjdChUcmFuc2xhdGVTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICBwcml2YXRlIHJlYWRvbmx5IGdlbmVyYXRlZElkID0gbmV4dFNlcXVlbnRpYWxJZCgnc2RjLXNsaWRlcicpO1xuXG4gIEBWaWV3Q2hpbGQoJ3RyYWNrUmVmJykgdHJhY2tSZWY/OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICBASW5wdXQoKSBpZCA9IHRoaXMuZ2VuZXJhdGVkSWQ7XG4gIEBJbnB1dCgpIGxhYmVsPzogc3RyaW5nO1xuICBASW5wdXQoKSBsYWJlbFBhcmFtcz86IFNsaWRlclRyYW5zbGF0ZVBhcmFtcztcbiAgQElucHV0KCkgaW5mb1Rvb2x0aXA/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGluZm9Ub29sdGlwUGFyYW1zPzogU2xpZGVyVHJhbnNsYXRlUGFyYW1zO1xuICBASW5wdXQoKSBhcmlhTGFiZWwgPSBTTElERVJfREVGQVVMVF9BUklBX0xBQkVMO1xuICBASW5wdXQoKSBtdWx0aXBsZSA9IGZhbHNlO1xuICBASW5wdXQoKSB2YWx1ZTogU2xpZGVyVmFsdWUgPSAwO1xuICBASW5wdXQoKSBzdGVwID0gU0xJREVSX0RFRkFVTFRfU1RFUDtcbiAgQElucHV0KCkgaGlkZGVuVGh1bWIgPSBmYWxzZTtcbiAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgbWluID0gU0xJREVSX0RFRkFVTFRfTUlOO1xuICBASW5wdXQoKSBtYXggPSBTTElERVJfREVGQVVMVF9NQVg7XG4gIEBJbnB1dCgpIG1pblZhbHVlTGFiZWw/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIG1pblZhbHVlTGFiZWxQYXJhbXM/OiBTbGlkZXJUcmFuc2xhdGVQYXJhbXM7XG4gIEBJbnB1dCgpIG1heFZhbHVlTGFiZWw/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIG1heFZhbHVlTGFiZWxQYXJhbXM/OiBTbGlkZXJUcmFuc2xhdGVQYXJhbXM7XG5cbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxTbGlkZXJWYWx1ZT4oKTtcblxuICBkcmFnZ2luZ1RodW1iOiBTbGlkZXJUaHVtYiB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgb25DaGFuZ2U6ICh2YWx1ZTogU2xpZGVyVmFsdWUpID0+IHZvaWQgPSAoKSA9PiB7fTtcbiAgcHJpdmF0ZSBvblRvdWNoZWQ6ICgpID0+IHZvaWQgPSAoKSA9PiB7fTtcblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2hvdWxkTm9ybWFsaXplVmFsdWUoY2hhbmdlcykpIHtcbiAgICAgIHRoaXMudmFsdWUgPSB0aGlzLm5vcm1hbGl6ZVZhbHVlKHRoaXMudmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGV0YWNoRHJhZ0xpc3RlbmVycygpO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogU2xpZGVyVmFsdWUpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gdGhpcy5ub3JtYWxpemVWYWx1ZSh2YWx1ZSk7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IFNsaWRlclZhbHVlKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBnZXQgbGFiZWxUZXh0KCk6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiByZXNvbHZlTnVsbGFibGVUcmFuc2xhdGFibGVUZXh0KHRoaXMudHJhbnNsYXRlLCB0aGlzLmxhYmVsLCAnJywgdGhpcy5sYWJlbFBhcmFtcyk7XG4gIH1cblxuICBnZXQgaW5mb1Rvb2x0aXBUZXh0KCk6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiByZXNvbHZlTnVsbGFibGVUcmFuc2xhdGFibGVUZXh0KHRoaXMudHJhbnNsYXRlLCB0aGlzLmluZm9Ub29sdGlwLCAnJywgdGhpcy5pbmZvVG9vbHRpcFBhcmFtcyk7XG4gIH1cblxuICBnZXQgbWluTGFiZWxUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHJlc29sdmVUcmFuc2xhdGFibGVUZXh0KHRoaXMudHJhbnNsYXRlLCB0aGlzLm1pblZhbHVlTGFiZWwsIFN0cmluZyh0aGlzLm1pbiksIHRoaXMubWluVmFsdWVMYWJlbFBhcmFtcyk7XG4gIH1cblxuICBnZXQgbWF4TGFiZWxUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHJlc29sdmVUcmFuc2xhdGFibGVUZXh0KHRoaXMudHJhbnNsYXRlLCB0aGlzLm1heFZhbHVlTGFiZWwsIFN0cmluZyh0aGlzLm1heCksIHRoaXMubWF4VmFsdWVMYWJlbFBhcmFtcyk7XG4gIH1cblxuICBnZXQgc3RhcnRWYWx1ZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLm11bHRpcGxlICYmIEFycmF5LmlzQXJyYXkodGhpcy52YWx1ZSkgPyB0aGlzLnZhbHVlWzBdIDogdGhpcy5zaW5nbGVWYWx1ZTtcbiAgfVxuXG4gIGdldCBlbmRWYWx1ZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLm11bHRpcGxlICYmIEFycmF5LmlzQXJyYXkodGhpcy52YWx1ZSkgPyB0aGlzLnZhbHVlWzFdIDogdGhpcy5zaW5nbGVWYWx1ZTtcbiAgfVxuXG4gIGdldCBzaW5nbGVWYWx1ZSgpOiBudW1iZXIge1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KHRoaXMudmFsdWUpID8gdGhpcy52YWx1ZVsxXSA6IE51bWJlcih0aGlzLnZhbHVlID8/IHRoaXMubWluKTtcbiAgfVxuXG4gIGdldCBwcm9ncmVzc0xlZnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5tdWx0aXBsZSA/IHRoaXMudG9QZXJjZW50YWdlKHRoaXMuc3RhcnRWYWx1ZSkgOiAwO1xuICB9XG5cbiAgZ2V0IHByb2dyZXNzV2lkdGgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5tdWx0aXBsZVxuICAgICAgPyB0aGlzLnRvUGVyY2VudGFnZSh0aGlzLmVuZFZhbHVlKSAtIHRoaXMudG9QZXJjZW50YWdlKHRoaXMuc3RhcnRWYWx1ZSlcbiAgICAgIDogdGhpcy50b1BlcmNlbnRhZ2UodGhpcy5lbmRWYWx1ZSk7XG4gIH1cblxuICBnZXQgc3RhcnRUaHVtYlN0eWxlKCk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4ge1xuICAgIHJldHVybiB7IGxlZnQ6IGAke3RoaXMudG9QZXJjZW50YWdlKHRoaXMuc3RhcnRWYWx1ZSl9JWAgfTtcbiAgfVxuXG4gIGdldCBlbmRUaHVtYlN0eWxlKCk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4ge1xuICAgIHJldHVybiB7IGxlZnQ6IGAke3RoaXMudG9QZXJjZW50YWdlKHRoaXMuZW5kVmFsdWUpfSVgIH07XG4gIH1cblxuICBnZXQgcmVzb2x2ZWRBcmlhTGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gcmVzb2x2ZVRyYW5zbGF0YWJsZVRleHQodGhpcy50cmFuc2xhdGUsIHRoaXMuYXJpYUxhYmVsKTtcbiAgfVxuXG4gIGdldCByYW5nZUFyaWFMYWJlbFN0YXJ0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RoaXMucmVzb2x2ZWRBcmlhTGFiZWx9IC0gJHtyZXNvbHZlVHJhbnNsYXRhYmxlVGV4dCh0aGlzLnRyYW5zbGF0ZSwgJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHlfcmFuZ2Vfc3RhcnQnKX1gO1xuICB9XG5cbiAgZ2V0IHJhbmdlQXJpYUxhYmVsRW5kKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RoaXMucmVzb2x2ZWRBcmlhTGFiZWx9IC0gJHtyZXNvbHZlVHJhbnNsYXRhYmxlVGV4dCh0aGlzLnRyYW5zbGF0ZSwgJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHlfcmFuZ2VfZW5kJyl9YDtcbiAgfVxuXG4gIGdldCBzdGFydFRodW1iQXJpYUxhYmVsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RoaXMucmFuZ2VBcmlhTGFiZWxTdGFydH0gLSAke3RoaXMuc3RhcnRWYWx1ZX1gO1xuICB9XG5cbiAgZ2V0IGVuZFRodW1iQXJpYUxhYmVsKCk6IHN0cmluZyB7XG4gICAgY29uc3QgbGFiZWwgPSB0aGlzLm11bHRpcGxlID8gdGhpcy5yYW5nZUFyaWFMYWJlbEVuZCA6IHRoaXMucmVzb2x2ZWRBcmlhTGFiZWw7XG4gICAgcmV0dXJuIGAke2xhYmVsfSAtICR7dGhpcy5lbmRWYWx1ZX1gO1xuICB9XG5cbiAgb25UcmFja0NsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBuZXh0VmFsdWUgPSB0aGlzLnZhbHVlRnJvbUNsaWVudFgoZXZlbnQuY2xpZW50WCk7XG5cbiAgICBpZiAoIXRoaXMubXVsdGlwbGUpIHtcbiAgICAgIHRoaXMuY29tbWl0KG5leHRWYWx1ZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGlzdGFuY2VUb1N0YXJ0ID0gTWF0aC5hYnMobmV4dFZhbHVlIC0gdGhpcy5zdGFydFZhbHVlKTtcbiAgICBjb25zdCBkaXN0YW5jZVRvRW5kID0gTWF0aC5hYnMobmV4dFZhbHVlIC0gdGhpcy5lbmRWYWx1ZSk7XG5cbiAgICBpZiAoZGlzdGFuY2VUb1N0YXJ0IDw9IGRpc3RhbmNlVG9FbmQpIHtcbiAgICAgIHRoaXMuY29tbWl0KFtNYXRoLm1pbihuZXh0VmFsdWUsIHRoaXMuZW5kVmFsdWUpLCB0aGlzLmVuZFZhbHVlXSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5jb21taXQoW3RoaXMuc3RhcnRWYWx1ZSwgTWF0aC5tYXgobmV4dFZhbHVlLCB0aGlzLnN0YXJ0VmFsdWUpXSk7XG4gIH1cblxuICBvblRyYWNrS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbmV4dFZhbHVlID0gdGhpcy5yZXNvbHZlVHJhY2tLZXlib2FyZFZhbHVlKGV2ZW50KTtcblxuICAgIGlmIChuZXh0VmFsdWUgPT09IG51bGwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgaWYgKCF0aGlzLm11bHRpcGxlKSB7XG4gICAgICB0aGlzLmNvbW1pdChuZXh0VmFsdWUpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuY29tbWl0KFt0aGlzLnN0YXJ0VmFsdWUsIE1hdGgubWF4KG5leHRWYWx1ZSwgdGhpcy5zdGFydFZhbHVlKV0pO1xuICB9XG5cbiAgb25UaHVtYk1vdXNlRG93bihldmVudDogTW91c2VFdmVudCwgdGh1bWI6IFNsaWRlclRodW1iKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuZHJhZ2dpbmdUaHVtYiA9IHRodW1iO1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHRoaXMuaGFuZGxlRHJhZ01vdmUpO1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCB0aGlzLmhhbmRsZURyYWdFbmQpO1xuICB9XG5cbiAgb25UaHVtYktleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQsIHRodW1iOiBTbGlkZXJUaHVtYik6IHZvaWQge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgaW5jcmVtZW50ID0gZXZlbnQua2V5ID09PSAnQXJyb3dSaWdodCcgfHwgZXZlbnQua2V5ID09PSAnQXJyb3dVcCc7XG4gICAgY29uc3QgZGVjcmVtZW50ID0gZXZlbnQua2V5ID09PSAnQXJyb3dMZWZ0JyB8fCBldmVudC5rZXkgPT09ICdBcnJvd0Rvd24nO1xuXG4gICAgaWYgKCFpbmNyZW1lbnQgJiYgIWRlY3JlbWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgY29uc3QgZGVsdGEgPSBpbmNyZW1lbnQgPyB0aGlzLnN0ZXAgOiAtdGhpcy5zdGVwO1xuICAgIGNvbnN0IG5leHRWYWx1ZSA9IHRoaXMuc25hcCh0aGlzLmN1cnJlbnRUaHVtYlZhbHVlKHRodW1iKSArIGRlbHRhKTtcblxuICAgIGlmICghdGhpcy5tdWx0aXBsZSkge1xuICAgICAgdGhpcy5jb21taXQobmV4dFZhbHVlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGh1bWIgPT09ICdzdGFydCcpIHtcbiAgICAgIHRoaXMuY29tbWl0KFtNYXRoLm1pbihuZXh0VmFsdWUsIHRoaXMuZW5kVmFsdWUpLCB0aGlzLmVuZFZhbHVlXSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5jb21taXQoW3RoaXMuc3RhcnRWYWx1ZSwgTWF0aC5tYXgobmV4dFZhbHVlLCB0aGlzLnN0YXJ0VmFsdWUpXSk7XG4gIH1cblxuICBtYXJrVG91Y2hlZCgpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBoYW5kbGVEcmFnTW92ZSA9IChldmVudDogTW91c2VFdmVudCk6IHZvaWQgPT4ge1xuICAgIGlmICghdGhpcy5kcmFnZ2luZ1RodW1iKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbmV4dFZhbHVlID0gdGhpcy52YWx1ZUZyb21DbGllbnRYKGV2ZW50LmNsaWVudFgpO1xuXG4gICAgaWYgKCF0aGlzLm11bHRpcGxlKSB7XG4gICAgICB0aGlzLmNvbW1pdChuZXh0VmFsdWUsIGZhbHNlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5kcmFnZ2luZ1RodW1iID09PSAnc3RhcnQnKSB7XG4gICAgICB0aGlzLmNvbW1pdChbTWF0aC5taW4obmV4dFZhbHVlLCB0aGlzLmVuZFZhbHVlKSwgdGhpcy5lbmRWYWx1ZV0sIGZhbHNlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmNvbW1pdChbdGhpcy5zdGFydFZhbHVlLCBNYXRoLm1heChuZXh0VmFsdWUsIHRoaXMuc3RhcnRWYWx1ZSldLCBmYWxzZSk7XG4gIH07XG5cbiAgcHJpdmF0ZSByZWFkb25seSBoYW5kbGVEcmFnRW5kID0gKCk6IHZvaWQgPT4ge1xuICAgIHRoaXMuZHJhZ2dpbmdUaHVtYiA9IG51bGw7XG4gICAgdGhpcy5kZXRhY2hEcmFnTGlzdGVuZXJzKCk7XG4gICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgfTtcblxuICBwcml2YXRlIGRldGFjaERyYWdMaXN0ZW5lcnMoKTogdm9pZCB7XG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgdGhpcy5oYW5kbGVEcmFnTW92ZSk7XG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIHRoaXMuaGFuZGxlRHJhZ0VuZCk7XG4gIH1cblxuICBwcml2YXRlIGNvbW1pdCh2YWx1ZTogU2xpZGVyVmFsdWUsIGVtaXRUb3VjaGVkID0gdHJ1ZSk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB0aGlzLm5vcm1hbGl6ZVZhbHVlKHZhbHVlKTtcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcblxuICAgIGlmIChlbWl0VG91Y2hlZCkge1xuICAgICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICB9XG5cbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHByaXZhdGUgY3VycmVudFRodW1iVmFsdWUodGh1bWI6IFNsaWRlclRodW1iKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGh1bWIgPT09ICdzdGFydCcgPyB0aGlzLnN0YXJ0VmFsdWUgOiB0aGlzLmVuZFZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBzaG91bGROb3JtYWxpemVWYWx1ZShjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIFsnbWluJywgJ21heCcsICdzdGVwJywgJ211bHRpcGxlJywgJ3ZhbHVlJ10uc29tZSgoa2V5KSA9PiBrZXkgaW4gY2hhbmdlcyk7XG4gIH1cblxuICBwcml2YXRlIHJlc29sdmVUcmFja0tleWJvYXJkVmFsdWUoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiBudW1iZXIgfCBudWxsIHtcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnSG9tZScpIHtcbiAgICAgIHJldHVybiB0aGlzLm1pbjtcbiAgICB9XG5cbiAgICBpZiAoZXZlbnQua2V5ID09PSAnRW5kJykge1xuICAgICAgcmV0dXJuIHRoaXMubWF4O1xuICAgIH1cblxuICAgIGlmIChldmVudC5rZXkgPT09ICdFbnRlcicgfHwgZXZlbnQua2V5ID09PSAnICcpIHtcbiAgICAgIHJldHVybiB0aGlzLm11bHRpcGxlID8gdGhpcy5lbmRWYWx1ZSA6IHRoaXMuc2luZ2xlVmFsdWU7XG4gICAgfVxuXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93UmlnaHQnIHx8IGV2ZW50LmtleSA9PT0gJ0Fycm93VXAnKSB7XG4gICAgICByZXR1cm4gdGhpcy5zbmFwKHRoaXMuZW5kVmFsdWUgKyB0aGlzLnN0ZXApO1xuICAgIH1cblxuICAgIGlmIChldmVudC5rZXkgPT09ICdBcnJvd0xlZnQnIHx8IGV2ZW50LmtleSA9PT0gJ0Fycm93RG93bicpIHtcbiAgICAgIHJldHVybiB0aGlzLnNuYXAodGhpcy5lbmRWYWx1ZSAtIHRoaXMuc3RlcCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBwcml2YXRlIG5vcm1hbGl6ZVZhbHVlKHZhbHVlOiBTbGlkZXJWYWx1ZSk6IFNsaWRlclZhbHVlIHtcbiAgICBpZiAoIXRoaXMubXVsdGlwbGUpIHtcbiAgICAgIHJldHVybiB0aGlzLmNsYW1wKHRoaXMuc25hcChBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlWzFdIDogdmFsdWUpKTtcbiAgICB9XG5cbiAgICBjb25zdCByYXcgPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW3RoaXMubWluLCBOdW1iZXIodmFsdWUgPz8gdGhpcy5taW4pXTtcbiAgICBjb25zdCBzdGFydCA9IHRoaXMuY2xhbXAodGhpcy5zbmFwKE1hdGgubWluKHJhd1swXSwgcmF3WzFdKSkpO1xuICAgIGNvbnN0IGVuZCA9IHRoaXMuY2xhbXAodGhpcy5zbmFwKE1hdGgubWF4KHJhd1swXSwgcmF3WzFdKSkpO1xuICAgIHJldHVybiBbc3RhcnQsIGVuZF07XG4gIH1cblxuICBwcml2YXRlIGNsYW1wKHZhbHVlOiBudW1iZXIpOiBudW1iZXIge1xuICAgIHJldHVybiBNYXRoLm1pbih0aGlzLm1heCwgTWF0aC5tYXgodGhpcy5taW4sIE51bWJlci5pc0Zpbml0ZSh2YWx1ZSkgPyB2YWx1ZSA6IHRoaXMubWluKSk7XG4gIH1cblxuICBwcml2YXRlIHNuYXAodmFsdWU6IG51bWJlcik6IG51bWJlciB7XG4gICAgaWYgKCFOdW1iZXIuaXNGaW5pdGUodmFsdWUpKSB7XG4gICAgICByZXR1cm4gdGhpcy5taW47XG4gICAgfVxuXG4gICAgY29uc3Qgc2FmZVN0ZXAgPSB0aGlzLnN0ZXAgPiAwID8gdGhpcy5zdGVwIDogMTtcbiAgICBjb25zdCBub3JtYWxpemVkID0gTWF0aC5yb3VuZCgodmFsdWUgLSB0aGlzLm1pbikgLyBzYWZlU3RlcCkgKiBzYWZlU3RlcCArIHRoaXMubWluO1xuICAgIHJldHVybiBOdW1iZXIobm9ybWFsaXplZC50b0ZpeGVkKDQpKTtcbiAgfVxuXG4gIHByaXZhdGUgdmFsdWVGcm9tQ2xpZW50WChjbGllbnRYOiBudW1iZXIpOiBudW1iZXIge1xuICAgIGNvbnN0IHRyYWNrID0gdGhpcy50cmFja1JlZj8ubmF0aXZlRWxlbWVudDtcblxuICAgIGlmICghdHJhY2spIHtcbiAgICAgIHJldHVybiB0aGlzLm1pbjtcbiAgICB9XG5cbiAgICBjb25zdCByZWN0ID0gdHJhY2suZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3QgcGVyY2VudGFnZSA9IHJlY3Qud2lkdGggPiAwID8gKGNsaWVudFggLSByZWN0LmxlZnQpIC8gcmVjdC53aWR0aCA6IDA7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLm1pbiArICh0aGlzLm1heCAtIHRoaXMubWluKSAqIHBlcmNlbnRhZ2U7XG4gICAgcmV0dXJuIHRoaXMuY2xhbXAodGhpcy5zbmFwKHZhbHVlKSk7XG4gIH1cblxuICBwcml2YXRlIHRvUGVyY2VudGFnZSh2YWx1ZTogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBpZiAodGhpcy5tYXggPD0gdGhpcy5taW4pIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cblxuICAgIHJldHVybiAoKHZhbHVlIC0gdGhpcy5taW4pIC8gKHRoaXMubWF4IC0gdGhpcy5taW4pKSAqIDEwMDtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInNkYy1zbGlkZXJcIj5cbiAgQGlmIChsYWJlbFRleHQgfHwgaW5mb1Rvb2x0aXBUZXh0KSB7XG4gICAgPGRpdiBjbGFzcz1cInNkYy1zbGlkZXJfX2xhYmVsUm93XCI+XG4gICAgICBAaWYgKGxhYmVsVGV4dCkge1xuICAgICAgICA8c3BhbiBjbGFzcz1cInNkYy1zbGlkZXJfX2xhYmVsXCI+e3sgbGFiZWxUZXh0IH19PC9zcGFuPlxuICAgICAgfVxuXG4gICAgICBAaWYgKGluZm9Ub29sdGlwVGV4dCkge1xuICAgICAgICA8c2RjLWluZm8tc2lnbiBbdG9vbHRpcF09XCJpbmZvVG9vbHRpcCFcIiBbdG9vbHRpcFBhcmFtc109XCJpbmZvVG9vbHRpcFBhcmFtc1wiPjwvc2RjLWluZm8tc2lnbj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgfVxuXG4gIDxkaXYgY2xhc3M9XCJzZGMtc2xpZGVyX19zdXJmYWNlXCIgW2NsYXNzLnNkYy1zbGlkZXJfX3N1cmZhY2UtLWRpc2FibGVkXT1cImRpc2FibGVkXCI+XG4gICAgPGRpdlxuICAgICAgI3RyYWNrUmVmXG4gICAgICBjbGFzcz1cInNkYy1zbGlkZXJfX3RyYWNrXCJcbiAgICAgIFthdHRyLnRhYmluZGV4XT1cImRpc2FibGVkID8gLTEgOiAwXCJcbiAgICAgIChjbGljayk9XCJvblRyYWNrQ2xpY2soJGV2ZW50KVwiXG4gICAgICAoa2V5ZG93bik9XCJvblRyYWNrS2V5ZG93bigkZXZlbnQpXCJcbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzPVwic2RjLXNsaWRlcl9fcHJvZ3Jlc3NcIiBbc3R5bGUubGVmdC4lXT1cInByb2dyZXNzTGVmdFwiIFtzdHlsZS53aWR0aC4lXT1cInByb2dyZXNzV2lkdGhcIj48L2Rpdj5cblxuICAgICAgQGlmIChtdWx0aXBsZSkge1xuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgY2xhc3M9XCJzZGMtc2xpZGVyX190aHVtYlwiXG4gICAgICAgICAgW2NsYXNzLnNkYy1zbGlkZXJfX3RodW1iLS1oaWRkZW5dPVwiaGlkZGVuVGh1bWJcIlxuICAgICAgICAgIFtjbGFzcy5zZGMtc2xpZGVyX190aHVtYi0tZHJhZ2dpbmddPVwiZHJhZ2dpbmdUaHVtYiA9PT0gJ3N0YXJ0J1wiXG4gICAgICAgICAgW25nU3R5bGVdPVwic3RhcnRUaHVtYlN0eWxlXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInN0YXJ0VGh1bWJBcmlhTGFiZWxcIlxuICAgICAgICAgIFthdHRyLmRhdGEtdmFsdWVdPVwic3RhcnRWYWx1ZVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAobW91c2Vkb3duKT1cIm9uVGh1bWJNb3VzZURvd24oJGV2ZW50LCAnc3RhcnQnKVwiXG4gICAgICAgICAgKGtleWRvd24pPVwib25UaHVtYktleWRvd24oJGV2ZW50LCAnc3RhcnQnKVwiXG4gICAgICAgICAgKGJsdXIpPVwibWFya1RvdWNoZWQoKVwiXG4gICAgICAgID48L2J1dHRvbj5cbiAgICAgIH1cblxuICAgICAgPGJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgY2xhc3M9XCJzZGMtc2xpZGVyX190aHVtYlwiXG4gICAgICAgIFtjbGFzcy5zZGMtc2xpZGVyX190aHVtYi0taGlkZGVuXT1cImhpZGRlblRodW1iXCJcbiAgICAgICAgW2NsYXNzLnNkYy1zbGlkZXJfX3RodW1iLS1kcmFnZ2luZ109XCJkcmFnZ2luZ1RodW1iID09PSAnZW5kJ1wiXG4gICAgICAgIFtuZ1N0eWxlXT1cImVuZFRodW1iU3R5bGVcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImVuZFRodW1iQXJpYUxhYmVsXCJcbiAgICAgICAgW2F0dHIuZGF0YS12YWx1ZV09XCJlbmRWYWx1ZVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIChtb3VzZWRvd24pPVwib25UaHVtYk1vdXNlRG93bigkZXZlbnQsICdlbmQnKVwiXG4gICAgICAgIChrZXlkb3duKT1cIm9uVGh1bWJLZXlkb3duKCRldmVudCwgJ2VuZCcpXCJcbiAgICAgICAgKGJsdXIpPVwibWFya1RvdWNoZWQoKVwiXG4gICAgICA+PC9idXR0b24+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwic2RjLXNsaWRlcl9fZm9vdGVyXCI+XG4gICAgICA8c3Bhbj57eyBtaW5MYWJlbFRleHQgfX08L3NwYW4+XG4gICAgICA8c3Bhbj57eyBtYXhMYWJlbFRleHQgfX08L3NwYW4+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -10,7 +10,7 @@ import * as i0 from "@angular/core";
|
|
|
10
10
|
import * as i1 from "@angular/common";
|
|
11
11
|
import * as i2 from "@angular/forms";
|
|
12
12
|
import * as i3 from "@ngx-translate/core";
|
|
13
|
-
const SPEECH_RECOGNITION_PLACEHOLDER_KEY = 'platform.datacore.
|
|
13
|
+
const SPEECH_RECOGNITION_PLACEHOLDER_KEY = 'platform.datacore.speech_recognition_placeholder';
|
|
14
14
|
const DEFAULT_SPEECH_SILENCE_TIMEOUT_MS = 3000;
|
|
15
15
|
const VOICE_RATE_SLOW = 0.75;
|
|
16
16
|
const VOICE_RATE_NORMAL = 1;
|
|
@@ -95,8 +95,8 @@ export class SpeechRecognitionComponent {
|
|
|
95
95
|
}
|
|
96
96
|
get pauseActionLabel() {
|
|
97
97
|
return this.paused
|
|
98
|
-
? this.translate.instant('platform.datacore.
|
|
99
|
-
: this.translate.instant('platform.datacore.
|
|
98
|
+
? this.translate.instant('platform.datacore.speech_recognition_resume')
|
|
99
|
+
: this.translate.instant('platform.datacore.speech_recognition_pause');
|
|
100
100
|
}
|
|
101
101
|
get previewPlaceholder() {
|
|
102
102
|
return resolveTranslatableText(this.translate, this.speechRecognitionPlaceholder, SPEECH_RECOGNITION_PLACEHOLDER_KEY);
|
|
@@ -104,22 +104,22 @@ export class SpeechRecognitionComponent {
|
|
|
104
104
|
get previewValue() {
|
|
105
105
|
return this.previewText.trim()
|
|
106
106
|
|| this.previewPlaceholder
|
|
107
|
-
|| this.translate.instant('platform.datacore.
|
|
107
|
+
|| this.translate.instant('platform.datacore.speech_recognition_empty_preview');
|
|
108
108
|
}
|
|
109
109
|
get statusMessage() {
|
|
110
110
|
if (!this.recognitionSupported) {
|
|
111
|
-
return this.translate.instant('platform.datacore.
|
|
111
|
+
return this.translate.instant('platform.datacore.speech_recognition_unsupported');
|
|
112
112
|
}
|
|
113
113
|
if (!this.getTextArea()) {
|
|
114
|
-
return this.translate.instant('platform.datacore.
|
|
114
|
+
return this.translate.instant('platform.datacore.speech_recognition_missing_target');
|
|
115
115
|
}
|
|
116
116
|
if (this.permissionDeniedState) {
|
|
117
|
-
return this.translate.instant('platform.datacore.
|
|
117
|
+
return this.translate.instant('platform.datacore.speech_recognition_permission_denied');
|
|
118
118
|
}
|
|
119
119
|
if (this.listening) {
|
|
120
|
-
return this.translate.instant('platform.datacore.
|
|
120
|
+
return this.translate.instant('platform.datacore.speech_recognition_listening');
|
|
121
121
|
}
|
|
122
|
-
return this.translate.instant('platform.datacore.
|
|
122
|
+
return this.translate.instant('platform.datacore.speech_recognition_idle');
|
|
123
123
|
}
|
|
124
124
|
toggleListening() {
|
|
125
125
|
if (this.listening) {
|
|
@@ -208,11 +208,11 @@ export class SpeechRecognitionComponent {
|
|
|
208
208
|
return this.textAreaElement;
|
|
209
209
|
}
|
|
210
210
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SpeechRecognitionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
211
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: SpeechRecognitionComponent, isStandalone: true, selector: "sdc-speech-recognition", inputs: { textAreaElement: "textAreaElement", keepContext: "keepContext", speechRecognitionPlaceholder: "speechRecognitionPlaceholder", silenceTimeoutMs: "silenceTimeoutMs", enableTextToSpeech: "enableTextToSpeech" }, outputs: { recognizedText: "recognizedText", permissionDenied: "permissionDenied", listeningChange: "listeningChange" }, providers: [SpeechRecognitionService, TextToSpeechService], ngImport: i0, template: "<section\n class=\"sdc-speech-recognition\"\n [class.sdc-speech-recognition--unsupported]=\"!recognitionSupported\"\n>\n <div class=\"sdc-speech-recognition__toolbar\">\n <button\n class=\"sdc-speech-recognition__button sdc-speech-recognition__button--primary\"\n type=\"button\"\n [disabled]=\"!canListen\"\n (click)=\"toggleListening()\"\n >\n {{\n listening\n ? ('platform.datacore.
|
|
211
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: SpeechRecognitionComponent, isStandalone: true, selector: "sdc-speech-recognition", inputs: { textAreaElement: "textAreaElement", keepContext: "keepContext", speechRecognitionPlaceholder: "speechRecognitionPlaceholder", silenceTimeoutMs: "silenceTimeoutMs", enableTextToSpeech: "enableTextToSpeech" }, outputs: { recognizedText: "recognizedText", permissionDenied: "permissionDenied", listeningChange: "listeningChange" }, providers: [SpeechRecognitionService, TextToSpeechService], ngImport: i0, template: "<section\n class=\"sdc-speech-recognition\"\n [class.sdc-speech-recognition--unsupported]=\"!recognitionSupported\"\n>\n <div class=\"sdc-speech-recognition__toolbar\">\n <button\n class=\"sdc-speech-recognition__button sdc-speech-recognition__button--primary\"\n type=\"button\"\n [disabled]=\"!canListen\"\n (click)=\"toggleListening()\"\n >\n {{\n listening\n ? ('platform.datacore.speech_recognition_stop' | translate)\n : ('platform.datacore.speech_recognition_listen' | translate)\n }}\n </button>\n\n <button\n class=\"sdc-speech-recognition__button\"\n type=\"button\"\n [disabled]=\"!previewText.trim()\"\n (click)=\"discardRecognition()\"\n >\n {{ 'platform.datacore.speech_recognition_discard' | translate }}\n </button>\n\n <button\n class=\"sdc-speech-recognition__button\"\n type=\"button\"\n [disabled]=\"!canApply\"\n (click)=\"applyRecognizedText()\"\n >\n {{ 'platform.datacore.speech_recognition_apply' | translate }}\n </button>\n </div>\n\n <div class=\"sdc-speech-recognition__preview\">\n <span class=\"sdc-speech-recognition__label\">\n {{ 'platform.datacore.speech_recognition_preview' | translate }}\n </span>\n <div class=\"sdc-speech-recognition__previewValue\">\n {{ previewValue }}\n </div>\n </div>\n\n <div *ngIf=\"enableTextToSpeech\" class=\"sdc-speech-recognition__tts\">\n <button\n class=\"sdc-speech-recognition__button\"\n type=\"button\"\n [disabled]=\"!canSpeak\"\n (click)=\"playSpeech()\"\n >\n {{ 'platform.datacore.speech_recognition_play' | translate }}\n </button>\n\n <button\n class=\"sdc-speech-recognition__button\"\n type=\"button\"\n [disabled]=\"!speaking && !paused\"\n (click)=\"togglePause()\"\n >\n {{ pauseActionLabel }}\n </button>\n\n <button\n class=\"sdc-speech-recognition__button\"\n type=\"button\"\n [disabled]=\"!canSpeak\"\n (click)=\"restartSpeech()\"\n >\n {{ 'platform.datacore.speech_recognition_restart' | translate }}\n </button>\n\n <label class=\"sdc-speech-recognition__speed\">\n <span>{{ 'platform.datacore.speech_recognition_speed' | translate }}</span>\n <select\n class=\"sdc-speech-recognition__select\"\n [ngModel]=\"voiceRate\"\n (ngModelChange)=\"updateVoiceRate($event)\"\n >\n <option *ngFor=\"let rate of voiceRates\" [ngValue]=\"rate\">\n {{ rate }}x\n </option>\n </select>\n </label>\n </div>\n\n <p class=\"sdc-speech-recognition__status\">\n {{ statusMessage }}\n </p>\n</section>\n", styles: [":host{display:block}.sdc-speech-recognition{background:var(--sdc-surface-bg, #ffffff);border:1px solid var(--sdc-surface-border-color, #dedce5);border-radius:1rem;display:flex;flex-direction:column;gap:1rem;padding:1rem}.sdc-speech-recognition--unsupported{opacity:.72}.sdc-speech-recognition__toolbar,.sdc-speech-recognition__tts{display:flex;flex-wrap:wrap;gap:.75rem}.sdc-speech-recognition__button,.sdc-speech-recognition__select{background:var(--sdc-button-bg, #eceeef);border:1px solid var(--sdc-formfield-default-border, #cccccc);border-radius:.5rem;color:var(--sdc-text-default, #111827);font:inherit;min-height:2.5rem;padding:.625rem .9rem;transition:background-color var(--sdc-transition-fast, .18s ease),border-color var(--sdc-transition-fast, .18s ease),box-shadow var(--sdc-transition-fast, .18s ease)}.sdc-speech-recognition__button{cursor:pointer}.sdc-speech-recognition__button:disabled{cursor:default;opacity:.5}.sdc-speech-recognition__button:not(:disabled):hover,.sdc-speech-recognition__button:not(:disabled):focus-visible{background:var(--sdc-button-bg-hover, #e6e6e6);box-shadow:var(--sdc-focus-ring, 0 0 0 3px rgba(0, 123, 255, .25));outline:none}.sdc-speech-recognition__button--primary{background:var(--p-primary-color, #428bca);border-color:var(--p-primary-color, #428bca);color:#fff}.sdc-speech-recognition__preview{display:flex;flex-direction:column;gap:.4rem}.sdc-speech-recognition__label{color:var(--sdc-text-default, #111827);font-size:.85rem;font-weight:700}.sdc-speech-recognition__previewValue{background:#11182708;border:1px dashed var(--sdc-surface-border-color, #dedce5);border-radius:.75rem;line-height:1.5;min-height:5.5rem;padding:.9rem;white-space:pre-wrap;word-break:break-word}.sdc-speech-recognition__speed{align-items:center;color:var(--sdc-text-muted, #6b7280);display:inline-flex;gap:.5rem}.sdc-speech-recognition__select{min-width:5.5rem}.sdc-speech-recognition__status{color:var(--sdc-text-muted, #6b7280);font-size:.85rem;margin:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
212
212
|
}
|
|
213
213
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SpeechRecognitionComponent, decorators: [{
|
|
214
214
|
type: Component,
|
|
215
|
-
args: [{ selector: 'sdc-speech-recognition', standalone: true, imports: [CommonModule, FormsModule, TranslateModule], providers: [SpeechRecognitionService, TextToSpeechService], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.Emulated, template: "<section\n class=\"sdc-speech-recognition\"\n [class.sdc-speech-recognition--unsupported]=\"!recognitionSupported\"\n>\n <div class=\"sdc-speech-recognition__toolbar\">\n <button\n class=\"sdc-speech-recognition__button sdc-speech-recognition__button--primary\"\n type=\"button\"\n [disabled]=\"!canListen\"\n (click)=\"toggleListening()\"\n >\n {{\n listening\n ? ('platform.datacore.
|
|
215
|
+
args: [{ selector: 'sdc-speech-recognition', standalone: true, imports: [CommonModule, FormsModule, TranslateModule], providers: [SpeechRecognitionService, TextToSpeechService], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.Emulated, template: "<section\n class=\"sdc-speech-recognition\"\n [class.sdc-speech-recognition--unsupported]=\"!recognitionSupported\"\n>\n <div class=\"sdc-speech-recognition__toolbar\">\n <button\n class=\"sdc-speech-recognition__button sdc-speech-recognition__button--primary\"\n type=\"button\"\n [disabled]=\"!canListen\"\n (click)=\"toggleListening()\"\n >\n {{\n listening\n ? ('platform.datacore.speech_recognition_stop' | translate)\n : ('platform.datacore.speech_recognition_listen' | translate)\n }}\n </button>\n\n <button\n class=\"sdc-speech-recognition__button\"\n type=\"button\"\n [disabled]=\"!previewText.trim()\"\n (click)=\"discardRecognition()\"\n >\n {{ 'platform.datacore.speech_recognition_discard' | translate }}\n </button>\n\n <button\n class=\"sdc-speech-recognition__button\"\n type=\"button\"\n [disabled]=\"!canApply\"\n (click)=\"applyRecognizedText()\"\n >\n {{ 'platform.datacore.speech_recognition_apply' | translate }}\n </button>\n </div>\n\n <div class=\"sdc-speech-recognition__preview\">\n <span class=\"sdc-speech-recognition__label\">\n {{ 'platform.datacore.speech_recognition_preview' | translate }}\n </span>\n <div class=\"sdc-speech-recognition__previewValue\">\n {{ previewValue }}\n </div>\n </div>\n\n <div *ngIf=\"enableTextToSpeech\" class=\"sdc-speech-recognition__tts\">\n <button\n class=\"sdc-speech-recognition__button\"\n type=\"button\"\n [disabled]=\"!canSpeak\"\n (click)=\"playSpeech()\"\n >\n {{ 'platform.datacore.speech_recognition_play' | translate }}\n </button>\n\n <button\n class=\"sdc-speech-recognition__button\"\n type=\"button\"\n [disabled]=\"!speaking && !paused\"\n (click)=\"togglePause()\"\n >\n {{ pauseActionLabel }}\n </button>\n\n <button\n class=\"sdc-speech-recognition__button\"\n type=\"button\"\n [disabled]=\"!canSpeak\"\n (click)=\"restartSpeech()\"\n >\n {{ 'platform.datacore.speech_recognition_restart' | translate }}\n </button>\n\n <label class=\"sdc-speech-recognition__speed\">\n <span>{{ 'platform.datacore.speech_recognition_speed' | translate }}</span>\n <select\n class=\"sdc-speech-recognition__select\"\n [ngModel]=\"voiceRate\"\n (ngModelChange)=\"updateVoiceRate($event)\"\n >\n <option *ngFor=\"let rate of voiceRates\" [ngValue]=\"rate\">\n {{ rate }}x\n </option>\n </select>\n </label>\n </div>\n\n <p class=\"sdc-speech-recognition__status\">\n {{ statusMessage }}\n </p>\n</section>\n", styles: [":host{display:block}.sdc-speech-recognition{background:var(--sdc-surface-bg, #ffffff);border:1px solid var(--sdc-surface-border-color, #dedce5);border-radius:1rem;display:flex;flex-direction:column;gap:1rem;padding:1rem}.sdc-speech-recognition--unsupported{opacity:.72}.sdc-speech-recognition__toolbar,.sdc-speech-recognition__tts{display:flex;flex-wrap:wrap;gap:.75rem}.sdc-speech-recognition__button,.sdc-speech-recognition__select{background:var(--sdc-button-bg, #eceeef);border:1px solid var(--sdc-formfield-default-border, #cccccc);border-radius:.5rem;color:var(--sdc-text-default, #111827);font:inherit;min-height:2.5rem;padding:.625rem .9rem;transition:background-color var(--sdc-transition-fast, .18s ease),border-color var(--sdc-transition-fast, .18s ease),box-shadow var(--sdc-transition-fast, .18s ease)}.sdc-speech-recognition__button{cursor:pointer}.sdc-speech-recognition__button:disabled{cursor:default;opacity:.5}.sdc-speech-recognition__button:not(:disabled):hover,.sdc-speech-recognition__button:not(:disabled):focus-visible{background:var(--sdc-button-bg-hover, #e6e6e6);box-shadow:var(--sdc-focus-ring, 0 0 0 3px rgba(0, 123, 255, .25));outline:none}.sdc-speech-recognition__button--primary{background:var(--p-primary-color, #428bca);border-color:var(--p-primary-color, #428bca);color:#fff}.sdc-speech-recognition__preview{display:flex;flex-direction:column;gap:.4rem}.sdc-speech-recognition__label{color:var(--sdc-text-default, #111827);font-size:.85rem;font-weight:700}.sdc-speech-recognition__previewValue{background:#11182708;border:1px dashed var(--sdc-surface-border-color, #dedce5);border-radius:.75rem;line-height:1.5;min-height:5.5rem;padding:.9rem;white-space:pre-wrap;word-break:break-word}.sdc-speech-recognition__speed{align-items:center;color:var(--sdc-text-muted, #6b7280);display:inline-flex;gap:.5rem}.sdc-speech-recognition__select{min-width:5.5rem}.sdc-speech-recognition__status{color:var(--sdc-text-muted, #6b7280);font-size:.85rem;margin:0}\n"] }]
|
|
216
216
|
}], ctorParameters: () => [], propDecorators: { textAreaElement: [{
|
|
217
217
|
type: Input,
|
|
218
218
|
args: [{ required: true }]
|
|
@@ -240,4 +240,4 @@ function resolveSpeechLocale(language) {
|
|
|
240
240
|
}
|
|
241
241
|
return 'pt-BR';
|
|
242
242
|
}
|
|
243
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlZWNoLXJlY29nbml0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9zcmMvZmVhdHVyZXMvc3BlZWNoLXJlY29nbml0aW9uL3NwZWVjaC1yZWNvZ25pdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL3NwZWVjaC1yZWNvZ25pdGlvbi9zcGVlY2gtcmVjb2duaXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04saUJBQWlCLEVBQ2pCLE1BQU0sRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXhFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7OztBQUl4RSxNQUFNLGtDQUFrQyxHQUFHLGtEQUFrRCxDQUFDO0FBQzlGLE1BQU0saUNBQWlDLEdBQUcsSUFBSSxDQUFDO0FBQy9DLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQztBQUM3QixNQUFNLGlCQUFpQixHQUFHLENBQUMsQ0FBQztBQUM1QixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUM7QUFDN0Is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QUFRLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDdEIsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELElBQUksUUFBUSxLQUFLLE9BQU8sRUFBRSxDQUFDO1FBQ3pCLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIGluamVjdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlLCBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbmltcG9ydCB7IHJlc29sdmVUcmFuc2xhdGFibGVUZXh0IH0gZnJvbSAnLi4vLi4vY29yZS91dGlscy9pMThuLnV0aWwnO1xuaW1wb3J0IHsgU3BlZWNoUmVjb2duaXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9zcGVlY2gtcmVjb2duaXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBUZXh0VG9TcGVlY2hTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy90ZXh0LXRvLXNwZWVjaC5zZXJ2aWNlJztcblxudHlwZSBUZXh0QXJlYUxpa2UgPSBIVE1MVGV4dEFyZWFFbGVtZW50IHwgRWxlbWVudFJlZjxIVE1MVGV4dEFyZWFFbGVtZW50PiB8IG51bGwgfCB1bmRlZmluZWQ7XG5cbmNvbnN0IFNQRUVDSF9SRUNPR05JVElPTl9QTEFDRUhPTERFUl9LRVkgPSAncGxhdGZvcm0uZGF0YWNvcmUuc3BlZWNoX3JlY29nbml0aW9uLnBsYWNlaG9sZGVyJztcbmNvbnN0IERFRkFVTFRfU1BFRUNIX1NJTEVOQ0VfVElNRU9VVF9NUyA9IDMwMDA7XG5jb25zdCBWT0lDRV9SQVRFX1NMT1cgPSAwLjc1O1xuY29uc3QgVk9JQ0VfUkFURV9OT1JNQUwgPSAxO1xuY29uc3QgVk9JQ0VfUkFURV9GQVNUID0gMS4yNTtcbmNvbnN0IFZPSUNFX1JBVEVfRkFTVEVSID0gMS41O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzZGMtc3BlZWNoLXJlY29nbml0aW9uJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZV0sXG4gIHByb3ZpZGVyczogW1NwZWVjaFJlY29nbml0aW9uU2VydmljZSwgVGV4dFRvU3BlZWNoU2VydmljZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9zcGVlY2gtcmVjb2duaXRpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vc3BlZWNoLXJlY29nbml0aW9uLmNvbXBvbmVudC5zY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLkVtdWxhdGVkXG59KVxuZXhwb3J0IGNsYXNzIFNwZWVjaFJlY29nbml0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSByZWFkb25seSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZSA9IGluamVjdChUcmFuc2xhdGVTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBzcGVlY2hSZWNvZ25pdGlvblNlcnZpY2UgPSBpbmplY3QoU3BlZWNoUmVjb2duaXRpb25TZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSB0ZXh0VG9TcGVlY2hTZXJ2aWNlID0gaW5qZWN0KFRleHRUb1NwZWVjaFNlcnZpY2UpO1xuXG4gIHByaXZhdGUgYmFzZVRleHQgPSAnJztcbiAgcHJpdmF0ZSB0cmFuc2NyaXB0ID0gJyc7XG5cbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgdGV4dEFyZWFFbGVtZW50ITogVGV4dEFyZWFMaWtlO1xuICBASW5wdXQoKSBrZWVwQ29udGV4dCA9IGZhbHNlO1xuICBASW5wdXQoKSBzcGVlY2hSZWNvZ25pdGlvblBsYWNlaG9sZGVyID0gJyc7XG4gIEBJbnB1dCgpIHNpbGVuY2VUaW1lb3V0TXMgPSBERUZBVUxUX1NQRUVDSF9TSUxFTkNFX1RJTUVPVVRfTVM7XG4gIEBJbnB1dCgpIGVuYWJsZVRleHRUb1NwZWVjaCA9IHRydWU7XG5cbiAgQE91dHB1dCgpIHJlY29nbml6ZWRUZXh0ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIEBPdXRwdXQoKSBwZXJtaXNzaW9uRGVuaWVkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgbGlzdGVuaW5nQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIHByb3RlY3RlZCBwcmV2aWV3VGV4dCA9ICcnO1xuICBwcm90ZWN0ZWQgbGlzdGVuaW5nID0gZmFsc2U7XG4gIHByb3RlY3RlZCBwZXJtaXNzaW9uRGVuaWVkU3RhdGUgPSBmYWxzZTtcbiAgcHJvdGVjdGVkIHNwZWFraW5nID0gZmFsc2U7XG4gIHByb3RlY3RlZCBwYXVzZWQgPSBmYWxzZTtcbiAgcHJvdGVjdGVkIHZvaWNlUmF0ZSA9IFZPSUNFX1JBVEVfTk9STUFMO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdm9pY2VSYXRlcyA9IFtWT0lDRV9SQVRFX1NMT1csIFZPSUNFX1JBVEVfTk9STUFMLCBWT0lDRV9SQVRFX0ZBU1QsIFZPSUNFX1JBVEVfRkFTVEVSXTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLnNwZWVjaFJlY29nbml0aW9uU2VydmljZS50cmFuc2NyaXB0JFxuICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCkpXG4gICAgICAuc3Vic2NyaWJlKCh0cmFuc2NyaXB0KSA9PiB7XG4gICAgICAgIHRoaXMudHJhbnNjcmlwdCA9IHRyYW5zY3JpcHQ7XG4gICAgICAgIHRoaXMucHJldmlld1RleHQgPSB0aGlzLmNvbWJpbmVSZWNvZ25pemVkVGV4dCh0aGlzLmJhc2VUZXh0LCB0cmFuc2NyaXB0KTtcbiAgICAgICAgdGhpcy5yZWNvZ25pemVkVGV4dC5lbWl0KHRoaXMucHJldmlld1RleHQpO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5zcGVlY2hSZWNvZ25pdGlvblNlcnZpY2UucGVybWlzc2lvbkRlbmllZCRcbiAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMucGVybWlzc2lvbkRlbmllZFN0YXRlID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5wZXJtaXNzaW9uRGVuaWVkLmVtaXQoKTtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICB9KTtcblxuICAgIHRoaXMuc3BlZWNoUmVjb2duaXRpb25TZXJ2aWNlLmxpc3RlbmluZyRcbiAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKVxuICAgICAgLnN1YnNjcmliZSgobGlzdGVuaW5nKSA9PiB7XG4gICAgICAgIHRoaXMubGlzdGVuaW5nID0gbGlzdGVuaW5nO1xuICAgICAgICB0aGlzLmxpc3RlbmluZ0NoYW5nZS5lbWl0KGxpc3RlbmluZyk7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLnRleHRUb1NwZWVjaFNlcnZpY2Uuc3BlYWtpbmckXG4gICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQoKSlcbiAgICAgIC5zdWJzY3JpYmUoKHNwZWFraW5nKSA9PiB7XG4gICAgICAgIHRoaXMuc3BlYWtpbmcgPSBzcGVha2luZztcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICB9KTtcblxuICAgIHRoaXMudGV4dFRvU3BlZWNoU2VydmljZS5wYXVzZWQkXG4gICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQoKSlcbiAgICAgIC5zdWJzY3JpYmUoKHBhdXNlZCkgPT4ge1xuICAgICAgICB0aGlzLnBhdXNlZCA9IHBhdXNlZDtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICB9KTtcblxuICAgIHRoaXMudHJhbnNsYXRlLm9uTGFuZ0NoYW5nZS5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jZHIubWFya0ZvckNoZWNrKCkpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zcGVlY2hSZWNvZ25pdGlvblNlcnZpY2UuYWJvcnQoKTtcbiAgICB0aGlzLnRleHRUb1NwZWVjaFNlcnZpY2UuY2FuY2VsKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IGNhbkxpc3RlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5yZWNvZ25pdGlvblN1cHBvcnRlZCAmJiAhIXRoaXMuZ2V0VGV4dEFyZWEoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgY2FuQXBwbHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5nZXRUZXh0QXJlYSgpICYmIHRoaXMucHJldmlld1RleHQudHJpbSgpLmxlbmd0aCA+IDA7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IGNhblNwZWFrKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmVuYWJsZVRleHRUb1NwZWVjaFxuICAgICAgJiYgdGhpcy50ZXh0VG9TcGVlY2hTZXJ2aWNlLnN1cHBvcnRlZFxuICAgICAgJiYgdGhpcy5yZXNvbHZlU3BlZWNoU291cmNlVGV4dCgpLnRyaW0oKS5sZW5ndGggPiAwO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCByZWNvZ25pdGlvblN1cHBvcnRlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zcGVlY2hSZWNvZ25pdGlvblNlcnZpY2Uuc3VwcG9ydGVkO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBwYXVzZUFjdGlvbkxhYmVsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucGF1c2VkXG4gICAgICA/IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3BsYXRmb3JtLmRhdGFjb3JlLnNwZWVjaF9yZWNvZ25pdGlvbi5yZXN1bWUnKVxuICAgICAgOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdwbGF0Zm9ybS5kYXRhY29yZS5zcGVlY2hfcmVjb2duaXRpb24ucGF1c2UnKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgcHJldmlld1BsYWNlaG9sZGVyKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHJlc29sdmVUcmFuc2xhdGFibGVUZXh0KFxuICAgICAgdGhpcy50cmFuc2xhdGUsXG4gICAgICB0aGlzLnNwZWVjaFJlY29nbml0aW9uUGxhY2Vob2xkZXIsXG4gICAgICBTUEVFQ0hfUkVDT0dOSVRJT05fUExBQ0VIT0xERVJfS0VZXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgcHJldmlld1ZhbHVlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucHJldmlld1RleHQudHJpbSgpXG4gICAgICB8fCB0aGlzLnByZXZpZXdQbGFjZWhvbGRlclxuICAgICAgfHwgdGhpcy50cmFuc2xhdGUuaW5zdGFudCgncGxhdGZvcm0uZGF0YWNvcmUuc3BlZWNoX3JlY29nbml0aW9uLmVtcHR5X3ByZXZpZXcnKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgc3RhdHVzTWVzc2FnZSgpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5yZWNvZ25pdGlvblN1cHBvcnRlZCkge1xuICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3BsYXRmb3JtLmRhdGFjb3JlLnNwZWVjaF9yZWNvZ25pdGlvbi51bnN1cHBvcnRlZCcpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5nZXRUZXh0QXJlYSgpKSB7XG4gICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgncGxhdGZvcm0uZGF0YWNvcmUuc3BlZWNoX3JlY29nbml0aW9uLm1pc3NpbmdfdGFyZ2V0Jyk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucGVybWlzc2lvbkRlbmllZFN0YXRlKSB7XG4gICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgncGxhdGZvcm0uZGF0YWNvcmUuc3BlZWNoX3JlY29nbml0aW9uLnBlcm1pc3Npb25fZGVuaWVkJyk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMubGlzdGVuaW5nKSB7XG4gICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgncGxhdGZvcm0uZGF0YWNvcmUuc3BlZWNoX3JlY29nbml0aW9uLmxpc3RlbmluZycpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdwbGF0Zm9ybS5kYXRhY29yZS5zcGVlY2hfcmVjb2duaXRpb24uaWRsZScpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHRvZ2dsZUxpc3RlbmluZygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5saXN0ZW5pbmcpIHtcbiAgICAgIHRoaXMuc3BlZWNoUmVjb2duaXRpb25TZXJ2aWNlLnN0b3AoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuY2FuTGlzdGVuKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5wZXJtaXNzaW9uRGVuaWVkU3RhdGUgPSBmYWxzZTtcbiAgICB0aGlzLmJhc2VUZXh0ID0gdGhpcy5rZWVwQ29udGV4dCA/IHRoaXMucmVhZEN1cnJlbnRUZXh0KCkgOiAnJztcbiAgICB0aGlzLnRyYW5zY3JpcHQgPSAnJztcbiAgICB0aGlzLnByZXZpZXdUZXh0ID0gdGhpcy5iYXNlVGV4dDtcbiAgICB0aGlzLnNwZWVjaFJlY29nbml0aW9uU2VydmljZS5zdGFydCh7XG4gICAgICBsYW5nOiByZXNvbHZlU3BlZWNoTG9jYWxlKHRoaXMudHJhbnNsYXRlLmN1cnJlbnRMYW5nKSxcbiAgICAgIHNpbGVuY2VUaW1lb3V0TXM6IE1hdGgubWF4KDAsIHRoaXMuc2lsZW5jZVRpbWVvdXRNcylcbiAgICB9KTtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBkaXNjYXJkUmVjb2duaXRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5zcGVlY2hSZWNvZ25pdGlvblNlcnZpY2Uuc3RvcCgpO1xuICAgIHRoaXMudHJhbnNjcmlwdCA9ICcnO1xuICAgIHRoaXMuYmFzZVRleHQgPSB0aGlzLmtlZXBDb250ZXh0ID8gdGhpcy5yZWFkQ3VycmVudFRleHQoKSA6ICcnO1xuICAgIHRoaXMucHJldmlld1RleHQgPSB0aGlzLmtlZXBDb250ZXh0ID8gdGhpcy5iYXNlVGV4dCA6ICcnO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFwcGx5UmVjb2duaXplZFRleHQoKTogdm9pZCB7XG4gICAgY29uc3QgdGV4dEFyZWEgPSB0aGlzLmdldFRleHRBcmVhKCk7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLnByZXZpZXdUZXh0LnRyaW0oKTtcblxuICAgIGlmICghdGV4dEFyZWEgfHwgIXZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGV4dEFyZWEudmFsdWUgPSB2YWx1ZTtcbiAgICB0ZXh0QXJlYS5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnaW5wdXQnLCB7IGJ1YmJsZXM6IHRydWUgfSkpO1xuICAgIHRleHRBcmVhLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdjaGFuZ2UnLCB7IGJ1YmJsZXM6IHRydWUgfSkpO1xuICAgIHRoaXMuc3BlZWNoUmVjb2duaXRpb25TZXJ2aWNlLnN0b3AoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBwbGF5U3BlZWNoKCk6IHZvaWQge1xuICAgIGNvbnN0IHRleHQgPSB0aGlzLnJlc29sdmVTcGVlY2hTb3VyY2VUZXh0KCkudHJpbSgpO1xuXG4gICAgaWYgKCF0ZXh0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy50ZXh0VG9TcGVlY2hTZXJ2aWNlLnNwZWFrKHRleHQsIHtcbiAgICAgIGxhbmc6IHJlc29sdmVTcGVlY2hMb2NhbGUodGhpcy50cmFuc2xhdGUuY3VycmVudExhbmcpLFxuICAgICAgcmF0ZTogdGhpcy52b2ljZVJhdGVcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCB0b2dnbGVQYXVzZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5wYXVzZWQpIHtcbiAgICAgIHRoaXMudGV4dFRvU3BlZWNoU2VydmljZS5yZXN1bWUoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnRleHRUb1NwZWVjaFNlcnZpY2UucGF1c2UoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZXN0YXJ0U3BlZWNoKCk6IHZvaWQge1xuICAgIGNvbnN0IHRleHQgPSB0aGlzLnJlc29sdmVTcGVlY2hTb3VyY2VUZXh0KCkudHJpbSgpO1xuXG4gICAgaWYgKCF0ZXh0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy50ZXh0VG9TcGVlY2hTZXJ2aWNlLnJlc3RhcnQodGV4dCwge1xuICAgICAgbGFuZzogcmVzb2x2ZVNwZWVjaExvY2FsZSh0aGlzLnRyYW5zbGF0ZS5jdXJyZW50TGFuZyksXG4gICAgICByYXRlOiB0aGlzLnZvaWNlUmF0ZVxuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHVwZGF0ZVZvaWNlUmF0ZSh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgcGFyc2VkVmFsdWUgPSB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnID8gTnVtYmVyKHZhbHVlKSA6IHZhbHVlO1xuICAgIHRoaXMudm9pY2VSYXRlID0gTnVtYmVyLmlzRmluaXRlKHBhcnNlZFZhbHVlKSAmJiBwYXJzZWRWYWx1ZSA+IDAgPyBwYXJzZWRWYWx1ZSA6IDE7XG4gIH1cblxuICBwcml2YXRlIGNvbWJpbmVSZWNvZ25pemVkVGV4dChiYXNlVGV4dDogc3RyaW5nLCB0cmFuc2NyaXB0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHBhcnRzID0gW2Jhc2VUZXh0LnRyaW0oKSwgdHJhbnNjcmlwdC50cmltKCldLmZpbHRlcihCb29sZWFuKTtcbiAgICByZXR1cm4gcGFydHMuam9pbignICcpLnRyaW0oKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZEN1cnJlbnRUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0VGV4dEFyZWEoKT8udmFsdWU/LnRyaW0oKSA/PyAnJztcbiAgfVxuXG4gIHByaXZhdGUgcmVzb2x2ZVNwZWVjaFNvdXJjZVRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wcmV2aWV3VGV4dC50cmltKCkgfHwgdGhpcy5yZWFkQ3VycmVudFRleHQoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VGV4dEFyZWEoKTogSFRNTFRleHRBcmVhRWxlbWVudCB8IG51bGwge1xuICAgIGlmICghdGhpcy50ZXh0QXJlYUVsZW1lbnQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnRleHRBcmVhRWxlbWVudCBpbnN0YW5jZW9mIEVsZW1lbnRSZWYpIHtcbiAgICAgIHJldHVybiB0aGlzLnRleHRBcmVhRWxlbWVudC5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnRleHRBcmVhRWxlbWVudDtcbiAgfVxufVxuXG5mdW5jdGlvbiByZXNvbHZlU3BlZWNoTG9jYWxlKGxhbmd1YWdlOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBzdHJpbmcge1xuICBpZiAobGFuZ3VhZ2UgPT09ICdlbicpIHtcbiAgICByZXR1cm4gJ2VuLVVTJztcbiAgfVxuXG4gIGlmIChsYW5ndWFnZSA9PT0gJ2VzLUNPJykge1xuICAgIHJldHVybiAnZXMtQ08nO1xuICB9XG5cbiAgcmV0dXJuICdwdC1CUic7XG59XG4iLCI8c2VjdGlvblxuICBjbGFzcz1cInNkYy1zcGVlY2gtcmVjb2duaXRpb25cIlxuICBbY2xhc3Muc2RjLXNwZWVjaC1yZWNvZ25pdGlvbi0tdW5zdXBwb3J0ZWRdPVwiIXJlY29nbml0aW9uU3VwcG9ydGVkXCJcbj5cbiAgPGRpdiBjbGFzcz1cInNkYy1zcGVlY2gtcmVjb2duaXRpb25fX3Rvb2xiYXJcIj5cbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cInNkYy1zcGVlY2gtcmVjb2duaXRpb25fX2J1dHRvbiBzZGMtc3BlZWNoLXJlY29nbml0aW9uX19idXR0b24tLXByaW1hcnlcIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBbZGlzYWJsZWRdPVwiIWNhbkxpc3RlblwiXG4gICAgICAoY2xpY2spPVwidG9nZ2xlTGlzdGVuaW5nKClcIlxuICAgID5cbiAgICAgIHt7XG4gICAgICAgIGxpc3RlbmluZ1xuICAgICAgICAgID8gKCdwbGF0Zm9ybS5kYXRhY29yZS5zcGVlY2hfcmVjb2duaXRpb24uc3RvcCcgfCB0cmFuc2xhdGUpXG4gICAgICAgICAgOiAoJ3BsYXRmb3JtLmRhdGFjb3JlLnNwZWVjaF9yZWNvZ25pdGlvbi5saXN0ZW4nIHwgdHJhbnNsYXRlKVxuICAgICAgfX1cbiAgICA8L2J1dHRvbj5cblxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzPVwic2RjLXNwZWVjaC1yZWNvZ25pdGlvbl9fYnV0dG9uXCJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgW2Rpc2FibGVkXT1cIiFwcmV2aWV3VGV4dC50cmltKClcIlxuICAgICAgKGNsaWNrKT1cImRpc2NhcmRSZWNvZ25pdGlvbigpXCJcbiAgICA+XG4gICAgICB7eyAncGxhdGZvcm0uZGF0YWNvcmUuc3BlZWNoX3JlY29nbml0aW9uLmRpc2NhcmQnIHwgdHJhbnNsYXRlIH19XG4gICAgPC9idXR0b24+XG5cbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cInNkYy1zcGVlY2gtcmVjb2duaXRpb25fX2J1dHRvblwiXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIFtkaXNhYmxlZF09XCIhY2FuQXBwbHlcIlxuICAgICAgKGNsaWNrKT1cImFwcGx5UmVjb2duaXplZFRleHQoKVwiXG4gICAgPlxuICAgICAge3sgJ3BsYXRmb3JtLmRhdGFjb3JlLnNwZWVjaF9yZWNvZ25pdGlvbi5hcHBseScgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cInNkYy1zcGVlY2gtcmVjb2duaXRpb25fX3ByZXZpZXdcIj5cbiAgICA8c3BhbiBjbGFzcz1cInNkYy1zcGVlY2gtcmVjb2duaXRpb25fX2xhYmVsXCI+XG4gICAgICB7eyAncGxhdGZvcm0uZGF0YWNvcmUuc3BlZWNoX3JlY29nbml0aW9uLnByZXZpZXcnIHwgdHJhbnNsYXRlIH19XG4gICAgPC9zcGFuPlxuICAgIDxkaXYgY2xhc3M9XCJzZGMtc3BlZWNoLXJlY29nbml0aW9uX19wcmV2aWV3VmFsdWVcIj5cbiAgICAgIHt7IHByZXZpZXdWYWx1ZSB9fVxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2ICpuZ0lmPVwiZW5hYmxlVGV4dFRvU3BlZWNoXCIgY2xhc3M9XCJzZGMtc3BlZWNoLXJlY29nbml0aW9uX190dHNcIj5cbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cInNkYy1zcGVlY2gtcmVjb2duaXRpb25fX2J1dHRvblwiXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIFtkaXNhYmxlZF09XCIhY2FuU3BlYWtcIlxuICAgICAgKGNsaWNrKT1cInBsYXlTcGVlY2goKVwiXG4gICAgPlxuICAgICAge3sgJ3BsYXRmb3JtLmRhdGFjb3JlLnNwZWVjaF9yZWNvZ25pdGlvbi5wbGF5JyB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvYnV0dG9uPlxuXG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJzZGMtc3BlZWNoLXJlY29nbml0aW9uX19idXR0b25cIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBbZGlzYWJsZWRdPVwiIXNwZWFraW5nICYmICFwYXVzZWRcIlxuICAgICAgKGNsaWNrKT1cInRvZ2dsZVBhdXNlKClcIlxuICAgID5cbiAgICAgIHt7IHBhdXNlQWN0aW9uTGFiZWwgfX1cbiAgICA8L2J1dHRvbj5cblxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzPVwic2RjLXNwZWVjaC1yZWNvZ25pdGlvbl9fYnV0dG9uXCJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgW2Rpc2FibGVkXT1cIiFjYW5TcGVha1wiXG4gICAgICAoY2xpY2spPVwicmVzdGFydFNwZWVjaCgpXCJcbiAgICA+XG4gICAgICB7eyAncGxhdGZvcm0uZGF0YWNvcmUuc3BlZWNoX3JlY29nbml0aW9uLnJlc3RhcnQnIHwgdHJhbnNsYXRlIH19XG4gICAgPC9idXR0b24+XG5cbiAgICA8bGFiZWwgY2xhc3M9XCJzZGMtc3BlZWNoLXJlY29nbml0aW9uX19zcGVlZFwiPlxuICAgICAgPHNwYW4+e3sgJ3BsYXRmb3JtLmRhdGFjb3JlLnNwZWVjaF9yZWNvZ25pdGlvbi5zcGVlZCcgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICA8c2VsZWN0XG4gICAgICAgIGNsYXNzPVwic2RjLXNwZWVjaC1yZWNvZ25pdGlvbl9fc2VsZWN0XCJcbiAgICAgICAgW25nTW9kZWxdPVwidm9pY2VSYXRlXCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidXBkYXRlVm9pY2VSYXRlKCRldmVudClcIlxuICAgICAgPlxuICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCByYXRlIG9mIHZvaWNlUmF0ZXNcIiBbbmdWYWx1ZV09XCJyYXRlXCI+XG4gICAgICAgICAge3sgcmF0ZSB9fXhcbiAgICAgICAgPC9vcHRpb24+XG4gICAgICA8L3NlbGVjdD5cbiAgICA8L2xhYmVsPlxuICA8L2Rpdj5cblxuICA8cCBjbGFzcz1cInNkYy1zcGVlY2gtcmVjb2duaXRpb25fX3N0YXR1c1wiPlxuICAgIHt7IHN0YXR1c01lc3NhZ2UgfX1cbiAgPC9wPlxuPC9zZWN0aW9uPlxuIl19
|
|
243
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlZWNoLXJlY29nbml0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9zcmMvZmVhdHVyZXMvc3BlZWNoLXJlY29nbml0aW9uL3NwZWVjaC1yZWNvZ25pdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL3NwZWVjaC1yZWNvZ25pdGlvbi9zcGVlY2gtcmVjb2duaXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04saUJBQWlCLEVBQ2pCLE1BQU0sRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXhFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7OztBQUl4RSxNQUFNLGtDQUFrQyxHQUFHLGtEQUFrRCxDQUFDO0FBQzlGLE1BQU0saUNBQWlDLEdBQUcsSUFBSSxDQUFDO0FBQy9DLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQztBQUM3QixNQUFNLGlCQUFpQixHQUFHLENBQUMsQ0FBQztBQUM1QixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUM7QUFDN0IsTUFBTSxpQkFBaUIsR0FBRyxHQUFHLENBQUM7QUFZOUIsTUFBTSxPQUFPLDBCQUEwQjtJQUNwQixHQUFHLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDaEMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3JDLHdCQUF3QixHQUFHLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0lBQzVELG1CQUFtQixHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBRTNELFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDZCxVQUFVLEdBQUcsRUFBRSxDQUFDO0lBRUcsZUFBZSxDQUFnQjtJQUNqRCxXQUFXLEdBQUcsS0FBSyxDQUFDO0lBQ3BCLDRCQUE0QixHQUFHLEVBQUUsQ0FBQztJQUNsQyxnQkFBZ0IsR0FBRyxpQ0FBaUMsQ0FBQztJQUNyRCxrQkFBa0IsR0FBRyxJQUFJLENBQUM7SUFFekIsY0FBYyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7SUFDNUMsZ0JBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztJQUM1QyxlQUFlLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztJQUU5QyxXQUFXLEdBQUcsRUFBRSxDQUFDO0lBQ2pCLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDbEIscUJBQXFCLEdBQUcsS0FBSyxDQUFDO0lBQzlCLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDakIsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUNmLFNBQVMsR0FBRyxpQkFBaUIsQ0FBQztJQUNyQixVQUFVLEdBQUcsQ0FBQyxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLGlCQUFpQixDQUFDLENBQUM7SUFFekc7UUFDRSxJQUFJLENBQUMsd0JBQXdCLENBQUMsV0FBVzthQUN0QyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQzthQUMxQixTQUFTLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRTtZQUN4QixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztZQUM3QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQ3pFLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUMzQyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFDO1FBRUwsSUFBSSxDQUFDLHdCQUF3QixDQUFDLGlCQUFpQjthQUM1QyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQzthQUMxQixTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQztZQUNsQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUMxQixDQUFDLENBQUMsQ0FBQztRQUVMLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxVQUFVO2FBQ3JDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO2FBQzFCLFNBQVMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1lBQzNCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3JDLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQUM7UUFFTCxJQUFJLENBQUMsbUJBQW1CLENBQUMsU0FBUzthQUMvQixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQzthQUMxQixTQUFTLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztZQUN6QixJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFDO1FBRUwsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU87YUFDN0IsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7YUFDMUIsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDcEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7WUFDckIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUMxQixDQUFDLENBQUMsQ0FBQztRQUVMLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUNsRyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN0QyxJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVELElBQWMsU0FBUztRQUNyQixPQUFPLElBQUksQ0FBQyxvQkFBb0IsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzNELENBQUM7SUFFRCxJQUFjLFFBQVE7UUFDcEIsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQsSUFBYyxRQUFRO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQjtlQUN6QixJQUFJLENBQUMsbUJBQW1CLENBQUMsU0FBUztlQUNsQyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRCxJQUFjLG9CQUFvQjtRQUNoQyxPQUFPLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxTQUFTLENBQUM7SUFDakQsQ0FBQztJQUVELElBQWMsZ0JBQWdCO1FBQzVCLE9BQU8sSUFBSSxDQUFDLE1BQU07WUFDaEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLDZDQUE2QyxDQUFDO1lBQ3ZFLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFFRCxJQUFjLGtCQUFrQjtRQUM5QixPQUFPLHVCQUF1QixDQUM1QixJQUFJLENBQUMsU0FBUyxFQUNkLElBQUksQ0FBQyw0QkFBNEIsRUFDakMsa0NBQWtDLENBQ25DLENBQUM7SUFDSixDQUFDO0lBRUQsSUFBYyxZQUFZO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUU7ZUFDekIsSUFBSSxDQUFDLGtCQUFrQjtlQUN2QixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxvREFBb0QsQ0FBQyxDQUFDO0lBQ3BGLENBQUM7SUFFRCxJQUFjLGFBQWE7UUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1lBQy9CLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsa0RBQWtELENBQUMsQ0FBQztRQUNwRixDQUFDO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1lBQ3hCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMscURBQXFELENBQUMsQ0FBQztRQUN2RixDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUMvQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLHdEQUF3RCxDQUFDLENBQUM7UUFDMUYsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ25CLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsZ0RBQWdELENBQUMsQ0FBQztRQUNsRixDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFUyxlQUFlO1FBQ3ZCLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNyQyxPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDcEIsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMscUJBQXFCLEdBQUcsS0FBSyxDQUFDO1FBQ25DLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDL0QsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ2pDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxLQUFLLENBQUM7WUFDbEMsSUFBSSxFQUFFLG1CQUFtQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDO1lBQ3JELGdCQUFnQixFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztTQUNyRCxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFUyxrQkFBa0I7UUFDMUIsSUFBSSxDQUFDLHdCQUF3QixDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDL0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDekQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRVMsbUJBQW1CO1FBQzNCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNwQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO1FBRXRDLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN4QixPQUFPO1FBQ1QsQ0FBQztRQUVELFFBQVEsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLFFBQVEsQ0FBQyxhQUFhLENBQUMsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM5RCxRQUFRLENBQUMsYUFBYSxDQUFDLElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDL0QsSUFBSSxDQUFDLHdCQUF3QixDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFUyxVQUFVO1FBQ2xCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO1FBRW5ELElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNWLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUU7WUFDbkMsSUFBSSxFQUFFLG1CQUFtQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDO1lBQ3JELElBQUksRUFBRSxJQUFJLENBQUMsU0FBUztTQUNyQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRVMsV0FBVztRQUNuQixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDbEMsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVTLGFBQWE7UUFDckIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFbkQsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1YsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRTtZQUNyQyxJQUFJLEVBQUUsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUM7WUFDckQsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTO1NBQ3JCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFUyxlQUFlLENBQUMsS0FBc0I7UUFDOUMsTUFBTSxXQUFXLEdBQUcsT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUN0RSxJQUFJLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksV0FBVyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDckYsQ0FBQztJQUVPLHFCQUFxQixDQUFDLFFBQWdCLEVBQUUsVUFBa0I7UUFDaEUsTUFBTSxLQUFLLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLEVBQUUsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ25FLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRU8sZUFBZTtRQUNyQixPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDO0lBQ2pELENBQUM7SUFFTyx1QkFBdUI7UUFDN0IsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUMzRCxDQUFDO0lBRU8sV0FBVztRQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQzFCLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLGVBQWUsWUFBWSxVQUFVLEVBQUUsQ0FBQztZQUMvQyxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDO1FBQzVDLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDOUIsQ0FBQzt3R0EvT1UsMEJBQTBCOzRGQUExQiwwQkFBMEIsd1pBTjFCLENBQUMsd0JBQXdCLEVBQUUsbUJBQW1CLENBQUMsMEJDbEM1RCw4cEZBNEZBLHkvREQzRFksWUFBWSwrUEFBRSxXQUFXLHl2QkFBRSxlQUFlOzs0RkFPekMsMEJBQTBCO2tCQVZ0QyxTQUFTOytCQUNFLHdCQUF3QixjQUN0QixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLGVBQWUsQ0FBQyxhQUMxQyxDQUFDLHdCQUF3QixFQUFFLG1CQUFtQixDQUFDLG1CQUd6Qyx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxRQUFRO3dEQVdkLGVBQWU7c0JBQXpDLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUNoQixXQUFXO3NCQUFuQixLQUFLO2dCQUNHLDRCQUE0QjtzQkFBcEMsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUVJLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0csZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUNHLGVBQWU7c0JBQXhCLE1BQU07O0FBaU9ULFNBQVMsbUJBQW1CLENBQUMsUUFBNEI7SUFDdkQsSUFBSSxRQUFRLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDdEIsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELElBQUksUUFBUSxLQUFLLE9BQU8sRUFBRSxDQUFDO1FBQ3pCLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIGluamVjdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlLCBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbmltcG9ydCB7IHJlc29sdmVUcmFuc2xhdGFibGVUZXh0IH0gZnJvbSAnLi4vLi4vY29yZS91dGlscy9pMThuLnV0aWwnO1xuaW1wb3J0IHsgU3BlZWNoUmVjb2duaXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9zcGVlY2gtcmVjb2duaXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBUZXh0VG9TcGVlY2hTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy90ZXh0LXRvLXNwZWVjaC5zZXJ2aWNlJztcblxudHlwZSBUZXh0QXJlYUxpa2UgPSBIVE1MVGV4dEFyZWFFbGVtZW50IHwgRWxlbWVudFJlZjxIVE1MVGV4dEFyZWFFbGVtZW50PiB8IG51bGwgfCB1bmRlZmluZWQ7XG5cbmNvbnN0IFNQRUVDSF9SRUNPR05JVElPTl9QTEFDRUhPTERFUl9LRVkgPSAncGxhdGZvcm0uZGF0YWNvcmUuc3BlZWNoX3JlY29nbml0aW9uX3BsYWNlaG9sZGVyJztcbmNvbnN0IERFRkFVTFRfU1BFRUNIX1NJTEVOQ0VfVElNRU9VVF9NUyA9IDMwMDA7XG5jb25zdCBWT0lDRV9SQVRFX1NMT1cgPSAwLjc1O1xuY29uc3QgVk9JQ0VfUkFURV9OT1JNQUwgPSAxO1xuY29uc3QgVk9JQ0VfUkFURV9GQVNUID0gMS4yNTtcbmNvbnN0IFZPSUNFX1JBVEVfRkFTVEVSID0gMS41O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzZGMtc3BlZWNoLXJlY29nbml0aW9uJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZV0sXG4gIHByb3ZpZGVyczogW1NwZWVjaFJlY29nbml0aW9uU2VydmljZSwgVGV4dFRvU3BlZWNoU2VydmljZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9zcGVlY2gtcmVjb2duaXRpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vc3BlZWNoLXJlY29nbml0aW9uLmNvbXBvbmVudC5zY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLkVtdWxhdGVkXG59KVxuZXhwb3J0IGNsYXNzIFNwZWVjaFJlY29nbml0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSByZWFkb25seSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZSA9IGluamVjdChUcmFuc2xhdGVTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBzcGVlY2hSZWNvZ25pdGlvblNlcnZpY2UgPSBpbmplY3QoU3BlZWNoUmVjb2duaXRpb25TZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSB0ZXh0VG9TcGVlY2hTZXJ2aWNlID0gaW5qZWN0KFRleHRUb1NwZWVjaFNlcnZpY2UpO1xuXG4gIHByaXZhdGUgYmFzZVRleHQgPSAnJztcbiAgcHJpdmF0ZSB0cmFuc2NyaXB0ID0gJyc7XG5cbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgdGV4dEFyZWFFbGVtZW50ITogVGV4dEFyZWFMaWtlO1xuICBASW5wdXQoKSBrZWVwQ29udGV4dCA9IGZhbHNlO1xuICBASW5wdXQoKSBzcGVlY2hSZWNvZ25pdGlvblBsYWNlaG9sZGVyID0gJyc7XG4gIEBJbnB1dCgpIHNpbGVuY2VUaW1lb3V0TXMgPSBERUZBVUxUX1NQRUVDSF9TSUxFTkNFX1RJTUVPVVRfTVM7XG4gIEBJbnB1dCgpIGVuYWJsZVRleHRUb1NwZWVjaCA9IHRydWU7XG5cbiAgQE91dHB1dCgpIHJlY29nbml6ZWRUZXh0ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIEBPdXRwdXQoKSBwZXJtaXNzaW9uRGVuaWVkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgbGlzdGVuaW5nQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIHByb3RlY3RlZCBwcmV2aWV3VGV4dCA9ICcnO1xuICBwcm90ZWN0ZWQgbGlzdGVuaW5nID0gZmFsc2U7XG4gIHByb3RlY3RlZCBwZXJtaXNzaW9uRGVuaWVkU3RhdGUgPSBmYWxzZTtcbiAgcHJvdGVjdGVkIHNwZWFraW5nID0gZmFsc2U7XG4gIHByb3RlY3RlZCBwYXVzZWQgPSBmYWxzZTtcbiAgcHJvdGVjdGVkIHZvaWNlUmF0ZSA9IFZPSUNFX1JBVEVfTk9STUFMO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdm9pY2VSYXRlcyA9IFtWT0lDRV9SQVRFX1NMT1csIFZPSUNFX1JBVEVfTk9STUFMLCBWT0lDRV9SQVRFX0ZBU1QsIFZPSUNFX1JBVEVfRkFTVEVSXTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLnNwZWVjaFJlY29nbml0aW9uU2VydmljZS50cmFuc2NyaXB0JFxuICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCkpXG4gICAgICAuc3Vic2NyaWJlKCh0cmFuc2NyaXB0KSA9PiB7XG4gICAgICAgIHRoaXMudHJhbnNjcmlwdCA9IHRyYW5zY3JpcHQ7XG4gICAgICAgIHRoaXMucHJldmlld1RleHQgPSB0aGlzLmNvbWJpbmVSZWNvZ25pemVkVGV4dCh0aGlzLmJhc2VUZXh0LCB0cmFuc2NyaXB0KTtcbiAgICAgICAgdGhpcy5yZWNvZ25pemVkVGV4dC5lbWl0KHRoaXMucHJldmlld1RleHQpO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5zcGVlY2hSZWNvZ25pdGlvblNlcnZpY2UucGVybWlzc2lvbkRlbmllZCRcbiAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMucGVybWlzc2lvbkRlbmllZFN0YXRlID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5wZXJtaXNzaW9uRGVuaWVkLmVtaXQoKTtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICB9KTtcblxuICAgIHRoaXMuc3BlZWNoUmVjb2duaXRpb25TZXJ2aWNlLmxpc3RlbmluZyRcbiAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKVxuICAgICAgLnN1YnNjcmliZSgobGlzdGVuaW5nKSA9PiB7XG4gICAgICAgIHRoaXMubGlzdGVuaW5nID0gbGlzdGVuaW5nO1xuICAgICAgICB0aGlzLmxpc3RlbmluZ0NoYW5nZS5lbWl0KGxpc3RlbmluZyk7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLnRleHRUb1NwZWVjaFNlcnZpY2Uuc3BlYWtpbmckXG4gICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQoKSlcbiAgICAgIC5zdWJzY3JpYmUoKHNwZWFraW5nKSA9PiB7XG4gICAgICAgIHRoaXMuc3BlYWtpbmcgPSBzcGVha2luZztcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICB9KTtcblxuICAgIHRoaXMudGV4dFRvU3BlZWNoU2VydmljZS5wYXVzZWQkXG4gICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQoKSlcbiAgICAgIC5zdWJzY3JpYmUoKHBhdXNlZCkgPT4ge1xuICAgICAgICB0aGlzLnBhdXNlZCA9IHBhdXNlZDtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICB9KTtcblxuICAgIHRoaXMudHJhbnNsYXRlLm9uTGFuZ0NoYW5nZS5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jZHIubWFya0ZvckNoZWNrKCkpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zcGVlY2hSZWNvZ25pdGlvblNlcnZpY2UuYWJvcnQoKTtcbiAgICB0aGlzLnRleHRUb1NwZWVjaFNlcnZpY2UuY2FuY2VsKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IGNhbkxpc3RlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5yZWNvZ25pdGlvblN1cHBvcnRlZCAmJiAhIXRoaXMuZ2V0VGV4dEFyZWEoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgY2FuQXBwbHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5nZXRUZXh0QXJlYSgpICYmIHRoaXMucHJldmlld1RleHQudHJpbSgpLmxlbmd0aCA+IDA7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IGNhblNwZWFrKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmVuYWJsZVRleHRUb1NwZWVjaFxuICAgICAgJiYgdGhpcy50ZXh0VG9TcGVlY2hTZXJ2aWNlLnN1cHBvcnRlZFxuICAgICAgJiYgdGhpcy5yZXNvbHZlU3BlZWNoU291cmNlVGV4dCgpLnRyaW0oKS5sZW5ndGggPiAwO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCByZWNvZ25pdGlvblN1cHBvcnRlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zcGVlY2hSZWNvZ25pdGlvblNlcnZpY2Uuc3VwcG9ydGVkO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBwYXVzZUFjdGlvbkxhYmVsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucGF1c2VkXG4gICAgICA/IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3BsYXRmb3JtLmRhdGFjb3JlLnNwZWVjaF9yZWNvZ25pdGlvbl9yZXN1bWUnKVxuICAgICAgOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdwbGF0Zm9ybS5kYXRhY29yZS5zcGVlY2hfcmVjb2duaXRpb25fcGF1c2UnKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgcHJldmlld1BsYWNlaG9sZGVyKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHJlc29sdmVUcmFuc2xhdGFibGVUZXh0KFxuICAgICAgdGhpcy50cmFuc2xhdGUsXG4gICAgICB0aGlzLnNwZWVjaFJlY29nbml0aW9uUGxhY2Vob2xkZXIsXG4gICAgICBTUEVFQ0hfUkVDT0dOSVRJT05fUExBQ0VIT0xERVJfS0VZXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgcHJldmlld1ZhbHVlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucHJldmlld1RleHQudHJpbSgpXG4gICAgICB8fCB0aGlzLnByZXZpZXdQbGFjZWhvbGRlclxuICAgICAgfHwgdGhpcy50cmFuc2xhdGUuaW5zdGFudCgncGxhdGZvcm0uZGF0YWNvcmUuc3BlZWNoX3JlY29nbml0aW9uX2VtcHR5X3ByZXZpZXcnKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgc3RhdHVzTWVzc2FnZSgpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5yZWNvZ25pdGlvblN1cHBvcnRlZCkge1xuICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3BsYXRmb3JtLmRhdGFjb3JlLnNwZWVjaF9yZWNvZ25pdGlvbl91bnN1cHBvcnRlZCcpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5nZXRUZXh0QXJlYSgpKSB7XG4gICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgncGxhdGZvcm0uZGF0YWNvcmUuc3BlZWNoX3JlY29nbml0aW9uX21pc3NpbmdfdGFyZ2V0Jyk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucGVybWlzc2lvbkRlbmllZFN0YXRlKSB7XG4gICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgncGxhdGZvcm0uZGF0YWNvcmUuc3BlZWNoX3JlY29nbml0aW9uX3Blcm1pc3Npb25fZGVuaWVkJyk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMubGlzdGVuaW5nKSB7XG4gICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgncGxhdGZvcm0uZGF0YWNvcmUuc3BlZWNoX3JlY29nbml0aW9uX2xpc3RlbmluZycpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdwbGF0Zm9ybS5kYXRhY29yZS5zcGVlY2hfcmVjb2duaXRpb25faWRsZScpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHRvZ2dsZUxpc3RlbmluZygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5saXN0ZW5pbmcpIHtcbiAgICAgIHRoaXMuc3BlZWNoUmVjb2duaXRpb25TZXJ2aWNlLnN0b3AoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuY2FuTGlzdGVuKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5wZXJtaXNzaW9uRGVuaWVkU3RhdGUgPSBmYWxzZTtcbiAgICB0aGlzLmJhc2VUZXh0ID0gdGhpcy5rZWVwQ29udGV4dCA/IHRoaXMucmVhZEN1cnJlbnRUZXh0KCkgOiAnJztcbiAgICB0aGlzLnRyYW5zY3JpcHQgPSAnJztcbiAgICB0aGlzLnByZXZpZXdUZXh0ID0gdGhpcy5iYXNlVGV4dDtcbiAgICB0aGlzLnNwZWVjaFJlY29nbml0aW9uU2VydmljZS5zdGFydCh7XG4gICAgICBsYW5nOiByZXNvbHZlU3BlZWNoTG9jYWxlKHRoaXMudHJhbnNsYXRlLmN1cnJlbnRMYW5nKSxcbiAgICAgIHNpbGVuY2VUaW1lb3V0TXM6IE1hdGgubWF4KDAsIHRoaXMuc2lsZW5jZVRpbWVvdXRNcylcbiAgICB9KTtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBkaXNjYXJkUmVjb2duaXRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5zcGVlY2hSZWNvZ25pdGlvblNlcnZpY2Uuc3RvcCgpO1xuICAgIHRoaXMudHJhbnNjcmlwdCA9ICcnO1xuICAgIHRoaXMuYmFzZVRleHQgPSB0aGlzLmtlZXBDb250ZXh0ID8gdGhpcy5yZWFkQ3VycmVudFRleHQoKSA6ICcnO1xuICAgIHRoaXMucHJldmlld1RleHQgPSB0aGlzLmtlZXBDb250ZXh0ID8gdGhpcy5iYXNlVGV4dCA6ICcnO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFwcGx5UmVjb2duaXplZFRleHQoKTogdm9pZCB7XG4gICAgY29uc3QgdGV4dEFyZWEgPSB0aGlzLmdldFRleHRBcmVhKCk7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLnByZXZpZXdUZXh0LnRyaW0oKTtcblxuICAgIGlmICghdGV4dEFyZWEgfHwgIXZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGV4dEFyZWEudmFsdWUgPSB2YWx1ZTtcbiAgICB0ZXh0QXJlYS5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnaW5wdXQnLCB7IGJ1YmJsZXM6IHRydWUgfSkpO1xuICAgIHRleHRBcmVhLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdjaGFuZ2UnLCB7IGJ1YmJsZXM6IHRydWUgfSkpO1xuICAgIHRoaXMuc3BlZWNoUmVjb2duaXRpb25TZXJ2aWNlLnN0b3AoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBwbGF5U3BlZWNoKCk6IHZvaWQge1xuICAgIGNvbnN0IHRleHQgPSB0aGlzLnJlc29sdmVTcGVlY2hTb3VyY2VUZXh0KCkudHJpbSgpO1xuXG4gICAgaWYgKCF0ZXh0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy50ZXh0VG9TcGVlY2hTZXJ2aWNlLnNwZWFrKHRleHQsIHtcbiAgICAgIGxhbmc6IHJlc29sdmVTcGVlY2hMb2NhbGUodGhpcy50cmFuc2xhdGUuY3VycmVudExhbmcpLFxuICAgICAgcmF0ZTogdGhpcy52b2ljZVJhdGVcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCB0b2dnbGVQYXVzZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5wYXVzZWQpIHtcbiAgICAgIHRoaXMudGV4dFRvU3BlZWNoU2VydmljZS5yZXN1bWUoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnRleHRUb1NwZWVjaFNlcnZpY2UucGF1c2UoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZXN0YXJ0U3BlZWNoKCk6IHZvaWQge1xuICAgIGNvbnN0IHRleHQgPSB0aGlzLnJlc29sdmVTcGVlY2hTb3VyY2VUZXh0KCkudHJpbSgpO1xuXG4gICAgaWYgKCF0ZXh0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy50ZXh0VG9TcGVlY2hTZXJ2aWNlLnJlc3RhcnQodGV4dCwge1xuICAgICAgbGFuZzogcmVzb2x2ZVNwZWVjaExvY2FsZSh0aGlzLnRyYW5zbGF0ZS5jdXJyZW50TGFuZyksXG4gICAgICByYXRlOiB0aGlzLnZvaWNlUmF0ZVxuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHVwZGF0ZVZvaWNlUmF0ZSh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgcGFyc2VkVmFsdWUgPSB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnID8gTnVtYmVyKHZhbHVlKSA6IHZhbHVlO1xuICAgIHRoaXMudm9pY2VSYXRlID0gTnVtYmVyLmlzRmluaXRlKHBhcnNlZFZhbHVlKSAmJiBwYXJzZWRWYWx1ZSA+IDAgPyBwYXJzZWRWYWx1ZSA6IDE7XG4gIH1cblxuICBwcml2YXRlIGNvbWJpbmVSZWNvZ25pemVkVGV4dChiYXNlVGV4dDogc3RyaW5nLCB0cmFuc2NyaXB0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHBhcnRzID0gW2Jhc2VUZXh0LnRyaW0oKSwgdHJhbnNjcmlwdC50cmltKCldLmZpbHRlcihCb29sZWFuKTtcbiAgICByZXR1cm4gcGFydHMuam9pbignICcpLnRyaW0oKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZEN1cnJlbnRUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0VGV4dEFyZWEoKT8udmFsdWU/LnRyaW0oKSA/PyAnJztcbiAgfVxuXG4gIHByaXZhdGUgcmVzb2x2ZVNwZWVjaFNvdXJjZVRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wcmV2aWV3VGV4dC50cmltKCkgfHwgdGhpcy5yZWFkQ3VycmVudFRleHQoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VGV4dEFyZWEoKTogSFRNTFRleHRBcmVhRWxlbWVudCB8IG51bGwge1xuICAgIGlmICghdGhpcy50ZXh0QXJlYUVsZW1lbnQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnRleHRBcmVhRWxlbWVudCBpbnN0YW5jZW9mIEVsZW1lbnRSZWYpIHtcbiAgICAgIHJldHVybiB0aGlzLnRleHRBcmVhRWxlbWVudC5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnRleHRBcmVhRWxlbWVudDtcbiAgfVxufVxuXG5mdW5jdGlvbiByZXNvbHZlU3BlZWNoTG9jYWxlKGxhbmd1YWdlOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBzdHJpbmcge1xuICBpZiAobGFuZ3VhZ2UgPT09ICdlbicpIHtcbiAgICByZXR1cm4gJ2VuLVVTJztcbiAgfVxuXG4gIGlmIChsYW5ndWFnZSA9PT0gJ2VzLUNPJykge1xuICAgIHJldHVybiAnZXMtQ08nO1xuICB9XG5cbiAgcmV0dXJuICdwdC1CUic7XG59XG4iLCI8c2VjdGlvblxuICBjbGFzcz1cInNkYy1zcGVlY2gtcmVjb2duaXRpb25cIlxuICBbY2xhc3Muc2RjLXNwZWVjaC1yZWNvZ25pdGlvbi0tdW5zdXBwb3J0ZWRdPVwiIXJlY29nbml0aW9uU3VwcG9ydGVkXCJcbj5cbiAgPGRpdiBjbGFzcz1cInNkYy1zcGVlY2gtcmVjb2duaXRpb25fX3Rvb2xiYXJcIj5cbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cInNkYy1zcGVlY2gtcmVjb2duaXRpb25fX2J1dHRvbiBzZGMtc3BlZWNoLXJlY29nbml0aW9uX19idXR0b24tLXByaW1hcnlcIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBbZGlzYWJsZWRdPVwiIWNhbkxpc3RlblwiXG4gICAgICAoY2xpY2spPVwidG9nZ2xlTGlzdGVuaW5nKClcIlxuICAgID5cbiAgICAgIHt7XG4gICAgICAgIGxpc3RlbmluZ1xuICAgICAgICAgID8gKCdwbGF0Zm9ybS5kYXRhY29yZS5zcGVlY2hfcmVjb2duaXRpb25fc3RvcCcgfCB0cmFuc2xhdGUpXG4gICAgICAgICAgOiAoJ3BsYXRmb3JtLmRhdGFjb3JlLnNwZWVjaF9yZWNvZ25pdGlvbl9saXN0ZW4nIHwgdHJhbnNsYXRlKVxuICAgICAgfX1cbiAgICA8L2J1dHRvbj5cblxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzPVwic2RjLXNwZWVjaC1yZWNvZ25pdGlvbl9fYnV0dG9uXCJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgW2Rpc2FibGVkXT1cIiFwcmV2aWV3VGV4dC50cmltKClcIlxuICAgICAgKGNsaWNrKT1cImRpc2NhcmRSZWNvZ25pdGlvbigpXCJcbiAgICA+XG4gICAgICB7eyAncGxhdGZvcm0uZGF0YWNvcmUuc3BlZWNoX3JlY29nbml0aW9uX2Rpc2NhcmQnIHwgdHJhbnNsYXRlIH19XG4gICAgPC9idXR0b24+XG5cbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cInNkYy1zcGVlY2gtcmVjb2duaXRpb25fX2J1dHRvblwiXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIFtkaXNhYmxlZF09XCIhY2FuQXBwbHlcIlxuICAgICAgKGNsaWNrKT1cImFwcGx5UmVjb2duaXplZFRleHQoKVwiXG4gICAgPlxuICAgICAge3sgJ3BsYXRmb3JtLmRhdGFjb3JlLnNwZWVjaF9yZWNvZ25pdGlvbl9hcHBseScgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cInNkYy1zcGVlY2gtcmVjb2duaXRpb25fX3ByZXZpZXdcIj5cbiAgICA8c3BhbiBjbGFzcz1cInNkYy1zcGVlY2gtcmVjb2duaXRpb25fX2xhYmVsXCI+XG4gICAgICB7eyAncGxhdGZvcm0uZGF0YWNvcmUuc3BlZWNoX3JlY29nbml0aW9uX3ByZXZpZXcnIHwgdHJhbnNsYXRlIH19XG4gICAgPC9zcGFuPlxuICAgIDxkaXYgY2xhc3M9XCJzZGMtc3BlZWNoLXJlY29nbml0aW9uX19wcmV2aWV3VmFsdWVcIj5cbiAgICAgIHt7IHByZXZpZXdWYWx1ZSB9fVxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2ICpuZ0lmPVwiZW5hYmxlVGV4dFRvU3BlZWNoXCIgY2xhc3M9XCJzZGMtc3BlZWNoLXJlY29nbml0aW9uX190dHNcIj5cbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cInNkYy1zcGVlY2gtcmVjb2duaXRpb25fX2J1dHRvblwiXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIFtkaXNhYmxlZF09XCIhY2FuU3BlYWtcIlxuICAgICAgKGNsaWNrKT1cInBsYXlTcGVlY2goKVwiXG4gICAgPlxuICAgICAge3sgJ3BsYXRmb3JtLmRhdGFjb3JlLnNwZWVjaF9yZWNvZ25pdGlvbl9wbGF5JyB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvYnV0dG9uPlxuXG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJzZGMtc3BlZWNoLXJlY29nbml0aW9uX19idXR0b25cIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBbZGlzYWJsZWRdPVwiIXNwZWFraW5nICYmICFwYXVzZWRcIlxuICAgICAgKGNsaWNrKT1cInRvZ2dsZVBhdXNlKClcIlxuICAgID5cbiAgICAgIHt7IHBhdXNlQWN0aW9uTGFiZWwgfX1cbiAgICA8L2J1dHRvbj5cblxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzPVwic2RjLXNwZWVjaC1yZWNvZ25pdGlvbl9fYnV0dG9uXCJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgW2Rpc2FibGVkXT1cIiFjYW5TcGVha1wiXG4gICAgICAoY2xpY2spPVwicmVzdGFydFNwZWVjaCgpXCJcbiAgICA+XG4gICAgICB7eyAncGxhdGZvcm0uZGF0YWNvcmUuc3BlZWNoX3JlY29nbml0aW9uX3Jlc3RhcnQnIHwgdHJhbnNsYXRlIH19XG4gICAgPC9idXR0b24+XG5cbiAgICA8bGFiZWwgY2xhc3M9XCJzZGMtc3BlZWNoLXJlY29nbml0aW9uX19zcGVlZFwiPlxuICAgICAgPHNwYW4+e3sgJ3BsYXRmb3JtLmRhdGFjb3JlLnNwZWVjaF9yZWNvZ25pdGlvbl9zcGVlZCcgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICA8c2VsZWN0XG4gICAgICAgIGNsYXNzPVwic2RjLXNwZWVjaC1yZWNvZ25pdGlvbl9fc2VsZWN0XCJcbiAgICAgICAgW25nTW9kZWxdPVwidm9pY2VSYXRlXCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidXBkYXRlVm9pY2VSYXRlKCRldmVudClcIlxuICAgICAgPlxuICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCByYXRlIG9mIHZvaWNlUmF0ZXNcIiBbbmdWYWx1ZV09XCJyYXRlXCI+XG4gICAgICAgICAge3sgcmF0ZSB9fXhcbiAgICAgICAgPC9vcHRpb24+XG4gICAgICA8L3NlbGVjdD5cbiAgICA8L2xhYmVsPlxuICA8L2Rpdj5cblxuICA8cCBjbGFzcz1cInNkYy1zcGVlY2gtcmVjb2duaXRpb25fX3N0YXR1c1wiPlxuICAgIHt7IHN0YXR1c01lc3NhZ2UgfX1cbiAgPC9wPlxuPC9zZWN0aW9uPlxuIl19
|