@sumaris-net/ngx-components 2.4.118 → 2.4.120

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.
@@ -9,20 +9,30 @@ import * as i4 from "@ionic/angular";
9
9
  import * as i5 from "@ngx-translate/core";
10
10
  import * as i6 from "@angular/material/icon";
11
11
  import * as i7 from "@angular/material/button";
12
- import * as i8 from "../../../shared/pipes/arrays.pipe";
13
12
  export class FormButtonsBarToken {
14
13
  }
15
14
  export class FormButtonsBarComponent {
16
15
  constructor(hotkeys, menu) {
17
- this.hotkeys = hotkeys;
18
16
  this.menu = menu;
19
17
  this._subscription = new Subscription();
20
18
  this.disabled = false;
21
19
  this.disabledCancel = false;
20
+ this.saveButtonColor = 'danger';
21
+ this.backText = 'COMMON.BTN_CLOSE';
22
+ this.cancelText = 'COMMON.BTN_RESET';
23
+ this.nextText = 'COMMON.BTN_NEXT';
24
+ this.showBack = true;
25
+ this.showCancel = true;
26
+ this.showNext = true;
27
+ this.showSave = true;
28
+ this.showSaveAndClose = false;
29
+ this.showSaveAndNext = false;
22
30
  this.onCancel = new EventEmitter();
23
31
  this.onSave = new EventEmitter();
24
32
  this.onNext = new EventEmitter();
25
33
  this.onBack = new EventEmitter();
34
+ this.onSaveAndClose = new EventEmitter();
35
+ this.onSaveAndNext = new EventEmitter();
26
36
  // Ctrl+S
27
37
  this._subscription.add(hotkeys.addShortcut({ keys: 'control.s', description: 'COMMON.BTN_SAVE' })
28
38
  .pipe(filter(e => !this.disabled))
@@ -42,23 +52,45 @@ export class FormButtonsBarComponent {
42
52
  this.onSave.complete();
43
53
  this.onNext.complete();
44
54
  this.onBack.complete();
55
+ this.onSaveAndNext.complete();
56
+ this.onSaveAndClose.complete();
45
57
  }
46
58
  }
47
59
  FormButtonsBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FormButtonsBarComponent, deps: [{ token: i1.Hotkeys }, { token: i2.MenuService }], target: i0.ɵɵFactoryTarget.Component });
48
- FormButtonsBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: FormButtonsBarComponent, selector: "app-form-buttons-bar", inputs: { disabled: "disabled", disabledCancel: "disabledCancel", classList: "classList" }, outputs: { onCancel: "onCancel", onSave: "onSave", onNext: "onNext", onBack: "onBack" }, providers: [
60
+ FormButtonsBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: FormButtonsBarComponent, selector: "app-form-buttons-bar", inputs: { disabled: "disabled", disabledCancel: "disabledCancel", classList: "classList", saveButtonColor: "saveButtonColor", backText: "backText", cancelText: "cancelText", nextText: "nextText", showBack: "showBack", showCancel: "showCancel", showNext: "showNext", showSave: "showSave", showSaveAndClose: "showSaveAndClose", showSaveAndNext: "showSaveAndNext" }, outputs: { onCancel: "onCancel", onSave: "onSave", onNext: "onNext", onBack: "onBack", onSaveAndClose: "onSaveAndClose", onSaveAndNext: "onSaveAndNext" }, providers: [
49
61
  { provide: FormButtonsBarToken, useExisting: FormButtonsBarComponent }
50
- ], ngImport: i0, template: "\n<ion-toolbar [class]=\"classList\">\n <ion-row class=\"ion-no-padding\" nowrap>\n <!-- show menu button -->\n <ion-col size=\"auto\" class=\"hidden-xs hidden-sm\">\n <ion-menu-toggle>\n <button\n mat-icon-button\n color=\"accent\"\n [title]=\"'COMMON.BTN_SHOW_MENU' | translate\"\n (click)=\"menu.toggleSplitPaneWhen()\">\n <mat-icon><span>&#xbb;</span></mat-icon>\n </button>\n </ion-menu-toggle>\n </ion-col>\n\n <ion-col class=\"app-form-buttons-bar-content\">\n <ng-content></ng-content>\n </ion-col>\n\n <ion-col size=\"auto\" class=\"app-form-buttons-bar-buttons\">\n\n <ng-content select=\"[slot=end]\"></ng-content>\n\n <!-- close (go back) -->\n <ion-button fill=\"clear\" color=\"dark\" (click)=\"onBack.emit($event)\"\n (keyup.enter)=\"onBack.emit($event)\"\n *ngIf=\"onBack.observers | isNotEmptyArray\"\n class=\"back\">\n <ion-label translate>COMMON.BTN_CLOSE</ion-label>\n </ion-button>\n\n <!-- reload -->\n <ion-button fill=\"clear\" color=\"dark\" (click)=\"onCancel.emit($event)\"\n (keyup.enter)=\"onCancel.emit($event)\"\n [disabled]=\"disabledCancel\"\n class=\"cancel\">\n <ion-icon slot=\"start\" name=\"refresh\"></ion-icon>\n <ion-label translate>COMMON.BTN_RESET</ion-label>\n </ion-button>\n\n <!-- next -->\n <ion-button fill=\"solid\" (click)=\"onNext.emit($event)\" (keyup.enter)=\"onNext.emit($event)\" *ngIf=\"onNext.observers | isNotEmptyArray\"\n class=\"next\">\n <ion-label translate>COMMON.BTN_NEXT</ion-label>\n <ion-icon slot=\"end\" name=\"arrow-forward\"></ion-icon>\n </ion-button>\n\n <!-- save -->\n <ion-button [fill]=\"disabled ? 'clear' : 'solid'\"\n (click)=\"onSave.emit($event)\"\n (keyup.enter)=\"onSave.emit($event)\" color=\"danger\"\n [disabled]=\"disabled\"\n class=\"save\">\n <ion-label [innerHTML]=\"'COMMON.BTN_SAVE_WITH_SHORTCUT'|translate\" [title]=\"'COMMON.BTN_SAVE_WITH_SHORTCUT_HELP'|translate\"></ion-label>\n </ion-button>\n </ion-col>\n </ion-row>\n</ion-toolbar>\n", styles: [":host{width:100%}:host ion-toolbar{height:var(--app-form-buttons-bar-height);padding:0 6px}:host ion-col{padding:0}ion-menu-toggle button{top:4px}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i4.IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: i4.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i4.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i4.IonMenuToggle, selector: "ion-menu-toggle", inputs: ["autoHide", "menu"] }, { kind: "component", type: i4.IonRow, selector: "ion-row" }, { kind: "component", type: i4.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "directive", type: i5.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i7.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "pipe", type: i8.NotEmptyArrayPipe, name: "isNotEmptyArray" }] });
62
+ ], ngImport: i0, template: "\n<ion-toolbar [class]=\"classList\">\n <ion-row class=\"ion-no-padding\" nowrap>\n <!-- show menu button -->\n <ion-col size=\"auto\" class=\"hidden-xs hidden-sm\">\n <ion-menu-toggle>\n <button\n mat-icon-button\n color=\"accent\"\n [title]=\"'COMMON.BTN_SHOW_MENU' | translate\"\n (click)=\"menu.toggleSplitPaneWhen()\">\n <mat-icon><span>&#xbb;</span></mat-icon>\n </button>\n </ion-menu-toggle>\n </ion-col>\n\n <ion-col class=\"app-form-buttons-bar-content\">\n <ng-content></ng-content>\n </ion-col>\n\n <ion-col size=\"auto\" class=\"app-form-buttons-bar-buttons\">\n\n <ng-content select=\"[slot=end]\"></ng-content>\n\n <!-- back -->\n <ion-button fill=\"clear\" color=\"dark\"\n (click)=\"onBack.emit($event)\"\n (keyup.enter)=\"onBack.emit($event)\"\n *ngIf=\"showBack && onBack.observed\"\n class=\"back\">\n <ion-label>{{backText|translate}}</ion-label>\n </ion-button>\n\n <!-- cancel -->\n <ion-button fill=\"clear\" color=\"dark\"\n *ngIf=\"showCancel\"\n (click)=\"onCancel.emit($event)\"\n (keyup.enter)=\"onCancel.emit($event)\"\n [disabled]=\"disabledCancel\"\n class=\"cancel\">\n <ion-icon slot=\"start\" name=\"refresh\"></ion-icon>\n <ion-label>{{cancelText|translate}}</ion-label>\n </ion-button>\n\n <!-- next -->\n <ion-button fill=\"solid\"\n *ngIf=\"showNext && onNext.observed\"\n (click)=\"onNext.emit($event)\"\n (keyup.enter)=\"onNext.emit($event)\"\n class=\"next\">\n <ion-label>{{nextText|translate}}</ion-label>\n <ion-icon slot=\"end\" name=\"arrow-forward\"></ion-icon>\n </ion-button>\n\n <!-- save -->\n <ion-button [fill]=\"disabled ? 'clear' : 'solid'\"\n *ngIf=\"showSave && onSave.observed\"\n (click)=\"onSave.emit($event)\"\n (keyup.enter)=\"onSave.emit($event)\"\n [color]=\"saveButtonColor\"\n [disabled]=\"disabled\"\n class=\"save\">\n <ion-label [innerHTML]=\"'COMMON.BTN_SAVE_WITH_SHORTCUT'|translate\" [title]=\"'COMMON.BTN_SAVE_WITH_SHORTCUT_HELP'|translate\"></ion-label>\n </ion-button>\n\n <!-- save and next -->\n <ion-button [fill]=\"disabled ? 'clear' : 'solid'\"\n *ngIf=\"showSaveAndNext && onSaveAndNext.observed\"\n (click)=\"onSaveAndNext.emit($event)\"\n (keyup.enter)=\"onSaveAndNext.emit($event)\"\n [color]=\"saveButtonColor\"\n [disabled]=\"disabled\"\n class=\"save\">\n <ion-label translate>COMMON.BTN_SAVE_AND_NEXT</ion-label>\n </ion-button>\n\n <!-- save and close -->\n <ion-button [fill]=\"disabled ? 'clear' : 'solid'\"\n *ngIf=\"showSaveAndClose && onSaveAndClose.observed\"\n (click)=\"onSaveAndClose.emit($event)\"\n (keyup.enter)=\"onSaveAndClose.emit($event)\"\n [color]=\"saveButtonColor\"\n [disabled]=\"disabled\"\n class=\"save\">\n <ion-label translate>COMMON.BTN_SAVE_AND_CLOSE</ion-label>\n </ion-button>\n </ion-col>\n </ion-row>\n</ion-toolbar>\n", styles: [":host{width:100%}:host ion-toolbar{height:var(--app-form-buttons-bar-height);padding:0 6px}:host ion-col{padding:0}ion-menu-toggle button{top:4px}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i4.IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: i4.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i4.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i4.IonMenuToggle, selector: "ion-menu-toggle", inputs: ["autoHide", "menu"] }, { kind: "component", type: i4.IonRow, selector: "ion-row" }, { kind: "component", type: i4.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "directive", type: i5.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i7.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }] });
51
63
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FormButtonsBarComponent, decorators: [{
52
64
  type: Component,
53
65
  args: [{ selector: 'app-form-buttons-bar', providers: [
54
66
  { provide: FormButtonsBarToken, useExisting: FormButtonsBarComponent }
55
- ], template: "\n<ion-toolbar [class]=\"classList\">\n <ion-row class=\"ion-no-padding\" nowrap>\n <!-- show menu button -->\n <ion-col size=\"auto\" class=\"hidden-xs hidden-sm\">\n <ion-menu-toggle>\n <button\n mat-icon-button\n color=\"accent\"\n [title]=\"'COMMON.BTN_SHOW_MENU' | translate\"\n (click)=\"menu.toggleSplitPaneWhen()\">\n <mat-icon><span>&#xbb;</span></mat-icon>\n </button>\n </ion-menu-toggle>\n </ion-col>\n\n <ion-col class=\"app-form-buttons-bar-content\">\n <ng-content></ng-content>\n </ion-col>\n\n <ion-col size=\"auto\" class=\"app-form-buttons-bar-buttons\">\n\n <ng-content select=\"[slot=end]\"></ng-content>\n\n <!-- close (go back) -->\n <ion-button fill=\"clear\" color=\"dark\" (click)=\"onBack.emit($event)\"\n (keyup.enter)=\"onBack.emit($event)\"\n *ngIf=\"onBack.observers | isNotEmptyArray\"\n class=\"back\">\n <ion-label translate>COMMON.BTN_CLOSE</ion-label>\n </ion-button>\n\n <!-- reload -->\n <ion-button fill=\"clear\" color=\"dark\" (click)=\"onCancel.emit($event)\"\n (keyup.enter)=\"onCancel.emit($event)\"\n [disabled]=\"disabledCancel\"\n class=\"cancel\">\n <ion-icon slot=\"start\" name=\"refresh\"></ion-icon>\n <ion-label translate>COMMON.BTN_RESET</ion-label>\n </ion-button>\n\n <!-- next -->\n <ion-button fill=\"solid\" (click)=\"onNext.emit($event)\" (keyup.enter)=\"onNext.emit($event)\" *ngIf=\"onNext.observers | isNotEmptyArray\"\n class=\"next\">\n <ion-label translate>COMMON.BTN_NEXT</ion-label>\n <ion-icon slot=\"end\" name=\"arrow-forward\"></ion-icon>\n </ion-button>\n\n <!-- save -->\n <ion-button [fill]=\"disabled ? 'clear' : 'solid'\"\n (click)=\"onSave.emit($event)\"\n (keyup.enter)=\"onSave.emit($event)\" color=\"danger\"\n [disabled]=\"disabled\"\n class=\"save\">\n <ion-label [innerHTML]=\"'COMMON.BTN_SAVE_WITH_SHORTCUT'|translate\" [title]=\"'COMMON.BTN_SAVE_WITH_SHORTCUT_HELP'|translate\"></ion-label>\n </ion-button>\n </ion-col>\n </ion-row>\n</ion-toolbar>\n", styles: [":host{width:100%}:host ion-toolbar{height:var(--app-form-buttons-bar-height);padding:0 6px}:host ion-col{padding:0}ion-menu-toggle button{top:4px}\n"] }]
67
+ ], template: "\n<ion-toolbar [class]=\"classList\">\n <ion-row class=\"ion-no-padding\" nowrap>\n <!-- show menu button -->\n <ion-col size=\"auto\" class=\"hidden-xs hidden-sm\">\n <ion-menu-toggle>\n <button\n mat-icon-button\n color=\"accent\"\n [title]=\"'COMMON.BTN_SHOW_MENU' | translate\"\n (click)=\"menu.toggleSplitPaneWhen()\">\n <mat-icon><span>&#xbb;</span></mat-icon>\n </button>\n </ion-menu-toggle>\n </ion-col>\n\n <ion-col class=\"app-form-buttons-bar-content\">\n <ng-content></ng-content>\n </ion-col>\n\n <ion-col size=\"auto\" class=\"app-form-buttons-bar-buttons\">\n\n <ng-content select=\"[slot=end]\"></ng-content>\n\n <!-- back -->\n <ion-button fill=\"clear\" color=\"dark\"\n (click)=\"onBack.emit($event)\"\n (keyup.enter)=\"onBack.emit($event)\"\n *ngIf=\"showBack && onBack.observed\"\n class=\"back\">\n <ion-label>{{backText|translate}}</ion-label>\n </ion-button>\n\n <!-- cancel -->\n <ion-button fill=\"clear\" color=\"dark\"\n *ngIf=\"showCancel\"\n (click)=\"onCancel.emit($event)\"\n (keyup.enter)=\"onCancel.emit($event)\"\n [disabled]=\"disabledCancel\"\n class=\"cancel\">\n <ion-icon slot=\"start\" name=\"refresh\"></ion-icon>\n <ion-label>{{cancelText|translate}}</ion-label>\n </ion-button>\n\n <!-- next -->\n <ion-button fill=\"solid\"\n *ngIf=\"showNext && onNext.observed\"\n (click)=\"onNext.emit($event)\"\n (keyup.enter)=\"onNext.emit($event)\"\n class=\"next\">\n <ion-label>{{nextText|translate}}</ion-label>\n <ion-icon slot=\"end\" name=\"arrow-forward\"></ion-icon>\n </ion-button>\n\n <!-- save -->\n <ion-button [fill]=\"disabled ? 'clear' : 'solid'\"\n *ngIf=\"showSave && onSave.observed\"\n (click)=\"onSave.emit($event)\"\n (keyup.enter)=\"onSave.emit($event)\"\n [color]=\"saveButtonColor\"\n [disabled]=\"disabled\"\n class=\"save\">\n <ion-label [innerHTML]=\"'COMMON.BTN_SAVE_WITH_SHORTCUT'|translate\" [title]=\"'COMMON.BTN_SAVE_WITH_SHORTCUT_HELP'|translate\"></ion-label>\n </ion-button>\n\n <!-- save and next -->\n <ion-button [fill]=\"disabled ? 'clear' : 'solid'\"\n *ngIf=\"showSaveAndNext && onSaveAndNext.observed\"\n (click)=\"onSaveAndNext.emit($event)\"\n (keyup.enter)=\"onSaveAndNext.emit($event)\"\n [color]=\"saveButtonColor\"\n [disabled]=\"disabled\"\n class=\"save\">\n <ion-label translate>COMMON.BTN_SAVE_AND_NEXT</ion-label>\n </ion-button>\n\n <!-- save and close -->\n <ion-button [fill]=\"disabled ? 'clear' : 'solid'\"\n *ngIf=\"showSaveAndClose && onSaveAndClose.observed\"\n (click)=\"onSaveAndClose.emit($event)\"\n (keyup.enter)=\"onSaveAndClose.emit($event)\"\n [color]=\"saveButtonColor\"\n [disabled]=\"disabled\"\n class=\"save\">\n <ion-label translate>COMMON.BTN_SAVE_AND_CLOSE</ion-label>\n </ion-button>\n </ion-col>\n </ion-row>\n</ion-toolbar>\n", styles: [":host{width:100%}:host ion-toolbar{height:var(--app-form-buttons-bar-height);padding:0 6px}:host ion-col{padding:0}ion-menu-toggle button{top:4px}\n"] }]
56
68
  }], ctorParameters: function () { return [{ type: i1.Hotkeys }, { type: i2.MenuService }]; }, propDecorators: { disabled: [{
57
69
  type: Input
58
70
  }], disabledCancel: [{
59
71
  type: Input
60
72
  }], classList: [{
61
73
  type: Input
74
+ }], saveButtonColor: [{
75
+ type: Input
76
+ }], backText: [{
77
+ type: Input
78
+ }], cancelText: [{
79
+ type: Input
80
+ }], nextText: [{
81
+ type: Input
82
+ }], showBack: [{
83
+ type: Input
84
+ }], showCancel: [{
85
+ type: Input
86
+ }], showNext: [{
87
+ type: Input
88
+ }], showSave: [{
89
+ type: Input
90
+ }], showSaveAndClose: [{
91
+ type: Input
92
+ }], showSaveAndNext: [{
93
+ type: Input
62
94
  }], onCancel: [{
63
95
  type: Output
64
96
  }], onSave: [{
@@ -67,5 +99,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
67
99
  type: Output
68
100
  }], onBack: [{
69
101
  type: Output
102
+ }], onSaveAndClose: [{
103
+ type: Output
104
+ }], onSaveAndNext: [{
105
+ type: Output
70
106
  }] } });
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1idXR0b25zLWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvcmUvZm9ybS9idXR0b25zL2Zvcm0tYnV0dG9ucy1iYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb3JlL2Zvcm0vYnV0dG9ucy9mb3JtLWJ1dHRvbnMtYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFaEYsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNsQyxPQUFPLEVBQUMsTUFBTSxFQUFNLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7QUFHM0MsTUFBTSxPQUFnQixtQkFBbUI7Q0FLeEM7QUFVRCxNQUFNLE9BQU8sdUJBQXVCO0lBYWxDLFlBQW9CLE9BQWdCLEVBQzNCLElBQWlCO1FBRE4sWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUMzQixTQUFJLEdBQUosSUFBSSxDQUFhO1FBWmxCLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVsQyxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBR3RCLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBUyxDQUFDO1FBQ3JDLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBUyxDQUFDO1FBQ25DLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBUyxDQUFDO1FBQ25DLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBUyxDQUFDO1FBTTNDLFNBQVM7UUFDVCxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FDcEIsT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFDLENBQUM7YUFDckUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQ2pDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXBELFNBQVM7UUFDVCxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FDcEIsT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFDLENBQUM7YUFDdEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQzthQUN6RCxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQ25ELENBQUM7UUFFRixTQUFTO1FBQ1QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQ3BCLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxrQkFBa0IsRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFDLENBQUM7YUFDMUYsSUFBSSxDQUNILE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBRWpDO2FBQ0EsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDekIsQ0FBQzs7b0hBOUNVLHVCQUF1Qjt3R0FBdkIsdUJBQXVCLG9PQUp2QjtRQUNULEVBQUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFdBQVcsRUFBRSx1QkFBdUIsRUFBQztLQUNyRSwwQkNuQkgseXhFQTJEQTsyRkR0Q2EsdUJBQXVCO2tCQVJuQyxTQUFTOytCQUNFLHNCQUFzQixhQUdyQjt3QkFDVCxFQUFDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLHlCQUF5QixFQUFDO3FCQUNyRTt3SEFNUSxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFFSSxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU07Z0JBQ0csTUFBTTtzQkFBZixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7SG90a2V5c30gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2hvdGtleXMvaG90a2V5cy5zZXJ2aWNlJztcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7ZmlsdGVyLCB0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7TWVudVNlcnZpY2V9IGZyb20gJy4uLy4uL21lbnUvbWVudS5zZXJ2aWNlJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEZvcm1CdXR0b25zQmFyVG9rZW4ge1xuICBhYnN0cmFjdCBvbkNhbmNlbDogRXZlbnRFbWl0dGVyPEV2ZW50PjtcbiAgYWJzdHJhY3Qgb25TYXZlOiBFdmVudEVtaXR0ZXI8RXZlbnQ+O1xuICBhYnN0cmFjdCBvbk5leHQ6IEV2ZW50RW1pdHRlcjxFdmVudD47XG4gIGFic3RyYWN0IG9uQmFjazogRXZlbnRFbWl0dGVyPEV2ZW50Pjtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWZvcm0tYnV0dG9ucy1iYXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS1idXR0b25zLWJhci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Zvcm0tYnV0dG9ucy1iYXIuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge3Byb3ZpZGU6IEZvcm1CdXR0b25zQmFyVG9rZW4sIHVzZUV4aXN0aW5nOiBGb3JtQnV0dG9uc0JhckNvbXBvbmVudH1cbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybUJ1dHRvbnNCYXJDb21wb25lbnQgaW1wbGVtZW50cyBGb3JtQnV0dG9uc0JhclRva2VuLCBPbkRlc3Ryb3kge1xuXG4gIHByaXZhdGUgX3N1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBkaXNhYmxlZENhbmNlbCA9IGZhbHNlO1xuICBASW5wdXQoKSBjbGFzc0xpc3Q6IHN0cmluZztcblxuICBAT3V0cHV0KCkgb25DYW5jZWwgPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PigpO1xuICBAT3V0cHV0KCkgb25TYXZlID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcbiAgQE91dHB1dCgpIG9uTmV4dCA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBvbkJhY2sgPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaG90a2V5czogSG90a2V5cyxcbiAgICBwdWJsaWMgbWVudTogTWVudVNlcnZpY2VcbiAgICApIHtcblxuICAgIC8vIEN0cmwrU1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbi5hZGQoXG4gICAgICBob3RrZXlzLmFkZFNob3J0Y3V0KHtrZXlzOiAnY29udHJvbC5zJywgZGVzY3JpcHRpb246ICdDT01NT04uQlROX1NBVkUnfSlcbiAgICAgICAgLnBpcGUoZmlsdGVyKGUgPT4gIXRoaXMuZGlzYWJsZWQpKVxuICAgICAgICAuc3Vic2NyaWJlKChldmVudCkgPT4gdGhpcy5vblNhdmUuZW1pdChldmVudCkpKTtcblxuICAgIC8vIEN0cmwrWlxuICAgIHRoaXMuX3N1YnNjcmlwdGlvbi5hZGQoXG4gICAgICBob3RrZXlzLmFkZFNob3J0Y3V0KHtrZXlzOiAnY29udHJvbC56JywgZGVzY3JpcHRpb246ICdDT01NT04uQlROX1JFU0VUJ30pXG4gICAgICAgIC5waXBlKGZpbHRlcihlID0+ICF0aGlzLmRpc2FibGVkICYmICF0aGlzLmRpc2FibGVkQ2FuY2VsKSlcbiAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQpID0+IHRoaXMub25DYW5jZWwuZW1pdChldmVudCkpXG4gICAgKTtcblxuICAgIC8vIEVzY2FwZVxuICAgIHRoaXMuX3N1YnNjcmlwdGlvbi5hZGQoXG4gICAgICBob3RrZXlzLmFkZFNob3J0Y3V0KHtrZXlzOiAnZXNjYXBlJywgZGVzY3JpcHRpb246ICdDT01NT04uQlROX0NMT1NFJywgcHJldmVudERlZmF1bHQ6IGZhbHNlfSlcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgZmlsdGVyKGUgPT4gIWUuZGVmYXVsdFByZXZlbnRlZCksXG4gICAgICAgICAgLy90YXAoKCkgPT4gY29uc29sZS5kZWJ1ZygnW2Zvcm0tYnV0dG9ucy1iYXJdIEVtaXQgYmFjayBldmVudCAoa2V5ZG93bi5lc2NhcGUpJykpXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQpID0+IHRoaXMub25CYWNrLmVtaXQoZXZlbnQpKSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLm9uQ2FuY2VsLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5vblNhdmUuY29tcGxldGUoKTtcbiAgICB0aGlzLm9uTmV4dC5jb21wbGV0ZSgpO1xuICAgIHRoaXMub25CYWNrLmNvbXBsZXRlKCk7XG4gIH1cblxufVxuIiwiXG48aW9uLXRvb2xiYXIgW2NsYXNzXT1cImNsYXNzTGlzdFwiPlxuICA8aW9uLXJvdyBjbGFzcz1cImlvbi1uby1wYWRkaW5nXCIgbm93cmFwPlxuICAgIDwhLS0gc2hvdyBtZW51IGJ1dHRvbiAtLT5cbiAgICA8aW9uLWNvbCBzaXplPVwiYXV0b1wiIGNsYXNzPVwiaGlkZGVuLXhzIGhpZGRlbi1zbVwiPlxuICAgICAgPGlvbi1tZW51LXRvZ2dsZT5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgIGNvbG9yPVwiYWNjZW50XCJcbiAgICAgICAgICBbdGl0bGVdPVwiJ0NPTU1PTi5CVE5fU0hPV19NRU5VJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgKGNsaWNrKT1cIm1lbnUudG9nZ2xlU3BsaXRQYW5lV2hlbigpXCI+XG4gICAgICAgICAgPG1hdC1pY29uPjxzcGFuPiYjeGJiOzwvc3Bhbj48L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvaW9uLW1lbnUtdG9nZ2xlPlxuICAgIDwvaW9uLWNvbD5cblxuICAgIDxpb24tY29sIGNsYXNzPVwiYXBwLWZvcm0tYnV0dG9ucy1iYXItY29udGVudFwiPlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvaW9uLWNvbD5cblxuICAgIDxpb24tY29sIHNpemU9XCJhdXRvXCIgY2xhc3M9XCJhcHAtZm9ybS1idXR0b25zLWJhci1idXR0b25zXCI+XG5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltzbG90PWVuZF1cIj48L25nLWNvbnRlbnQ+XG5cbiAgICAgIDwhLS0gY2xvc2UgKGdvIGJhY2spIC0tPlxuICAgICAgPGlvbi1idXR0b24gZmlsbD1cImNsZWFyXCIgY29sb3I9XCJkYXJrXCIgKGNsaWNrKT1cIm9uQmFjay5lbWl0KCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgKGtleXVwLmVudGVyKT1cIm9uQmFjay5lbWl0KCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJvbkJhY2sub2JzZXJ2ZXJzIHwgaXNOb3RFbXB0eUFycmF5XCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYmFja1wiPlxuICAgICAgICA8aW9uLWxhYmVsIHRyYW5zbGF0ZT5DT01NT04uQlROX0NMT1NFPC9pb24tbGFiZWw+XG4gICAgICA8L2lvbi1idXR0b24+XG5cbiAgICAgIDwhLS0gcmVsb2FkIC0tPlxuICAgICAgPGlvbi1idXR0b24gZmlsbD1cImNsZWFyXCIgY29sb3I9XCJkYXJrXCIgKGNsaWNrKT1cIm9uQ2FuY2VsLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAoa2V5dXAuZW50ZXIpPVwib25DYW5jZWwuZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZENhbmNlbFwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImNhbmNlbFwiPlxuICAgICAgICA8aW9uLWljb24gc2xvdD1cInN0YXJ0XCIgbmFtZT1cInJlZnJlc2hcIj48L2lvbi1pY29uPlxuICAgICAgICA8aW9uLWxhYmVsIHRyYW5zbGF0ZT5DT01NT04uQlROX1JFU0VUPC9pb24tbGFiZWw+XG4gICAgICA8L2lvbi1idXR0b24+XG5cbiAgICAgIDwhLS0gbmV4dCAtLT5cbiAgICAgIDxpb24tYnV0dG9uIGZpbGw9XCJzb2xpZFwiIChjbGljayk9XCJvbk5leHQuZW1pdCgkZXZlbnQpXCIgKGtleXVwLmVudGVyKT1cIm9uTmV4dC5lbWl0KCRldmVudClcIiAqbmdJZj1cIm9uTmV4dC5vYnNlcnZlcnMgfCBpc05vdEVtcHR5QXJyYXlcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJuZXh0XCI+XG4gICAgICAgIDxpb24tbGFiZWwgdHJhbnNsYXRlPkNPTU1PTi5CVE5fTkVYVDwvaW9uLWxhYmVsPlxuICAgICAgICA8aW9uLWljb24gc2xvdD1cImVuZFwiIG5hbWU9XCJhcnJvdy1mb3J3YXJkXCI+PC9pb24taWNvbj5cbiAgICAgIDwvaW9uLWJ1dHRvbj5cblxuICAgICAgPCEtLSBzYXZlIC0tPlxuICAgICAgPGlvbi1idXR0b24gW2ZpbGxdPVwiZGlzYWJsZWQgPyAnY2xlYXInIDogJ3NvbGlkJ1wiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25TYXZlLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAoa2V5dXAuZW50ZXIpPVwib25TYXZlLmVtaXQoJGV2ZW50KVwiIGNvbG9yPVwiZGFuZ2VyXCJcbiAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInNhdmVcIj5cbiAgICAgICAgPGlvbi1sYWJlbCBbaW5uZXJIVE1MXT1cIidDT01NT04uQlROX1NBVkVfV0lUSF9TSE9SVENVVCd8dHJhbnNsYXRlXCIgW3RpdGxlXT1cIidDT01NT04uQlROX1NBVkVfV0lUSF9TSE9SVENVVF9IRUxQJ3x0cmFuc2xhdGVcIj48L2lvbi1sYWJlbD5cbiAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICA8L2lvbi1jb2w+XG4gIDwvaW9uLXJvdz5cbjwvaW9uLXRvb2xiYXI+XG4iXX0=
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1idXR0b25zLWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvcmUvZm9ybS9idXR0b25zL2Zvcm0tYnV0dG9ucy1iYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb3JlL2Zvcm0vYnV0dG9ucy9mb3JtLWJ1dHRvbnMtYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFaEYsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNsQyxPQUFPLEVBQUMsTUFBTSxFQUFNLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7OztBQUkzQyxNQUFNLE9BQWdCLG1CQUFtQjtDQUt4QztBQVVELE1BQU0sT0FBTyx1QkFBdUI7SUE0QmxDLFlBQVksT0FBZ0IsRUFDbkIsSUFBaUI7UUFBakIsU0FBSSxHQUFKLElBQUksQ0FBYTtRQTNCbEIsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRWxDLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFHdkIsb0JBQWUsR0FBcUIsUUFBUSxDQUFDO1FBRTdDLGFBQVEsR0FBRyxrQkFBa0IsQ0FBQztRQUM5QixlQUFVLEdBQUcsa0JBQWtCLENBQUM7UUFDaEMsYUFBUSxHQUFHLGlCQUFpQixDQUFDO1FBRTdCLGFBQVEsR0FBRyxJQUFJLENBQUM7UUFDaEIsZUFBVSxHQUFHLElBQUksQ0FBQztRQUNsQixhQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ2hCLGFBQVEsR0FBRyxJQUFJLENBQUM7UUFDaEIscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBRXZCLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBUyxDQUFDO1FBQ3JDLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBUyxDQUFDO1FBQ25DLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBUyxDQUFDO1FBQ25DLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBUyxDQUFDO1FBQ25DLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQVMsQ0FBQztRQUMzQyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFTLENBQUM7UUFNbEQsU0FBUztRQUNULElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUNwQixPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUMsQ0FBQzthQUNyRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDakMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFcEQsU0FBUztRQUNULElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUNwQixPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsa0JBQWtCLEVBQUMsQ0FBQzthQUN0RSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO2FBQ3pELFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FDbkQsQ0FBQztRQUVGLFNBQVM7UUFDVCxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FDcEIsT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUMsQ0FBQzthQUMxRixJQUFJLENBQ0gsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FFakM7YUFDQSxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzlCLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDakMsQ0FBQzs7b0hBL0RVLHVCQUF1Qjt3R0FBdkIsdUJBQXVCLHNqQkFKdkI7UUFDVCxFQUFDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLEVBQUUsdUJBQXVCLEVBQUM7S0FDckUsMEJDcEJILDY3R0F5RkE7MkZEbkVhLHVCQUF1QjtrQkFSbkMsU0FBUzsrQkFDRSxzQkFBc0IsYUFHckI7d0JBQ1QsRUFBQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyx5QkFBeUIsRUFBQztxQkFDckU7d0hBTVEsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUcsZUFBZTtzQkFBdkIsS0FBSztnQkFFRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFFRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUVJLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csTUFBTTtzQkFBZixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7SG90a2V5c30gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2hvdGtleXMvaG90a2V5cy5zZXJ2aWNlJztcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7ZmlsdGVyLCB0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7TWVudVNlcnZpY2V9IGZyb20gJy4uLy4uL21lbnUvbWVudS5zZXJ2aWNlJztcbmltcG9ydCB7UHJlZGVmaW5lZENvbG9yc30gZnJvbSAnQGlvbmljL2NvcmUnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRm9ybUJ1dHRvbnNCYXJUb2tlbiB7XG4gIGFic3RyYWN0IG9uQ2FuY2VsOiBFdmVudEVtaXR0ZXI8RXZlbnQ+O1xuICBhYnN0cmFjdCBvblNhdmU6IEV2ZW50RW1pdHRlcjxFdmVudD47XG4gIGFic3RyYWN0IG9uTmV4dDogRXZlbnRFbWl0dGVyPEV2ZW50PjtcbiAgYWJzdHJhY3Qgb25CYWNrOiBFdmVudEVtaXR0ZXI8RXZlbnQ+O1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtZm9ybS1idXR0b25zLWJhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLWJ1dHRvbnMtYmFyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybS1idXR0b25zLWJhci5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICB7cHJvdmlkZTogRm9ybUJ1dHRvbnNCYXJUb2tlbiwgdXNlRXhpc3Rpbmc6IEZvcm1CdXR0b25zQmFyQ29tcG9uZW50fVxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtQnV0dG9uc0JhckNvbXBvbmVudCBpbXBsZW1lbnRzIEZvcm1CdXR0b25zQmFyVG9rZW4sIE9uRGVzdHJveSB7XG5cbiAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIGRpc2FibGVkQ2FuY2VsID0gZmFsc2U7XG4gIEBJbnB1dCgpIGNsYXNzTGlzdDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIHNhdmVCdXR0b25Db2xvcjogUHJlZGVmaW5lZENvbG9ycyA9ICdkYW5nZXInO1xuXG4gIEBJbnB1dCgpIGJhY2tUZXh0ID0gJ0NPTU1PTi5CVE5fQ0xPU0UnO1xuICBASW5wdXQoKSBjYW5jZWxUZXh0ID0gJ0NPTU1PTi5CVE5fUkVTRVQnO1xuICBASW5wdXQoKSBuZXh0VGV4dCA9ICdDT01NT04uQlROX05FWFQnO1xuXG4gIEBJbnB1dCgpIHNob3dCYWNrID0gdHJ1ZTtcbiAgQElucHV0KCkgc2hvd0NhbmNlbCA9IHRydWU7XG4gIEBJbnB1dCgpIHNob3dOZXh0ID0gdHJ1ZTtcbiAgQElucHV0KCkgc2hvd1NhdmUgPSB0cnVlO1xuICBASW5wdXQoKSBzaG93U2F2ZUFuZENsb3NlID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNob3dTYXZlQW5kTmV4dCA9IGZhbHNlO1xuXG4gIEBPdXRwdXQoKSBvbkNhbmNlbCA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBvblNhdmUgPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PigpO1xuICBAT3V0cHV0KCkgb25OZXh0ID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcbiAgQE91dHB1dCgpIG9uQmFjayA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBvblNhdmVBbmRDbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBvblNhdmVBbmROZXh0ID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcblxuICBjb25zdHJ1Y3Rvcihob3RrZXlzOiBIb3RrZXlzLFxuICAgIHB1YmxpYyBtZW51OiBNZW51U2VydmljZVxuICAgICkge1xuXG4gICAgLy8gQ3RybCtTXG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uLmFkZChcbiAgICAgIGhvdGtleXMuYWRkU2hvcnRjdXQoe2tleXM6ICdjb250cm9sLnMnLCBkZXNjcmlwdGlvbjogJ0NPTU1PTi5CVE5fU0FWRSd9KVxuICAgICAgICAucGlwZShmaWx0ZXIoZSA9PiAhdGhpcy5kaXNhYmxlZCkpXG4gICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB0aGlzLm9uU2F2ZS5lbWl0KGV2ZW50KSkpO1xuXG4gICAgLy8gQ3RybCtaXG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uLmFkZChcbiAgICAgIGhvdGtleXMuYWRkU2hvcnRjdXQoe2tleXM6ICdjb250cm9sLnonLCBkZXNjcmlwdGlvbjogJ0NPTU1PTi5CVE5fUkVTRVQnfSlcbiAgICAgICAgLnBpcGUoZmlsdGVyKGUgPT4gIXRoaXMuZGlzYWJsZWQgJiYgIXRoaXMuZGlzYWJsZWRDYW5jZWwpKVxuICAgICAgICAuc3Vic2NyaWJlKChldmVudCkgPT4gdGhpcy5vbkNhbmNlbC5lbWl0KGV2ZW50KSlcbiAgICApO1xuXG4gICAgLy8gRXNjYXBlXG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uLmFkZChcbiAgICAgIGhvdGtleXMuYWRkU2hvcnRjdXQoe2tleXM6ICdlc2NhcGUnLCBkZXNjcmlwdGlvbjogJ0NPTU1PTi5CVE5fQ0xPU0UnLCBwcmV2ZW50RGVmYXVsdDogZmFsc2V9KVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBmaWx0ZXIoZSA9PiAhZS5kZWZhdWx0UHJldmVudGVkKSxcbiAgICAgICAgICAvL3RhcCgoKSA9PiBjb25zb2xlLmRlYnVnKCdbZm9ybS1idXR0b25zLWJhcl0gRW1pdCBiYWNrIGV2ZW50IChrZXlkb3duLmVzY2FwZSknKSlcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKChldmVudCkgPT4gdGhpcy5vbkJhY2suZW1pdChldmVudCkpKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMub25DYW5jZWwuY29tcGxldGUoKTtcbiAgICB0aGlzLm9uU2F2ZS5jb21wbGV0ZSgpO1xuICAgIHRoaXMub25OZXh0LmNvbXBsZXRlKCk7XG4gICAgdGhpcy5vbkJhY2suY29tcGxldGUoKTtcbiAgICB0aGlzLm9uU2F2ZUFuZE5leHQuY29tcGxldGUoKTtcbiAgICB0aGlzLm9uU2F2ZUFuZENsb3NlLmNvbXBsZXRlKCk7XG4gIH1cbn1cbiIsIlxuPGlvbi10b29sYmFyIFtjbGFzc109XCJjbGFzc0xpc3RcIj5cbiAgPGlvbi1yb3cgY2xhc3M9XCJpb24tbm8tcGFkZGluZ1wiIG5vd3JhcD5cbiAgICA8IS0tIHNob3cgbWVudSBidXR0b24gLS0+XG4gICAgPGlvbi1jb2wgc2l6ZT1cImF1dG9cIiBjbGFzcz1cImhpZGRlbi14cyBoaWRkZW4tc21cIj5cbiAgICAgIDxpb24tbWVudS10b2dnbGU+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICBjb2xvcj1cImFjY2VudFwiXG4gICAgICAgICAgW3RpdGxlXT1cIidDT01NT04uQlROX1NIT1dfTUVOVScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgIChjbGljayk9XCJtZW51LnRvZ2dsZVNwbGl0UGFuZVdoZW4oKVwiPlxuICAgICAgICAgIDxtYXQtaWNvbj48c3Bhbj4mI3hiYjs8L3NwYW4+PC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2lvbi1tZW51LXRvZ2dsZT5cbiAgICA8L2lvbi1jb2w+XG5cbiAgICA8aW9uLWNvbCBjbGFzcz1cImFwcC1mb3JtLWJ1dHRvbnMtYmFyLWNvbnRlbnRcIj5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L2lvbi1jb2w+XG5cbiAgICA8aW9uLWNvbCBzaXplPVwiYXV0b1wiIGNsYXNzPVwiYXBwLWZvcm0tYnV0dG9ucy1iYXItYnV0dG9uc1wiPlxuXG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbc2xvdD1lbmRdXCI+PC9uZy1jb250ZW50PlxuXG4gICAgICA8IS0tIGJhY2sgLS0+XG4gICAgICA8aW9uLWJ1dHRvbiBmaWxsPVwiY2xlYXJcIiBjb2xvcj1cImRhcmtcIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQmFjay5lbWl0KCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgKGtleXVwLmVudGVyKT1cIm9uQmFjay5lbWl0KCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzaG93QmFjayAmJiBvbkJhY2sub2JzZXJ2ZWRcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJiYWNrXCI+XG4gICAgICAgIDxpb24tbGFiZWw+e3tiYWNrVGV4dHx0cmFuc2xhdGV9fTwvaW9uLWxhYmVsPlxuICAgICAgPC9pb24tYnV0dG9uPlxuXG4gICAgICA8IS0tIGNhbmNlbCAtLT5cbiAgICAgIDxpb24tYnV0dG9uIGZpbGw9XCJjbGVhclwiIGNvbG9yPVwiZGFya1wiXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cInNob3dDYW5jZWxcIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2FuY2VsLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAoa2V5dXAuZW50ZXIpPVwib25DYW5jZWwuZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZENhbmNlbFwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImNhbmNlbFwiPlxuICAgICAgICA8aW9uLWljb24gc2xvdD1cInN0YXJ0XCIgbmFtZT1cInJlZnJlc2hcIj48L2lvbi1pY29uPlxuICAgICAgICA8aW9uLWxhYmVsPnt7Y2FuY2VsVGV4dHx0cmFuc2xhdGV9fTwvaW9uLWxhYmVsPlxuICAgICAgPC9pb24tYnV0dG9uPlxuXG4gICAgICA8IS0tIG5leHQgLS0+XG4gICAgICA8aW9uLWJ1dHRvbiBmaWxsPVwic29saWRcIlxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzaG93TmV4dCAmJiBvbk5leHQub2JzZXJ2ZWRcIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uTmV4dC5lbWl0KCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgKGtleXVwLmVudGVyKT1cIm9uTmV4dC5lbWl0KCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJuZXh0XCI+XG4gICAgICAgIDxpb24tbGFiZWw+e3tuZXh0VGV4dHx0cmFuc2xhdGV9fTwvaW9uLWxhYmVsPlxuICAgICAgICA8aW9uLWljb24gc2xvdD1cImVuZFwiIG5hbWU9XCJhcnJvdy1mb3J3YXJkXCI+PC9pb24taWNvbj5cbiAgICAgIDwvaW9uLWJ1dHRvbj5cblxuICAgICAgPCEtLSBzYXZlIC0tPlxuICAgICAgPGlvbi1idXR0b24gW2ZpbGxdPVwiZGlzYWJsZWQgPyAnY2xlYXInIDogJ3NvbGlkJ1wiXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cInNob3dTYXZlICYmIG9uU2F2ZS5vYnNlcnZlZFwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25TYXZlLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAoa2V5dXAuZW50ZXIpPVwib25TYXZlLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICBbY29sb3JdPVwic2F2ZUJ1dHRvbkNvbG9yXCJcbiAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInNhdmVcIj5cbiAgICAgICAgPGlvbi1sYWJlbCBbaW5uZXJIVE1MXT1cIidDT01NT04uQlROX1NBVkVfV0lUSF9TSE9SVENVVCd8dHJhbnNsYXRlXCIgW3RpdGxlXT1cIidDT01NT04uQlROX1NBVkVfV0lUSF9TSE9SVENVVF9IRUxQJ3x0cmFuc2xhdGVcIj48L2lvbi1sYWJlbD5cbiAgICAgIDwvaW9uLWJ1dHRvbj5cblxuICAgICAgPCEtLSBzYXZlIGFuZCBuZXh0IC0tPlxuICAgICAgPGlvbi1idXR0b24gW2ZpbGxdPVwiZGlzYWJsZWQgPyAnY2xlYXInIDogJ3NvbGlkJ1wiXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cInNob3dTYXZlQW5kTmV4dCAmJiBvblNhdmVBbmROZXh0Lm9ic2VydmVkXCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblNhdmVBbmROZXh0LmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAoa2V5dXAuZW50ZXIpPVwib25TYXZlQW5kTmV4dC5lbWl0KCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgW2NvbG9yXT1cInNhdmVCdXR0b25Db2xvclwiXG4gICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzYXZlXCI+XG4gICAgICAgIDxpb24tbGFiZWwgdHJhbnNsYXRlPkNPTU1PTi5CVE5fU0FWRV9BTkRfTkVYVDwvaW9uLWxhYmVsPlxuICAgICAgPC9pb24tYnV0dG9uPlxuXG4gICAgICA8IS0tIHNhdmUgYW5kIGNsb3NlIC0tPlxuICAgICAgPGlvbi1idXR0b24gW2ZpbGxdPVwiZGlzYWJsZWQgPyAnY2xlYXInIDogJ3NvbGlkJ1wiXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cInNob3dTYXZlQW5kQ2xvc2UgJiYgb25TYXZlQW5kQ2xvc2Uub2JzZXJ2ZWRcIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2F2ZUFuZENsb3NlLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAoa2V5dXAuZW50ZXIpPVwib25TYXZlQW5kQ2xvc2UuZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgIFtjb2xvcl09XCJzYXZlQnV0dG9uQ29sb3JcIlxuICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2F2ZVwiPlxuICAgICAgICA8aW9uLWxhYmVsIHRyYW5zbGF0ZT5DT01NT04uQlROX1NBVkVfQU5EX0NMT1NFPC9pb24tbGFiZWw+XG4gICAgICA8L2lvbi1idXR0b24+XG4gICAgPC9pb24tY29sPlxuICA8L2lvbi1yb3c+XG48L2lvbi10b29sYmFyPlxuIl19
@@ -66,8 +66,8 @@ export class TextPopover {
66
66
  try {
67
67
  const value = this.value;
68
68
  this.disable();
69
- await this.popoverController.dismiss(value);
70
69
  this.form.error = null;
70
+ await this.popoverController.dismiss(value);
71
71
  }
72
72
  catch (err) {
73
73
  this.form.error = (err && err.message) || err;
@@ -143,4 +143,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
143
143
  }], mobile: [{
144
144
  type: Input
145
145
  }] } });
146
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1wb3BvdmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9mb3JtL3RleHQtcG9wb3Zlci90ZXh0LXBvcG92ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb3JlL2Zvcm0vdGV4dC1wb3BvdmVyL3RleHQtcG9wb3Zlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLFNBQVMsRUFBRSxLQUFLLEVBQXFCLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUU1RixPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBR2xDLE9BQU8sRUFBQyxhQUFhLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUd0RSxPQUFPLEVBQUMsZUFBZSxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7O0FBdUN0RixNQUFNLE9BQU8sV0FBVztJQW9EdEIsWUFBc0IsaUJBQW9DLEVBQVksU0FBMkI7UUFBM0Usc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUFZLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBaEN4RixnQkFBVyxHQUFVLElBQUksQ0FBQztRQUUxQixVQUFLLEdBQVcsSUFBSSxDQUFDO1FBRXJCLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLFlBQU8sR0FBRyxJQUFJLENBQUM7UUFDZixjQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFDNUIsY0FBUyxHQUFHLElBQUksQ0FBQztRQUNqQixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLGNBQVMsR0FBZ0IsSUFBSSxDQUFDO1FBQzlCLGtCQUFhLEdBQXdCLElBQUksQ0FBQztRQUMxQyxXQUFNLEdBQUcsS0FBSyxDQUFDO1FBRXhCLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQWtCa0UsQ0FBQztJQWxEckcsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBdUIsRUFDdkIsS0FBWSxFQUNaLElBQXdCLEVBQ3hCLFdBQXFDO1FBQ3JELE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUM5QixLQUFLO1lBQ0wsU0FBUyxFQUFFLFdBQVc7WUFDdEIsY0FBYyxFQUFFLElBQUk7WUFDcEIsR0FBRyxXQUFXO1NBQ2YsQ0FBQyxDQUFDO1FBRUgsTUFBTSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDdEIsT0FBTyxNQUFNLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBcUJELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLElBQUksS0FBSyxDQUFDO0lBQ25DLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQztJQUMvQixDQUFDO0lBSUQsUUFBUTtRQUNOLElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7UUFDakgsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMzRCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDaEIsQ0FBQztJQUVELGVBQWU7UUFDYixVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVELEtBQUssQ0FBQyxVQUFVLENBQUMsS0FBVTtRQUN6QixNQUFNLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVsQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNmLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2pDLE9BQU87U0FDUjtRQUVELElBQUk7WUFDRixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1lBQ3pCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNmLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM1QyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7U0FDeEI7UUFBQyxPQUFPLEdBQUcsRUFBRTtZQUNaLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLENBQUM7WUFDOUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ2Y7SUFDSCxDQUFDO0lBRUQsT0FBTztRQUNMLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLElBQUksQ0FBQyxPQUFPO1lBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVTLEtBQUssQ0FBQyxXQUFXLENBQUMsTUFBeUI7UUFDbkQsSUFBSSxPQUFPLE1BQU0sQ0FBQyxPQUFPLEtBQUssVUFBVSxFQUFFO1lBQ3hDLE1BQU0sTUFBTSxHQUFHLE1BQU0sTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDaEQsc0VBQXNFO1lBQ3RFLElBQUksTUFBTSxLQUFLLElBQUksRUFBRTtnQkFDbkIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ2hFO1NBQ0Y7YUFDSTtZQUNILE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNoRTtJQUNILENBQUM7SUFFUyxXQUFXLENBQUMsTUFBeUI7UUFDN0MsT0FBTyxNQUFNLEVBQUUsSUFBSSxLQUFLLE9BQU8sQ0FBQztJQUNsQyxDQUFDO0lBRVMsU0FBUyxDQUFDLE1BQXlCO1FBQzNDLE9BQU8sTUFBTSxFQUFFLElBQUksS0FBSyxPQUFPLENBQUM7SUFDbEMsQ0FBQzs7d0dBdEhVLFdBQVc7NEZBQVgsV0FBVywwZkMvQ3hCLDRnSEFzRkE7MkZEdkNhLFdBQVc7a0JBUHZCLFNBQVM7K0JBQ0Usa0JBQWtCO3VJQXVCUyxJQUFJO3NCQUF4QyxTQUFTO3VCQUFDLE1BQU0sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBRTFCLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7UG9wb3ZlckNvbnRyb2xsZXIsIFBvcG92ZXJPcHRpb25zfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtUZXh0Rm9ybX0gZnJvbSAnLi90ZXh0LWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7bG9nRm9ybUVycm9ycywgd2FpdFdoaWxlUGVuZGluZ30gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2Zvcm1zJztcbmltcG9ydCB7VmFsaWRhdG9yRm59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7Q29sb3IsIE92ZXJsYXlFdmVudERldGFpbH0gZnJvbSAnQGlvbmljL2NvcmUnO1xuaW1wb3J0IHtpc05vdEVtcHR5QXJyYXksIGlzTm90TmlsT3JCbGFuaywgdG9Cb29sZWFufSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZnVuY3Rpb25zJztcblxuXG5leHBvcnQgaW50ZXJmYWNlIFRleHRQb3BvdmVyT3B0aW9ucyB7XG4gIHRpdGxlPzogc3RyaW5nO1xuICB0ZXh0Pzogc3RyaW5nO1xuICBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgZWRpdGluZz86IGJvb2xlYW47XG4gIG11bHRpbGluZT86IGJvb2xlYW47XG4gIGF1dG9IZWlnaHQ/OiBib29sZWFuO1xuICBtYXhMZW5ndGg/OiBudW1iZXI7XG4gIGF1dG9mb2N1cz86IGJvb2xlYW47XG4gIHZhbGlkYXRvcj86IFZhbGlkYXRvckZuO1xuICAvLyBIZWFkZXIgc3R1ZmZcbiAgc2hvd0hlYWRlcj86IGJvb2xlYW47XG4gIGhlYWRlckNvbG9yPzogQ29sb3I7XG4gIGhlYWRlckJ1dHRvbnM/OiBUZXh0UG9wb3ZlckJ1dHRvbltdO1xuICAvLyBGb290ZXIgc3R1ZmZcbiAgc2hvd0Zvb3Rlcj86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGV4dFBvcG92ZXJCdXR0b24ge1xuICB0ZXh0Pzogc3RyaW5nO1xuICBpY29uPzogc3RyaW5nO1xuICBjb2xvcj86IENvbG9yO1xuICBmaWxsPzogJ291dGxpbmUnfCdjbGVhcid8J3NvbGlkJztcbiAgc2lkZT86ICdzdGFydCcgfCAnZW5kJztcbiAgcm9sZT86ICdjYW5jZWwnIHwgc3RyaW5nO1xuICBjc3NDbGFzcz86IHN0cmluZyB8IHN0cmluZ1tdO1xuICBoYW5kbGVyPzogKHZhbHVlOiBzdHJpbmcpID0+IGJvb2xlYW4gfCB2b2lkIHwgUHJvbWlzZTxib29sZWFuIHwgdm9pZD47XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC10ZXh0LXBvcG92ZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vdGV4dC1wb3BvdmVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbXG4gICAgJy4vdGV4dC1wb3BvdmVyLmNvbXBvbmVudC5zY3NzJyxcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBUZXh0UG9wb3ZlciBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBUZXh0UG9wb3Zlck9wdGlvbnMge1xuXG4gIHN0YXRpYyBhc3luYyBzaG93KGN0cmw6IFBvcG92ZXJDb250cm9sbGVyLFxuICAgICAgICAgICAgICAgICAgICBldmVudDogRXZlbnQsXG4gICAgICAgICAgICAgICAgICAgIG9wdHM6IFRleHRQb3BvdmVyT3B0aW9ucyxcbiAgICAgICAgICAgICAgICAgICAgcG9wb3Zlck9wdHM/OiBQYXJ0aWFsPFBvcG92ZXJPcHRpb25zPikgOiBQcm9taXNlPE92ZXJsYXlFdmVudERldGFpbD4ge1xuICAgIGNvbnN0IG1vZGFsID0gYXdhaXQgY3RybC5jcmVhdGUoe1xuICAgICAgZXZlbnQsXG4gICAgICBjb21wb25lbnQ6IFRleHRQb3BvdmVyLFxuICAgICAgY29tcG9uZW50UHJvcHM6IG9wdHMsXG4gICAgICAuLi5wb3BvdmVyT3B0c1xuICAgIH0pO1xuXG4gICAgYXdhaXQgbW9kYWwucHJlc2VudCgpO1xuICAgIHJldHVybiBhd2FpdCBtb2RhbC5vbkRpZERpc21pc3MoKTtcbiAgfVxuXG4gIEBWaWV3Q2hpbGQoJ2Zvcm0nLCB7IHN0YXRpYzogdHJ1ZSB9KSBmb3JtOiBUZXh0Rm9ybTtcblxuICBASW5wdXQoKSBzaG93SGVhZGVyOiBib29sZWFuO1xuICBASW5wdXQoKSBoZWFkZXJDb2xvcjogQ29sb3IgPSBudWxsO1xuICBASW5wdXQoKSBzaG93Rm9vdGVyOiBib29sZWFuO1xuICBASW5wdXQoKSB0aXRsZTogc3RyaW5nID0gbnVsbDtcbiAgQElucHV0KCkgdGV4dDogc3RyaW5nO1xuICBASW5wdXQoKSBwbGFjZWhvbGRlciA9ICcnO1xuICBASW5wdXQoKSBlZGl0aW5nID0gdHJ1ZTtcbiAgQElucHV0KCkgbXVsdGlsaW5lID0gdHJ1ZTtcbiAgQElucHV0KCkgYXV0b0hlaWdodDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBtYXhMZW5ndGggPSAyMDAwO1xuICBASW5wdXQoKSBhdXRvZm9jdXMgPSBmYWxzZTtcbiAgQElucHV0KCkgdmFsaWRhdG9yOiBWYWxpZGF0b3JGbiA9IG51bGw7XG4gIEBJbnB1dCgpIGhlYWRlckJ1dHRvbnM6IFRleHRQb3BvdmVyQnV0dG9uW10gPSBudWxsO1xuICBASW5wdXQoKSBtb2JpbGUgPSBmYWxzZTtcblxuICBzdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgZ2V0IGRpc2FibGVkKCkge1xuICAgIHJldHVybiB0aGlzLmZvcm0uZGlzYWJsZWQ7XG4gIH1cblxuICBnZXQgZW5hYmxlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtLmVuYWJsZWQ7XG4gIH1cblxuICBnZXQgdmFsaWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybT8udmFsaWQgfHwgZmFsc2U7XG4gIH1cblxuICBnZXQgdmFsdWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybT8udmFsdWUudGV4dDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBwb3BvdmVyQ29udHJvbGxlcjogUG9wb3ZlckNvbnRyb2xsZXIsIHByb3RlY3RlZCB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zaG93SGVhZGVyID0gdG9Cb29sZWFuKHRoaXMuc2hvd0hlYWRlciwgaXNOb3ROaWxPckJsYW5rKHRoaXMudGl0bGUpIHx8IGlzTm90RW1wdHlBcnJheSh0aGlzLmhlYWRlckJ1dHRvbnMpKTtcbiAgICB0aGlzLnNob3dGb290ZXIgPSB0b0Jvb2xlYW4odGhpcy5zaG93Rm9vdGVyLCAhdGhpcy5tb2JpbGUpO1xuICAgIHRoaXMuZW5hYmxlKCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmZvcm0uc2V0VmFsdWUoeyB0ZXh0OiB0aGlzLnRleHQgfSksIDApO1xuICB9XG5cbiAgYXN5bmMgb25WYWxpZGF0ZShldmVudDogYW55KTogUHJvbWlzZTxhbnk+IHtcbiAgICBhd2FpdCB3YWl0V2hpbGVQZW5kaW5nKHRoaXMuZm9ybSk7XG5cbiAgICBpZiAoIXRoaXMudmFsaWQpIHtcbiAgICAgIGxvZ0Zvcm1FcnJvcnModGhpcy5mb3JtLmNvbnRyb2wpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBjb25zdCB2YWx1ZSA9IHRoaXMudmFsdWU7XG4gICAgICB0aGlzLmRpc2FibGUoKTtcbiAgICAgIGF3YWl0IHRoaXMucG9wb3ZlckNvbnRyb2xsZXIuZGlzbWlzcyh2YWx1ZSk7XG4gICAgICB0aGlzLmZvcm0uZXJyb3IgPSBudWxsO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgdGhpcy5mb3JtLmVycm9yID0gKGVyciAmJiBlcnIubWVzc2FnZSkgfHwgZXJyO1xuICAgICAgdGhpcy5lbmFibGUoKTtcbiAgICB9XG4gIH1cblxuICBkaXNhYmxlKCkge1xuICAgIHRoaXMuZm9ybS5kaXNhYmxlKCk7XG4gIH1cblxuICBlbmFibGUoKSB7XG4gICAgaWYgKHRoaXMuZWRpdGluZykgdGhpcy5mb3JtLmVuYWJsZSgpO1xuICB9XG5cbiAgY2FuY2VsKCkge1xuICAgIHRoaXMucG9wb3ZlckNvbnRyb2xsZXIuZGlzbWlzcygpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBjbGlja0J1dHRvbihidXR0b246IFRleHRQb3BvdmVyQnV0dG9uKSB7XG4gICAgaWYgKHR5cGVvZiBidXR0b24uaGFuZGxlciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgYnV0dG9uLmhhbmRsZXIodGhpcy52YWx1ZSk7XG4gICAgICAvLyBUT0RPIGNvbW1lbnQgaW50ZXJwcmV0ZXIgbGUgdHJ1ZSA/PyA9PiBmZXJtZXIgb3UgYW5udWxlciBsJ2FjdGlvbiA/XG4gICAgICBpZiAocmVzdWx0ID09PSB0cnVlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnBvcG92ZXJDb250cm9sbGVyLmRpc21pc3ModGhpcy52YWx1ZSwgYnV0dG9uLnJvbGUpO1xuICAgICAgfVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLnBvcG92ZXJDb250cm9sbGVyLmRpc21pc3ModGhpcy52YWx1ZSwgYnV0dG9uLnJvbGUpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBpc1N0YXJ0U2lkZShidXR0b246IFRleHRQb3BvdmVyQnV0dG9uKSB7XG4gICAgcmV0dXJuIGJ1dHRvbj8uc2lkZSA9PT0gJ3N0YXJ0JztcbiAgfVxuXG4gIHByb3RlY3RlZCBpc0VuZFNpZGUoYnV0dG9uOiBUZXh0UG9wb3ZlckJ1dHRvbikge1xuICAgIHJldHVybiBidXR0b24/LnNpZGUgIT09ICdzdGFydCc7XG4gIH1cbn1cbiIsIjxpb24taGVhZGVyICpuZ0lmPVwic2hvd0hlYWRlclwiPlxuICA8aW9uLXRvb2xiYXIgW2NvbG9yXT1cImhlYWRlckNvbG9yXCI+XG4gICAgPGlvbi1idXR0b25zIHNsb3Q9XCJzdGFydFwiPlxuICAgICAgPGlvbi1idXR0b24gKm5nSWY9XCJtb2JpbGUgJiYgZWRpdGluZ1wiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2FuY2VsKClcIlxuICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIidDT01NT04uQlROX0NBTkNFTCd8dHJhbnNsYXRlXCI+XG4gICAgICAgIDxpb24taWNvbiBzbG90PVwiaWNvbi1vbmx5XCIgbmFtZT1cImFycm93LWJhY2tcIj48L2lvbi1pY29uPlxuICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgPGlvbi1idXR0b24gKm5nRm9yPVwibGV0IGJ1dHRvbiBvZiBoZWFkZXJCdXR0b25zfGFycmF5RmlsdGVyOiBpc1N0YXJ0U2lkZVwiXG4gICAgICAgICAgICAgICAgICBbZmlsbF09XCJidXR0b24uZmlsbFwiXG4gICAgICAgICAgICAgICAgICBbY29sb3JdPVwiYnV0dG9uLmNvbG9yXCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjbGlja0J1dHRvbihidXR0b24pXCI+XG4gICAgICAgIDxpb24taWNvbiAqbmdJZj1cImJ1dHRvbi5pY29uXCIgW3Nsb3RdPVwiYnV0dG9uLnRleHQgPyAnc3RhcnQnIDogJ2ljb24tb25seSdcIiBbbmFtZV09XCJidXR0b24uaWNvblwiPjwvaW9uLWljb24+XG4gICAgICAgIDxpb24tdGV4dCAqbmdJZj1cImJ1dHRvbi50ZXh0XCI+e3tidXR0b24udGV4dHx0cmFuc2xhdGV9fTwvaW9uLXRleHQ+XG4gICAgICA8L2lvbi1idXR0b24+XG4gICAgPC9pb24tYnV0dG9ucz5cblxuICAgIDxpb24tdGl0bGUgKm5nSWY9XCJ0aXRsZVwiPnt7dGl0bGV8dHJhbnNsYXRlfX08L2lvbi10aXRsZT5cblxuICAgIDxpb24tYnV0dG9ucyBzbG90PVwiZW5kXCI+XG4gICAgICA8aW9uLWJ1dHRvbiAqbmdGb3I9XCJsZXQgYnV0dG9uIG9mIGhlYWRlckJ1dHRvbnN8YXJyYXlGaWx0ZXI6IGlzRW5kU2lkZVwiXG4gICAgICAgICAgICAgICAgICBbZmlsbF09XCJidXR0b24uZmlsbFwiXG4gICAgICAgICAgICAgICAgICBbY29sb3JdPVwiYnV0dG9uLmNvbG9yXCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjbGlja0J1dHRvbihidXR0b24pXCI+XG4gICAgICAgIDxpb24taWNvbiAqbmdJZj1cImJ1dHRvbi5pY29uXCIgW3Nsb3RdPVwiYnV0dG9uLnRleHQgPyAnc3RhcnQnIDogJ2ljb24tb25seSdcIiBbbmFtZV09XCJidXR0b24uaWNvblwiPjwvaW9uLWljb24+XG4gICAgICAgIDxpb24tdGV4dCAqbmdJZj1cImJ1dHRvbi50ZXh0XCI+e3tidXR0b24udGV4dHx0cmFuc2xhdGV9fTwvaW9uLXRleHQ+XG4gICAgICA8L2lvbi1idXR0b24+XG5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJtb2JpbGVcIj5cbiAgICAgICAgPGlvbi1idXR0b24gKm5nSWY9XCJlZGl0aW5nXCIgKGNsaWNrKT1cIm9uVmFsaWRhdGUoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCInQ09NTU9OLkJUTl9WQUxJREFURV9XSVRIX1NIT1JUQ1VUX0hFTFAnfHRyYW5zbGF0ZVwiPlxuICAgICAgICAgIDxpb24taWNvbiBzbG90PVwiaWNvbi1vbmx5XCIgbmFtZT1cImNoZWNrbWFya1wiPjwvaW9uLWljb24+XG4gICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgPGlvbi1idXR0b24gKm5nSWY9XCIhZWRpdGluZ1wiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjYW5jZWwoKVwiXG4gICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCInQ09NTU9OLkJUTl9DTE9TRSd8dHJhbnNsYXRlXCI+XG4gICAgICAgICAgPGlvbi1pY29uIHNsb3Q9XCJpY29uLW9ubHlcIiBuYW1lPVwiY2xvc2VcIj48L2lvbi1pY29uPlxuICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2lvbi1idXR0b25zPlxuICA8L2lvbi10b29sYmFyPlxuPC9pb24taGVhZGVyPlxuXG48aW9uLWNvbnRlbnQgY2xhc3M9XCJpb24tcGFkZGluZ1wiXG4gICAgICAgICAgICAgW2NsYXNzLmhhcy1oZWFkZXJdPVwic2hvd0hlYWRlclwiXG4gICAgICAgICAgICAgY2RrVHJhcEZvY3VzIFtjZGtUcmFwRm9jdXNBdXRvQ2FwdHVyZV09XCJ0cnVlXCI+XG4gIDxpb24taXRlbSAqbmdJZj1cImZvcm0uZXJyb3JcIiB2aXNpYmxlLXhzIHZpc2libGUtc20gdmlzaWJsZS1tb2JpbGUgbGluZXM9XCJub25lXCI+XG4gICAgPGlvbi1pY29uIGNvbG9yPVwiZGFuZ2VyXCIgc2xvdD1cInN0YXJ0XCIgbmFtZT1cImFsZXJ0LWNpcmNsZVwiPjwvaW9uLWljb24+XG4gICAgPGlvbi1sYWJlbCBjb2xvcj1cImRhbmdlclwiIGNsYXNzPVwiZXJyb3JcIiBbaW5uZXJIVE1MXT1cImZvcm0uZXJyb3J8dHJhbnNsYXRlXCI+PC9pb24tbGFiZWw+XG4gIDwvaW9uLWl0ZW0+XG5cbiAgPGFwcC10ZXh0LWZvcm0gI2Zvcm0gW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgICAgICAgW211bHRpbGluZV09XCJtdWx0aWxpbmVcIlxuICAgICAgICAgICAgICAgICBbbWF4TGVuZ3RoXT1cIm1heExlbmd0aFwiXG4gICAgICAgICAgICAgICAgIFthdXRvSGVpZ2h0XT1cImF1dG9IZWlnaHRcIlxuICAgICAgICAgICAgICAgICBbYXV0b2ZvY3VzXT1cImVkaXRpbmcgJiYgYXV0b2ZvY3VzXCJcbiAgICAgICAgICAgICAgICAgW3ZhbGlkYXRvcl09XCJ2YWxpZGF0b3JcIlxuICAgICAgICAgICAgICAgICAob25TdWJtaXQpPVwib25WYWxpZGF0ZSgkZXZlbnQpXCJcbiAgPjwvYXBwLXRleHQtZm9ybT5cbjwvaW9uLWNvbnRlbnQ+XG5cbjxpb24tZm9vdGVyICpuZ0lmPVwic2hvd0Zvb3RlclwiPlxuICA8aW9uLXRvb2xiYXI+XG4gICAgPGlvbi1yb3cgY2xhc3M9XCJpb24tbm8tcGFkZGluZ1wiIG5vd3JhcD5cbiAgICAgIDxpb24tY29sPlxuXG4gICAgICA8L2lvbi1jb2w+XG5cbiAgICAgIDxpb24tY29sIHNpemU9XCJhdXRvXCI+XG4gICAgICAgIDxpb24tYnV0dG9uIGZpbGw9XCJjbGVhclwiIGNvbG9yPVwiZGFya1wiIChjbGljayk9XCJjYW5jZWwoKVwiPlxuICAgICAgICAgIDxpb24tbGFiZWwgdHJhbnNsYXRlPkNPTU1PTi5CVE5fQ0FOQ0VMPC9pb24tbGFiZWw+XG4gICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgICBbZmlsbF09XCJkaXNhYmxlZCA/ICdjbGVhcicgOiAnc29saWQnXCJcbiAgICAgICAgICAoY2xpY2spPVwib25WYWxpZGF0ZSgkZXZlbnQpXCJcbiAgICAgICAgICAoa2V5dXAuZW50ZXIpPVwib25WYWxpZGF0ZSgkZXZlbnQpXCJcbiAgICAgICAgICBjb2xvcj1cInRlcnRpYXJ5XCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgIFt0aXRsZV09XCInQ09NTU9OLkJUTl9WQUxJREFURV9XSVRIX1NIT1JUQ1VUX0hFTFAnfHRyYW5zbGF0ZVwiPlxuICAgICAgICAgIDxpb24tbGFiZWwgdHJhbnNsYXRlPkNPTU1PTi5CVE5fVkFMSURBVEU8L2lvbi1sYWJlbD5cbiAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgPC9pb24tY29sPlxuICAgIDwvaW9uLXJvdz5cbiAgPC9pb24tdG9vbGJhcj5cbjwvaW9uLWZvb3Rlcj5cbiJdfQ==
146
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1wb3BvdmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9mb3JtL3RleHQtcG9wb3Zlci90ZXh0LXBvcG92ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb3JlL2Zvcm0vdGV4dC1wb3BvdmVyL3RleHQtcG9wb3Zlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxLQUFLLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR3BDLE9BQU8sRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUd4RSxPQUFPLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7O0FBc0N4RixNQUFNLE9BQU8sV0FBVztJQW9EdEIsWUFBc0IsaUJBQW9DLEVBQVksU0FBMkI7UUFBM0Usc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUFZLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBaEN4RixnQkFBVyxHQUFVLElBQUksQ0FBQztRQUUxQixVQUFLLEdBQVcsSUFBSSxDQUFDO1FBRXJCLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLFlBQU8sR0FBRyxJQUFJLENBQUM7UUFDZixjQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFDNUIsY0FBUyxHQUFHLElBQUksQ0FBQztRQUNqQixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLGNBQVMsR0FBZ0IsSUFBSSxDQUFDO1FBQzlCLGtCQUFhLEdBQXdCLElBQUksQ0FBQztRQUMxQyxXQUFNLEdBQUcsS0FBSyxDQUFDO1FBRXhCLGlC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O3NCQUFsQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUG9wb3ZlckNvbnRyb2xsZXIsIFBvcG92ZXJPcHRpb25zIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBUZXh0Rm9ybSB9IGZyb20gJy4vdGV4dC1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBsb2dGb3JtRXJyb3JzLCB3YWl0V2hpbGVQZW5kaW5nIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2Zvcm1zJztcbmltcG9ydCB7IFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ29sb3IsIE92ZXJsYXlFdmVudERldGFpbCB9IGZyb20gJ0Bpb25pYy9jb3JlJztcbmltcG9ydCB7IGlzTm90RW1wdHlBcnJheSwgaXNOb3ROaWxPckJsYW5rLCB0b0Jvb2xlYW4gfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZnVuY3Rpb25zJztcblxuZXhwb3J0IGludGVyZmFjZSBUZXh0UG9wb3Zlck9wdGlvbnMge1xuICB0aXRsZT86IHN0cmluZztcbiAgdGV4dD86IHN0cmluZztcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIGVkaXRpbmc/OiBib29sZWFuO1xuICBtdWx0aWxpbmU/OiBib29sZWFuO1xuICBhdXRvSGVpZ2h0PzogYm9vbGVhbjtcbiAgbWF4TGVuZ3RoPzogbnVtYmVyO1xuICBhdXRvZm9jdXM/OiBib29sZWFuO1xuICB2YWxpZGF0b3I/OiBWYWxpZGF0b3JGbjtcbiAgLy8gSGVhZGVyIHN0dWZmXG4gIHNob3dIZWFkZXI/OiBib29sZWFuO1xuICBoZWFkZXJDb2xvcj86IENvbG9yO1xuICBoZWFkZXJCdXR0b25zPzogVGV4dFBvcG92ZXJCdXR0b25bXTtcbiAgLy8gRm9vdGVyIHN0dWZmXG4gIHNob3dGb290ZXI/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRleHRQb3BvdmVyQnV0dG9uIHtcbiAgdGV4dD86IHN0cmluZztcbiAgaWNvbj86IHN0cmluZztcbiAgY29sb3I/OiBDb2xvcjtcbiAgZmlsbD86ICdvdXRsaW5lJ3wnY2xlYXInfCdzb2xpZCc7XG4gIHNpZGU/OiAnc3RhcnQnIHwgJ2VuZCc7XG4gIHJvbGU/OiAnY2FuY2VsJyB8IHN0cmluZztcbiAgY3NzQ2xhc3M/OiBzdHJpbmcgfCBzdHJpbmdbXTtcbiAgaGFuZGxlcj86ICh2YWx1ZTogc3RyaW5nKSA9PiBib29sZWFuIHwgdm9pZCB8IFByb21pc2U8Ym9vbGVhbiB8IHZvaWQ+O1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtdGV4dC1wb3BvdmVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RleHQtcG9wb3Zlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogW1xuICAgICcuL3RleHQtcG9wb3Zlci5jb21wb25lbnQuc2NzcycsXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgVGV4dFBvcG92ZXIgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSwgVGV4dFBvcG92ZXJPcHRpb25zIHtcblxuICBzdGF0aWMgYXN5bmMgc2hvdyhjdHJsOiBQb3BvdmVyQ29udHJvbGxlcixcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQ6IEV2ZW50LFxuICAgICAgICAgICAgICAgICAgICBvcHRzOiBUZXh0UG9wb3Zlck9wdGlvbnMsXG4gICAgICAgICAgICAgICAgICAgIHBvcG92ZXJPcHRzPzogUGFydGlhbDxQb3BvdmVyT3B0aW9ucz4pIDogUHJvbWlzZTxPdmVybGF5RXZlbnREZXRhaWw+IHtcbiAgICBjb25zdCBtb2RhbCA9IGF3YWl0IGN0cmwuY3JlYXRlKHtcbiAgICAgIGV2ZW50LFxuICAgICAgY29tcG9uZW50OiBUZXh0UG9wb3ZlcixcbiAgICAgIGNvbXBvbmVudFByb3BzOiBvcHRzLFxuICAgICAgLi4ucG9wb3Zlck9wdHNcbiAgICB9KTtcblxuICAgIGF3YWl0IG1vZGFsLnByZXNlbnQoKTtcbiAgICByZXR1cm4gYXdhaXQgbW9kYWwub25EaWREaXNtaXNzKCk7XG4gIH1cblxuICBAVmlld0NoaWxkKCdmb3JtJywgeyBzdGF0aWM6IHRydWUgfSkgZm9ybTogVGV4dEZvcm07XG5cbiAgQElucHV0KCkgc2hvd0hlYWRlcjogYm9vbGVhbjtcbiAgQElucHV0KCkgaGVhZGVyQ29sb3I6IENvbG9yID0gbnVsbDtcbiAgQElucHV0KCkgc2hvd0Zvb3RlcjogYm9vbGVhbjtcbiAgQElucHV0KCkgdGl0bGU6IHN0cmluZyA9IG51bGw7XG4gIEBJbnB1dCgpIHRleHQ6IHN0cmluZztcbiAgQElucHV0KCkgcGxhY2Vob2xkZXIgPSAnJztcbiAgQElucHV0KCkgZWRpdGluZyA9IHRydWU7XG4gIEBJbnB1dCgpIG11bHRpbGluZSA9IHRydWU7XG4gIEBJbnB1dCgpIGF1dG9IZWlnaHQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgbWF4TGVuZ3RoID0gMjAwMDtcbiAgQElucHV0KCkgYXV0b2ZvY3VzID0gZmFsc2U7XG4gIEBJbnB1dCgpIHZhbGlkYXRvcjogVmFsaWRhdG9yRm4gPSBudWxsO1xuICBASW5wdXQoKSBoZWFkZXJCdXR0b25zOiBUZXh0UG9wb3ZlckJ1dHRvbltdID0gbnVsbDtcbiAgQElucHV0KCkgbW9iaWxlID0gZmFsc2U7XG5cbiAgc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIGdldCBkaXNhYmxlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtLmRpc2FibGVkO1xuICB9XG5cbiAgZ2V0IGVuYWJsZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybS5lbmFibGVkO1xuICB9XG5cbiAgZ2V0IHZhbGlkKCkge1xuICAgIHJldHVybiB0aGlzLmZvcm0/LnZhbGlkIHx8IGZhbHNlO1xuICB9XG5cbiAgZ2V0IHZhbHVlKCkge1xuICAgIHJldHVybiB0aGlzLmZvcm0/LnZhbHVlLnRleHQ7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgcG9wb3ZlckNvbnRyb2xsZXI6IFBvcG92ZXJDb250cm9sbGVyLCBwcm90ZWN0ZWQgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2hvd0hlYWRlciA9IHRvQm9vbGVhbih0aGlzLnNob3dIZWFkZXIsIGlzTm90TmlsT3JCbGFuayh0aGlzLnRpdGxlKSB8fCBpc05vdEVtcHR5QXJyYXkodGhpcy5oZWFkZXJCdXR0b25zKSk7XG4gICAgdGhpcy5zaG93Rm9vdGVyID0gdG9Cb29sZWFuKHRoaXMuc2hvd0Zvb3RlciwgIXRoaXMubW9iaWxlKTtcbiAgICB0aGlzLmVuYWJsZSgpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5mb3JtLnNldFZhbHVlKHsgdGV4dDogdGhpcy50ZXh0IH0pLCAwKTtcbiAgfVxuXG4gIGFzeW5jIG9uVmFsaWRhdGUoZXZlbnQ6IGFueSk6IFByb21pc2U8YW55PiB7XG4gICAgYXdhaXQgd2FpdFdoaWxlUGVuZGluZyh0aGlzLmZvcm0pO1xuXG4gICAgaWYgKCF0aGlzLnZhbGlkKSB7XG4gICAgICBsb2dGb3JtRXJyb3JzKHRoaXMuZm9ybS5jb250cm9sKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLnZhbHVlO1xuICAgICAgdGhpcy5kaXNhYmxlKCk7XG4gICAgICB0aGlzLmZvcm0uZXJyb3IgPSBudWxsO1xuICAgICAgYXdhaXQgdGhpcy5wb3BvdmVyQ29udHJvbGxlci5kaXNtaXNzKHZhbHVlKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHRoaXMuZm9ybS5lcnJvciA9IChlcnIgJiYgZXJyLm1lc3NhZ2UpIHx8IGVycjtcbiAgICAgIHRoaXMuZW5hYmxlKCk7XG4gICAgfVxuICB9XG5cbiAgZGlzYWJsZSgpIHtcbiAgICB0aGlzLmZvcm0uZGlzYWJsZSgpO1xuICB9XG5cbiAgZW5hYmxlKCkge1xuICAgIGlmICh0aGlzLmVkaXRpbmcpIHRoaXMuZm9ybS5lbmFibGUoKTtcbiAgfVxuXG4gIGNhbmNlbCgpIHtcbiAgICB0aGlzLnBvcG92ZXJDb250cm9sbGVyLmRpc21pc3MoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgY2xpY2tCdXR0b24oYnV0dG9uOiBUZXh0UG9wb3ZlckJ1dHRvbikge1xuICAgIGlmICh0eXBlb2YgYnV0dG9uLmhhbmRsZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGJ1dHRvbi5oYW5kbGVyKHRoaXMudmFsdWUpO1xuICAgICAgLy8gVE9ETyBjb21tZW50IGludGVycHJldGVyIGxlIHRydWUgPz8gPT4gZmVybWVyIG91IGFubnVsZXIgbCdhY3Rpb24gP1xuICAgICAgaWYgKHJlc3VsdCA9PT0gdHJ1ZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5wb3BvdmVyQ29udHJvbGxlci5kaXNtaXNzKHRoaXMudmFsdWUsIGJ1dHRvbi5yb2xlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5wb3BvdmVyQ29udHJvbGxlci5kaXNtaXNzKHRoaXMudmFsdWUsIGJ1dHRvbi5yb2xlKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgaXNTdGFydFNpZGUoYnV0dG9uOiBUZXh0UG9wb3ZlckJ1dHRvbikge1xuICAgIHJldHVybiBidXR0b24/LnNpZGUgPT09ICdzdGFydCc7XG4gIH1cblxuICBwcm90ZWN0ZWQgaXNFbmRTaWRlKGJ1dHRvbjogVGV4dFBvcG92ZXJCdXR0b24pIHtcbiAgICByZXR1cm4gYnV0dG9uPy5zaWRlICE9PSAnc3RhcnQnO1xuICB9XG59XG4iLCI8aW9uLWhlYWRlciAqbmdJZj1cInNob3dIZWFkZXJcIj5cbiAgPGlvbi10b29sYmFyIFtjb2xvcl09XCJoZWFkZXJDb2xvclwiPlxuICAgIDxpb24tYnV0dG9ucyBzbG90PVwic3RhcnRcIj5cbiAgICAgIDxpb24tYnV0dG9uICpuZ0lmPVwibW9iaWxlICYmIGVkaXRpbmdcIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNhbmNlbCgpXCJcbiAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCInQ09NTU9OLkJUTl9DQU5DRUwnfHRyYW5zbGF0ZVwiPlxuICAgICAgICA8aW9uLWljb24gc2xvdD1cImljb24tb25seVwiIG5hbWU9XCJhcnJvdy1iYWNrXCI+PC9pb24taWNvbj5cbiAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgIDxpb24tYnV0dG9uICpuZ0Zvcj1cImxldCBidXR0b24gb2YgaGVhZGVyQnV0dG9uc3xhcnJheUZpbHRlcjogaXNTdGFydFNpZGVcIlxuICAgICAgICAgICAgICAgICAgW2ZpbGxdPVwiYnV0dG9uLmZpbGxcIlxuICAgICAgICAgICAgICAgICAgW2NvbG9yXT1cImJ1dHRvbi5jb2xvclwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2xpY2tCdXR0b24oYnV0dG9uKVwiPlxuICAgICAgICA8aW9uLWljb24gKm5nSWY9XCJidXR0b24uaWNvblwiIFtzbG90XT1cImJ1dHRvbi50ZXh0ID8gJ3N0YXJ0JyA6ICdpY29uLW9ubHknXCIgW25hbWVdPVwiYnV0dG9uLmljb25cIj48L2lvbi1pY29uPlxuICAgICAgICA8aW9uLXRleHQgKm5nSWY9XCJidXR0b24udGV4dFwiPnt7YnV0dG9uLnRleHR8dHJhbnNsYXRlfX08L2lvbi10ZXh0PlxuICAgICAgPC9pb24tYnV0dG9uPlxuICAgIDwvaW9uLWJ1dHRvbnM+XG5cbiAgICA8aW9uLXRpdGxlICpuZ0lmPVwidGl0bGVcIj57e3RpdGxlfHRyYW5zbGF0ZX19PC9pb24tdGl0bGU+XG5cbiAgICA8aW9uLWJ1dHRvbnMgc2xvdD1cImVuZFwiPlxuICAgICAgPGlvbi1idXR0b24gKm5nRm9yPVwibGV0IGJ1dHRvbiBvZiBoZWFkZXJCdXR0b25zfGFycmF5RmlsdGVyOiBpc0VuZFNpZGVcIlxuICAgICAgICAgICAgICAgICAgW2ZpbGxdPVwiYnV0dG9uLmZpbGxcIlxuICAgICAgICAgICAgICAgICAgW2NvbG9yXT1cImJ1dHRvbi5jb2xvclwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2xpY2tCdXR0b24oYnV0dG9uKVwiPlxuICAgICAgICA8aW9uLWljb24gKm5nSWY9XCJidXR0b24uaWNvblwiIFtzbG90XT1cImJ1dHRvbi50ZXh0ID8gJ3N0YXJ0JyA6ICdpY29uLW9ubHknXCIgW25hbWVdPVwiYnV0dG9uLmljb25cIj48L2lvbi1pY29uPlxuICAgICAgICA8aW9uLXRleHQgKm5nSWY9XCJidXR0b24udGV4dFwiPnt7YnV0dG9uLnRleHR8dHJhbnNsYXRlfX08L2lvbi10ZXh0PlxuICAgICAgPC9pb24tYnV0dG9uPlxuXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibW9iaWxlXCI+XG4gICAgICAgIDxpb24tYnV0dG9uICpuZ0lmPVwiZWRpdGluZ1wiIChjbGljayk9XCJvblZhbGlkYXRlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ0NPTU1PTi5CVE5fVkFMSURBVEVfV0lUSF9TSE9SVENVVF9IRUxQJ3x0cmFuc2xhdGVcIj5cbiAgICAgICAgICA8aW9uLWljb24gc2xvdD1cImljb24tb25seVwiIG5hbWU9XCJjaGVja21hcmtcIj48L2lvbi1pY29uPlxuICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgIDxpb24tYnV0dG9uICpuZ0lmPVwiIWVkaXRpbmdcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2FuY2VsKClcIlxuICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ0NPTU1PTi5CVE5fQ0xPU0UnfHRyYW5zbGF0ZVwiPlxuICAgICAgICAgIDxpb24taWNvbiBzbG90PVwiaWNvbi1vbmx5XCIgbmFtZT1cImNsb3NlXCI+PC9pb24taWNvbj5cbiAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9pb24tYnV0dG9ucz5cbiAgPC9pb24tdG9vbGJhcj5cbjwvaW9uLWhlYWRlcj5cblxuPGlvbi1jb250ZW50IGNsYXNzPVwiaW9uLXBhZGRpbmdcIlxuICAgICAgICAgICAgIFtjbGFzcy5oYXMtaGVhZGVyXT1cInNob3dIZWFkZXJcIlxuICAgICAgICAgICAgIGNka1RyYXBGb2N1cyBbY2RrVHJhcEZvY3VzQXV0b0NhcHR1cmVdPVwidHJ1ZVwiPlxuICA8aW9uLWl0ZW0gKm5nSWY9XCJmb3JtLmVycm9yXCIgdmlzaWJsZS14cyB2aXNpYmxlLXNtIHZpc2libGUtbW9iaWxlIGxpbmVzPVwibm9uZVwiPlxuICAgIDxpb24taWNvbiBjb2xvcj1cImRhbmdlclwiIHNsb3Q9XCJzdGFydFwiIG5hbWU9XCJhbGVydC1jaXJjbGVcIj48L2lvbi1pY29uPlxuICAgIDxpb24tbGFiZWwgY29sb3I9XCJkYW5nZXJcIiBjbGFzcz1cImVycm9yXCIgW2lubmVySFRNTF09XCJmb3JtLmVycm9yfHRyYW5zbGF0ZVwiPjwvaW9uLWxhYmVsPlxuICA8L2lvbi1pdGVtPlxuXG4gIDxhcHAtdGV4dC1mb3JtICNmb3JtIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICAgICAgICAgICAgIFttdWx0aWxpbmVdPVwibXVsdGlsaW5lXCJcbiAgICAgICAgICAgICAgICAgW21heExlbmd0aF09XCJtYXhMZW5ndGhcIlxuICAgICAgICAgICAgICAgICBbYXV0b0hlaWdodF09XCJhdXRvSGVpZ2h0XCJcbiAgICAgICAgICAgICAgICAgW2F1dG9mb2N1c109XCJlZGl0aW5nICYmIGF1dG9mb2N1c1wiXG4gICAgICAgICAgICAgICAgIFt2YWxpZGF0b3JdPVwidmFsaWRhdG9yXCJcbiAgICAgICAgICAgICAgICAgKG9uU3VibWl0KT1cIm9uVmFsaWRhdGUoJGV2ZW50KVwiXG4gID48L2FwcC10ZXh0LWZvcm0+XG48L2lvbi1jb250ZW50PlxuXG48aW9uLWZvb3RlciAqbmdJZj1cInNob3dGb290ZXJcIj5cbiAgPGlvbi10b29sYmFyPlxuICAgIDxpb24tcm93IGNsYXNzPVwiaW9uLW5vLXBhZGRpbmdcIiBub3dyYXA+XG4gICAgICA8aW9uLWNvbD5cblxuICAgICAgPC9pb24tY29sPlxuXG4gICAgICA8aW9uLWNvbCBzaXplPVwiYXV0b1wiPlxuICAgICAgICA8aW9uLWJ1dHRvbiBmaWxsPVwiY2xlYXJcIiBjb2xvcj1cImRhcmtcIiAoY2xpY2spPVwiY2FuY2VsKClcIj5cbiAgICAgICAgICA8aW9uLWxhYmVsIHRyYW5zbGF0ZT5DT01NT04uQlROX0NBTkNFTDwvaW9uLWxhYmVsPlxuICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgIDxpb24tYnV0dG9uXG4gICAgICAgICAgW2ZpbGxdPVwiZGlzYWJsZWQgPyAnY2xlYXInIDogJ3NvbGlkJ1wiXG4gICAgICAgICAgKGNsaWNrKT1cIm9uVmFsaWRhdGUoJGV2ZW50KVwiXG4gICAgICAgICAgKGtleXVwLmVudGVyKT1cIm9uVmFsaWRhdGUoJGV2ZW50KVwiXG4gICAgICAgICAgY29sb3I9XCJ0ZXJ0aWFyeVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICBbdGl0bGVdPVwiJ0NPTU1PTi5CVE5fVkFMSURBVEVfV0lUSF9TSE9SVENVVF9IRUxQJ3x0cmFuc2xhdGVcIj5cbiAgICAgICAgICA8aW9uLWxhYmVsIHRyYW5zbGF0ZT5DT01NT04uQlROX1ZBTElEQVRFPC9pb24tbGFiZWw+XG4gICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgIDwvaW9uLWNvbD5cbiAgICA8L2lvbi1yb3c+XG4gIDwvaW9uLXRvb2xiYXI+XG48L2lvbi1mb290ZXI+XG4iXX0=