@elderbyte/ngx-starter 18.13.0-beta.0 → 18.13.0-beta.1

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/_index.scss CHANGED
@@ -37,6 +37,7 @@
37
37
  as elder-multi-select-chip-options;
38
38
  @use './src/lib/components/files/drag-n-drop/elder-drop-zone/elder-drop-zone.component' as
39
39
  elder-drop-zone;
40
+ @use './theming/elder-badge-sizing' as elder-badge-sizing;
40
41
  //@use './src/lib/components/iframes/iframe-host/iframe-host.component' as iframe-host;
41
42
 
42
43
  @use 'sass:map';
@@ -70,6 +71,7 @@
70
71
  @include elder-grid.theme($theme);
71
72
  @include elder-button-group.theme($theme);
72
73
  @include elder-scrollbar-theme.theme($theme);
74
+
73
75
  // @include iframe-host.theme(
74
76
  // $theme
75
77
  // ); // interesting, iframe-host renders css, while mixin is empty. bug?
@@ -80,4 +82,7 @@
80
82
  // "mat.color-variants-backwards-compatibility()"
81
83
  // But can be customized in this mixin below:
82
84
  @include elder-color-variants.elder-color-variants($theme);
85
+
86
+ // Use tweaked MAT2 badge sizing
87
+ @include elder-badge-sizing.elder-badge-sizing();
83
88
  }
@@ -121,7 +121,7 @@ export class ElderBadgeComponent {
121
121
  return this.chipAvatarTemplate$.getValue();
122
122
  }
123
123
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ElderBadgeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
124
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: ElderBadgeComponent, isStandalone: true, selector: "elder-badge", inputs: { appearance: "appearance", value: "value", colorSpec: "colorSpec", badgeColor: "badgeColor", avatarSpec: "avatarSpec", setCssClass: ["cssClass", "setCssClass"], chipTemplate: "chipTemplate", chipAvatarTemplate: "chipAvatarTemplate" }, queries: [{ propertyName: "chipTemplateQuery", first: true, predicate: ElderBadgeChipDirective, descendants: true, read: TemplateRef }, { propertyName: "chipAvatarTemplateQuery", first: true, predicate: ElderBadgeChipAvatarDirective, descendants: true, read: TemplateRef }], ngImport: i0, template: "<ng-container *ngIf=\"templates$ | async as templates\">\n <ng-container *ngIf=\"badgeModel$ | async as badgeModel\">\n <mat-chip\n elderChipLabel\n [appearance]=\"appearance\"\n [color]=\"badgeModel.colorSpec?.theme\"\n [stateColor]=\"badgeModel.colorSpec?.state\"\n [levelColor]=\"badgeModel.colorSpec?.level\"\n [class]=\"'elder-badge fill ' + elementClass\"\n >\n <mat-chip-avatar clasS=\"elder-badge-avatar\" *ngIf=\"templates.avatar || badgeModel.showAvatar\">\n <ng-container\n *ngTemplateOutlet=\"\n templates.avatar || simpleAvatarTemplate;\n context: { $implicit: badgeModel }\n \"\n >\n </ng-container>\n </mat-chip-avatar>\n\n <ng-container\n *ngTemplateOutlet=\"templates.chip || simpleChipTemplate; context: { $implicit: badgeModel }\"\n >\n </ng-container>\n\n <ng-content></ng-content>\n </mat-chip>\n </ng-container>\n</ng-container>\n\n<ng-template #simpleChipTemplate let-badgeModel>\n <!--\n <span class=\"elder-chip-text\">{{badgeModel.value | elderTruncate:20}}</span>\n -->\n {{ badgeModel.value | elderTruncate: 20 }}\n</ng-template>\n\n<ng-template #simpleAvatarTemplate let-badgeModel>\n <mat-icon>{{ badgeModel.avatarSpec?.icon }}</mat-icon>\n</ng-template>\n", styles: [".elder-badge{position:absolute!important;width:unset!important;max-width:unset!important;box-sizing:border-box}.elder-badge.mat-mdc-standard-chip{height:var(--mat-badge-text-size, 12px)4}.elder-badge.mat-mdc-standard-chip .mdc-evolution-chip__text-label{font-size:var(--mat-badge-text-size, 12px);font-weight:var(--mat-badge-text-weight, 600)}.elder-badge .mdc-evolution-chip,.elder-badge .mdc-evolution-chip__cell,.elder-badge .mdc-evolution-chip__action{justify-content:center}.elder-badge.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__graphic{padding-left:0;padding-right:0}.mat-badge-small .elder-badge.mat-badge-content{border-radius:16px;min-width:16px}.mat-badge-small.mat-badge-above .elder-badge.mat-badge-content{top:-7px!important}.mat-badge-small.mat-badge-overlap.mat-badge-after .elder-badge.mat-badge-content{right:-5px;transform:translate(100%)!important}.mat-badge-small.mat-badge-overlap.mat-badge-before .elder-badge.mat-badge-content{left:-5px;transform:translate(-100%)!important}.mat-badge-small .elder-badge.mat-mdc-standard-chip .mdc-evolution-chip__action--primary{padding:0 3px!important}.mat-badge-small .elder-badge.mat-badge-content{line-height:14px!important}.mat-badge-medium .elder-badge.mat-badge-content{border-radius:22px;min-width:22px}.mat-badge-medium.mat-badge-overlap.mat-badge-after .elder-badge.mat-badge-content{right:-5px;transform:translate(100%)!important}.mat-badge-medium.mat-badge-overlap.mat-badge-before .elder-badge.mat-badge-content{left:-5px;transform:translate(-100%)!important}.mat-badge-medium .elder-badge.mat-mdc-standard-chip .mdc-evolution-chip__action--primary{padding:0 6px!important}.mat-badge-medium .elder-badge.mat-badge-content{line-height:20px!important}.mat-badge-large .elder-badge.mat-badge-content{border-radius:28px;min-width:28px}.mat-badge-large.mat-badge-overlap.mat-badge-after .elder-badge.mat-badge-content{right:-5px;transform:translate(100%)!important}.mat-badge-large.mat-badge-overlap.mat-badge-before .elder-badge.mat-badge-content{left:-5px;transform:translate(-100%)!important}.mat-badge-large .elder-badge.mat-mdc-standard-chip .mdc-evolution-chip__action--primary{padding:0 6px!important}.mat-badge-large .elder-badge.mat-badge-content{line-height:26px!important}.elder-badge.mat-badge-content{transform:unset!important}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["role", "id", "aria-label", "aria-description", "value", "color", "removable", "highlighted", "disableRipple", "disabled"], outputs: ["removed", "destroyed"], exportAs: ["matChip"] }, { kind: "directive", type: ElderChipLabelDirective, selector: "[elderChipLabel]", inputs: ["appearance", "color", "stateColor", "levelColor"] }, { kind: "directive", type: MatChipAvatar, selector: "mat-chip-avatar, [matChipAvatar]" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: ElderTruncatePipe, name: "elderTruncate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
124
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: ElderBadgeComponent, isStandalone: true, selector: "elder-badge", inputs: { appearance: "appearance", value: "value", colorSpec: "colorSpec", badgeColor: "badgeColor", avatarSpec: "avatarSpec", setCssClass: ["cssClass", "setCssClass"], chipTemplate: "chipTemplate", chipAvatarTemplate: "chipAvatarTemplate" }, queries: [{ propertyName: "chipTemplateQuery", first: true, predicate: ElderBadgeChipDirective, descendants: true, read: TemplateRef }, { propertyName: "chipAvatarTemplateQuery", first: true, predicate: ElderBadgeChipAvatarDirective, descendants: true, read: TemplateRef }], ngImport: i0, template: "<ng-container *ngIf=\"templates$ | async as templates\">\n <ng-container *ngIf=\"badgeModel$ | async as badgeModel\">\n <mat-chip\n elderChipLabel\n [appearance]=\"appearance\"\n [color]=\"badgeModel.colorSpec?.theme\"\n [stateColor]=\"badgeModel.colorSpec?.state\"\n [levelColor]=\"badgeModel.colorSpec?.level\"\n [class]=\"'elder-badge fill ' + elementClass\"\n >\n <mat-chip-avatar clasS=\"elder-badge-avatar\" *ngIf=\"templates.avatar || badgeModel.showAvatar\">\n <ng-container\n *ngTemplateOutlet=\"\n templates.avatar || simpleAvatarTemplate;\n context: { $implicit: badgeModel }\n \"\n >\n </ng-container>\n </mat-chip-avatar>\n\n <ng-container\n *ngTemplateOutlet=\"templates.chip || simpleChipTemplate; context: { $implicit: badgeModel }\"\n >\n </ng-container>\n\n <ng-content></ng-content>\n </mat-chip>\n </ng-container>\n</ng-container>\n\n<ng-template #simpleChipTemplate let-badgeModel>\n <!--\n <span class=\"elder-chip-text\">{{badgeModel.value | elderTruncate:20}}</span>\n -->\n {{ badgeModel.value | elderTruncate: 20 }}\n</ng-template>\n\n<ng-template #simpleAvatarTemplate let-badgeModel>\n <mat-icon>{{ badgeModel.avatarSpec?.icon }}</mat-icon>\n</ng-template>\n", styles: [".elder-badge{position:absolute!important;width:unset!important;max-width:unset!important;box-sizing:border-box;--mdc-chip-container-shape-radius: 10px}.elder-badge.mat-mdc-standard-chip .mdc-evolution-chip__text-label{font-size:var(--mat-badge-text-size, 12px);font-weight:var(--mat-badge-text-weight, 600)}.elder-badge .mdc-evolution-chip,.elder-badge .mdc-evolution-chip__cell,.elder-badge .mdc-evolution-chip__action{justify-content:center}.elder-badge.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__graphic{padding-left:0;padding-right:0}.mat-badge-small .elder-badge.mat-badge-content{border-radius:16px;min-width:16px}.mat-badge-small.mat-badge-above .elder-badge.mat-badge-content{top:-7px!important}.mat-badge-small.mat-badge-overlap.mat-badge-after .elder-badge.mat-badge-content{right:-5px;transform:translate(100%)!important}.mat-badge-small.mat-badge-overlap.mat-badge-before .elder-badge.mat-badge-content{left:-5px;transform:translate(-100%)!important}.mat-badge-small .elder-badge.mat-mdc-standard-chip .mdc-evolution-chip__action--primary{padding:0 3px!important}.mat-badge-small .elder-badge.mat-badge-content{line-height:14px!important}.mat-badge-medium .elder-badge.mat-badge-content{border-radius:22px;min-width:22px}.mat-badge-medium.mat-badge-overlap.mat-badge-after .elder-badge.mat-badge-content{right:-5px;transform:translate(100%)!important}.mat-badge-medium.mat-badge-overlap.mat-badge-before .elder-badge.mat-badge-content{left:-5px;transform:translate(-100%)!important}.mat-badge-medium .elder-badge.mat-mdc-standard-chip .mdc-evolution-chip__action--primary{padding:0 6px!important}.mat-badge-medium .elder-badge.mat-badge-content{line-height:20px!important}.mat-badge-large .elder-badge.mat-badge-content{border-radius:28px;min-width:28px}.mat-badge-large.mat-badge-overlap.mat-badge-after .elder-badge.mat-badge-content{right:-5px;transform:translate(100%)!important}.mat-badge-large.mat-badge-overlap.mat-badge-before .elder-badge.mat-badge-content{left:-5px;transform:translate(-100%)!important}.mat-badge-large .elder-badge.mat-mdc-standard-chip .mdc-evolution-chip__action--primary{padding:0 6px!important}.mat-badge-large .elder-badge.mat-badge-content{line-height:26px!important}.elder-badge.mat-badge-content{transform:unset!important}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["role", "id", "aria-label", "aria-description", "value", "color", "removable", "highlighted", "disableRipple", "disabled"], outputs: ["removed", "destroyed"], exportAs: ["matChip"] }, { kind: "directive", type: ElderChipLabelDirective, selector: "[elderChipLabel]", inputs: ["appearance", "color", "stateColor", "levelColor"] }, { kind: "directive", type: MatChipAvatar, selector: "mat-chip-avatar, [matChipAvatar]" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: ElderTruncatePipe, name: "elderTruncate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
125
125
  }
126
126
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ElderBadgeComponent, decorators: [{
127
127
  type: Component,
@@ -134,7 +134,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
134
134
  MatIcon,
135
135
  AsyncPipe,
136
136
  ElderTruncatePipe,
137
- ], template: "<ng-container *ngIf=\"templates$ | async as templates\">\n <ng-container *ngIf=\"badgeModel$ | async as badgeModel\">\n <mat-chip\n elderChipLabel\n [appearance]=\"appearance\"\n [color]=\"badgeModel.colorSpec?.theme\"\n [stateColor]=\"badgeModel.colorSpec?.state\"\n [levelColor]=\"badgeModel.colorSpec?.level\"\n [class]=\"'elder-badge fill ' + elementClass\"\n >\n <mat-chip-avatar clasS=\"elder-badge-avatar\" *ngIf=\"templates.avatar || badgeModel.showAvatar\">\n <ng-container\n *ngTemplateOutlet=\"\n templates.avatar || simpleAvatarTemplate;\n context: { $implicit: badgeModel }\n \"\n >\n </ng-container>\n </mat-chip-avatar>\n\n <ng-container\n *ngTemplateOutlet=\"templates.chip || simpleChipTemplate; context: { $implicit: badgeModel }\"\n >\n </ng-container>\n\n <ng-content></ng-content>\n </mat-chip>\n </ng-container>\n</ng-container>\n\n<ng-template #simpleChipTemplate let-badgeModel>\n <!--\n <span class=\"elder-chip-text\">{{badgeModel.value | elderTruncate:20}}</span>\n -->\n {{ badgeModel.value | elderTruncate: 20 }}\n</ng-template>\n\n<ng-template #simpleAvatarTemplate let-badgeModel>\n <mat-icon>{{ badgeModel.avatarSpec?.icon }}</mat-icon>\n</ng-template>\n", styles: [".elder-badge{position:absolute!important;width:unset!important;max-width:unset!important;box-sizing:border-box}.elder-badge.mat-mdc-standard-chip{height:var(--mat-badge-text-size, 12px)4}.elder-badge.mat-mdc-standard-chip .mdc-evolution-chip__text-label{font-size:var(--mat-badge-text-size, 12px);font-weight:var(--mat-badge-text-weight, 600)}.elder-badge .mdc-evolution-chip,.elder-badge .mdc-evolution-chip__cell,.elder-badge .mdc-evolution-chip__action{justify-content:center}.elder-badge.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__graphic{padding-left:0;padding-right:0}.mat-badge-small .elder-badge.mat-badge-content{border-radius:16px;min-width:16px}.mat-badge-small.mat-badge-above .elder-badge.mat-badge-content{top:-7px!important}.mat-badge-small.mat-badge-overlap.mat-badge-after .elder-badge.mat-badge-content{right:-5px;transform:translate(100%)!important}.mat-badge-small.mat-badge-overlap.mat-badge-before .elder-badge.mat-badge-content{left:-5px;transform:translate(-100%)!important}.mat-badge-small .elder-badge.mat-mdc-standard-chip .mdc-evolution-chip__action--primary{padding:0 3px!important}.mat-badge-small .elder-badge.mat-badge-content{line-height:14px!important}.mat-badge-medium .elder-badge.mat-badge-content{border-radius:22px;min-width:22px}.mat-badge-medium.mat-badge-overlap.mat-badge-after .elder-badge.mat-badge-content{right:-5px;transform:translate(100%)!important}.mat-badge-medium.mat-badge-overlap.mat-badge-before .elder-badge.mat-badge-content{left:-5px;transform:translate(-100%)!important}.mat-badge-medium .elder-badge.mat-mdc-standard-chip .mdc-evolution-chip__action--primary{padding:0 6px!important}.mat-badge-medium .elder-badge.mat-badge-content{line-height:20px!important}.mat-badge-large .elder-badge.mat-badge-content{border-radius:28px;min-width:28px}.mat-badge-large.mat-badge-overlap.mat-badge-after .elder-badge.mat-badge-content{right:-5px;transform:translate(100%)!important}.mat-badge-large.mat-badge-overlap.mat-badge-before .elder-badge.mat-badge-content{left:-5px;transform:translate(-100%)!important}.mat-badge-large .elder-badge.mat-mdc-standard-chip .mdc-evolution-chip__action--primary{padding:0 6px!important}.mat-badge-large .elder-badge.mat-badge-content{line-height:26px!important}.elder-badge.mat-badge-content{transform:unset!important}\n"] }]
137
+ ], template: "<ng-container *ngIf=\"templates$ | async as templates\">\n <ng-container *ngIf=\"badgeModel$ | async as badgeModel\">\n <mat-chip\n elderChipLabel\n [appearance]=\"appearance\"\n [color]=\"badgeModel.colorSpec?.theme\"\n [stateColor]=\"badgeModel.colorSpec?.state\"\n [levelColor]=\"badgeModel.colorSpec?.level\"\n [class]=\"'elder-badge fill ' + elementClass\"\n >\n <mat-chip-avatar clasS=\"elder-badge-avatar\" *ngIf=\"templates.avatar || badgeModel.showAvatar\">\n <ng-container\n *ngTemplateOutlet=\"\n templates.avatar || simpleAvatarTemplate;\n context: { $implicit: badgeModel }\n \"\n >\n </ng-container>\n </mat-chip-avatar>\n\n <ng-container\n *ngTemplateOutlet=\"templates.chip || simpleChipTemplate; context: { $implicit: badgeModel }\"\n >\n </ng-container>\n\n <ng-content></ng-content>\n </mat-chip>\n </ng-container>\n</ng-container>\n\n<ng-template #simpleChipTemplate let-badgeModel>\n <!--\n <span class=\"elder-chip-text\">{{badgeModel.value | elderTruncate:20}}</span>\n -->\n {{ badgeModel.value | elderTruncate: 20 }}\n</ng-template>\n\n<ng-template #simpleAvatarTemplate let-badgeModel>\n <mat-icon>{{ badgeModel.avatarSpec?.icon }}</mat-icon>\n</ng-template>\n", styles: [".elder-badge{position:absolute!important;width:unset!important;max-width:unset!important;box-sizing:border-box;--mdc-chip-container-shape-radius: 10px}.elder-badge.mat-mdc-standard-chip .mdc-evolution-chip__text-label{font-size:var(--mat-badge-text-size, 12px);font-weight:var(--mat-badge-text-weight, 600)}.elder-badge .mdc-evolution-chip,.elder-badge .mdc-evolution-chip__cell,.elder-badge .mdc-evolution-chip__action{justify-content:center}.elder-badge.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__graphic{padding-left:0;padding-right:0}.mat-badge-small .elder-badge.mat-badge-content{border-radius:16px;min-width:16px}.mat-badge-small.mat-badge-above .elder-badge.mat-badge-content{top:-7px!important}.mat-badge-small.mat-badge-overlap.mat-badge-after .elder-badge.mat-badge-content{right:-5px;transform:translate(100%)!important}.mat-badge-small.mat-badge-overlap.mat-badge-before .elder-badge.mat-badge-content{left:-5px;transform:translate(-100%)!important}.mat-badge-small .elder-badge.mat-mdc-standard-chip .mdc-evolution-chip__action--primary{padding:0 3px!important}.mat-badge-small .elder-badge.mat-badge-content{line-height:14px!important}.mat-badge-medium .elder-badge.mat-badge-content{border-radius:22px;min-width:22px}.mat-badge-medium.mat-badge-overlap.mat-badge-after .elder-badge.mat-badge-content{right:-5px;transform:translate(100%)!important}.mat-badge-medium.mat-badge-overlap.mat-badge-before .elder-badge.mat-badge-content{left:-5px;transform:translate(-100%)!important}.mat-badge-medium .elder-badge.mat-mdc-standard-chip .mdc-evolution-chip__action--primary{padding:0 6px!important}.mat-badge-medium .elder-badge.mat-badge-content{line-height:20px!important}.mat-badge-large .elder-badge.mat-badge-content{border-radius:28px;min-width:28px}.mat-badge-large.mat-badge-overlap.mat-badge-after .elder-badge.mat-badge-content{right:-5px;transform:translate(100%)!important}.mat-badge-large.mat-badge-overlap.mat-badge-before .elder-badge.mat-badge-content{left:-5px;transform:translate(-100%)!important}.mat-badge-large .elder-badge.mat-mdc-standard-chip .mdc-evolution-chip__action--primary{padding:0 6px!important}.mat-badge-large .elder-badge.mat-badge-content{line-height:26px!important}.elder-badge.mat-badge-content{transform:unset!important}\n"] }]
138
138
  }], ctorParameters: () => [], propDecorators: { appearance: [{
139
139
  type: Input
140
140
  }], value: [{
@@ -159,4 +159,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
159
159
  }], chipAvatarTemplate: [{
160
160
  type: Input
161
161
  }] } });
162
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItYmFkZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9iYWRnZS9lbGRlci1iYWRnZS9lbGRlci1iYWRnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL2JhZGdlL2VsZGVyLWJhZGdlL2VsZGVyLWJhZGdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixTQUFTLEVBQ1QsS0FBSyxFQUNMLFdBQVcsRUFFWCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQWMsTUFBTSxNQUFNLENBQUE7QUFFakUsT0FBTyxFQUlMLHVCQUF1QixHQUN4QixNQUFNLHdDQUF3QyxDQUFBO0FBQy9DLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUNwQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQTtBQUN0RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFDaEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUNoRSxPQUFPLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFBOztBQU1uRSxNQUFNLE9BQU8sdUJBQXVCO0lBQ2xDLFlBQ1MsV0FBNkIsRUFDN0IsYUFBK0I7UUFEL0IsZ0JBQVcsR0FBWCxXQUFXLENBQWtCO1FBQzdCLGtCQUFhLEdBQWIsYUFBYSxDQUFrQjtJ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QWlCOzsyRkFHUixtQkFBbUI7a0JBbEIvQixTQUFTOytCQUNFLGFBQWEsbUJBR04sdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxjQUN6QixJQUFJLFdBQ1A7d0JBQ1AsSUFBSTt3QkFDSixPQUFPO3dCQUNQLHVCQUF1Qjt3QkFDdkIsYUFBYTt3QkFDYixnQkFBZ0I7d0JBQ2hCLE9BQU87d0JBQ1AsU0FBUzt3QkFDVCxpQkFBaUI7cUJBQ2xCO3dEQWlCTSxVQUFVO3NCQURoQixLQUFLO2dCQTJCSyxLQUFLO3NCQURmLEtBQUs7Z0JBT0ssU0FBUztzQkFEbkIsS0FBSztnQkFPSyxVQUFVO3NCQURwQixLQUFLO2dCQU1LLFVBQVU7c0JBRHBCLEtBQUs7Z0JBT0MsV0FBVztzQkFEakIsS0FBSzt1QkFBQyxVQUFVO2dCQVlOLGlCQUFpQjtzQkFEM0IsWUFBWTt1QkFBQyx1QkFBdUIsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFNaEUsWUFBWTtzQkFEdEIsS0FBSztnQkFVSyx1QkFBdUI7c0JBRGpDLFlBQVk7dUJBQUMsNkJBQTZCLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBTXRFLGtCQUFrQjtzQkFENUIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRGlyZWN0aXZlLFxuICBJbnB1dCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDb250YWluZXJSZWYsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IFRoZW1lUGFsZXR0ZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnXG5pbXBvcnQge1xuICBFbGRlckNoaXBBcHBlYXJhbmNlLFxuICBFbGRlckxldmVsQ29sb3IsXG4gIEVsZGVyU3RhdGVDb2xvcixcbiAgRWxkZXJDaGlwTGFiZWxEaXJlY3RpdmUsXG59IGZyb20gJy4uLy4uL2NoaXBzL2VsZGVyLWNoaXAtbGFiZWwuZGlyZWN0aXZlJ1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5pbXBvcnQgeyBFbGRlclRydW5jYXRlUGlwZSB9IGZyb20gJy4uLy4uLy4uL3BpcGVzL2VsZGVyLXRydW5jYXRlLnBpcGUnXG5pbXBvcnQgeyBNYXRJY29uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbidcbmltcG9ydCB7IE1hdENoaXAsIE1hdENoaXBBdmF0YXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGlwcydcbmltcG9ydCB7IE5nSWYsIE5nVGVtcGxhdGVPdXRsZXQsIEFzeW5jUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2VsZGVyQmFkZ2VDaGlwXScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyQmFkZ2VDaGlwRGlyZWN0aXZlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+LFxuICAgIHB1YmxpYyB2aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmXG4gICkge31cbn1cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2VsZGVyQmFkZ2VDaGlwQXZhdGFyXScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyQmFkZ2VDaGlwQXZhdGFyRGlyZWN0aXZlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+LFxuICAgIHB1YmxpYyB2aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmXG4gICkge31cbn1cblxuZXhwb3J0IGludGVyZmFjZSBCYWRnZUNvbG9yU3BlYyB7XG4gIHJlYWRvbmx5IHRoZW1lPzogVGhlbWVQYWxldHRlXG4gIHJlYWRvbmx5IHN0YXRlPzogRWxkZXJTdGF0ZUNvbG9yXG4gIHJlYWRvbmx5IGxldmVsPzogRWxkZXJMZXZlbENvbG9yXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmFkZ2VBdmF0YXJTcGVjIHtcbiAgcmVhZG9ubHkgaWNvbj86IHN0cmluZ1xufVxuXG5jbGFzcyBFbGRlckJhZGdlTW9kZWwge1xuICBwdWJsaWMgc3RhdGljIHN0YW5kYXJkKCk6IEVsZGVyQmFkZ2VNb2RlbCB7XG4gICAgcmV0dXJuIG5ldyBFbGRlckJhZGdlTW9kZWwoJycsIHsgdGhlbWU6ICdwcmltYXJ5JyB9LCB7fSlcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSB2YWx1ZTogYW55LFxuICAgIHB1YmxpYyByZWFkb25seSBjb2xvclNwZWM6IEJhZGdlQ29sb3JTcGVjLFxuICAgIHB1YmxpYyByZWFkb25seSBhdmF0YXJTcGVjOiBCYWRnZUF2YXRhclNwZWNcbiAgKSB7fVxuXG4gIHB1YmxpYyBnZXQgc2hvd0F2YXRhcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmF2YXRhclNwZWM/Lmljb25cbiAgfVxufVxuXG5pbnRlcmZhY2UgVGVtcGxhdGVXcmFwcGVyIHtcbiAgY2hpcDogVGVtcGxhdGVSZWY8YW55PlxuICBhdmF0YXI6IFRlbXBsYXRlUmVmPGFueT5cbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZWxkZXItYmFkZ2UnLFxuICB0ZW1wbGF0ZVVybDogJy4vZWxkZXItYmFkZ2UuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9lbGRlci1iYWRnZS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIE5nSWYsXG4gICAgTWF0Q2hpcCxcbiAgICBFbGRlckNoaXBMYWJlbERpcmVjdGl2ZSxcbiAgICBNYXRDaGlwQXZhdGFyLFxuICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgTWF0SWNvbixcbiAgICBBc3luY1BpcGUsXG4gICAgRWxkZXJUcnVuY2F0ZVBpcGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyQmFkZ2VDb21wb25lbnQge1xuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgcmVhZG9ubHkgYmFkZ2VNb2RlbCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEVsZGVyQmFkZ2VNb2RlbD4oRWxkZXJCYWRnZU1vZGVsLnN0YW5kYXJkKCkpXG4gIHB1YmxpYyBlbGVtZW50Q2xhc3M6IHN0cmluZ1tdID0gW11cbiAgcmVhZG9ubHkgdGVtcGxhdGVzJDogT2JzZXJ2YWJsZTxUZW1wbGF0ZVdyYXBwZXI+XG5cbiAgcHJpdmF0ZSByZWFkb25seSBjaGlwVGVtcGxhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUZW1wbGF0ZVJlZjxhbnk+PihudWxsKVxuICBwcml2YXRlIHJlYWRvbmx5IGNoaXBBdmF0YXJUZW1wbGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRlbXBsYXRlUmVmPGFueT4+KG51bGwpXG5cbiAgQElucHV0KClcbiAgcHVibGljIGFwcGVhcmFuY2U6IEVsZGVyQ2hpcEFwcGVhcmFuY2UgPSAnbGVnYWN5J1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMudGVtcGxhdGVzJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuY2hpcFRlbXBsYXRlJCwgdGhpcy5jaGlwQXZhdGFyVGVtcGxhdGUkXSkucGlwZShcbiAgICAgIG1hcCgoW2NoaXAsIGF2YXRhcl0pID0+IHtcbiAgICAgICAgcmV0dXJuIDxUZW1wbGF0ZVdyYXBwZXI+e1xuICAgICAgICAgIGNoaXAsXG4gICAgICAgICAgYXZhdGFyLFxuICAgICAgICB9XG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgdmFsdWUodmFsdWU6IGFueSkge1xuICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLmJhZGdlTW9kZWwkLmdldFZhbHVlKClcbiAgICB0aGlzLmJhZGdlTW9kZWwkLm5leHQobmV3IEVsZGVyQmFkZ2VNb2RlbCh2YWx1ZSwgY3VycmVudC5jb2xvclNwZWMsIGN1cnJlbnQuYXZhdGFyU3BlYykpXG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGNvbG9yU3BlYyhzcGVjOiBCYWRnZUNvbG9yU3BlYykge1xuICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLmJhZGdlTW9kZWwkLmdldFZhbHVlKClcbiAgICB0aGlzLmJhZGdlTW9kZWwkLm5leHQobmV3IEVsZGVyQmFkZ2VNb2RlbChjdXJyZW50LnZhbHVlLCBzcGVjLCBjdXJyZW50LmF2YXRhclNwZWMpKVxuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBiYWRnZUNvbG9yKGNvbG9yOiBUaGVtZVBhbGV0dGUpIHtcbiAgICB0aGlzLmNvbG9yU3BlYyA9IHsgdGhlbWU6IGNvbG9yIH1cbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgYXZhdGFyU3BlYyhzcGVjOiBCYWRnZUF2YXRhclNwZWMpIHtcbiAgICBjb25zdCBjdXJyZW50ID0gdGhpcy5iYWRnZU1vZGVsJC5nZXRWYWx1ZSgpXG4gICAgdGhpcy5iYWRnZU1vZGVsJC5uZXh0KG5ldyBFbGRlckJhZGdlTW9kZWwoY3VycmVudC52YWx1ZSwgY3VycmVudC5jb2xvclNwZWMsIHNwZWMpKVxuICB9XG5cbiAgQElucHV0KCdjc3NDbGFzcycpXG4gIHB1YmxpYyBzZXRDc3NDbGFzcyh2YWw6IHN0cmluZykge1xuICAgIHRoaXMuZWxlbWVudENsYXNzID0gdmFsLnNwbGl0KCcgJylcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBUZW1wbGF0ZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIEBDb250ZW50Q2hpbGQoRWxkZXJCYWRnZUNoaXBEaXJlY3RpdmUsIHsgcmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogZmFsc2UgfSlcbiAgcHVibGljIHNldCBjaGlwVGVtcGxhdGVRdWVyeSh0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55Pikge1xuICAgIHRoaXMuY2hpcFRlbXBsYXRlID0gdGVtcGxhdGVcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgY2hpcFRlbXBsYXRlKHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgdGhpcy5jaGlwVGVtcGxhdGUkLm5leHQodGVtcGxhdGUpXG4gIH1cblxuICBwdWJsaWMgZ2V0IGNoaXBUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlZjxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5jaGlwVGVtcGxhdGUkLmdldFZhbHVlKClcbiAgfVxuXG4gIEBDb250ZW50Q2hpbGQoRWxkZXJCYWRnZUNoaXBBdmF0YXJEaXJlY3RpdmUsIHsgcmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogZmFsc2UgfSlcbiAgcHVibGljIHNldCBjaGlwQXZhdGFyVGVtcGxhdGVRdWVyeSh0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55Pikge1xuICAgIHRoaXMuY2hpcEF2YXRhclRlbXBsYXRlID0gdGVtcGxhdGVcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgY2hpcEF2YXRhclRlbXBsYXRlKHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgdGhpcy5jaGlwQXZhdGFyVGVtcGxhdGUkLm5leHQodGVtcGxhdGUpXG4gIH1cblxuICBwdWJsaWMgZ2V0IGNoaXBBdmF0YXJUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlZjxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5jaGlwQXZhdGFyVGVtcGxhdGUkLmdldFZhbHVlKClcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcml2YXRlIG1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cInRlbXBsYXRlcyQgfCBhc3luYyBhcyB0ZW1wbGF0ZXNcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImJhZGdlTW9kZWwkIHwgYXN5bmMgYXMgYmFkZ2VNb2RlbFwiPlxuICAgIDxtYXQtY2hpcFxuICAgICAgZWxkZXJDaGlwTGFiZWxcbiAgICAgIFthcHBlYXJhbmNlXT1cImFwcGVhcmFuY2VcIlxuICAgICAgW2NvbG9yXT1cImJhZGdlTW9kZWwuY29sb3JTcGVjPy50aGVtZVwiXG4gICAgICBbc3RhdGVDb2xvcl09XCJiYWRnZU1vZGVsLmNvbG9yU3BlYz8uc3RhdGVcIlxuICAgICAgW2xldmVsQ29sb3JdPVwiYmFkZ2VNb2RlbC5jb2xvclNwZWM/LmxldmVsXCJcbiAgICAgIFtjbGFzc109XCInZWxkZXItYmFkZ2UgZmlsbCAnICsgZWxlbWVudENsYXNzXCJcbiAgICA+XG4gICAgICA8bWF0LWNoaXAtYXZhdGFyIGNsYXNTPVwiZWxkZXItYmFkZ2UtYXZhdGFyXCIgKm5nSWY9XCJ0ZW1wbGF0ZXMuYXZhdGFyIHx8IGJhZGdlTW9kZWwuc2hvd0F2YXRhclwiPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgIHRlbXBsYXRlcy5hdmF0YXIgfHwgc2ltcGxlQXZhdGFyVGVtcGxhdGU7XG4gICAgICAgICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogYmFkZ2VNb2RlbCB9XG4gICAgICAgICAgXCJcbiAgICAgICAgPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbWF0LWNoaXAtYXZhdGFyPlxuXG4gICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwidGVtcGxhdGVzLmNoaXAgfHwgc2ltcGxlQ2hpcFRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogYmFkZ2VNb2RlbCB9XCJcbiAgICAgID5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9tYXQtY2hpcD5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLXRlbXBsYXRlICNzaW1wbGVDaGlwVGVtcGxhdGUgbGV0LWJhZGdlTW9kZWw+XG4gIDwhLS1cbiAgPHNwYW4gY2xhc3M9XCJlbGRlci1jaGlwLXRleHRcIj57e2JhZGdlTW9kZWwudmFsdWUgfCBlbGRlclRydW5jYXRlOjIwfX08L3NwYW4+XG4gIC0tPlxuICB7eyBiYWRnZU1vZGVsLnZhbHVlIHwgZWxkZXJUcnVuY2F0ZTogMjAgfX1cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjc2ltcGxlQXZhdGFyVGVtcGxhdGUgbGV0LWJhZGdlTW9kZWw+XG4gIDxtYXQtaWNvbj57eyBiYWRnZU1vZGVsLmF2YXRhclNwZWM/Lmljb24gfX08L21hdC1pY29uPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
162
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItYmFkZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9iYWRnZS9lbGRlci1iYWRnZS9lbGRlci1iYWRnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL2JhZGdlL2VsZGVyLWJhZGdlL2VsZGVyLWJhZGdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixTQUFTLEVBQ1QsS0FBSyxFQUNMLFdBQVcsRUFFWCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQWMsTUFBTSxNQUFNLENBQUE7QUFFakUsT0FBTyxFQUlMLHVCQUF1QixHQUN4QixNQUFNLHdDQUF3QyxDQUFBO0FBQy9DLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUNwQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQTtBQUN0RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFDaEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUNoRSxPQUFPLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFBOztBQU1uRSxNQUFNLE9BQU8sdUJBQXVCO0lBQ2xDLFlBQ1MsV0FBNkIsRUFDN0IsYUFBK0I7UUFEL0IsZ0JBQVcsR0FBWCxXQUFXLENBQWtCO1FBQzdCLGtCQUFhLEdBQWIsYUFBYSxDQUFrQjtJ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QWlCOzsyRkFHUixtQkFBbUI7a0JBbEIvQixTQUFTOytCQUNFLGFBQWEsbUJBR04sdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxjQUN6QixJQUFJLFdBQ1A7d0JBQ1AsSUFBSTt3QkFDSixPQUFPO3dCQUNQLHVCQUF1Qjt3QkFDdkIsYUFBYTt3QkFDYixnQkFBZ0I7d0JBQ2hCLE9BQU87d0JBQ1AsU0FBUzt3QkFDVCxpQkFBaUI7cUJBQ2xCO3dEQWlCTSxVQUFVO3NCQURoQixLQUFLO2dCQTJCSyxLQUFLO3NCQURmLEtBQUs7Z0JBT0ssU0FBUztzQkFEbkIsS0FBSztnQkFPSyxVQUFVO3NCQURwQixLQUFLO2dCQU1LLFVBQVU7c0JBRHBCLEtBQUs7Z0JBT0MsV0FBVztzQkFEakIsS0FBSzt1QkFBQyxVQUFVO2dCQVlOLGlCQUFpQjtzQkFEM0IsWUFBWTt1QkFBQyx1QkFBdUIsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFNaEUsWUFBWTtzQkFEdEIsS0FBSztnQkFVSyx1QkFBdUI7c0JBRGpDLFlBQVk7dUJBQUMsNkJBQTZCLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBTXRFLGtCQUFrQjtzQkFENUIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRGlyZWN0aXZlLFxuICBJbnB1dCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDb250YWluZXJSZWYsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IFRoZW1lUGFsZXR0ZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnXG5pbXBvcnQge1xuICBFbGRlckNoaXBBcHBlYXJhbmNlLFxuICBFbGRlckxldmVsQ29sb3IsXG4gIEVsZGVyU3RhdGVDb2xvcixcbiAgRWxkZXJDaGlwTGFiZWxEaXJlY3RpdmUsXG59IGZyb20gJy4uLy4uL2NoaXBzL2VsZGVyLWNoaXAtbGFiZWwuZGlyZWN0aXZlJ1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5pbXBvcnQgeyBFbGRlclRydW5jYXRlUGlwZSB9IGZyb20gJy4uLy4uLy4uL3BpcGVzL2VsZGVyLXRydW5jYXRlLnBpcGUnXG5pbXBvcnQgeyBNYXRJY29uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbidcbmltcG9ydCB7IE1hdENoaXAsIE1hdENoaXBBdmF0YXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGlwcydcbmltcG9ydCB7IE5nSWYsIE5nVGVtcGxhdGVPdXRsZXQsIEFzeW5jUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2VsZGVyQmFkZ2VDaGlwXScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyQmFkZ2VDaGlwRGlyZWN0aXZlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+LFxuICAgIHB1YmxpYyB2aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmXG4gICkge31cbn1cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2VsZGVyQmFkZ2VDaGlwQXZhdGFyXScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyQmFkZ2VDaGlwQXZhdGFyRGlyZWN0aXZlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+LFxuICAgIHB1YmxpYyB2aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmXG4gICkge31cbn1cblxuZXhwb3J0IGludGVyZmFjZSBCYWRnZUNvbG9yU3BlYyB7XG4gIHJlYWRvbmx5IHRoZW1lPzogVGhlbWVQYWxldHRlXG4gIHJlYWRvbmx5IHN0YXRlPzogRWxkZXJTdGF0ZUNvbG9yXG4gIHJlYWRvbmx5IGxldmVsPzogRWxkZXJMZXZlbENvbG9yXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmFkZ2VBdmF0YXJTcGVjIHtcbiAgcmVhZG9ubHkgaWNvbj86IHN0cmluZ1xufVxuXG5jbGFzcyBFbGRlckJhZGdlTW9kZWwge1xuICBwdWJsaWMgc3RhdGljIHN0YW5kYXJkKCk6IEVsZGVyQmFkZ2VNb2RlbCB7XG4gICAgcmV0dXJuIG5ldyBFbGRlckJhZGdlTW9kZWwoJycsIHsgdGhlbWU6ICdwcmltYXJ5JyB9LCB7fSlcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSB2YWx1ZTogYW55LFxuICAgIHB1YmxpYyByZWFkb25seSBjb2xvclNwZWM6IEJhZGdlQ29sb3JTcGVjLFxuICAgIHB1YmxpYyByZWFkb25seSBhdmF0YXJTcGVjOiBCYWRnZUF2YXRhclNwZWNcbiAgKSB7fVxuXG4gIHB1YmxpYyBnZXQgc2hvd0F2YXRhcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmF2YXRhclNwZWM/Lmljb25cbiAgfVxufVxuXG5pbnRlcmZhY2UgVGVtcGxhdGVXcmFwcGVyIHtcbiAgY2hpcDogVGVtcGxhdGVSZWY8YW55PlxuICBhdmF0YXI6IFRlbXBsYXRlUmVmPGFueT5cbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZWxkZXItYmFkZ2UnLFxuICB0ZW1wbGF0ZVVybDogJy4vZWxkZXItYmFkZ2UuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9lbGRlci1iYWRnZS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIE5nSWYsXG4gICAgTWF0Q2hpcCxcbiAgICBFbGRlckNoaXBMYWJlbERpcmVjdGl2ZSxcbiAgICBNYXRDaGlwQXZhdGFyLFxuICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgTWF0SWNvbixcbiAgICBBc3luY1BpcGUsXG4gICAgRWxkZXJUcnVuY2F0ZVBpcGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyQmFkZ2VDb21wb25lbnQge1xuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgcmVhZG9ubHkgYmFkZ2VNb2RlbCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEVsZGVyQmFkZ2VNb2RlbD4oRWxkZXJCYWRnZU1vZGVsLnN0YW5kYXJkKCkpXG4gIHB1YmxpYyBlbGVtZW50Q2xhc3M6IHN0cmluZ1tdID0gW11cbiAgcmVhZG9ubHkgdGVtcGxhdGVzJDogT2JzZXJ2YWJsZTxUZW1wbGF0ZVdyYXBwZXI+XG5cbiAgcHJpdmF0ZSByZWFkb25seSBjaGlwVGVtcGxhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUZW1wbGF0ZVJlZjxhbnk+PihudWxsKVxuICBwcml2YXRlIHJlYWRvbmx5IGNoaXBBdmF0YXJUZW1wbGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRlbXBsYXRlUmVmPGFueT4+KG51bGwpXG5cbiAgQElucHV0KClcbiAgcHVibGljIGFwcGVhcmFuY2U6IEVsZGVyQ2hpcEFwcGVhcmFuY2UgPSAnbGVnYWN5J1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMudGVtcGxhdGVzJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuY2hpcFRlbXBsYXRlJCwgdGhpcy5jaGlwQXZhdGFyVGVtcGxhdGUkXSkucGlwZShcbiAgICAgIG1hcCgoW2NoaXAsIGF2YXRhcl0pID0+IHtcbiAgICAgICAgcmV0dXJuIDxUZW1wbGF0ZVdyYXBwZXI+e1xuICAgICAgICAgIGNoaXAsXG4gICAgICAgICAgYXZhdGFyLFxuICAgICAgICB9XG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgdmFsdWUodmFsdWU6IGFueSkge1xuICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLmJhZGdlTW9kZWwkLmdldFZhbHVlKClcbiAgICB0aGlzLmJhZGdlTW9kZWwkLm5leHQobmV3IEVsZGVyQmFkZ2VNb2RlbCh2YWx1ZSwgY3VycmVudC5jb2xvclNwZWMsIGN1cnJlbnQuYXZhdGFyU3BlYykpXG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGNvbG9yU3BlYyhzcGVjOiBCYWRnZUNvbG9yU3BlYykge1xuICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLmJhZGdlTW9kZWwkLmdldFZhbHVlKClcbiAgICB0aGlzLmJhZGdlTW9kZWwkLm5leHQobmV3IEVsZGVyQmFkZ2VNb2RlbChjdXJyZW50LnZhbHVlLCBzcGVjLCBjdXJyZW50LmF2YXRhclNwZWMpKVxuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBiYWRnZUNvbG9yKGNvbG9yOiBUaGVtZVBhbGV0dGUpIHtcbiAgICB0aGlzLmNvbG9yU3BlYyA9IHsgdGhlbWU6IGNvbG9yIH1cbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgYXZhdGFyU3BlYyhzcGVjOiBCYWRnZUF2YXRhclNwZWMpIHtcbiAgICBjb25zdCBjdXJyZW50ID0gdGhpcy5iYWRnZU1vZGVsJC5nZXRWYWx1ZSgpXG4gICAgdGhpcy5iYWRnZU1vZGVsJC5uZXh0KG5ldyBFbGRlckJhZGdlTW9kZWwoY3VycmVudC52YWx1ZSwgY3VycmVudC5jb2xvclNwZWMsIHNwZWMpKVxuICB9XG5cbiAgQElucHV0KCdjc3NDbGFzcycpXG4gIHB1YmxpYyBzZXRDc3NDbGFzcyh2YWw6IHN0cmluZykge1xuICAgIHRoaXMuZWxlbWVudENsYXNzID0gdmFsLnNwbGl0KCcgJylcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBUZW1wbGF0ZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIEBDb250ZW50Q2hpbGQoRWxkZXJCYWRnZUNoaXBEaXJlY3RpdmUsIHsgcmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogZmFsc2UgfSlcbiAgcHVibGljIHNldCBjaGlwVGVtcGxhdGVRdWVyeSh0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55Pikge1xuICAgIHRoaXMuY2hpcFRlbXBsYXRlID0gdGVtcGxhdGVcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgY2hpcFRlbXBsYXRlKHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgdGhpcy5jaGlwVGVtcGxhdGUkLm5leHQodGVtcGxhdGUpXG4gIH1cblxuICBwdWJsaWMgZ2V0IGNoaXBUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlZjxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5jaGlwVGVtcGxhdGUkLmdldFZhbHVlKClcbiAgfVxuXG4gIEBDb250ZW50Q2hpbGQoRWxkZXJCYWRnZUNoaXBBdmF0YXJEaXJlY3RpdmUsIHsgcmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogZmFsc2UgfSlcbiAgcHVibGljIHNldCBjaGlwQXZhdGFyVGVtcGxhdGVRdWVyeSh0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55Pikge1xuICAgIHRoaXMuY2hpcEF2YXRhclRlbXBsYXRlID0gdGVtcGxhdGVcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgY2hpcEF2YXRhclRlbXBsYXRlKHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgdGhpcy5jaGlwQXZhdGFyVGVtcGxhdGUkLm5leHQodGVtcGxhdGUpXG4gIH1cblxuICBwdWJsaWMgZ2V0IGNoaXBBdmF0YXJUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlZjxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5jaGlwQXZhdGFyVGVtcGxhdGUkLmdldFZhbHVlKClcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcml2YXRlIG1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cInRlbXBsYXRlcyQgfCBhc3luYyBhcyB0ZW1wbGF0ZXNcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImJhZGdlTW9kZWwkIHwgYXN5bmMgYXMgYmFkZ2VNb2RlbFwiPlxuICAgIDxtYXQtY2hpcFxuICAgICAgZWxkZXJDaGlwTGFiZWxcbiAgICAgIFthcHBlYXJhbmNlXT1cImFwcGVhcmFuY2VcIlxuICAgICAgW2NvbG9yXT1cImJhZGdlTW9kZWwuY29sb3JTcGVjPy50aGVtZVwiXG4gICAgICBbc3RhdGVDb2xvcl09XCJiYWRnZU1vZGVsLmNvbG9yU3BlYz8uc3RhdGVcIlxuICAgICAgW2xldmVsQ29sb3JdPVwiYmFkZ2VNb2RlbC5jb2xvclNwZWM/LmxldmVsXCJcbiAgICAgIFtjbGFzc109XCInZWxkZXItYmFkZ2UgZmlsbCAnICsgZWxlbWVudENsYXNzXCJcbiAgICA+XG4gICAgICA8bWF0LWNoaXAtYXZhdGFyIGNsYXNTPVwiZWxkZXItYmFkZ2UtYXZhdGFyXCIgKm5nSWY9XCJ0ZW1wbGF0ZXMuYXZhdGFyIHx8IGJhZGdlTW9kZWwuc2hvd0F2YXRhclwiPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgIHRlbXBsYXRlcy5hdmF0YXIgfHwgc2ltcGxlQXZhdGFyVGVtcGxhdGU7XG4gICAgICAgICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogYmFkZ2VNb2RlbCB9XG4gICAgICAgICAgXCJcbiAgICAgICAgPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbWF0LWNoaXAtYXZhdGFyPlxuXG4gICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwidGVtcGxhdGVzLmNoaXAgfHwgc2ltcGxlQ2hpcFRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogYmFkZ2VNb2RlbCB9XCJcbiAgICAgID5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9tYXQtY2hpcD5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLXRlbXBsYXRlICNzaW1wbGVDaGlwVGVtcGxhdGUgbGV0LWJhZGdlTW9kZWw+XG4gIDwhLS1cbiAgPHNwYW4gY2xhc3M9XCJlbGRlci1jaGlwLXRleHRcIj57e2JhZGdlTW9kZWwudmFsdWUgfCBlbGRlclRydW5jYXRlOjIwfX08L3NwYW4+XG4gIC0tPlxuICB7eyBiYWRnZU1vZGVsLnZhbHVlIHwgZWxkZXJUcnVuY2F0ZTogMjAgfX1cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjc2ltcGxlQXZhdGFyVGVtcGxhdGUgbGV0LWJhZGdlTW9kZWw+XG4gIDxtYXQtaWNvbj57eyBiYWRnZU1vZGVsLmF2YXRhclNwZWM/Lmljb24gfX08L21hdC1pY29uPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -207,11 +207,11 @@ export class ElderBlobViewerComponent {
207
207
  });
208
208
  }
209
209
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ElderBlobViewerComponent, deps: [{ token: i1.HttpClientPristine }, { token: i2.DomSanitizer }, { token: i3.ElderToastService }], target: i0.ɵɵFactoryTarget.Component }); }
210
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.5", type: ElderBlobViewerComponent, isStandalone: true, selector: "elder-blob-viewer", inputs: { displayUnknownAsText: { classPropertyName: "displayUnknownAsText", publicName: "displayUnknownAsText", isSignal: true, isRequired: false, transformFunction: null }, blob: { classPropertyName: "blob", publicName: "blob", isSignal: false, isRequired: false, transformFunction: null }, blobUrl: { classPropertyName: "blobUrl", publicName: "blobUrl", isSignal: false, isRequired: false, transformFunction: null }, url: { classPropertyName: "url", publicName: "url", isSignal: false, isRequired: false, transformFunction: null }, mimeType: { classPropertyName: "mimeType", publicName: "mimeType", isSignal: false, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"layout-col full place-center-center document-viewer\">\n <ng-container *ngIf=\"blobContext$ | async as blobContext\">\n <!-- Video -->\n <div class=\"layout-col place-center-center full\" *ngIf=\"blobContext.mimeType.isVideo\">\n <video class=\"video\" controls autoplay loop>\n <source [src]=\"blobContext.safeUrl\" [type]=\"blobContext.mimeType.value\" />\n Your browser does not support HTML5 video.\n </video>\n </div>\n\n <!-- Audio -->\n <div class=\"layout-col place-center-center full\" *ngIf=\"blobContext.mimeType.isAudio\">\n <audio class=\"audio\" controls autoplay loop>\n <source [src]=\"blobContext.safeUrl\" [type]=\"blobContext.mimeType.value\" />\n Your browser does not support HTML5 audio.\n </audio>\n </div>\n\n <!-- Image -->\n <div class=\"layout-col full\" *ngIf=\"blobContext.mimeType.isImage\" style=\"overflow: hidden\">\n <img class=\"cover flex\" [src]=\"blobContext.safeUrl\" alt=\"blob image\" />\n </div>\n\n <!-- Embedded (PDFs etc) -->\n <div class=\"layout-col full\" *ngIf=\"blobContext.displayEmbedded\">\n <div class=\"full\">\n <embed\n class=\"embedded\"\n [src]=\"blobContext.safeUrl\"\n [type]=\"blobContext.mimeType.value\"\n width=\"100%\"\n height=\"100%\"\n />\n </div>\n </div>\n\n <!-- Plain Text -->\n <div class=\"layout-col full\" *ngIf=\"blobContext.displayAsText\">\n <textarea\n class=\"document-content\"\n placeholder=\"Content\"\n [value]=\"blobContext.text\"\n wrap=\"off\"\n readonly\n ></textarea>\n </div>\n\n <div class=\"layout-col place-center-center full\" *ngIf=\"blobContext.cantDisplay\">\n <p>Cant display {{ blobContext.mimeType.value }}!</p>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"!(blobContext$ | async)\">\n <div class=\"layout-col place-center-center full\">\n <p>No Document.</p>\n </div>\n </ng-container>\n</div>\n", styles: [":host{overflow:hidden}.document-viewer{background-color:#dedede;color:#1f1e1e}.video,.audio{width:100%;height:auto}.embedded{width:100%;height:100%}.cover{object-fit:scale-down;width:100%;height:auto;overflow:hidden}.document-content{font-family:Courier,monospace;font-size:14px;background-color:#575757;color:#ccc;outline:none;resize:none;width:100%;height:100%;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;-webkit-border-radius:12px;border-radius:0;-webkit-box-shadow:0px 2px 14px #000;box-shadow:0 2px 14px #000;border-top:1px solid #fff;border-bottom:1px solid #fff}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
210
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.5", type: ElderBlobViewerComponent, isStandalone: true, selector: "elder-blob-viewer", inputs: { displayUnknownAsText: { classPropertyName: "displayUnknownAsText", publicName: "displayUnknownAsText", isSignal: true, isRequired: false, transformFunction: null }, blob: { classPropertyName: "blob", publicName: "blob", isSignal: false, isRequired: false, transformFunction: null }, blobUrl: { classPropertyName: "blobUrl", publicName: "blobUrl", isSignal: false, isRequired: false, transformFunction: null }, url: { classPropertyName: "url", publicName: "url", isSignal: false, isRequired: false, transformFunction: null }, mimeType: { classPropertyName: "mimeType", publicName: "mimeType", isSignal: false, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"layout-col full place-center-center document-viewer\">\n <ng-container *ngIf=\"blobContext$ | async as blobContext\">\n <!-- Video -->\n <div class=\"layout-col place-center-center full\" *ngIf=\"blobContext.mimeType.isVideo\">\n <video class=\"video\" controls autoplay loop>\n <source [src]=\"blobContext.safeUrl\" [type]=\"blobContext.mimeType.value\" />\n Your browser does not support HTML5 video.\n </video>\n </div>\n\n <!-- Audio -->\n <div class=\"layout-col place-center-center full\" *ngIf=\"blobContext.mimeType.isAudio\">\n <audio class=\"audio\" controls autoplay loop>\n <source [src]=\"blobContext.safeUrl\" [type]=\"blobContext.mimeType.value\" />\n Your browser does not support HTML5 audio.\n </audio>\n </div>\n\n <!-- Image -->\n <div class=\"layout-col full\" *ngIf=\"blobContext.mimeType.isImage\" style=\"overflow: hidden\">\n <img class=\"cover flex\" [src]=\"blobContext.safeUrl\" alt=\"blob image\" />\n </div>\n\n <!-- Embedded (PDFs etc) -->\n <div class=\"layout-col full\" *ngIf=\"blobContext.displayEmbedded\">\n <div class=\"full\">\n <embed\n class=\"embedded\"\n [src]=\"blobContext.safeUrl\"\n [type]=\"blobContext.mimeType.value\"\n width=\"100%\"\n height=\"100%\"\n />\n </div>\n </div>\n\n <!-- Plain Text -->\n <div class=\"layout-col full\" *ngIf=\"blobContext.displayAsText\">\n <textarea\n class=\"document-content\"\n placeholder=\"Content\"\n [value]=\"blobContext.text\"\n wrap=\"off\"\n readonly\n ></textarea>\n </div>\n\n <div class=\"layout-col place-center-center full\" *ngIf=\"blobContext.cantDisplay\">\n <p>Cant display {{ blobContext.mimeType.value }}!</p>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"!(blobContext$ | async)\">\n <div class=\"layout-col place-center-center full\">\n <p>No Document.</p>\n </div>\n </ng-container>\n</div>\n", styles: [":host{overflow:hidden}.document-viewer{background-color:var(--md-sys-color-surface-dim);color:var(--md-sys-color-on-surface)}.video,.audio{width:100%;height:auto}.embedded{width:100%;height:100%}.cover{object-fit:scale-down;width:100%;height:auto;overflow:hidden}.document-content{font-family:Courier,monospace;font-size:14px;background-color:var(--md-sys-color-inverse-surface);color:var(--md-sys-color-inverse-on-surface);outline:none;resize:none;width:100%;height:100%;box-sizing:border-box;border-radius:0;box-shadow:0 2px 14px #000;border-top:1px solid #fff;border-bottom:1px solid #fff}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
211
211
  }
212
212
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ElderBlobViewerComponent, decorators: [{
213
213
  type: Component,
214
- args: [{ selector: 'elder-blob-viewer', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgIf, AsyncPipe], template: "<div class=\"layout-col full place-center-center document-viewer\">\n <ng-container *ngIf=\"blobContext$ | async as blobContext\">\n <!-- Video -->\n <div class=\"layout-col place-center-center full\" *ngIf=\"blobContext.mimeType.isVideo\">\n <video class=\"video\" controls autoplay loop>\n <source [src]=\"blobContext.safeUrl\" [type]=\"blobContext.mimeType.value\" />\n Your browser does not support HTML5 video.\n </video>\n </div>\n\n <!-- Audio -->\n <div class=\"layout-col place-center-center full\" *ngIf=\"blobContext.mimeType.isAudio\">\n <audio class=\"audio\" controls autoplay loop>\n <source [src]=\"blobContext.safeUrl\" [type]=\"blobContext.mimeType.value\" />\n Your browser does not support HTML5 audio.\n </audio>\n </div>\n\n <!-- Image -->\n <div class=\"layout-col full\" *ngIf=\"blobContext.mimeType.isImage\" style=\"overflow: hidden\">\n <img class=\"cover flex\" [src]=\"blobContext.safeUrl\" alt=\"blob image\" />\n </div>\n\n <!-- Embedded (PDFs etc) -->\n <div class=\"layout-col full\" *ngIf=\"blobContext.displayEmbedded\">\n <div class=\"full\">\n <embed\n class=\"embedded\"\n [src]=\"blobContext.safeUrl\"\n [type]=\"blobContext.mimeType.value\"\n width=\"100%\"\n height=\"100%\"\n />\n </div>\n </div>\n\n <!-- Plain Text -->\n <div class=\"layout-col full\" *ngIf=\"blobContext.displayAsText\">\n <textarea\n class=\"document-content\"\n placeholder=\"Content\"\n [value]=\"blobContext.text\"\n wrap=\"off\"\n readonly\n ></textarea>\n </div>\n\n <div class=\"layout-col place-center-center full\" *ngIf=\"blobContext.cantDisplay\">\n <p>Cant display {{ blobContext.mimeType.value }}!</p>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"!(blobContext$ | async)\">\n <div class=\"layout-col place-center-center full\">\n <p>No Document.</p>\n </div>\n </ng-container>\n</div>\n", styles: [":host{overflow:hidden}.document-viewer{background-color:#dedede;color:#1f1e1e}.video,.audio{width:100%;height:auto}.embedded{width:100%;height:100%}.cover{object-fit:scale-down;width:100%;height:auto;overflow:hidden}.document-content{font-family:Courier,monospace;font-size:14px;background-color:#575757;color:#ccc;outline:none;resize:none;width:100%;height:100%;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;-webkit-border-radius:12px;border-radius:0;-webkit-box-shadow:0px 2px 14px #000;box-shadow:0 2px 14px #000;border-top:1px solid #fff;border-bottom:1px solid #fff}\n"] }]
214
+ args: [{ selector: 'elder-blob-viewer', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgIf, AsyncPipe], template: "<div class=\"layout-col full place-center-center document-viewer\">\n <ng-container *ngIf=\"blobContext$ | async as blobContext\">\n <!-- Video -->\n <div class=\"layout-col place-center-center full\" *ngIf=\"blobContext.mimeType.isVideo\">\n <video class=\"video\" controls autoplay loop>\n <source [src]=\"blobContext.safeUrl\" [type]=\"blobContext.mimeType.value\" />\n Your browser does not support HTML5 video.\n </video>\n </div>\n\n <!-- Audio -->\n <div class=\"layout-col place-center-center full\" *ngIf=\"blobContext.mimeType.isAudio\">\n <audio class=\"audio\" controls autoplay loop>\n <source [src]=\"blobContext.safeUrl\" [type]=\"blobContext.mimeType.value\" />\n Your browser does not support HTML5 audio.\n </audio>\n </div>\n\n <!-- Image -->\n <div class=\"layout-col full\" *ngIf=\"blobContext.mimeType.isImage\" style=\"overflow: hidden\">\n <img class=\"cover flex\" [src]=\"blobContext.safeUrl\" alt=\"blob image\" />\n </div>\n\n <!-- Embedded (PDFs etc) -->\n <div class=\"layout-col full\" *ngIf=\"blobContext.displayEmbedded\">\n <div class=\"full\">\n <embed\n class=\"embedded\"\n [src]=\"blobContext.safeUrl\"\n [type]=\"blobContext.mimeType.value\"\n width=\"100%\"\n height=\"100%\"\n />\n </div>\n </div>\n\n <!-- Plain Text -->\n <div class=\"layout-col full\" *ngIf=\"blobContext.displayAsText\">\n <textarea\n class=\"document-content\"\n placeholder=\"Content\"\n [value]=\"blobContext.text\"\n wrap=\"off\"\n readonly\n ></textarea>\n </div>\n\n <div class=\"layout-col place-center-center full\" *ngIf=\"blobContext.cantDisplay\">\n <p>Cant display {{ blobContext.mimeType.value }}!</p>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"!(blobContext$ | async)\">\n <div class=\"layout-col place-center-center full\">\n <p>No Document.</p>\n </div>\n </ng-container>\n</div>\n", styles: [":host{overflow:hidden}.document-viewer{background-color:var(--md-sys-color-surface-dim);color:var(--md-sys-color-on-surface)}.video,.audio{width:100%;height:auto}.embedded{width:100%;height:100%}.cover{object-fit:scale-down;width:100%;height:auto;overflow:hidden}.document-content{font-family:Courier,monospace;font-size:14px;background-color:var(--md-sys-color-inverse-surface);color:var(--md-sys-color-inverse-on-surface);outline:none;resize:none;width:100%;height:100%;box-sizing:border-box;border-radius:0;box-shadow:0 2px 14px #000;border-top:1px solid #fff;border-bottom:1px solid #fff}\n"] }]
215
215
  }], ctorParameters: () => [{ type: i1.HttpClientPristine }, { type: i2.DomSanitizer }, { type: i3.ElderToastService }], propDecorators: { blob: [{
216
216
  type: Input
217
217
  }], blobUrl: [{
@@ -221,4 +221,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
221
221
  }], mimeType: [{
222
222
  type: Input
223
223
  }] } });
224
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItYmxvYi12aWV3ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9maWxlcy9ibG9iLXZpZXdlci9lbGRlci1ibG9iLXZpZXdlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL2ZpbGVzL2Jsb2Itdmlld2VyL2VsZGVyLWJsb2Itdmlld2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUE7QUFFbkcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUNyQyxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDMUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBR3BELE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQ3ZELE9BQU8sRUFBZ0IscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUMzRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFBOzs7OztBQUVqRCxNQUFNLFdBQVc7SUFDUixNQUFNLENBQUMsUUFBUSxDQUFDLElBQVksRUFBRSxRQUFzQjtRQUN6RCxPQUFPLElBQUksV0FBVyxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUE7SUFDOUMsQ0FBQztJQUVNLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBZ0Is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QUFHLEVBQUUsRUFBRTtZQUNOLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyw2QkFBNkIsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFBO1lBQzVFLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLDZCQUE2QixFQUFFLEdBQUcsQ0FBQyxDQUFBO1FBQzVELENBQUMsQ0FDRixDQUFBO0lBQ0gsQ0FBQztJQUVPLGdCQUFnQixDQUFDLFFBQXNCO1FBQzdDLE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsSUFBSSxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUE7UUFFdEYsOEVBQThFO1FBQzlFLG9FQUFvRTtRQUNwRSx3RkFBd0Y7UUFFeEYsT0FBTyxHQUFHLENBQUE7SUFDWixDQUFDO0lBRU8sY0FBYyxDQUFDLFdBQW1CO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFO1lBQ3hDLFlBQVksRUFBRSxNQUFNO1NBQ3JCLENBQUMsQ0FBQTtJQUNKLENBQUM7OEdBN0tVLHdCQUF3QjtrR0FBeEIsd0JBQXdCLHd1QkMvRnJDLDJnRUEwREEsd3BCRG1DWSxJQUFJLHdGQUFFLFNBQVM7OzJGQUVkLHdCQUF3QjtrQkFScEMsU0FBUzsrQkFDRSxtQkFBbUIsbUJBR1osdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDO2tKQXFFZixJQUFJO3NCQURkLEtBQUs7Z0JBVUssT0FBTztzQkFEakIsS0FBSztnQkFVSyxHQUFHO3NCQURiLEtBQUs7Z0JBVUssUUFBUTtzQkFEbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGlucHV0LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlVXJsIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3NlcidcbmltcG9ydCB7IEJsb2JVcmwgfSBmcm9tICcuLi9ibG9iLXVybCdcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBMb2dnZXJGYWN0b3J5IH0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInXG5pbXBvcnQgeyBIdHRwQ2xpZW50UHJpc3RpbmUgfSBmcm9tICcuLi8uLi8uLi9jb21tb24vaHR0cC9odHRwLWNsaWVudC1wcmlzdGluZSdcbmltcG9ydCB7IEVsZGVyVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdG9hc3RzL2VsZGVyLXRvYXN0LnNlcnZpY2UnXG5pbXBvcnQgeyBmaWx0ZXIsIG1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5pbXBvcnQgeyBCb29sZWFuSW5wdXQsIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbidcbmltcG9ydCB7IE5nSWYsIEFzeW5jUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcblxuY2xhc3MgQmxvYkNvbnRleHQge1xuICBwdWJsaWMgc3RhdGljIHRleHRCbG9iKHRleHQ6IHN0cmluZywgbWltZVR5cGU6IEJsb2JNaW1lVHlwZSkge1xuICAgIHJldHVybiBuZXcgQmxvYkNvbnRleHQobnVsbCwgbWltZVR5cGUsIHRleHQpXG4gIH1cblxuICBwdWJsaWMgc3RhdGljIHNhZmVVcmwoc2FmZVVybDogU2FmZVVybCwgbWltZVR5cGU6IEJsb2JNaW1lVHlwZSk6IEJsb2JDb250ZXh0IHtcbiAgICByZXR1cm4gbmV3IEJsb2JDb250ZXh0KHNhZmVVcmwsIG1pbWVUeXBlLCBudWxsKVxuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IHNhZmVVcmw6IFNhZmVVcmwsXG4gICAgcHVibGljIHJlYWRvbmx5IG1pbWVUeXBlOiBCbG9iTWltZVR5cGUsXG4gICAgcHVibGljIHJlYWRvbmx5IHRleHQ6IHN0cmluZyA9IG51bGxcbiAgKSB7fVxuXG4gIHB1YmxpYyBnZXQgZGlzcGxheUFzVGV4dCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLnRleHRcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY2FudERpc3BsYXkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgICF0aGlzLmRpc3BsYXlBc1RleHQgJiZcbiAgICAgICF0aGlzLmRpc3BsYXlFbWJlZGRlZCAmJlxuICAgICAgIXRoaXMubWltZVR5cGUuaXNBdWRpbyAmJlxuICAgICAgIXRoaXMubWltZVR5cGUuaXNJbWFnZSAmJlxuICAgICAgIXRoaXMubWltZVR5cGUuaXNWaWRlb1xuICAgIClcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGlzcGxheUVtYmVkZGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm1pbWVUeXBlLmlzUGRmXG4gIH1cbn1cblxuY2xhc3MgQmxvYk1pbWVUeXBlIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBPQ1RFVF9TVFJFQU0gPSBuZXcgQmxvYk1pbWVUeXBlKCdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nKVxuXG4gIHB1YmxpYyBzdGF0aWMgcGFyc2UobWltZVR5cGU6IHN0cmluZyk6IEJsb2JNaW1lVHlwZSB7XG4gICAgaWYgKG1pbWVUeXBlKSB7XG4gICAgICByZXR1cm4gbmV3IEJsb2JNaW1lVHlwZShtaW1lVHlwZSlcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIEJsb2JNaW1lVHlwZS5PQ1RFVF9TVFJFQU1cbiAgICB9XG4gIH1cblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgdmFsdWU6IHN0cmluZykge31cblxuICBwdWJsaWMgZ2V0IGlzT2N0ZXRTdHJlYW0oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWUuc3RhcnRzV2l0aCgnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJylcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNWaWRlbygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZS5zdGFydHNXaXRoKCd2aWRlby8nKVxuICB9XG5cbiAgcHVibGljIGdldCBpc0ltYWdlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnZhbHVlLnN0YXJ0c1dpdGgoJ2ltYWdlLycpXG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzQXVkaW8oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWUuc3RhcnRzV2l0aCgnYXVkaW8vJylcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNKc29uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnZhbHVlLnN0YXJ0c1dpdGgoJ2FwcGxpY2F0aW9uL2pzb24nKVxuICB9XG5cbiAgcHVibGljIGdldCBpc1BkZigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZS5zdGFydHNXaXRoKCdhcHBsaWNhdGlvbi9wZGYnKVxuICB9XG5cbiAgcHVibGljIGdldCBpc1RleHQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWUuc3RhcnRzV2l0aCgndGV4dC8nKSB8fCB0aGlzLmlzSnNvblxuICB9XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VsZGVyLWJsb2Itdmlld2VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2VsZGVyLWJsb2Itdmlld2VyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZWxkZXItYmxvYi12aWV3ZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtOZ0lmLCBBc3luY1BpcGVdLFxufSlcbmV4cG9ydCBjbGFzcyBFbGRlckJsb2JWaWV3ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKVxuXG4gIHB1YmxpYyByZWFkb25seSBibG9iQ29udGV4dCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEJsb2JDb250ZXh0PihudWxsKVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3VybCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4obnVsbClcbiAgcHJpdmF0ZSByZWFkb25seSBfbWltZVR5cGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KG51bGwpXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpXG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBodHRwUHJpc3RpbmU6IEh0dHBDbGllbnRQcmlzdGluZSxcbiAgICBwcml2YXRlIGRvbVNhbml0aXplcjogRG9tU2FuaXRpemVyLFxuICAgIHByaXZhdGUgdG9hc3RTZXJ2aWNlOiBFbGRlclRvYXN0U2VydmljZVxuICApIHt9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIExpZmUgQ3ljbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMuX3VybCQsIHRoaXMuX21pbWVUeXBlJF0pXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxuICAgICAgICBmaWx0ZXIoKFt1cmwsIG1pbWVUeXBlXSkgPT4gISF1cmwpLFxuICAgICAgICBtYXAoKFt1cmwsIG1pbWVUeXBlXSkgPT4gQmxvYlVybC5mcm9tKHVybCwgbWltZVR5cGUpKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoYmxvYlVybCkgPT4gKHRoaXMuYmxvYlVybCA9IGJsb2JVcmwpKVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpXG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJvcGVydGllcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAvKipcbiAgICogQXR0ZW1wdCB0byBkaXNwbGF5IHVua25vd24gYmxvYnMgYXMgdGV4dC4gKGkuZS4gbWltZS10eXBlIGlzIG9jdGV0LXN0cmVhbSlcbiAgICogQHBhcmFtIHVua25vd25Bc1RleHRcbiAgICovXG4gIHB1YmxpYyBkaXNwbGF5VW5rbm93bkFzVGV4dCA9IGlucHV0KGZhbHNlLCB7XG4gICAgdHJhbnNmb3JtOiAoaW5wdXQ6IEJvb2xlYW5JbnB1dCkgPT4gY29lcmNlQm9vbGVhblByb3BlcnR5KGlucHV0KSxcbiAgfSlcblxuICAvKipcbiAgICogU2V0IGEgaW4gbWVtb3J5IGJsb2IgdG8gZGlzcGxheS5cbiAgICogQHBhcmFtIGJsb2JcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgYmxvYihibG9iOiBCbG9iKSB7XG4gICAgdGhpcy5oYW5kbGVCbG9iKGJsb2IpXG4gIH1cblxuICAvKipcbiAgICogU2V0IGEgYmxvYi11cmwgdG8gZGlzcGxheS5cbiAgICogQHBhcmFtIGJsb2JVcmxcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgYmxvYlVybChibG9iVXJsOiBCbG9iVXJsKSB7XG4gICAgdGhpcy5oYW5kbGVCbG9iVXJsKGJsb2JVcmwpXG4gIH1cblxuICAvKipcbiAgICogU2V0IGEgdXJsIHRvIGRpc3BsYXkuIFJlcXVpcmVzIHRoZSBtaW1lVHlwZSB0byBiZSBzZXQgYXN3ZWxsLlxuICAgKiBAcGFyYW0gdXJsXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHVybCh1cmw6IHN0cmluZykge1xuICAgIHRoaXMuX3VybCQubmV4dCh1cmwpXG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBtaW1lLXR5cGUgZm9yIHRoZSB1cmwgdG8gZGlzcGxheS4gT25seSBjb25zaWRlcmVkIGlmIHVybCBpcyBzZXQuXG4gICAqIEBwYXJhbSBtaW1lVHlwZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBtaW1lVHlwZShtaW1lVHlwZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fbWltZVR5cGUkLm5leHQobWltZVR5cGUpXG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBNZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIGhhbmRsZUJsb2IoYmxvYjogQmxvYik6IHZvaWQge1xuICAgIGNvbnN0IHNhZmVVcmwgPSB0aGlzLmNyZWF0ZVNhZmVVcmxGcm9tQmxvYihibG9iKVxuICAgIGNvbnN0IG1pbWVUeXBlID0gQmxvYk1pbWVUeXBlLnBhcnNlKGJsb2IudHlwZSlcblxuICAgIGlmICh0aGlzLmNhbkRpc3BsYXlBc1RleHQobWltZVR5cGUpKSB7XG4gICAgICB0aGlzLnRleHRDb250ZXh0KGJsb2IsIG1pbWVUeXBlKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm5leHRCbG9iKEJsb2JDb250ZXh0LnNhZmVVcmwoc2FmZVVybCwgbWltZVR5cGUpKVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdGV4dENvbnRleHQoYmxvYjogQmxvYiwgbWltZVR5cGU6IEJsb2JNaW1lVHlwZSk6IHZvaWQge1xuICAgIGJsb2IudGV4dCgpLnRoZW4oKHRleHQpID0+IHtcbiAgICAgIHRoaXMubmV4dEJsb2IoQmxvYkNvbnRleHQudGV4dEJsb2IodGV4dCwgbWltZVR5cGUpKVxuICAgIH0pXG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUJsb2JVcmwoYmxvYlVybDogQmxvYlVybCk6IHZvaWQge1xuICAgIGNvbnN0IHNhZmVVcmwgPSB0aGlzLmNyZWF0ZVNhZmVVcmxGcm9tRGF0YVVybChibG9iVXJsLnVybClcbiAgICBjb25zdCBtaW1lVHlwZSA9IEJsb2JNaW1lVHlwZS5wYXJzZShibG9iVXJsLm1pbWVUeXBlKVxuXG4gICAgaWYgKHRoaXMuY2FuRGlzcGxheUFzVGV4dChtaW1lVHlwZSkpIHtcbiAgICAgIHRoaXMubG9hZEFzVGV4dChibG9iVXJsLnVybCwgbWltZVR5cGUpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubmV4dEJsb2IoQmxvYkNvbnRleHQuc2FmZVVybChzYWZlVXJsLCBtaW1lVHlwZSkpXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBuZXh0QmxvYihibG9iQ29udGV4dDogQmxvYkNvbnRleHQpOiB2b2lkIHtcbiAgICB0aGlzLmJsb2JDb250ZXh0JC5uZXh0KGJsb2JDb250ZXh0KVxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVTYWZlVXJsRnJvbUJsb2IoYmxvYjogQmxvYik6IFNhZmVVcmwge1xuICAgIGNvbnN0IGJsb2JVcmwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpXG4gICAgcmV0dXJuIHRoaXMuZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RSZXNvdXJjZVVybChibG9iVXJsKVxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVTYWZlVXJsRnJvbURhdGFVcmwodXJsOiBzdHJpbmcpOiBTYWZlVXJsIHtcbiAgICByZXR1cm4gdGhpcy5kb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFJlc291cmNlVXJsKHVybClcbiAgfVxuXG4gIHByaXZhdGUgbG9hZEFzVGV4dChwcmlzdGluZVVybDogc3RyaW5nLCBtaW1lVHlwZTogQmxvYk1pbWVUeXBlKTogdm9pZCB7XG4gICAgdGhpcy5uZXh0QmxvYihCbG9iQ29udGV4dC50ZXh0QmxvYignTG9hZGluZy4uLicsIG1pbWVUeXBlKSlcblxuICAgIHRoaXMuZG93bmxvYWRBc1RleHQocHJpc3RpbmVVcmwpLnN1YnNjcmliZShcbiAgICAgICh0ZXh0KSA9PiB7XG4gICAgICAgIHRoaXMubmV4dEJsb2IoQmxvYkNvbnRleHQudGV4dEJsb2IodGV4dCwgbWltZVR5cGUpKVxuICAgICAgfSxcbiAgICAgIChlcnIpID0+IHtcbiAgICAgICAgdGhpcy5uZXh0QmxvYihCbG9iQ29udGV4dC50ZXh0QmxvYignRmFpbGVkIHRvIGRvd25sb2FkIGNvbnRlbnQhJywgbWltZVR5cGUpKVxuICAgICAgICB0aGlzLnRvYXN0U2VydmljZS53YXJuKCdGYWlsZWQgdG8gZG93bmxvYWQgY29udGVudCEnLCBlcnIpXG4gICAgICB9XG4gICAgKVxuICB9XG5cbiAgcHJpdmF0ZSBjYW5EaXNwbGF5QXNUZXh0KG1pbWVUeXBlOiBCbG9iTWltZVR5cGUpOiBib29sZWFuIHtcbiAgICBjb25zdCBjYW4gPSBtaW1lVHlwZS5pc1RleHQgfHwgKHRoaXMuZGlzcGxheVVua25vd25Bc1RleHQoKSAmJiBtaW1lVHlwZS5pc09jdGV0U3RyZWFtKVxuXG4gICAgLy8gVE9ETyBfZGlzcGxheVVua25vd25Bc1RleHQgbWlnaHQgYmUgbnVsbCBkdWUgcmFjZSBjb25kaXRpb24gc2VlIHRvZG8gYWJvdmUuXG4gICAgLy8gdGhpcy5sb2dnZXIuZGVidWcoJ2NhbkRpc3BsYXlBc1RleHQoJyArIG1pbWVUeXBlLnZhbHVlICsgJykgLS0+ICdcbiAgICAvLyAgKyBjYW4gKyAnIC0tLT4gdGhpcy5fZGlzcGxheVVua25vd25Bc1RleHQ6JyArIHRoaXMuX2Rpc3BsYXlVbmtub3duQXNUZXh0LCBtaW1lVHlwZSk7XG5cbiAgICByZXR1cm4gY2FuXG4gIH1cblxuICBwcml2YXRlIGRvd25sb2FkQXNUZXh0KHByaXN0aW5lVXJsOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBQcmlzdGluZS5nZXQocHJpc3RpbmVVcmwsIHtcbiAgICAgIHJlc3BvbnNlVHlwZTogJ3RleHQnLFxuICAgIH0pXG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJsYXlvdXQtY29sIGZ1bGwgcGxhY2UtY2VudGVyLWNlbnRlciBkb2N1bWVudC12aWV3ZXJcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImJsb2JDb250ZXh0JCB8IGFzeW5jIGFzIGJsb2JDb250ZXh0XCI+XG4gICAgPCEtLSBWaWRlbyAtLT5cbiAgICA8ZGl2IGNsYXNzPVwibGF5b3V0LWNvbCBwbGFjZS1jZW50ZXItY2VudGVyIGZ1bGxcIiAqbmdJZj1cImJsb2JDb250ZXh0Lm1pbWVUeXBlLmlzVmlkZW9cIj5cbiAgICAgIDx2aWRlbyBjbGFzcz1cInZpZGVvXCIgY29udHJvbHMgYXV0b3BsYXkgbG9vcD5cbiAgICAgICAgPHNvdXJjZSBbc3JjXT1cImJsb2JDb250ZXh0LnNhZmVVcmxcIiBbdHlwZV09XCJibG9iQ29udGV4dC5taW1lVHlwZS52YWx1ZVwiIC8+XG4gICAgICAgIFlvdXIgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IEhUTUw1IHZpZGVvLlxuICAgICAgPC92aWRlbz5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gQXVkaW8gLS0+XG4gICAgPGRpdiBjbGFzcz1cImxheW91dC1jb2wgcGxhY2UtY2VudGVyLWNlbnRlciBmdWxsXCIgKm5nSWY9XCJibG9iQ29udGV4dC5taW1lVHlwZS5pc0F1ZGlvXCI+XG4gICAgICA8YXVkaW8gY2xhc3M9XCJhdWRpb1wiIGNvbnRyb2xzIGF1dG9wbGF5IGxvb3A+XG4gICAgICAgIDxzb3VyY2UgW3NyY109XCJibG9iQ29udGV4dC5zYWZlVXJsXCIgW3R5cGVdPVwiYmxvYkNvbnRleHQubWltZVR5cGUudmFsdWVcIiAvPlxuICAgICAgICBZb3VyIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCBIVE1MNSBhdWRpby5cbiAgICAgIDwvYXVkaW8+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIEltYWdlIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJsYXlvdXQtY29sIGZ1bGxcIiAqbmdJZj1cImJsb2JDb250ZXh0Lm1pbWVUeXBlLmlzSW1hZ2VcIiBzdHlsZT1cIm92ZXJmbG93OiBoaWRkZW5cIj5cbiAgICAgIDxpbWcgY2xhc3M9XCJjb3ZlciBmbGV4XCIgW3NyY109XCJibG9iQ29udGV4dC5zYWZlVXJsXCIgYWx0PVwiYmxvYiBpbWFnZVwiIC8+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIEVtYmVkZGVkIChQREZzIGV0YykgLS0+XG4gICAgPGRpdiBjbGFzcz1cImxheW91dC1jb2wgZnVsbFwiICpuZ0lmPVwiYmxvYkNvbnRleHQuZGlzcGxheUVtYmVkZGVkXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZnVsbFwiPlxuICAgICAgICA8ZW1iZWRcbiAgICAgICAgICBjbGFzcz1cImVtYmVkZGVkXCJcbiAgICAgICAgICBbc3JjXT1cImJsb2JDb250ZXh0LnNhZmVVcmxcIlxuICAgICAgICAgIFt0eXBlXT1cImJsb2JDb250ZXh0Lm1pbWVUeXBlLnZhbHVlXCJcbiAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgIGhlaWdodD1cIjEwMCVcIlxuICAgICAgICAvPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIFBsYWluIFRleHQgLS0+XG4gICAgPGRpdiBjbGFzcz1cImxheW91dC1jb2wgZnVsbFwiICpuZ0lmPVwiYmxvYkNvbnRleHQuZGlzcGxheUFzVGV4dFwiPlxuICAgICAgPHRleHRhcmVhXG4gICAgICAgIGNsYXNzPVwiZG9jdW1lbnQtY29udGVudFwiXG4gICAgICAgIHBsYWNlaG9sZGVyPVwiQ29udGVudFwiXG4gICAgICAgIFt2YWx1ZV09XCJibG9iQ29udGV4dC50ZXh0XCJcbiAgICAgICAgd3JhcD1cIm9mZlwiXG4gICAgICAgIHJlYWRvbmx5XG4gICAgICA+PC90ZXh0YXJlYT5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJsYXlvdXQtY29sIHBsYWNlLWNlbnRlci1jZW50ZXIgZnVsbFwiICpuZ0lmPVwiYmxvYkNvbnRleHQuY2FudERpc3BsYXlcIj5cbiAgICAgIDxwPkNhbnQgZGlzcGxheSB7eyBibG9iQ29udGV4dC5taW1lVHlwZS52YWx1ZSB9fSE8L3A+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhKGJsb2JDb250ZXh0JCB8IGFzeW5jKVwiPlxuICAgIDxkaXYgY2xhc3M9XCJsYXlvdXQtY29sIHBsYWNlLWNlbnRlci1jZW50ZXIgZnVsbFwiPlxuICAgICAgPHA+Tm8gRG9jdW1lbnQuPC9wPlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuIl19
224
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItYmxvYi12aWV3ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9maWxlcy9ibG9iLXZpZXdlci9lbGRlci1ibG9iLXZpZXdlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL2ZpbGVzL2Jsb2Itdmlld2VyL2VsZGVyLWJsb2Itdmlld2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUE7QUFFbkcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUNyQyxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDMUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBR3BELE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQ3ZELE9BQU8sRUFBZ0IscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUMzRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFBOzs7OztBQUVqRCxNQUFNLFdBQVc7SUFDUixNQUFNLENBQUMsUUFBUSxDQUFDLElBQVksRUFBRSxRQUFzQjtRQUN6RCxPQUFPLElBQUksV0FBVyxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUE7SUFDOUMsQ0FBQztJQUVNLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBZ0Is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QUFHLEVBQUUsRUFBRTtZQUNOLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyw2QkFBNkIsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFBO1lBQzVFLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLDZCQUE2QixFQUFFLEdBQUcsQ0FBQyxDQUFBO1FBQzVELENBQUMsQ0FDRixDQUFBO0lBQ0gsQ0FBQztJQUVPLGdCQUFnQixDQUFDLFFBQXNCO1FBQzdDLE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsSUFBSSxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUE7UUFFdEYsOEVBQThFO1FBQzlFLG9FQUFvRTtRQUNwRSx3RkFBd0Y7UUFFeEYsT0FBTyxHQUFHLENBQUE7SUFDWixDQUFDO0lBRU8sY0FBYyxDQUFDLFdBQW1CO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFO1lBQ3hDLFlBQVksRUFBRSxNQUFNO1NBQ3JCLENBQUMsQ0FBQTtJQUNKLENBQUM7OEdBN0tVLHdCQUF3QjtrR0FBeEIsd0JBQXdCLHd1QkMvRnJDLDJnRUEwREEsNG9CRG1DWSxJQUFJLHdGQUFFLFNBQVM7OzJGQUVkLHdCQUF3QjtrQkFScEMsU0FBUzsrQkFDRSxtQkFBbUIsbUJBR1osdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDO2tKQXFFZixJQUFJO3NCQURkLEtBQUs7Z0JBVUssT0FBTztzQkFEakIsS0FBSztnQkFVSyxHQUFHO3NCQURiLEtBQUs7Z0JBVUssUUFBUTtzQkFEbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGlucHV0LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlVXJsIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3NlcidcbmltcG9ydCB7IEJsb2JVcmwgfSBmcm9tICcuLi9ibG9iLXVybCdcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBMb2dnZXJGYWN0b3J5IH0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInXG5pbXBvcnQgeyBIdHRwQ2xpZW50UHJpc3RpbmUgfSBmcm9tICcuLi8uLi8uLi9jb21tb24vaHR0cC9odHRwLWNsaWVudC1wcmlzdGluZSdcbmltcG9ydCB7IEVsZGVyVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdG9hc3RzL2VsZGVyLXRvYXN0LnNlcnZpY2UnXG5pbXBvcnQgeyBmaWx0ZXIsIG1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5pbXBvcnQgeyBCb29sZWFuSW5wdXQsIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbidcbmltcG9ydCB7IE5nSWYsIEFzeW5jUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcblxuY2xhc3MgQmxvYkNvbnRleHQge1xuICBwdWJsaWMgc3RhdGljIHRleHRCbG9iKHRleHQ6IHN0cmluZywgbWltZVR5cGU6IEJsb2JNaW1lVHlwZSkge1xuICAgIHJldHVybiBuZXcgQmxvYkNvbnRleHQobnVsbCwgbWltZVR5cGUsIHRleHQpXG4gIH1cblxuICBwdWJsaWMgc3RhdGljIHNhZmVVcmwoc2FmZVVybDogU2FmZVVybCwgbWltZVR5cGU6IEJsb2JNaW1lVHlwZSk6IEJsb2JDb250ZXh0IHtcbiAgICByZXR1cm4gbmV3IEJsb2JDb250ZXh0KHNhZmVVcmwsIG1pbWVUeXBlLCBudWxsKVxuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IHNhZmVVcmw6IFNhZmVVcmwsXG4gICAgcHVibGljIHJlYWRvbmx5IG1pbWVUeXBlOiBCbG9iTWltZVR5cGUsXG4gICAgcHVibGljIHJlYWRvbmx5IHRleHQ6IHN0cmluZyA9IG51bGxcbiAgKSB7fVxuXG4gIHB1YmxpYyBnZXQgZGlzcGxheUFzVGV4dCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLnRleHRcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY2FudERpc3BsYXkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgICF0aGlzLmRpc3BsYXlBc1RleHQgJiZcbiAgICAgICF0aGlzLmRpc3BsYXlFbWJlZGRlZCAmJlxuICAgICAgIXRoaXMubWltZVR5cGUuaXNBdWRpbyAmJlxuICAgICAgIXRoaXMubWltZVR5cGUuaXNJbWFnZSAmJlxuICAgICAgIXRoaXMubWltZVR5cGUuaXNWaWRlb1xuICAgIClcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGlzcGxheUVtYmVkZGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm1pbWVUeXBlLmlzUGRmXG4gIH1cbn1cblxuY2xhc3MgQmxvYk1pbWVUeXBlIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBPQ1RFVF9TVFJFQU0gPSBuZXcgQmxvYk1pbWVUeXBlKCdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nKVxuXG4gIHB1YmxpYyBzdGF0aWMgcGFyc2UobWltZVR5cGU6IHN0cmluZyk6IEJsb2JNaW1lVHlwZSB7XG4gICAgaWYgKG1pbWVUeXBlKSB7XG4gICAgICByZXR1cm4gbmV3IEJsb2JNaW1lVHlwZShtaW1lVHlwZSlcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIEJsb2JNaW1lVHlwZS5PQ1RFVF9TVFJFQU1cbiAgICB9XG4gIH1cblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgdmFsdWU6IHN0cmluZykge31cblxuICBwdWJsaWMgZ2V0IGlzT2N0ZXRTdHJlYW0oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWUuc3RhcnRzV2l0aCgnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJylcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNWaWRlbygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZS5zdGFydHNXaXRoKCd2aWRlby8nKVxuICB9XG5cbiAgcHVibGljIGdldCBpc0ltYWdlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnZhbHVlLnN0YXJ0c1dpdGgoJ2ltYWdlLycpXG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzQXVkaW8oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWUuc3RhcnRzV2l0aCgnYXVkaW8vJylcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNKc29uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnZhbHVlLnN0YXJ0c1dpdGgoJ2FwcGxpY2F0aW9uL2pzb24nKVxuICB9XG5cbiAgcHVibGljIGdldCBpc1BkZigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZS5zdGFydHNXaXRoKCdhcHBsaWNhdGlvbi9wZGYnKVxuICB9XG5cbiAgcHVibGljIGdldCBpc1RleHQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWUuc3RhcnRzV2l0aCgndGV4dC8nKSB8fCB0aGlzLmlzSnNvblxuICB9XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VsZGVyLWJsb2Itdmlld2VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2VsZGVyLWJsb2Itdmlld2VyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZWxkZXItYmxvYi12aWV3ZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtOZ0lmLCBBc3luY1BpcGVdLFxufSlcbmV4cG9ydCBjbGFzcyBFbGRlckJsb2JWaWV3ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKVxuXG4gIHB1YmxpYyByZWFkb25seSBibG9iQ29udGV4dCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEJsb2JDb250ZXh0PihudWxsKVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3VybCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4obnVsbClcbiAgcHJpdmF0ZSByZWFkb25seSBfbWltZVR5cGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KG51bGwpXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpXG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBodHRwUHJpc3RpbmU6IEh0dHBDbGllbnRQcmlzdGluZSxcbiAgICBwcml2YXRlIGRvbVNhbml0aXplcjogRG9tU2FuaXRpemVyLFxuICAgIHByaXZhdGUgdG9hc3RTZXJ2aWNlOiBFbGRlclRvYXN0U2VydmljZVxuICApIHt9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIExpZmUgQ3ljbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMuX3VybCQsIHRoaXMuX21pbWVUeXBlJF0pXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxuICAgICAgICBmaWx0ZXIoKFt1cmwsIG1pbWVUeXBlXSkgPT4gISF1cmwpLFxuICAgICAgICBtYXAoKFt1cmwsIG1pbWVUeXBlXSkgPT4gQmxvYlVybC5mcm9tKHVybCwgbWltZVR5cGUpKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoYmxvYlVybCkgPT4gKHRoaXMuYmxvYlVybCA9IGJsb2JVcmwpKVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpXG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJvcGVydGllcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAvKipcbiAgICogQXR0ZW1wdCB0byBkaXNwbGF5IHVua25vd24gYmxvYnMgYXMgdGV4dC4gKGkuZS4gbWltZS10eXBlIGlzIG9jdGV0LXN0cmVhbSlcbiAgICogQHBhcmFtIHVua25vd25Bc1RleHRcbiAgICovXG4gIHB1YmxpYyBkaXNwbGF5VW5rbm93bkFzVGV4dCA9IGlucHV0KGZhbHNlLCB7XG4gICAgdHJhbnNmb3JtOiAoaW5wdXQ6IEJvb2xlYW5JbnB1dCkgPT4gY29lcmNlQm9vbGVhblByb3BlcnR5KGlucHV0KSxcbiAgfSlcblxuICAvKipcbiAgICogU2V0IGEgaW4gbWVtb3J5IGJsb2IgdG8gZGlzcGxheS5cbiAgICogQHBhcmFtIGJsb2JcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgYmxvYihibG9iOiBCbG9iKSB7XG4gICAgdGhpcy5oYW5kbGVCbG9iKGJsb2IpXG4gIH1cblxuICAvKipcbiAgICogU2V0IGEgYmxvYi11cmwgdG8gZGlzcGxheS5cbiAgICogQHBhcmFtIGJsb2JVcmxcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgYmxvYlVybChibG9iVXJsOiBCbG9iVXJsKSB7XG4gICAgdGhpcy5oYW5kbGVCbG9iVXJsKGJsb2JVcmwpXG4gIH1cblxuICAvKipcbiAgICogU2V0IGEgdXJsIHRvIGRpc3BsYXkuIFJlcXVpcmVzIHRoZSBtaW1lVHlwZSB0byBiZSBzZXQgYXN3ZWxsLlxuICAgKiBAcGFyYW0gdXJsXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHVybCh1cmw6IHN0cmluZykge1xuICAgIHRoaXMuX3VybCQubmV4dCh1cmwpXG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBtaW1lLXR5cGUgZm9yIHRoZSB1cmwgdG8gZGlzcGxheS4gT25seSBjb25zaWRlcmVkIGlmIHVybCBpcyBzZXQuXG4gICAqIEBwYXJhbSBtaW1lVHlwZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBtaW1lVHlwZShtaW1lVHlwZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fbWltZVR5cGUkLm5leHQobWltZVR5cGUpXG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBNZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIGhhbmRsZUJsb2IoYmxvYjogQmxvYik6IHZvaWQge1xuICAgIGNvbnN0IHNhZmVVcmwgPSB0aGlzLmNyZWF0ZVNhZmVVcmxGcm9tQmxvYihibG9iKVxuICAgIGNvbnN0IG1pbWVUeXBlID0gQmxvYk1pbWVUeXBlLnBhcnNlKGJsb2IudHlwZSlcblxuICAgIGlmICh0aGlzLmNhbkRpc3BsYXlBc1RleHQobWltZVR5cGUpKSB7XG4gICAgICB0aGlzLnRleHRDb250ZXh0KGJsb2IsIG1pbWVUeXBlKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm5leHRCbG9iKEJsb2JDb250ZXh0LnNhZmVVcmwoc2FmZVVybCwgbWltZVR5cGUpKVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdGV4dENvbnRleHQoYmxvYjogQmxvYiwgbWltZVR5cGU6IEJsb2JNaW1lVHlwZSk6IHZvaWQge1xuICAgIGJsb2IudGV4dCgpLnRoZW4oKHRleHQpID0+IHtcbiAgICAgIHRoaXMubmV4dEJsb2IoQmxvYkNvbnRleHQudGV4dEJsb2IodGV4dCwgbWltZVR5cGUpKVxuICAgIH0pXG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUJsb2JVcmwoYmxvYlVybDogQmxvYlVybCk6IHZvaWQge1xuICAgIGNvbnN0IHNhZmVVcmwgPSB0aGlzLmNyZWF0ZVNhZmVVcmxGcm9tRGF0YVVybChibG9iVXJsLnVybClcbiAgICBjb25zdCBtaW1lVHlwZSA9IEJsb2JNaW1lVHlwZS5wYXJzZShibG9iVXJsLm1pbWVUeXBlKVxuXG4gICAgaWYgKHRoaXMuY2FuRGlzcGxheUFzVGV4dChtaW1lVHlwZSkpIHtcbiAgICAgIHRoaXMubG9hZEFzVGV4dChibG9iVXJsLnVybCwgbWltZVR5cGUpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubmV4dEJsb2IoQmxvYkNvbnRleHQuc2FmZVVybChzYWZlVXJsLCBtaW1lVHlwZSkpXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBuZXh0QmxvYihibG9iQ29udGV4dDogQmxvYkNvbnRleHQpOiB2b2lkIHtcbiAgICB0aGlzLmJsb2JDb250ZXh0JC5uZXh0KGJsb2JDb250ZXh0KVxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVTYWZlVXJsRnJvbUJsb2IoYmxvYjogQmxvYik6IFNhZmVVcmwge1xuICAgIGNvbnN0IGJsb2JVcmwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpXG4gICAgcmV0dXJuIHRoaXMuZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RSZXNvdXJjZVVybChibG9iVXJsKVxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVTYWZlVXJsRnJvbURhdGFVcmwodXJsOiBzdHJpbmcpOiBTYWZlVXJsIHtcbiAgICByZXR1cm4gdGhpcy5kb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFJlc291cmNlVXJsKHVybClcbiAgfVxuXG4gIHByaXZhdGUgbG9hZEFzVGV4dChwcmlzdGluZVVybDogc3RyaW5nLCBtaW1lVHlwZTogQmxvYk1pbWVUeXBlKTogdm9pZCB7XG4gICAgdGhpcy5uZXh0QmxvYihCbG9iQ29udGV4dC50ZXh0QmxvYignTG9hZGluZy4uLicsIG1pbWVUeXBlKSlcblxuICAgIHRoaXMuZG93bmxvYWRBc1RleHQocHJpc3RpbmVVcmwpLnN1YnNjcmliZShcbiAgICAgICh0ZXh0KSA9PiB7XG4gICAgICAgIHRoaXMubmV4dEJsb2IoQmxvYkNvbnRleHQudGV4dEJsb2IodGV4dCwgbWltZVR5cGUpKVxuICAgICAgfSxcbiAgICAgIChlcnIpID0+IHtcbiAgICAgICAgdGhpcy5uZXh0QmxvYihCbG9iQ29udGV4dC50ZXh0QmxvYignRmFpbGVkIHRvIGRvd25sb2FkIGNvbnRlbnQhJywgbWltZVR5cGUpKVxuICAgICAgICB0aGlzLnRvYXN0U2VydmljZS53YXJuKCdGYWlsZWQgdG8gZG93bmxvYWQgY29udGVudCEnLCBlcnIpXG4gICAgICB9XG4gICAgKVxuICB9XG5cbiAgcHJpdmF0ZSBjYW5EaXNwbGF5QXNUZXh0KG1pbWVUeXBlOiBCbG9iTWltZVR5cGUpOiBib29sZWFuIHtcbiAgICBjb25zdCBjYW4gPSBtaW1lVHlwZS5pc1RleHQgfHwgKHRoaXMuZGlzcGxheVVua25vd25Bc1RleHQoKSAmJiBtaW1lVHlwZS5pc09jdGV0U3RyZWFtKVxuXG4gICAgLy8gVE9ETyBfZGlzcGxheVVua25vd25Bc1RleHQgbWlnaHQgYmUgbnVsbCBkdWUgcmFjZSBjb25kaXRpb24gc2VlIHRvZG8gYWJvdmUuXG4gICAgLy8gdGhpcy5sb2dnZXIuZGVidWcoJ2NhbkRpc3BsYXlBc1RleHQoJyArIG1pbWVUeXBlLnZhbHVlICsgJykgLS0+ICdcbiAgICAvLyAgKyBjYW4gKyAnIC0tLT4gdGhpcy5fZGlzcGxheVVua25vd25Bc1RleHQ6JyArIHRoaXMuX2Rpc3BsYXlVbmtub3duQXNUZXh0LCBtaW1lVHlwZSk7XG5cbiAgICByZXR1cm4gY2FuXG4gIH1cblxuICBwcml2YXRlIGRvd25sb2FkQXNUZXh0KHByaXN0aW5lVXJsOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBQcmlzdGluZS5nZXQocHJpc3RpbmVVcmwsIHtcbiAgICAgIHJlc3BvbnNlVHlwZTogJ3RleHQnLFxuICAgIH0pXG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJsYXlvdXQtY29sIGZ1bGwgcGxhY2UtY2VudGVyLWNlbnRlciBkb2N1bWVudC12aWV3ZXJcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImJsb2JDb250ZXh0JCB8IGFzeW5jIGFzIGJsb2JDb250ZXh0XCI+XG4gICAgPCEtLSBWaWRlbyAtLT5cbiAgICA8ZGl2IGNsYXNzPVwibGF5b3V0LWNvbCBwbGFjZS1jZW50ZXItY2VudGVyIGZ1bGxcIiAqbmdJZj1cImJsb2JDb250ZXh0Lm1pbWVUeXBlLmlzVmlkZW9cIj5cbiAgICAgIDx2aWRlbyBjbGFzcz1cInZpZGVvXCIgY29udHJvbHMgYXV0b3BsYXkgbG9vcD5cbiAgICAgICAgPHNvdXJjZSBbc3JjXT1cImJsb2JDb250ZXh0LnNhZmVVcmxcIiBbdHlwZV09XCJibG9iQ29udGV4dC5taW1lVHlwZS52YWx1ZVwiIC8+XG4gICAgICAgIFlvdXIgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IEhUTUw1IHZpZGVvLlxuICAgICAgPC92aWRlbz5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gQXVkaW8gLS0+XG4gICAgPGRpdiBjbGFzcz1cImxheW91dC1jb2wgcGxhY2UtY2VudGVyLWNlbnRlciBmdWxsXCIgKm5nSWY9XCJibG9iQ29udGV4dC5taW1lVHlwZS5pc0F1ZGlvXCI+XG4gICAgICA8YXVkaW8gY2xhc3M9XCJhdWRpb1wiIGNvbnRyb2xzIGF1dG9wbGF5IGxvb3A+XG4gICAgICAgIDxzb3VyY2UgW3NyY109XCJibG9iQ29udGV4dC5zYWZlVXJsXCIgW3R5cGVdPVwiYmxvYkNvbnRleHQubWltZVR5cGUudmFsdWVcIiAvPlxuICAgICAgICBZb3VyIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCBIVE1MNSBhdWRpby5cbiAgICAgIDwvYXVkaW8+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIEltYWdlIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJsYXlvdXQtY29sIGZ1bGxcIiAqbmdJZj1cImJsb2JDb250ZXh0Lm1pbWVUeXBlLmlzSW1hZ2VcIiBzdHlsZT1cIm92ZXJmbG93OiBoaWRkZW5cIj5cbiAgICAgIDxpbWcgY2xhc3M9XCJjb3ZlciBmbGV4XCIgW3NyY109XCJibG9iQ29udGV4dC5zYWZlVXJsXCIgYWx0PVwiYmxvYiBpbWFnZVwiIC8+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIEVtYmVkZGVkIChQREZzIGV0YykgLS0+XG4gICAgPGRpdiBjbGFzcz1cImxheW91dC1jb2wgZnVsbFwiICpuZ0lmPVwiYmxvYkNvbnRleHQuZGlzcGxheUVtYmVkZGVkXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZnVsbFwiPlxuICAgICAgICA8ZW1iZWRcbiAgICAgICAgICBjbGFzcz1cImVtYmVkZGVkXCJcbiAgICAgICAgICBbc3JjXT1cImJsb2JDb250ZXh0LnNhZmVVcmxcIlxuICAgICAgICAgIFt0eXBlXT1cImJsb2JDb250ZXh0Lm1pbWVUeXBlLnZhbHVlXCJcbiAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgIGhlaWdodD1cIjEwMCVcIlxuICAgICAgICAvPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIFBsYWluIFRleHQgLS0+XG4gICAgPGRpdiBjbGFzcz1cImxheW91dC1jb2wgZnVsbFwiICpuZ0lmPVwiYmxvYkNvbnRleHQuZGlzcGxheUFzVGV4dFwiPlxuICAgICAgPHRleHRhcmVhXG4gICAgICAgIGNsYXNzPVwiZG9jdW1lbnQtY29udGVudFwiXG4gICAgICAgIHBsYWNlaG9sZGVyPVwiQ29udGVudFwiXG4gICAgICAgIFt2YWx1ZV09XCJibG9iQ29udGV4dC50ZXh0XCJcbiAgICAgICAgd3JhcD1cIm9mZlwiXG4gICAgICAgIHJlYWRvbmx5XG4gICAgICA+PC90ZXh0YXJlYT5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJsYXlvdXQtY29sIHBsYWNlLWNlbnRlci1jZW50ZXIgZnVsbFwiICpuZ0lmPVwiYmxvYkNvbnRleHQuY2FudERpc3BsYXlcIj5cbiAgICAgIDxwPkNhbnQgZGlzcGxheSB7eyBibG9iQ29udGV4dC5taW1lVHlwZS52YWx1ZSB9fSE8L3A+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhKGJsb2JDb250ZXh0JCB8IGFzeW5jKVwiPlxuICAgIDxkaXYgY2xhc3M9XCJsYXlvdXQtY29sIHBsYWNlLWNlbnRlci1jZW50ZXIgZnVsbFwiPlxuICAgICAgPHA+Tm8gRG9jdW1lbnQuPC9wPlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuIl19
@@ -0,0 +1,11 @@
1
+ import { ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class LoaderBackgroundComponent {
4
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: LoaderBackgroundComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: LoaderBackgroundComponent, isStandalone: true, selector: "elder-loader-background", ngImport: i0, template: "<div class=\"loader-background\">\n <div class=\"spinner\">\n <div class=\"bounce1 circle\"></div>\n <div class=\"bounce2 logo\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"var(--md-sys-color-tertiary-fixed)\"\n viewBox=\"0 0 284.34 272.09\"\n >\n <g>\n <path\n d=\"M141.92,11A125,125,0,0,1,247,68.35q4.46-2.76,8.67-5.93a135.38,135.38,0,0,0-227.43,0q4.21,3.17,8.67,5.93A125,125,0,0,1,141.92,11Z\"\n />\n <path\n d=\"M267,136.05a125,125,0,1,1-246-31.53c-2.44-3.48-5.11-7-7.85-10.47a135.11,135.11,0,0,0-6.69,42c0,74.74,60.8,135.54,135.54,135.54s135.55-60.8,135.55-135.54a135.11,135.11,0,0,0-6.69-42c-2.74,3.52-5.41,7-7.85,10.47A124.65,124.65,0,0,1,267,136.05Z\"\n />\n <g id=\"main-logo\">\n <path\n d=\"M151.24,188.12a41.39,41.39,0,0,1-5.06-12.27H138.1A41.13,41.13,0,0,1,133,188.12a37.86,37.86,0,0,1-9.67,10.31l16.83,44.43,20.48-44.6A38,38,0,0,1,151.24,188.12Z\"\n />\n <path\n d=\"M205.38,95.82c-3,.39-6.16.67-9.48,1v14.75H181V98.24c-16.68,2.2-32.74,7.35-36.46,25.82.34,12.92-.48,26.37,2.58,38.89A50.81,50.81,0,0,0,153.34,178a46.35,46.35,0,0,0,11.6,12.45,61.34,61.34,0,0,0,32.73,11.65c25.65,1.59,38.9-16.32,40.73-40.34,1-13.61-.4-27.57,3.28-40.71,7.17-25.61,32.12-42.78,41.25-67.76C263.36,75.89,235.14,91.93,205.38,95.82ZM191.3,184.64a33.51,33.51,0,1,1,33.5-33.51A33.51,33.51,0,0,1,191.3,184.64Z\"\n />\n <path\n d=\"M79,95.82C49.2,91.93,21,75.89,1.4,53.31c9.14,25,34.09,42.15,41.26,67.76,3.68,13.14,2.23,27.1,3.27,40.71,1.84,24,15.09,41.93,40.73,40.34a61.58,61.58,0,0,0,32.45-11.43A46.73,46.73,0,0,0,131,178,50.57,50.57,0,0,0,137.21,163c3.06-12.52,2.24-26,2.58-38.89C134.18,96.2,100.46,98.63,79,95.82ZM93,184.64a33.51,33.51,0,1,1,33.5-33.51A33.5,33.5,0,0,1,93,184.64Z\"\n />\n </g>\n </g>\n </svg>\n </div>\n <div class=\"bounce3 circle\"></div>\n </div>\n</div>\n", styles: [".loader-background{--loader-bg-surface: var(--md-sys-color-surface);--loader-bg-color: var(--md-sys-color-primary);--logo-color: var(--md-sys-color-tertiary-fixed);position:relative;height:100vh;width:100vw;margin:0;padding:0;background:linear-gradient(200deg,var(--loader-bg-surface) 40%,var(--loader-bg-color) 0%)}.spinner{position:absolute;top:50vh;left:45vw;width:200px;text-align:center}.logo{width:50px;height:48px;border-radius:100%;display:inline-block;animation:sk-bouncedelay 1.4s infinite ease-in-out both}.logo svg{fill:var(--logo-color)!important}.circle{border:1.5px solid var(--logo-color);height:25px;border-radius:50%;width:25px;display:inline-block;animation:sk-bouncedelay 1.4s infinite ease-in-out both}.spinner .bounce1{animation-delay:-.32s}.spinner .bounce2{animation-delay:-.16s}@keyframes sk-bouncedelay{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
6
+ }
7
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: LoaderBackgroundComponent, decorators: [{
8
+ type: Component,
9
+ args: [{ selector: 'elder-loader-background', standalone: true, imports: [], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"loader-background\">\n <div class=\"spinner\">\n <div class=\"bounce1 circle\"></div>\n <div class=\"bounce2 logo\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"var(--md-sys-color-tertiary-fixed)\"\n viewBox=\"0 0 284.34 272.09\"\n >\n <g>\n <path\n d=\"M141.92,11A125,125,0,0,1,247,68.35q4.46-2.76,8.67-5.93a135.38,135.38,0,0,0-227.43,0q4.21,3.17,8.67,5.93A125,125,0,0,1,141.92,11Z\"\n />\n <path\n d=\"M267,136.05a125,125,0,1,1-246-31.53c-2.44-3.48-5.11-7-7.85-10.47a135.11,135.11,0,0,0-6.69,42c0,74.74,60.8,135.54,135.54,135.54s135.55-60.8,135.55-135.54a135.11,135.11,0,0,0-6.69-42c-2.74,3.52-5.41,7-7.85,10.47A124.65,124.65,0,0,1,267,136.05Z\"\n />\n <g id=\"main-logo\">\n <path\n d=\"M151.24,188.12a41.39,41.39,0,0,1-5.06-12.27H138.1A41.13,41.13,0,0,1,133,188.12a37.86,37.86,0,0,1-9.67,10.31l16.83,44.43,20.48-44.6A38,38,0,0,1,151.24,188.12Z\"\n />\n <path\n d=\"M205.38,95.82c-3,.39-6.16.67-9.48,1v14.75H181V98.24c-16.68,2.2-32.74,7.35-36.46,25.82.34,12.92-.48,26.37,2.58,38.89A50.81,50.81,0,0,0,153.34,178a46.35,46.35,0,0,0,11.6,12.45,61.34,61.34,0,0,0,32.73,11.65c25.65,1.59,38.9-16.32,40.73-40.34,1-13.61-.4-27.57,3.28-40.71,7.17-25.61,32.12-42.78,41.25-67.76C263.36,75.89,235.14,91.93,205.38,95.82ZM191.3,184.64a33.51,33.51,0,1,1,33.5-33.51A33.51,33.51,0,0,1,191.3,184.64Z\"\n />\n <path\n d=\"M79,95.82C49.2,91.93,21,75.89,1.4,53.31c9.14,25,34.09,42.15,41.26,67.76,3.68,13.14,2.23,27.1,3.27,40.71,1.84,24,15.09,41.93,40.73,40.34a61.58,61.58,0,0,0,32.45-11.43A46.73,46.73,0,0,0,131,178,50.57,50.57,0,0,0,137.21,163c3.06-12.52,2.24-26,2.58-38.89C134.18,96.2,100.46,98.63,79,95.82ZM93,184.64a33.51,33.51,0,1,1,33.5-33.51A33.5,33.5,0,0,1,93,184.64Z\"\n />\n </g>\n </g>\n </svg>\n </div>\n <div class=\"bounce3 circle\"></div>\n </div>\n</div>\n", styles: [".loader-background{--loader-bg-surface: var(--md-sys-color-surface);--loader-bg-color: var(--md-sys-color-primary);--logo-color: var(--md-sys-color-tertiary-fixed);position:relative;height:100vh;width:100vw;margin:0;padding:0;background:linear-gradient(200deg,var(--loader-bg-surface) 40%,var(--loader-bg-color) 0%)}.spinner{position:absolute;top:50vh;left:45vw;width:200px;text-align:center}.logo{width:50px;height:48px;border-radius:100%;display:inline-block;animation:sk-bouncedelay 1.4s infinite ease-in-out both}.logo svg{fill:var(--logo-color)!important}.circle{border:1.5px solid var(--logo-color);height:25px;border-radius:50%;width:25px;display:inline-block;animation:sk-bouncedelay 1.4s infinite ease-in-out both}.spinner .bounce1{animation-delay:-.32s}.spinner .bounce2{animation-delay:-.16s}@keyframes sk-bouncedelay{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}\n"] }]
10
+ }] });
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGVyLWJhY2tncm91bmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9sb2FkZXItYmFja2dyb3VuZC9sb2FkZXItYmFja2dyb3VuZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL2xvYWRlci1iYWNrZ3JvdW5kL2xvYWRlci1iYWNrZ3JvdW5kLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUE7O0FBVWxFLE1BQU0sT0FBTyx5QkFBeUI7OEdBQXpCLHlCQUF5QjtrR0FBekIseUJBQXlCLG1GQ1Z0Qyx3K0RBaUNBOzsyRkR2QmEseUJBQXlCO2tCQVJyQyxTQUFTOytCQUNFLHlCQUF5QixjQUN2QixJQUFJLFdBQ1AsRUFBRSxtQkFHTSx1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VsZGVyLWxvYWRlci1iYWNrZ3JvdW5kJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW10sXG4gIHRlbXBsYXRlVXJsOiAnLi9sb2FkZXItYmFja2dyb3VuZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9sb2FkZXItYmFja2dyb3VuZC5jb21wb25lbnQuc2NzcycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBMb2FkZXJCYWNrZ3JvdW5kQ29tcG9uZW50IHt9XG4iLCI8ZGl2IGNsYXNzPVwibG9hZGVyLWJhY2tncm91bmRcIj5cbiAgPGRpdiBjbGFzcz1cInNwaW5uZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYm91bmNlMSBjaXJjbGVcIj48L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiYm91bmNlMiBsb2dvXCI+XG4gICAgICA8c3ZnXG4gICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICBmaWxsPVwidmFyKC0tbWQtc3lzLWNvbG9yLXRlcnRpYXJ5LWZpeGVkKVwiXG4gICAgICAgIHZpZXdCb3g9XCIwIDAgMjg0LjM0IDI3Mi4wOVwiXG4gICAgICA+XG4gICAgICAgIDxnPlxuICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICBkPVwiTTE0MS45MiwxMUExMjUsMTI1LDAsMCwxLDI0Nyw2OC4zNXE0LjQ2LTIuNzYsOC42Ny01LjkzYTEzNS4zOCwxMzUuMzgsMCwwLDAtMjI3LjQzLDBxNC4yMSwzLjE3LDguNjcsNS45M0ExMjUsMTI1LDAsMCwxLDE0MS45MiwxMVpcIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgIGQ9XCJNMjY3LDEzNi4wNWExMjUsMTI1LDAsMSwxLTI0Ni0zMS41M2MtMi40NC0zLjQ4LTUuMTEtNy03Ljg1LTEwLjQ3YTEzNS4xMSwxMzUuMTEsMCwwLDAtNi42OSw0MmMwLDc0Ljc0LDYwLjgsMTM1LjU0LDEzNS41NCwxMzUuNTRzMTM1LjU1LTYwLjgsMTM1LjU1LTEzNS41NGExMzUuMTEsMTM1LjExLDAsMCwwLTYuNjktNDJjLTIuNzQsMy41Mi01LjQxLDctNy44NSwxMC40N0ExMjQuNjUsMTI0LjY1LDAsMCwxLDI2NywxMzYuMDVaXCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIDxnIGlkPVwibWFpbi1sb2dvXCI+XG4gICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICBkPVwiTTE1MS4yNCwxODguMTJhNDEuMzksNDEuMzksMCwwLDEtNS4wNi0xMi4yN0gxMzguMUE0MS4xMyw0MS4xMywwLDAsMSwxMzMsMTg4LjEyYTM3Ljg2LDM3Ljg2LDAsMCwxLTkuNjcsMTAuMzFsMTYuODMsNDQuNDMsMjAuNDgtNDQuNkEzOCwzOCwwLDAsMSwxNTEuMjQsMTg4LjEyWlwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgZD1cIk0yMDUuMzgsOTUuODJjLTMsLjM5LTYuMTYuNjctOS40OCwxdjE0Ljc1SDE4MVY5OC4yNGMtMTYuNjgsMi4yLTMyLjc0LDcuMzUtMzYuNDYsMjUuODIuMzQsMTIuOTItLjQ4LDI2LjM3LDIuNTgsMzguODlBNTAuODEsNTAuODEsMCwwLDAsMTUzLjM0LDE3OGE0Ni4zNSw0Ni4zNSwwLDAsMCwxMS42LDEyLjQ1LDYxLjM0LDYxLjM0LDAsMCwwLDMyLjczLDExLjY1YzI1LjY1LDEuNTksMzguOS0xNi4zMiw0MC43My00MC4zNCwxLTEzLjYxLS40LTI3LjU3LDMuMjgtNDAuNzEsNy4xNy0yNS42MSwzMi4xMi00Mi43OCw0MS4yNS02Ny43NkMyNjMuMzYsNzUuODksMjM1LjE0LDkxLjkzLDIwNS4zOCw5NS44MlpNMTkxLjMsMTg0LjY0YTMzLjUxLDMzLjUxLDAsMSwxLDMzLjUtMzMuNTFBMzMuNTEsMzMuNTEsMCwwLDEsMTkxLjMsMTg0LjY0WlwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgZD1cIk03OSw5NS44MkM0OS4yLDkxLjkzLDIxLDc1Ljg5LDEuNCw1My4zMWM5LjE0LDI1LDM0LjA5LDQyLjE1LDQxLjI2LDY3Ljc2LDMuNjgsMTMuMTQsMi4yMywyNy4xLDMuMjcsNDAuNzEsMS44NCwyNCwxNS4wOSw0MS45Myw0MC43Myw0MC4zNGE2MS41OCw2MS41OCwwLDAsMCwzMi40NS0xMS40M0E0Ni43Myw0Ni43MywwLDAsMCwxMzEsMTc4LDUwLjU3LDUwLjU3LDAsMCwwLDEzNy4yMSwxNjNjMy4wNi0xMi41MiwyLjI0LTI2LDIuNTgtMzguODlDMTM0LjE4LDk2LjIsMTAwLjQ2LDk4LjYzLDc5LDk1LjgyWk05MywxODQuNjRhMzMuNTEsMzMuNTEsMCwxLDEsMzMuNS0zMy41MUEzMy41LDMzLjUsMCwwLDEsOTMsMTg0LjY0WlwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvZz5cbiAgICAgICAgPC9nPlxuICAgICAgPC9zdmc+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImJvdW5jZTMgY2lyY2xlXCI+PC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -40,4 +40,5 @@ export * from './auditing/elder-audit.module';
40
40
  export * from './tabs/elder-tab.module';
41
41
  export * from './badge/elder-badge.module';
42
42
  export * from './page/public_api';
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG9CQUFvQixDQUFBO0FBQ2xDLGNBQWMsNENBQTRDLENBQUE7QUFDMUQsY0FBYywwREFBMEQsQ0FBQTtBQUN4RSxjQUFjLDhCQUE4QixDQUFBO0FBQzVDLGNBQWMsNkJBQTZCLENBQUE7QUFDM0MsY0FBYywyQkFBMkIsQ0FBQTtBQUN6QyxjQUFjLDhDQUE4QyxDQUFBO0FBQzVELGNBQWMsd0JBQXdCLENBQUE7QUFDdEMsY0FBYyx5QkFBeUIsQ0FBQTtBQUN2QyxjQUFjLDRCQUE0QixDQUFBO0FBQzFDLGNBQWMsbUJBQW1CLENBQUE7QUFDakMsY0FBYyxtQkFBbUIsQ0FBQTtBQUNqQyxjQUFjLDRCQUE0QixDQUFBO0FBQzFDLGNBQWMsa0RBQWtELENBQUE7QUFDaEUsY0FBYyw0Q0FBNEMsQ0FBQTtBQUMxRCxjQUFjLGlDQUFpQyxDQUFBO0FBQy9DLGNBQWMsMkJBQTJCLENBQUE7QUFDekMsY0FBYywrQ0FBK0MsQ0FBQTtBQUM3RCxjQUFjLG9DQUFvQyxDQUFBO0FBQ2xELGNBQWMsb0JBQW9CLENBQUE7QUFDbEMsY0FBYywyQkFBMkIsQ0FBQTtBQUN6QyxjQUFjLCtCQUErQixDQUFBO0FBQzdDLGNBQWMsNENBQTRDLENBQUE7QUFDMUQsY0FBYyw2QkFBNkIsQ0FBQTtBQUMzQyxjQUFjLHFCQUFxQixDQUFBO0FBQ25DLGNBQWMsdUJBQXVCLENBQUE7QUFDckMsY0FBYyx1QkFBdUIsQ0FBQTtBQUNyQyxjQUFjLCtCQUErQixDQUFBO0FBQzdDLGNBQWMsc0NBQXNDLENBQUE7QUFDcEQsY0FBYyxnQ0FBZ0MsQ0FBQTtBQUM5QyxjQUFjLDBDQUEwQyxDQUFBO0FBQ3hELGNBQWMsMENBQTBDLENBQUE7QUFDeEQsY0FBYyxvQkFBb0IsQ0FBQTtBQUNsQyxjQUFjLHlCQUF5QixDQUFBO0FBQ3ZDLGNBQWMsd0JBQXdCLENBQUE7QUFDdEMsY0FBYyxvQkFBb0IsQ0FBQTtBQUNsQyxjQUFjLCtCQUErQixDQUFBO0FBQzdDLGNBQWMsNkJBQTZCLENBQUE7QUFDM0MsY0FBYywrQkFBK0IsQ0FBQTtBQUM3QyxjQUFjLHlCQUF5QixDQUFBO0FBQ3ZDLGNBQWMsNEJBQTRCLENBQUE7QUFDMUMsY0FBYyxtQkFBbUIsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vdGhlbWUvcHVibGljX2FwaSdcbmV4cG9ydCAqIGZyb20gJy4vYWNjZXNzLWRlbmllZC9lbGRlci1hY2Nlc3MtZGVuaWVkLm1vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vZXhwYW5kLXRvZ2dsZS1idXR0b24vZWxkZXItZXhwYW5kLXRvZ2dsZS1idXR0b24ubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi9sYWJlbHMvZWxkZXItbGFiZWxzLm1vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vcGFuZWxzL2VsZGVyLXBhbmVsLm1vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vZmlsZXMvZWxkZXItZmlsZS5tb2R1bGUnXG5leHBvcnQgKiBmcm9tICcuL2NhcmQtb3JnYW5pemVyL2VsZGVyLWNhcmQtb3JnYW5pemVyLm1vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vZGF0YS12aWV3L3B1YmxpY19hcGknXG5leHBvcnQgKiBmcm9tICcuL25hdmlnYXRpb24vcHVibGljX2FwaSdcbmV4cG9ydCAqIGZyb20gJy4vc2hlbGwvZWxkZXItc2hlbGwubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi90aW1lL3B1YmxpY19hcGknXG5leHBvcnQgKiBmcm9tICcuL2kxOG4vcHVibGljX2FwaSdcbmV4cG9ydCAqIGZyb20gJy4vY2hpcHMvZWxkZXItY2hpcHMubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi9zZWxlY3QtY2hpcC1saXN0L2VsZGVyLWNoaXAtbGlzdC1zZWxlY3QubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi9kYXRhLXRyYW5zZmVyL2VsZGVyLWRhdGEtdHJhbnNmZXIubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi9vdmVybGF5cy9lbGRlci1vdmVybGF5Lm1vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vY29ubmVjdGl2aXR5L3B1YmxpY19hcGknXG5leHBvcnQgKiBmcm9tICcuL2luZmluaXRlc2Nyb2xsL2VsZGVyLWluZmluaXRlLXNjcm9sbC5tb2R1bGUnXG5leHBvcnQgKiBmcm9tICcuL3Njcm9sbGJhci9lbGRlci1zY3JvbGxiYXIubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi9mb3Jtcy9wdWJsaWNfYXBpJ1xuZXhwb3J0ICogZnJvbSAnLi9odHRwLXN1cHBvcnQvcHVibGljX2FwaSdcbmV4cG9ydCAqIGZyb20gJy4vZGlhbG9ncy9lbGRlci1kaWFsb2cubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi9nbG9iYWwtc2VhcmNoL2VsZGVyLWdsb2JhbC1zZWFyY2gubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi90b2FzdHMvZWxkZXItdG9hc3QubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi9zZWxlY3QvcHVibGljX2FwaSdcbmV4cG9ydCAqIGZyb20gJy4vbWVhc3VyZXMvcHVibGljX2FwaSdcbmV4cG9ydCAqIGZyb20gJy4vY3VycmVuY3kvcHVibGljX2FwaSdcbmV4cG9ydCAqIGZyb20gJy4vaGVhZGVycy9lbGRlci1oZWFkZXIubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi9jYXJkcy9lbGRlci1jYXJkL2VsZGVyLWNhcmQubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi92aWV3ZXJzL2VsZGVyLXZpZXdlcnMubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi91cmwtZnJhZ21lbnQvZWxkZXItdXJsLWZyYWdtZW50Lm1vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vYnV0dG9uLWdyb3VwL2VsZGVyLWJ1dHRvbi1ncm91cC5tb2R1bGUnXG5leHBvcnQgKiBmcm9tICcuL2dyYXBoL3B1YmxpY19hcGknXG5leHBvcnQgKiBmcm9tICcuL2NvbnRhaW5lcnMvcHVibGljX2FwaSdcbmV4cG9ydCAqIGZyb20gJy4vY3N2L2VsZGVyLWNzdi5tb2R1bGUnXG5leHBvcnQgKiBmcm9tICcuL2lucHV0L3B1YmxpY19hcGknXG5leHBvcnQgKiBmcm9tICcuL2lmcmFtZXMvZWxkZXItaWZyYW1lLm1vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vZXJyb3JzL2VsZGVyLWVycm9yLm1vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vYXVkaXRpbmcvZWxkZXItYXVkaXQubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi90YWJzL2VsZGVyLXRhYi5tb2R1bGUnXG5leHBvcnQgKiBmcm9tICcuL2JhZGdlL2VsZGVyLWJhZGdlLm1vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vcGFnZS9wdWJsaWNfYXBpJ1xuIl19
43
+ export { LoaderBackgroundComponent } from './loader-background/loader-background.component';
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG9CQUFvQixDQUFBO0FBQ2xDLGNBQWMsNENBQTRDLENBQUE7QUFDMUQsY0FBYywwREFBMEQsQ0FBQTtBQUN4RSxjQUFjLDhCQUE4QixDQUFBO0FBQzVDLGNBQWMsNkJBQTZCLENBQUE7QUFDM0MsY0FBYywyQkFBMkIsQ0FBQTtBQUN6QyxjQUFjLDhDQUE4QyxDQUFBO0FBQzVELGNBQWMsd0JBQXdCLENBQUE7QUFDdEMsY0FBYyx5QkFBeUIsQ0FBQTtBQUN2QyxjQUFjLDRCQUE0QixDQUFBO0FBQzFDLGNBQWMsbUJBQW1CLENBQUE7QUFDakMsY0FBYyxtQkFBbUIsQ0FBQTtBQUNqQyxjQUFjLDRCQUE0QixDQUFBO0FBQzFDLGNBQWMsa0RBQWtELENBQUE7QUFDaEUsY0FBYyw0Q0FBNEMsQ0FBQTtBQUMxRCxjQUFjLGlDQUFpQyxDQUFBO0FBQy9DLGNBQWMsMkJBQTJCLENBQUE7QUFDekMsY0FBYywrQ0FBK0MsQ0FBQTtBQUM3RCxjQUFjLG9DQUFvQyxDQUFBO0FBQ2xELGNBQWMsb0JBQW9CLENBQUE7QUFDbEMsY0FBYywyQkFBMkIsQ0FBQTtBQUN6QyxjQUFjLCtCQUErQixDQUFBO0FBQzdDLGNBQWMsNENBQTRDLENBQUE7QUFDMUQsY0FBYyw2QkFBNkIsQ0FBQTtBQUMzQyxjQUFjLHFCQUFxQixDQUFBO0FBQ25DLGNBQWMsdUJBQXVCLENBQUE7QUFDckMsY0FBYyx1QkFBdUIsQ0FBQTtBQUNyQyxjQUFjLCtCQUErQixDQUFBO0FBQzdDLGNBQWMsc0NBQXNDLENBQUE7QUFDcEQsY0FBYyxnQ0FBZ0MsQ0FBQTtBQUM5QyxjQUFjLDBDQUEwQyxDQUFBO0FBQ3hELGNBQWMsMENBQTBDLENBQUE7QUFDeEQsY0FBYyxvQkFBb0IsQ0FBQTtBQUNsQyxjQUFjLHlCQUF5QixDQUFBO0FBQ3ZDLGNBQWMsd0JBQXdCLENBQUE7QUFDdEMsY0FBYyxvQkFBb0IsQ0FBQTtBQUNsQyxjQUFjLCtCQUErQixDQUFBO0FBQzdDLGNBQWMsNkJBQTZCLENBQUE7QUFDM0MsY0FBYywrQkFBK0IsQ0FBQTtBQUM3QyxjQUFjLHlCQUF5QixDQUFBO0FBQ3ZDLGNBQWMsNEJBQTRCLENBQUE7QUFDMUMsY0FBYyxtQkFBbUIsQ0FBQTtBQUNqQyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vdGhlbWUvcHVibGljX2FwaSdcbmV4cG9ydCAqIGZyb20gJy4vYWNjZXNzLWRlbmllZC9lbGRlci1hY2Nlc3MtZGVuaWVkLm1vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vZXhwYW5kLXRvZ2dsZS1idXR0b24vZWxkZXItZXhwYW5kLXRvZ2dsZS1idXR0b24ubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi9sYWJlbHMvZWxkZXItbGFiZWxzLm1vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vcGFuZWxzL2VsZGVyLXBhbmVsLm1vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vZmlsZXMvZWxkZXItZmlsZS5tb2R1bGUnXG5leHBvcnQgKiBmcm9tICcuL2NhcmQtb3JnYW5pemVyL2VsZGVyLWNhcmQtb3JnYW5pemVyLm1vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vZGF0YS12aWV3L3B1YmxpY19hcGknXG5leHBvcnQgKiBmcm9tICcuL25hdmlnYXRpb24vcHVibGljX2FwaSdcbmV4cG9ydCAqIGZyb20gJy4vc2hlbGwvZWxkZXItc2hlbGwubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi90aW1lL3B1YmxpY19hcGknXG5leHBvcnQgKiBmcm9tICcuL2kxOG4vcHVibGljX2FwaSdcbmV4cG9ydCAqIGZyb20gJy4vY2hpcHMvZWxkZXItY2hpcHMubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi9zZWxlY3QtY2hpcC1saXN0L2VsZGVyLWNoaXAtbGlzdC1zZWxlY3QubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi9kYXRhLXRyYW5zZmVyL2VsZGVyLWRhdGEtdHJhbnNmZXIubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi9vdmVybGF5cy9lbGRlci1vdmVybGF5Lm1vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vY29ubmVjdGl2aXR5L3B1YmxpY19hcGknXG5leHBvcnQgKiBmcm9tICcuL2luZmluaXRlc2Nyb2xsL2VsZGVyLWluZmluaXRlLXNjcm9sbC5tb2R1bGUnXG5leHBvcnQgKiBmcm9tICcuL3Njcm9sbGJhci9lbGRlci1zY3JvbGxiYXIubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi9mb3Jtcy9wdWJsaWNfYXBpJ1xuZXhwb3J0ICogZnJvbSAnLi9odHRwLXN1cHBvcnQvcHVibGljX2FwaSdcbmV4cG9ydCAqIGZyb20gJy4vZGlhbG9ncy9lbGRlci1kaWFsb2cubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi9nbG9iYWwtc2VhcmNoL2VsZGVyLWdsb2JhbC1zZWFyY2gubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi90b2FzdHMvZWxkZXItdG9hc3QubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi9zZWxlY3QvcHVibGljX2FwaSdcbmV4cG9ydCAqIGZyb20gJy4vbWVhc3VyZXMvcHVibGljX2FwaSdcbmV4cG9ydCAqIGZyb20gJy4vY3VycmVuY3kvcHVibGljX2FwaSdcbmV4cG9ydCAqIGZyb20gJy4vaGVhZGVycy9lbGRlci1oZWFkZXIubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi9jYXJkcy9lbGRlci1jYXJkL2VsZGVyLWNhcmQubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi92aWV3ZXJzL2VsZGVyLXZpZXdlcnMubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi91cmwtZnJhZ21lbnQvZWxkZXItdXJsLWZyYWdtZW50Lm1vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vYnV0dG9uLWdyb3VwL2VsZGVyLWJ1dHRvbi1ncm91cC5tb2R1bGUnXG5leHBvcnQgKiBmcm9tICcuL2dyYXBoL3B1YmxpY19hcGknXG5leHBvcnQgKiBmcm9tICcuL2NvbnRhaW5lcnMvcHVibGljX2FwaSdcbmV4cG9ydCAqIGZyb20gJy4vY3N2L2VsZGVyLWNzdi5tb2R1bGUnXG5leHBvcnQgKiBmcm9tICcuL2lucHV0L3B1YmxpY19hcGknXG5leHBvcnQgKiBmcm9tICcuL2lmcmFtZXMvZWxkZXItaWZyYW1lLm1vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vZXJyb3JzL2VsZGVyLWVycm9yLm1vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vYXVkaXRpbmcvZWxkZXItYXVkaXQubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi90YWJzL2VsZGVyLXRhYi5tb2R1bGUnXG5leHBvcnQgKiBmcm9tICcuL2JhZGdlL2VsZGVyLWJhZGdlLm1vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vcGFnZS9wdWJsaWNfYXBpJ1xuZXhwb3J0IHsgTG9hZGVyQmFja2dyb3VuZENvbXBvbmVudCB9IGZyb20gJy4vbG9hZGVyLWJhY2tncm91bmQvbG9hZGVyLWJhY2tncm91bmQuY29tcG9uZW50J1xuIl19
@@ -68,13 +68,13 @@ export class StandardToastComponent {
68
68
  }
69
69
  }
70
70
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: StandardToastComponent, deps: [{ token: i1.MatSnackBarRef }, { token: MAT_SNACK_BAR_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
71
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.5", type: StandardToastComponent, isStandalone: true, selector: "elder-standard-toast", ngImport: i0, template: "<div class=\"layout-col place-start-stretch gap-xs mat-mdc-snack-bar-container\">\n <!-- Icon and Status -->\n <div class=\"layout-row place-start-center gap-sm\">\n <mat-icon class=\"noselect\">{{ icon(toast.type) }}</mat-icon>\n <span\n class=\"toast-title mat-subtitle-2 noselect\"\n [class.elder-warn-text]=\"toast.type === ToastType.Error\"\n >{{ toast.status }}</span\n >\n </div>\n\n <span></span>\n\n <!-- Toast Message -->\n @if (toast.message) {\n <span\n class=\"mat-body noselect\"\n matSnackBarLabel\n [class.elder-warn-text]=\"toast.type === ToastType.Error\"\n [class.elder-accent-text]=\"toast.type === ToastType.Warning\"\n >{{ toast.message }}</span\n >\n }\n\n <span></span>\n\n <!-- Toast Detail -->\n @if (toast.detail) {\n <span\n class=\"mat-small noselect\"\n matSnackBarLabel\n [class.elder-warn-text]=\"toast.type === ToastType.Error\"\n [class.elder-accent-text]=\"toast.type === ToastType.Warning\"\n >{{ trimDetailText(toast.detail, 200) }}</span\n >\n }\n\n <!-- Actions -->\n <div class=\"layout-row place-end-center\" matSnackBarActions>\n <button\n mat-button\n matSnackBarAction\n type=\"button\"\n [color]=\"iconColor(toast.type)\"\n (click)=\"close()\"\n >\n Ok\n </button>\n </div>\n</div>\n", styles: [".toast-title{font-size:16px}\n"], dependencies: [{ kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: MatSnackBarLabel, selector: "[matSnackBarLabel]" }, { kind: "directive", type: MatSnackBarActions, selector: "[matSnackBarActions]" }, { kind: "component", type: MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: MatSnackBarAction, selector: "[matSnackBarAction]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
71
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.5", type: StandardToastComponent, isStandalone: true, selector: "elder-standard-toast", ngImport: i0, template: "<div class=\"layout-col place-start-stretch gap-xs mat-mdc-snack-bar-container elder-toast\" \n [class.elder-toast-type-warn]=\"toast.type === ToastType.Warning\"\n [class.elder-toast-type-error]=\"toast.type === ToastType.Error\"\n >\n <!-- Icon and Status -->\n <div class=\"layout-row place-start-center gap-sm\">\n <mat-icon class=\"noselect\">{{ icon(toast.type) }}</mat-icon>\n <span\n class=\"toast-title mat-subtitle-2 noselect\"\n >{{ toast.status }}</span\n >\n </div>\n\n <span></span>\n\n <!-- Toast Message -->\n @if (toast.message) {\n <span\n class=\"mat-body noselect\"\n matSnackBarLabel\n >{{ toast.message }}</span\n >\n }\n\n <span></span>\n\n <!-- Toast Detail -->\n @if (toast.detail) {\n <span\n class=\"mat-small noselect\"\n matSnackBarLabel\n >{{ trimDetailText(toast.detail, 200) }}</span\n >\n }\n\n <!-- Actions -->\n <div class=\"layout-row place-end-center\" matSnackBarActions>\n <button\n mat-button\n matSnackBarAction\n type=\"button\"\n [color]=\"iconColor(toast.type)\"\n (click)=\"close()\"\n >\n Ok\n </button>\n </div>\n</div>\n", styles: [".elder-toast{--mat-snack-bar-button-color: var(--md-sys-color-on-primary-container)}.elder-toast button{background-color:var(--md-sys-color-primary-container)}.elder-toast .toast-title,.elder-toast .mat-icon{color:var(--md-sys-color-primary-fixed)}.elder-toast.elder-toast-type-warn button{background-color:var(--md-sys-color-tertiary-container)}.elder-toast.elder-toast-type-warn .toast-title,.elder-toast.elder-toast-type-warn .mat-icon{color:var(--md-sys-color-tertiary-fixed)}.elder-toast.elder-toast-type-error button{background-color:var(--md-sys-color-error-container)}.elder-toast.elder-toast-type-error .toast-title,.elder-toast.elder-toast-type-error .mat-icon{color:var(--md-sys-color-error)}\n"], dependencies: [{ kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: MatSnackBarLabel, selector: "[matSnackBarLabel]" }, { kind: "directive", type: MatSnackBarActions, selector: "[matSnackBarActions]" }, { kind: "component", type: MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: MatSnackBarAction, selector: "[matSnackBarAction]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
72
72
  }
73
73
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: StandardToastComponent, decorators: [{
74
74
  type: Component,
75
- args: [{ selector: 'elder-standard-toast', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [MatIcon, MatSnackBarLabel, MatSnackBarActions, MatButton, MatSnackBarAction], template: "<div class=\"layout-col place-start-stretch gap-xs mat-mdc-snack-bar-container\">\n <!-- Icon and Status -->\n <div class=\"layout-row place-start-center gap-sm\">\n <mat-icon class=\"noselect\">{{ icon(toast.type) }}</mat-icon>\n <span\n class=\"toast-title mat-subtitle-2 noselect\"\n [class.elder-warn-text]=\"toast.type === ToastType.Error\"\n >{{ toast.status }}</span\n >\n </div>\n\n <span></span>\n\n <!-- Toast Message -->\n @if (toast.message) {\n <span\n class=\"mat-body noselect\"\n matSnackBarLabel\n [class.elder-warn-text]=\"toast.type === ToastType.Error\"\n [class.elder-accent-text]=\"toast.type === ToastType.Warning\"\n >{{ toast.message }}</span\n >\n }\n\n <span></span>\n\n <!-- Toast Detail -->\n @if (toast.detail) {\n <span\n class=\"mat-small noselect\"\n matSnackBarLabel\n [class.elder-warn-text]=\"toast.type === ToastType.Error\"\n [class.elder-accent-text]=\"toast.type === ToastType.Warning\"\n >{{ trimDetailText(toast.detail, 200) }}</span\n >\n }\n\n <!-- Actions -->\n <div class=\"layout-row place-end-center\" matSnackBarActions>\n <button\n mat-button\n matSnackBarAction\n type=\"button\"\n [color]=\"iconColor(toast.type)\"\n (click)=\"close()\"\n >\n Ok\n </button>\n </div>\n</div>\n", styles: [".toast-title{font-size:16px}\n"] }]
75
+ args: [{ selector: 'elder-standard-toast', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [MatIcon, MatSnackBarLabel, MatSnackBarActions, MatButton, MatSnackBarAction], template: "<div class=\"layout-col place-start-stretch gap-xs mat-mdc-snack-bar-container elder-toast\" \n [class.elder-toast-type-warn]=\"toast.type === ToastType.Warning\"\n [class.elder-toast-type-error]=\"toast.type === ToastType.Error\"\n >\n <!-- Icon and Status -->\n <div class=\"layout-row place-start-center gap-sm\">\n <mat-icon class=\"noselect\">{{ icon(toast.type) }}</mat-icon>\n <span\n class=\"toast-title mat-subtitle-2 noselect\"\n >{{ toast.status }}</span\n >\n </div>\n\n <span></span>\n\n <!-- Toast Message -->\n @if (toast.message) {\n <span\n class=\"mat-body noselect\"\n matSnackBarLabel\n >{{ toast.message }}</span\n >\n }\n\n <span></span>\n\n <!-- Toast Detail -->\n @if (toast.detail) {\n <span\n class=\"mat-small noselect\"\n matSnackBarLabel\n >{{ trimDetailText(toast.detail, 200) }}</span\n >\n }\n\n <!-- Actions -->\n <div class=\"layout-row place-end-center\" matSnackBarActions>\n <button\n mat-button\n matSnackBarAction\n type=\"button\"\n [color]=\"iconColor(toast.type)\"\n (click)=\"close()\"\n >\n Ok\n </button>\n </div>\n</div>\n", styles: [".elder-toast{--mat-snack-bar-button-color: var(--md-sys-color-on-primary-container)}.elder-toast button{background-color:var(--md-sys-color-primary-container)}.elder-toast .toast-title,.elder-toast .mat-icon{color:var(--md-sys-color-primary-fixed)}.elder-toast.elder-toast-type-warn button{background-color:var(--md-sys-color-tertiary-container)}.elder-toast.elder-toast-type-warn .toast-title,.elder-toast.elder-toast-type-warn .mat-icon{color:var(--md-sys-color-tertiary-fixed)}.elder-toast.elder-toast-type-error button{background-color:var(--md-sys-color-error-container)}.elder-toast.elder-toast-type-error .toast-title,.elder-toast.elder-toast-type-error .mat-icon{color:var(--md-sys-color-error)}\n"] }]
76
76
  }], ctorParameters: () => [{ type: i1.MatSnackBarRef }, { type: undefined, decorators: [{
77
77
  type: Inject,
78
78
  args: [MAT_SNACK_BAR_DATA]
79
79
  }] }] });
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhbmRhcmQtdG9hc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy90b2FzdHMvc3RhbmRhcmQtdG9hc3Qvc3RhbmRhcmQtdG9hc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy90b2FzdHMvc3RhbmRhcmQtdG9hc3Qvc3RhbmRhcmQtdG9hc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSx1QkFBdUIsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDbEYsT0FBTyxFQUNMLGtCQUFrQixFQUVsQixnQkFBZ0IsRUFDaEIsa0JBQWtCLEVBQ2xCLGlCQUFpQixHQUNsQixNQUFNLDZCQUE2QixDQUFBO0FBRXBDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFFekMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFBO0FBQ3BELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTs7O0FBVWhELE1BQU0sT0FBTyxzQkFBc0I7SUFTakM7Ozs7Z0ZBSTRFO0lBRTVFLFlBQ2tCLFdBQW1ELEVBQ3ZCLEtBQVk7UUFEeEMsZ0JBQVcsR0FBWCxXQUFXLENBQXdDO1FBQ3ZCLFVBQUssR0FBTCxLQUFLLENBQU87UUFoQjFEOzs7O29GQUk0RTtRQUU1RCxjQUFTLEdBQUcsU0FBUyxDQUFBO0lBV2xDLENBQUM7SUFFSjs7OztnRkFJNEU7SUFFNUUsUUFBUSxLQUFVLENBQUM7SUFFbkI7Ozs7Z0ZBSTRFO0lBRXJFLEtBQUs7UUFDVixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFBO0lBQzVCLENBQUM7SUFFTSxTQUFTLENBQUMsSUFBZTtRQUM5QixRQUFRLElBQUksRUFBRSxDQUFDO1lBQ2IsS0FBSyxTQUFTLENBQUMsT0FBTztnQkFDcEIsT0FBTyxTQUFTLENBQUE7WUFDbEIsS0FBSyxTQUFTLENBQUMsT0FBTztnQkFDcEIsT0FBTyxRQUFRLENBQUE7WUFDakIsS0FBSyxTQUFTLENBQUMsS0FBSztnQkFDbEIsT0FBTyxNQUFNLENBQUE7WUFDZjtnQkFDRSxPQUFPLFNBQVMsQ0FBQTtRQUNwQixDQUFDO0lBQ0gsQ0FBQztJQUVNLElBQUksQ0FBQyxJQUFlO1FBQ3pCLFFBQVEsSUFBSSxFQUFFLENBQUM7WUFDYixLQUFLLFNBQVMsQ0FBQyxPQUFPO2dCQUNwQixPQUFPLE1BQU0sQ0FBQTtZQUNmLEtBQUssU0FBUyxDQUFDLE9BQU87Z0JBQ3BCLE9BQU8sU0FBUyxDQUFBO1lBQ2xCLEtBQUssU0FBUyxDQUFDLEtBQUs7Z0JBQ2xCLE9BQU8sT0FBTyxDQUFBO1lBQ2hCO2dCQUNFLE9BQU8sRUFBRSxDQUFBO1FBQ2IsQ0FBQztJQUNILENBQUM7SUFFTSxjQUFjLENBQUMsSUFBWSxFQUFFLE1BQWM7UUFDaEQsSUFBSSxJQUFJLEVBQUUsTUFBTSxHQUFHLE1BQU0sRUFBRSxDQUFDO1lBQzFCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFBO1FBQzFDLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxJQUFJLENBQUE7UUFDYixDQUFDO0lBQ0gsQ0FBQzs4R0F0RVUsc0JBQXNCLGdEQWlCdkIsa0JBQWtCO2tHQWpCakIsc0JBQXNCLGdGQ3RCbkMseTFDQWtEQSx3RkQ5QlksT0FBTywySUFBRSxnQkFBZ0IsK0RBQUUsa0JBQWtCLGlFQUFFLFNBQVMsaUxBQUUsaUJBQWlCOzsyRkFFMUUsc0JBQXNCO2tCQVJsQyxTQUFTOytCQUNFLHNCQUFzQixtQkFHZix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUCxDQUFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLENBQUM7OzBCQW1CbkYsTUFBTTsyQkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQge1xuICBNQVRfU05BQ0tfQkFSX0RBVEEsXG4gIE1hdFNuYWNrQmFyUmVmLFxuICBNYXRTbmFja0JhckxhYmVsLFxuICBNYXRTbmFja0JhckFjdGlvbnMsXG4gIE1hdFNuYWNrQmFyQWN0aW9uLFxufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXInXG5pbXBvcnQgeyBUb2FzdCB9IGZyb20gJy4uL3RvYXN0J1xuaW1wb3J0IHsgVG9hc3RUeXBlIH0gZnJvbSAnLi4vdG9hc3QtdHlwZSdcbmltcG9ydCB7IFRoZW1lUGFsZXR0ZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnXG5pbXBvcnQgeyBNYXRCdXR0b24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nXG5pbXBvcnQgeyBNYXRJY29uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbidcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZWxkZXItc3RhbmRhcmQtdG9hc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vc3RhbmRhcmQtdG9hc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zdGFuZGFyZC10b2FzdC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW01hdEljb24sIE1hdFNuYWNrQmFyTGFiZWwsIE1hdFNuYWNrQmFyQWN0aW9ucywgTWF0QnV0dG9uLCBNYXRTbmFja0JhckFjdGlvbl0sXG59KVxuZXhwb3J0IGNsYXNzIFN0YW5kYXJkVG9hc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgcmVhZG9ubHkgVG9hc3RUeXBlID0gVG9hc3RUeXBlXG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IHNuYWNrQmFyUmVmOiBNYXRTbmFja0JhclJlZjxTdGFuZGFyZFRvYXN0Q29tcG9uZW50PixcbiAgICBASW5qZWN0KE1BVF9TTkFDS19CQVJfREFUQSkgcHVibGljIHJlYWRvbmx5IHRvYXN0OiBUb2FzdFxuICApIHt9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIExpZmUgQ3ljbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgbmdPbkluaXQoKTogdm9pZCB7fVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBjbG9zZSgpOiB2b2lkIHtcbiAgICB0aGlzLnNuYWNrQmFyUmVmLmRpc21pc3MoKVxuICB9XG5cbiAgcHVibGljIGljb25Db2xvcih0eXBlOiBUb2FzdFR5cGUpOiBUaGVtZVBhbGV0dGUge1xuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgY2FzZSBUb2FzdFR5cGUuU3VjY2VzczpcbiAgICAgICAgcmV0dXJuICdwcmltYXJ5J1xuICAgICAgY2FzZSBUb2FzdFR5cGUuV2FybmluZzpcbiAgICAgICAgcmV0dXJuICdhY2NlbnQnXG4gICAgICBjYXNlIFRvYXN0VHlwZS5FcnJvcjpcbiAgICAgICAgcmV0dXJuICd3YXJuJ1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBpY29uKHR5cGU6IFRvYXN0VHlwZSk6IHN0cmluZyB7XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlIFRvYXN0VHlwZS5TdWNjZXNzOlxuICAgICAgICByZXR1cm4gJ2luZm8nXG4gICAgICBjYXNlIFRvYXN0VHlwZS5XYXJuaW5nOlxuICAgICAgICByZXR1cm4gJ3dhcm5pbmcnXG4gICAgICBjYXNlIFRvYXN0VHlwZS5FcnJvcjpcbiAgICAgICAgcmV0dXJuICdlcnJvcidcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAnJ1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyB0cmltRGV0YWlsVGV4dCh0ZXh0OiBzdHJpbmcsIGxlbmd0aDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICBpZiAodGV4dD8ubGVuZ3RoID4gbGVuZ3RoKSB7XG4gICAgICByZXR1cm4gdGV4dC5zdWJzdHJpbmcoMCwgbGVuZ3RoKSArICcuLi4nXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0ZXh0XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibGF5b3V0LWNvbCBwbGFjZS1zdGFydC1zdHJldGNoIGdhcC14cyBtYXQtbWRjLXNuYWNrLWJhci1jb250YWluZXJcIj5cbiAgPCEtLSBJY29uIGFuZCBTdGF0dXMgLS0+XG4gIDxkaXYgY2xhc3M9XCJsYXlvdXQtcm93IHBsYWNlLXN0YXJ0LWNlbnRlciBnYXAtc21cIj5cbiAgICA8bWF0LWljb24gY2xhc3M9XCJub3NlbGVjdFwiPnt7IGljb24odG9hc3QudHlwZSkgfX08L21hdC1pY29uPlxuICAgIDxzcGFuXG4gICAgICBjbGFzcz1cInRvYXN0LXRpdGxlIG1hdC1zdWJ0aXRsZS0yIG5vc2VsZWN0XCJcbiAgICAgIFtjbGFzcy5lbGRlci13YXJuLXRleHRdPVwidG9hc3QudHlwZSA9PT0gVG9hc3RUeXBlLkVycm9yXCJcbiAgICAgID57eyB0b2FzdC5zdGF0dXMgfX08L3NwYW5cbiAgICA+XG4gIDwvZGl2PlxuXG4gIDxzcGFuPjwvc3Bhbj5cblxuICA8IS0tIFRvYXN0IE1lc3NhZ2UgLS0+XG4gIEBpZiAodG9hc3QubWVzc2FnZSkge1xuICAgIDxzcGFuXG4gICAgICBjbGFzcz1cIm1hdC1ib2R5IG5vc2VsZWN0XCJcbiAgICAgIG1hdFNuYWNrQmFyTGFiZWxcbiAgICAgIFtjbGFzcy5lbGRlci13YXJuLXRleHRdPVwidG9hc3QudHlwZSA9PT0gVG9hc3RUeXBlLkVycm9yXCJcbiAgICAgIFtjbGFzcy5lbGRlci1hY2NlbnQtdGV4dF09XCJ0b2FzdC50eXBlID09PSBUb2FzdFR5cGUuV2FybmluZ1wiXG4gICAgICA+e3sgdG9hc3QubWVzc2FnZSB9fTwvc3BhblxuICAgID5cbiAgfVxuXG4gIDxzcGFuPjwvc3Bhbj5cblxuICA8IS0tIFRvYXN0IERldGFpbCAtLT5cbiAgQGlmICh0b2FzdC5kZXRhaWwpIHtcbiAgICA8c3BhblxuICAgICAgY2xhc3M9XCJtYXQtc21hbGwgbm9zZWxlY3RcIlxuICAgICAgbWF0U25hY2tCYXJMYWJlbFxuICAgICAgW2NsYXNzLmVsZGVyLXdhcm4tdGV4dF09XCJ0b2FzdC50eXBlID09PSBUb2FzdFR5cGUuRXJyb3JcIlxuICAgICAgW2NsYXNzLmVsZGVyLWFjY2VudC10ZXh0XT1cInRvYXN0LnR5cGUgPT09IFRvYXN0VHlwZS5XYXJuaW5nXCJcbiAgICAgID57eyB0cmltRGV0YWlsVGV4dCh0b2FzdC5kZXRhaWwsIDIwMCkgfX08L3NwYW5cbiAgICA+XG4gIH1cblxuICA8IS0tIEFjdGlvbnMgLS0+XG4gIDxkaXYgY2xhc3M9XCJsYXlvdXQtcm93IHBsYWNlLWVuZC1jZW50ZXJcIiBtYXRTbmFja0JhckFjdGlvbnM+XG4gICAgPGJ1dHRvblxuICAgICAgbWF0LWJ1dHRvblxuICAgICAgbWF0U25hY2tCYXJBY3Rpb25cbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgW2NvbG9yXT1cImljb25Db2xvcih0b2FzdC50eXBlKVwiXG4gICAgICAoY2xpY2spPVwiY2xvc2UoKVwiXG4gICAgPlxuICAgICAgT2tcbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhbmRhcmQtdG9hc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy90b2FzdHMvc3RhbmRhcmQtdG9hc3Qvc3RhbmRhcmQtdG9hc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy90b2FzdHMvc3RhbmRhcmQtdG9hc3Qvc3RhbmRhcmQtdG9hc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSx1QkFBdUIsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDbEYsT0FBTyxFQUNMLGtCQUFrQixFQUVsQixnQkFBZ0IsRUFDaEIsa0JBQWtCLEVBQ2xCLGlCQUFpQixHQUNsQixNQUFNLDZCQUE2QixDQUFBO0FBRXBDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFFekMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFBO0FBQ3BELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTs7O0FBVWhELE1BQU0sT0FBTyxzQkFBc0I7SUFTakM7Ozs7Z0ZBSTRFO0lBRTVFLFlBQ2tCLFdBQW1ELEVBQ3ZCLEtBQVk7UUFEeEMsZ0JBQVcsR0FBWCxXQUFXLENBQXdDO1FBQ3ZCLFVBQUssR0FBTCxLQUFLLENBQU87UUFoQjFEOzs7O29GQUk0RTtRQUU1RCxjQUFTLEdBQUcsU0FBUyxDQUFBO0lBV2xDLENBQUM7SUFFSjs7OztnRkFJNEU7SUFFNUUsUUFBUSxLQUFVLENBQUM7SUFFbkI7Ozs7Z0ZBSTRFO0lBRXJFLEtBQUs7UUFDVixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFBO0lBQzVCLENBQUM7SUFFTSxTQUFTLENBQUMsSUFBZTtRQUM5QixRQUFRLElBQUksRUFBRSxDQUFDO1lBQ2IsS0FBSyxTQUFTLENBQUMsT0FBTztnQkFDcEIsT0FBTyxTQUFTLENBQUE7WUFDbEIsS0FBSyxTQUFTLENBQUMsT0FBTztnQkFDcEIsT0FBTyxRQUFRLENBQUE7WUFDakIsS0FBSyxTQUFTLENBQUMsS0FBSztnQkFDbEIsT0FBTyxNQUFNLENBQUE7WUFDZjtnQkFDRSxPQUFPLFNBQVMsQ0FBQTtRQUNwQixDQUFDO0lBQ0gsQ0FBQztJQUVNLElBQUksQ0FBQyxJQUFlO1FBQ3pCLFFBQVEsSUFBSSxFQUFFLENBQUM7WUFDYixLQUFLLFNBQVMsQ0FBQyxPQUFPO2dCQUNwQixPQUFPLE1BQU0sQ0FBQTtZQUNmLEtBQUssU0FBUyxDQUFDLE9BQU87Z0JBQ3BCLE9BQU8sU0FBUyxDQUFBO1lBQ2xCLEtBQUssU0FBUyxDQUFDLEtBQUs7Z0JBQ2xCLE9BQU8sT0FBTyxDQUFBO1lBQ2hCO2dCQUNFLE9BQU8sRUFBRSxDQUFBO1FBQ2IsQ0FBQztJQUNILENBQUM7SUFFTSxjQUFjLENBQUMsSUFBWSxFQUFFLE1BQWM7UUFDaEQsSUFBSSxJQUFJLEVBQUUsTUFBTSxHQUFHLE1BQU0sRUFBRSxDQUFDO1lBQzFCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFBO1FBQzFDLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxJQUFJLENBQUE7UUFDYixDQUFDO0lBQ0gsQ0FBQzs4R0F0RVUsc0JBQXNCLGdEQWlCdkIsa0JBQWtCO2tHQWpCakIsc0JBQXNCLGdGQ3RCbkMsbXFDQWdEQSwydkJENUJZLE9BQU8sMklBQUUsZ0JBQWdCLCtEQUFFLGtCQUFrQixpRUFBRSxTQUFTLGlMQUFFLGlCQUFpQjs7MkZBRTFFLHNCQUFzQjtrQkFSbEMsU0FBUzsrQkFDRSxzQkFBc0IsbUJBR2YsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixDQUFDOzswQkFtQm5GLE1BQU07MkJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHtcbiAgTUFUX1NOQUNLX0JBUl9EQVRBLFxuICBNYXRTbmFja0JhclJlZixcbiAgTWF0U25hY2tCYXJMYWJlbCxcbiAgTWF0U25hY2tCYXJBY3Rpb25zLFxuICBNYXRTbmFja0JhckFjdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc25hY2stYmFyJ1xuaW1wb3J0IHsgVG9hc3QgfSBmcm9tICcuLi90b2FzdCdcbmltcG9ydCB7IFRvYXN0VHlwZSB9IGZyb20gJy4uL3RvYXN0LXR5cGUnXG5pbXBvcnQgeyBUaGVtZVBhbGV0dGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJ1xuaW1wb3J0IHsgTWF0QnV0dG9uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJ1xuaW1wb3J0IHsgTWF0SWNvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VsZGVyLXN0YW5kYXJkLXRvYXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3N0YW5kYXJkLXRvYXN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc3RhbmRhcmQtdG9hc3QuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtNYXRJY29uLCBNYXRTbmFja0JhckxhYmVsLCBNYXRTbmFja0JhckFjdGlvbnMsIE1hdEJ1dHRvbiwgTWF0U25hY2tCYXJBY3Rpb25dLFxufSlcbmV4cG9ydCBjbGFzcyBTdGFuZGFyZFRvYXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIHJlYWRvbmx5IFRvYXN0VHlwZSA9IFRvYXN0VHlwZVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSBzbmFja0JhclJlZjogTWF0U25hY2tCYXJSZWY8U3RhbmRhcmRUb2FzdENvbXBvbmVudD4sXG4gICAgQEluamVjdChNQVRfU05BQ0tfQkFSX0RBVEEpIHB1YmxpYyByZWFkb25seSB0b2FzdDogVG9hc3RcbiAgKSB7fVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBMaWZlIEN5Y2xlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge31cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgY2xvc2UoKTogdm9pZCB7XG4gICAgdGhpcy5zbmFja0JhclJlZi5kaXNtaXNzKClcbiAgfVxuXG4gIHB1YmxpYyBpY29uQ29sb3IodHlwZTogVG9hc3RUeXBlKTogVGhlbWVQYWxldHRlIHtcbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgVG9hc3RUeXBlLlN1Y2Nlc3M6XG4gICAgICAgIHJldHVybiAncHJpbWFyeSdcbiAgICAgIGNhc2UgVG9hc3RUeXBlLldhcm5pbmc6XG4gICAgICAgIHJldHVybiAnYWNjZW50J1xuICAgICAgY2FzZSBUb2FzdFR5cGUuRXJyb3I6XG4gICAgICAgIHJldHVybiAnd2FybidcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaWNvbih0eXBlOiBUb2FzdFR5cGUpOiBzdHJpbmcge1xuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgY2FzZSBUb2FzdFR5cGUuU3VjY2VzczpcbiAgICAgICAgcmV0dXJuICdpbmZvJ1xuICAgICAgY2FzZSBUb2FzdFR5cGUuV2FybmluZzpcbiAgICAgICAgcmV0dXJuICd3YXJuaW5nJ1xuICAgICAgY2FzZSBUb2FzdFR5cGUuRXJyb3I6XG4gICAgICAgIHJldHVybiAnZXJyb3InXG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gJydcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgdHJpbURldGFpbFRleHQodGV4dDogc3RyaW5nLCBsZW5ndGg6IG51bWJlcik6IHN0cmluZyB7XG4gICAgaWYgKHRleHQ/Lmxlbmd0aCA+IGxlbmd0aCkge1xuICAgICAgcmV0dXJuIHRleHQuc3Vic3RyaW5nKDAsIGxlbmd0aCkgKyAnLi4uJ1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGV4dFxuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImxheW91dC1jb2wgcGxhY2Utc3RhcnQtc3RyZXRjaCBnYXAteHMgbWF0LW1kYy1zbmFjay1iYXItY29udGFpbmVyIGVsZGVyLXRvYXN0XCIgXG4gIFtjbGFzcy5lbGRlci10b2FzdC10eXBlLXdhcm5dPVwidG9hc3QudHlwZSA9PT0gVG9hc3RUeXBlLldhcm5pbmdcIlxuICBbY2xhc3MuZWxkZXItdG9hc3QtdHlwZS1lcnJvcl09XCJ0b2FzdC50eXBlID09PSBUb2FzdFR5cGUuRXJyb3JcIlxuICA+XG4gIDwhLS0gSWNvbiBhbmQgU3RhdHVzIC0tPlxuICA8ZGl2IGNsYXNzPVwibGF5b3V0LXJvdyBwbGFjZS1zdGFydC1jZW50ZXIgZ2FwLXNtXCI+XG4gICAgPG1hdC1pY29uIGNsYXNzPVwibm9zZWxlY3RcIj57eyBpY29uKHRvYXN0LnR5cGUpIH19PC9tYXQtaWNvbj5cbiAgICA8c3BhblxuICAgICAgY2xhc3M9XCJ0b2FzdC10aXRsZSBtYXQtc3VidGl0bGUtMiBub3NlbGVjdFwiXG4gICAgICA+e3sgdG9hc3Quc3RhdHVzIH19PC9zcGFuXG4gICAgPlxuICA8L2Rpdj5cblxuICA8c3Bhbj48L3NwYW4+XG5cbiAgPCEtLSBUb2FzdCBNZXNzYWdlIC0tPlxuICBAaWYgKHRvYXN0Lm1lc3NhZ2UpIHtcbiAgICA8c3BhblxuICAgICAgY2xhc3M9XCJtYXQtYm9keSBub3NlbGVjdFwiXG4gICAgICBtYXRTbmFja0JhckxhYmVsXG4gICAgICA+e3sgdG9hc3QubWVzc2FnZSB9fTwvc3BhblxuICAgID5cbiAgfVxuXG4gIDxzcGFuPjwvc3Bhbj5cblxuICA8IS0tIFRvYXN0IERldGFpbCAtLT5cbiAgQGlmICh0b2FzdC5kZXRhaWwpIHtcbiAgICA8c3BhblxuICAgICAgY2xhc3M9XCJtYXQtc21hbGwgbm9zZWxlY3RcIlxuICAgICAgbWF0U25hY2tCYXJMYWJlbFxuICAgICAgPnt7IHRyaW1EZXRhaWxUZXh0KHRvYXN0LmRldGFpbCwgMjAwKSB9fTwvc3BhblxuICAgID5cbiAgfVxuXG4gIDwhLS0gQWN0aW9ucyAtLT5cbiAgPGRpdiBjbGFzcz1cImxheW91dC1yb3cgcGxhY2UtZW5kLWNlbnRlclwiIG1hdFNuYWNrQmFyQWN0aW9ucz5cbiAgICA8YnV0dG9uXG4gICAgICBtYXQtYnV0dG9uXG4gICAgICBtYXRTbmFja0JhckFjdGlvblxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBbY29sb3JdPVwiaWNvbkNvbG9yKHRvYXN0LnR5cGUpXCJcbiAgICAgIChjbGljayk9XCJjbG9zZSgpXCJcbiAgICA+XG4gICAgICBPa1xuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19