@provoly/dashboard 1.2.8 → 1.2.10
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/admin/admin.module.d.ts +14 -14
- package/admin/components/admin-classes/admin-classes-view/admin-attributes-form/admin-attributes-form.component.d.ts +5 -16
- package/admin/components/admin-dataset/{shared/admin-form-dataset → admin-form-dataset}/admin-form-dataset.component.d.ts +8 -7
- package/admin/components/admin-dataset/store/admin-dataset.actions.d.ts +23 -18
- package/admin/components/admin-dataset/store/admin-dataset.effects.d.ts +9 -6
- package/admin/components/admin-dataset/store/admin-dataset.service.d.ts +2 -1
- package/admin/components/shared/add-category-modal/add-category-modal.component.d.ts +39 -0
- package/admin/i18n/en.translations.d.ts +23 -8
- package/admin/i18n/fr.translations.d.ts +23 -8
- package/dataset/components/dataset.component.d.ts +3 -7
- package/dataset/dataset.module.d.ts +7 -9
- package/dataset/i18n/en.translations.d.ts +8 -0
- package/dataset/i18n/fr.translations.d.ts +8 -0
- package/dataset/public-api.d.ts +0 -1
- package/dataset/style/_o-pry-dataset.scss +5 -42
- package/esm2022/admin/admin.module.mjs +7 -8
- package/esm2022/admin/components/admin-classes/admin-classes-view/admin-attributes-form/admin-attributes-form.component.mjs +22 -53
- package/esm2022/admin/components/admin-dataset/admin-edit-dataset/admin-edit-dataset.component.mjs +1 -1
- package/esm2022/admin/components/admin-dataset/admin-form-dataset/admin-form-dataset.component.mjs +115 -0
- package/esm2022/admin/components/admin-dataset/admin-new-dataset/admin-new-dataset.component.mjs +1 -1
- package/esm2022/admin/components/admin-dataset/admin-select-dataset/admin-select-dataset.component.mjs +3 -3
- package/esm2022/admin/components/admin-dataset/store/admin-dataset.actions.mjs +11 -10
- package/esm2022/admin/components/admin-dataset/store/admin-dataset.effects.mjs +2 -1
- package/esm2022/admin/components/admin-dataset/store/admin-dataset.service.mjs +10 -4
- package/esm2022/admin/components/shared/add-category-modal/add-category-modal.component.mjs +73 -0
- package/esm2022/admin/i18n/en.translations.mjs +25 -10
- package/esm2022/admin/i18n/fr.translations.mjs +26 -11
- package/esm2022/dataset/components/dataset-detail/dataset-detail.component.mjs +4 -5
- package/esm2022/dataset/components/dataset.component.mjs +8 -23
- package/esm2022/dataset/dataset.module.mjs +12 -13
- package/esm2022/dataset/i18n/en.translations.mjs +9 -1
- package/esm2022/dataset/i18n/fr.translations.mjs +10 -2
- package/esm2022/dataset/public-api.mjs +1 -2
- package/esm2022/dataset/style/css.component.mjs +3 -3
- package/esm2022/lib/core/components/chips-selector/chips-selector.component.mjs +7 -27
- package/esm2022/lib/core/components/chips-selector/chips-selector.module.mjs +21 -0
- package/esm2022/lib/core/components/select-image/select-image.component.mjs +1 -1
- package/esm2022/lib/core/components/share/group-share/group-share.component.mjs +3 -3
- package/esm2022/lib/core/components/share/share.module.mjs +8 -12
- package/esm2022/lib/core/core.module.mjs +4 -8
- package/esm2022/lib/core/i18n/en.translations.mjs +8 -8
- package/esm2022/lib/core/i18n/fr.translations.mjs +9 -9
- package/esm2022/lib/core/pipes/get-secured-image/get-secured-image.pipe.mjs +21 -0
- package/esm2022/lib/core/pipes/since-date/since-date.module.mjs +18 -0
- package/esm2022/lib/core/pipes/since-date/since-date.pipe.mjs +55 -0
- package/esm2022/lib/core/pipes/translate-id/translate-id.pipe.mjs +108 -0
- package/esm2022/lib/core/pipes/translate-item-to-symbol/translate-item-to-symbol.pipe.mjs +23 -0
- package/esm2022/lib/core/public-api.mjs +7 -4
- package/esm2022/lib/core/store/data-source/data-source.actions.mjs +4 -2
- package/esm2022/lib/core/store/data-source/data-source.effects.mjs +4 -1
- package/esm2022/lib/core/store/data-source/data-source.model.mjs +1 -1
- package/esm2022/lib/core/store/data-source/data-source.reducer.mjs +6 -2
- package/esm2022/lib/core/store/data-source/data-source.selectors.mjs +4 -2
- package/esm2022/lib/core/store/data-source/data-source.service.mjs +6 -1
- package/esm2022/lib/core/store/data-source/datasource-utils.mjs +22 -1
- package/esm2022/lib/dashboard/components/widgets/data-widget.component.mjs +2 -2
- package/esm2022/lib/dashboard/components/widgets/datasource-selector/datasource-card/datasource-card.component.mjs +60 -0
- package/esm2022/lib/dashboard/components/widgets/datasource-selector/datasource-list/datasource-list.component.mjs +95 -0
- package/esm2022/lib/dashboard/components/widgets/datasource-selector/datasource-selector.component.mjs +53 -48
- package/esm2022/lib/dashboard/components/widgets/header/widget-header.component.mjs +6 -7
- package/esm2022/lib/dashboard/components/widgets/public-api.mjs +3 -1
- package/esm2022/lib/dashboard/dashboard.module.mjs +19 -7
- package/esm2022/lib/dashboard/tooltip/components/default/default.tooltip.component.mjs +2 -2
- package/esm2022/pipeline/components/pipeline-details/pipeline-details.component.mjs +2 -3
- package/esm2022/pipeline/components/pipeline-list/pipeline-list.component.mjs +2 -3
- package/esm2022/pipeline/pipeline.module.mjs +8 -9
- package/esm2022/presentation/components/presentation.component.mjs +2 -3
- package/esm2022/presentation/presentation.module.mjs +8 -9
- package/esm2022/restitution/components/restitution/restitution.component.mjs +4 -4
- package/esm2022/restitution/components/restitution-catalog/restitution-catalog.component.mjs +2 -3
- package/esm2022/restitution/restitution.module.mjs +2 -3
- package/esm2022/restitution/style/css.component.mjs +2 -2
- package/fesm2022/provoly-dashboard-admin.mjs +194 -109
- package/fesm2022/provoly-dashboard-admin.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-dataset.mjs +51 -79
- package/fesm2022/provoly-dashboard-dataset.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-pipeline.mjs +17 -19
- package/fesm2022/provoly-dashboard-pipeline.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-presentation.mjs +8 -10
- package/fesm2022/provoly-dashboard-presentation.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-restitution.mjs +7 -9
- package/fesm2022/provoly-dashboard-restitution.mjs.map +1 -1
- package/fesm2022/provoly-dashboard.mjs +3475 -3233
- package/fesm2022/provoly-dashboard.mjs.map +1 -1
- package/lib/core/components/chips-selector/chips-selector.component.d.ts +1 -6
- package/lib/core/components/chips-selector/chips-selector.module.d.ts +11 -0
- package/lib/core/components/share/share.module.d.ts +3 -4
- package/lib/core/core.module.d.ts +26 -27
- package/lib/core/i18n/en.translations.d.ts +7 -7
- package/lib/core/i18n/fr.translations.d.ts +7 -7
- package/{components/sinceDate/sinceDate.module.d.ts → lib/core/pipes/since-date/since-date.module.d.ts} +3 -2
- package/{components/sinceDate/sinceDate.pipe.d.ts → lib/core/pipes/since-date/since-date.pipe.d.ts} +4 -4
- package/lib/core/{components → pipes}/translate-id/translate-id.pipe.d.ts +0 -2
- package/lib/core/public-api.d.ts +6 -3
- package/lib/core/store/data-source/data-source.actions.d.ts +7 -0
- package/lib/core/store/data-source/data-source.effects.d.ts +3 -0
- package/lib/core/store/data-source/data-source.model.d.ts +3 -0
- package/lib/core/store/data-source/data-source.reducer.d.ts +2 -0
- package/lib/core/store/data-source/data-source.selectors.d.ts +1 -0
- package/lib/core/store/data-source/data-source.service.d.ts +2 -0
- package/lib/core/store/data-source/datasource-utils.d.ts +4 -1
- package/lib/dashboard/components/widgets/datasource-selector/datasource-card/datasource-card.component.d.ts +24 -0
- package/lib/dashboard/components/widgets/datasource-selector/datasource-list/datasource-list.component.d.ts +35 -0
- package/lib/dashboard/components/widgets/datasource-selector/datasource-selector.component.d.ts +19 -11
- package/lib/dashboard/components/widgets/header/widget-header.component.d.ts +1 -1
- package/lib/dashboard/components/widgets/public-api.d.ts +2 -0
- package/lib/dashboard/dashboard.module.d.ts +18 -15
- package/package.json +13 -19
- package/pipeline/pipeline.module.d.ts +3 -4
- package/presentation/presentation.module.d.ts +7 -8
- package/restitution/components/restitution/restitution.component.d.ts +1 -1
- package/restitution/restitution.module.d.ts +1 -2
- package/restitution/style/_o-restitution.scss +4 -0
- package/styles/base/_typography.scss +4 -0
- package/styles/base/_utils.scss +27 -1
- package/styles/components/_a-btn.scss +4 -0
- package/styles/components/_a-chip.scss +45 -0
- package/styles/components/_o-datasource-selector.scss +192 -0
- package/styles/components/_o-modal.scss +0 -42
- package/styles/components/_o-widget.scss +1 -1
- package/styles/layout/_o-base-layout.scss +1 -7
- package/styles/main.scss +1 -0
- package/styles-theme/main-theme.scss +0 -3
- package/components/sinceDate/index.d.ts +0 -5
- package/components/sinceDate/public-api.d.ts +0 -2
- package/dataset/components/dataset-card/dataset-card.component.d.ts +0 -18
- package/dataset/style/_o-pry-dataset-card.scss +0 -85
- package/esm2022/admin/components/admin-dataset/shared/admin-form-dataset/admin-form-dataset.component.mjs +0 -99
- package/esm2022/components/sinceDate/provoly-dashboard-components-sinceDate.mjs +0 -5
- package/esm2022/components/sinceDate/public-api.mjs +0 -3
- package/esm2022/components/sinceDate/sinceDate.module.mjs +0 -16
- package/esm2022/components/sinceDate/sinceDate.pipe.mjs +0 -55
- package/esm2022/dataset/components/dataset-card/dataset-card.component.mjs +0 -41
- package/esm2022/lib/core/components/get-secured-image/get-secured-image.pipe.mjs +0 -21
- package/esm2022/lib/core/components/translate-id/translate-id.pipe.mjs +0 -114
- package/esm2022/lib/core/components/translate-item-to-symbol/translate-item-to-symbol.pipe.mjs +0 -23
- package/fesm2022/provoly-dashboard-components-sinceDate.mjs +0 -75
- package/fesm2022/provoly-dashboard-components-sinceDate.mjs.map +0 -1
- package/styles-theme/components-theme/_a-chip.theme.scss +0 -32
- package/styles-theme/components-theme/_o-pry-dataset-card.theme.scss +0 -26
- package/styles-theme/components-theme/_o-pry-dataset.theme.scss +0 -4
- /package/lib/core/{components → pipes}/get-secured-image/get-secured-image.pipe.d.ts +0 -0
- /package/lib/core/{components → pipes}/translate-item-to-symbol/translate-item-to-symbol.pipe.d.ts +0 -0
|
@@ -13,7 +13,6 @@ import * as i5 from "@angular/forms";
|
|
|
13
13
|
import * as i6 from "@angular/common";
|
|
14
14
|
import * as i7 from "./add-edit-presentation/add-edit-presentation.component";
|
|
15
15
|
import * as i8 from "../style/css.component";
|
|
16
|
-
import * as i9 from "@provoly/dashboard/components/sinceDate";
|
|
17
16
|
export class PryPresentationComponent extends SubscriptionnerDirective {
|
|
18
17
|
set listOfManifests(manifests) {
|
|
19
18
|
this.listOfManifests$.next(Array.isArray(manifests) ? manifests : null);
|
|
@@ -170,7 +169,7 @@ export class PryPresentationComponent extends SubscriptionnerDirective {
|
|
|
170
169
|
return !this.access ? of(false) : this.access.canModifyPresentation(presentation);
|
|
171
170
|
}
|
|
172
171
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PryPresentationComponent, deps: [{ token: i1.Store }, { token: i2.Overlay }, { token: i0.ViewContainerRef }, { token: i3.Router }, { token: i4.PryTitleService }, { token: i3.ActivatedRoute }, { token: i0.NgZone }, { token: PRY_ACCESS_TOKEN, optional: true }, { token: i4.PryDialogService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
173
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: PryPresentationComponent, selector: "pry-presentation", inputs: { editionStartUrl: "editionStartUrl", consultStartUrl: "consultStartUrl", meAsOwner: "meAsOwner", themePrefix: "themePrefix", mode: "mode", hideToolbox: "hideToolbox", listOfManifests: "listOfManifests", search: "search" }, viewQueries: [{ propertyName: "templateModalActions", first: true, predicate: ["modalActions"], descendants: true, read: TemplateRef }, { propertyName: "openModal", first: true, predicate: ["openModal"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<pry-presentation-css></pry-presentation-css>\n<div class=\"o-manifest-layout\" [ngSwitch]=\"selectedMode\">\n <ng-container *ngSwitchDefault>\n <div class=\"o-manifest-layout__toolbox\" [class.-u-hidden]=\"hideToolbox\">\n <button\n class=\"a-btn a-btn--primary\"\n type=\"button\"\n (click)=\"creation()\"\n *pryAccess=\"{ module: 'dashboard', page: 'manifest', action: 'create' }\"\n >\n <pry-icon iconSvg=\"add\"></pry-icon>\n {{ '@pry.presentation.create' | i18n }}\n </button>\n <div>\n <div class=\"o-manifest-layout__toolbox__search\">\n <label id=\"catalog-search-label\" for=\"catalog-search\" class=\"u-visually-hidden\">\n <span>{{ '@pry.toolbox.catalog.filter.name' | i18n }}</span>\n </label>\n <input\n id=\"catalog-search\"\n type=\"text\"\n class=\"a-form-field\"\n [placeholder]=\"'@pry.presentation.search' | i18n\"\n [ngModel]=\"search$ | async\"\n (ngModelChange)=\"this.search$.next($event)\"\n />\n <pry-icon class=\"search-icon\" iconSvg=\"search\" [width]=\"17\" [height]=\"17\"></pry-icon>\n </div>\n </div>\n </div>\n <div class=\"o-manifest-layout__content\">\n <h1 class=\"a-h1\">{{ '@pry.presentation.title' | i18n }}</h1>\n <div class=\"o-presentation-wrapper\">\n <ul class=\"o-presentation\">\n <li\n class=\"o-presentation__item\"\n *ngFor=\"let presentation of filteredPresentations$ | async; let index = index\"\n >\n <div class=\"o-presentation__item__header\">\n <ng-container *ngIf=\"isPrivate(presentation)\">\n <pry-icon\n iconSvg=\"private\"\n class=\"is-private a-tooltip -tooltip-no-wrap\"\n [attr.data-tooltip]=\"'@pry.presentation.private' | i18n\"\n [height]=\"17\"\n [width]=\"17\"\n ></pry-icon>\n </ng-container>\n <div\n class=\"a-tooltip -tooltip-no-wrap\"\n (click)=\"fetch(presentation)\"\n [attr.data-tooltip]=\"'@pry.presentation.view' | i18n\"\n >\n <div class=\"o-presentation__item__image\">\n <img alt=\"\" class=\"is-full-width\" [src]=\"presentation.image | getSecuredImage | async\" />\n </div>\n </div>\n <ng-container *ngIf=\"this.canModify$(presentation) | async\">\n <div class=\"more-button\" *pryAccess=\"{ module: 'dashboard', page: 'manifest', action: 'share' }\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--more a-tooltip -tooltip-no-wrap\"\n [id]=\"'more-button-' + index\"\n [attr.data-tooltip]=\"'@pry.restitution.more' | i18n\"\n (click)=\"$event.stopPropagation(); toggleModalActions(presentation, button)\"\n #button\n >\n <pry-icon [height]=\"25\" [width]=\"25\" iconSvg=\"more_horiz\"></pry-icon>\n </button>\n </div>\n </ng-container>\n </div>\n <div class=\"o-presentation__item__txt\" (click)=\"fetch(presentation)\">\n <div class=\"o-presentation__item__title-container\" ellipsis textElementSelector=\".a-h3\">\n <h3 class=\"a-h3\">{{ presentation.name }}</h3>\n </div>\n <div class=\"o-presentation__item__description-container\" ellipsis textElementSelector=\".a-p\">\n <div class=\"o-presentation__item__description a-p\">\n {{ presentation.description }}\n </div>\n </div>\n <p class=\"a-p -date\">{{ presentation.modificationDate | sinceDate }}</p>\n </div>\n <div\n class=\"o-presentation__item__footer a-tooltip -tooltip-no-wrap\"\n (click)=\"fetch(presentation)\"\n [attr.data-tooltip]=\"'@pry.presentation.view' | i18n\"\n >\n <button class=\"a-btn\">\n {{ '@pry.presentation.consult' | i18n }}\n <pry-icon [width]=\"20\" [height]=\"20\" iconSvg=\"arrow_right\"></pry-icon>\n </button>\n </div>\n </li>\n </ul>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"ViewMode.CREATION\">\n <pry-add-edit-presentation\n [selectedPresentation]=\"(selectedPresentation$ | async) ?? undefined\"\n (goBack)=\"closeRestitution()\"\n [editionStartUrl]=\"editionStartUrl\"\n [edition]=\"false\"\n [mode]=\"mode\"\n [themePrefix]=\"themePrefix\"\n ></pry-add-edit-presentation>\n </ng-container>\n <ng-container *ngSwitchCase=\"ViewMode.EDITION\">\n <pry-add-edit-presentation\n [selectedPresentation]=\"(selectedPresentation$ | async) ?? undefined\"\n (goBack)=\"closeRestitution()\"\n [editionStartUrl]=\"editionStartUrl\"\n [edition]=\"true\"\n [mode]=\"mode\"\n [themePrefix]=\"themePrefix\"\n ></pry-add-edit-presentation>\n </ng-container>\n</div>\n<ng-template #modalActions>\n <div class=\"m-context-menu\">\n <ul\n class=\"m-context-menu__list\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog presentation options\"\n *ngIf=\"selectedPresentation$ | async as selectedPresentation\"\n >\n <li class=\"m-context-menu__list__item\">\n <button\n class=\"a-btn -link-like\"\n (click)=\"edit(selectedPresentation)\"\n [disabled]=\"!(this.canModify$(selectedPresentation) | async)\"\n *pryAccess=\"{ module: 'dashboard', page: 'manifest', action: 'edit' }\"\n >\n {{ '@pry.presentation.edition' | i18n }}\n </button>\n </li>\n <li class=\"m-context-menu__list__item\">\n <button\n class=\"a-btn -link-like\"\n (click)=\"editContent(selectedPresentation)\"\n [disabled]=\"!(this.canModify$(selectedPresentation) | async)\"\n *pryAccess=\"{ module: 'dashboard', page: 'manifest', action: 'edit' }\"\n >\n {{ '@pry.presentation.editionContent' | i18n }}\n </button>\n </li>\n <li class=\"m-context-menu__list__item\">\n <button\n (click)=\"toggleModal(selectedPresentation)\"\n class=\"a-btn -link-like\"\n aria-haspopup=\"dialog\"\n [disabled]=\"!(this.canModify$(selectedPresentation) | async)\"\n *pryAccess=\"{ module: 'dashboard', page: 'manifest', action: 'share' }\"\n >\n {{ '@pry.presentation.share' | i18n }}\n </button>\n </li>\n <li class=\"m-context-menu__list__item\">\n <button\n class=\"a-btn -link-like\"\n #openModal\n (click)=\"delete(selectedPresentation.id)\"\n [disabled]=\"!(this.canModify$(selectedPresentation) | async)\"\n *pryAccess=\"{ module: 'dashboard', page: 'manifest', action: 'delete' }\"\n >\n {{ '@pry.presentation.delete' | i18n }}\n </button>\n </li>\n </ul>\n </div>\n</ng-template>\n", dependencies: [{ kind: "component", type: i4.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: i4.PryAccessDirective, selector: "[pryAccess]", inputs: ["pryAccess"] }, { kind: "directive", type: i4.EllipsisDirective, selector: "[ellipsis]", inputs: ["textElementSelector"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i6.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i6.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: i7.PryAddEditPresentationComponent, selector: "pry-add-edit-presentation", inputs: ["selectedPresentation", "edition", "themePrefix", "editionStartUrl", "mode"], outputs: ["goBack"] }, { kind: "component", type: i8.PryPresentationCssComponent, selector: "pry-presentation-css" }, { kind: "pipe", type: i4.GetSecuredImagePipe, name: "getSecuredImage" }, { kind: "pipe", type: i9.PrySinceDatePipe, name: "sinceDate" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }] }); }
|
|
172
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: PryPresentationComponent, selector: "pry-presentation", inputs: { editionStartUrl: "editionStartUrl", consultStartUrl: "consultStartUrl", meAsOwner: "meAsOwner", themePrefix: "themePrefix", mode: "mode", hideToolbox: "hideToolbox", listOfManifests: "listOfManifests", search: "search" }, viewQueries: [{ propertyName: "templateModalActions", first: true, predicate: ["modalActions"], descendants: true, read: TemplateRef }, { propertyName: "openModal", first: true, predicate: ["openModal"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<pry-presentation-css></pry-presentation-css>\n<div class=\"o-manifest-layout\" [ngSwitch]=\"selectedMode\">\n <ng-container *ngSwitchDefault>\n <div class=\"o-manifest-layout__toolbox\" [class.-u-hidden]=\"hideToolbox\">\n <button\n class=\"a-btn a-btn--primary\"\n type=\"button\"\n (click)=\"creation()\"\n *pryAccess=\"{ module: 'dashboard', page: 'manifest', action: 'create' }\"\n >\n <pry-icon iconSvg=\"add\"></pry-icon>\n {{ '@pry.presentation.create' | i18n }}\n </button>\n <div>\n <div class=\"o-manifest-layout__toolbox__search\">\n <label id=\"catalog-search-label\" for=\"catalog-search\" class=\"u-visually-hidden\">\n <span>{{ '@pry.toolbox.catalog.filter.name' | i18n }}</span>\n </label>\n <input\n id=\"catalog-search\"\n type=\"text\"\n class=\"a-form-field\"\n [placeholder]=\"'@pry.presentation.search' | i18n\"\n [ngModel]=\"search$ | async\"\n (ngModelChange)=\"this.search$.next($event)\"\n />\n <pry-icon class=\"search-icon\" iconSvg=\"search\" [width]=\"17\" [height]=\"17\"></pry-icon>\n </div>\n </div>\n </div>\n <div class=\"o-manifest-layout__content\">\n <h1 class=\"a-h1\">{{ '@pry.presentation.title' | i18n }}</h1>\n <div class=\"o-presentation-wrapper\">\n <ul class=\"o-presentation\">\n <li\n class=\"o-presentation__item\"\n *ngFor=\"let presentation of filteredPresentations$ | async; let index = index\"\n >\n <div class=\"o-presentation__item__header\">\n <ng-container *ngIf=\"isPrivate(presentation)\">\n <pry-icon\n iconSvg=\"private\"\n class=\"is-private a-tooltip -tooltip-no-wrap\"\n [attr.data-tooltip]=\"'@pry.presentation.private' | i18n\"\n [height]=\"17\"\n [width]=\"17\"\n ></pry-icon>\n </ng-container>\n <div\n class=\"a-tooltip -tooltip-no-wrap\"\n (click)=\"fetch(presentation)\"\n [attr.data-tooltip]=\"'@pry.presentation.view' | i18n\"\n >\n <div class=\"o-presentation__item__image\">\n <img alt=\"\" class=\"is-full-width\" [src]=\"presentation.image | getSecuredImage | async\" />\n </div>\n </div>\n <ng-container *ngIf=\"this.canModify$(presentation) | async\">\n <div class=\"more-button\" *pryAccess=\"{ module: 'dashboard', page: 'manifest', action: 'share' }\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--more a-tooltip -tooltip-no-wrap\"\n [id]=\"'more-button-' + index\"\n [attr.data-tooltip]=\"'@pry.restitution.more' | i18n\"\n (click)=\"$event.stopPropagation(); toggleModalActions(presentation, button)\"\n #button\n >\n <pry-icon [height]=\"25\" [width]=\"25\" iconSvg=\"more_horiz\"></pry-icon>\n </button>\n </div>\n </ng-container>\n </div>\n <div class=\"o-presentation__item__txt\" (click)=\"fetch(presentation)\">\n <div class=\"o-presentation__item__title-container\" ellipsis textElementSelector=\".a-h3\">\n <h3 class=\"a-h3\">{{ presentation.name }}</h3>\n </div>\n <div class=\"o-presentation__item__description-container\" ellipsis textElementSelector=\".a-p\">\n <div class=\"o-presentation__item__description a-p\">\n {{ presentation.description }}\n </div>\n </div>\n <p class=\"a-p -date\">{{ presentation.modificationDate | sinceDate }}</p>\n </div>\n <div\n class=\"o-presentation__item__footer a-tooltip -tooltip-no-wrap\"\n (click)=\"fetch(presentation)\"\n [attr.data-tooltip]=\"'@pry.presentation.view' | i18n\"\n >\n <button class=\"a-btn\">\n {{ '@pry.presentation.consult' | i18n }}\n <pry-icon [width]=\"20\" [height]=\"20\" iconSvg=\"arrow_right\"></pry-icon>\n </button>\n </div>\n </li>\n </ul>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"ViewMode.CREATION\">\n <pry-add-edit-presentation\n [selectedPresentation]=\"(selectedPresentation$ | async) ?? undefined\"\n (goBack)=\"closeRestitution()\"\n [editionStartUrl]=\"editionStartUrl\"\n [edition]=\"false\"\n [mode]=\"mode\"\n [themePrefix]=\"themePrefix\"\n ></pry-add-edit-presentation>\n </ng-container>\n <ng-container *ngSwitchCase=\"ViewMode.EDITION\">\n <pry-add-edit-presentation\n [selectedPresentation]=\"(selectedPresentation$ | async) ?? undefined\"\n (goBack)=\"closeRestitution()\"\n [editionStartUrl]=\"editionStartUrl\"\n [edition]=\"true\"\n [mode]=\"mode\"\n [themePrefix]=\"themePrefix\"\n ></pry-add-edit-presentation>\n </ng-container>\n</div>\n<ng-template #modalActions>\n <div class=\"m-context-menu\">\n <ul\n class=\"m-context-menu__list\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog presentation options\"\n *ngIf=\"selectedPresentation$ | async as selectedPresentation\"\n >\n <li class=\"m-context-menu__list__item\">\n <button\n class=\"a-btn -link-like\"\n (click)=\"edit(selectedPresentation)\"\n [disabled]=\"!(this.canModify$(selectedPresentation) | async)\"\n *pryAccess=\"{ module: 'dashboard', page: 'manifest', action: 'edit' }\"\n >\n {{ '@pry.presentation.edition' | i18n }}\n </button>\n </li>\n <li class=\"m-context-menu__list__item\">\n <button\n class=\"a-btn -link-like\"\n (click)=\"editContent(selectedPresentation)\"\n [disabled]=\"!(this.canModify$(selectedPresentation) | async)\"\n *pryAccess=\"{ module: 'dashboard', page: 'manifest', action: 'edit' }\"\n >\n {{ '@pry.presentation.editionContent' | i18n }}\n </button>\n </li>\n <li class=\"m-context-menu__list__item\">\n <button\n (click)=\"toggleModal(selectedPresentation)\"\n class=\"a-btn -link-like\"\n aria-haspopup=\"dialog\"\n [disabled]=\"!(this.canModify$(selectedPresentation) | async)\"\n *pryAccess=\"{ module: 'dashboard', page: 'manifest', action: 'share' }\"\n >\n {{ '@pry.presentation.share' | i18n }}\n </button>\n </li>\n <li class=\"m-context-menu__list__item\">\n <button\n class=\"a-btn -link-like\"\n #openModal\n (click)=\"delete(selectedPresentation.id)\"\n [disabled]=\"!(this.canModify$(selectedPresentation) | async)\"\n *pryAccess=\"{ module: 'dashboard', page: 'manifest', action: 'delete' }\"\n >\n {{ '@pry.presentation.delete' | i18n }}\n </button>\n </li>\n </ul>\n </div>\n</ng-template>\n", dependencies: [{ kind: "component", type: i4.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: i4.PryAccessDirective, selector: "[pryAccess]", inputs: ["pryAccess"] }, { kind: "directive", type: i4.EllipsisDirective, selector: "[ellipsis]", inputs: ["textElementSelector"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i6.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i6.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: i7.PryAddEditPresentationComponent, selector: "pry-add-edit-presentation", inputs: ["selectedPresentation", "edition", "themePrefix", "editionStartUrl", "mode"], outputs: ["goBack"] }, { kind: "component", type: i8.PryPresentationCssComponent, selector: "pry-presentation-css" }, { kind: "pipe", type: i4.GetSecuredImagePipe, name: "getSecuredImage" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.SinceDatePipe, name: "sinceDate" }] }); }
|
|
174
173
|
}
|
|
175
174
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PryPresentationComponent, decorators: [{
|
|
176
175
|
type: Component,
|
|
@@ -203,4 +202,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImpor
|
|
|
203
202
|
}], search: [{
|
|
204
203
|
type: Input
|
|
205
204
|
}] } });
|
|
206
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlc2VudGF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL3ByZXNlbnRhdGlvbi9jb21wb25lbnRzL3ByZXNlbnRhdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9wcmVzZW50YXRpb24vY29tcG9uZW50cy9wcmVzZW50YXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFXLGFBQWEsRUFBYyxNQUFNLHNCQUFzQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQ0wsU0FBUyxFQUVULE1BQU0sRUFDTixLQUFLLEVBRUwsUUFBUSxFQUNSLFdBQVcsRUFDWCxTQUFTLEVBRVYsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixtQkFBbUIsRUFFbkIsa0JBQWtCLEVBRWxCLGdCQUFnQixFQUNoQixrQ0FBa0MsRUFJbEMsd0JBQXdCLEVBQ3hCLFFBQVEsRUFDVCxNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBYyxFQUFFLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7O0FBTTFCLE1BQU0sT0FBTyx3QkFBeUIsU0FBUSx3QkFBd0I7SUFzQnBFLElBQWEsZUFBZSxDQUFDLFNBQXVDO1FBQ2xFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBR0QsSUFBYSxNQUFNLENBQUMsS0FBYTtRQUMvQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsWUFDWSxLQUFpQixFQUNqQixPQUFnQixFQUNoQixnQkFBa0MsRUFDbEMsTUFBYyxFQUNkLFlBQTZCLEVBQzdCLGNBQThCLEVBQzlCLE1BQWMsRUFDc0IsTUFBcUIsRUFDM0QsTUFBd0I7UUFFaEMsS0FBSyxFQUFFLENBQUM7UUFWRSxVQUFLLEdBQUwsS0FBSyxDQUFZO1FBQ2pCLFlBQU8sR0FBUCxPQUFPLENBQVM7UUFDaEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsaUJBQVksR0FBWixZQUFZLENBQWlCO1FBQzdCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ3NCLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDM0QsV0FBTSxHQUFOLE1BQU0sQ0FBa0I7UUF0Q2xDLDBCQUFxQixHQUFHLElBQUksZUFBZSxDQUFrQyxTQUFTLENBQUMsQ0FBQztRQUV4RixpQkFBWSxHQUFhLFFBQVEsQ0FBQyxPQUFPLENBQUM7UUFJMUMsd0JBQW1CLEdBQWdDLEVBQUUsQ0FBQztRQUV0RCxhQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3BCLFlBQU8sR0FBRyxJQUFJLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUd6QixvQkFBZSxHQUFXLEdBQUcsQ0FBQztRQUM5QixvQkFBZSxHQUFXLEdBQUcsQ0FBQztRQUU5QixnQkFBVyxHQUFrQixJQUFJLENBQUM7UUFDbEMsU0FBSSxHQUFxQixNQUFNLENBQUM7UUFDaEMsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFFN0IscUJBQWdCLEdBQUcsSUFBSSxlQUFlLENBQStCLElBQUksQ0FBQyxDQUFDO1FBSzNFLGlCQUFZLEdBQUcsSUFBSSxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUM7UUFpQnJDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUNwQixJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNuRCxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO2dCQUNyQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbEIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUNILENBQUM7UUFDRixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLFVBQVUsR0FBRyxhQUFhLENBQUM7WUFDOUIsSUFBSSxDQUFDLEtBQUs7aUJBQ1AsTUFBTSxDQUFDLGtCQUFrQixDQUFDLGFBQWEsQ0FBQztpQkFDeEMsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQ25CLENBQUMsR0FBRyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FDOUIsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQzlFLENBQ0YsQ0FDRjtZQUNILElBQUksQ0FBQyxnQkFBZ0I7U0FDdEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFFM0QsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsS0FBSzthQUM5QixNQUFNLENBQUMsa0JBQWtCLENBQUMsY0FBYyxDQUFDO2FBQ3pDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxhQUFhLENBQUM7WUFDMUMsSUFBSSxDQUFDLFVBQVU7WUFDZixJQUFJLENBQUMsT0FBTztZQUNaLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUN0QyxDQUFDLENBQUMsSUFBSSxDQUNMLEdBQUcsQ0FBQyxDQUFDLENBQUMsYUFBYSxFQUFFLE1BQU0sRUFBRSxXQUFXLENBQUMsRUFBRSxFQUFFLENBQzNDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxhQUFhLEVBQUUsRUFBRTtZQUNyQyxNQUFNLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxhQUFhLENBQUMsV0FBVyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7WUFDekcsTUFBTSxDQUFDLFdBQVcsRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO1lBQzVGLE9BQU8sQ0FBQyxDQUFDLFdBQVcsSUFBSSxDQUFDLENBQUMsZ0JBQWdCO2dCQUN4QyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxXQUFXLEVBQUUsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7b0JBQ25GLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLFdBQVcsRUFBRSxRQUFRLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO2dCQUN4RyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ1gsQ0FBQyxDQUFDLENBQ0gsQ0FDRixDQUFDO1FBQ0YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQ3BCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFlBQVksRUFBRSxFQUFFO1lBQzVFLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxFQUFFLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQztZQUNwRSxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN4RCxDQUFDLENBQUMsQ0FDSCxDQUFDO1FBQ0YsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUM7UUFDckMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3BILENBQUM7SUFFRCxLQUFLLENBQUMsWUFBaUM7UUFDckMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDckcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFO1lBQ25CLElBQUksQ0FBQyxNQUFNLEVBQUUsYUFBYSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNuRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFlBQVksR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxXQUFXLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3JHLE1BQU0sZUFBZSxHQUFHO1lBQ3RCLFlBQVksRUFBRTtnQkFDWixFQUFFLEVBQUUsRUFBRSxFQUFFO2dCQUNSLElBQUksRUFBRSxFQUFFO2dCQUNSLG1CQUFtQixFQUFFLEVBQWlDO2dCQUN0RCxLQUFLLEVBQUUsSUFBSTthQUNXO1lBQ3hCLFFBQVEsRUFBRSxRQUFRLENBQUMsUUFBUTtTQUM1QixDQUFDO1FBQ0YsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztRQUMxRSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsRUFBRSxNQUFNLEVBQUUsbUJBQW1CLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzFGLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLG9CQUFvQixDQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDMUYsQ0FBQztJQUVELElBQUksQ0FBQyxZQUFpQztRQUNwQyxJQUFJLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUM7UUFDckMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDdkcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsbUJBQW1CLENBQUMsRUFBRSxFQUFFLEVBQUUsWUFBWSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNuRixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLElBQUksRUFBRSxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3ZGLElBQUksQ0FBQyxVQUFVLEVBQUUsT0FBTyxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7SUFDOUIsQ0FBQztJQUVELE1BQU0sQ0FBQyxFQUFVO1FBQ2YsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsdUJBQXVCLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDdEUsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELGtCQUFrQixDQUFDLFlBQXlDLEVBQUUsVUFBOEI7UUFDMUYsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLElBQUksWUFBWSxFQUFFLENBQUM7WUFDckMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUM5QyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQztZQUN2RyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsRUFBRSxFQUFFLEVBQUUsWUFBWSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUM1RSxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUNuQyxJQUFJLGFBQWEsQ0FBQztnQkFDaEIsV0FBVyxFQUFFLElBQUk7Z0JBQ2pCLFVBQVUsRUFBRSxDQUFDLHdCQUF3QixDQUFDO2dCQUN0QyxhQUFhLEVBQUUsVUFBVTthQUMxQixDQUFDLENBQ0gsQ0FBQztZQUNGLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1lBQ3ZGLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksY0FBYyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO1lBQzdGLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsb0JBQW9CLENBQW1CLENBQUM7WUFDbkYsSUFBSSxDQUFDLENBQUMsV0FBVyxJQUFJLFVBQVUsRUFBRSxDQUFDO2dCQUNoQyxNQUFNLElBQUksR0FBRyxVQUFVLENBQUMscUJBQXFCLEVBQUUsQ0FBQztnQkFDaEQsV0FBVyxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO2dCQUNyQyxXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsV0FBVyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUM7Z0JBQ3pGLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDO1lBQ3ZELENBQUM7UUFDSCxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxVQUFVLEVBQUUsT0FBTyxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7WUFDNUIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM3QyxDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxZQUF5QztRQUNuRCxJQUFJLFlBQVksRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDOUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDdkcsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsa0NBQWtDLEVBQUU7Z0JBQ25ELFdBQVcsRUFBRSxJQUFJO2dCQUNqQixVQUFVLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztnQkFDL0IsYUFBYSxFQUFFLFVBQVU7Z0JBQ3pCLElBQUksRUFBRSxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUU7YUFDakMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7SUFFRCxXQUFXLENBQUMsb0JBQXlDO1FBQ25ELElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUNqQixnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQ3RHLENBQUM7UUFDRixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDbkIsSUFBSSxDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ25ELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFNBQVMsQ0FBQyxZQUFpQztRQUN6QyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLG1CQUFtQixDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQsVUFBVSxDQUFDLFlBQWlDO1FBQzFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMscUJBQXFCLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDcEYsQ0FBQzs4R0FuTVUsd0JBQXdCLHVNQXVDYixnQkFBZ0I7a0dBdkMzQix3QkFBd0IsaVlBS0EsV0FBVyw2SUN6Q2hELDh0T0E2S0E7OzJGRHpJYSx3QkFBd0I7a0JBSnBDLFNBQVM7K0JBQ0Usa0JBQWtCOzswQkEwQ3pCLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsZ0JBQWdCO3dFQWxDWSxvQkFBb0I7c0JBQXJFLFNBQVM7dUJBQUMsY0FBYyxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtnQkFDeEIsU0FBUztzQkFBaEMsU0FBUzt1QkFBQyxXQUFXO2dCQVFiLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBR08sZUFBZTtzQkFBM0IsS0FBSztnQkFLTyxNQUFNO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheUNvbmZpZywgT3ZlcmxheVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IFRlbXBsYXRlUG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE5nWm9uZSxcbiAgT3B0aW9uYWwsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHtcbiAgRGFzaGJvYXJkQWN0aW9ucyxcbiAgRGFzaGJvYXJkR3JpZExheW91dCxcbiAgRGFzaGJvYXJkTWFuaWZlc3QsXG4gIERhc2hib2FyZFNlbGVjdG9ycyxcbiAgTWFuaWZlc3REZXNjcmlwdGlvbixcbiAgUFJZX0FDQ0VTU19UT0tFTixcbiAgUHJ5QWNjZXNzUmlnaHRzU2hhcmVNb2RhbENvbXBvbmVudCxcbiAgUHJ5QmFzZUFjY2VzcyxcbiAgUHJ5RGlhbG9nU2VydmljZSxcbiAgUHJ5VGl0bGVTZXJ2aWNlLFxuICBTdWJzY3JpcHRpb25uZXJEaXJlY3RpdmUsXG4gIFZpZXdNb2RlXG59IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIG1hcCwgT2JzZXJ2YWJsZSwgb2YsIHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdjQgfSBmcm9tICd1dWlkJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncHJ5LXByZXNlbnRhdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9wcmVzZW50YXRpb24uY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFByeVByZXNlbnRhdGlvbkNvbXBvbmVudCBleHRlbmRzIFN1YnNjcmlwdGlvbm5lckRpcmVjdGl2ZSB7XG4gIG1hbmlmZXN0cyQ6IE9ic2VydmFibGU8TWFuaWZlc3REZXNjcmlwdGlvbltdPjtcbiAgc2VsZWN0ZWRQcmVzZW50YXRpb24kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNYW5pZmVzdERlc2NyaXB0aW9uIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICBzdGF0aWNNYW5pZmVzdCQ/OiBPYnNlcnZhYmxlPERhc2hib2FyZE1hbmlmZXN0PjtcbiAgc2VsZWN0ZWRNb2RlOiBWaWV3TW9kZSA9IFZpZXdNb2RlLkNBVEFMT0c7XG4gIEBWaWV3Q2hpbGQoJ21vZGFsQWN0aW9ucycsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSkgdGVtcGxhdGVNb2RhbEFjdGlvbnMhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBAVmlld0NoaWxkKCdvcGVuTW9kYWwnKSBvcGVuTW9kYWwhOiBFbGVtZW50UmVmPEhUTUxCdXR0b25FbGVtZW50PjtcbiAgb3ZlcmxheVJlZj86IE92ZXJsYXlSZWY7XG4gIGFjY2Vzc1JpZ2h0c0J5R3JvdXA6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nW10gfSA9IHt9O1xuXG4gIFZpZXdNb2RlID0gVmlld01vZGU7XG4gIHNlYXJjaCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KCcnKTtcbiAgZmlsdGVyZWRQcmVzZW50YXRpb25zJDogT2JzZXJ2YWJsZTxNYW5pZmVzdERlc2NyaXB0aW9uW10+O1xuXG4gIEBJbnB1dCgpIGVkaXRpb25TdGFydFVybDogc3RyaW5nID0gJy8nO1xuICBASW5wdXQoKSBjb25zdWx0U3RhcnRVcmw6IHN0cmluZyA9ICcvJztcbiAgQElucHV0KCkgbWVBc093bmVyPzogc3RyaW5nO1xuICBASW5wdXQoKSB0aGVtZVByZWZpeDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpIG1vZGU6ICd0aGVtZScgfCAnbWV0YScgPSAnbWV0YSc7XG4gIEBJbnB1dCgpIGhpZGVUb29sYm94ID0gZmFsc2U7XG5cbiAgbGlzdE9mTWFuaWZlc3RzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TWFuaWZlc3REZXNjcmlwdGlvbltdIHwgbnVsbD4obnVsbCk7XG4gIEBJbnB1dCgpIHNldCBsaXN0T2ZNYW5pZmVzdHMobWFuaWZlc3RzOiBNYW5pZmVzdERlc2NyaXB0aW9uW10gfCBudWxsKSB7XG4gICAgdGhpcy5saXN0T2ZNYW5pZmVzdHMkLm5leHQoQXJyYXkuaXNBcnJheShtYW5pZmVzdHMpID8gbWFuaWZlc3RzIDogbnVsbCk7XG4gIH1cblxuICBpbnB1dFNlYXJjaCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KCcnKTtcbiAgQElucHV0KCkgc2V0IHNlYXJjaChxdWVyeTogc3RyaW5nKSB7XG4gICAgdGhpcy5pbnB1dFNlYXJjaCQubmV4dChxdWVyeSk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgc3RvcmU6IFN0b3JlPGFueT4sXG4gICAgcHJvdGVjdGVkIG92ZXJsYXk6IE92ZXJsYXksXG4gICAgcHJvdGVjdGVkIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHJvdGVjdGVkIHJvdXRlcjogUm91dGVyLFxuICAgIHByb3RlY3RlZCB0aXRsZVNlcnZpY2U6IFByeVRpdGxlU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByb3RlY3RlZCBuZ1pvbmU6IE5nWm9uZSxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFBSWV9BQ0NFU1NfVE9LRU4pIHByaXZhdGUgYWNjZXNzOiBQcnlCYXNlQWNjZXNzLFxuICAgIHByaXZhdGUgZGlhbG9nOiBQcnlEaWFsb2dTZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMuYWN0aXZhdGVkUm91dGUucXVlcnlQYXJhbXMuc3Vic2NyaWJlKChwYXJhbXMpID0+IHtcbiAgICAgICAgaWYgKHBhcmFtc1snY3JlYXRlJ10pIHtcbiAgICAgICAgICB0aGlzLmNyZWF0aW9uKCk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKERhc2hib2FyZEFjdGlvbnMuZmV0Y2hNYW5pZmVzdHNMaXN0KCkpO1xuICAgIHRoaXMubWFuaWZlc3RzJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5zdG9yZVxuICAgICAgICAuc2VsZWN0KERhc2hib2FyZFNlbGVjdG9ycy5tYW5pZmVzdHNMaXN0KVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBtYXAoKG1hbmlmZXN0TGlzdCkgPT5cbiAgICAgICAgICAgIFsuLi5tYW5pZmVzdExpc3RdLnNvcnQoKGEsIGIpID0+XG4gICAgICAgICAgICAgIGEubW9kaWZpY2F0aW9uRGF0ZSA/IGIubW9kaWZpY2F0aW9uRGF0ZS5sb2NhbGVDb21wYXJlKGEubW9kaWZpY2F0aW9uRGF0ZSkgOiAxXG4gICAgICAgICAgICApXG4gICAgICAgICAgKVxuICAgICAgICApLFxuICAgICAgdGhpcy5saXN0T2ZNYW5pZmVzdHMkXG4gICAgXSkucGlwZShtYXAoKFtkeW5hbWljcywgc3RhdGljc10pID0+IHN0YXRpY3MgPz8gZHluYW1pY3MpKTtcblxuICAgIHRoaXMuc3RhdGljTWFuaWZlc3QkID0gdGhpcy5zdG9yZVxuICAgICAgLnNlbGVjdChEYXNoYm9hcmRTZWxlY3RvcnMuc3RhdGljTWFuaWZlc3QpXG4gICAgICAucGlwZShtYXAoKHN0YXRpY00pID0+IHN0YXRpY00ud2luZG93c1swXSkpO1xuICAgIHRoaXMuZmlsdGVyZWRQcmVzZW50YXRpb25zJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5tYW5pZmVzdHMkLFxuICAgICAgdGhpcy5zZWFyY2gkLFxuICAgICAgdGhpcy5pbnB1dFNlYXJjaCQucGlwZShzdGFydFdpdGgoJycpKVxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoKFtwcmVzZW50YXRpb25zLCBzZWFyY2gsIGlucHV0U2VhcmNoXSkgPT5cbiAgICAgICAgcHJlc2VudGF0aW9ucy5maWx0ZXIoKHByZXNlbnRhdGlvbnMpID0+IHtcbiAgICAgICAgICBjb25zdCBbbmFtZSwgZGVzY3JpcHRpb25dID0gW3ByZXNlbnRhdGlvbnMubmFtZS50b0xvd2VyQ2FzZSgpLCBwcmVzZW50YXRpb25zLmRlc2NyaXB0aW9uPy50b0xvd2VyQ2FzZSgpXTtcbiAgICAgICAgICBjb25zdCBbc2VhcmNoUXVlcnksIGlucHV0U2VhcmNoUXVlcnldID0gW3NlYXJjaD8udG9Mb3dlckNhc2UoKSwgaW5wdXRTZWFyY2g/LnRvTG93ZXJDYXNlKCldO1xuICAgICAgICAgIHJldHVybiAhIXNlYXJjaFF1ZXJ5IHx8ICEhaW5wdXRTZWFyY2hRdWVyeVxuICAgICAgICAgICAgPyAoISFzZWFyY2hRdWVyeSAmJiAobmFtZS5pbmNsdWRlcyhzZWFyY2hRdWVyeSkgfHwgZGVzY3JpcHRpb24/LmluY2x1ZGVzKHNlYXJjaFF1ZXJ5KSkpIHx8XG4gICAgICAgICAgICAgICAgKCEhaW5wdXRTZWFyY2hRdWVyeSAmJiAobmFtZS5pbmNsdWRlcyhpbnB1dFNlYXJjaFF1ZXJ5KSB8fCBkZXNjcmlwdGlvbj8uaW5jbHVkZXMoaW5wdXRTZWFyY2hRdWVyeSkpKVxuICAgICAgICAgICAgOiB0cnVlO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMuc3RvcmUuc2VsZWN0KERhc2hib2FyZFNlbGVjdG9ycy5wcmVzZW50YXRpb24pLnN1YnNjcmliZSgocHJlc2VudGF0aW9uKSA9PiB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRNb2RlID0gcHJlc2VudGF0aW9uPy52aWV3TW9kZSA/PyB0aGlzLlZpZXdNb2RlLkNBVEFMT0c7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRQcmVzZW50YXRpb24kLm5leHQocHJlc2VudGF0aW9uLmN1cnJlbnQpO1xuICAgICAgfSlcbiAgICApO1xuICAgIHRoaXMudGl0bGVTZXJ2aWNlLmNoYW5nZVRpdGxlKCdAcHJ5LnByZXNlbnRhdGlvbi50aXRsZScpO1xuICB9XG5cbiAgY2xvc2VSZXN0aXR1dGlvbigpIHtcbiAgICB0aGlzLnNlbGVjdGVkUHJlc2VudGF0aW9uJC5uZXh0KHVuZGVmaW5lZCk7XG4gICAgdGhpcy5zZWxlY3RlZE1vZGUgPSBWaWV3TW9kZS5DQVRBTE9HO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRGFzaGJvYXJkQWN0aW9ucy5zZWxlY3RQcmVzZW50YXRpb24oeyBwcmVzZW50YXRpb246IHVuZGVmaW5lZCwgdmlld01vZGU6IFZpZXdNb2RlLkNBVEFMT0cgfSkpO1xuICB9XG5cbiAgZmV0Y2gocHJlc2VudGF0aW9uOiBNYW5pZmVzdERlc2NyaXB0aW9uKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChEYXNoYm9hcmRBY3Rpb25zLmxvYWRQcmVzZW50YXRpb24oeyBwcmVzZW50YXRpb24sIHZpZXdNb2RlOiBWaWV3TW9kZS5DT05TVUxUIH0pKTtcbiAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgdGhpcy5yb3V0ZXI/Lm5hdmlnYXRlQnlVcmwodGhpcy5jb25zdWx0U3RhcnRVcmwpO1xuICAgIH0pO1xuICB9XG5cbiAgY3JlYXRpb24oKSB7XG4gICAgdGhpcy5zZWxlY3RlZE1vZGUgPSBWaWV3TW9kZS5DUkVBVElPTjtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKERhc2hib2FyZEFjdGlvbnMudXBkYXRlTWFuaWZlc3QoeyBtYW5pZmVzdDogeyB3aW5kb3dzOiBbXSB9LCBzZWxlY3RlZElkczogW10gfSkpO1xuICAgIGNvbnN0IG5ld1ByZXNlbnRhdGlvbiA9IHtcbiAgICAgIHByZXNlbnRhdGlvbjoge1xuICAgICAgICBpZDogdjQoKSxcbiAgICAgICAgbmFtZTogJycsXG4gICAgICAgIGFjY2Vzc1JpZ2h0c0J5R3JvdXA6IHt9IGFzIHsgW2tleTogc3RyaW5nXTogc3RyaW5nW10gfSxcbiAgICAgICAgb3duZXI6IHRydWVcbiAgICAgIH0gYXMgTWFuaWZlc3REZXNjcmlwdGlvbixcbiAgICAgIHZpZXdNb2RlOiBWaWV3TW9kZS5DUkVBVElPTlxuICAgIH07XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChEYXNoYm9hcmRBY3Rpb25zLnNlbGVjdFByZXNlbnRhdGlvbihuZXdQcmVzZW50YXRpb24pKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKERhc2hib2FyZEFjdGlvbnMuc2V0R3JpZExheW91dCh7IGxheW91dDogRGFzaGJvYXJkR3JpZExheW91dC5GVUxMIH0pKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKERhc2hib2FyZEFjdGlvbnMudXBkYXRlRGlzcGxheU9wdGlvbnMoeyBtb2RlOiBWaWV3TW9kZS5DUkVBVElPTiB9KSk7XG4gIH1cblxuICBlZGl0KHByZXNlbnRhdGlvbjogTWFuaWZlc3REZXNjcmlwdGlvbikge1xuICAgIHRoaXMuc2VsZWN0ZWRNb2RlID0gVmlld01vZGUuRURJVElPTjtcbiAgICB0aGlzLnNlbGVjdGVkUHJlc2VudGF0aW9uJC5uZXh0KHByZXNlbnRhdGlvbik7XG4gICAgdGhpcy50aXRsZVNlcnZpY2UuY2hhbmdlVGl0bGUocHJlc2VudGF0aW9uLm5hbWUpO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRGFzaGJvYXJkQWN0aW9ucy5zZWxlY3RQcmVzZW50YXRpb24oeyBwcmVzZW50YXRpb24sIHZpZXdNb2RlOiBWaWV3TW9kZS5FRElUSU9OIH0pKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKERhc2hib2FyZEFjdGlvbnMuZmV0Y2hTdGF0aWNNYW5pZmVzdCh7IGlkOiBwcmVzZW50YXRpb24uaWQgfSkpO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRGFzaGJvYXJkQWN0aW9ucy51cGRhdGVEaXNwbGF5T3B0aW9ucyh7IG1vZGU6IFZpZXdNb2RlLkVESVRJT04gfSkpO1xuICAgIHRoaXMub3ZlcmxheVJlZj8uZGlzcG9zZSgpO1xuICAgIHRoaXMub3ZlcmxheVJlZiA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGRlbGV0ZShpZDogc3RyaW5nKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChEYXNoYm9hcmRBY3Rpb25zLmNvbmZpcm1NYW5pZmVzdERlbGV0aW9uKHsgaWQgfSkpO1xuICAgIHRoaXMudG9nZ2xlTW9kYWxBY3Rpb25zKCk7XG4gIH1cblxuICB0b2dnbGVNb2RhbEFjdGlvbnMocHJlc2VudGF0aW9uPzogTWFuaWZlc3REZXNjcmlwdGlvbiB8IG51bGwsIG1vcmVCdXR0b24/OiBIVE1MQnV0dG9uRWxlbWVudCkge1xuICAgIGlmICghdGhpcy5vdmVybGF5UmVmICYmIHByZXNlbnRhdGlvbikge1xuICAgICAgdGhpcy5zZWxlY3RlZFByZXNlbnRhdGlvbiQubmV4dChwcmVzZW50YXRpb24pO1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChEYXNoYm9hcmRBY3Rpb25zLnNlbGVjdFByZXNlbnRhdGlvbih7IHByZXNlbnRhdGlvbiwgdmlld01vZGU6IFZpZXdNb2RlLkNBVEFMT0cgfSkpO1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChEYXNoYm9hcmRBY3Rpb25zLmxvYWRNYW5pZmVzdCh7IGlkOiBwcmVzZW50YXRpb24uaWQgfSkpO1xuICAgICAgdGhpcy5vdmVybGF5UmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZShcbiAgICAgICAgbmV3IE92ZXJsYXlDb25maWcoe1xuICAgICAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxuICAgICAgICAgIHBhbmVsQ2xhc3M6IFsnbS1jb250ZXh0LW1lbnUtd3JhcHBlciddLFxuICAgICAgICAgIGJhY2tkcm9wQ2xhc3M6ICdiYWNrZHJvcCdcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgICB0aGlzLm92ZXJsYXlSZWYuYmFja2Ryb3BDbGljaygpLnN1YnNjcmliZSgoKSA9PiB0aGlzLnRvZ2dsZU1vZGFsQWN0aW9ucyhwcmVzZW50YXRpb24pKTtcbiAgICAgIHRoaXMub3ZlcmxheVJlZi5hdHRhY2gobmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMudGVtcGxhdGVNb2RhbEFjdGlvbnMsIHRoaXMudmlld0NvbnRhaW5lclJlZikpO1xuICAgICAgY29uc3QgY29udGV4dE1lbnUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdkaXYubS1jb250ZXh0LW1lbnUnKSBhcyBIVE1MRGl2RWxlbWVudDtcbiAgICAgIGlmICghIWNvbnRleHRNZW51ICYmIG1vcmVCdXR0b24pIHtcbiAgICAgICAgY29uc3QgcmVjdCA9IG1vcmVCdXR0b24uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIGNvbnRleHRNZW51LnN0eWxlLm1pbldpZHRoID0gJzE4NXB4JztcbiAgICAgICAgY29udGV4dE1lbnUuc3R5bGUubGVmdCA9IChyZWN0Py5sZWZ0ID8/IDApIC0gKGNvbnRleHRNZW51Py5jbGllbnRXaWR0aCA/PyAwKSArIDIzICsgJ3B4JztcbiAgICAgICAgY29udGV4dE1lbnUuc3R5bGUudG9wID0gKHJlY3Q/LnRvcCA/PyAwKSArIDMwICsgJ3B4JztcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vdmVybGF5UmVmPy5kaXNwb3NlKCk7XG4gICAgICB0aGlzLm92ZXJsYXlSZWYgPSB1bmRlZmluZWQ7XG4gICAgICB0aGlzLnNlbGVjdGVkUHJlc2VudGF0aW9uJC5uZXh0KHVuZGVmaW5lZCk7XG4gICAgfVxuICB9XG5cbiAgdG9nZ2xlTW9kYWwocHJlc2VudGF0aW9uPzogTWFuaWZlc3REZXNjcmlwdGlvbiB8IG51bGwpIHtcbiAgICBpZiAocHJlc2VudGF0aW9uKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkUHJlc2VudGF0aW9uJC5uZXh0KHByZXNlbnRhdGlvbik7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKERhc2hib2FyZEFjdGlvbnMuc2VsZWN0UHJlc2VudGF0aW9uKHsgcHJlc2VudGF0aW9uLCB2aWV3TW9kZTogVmlld01vZGUuQ0FUQUxPRyB9KSk7XG4gICAgICB0aGlzLnRvZ2dsZU1vZGFsQWN0aW9ucygpO1xuICAgICAgdGhpcy5kaWFsb2cub3BlbihQcnlBY2Nlc3NSaWdodHNTaGFyZU1vZGFsQ29tcG9uZW50LCB7XG4gICAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxuICAgICAgICBwYW5lbENsYXNzOiBbJ28tbW9kYWwtd3JhcHBlciddLFxuICAgICAgICBiYWNrZHJvcENsYXNzOiAnYmFja2Ryb3AnLFxuICAgICAgICBkYXRhOiB7IG1hbmlmZXN0OiBwcmVzZW50YXRpb24gfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgZWRpdENvbnRlbnQoc2VsZWN0ZWRQcmVzZW50YXRpb246IE1hbmlmZXN0RGVzY3JpcHRpb24pIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgRGFzaGJvYXJkQWN0aW9ucy5sb2FkUHJlc2VudGF0aW9uKHsgcHJlc2VudGF0aW9uOiBzZWxlY3RlZFByZXNlbnRhdGlvbiwgdmlld01vZGU6IFZpZXdNb2RlLkVESVRJT04gfSlcbiAgICApO1xuICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICB0aGlzLnJvdXRlcj8ubmF2aWdhdGVCeVVybCh0aGlzLmNvbnN1bHRTdGFydFVybCk7XG4gICAgfSk7XG4gIH1cblxuICBpc1ByaXZhdGUocHJlc2VudGF0aW9uOiBNYW5pZmVzdERlc2NyaXB0aW9uKSB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKHByZXNlbnRhdGlvbi5hY2Nlc3NSaWdodHNCeUdyb3VwKS5sZW5ndGggPT09IDA7XG4gIH1cblxuICBjYW5Nb2RpZnkkKHByZXNlbnRhdGlvbjogTWFuaWZlc3REZXNjcmlwdGlvbikge1xuICAgIHJldHVybiAhdGhpcy5hY2Nlc3MgPyBvZihmYWxzZSkgOiB0aGlzLmFjY2Vzcy5jYW5Nb2RpZnlQcmVzZW50YXRpb24ocHJlc2VudGF0aW9uKTtcbiAgfVxufVxuIiwiPHByeS1wcmVzZW50YXRpb24tY3NzPjwvcHJ5LXByZXNlbnRhdGlvbi1jc3M+XG48ZGl2IGNsYXNzPVwiby1tYW5pZmVzdC1sYXlvdXRcIiBbbmdTd2l0Y2hdPVwic2VsZWN0ZWRNb2RlXCI+XG4gIDxuZy1jb250YWluZXIgKm5nU3dpdGNoRGVmYXVsdD5cbiAgICA8ZGl2IGNsYXNzPVwiby1tYW5pZmVzdC1sYXlvdXRfX3Rvb2xib3hcIiBbY2xhc3MuLXUtaGlkZGVuXT1cImhpZGVUb29sYm94XCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwiYS1idG4gYS1idG4tLXByaW1hcnlcIlxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgKGNsaWNrKT1cImNyZWF0aW9uKClcIlxuICAgICAgICAqcHJ5QWNjZXNzPVwieyBtb2R1bGU6ICdkYXNoYm9hcmQnLCBwYWdlOiAnbWFuaWZlc3QnLCBhY3Rpb246ICdjcmVhdGUnIH1cIlxuICAgICAgPlxuICAgICAgICA8cHJ5LWljb24gaWNvblN2Zz1cImFkZFwiPjwvcHJ5LWljb24+XG4gICAgICAgIHt7ICdAcHJ5LnByZXNlbnRhdGlvbi5jcmVhdGUnIHwgaTE4biB9fVxuICAgICAgPC9idXR0b24+XG4gICAgICA8ZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiby1tYW5pZmVzdC1sYXlvdXRfX3Rvb2xib3hfX3NlYXJjaFwiPlxuICAgICAgICAgIDxsYWJlbCBpZD1cImNhdGFsb2ctc2VhcmNoLWxhYmVsXCIgZm9yPVwiY2F0YWxvZy1zZWFyY2hcIiBjbGFzcz1cInUtdmlzdWFsbHktaGlkZGVuXCI+XG4gICAgICAgICAgICA8c3Bhbj57eyAnQHByeS50b29sYm94LmNhdGFsb2cuZmlsdGVyLm5hbWUnIHwgaTE4biB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgaWQ9XCJjYXRhbG9nLXNlYXJjaFwiXG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICBjbGFzcz1cImEtZm9ybS1maWVsZFwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0BwcnkucHJlc2VudGF0aW9uLnNlYXJjaCcgfCBpMThuXCJcbiAgICAgICAgICAgIFtuZ01vZGVsXT1cInNlYXJjaCQgfCBhc3luY1wiXG4gICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ0aGlzLnNlYXJjaCQubmV4dCgkZXZlbnQpXCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIDxwcnktaWNvbiBjbGFzcz1cInNlYXJjaC1pY29uXCIgaWNvblN2Zz1cInNlYXJjaFwiIFt3aWR0aF09XCIxN1wiIFtoZWlnaHRdPVwiMTdcIj48L3ByeS1pY29uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJvLW1hbmlmZXN0LWxheW91dF9fY29udGVudFwiPlxuICAgICAgPGgxIGNsYXNzPVwiYS1oMVwiPnt7ICdAcHJ5LnByZXNlbnRhdGlvbi50aXRsZScgfCBpMThuIH19PC9oMT5cbiAgICAgIDxkaXYgY2xhc3M9XCJvLXByZXNlbnRhdGlvbi13cmFwcGVyXCI+XG4gICAgICAgIDx1bCBjbGFzcz1cIm8tcHJlc2VudGF0aW9uXCI+XG4gICAgICAgICAgPGxpXG4gICAgICAgICAgICBjbGFzcz1cIm8tcHJlc2VudGF0aW9uX19pdGVtXCJcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBwcmVzZW50YXRpb24gb2YgZmlsdGVyZWRQcmVzZW50YXRpb25zJCB8IGFzeW5jOyBsZXQgaW5kZXggPSBpbmRleFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm8tcHJlc2VudGF0aW9uX19pdGVtX19oZWFkZXJcIj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzUHJpdmF0ZShwcmVzZW50YXRpb24pXCI+XG4gICAgICAgICAgICAgICAgPHByeS1pY29uXG4gICAgICAgICAgICAgICAgICBpY29uU3ZnPVwicHJpdmF0ZVwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImlzLXByaXZhdGUgYS10b29sdGlwIC10b29sdGlwLW5vLXdyYXBcIlxuICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS10b29sdGlwXT1cIidAcHJ5LnByZXNlbnRhdGlvbi5wcml2YXRlJyB8IGkxOG5cIlxuICAgICAgICAgICAgICAgICAgW2hlaWdodF09XCIxN1wiXG4gICAgICAgICAgICAgICAgICBbd2lkdGhdPVwiMTdcIlxuICAgICAgICAgICAgICAgID48L3ByeS1pY29uPlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYS10b29sdGlwIC10b29sdGlwLW5vLXdyYXBcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJmZXRjaChwcmVzZW50YXRpb24pXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLXRvb2x0aXBdPVwiJ0BwcnkucHJlc2VudGF0aW9uLnZpZXcnIHwgaTE4blwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiby1wcmVzZW50YXRpb25fX2l0ZW1fX2ltYWdlXCI+XG4gICAgICAgICAgICAgICAgICA8aW1nIGFsdD1cIlwiIGNsYXNzPVwiaXMtZnVsbC13aWR0aFwiIFtzcmNdPVwicHJlc2VudGF0aW9uLmltYWdlIHwgZ2V0U2VjdXJlZEltYWdlIHwgYXN5bmNcIiAvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRoaXMuY2FuTW9kaWZ5JChwcmVzZW50YXRpb24pIHwgYXN5bmNcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9yZS1idXR0b25cIiAqcHJ5QWNjZXNzPVwieyBtb2R1bGU6ICdkYXNoYm9hcmQnLCBwYWdlOiAnbWFuaWZlc3QnLCBhY3Rpb246ICdzaGFyZScgfVwiPlxuICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tbW9yZSBhLXRvb2x0aXAgLXRvb2x0aXAtbm8td3JhcFwiXG4gICAgICAgICAgICAgICAgICAgIFtpZF09XCInbW9yZS1idXR0b24tJyArIGluZGV4XCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS10b29sdGlwXT1cIidAcHJ5LnJlc3RpdHV0aW9uLm1vcmUnIHwgaTE4blwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7IHRvZ2dsZU1vZGFsQWN0aW9ucyhwcmVzZW50YXRpb24sIGJ1dHRvbilcIlxuICAgICAgICAgICAgICAgICAgICAjYnV0dG9uXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxwcnktaWNvbiBbaGVpZ2h0XT1cIjI1XCIgW3dpZHRoXT1cIjI1XCIgaWNvblN2Zz1cIm1vcmVfaG9yaXpcIj48L3ByeS1pY29uPlxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiby1wcmVzZW50YXRpb25fX2l0ZW1fX3R4dFwiIChjbGljayk9XCJmZXRjaChwcmVzZW50YXRpb24pXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvLXByZXNlbnRhdGlvbl9faXRlbV9fdGl0bGUtY29udGFpbmVyXCIgZWxsaXBzaXMgdGV4dEVsZW1lbnRTZWxlY3Rvcj1cIi5hLWgzXCI+XG4gICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwiYS1oM1wiPnt7IHByZXNlbnRhdGlvbi5uYW1lIH19PC9oMz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvLXByZXNlbnRhdGlvbl9faXRlbV9fZGVzY3JpcHRpb24tY29udGFpbmVyXCIgZWxsaXBzaXMgdGV4dEVsZW1lbnRTZWxlY3Rvcj1cIi5hLXBcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiby1wcmVzZW50YXRpb25fX2l0ZW1fX2Rlc2NyaXB0aW9uIGEtcFwiPlxuICAgICAgICAgICAgICAgICAge3sgcHJlc2VudGF0aW9uLmRlc2NyaXB0aW9uIH19XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8cCBjbGFzcz1cImEtcCAtZGF0ZVwiPnt7IHByZXNlbnRhdGlvbi5tb2RpZmljYXRpb25EYXRlIHwgc2luY2VEYXRlIH19PC9wPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzPVwiby1wcmVzZW50YXRpb25fX2l0ZW1fX2Zvb3RlciBhLXRvb2x0aXAgLXRvb2x0aXAtbm8td3JhcFwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJmZXRjaChwcmVzZW50YXRpb24pXCJcbiAgICAgICAgICAgICAgW2F0dHIuZGF0YS10b29sdGlwXT1cIidAcHJ5LnByZXNlbnRhdGlvbi52aWV3JyB8IGkxOG5cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYS1idG5cIj5cbiAgICAgICAgICAgICAgICB7eyAnQHByeS5wcmVzZW50YXRpb24uY29uc3VsdCcgfCBpMThuIH19XG4gICAgICAgICAgICAgICAgPHByeS1pY29uIFt3aWR0aF09XCIyMFwiIFtoZWlnaHRdPVwiMjBcIiBpY29uU3ZnPVwiYXJyb3dfcmlnaHRcIj48L3ByeS1pY29uPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvbGk+XG4gICAgICAgIDwvdWw+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIlZpZXdNb2RlLkNSRUFUSU9OXCI+XG4gICAgPHByeS1hZGQtZWRpdC1wcmVzZW50YXRpb25cbiAgICAgIFtzZWxlY3RlZFByZXNlbnRhdGlvbl09XCIoc2VsZWN0ZWRQcmVzZW50YXRpb24kIHwgYXN5bmMpID8/IHVuZGVmaW5lZFwiXG4gICAgICAoZ29CYWNrKT1cImNsb3NlUmVzdGl0dXRpb24oKVwiXG4gICAgICBbZWRpdGlvblN0YXJ0VXJsXT1cImVkaXRpb25TdGFydFVybFwiXG4gICAgICBbZWRpdGlvbl09XCJmYWxzZVwiXG4gICAgICBbbW9kZV09XCJtb2RlXCJcbiAgICAgIFt0aGVtZVByZWZpeF09XCJ0aGVtZVByZWZpeFwiXG4gICAgPjwvcHJ5LWFkZC1lZGl0LXByZXNlbnRhdGlvbj5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIlZpZXdNb2RlLkVESVRJT05cIj5cbiAgICA8cHJ5LWFkZC1lZGl0LXByZXNlbnRhdGlvblxuICAgICAgW3NlbGVjdGVkUHJlc2VudGF0aW9uXT1cIihzZWxlY3RlZFByZXNlbnRhdGlvbiQgfCBhc3luYykgPz8gdW5kZWZpbmVkXCJcbiAgICAgIChnb0JhY2spPVwiY2xvc2VSZXN0aXR1dGlvbigpXCJcbiAgICAgIFtlZGl0aW9uU3RhcnRVcmxdPVwiZWRpdGlvblN0YXJ0VXJsXCJcbiAgICAgIFtlZGl0aW9uXT1cInRydWVcIlxuICAgICAgW21vZGVdPVwibW9kZVwiXG4gICAgICBbdGhlbWVQcmVmaXhdPVwidGhlbWVQcmVmaXhcIlxuICAgID48L3ByeS1hZGQtZWRpdC1wcmVzZW50YXRpb24+XG4gIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG48bmctdGVtcGxhdGUgI21vZGFsQWN0aW9ucz5cbiAgPGRpdiBjbGFzcz1cIm0tY29udGV4dC1tZW51XCI+XG4gICAgPHVsXG4gICAgICBjbGFzcz1cIm0tY29udGV4dC1tZW51X19saXN0XCJcbiAgICAgIHJvbGU9XCJkaWFsb2dcIlxuICAgICAgYXJpYS1tb2RhbD1cInRydWVcIlxuICAgICAgYXJpYS1sYWJlbGxlZGJ5PVwiZGlhbG9nIHByZXNlbnRhdGlvbiBvcHRpb25zXCJcbiAgICAgICpuZ0lmPVwic2VsZWN0ZWRQcmVzZW50YXRpb24kIHwgYXN5bmMgYXMgc2VsZWN0ZWRQcmVzZW50YXRpb25cIlxuICAgID5cbiAgICAgIDxsaSBjbGFzcz1cIm0tY29udGV4dC1tZW51X19saXN0X19pdGVtXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBjbGFzcz1cImEtYnRuIC1saW5rLWxpa2VcIlxuICAgICAgICAgIChjbGljayk9XCJlZGl0KHNlbGVjdGVkUHJlc2VudGF0aW9uKVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiEodGhpcy5jYW5Nb2RpZnkkKHNlbGVjdGVkUHJlc2VudGF0aW9uKSB8IGFzeW5jKVwiXG4gICAgICAgICAgKnByeUFjY2Vzcz1cInsgbW9kdWxlOiAnZGFzaGJvYXJkJywgcGFnZTogJ21hbmlmZXN0JywgYWN0aW9uOiAnZWRpdCcgfVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyAnQHByeS5wcmVzZW50YXRpb24uZWRpdGlvbicgfCBpMThuIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9saT5cbiAgICAgIDxsaSBjbGFzcz1cIm0tY29udGV4dC1tZW51X19saXN0X19pdGVtXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBjbGFzcz1cImEtYnRuIC1saW5rLWxpa2VcIlxuICAgICAgICAgIChjbGljayk9XCJlZGl0Q29udGVudChzZWxlY3RlZFByZXNlbnRhdGlvbilcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhKHRoaXMuY2FuTW9kaWZ5JChzZWxlY3RlZFByZXNlbnRhdGlvbikgfCBhc3luYylcIlxuICAgICAgICAgICpwcnlBY2Nlc3M9XCJ7IG1vZHVsZTogJ2Rhc2hib2FyZCcsIHBhZ2U6ICdtYW5pZmVzdCcsIGFjdGlvbjogJ2VkaXQnIH1cIlxuICAgICAgICA+XG4gICAgICAgICAge3sgJ0BwcnkucHJlc2VudGF0aW9uLmVkaXRpb25Db250ZW50JyB8IGkxOG4gfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2xpPlxuICAgICAgPGxpIGNsYXNzPVwibS1jb250ZXh0LW1lbnVfX2xpc3RfX2l0ZW1cIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVNb2RhbChzZWxlY3RlZFByZXNlbnRhdGlvbilcIlxuICAgICAgICAgIGNsYXNzPVwiYS1idG4gLWxpbmstbGlrZVwiXG4gICAgICAgICAgYXJpYS1oYXNwb3B1cD1cImRpYWxvZ1wiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiEodGhpcy5jYW5Nb2RpZnkkKHNlbGVjdGVkUHJlc2VudGF0aW9uKSB8IGFzeW5jKVwiXG4gICAgICAgICAgKnByeUFjY2Vzcz1cInsgbW9kdWxlOiAnZGFzaGJvYXJkJywgcGFnZTogJ21hbmlmZXN0JywgYWN0aW9uOiAnc2hhcmUnIH1cIlxuICAgICAgICA+XG4gICAgICAgICAge3sgJ0BwcnkucHJlc2VudGF0aW9uLnNoYXJlJyB8IGkxOG4gfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2xpPlxuICAgICAgPGxpIGNsYXNzPVwibS1jb250ZXh0LW1lbnVfX2xpc3RfX2l0ZW1cIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGNsYXNzPVwiYS1idG4gLWxpbmstbGlrZVwiXG4gICAgICAgICAgI29wZW5Nb2RhbFxuICAgICAgICAgIChjbGljayk9XCJkZWxldGUoc2VsZWN0ZWRQcmVzZW50YXRpb24uaWQpXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiISh0aGlzLmNhbk1vZGlmeSQoc2VsZWN0ZWRQcmVzZW50YXRpb24pIHwgYXN5bmMpXCJcbiAgICAgICAgICAqcHJ5QWNjZXNzPVwieyBtb2R1bGU6ICdkYXNoYm9hcmQnLCBwYWdlOiAnbWFuaWZlc3QnLCBhY3Rpb246ICdkZWxldGUnIH1cIlxuICAgICAgICA+XG4gICAgICAgICAge3sgJ0BwcnkucHJlc2VudGF0aW9uLmRlbGV0ZScgfCBpMThuIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9saT5cbiAgICA8L3VsPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
205
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlc2VudGF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL3ByZXNlbnRhdGlvbi9jb21wb25lbnRzL3ByZXNlbnRhdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9wcmVzZW50YXRpb24vY29tcG9uZW50cy9wcmVzZW50YXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFXLGFBQWEsRUFBYyxNQUFNLHNCQUFzQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQ0wsU0FBUyxFQUVULE1BQU0sRUFDTixLQUFLLEVBRUwsUUFBUSxFQUNSLFdBQVcsRUFDWCxTQUFTLEVBRVYsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixtQkFBbUIsRUFFbkIsa0JBQWtCLEVBRWxCLGdCQUFnQixFQUNoQixrQ0FBa0MsRUFJbEMsd0JBQXdCLEVBQ3hCLFFBQVEsRUFDVCxNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBYyxFQUFFLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7QUFNMUIsTUFBTSxPQUFPLHdCQUF5QixTQUFRLHdCQUF3QjtJQXNCcEUsSUFBYSxlQUFlLENBQUMsU0FBdUM7UUFDbEUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxD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Q3BFLENBQUM7SUFFRCxVQUFVLENBQUMsWUFBaUM7UUFDMUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNwRixDQUFDOzhHQW5NVSx3QkFBd0IsdU1BdUNiLGdCQUFnQjtrR0F2QzNCLHdCQUF3QixpWUFLQSxXQUFXLDZJQ3pDaEQsOHRPQTZLQTs7MkZEeklhLHdCQUF3QjtrQkFKcEMsU0FBUzsrQkFDRSxrQkFBa0I7OzBCQTBDekIsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxnQkFBZ0I7d0VBbENZLG9CQUFvQjtzQkFBckUsU0FBUzt1QkFBQyxjQUFjLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO2dCQUN4QixTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVc7Z0JBUWIsZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFHTyxlQUFlO3NCQUEzQixLQUFLO2dCQUtPLE1BQU07c0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPdmVybGF5LCBPdmVybGF5Q29uZmlnLCBPdmVybGF5UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgVGVtcGxhdGVQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgTmdab25lLFxuICBPcHRpb25hbCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NvbnRhaW5lclJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQge1xuICBEYXNoYm9hcmRBY3Rpb25zLFxuICBEYXNoYm9hcmRHcmlkTGF5b3V0LFxuICBEYXNoYm9hcmRNYW5pZmVzdCxcbiAgRGFzaGJvYXJkU2VsZWN0b3JzLFxuICBNYW5pZmVzdERlc2NyaXB0aW9uLFxuICBQUllfQUNDRVNTX1RPS0VOLFxuICBQcnlBY2Nlc3NSaWdodHNTaGFyZU1vZGFsQ29tcG9uZW50LFxuICBQcnlCYXNlQWNjZXNzLFxuICBQcnlEaWFsb2dTZXJ2aWNlLFxuICBQcnlUaXRsZVNlcnZpY2UsXG4gIFN1YnNjcmlwdGlvbm5lckRpcmVjdGl2ZSxcbiAgVmlld01vZGVcbn0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgbWFwLCBPYnNlcnZhYmxlLCBvZiwgc3RhcnRXaXRoIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB2NCB9IGZyb20gJ3V1aWQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwcnktcHJlc2VudGF0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3ByZXNlbnRhdGlvbi5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgUHJ5UHJlc2VudGF0aW9uQ29tcG9uZW50IGV4dGVuZHMgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlIHtcbiAgbWFuaWZlc3RzJDogT2JzZXJ2YWJsZTxNYW5pZmVzdERlc2NyaXB0aW9uW10+O1xuICBzZWxlY3RlZFByZXNlbnRhdGlvbiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1hbmlmZXN0RGVzY3JpcHRpb24gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHN0YXRpY01hbmlmZXN0JD86IE9ic2VydmFibGU8RGFzaGJvYXJkTWFuaWZlc3Q+O1xuICBzZWxlY3RlZE1vZGU6IFZpZXdNb2RlID0gVmlld01vZGUuQ0FUQUxPRztcbiAgQFZpZXdDaGlsZCgnbW9kYWxBY3Rpb25zJywgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KSB0ZW1wbGF0ZU1vZGFsQWN0aW9ucyE6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBWaWV3Q2hpbGQoJ29wZW5Nb2RhbCcpIG9wZW5Nb2RhbCE6IEVsZW1lbnRSZWY8SFRNTEJ1dHRvbkVsZW1lbnQ+O1xuICBvdmVybGF5UmVmPzogT3ZlcmxheVJlZjtcbiAgYWNjZXNzUmlnaHRzQnlHcm91cDogeyBba2V5OiBzdHJpbmddOiBzdHJpbmdbXSB9ID0ge307XG5cbiAgVmlld01vZGUgPSBWaWV3TW9kZTtcbiAgc2VhcmNoJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoJycpO1xuICBmaWx0ZXJlZFByZXNlbnRhdGlvbnMkOiBPYnNlcnZhYmxlPE1hbmlmZXN0RGVzY3JpcHRpb25bXT47XG5cbiAgQElucHV0KCkgZWRpdGlvblN0YXJ0VXJsOiBzdHJpbmcgPSAnLyc7XG4gIEBJbnB1dCgpIGNvbnN1bHRTdGFydFVybDogc3RyaW5nID0gJy8nO1xuICBASW5wdXQoKSBtZUFzT3duZXI/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHRoZW1lUHJlZml4OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgbW9kZTogJ3RoZW1lJyB8ICdtZXRhJyA9ICdtZXRhJztcbiAgQElucHV0KCkgaGlkZVRvb2xib3ggPSBmYWxzZTtcblxuICBsaXN0T2ZNYW5pZmVzdHMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNYW5pZmVzdERlc2NyaXB0aW9uW10gfCBudWxsPihudWxsKTtcbiAgQElucHV0KCkgc2V0IGxpc3RPZk1hbmlmZXN0cyhtYW5pZmVzdHM6IE1hbmlmZXN0RGVzY3JpcHRpb25bXSB8IG51bGwpIHtcbiAgICB0aGlzLmxpc3RPZk1hbmlmZXN0cyQubmV4dChBcnJheS5pc0FycmF5KG1hbmlmZXN0cykgPyBtYW5pZmVzdHMgOiBudWxsKTtcbiAgfVxuXG4gIGlucHV0U2VhcmNoJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoJycpO1xuICBASW5wdXQoKSBzZXQgc2VhcmNoKHF1ZXJ5OiBzdHJpbmcpIHtcbiAgICB0aGlzLmlucHV0U2VhcmNoJC5uZXh0KHF1ZXJ5KTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBzdG9yZTogU3RvcmU8YW55PixcbiAgICBwcm90ZWN0ZWQgb3ZlcmxheTogT3ZlcmxheSxcbiAgICBwcm90ZWN0ZWQgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICBwcm90ZWN0ZWQgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJvdGVjdGVkIHRpdGxlU2VydmljZTogUHJ5VGl0bGVTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJvdGVjdGVkIG5nWm9uZTogTmdab25lLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoUFJZX0FDQ0VTU19UT0tFTikgcHJpdmF0ZSBhY2Nlc3M6IFByeUJhc2VBY2Nlc3MsXG4gICAgcHJpdmF0ZSBkaWFsb2c6IFByeURpYWxvZ1NlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy5hY3RpdmF0ZWRSb3V0ZS5xdWVyeVBhcmFtcy5zdWJzY3JpYmUoKHBhcmFtcykgPT4ge1xuICAgICAgICBpZiAocGFyYW1zWydjcmVhdGUnXSkge1xuICAgICAgICAgIHRoaXMuY3JlYXRpb24oKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRGFzaGJvYXJkQWN0aW9ucy5mZXRjaE1hbmlmZXN0c0xpc3QoKSk7XG4gICAgdGhpcy5tYW5pZmVzdHMkID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLnN0b3JlXG4gICAgICAgIC5zZWxlY3QoRGFzaGJvYXJkU2VsZWN0b3JzLm1hbmlmZXN0c0xpc3QpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcCgobWFuaWZlc3RMaXN0KSA9PlxuICAgICAgICAgICAgWy4uLm1hbmlmZXN0TGlzdF0uc29ydCgoYSwgYikgPT5cbiAgICAgICAgICAgICAgYS5tb2RpZmljYXRpb25EYXRlID8gYi5tb2RpZmljYXRpb25EYXRlLmxvY2FsZUNvbXBhcmUoYS5tb2RpZmljYXRpb25EYXRlKSA6IDFcbiAgICAgICAgICAgIClcbiAgICAgICAgICApXG4gICAgICAgICksXG4gICAgICB0aGlzLmxpc3RPZk1hbmlmZXN0cyRcbiAgICBdKS5waXBlKG1hcCgoW2R5bmFtaWNzLCBzdGF0aWNzXSkgPT4gc3RhdGljcyA/PyBkeW5hbWljcykpO1xuXG4gICAgdGhpcy5zdGF0aWNNYW5pZmVzdCQgPSB0aGlzLnN0b3JlXG4gICAgICAuc2VsZWN0KERhc2hib2FyZFNlbGVjdG9ycy5zdGF0aWNNYW5pZmVzdClcbiAgICAgIC5waXBlKG1hcCgoc3RhdGljTSkgPT4gc3RhdGljTS53aW5kb3dzWzBdKSk7XG4gICAgdGhpcy5maWx0ZXJlZFByZXNlbnRhdGlvbnMkID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLm1hbmlmZXN0cyQsXG4gICAgICB0aGlzLnNlYXJjaCQsXG4gICAgICB0aGlzLmlucHV0U2VhcmNoJC5waXBlKHN0YXJ0V2l0aCgnJykpXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW3ByZXNlbnRhdGlvbnMsIHNlYXJjaCwgaW5wdXRTZWFyY2hdKSA9PlxuICAgICAgICBwcmVzZW50YXRpb25zLmZpbHRlcigocHJlc2VudGF0aW9ucykgPT4ge1xuICAgICAgICAgIGNvbnN0IFtuYW1lLCBkZXNjcmlwdGlvbl0gPSBbcHJlc2VudGF0aW9ucy5uYW1lLnRvTG93ZXJDYXNlKCksIHByZXNlbnRhdGlvbnMuZGVzY3JpcHRpb24/LnRvTG93ZXJDYXNlKCldO1xuICAgICAgICAgIGNvbnN0IFtzZWFyY2hRdWVyeSwgaW5wdXRTZWFyY2hRdWVyeV0gPSBbc2VhcmNoPy50b0xvd2VyQ2FzZSgpLCBpbnB1dFNlYXJjaD8udG9Mb3dlckNhc2UoKV07XG4gICAgICAgICAgcmV0dXJuICEhc2VhcmNoUXVlcnkgfHwgISFpbnB1dFNlYXJjaFF1ZXJ5XG4gICAgICAgICAgICA/ICghIXNlYXJjaFF1ZXJ5ICYmIChuYW1lLmluY2x1ZGVzKHNlYXJjaFF1ZXJ5KSB8fCBkZXNjcmlwdGlvbj8uaW5jbHVkZXMoc2VhcmNoUXVlcnkpKSkgfHxcbiAgICAgICAgICAgICAgICAoISFpbnB1dFNlYXJjaFF1ZXJ5ICYmIChuYW1lLmluY2x1ZGVzKGlucHV0U2VhcmNoUXVlcnkpIHx8IGRlc2NyaXB0aW9uPy5pbmNsdWRlcyhpbnB1dFNlYXJjaFF1ZXJ5KSkpXG4gICAgICAgICAgICA6IHRydWU7XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy5zdG9yZS5zZWxlY3QoRGFzaGJvYXJkU2VsZWN0b3JzLnByZXNlbnRhdGlvbikuc3Vic2NyaWJlKChwcmVzZW50YXRpb24pID0+IHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZE1vZGUgPSBwcmVzZW50YXRpb24/LnZpZXdNb2RlID8/IHRoaXMuVmlld01vZGUuQ0FUQUxPRztcbiAgICAgICAgdGhpcy5zZWxlY3RlZFByZXNlbnRhdGlvbiQubmV4dChwcmVzZW50YXRpb24uY3VycmVudCk7XG4gICAgICB9KVxuICAgICk7XG4gICAgdGhpcy50aXRsZVNlcnZpY2UuY2hhbmdlVGl0bGUoJ0BwcnkucHJlc2VudGF0aW9uLnRpdGxlJyk7XG4gIH1cblxuICBjbG9zZVJlc3RpdHV0aW9uKCkge1xuICAgIHRoaXMuc2VsZWN0ZWRQcmVzZW50YXRpb24kLm5leHQodW5kZWZpbmVkKTtcbiAgICB0aGlzLnNlbGVjdGVkTW9kZSA9IFZpZXdNb2RlLkNBVEFMT0c7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChEYXNoYm9hcmRBY3Rpb25zLnNlbGVjdFByZXNlbnRhdGlvbih7IHByZXNlbnRhdGlvbjogdW5kZWZpbmVkLCB2aWV3TW9kZTogVmlld01vZGUuQ0FUQUxPRyB9KSk7XG4gIH1cblxuICBmZXRjaChwcmVzZW50YXRpb246IE1hbmlmZXN0RGVzY3JpcHRpb24pIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKERhc2hib2FyZEFjdGlvbnMubG9hZFByZXNlbnRhdGlvbih7IHByZXNlbnRhdGlvbiwgdmlld01vZGU6IFZpZXdNb2RlLkNPTlNVTFQgfSkpO1xuICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICB0aGlzLnJvdXRlcj8ubmF2aWdhdGVCeVVybCh0aGlzLmNvbnN1bHRTdGFydFVybCk7XG4gICAgfSk7XG4gIH1cblxuICBjcmVhdGlvbigpIHtcbiAgICB0aGlzLnNlbGVjdGVkTW9kZSA9IFZpZXdNb2RlLkNSRUFUSU9OO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRGFzaGJvYXJkQWN0aW9ucy51cGRhdGVNYW5pZmVzdCh7IG1hbmlmZXN0OiB7IHdpbmRvd3M6IFtdIH0sIHNlbGVjdGVkSWRzOiBbXSB9KSk7XG4gICAgY29uc3QgbmV3UHJlc2VudGF0aW9uID0ge1xuICAgICAgcHJlc2VudGF0aW9uOiB7XG4gICAgICAgIGlkOiB2NCgpLFxuICAgICAgICBuYW1lOiAnJyxcbiAgICAgICAgYWNjZXNzUmlnaHRzQnlHcm91cDoge30gYXMgeyBba2V5OiBzdHJpbmddOiBzdHJpbmdbXSB9LFxuICAgICAgICBvd25lcjogdHJ1ZVxuICAgICAgfSBhcyBNYW5pZmVzdERlc2NyaXB0aW9uLFxuICAgICAgdmlld01vZGU6IFZpZXdNb2RlLkNSRUFUSU9OXG4gICAgfTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKERhc2hib2FyZEFjdGlvbnMuc2VsZWN0UHJlc2VudGF0aW9uKG5ld1ByZXNlbnRhdGlvbikpO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRGFzaGJvYXJkQWN0aW9ucy5zZXRHcmlkTGF5b3V0KHsgbGF5b3V0OiBEYXNoYm9hcmRHcmlkTGF5b3V0LkZVTEwgfSkpO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRGFzaGJvYXJkQWN0aW9ucy51cGRhdGVEaXNwbGF5T3B0aW9ucyh7IG1vZGU6IFZpZXdNb2RlLkNSRUFUSU9OIH0pKTtcbiAgfVxuXG4gIGVkaXQocHJlc2VudGF0aW9uOiBNYW5pZmVzdERlc2NyaXB0aW9uKSB7XG4gICAgdGhpcy5zZWxlY3RlZE1vZGUgPSBWaWV3TW9kZS5FRElUSU9OO1xuICAgIHRoaXMuc2VsZWN0ZWRQcmVzZW50YXRpb24kLm5leHQocHJlc2VudGF0aW9uKTtcbiAgICB0aGlzLnRpdGxlU2VydmljZS5jaGFuZ2VUaXRsZShwcmVzZW50YXRpb24ubmFtZSk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChEYXNoYm9hcmRBY3Rpb25zLnNlbGVjdFByZXNlbnRhdGlvbih7IHByZXNlbnRhdGlvbiwgdmlld01vZGU6IFZpZXdNb2RlLkVESVRJT04gfSkpO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRGFzaGJvYXJkQWN0aW9ucy5mZXRjaFN0YXRpY01hbmlmZXN0KHsgaWQ6IHByZXNlbnRhdGlvbi5pZCB9KSk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChEYXNoYm9hcmRBY3Rpb25zLnVwZGF0ZURpc3BsYXlPcHRpb25zKHsgbW9kZTogVmlld01vZGUuRURJVElPTiB9KSk7XG4gICAgdGhpcy5vdmVybGF5UmVmPy5kaXNwb3NlKCk7XG4gICAgdGhpcy5vdmVybGF5UmVmID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgZGVsZXRlKGlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKERhc2hib2FyZEFjdGlvbnMuY29uZmlybU1hbmlmZXN0RGVsZXRpb24oeyBpZCB9KSk7XG4gICAgdGhpcy50b2dnbGVNb2RhbEFjdGlvbnMoKTtcbiAgfVxuXG4gIHRvZ2dsZU1vZGFsQWN0aW9ucyhwcmVzZW50YXRpb24/OiBNYW5pZmVzdERlc2NyaXB0aW9uIHwgbnVsbCwgbW9yZUJ1dHRvbj86IEhUTUxCdXR0b25FbGVtZW50KSB7XG4gICAgaWYgKCF0aGlzLm92ZXJsYXlSZWYgJiYgcHJlc2VudGF0aW9uKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkUHJlc2VudGF0aW9uJC5uZXh0KHByZXNlbnRhdGlvbik7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKERhc2hib2FyZEFjdGlvbnMuc2VsZWN0UHJlc2VudGF0aW9uKHsgcHJlc2VudGF0aW9uLCB2aWV3TW9kZTogVmlld01vZGUuQ0FUQUxPRyB9KSk7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKERhc2hib2FyZEFjdGlvbnMubG9hZE1hbmlmZXN0KHsgaWQ6IHByZXNlbnRhdGlvbi5pZCB9KSk7XG4gICAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKFxuICAgICAgICBuZXcgT3ZlcmxheUNvbmZpZyh7XG4gICAgICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXG4gICAgICAgICAgcGFuZWxDbGFzczogWydtLWNvbnRleHQtbWVudS13cmFwcGVyJ10sXG4gICAgICAgICAgYmFja2Ryb3BDbGFzczogJ2JhY2tkcm9wJ1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgICAgIHRoaXMub3ZlcmxheVJlZi5iYWNrZHJvcENsaWNrKCkuc3Vic2NyaWJlKCgpID0+IHRoaXMudG9nZ2xlTW9kYWxBY3Rpb25zKHByZXNlbnRhdGlvbikpO1xuICAgICAgdGhpcy5vdmVybGF5UmVmLmF0dGFjaChuZXcgVGVtcGxhdGVQb3J0YWwodGhpcy50ZW1wbGF0ZU1vZGFsQWN0aW9ucywgdGhpcy52aWV3Q29udGFpbmVyUmVmKSk7XG4gICAgICBjb25zdCBjb250ZXh0TWVudSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2Rpdi5tLWNvbnRleHQtbWVudScpIGFzIEhUTUxEaXZFbGVtZW50O1xuICAgICAgaWYgKCEhY29udGV4dE1lbnUgJiYgbW9yZUJ1dHRvbikge1xuICAgICAgICBjb25zdCByZWN0ID0gbW9yZUJ1dHRvbi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgY29udGV4dE1lbnUuc3R5bGUubWluV2lkdGggPSAnMTg1cHgnO1xuICAgICAgICBjb250ZXh0TWVudS5zdHlsZS5sZWZ0ID0gKHJlY3Q/LmxlZnQgPz8gMCkgLSAoY29udGV4dE1lbnU/LmNsaWVudFdpZHRoID8/IDApICsgMjMgKyAncHgnO1xuICAgICAgICBjb250ZXh0TWVudS5zdHlsZS50b3AgPSAocmVjdD8udG9wID8/IDApICsgMzAgKyAncHgnO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm92ZXJsYXlSZWY/LmRpc3Bvc2UoKTtcbiAgICAgIHRoaXMub3ZlcmxheVJlZiA9IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMuc2VsZWN0ZWRQcmVzZW50YXRpb24kLm5leHQodW5kZWZpbmVkKTtcbiAgICB9XG4gIH1cblxuICB0b2dnbGVNb2RhbChwcmVzZW50YXRpb24/OiBNYW5pZmVzdERlc2NyaXB0aW9uIHwgbnVsbCkge1xuICAgIGlmIChwcmVzZW50YXRpb24pIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRQcmVzZW50YXRpb24kLm5leHQocHJlc2VudGF0aW9uKTtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRGFzaGJvYXJkQWN0aW9ucy5zZWxlY3RQcmVzZW50YXRpb24oeyBwcmVzZW50YXRpb24sIHZpZXdNb2RlOiBWaWV3TW9kZS5DQVRBTE9HIH0pKTtcbiAgICAgIHRoaXMudG9nZ2xlTW9kYWxBY3Rpb25zKCk7XG4gICAgICB0aGlzLmRpYWxvZy5vcGVuKFByeUFjY2Vzc1JpZ2h0c1NoYXJlTW9kYWxDb21wb25lbnQsIHtcbiAgICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXG4gICAgICAgIHBhbmVsQ2xhc3M6IFsnby1tb2RhbC13cmFwcGVyJ10sXG4gICAgICAgIGJhY2tkcm9wQ2xhc3M6ICdiYWNrZHJvcCcsXG4gICAgICAgIGRhdGE6IHsgbWFuaWZlc3Q6IHByZXNlbnRhdGlvbiB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBlZGl0Q29udGVudChzZWxlY3RlZFByZXNlbnRhdGlvbjogTWFuaWZlc3REZXNjcmlwdGlvbikge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICBEYXNoYm9hcmRBY3Rpb25zLmxvYWRQcmVzZW50YXRpb24oeyBwcmVzZW50YXRpb246IHNlbGVjdGVkUHJlc2VudGF0aW9uLCB2aWV3TW9kZTogVmlld01vZGUuRURJVElPTiB9KVxuICAgICk7XG4gICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgIHRoaXMucm91dGVyPy5uYXZpZ2F0ZUJ5VXJsKHRoaXMuY29uc3VsdFN0YXJ0VXJsKTtcbiAgICB9KTtcbiAgfVxuXG4gIGlzUHJpdmF0ZShwcmVzZW50YXRpb246IE1hbmlmZXN0RGVzY3JpcHRpb24pIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXMocHJlc2VudGF0aW9uLmFjY2Vzc1JpZ2h0c0J5R3JvdXApLmxlbmd0aCA9PT0gMDtcbiAgfVxuXG4gIGNhbk1vZGlmeSQocHJlc2VudGF0aW9uOiBNYW5pZmVzdERlc2NyaXB0aW9uKSB7XG4gICAgcmV0dXJuICF0aGlzLmFjY2VzcyA/IG9mKGZhbHNlKSA6IHRoaXMuYWNjZXNzLmNhbk1vZGlmeVByZXNlbnRhdGlvbihwcmVzZW50YXRpb24pO1xuICB9XG59XG4iLCI8cHJ5LXByZXNlbnRhdGlvbi1jc3M+PC9wcnktcHJlc2VudGF0aW9uLWNzcz5cbjxkaXYgY2xhc3M9XCJvLW1hbmlmZXN0LWxheW91dFwiIFtuZ1N3aXRjaF09XCJzZWxlY3RlZE1vZGVcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PlxuICAgIDxkaXYgY2xhc3M9XCJvLW1hbmlmZXN0LWxheW91dF9fdG9vbGJveFwiIFtjbGFzcy4tdS1oaWRkZW5dPVwiaGlkZVRvb2xib3hcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tcHJpbWFyeVwiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAoY2xpY2spPVwiY3JlYXRpb24oKVwiXG4gICAgICAgICpwcnlBY2Nlc3M9XCJ7IG1vZHVsZTogJ2Rhc2hib2FyZCcsIHBhZ2U6ICdtYW5pZmVzdCcsIGFjdGlvbjogJ2NyZWF0ZScgfVwiXG4gICAgICA+XG4gICAgICAgIDxwcnktaWNvbiBpY29uU3ZnPVwiYWRkXCI+PC9wcnktaWNvbj5cbiAgICAgICAge3sgJ0BwcnkucHJlc2VudGF0aW9uLmNyZWF0ZScgfCBpMThuIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJvLW1hbmlmZXN0LWxheW91dF9fdG9vbGJveF9fc2VhcmNoXCI+XG4gICAgICAgICAgPGxhYmVsIGlkPVwiY2F0YWxvZy1zZWFyY2gtbGFiZWxcIiBmb3I9XCJjYXRhbG9nLXNlYXJjaFwiIGNsYXNzPVwidS12aXN1YWxseS1oaWRkZW5cIj5cbiAgICAgICAgICAgIDxzcGFuPnt7ICdAcHJ5LnRvb2xib3guY2F0YWxvZy5maWx0ZXIubmFtZScgfCBpMThuIH19PC9zcGFuPlxuICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICBpZD1cImNhdGFsb2ctc2VhcmNoXCJcbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIGNsYXNzPVwiYS1mb3JtLWZpZWxkXCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInQHByeS5wcmVzZW50YXRpb24uc2VhcmNoJyB8IGkxOG5cIlxuICAgICAgICAgICAgW25nTW9kZWxdPVwic2VhcmNoJCB8IGFzeW5jXCJcbiAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInRoaXMuc2VhcmNoJC5uZXh0KCRldmVudClcIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgPHByeS1pY29uIGNsYXNzPVwic2VhcmNoLWljb25cIiBpY29uU3ZnPVwic2VhcmNoXCIgW3dpZHRoXT1cIjE3XCIgW2hlaWdodF09XCIxN1wiPjwvcHJ5LWljb24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm8tbWFuaWZlc3QtbGF5b3V0X19jb250ZW50XCI+XG4gICAgICA8aDEgY2xhc3M9XCJhLWgxXCI+e3sgJ0BwcnkucHJlc2VudGF0aW9uLnRpdGxlJyB8IGkxOG4gfX08L2gxPlxuICAgICAgPGRpdiBjbGFzcz1cIm8tcHJlc2VudGF0aW9uLXdyYXBwZXJcIj5cbiAgICAgICAgPHVsIGNsYXNzPVwiby1wcmVzZW50YXRpb25cIj5cbiAgICAgICAgICA8bGlcbiAgICAgICAgICAgIGNsYXNzPVwiby1wcmVzZW50YXRpb25fX2l0ZW1cIlxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IHByZXNlbnRhdGlvbiBvZiBmaWx0ZXJlZFByZXNlbnRhdGlvbnMkIHwgYXN5bmM7IGxldCBpbmRleCA9IGluZGV4XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiby1wcmVzZW50YXRpb25fX2l0ZW1fX2hlYWRlclwiPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNQcml2YXRlKHByZXNlbnRhdGlvbilcIj5cbiAgICAgICAgICAgICAgICA8cHJ5LWljb25cbiAgICAgICAgICAgICAgICAgIGljb25Tdmc9XCJwcml2YXRlXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaXMtcHJpdmF0ZSBhLXRvb2x0aXAgLXRvb2x0aXAtbm8td3JhcFwiXG4gICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLXRvb2x0aXBdPVwiJ0BwcnkucHJlc2VudGF0aW9uLnByaXZhdGUnIHwgaTE4blwiXG4gICAgICAgICAgICAgICAgICBbaGVpZ2h0XT1cIjE3XCJcbiAgICAgICAgICAgICAgICAgIFt3aWR0aF09XCIxN1wiXG4gICAgICAgICAgICAgICAgPjwvcHJ5LWljb24+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJhLXRvb2x0aXAgLXRvb2x0aXAtbm8td3JhcFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImZldGNoKHByZXNlbnRhdGlvbilcIlxuICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtdG9vbHRpcF09XCInQHByeS5wcmVzZW50YXRpb24udmlldycgfCBpMThuXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvLXByZXNlbnRhdGlvbl9faXRlbV9faW1hZ2VcIj5cbiAgICAgICAgICAgICAgICAgIDxpbWcgYWx0PVwiXCIgY2xhc3M9XCJpcy1mdWxsLXdpZHRoXCIgW3NyY109XCJwcmVzZW50YXRpb24uaW1hZ2UgfCBnZXRTZWN1cmVkSW1hZ2UgfCBhc3luY1wiIC8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGhpcy5jYW5Nb2RpZnkkKHByZXNlbnRhdGlvbikgfCBhc3luY1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb3JlLWJ1dHRvblwiICpwcnlBY2Nlc3M9XCJ7IG1vZHVsZTogJ2Rhc2hib2FyZCcsIHBhZ2U6ICdtYW5pZmVzdCcsIGFjdGlvbjogJ3NoYXJlJyB9XCI+XG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImEtYnRuIGEtYnRuLS1tb3JlIGEtdG9vbHRpcCAtdG9vbHRpcC1uby13cmFwXCJcbiAgICAgICAgICAgICAgICAgICAgW2lkXT1cIidtb3JlLWJ1dHRvbi0nICsgaW5kZXhcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLXRvb2x0aXBdPVwiJ0BwcnkucmVzdGl0dXRpb24ubW9yZScgfCBpMThuXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgdG9nZ2xlTW9kYWxBY3Rpb25zKHByZXNlbnRhdGlvbiwgYnV0dG9uKVwiXG4gICAgICAgICAgICAgICAgICAgICNidXR0b25cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHByeS1pY29uIFtoZWlnaHRdPVwiMjVcIiBbd2lkdGhdPVwiMjVcIiBpY29uU3ZnPVwibW9yZV9ob3JpelwiPjwvcHJ5LWljb24+XG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvLXByZXNlbnRhdGlvbl9faXRlbV9fdHh0XCIgKGNsaWNrKT1cImZldGNoKHByZXNlbnRhdGlvbilcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm8tcHJlc2VudGF0aW9uX19pdGVtX190aXRsZS1jb250YWluZXJcIiBlbGxpcHNpcyB0ZXh0RWxlbWVudFNlbGVjdG9yPVwiLmEtaDNcIj5cbiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJhLWgzXCI+e3sgcHJlc2VudGF0aW9uLm5hbWUgfX08L2gzPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm8tcHJlc2VudGF0aW9uX19pdGVtX19kZXNjcmlwdGlvbi1jb250YWluZXJcIiBlbGxpcHNpcyB0ZXh0RWxlbWVudFNlbGVjdG9yPVwiLmEtcFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvLXByZXNlbnRhdGlvbl9faXRlbV9fZGVzY3JpcHRpb24gYS1wXCI+XG4gICAgICAgICAgICAgICAgICB7eyBwcmVzZW50YXRpb24uZGVzY3JpcHRpb24gfX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxwIGNsYXNzPVwiYS1wIC1kYXRlXCI+e3sgcHJlc2VudGF0aW9uLm1vZGlmaWNhdGlvbkRhdGUgfCBzaW5jZURhdGUgfX08L3A+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJvLXByZXNlbnRhdGlvbl9faXRlbV9fZm9vdGVyIGEtdG9vbHRpcCAtdG9vbHRpcC1uby13cmFwXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImZldGNoKHByZXNlbnRhdGlvbilcIlxuICAgICAgICAgICAgICBbYXR0ci5kYXRhLXRvb2x0aXBdPVwiJ0BwcnkucHJlc2VudGF0aW9uLnZpZXcnIHwgaTE4blwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJhLWJ0blwiPlxuICAgICAgICAgICAgICAgIHt7ICdAcHJ5LnByZXNlbnRhdGlvbi5jb25zdWx0JyB8IGkxOG4gfX1cbiAgICAgICAgICAgICAgICA8cHJ5LWljb24gW3dpZHRoXT1cIjIwXCIgW2hlaWdodF09XCIyMFwiIGljb25Tdmc9XCJhcnJvd19yaWdodFwiPjwvcHJ5LWljb24+XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9saT5cbiAgICAgICAgPC91bD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiVmlld01vZGUuQ1JFQVRJT05cIj5cbiAgICA8cHJ5LWFkZC1lZGl0LXByZXNlbnRhdGlvblxuICAgICAgW3NlbGVjdGVkUHJlc2VudGF0aW9uXT1cIihzZWxlY3RlZFByZXNlbnRhdGlvbiQgfCBhc3luYykgPz8gdW5kZWZpbmVkXCJcbiAgICAgIChnb0JhY2spPVwiY2xvc2VSZXN0aXR1dGlvbigpXCJcbiAgICAgIFtlZGl0aW9uU3RhcnRVcmxdPVwiZWRpdGlvblN0YXJ0VXJsXCJcbiAgICAgIFtlZGl0aW9uXT1cImZhbHNlXCJcbiAgICAgIFttb2RlXT1cIm1vZGVcIlxuICAgICAgW3RoZW1lUHJlZml4XT1cInRoZW1lUHJlZml4XCJcbiAgICA+PC9wcnktYWRkLWVkaXQtcHJlc2VudGF0aW9uPlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiVmlld01vZGUuRURJVElPTlwiPlxuICAgIDxwcnktYWRkLWVkaXQtcHJlc2VudGF0aW9uXG4gICAgICBbc2VsZWN0ZWRQcmVzZW50YXRpb25dPVwiKHNlbGVjdGVkUHJlc2VudGF0aW9uJCB8IGFzeW5jKSA/PyB1bmRlZmluZWRcIlxuICAgICAgKGdvQmFjayk9XCJjbG9zZVJlc3RpdHV0aW9uKClcIlxuICAgICAgW2VkaXRpb25TdGFydFVybF09XCJlZGl0aW9uU3RhcnRVcmxcIlxuICAgICAgW2VkaXRpb25dPVwidHJ1ZVwiXG4gICAgICBbbW9kZV09XCJtb2RlXCJcbiAgICAgIFt0aGVtZVByZWZpeF09XCJ0aGVtZVByZWZpeFwiXG4gICAgPjwvcHJ5LWFkZC1lZGl0LXByZXNlbnRhdGlvbj5cbiAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cbjxuZy10ZW1wbGF0ZSAjbW9kYWxBY3Rpb25zPlxuICA8ZGl2IGNsYXNzPVwibS1jb250ZXh0LW1lbnVcIj5cbiAgICA8dWxcbiAgICAgIGNsYXNzPVwibS1jb250ZXh0LW1lbnVfX2xpc3RcIlxuICAgICAgcm9sZT1cImRpYWxvZ1wiXG4gICAgICBhcmlhLW1vZGFsPVwidHJ1ZVwiXG4gICAgICBhcmlhLWxhYmVsbGVkYnk9XCJkaWFsb2cgcHJlc2VudGF0aW9uIG9wdGlvbnNcIlxuICAgICAgKm5nSWY9XCJzZWxlY3RlZFByZXNlbnRhdGlvbiQgfCBhc3luYyBhcyBzZWxlY3RlZFByZXNlbnRhdGlvblwiXG4gICAgPlxuICAgICAgPGxpIGNsYXNzPVwibS1jb250ZXh0LW1lbnVfX2xpc3RfX2l0ZW1cIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGNsYXNzPVwiYS1idG4gLWxpbmstbGlrZVwiXG4gICAgICAgICAgKGNsaWNrKT1cImVkaXQoc2VsZWN0ZWRQcmVzZW50YXRpb24pXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiISh0aGlzLmNhbk1vZGlmeSQoc2VsZWN0ZWRQcmVzZW50YXRpb24pIHwgYXN5bmMpXCJcbiAgICAgICAgICAqcHJ5QWNjZXNzPVwieyBtb2R1bGU6ICdkYXNoYm9hcmQnLCBwYWdlOiAnbWFuaWZlc3QnLCBhY3Rpb246ICdlZGl0JyB9XCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7ICdAcHJ5LnByZXNlbnRhdGlvbi5lZGl0aW9uJyB8IGkxOG4gfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2xpPlxuICAgICAgPGxpIGNsYXNzPVwibS1jb250ZXh0LW1lbnVfX2xpc3RfX2l0ZW1cIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGNsYXNzPVwiYS1idG4gLWxpbmstbGlrZVwiXG4gICAgICAgICAgKGNsaWNrKT1cImVkaXRDb250ZW50KHNlbGVjdGVkUHJlc2VudGF0aW9uKVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiEodGhpcy5jYW5Nb2RpZnkkKHNlbGVjdGVkUHJlc2VudGF0aW9uKSB8IGFzeW5jKVwiXG4gICAgICAgICAgKnByeUFjY2Vzcz1cInsgbW9kdWxlOiAnZGFzaGJvYXJkJywgcGFnZTogJ21hbmlmZXN0JywgYWN0aW9uOiAnZWRpdCcgfVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyAnQHByeS5wcmVzZW50YXRpb24uZWRpdGlvbkNvbnRlbnQnIHwgaTE4biB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvbGk+XG4gICAgICA8bGkgY2xhc3M9XCJtLWNvbnRleHQtbWVudV9fbGlzdF9faXRlbVwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZU1vZGFsKHNlbGVjdGVkUHJlc2VudGF0aW9uKVwiXG4gICAgICAgICAgY2xhc3M9XCJhLWJ0biAtbGluay1saWtlXCJcbiAgICAgICAgICBhcmlhLWhhc3BvcHVwPVwiZGlhbG9nXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiISh0aGlzLmNhbk1vZGlmeSQoc2VsZWN0ZWRQcmVzZW50YXRpb24pIHwgYXN5bmMpXCJcbiAgICAgICAgICAqcHJ5QWNjZXNzPVwieyBtb2R1bGU6ICdkYXNoYm9hcmQnLCBwYWdlOiAnbWFuaWZlc3QnLCBhY3Rpb246ICdzaGFyZScgfVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyAnQHByeS5wcmVzZW50YXRpb24uc2hhcmUnIHwgaTE4biB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvbGk+XG4gICAgICA8bGkgY2xhc3M9XCJtLWNvbnRleHQtbWVudV9fbGlzdF9faXRlbVwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgY2xhc3M9XCJhLWJ0biAtbGluay1saWtlXCJcbiAgICAgICAgICAjb3Blbk1vZGFsXG4gICAgICAgICAgKGNsaWNrKT1cImRlbGV0ZShzZWxlY3RlZFByZXNlbnRhdGlvbi5pZClcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhKHRoaXMuY2FuTW9kaWZ5JChzZWxlY3RlZFByZXNlbnRhdGlvbikgfCBhc3luYylcIlxuICAgICAgICAgICpwcnlBY2Nlc3M9XCJ7IG1vZHVsZTogJ2Rhc2hib2FyZCcsIHBhZ2U6ICdtYW5pZmVzdCcsIGFjdGlvbjogJ2RlbGV0ZScgfVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyAnQHByeS5wcmVzZW50YXRpb24uZGVsZXRlJyB8IGkxOG4gfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2xpPlxuICAgIDwvdWw+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { CommonModule } from '@angular/common';
|
|
2
2
|
import { NgModule } from '@angular/core';
|
|
3
3
|
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
4
|
-
import { PryCoreModule, PryDashboardModule, PryI18nModule, PryIconModule, PryOverlayModule, PrySelectModule, PryShareModule } from '@provoly/dashboard';
|
|
4
|
+
import { PryCoreModule, PryDashboardModule, PryI18nModule, PryIconModule, PryOverlayModule, PrySelectModule, PryShareModule, PrySinceDateModule } from '@provoly/dashboard';
|
|
5
5
|
import { PryCheckboxModule } from '@provoly/dashboard/components/checkbox';
|
|
6
|
-
import { PrySinceDateModule } from '@provoly/dashboard/components/sinceDate';
|
|
7
6
|
import { PryAddEditPresentationComponent } from './components/add-edit-presentation/add-edit-presentation.component';
|
|
8
7
|
import { PryTitlePresentationComponent } from './components/title-presentation/title-presentation.component';
|
|
9
8
|
import { PryPresentationComponent } from './components/presentation.component';
|
|
@@ -37,7 +36,6 @@ export class PryPresentationModule {
|
|
|
37
36
|
PryDashboardModule,
|
|
38
37
|
ReactiveFormsModule,
|
|
39
38
|
PrySelectModule,
|
|
40
|
-
PrySinceDateModule,
|
|
41
39
|
PryShareModule,
|
|
42
40
|
FormsModule,
|
|
43
41
|
PryOverlayModule,
|
|
@@ -47,7 +45,8 @@ export class PryPresentationModule {
|
|
|
47
45
|
CommonModule,
|
|
48
46
|
A11yModule,
|
|
49
47
|
PryExpandPanelModule,
|
|
50
|
-
PryTextEditorModule
|
|
48
|
+
PryTextEditorModule,
|
|
49
|
+
PrySinceDateModule], exports: [PryPresentationComponent,
|
|
51
50
|
PryAddEditPresentationComponent,
|
|
52
51
|
PryTitlePresentationComponent,
|
|
53
52
|
PryPresentationCssComponent] }); }
|
|
@@ -56,7 +55,6 @@ export class PryPresentationModule {
|
|
|
56
55
|
PryDashboardModule,
|
|
57
56
|
ReactiveFormsModule,
|
|
58
57
|
PrySelectModule,
|
|
59
|
-
PrySinceDateModule,
|
|
60
58
|
PryShareModule,
|
|
61
59
|
FormsModule,
|
|
62
60
|
PryOverlayModule,
|
|
@@ -66,7 +64,8 @@ export class PryPresentationModule {
|
|
|
66
64
|
CommonModule,
|
|
67
65
|
A11yModule,
|
|
68
66
|
PryExpandPanelModule,
|
|
69
|
-
PryTextEditorModule
|
|
67
|
+
PryTextEditorModule,
|
|
68
|
+
PrySinceDateModule] }); }
|
|
70
69
|
}
|
|
71
70
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PryPresentationModule, decorators: [{
|
|
72
71
|
type: NgModule,
|
|
@@ -79,7 +78,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImpor
|
|
|
79
78
|
PryDashboardModule,
|
|
80
79
|
ReactiveFormsModule,
|
|
81
80
|
PrySelectModule,
|
|
82
|
-
PrySinceDateModule,
|
|
83
81
|
PryShareModule,
|
|
84
82
|
FormsModule,
|
|
85
83
|
PryOverlayModule,
|
|
@@ -89,9 +87,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImpor
|
|
|
89
87
|
CommonModule,
|
|
90
88
|
A11yModule,
|
|
91
89
|
PryExpandPanelModule,
|
|
92
|
-
PryTextEditorModule
|
|
90
|
+
PryTextEditorModule,
|
|
91
|
+
PrySinceDateModule
|
|
93
92
|
],
|
|
94
93
|
exports: [...COMPONENTS]
|
|
95
94
|
}]
|
|
96
95
|
}], ctorParameters: () => [{ type: i1.PryI18nService }] });
|
|
97
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlc2VudGF0aW9uLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL3ByZXNlbnRhdGlvbi9wcmVzZW50YXRpb24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQ0wsYUFBYSxFQUNiLGtCQUFrQixFQUNsQixhQUFhLEVBRWIsYUFBYSxFQUNiLGdCQUFnQixFQUNoQixlQUFlLEVBQ2YsY0FBYyxFQUFFLGtCQUFrQixFQUNuQyxNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzNFLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLG9FQUFvRSxDQUFDO0FBQ3JILE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQzdHLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7QUFFOUQsTUFBTSxVQUFVLEdBQUc7SUFDakIsd0JBQXdCO0lBQ3hCLCtCQUErQjtJQUMvQiw2QkFBNkI7SUFDN0IsMkJBQTJCO0NBQzVCLENBQUM7QUF5QkYsTUFBTSxPQUFPLHFCQUFxQjtJQUNoQyxZQUFvQixtQkFBbUM7UUFBbkMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFnQjtRQUNyRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxjQUFjLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFDN0UsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsY0FBYyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQy9FLENBQUM7OEdBSlUscUJBQXFCOytHQUFyQixxQkFBcUIsaUJBN0JoQyx3QkFBd0I7WUFDeEIsK0JBQStCO1lBQy9CLDZCQUE2QjtZQUM3QiwyQkFBMkIsYUFPekIsYUFBYTtZQUNiLGFBQWE7WUFDYixrQkFBa0I7WUFDbEIsbUJBQW1CO1lBQ25CLGVBQWU7WUFDZixjQUFjO1lBQ2QsV0FBVztZQUNYLGdCQUFnQjtZQUNoQixhQUFhO1lBQ2IsZ0JBQWdCO1lBQ2hCLGlCQUFpQjtZQUNqQixZQUFZO1lBQ1osVUFBVTtZQUNWLG9CQUFvQjtZQUNwQixtQkFBbUI7WUFDbkIsa0JBQWtCLGFBekJwQix3QkFBd0I7WUFDeEIsK0JBQStCO1lBQy9CLDZCQUE2QjtZQUM3QiwyQkFBMkI7K0dBMEJoQixxQkFBcUIsWUFuQjlCLGFBQWE7WUFDYixhQUFhO1lBQ2Isa0JBQWtCO1lBQ2xCLG1CQUFtQjtZQUNuQixlQUFlO1lBQ2YsY0FBYztZQUNkLFdBQVc7WUFDWCxnQkFBZ0I7WUFDaEIsYUFBYTtZQUNiLGdCQUFnQjtZQUNoQixpQkFBaUI7WUFDakIsWUFBWTtZQUNaLFVBQVU7WUFDVixvQkFBb0I7WUFDcEIsbUJBQW1CO1lBQ25CLGtCQUFrQjs7MkZBSVQscUJBQXFCO2tCQXZCakMsUUFBUTttQkFBQztvQkFDUixTQUFTLEVBQUUsRUFBRTtvQkFDYixZQUFZLEVBQUUsQ0FBQyxHQUFHLFVBQVUsQ0FBQztvQkFDN0IsT0FBTyxFQUFFO3dCQUNQLGFBQWE7d0JBQ2IsYUFBYTt3QkFDYixrQkFBa0I7d0JBQ2xCLG1CQUFtQjt3QkFDbkIsZUFBZTt3QkFDZixjQUFjO3dCQUNkLFdBQVc7d0JBQ1gsZ0JBQWdCO3dCQUNoQixhQUFhO3dCQUNiLGdCQUFnQjt3QkFDaEIsaUJBQWlCO3dCQUNqQixZQUFZO3dCQUNaLFVBQVU7d0JBQ1Ysb0JBQW9CO3dCQUNwQixtQkFBbUI7d0JBQ25CLGtCQUFrQjtxQkFDbkI7b0JBQ0QsT0FBTyxFQUFFLENBQUMsR0FBRyxVQUFVLENBQUM7aUJBQ3pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gIFByeUNvcmVNb2R1bGUsXG4gIFByeURhc2hib2FyZE1vZHVsZSxcbiAgUHJ5STE4bk1vZHVsZSxcbiAgUHJ5STE4blNlcnZpY2UsXG4gIFByeUljb25Nb2R1bGUsXG4gIFByeU92ZXJsYXlNb2R1bGUsXG4gIFByeVNlbGVjdE1vZHVsZSxcbiAgUHJ5U2hhcmVNb2R1bGUsIFByeVNpbmNlRGF0ZU1vZHVsZVxufSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQnO1xuaW1wb3J0IHsgUHJ5Q2hlY2tib3hNb2R1bGUgfSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQvY29tcG9uZW50cy9jaGVja2JveCc7XG5pbXBvcnQgeyBQcnlBZGRFZGl0UHJlc2VudGF0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkZC1lZGl0LXByZXNlbnRhdGlvbi9hZGQtZWRpdC1wcmVzZW50YXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IFByeVRpdGxlUHJlc2VudGF0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RpdGxlLXByZXNlbnRhdGlvbi90aXRsZS1wcmVzZW50YXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IFByeVByZXNlbnRhdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcmVzZW50YXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IGVuVHJhbnNsYXRpb25zIH0gZnJvbSAnLi9pMThuL2VuLnRyYW5zbGF0aW9ucyc7XG5pbXBvcnQgeyBmclRyYW5zbGF0aW9ucyB9IGZyb20gJy4vaTE4bi9mci50cmFuc2xhdGlvbnMnO1xuaW1wb3J0IHsgUHJ5UHJlc2VudGF0aW9uQ3NzQ29tcG9uZW50IH0gZnJvbSAnLi9zdHlsZS9jc3MuY29tcG9uZW50JztcbmltcG9ydCB7IEExMXlNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBQcnlFeHBhbmRQYW5lbE1vZHVsZSB9IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZC9jb21wb25lbnRzL21ldGFkYXRhLWVkaXRvcic7XG5pbXBvcnQgeyBQcnlUZXh0RWRpdG9yTW9kdWxlIH0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkL2NvbXBvbmVudHMvdGV4dC1lZGl0b3InO1xuaW1wb3J0IHsgUHJ5VG9vbGJveE1vZHVsZSB9IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZC90b29sYm94JztcblxuY29uc3QgQ09NUE9ORU5UUyA9IFtcbiAgUHJ5UHJlc2VudGF0aW9uQ29tcG9uZW50LFxuICBQcnlBZGRFZGl0UHJlc2VudGF0aW9uQ29tcG9uZW50LFxuICBQcnlUaXRsZVByZXNlbnRhdGlvbkNvbXBvbmVudCxcbiAgUHJ5UHJlc2VudGF0aW9uQ3NzQ29tcG9uZW50XG5dO1xuXG5ATmdNb2R1bGUoe1xuICBwcm92aWRlcnM6IFtdLFxuICBkZWNsYXJhdGlvbnM6IFsuLi5DT01QT05FTlRTXSxcbiAgaW1wb3J0czogW1xuICAgIFByeUljb25Nb2R1bGUsXG4gICAgUHJ5Q29yZU1vZHVsZSxcbiAgICBQcnlEYXNoYm9hcmRNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBQcnlTZWxlY3RNb2R1bGUsXG4gICAgUHJ5U2hhcmVNb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgUHJ5T3ZlcmxheU1vZHVsZSxcbiAgICBQcnlJMThuTW9kdWxlLFxuICAgIFByeVRvb2xib3hNb2R1bGUsXG4gICAgUHJ5Q2hlY2tib3hNb2R1bGUsXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEExMXlNb2R1bGUsXG4gICAgUHJ5RXhwYW5kUGFuZWxNb2R1bGUsXG4gICAgUHJ5VGV4dEVkaXRvck1vZHVsZSxcbiAgICBQcnlTaW5jZURhdGVNb2R1bGVcbiAgXSxcbiAgZXhwb3J0czogWy4uLkNPTVBPTkVOVFNdXG59KVxuZXhwb3J0IGNsYXNzIFByeVByZXNlbnRhdGlvbk1vZHVsZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcHJ5VHJhbnNsYXRlU2VydmljZTogUHJ5STE4blNlcnZpY2UpIHtcbiAgICB0aGlzLnByeVRyYW5zbGF0ZVNlcnZpY2UuYWRkTGFuZ09iamVjdCgnZnInLCAncHJlc2VudGF0aW9uJywgZnJUcmFuc2xhdGlvbnMpO1xuICAgIHRoaXMucHJ5VHJhbnNsYXRlU2VydmljZS5hZGRMYW5nT2JqZWN0KCdlbicsICdwcmVzZW50YXRpb24nLCBlblRyYW5zbGF0aW9ucyk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -125,7 +125,7 @@ export class PryRestitutionComponent extends SubscriptionnerDirective {
|
|
|
125
125
|
this.prev(stepper);
|
|
126
126
|
}
|
|
127
127
|
datasourcesChanged($event) {
|
|
128
|
-
this.form.selectedDataSources =
|
|
128
|
+
this.form.selectedDataSources = $event;
|
|
129
129
|
}
|
|
130
130
|
submit(stepper) {
|
|
131
131
|
if (this.consultMode) {
|
|
@@ -185,11 +185,11 @@ export class PryRestitutionComponent extends SubscriptionnerDirective {
|
|
|
185
185
|
this.restitutionCreated.emit();
|
|
186
186
|
}
|
|
187
187
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PryRestitutionComponent, deps: [{ token: i1.ToolboxManifestService }, { token: i2.Store }, { token: i1.ToolboxMenuService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
188
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: PryRestitutionComponent, selector: "pry-restitution", inputs: { selectedRestitution: "selectedRestitution", edit: "edit", isDataSourceSelected: "isDataSourceSelected", bindId: "bindId" }, outputs: { restitutionCreated: "restitutionCreated" }, usesInheritance: true, ngImport: i0, template: "<pry-restitution-css></pry-restitution-css>\n<div class=\"o-restitution\">\n <h3 class=\"a-h2 o-restitution__title\">\n {{ (consultMode ? '@pry.restitution.consult' : edit ? '@pry.restitution.edit' : '@pry.restitution.create') | i18n }}\n </h3>\n <pry-stepper\n #stepper\n [isConsultMode]=\"consultMode\"\n (lastStepCompleted)=\"lastStepCompleted()\"\n (activeIndexChange)=\"activeStepIndex = $event\"\n >\n <pry-step>\n <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@pry.restitution.configure' | i18n }}</h4>\n <div class=\"m-form-label-field\">\n <label for=\"restitution\" class=\"a-label\">{{ '@pry.restitution.restitution_type' | i18n }}</label>\n <pry-select\n id=\"restitution\"\n [items]=\"types$ | async\"\n [(ngModel)]=\"form.selectedWidget\"\n [disabled]=\"consultMode\"\n [closeOnSelect]=\"true\"\n bindIcon=\"icon\"\n bindLabel=\"label\"\n bindValue=\"type\"\n >\n </pry-select>\n </div>\n <ng-container *ngIf=\"form.selectedWidget !== ''\">\n <div class=\"m-form-label-field\">\n <label for=\"graphTitle\" class=\"a-label\">{{ '@pry.restitution.graph_title' | i18n }}</label>\n <input\n name=\"title\"\n id=\"graphTitle\"\n class=\"a-form-field\"\n [(ngModel)]=\"form.title\"\n type=\"text\"\n [disabled]=\"consultMode\"\n maxlength=\"30\"\n ngDefaultControl\n />\n </div>\n <div class=\"m-form-label-field\">\n <label for=\"description\" class=\"a-label\">{{ '@pry.restitution.description' | i18n }}</label>\n <textarea\n name=\"description\"\n id=\"description\"\n class=\"a-form-field\"\n [(ngModel)]=\"form.description\"\n style=\"resize: none\"\n [disabled]=\"consultMode\"\n maxlength=\"255\"\n ngDefaultControl\n >\n </textarea>\n </div>\n <div class=\"m-form-label-field -width-full\">\n <label class=\"a-label\">{{ '@pry.presentation.form.image' | i18n }}</label>\n <div class=\"o-file-input\">\n <pry-select-image (changed)=\"image = $event\" [iconUrl]=\"image\" [mode]=\"type\"></pry-select-image>\n </div>\n </div>\n <div class=\"m-btn-group -space-evenly actions\">\n <button (click)=\"cancel(stepper)\" type=\"button\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.restitution.close' | i18n }}\n </button>\n <button\n (click)=\"goNext(stepper)\"\n [disabled]=\"form.selectedWidget === '' || form.title.trim().length === 0\"\n class=\"a-btn a-btn--primary\"\n >\n {{ '@pry.restitution.validate' | i18n }}\n </button>\n </div>\n </ng-container>\n </pry-step>\n <pry-step>\n <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@pry.restitution.dataSource' | i18n }}</h4>\n <pry-datasource-selector\n
|
|
188
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: PryRestitutionComponent, selector: "pry-restitution", inputs: { selectedRestitution: "selectedRestitution", edit: "edit", isDataSourceSelected: "isDataSourceSelected", bindId: "bindId" }, outputs: { restitutionCreated: "restitutionCreated" }, usesInheritance: true, ngImport: i0, template: "<pry-restitution-css></pry-restitution-css>\n<div class=\"o-restitution\">\n <h3 class=\"a-h2 o-restitution__title\">\n {{ (consultMode ? '@pry.restitution.consult' : edit ? '@pry.restitution.edit' : '@pry.restitution.create') | i18n }}\n </h3>\n <pry-stepper\n #stepper\n [isConsultMode]=\"consultMode\"\n (lastStepCompleted)=\"lastStepCompleted()\"\n (activeIndexChange)=\"activeStepIndex = $event\"\n >\n <pry-step>\n <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@pry.restitution.configure' | i18n }}</h4>\n <div class=\"m-form-label-field\">\n <label for=\"restitution\" class=\"a-label\">{{ '@pry.restitution.restitution_type' | i18n }}</label>\n <pry-select\n id=\"restitution\"\n [items]=\"types$ | async\"\n [(ngModel)]=\"form.selectedWidget\"\n [disabled]=\"consultMode\"\n [closeOnSelect]=\"true\"\n bindIcon=\"icon\"\n bindLabel=\"label\"\n bindValue=\"type\"\n >\n </pry-select>\n </div>\n <ng-container *ngIf=\"form.selectedWidget !== ''\">\n <div class=\"m-form-label-field\">\n <label for=\"graphTitle\" class=\"a-label\">{{ '@pry.restitution.graph_title' | i18n }}</label>\n <input\n name=\"title\"\n id=\"graphTitle\"\n class=\"a-form-field\"\n [(ngModel)]=\"form.title\"\n type=\"text\"\n [disabled]=\"consultMode\"\n maxlength=\"30\"\n ngDefaultControl\n />\n </div>\n <div class=\"m-form-label-field\">\n <label for=\"description\" class=\"a-label\">{{ '@pry.restitution.description' | i18n }}</label>\n <textarea\n name=\"description\"\n id=\"description\"\n class=\"a-form-field\"\n [(ngModel)]=\"form.description\"\n style=\"resize: none\"\n [disabled]=\"consultMode\"\n maxlength=\"255\"\n ngDefaultControl\n >\n </textarea>\n </div>\n <div class=\"m-form-label-field -width-full\">\n <label class=\"a-label\">{{ '@pry.presentation.form.image' | i18n }}</label>\n <div class=\"o-file-input\">\n <pry-select-image (changed)=\"image = $event\" [iconUrl]=\"image\" [mode]=\"type\"></pry-select-image>\n </div>\n </div>\n <div class=\"m-btn-group -space-evenly actions\">\n <button (click)=\"cancel(stepper)\" type=\"button\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.restitution.close' | i18n }}\n </button>\n <button\n (click)=\"goNext(stepper)\"\n [disabled]=\"form.selectedWidget === '' || form.title.trim().length === 0\"\n class=\"a-btn a-btn--primary\"\n >\n {{ '@pry.restitution.validate' | i18n }}\n </button>\n </div>\n </ng-container>\n </pry-step>\n <pry-step>\n <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@pry.restitution.dataSource' | i18n }}</h4>\n <pry-datasource-selector\n [manifest]=\"customManifest\"\n (itemsChanged)=\"datasourcesChanged($event)\"\n [showButtons]=\"false\"\n [showTitle]=\"false\"\n ></pry-datasource-selector>\n <ng-container [ngTemplateOutlet]=\"buttons\" [ngTemplateOutletContext]=\"{ submit: true }\"></ng-container>\n </pry-step>\n <pry-step>\n <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@pry.restitution.visualize' | i18n }}</h4>\n <div class=\"widget-instanciator\">\n <pry-widget-instanciator\n [standalone]=\"true\"\n [staticManifest]=\"customManifest\"\n [open$]=\"openSettings$\"\n (manifestModified)=\"updateManifest($event)\"\n ></pry-widget-instanciator>\n </div>\n <ng-container [ngTemplateOutlet]=\"buttons\"></ng-container>\n </pry-step>\n <pry-step>\n <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@pry.restitution.share' | i18n }}</h4>\n <h3>{{ '@pry.restitution.access' | i18n }}</h3>\n {{ '@pry.restitution.choice' | i18n }}\n <ul>\n <li>\n {{ '@pry.restitution.public' | i18n }}\n </li>\n </ul>\n {{ '@pry.restitution.or' | i18n }}\n <ul>\n <li>\n {{ '@pry.restitution.private' | i18n }}\n </li>\n </ul>\n <pry-share [(ngModel)]=\"groups\" labelProperty=\"name\" valueProperty=\"id\" [disabled]=\"consultMode\"></pry-share>\n <ng-container [ngTemplateOutlet]=\"buttons\"></ng-container>\n </pry-step>\n </pry-stepper>\n</div>\n\n<ng-template #buttons let-submit=\"submit\">\n <div class=\"m-btn-group -space-evenly actions\">\n <button (click)=\"prev(stepper)\" type=\"button\" class=\"a-btn a-btn--secondary\">\n {{ (consultMode ? '@pry.restitution.goBack' : '@pry.restitution.close') | i18n }}\n </button>\n <button (click)=\"goNext(stepper, submit)\" type=\"button\" class=\"a-btn a-btn--primary\">\n {{ (activeStepIndex === 3 ? '@pry.restitution.share' : '@pry.restitution.next') | i18n }}\n </button>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i1.PrySelectImageComponent, selector: "pry-select-image", inputs: ["iconUrl", "size", "mode"], outputs: ["toggled", "changed"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.PryStepperComponent, selector: "pry-stepper", inputs: ["isConsultMode"], outputs: ["lastStepCompleted", "activeIndexChange"] }, { kind: "component", type: i5.PryStepComponent, selector: "pry-step", inputs: ["setActiveState"] }, { kind: "directive", type: i5.PryStepTitleDirective, selector: "[stepTitle]" }, { kind: "component", type: i1.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "autocomplete", "alwaysShowAutosuggestedValues", "externalAutocompleteService", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared", "clicked"] }, { kind: "component", type: i1.WidgetInstanciatorComponent, selector: "pry-widget-instanciator", inputs: ["widgetIndex", "staticManifest", "standalone", "open$"], outputs: ["manifestModified"] }, { kind: "component", type: i1.DatasourceSelectorComponent, selector: "pry-datasource-selector", inputs: ["showButtons", "showTitle", "manifest"], outputs: ["previousTab", "nextTab", "cancel", "validated", "itemsChanged"] }, { kind: "component", type: i1.PryShareComponent, selector: "pry-share", inputs: ["labelProperty", "valueProperty"] }, { kind: "component", type: i6.PryCatalogCssComponent, selector: "pry-restitution-css" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.I18nPipe, name: "i18n" }] }); }
|
|
189
189
|
}
|
|
190
190
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PryRestitutionComponent, decorators: [{
|
|
191
191
|
type: Component,
|
|
192
|
-
args: [{ selector: 'pry-restitution', template: "<pry-restitution-css></pry-restitution-css>\n<div class=\"o-restitution\">\n <h3 class=\"a-h2 o-restitution__title\">\n {{ (consultMode ? '@pry.restitution.consult' : edit ? '@pry.restitution.edit' : '@pry.restitution.create') | i18n }}\n </h3>\n <pry-stepper\n #stepper\n [isConsultMode]=\"consultMode\"\n (lastStepCompleted)=\"lastStepCompleted()\"\n (activeIndexChange)=\"activeStepIndex = $event\"\n >\n <pry-step>\n <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@pry.restitution.configure' | i18n }}</h4>\n <div class=\"m-form-label-field\">\n <label for=\"restitution\" class=\"a-label\">{{ '@pry.restitution.restitution_type' | i18n }}</label>\n <pry-select\n id=\"restitution\"\n [items]=\"types$ | async\"\n [(ngModel)]=\"form.selectedWidget\"\n [disabled]=\"consultMode\"\n [closeOnSelect]=\"true\"\n bindIcon=\"icon\"\n bindLabel=\"label\"\n bindValue=\"type\"\n >\n </pry-select>\n </div>\n <ng-container *ngIf=\"form.selectedWidget !== ''\">\n <div class=\"m-form-label-field\">\n <label for=\"graphTitle\" class=\"a-label\">{{ '@pry.restitution.graph_title' | i18n }}</label>\n <input\n name=\"title\"\n id=\"graphTitle\"\n class=\"a-form-field\"\n [(ngModel)]=\"form.title\"\n type=\"text\"\n [disabled]=\"consultMode\"\n maxlength=\"30\"\n ngDefaultControl\n />\n </div>\n <div class=\"m-form-label-field\">\n <label for=\"description\" class=\"a-label\">{{ '@pry.restitution.description' | i18n }}</label>\n <textarea\n name=\"description\"\n id=\"description\"\n class=\"a-form-field\"\n [(ngModel)]=\"form.description\"\n style=\"resize: none\"\n [disabled]=\"consultMode\"\n maxlength=\"255\"\n ngDefaultControl\n >\n </textarea>\n </div>\n <div class=\"m-form-label-field -width-full\">\n <label class=\"a-label\">{{ '@pry.presentation.form.image' | i18n }}</label>\n <div class=\"o-file-input\">\n <pry-select-image (changed)=\"image = $event\" [iconUrl]=\"image\" [mode]=\"type\"></pry-select-image>\n </div>\n </div>\n <div class=\"m-btn-group -space-evenly actions\">\n <button (click)=\"cancel(stepper)\" type=\"button\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.restitution.close' | i18n }}\n </button>\n <button\n (click)=\"goNext(stepper)\"\n [disabled]=\"form.selectedWidget === '' || form.title.trim().length === 0\"\n class=\"a-btn a-btn--primary\"\n >\n {{ '@pry.restitution.validate' | i18n }}\n </button>\n </div>\n </ng-container>\n </pry-step>\n <pry-step>\n <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@pry.restitution.dataSource' | i18n }}</h4>\n <pry-datasource-selector\n
|
|
192
|
+
args: [{ selector: 'pry-restitution', template: "<pry-restitution-css></pry-restitution-css>\n<div class=\"o-restitution\">\n <h3 class=\"a-h2 o-restitution__title\">\n {{ (consultMode ? '@pry.restitution.consult' : edit ? '@pry.restitution.edit' : '@pry.restitution.create') | i18n }}\n </h3>\n <pry-stepper\n #stepper\n [isConsultMode]=\"consultMode\"\n (lastStepCompleted)=\"lastStepCompleted()\"\n (activeIndexChange)=\"activeStepIndex = $event\"\n >\n <pry-step>\n <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@pry.restitution.configure' | i18n }}</h4>\n <div class=\"m-form-label-field\">\n <label for=\"restitution\" class=\"a-label\">{{ '@pry.restitution.restitution_type' | i18n }}</label>\n <pry-select\n id=\"restitution\"\n [items]=\"types$ | async\"\n [(ngModel)]=\"form.selectedWidget\"\n [disabled]=\"consultMode\"\n [closeOnSelect]=\"true\"\n bindIcon=\"icon\"\n bindLabel=\"label\"\n bindValue=\"type\"\n >\n </pry-select>\n </div>\n <ng-container *ngIf=\"form.selectedWidget !== ''\">\n <div class=\"m-form-label-field\">\n <label for=\"graphTitle\" class=\"a-label\">{{ '@pry.restitution.graph_title' | i18n }}</label>\n <input\n name=\"title\"\n id=\"graphTitle\"\n class=\"a-form-field\"\n [(ngModel)]=\"form.title\"\n type=\"text\"\n [disabled]=\"consultMode\"\n maxlength=\"30\"\n ngDefaultControl\n />\n </div>\n <div class=\"m-form-label-field\">\n <label for=\"description\" class=\"a-label\">{{ '@pry.restitution.description' | i18n }}</label>\n <textarea\n name=\"description\"\n id=\"description\"\n class=\"a-form-field\"\n [(ngModel)]=\"form.description\"\n style=\"resize: none\"\n [disabled]=\"consultMode\"\n maxlength=\"255\"\n ngDefaultControl\n >\n </textarea>\n </div>\n <div class=\"m-form-label-field -width-full\">\n <label class=\"a-label\">{{ '@pry.presentation.form.image' | i18n }}</label>\n <div class=\"o-file-input\">\n <pry-select-image (changed)=\"image = $event\" [iconUrl]=\"image\" [mode]=\"type\"></pry-select-image>\n </div>\n </div>\n <div class=\"m-btn-group -space-evenly actions\">\n <button (click)=\"cancel(stepper)\" type=\"button\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.restitution.close' | i18n }}\n </button>\n <button\n (click)=\"goNext(stepper)\"\n [disabled]=\"form.selectedWidget === '' || form.title.trim().length === 0\"\n class=\"a-btn a-btn--primary\"\n >\n {{ '@pry.restitution.validate' | i18n }}\n </button>\n </div>\n </ng-container>\n </pry-step>\n <pry-step>\n <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@pry.restitution.dataSource' | i18n }}</h4>\n <pry-datasource-selector\n [manifest]=\"customManifest\"\n (itemsChanged)=\"datasourcesChanged($event)\"\n [showButtons]=\"false\"\n [showTitle]=\"false\"\n ></pry-datasource-selector>\n <ng-container [ngTemplateOutlet]=\"buttons\" [ngTemplateOutletContext]=\"{ submit: true }\"></ng-container>\n </pry-step>\n <pry-step>\n <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@pry.restitution.visualize' | i18n }}</h4>\n <div class=\"widget-instanciator\">\n <pry-widget-instanciator\n [standalone]=\"true\"\n [staticManifest]=\"customManifest\"\n [open$]=\"openSettings$\"\n (manifestModified)=\"updateManifest($event)\"\n ></pry-widget-instanciator>\n </div>\n <ng-container [ngTemplateOutlet]=\"buttons\"></ng-container>\n </pry-step>\n <pry-step>\n <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@pry.restitution.share' | i18n }}</h4>\n <h3>{{ '@pry.restitution.access' | i18n }}</h3>\n {{ '@pry.restitution.choice' | i18n }}\n <ul>\n <li>\n {{ '@pry.restitution.public' | i18n }}\n </li>\n </ul>\n {{ '@pry.restitution.or' | i18n }}\n <ul>\n <li>\n {{ '@pry.restitution.private' | i18n }}\n </li>\n </ul>\n <pry-share [(ngModel)]=\"groups\" labelProperty=\"name\" valueProperty=\"id\" [disabled]=\"consultMode\"></pry-share>\n <ng-container [ngTemplateOutlet]=\"buttons\"></ng-container>\n </pry-step>\n </pry-stepper>\n</div>\n\n<ng-template #buttons let-submit=\"submit\">\n <div class=\"m-btn-group -space-evenly actions\">\n <button (click)=\"prev(stepper)\" type=\"button\" class=\"a-btn a-btn--secondary\">\n {{ (consultMode ? '@pry.restitution.goBack' : '@pry.restitution.close') | i18n }}\n </button>\n <button (click)=\"goNext(stepper, submit)\" type=\"button\" class=\"a-btn a-btn--primary\">\n {{ (activeStepIndex === 3 ? '@pry.restitution.share' : '@pry.restitution.next') | i18n }}\n </button>\n </div>\n</ng-template>\n" }]
|
|
193
193
|
}], ctorParameters: () => [{ type: i1.ToolboxManifestService }, { type: i2.Store }, { type: i1.ToolboxMenuService }], propDecorators: { selectedRestitution: [{
|
|
194
194
|
type: Input
|
|
195
195
|
}], edit: [{
|
|
@@ -201,4 +201,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImpor
|
|
|
201
201
|
}], bindId: [{
|
|
202
202
|
type: Input
|
|
203
203
|
}] } });
|
|
204
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdGl0dXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvcmVzdGl0dXRpb24vY29tcG9uZW50cy9yZXN0aXR1dGlvbi9yZXN0aXR1dGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9yZXN0aXR1dGlvbi9jb21wb25lbnRzL3Jlc3RpdHV0aW9uL3Jlc3RpdHV0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0UsT0FBTyxFQUdMLFlBQVksRUFDWixjQUFjLEVBQ2QsYUFBYSxFQUNiLGdCQUFnQixFQUVoQixpQkFBaUIsRUFDakIsbUJBQW1CLEVBQ25CLDRCQUE0QixFQUM1QixZQUFZLEVBQ1osaUJBQWlCLEVBQ2pCLFlBQVksRUFDWixhQUFhLEVBQ2Isd0JBQXdCLEVBR3hCLFFBQVEsRUFHVCxNQUFNLG9CQUFvQixDQUFDO0FBRTVCLE9BQU8sRUFBRSxHQUFHLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7O0FBTzFCLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSx3QkFBd0I7SUE4Qm5FLFlBQ1Usc0JBQThDLEVBQzlDLEtBQVksRUFDWixrQkFBc0M7UUFFOUMsS0FBSyxFQUFFLENBQUM7UUFKQSwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBQzlDLFVBQUssR0FBTCxLQUFLLENBQU87UUFDWix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBOUJoRCxtQkFBYyxHQUFtQjtZQUMvQixJQUFJLEVBQUUsUUFBUTtZQUNk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QixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07b0JBQ25CLFVBQVUsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixJQUFJLEVBQUU7b0JBQy9DLGdCQUFnQixFQUFFLEVBQUU7aUJBQ3JCO2FBQ0YsQ0FBQyxDQUNILENBQUM7UUFDSixDQUFDO1FBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2pDLENBQUM7OEdBaE5VLHVCQUF1QjtrR0FBdkIsdUJBQXVCLDJRQ2pDcEMsNnJLQWtJQTs7MkZEakdhLHVCQUF1QjtrQkFKbkMsU0FBUzsrQkFDRSxpQkFBaUI7Z0pBcUJsQixtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNJLGtCQUFrQjtzQkFBM0IsTUFBTTtnQkFHRSxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQge1xuICBDYXRhbG9nRW50cnksXG4gIENsYXNzLFxuICBDbGFzc0FjdGlvbnMsXG4gIENsYXNzU2VsZWN0b3JzLFxuICBDb25maWdBY3Rpb25zLFxuICBEYXNoYm9hcmRBY3Rpb25zLFxuICBEYXRhU291cmNlLFxuICBEYXRhU291cmNlQWN0aW9ucyxcbiAgRGF0YVNvdXJjZVNlbGVjdG9ycyxcbiAgREVGQVVMVF9SRVNUSVRVVElPTl9JQ09OX1VSTCxcbiAgRmllbGRBY3Rpb25zLFxuICBnZXREaXNwbGF5T3B0aW9ucyxcbiAgTGlicmFyeVR5cGVzLFxuICBTZWFyY2hBY3Rpb25zLFxuICBTdWJzY3JpcHRpb25uZXJEaXJlY3RpdmUsXG4gIFRvb2xib3hNYW5pZmVzdFNlcnZpY2UsXG4gIFRvb2xib3hNZW51U2VydmljZSxcbiAgVmlld01vZGUsXG4gIFdpZGdldCxcbiAgV2lkZ2V0TWFuaWZlc3Rcbn0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkJztcbmltcG9ydCB7IFByeVN0ZXBwZXJDb21wb25lbnQgfSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQvY29tcG9uZW50cy9zdGVwcGVyJztcbmltcG9ydCB7IG1hcCwgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdjQgfSBmcm9tICd1dWlkJztcbmltcG9ydCB7IFJlc3RpdHV0aW9uRm9ybSB9IGZyb20gJy4uLy4uL21vZGVsL3Jlc3RpdHV0aW9uLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncHJ5LXJlc3RpdHV0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Jlc3RpdHV0aW9uLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBQcnlSZXN0aXR1dGlvbkNvbXBvbmVudCBleHRlbmRzIFN1YnNjcmlwdGlvbm5lckRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHR5cGVzJDogT2JzZXJ2YWJsZTx7IGljb246IHN0cmluZzsgbGFiZWw6IHN0cmluZzsgdHlwZTogc3RyaW5nOyBtYW5pZmVzdDogV2lkZ2V0TWFuaWZlc3QgfVtdPjtcbiAgY2xhc3NlcyQ6IE9ic2VydmFibGU8Q2xhc3NbXT47XG4gIGN1c3RvbU1hbmlmZXN0OiBXaWRnZXRNYW5pZmVzdCA9IHtcbiAgICB0eXBlOiAnZGV0YWlsJyxcbiAgICBsYXlvdXQ6IHsgeDogMSwgeTogMSwgd2lkdGg6IDEsIGhlaWdodDogMSB9LFxuICAgIG9wdGlvbnM6IHsgaXRlbUlkczogW10gYXMgc3RyaW5nW10gfVxuICB9O1xuICBmb3JtOiBSZXN0aXR1dGlvbkZvcm0gPSB7XG4gICAgc2VsZWN0ZWRXaWRnZXQ6ICcnLFxuICAgIHNlbGVjdGVkRGF0YVNvdXJjZXM6IFtdLFxuICAgIHRpdGxlOiAnJyxcbiAgICBpbWFnZTogREVGQVVMVF9SRVNUSVRVVElPTl9JQ09OX1VSTCxcbiAgICBkZXNjcmlwdGlvbjogJydcbiAgfTtcbiAgZ3JvdXBzOiBzdHJpbmdbXSA9IFtdO1xuICBvcGVuU2V0dGluZ3MkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgY29uc3VsdE1vZGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgc2VsZWN0ZWRSZXN0aXR1dGlvbjogV2lkZ2V0IHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpIGVkaXQ6IGJvb2xlYW4gPSB0cnVlO1xuICBAT3V0cHV0KCkgcmVzdGl0dXRpb25DcmVhdGVkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICB3aWRnZXRzTGlzdCQ6IE9ic2VydmFibGU8Q2F0YWxvZ0VudHJ5W10+O1xuICB0eXBlOiBMaWJyYXJ5VHlwZXMgPSBMaWJyYXJ5VHlwZXMuSUxMVVNUUkFUSU9OO1xuICBASW5wdXQoKSBpc0RhdGFTb3VyY2VTZWxlY3RlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBiaW5kSWQ6IGFueTtcbiAgaW1hZ2U6IHN0cmluZyA9IERFRkFVTFRfUkVTVElUVVRJT05fSUNPTl9VUkw7XG4gIHdpZGdldFR5cGVzOiB7IGljb246IHN0cmluZzsgbGFiZWw6IHN0cmluZzsgdHlwZTogc3RyaW5nOyBtYW5pZmVzdDogV2lkZ2V0TWFuaWZlc3QgfVtdID0gW107XG4gIHVzZWREYXRhc291cmNlcyQ6IE9ic2VydmFibGU8RGF0YVNvdXJjZVtdPjtcbiAgYWN0aXZlU3RlcEluZGV4ID0gMDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHRvb2xib3hNYW5pZmVzdFNlcnZpY2U6IFRvb2xib3hNYW5pZmVzdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmUsXG4gICAgcHJpdmF0ZSB0b29sYm94TWVudVNlcnZpY2U6IFRvb2xib3hNZW51U2VydmljZVxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRGF0YVNvdXJjZUFjdGlvbnMubG9hZCgpKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENsYXNzQWN0aW9ucy5sb2FkKCkpO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQ29uZmlnQWN0aW9ucy5sb2FkQ3VzdG9taXphdGlvbigpKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKEZpZWxkQWN0aW9ucy5sb2FkKCkpO1xuXG4gICAgdGhpcy50eXBlcyQgPSB0aGlzLnRvb2xib3hNZW51U2VydmljZS50eXBlcyQucGlwZShcbiAgICAgIG1hcCgodHlwZSkgPT4gdHlwZS5maWx0ZXIoKGZpbHRlcmVkVHlwZSkgPT4gZmlsdGVyZWRUeXBlLnR5cGUgIT09ICdkZXRhaWwnKSlcbiAgICApO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQodGhpcy50eXBlcyQuc3Vic2NyaWJlKCh0eXBlcykgPT4gKHRoaXMud2lkZ2V0VHlwZXMgPSB0eXBlcykpKTtcbiAgICB0aGlzLmNsYXNzZXMkID0gdGhpcy5zdG9yZS5zZWxlY3QoQ2xhc3NTZWxlY3RvcnMuY2xhc3Nlcyk7XG4gICAgdGhpcy53aWRnZXRzTGlzdCQgPSB0aGlzLnRvb2xib3hNZW51U2VydmljZS5tZW51U3RydWN0dXJlJC5waXBlKFxuICAgICAgbWFwKChtZW51KSA9PlxuICAgICAgICBtZW51XG4gICAgICAgICAgLm1hcCgoaXRlbXMpID0+IFsuLi5pdGVtcy5zdWIuZmlsdGVyKChzKSA9PiB0aGlzLnRvb2xib3hNYW5pZmVzdFNlcnZpY2UuaXNNb2RlbChzLnR5cGUpKV0pXG4gICAgICAgICAgLnJlZHVjZSgoYWNjLCBpdGVtcykgPT4gWy4uLmFjYywgLi4uaXRlbXNdLCBbXSlcbiAgICAgIClcbiAgICApO1xuICAgIHRoaXMudXNlZERhdGFzb3VyY2VzJCA9IHRoaXMuc3RvcmVcbiAgICAgIC5zZWxlY3QoRGF0YVNvdXJjZVNlbGVjdG9ycy5nZXREYXRhU291cmNlc1NvcnRlZClcbiAgICAgIC5waXBlKG1hcCgoYWxsRHNzKSA9PiBhbGxEc3MuZmlsdGVyKChkYXRhc291cmNlKSA9PiB0aGlzLmZvcm0uc2VsZWN0ZWREYXRhU291cmNlcy5pbmNsdWRlcyhkYXRhc291cmNlLmlkKSkpKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNlbGVjdGVkUmVzdGl0dXRpb24pIHtcbiAgICAgIGlmICghdGhpcy5lZGl0KSB7XG4gICAgICAgIHRoaXMuY29uc3VsdE1vZGUgPSB0cnVlO1xuICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKERhc2hib2FyZEFjdGlvbnMudXBkYXRlRGlzcGxheU9wdGlvbnMoeyBtb2RlOiBWaWV3TW9kZS5DT05TVUxUIH0pKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgICAgRGFzaGJvYXJkQWN0aW9ucy51cGRhdGVEaXNwbGF5T3B0aW9ucyh7XG4gICAgICAgICAgICBtb2RlOiBWaWV3TW9kZS5DVVNUT00sXG4gICAgICAgICAgICBjdXN0b21EaXNwbGF5OiB7XG4gICAgICAgICAgICAgIC4uLmdldERpc3BsYXlPcHRpb25zKFZpZXdNb2RlLkVESVRJT04pLFxuICAgICAgICAgICAgICB3aWRnZXRDb250ZXh0TWVudToge1xuICAgICAgICAgICAgICAgIGRhdGFzb3VyY2VTZWxlY3Rpb246IGZhbHNlLFxuICAgICAgICAgICAgICAgIHBhcmFtZXRlcnM6IHRydWUsXG4gICAgICAgICAgICAgICAgd2luZG93OiBmYWxzZSxcbiAgICAgICAgICAgICAgICBtYXhpbWl6ZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgYWRkVG9DYXRhbG9nOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBkZWxldGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGNoYW5nZVNwb3Q6IGZhbHNlXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgdGhpcy5jdXN0b21NYW5pZmVzdCA9IEpTT04ucGFyc2UodGhpcy5zZWxlY3RlZFJlc3RpdHV0aW9uLmNvbnRlbnQpO1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5jdXN0b21NYW5pZmVzdC5kYXRhc291cmNlKSkge1xuICAgICAgICB0aGlzLmN1c3RvbU1hbmlmZXN0LmRhdGFzb3VyY2UuZm9yRWFjaCgoZGF0YVNvdXJjZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgICAgICAgIFNlYXJjaEFjdGlvbnMuZ2V0RGF0YXNvdXJjZUl0ZW1zKHtcbiAgICAgICAgICAgICAgaWQ6IGRhdGFTb3VyY2UsXG4gICAgICAgICAgICAgIGV4Y2x1ZGVHZW86IHRoaXMuY3VzdG9tTWFuaWZlc3QudHlwZSA9PT0gJ21hcCcsXG4gICAgICAgICAgICAgIGZyb206ICdQcnlSZXN0aXR1dGlvbkNvbXBvbmVudC5uZ09uSW5pdCgpLTEnXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgICAgICBTZWFyY2hBY3Rpb25zLmdldERhdGFzb3VyY2VJdGVtcyh7XG4gICAgICAgICAgICBpZDogdGhpcy5jdXN0b21NYW5pZmVzdC5kYXRhc291cmNlIGFzIHN0cmluZyxcbiAgICAgICAgICAgIGV4Y2x1ZGVHZW86IHRoaXMuY3VzdG9tTWFuaWZlc3QudHlwZSA9PT0gJ21hcCcsXG4gICAgICAgICAgICBmcm9tOiAnUHJ5UmVzdGl0dXRpb25Db21wb25lbnQubmdPbkluaXQoKS0yJ1xuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5zZWxlY3RlZFJlc3RpdHV0aW9uLmdyb3Vwcykge1xuICAgICAgICB0aGlzLmdyb3VwcyA9IHRoaXMuc2VsZWN0ZWRSZXN0aXR1dGlvbi5ncm91cHM7XG4gICAgICB9XG4gICAgICB0aGlzLmZvcm0uc2VsZWN0ZWREYXRhU291cmNlcy5mb3JFYWNoKChkYXRhU291cmNlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgICAgICBTZWFyY2hBY3Rpb25zLmdldERhdGFzb3VyY2VJdGVtcyh7XG4gICAgICAgICAgICBpZDogZGF0YVNvdXJjZSxcbiAgICAgICAgICAgIGV4Y2x1ZGVHZW86IHRoaXMuY3VzdG9tTWFuaWZlc3QudHlwZSA9PT0gJ21hcCcsXG4gICAgICAgICAgICBmcm9tOiAnUHJ5UmVzdGl0dXRpb25Db21wb25lbnQubmdPbkluaXQoKS0zJ1xuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMuY3VzdG9tTWFuaWZlc3QgPSBKU09OLnBhcnNlKHRoaXMuc2VsZWN0ZWRSZXN0aXR1dGlvbi5jb250ZW50KTtcbiAgICAgIHRoaXMuZm9ybSA9IHtcbiAgICAgICAgc2VsZWN0ZWRXaWRnZXQ6IHRoaXMuY3VzdG9tTWFuaWZlc3QudHlwZSxcbiAgICAgICAgc2VsZWN0ZWREYXRhU291cmNlczogKHRoaXMuY3VzdG9tTWFuaWZlc3QuZGF0YXNvdXJjZSA/PyBbXSkgYXMgc3RyaW5nW10sXG4gICAgICAgIHRpdGxlOiB0aGlzLnNlbGVjdGVkUmVzdGl0dXRpb24ubmFtZSxcbiAgICAgICAgLi4udGhpcy5zZWxlY3RlZFJlc3RpdHV0aW9uXG4gICAgICB9O1xuICAgIH1cbiAgICB0aGlzLmltYWdlID0gdGhpcy5zZWxlY3RlZFJlc3RpdHV0aW9uPy5pbWFnZSA/PyBERUZBVUxUX1JFU1RJVFVUSU9OX0lDT05fVVJMO1xuICB9XG5cbiAgY2FuY2VsKHN0ZXBwZXI6IFByeVN0ZXBwZXJDb21wb25lbnQpIHtcbiAgICB0aGlzLmZvcm0uc2VsZWN0ZWRXaWRnZXQgPSAnJztcbiAgICB0aGlzLmZvcm0uc2VsZWN0ZWREYXRhU291cmNlcyA9IFtdO1xuICAgIHRoaXMuZm9ybS50aXRsZSA9ICcnO1xuICAgIHRoaXMuZm9ybS5kZXNjcmlwdGlvbiA9ICcnO1xuICAgIHRoaXMuZm9ybS5pbWFnZSA9ICcnO1xuICAgIGlmICh0aGlzLmNvbnN1bHRNb2RlIHx8IHRoaXMuc2VsZWN0ZWRSZXN0aXR1dGlvbikge1xuICAgICAgdGhpcy5yZXN0aXR1dGlvbkNyZWF0ZWQuZW1pdCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnByZXYoc3RlcHBlcik7XG4gIH1cblxuICBkYXRhc291cmNlc0NoYW5nZWQoJGV2ZW50OiBEYXRhU291cmNlW10pIHtcbiAgICB0aGlzLmZvcm0uc2VsZWN0ZWREYXRhU291cmNlcyA9ICgkZXZlbnQgPz8gW10pLm1hcCgoZHMpID0+IGRzLmlkKTtcbiAgfVxuXG4gIHN1Ym1pdChzdGVwcGVyOiBQcnlTdGVwcGVyQ29tcG9uZW50KSB7XG4gICAgaWYgKHRoaXMuY29uc3VsdE1vZGUpIHtcbiAgICAgIHRoaXMuZ29OZXh0KHN0ZXBwZXIpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHdpZGdldFR5cGUgPSB0aGlzLndpZGdldFR5cGVzLmZpbmQoKHdpZGdldFR5cGUpID0+IHdpZGdldFR5cGUudHlwZSA9PT0gdGhpcy5mb3JtLnNlbGVjdGVkV2lkZ2V0KTtcblxuICAgIHRoaXMuY3VzdG9tTWFuaWZlc3QgPSB7XG4gICAgICAuLi50aGlzLmN1c3RvbU1hbmlmZXN0LFxuICAgICAgdHlwZTogdGhpcy5mb3JtLnNlbGVjdGVkV2lkZ2V0LFxuICAgICAgdGl0bGU6IHRoaXMuZm9ybS50aXRsZSxcbiAgICAgIGRhdGFzb3VyY2U6IHRoaXMuZm9ybS5zZWxlY3RlZERhdGFTb3VyY2VzID8/IFtdLFxuICAgICAgaGVhZGVyOiB0cnVlLFxuICAgICAgb3B0aW9uczoge1xuICAgICAgICAuLi53aWRnZXRUeXBlPy5tYW5pZmVzdC5vcHRpb25zLFxuICAgICAgICB0aXRsZTogdGhpcy5mb3JtLnRpdGxlXG4gICAgICB9XG4gICAgfTtcbiAgICB0aGlzLmZvcm0uc2VsZWN0ZWREYXRhU291cmNlcy5mb3JFYWNoKChuYW1lUXVlcnk6IHN0cmluZykgPT4ge1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgICAgU2VhcmNoQWN0aW9ucy5nZXREYXRhc291cmNlSXRlbXMoe1xuICAgICAgICAgIGlkOiBuYW1lUXVlcnksXG4gICAgICAgICAgZXhjbHVkZUdlbzogdGhpcy5jdXN0b21NYW5pZmVzdC50eXBlID09PSAnbWFwJyxcbiAgICAgICAgICBmcm9tOiAnUHJ5UmVzdGl0dXRpb25Db21wb25lbnQuc3VibWl0KCknXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH0pO1xuICAgIHRoaXMuZ29OZXh0KHN0ZXBwZXIpO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5vcGVuU2V0dGluZ3MkLm5leHQoKTtcbiAgICB9LCAxNTApO1xuICB9XG5cbiAgZ29OZXh0KHN0ZXBwZXI6IFByeVN0ZXBwZXJDb21wb25lbnQsIHN1Ym1pdD86IGJvb2xlYW4pIHtcbiAgICBzdWJtaXQgPyB0aGlzLnN1Ym1pdChzdGVwcGVyKSA6IHN0ZXBwZXIubmV4dCgpO1xuICB9XG5cbiAgcHJldihzdGVwcGVyOiBQcnlTdGVwcGVyQ29tcG9uZW50KSB7XG4gICAgc3RlcHBlci5wcmV2KCk7XG4gIH1cblxuICB1cGRhdGVNYW5pZmVzdCgkZXZlbnQ6IHsgd2lkZ2V0SW5kZXg6IG51bWJlcjsgbWFuaWZlc3Q6IFdpZGdldE1hbmlmZXN0IH0pIHtcbiAgICB0aGlzLmN1c3RvbU1hbmlmZXN0ID0gJGV2ZW50Lm1hbmlmZXN0O1xuICB9XG5cbiAgbGFzdFN0ZXBDb21wbGV0ZWQoKSB7XG4gICAgdGhpcy5mb3JtLmltYWdlID0gdGhpcy5pbWFnZTtcbiAgICBpZiAoIXRoaXMuY29uc3VsdE1vZGUpIHtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgIENvbmZpZ0FjdGlvbnMuc2F2ZVdpZGdldCh7XG4gICAgICAgICAgd2lkZ2V0OiB7XG4gICAgICAgICAgICBpZDogdGhpcy5zZWxlY3RlZFJlc3RpdHV0aW9uPy5pZCA/PyB2NCgpLFxuICAgICAgICAgICAgY29udGVudDogSlNPTi5zdHJpbmdpZnkodGhpcy5jdXN0b21NYW5pZmVzdCksXG4gICAgICAgICAgICBuYW1lOiB0aGlzLmZvcm0udGl0bGUsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogdGhpcy5mb3JtLmRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgaW1hZ2U6IHRoaXMuZm9ybS5pbWFnZSA/PyAnJyxcbiAgICAgICAgICAgIGdyb3VwczogdGhpcy5ncm91cHMsXG4gICAgICAgICAgICBkYXRhc291cmNlOiB0aGlzLmZvcm0uc2VsZWN0ZWREYXRhU291cmNlcyA/PyBbXSxcbiAgICAgICAgICAgIG1vZGlmaWNhdGlvbkRhdGU6ICcnXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChDb25maWdBY3Rpb25zLmxvYWRXaWRnZXRzKCkpO1xuICAgIHRoaXMucmVzdGl0dXRpb25DcmVhdGVkLmVtaXQoKTtcbiAgfVxufVxuIiwiPHByeS1yZXN0aXR1dGlvbi1jc3M+PC9wcnktcmVzdGl0dXRpb24tY3NzPlxuPGRpdiBjbGFzcz1cIm8tcmVzdGl0dXRpb25cIj5cbiAgPGgzIGNsYXNzPVwiYS1oMiBvLXJlc3RpdHV0aW9uX190aXRsZVwiPlxuICAgIHt7IChjb25zdWx0TW9kZSA/ICdAcHJ5LnJlc3RpdHV0aW9uLmNvbnN1bHQnIDogZWRpdCA/ICdAcHJ5LnJlc3RpdHV0aW9uLmVkaXQnIDogJ0BwcnkucmVzdGl0dXRpb24uY3JlYXRlJykgfCBpMThuIH19XG4gIDwvaDM+XG4gIDxwcnktc3RlcHBlclxuICAgICNzdGVwcGVyXG4gICAgW2lzQ29uc3VsdE1vZGVdPVwiY29uc3VsdE1vZGVcIlxuICAgIChsYXN0U3RlcENvbXBsZXRlZCk9XCJsYXN0U3RlcENvbXBsZXRlZCgpXCJcbiAgICAoYWN0aXZlSW5kZXhDaGFuZ2UpPVwiYWN0aXZlU3RlcEluZGV4ID0gJGV2ZW50XCJcbiAgPlxuICAgIDxwcnktc3RlcD5cbiAgICAgIDxoNCBjbGFzcz1cIm0tc3RlcHBlci1pdGVtX190aXRsZVwiICpzdGVwVGl0bGU+e3sgJ0BwcnkucmVzdGl0dXRpb24uY29uZmlndXJlJyB8IGkxOG4gfX08L2g0PlxuICAgICAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZFwiPlxuICAgICAgICA8bGFiZWwgZm9yPVwicmVzdGl0dXRpb25cIiBjbGFzcz1cImEtbGFiZWxcIj57eyAnQHByeS5yZXN0aXR1dGlvbi5yZXN0aXR1dGlvbl90eXBlJyB8IGkxOG4gfX08L2xhYmVsPlxuICAgICAgICA8cHJ5LXNlbGVjdFxuICAgICAgICAgIGlkPVwicmVzdGl0dXRpb25cIlxuICAgICAgICAgIFtpdGVtc109XCJ0eXBlcyQgfCBhc3luY1wiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJmb3JtLnNlbGVjdGVkV2lkZ2V0XCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiY29uc3VsdE1vZGVcIlxuICAgICAgICAgIFtjbG9zZU9uU2VsZWN0XT1cInRydWVcIlxuICAgICAgICAgIGJpbmRJY29uPVwiaWNvblwiXG4gICAgICAgICAgYmluZExhYmVsPVwibGFiZWxcIlxuICAgICAgICAgIGJpbmRWYWx1ZT1cInR5cGVcIlxuICAgICAgICA+XG4gICAgICAgIDwvcHJ5LXNlbGVjdD5cbiAgICAgIDwvZGl2PlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZvcm0uc2VsZWN0ZWRXaWRnZXQgIT09ICcnXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGRcIj5cbiAgICAgICAgICA8bGFiZWwgZm9yPVwiZ3JhcGhUaXRsZVwiIGNsYXNzPVwiYS1sYWJlbFwiPnt7ICdAcHJ5LnJlc3RpdHV0aW9uLmdyYXBoX3RpdGxlJyB8IGkxOG4gfX08L2xhYmVsPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgbmFtZT1cInRpdGxlXCJcbiAgICAgICAgICAgIGlkPVwiZ3JhcGhUaXRsZVwiXG4gICAgICAgICAgICBjbGFzcz1cImEtZm9ybS1maWVsZFwiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZvcm0udGl0bGVcIlxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImNvbnN1bHRNb2RlXCJcbiAgICAgICAgICAgIG1heGxlbmd0aD1cIjMwXCJcbiAgICAgICAgICAgIG5nRGVmYXVsdENvbnRyb2xcbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZFwiPlxuICAgICAgICAgIDxsYWJlbCBmb3I9XCJkZXNjcmlwdGlvblwiIGNsYXNzPVwiYS1sYWJlbFwiPnt7ICdAcHJ5LnJlc3RpdHV0aW9uLmRlc2NyaXB0aW9uJyB8IGkxOG4gfX08L2xhYmVsPlxuICAgICAgICAgIDx0ZXh0YXJlYVxuICAgICAgICAgICAgbmFtZT1cImRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgIGlkPVwiZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgY2xhc3M9XCJhLWZvcm0tZmllbGRcIlxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmb3JtLmRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgIHN0eWxlPVwicmVzaXplOiBub25lXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJjb25zdWx0TW9kZVwiXG4gICAgICAgICAgICBtYXhsZW5ndGg9XCIyNTVcIlxuICAgICAgICAgICAgbmdEZWZhdWx0Q29udHJvbFxuICAgICAgICAgID5cbiAgICAgICAgICA8L3RleHRhcmVhPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZCAtd2lkdGgtZnVsbFwiPlxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWxcIj57eyAnQHByeS5wcmVzZW50YXRpb24uZm9ybS5pbWFnZScgfCBpMThuIH19PC9sYWJlbD5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiby1maWxlLWlucHV0XCI+XG4gICAgICAgICAgICA8cHJ5LXNlbGVjdC1pbWFnZSAoY2hhbmdlZCk9XCJpbWFnZSA9ICRldmVudFwiIFtpY29uVXJsXT1cImltYWdlXCIgW21vZGVdPVwidHlwZVwiPjwvcHJ5LXNlbGVjdC1pbWFnZT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtLWJ0bi1ncm91cCAtc3BhY2UtZXZlbmx5IGFjdGlvbnNcIj5cbiAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJjYW5jZWwoc3RlcHBlcilcIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tc2Vjb25kYXJ5XCI+XG4gICAgICAgICAgICB7eyAnQHByeS5yZXN0aXR1dGlvbi5jbG9zZScgfCBpMThuIH19XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgKGNsaWNrKT1cImdvTmV4dChzdGVwcGVyKVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiZm9ybS5zZWxlY3RlZFdpZGdldCA9PT0gJycgfHwgZm9ybS50aXRsZS50cmltKCkubGVuZ3RoID09PSAwXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYS1idG4gYS1idG4tLXByaW1hcnlcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7ICdAcHJ5LnJlc3RpdHV0aW9uLnZhbGlkYXRlJyB8IGkxOG4gfX1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L3ByeS1zdGVwPlxuICAgIDxwcnktc3RlcD5cbiAgICAgIDxoNCBjbGFzcz1cIm0tc3RlcHBlci1pdGVtX190aXRsZVwiICpzdGVwVGl0bGU+e3sgJ0BwcnkucmVzdGl0dXRpb24uZGF0YVNvdXJjZScgfCBpMThuIH19PC9oND5cbiAgICAgIDxwcnktZGF0YXNvdXJjZS1zZWxlY3RvclxuICAgICAgICBiaW5kTGFiZWw9XCJuYW1lXCJcbiAgICAgICAgYmluZFZhbHVlPVwiaWRcIlxuICAgICAgICB0cmFuc2xhdGlvblN0cmluZ0Jhc2U9XCJAcHJ5LmNvbXBvbmVudHMuY2hpcHNTZWxlY3Rvci5kYXRhc291cmNlLlwiXG4gICAgICAgIChpdGVtc0NoYW5nZWQpPVwiZGF0YXNvdXJjZXNDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICBbdXNlZEl0ZW1zXT1cIih1c2VkRGF0YXNvdXJjZXMkIHwgYXN5bmMpID8/IFtdXCJcbiAgICAgICAgW3Nob3dBY3Rpb25CdXR0b25zXT1cImZhbHNlXCJcbiAgICAgID48L3ByeS1kYXRhc291cmNlLXNlbGVjdG9yPlxuICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJidXR0b25zXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgc3VibWl0OiB0cnVlIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L3ByeS1zdGVwPlxuICAgIDxwcnktc3RlcD5cbiAgICAgIDxoNCBjbGFzcz1cIm0tc3RlcHBlci1pdGVtX190aXRsZVwiICpzdGVwVGl0bGU+e3sgJ0BwcnkucmVzdGl0dXRpb24udmlzdWFsaXplJyB8IGkxOG4gfX08L2g0PlxuICAgICAgPGRpdiBjbGFzcz1cIndpZGdldC1pbnN0YW5jaWF0b3JcIj5cbiAgICAgICAgPHByeS13aWRnZXQtaW5zdGFuY2lhdG9yXG4gICAgICAgICAgW3N0YW5kYWxvbmVdPVwidHJ1ZVwiXG4gICAgICAgICAgW3N0YXRpY01hbmlmZXN0XT1cImN1c3RvbU1hbmlmZXN0XCJcbiAgICAgICAgICBbb3BlbiRdPVwib3BlblNldHRpbmdzJFwiXG4gICAgICAgICAgKG1hbmlmZXN0TW9kaWZpZWQpPVwidXBkYXRlTWFuaWZlc3QoJGV2ZW50KVwiXG4gICAgICAgID48L3ByeS13aWRnZXQtaW5zdGFuY2lhdG9yPlxuICAgICAgPC9kaXY+XG4gICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImJ1dHRvbnNcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L3ByeS1zdGVwPlxuICAgIDxwcnktc3RlcD5cbiAgICAgIDxoNCBjbGFzcz1cIm0tc3RlcHBlci1pdGVtX190aXRsZVwiICpzdGVwVGl0bGU+e3sgJ0BwcnkucmVzdGl0dXRpb24uc2hhcmUnIHwgaTE4biB9fTwvaDQ+XG4gICAgICA8aDM+e3sgJ0BwcnkucmVzdGl0dXRpb24uYWNjZXNzJyB8IGkxOG4gfX08L2gzPlxuICAgICAge3sgJ0BwcnkucmVzdGl0dXRpb24uY2hvaWNlJyB8IGkxOG4gfX1cbiAgICAgIDx1bD5cbiAgICAgICAgPGxpPlxuICAgICAgICAgIHt7ICdAcHJ5LnJlc3RpdHV0aW9uLnB1YmxpYycgfCBpMThuIH19XG4gICAgICAgIDwvbGk+XG4gICAgICA8L3VsPlxuICAgICAge3sgJ0BwcnkucmVzdGl0dXRpb24ub3InIHwgaTE4biB9fVxuICAgICAgPHVsPlxuICAgICAgICA8bGk+XG4gICAgICAgICAge3sgJ0BwcnkucmVzdGl0dXRpb24ucHJpdmF0ZScgfCBpMThuIH19XG4gICAgICAgIDwvbGk+XG4gICAgICA8L3VsPlxuICAgICAgPHByeS1zaGFyZSBbKG5nTW9kZWwpXT1cImdyb3Vwc1wiIGxhYmVsUHJvcGVydHk9XCJuYW1lXCIgdmFsdWVQcm9wZXJ0eT1cImlkXCIgW2Rpc2FibGVkXT1cImNvbnN1bHRNb2RlXCI+PC9wcnktc2hhcmU+XG4gICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImJ1dHRvbnNcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L3ByeS1zdGVwPlxuICA8L3ByeS1zdGVwcGVyPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjYnV0dG9ucyBsZXQtc3VibWl0PVwic3VibWl0XCI+XG4gIDxkaXYgY2xhc3M9XCJtLWJ0bi1ncm91cCAtc3BhY2UtZXZlbmx5IGFjdGlvbnNcIj5cbiAgICA8YnV0dG9uIChjbGljayk9XCJwcmV2KHN0ZXBwZXIpXCIgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYS1idG4gYS1idG4tLXNlY29uZGFyeVwiPlxuICAgICAge3sgKGNvbnN1bHRNb2RlID8gJ0BwcnkucmVzdGl0dXRpb24uZ29CYWNrJyA6ICdAcHJ5LnJlc3RpdHV0aW9uLmNsb3NlJykgfCBpMThuIH19XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvbiAoY2xpY2spPVwiZ29OZXh0KHN0ZXBwZXIsIHN1Ym1pdClcIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tcHJpbWFyeVwiPlxuICAgICAge3sgKGFjdGl2ZVN0ZXBJbmRleCA9PT0gMyA/ICdAcHJ5LnJlc3RpdHV0aW9uLnNoYXJlJyA6ICdAcHJ5LnJlc3RpdHV0aW9uLm5leHQnKSB8IGkxOG4gfX1cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
204
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdGl0dXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvcmVzdGl0dXRpb24vY29tcG9uZW50cy9yZXN0aXR1dGlvbi9yZXN0aXR1dGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9yZXN0aXR1dGlvbi9jb21wb25lbnRzL3Jlc3RpdHV0aW9uL3Jlc3RpdHV0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0UsT0FBTyxFQUdMLFlBQVksRUFDWixjQUFjLEVBQ2QsYUFBYSxFQUNiLGdCQUFnQixFQUVoQixpQkFBaUIsRUFDakIsbUJBQW1CLEVBQ25CLDRCQUE0QixFQUM1QixZQUFZLEVBQ1osaUJBQWlCLEVBQ2pCLFlBQVksRUFDWixhQUFhLEVBQ2Isd0JBQXdCLEVBR3hCLFFBQVEsRUFHVCxNQUFNLG9CQUFvQixDQUFDO0FBRTVCLE9BQU8sRUFBRSxHQUFHLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7O0FBTzFCLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSx3QkFBd0I7SUE4Qm5FLFlBQ1Usc0JBQThDLEVBQzlDLEtBQVksRUFDWixrQkFBc0M7UUFFOUMsS0FBSyxFQUFFLENBQUM7UUFKQSwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBQzlDLFVBQUssR0FBTCxLQUFLLENBQU87UUFDWix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBOUJoRCxtQkFBYyxHQUFtQjtZQUMvQixJQUFJLEVBQUUsUUFBUTtZQUNk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O29CQUMvQyxnQkFBZ0IsRUFBRSxFQUFFO2lCQUNyQjthQUNGLENBQUMsQ0FDSCxDQUFDO1FBQ0osQ0FBQztRQUNELElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNqQyxDQUFDOzhHQWhOVSx1QkFBdUI7a0dBQXZCLHVCQUF1QiwyUUNqQ3BDLGdrS0FnSUE7OzJGRC9GYSx1QkFBdUI7a0JBSm5DLFNBQVM7K0JBQ0UsaUJBQWlCO2dKQXFCbEIsbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDSSxrQkFBa0I7c0JBQTNCLE1BQU07Z0JBR0Usb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHtcbiAgQ2F0YWxvZ0VudHJ5LFxuICBDbGFzcyxcbiAgQ2xhc3NBY3Rpb25zLFxuICBDbGFzc1NlbGVjdG9ycyxcbiAgQ29uZmlnQWN0aW9ucyxcbiAgRGFzaGJvYXJkQWN0aW9ucyxcbiAgRGF0YVNvdXJjZSxcbiAgRGF0YVNvdXJjZUFjdGlvbnMsXG4gIERhdGFTb3VyY2VTZWxlY3RvcnMsXG4gIERFRkFVTFRfUkVTVElUVVRJT05fSUNPTl9VUkwsXG4gIEZpZWxkQWN0aW9ucyxcbiAgZ2V0RGlzcGxheU9wdGlvbnMsXG4gIExpYnJhcnlUeXBlcyxcbiAgU2VhcmNoQWN0aW9ucyxcbiAgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlLFxuICBUb29sYm94TWFuaWZlc3RTZXJ2aWNlLFxuICBUb29sYm94TWVudVNlcnZpY2UsXG4gIFZpZXdNb2RlLFxuICBXaWRnZXQsXG4gIFdpZGdldE1hbmlmZXN0XG59IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZCc7XG5pbXBvcnQgeyBQcnlTdGVwcGVyQ29tcG9uZW50IH0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkL2NvbXBvbmVudHMvc3RlcHBlcic7XG5pbXBvcnQgeyBtYXAsIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHY0IH0gZnJvbSAndXVpZCc7XG5pbXBvcnQgeyBSZXN0aXR1dGlvbkZvcm0gfSBmcm9tICcuLi8uLi9tb2RlbC9yZXN0aXR1dGlvbi5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ByeS1yZXN0aXR1dGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZXN0aXR1dGlvbi5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgUHJ5UmVzdGl0dXRpb25Db21wb25lbnQgZXh0ZW5kcyBTdWJzY3JpcHRpb25uZXJEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuICB0eXBlcyQ6IE9ic2VydmFibGU8eyBpY29uOiBzdHJpbmc7IGxhYmVsOiBzdHJpbmc7IHR5cGU6IHN0cmluZzsgbWFuaWZlc3Q6IFdpZGdldE1hbmlmZXN0IH1bXT47XG4gIGNsYXNzZXMkOiBPYnNlcnZhYmxlPENsYXNzW10+O1xuICBjdXN0b21NYW5pZmVzdDogV2lkZ2V0TWFuaWZlc3QgPSB7XG4gICAgdHlwZTogJ2RldGFpbCcsXG4gICAgbGF5b3V0OiB7IHg6IDEsIHk6IDEsIHdpZHRoOiAxLCBoZWlnaHQ6IDEgfSxcbiAgICBvcHRpb25zOiB7IGl0ZW1JZHM6IFtdIGFzIHN0cmluZ1tdIH1cbiAgfTtcbiAgZm9ybTogUmVzdGl0dXRpb25Gb3JtID0ge1xuICAgIHNlbGVjdGVkV2lkZ2V0OiAnJyxcbiAgICBzZWxlY3RlZERhdGFTb3VyY2VzOiBbXSxcbiAgICB0aXRsZTogJycsXG4gICAgaW1hZ2U6IERFRkFVTFRfUkVTVElUVVRJT05fSUNPTl9VUkwsXG4gICAgZGVzY3JpcHRpb246ICcnXG4gIH07XG4gIGdyb3Vwczogc3RyaW5nW10gPSBbXTtcbiAgb3BlblNldHRpbmdzJDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIGNvbnN1bHRNb2RlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNlbGVjdGVkUmVzdGl0dXRpb246IFdpZGdldCB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBlZGl0OiBib29sZWFuID0gdHJ1ZTtcbiAgQE91dHB1dCgpIHJlc3RpdHV0aW9uQ3JlYXRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgd2lkZ2V0c0xpc3QkOiBPYnNlcnZhYmxlPENhdGFsb2dFbnRyeVtdPjtcbiAgdHlwZTogTGlicmFyeVR5cGVzID0gTGlicmFyeVR5cGVzLklMTFVTVFJBVElPTjtcbiAgQElucHV0KCkgaXNEYXRhU291cmNlU2VsZWN0ZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgYmluZElkOiBhbnk7XG4gIGltYWdlOiBzdHJpbmcgPSBERUZBVUxUX1JFU1RJVFVUSU9OX0lDT05fVVJMO1xuICB3aWRnZXRUeXBlczogeyBpY29uOiBzdHJpbmc7IGxhYmVsOiBzdHJpbmc7IHR5cGU6IHN0cmluZzsgbWFuaWZlc3Q6IFdpZGdldE1hbmlmZXN0IH1bXSA9IFtdO1xuICB1c2VkRGF0YXNvdXJjZXMkOiBPYnNlcnZhYmxlPERhdGFTb3VyY2VbXT47XG4gIGFjdGl2ZVN0ZXBJbmRleCA9IDA7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB0b29sYm94TWFuaWZlc3RTZXJ2aWNlOiBUb29sYm94TWFuaWZlc3RTZXJ2aWNlLFxuICAgIHByaXZhdGUgc3RvcmU6IFN0b3JlLFxuICAgIHByaXZhdGUgdG9vbGJveE1lbnVTZXJ2aWNlOiBUb29sYm94TWVudVNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKERhdGFTb3VyY2VBY3Rpb25zLmxvYWQoKSk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChDbGFzc0FjdGlvbnMubG9hZCgpKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENvbmZpZ0FjdGlvbnMubG9hZEN1c3RvbWl6YXRpb24oKSk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChGaWVsZEFjdGlvbnMubG9hZCgpKTtcblxuICAgIHRoaXMudHlwZXMkID0gdGhpcy50b29sYm94TWVudVNlcnZpY2UudHlwZXMkLnBpcGUoXG4gICAgICBtYXAoKHR5cGUpID0+IHR5cGUuZmlsdGVyKChmaWx0ZXJlZFR5cGUpID0+IGZpbHRlcmVkVHlwZS50eXBlICE9PSAnZGV0YWlsJykpXG4gICAgKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKHRoaXMudHlwZXMkLnN1YnNjcmliZSgodHlwZXMpID0+ICh0aGlzLndpZGdldFR5cGVzID0gdHlwZXMpKSk7XG4gICAgdGhpcy5jbGFzc2VzJCA9IHRoaXMuc3RvcmUuc2VsZWN0KENsYXNzU2VsZWN0b3JzLmNsYXNzZXMpO1xuICAgIHRoaXMud2lkZ2V0c0xpc3QkID0gdGhpcy50b29sYm94TWVudVNlcnZpY2UubWVudVN0cnVjdHVyZSQucGlwZShcbiAgICAgIG1hcCgobWVudSkgPT5cbiAgICAgICAgbWVudVxuICAgICAgICAgIC5tYXAoKGl0ZW1zKSA9PiBbLi4uaXRlbXMuc3ViLmZpbHRlcigocykgPT4gdGhpcy50b29sYm94TWFuaWZlc3RTZXJ2aWNlLmlzTW9kZWwocy50eXBlKSldKVxuICAgICAgICAgIC5yZWR1Y2UoKGFjYywgaXRlbXMpID0+IFsuLi5hY2MsIC4uLml0ZW1zXSwgW10pXG4gICAgICApXG4gICAgKTtcbiAgICB0aGlzLnVzZWREYXRhc291cmNlcyQgPSB0aGlzLnN0b3JlXG4gICAgICAuc2VsZWN0KERhdGFTb3VyY2VTZWxlY3RvcnMuZ2V0RGF0YVNvdXJjZXNTb3J0ZWQpXG4gICAgICAucGlwZShtYXAoKGFsbERzcykgPT4gYWxsRHNzLmZpbHRlcigoZGF0YXNvdXJjZSkgPT4gdGhpcy5mb3JtLnNlbGVjdGVkRGF0YVNvdXJjZXMuaW5jbHVkZXMoZGF0YXNvdXJjZS5pZCkpKSk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZFJlc3RpdHV0aW9uKSB7XG4gICAgICBpZiAoIXRoaXMuZWRpdCkge1xuICAgICAgICB0aGlzLmNvbnN1bHRNb2RlID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChEYXNoYm9hcmRBY3Rpb25zLnVwZGF0ZURpc3BsYXlPcHRpb25zKHsgbW9kZTogVmlld01vZGUuQ09OU1VMVCB9KSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgICAgIERhc2hib2FyZEFjdGlvbnMudXBkYXRlRGlzcGxheU9wdGlvbnMoe1xuICAgICAgICAgICAgbW9kZTogVmlld01vZGUuQ1VTVE9NLFxuICAgICAgICAgICAgY3VzdG9tRGlzcGxheToge1xuICAgICAgICAgICAgICAuLi5nZXREaXNwbGF5T3B0aW9ucyhWaWV3TW9kZS5FRElUSU9OKSxcbiAgICAgICAgICAgICAgd2lkZ2V0Q29udGV4dE1lbnU6IHtcbiAgICAgICAgICAgICAgICBkYXRhc291cmNlU2VsZWN0aW9uOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzOiB0cnVlLFxuICAgICAgICAgICAgICAgIHdpbmRvdzogZmFsc2UsXG4gICAgICAgICAgICAgICAgbWF4aW1pemU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGFkZFRvQ2F0YWxvZzogZmFsc2UsXG4gICAgICAgICAgICAgICAgZGVsZXRlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBjaGFuZ2VTcG90OiBmYWxzZVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuY3VzdG9tTWFuaWZlc3QgPSBKU09OLnBhcnNlKHRoaXMuc2VsZWN0ZWRSZXN0aXR1dGlvbi5jb250ZW50KTtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMuY3VzdG9tTWFuaWZlc3QuZGF0YXNvdXJjZSkpIHtcbiAgICAgICAgdGhpcy5jdXN0b21NYW5pZmVzdC5kYXRhc291cmNlLmZvckVhY2goKGRhdGFTb3VyY2U6IHN0cmluZykgPT4ge1xuICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgICAgICBTZWFyY2hBY3Rpb25zLmdldERhdGFzb3VyY2VJdGVtcyh7XG4gICAgICAgICAgICAgIGlkOiBkYXRhU291cmNlLFxuICAgICAgICAgICAgICBleGNsdWRlR2VvOiB0aGlzLmN1c3RvbU1hbmlmZXN0LnR5cGUgPT09ICdtYXAnLFxuICAgICAgICAgICAgICBmcm9tOiAnUHJ5UmVzdGl0dXRpb25Db21wb25lbnQubmdPbkluaXQoKS0xJ1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgICAgU2VhcmNoQWN0aW9ucy5nZXREYXRhc291cmNlSXRlbXMoe1xuICAgICAgICAgICAgaWQ6IHRoaXMuY3VzdG9tTWFuaWZlc3QuZGF0YXNvdXJjZSBhcyBzdHJpbmcsXG4gICAgICAgICAgICBleGNsdWRlR2VvOiB0aGlzLmN1c3RvbU1hbmlmZXN0LnR5cGUgPT09ICdtYXAnLFxuICAgICAgICAgICAgZnJvbTogJ1ByeVJlc3RpdHV0aW9uQ29tcG9uZW50Lm5nT25Jbml0KCktMidcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRSZXN0aXR1dGlvbi5ncm91cHMpIHtcbiAgICAgICAgdGhpcy5ncm91cHMgPSB0aGlzLnNlbGVjdGVkUmVzdGl0dXRpb24uZ3JvdXBzO1xuICAgICAgfVxuICAgICAgdGhpcy5mb3JtLnNlbGVjdGVkRGF0YVNvdXJjZXMuZm9yRWFjaCgoZGF0YVNvdXJjZTogc3RyaW5nKSA9PiB7XG4gICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgICAgU2VhcmNoQWN0aW9ucy5nZXREYXRhc291cmNlSXRlbXMoe1xuICAgICAgICAgICAgaWQ6IGRhdGFTb3VyY2UsXG4gICAgICAgICAgICBleGNsdWRlR2VvOiB0aGlzLmN1c3RvbU1hbmlmZXN0LnR5cGUgPT09ICdtYXAnLFxuICAgICAgICAgICAgZnJvbTogJ1ByeVJlc3RpdHV0aW9uQ29tcG9uZW50Lm5nT25Jbml0KCktMydcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgICB0aGlzLmN1c3RvbU1hbmlmZXN0ID0gSlNPTi5wYXJzZSh0aGlzLnNlbGVjdGVkUmVzdGl0dXRpb24uY29udGVudCk7XG4gICAgICB0aGlzLmZvcm0gPSB7XG4gICAgICAgIHNlbGVjdGVkV2lkZ2V0OiB0aGlzLmN1c3RvbU1hbmlmZXN0LnR5cGUsXG4gICAgICAgIHNlbGVjdGVkRGF0YVNvdXJjZXM6ICh0aGlzLmN1c3RvbU1hbmlmZXN0LmRhdGFzb3VyY2UgPz8gW10pIGFzIHN0cmluZ1tdLFxuICAgICAgICB0aXRsZTogdGhpcy5zZWxlY3RlZFJlc3RpdHV0aW9uLm5hbWUsXG4gICAgICAgIC4uLnRoaXMuc2VsZWN0ZWRSZXN0aXR1dGlvblxuICAgICAgfTtcbiAgICB9XG4gICAgdGhpcy5pbWFnZSA9IHRoaXMuc2VsZWN0ZWRSZXN0aXR1dGlvbj8uaW1hZ2UgPz8gREVGQVVMVF9SRVNUSVRVVElPTl9JQ09OX1VSTDtcbiAgfVxuXG4gIGNhbmNlbChzdGVwcGVyOiBQcnlTdGVwcGVyQ29tcG9uZW50KSB7XG4gICAgdGhpcy5mb3JtLnNlbGVjdGVkV2lkZ2V0ID0gJyc7XG4gICAgdGhpcy5mb3JtLnNlbGVjdGVkRGF0YVNvdXJjZXMgPSBbXTtcbiAgICB0aGlzLmZvcm0udGl0bGUgPSAnJztcbiAgICB0aGlzLmZvcm0uZGVzY3JpcHRpb24gPSAnJztcbiAgICB0aGlzLmZvcm0uaW1hZ2UgPSAnJztcbiAgICBpZiAodGhpcy5jb25zdWx0TW9kZSB8fCB0aGlzLnNlbGVjdGVkUmVzdGl0dXRpb24pIHtcbiAgICAgIHRoaXMucmVzdGl0dXRpb25DcmVhdGVkLmVtaXQoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5wcmV2KHN0ZXBwZXIpO1xuICB9XG5cbiAgZGF0YXNvdXJjZXNDaGFuZ2VkKCRldmVudDogc3RyaW5nW10pIHtcbiAgICB0aGlzLmZvcm0uc2VsZWN0ZWREYXRhU291cmNlcyA9ICRldmVudDtcbiAgfVxuXG4gIHN1Ym1pdChzdGVwcGVyOiBQcnlTdGVwcGVyQ29tcG9uZW50KSB7XG4gICAgaWYgKHRoaXMuY29uc3VsdE1vZGUpIHtcbiAgICAgIHRoaXMuZ29OZXh0KHN0ZXBwZXIpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHdpZGdldFR5cGUgPSB0aGlzLndpZGdldFR5cGVzLmZpbmQoKHdpZGdldFR5cGUpID0+IHdpZGdldFR5cGUudHlwZSA9PT0gdGhpcy5mb3JtLnNlbGVjdGVkV2lkZ2V0KTtcblxuICAgIHRoaXMuY3VzdG9tTWFuaWZlc3QgPSB7XG4gICAgICAuLi50aGlzLmN1c3RvbU1hbmlmZXN0LFxuICAgICAgdHlwZTogdGhpcy5mb3JtLnNlbGVjdGVkV2lkZ2V0LFxuICAgICAgdGl0bGU6IHRoaXMuZm9ybS50aXRsZSxcbiAgICAgIGRhdGFzb3VyY2U6IHRoaXMuZm9ybS5zZWxlY3RlZERhdGFTb3VyY2VzID8/IFtdLFxuICAgICAgaGVhZGVyOiB0cnVlLFxuICAgICAgb3B0aW9uczoge1xuICAgICAgICAuLi53aWRnZXRUeXBlPy5tYW5pZmVzdC5vcHRpb25zLFxuICAgICAgICB0aXRsZTogdGhpcy5mb3JtLnRpdGxlXG4gICAgICB9XG4gICAgfTtcbiAgICB0aGlzLmZvcm0uc2VsZWN0ZWREYXRhU291cmNlcy5mb3JFYWNoKChuYW1lUXVlcnk6IHN0cmluZykgPT4ge1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgICAgU2VhcmNoQWN0aW9ucy5nZXREYXRhc291cmNlSXRlbXMoe1xuICAgICAgICAgIGlkOiBuYW1lUXVlcnksXG4gICAgICAgICAgZXhjbHVkZUdlbzogdGhpcy5jdXN0b21NYW5pZmVzdC50eXBlID09PSAnbWFwJyxcbiAgICAgICAgICBmcm9tOiAnUHJ5UmVzdGl0dXRpb25Db21wb25lbnQuc3VibWl0KCknXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH0pO1xuICAgIHRoaXMuZ29OZXh0KHN0ZXBwZXIpO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5vcGVuU2V0dGluZ3MkLm5leHQoKTtcbiAgICB9LCAxNTApO1xuICB9XG5cbiAgZ29OZXh0KHN0ZXBwZXI6IFByeVN0ZXBwZXJDb21wb25lbnQsIHN1Ym1pdD86IGJvb2xlYW4pIHtcbiAgICBzdWJtaXQgPyB0aGlzLnN1Ym1pdChzdGVwcGVyKSA6IHN0ZXBwZXIubmV4dCgpO1xuICB9XG5cbiAgcHJldihzdGVwcGVyOiBQcnlTdGVwcGVyQ29tcG9uZW50KSB7XG4gICAgc3RlcHBlci5wcmV2KCk7XG4gIH1cblxuICB1cGRhdGVNYW5pZmVzdCgkZXZlbnQ6IHsgd2lkZ2V0SW5kZXg6IG51bWJlcjsgbWFuaWZlc3Q6IFdpZGdldE1hbmlmZXN0IH0pIHtcbiAgICB0aGlzLmN1c3RvbU1hbmlmZXN0ID0gJGV2ZW50Lm1hbmlmZXN0O1xuICB9XG5cbiAgbGFzdFN0ZXBDb21wbGV0ZWQoKSB7XG4gICAgdGhpcy5mb3JtLmltYWdlID0gdGhpcy5pbWFnZTtcbiAgICBpZiAoIXRoaXMuY29uc3VsdE1vZGUpIHtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgIENvbmZpZ0FjdGlvbnMuc2F2ZVdpZGdldCh7XG4gICAgICAgICAgd2lkZ2V0OiB7XG4gICAgICAgICAgICBpZDogdGhpcy5zZWxlY3RlZFJlc3RpdHV0aW9uPy5pZCA/PyB2NCgpLFxuICAgICAgICAgICAgY29udGVudDogSlNPTi5zdHJpbmdpZnkodGhpcy5jdXN0b21NYW5pZmVzdCksXG4gICAgICAgICAgICBuYW1lOiB0aGlzLmZvcm0udGl0bGUsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogdGhpcy5mb3JtLmRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgaW1hZ2U6IHRoaXMuZm9ybS5pbWFnZSA/PyAnJyxcbiAgICAgICAgICAgIGdyb3VwczogdGhpcy5ncm91cHMsXG4gICAgICAgICAgICBkYXRhc291cmNlOiB0aGlzLmZvcm0uc2VsZWN0ZWREYXRhU291cmNlcyA/PyBbXSxcbiAgICAgICAgICAgIG1vZGlmaWNhdGlvbkRhdGU6ICcnXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChDb25maWdBY3Rpb25zLmxvYWRXaWRnZXRzKCkpO1xuICAgIHRoaXMucmVzdGl0dXRpb25DcmVhdGVkLmVtaXQoKTtcbiAgfVxufVxuIiwiPHByeS1yZXN0aXR1dGlvbi1jc3M+PC9wcnktcmVzdGl0dXRpb24tY3NzPlxuPGRpdiBjbGFzcz1cIm8tcmVzdGl0dXRpb25cIj5cbiAgPGgzIGNsYXNzPVwiYS1oMiBvLXJlc3RpdHV0aW9uX190aXRsZVwiPlxuICAgIHt7IChjb25zdWx0TW9kZSA/ICdAcHJ5LnJlc3RpdHV0aW9uLmNvbnN1bHQnIDogZWRpdCA/ICdAcHJ5LnJlc3RpdHV0aW9uLmVkaXQnIDogJ0BwcnkucmVzdGl0dXRpb24uY3JlYXRlJykgfCBpMThuIH19XG4gIDwvaDM+XG4gIDxwcnktc3RlcHBlclxuICAgICNzdGVwcGVyXG4gICAgW2lzQ29uc3VsdE1vZGVdPVwiY29uc3VsdE1vZGVcIlxuICAgIChsYXN0U3RlcENvbXBsZXRlZCk9XCJsYXN0U3RlcENvbXBsZXRlZCgpXCJcbiAgICAoYWN0aXZlSW5kZXhDaGFuZ2UpPVwiYWN0aXZlU3RlcEluZGV4ID0gJGV2ZW50XCJcbiAgPlxuICAgIDxwcnktc3RlcD5cbiAgICAgIDxoNCBjbGFzcz1cIm0tc3RlcHBlci1pdGVtX190aXRsZVwiICpzdGVwVGl0bGU+e3sgJ0BwcnkucmVzdGl0dXRpb24uY29uZmlndXJlJyB8IGkxOG4gfX08L2g0PlxuICAgICAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZFwiPlxuICAgICAgICA8bGFiZWwgZm9yPVwicmVzdGl0dXRpb25cIiBjbGFzcz1cImEtbGFiZWxcIj57eyAnQHByeS5yZXN0aXR1dGlvbi5yZXN0aXR1dGlvbl90eXBlJyB8IGkxOG4gfX08L2xhYmVsPlxuICAgICAgICA8cHJ5LXNlbGVjdFxuICAgICAgICAgIGlkPVwicmVzdGl0dXRpb25cIlxuICAgICAgICAgIFtpdGVtc109XCJ0eXBlcyQgfCBhc3luY1wiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJmb3JtLnNlbGVjdGVkV2lkZ2V0XCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiY29uc3VsdE1vZGVcIlxuICAgICAgICAgIFtjbG9zZU9uU2VsZWN0XT1cInRydWVcIlxuICAgICAgICAgIGJpbmRJY29uPVwiaWNvblwiXG4gICAgICAgICAgYmluZExhYmVsPVwibGFiZWxcIlxuICAgICAgICAgIGJpbmRWYWx1ZT1cInR5cGVcIlxuICAgICAgICA+XG4gICAgICAgIDwvcHJ5LXNlbGVjdD5cbiAgICAgIDwvZGl2PlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZvcm0uc2VsZWN0ZWRXaWRnZXQgIT09ICcnXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGRcIj5cbiAgICAgICAgICA8bGFiZWwgZm9yPVwiZ3JhcGhUaXRsZVwiIGNsYXNzPVwiYS1sYWJlbFwiPnt7ICdAcHJ5LnJlc3RpdHV0aW9uLmdyYXBoX3RpdGxlJyB8IGkxOG4gfX08L2xhYmVsPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgbmFtZT1cInRpdGxlXCJcbiAgICAgICAgICAgIGlkPVwiZ3JhcGhUaXRsZVwiXG4gICAgICAgICAgICBjbGFzcz1cImEtZm9ybS1maWVsZFwiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZvcm0udGl0bGVcIlxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImNvbnN1bHRNb2RlXCJcbiAgICAgICAgICAgIG1heGxlbmd0aD1cIjMwXCJcbiAgICAgICAgICAgIG5nRGVmYXVsdENvbnRyb2xcbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZFwiPlxuICAgICAgICAgIDxsYWJlbCBmb3I9XCJkZXNjcmlwdGlvblwiIGNsYXNzPVwiYS1sYWJlbFwiPnt7ICdAcHJ5LnJlc3RpdHV0aW9uLmRlc2NyaXB0aW9uJyB8IGkxOG4gfX08L2xhYmVsPlxuICAgICAgICAgIDx0ZXh0YXJlYVxuICAgICAgICAgICAgbmFtZT1cImRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgIGlkPVwiZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgY2xhc3M9XCJhLWZvcm0tZmllbGRcIlxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmb3JtLmRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgIHN0eWxlPVwicmVzaXplOiBub25lXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJjb25zdWx0TW9kZVwiXG4gICAgICAgICAgICBtYXhsZW5ndGg9XCIyNTVcIlxuICAgICAgICAgICAgbmdEZWZhdWx0Q29udHJvbFxuICAgICAgICAgID5cbiAgICAgICAgICA8L3RleHRhcmVhPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZCAtd2lkdGgtZnVsbFwiPlxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWxcIj57eyAnQHByeS5wcmVzZW50YXRpb24uZm9ybS5pbWFnZScgfCBpMThuIH19PC9sYWJlbD5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiby1maWxlLWlucHV0XCI+XG4gICAgICAgICAgICA8cHJ5LXNlbGVjdC1pbWFnZSAoY2hhbmdlZCk9XCJpbWFnZSA9ICRldmVudFwiIFtpY29uVXJsXT1cImltYWdlXCIgW21vZGVdPVwidHlwZVwiPjwvcHJ5LXNlbGVjdC1pbWFnZT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtLWJ0bi1ncm91cCAtc3BhY2UtZXZlbmx5IGFjdGlvbnNcIj5cbiAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJjYW5jZWwoc3RlcHBlcilcIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tc2Vjb25kYXJ5XCI+XG4gICAgICAgICAgICB7eyAnQHByeS5yZXN0aXR1dGlvbi5jbG9zZScgfCBpMThuIH19XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgKGNsaWNrKT1cImdvTmV4dChzdGVwcGVyKVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiZm9ybS5zZWxlY3RlZFdpZGdldCA9PT0gJycgfHwgZm9ybS50aXRsZS50cmltKCkubGVuZ3RoID09PSAwXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYS1idG4gYS1idG4tLXByaW1hcnlcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7ICdAcHJ5LnJlc3RpdHV0aW9uLnZhbGlkYXRlJyB8IGkxOG4gfX1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L3ByeS1zdGVwPlxuICAgIDxwcnktc3RlcD5cbiAgICAgIDxoNCBjbGFzcz1cIm0tc3RlcHBlci1pdGVtX190aXRsZVwiICpzdGVwVGl0bGU+e3sgJ0BwcnkucmVzdGl0dXRpb24uZGF0YVNvdXJjZScgfCBpMThuIH19PC9oND5cbiAgICAgIDxwcnktZGF0YXNvdXJjZS1zZWxlY3RvclxuICAgICAgICBbbWFuaWZlc3RdPVwiY3VzdG9tTWFuaWZlc3RcIlxuICAgICAgICAoaXRlbXNDaGFuZ2VkKT1cImRhdGFzb3VyY2VzQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgW3Nob3dCdXR0b25zXT1cImZhbHNlXCJcbiAgICAgICAgW3Nob3dUaXRsZV09XCJmYWxzZVwiXG4gICAgICA+PC9wcnktZGF0YXNvdXJjZS1zZWxlY3Rvcj5cbiAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiYnV0dG9uc1wiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IHN1Ym1pdDogdHJ1ZSB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9wcnktc3RlcD5cbiAgICA8cHJ5LXN0ZXA+XG4gICAgICA8aDQgY2xhc3M9XCJtLXN0ZXBwZXItaXRlbV9fdGl0bGVcIiAqc3RlcFRpdGxlPnt7ICdAcHJ5LnJlc3RpdHV0aW9uLnZpc3VhbGl6ZScgfCBpMThuIH19PC9oND5cbiAgICAgIDxkaXYgY2xhc3M9XCJ3aWRnZXQtaW5zdGFuY2lhdG9yXCI+XG4gICAgICAgIDxwcnktd2lkZ2V0LWluc3RhbmNpYXRvclxuICAgICAgICAgIFtzdGFuZGFsb25lXT1cInRydWVcIlxuICAgICAgICAgIFtzdGF0aWNNYW5pZmVzdF09XCJjdXN0b21NYW5pZmVzdFwiXG4gICAgICAgICAgW29wZW4kXT1cIm9wZW5TZXR0aW5ncyRcIlxuICAgICAgICAgIChtYW5pZmVzdE1vZGlmaWVkKT1cInVwZGF0ZU1hbmlmZXN0KCRldmVudClcIlxuICAgICAgICA+PC9wcnktd2lkZ2V0LWluc3RhbmNpYXRvcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJidXR0b25zXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9wcnktc3RlcD5cbiAgICA8cHJ5LXN0ZXA+XG4gICAgICA8aDQgY2xhc3M9XCJtLXN0ZXBwZXItaXRlbV9fdGl0bGVcIiAqc3RlcFRpdGxlPnt7ICdAcHJ5LnJlc3RpdHV0aW9uLnNoYXJlJyB8IGkxOG4gfX08L2g0PlxuICAgICAgPGgzPnt7ICdAcHJ5LnJlc3RpdHV0aW9uLmFjY2VzcycgfCBpMThuIH19PC9oMz5cbiAgICAgIHt7ICdAcHJ5LnJlc3RpdHV0aW9uLmNob2ljZScgfCBpMThuIH19XG4gICAgICA8dWw+XG4gICAgICAgIDxsaT5cbiAgICAgICAgICB7eyAnQHByeS5yZXN0aXR1dGlvbi5wdWJsaWMnIHwgaTE4biB9fVxuICAgICAgICA8L2xpPlxuICAgICAgPC91bD5cbiAgICAgIHt7ICdAcHJ5LnJlc3RpdHV0aW9uLm9yJyB8IGkxOG4gfX1cbiAgICAgIDx1bD5cbiAgICAgICAgPGxpPlxuICAgICAgICAgIHt7ICdAcHJ5LnJlc3RpdHV0aW9uLnByaXZhdGUnIHwgaTE4biB9fVxuICAgICAgICA8L2xpPlxuICAgICAgPC91bD5cbiAgICAgIDxwcnktc2hhcmUgWyhuZ01vZGVsKV09XCJncm91cHNcIiBsYWJlbFByb3BlcnR5PVwibmFtZVwiIHZhbHVlUHJvcGVydHk9XCJpZFwiIFtkaXNhYmxlZF09XCJjb25zdWx0TW9kZVwiPjwvcHJ5LXNoYXJlPlxuICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJidXR0b25zXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9wcnktc3RlcD5cbiAgPC9wcnktc3RlcHBlcj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI2J1dHRvbnMgbGV0LXN1Ym1pdD1cInN1Ym1pdFwiPlxuICA8ZGl2IGNsYXNzPVwibS1idG4tZ3JvdXAgLXNwYWNlLWV2ZW5seSBhY3Rpb25zXCI+XG4gICAgPGJ1dHRvbiAoY2xpY2spPVwicHJldihzdGVwcGVyKVwiIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImEtYnRuIGEtYnRuLS1zZWNvbmRhcnlcIj5cbiAgICAgIHt7IChjb25zdWx0TW9kZSA/ICdAcHJ5LnJlc3RpdHV0aW9uLmdvQmFjaycgOiAnQHByeS5yZXN0aXR1dGlvbi5jbG9zZScpIHwgaTE4biB9fVxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b24gKGNsaWNrKT1cImdvTmV4dChzdGVwcGVyLCBzdWJtaXQpXCIgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYS1idG4gYS1idG4tLXByaW1hcnlcIj5cbiAgICAgIHt7IChhY3RpdmVTdGVwSW5kZXggPT09IDMgPyAnQHByeS5yZXN0aXR1dGlvbi5zaGFyZScgOiAnQHByeS5yZXN0aXR1dGlvbi5uZXh0JykgfCBpMThuIH19XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|