@unifylib/ui-lib 1.1.41 → 1.1.43

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.
@@ -7,6 +7,9 @@ import { TranslateModule } from "@ngx-translate/core";
7
7
  import { MatButton } from "@angular/material/button";
8
8
  import { MatInput } from "@angular/material/input";
9
9
  import { MatIcon } from "@angular/material/icon";
10
+ import { MatOption } from "@angular/material/core";
11
+ import { MatSelect } from "@angular/material/select";
12
+ import { NgForOf, NgIf } from "@angular/common";
10
13
  import * as i0 from "@angular/core";
11
14
  import * as i1 from "@angular/material/dialog";
12
15
  import * as i2 from "@angular/forms";
@@ -75,7 +78,7 @@ export class ActionCommentComponent {
75
78
  this.dialogRef.close();
76
79
  }
77
80
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ActionCommentComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
78
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ActionCommentComponent, isStandalone: true, selector: "app-action-comment", host: { listeners: { "window:keyup.esc": "onKeyUp()" } }, ngImport: i0, template: "<div class=\"dialog-container\" [dir]=\"currentDirection\">\r\n\r\n <div class=\"desktop-view\">\r\n <h2 mat-dialog-title class=\"dialog-title\">\r\n {{ titleKey | translate}} {{itemName}}\r\n </h2>\r\n\r\n <p class=\"dialog-subtitle\">\r\n {{ subtitleKey | translate }}\r\n </p>\r\n\r\n <p class=\"textarea-label\">\r\n {{ reasonLabelKey | translate }}\r\n </p>\r\n\r\n <mat-dialog-content class=\"content-section\">\r\n <mat-form-field appearance=\"outline\" class=\"w-100\">\r\n <textarea\r\n matInput\r\n [(ngModel)]=\"comment\"\r\n placeholder=\"{{ placeholderKey | translate }}\"\r\n cdkTextareaAutosize\r\n cdkAutosizeMinRows=\"4\"\r\n cdkAutosizeMaxRows=\"5\"\r\n ></textarea>\r\n </mat-form-field>\r\n\r\n <div class=\"info-box\">\r\n <mat-icon>info</mat-icon>\r\n <span class=\"info-text\">\r\n {{ warningKey | translate }}\r\n </span>\r\n </div>\r\n </mat-dialog-content>\r\n\r\n <mat-dialog-actions align=\"end\" class=\"footer-actions\">\r\n <button mat-stroked-button class=\"btn-none-background-primary cancel-btn\" (click)=\"cancel()\">\r\n {{ cancelKey | translate }}\r\n </button>\r\n\r\n <button mat-flat-button class=\"btn-background-primary warn-btn\" (click)=\"commentAndClose()\" [disabled]=\"!comment\">\r\n {{ actionKey | translate }}\r\n </button>\r\n </mat-dialog-actions>\r\n </div>\r\n\r\n <div class=\"mobile-view\">\r\n <div class=\"modal-header\">\r\n <div class=\"handle\"></div>\r\n <div class=\"header-content\">\r\n <p class=\"modal-title\">{{ titleKey | translate }}</p>\r\n <button class=\"close-button\" (click)=\"cancel()\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div class=\"modal-body\">\r\n <div class=\"textarea-label-mobile\">\r\n {{ reasonLabelKey | translate }} {{itemName}}\r\n </div>\r\n\r\n <mat-form-field appearance=\"outline\" class=\"textarea-field-mobile\">\r\n <textarea\r\n matInput\r\n [(ngModel)]=\"comment\"\r\n placeholder=\"{{ placeholderKey | translate }}\"\r\n cdkTextareaAutosize\r\n cdkAutosizeMinRows=\"4\"\r\n cdkAutosizeMaxRows=\"5\"\r\n class=\"textarea-mobile\"\r\n ></textarea>\r\n </mat-form-field>\r\n\r\n <div class=\"info-box-mobile\">\r\n <mat-icon class=\"info-icon-mobile\">info</mat-icon>\r\n <span class=\"info-text-mobile\">\r\n {{ warningKey | translate }}\r\n </span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"modal-actions-mobile\">\r\n <div class=\"actions-buttons-container\">\r\n <button mat-stroked-button class=\"btn-cancel-mobile\" (click)=\"cancel()\">\r\n {{ cancelKey | translate }}\r\n </button>\r\n <button mat-flat-button class=\"btn-action-mobile\" (click)=\"commentAndClose()\" [disabled]=\"!comment\">\r\n {{ actionKey | translate }}\r\n </button>\r\n </div>\r\n <div class=\"home-indicator\"></div>\r\n </div>\r\n </div>\r\n</div>", styles: [".dialog-container{position:relative}.desktop-view{display:block}.mobile-view{display:none}.dialog-title{font-size:20px;font-weight:600;padding:0 16px}.dialog-subtitle{color:#666;padding:0 20px}.textarea-label{font-weight:600;padding:5px 20px;margin:0;color:#000}.info-text{color:#888;font-family:Lusail,sans-serif;font-size:16px;font-style:normal;font-weight:400;line-height:120%}.info-box{display:flex;font-size:12px}.info-box mat-icon{font-size:18px;color:var(--primary-color-3nd)}.footer-actions{margin-top:0}.cancel-btn{width:121px!important}.warn-btn{width:171px!important}.content-section{padding:0 20px}.mobile-view{display:flex;flex-direction:column;gap:8px;background:#fff;padding:16px 24px;min-height:356px;box-sizing:border-box}.modal-header{display:flex;flex-direction:column;gap:8px;width:100%}.handle{width:36px;height:4px;background:#b7b7b7;border-radius:2px;margin:0 auto;flex-shrink:0}.header-content{display:flex;align-items:center;justify-content:space-between;width:100%;position:relative}.modal-title{font-family:Lusail,sans-serif;font-weight:500;font-size:14px;line-height:1.2;color:#161616;text-align:center;position:absolute;left:50%;transform:translate(-50%);margin:0;width:200px}.close-button{background:#f0eeee;border:none;border-radius:9999px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:8px;margin-left:auto;flex-shrink:0}.close-button mat-icon{font-size:20px;width:20px;height:20px;color:#000;overflow:visible}.close-button:hover{background:#e0e0e0}.modal-body{display:flex;flex-direction:column;gap:8px;width:100%;flex:1;min-height:0}.textarea-label-mobile{font-family:Lusail,sans-serif;font-weight:500;font-size:16px;line-height:1.2;color:#000;height:24px;max-height:24px;margin:0;padding:0}.textarea-field-mobile{width:100%;margin:0!important}:host ::ng-deep .textarea-field-mobile .mat-mdc-form-field-infix{min-height:107px;padding:16px!important}:host ::ng-deep .textarea-field-mobile .mat-mdc-form-field-outline{border:1px solid #b7b7b7!important;border-radius:8px!important}:host ::ng-deep .textarea-field-mobile textarea{font-family:Lusail,sans-serif;font-weight:300;font-size:16px;line-height:1.2;color:#888;resize:both}:host ::ng-deep .textarea-field-mobile textarea::placeholder{color:#888;font-weight:300;font-size:16px;line-height:1.2}.info-box-mobile{display:flex;gap:8px;align-items:flex-end;width:100%}.info-box-mobile .info-icon-mobile{font-size:18px;width:18px;height:20px;color:#b54708;flex-shrink:0;margin-top:2px}.info-box-mobile .info-text-mobile{font-family:Lusail,sans-serif;font-weight:300;font-size:16px;line-height:1;color:#5c5c5c;flex:1}.modal-actions-mobile{display:flex;flex-direction:column;gap:0;align-items:center;justify-content:center;width:100%;min-height:68px;position:relative}.actions-buttons-container{display:flex;gap:8px;align-items:center;justify-content:center;width:100%;margin-bottom:0;flex-shrink:0}.modal-actions-mobile>.actions-buttons-container>button{margin:0!important}.btn-cancel-mobile{width:160px!important;height:44px!important;border:1px solid #3e627b!important;border-radius:8px!important;background:#fff!important;font-family:Lusail,sans-serif;font-weight:500;font-size:16px;line-height:1.2;color:#0d4261!important}.btn-action-mobile{flex:1 1 0!important;min-width:0!important;height:44px!important;border-radius:8px!important;background:#0d4261!important;font-family:Lusail,sans-serif;font-weight:500;font-size:16px;line-height:1.2;color:#fff!important}.home-indicator{width:134px;height:5px;background:#161616;border-radius:100px;position:absolute;bottom:0;left:50%;transform:translate(-50%)}@media (max-width: 768px){.desktop-view{display:none!important}.mobile-view{display:flex!important}}:host ::ng-deep .mat-mdc-dialog-container{padding:0!important}@media (max-width: 768px){:host ::ng-deep .mat-mdc-dialog-container{max-width:100vw!important;width:100vw!important;margin:0!important;position:fixed!important;inset:auto 0 0!important;border-radius:0!important;max-height:90vh!important}:host ::ng-deep .cdk-overlay-backdrop{background-color:#00000080!important}}@media (min-width: 769px){.desktop-view{display:block!important}.mobile-view{display:none!important}}@media (max-width: 600px){::ng-deep cdk-global-overlay-wrapper{align-items:flex-end!important}}\n"], dependencies: [{ kind: "directive", type: MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "directive", type: MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { 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: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
81
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ActionCommentComponent, isStandalone: true, selector: "app-action-comment", host: { listeners: { "window:keyup.esc": "onKeyUp()" } }, ngImport: i0, template: "<div class=\"dialog-container\" [dir]=\"currentDirection\">\r\n\r\n <div class=\"desktop-view\">\r\n <h2 mat-dialog-title class=\"dialog-title\">\r\n {{ titleKey | translate}} {{itemName}}\r\n </h2>\r\n\r\n <p class=\"dialog-subtitle\">\r\n {{ subtitleKey | translate }}\r\n </p>\r\n\r\n <p class=\"textarea-label\">\r\n {{ reasonLabelKey | translate }}\r\n </p>\r\n\r\n <mat-dialog-content class=\"content-section\">\r\n\r\n <!-- OPTIONS MODE -->\r\n <ng-container *ngIf=\"data?.options?.length; else textMode\">\r\n\r\n <mat-form-field appearance=\"outline\" class=\"w-100\">\r\n <mat-select\r\n [(ngModel)]=\"comment\"\r\n [placeholder]=\"placeholderKey | translate\">\r\n\r\n <mat-option *ngFor=\"let item of data.options\" [value]=\"item\">\r\n {{ data.translate ? (item | translate) : item }}\r\n </mat-option>\r\n\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n </ng-container>\r\n\r\n <!-- TEXTAREA MODE -->\r\n <ng-template #textMode>\r\n <mat-form-field appearance=\"outline\" class=\"w-100\">\r\n <textarea\r\n matInput\r\n [(ngModel)]=\"comment\"\r\n [placeholder]=\"placeholderKey | translate\"\r\n cdkTextareaAutosize\r\n cdkAutosizeMinRows=\"4\"\r\n cdkAutosizeMaxRows=\"5\">\r\n </textarea>\r\n </mat-form-field>\r\n </ng-template>\r\n\r\n <div class=\"info-box\">\r\n <mat-icon>info</mat-icon>\r\n <span class=\"info-text\">\r\n {{ warningKey | translate }}\r\n </span>\r\n </div>\r\n\r\n </mat-dialog-content>\r\n <mat-dialog-actions align=\"end\" class=\"footer-actions\">\r\n <button mat-stroked-button class=\"btn-none-background-primary cancel-btn\" (click)=\"cancel()\">\r\n {{ cancelKey | translate }}\r\n </button>\r\n\r\n <button mat-flat-button class=\"btn-background-primary warn-btn\" (click)=\"commentAndClose()\" [disabled]=\"!comment\">\r\n {{ actionKey | translate }}\r\n </button>\r\n </mat-dialog-actions>\r\n </div>\r\n\r\n <div class=\"mobile-view\">\r\n <div class=\"modal-header\">\r\n <div class=\"handle\"></div>\r\n <div class=\"header-content\">\r\n <p class=\"modal-title\">{{ titleKey | translate }}</p>\r\n <button class=\"close-button\" (click)=\"cancel()\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div class=\"modal-body\">\r\n\r\n <div class=\"textarea-label-mobile\">\r\n {{ reasonLabelKey | translate }} {{ itemName }}\r\n </div>\r\n\r\n <ng-container *ngIf=\"data?.options?.length; else mobileText\">\r\n\r\n <mat-form-field appearance=\"outline\" class=\"textarea-field-mobile\">\r\n <mat-select\r\n [(ngModel)]=\"comment\"\r\n class=\"textarea-mobile\">\r\n\r\n <mat-option *ngFor=\"let item of data.options\" [value]=\"item\">\r\n {{ data.translate ? ( item | translate) : item }}\r\n </mat-option>\r\n\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n </ng-container>\r\n\r\n <ng-template #mobileText>\r\n <mat-form-field appearance=\"outline\" class=\"textarea-field-mobile\">\r\n <textarea\r\n matInput\r\n [(ngModel)]=\"comment\"\r\n [placeholder]=\"placeholderKey | translate\"\r\n cdkTextareaAutosize\r\n cdkAutosizeMinRows=\"4\"\r\n cdkAutosizeMaxRows=\"5\"\r\n class=\"textarea-mobile\">\r\n </textarea>\r\n </mat-form-field>\r\n </ng-template>\r\n\r\n <div class=\"info-box-mobile\">\r\n <mat-icon class=\"info-icon-mobile\">info</mat-icon>\r\n <span class=\"info-text-mobile\">\r\n {{ warningKey | translate }}\r\n </span>\r\n </div>\r\n\r\n </div>\r\n <div class=\"modal-actions-mobile\">\r\n <div class=\"actions-buttons-container\">\r\n <button mat-stroked-button class=\"btn-cancel-mobile\" (click)=\"cancel()\">\r\n {{ cancelKey | translate }}\r\n </button>\r\n <button mat-flat-button class=\"btn-action-mobile\" (click)=\"commentAndClose()\" [disabled]=\"!comment\">\r\n {{ actionKey | translate }}\r\n </button>\r\n </div>\r\n <div class=\"home-indicator\"></div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".dialog-container{position:relative}.desktop-view{display:block}.mobile-view{display:none}.dialog-title{font-size:20px;font-weight:600;padding:0 16px}.dialog-subtitle{color:#666;padding:0 20px}.textarea-label{font-weight:600;padding:5px 20px;margin:0;color:#000}.info-text{color:#888;font-family:Lusail,sans-serif;font-size:16px;font-style:normal;font-weight:400;line-height:120%}.info-box{display:flex;font-size:12px}.info-box mat-icon{font-size:18px;color:var(--primary-color-3nd)}.footer-actions{margin-top:0}.cancel-btn{width:121px!important}.warn-btn{width:171px!important}.content-section{padding:0 20px}.mobile-view{display:flex;flex-direction:column;gap:8px;background:#fff;padding:16px 24px;min-height:356px;box-sizing:border-box}.modal-header{display:flex;flex-direction:column;gap:8px;width:100%}.handle{width:36px;height:4px;background:#b7b7b7;border-radius:2px;margin:0 auto;flex-shrink:0}.header-content{display:flex;align-items:center;justify-content:space-between;width:100%;position:relative}.modal-title{font-family:Lusail,sans-serif;font-weight:500;font-size:14px;line-height:1.2;color:#161616;text-align:center;position:absolute;left:50%;transform:translate(-50%);margin:0;width:200px}.close-button{background:#f0eeee;border:none;border-radius:9999px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:8px;margin-left:auto;flex-shrink:0}.close-button mat-icon{font-size:20px;width:20px;height:20px;color:#000;overflow:visible}.close-button:hover{background:#e0e0e0}.modal-body{display:flex;flex-direction:column;gap:8px;width:100%;flex:1;min-height:0}.textarea-label-mobile{font-family:Lusail,sans-serif;font-weight:500;font-size:16px;line-height:1.2;color:#000;height:24px;max-height:24px;margin:0;padding:0}.textarea-field-mobile{width:100%;margin:0!important}:host ::ng-deep .textarea-field-mobile .mat-mdc-form-field-infix{min-height:107px;padding:16px!important}:host ::ng-deep .textarea-field-mobile .mat-mdc-form-field-outline{border:1px solid #b7b7b7!important;border-radius:8px!important}:host ::ng-deep .textarea-field-mobile textarea{font-family:Lusail,sans-serif;font-weight:300;font-size:16px;line-height:1.2;color:#888;resize:both}:host ::ng-deep .textarea-field-mobile textarea::placeholder{color:#888;font-weight:300;font-size:16px;line-height:1.2}.info-box-mobile{display:flex;gap:8px;align-items:flex-end;width:100%}.info-box-mobile .info-icon-mobile{font-size:18px;width:18px;height:20px;color:#b54708;flex-shrink:0;margin-top:2px}.info-box-mobile .info-text-mobile{font-family:Lusail,sans-serif;font-weight:300;font-size:16px;line-height:1;color:#5c5c5c;flex:1}.modal-actions-mobile{display:flex;flex-direction:column;gap:0;align-items:center;justify-content:center;width:100%;min-height:68px;position:relative}.actions-buttons-container{display:flex;gap:8px;align-items:center;justify-content:center;width:100%;margin-bottom:0;flex-shrink:0}.modal-actions-mobile>.actions-buttons-container>button{margin:0!important}.btn-cancel-mobile{width:160px!important;height:44px!important;border:1px solid #3e627b!important;border-radius:8px!important;background:#fff!important;font-family:Lusail,sans-serif;font-weight:500;font-size:16px;line-height:1.2;color:#0d4261!important}.btn-action-mobile{flex:1 1 0!important;min-width:0!important;height:44px!important;border-radius:8px!important;background:#0d4261!important;font-family:Lusail,sans-serif;font-weight:500;font-size:16px;line-height:1.2;color:#fff!important}.home-indicator{width:134px;height:5px;background:#161616;border-radius:100px;position:absolute;bottom:0;left:50%;transform:translate(-50%)}@media (max-width: 768px){.desktop-view{display:none!important}.mobile-view{display:flex!important}}:host ::ng-deep .mat-mdc-dialog-container{padding:0!important}@media (max-width: 768px){:host ::ng-deep .mat-mdc-dialog-container{max-width:100vw!important;width:100vw!important;margin:0!important;position:fixed!important;inset:auto 0 0!important;border-radius:0!important;max-height:90vh!important}:host ::ng-deep .cdk-overlay-backdrop{background-color:#00000080!important}}@media (min-width: 769px){.desktop-view{display:block!important}.mobile-view{display:none!important}}@media (max-width: 600px){::ng-deep cdk-global-overlay-wrapper{align-items:flex-end!important}}\n"], dependencies: [{ kind: "directive", type: MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "directive", type: MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { 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: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
79
82
  }
80
83
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ActionCommentComponent, decorators: [{
81
84
  type: Component,
@@ -89,8 +92,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
89
92
  MatDialogActions,
90
93
  MatButton,
91
94
  MatInput,
92
- MatIcon
93
- ], template: "<div class=\"dialog-container\" [dir]=\"currentDirection\">\r\n\r\n <div class=\"desktop-view\">\r\n <h2 mat-dialog-title class=\"dialog-title\">\r\n {{ titleKey | translate}} {{itemName}}\r\n </h2>\r\n\r\n <p class=\"dialog-subtitle\">\r\n {{ subtitleKey | translate }}\r\n </p>\r\n\r\n <p class=\"textarea-label\">\r\n {{ reasonLabelKey | translate }}\r\n </p>\r\n\r\n <mat-dialog-content class=\"content-section\">\r\n <mat-form-field appearance=\"outline\" class=\"w-100\">\r\n <textarea\r\n matInput\r\n [(ngModel)]=\"comment\"\r\n placeholder=\"{{ placeholderKey | translate }}\"\r\n cdkTextareaAutosize\r\n cdkAutosizeMinRows=\"4\"\r\n cdkAutosizeMaxRows=\"5\"\r\n ></textarea>\r\n </mat-form-field>\r\n\r\n <div class=\"info-box\">\r\n <mat-icon>info</mat-icon>\r\n <span class=\"info-text\">\r\n {{ warningKey | translate }}\r\n </span>\r\n </div>\r\n </mat-dialog-content>\r\n\r\n <mat-dialog-actions align=\"end\" class=\"footer-actions\">\r\n <button mat-stroked-button class=\"btn-none-background-primary cancel-btn\" (click)=\"cancel()\">\r\n {{ cancelKey | translate }}\r\n </button>\r\n\r\n <button mat-flat-button class=\"btn-background-primary warn-btn\" (click)=\"commentAndClose()\" [disabled]=\"!comment\">\r\n {{ actionKey | translate }}\r\n </button>\r\n </mat-dialog-actions>\r\n </div>\r\n\r\n <div class=\"mobile-view\">\r\n <div class=\"modal-header\">\r\n <div class=\"handle\"></div>\r\n <div class=\"header-content\">\r\n <p class=\"modal-title\">{{ titleKey | translate }}</p>\r\n <button class=\"close-button\" (click)=\"cancel()\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div class=\"modal-body\">\r\n <div class=\"textarea-label-mobile\">\r\n {{ reasonLabelKey | translate }} {{itemName}}\r\n </div>\r\n\r\n <mat-form-field appearance=\"outline\" class=\"textarea-field-mobile\">\r\n <textarea\r\n matInput\r\n [(ngModel)]=\"comment\"\r\n placeholder=\"{{ placeholderKey | translate }}\"\r\n cdkTextareaAutosize\r\n cdkAutosizeMinRows=\"4\"\r\n cdkAutosizeMaxRows=\"5\"\r\n class=\"textarea-mobile\"\r\n ></textarea>\r\n </mat-form-field>\r\n\r\n <div class=\"info-box-mobile\">\r\n <mat-icon class=\"info-icon-mobile\">info</mat-icon>\r\n <span class=\"info-text-mobile\">\r\n {{ warningKey | translate }}\r\n </span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"modal-actions-mobile\">\r\n <div class=\"actions-buttons-container\">\r\n <button mat-stroked-button class=\"btn-cancel-mobile\" (click)=\"cancel()\">\r\n {{ cancelKey | translate }}\r\n </button>\r\n <button mat-flat-button class=\"btn-action-mobile\" (click)=\"commentAndClose()\" [disabled]=\"!comment\">\r\n {{ actionKey | translate }}\r\n </button>\r\n </div>\r\n <div class=\"home-indicator\"></div>\r\n </div>\r\n </div>\r\n</div>", styles: [".dialog-container{position:relative}.desktop-view{display:block}.mobile-view{display:none}.dialog-title{font-size:20px;font-weight:600;padding:0 16px}.dialog-subtitle{color:#666;padding:0 20px}.textarea-label{font-weight:600;padding:5px 20px;margin:0;color:#000}.info-text{color:#888;font-family:Lusail,sans-serif;font-size:16px;font-style:normal;font-weight:400;line-height:120%}.info-box{display:flex;font-size:12px}.info-box mat-icon{font-size:18px;color:var(--primary-color-3nd)}.footer-actions{margin-top:0}.cancel-btn{width:121px!important}.warn-btn{width:171px!important}.content-section{padding:0 20px}.mobile-view{display:flex;flex-direction:column;gap:8px;background:#fff;padding:16px 24px;min-height:356px;box-sizing:border-box}.modal-header{display:flex;flex-direction:column;gap:8px;width:100%}.handle{width:36px;height:4px;background:#b7b7b7;border-radius:2px;margin:0 auto;flex-shrink:0}.header-content{display:flex;align-items:center;justify-content:space-between;width:100%;position:relative}.modal-title{font-family:Lusail,sans-serif;font-weight:500;font-size:14px;line-height:1.2;color:#161616;text-align:center;position:absolute;left:50%;transform:translate(-50%);margin:0;width:200px}.close-button{background:#f0eeee;border:none;border-radius:9999px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:8px;margin-left:auto;flex-shrink:0}.close-button mat-icon{font-size:20px;width:20px;height:20px;color:#000;overflow:visible}.close-button:hover{background:#e0e0e0}.modal-body{display:flex;flex-direction:column;gap:8px;width:100%;flex:1;min-height:0}.textarea-label-mobile{font-family:Lusail,sans-serif;font-weight:500;font-size:16px;line-height:1.2;color:#000;height:24px;max-height:24px;margin:0;padding:0}.textarea-field-mobile{width:100%;margin:0!important}:host ::ng-deep .textarea-field-mobile .mat-mdc-form-field-infix{min-height:107px;padding:16px!important}:host ::ng-deep .textarea-field-mobile .mat-mdc-form-field-outline{border:1px solid #b7b7b7!important;border-radius:8px!important}:host ::ng-deep .textarea-field-mobile textarea{font-family:Lusail,sans-serif;font-weight:300;font-size:16px;line-height:1.2;color:#888;resize:both}:host ::ng-deep .textarea-field-mobile textarea::placeholder{color:#888;font-weight:300;font-size:16px;line-height:1.2}.info-box-mobile{display:flex;gap:8px;align-items:flex-end;width:100%}.info-box-mobile .info-icon-mobile{font-size:18px;width:18px;height:20px;color:#b54708;flex-shrink:0;margin-top:2px}.info-box-mobile .info-text-mobile{font-family:Lusail,sans-serif;font-weight:300;font-size:16px;line-height:1;color:#5c5c5c;flex:1}.modal-actions-mobile{display:flex;flex-direction:column;gap:0;align-items:center;justify-content:center;width:100%;min-height:68px;position:relative}.actions-buttons-container{display:flex;gap:8px;align-items:center;justify-content:center;width:100%;margin-bottom:0;flex-shrink:0}.modal-actions-mobile>.actions-buttons-container>button{margin:0!important}.btn-cancel-mobile{width:160px!important;height:44px!important;border:1px solid #3e627b!important;border-radius:8px!important;background:#fff!important;font-family:Lusail,sans-serif;font-weight:500;font-size:16px;line-height:1.2;color:#0d4261!important}.btn-action-mobile{flex:1 1 0!important;min-width:0!important;height:44px!important;border-radius:8px!important;background:#0d4261!important;font-family:Lusail,sans-serif;font-weight:500;font-size:16px;line-height:1.2;color:#fff!important}.home-indicator{width:134px;height:5px;background:#161616;border-radius:100px;position:absolute;bottom:0;left:50%;transform:translate(-50%)}@media (max-width: 768px){.desktop-view{display:none!important}.mobile-view{display:flex!important}}:host ::ng-deep .mat-mdc-dialog-container{padding:0!important}@media (max-width: 768px){:host ::ng-deep .mat-mdc-dialog-container{max-width:100vw!important;width:100vw!important;margin:0!important;position:fixed!important;inset:auto 0 0!important;border-radius:0!important;max-height:90vh!important}:host ::ng-deep .cdk-overlay-backdrop{background-color:#00000080!important}}@media (min-width: 769px){.desktop-view{display:block!important}.mobile-view{display:none!important}}@media (max-width: 600px){::ng-deep cdk-global-overlay-wrapper{align-items:flex-end!important}}\n"] }]
95
+ MatIcon,
96
+ MatOption,
97
+ MatSelect,
98
+ NgForOf,
99
+ NgIf
100
+ ], template: "<div class=\"dialog-container\" [dir]=\"currentDirection\">\r\n\r\n <div class=\"desktop-view\">\r\n <h2 mat-dialog-title class=\"dialog-title\">\r\n {{ titleKey | translate}} {{itemName}}\r\n </h2>\r\n\r\n <p class=\"dialog-subtitle\">\r\n {{ subtitleKey | translate }}\r\n </p>\r\n\r\n <p class=\"textarea-label\">\r\n {{ reasonLabelKey | translate }}\r\n </p>\r\n\r\n <mat-dialog-content class=\"content-section\">\r\n\r\n <!-- OPTIONS MODE -->\r\n <ng-container *ngIf=\"data?.options?.length; else textMode\">\r\n\r\n <mat-form-field appearance=\"outline\" class=\"w-100\">\r\n <mat-select\r\n [(ngModel)]=\"comment\"\r\n [placeholder]=\"placeholderKey | translate\">\r\n\r\n <mat-option *ngFor=\"let item of data.options\" [value]=\"item\">\r\n {{ data.translate ? (item | translate) : item }}\r\n </mat-option>\r\n\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n </ng-container>\r\n\r\n <!-- TEXTAREA MODE -->\r\n <ng-template #textMode>\r\n <mat-form-field appearance=\"outline\" class=\"w-100\">\r\n <textarea\r\n matInput\r\n [(ngModel)]=\"comment\"\r\n [placeholder]=\"placeholderKey | translate\"\r\n cdkTextareaAutosize\r\n cdkAutosizeMinRows=\"4\"\r\n cdkAutosizeMaxRows=\"5\">\r\n </textarea>\r\n </mat-form-field>\r\n </ng-template>\r\n\r\n <div class=\"info-box\">\r\n <mat-icon>info</mat-icon>\r\n <span class=\"info-text\">\r\n {{ warningKey | translate }}\r\n </span>\r\n </div>\r\n\r\n </mat-dialog-content>\r\n <mat-dialog-actions align=\"end\" class=\"footer-actions\">\r\n <button mat-stroked-button class=\"btn-none-background-primary cancel-btn\" (click)=\"cancel()\">\r\n {{ cancelKey | translate }}\r\n </button>\r\n\r\n <button mat-flat-button class=\"btn-background-primary warn-btn\" (click)=\"commentAndClose()\" [disabled]=\"!comment\">\r\n {{ actionKey | translate }}\r\n </button>\r\n </mat-dialog-actions>\r\n </div>\r\n\r\n <div class=\"mobile-view\">\r\n <div class=\"modal-header\">\r\n <div class=\"handle\"></div>\r\n <div class=\"header-content\">\r\n <p class=\"modal-title\">{{ titleKey | translate }}</p>\r\n <button class=\"close-button\" (click)=\"cancel()\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div class=\"modal-body\">\r\n\r\n <div class=\"textarea-label-mobile\">\r\n {{ reasonLabelKey | translate }} {{ itemName }}\r\n </div>\r\n\r\n <ng-container *ngIf=\"data?.options?.length; else mobileText\">\r\n\r\n <mat-form-field appearance=\"outline\" class=\"textarea-field-mobile\">\r\n <mat-select\r\n [(ngModel)]=\"comment\"\r\n class=\"textarea-mobile\">\r\n\r\n <mat-option *ngFor=\"let item of data.options\" [value]=\"item\">\r\n {{ data.translate ? ( item | translate) : item }}\r\n </mat-option>\r\n\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n </ng-container>\r\n\r\n <ng-template #mobileText>\r\n <mat-form-field appearance=\"outline\" class=\"textarea-field-mobile\">\r\n <textarea\r\n matInput\r\n [(ngModel)]=\"comment\"\r\n [placeholder]=\"placeholderKey | translate\"\r\n cdkTextareaAutosize\r\n cdkAutosizeMinRows=\"4\"\r\n cdkAutosizeMaxRows=\"5\"\r\n class=\"textarea-mobile\">\r\n </textarea>\r\n </mat-form-field>\r\n </ng-template>\r\n\r\n <div class=\"info-box-mobile\">\r\n <mat-icon class=\"info-icon-mobile\">info</mat-icon>\r\n <span class=\"info-text-mobile\">\r\n {{ warningKey | translate }}\r\n </span>\r\n </div>\r\n\r\n </div>\r\n <div class=\"modal-actions-mobile\">\r\n <div class=\"actions-buttons-container\">\r\n <button mat-stroked-button class=\"btn-cancel-mobile\" (click)=\"cancel()\">\r\n {{ cancelKey | translate }}\r\n </button>\r\n <button mat-flat-button class=\"btn-action-mobile\" (click)=\"commentAndClose()\" [disabled]=\"!comment\">\r\n {{ actionKey | translate }}\r\n </button>\r\n </div>\r\n <div class=\"home-indicator\"></div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".dialog-container{position:relative}.desktop-view{display:block}.mobile-view{display:none}.dialog-title{font-size:20px;font-weight:600;padding:0 16px}.dialog-subtitle{color:#666;padding:0 20px}.textarea-label{font-weight:600;padding:5px 20px;margin:0;color:#000}.info-text{color:#888;font-family:Lusail,sans-serif;font-size:16px;font-style:normal;font-weight:400;line-height:120%}.info-box{display:flex;font-size:12px}.info-box mat-icon{font-size:18px;color:var(--primary-color-3nd)}.footer-actions{margin-top:0}.cancel-btn{width:121px!important}.warn-btn{width:171px!important}.content-section{padding:0 20px}.mobile-view{display:flex;flex-direction:column;gap:8px;background:#fff;padding:16px 24px;min-height:356px;box-sizing:border-box}.modal-header{display:flex;flex-direction:column;gap:8px;width:100%}.handle{width:36px;height:4px;background:#b7b7b7;border-radius:2px;margin:0 auto;flex-shrink:0}.header-content{display:flex;align-items:center;justify-content:space-between;width:100%;position:relative}.modal-title{font-family:Lusail,sans-serif;font-weight:500;font-size:14px;line-height:1.2;color:#161616;text-align:center;position:absolute;left:50%;transform:translate(-50%);margin:0;width:200px}.close-button{background:#f0eeee;border:none;border-radius:9999px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:8px;margin-left:auto;flex-shrink:0}.close-button mat-icon{font-size:20px;width:20px;height:20px;color:#000;overflow:visible}.close-button:hover{background:#e0e0e0}.modal-body{display:flex;flex-direction:column;gap:8px;width:100%;flex:1;min-height:0}.textarea-label-mobile{font-family:Lusail,sans-serif;font-weight:500;font-size:16px;line-height:1.2;color:#000;height:24px;max-height:24px;margin:0;padding:0}.textarea-field-mobile{width:100%;margin:0!important}:host ::ng-deep .textarea-field-mobile .mat-mdc-form-field-infix{min-height:107px;padding:16px!important}:host ::ng-deep .textarea-field-mobile .mat-mdc-form-field-outline{border:1px solid #b7b7b7!important;border-radius:8px!important}:host ::ng-deep .textarea-field-mobile textarea{font-family:Lusail,sans-serif;font-weight:300;font-size:16px;line-height:1.2;color:#888;resize:both}:host ::ng-deep .textarea-field-mobile textarea::placeholder{color:#888;font-weight:300;font-size:16px;line-height:1.2}.info-box-mobile{display:flex;gap:8px;align-items:flex-end;width:100%}.info-box-mobile .info-icon-mobile{font-size:18px;width:18px;height:20px;color:#b54708;flex-shrink:0;margin-top:2px}.info-box-mobile .info-text-mobile{font-family:Lusail,sans-serif;font-weight:300;font-size:16px;line-height:1;color:#5c5c5c;flex:1}.modal-actions-mobile{display:flex;flex-direction:column;gap:0;align-items:center;justify-content:center;width:100%;min-height:68px;position:relative}.actions-buttons-container{display:flex;gap:8px;align-items:center;justify-content:center;width:100%;margin-bottom:0;flex-shrink:0}.modal-actions-mobile>.actions-buttons-container>button{margin:0!important}.btn-cancel-mobile{width:160px!important;height:44px!important;border:1px solid #3e627b!important;border-radius:8px!important;background:#fff!important;font-family:Lusail,sans-serif;font-weight:500;font-size:16px;line-height:1.2;color:#0d4261!important}.btn-action-mobile{flex:1 1 0!important;min-width:0!important;height:44px!important;border-radius:8px!important;background:#0d4261!important;font-family:Lusail,sans-serif;font-weight:500;font-size:16px;line-height:1.2;color:#fff!important}.home-indicator{width:134px;height:5px;background:#161616;border-radius:100px;position:absolute;bottom:0;left:50%;transform:translate(-50%)}@media (max-width: 768px){.desktop-view{display:none!important}.mobile-view{display:flex!important}}:host ::ng-deep .mat-mdc-dialog-container{padding:0!important}@media (max-width: 768px){:host ::ng-deep .mat-mdc-dialog-container{max-width:100vw!important;width:100vw!important;margin:0!important;position:fixed!important;inset:auto 0 0!important;border-radius:0!important;max-height:90vh!important}:host ::ng-deep .cdk-overlay-backdrop{background-color:#00000080!important}}@media (min-width: 769px){.desktop-view{display:block!important}.mobile-view{display:none!important}}@media (max-width: 600px){::ng-deep cdk-global-overlay-wrapper{align-items:flex-end!important}}\n"] }]
94
101
  }], ctorParameters: () => [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
95
102
  type: Inject,
96
103
  args: [MAT_DIALOG_DATA]
@@ -98,4 +105,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
98
105
  type: HostListener,
99
106
  args: ['window:keyup.esc']
100
107
  }] } });
101
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWNvbW1lbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW52b2ljZXEvdWktbGliL3NyYy9saWIvY29tcG9uZW50cy9hY3Rpb24tY29tbWVudC9hY3Rpb24tY29tbWVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnZvaWNlcS91aS1saWIvc3JjL2xpYi9jb21wb25lbnRzL2FjdGlvbi1jb21tZW50L2FjdGlvbi1jb21tZW50LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBZ0IsTUFBTSxlQUFlLENBQUM7QUFDN0UsT0FBTyxFQUNMLGVBQWUsRUFDZixnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBRWhCLGNBQWMsRUFDZixNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUMxRCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDNUQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDakQsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLHdCQUF3QixDQUFDOzs7OztBQW9CL0MsTUFBTSxPQUFPLHNCQUFzQjtJQXFCakMsWUFBbUIsU0FBK0MsRUFDdEIsSUFBUztRQURsQyxjQUFTLEdBQVQsU0FBUyxDQUFzQztRQUN0QixTQUFJLEdBQUosSUFBSSxDQUFLO1FBckJyRCxhQUFRLEdBQVcsRUFBRSxD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QUMsR0FBRyxDQUFDLENBQUM7UUFFMUIsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDekIsQ0FBQzsrR0FqRVUsc0JBQXNCLDhDQXNCYixlQUFlO21HQXRCeEIsc0JBQXNCLHdJQ2xDbkMsdXFHQThGTSxreElEMUVGLGNBQWMsK0hBQ2QsWUFBWSw0TEFDWixnQkFBZ0Isd0dBQ2hCLFdBQVcsK21CQUNYLG1CQUFtQix3TUFDbkIsZUFBZSw0RkFDZixnQkFBZ0IsNEhBQ2hCLFNBQVMsaUxBQ1QsUUFBUSxpVUFDUixPQUFPOzs0RkFLRSxzQkFBc0I7a0JBbEJsQyxTQUFTOytCQUNFLG9CQUFvQixjQUNsQixJQUFJLFdBQ1A7d0JBQ1AsY0FBYzt3QkFDZCxZQUFZO3dCQUNaLGdCQUFnQjt3QkFDaEIsV0FBVzt3QkFDWCxtQkFBbUI7d0JBQ25CLGVBQWU7d0JBQ2YsZ0JBQWdCO3dCQUNoQixTQUFTO3dCQUNULFFBQVE7d0JBQ1IsT0FBTztxQkFDUjs7MEJBMEJZLE1BQU07MkJBQUMsZUFBZTt5Q0FHRCxPQUFPO3NCQUF4QyxZQUFZO3VCQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBIb3N0TGlzdGVuZXIsIEluamVjdCwgSW5wdXQsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgTUFUX0RJQUxPR19EQVRBLFxyXG4gIE1hdERpYWxvZ0FjdGlvbnMsXHJcbiAgTWF0RGlhbG9nQ29udGVudCxcclxuICBNYXREaWFsb2dSZWYsXHJcbiAgTWF0RGlhbG9nVGl0bGVcclxufSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nXCI7XHJcbmltcG9ydCB7TWF0Rm9ybUZpZWxkfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZFwiO1xyXG5pbXBvcnQge0Zvcm1zTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHtDZGtUZXh0YXJlYUF1dG9zaXplfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL3RleHQtZmllbGRcIjtcclxuaW1wb3J0IHtUcmFuc2xhdGVNb2R1bGV9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XHJcbmltcG9ydCB7TWF0QnV0dG9ufSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uXCI7XHJcbmltcG9ydCB7TWF0SW5wdXR9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9pbnB1dFwiO1xyXG5pbXBvcnQge01hdEljb259IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9pY29uXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1hY3Rpb24tY29tbWVudCcsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBNYXREaWFsb2dUaXRsZSxcclxuICAgIE1hdEZvcm1GaWVsZCxcclxuICAgIE1hdERpYWxvZ0NvbnRlbnQsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIENka1RleHRhcmVhQXV0b3NpemUsXHJcbiAgICBUcmFuc2xhdGVNb2R1bGUsXHJcbiAgICBNYXREaWFsb2dBY3Rpb25zLFxyXG4gICAgTWF0QnV0dG9uLFxyXG4gICAgTWF0SW5wdXQsXHJcbiAgICBNYXRJY29uXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vYWN0aW9uLWNvbW1lbnQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9hY3Rpb24tY29tbWVudC5jb21wb25lbnQuY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQWN0aW9uQ29tbWVudENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgaXRlbU5hbWU6IHN0cmluZyA9ICcnO1xyXG4gIHRpdGxlS2V5OiBzdHJpbmcgPSAnJztcclxuICBzdWJ0aXRsZUtleTogc3RyaW5nID0gJyc7XHJcbiAgcmVhc29uTGFiZWxLZXk6IHN0cmluZyA9ICcnO1xyXG4gIHBsYWNlaG9sZGVyS2V5OiBzdHJpbmcgPSAnJztcclxuICB3YXJuaW5nS2V5OiBzdHJpbmcgPSAnJztcclxuICBjYW5jZWxLZXk6IHN0cmluZyA9ICcnO1xyXG4gIGFjdGlvbktleTogc3RyaW5nID0gJyc7XHJcbiAgY3VycmVudERpcmVjdGlvbjogJ2x0cicgfCAncnRsJyA9ICdsdHInO1xyXG5cclxuICBhY3Rpb25MYWJlbCA6IHN0cmluZyA9JydcclxuICBpc1Rlcm1pbmF0aW9uIDogYm9vbGVhbj1mYWxzZTtcclxuICBjb21tZW50OiBzdHJpbmcgPSAnJztcclxuICBleHRlcm5hbDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNpZ25pbmdSZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHRva2VuUmVmZXJlbmNlOiBzdHJpbmcgPSBcIlwiO1xyXG4gIG90cDogc3RyaW5nID0gXCJcIjtcclxuICBpc1N1Ym1pdHRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHdhcm5pbmdNc2cgPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPEFjdGlvbkNvbW1lbnRDb21wb25lbnQ+LFxyXG4gICAgICAgICAgICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogYW55KSB7XHJcbiAgICBkaWFsb2dSZWYuZGlzYWJsZUNsb3NlID0gdHJ1ZTtcclxuICB9XHJcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OmtleXVwLmVzYycpIG9uS2V5VXAoKSB7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xyXG4gIH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuYWN0aW9uTGFiZWwgPSB0aGlzLmRhdGEubGFiZWw7XHJcbiAgICB0aGlzLmlzVGVybWluYXRpb24gPSB0aGlzLmRhdGEuaXNUZXJtaW5hdGlvbiA7XHJcbiAgICB0aGlzLnNpZ25pbmdSZXF1aXJlZCA9IHRoaXMuZGF0YS5zaWduaW5nUmVxdWlyZWQ7XHJcbiAgICB0aGlzLnRva2VuUmVmZXJlbmNlID0gdGhpcy5kYXRhLnRva2VuUmVmZXJlbmNlO1xyXG4gICAgdGhpcy53YXJuaW5nTXNnID0gdGhpcy5kYXRhLndhcm5pbmdNc2cgfHwgZmFsc2U7XHJcblxyXG4gICAgdGhpcy5pdGVtTmFtZSA9IHRoaXMuZGF0YS5kZXZpY2VOYW1lO1xyXG4gICAgdGhpcy50aXRsZUtleSA9IHRoaXMuZGF0YS50aXRsZUtleTtcclxuICAgIHRoaXMuc3VidGl0bGVLZXkgPSB0aGlzLmRhdGEuc3VidGl0bGVLZXk7XHJcbiAgICB0aGlzLnJlYXNvbkxhYmVsS2V5ID0gdGhpcy5kYXRhLnJlYXNvbkxhYmVsS2V5O1xyXG4gICAgdGhpcy5wbGFjZWhvbGRlcktleSA9IHRoaXMuZGF0YS5wbGFjZWhvbGRlcktleTtcclxuICAgIHRoaXMud2FybmluZ0tleSA9IHRoaXMuZGF0YS53YXJuaW5nS2V5O1xyXG4gICAgdGhpcy5jYW5jZWxLZXkgPSB0aGlzLmRhdGEuY2FuY2VsS2V5O1xyXG4gICAgdGhpcy5hY3Rpb25LZXkgPSB0aGlzLmRhdGEuYWN0aW9uS2V5O1xyXG4gICAgdGhpcy5jdXJyZW50RGlyZWN0aW9uICA9IHRoaXMuZGF0YS5kaXJlY3Rpb247XHJcbiAgfVxyXG5cclxuXHJcbiAgY29tbWVudEFuZENsb3NlKCkge1xyXG4gICAgdGhpcy5pc1N1Ym1pdHRlZCA9IHRydWU7XHJcbiAgICBpZiAodGhpcy5zaWduaW5nUmVxdWlyZWQgJiYgIXRoaXMub3RwKSByZXR1cm4gZmFsc2U7XHJcbiAgICBsZXQgb2JqOntba2V5OiBzdHJpbmddOmFueX0gPSB7XHJcbiAgICAgIGNvbW1lbnQ6IHRoaXMuY29tbWVudCxcclxuICAgICAgc2hhcmVFeHRlcm5hbCA6IHRoaXMuZXh0ZXJuYWxcclxuICAgIH07XHJcbiAgICAvL1xyXG4gICAgaWYodGhpcy5zaWduaW5nUmVxdWlyZWQpIG9ialtcInRva2VuXCJdID0gdGhpcy5vdHA7XHJcbiAgICBpZih0aGlzLnNpZ25pbmdSZXF1aXJlZCkgb2JqW1widG9rZW5SZWZlcmVuY2VcIl0gPSB0aGlzLnRva2VuUmVmZXJlbmNlO1xyXG4gICAgLy9cclxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKG9iaik7XHJcblxyXG4gICAgcmV0dXJuIFwiXCI7XHJcbiAgfVxyXG5cclxuICBjYW5jZWwoKSB7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImRpYWxvZy1jb250YWluZXJcIiBbZGlyXT1cImN1cnJlbnREaXJlY3Rpb25cIj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImRlc2t0b3Atdmlld1wiPlxyXG4gICAgPGgyIG1hdC1kaWFsb2ctdGl0bGUgY2xhc3M9XCJkaWFsb2ctdGl0bGVcIj5cclxuICAgICAge3sgdGl0bGVLZXkgfCB0cmFuc2xhdGV9fSB7e2l0ZW1OYW1lfX1cclxuICAgIDwvaDI+XHJcblxyXG4gICAgPHAgY2xhc3M9XCJkaWFsb2ctc3VidGl0bGVcIj5cclxuICAgICAge3sgc3VidGl0bGVLZXkgfCB0cmFuc2xhdGUgfX1cclxuICAgIDwvcD5cclxuXHJcbiAgICA8cCBjbGFzcz1cInRleHRhcmVhLWxhYmVsXCI+XHJcbiAgICAgIHt7IHJlYXNvbkxhYmVsS2V5IHwgdHJhbnNsYXRlIH19XHJcbiAgICA8L3A+XHJcblxyXG4gICA8bWF0LWRpYWxvZy1jb250ZW50IGNsYXNzPVwiY29udGVudC1zZWN0aW9uXCI+XHJcbiAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiIGNsYXNzPVwidy0xMDBcIj5cclxuICAgICAgICA8dGV4dGFyZWFcclxuICAgICAgICAgIG1hdElucHV0XHJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbW1lbnRcIlxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyBwbGFjZWhvbGRlcktleSB8IHRyYW5zbGF0ZSB9fVwiXHJcbiAgICAgICAgICBjZGtUZXh0YXJlYUF1dG9zaXplXHJcbiAgICAgICAgICBjZGtBdXRvc2l6ZU1pblJvd3M9XCI0XCJcclxuICAgICAgICAgIGNka0F1dG9zaXplTWF4Um93cz1cIjVcIlxyXG4gICAgICAgID48L3RleHRhcmVhPlxyXG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cImluZm8tYm94XCI+XHJcbiAgICAgICAgPG1hdC1pY29uPmluZm88L21hdC1pY29uPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiaW5mby10ZXh0XCI+XHJcbiAgICAgICAgICB7eyB3YXJuaW5nS2V5IHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbWF0LWRpYWxvZy1jb250ZW50PlxyXG5cclxuICAgIDxtYXQtZGlhbG9nLWFjdGlvbnMgYWxpZ249XCJlbmRcIiBjbGFzcz1cImZvb3Rlci1hY3Rpb25zXCI+XHJcbiAgICAgIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIGNsYXNzPVwiYnRuLW5vbmUtYmFja2dyb3VuZC1wcmltYXJ5IGNhbmNlbC1idG5cIiAoY2xpY2spPVwiY2FuY2VsKClcIj5cclxuICAgICAgICB7eyBjYW5jZWxLZXkgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICA8YnV0dG9uIG1hdC1mbGF0LWJ1dHRvbiBjbGFzcz1cImJ0bi1iYWNrZ3JvdW5kLXByaW1hcnkgd2Fybi1idG5cIiAoY2xpY2spPVwiY29tbWVudEFuZENsb3NlKClcIiBbZGlzYWJsZWRdPVwiIWNvbW1lbnRcIj5cclxuICAgICAgICB7eyBhY3Rpb25LZXkgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L21hdC1kaWFsb2ctYWN0aW9ucz5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cIm1vYmlsZS12aWV3XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJoYW5kbGVcIj48L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci1jb250ZW50XCI+XHJcbiAgICAgICAgPHAgY2xhc3M9XCJtb2RhbC10aXRsZVwiPnt7IHRpdGxlS2V5IHwgdHJhbnNsYXRlIH19PC9wPlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJjbG9zZS1idXR0b25cIiAoY2xpY2spPVwiY2FuY2VsKClcIj5cclxuICAgICAgICAgIDxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHlcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInRleHRhcmVhLWxhYmVsLW1vYmlsZVwiPlxyXG4gICAgICAgIHt7IHJlYXNvbkxhYmVsS2V5IHwgdHJhbnNsYXRlIH19IHt7aXRlbU5hbWV9fVxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiIGNsYXNzPVwidGV4dGFyZWEtZmllbGQtbW9iaWxlXCI+XHJcbiAgICAgICAgPHRleHRhcmVhXHJcbiAgICAgICAgICBtYXRJbnB1dFxyXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJjb21tZW50XCJcclxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgcGxhY2Vob2xkZXJLZXkgfCB0cmFuc2xhdGUgfX1cIlxyXG4gICAgICAgICAgY2RrVGV4dGFyZWFBdXRvc2l6ZVxyXG4gICAgICAgICAgY2RrQXV0b3NpemVNaW5Sb3dzPVwiNFwiXHJcbiAgICAgICAgICBjZGtBdXRvc2l6ZU1heFJvd3M9XCI1XCJcclxuICAgICAgICAgIGNsYXNzPVwidGV4dGFyZWEtbW9iaWxlXCJcclxuICAgICAgICA+PC90ZXh0YXJlYT5cclxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJpbmZvLWJveC1tb2JpbGVcIj5cclxuICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJpbmZvLWljb24tbW9iaWxlXCI+aW5mbzwvbWF0LWljb24+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJpbmZvLXRleHQtbW9iaWxlXCI+XHJcbiAgICAgICAgICB7eyB3YXJuaW5nS2V5IHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1hY3Rpb25zLW1vYmlsZVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYWN0aW9ucy1idXR0b25zLWNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIGNsYXNzPVwiYnRuLWNhbmNlbC1tb2JpbGVcIiAoY2xpY2spPVwiY2FuY2VsKClcIj5cclxuICAgICAgICAgIHt7IGNhbmNlbEtleSB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b24gbWF0LWZsYXQtYnV0dG9uIGNsYXNzPVwiYnRuLWFjdGlvbi1tb2JpbGVcIiAoY2xpY2spPVwiY29tbWVudEFuZENsb3NlKClcIiBbZGlzYWJsZWRdPVwiIWNvbW1lbnRcIj5cclxuICAgICAgICAgIHt7IGFjdGlvbktleSB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImhvbWUtaW5kaWNhdG9yXCI+PC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+Il19
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWNvbW1lbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW52b2ljZXEvdWktbGliL3NyYy9saWIvY29tcG9uZW50cy9hY3Rpb24tY29tbWVudC9hY3Rpb24tY29tbWVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnZvaWNlcS91aS1saWIvc3JjL2xpYi9jb21wb25lbnRzL2FjdGlvbi1jb21tZW50L2FjdGlvbi1jb21tZW50LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBZ0IsTUFBTSxlQUFlLENBQUM7QUFDN0UsT0FBTyxFQUNMLGVBQWUsRUFDZixnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBRWhCLGNBQWMsRUFDZixNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUMxRCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDNUQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDakQsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQy9DLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDbkQsT0FBTyxFQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7QUF3QjlDLE1BQU0sT0FBTyxzQkFBc0I7SUFxQmpDLFlBQW1CLFNBQStDLEVBQ3RCLElBQVM7UUFEbEMsY0FBUyxHQUFULFNBQVMsQ0FBc0M7UUFDdEIsU0FBSSxHQUFKLElBQUksQ0FBSztRQXJCckQsYUFBUSxHQUFXLEVBQUUsQ0FBQztRQUN0QixhQUFRLEdBQVcsRUFBRSxDQUFDO1FBQ3RCLGdCQUFXLEdBQVcsRUFBRSxDQUFDO1FBQ3pCLG1CQUFjLEdBQVcsRUFBRSxDQUFDO1FBQzVCLG1CQUFjLEdBQVcsRUFBRSxDQUFDO1FBQzVCLGVBQVUsR0FBVyxFQUFFLENBQUM7UUFDeEIsY0FBUyxHQUFXLEVBQUUsQ0FBQztRQUN2QixjQUFTLEdBQVcsRUFBRSxDQUFDO1FBQ3ZCLHFCQUFnQixHQUFrQixLQUFLLENBQUM7UUFFeEMsZ0JBQVcsR0FBVyxFQUFFLENBQUE7UUFDeEIsa0JBQWEsR0FBVyxLQUFLLENBQUM7UUFDOUIsWUFBTyxHQUFXLEVBQUUsQ0FBQztRQUNyQixhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLG9CQUFlLEdBQVksS0FBSyxDQUFDO1FBQ2pDLG1CQUFjLEdBQVcsRUFBRSxDQUFDO1FBQzVCLFFBQUcsR0FBVyxFQUFFLENBQUM7UUFDakIsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFDN0IsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUlqQixTQUFTLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztJQUNoQyxDQUFDO0lBQ2lDLE9BQU87UUFDdkMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBQ0QsUUFBUTtRQUNOLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDbkMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBRTtRQUM5QyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDO1FBQ2pELElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUM7UUFDL0MsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxLQUFLLENBQUM7UUFFaEQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUNyQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ25DLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDekMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUMvQyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDO1FBQy9DLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDdkMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUNyQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxnQkFBZ0IsR0FBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMvQyxDQUFDO0lBR0QsZUFBZTtRQUNiLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLElBQUksSUFBSSxDQUFDLGVBQWUsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDcEQsSUFBSSxHQUFHLEdBQXVCO1lBQzVCLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztZQUNyQixhQUFhLEVBQUcsSUFBSSxDQUFDLFFBQVE7U0FDOUIsQ0FBQztRQUNGLEVBQUU7UUFDRixJQUFHLElBQUksQ0FBQyxlQUFlO1lBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7UUFDakQsSUFBRyxJQUFJLENBQUMsZUFBZTtZQUFFLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7UUFDckUsRUFBRTtRQUNGLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRTFCLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3pCLENBQUM7K0dBakVVLHNCQUFzQiw4Q0FzQmIsZUFBZTttR0F0QnhCLHNCQUFzQix3SUN6Q25DLCsySUF1SUEsa3hJRGhISSxjQUFjLCtIQUNkLFlBQVksNExBQ1osZ0JBQWdCLHdHQUNoQixXQUFXLCttQkFDWCxtQkFBbUIsd01BQ25CLGVBQWUsNEZBQ2YsZ0JBQWdCLDRIQUNoQixTQUFTLGlMQUNULFFBQVEsaVVBQ1IsT0FBTywySUFDUCxTQUFTLHFKQUNULFNBQVMsd2VBQ1QsT0FBTyxtSEFDUCxJQUFJOzs0RkFLSyxzQkFBc0I7a0JBdEJsQyxTQUFTOytCQUNFLG9CQUFvQixjQUNsQixJQUFJLFdBQ1A7d0JBQ1AsY0FBYzt3QkFDZCxZQUFZO3dCQUNaLGdCQUFnQjt3QkFDaEIsV0FBVzt3QkFDWCxtQkFBbUI7d0JBQ25CLGVBQWU7d0JBQ2YsZ0JBQWdCO3dCQUNoQixTQUFTO3dCQUNULFFBQVE7d0JBQ1IsT0FBTzt3QkFDUCxTQUFTO3dCQUNULFNBQVM7d0JBQ1QsT0FBTzt3QkFDUCxJQUFJO3FCQUNMOzswQkEwQlksTUFBTTsyQkFBQyxlQUFlO3lDQUdELE9BQU87c0JBQXhDLFlBQVk7dUJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEhvc3RMaXN0ZW5lciwgSW5qZWN0LCBJbnB1dCwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBNQVRfRElBTE9HX0RBVEEsXHJcbiAgTWF0RGlhbG9nQWN0aW9ucyxcclxuICBNYXREaWFsb2dDb250ZW50LFxyXG4gIE1hdERpYWxvZ1JlZixcclxuICBNYXREaWFsb2dUaXRsZVxyXG59IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2dcIjtcclxuaW1wb3J0IHtNYXRGb3JtRmllbGR9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkXCI7XHJcbmltcG9ydCB7Rm9ybXNNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQge0Nka1RleHRhcmVhQXV0b3NpemV9IGZyb20gXCJAYW5ndWxhci9jZGsvdGV4dC1maWVsZFwiO1xyXG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZX0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcclxuaW1wb3J0IHtNYXRCdXR0b259IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9idXR0b25cIjtcclxuaW1wb3J0IHtNYXRJbnB1dH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2lucHV0XCI7XHJcbmltcG9ydCB7TWF0SWNvbn0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2ljb25cIjtcclxuaW1wb3J0IHtNYXRPcHRpb259IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9jb3JlXCI7XHJcbmltcG9ydCB7TWF0U2VsZWN0fSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0XCI7XHJcbmltcG9ydCB7TmdGb3JPZiwgTmdJZn0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtYWN0aW9uLWNvbW1lbnQnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgTWF0RGlhbG9nVGl0bGUsXHJcbiAgICBNYXRGb3JtRmllbGQsXHJcbiAgICBNYXREaWFsb2dDb250ZW50LFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBDZGtUZXh0YXJlYUF1dG9zaXplLFxyXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxyXG4gICAgTWF0RGlhbG9nQWN0aW9ucyxcclxuICAgIE1hdEJ1dHRvbixcclxuICAgIE1hdElucHV0LFxyXG4gICAgTWF0SWNvbixcclxuICAgIE1hdE9wdGlvbixcclxuICAgIE1hdFNlbGVjdCxcclxuICAgIE5nRm9yT2YsXHJcbiAgICBOZ0lmXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vYWN0aW9uLWNvbW1lbnQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9hY3Rpb24tY29tbWVudC5jb21wb25lbnQuY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQWN0aW9uQ29tbWVudENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgaXRlbU5hbWU6IHN0cmluZyA9ICcnO1xyXG4gIHRpdGxlS2V5OiBzdHJpbmcgPSAnJztcclxuICBzdWJ0aXRsZUtleTogc3RyaW5nID0gJyc7XHJcbiAgcmVhc29uTGFiZWxLZXk6IHN0cmluZyA9ICcnO1xyXG4gIHBsYWNlaG9sZGVyS2V5OiBzdHJpbmcgPSAnJztcclxuICB3YXJuaW5nS2V5OiBzdHJpbmcgPSAnJztcclxuICBjYW5jZWxLZXk6IHN0cmluZyA9ICcnO1xyXG4gIGFjdGlvbktleTogc3RyaW5nID0gJyc7XHJcbiAgY3VycmVudERpcmVjdGlvbjogJ2x0cicgfCAncnRsJyA9ICdsdHInO1xyXG5cclxuICBhY3Rpb25MYWJlbCA6IHN0cmluZyA9JydcclxuICBpc1Rlcm1pbmF0aW9uIDogYm9vbGVhbj1mYWxzZTtcclxuICBjb21tZW50OiBzdHJpbmcgPSAnJztcclxuICBleHRlcm5hbDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNpZ25pbmdSZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHRva2VuUmVmZXJlbmNlOiBzdHJpbmcgPSBcIlwiO1xyXG4gIG90cDogc3RyaW5nID0gXCJcIjtcclxuICBpc1N1Ym1pdHRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHdhcm5pbmdNc2cgPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPEFjdGlvbkNvbW1lbnRDb21wb25lbnQ+LFxyXG4gICAgICAgICAgICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogYW55KSB7XHJcbiAgICBkaWFsb2dSZWYuZGlzYWJsZUNsb3NlID0gdHJ1ZTtcclxuICB9XHJcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OmtleXVwLmVzYycpIG9uS2V5VXAoKSB7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xyXG4gIH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuYWN0aW9uTGFiZWwgPSB0aGlzLmRhdGEubGFiZWw7XHJcbiAgICB0aGlzLmlzVGVybWluYXRpb24gPSB0aGlzLmRhdGEuaXNUZXJtaW5hdGlvbiA7XHJcbiAgICB0aGlzLnNpZ25pbmdSZXF1aXJlZCA9IHRoaXMuZGF0YS5zaWduaW5nUmVxdWlyZWQ7XHJcbiAgICB0aGlzLnRva2VuUmVmZXJlbmNlID0gdGhpcy5kYXRhLnRva2VuUmVmZXJlbmNlO1xyXG4gICAgdGhpcy53YXJuaW5nTXNnID0gdGhpcy5kYXRhLndhcm5pbmdNc2cgfHwgZmFsc2U7XHJcblxyXG4gICAgdGhpcy5pdGVtTmFtZSA9IHRoaXMuZGF0YS5kZXZpY2VOYW1lO1xyXG4gICAgdGhpcy50aXRsZUtleSA9IHRoaXMuZGF0YS50aXRsZUtleTtcclxuICAgIHRoaXMuc3VidGl0bGVLZXkgPSB0aGlzLmRhdGEuc3VidGl0bGVLZXk7XHJcbiAgICB0aGlzLnJlYXNvbkxhYmVsS2V5ID0gdGhpcy5kYXRhLnJlYXNvbkxhYmVsS2V5O1xyXG4gICAgdGhpcy5wbGFjZWhvbGRlcktleSA9IHRoaXMuZGF0YS5wbGFjZWhvbGRlcktleTtcclxuICAgIHRoaXMud2FybmluZ0tleSA9IHRoaXMuZGF0YS53YXJuaW5nS2V5O1xyXG4gICAgdGhpcy5jYW5jZWxLZXkgPSB0aGlzLmRhdGEuY2FuY2VsS2V5O1xyXG4gICAgdGhpcy5hY3Rpb25LZXkgPSB0aGlzLmRhdGEuYWN0aW9uS2V5O1xyXG4gICAgdGhpcy5jdXJyZW50RGlyZWN0aW9uICA9IHRoaXMuZGF0YS5kaXJlY3Rpb247XHJcbiAgfVxyXG5cclxuXHJcbiAgY29tbWVudEFuZENsb3NlKCkge1xyXG4gICAgdGhpcy5pc1N1Ym1pdHRlZCA9IHRydWU7XHJcbiAgICBpZiAodGhpcy5zaWduaW5nUmVxdWlyZWQgJiYgIXRoaXMub3RwKSByZXR1cm4gZmFsc2U7XHJcbiAgICBsZXQgb2JqOntba2V5OiBzdHJpbmddOmFueX0gPSB7XHJcbiAgICAgIGNvbW1lbnQ6IHRoaXMuY29tbWVudCxcclxuICAgICAgc2hhcmVFeHRlcm5hbCA6IHRoaXMuZXh0ZXJuYWxcclxuICAgIH07XHJcbiAgICAvL1xyXG4gICAgaWYodGhpcy5zaWduaW5nUmVxdWlyZWQpIG9ialtcInRva2VuXCJdID0gdGhpcy5vdHA7XHJcbiAgICBpZih0aGlzLnNpZ25pbmdSZXF1aXJlZCkgb2JqW1widG9rZW5SZWZlcmVuY2VcIl0gPSB0aGlzLnRva2VuUmVmZXJlbmNlO1xyXG4gICAgLy9cclxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKG9iaik7XHJcblxyXG4gICAgcmV0dXJuIFwiXCI7XHJcbiAgfVxyXG5cclxuICBjYW5jZWwoKSB7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImRpYWxvZy1jb250YWluZXJcIiBbZGlyXT1cImN1cnJlbnREaXJlY3Rpb25cIj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImRlc2t0b3Atdmlld1wiPlxyXG4gICAgPGgyIG1hdC1kaWFsb2ctdGl0bGUgY2xhc3M9XCJkaWFsb2ctdGl0bGVcIj5cclxuICAgICAge3sgdGl0bGVLZXkgfCB0cmFuc2xhdGV9fSB7e2l0ZW1OYW1lfX1cclxuICAgIDwvaDI+XHJcblxyXG4gICAgPHAgY2xhc3M9XCJkaWFsb2ctc3VidGl0bGVcIj5cclxuICAgICAge3sgc3VidGl0bGVLZXkgfCB0cmFuc2xhdGUgfX1cclxuICAgIDwvcD5cclxuXHJcbiAgICA8cCBjbGFzcz1cInRleHRhcmVhLWxhYmVsXCI+XHJcbiAgICAgIHt7IHJlYXNvbkxhYmVsS2V5IHwgdHJhbnNsYXRlIH19XHJcbiAgICA8L3A+XHJcblxyXG4gICAgPG1hdC1kaWFsb2ctY29udGVudCBjbGFzcz1cImNvbnRlbnQtc2VjdGlvblwiPlxyXG5cclxuICAgICAgPCEtLSBPUFRJT05TIE1PREUgLS0+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkYXRhPy5vcHRpb25zPy5sZW5ndGg7IGVsc2UgdGV4dE1vZGVcIj5cclxuXHJcbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgY2xhc3M9XCJ3LTEwMFwiPlxyXG4gICAgICAgICAgPG1hdC1zZWxlY3RcclxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjb21tZW50XCJcclxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyS2V5IHwgdHJhbnNsYXRlXCI+XHJcblxyXG4gICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBkYXRhLm9wdGlvbnNcIiBbdmFsdWVdPVwiaXRlbVwiPlxyXG4gICAgICAgICAgICAgIHt7IGRhdGEudHJhbnNsYXRlID8gKGl0ZW0gfCB0cmFuc2xhdGUpIDogaXRlbSB9fVxyXG4gICAgICAgICAgICA8L21hdC1vcHRpb24+XHJcblxyXG4gICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgIDwhLS0gVEVYVEFSRUEgTU9ERSAtLT5cclxuICAgICAgPG5nLXRlbXBsYXRlICN0ZXh0TW9kZT5cclxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBjbGFzcz1cInctMTAwXCI+XHJcbiAgICAgIDx0ZXh0YXJlYVxyXG4gICAgICAgIG1hdElucHV0XHJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJjb21tZW50XCJcclxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJLZXkgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgIGNka1RleHRhcmVhQXV0b3NpemVcclxuICAgICAgICBjZGtBdXRvc2l6ZU1pblJvd3M9XCI0XCJcclxuICAgICAgICBjZGtBdXRvc2l6ZU1heFJvd3M9XCI1XCI+XHJcbiAgICAgIDwvdGV4dGFyZWE+XHJcbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJpbmZvLWJveFwiPlxyXG4gICAgICAgIDxtYXQtaWNvbj5pbmZvPC9tYXQtaWNvbj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImluZm8tdGV4dFwiPlxyXG4gICAgICB7eyB3YXJuaW5nS2V5IHwgdHJhbnNsYXRlIH19XHJcbiAgICA8L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgIDwvbWF0LWRpYWxvZy1jb250ZW50PlxyXG4gICAgPG1hdC1kaWFsb2ctYWN0aW9ucyBhbGlnbj1cImVuZFwiIGNsYXNzPVwiZm9vdGVyLWFjdGlvbnNcIj5cclxuICAgICAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gY2xhc3M9XCJidG4tbm9uZS1iYWNrZ3JvdW5kLXByaW1hcnkgY2FuY2VsLWJ0blwiIChjbGljayk9XCJjYW5jZWwoKVwiPlxyXG4gICAgICAgIHt7IGNhbmNlbEtleSB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgIDxidXR0b24gbWF0LWZsYXQtYnV0dG9uIGNsYXNzPVwiYnRuLWJhY2tncm91bmQtcHJpbWFyeSB3YXJuLWJ0blwiIChjbGljayk9XCJjb21tZW50QW5kQ2xvc2UoKVwiIFtkaXNhYmxlZF09XCIhY29tbWVudFwiPlxyXG4gICAgICAgIHt7IGFjdGlvbktleSB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvbWF0LWRpYWxvZy1hY3Rpb25zPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IGNsYXNzPVwibW9iaWxlLXZpZXdcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImhhbmRsZVwiPjwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLWNvbnRlbnRcIj5cclxuICAgICAgICA8cCBjbGFzcz1cIm1vZGFsLXRpdGxlXCI+e3sgdGl0bGVLZXkgfCB0cmFuc2xhdGUgfX08L3A+XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImNsb3NlLWJ1dHRvblwiIChjbGljayk9XCJjYW5jZWwoKVwiPlxyXG4gICAgICAgICAgPG1hdC1pY29uPmNsb3NlPC9tYXQtaWNvbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keVwiPlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cInRleHRhcmVhLWxhYmVsLW1vYmlsZVwiPlxyXG4gICAgICAgIHt7IHJlYXNvbkxhYmVsS2V5IHwgdHJhbnNsYXRlIH19IHt7IGl0ZW1OYW1lIH19XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRhdGE/Lm9wdGlvbnM/Lmxlbmd0aDsgZWxzZSBtb2JpbGVUZXh0XCI+XHJcblxyXG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiIGNsYXNzPVwidGV4dGFyZWEtZmllbGQtbW9iaWxlXCI+XHJcbiAgICAgICAgICA8bWF0LXNlbGVjdFxyXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbW1lbnRcIlxyXG4gICAgICAgICAgICBjbGFzcz1cInRleHRhcmVhLW1vYmlsZVwiPlxyXG5cclxuICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGl0ZW0gb2YgZGF0YS5vcHRpb25zXCIgW3ZhbHVlXT1cIml0ZW1cIj5cclxuICAgICAgICAgICAgICB7eyBkYXRhLnRyYW5zbGF0ZSA/ICggaXRlbSB8IHRyYW5zbGF0ZSkgOiBpdGVtIH19XHJcbiAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cclxuXHJcbiAgICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgPG5nLXRlbXBsYXRlICNtb2JpbGVUZXh0PlxyXG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiIGNsYXNzPVwidGV4dGFyZWEtZmllbGQtbW9iaWxlXCI+XHJcbiAgICAgIDx0ZXh0YXJlYVxyXG4gICAgICAgIG1hdElucHV0XHJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJjb21tZW50XCJcclxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJLZXkgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgIGNka1RleHRhcmVhQXV0b3NpemVcclxuICAgICAgICBjZGtBdXRvc2l6ZU1pblJvd3M9XCI0XCJcclxuICAgICAgICBjZGtBdXRvc2l6ZU1heFJvd3M9XCI1XCJcclxuICAgICAgICBjbGFzcz1cInRleHRhcmVhLW1vYmlsZVwiPlxyXG4gICAgICA8L3RleHRhcmVhPlxyXG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaW5mby1ib3gtbW9iaWxlXCI+XHJcbiAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiaW5mby1pY29uLW1vYmlsZVwiPmluZm88L21hdC1pY29uPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiaW5mby10ZXh0LW1vYmlsZVwiPlxyXG4gICAgICB7eyB3YXJuaW5nS2V5IHwgdHJhbnNsYXRlIH19XHJcbiAgICA8L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsLWFjdGlvbnMtbW9iaWxlXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpb25zLWJ1dHRvbnMtY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gY2xhc3M9XCJidG4tY2FuY2VsLW1vYmlsZVwiIChjbGljayk9XCJjYW5jZWwoKVwiPlxyXG4gICAgICAgICAge3sgY2FuY2VsS2V5IHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gY2xhc3M9XCJidG4tYWN0aW9uLW1vYmlsZVwiIChjbGljayk9XCJjb21tZW50QW5kQ2xvc2UoKVwiIFtkaXNhYmxlZF09XCIhY29tbWVudFwiPlxyXG4gICAgICAgICAge3sgYWN0aW9uS2V5IHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaG9tZS1pbmRpY2F0b3JcIj48L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
@@ -27,7 +27,7 @@ export class ActionCardComponent {
27
27
  this.buttonClick.emit();
28
28
  }
29
29
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ActionCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
30
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ActionCardComponent, isStandalone: true, selector: "lib-action-card", inputs: { icon: "icon", iconSvg: "iconSvg", title: "title", description: "description", buttonText: "buttonText", buttonTextKey: "buttonTextKey", titleKey: "titleKey", descriptionKey: "descriptionKey", iconColor: "iconColor", borderColor: "borderColor", borderLeftColor: "borderLeftColor", borderRightColor: "borderRightColor", borderBottomColor: "borderBottomColor", topBorderColor: "topBorderColor", topBorderGradient: "topBorderGradient", buttonGradient: "buttonGradient", decorativeIconColor: "decorativeIconColor", featureCheckIconColor: "featureCheckIconColor", variant: "variant", iconSize: "iconSize", features: "features", featuresHeading: "featuresHeading", featuresHeadingKey: "featuresHeadingKey", showDivider: "showDivider", topBorderHeight: "topBorderHeight" }, outputs: { buttonClick: "buttonClick" }, ngImport: i0, template: "<div class=\"action-card\" \r\n [class.extended-variant]=\"variant === 'extended'\"\r\n [style.--top-border-gradient]=\"topBorderGradient || buttonGradient\" \r\n [style.--top-border-height]=\"topBorderHeight + 'px'\"\r\n [style.border-right-color]=\"borderRightColor || borderColor\" \r\n [style.border-bottom-color]=\"borderBottomColor || borderColor\" \r\n [style.border-left-color]=\"borderLeftColor || borderColor\">\r\n <div class=\"card-content\" [class.extended-content]=\"variant === 'extended'\">\r\n <div class=\"main-content\" [class.extended-main]=\"variant === 'extended'\">\r\n <div class=\"header-section\" [class.extended-header]=\"variant === 'extended'\">\r\n <div class=\"header-top-wrapper\" *ngIf=\"variant === 'default'\">\r\n <div class=\"icon-wrapper\" \r\n [style.color]=\"iconColor\"\r\n [style.width.px]=\"iconSize\"\r\n [style.height.px]=\"iconSize\">\r\n <img *ngIf=\"iconSvg\" [src]=\"iconSvg\" alt=\"\" class=\"icon-svg\" [style.width.px]=\"iconSize\" [style.height.px]=\"iconSize\" />\r\n <mat-icon *ngIf=\"!iconSvg && icon\" [style.font-size.px]=\"iconSize\" [style.width.px]=\"iconSize\" [style.height.px]=\"iconSize\">{{ icon }}</mat-icon>\r\n </div>\r\n <div class=\"header-top\">\r\n <h2 class=\"card-title\">\r\n <span *ngIf=\"titleKey\">{{ titleKey | translate }}</span>\r\n <span *ngIf=\"!titleKey\">{{ title }}</span>\r\n </h2>\r\n </div>\r\n </div>\r\n <div class=\"icon-wrapper\" \r\n *ngIf=\"variant === 'extended'\"\r\n [style.color]=\"iconColor\"\r\n [style.width.px]=\"iconSize\"\r\n [style.height.px]=\"iconSize\">\r\n <img *ngIf=\"iconSvg\" [src]=\"iconSvg\" alt=\"\" class=\"icon-svg\" [style.width.px]=\"iconSize\" [style.height.px]=\"iconSize\" />\r\n <mat-icon *ngIf=\"!iconSvg && icon\" [style.font-size.px]=\"iconSize\" [style.width.px]=\"iconSize\" [style.height.px]=\"iconSize\">{{ icon }}</mat-icon>\r\n </div>\r\n <div class=\"title-description-wrapper\" *ngIf=\"variant === 'extended'\">\r\n <h2 class=\"card-title\">\r\n <span *ngIf=\"titleKey\">{{ titleKey | translate }}</span>\r\n <span *ngIf=\"!titleKey\">{{ title }}</span>\r\n </h2>\r\n <p class=\"card-description\">\r\n <span *ngIf=\"descriptionKey\">{{ descriptionKey | translate }}</span>\r\n <span *ngIf=\"!descriptionKey\">{{ description }}</span>\r\n </p>\r\n </div>\r\n <p class=\"card-description\" *ngIf=\"variant === 'default'\">\r\n <span *ngIf=\"descriptionKey\">{{ descriptionKey | translate }}</span>\r\n <span *ngIf=\"!descriptionKey\">{{ description }}</span>\r\n </p>\r\n </div>\r\n <lib-action-button\r\n [buttonText]=\"buttonText\"\r\n [buttonTextKey]=\"buttonTextKey\"\r\n [buttonGradient]=\"buttonGradient\"\r\n (buttonClick)=\"onButtonClick()\">\r\n </lib-action-button>\r\n <div class=\"features-divider\" *ngIf=\"showDivider && features && features.length > 0\"></div>\r\n \r\n <div class=\"features-section\" *ngIf=\"features && features.length > 0\">\r\n <h3 class=\"features-heading\" *ngIf=\"featuresHeading || featuresHeadingKey\">\r\n <span *ngIf=\"featuresHeadingKey\">{{ featuresHeadingKey | translate }}</span>\r\n <span *ngIf=\"!featuresHeadingKey\">{{ featuresHeading }}</span>\r\n </h3>\r\n <div class=\"feature-item\" *ngFor=\"let feature of features\">\r\n <mat-icon class=\"feature-check-icon\" [style.color]=\"featureCheckIconColor || iconColor\">check_circle</mat-icon>\r\n <span class=\"feature-text\">\r\n <span *ngIf=\"feature.textKey\">{{ feature.textKey | translate }}</span>\r\n <span *ngIf=\"!feature.textKey\">{{ feature.text }}</span>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"decorative-icon-wrapper\" *ngIf=\"variant === 'default' && (icon || iconSvg)\">\r\n <div class=\"decorative-icon\">\r\n <img *ngIf=\"iconSvg\" [src]=\"iconSvg\" alt=\"\" class=\"decorative-icon-svg\" [style.filter]=\"'opacity(0.3)'\" />\r\n <mat-icon *ngIf=\"!iconSvg && icon\" [style.color]=\"decorativeIconColor\">{{ icon }}</mat-icon>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".action-card{background-color:var(--grayscale-surface-default, #ffffff);border-right:1px solid;border-bottom:1px solid;border-left:1px solid;border-radius:16px;width:100%;height:100%;min-height:247px;position:relative;overflow:hidden}.action-card:before{content:\"\";position:absolute;top:0;left:0;right:0;height:var(--top-border-height, 12px);background:var(--top-border-gradient, var(--button-gradient, linear-gradient(90deg, #E4C9D0 0%, #8A1538 100%)));border-radius:16px 16px 0 0;z-index:1}.action-card.extended-variant{min-height:572px}.card-content{display:flex;gap:8px;align-items:flex-start;padding:16px 20px;height:100%;position:relative;overflow:hidden;box-sizing:border-box}.card-content.extended-content{padding:20px;gap:0}.main-content{flex:1 1 0;display:flex;flex-direction:column;gap:64px;min-width:0;min-height:0}.main-content.extended-main{gap:24px}.header-section{display:flex;flex-direction:column;gap:12px;width:100%;height:83px}.header-section.extended-header{height:auto;gap:20px}.header-top-wrapper{display:flex;flex-direction:row;gap:12px;align-items:flex-start;width:100%}.header-top{display:flex;gap:8px;align-items:flex-start;flex:1}.title-description-wrapper{display:flex;flex-direction:column;gap:16px;width:100%}.icon-wrapper{flex-shrink:0;width:40px;height:40px;display:flex;align-items:center;justify-content:center;overflow:hidden}.icon-wrapper mat-icon{font-size:40px;width:40px;height:40px}.icon-wrapper .icon-svg{width:40px;height:40px;object-fit:contain}.card-title{font-family:lusail-bold,sans-serif;font-weight:700;font-size:24px!important;line-height:1.2;color:#222;margin:0;height:40px;display:flex;align-items:flex-end;justify-content:flex-start;flex:1}.extended-variant .card-title{color:#000;height:auto}.card-description{font-family:lusail-regular,sans-serif;font-weight:400;font-size:20px!important;line-height:1.2;color:#888;margin:0;height:40px;display:flex;align-items:center}.extended-variant .card-description{font-family:lusail-light,sans-serif;font-weight:300;height:auto}.decorative-icon-wrapper{position:relative;width:153px;height:211px;flex-shrink:0}.decorative-icon{position:absolute;left:0;top:43px;width:144px;height:152px;opacity:.3;display:flex;align-items:center;justify-content:center;pointer-events:none;overflow:hidden}.decorative-icon mat-icon{font-size:152px;width:144px;height:152px}.decorative-icon .decorative-icon-svg{width:144px;height:152px;object-fit:contain}.features-divider{width:100%;height:1px;background-color:#e9e9e9;margin:0}.features-section{display:flex;flex-direction:column;gap:24px;width:100%}.features-section .feature-item:not(:last-child){margin-bottom:0}.features-heading{font-family:lusail-bold,sans-serif;font-weight:700;font-size:20px!important;line-height:1.2;color:#2e2e2e;margin:0;padding:0}.feature-item{display:flex;gap:20px;align-items:center;width:100%;padding:0;margin:0}.feature-check-icon{font-size:24px!important;width:24px;height:24px;flex-shrink:0}.feature-text{font-family:lusail-light,sans-serif;font-weight:300;font-size:20px!important;line-height:1.2;color:#2e2e2e;flex:1}@media (max-width: 768px){.action-card{min-height:221px;border-radius:16px}.action-card.extended-variant{min-height:221px}.card-content,.card-content.extended-content{padding:16px 20px;gap:8px}.main-content,.main-content.extended-main{gap:64px}.header-section,.header-section.extended-header{height:83px;gap:12px}.header-top-wrapper{gap:8px}.icon-wrapper{width:32px;height:32px}.icon-wrapper mat-icon{font-size:32px;width:32px;height:32px}.icon-wrapper .icon-svg{width:32px;height:32px}.card-description{font-size:16px!important;height:auto;line-height:1.2}.title-description-wrapper{gap:12px}.decorative-icon-wrapper{display:none}.features-section{gap:16px}.features-heading{font-size:18px!important}.feature-item{gap:12px}.feature-check-icon{font-size:20px!important;width:20px;height:20px}.feature-text{font-size:16px!important}::ng-deep .cards-grid{grid-template-columns:repeat(1,1fr)!important}::ng-deep .solution-cards-row{flex-direction:column!important}::ng-deep .action-button{height:40px!important}::ng-deep .action-button .button-texts span{font-size:16px!important}::ng-deep .welcome-title{font-size:20px!important}::ng-deep .welcome-subtitle{font-size:14px!important}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "component", type: ActionButtonComponent, selector: "lib-action-button", inputs: ["buttonText", "buttonTextKey", "buttonGradient", "id"], outputs: ["buttonClick"] }] }); }
30
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ActionCardComponent, isStandalone: true, selector: "lib-action-card", inputs: { icon: "icon", iconSvg: "iconSvg", title: "title", description: "description", buttonText: "buttonText", buttonTextKey: "buttonTextKey", titleKey: "titleKey", descriptionKey: "descriptionKey", iconColor: "iconColor", borderColor: "borderColor", borderLeftColor: "borderLeftColor", borderRightColor: "borderRightColor", borderBottomColor: "borderBottomColor", topBorderColor: "topBorderColor", topBorderGradient: "topBorderGradient", buttonGradient: "buttonGradient", decorativeIconColor: "decorativeIconColor", featureCheckIconColor: "featureCheckIconColor", variant: "variant", iconSize: "iconSize", features: "features", featuresHeading: "featuresHeading", featuresHeadingKey: "featuresHeadingKey", showDivider: "showDivider", topBorderHeight: "topBorderHeight" }, outputs: { buttonClick: "buttonClick" }, ngImport: i0, template: "<div class=\"action-card\" \r\n [class.extended-variant]=\"variant === 'extended'\"\r\n [style.--top-border-gradient]=\"topBorderGradient || buttonGradient\" \r\n [style.--top-border-height]=\"topBorderHeight + 'px'\"\r\n [style.border-right-color]=\"borderRightColor || borderColor\" \r\n [style.border-bottom-color]=\"borderBottomColor || borderColor\" \r\n [style.border-left-color]=\"borderLeftColor || borderColor\">\r\n <div class=\"card-content\" [class.extended-content]=\"variant === 'extended'\">\r\n <div class=\"main-content\" [class.extended-main]=\"variant === 'extended'\">\r\n <div class=\"header-section\" [class.extended-header]=\"variant === 'extended'\">\r\n <div class=\"header-top-wrapper\" *ngIf=\"variant === 'default'\">\r\n <div class=\"icon-wrapper\" \r\n [style.color]=\"iconColor\"\r\n [style.width.px]=\"iconSize\"\r\n [style.height.px]=\"iconSize\">\r\n <img *ngIf=\"iconSvg\" [src]=\"iconSvg\" alt=\"\" class=\"icon-svg\" [style.width.px]=\"iconSize\" [style.height.px]=\"iconSize\" />\r\n <mat-icon *ngIf=\"!iconSvg && icon\" [style.font-size.px]=\"iconSize\" [style.width.px]=\"iconSize\" [style.height.px]=\"iconSize\">{{ icon }}</mat-icon>\r\n </div>\r\n <div class=\"header-top\">\r\n <h2 class=\"card-title\">\r\n <span *ngIf=\"titleKey\">{{ titleKey | translate }}</span>\r\n <span *ngIf=\"!titleKey\">{{ title }}</span>\r\n </h2>\r\n </div>\r\n </div>\r\n <div class=\"icon-wrapper\" \r\n *ngIf=\"variant === 'extended'\"\r\n [style.color]=\"iconColor\"\r\n [style.width.px]=\"iconSize\"\r\n [style.height.px]=\"iconSize\">\r\n <img *ngIf=\"iconSvg\" [src]=\"iconSvg\" alt=\"\" class=\"icon-svg\" [style.width.px]=\"iconSize\" [style.height.px]=\"iconSize\" />\r\n <mat-icon *ngIf=\"!iconSvg && icon\" [style.font-size.px]=\"iconSize\" [style.width.px]=\"iconSize\" [style.height.px]=\"iconSize\">{{ icon }}</mat-icon>\r\n </div>\r\n <div class=\"title-description-wrapper\" *ngIf=\"variant === 'extended'\">\r\n <h2 class=\"card-title\">\r\n <span *ngIf=\"titleKey\">{{ titleKey | translate }}</span>\r\n <span *ngIf=\"!titleKey\">{{ title }}</span>\r\n </h2>\r\n <p class=\"card-description\">\r\n <span *ngIf=\"descriptionKey\">{{ descriptionKey | translate }}</span>\r\n <span *ngIf=\"!descriptionKey\">{{ description }}</span>\r\n </p>\r\n </div>\r\n <p class=\"card-description\" *ngIf=\"variant === 'default'\">\r\n <span *ngIf=\"descriptionKey\">{{ descriptionKey | translate }}</span>\r\n <span *ngIf=\"!descriptionKey\">{{ description }}</span>\r\n </p>\r\n </div>\r\n <lib-action-button\r\n [buttonText]=\"buttonText\"\r\n [buttonTextKey]=\"buttonTextKey\"\r\n [buttonGradient]=\"buttonGradient\"\r\n (buttonClick)=\"onButtonClick()\">\r\n </lib-action-button>\r\n <div class=\"features-divider\" *ngIf=\"showDivider && features && features.length > 0\"></div>\r\n \r\n <div class=\"features-section\" *ngIf=\"features && features.length > 0\">\r\n <h3 class=\"features-heading\" *ngIf=\"featuresHeading || featuresHeadingKey\">\r\n <span *ngIf=\"featuresHeadingKey\">{{ featuresHeadingKey | translate }}</span>\r\n <span *ngIf=\"!featuresHeadingKey\">{{ featuresHeading }}</span>\r\n </h3>\r\n <div class=\"feature-item\" *ngFor=\"let feature of features\">\r\n <mat-icon class=\"feature-check-icon\" [style.color]=\"featureCheckIconColor || iconColor\">check_circle</mat-icon>\r\n <span class=\"feature-text\">\r\n <span *ngIf=\"feature.textKey\">{{ feature.textKey | translate }}</span>\r\n <span *ngIf=\"!feature.textKey\">{{ feature.text }}</span>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"decorative-icon-wrapper\" *ngIf=\"variant === 'default' && (icon || iconSvg)\">\r\n <div class=\"decorative-icon\">\r\n <img *ngIf=\"iconSvg\" [src]=\"iconSvg\" alt=\"\" class=\"decorative-icon-svg\" [style.filter]=\"'opacity(0.3)'\" />\r\n <mat-icon *ngIf=\"!iconSvg && icon\" [style.color]=\"decorativeIconColor\">{{ icon }}</mat-icon>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".action-card{background-color:var(--grayscale-surface-default, #ffffff);border-right:1px solid;border-bottom:1px solid;border-left:1px solid;border-radius:16px;width:100%;height:100%;min-height:247px;position:relative;overflow:hidden}.action-card:before{content:\"\";position:absolute;top:0;left:0;right:0;height:var(--top-border-height, 12px);background:var(--top-border-gradient, var(--button-gradient, linear-gradient(90deg, #E4C9D0 0%, #8A1538 100%)));border-radius:16px 16px 0 0;z-index:1}.action-card.extended-variant{min-height:572px}.card-content{display:flex;gap:8px;align-items:flex-start;padding:16px 20px;height:100%;position:relative;overflow:hidden;box-sizing:border-box}.card-content.extended-content{padding:20px;gap:0}.main-content{flex:1 1 0;display:flex;flex-direction:column;gap:64px;min-width:0;min-height:0}.main-content.extended-main{gap:24px}.header-section{display:flex;flex-direction:column;gap:12px;width:100%;height:83px}.header-section.extended-header{height:auto;gap:20px}.header-top-wrapper{display:flex;flex-direction:row;gap:12px;align-items:flex-start;width:100%}.header-top{display:flex;gap:8px;align-items:flex-start;flex:1}.title-description-wrapper{display:flex;flex-direction:column;gap:16px;width:100%}.icon-wrapper{flex-shrink:0;width:40px;height:40px;display:flex;align-items:center;justify-content:center;overflow:hidden}.icon-wrapper mat-icon{font-size:40px;width:40px;height:40px}.icon-wrapper .icon-svg{width:40px;height:40px;object-fit:contain}.card-title{font-family:lusail-bold,sans-serif;font-weight:700;font-size:24px!important;line-height:1.2;color:#222;margin:0;height:40px;display:flex;align-items:flex-end;justify-content:flex-start;flex:1}.extended-variant .card-title{color:#000;height:auto}.card-description{font-family:lusail-regular,sans-serif;font-weight:400;font-size:20px!important;line-height:1.2;color:#888;margin:0;height:40px;display:flex;align-items:center}.extended-variant .card-description{font-family:lusail-light,sans-serif;font-weight:300;height:100px}.decorative-icon-wrapper{position:relative;width:153px;height:211px;flex-shrink:0}.decorative-icon{position:absolute;left:0;top:43px;width:144px;height:152px;opacity:.3;display:flex;align-items:center;justify-content:center;pointer-events:none;overflow:hidden}.decorative-icon mat-icon{font-size:152px;width:144px;height:152px}.decorative-icon .decorative-icon-svg{width:144px;height:152px;object-fit:contain}.features-divider{width:100%;height:1px;background-color:#e9e9e9;margin:0}.features-section{display:flex;flex-direction:column;gap:24px;width:100%}.features-section .feature-item:not(:last-child){margin-bottom:0}.features-heading{font-family:lusail-bold,sans-serif;font-weight:700;font-size:20px!important;line-height:1.2;color:#2e2e2e;margin:0;padding:0}.feature-item{display:flex;gap:20px;align-items:center;width:100%;padding:0;margin:0}.feature-check-icon{font-size:24px!important;width:24px;height:24px;flex-shrink:0}.feature-text{font-family:lusail-light,sans-serif;font-weight:300;font-size:20px!important;line-height:1.2;color:#2e2e2e;flex:1}@media (max-width: 768px){.action-card{min-height:221px;border-radius:16px}.action-card.extended-variant{min-height:221px}.card-content,.card-content.extended-content{padding:16px 20px;gap:8px}.main-content,.main-content.extended-main{gap:64px}.header-section,.header-section.extended-header{height:83px;gap:12px}.header-top-wrapper{gap:8px}.icon-wrapper{width:32px;height:32px}.icon-wrapper mat-icon{font-size:32px;width:32px;height:32px}.icon-wrapper .icon-svg{width:32px;height:32px}.card-description{font-size:16px!important;height:auto;line-height:1.2}.title-description-wrapper{gap:12px}.decorative-icon-wrapper{display:none}.features-section{gap:16px}.features-heading{font-size:18px!important}.feature-item{gap:12px}.feature-check-icon{font-size:20px!important;width:20px;height:20px}.feature-text{font-size:16px!important}::ng-deep .cards-grid{grid-template-columns:repeat(1,1fr)!important}::ng-deep .solution-cards-row{flex-direction:column!important}::ng-deep .action-button{height:40px!important}::ng-deep .action-button .button-texts span{font-size:16px!important}::ng-deep .welcome-title{font-size:20px!important}::ng-deep .welcome-subtitle{font-size:14px!important}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "component", type: ActionButtonComponent, selector: "lib-action-button", inputs: ["buttonText", "buttonTextKey", "buttonGradient", "id"], outputs: ["buttonClick"] }] }); }
31
31
  }
32
32
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ActionCardComponent, decorators: [{
33
33
  type: Component,
@@ -36,7 +36,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
36
36
  MatIconModule,
37
37
  TranslateModule,
38
38
  ActionButtonComponent
39
- ], template: "<div class=\"action-card\" \r\n [class.extended-variant]=\"variant === 'extended'\"\r\n [style.--top-border-gradient]=\"topBorderGradient || buttonGradient\" \r\n [style.--top-border-height]=\"topBorderHeight + 'px'\"\r\n [style.border-right-color]=\"borderRightColor || borderColor\" \r\n [style.border-bottom-color]=\"borderBottomColor || borderColor\" \r\n [style.border-left-color]=\"borderLeftColor || borderColor\">\r\n <div class=\"card-content\" [class.extended-content]=\"variant === 'extended'\">\r\n <div class=\"main-content\" [class.extended-main]=\"variant === 'extended'\">\r\n <div class=\"header-section\" [class.extended-header]=\"variant === 'extended'\">\r\n <div class=\"header-top-wrapper\" *ngIf=\"variant === 'default'\">\r\n <div class=\"icon-wrapper\" \r\n [style.color]=\"iconColor\"\r\n [style.width.px]=\"iconSize\"\r\n [style.height.px]=\"iconSize\">\r\n <img *ngIf=\"iconSvg\" [src]=\"iconSvg\" alt=\"\" class=\"icon-svg\" [style.width.px]=\"iconSize\" [style.height.px]=\"iconSize\" />\r\n <mat-icon *ngIf=\"!iconSvg && icon\" [style.font-size.px]=\"iconSize\" [style.width.px]=\"iconSize\" [style.height.px]=\"iconSize\">{{ icon }}</mat-icon>\r\n </div>\r\n <div class=\"header-top\">\r\n <h2 class=\"card-title\">\r\n <span *ngIf=\"titleKey\">{{ titleKey | translate }}</span>\r\n <span *ngIf=\"!titleKey\">{{ title }}</span>\r\n </h2>\r\n </div>\r\n </div>\r\n <div class=\"icon-wrapper\" \r\n *ngIf=\"variant === 'extended'\"\r\n [style.color]=\"iconColor\"\r\n [style.width.px]=\"iconSize\"\r\n [style.height.px]=\"iconSize\">\r\n <img *ngIf=\"iconSvg\" [src]=\"iconSvg\" alt=\"\" class=\"icon-svg\" [style.width.px]=\"iconSize\" [style.height.px]=\"iconSize\" />\r\n <mat-icon *ngIf=\"!iconSvg && icon\" [style.font-size.px]=\"iconSize\" [style.width.px]=\"iconSize\" [style.height.px]=\"iconSize\">{{ icon }}</mat-icon>\r\n </div>\r\n <div class=\"title-description-wrapper\" *ngIf=\"variant === 'extended'\">\r\n <h2 class=\"card-title\">\r\n <span *ngIf=\"titleKey\">{{ titleKey | translate }}</span>\r\n <span *ngIf=\"!titleKey\">{{ title }}</span>\r\n </h2>\r\n <p class=\"card-description\">\r\n <span *ngIf=\"descriptionKey\">{{ descriptionKey | translate }}</span>\r\n <span *ngIf=\"!descriptionKey\">{{ description }}</span>\r\n </p>\r\n </div>\r\n <p class=\"card-description\" *ngIf=\"variant === 'default'\">\r\n <span *ngIf=\"descriptionKey\">{{ descriptionKey | translate }}</span>\r\n <span *ngIf=\"!descriptionKey\">{{ description }}</span>\r\n </p>\r\n </div>\r\n <lib-action-button\r\n [buttonText]=\"buttonText\"\r\n [buttonTextKey]=\"buttonTextKey\"\r\n [buttonGradient]=\"buttonGradient\"\r\n (buttonClick)=\"onButtonClick()\">\r\n </lib-action-button>\r\n <div class=\"features-divider\" *ngIf=\"showDivider && features && features.length > 0\"></div>\r\n \r\n <div class=\"features-section\" *ngIf=\"features && features.length > 0\">\r\n <h3 class=\"features-heading\" *ngIf=\"featuresHeading || featuresHeadingKey\">\r\n <span *ngIf=\"featuresHeadingKey\">{{ featuresHeadingKey | translate }}</span>\r\n <span *ngIf=\"!featuresHeadingKey\">{{ featuresHeading }}</span>\r\n </h3>\r\n <div class=\"feature-item\" *ngFor=\"let feature of features\">\r\n <mat-icon class=\"feature-check-icon\" [style.color]=\"featureCheckIconColor || iconColor\">check_circle</mat-icon>\r\n <span class=\"feature-text\">\r\n <span *ngIf=\"feature.textKey\">{{ feature.textKey | translate }}</span>\r\n <span *ngIf=\"!feature.textKey\">{{ feature.text }}</span>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"decorative-icon-wrapper\" *ngIf=\"variant === 'default' && (icon || iconSvg)\">\r\n <div class=\"decorative-icon\">\r\n <img *ngIf=\"iconSvg\" [src]=\"iconSvg\" alt=\"\" class=\"decorative-icon-svg\" [style.filter]=\"'opacity(0.3)'\" />\r\n <mat-icon *ngIf=\"!iconSvg && icon\" [style.color]=\"decorativeIconColor\">{{ icon }}</mat-icon>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".action-card{background-color:var(--grayscale-surface-default, #ffffff);border-right:1px solid;border-bottom:1px solid;border-left:1px solid;border-radius:16px;width:100%;height:100%;min-height:247px;position:relative;overflow:hidden}.action-card:before{content:\"\";position:absolute;top:0;left:0;right:0;height:var(--top-border-height, 12px);background:var(--top-border-gradient, var(--button-gradient, linear-gradient(90deg, #E4C9D0 0%, #8A1538 100%)));border-radius:16px 16px 0 0;z-index:1}.action-card.extended-variant{min-height:572px}.card-content{display:flex;gap:8px;align-items:flex-start;padding:16px 20px;height:100%;position:relative;overflow:hidden;box-sizing:border-box}.card-content.extended-content{padding:20px;gap:0}.main-content{flex:1 1 0;display:flex;flex-direction:column;gap:64px;min-width:0;min-height:0}.main-content.extended-main{gap:24px}.header-section{display:flex;flex-direction:column;gap:12px;width:100%;height:83px}.header-section.extended-header{height:auto;gap:20px}.header-top-wrapper{display:flex;flex-direction:row;gap:12px;align-items:flex-start;width:100%}.header-top{display:flex;gap:8px;align-items:flex-start;flex:1}.title-description-wrapper{display:flex;flex-direction:column;gap:16px;width:100%}.icon-wrapper{flex-shrink:0;width:40px;height:40px;display:flex;align-items:center;justify-content:center;overflow:hidden}.icon-wrapper mat-icon{font-size:40px;width:40px;height:40px}.icon-wrapper .icon-svg{width:40px;height:40px;object-fit:contain}.card-title{font-family:lusail-bold,sans-serif;font-weight:700;font-size:24px!important;line-height:1.2;color:#222;margin:0;height:40px;display:flex;align-items:flex-end;justify-content:flex-start;flex:1}.extended-variant .card-title{color:#000;height:auto}.card-description{font-family:lusail-regular,sans-serif;font-weight:400;font-size:20px!important;line-height:1.2;color:#888;margin:0;height:40px;display:flex;align-items:center}.extended-variant .card-description{font-family:lusail-light,sans-serif;font-weight:300;height:auto}.decorative-icon-wrapper{position:relative;width:153px;height:211px;flex-shrink:0}.decorative-icon{position:absolute;left:0;top:43px;width:144px;height:152px;opacity:.3;display:flex;align-items:center;justify-content:center;pointer-events:none;overflow:hidden}.decorative-icon mat-icon{font-size:152px;width:144px;height:152px}.decorative-icon .decorative-icon-svg{width:144px;height:152px;object-fit:contain}.features-divider{width:100%;height:1px;background-color:#e9e9e9;margin:0}.features-section{display:flex;flex-direction:column;gap:24px;width:100%}.features-section .feature-item:not(:last-child){margin-bottom:0}.features-heading{font-family:lusail-bold,sans-serif;font-weight:700;font-size:20px!important;line-height:1.2;color:#2e2e2e;margin:0;padding:0}.feature-item{display:flex;gap:20px;align-items:center;width:100%;padding:0;margin:0}.feature-check-icon{font-size:24px!important;width:24px;height:24px;flex-shrink:0}.feature-text{font-family:lusail-light,sans-serif;font-weight:300;font-size:20px!important;line-height:1.2;color:#2e2e2e;flex:1}@media (max-width: 768px){.action-card{min-height:221px;border-radius:16px}.action-card.extended-variant{min-height:221px}.card-content,.card-content.extended-content{padding:16px 20px;gap:8px}.main-content,.main-content.extended-main{gap:64px}.header-section,.header-section.extended-header{height:83px;gap:12px}.header-top-wrapper{gap:8px}.icon-wrapper{width:32px;height:32px}.icon-wrapper mat-icon{font-size:32px;width:32px;height:32px}.icon-wrapper .icon-svg{width:32px;height:32px}.card-description{font-size:16px!important;height:auto;line-height:1.2}.title-description-wrapper{gap:12px}.decorative-icon-wrapper{display:none}.features-section{gap:16px}.features-heading{font-size:18px!important}.feature-item{gap:12px}.feature-check-icon{font-size:20px!important;width:20px;height:20px}.feature-text{font-size:16px!important}::ng-deep .cards-grid{grid-template-columns:repeat(1,1fr)!important}::ng-deep .solution-cards-row{flex-direction:column!important}::ng-deep .action-button{height:40px!important}::ng-deep .action-button .button-texts span{font-size:16px!important}::ng-deep .welcome-title{font-size:20px!important}::ng-deep .welcome-subtitle{font-size:14px!important}}\n"] }]
39
+ ], template: "<div class=\"action-card\" \r\n [class.extended-variant]=\"variant === 'extended'\"\r\n [style.--top-border-gradient]=\"topBorderGradient || buttonGradient\" \r\n [style.--top-border-height]=\"topBorderHeight + 'px'\"\r\n [style.border-right-color]=\"borderRightColor || borderColor\" \r\n [style.border-bottom-color]=\"borderBottomColor || borderColor\" \r\n [style.border-left-color]=\"borderLeftColor || borderColor\">\r\n <div class=\"card-content\" [class.extended-content]=\"variant === 'extended'\">\r\n <div class=\"main-content\" [class.extended-main]=\"variant === 'extended'\">\r\n <div class=\"header-section\" [class.extended-header]=\"variant === 'extended'\">\r\n <div class=\"header-top-wrapper\" *ngIf=\"variant === 'default'\">\r\n <div class=\"icon-wrapper\" \r\n [style.color]=\"iconColor\"\r\n [style.width.px]=\"iconSize\"\r\n [style.height.px]=\"iconSize\">\r\n <img *ngIf=\"iconSvg\" [src]=\"iconSvg\" alt=\"\" class=\"icon-svg\" [style.width.px]=\"iconSize\" [style.height.px]=\"iconSize\" />\r\n <mat-icon *ngIf=\"!iconSvg && icon\" [style.font-size.px]=\"iconSize\" [style.width.px]=\"iconSize\" [style.height.px]=\"iconSize\">{{ icon }}</mat-icon>\r\n </div>\r\n <div class=\"header-top\">\r\n <h2 class=\"card-title\">\r\n <span *ngIf=\"titleKey\">{{ titleKey | translate }}</span>\r\n <span *ngIf=\"!titleKey\">{{ title }}</span>\r\n </h2>\r\n </div>\r\n </div>\r\n <div class=\"icon-wrapper\" \r\n *ngIf=\"variant === 'extended'\"\r\n [style.color]=\"iconColor\"\r\n [style.width.px]=\"iconSize\"\r\n [style.height.px]=\"iconSize\">\r\n <img *ngIf=\"iconSvg\" [src]=\"iconSvg\" alt=\"\" class=\"icon-svg\" [style.width.px]=\"iconSize\" [style.height.px]=\"iconSize\" />\r\n <mat-icon *ngIf=\"!iconSvg && icon\" [style.font-size.px]=\"iconSize\" [style.width.px]=\"iconSize\" [style.height.px]=\"iconSize\">{{ icon }}</mat-icon>\r\n </div>\r\n <div class=\"title-description-wrapper\" *ngIf=\"variant === 'extended'\">\r\n <h2 class=\"card-title\">\r\n <span *ngIf=\"titleKey\">{{ titleKey | translate }}</span>\r\n <span *ngIf=\"!titleKey\">{{ title }}</span>\r\n </h2>\r\n <p class=\"card-description\">\r\n <span *ngIf=\"descriptionKey\">{{ descriptionKey | translate }}</span>\r\n <span *ngIf=\"!descriptionKey\">{{ description }}</span>\r\n </p>\r\n </div>\r\n <p class=\"card-description\" *ngIf=\"variant === 'default'\">\r\n <span *ngIf=\"descriptionKey\">{{ descriptionKey | translate }}</span>\r\n <span *ngIf=\"!descriptionKey\">{{ description }}</span>\r\n </p>\r\n </div>\r\n <lib-action-button\r\n [buttonText]=\"buttonText\"\r\n [buttonTextKey]=\"buttonTextKey\"\r\n [buttonGradient]=\"buttonGradient\"\r\n (buttonClick)=\"onButtonClick()\">\r\n </lib-action-button>\r\n <div class=\"features-divider\" *ngIf=\"showDivider && features && features.length > 0\"></div>\r\n \r\n <div class=\"features-section\" *ngIf=\"features && features.length > 0\">\r\n <h3 class=\"features-heading\" *ngIf=\"featuresHeading || featuresHeadingKey\">\r\n <span *ngIf=\"featuresHeadingKey\">{{ featuresHeadingKey | translate }}</span>\r\n <span *ngIf=\"!featuresHeadingKey\">{{ featuresHeading }}</span>\r\n </h3>\r\n <div class=\"feature-item\" *ngFor=\"let feature of features\">\r\n <mat-icon class=\"feature-check-icon\" [style.color]=\"featureCheckIconColor || iconColor\">check_circle</mat-icon>\r\n <span class=\"feature-text\">\r\n <span *ngIf=\"feature.textKey\">{{ feature.textKey | translate }}</span>\r\n <span *ngIf=\"!feature.textKey\">{{ feature.text }}</span>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"decorative-icon-wrapper\" *ngIf=\"variant === 'default' && (icon || iconSvg)\">\r\n <div class=\"decorative-icon\">\r\n <img *ngIf=\"iconSvg\" [src]=\"iconSvg\" alt=\"\" class=\"decorative-icon-svg\" [style.filter]=\"'opacity(0.3)'\" />\r\n <mat-icon *ngIf=\"!iconSvg && icon\" [style.color]=\"decorativeIconColor\">{{ icon }}</mat-icon>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".action-card{background-color:var(--grayscale-surface-default, #ffffff);border-right:1px solid;border-bottom:1px solid;border-left:1px solid;border-radius:16px;width:100%;height:100%;min-height:247px;position:relative;overflow:hidden}.action-card:before{content:\"\";position:absolute;top:0;left:0;right:0;height:var(--top-border-height, 12px);background:var(--top-border-gradient, var(--button-gradient, linear-gradient(90deg, #E4C9D0 0%, #8A1538 100%)));border-radius:16px 16px 0 0;z-index:1}.action-card.extended-variant{min-height:572px}.card-content{display:flex;gap:8px;align-items:flex-start;padding:16px 20px;height:100%;position:relative;overflow:hidden;box-sizing:border-box}.card-content.extended-content{padding:20px;gap:0}.main-content{flex:1 1 0;display:flex;flex-direction:column;gap:64px;min-width:0;min-height:0}.main-content.extended-main{gap:24px}.header-section{display:flex;flex-direction:column;gap:12px;width:100%;height:83px}.header-section.extended-header{height:auto;gap:20px}.header-top-wrapper{display:flex;flex-direction:row;gap:12px;align-items:flex-start;width:100%}.header-top{display:flex;gap:8px;align-items:flex-start;flex:1}.title-description-wrapper{display:flex;flex-direction:column;gap:16px;width:100%}.icon-wrapper{flex-shrink:0;width:40px;height:40px;display:flex;align-items:center;justify-content:center;overflow:hidden}.icon-wrapper mat-icon{font-size:40px;width:40px;height:40px}.icon-wrapper .icon-svg{width:40px;height:40px;object-fit:contain}.card-title{font-family:lusail-bold,sans-serif;font-weight:700;font-size:24px!important;line-height:1.2;color:#222;margin:0;height:40px;display:flex;align-items:flex-end;justify-content:flex-start;flex:1}.extended-variant .card-title{color:#000;height:auto}.card-description{font-family:lusail-regular,sans-serif;font-weight:400;font-size:20px!important;line-height:1.2;color:#888;margin:0;height:40px;display:flex;align-items:center}.extended-variant .card-description{font-family:lusail-light,sans-serif;font-weight:300;height:100px}.decorative-icon-wrapper{position:relative;width:153px;height:211px;flex-shrink:0}.decorative-icon{position:absolute;left:0;top:43px;width:144px;height:152px;opacity:.3;display:flex;align-items:center;justify-content:center;pointer-events:none;overflow:hidden}.decorative-icon mat-icon{font-size:152px;width:144px;height:152px}.decorative-icon .decorative-icon-svg{width:144px;height:152px;object-fit:contain}.features-divider{width:100%;height:1px;background-color:#e9e9e9;margin:0}.features-section{display:flex;flex-direction:column;gap:24px;width:100%}.features-section .feature-item:not(:last-child){margin-bottom:0}.features-heading{font-family:lusail-bold,sans-serif;font-weight:700;font-size:20px!important;line-height:1.2;color:#2e2e2e;margin:0;padding:0}.feature-item{display:flex;gap:20px;align-items:center;width:100%;padding:0;margin:0}.feature-check-icon{font-size:24px!important;width:24px;height:24px;flex-shrink:0}.feature-text{font-family:lusail-light,sans-serif;font-weight:300;font-size:20px!important;line-height:1.2;color:#2e2e2e;flex:1}@media (max-width: 768px){.action-card{min-height:221px;border-radius:16px}.action-card.extended-variant{min-height:221px}.card-content,.card-content.extended-content{padding:16px 20px;gap:8px}.main-content,.main-content.extended-main{gap:64px}.header-section,.header-section.extended-header{height:83px;gap:12px}.header-top-wrapper{gap:8px}.icon-wrapper{width:32px;height:32px}.icon-wrapper mat-icon{font-size:32px;width:32px;height:32px}.icon-wrapper .icon-svg{width:32px;height:32px}.card-description{font-size:16px!important;height:auto;line-height:1.2}.title-description-wrapper{gap:12px}.decorative-icon-wrapper{display:none}.features-section{gap:16px}.features-heading{font-size:18px!important}.feature-item{gap:12px}.feature-check-icon{font-size:20px!important;width:20px;height:20px}.feature-text{font-size:16px!important}::ng-deep .cards-grid{grid-template-columns:repeat(1,1fr)!important}::ng-deep .solution-cards-row{flex-direction:column!important}::ng-deep .action-button{height:40px!important}::ng-deep .action-button .button-texts span{font-size:16px!important}::ng-deep .welcome-title{font-size:20px!important}::ng-deep .welcome-subtitle{font-size:14px!important}}\n"] }]
40
40
  }], propDecorators: { icon: [{
41
41
  type: Input
42
42
  }], iconSvg: [{
@@ -90,4 +90,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
90
90
  }], buttonClick: [{
91
91
  type: Output
92
92
  }] } });
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW52b2ljZXEvdWktbGliL3NyYy9saWIvY29tcG9uZW50cy9zaGFyZWQvYWN0aW9uLWNhcmQvYWN0aW9uLWNhcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW52b2ljZXEvdWktbGliL3NyYy9saWIvY29tcG9uZW50cy9zaGFyZWQvYWN0aW9uLWNhcmQvYWN0aW9uLWNhcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQzs7Ozs7QUFtQmpGLE1BQU0sT0FBTyxtQkFBbUI7SUFaaEM7UUFjVyxTQUFJLEdBQVcsRUFBRSxDQUFDO1FBRWxCLFVBQUssR0FBVyxFQUFFLENBQUM7UUFDbkIsZ0JBQVcsR0FBVyxFQUFFLENBQUM7UUFDekIsZUFBVSxHQUFXLEVBQUUsQ0FBQztRQUl4QixjQUFTLEdBQVcsU0FBUyxDQUFDO1FBQzlCLGdCQUFXLEdBQVcsU0FBUyxDQUFDO1FBTWhDLG1CQUFjLEdBQVcsa0RBQWtELENBQUM7UUFDNUUsd0JBQW1CLEdBQVcsd0JBQXdCLENBQUM7UUFFdkQsWUFBTyxHQUEyQixTQUFTLENBQUM7UUFDNUMsYUFBUSxHQUFXLEVBQUUsQ0FBQztRQUl0QixnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUM3QixvQkFBZSxHQUFXLEVBQUUsQ0FBQztRQUM1QixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7S0FLbEQ7SUFIQyxhQUFhO1FBQ1gsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMxQixDQUFDOytHQS9CVSxtQkFBbUI7bUdBQW5CLG1CQUFtQiw0M0JDdkJoQyw2N0lBNkVNLG91SUQ5REYsWUFBWSwrUEFDWixhQUFhLG1MQUNiLGVBQWUsNEZBQ2YscUJBQXFCOzs0RkFLWixtQkFBbUI7a0JBWi9CLFNBQVM7K0JBQ0UsaUJBQWlCLGNBQ2YsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osYUFBYTt3QkFDYixlQUFlO3dCQUNmLHFCQUFxQjtxQkFDdEI7OEJBTVEsSUFBSTtzQkFBWixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0cscUJBQXFCO3NCQUE3QixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNJLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBBY3Rpb25CdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi9hY3Rpb24tYnV0dG9uL2FjdGlvbi1idXR0b24uY29tcG9uZW50JztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRmVhdHVyZUl0ZW0ge1xyXG4gIHRleHQ/OiBzdHJpbmc7XHJcbiAgdGV4dEtleT86IHN0cmluZztcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItYWN0aW9uLWNhcmQnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgTWF0SWNvbk1vZHVsZSxcclxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcclxuICAgIEFjdGlvbkJ1dHRvbkNvbXBvbmVudFxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2FjdGlvbi1jYXJkLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vYWN0aW9uLWNhcmQuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBY3Rpb25DYXJkQ29tcG9uZW50IHtcclxuXHJcbiAgQElucHV0KCkgaWNvbjogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KCkgaWNvblN2Zz86IHN0cmluZztcclxuICBASW5wdXQoKSB0aXRsZTogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KCkgZGVzY3JpcHRpb246IHN0cmluZyA9ICcnO1xyXG4gIEBJbnB1dCgpIGJ1dHRvblRleHQ6IHN0cmluZyA9ICcnO1xyXG4gIEBJbnB1dCgpIGJ1dHRvblRleHRLZXk/OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgdGl0bGVLZXk/OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgZGVzY3JpcHRpb25LZXk/OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgaWNvbkNvbG9yOiBzdHJpbmcgPSAnIzhBMTUzOCc7XHJcbiAgQElucHV0KCkgYm9yZGVyQ29sb3I6IHN0cmluZyA9ICcjZDFkMWQxJztcclxuICBASW5wdXQoKSBib3JkZXJMZWZ0Q29sb3I/OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgYm9yZGVyUmlnaHRDb2xvcj86IHN0cmluZztcclxuICBASW5wdXQoKSBib3JkZXJCb3R0b21Db2xvcj86IHN0cmluZztcclxuICBASW5wdXQoKSB0b3BCb3JkZXJDb2xvcj86IHN0cmluZztcclxuICBASW5wdXQoKSB0b3BCb3JkZXJHcmFkaWVudD86IHN0cmluZztcclxuICBASW5wdXQoKSBidXR0b25HcmFkaWVudDogc3RyaW5nID0gJ2xpbmVhci1ncmFkaWVudCg5MGRlZywgI0U0QzlEMCAwJSwgIzhBMTUzOCAxMDAlKSc7XHJcbiAgQElucHV0KCkgZGVjb3JhdGl2ZUljb25Db2xvcjogc3RyaW5nID0gJ3JnYmEoMjA5LCAyMDMsIDIxNiwgMSknO1xyXG4gIEBJbnB1dCgpIGZlYXR1cmVDaGVja0ljb25Db2xvcj86IHN0cmluZztcclxuICBASW5wdXQoKSB2YXJpYW50OiAnZGVmYXVsdCcgfCAnZXh0ZW5kZWQnID0gJ2RlZmF1bHQnO1xyXG4gIEBJbnB1dCgpIGljb25TaXplOiBudW1iZXIgPSA0MDtcclxuICBASW5wdXQoKSBmZWF0dXJlcz86IEZlYXR1cmVJdGVtW107XHJcbiAgQElucHV0KCkgZmVhdHVyZXNIZWFkaW5nPzogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGZlYXR1cmVzSGVhZGluZ0tleT86IHN0cmluZztcclxuICBASW5wdXQoKSBzaG93RGl2aWRlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHRvcEJvcmRlckhlaWdodDogbnVtYmVyID0gMTI7XHJcbiAgQE91dHB1dCgpIGJ1dHRvbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICBvbkJ1dHRvbkNsaWNrKCk6IHZvaWQge1xyXG4gICAgdGhpcy5idXR0b25DbGljay5lbWl0KCk7XHJcbiAgfVxyXG59IiwiPGRpdiBjbGFzcz1cImFjdGlvbi1jYXJkXCIgXHJcbiAgICAgW2NsYXNzLmV4dGVuZGVkLXZhcmlhbnRdPVwidmFyaWFudCA9PT0gJ2V4dGVuZGVkJ1wiXHJcbiAgICAgW3N0eWxlLi0tdG9wLWJvcmRlci1ncmFkaWVudF09XCJ0b3BCb3JkZXJHcmFkaWVudCB8fCBidXR0b25HcmFkaWVudFwiIFxyXG4gICAgIFtzdHlsZS4tLXRvcC1ib3JkZXItaGVpZ2h0XT1cInRvcEJvcmRlckhlaWdodCArICdweCdcIlxyXG4gICAgIFtzdHlsZS5ib3JkZXItcmlnaHQtY29sb3JdPVwiYm9yZGVyUmlnaHRDb2xvciB8fCBib3JkZXJDb2xvclwiIFxyXG4gICAgIFtzdHlsZS5ib3JkZXItYm90dG9tLWNvbG9yXT1cImJvcmRlckJvdHRvbUNvbG9yIHx8IGJvcmRlckNvbG9yXCIgXHJcbiAgICAgW3N0eWxlLmJvcmRlci1sZWZ0LWNvbG9yXT1cImJvcmRlckxlZnRDb2xvciB8fCBib3JkZXJDb2xvclwiPlxyXG4gIDxkaXYgY2xhc3M9XCJjYXJkLWNvbnRlbnRcIiBbY2xhc3MuZXh0ZW5kZWQtY29udGVudF09XCJ2YXJpYW50ID09PSAnZXh0ZW5kZWQnXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwibWFpbi1jb250ZW50XCIgW2NsYXNzLmV4dGVuZGVkLW1haW5dPVwidmFyaWFudCA9PT0gJ2V4dGVuZGVkJ1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLXNlY3Rpb25cIiBbY2xhc3MuZXh0ZW5kZWQtaGVhZGVyXT1cInZhcmlhbnQgPT09ICdleHRlbmRlZCdcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLXRvcC13cmFwcGVyXCIgKm5nSWY9XCJ2YXJpYW50ID09PSAnZGVmYXVsdCdcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpY29uLXdyYXBwZXJcIiBcclxuICAgICAgICAgICAgICAgW3N0eWxlLmNvbG9yXT1cImljb25Db2xvclwiXHJcbiAgICAgICAgICAgICAgIFtzdHlsZS53aWR0aC5weF09XCJpY29uU2l6ZVwiXHJcbiAgICAgICAgICAgICAgIFtzdHlsZS5oZWlnaHQucHhdPVwiaWNvblNpemVcIj5cclxuICAgICAgICAgICAgPGltZyAqbmdJZj1cImljb25TdmdcIiBbc3JjXT1cImljb25TdmdcIiBhbHQ9XCJcIiBjbGFzcz1cImljb24tc3ZnXCIgW3N0eWxlLndpZHRoLnB4XT1cImljb25TaXplXCIgW3N0eWxlLmhlaWdodC5weF09XCJpY29uU2l6ZVwiIC8+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cIiFpY29uU3ZnICYmIGljb25cIiBbc3R5bGUuZm9udC1zaXplLnB4XT1cImljb25TaXplXCIgW3N0eWxlLndpZHRoLnB4XT1cImljb25TaXplXCIgW3N0eWxlLmhlaWdodC5weF09XCJpY29uU2l6ZVwiPnt7IGljb24gfX08L21hdC1pY29uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLXRvcFwiPlxyXG4gICAgICAgICAgICA8aDIgY2xhc3M9XCJjYXJkLXRpdGxlXCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJ0aXRsZUtleVwiPnt7IHRpdGxlS2V5IHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIXRpdGxlS2V5XCI+e3sgdGl0bGUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDwvaDI+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvbi13cmFwcGVyXCIgXHJcbiAgICAgICAgICAgICAqbmdJZj1cInZhcmlhbnQgPT09ICdleHRlbmRlZCdcIlxyXG4gICAgICAgICAgICAgW3N0eWxlLmNvbG9yXT1cImljb25Db2xvclwiXHJcbiAgICAgICAgICAgICBbc3R5bGUud2lkdGgucHhdPVwiaWNvblNpemVcIlxyXG4gICAgICAgICAgICAgW3N0eWxlLmhlaWdodC5weF09XCJpY29uU2l6ZVwiPlxyXG4gICAgICAgICAgPGltZyAqbmdJZj1cImljb25TdmdcIiBbc3JjXT1cImljb25TdmdcIiBhbHQ9XCJcIiBjbGFzcz1cImljb24tc3ZnXCIgW3N0eWxlLndpZHRoLnB4XT1cImljb25TaXplXCIgW3N0eWxlLmhlaWdodC5weF09XCJpY29uU2l6ZVwiIC8+XHJcbiAgICAgICAgICA8bWF0LWljb24gKm5nSWY9XCIhaWNvblN2ZyAmJiBpY29uXCIgW3N0eWxlLmZvbnQtc2l6ZS5weF09XCJpY29uU2l6ZVwiIFtzdHlsZS53aWR0aC5weF09XCJpY29uU2l6ZVwiIFtzdHlsZS5oZWlnaHQucHhdPVwiaWNvblNpemVcIj57eyBpY29uIH19PC9tYXQtaWNvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGUtZGVzY3JpcHRpb24td3JhcHBlclwiICpuZ0lmPVwidmFyaWFudCA9PT0gJ2V4dGVuZGVkJ1wiPlxyXG4gICAgICAgICAgPGgyIGNsYXNzPVwiY2FyZC10aXRsZVwiPlxyXG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cInRpdGxlS2V5XCI+e3sgdGl0bGVLZXkgfCB0cmFuc2xhdGUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIXRpdGxlS2V5XCI+e3sgdGl0bGUgfX08L3NwYW4+XHJcbiAgICAgICAgICA8L2gyPlxyXG4gICAgICAgICAgPHAgY2xhc3M9XCJjYXJkLWRlc2NyaXB0aW9uXCI+XHJcbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZGVzY3JpcHRpb25LZXlcIj57eyBkZXNjcmlwdGlvbktleSB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIhZGVzY3JpcHRpb25LZXlcIj57eyBkZXNjcmlwdGlvbiB9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvcD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8cCBjbGFzcz1cImNhcmQtZGVzY3JpcHRpb25cIiAqbmdJZj1cInZhcmlhbnQgPT09ICdkZWZhdWx0J1wiPlxyXG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJkZXNjcmlwdGlvbktleVwiPnt7IGRlc2NyaXB0aW9uS2V5IHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCIhZGVzY3JpcHRpb25LZXlcIj57eyBkZXNjcmlwdGlvbiB9fTwvc3Bhbj5cclxuICAgICAgICA8L3A+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8bGliLWFjdGlvbi1idXR0b25cclxuICAgICAgICBbYnV0dG9uVGV4dF09XCJidXR0b25UZXh0XCJcclxuICAgICAgICBbYnV0dG9uVGV4dEtleV09XCJidXR0b25UZXh0S2V5XCJcclxuICAgICAgICBbYnV0dG9uR3JhZGllbnRdPVwiYnV0dG9uR3JhZGllbnRcIlxyXG4gICAgICAgIChidXR0b25DbGljayk9XCJvbkJ1dHRvbkNsaWNrKClcIj5cclxuICAgICAgPC9saWItYWN0aW9uLWJ1dHRvbj5cclxuICAgICAgPGRpdiBjbGFzcz1cImZlYXR1cmVzLWRpdmlkZXJcIiAqbmdJZj1cInNob3dEaXZpZGVyICYmIGZlYXR1cmVzICYmIGZlYXR1cmVzLmxlbmd0aCA+IDBcIj48L2Rpdj5cclxuICAgICAgXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmZWF0dXJlcy1zZWN0aW9uXCIgKm5nSWY9XCJmZWF0dXJlcyAmJiBmZWF0dXJlcy5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgPGgzIGNsYXNzPVwiZmVhdHVyZXMtaGVhZGluZ1wiICpuZ0lmPVwiZmVhdHVyZXNIZWFkaW5nIHx8IGZlYXR1cmVzSGVhZGluZ0tleVwiPlxyXG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJmZWF0dXJlc0hlYWRpbmdLZXlcIj57eyBmZWF0dXJlc0hlYWRpbmdLZXkgfCB0cmFuc2xhdGUgfX08L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFmZWF0dXJlc0hlYWRpbmdLZXlcIj57eyBmZWF0dXJlc0hlYWRpbmcgfX08L3NwYW4+XHJcbiAgICAgICAgPC9oMz5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmVhdHVyZS1pdGVtXCIgKm5nRm9yPVwibGV0IGZlYXR1cmUgb2YgZmVhdHVyZXNcIj5cclxuICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImZlYXR1cmUtY2hlY2staWNvblwiIFtzdHlsZS5jb2xvcl09XCJmZWF0dXJlQ2hlY2tJY29uQ29sb3IgfHwgaWNvbkNvbG9yXCI+Y2hlY2tfY2lyY2xlPC9tYXQtaWNvbj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmVhdHVyZS10ZXh0XCI+XHJcbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZmVhdHVyZS50ZXh0S2V5XCI+e3sgZmVhdHVyZS50ZXh0S2V5IHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFmZWF0dXJlLnRleHRLZXlcIj57eyBmZWF0dXJlLnRleHQgfX08L3NwYW4+XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZGVjb3JhdGl2ZS1pY29uLXdyYXBwZXJcIiAqbmdJZj1cInZhcmlhbnQgPT09ICdkZWZhdWx0JyAmJiAoaWNvbiB8fCBpY29uU3ZnKVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZGVjb3JhdGl2ZS1pY29uXCI+XHJcbiAgICAgICAgPGltZyAqbmdJZj1cImljb25TdmdcIiBbc3JjXT1cImljb25TdmdcIiBhbHQ9XCJcIiBjbGFzcz1cImRlY29yYXRpdmUtaWNvbi1zdmdcIiBbc3R5bGUuZmlsdGVyXT1cIidvcGFjaXR5KDAuMyknXCIgLz5cclxuICAgICAgICA8bWF0LWljb24gKm5nSWY9XCIhaWNvblN2ZyAmJiBpY29uXCIgW3N0eWxlLmNvbG9yXT1cImRlY29yYXRpdmVJY29uQ29sb3JcIj57eyBpY29uIH19PC9tYXQtaWNvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+Il19
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW52b2ljZXEvdWktbGliL3NyYy9saWIvY29tcG9uZW50cy9zaGFyZWQvYWN0aW9uLWNhcmQvYWN0aW9uLWNhcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW52b2ljZXEvdWktbGliL3NyYy9saWIvY29tcG9uZW50cy9zaGFyZWQvYWN0aW9uLWNhcmQvYWN0aW9uLWNhcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQzs7Ozs7QUFtQmpGLE1BQU0sT0FBTyxtQkFBbUI7SUFaaEM7UUFjVyxTQUFJLEdBQVcsRUFBRSxDQUFDO1FBRWxCLFVBQUssR0FBVyxFQUFFLENBQUM7UUFDbkIsZ0JBQVcsR0FBVyxFQUFFLENBQUM7UUFDekIsZUFBVSxHQUFXLEVBQUUsQ0FBQztRQUl4QixjQUFTLEdBQVcsU0FBUyxDQUFDO1FBQzlCLGdCQUFXLEdBQVcsU0FBUyxDQUFDO1FBTWhDLG1CQUFjLEdBQVcsa0RBQWtELENBQUM7UUFDNUUsd0JBQW1CLEdBQVcsd0JBQXdCLENBQUM7UUFFdkQsWUFBTyxHQUEyQixTQUFTLENBQUM7UUFDNUMsYUFBUSxHQUFXLEVBQUUsQ0FBQztRQUl0QixnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUM3QixvQkFBZSxHQUFXLEVBQUUsQ0FBQztRQUM1QixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7S0FLbEQ7SUFIQyxhQUFhO1FBQ1gsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMxQixDQUFDOytHQS9CVSxtQkFBbUI7bUdBQW5CLG1CQUFtQiw0M0JDdkJoQyw2N0lBNkVNLHF1SUQ5REYsWUFBWSwrUEFDWixhQUFhLG1MQUNiLGVBQWUsNEZBQ2YscUJBQXFCOzs0RkFLWixtQkFBbUI7a0JBWi9CLFNBQVM7K0JBQ0UsaUJBQWlCLGNBQ2YsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osYUFBYTt3QkFDYixlQUFlO3dCQUNmLHFCQUFxQjtxQkFDdEI7OEJBTVEsSUFBSTtzQkFBWixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0cscUJBQXFCO3NCQUE3QixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNJLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBBY3Rpb25CdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi9hY3Rpb24tYnV0dG9uL2FjdGlvbi1idXR0b24uY29tcG9uZW50JztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRmVhdHVyZUl0ZW0ge1xyXG4gIHRleHQ/OiBzdHJpbmc7XHJcbiAgdGV4dEtleT86IHN0cmluZztcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItYWN0aW9uLWNhcmQnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgTWF0SWNvbk1vZHVsZSxcclxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcclxuICAgIEFjdGlvbkJ1dHRvbkNvbXBvbmVudFxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2FjdGlvbi1jYXJkLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vYWN0aW9uLWNhcmQuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBY3Rpb25DYXJkQ29tcG9uZW50IHtcclxuXHJcbiAgQElucHV0KCkgaWNvbjogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KCkgaWNvblN2Zz86IHN0cmluZztcclxuICBASW5wdXQoKSB0aXRsZTogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KCkgZGVzY3JpcHRpb246IHN0cmluZyA9ICcnO1xyXG4gIEBJbnB1dCgpIGJ1dHRvblRleHQ6IHN0cmluZyA9ICcnO1xyXG4gIEBJbnB1dCgpIGJ1dHRvblRleHRLZXk/OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgdGl0bGVLZXk/OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgZGVzY3JpcHRpb25LZXk/OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgaWNvbkNvbG9yOiBzdHJpbmcgPSAnIzhBMTUzOCc7XHJcbiAgQElucHV0KCkgYm9yZGVyQ29sb3I6IHN0cmluZyA9ICcjZDFkMWQxJztcclxuICBASW5wdXQoKSBib3JkZXJMZWZ0Q29sb3I/OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgYm9yZGVyUmlnaHRDb2xvcj86IHN0cmluZztcclxuICBASW5wdXQoKSBib3JkZXJCb3R0b21Db2xvcj86IHN0cmluZztcclxuICBASW5wdXQoKSB0b3BCb3JkZXJDb2xvcj86IHN0cmluZztcclxuICBASW5wdXQoKSB0b3BCb3JkZXJHcmFkaWVudD86IHN0cmluZztcclxuICBASW5wdXQoKSBidXR0b25HcmFkaWVudDogc3RyaW5nID0gJ2xpbmVhci1ncmFkaWVudCg5MGRlZywgI0U0QzlEMCAwJSwgIzhBMTUzOCAxMDAlKSc7XHJcbiAgQElucHV0KCkgZGVjb3JhdGl2ZUljb25Db2xvcjogc3RyaW5nID0gJ3JnYmEoMjA5LCAyMDMsIDIxNiwgMSknO1xyXG4gIEBJbnB1dCgpIGZlYXR1cmVDaGVja0ljb25Db2xvcj86IHN0cmluZztcclxuICBASW5wdXQoKSB2YXJpYW50OiAnZGVmYXVsdCcgfCAnZXh0ZW5kZWQnID0gJ2RlZmF1bHQnO1xyXG4gIEBJbnB1dCgpIGljb25TaXplOiBudW1iZXIgPSA0MDtcclxuICBASW5wdXQoKSBmZWF0dXJlcz86IEZlYXR1cmVJdGVtW107XHJcbiAgQElucHV0KCkgZmVhdHVyZXNIZWFkaW5nPzogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGZlYXR1cmVzSGVhZGluZ0tleT86IHN0cmluZztcclxuICBASW5wdXQoKSBzaG93RGl2aWRlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHRvcEJvcmRlckhlaWdodDogbnVtYmVyID0gMTI7XHJcbiAgQE91dHB1dCgpIGJ1dHRvbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICBvbkJ1dHRvbkNsaWNrKCk6IHZvaWQge1xyXG4gICAgdGhpcy5idXR0b25DbGljay5lbWl0KCk7XHJcbiAgfVxyXG59IiwiPGRpdiBjbGFzcz1cImFjdGlvbi1jYXJkXCIgXHJcbiAgICAgW2NsYXNzLmV4dGVuZGVkLXZhcmlhbnRdPVwidmFyaWFudCA9PT0gJ2V4dGVuZGVkJ1wiXHJcbiAgICAgW3N0eWxlLi0tdG9wLWJvcmRlci1ncmFkaWVudF09XCJ0b3BCb3JkZXJHcmFkaWVudCB8fCBidXR0b25HcmFkaWVudFwiIFxyXG4gICAgIFtzdHlsZS4tLXRvcC1ib3JkZXItaGVpZ2h0XT1cInRvcEJvcmRlckhlaWdodCArICdweCdcIlxyXG4gICAgIFtzdHlsZS5ib3JkZXItcmlnaHQtY29sb3JdPVwiYm9yZGVyUmlnaHRDb2xvciB8fCBib3JkZXJDb2xvclwiIFxyXG4gICAgIFtzdHlsZS5ib3JkZXItYm90dG9tLWNvbG9yXT1cImJvcmRlckJvdHRvbUNvbG9yIHx8IGJvcmRlckNvbG9yXCIgXHJcbiAgICAgW3N0eWxlLmJvcmRlci1sZWZ0LWNvbG9yXT1cImJvcmRlckxlZnRDb2xvciB8fCBib3JkZXJDb2xvclwiPlxyXG4gIDxkaXYgY2xhc3M9XCJjYXJkLWNvbnRlbnRcIiBbY2xhc3MuZXh0ZW5kZWQtY29udGVudF09XCJ2YXJpYW50ID09PSAnZXh0ZW5kZWQnXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwibWFpbi1jb250ZW50XCIgW2NsYXNzLmV4dGVuZGVkLW1haW5dPVwidmFyaWFudCA9PT0gJ2V4dGVuZGVkJ1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLXNlY3Rpb25cIiBbY2xhc3MuZXh0ZW5kZWQtaGVhZGVyXT1cInZhcmlhbnQgPT09ICdleHRlbmRlZCdcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLXRvcC13cmFwcGVyXCIgKm5nSWY9XCJ2YXJpYW50ID09PSAnZGVmYXVsdCdcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpY29uLXdyYXBwZXJcIiBcclxuICAgICAgICAgICAgICAgW3N0eWxlLmNvbG9yXT1cImljb25Db2xvclwiXHJcbiAgICAgICAgICAgICAgIFtzdHlsZS53aWR0aC5weF09XCJpY29uU2l6ZVwiXHJcbiAgICAgICAgICAgICAgIFtzdHlsZS5oZWlnaHQucHhdPVwiaWNvblNpemVcIj5cclxuICAgICAgICAgICAgPGltZyAqbmdJZj1cImljb25TdmdcIiBbc3JjXT1cImljb25TdmdcIiBhbHQ9XCJcIiBjbGFzcz1cImljb24tc3ZnXCIgW3N0eWxlLndpZHRoLnB4XT1cImljb25TaXplXCIgW3N0eWxlLmhlaWdodC5weF09XCJpY29uU2l6ZVwiIC8+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cIiFpY29uU3ZnICYmIGljb25cIiBbc3R5bGUuZm9udC1zaXplLnB4XT1cImljb25TaXplXCIgW3N0eWxlLndpZHRoLnB4XT1cImljb25TaXplXCIgW3N0eWxlLmhlaWdodC5weF09XCJpY29uU2l6ZVwiPnt7IGljb24gfX08L21hdC1pY29uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLXRvcFwiPlxyXG4gICAgICAgICAgICA8aDIgY2xhc3M9XCJjYXJkLXRpdGxlXCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJ0aXRsZUtleVwiPnt7IHRpdGxlS2V5IHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIXRpdGxlS2V5XCI+e3sgdGl0bGUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDwvaDI+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvbi13cmFwcGVyXCIgXHJcbiAgICAgICAgICAgICAqbmdJZj1cInZhcmlhbnQgPT09ICdleHRlbmRlZCdcIlxyXG4gICAgICAgICAgICAgW3N0eWxlLmNvbG9yXT1cImljb25Db2xvclwiXHJcbiAgICAgICAgICAgICBbc3R5bGUud2lkdGgucHhdPVwiaWNvblNpemVcIlxyXG4gICAgICAgICAgICAgW3N0eWxlLmhlaWdodC5weF09XCJpY29uU2l6ZVwiPlxyXG4gICAgICAgICAgPGltZyAqbmdJZj1cImljb25TdmdcIiBbc3JjXT1cImljb25TdmdcIiBhbHQ9XCJcIiBjbGFzcz1cImljb24tc3ZnXCIgW3N0eWxlLndpZHRoLnB4XT1cImljb25TaXplXCIgW3N0eWxlLmhlaWdodC5weF09XCJpY29uU2l6ZVwiIC8+XHJcbiAgICAgICAgICA8bWF0LWljb24gKm5nSWY9XCIhaWNvblN2ZyAmJiBpY29uXCIgW3N0eWxlLmZvbnQtc2l6ZS5weF09XCJpY29uU2l6ZVwiIFtzdHlsZS53aWR0aC5weF09XCJpY29uU2l6ZVwiIFtzdHlsZS5oZWlnaHQucHhdPVwiaWNvblNpemVcIj57eyBpY29uIH19PC9tYXQtaWNvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGUtZGVzY3JpcHRpb24td3JhcHBlclwiICpuZ0lmPVwidmFyaWFudCA9PT0gJ2V4dGVuZGVkJ1wiPlxyXG4gICAgICAgICAgPGgyIGNsYXNzPVwiY2FyZC10aXRsZVwiPlxyXG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cInRpdGxlS2V5XCI+e3sgdGl0bGVLZXkgfCB0cmFuc2xhdGUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIXRpdGxlS2V5XCI+e3sgdGl0bGUgfX08L3NwYW4+XHJcbiAgICAgICAgICA8L2gyPlxyXG4gICAgICAgICAgPHAgY2xhc3M9XCJjYXJkLWRlc2NyaXB0aW9uXCI+XHJcbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZGVzY3JpcHRpb25LZXlcIj57eyBkZXNjcmlwdGlvbktleSB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIhZGVzY3JpcHRpb25LZXlcIj57eyBkZXNjcmlwdGlvbiB9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvcD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8cCBjbGFzcz1cImNhcmQtZGVzY3JpcHRpb25cIiAqbmdJZj1cInZhcmlhbnQgPT09ICdkZWZhdWx0J1wiPlxyXG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJkZXNjcmlwdGlvbktleVwiPnt7IGRlc2NyaXB0aW9uS2V5IHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCIhZGVzY3JpcHRpb25LZXlcIj57eyBkZXNjcmlwdGlvbiB9fTwvc3Bhbj5cclxuICAgICAgICA8L3A+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8bGliLWFjdGlvbi1idXR0b25cclxuICAgICAgICBbYnV0dG9uVGV4dF09XCJidXR0b25UZXh0XCJcclxuICAgICAgICBbYnV0dG9uVGV4dEtleV09XCJidXR0b25UZXh0S2V5XCJcclxuICAgICAgICBbYnV0dG9uR3JhZGllbnRdPVwiYnV0dG9uR3JhZGllbnRcIlxyXG4gICAgICAgIChidXR0b25DbGljayk9XCJvbkJ1dHRvbkNsaWNrKClcIj5cclxuICAgICAgPC9saWItYWN0aW9uLWJ1dHRvbj5cclxuICAgICAgPGRpdiBjbGFzcz1cImZlYXR1cmVzLWRpdmlkZXJcIiAqbmdJZj1cInNob3dEaXZpZGVyICYmIGZlYXR1cmVzICYmIGZlYXR1cmVzLmxlbmd0aCA+IDBcIj48L2Rpdj5cclxuICAgICAgXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmZWF0dXJlcy1zZWN0aW9uXCIgKm5nSWY9XCJmZWF0dXJlcyAmJiBmZWF0dXJlcy5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgPGgzIGNsYXNzPVwiZmVhdHVyZXMtaGVhZGluZ1wiICpuZ0lmPVwiZmVhdHVyZXNIZWFkaW5nIHx8IGZlYXR1cmVzSGVhZGluZ0tleVwiPlxyXG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJmZWF0dXJlc0hlYWRpbmdLZXlcIj57eyBmZWF0dXJlc0hlYWRpbmdLZXkgfCB0cmFuc2xhdGUgfX08L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFmZWF0dXJlc0hlYWRpbmdLZXlcIj57eyBmZWF0dXJlc0hlYWRpbmcgfX08L3NwYW4+XHJcbiAgICAgICAgPC9oMz5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmVhdHVyZS1pdGVtXCIgKm5nRm9yPVwibGV0IGZlYXR1cmUgb2YgZmVhdHVyZXNcIj5cclxuICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImZlYXR1cmUtY2hlY2staWNvblwiIFtzdHlsZS5jb2xvcl09XCJmZWF0dXJlQ2hlY2tJY29uQ29sb3IgfHwgaWNvbkNvbG9yXCI+Y2hlY2tfY2lyY2xlPC9tYXQtaWNvbj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmVhdHVyZS10ZXh0XCI+XHJcbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZmVhdHVyZS50ZXh0S2V5XCI+e3sgZmVhdHVyZS50ZXh0S2V5IHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFmZWF0dXJlLnRleHRLZXlcIj57eyBmZWF0dXJlLnRleHQgfX08L3NwYW4+XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZGVjb3JhdGl2ZS1pY29uLXdyYXBwZXJcIiAqbmdJZj1cInZhcmlhbnQgPT09ICdkZWZhdWx0JyAmJiAoaWNvbiB8fCBpY29uU3ZnKVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZGVjb3JhdGl2ZS1pY29uXCI+XHJcbiAgICAgICAgPGltZyAqbmdJZj1cImljb25TdmdcIiBbc3JjXT1cImljb25TdmdcIiBhbHQ9XCJcIiBjbGFzcz1cImRlY29yYXRpdmUtaWNvbi1zdmdcIiBbc3R5bGUuZmlsdGVyXT1cIidvcGFjaXR5KDAuMyknXCIgLz5cclxuICAgICAgICA8bWF0LWljb24gKm5nSWY9XCIhaWNvblN2ZyAmJiBpY29uXCIgW3N0eWxlLmNvbG9yXT1cImRlY29yYXRpdmVJY29uQ29sb3JcIj57eyBpY29uIH19PC9tYXQtaWNvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+Il19
@@ -149,7 +149,7 @@ export class BackendService {
149
149
  return this.http.post(url, listItems, { headers: this.buildSecuredHeader() }).pipe(distinctUntilChanged(), catchError(err => of(err.message || err)));
150
150
  }
151
151
  downloadReport(reportRequest, pageApiPath, readyPath) {
152
- const s = readyPath === true ? `/api/v1${pageApiPath}` : `/api/v1${pageApiPath}/extctAndDownloadListReport`;
152
+ const s = readyPath === true ? `/api/v1${pageApiPath}` : `/api/v1${pageApiPath}/extractAndDownloadListReport`;
153
153
  return this.http.post(this.getApiBasePath() + s, reportRequest, { headers: this.buildSecuredHeader() }).subscribe((resp) => {
154
154
  if (resp.valid) {
155
155
  if (resp.body) {
@@ -177,11 +177,11 @@ export class BackendService {
177
177
  }
178
178
  }
179
179
  else {
180
- this.topPanel.topPanelMessage$.next(new SnackMessage(resp.message.toString(), true, 'info'));
180
+ this.topPanelMessage$.next(new SnackMessage(resp.message.toString(), true, 'info'));
181
181
  }
182
182
  }
183
183
  else {
184
- this.topPanel.topPanelMessage$.next(new SnackMessage(resp.message.toString(), false, 'error'));
184
+ this.topPanelMessage$.next(new SnackMessage(resp.message.toString(), false, 'error'));
185
185
  }
186
186
  });
187
187
  }
@@ -241,4 +241,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
241
241
  type: Inject,
242
242
  args: ['secretsManager']
243
243
  }] }] });
244
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja2VuZC1zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW52b2ljZXEvdWktbGliL3NyYy9saWIvc2VydmljZXMvYmFja2VuZC1zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBZ0MsV0FBVyxFQUFFLFVBQVUsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzVGLE9BQU8sRUFBYSxFQUFFLEVBQUUsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFBQyxVQUFVLEVBQUUsb0JBQW9CLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFHL0QsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBS3pELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQVFqRSxPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSxpRUFBaUUsQ0FBQzs7Ozs7OztBQUU1RyxNQUFNLG1CQUFtQixHQUEyQjtJQUNoRCxDQUFDLEVBQUUsS0FBSztJQUNSLENBQUMsRUFBRSxTQUFTO0lBQ1osQ0FBQyxFQUFFLFlBQVk7SUFDZixDQUFDLEVBQUUsV0FBVztJQUNkLENBQUMsRUFBRSxTQUFTO0lBQ1osQ0FBQyxFQUFFLFNBQVM7Q0FDZixDQUFDO0FBRUYsTUFBTSx1QkFBdUIsR0FBRyxDQUFDLFlBQVksRUFBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLENBQUM7QUFJcEUsTUFBTSxPQUFPLGNBQWM7SUFRdkIsWUFBb0IsSUFBZ0IsRUFDaEIsUUFBa0IsRUFDbEIsZ0JBQWtDLEVBQ2xDLEtBQXFCLEVBQ3JCLE1BQWlCLEVBQ0MsTUFBVyxFQUNILGNBQW1CO1FBTjdDLFNBQUks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WCxNQUFNOzs0RkFFVCxjQUFjO2tCQUgxQixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7MEJBY2dCLE1BQU07MkJBQUMsUUFBUTs7MEJBQ2YsTUFBTTsyQkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdCwgSW5qZWN0YWJsZX0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtIdHRwQ2xpZW50LCBIdHRwRXJyb3JSZXNwb25zZSwgSHR0cEhlYWRlcnMsIEh0dHBQYXJhbXN9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG5pbXBvcnQge09ic2VydmFibGUsIG9mLCBTdWJqZWN0fSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQge2NhdGNoRXJyb3IsIGRpc3RpbmN0VW50aWxDaGFuZ2VkfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHtTbmFja01lc3NhZ2V9IGZyb20gXCIuLi9iYXNlLW1vZGVsL3NuYWNrLW1lc3NhZ2UubW9kZWxcIjtcclxuaW1wb3J0IHtQYWdlSW5mb30gZnJvbSBcIi4uL2Jhc2UtbW9kZWwvcGFnZS1pbmZvXCI7XHJcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcclxuaW1wb3J0IHtDb2x1bW5EZWZ9IGZyb20gXCIuLi9iYXNlLW1vZGVsL2NvbHVtbi1kZWYubW9kZWxcIjtcclxuaW1wb3J0IHtUYWJsZUNvbHVtbn0gZnJvbSBcIi4uL2Jhc2UtbW9kZWwvdGFibGUtY29sdW1uLmludGVyZmFjZVwiO1xyXG5pbXBvcnQge0dldEl0ZW1zTGlzdH0gZnJvbSBcIi4uL2Jhc2UtbW9kZWwvZ2V0LWl0ZW1zLWxpc3RcIjtcclxuaW1wb3J0IHtGaWVsZEFjdGlvbn0gZnJvbSBcIi4uL2Jhc2UtbW9kZWwvZmllbGQtYWN0aW9uXCI7XHJcbmltcG9ydCB7V29ya2Zsb3d9IGZyb20gXCIuLi9iYXNlLW1vZGVsL3dvcmtmbG93L3dvcmtmbG93Lm1vZGVsXCI7XHJcbmltcG9ydCB7UmVwb3J0UmVxdWVzdH0gZnJvbSBcIi4uL2Jhc2UtbW9kZWwvcmVwb3J0LXJlcXVlc3QubW9kZWxcIjtcclxuaW1wb3J0IHtGaWx0ZXJSZXF1ZXN0fSBmcm9tIFwiLi4vYmFzZS1tb2RlbC9maWx0ZXItcmVxdWVzdFwiO1xyXG5pbXBvcnQge1Jlc3BvbnNlRW52ZWxvcH0gZnJvbSBcIi4uL2Jhc2UtbW9kZWwvcmVzcG9uc2UtZW52ZWxvcC5tb2RlbFwiO1xyXG5pbXBvcnQge0Zvcm1Hcm91cH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQge1RvcFBhbmVsfSBmcm9tIFwiLi90b3AtcGFuZWxcIjtcclxuaW1wb3J0IHtEb0FjdGlvblJlcXVlc3R9IGZyb20gXCIuLi9iYXNlLW1vZGVsL2RvLWFjdGlvbi1yZXF1ZXN0XCI7XHJcbmltcG9ydCB7TWF0RGlhbG9nfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nXCI7XHJcbmltcG9ydCB7QWN0aW9uQ29uZmlybWF0aW9uQ29tcG9uZW50fSBmcm9tIFwiLi4vY29tcG9uZW50cy9hY3Rpb24tY29uZmlybWF0aW9uL2FjdGlvbi1jb25maXJtYXRpb24uY29tcG9uZW50XCI7XHJcblxyXG5jb25zdCBXT1JLRkxPV19TVEFURVNfTUFQOiBSZWNvcmQ8bnVtYmVyLCBzdHJpbmc+ID0ge1xyXG4gICAgMTogJ05ldycsXHJcbiAgICAyOiAnUGVuZGluZycsXHJcbiAgICAzOiAnVGVybWluYXRlZCcsXHJcbiAgICA0OiAnQ29tcGxldGVkJyxcclxuICAgIDU6ICdVcGRhdGVkJyxcclxuICAgIDY6ICdEZWZhdWx0J1xyXG59O1xyXG5cclxuY29uc3QgRVhDTFVERURfUkVQT1JUX0NPTFVNTlMgPSBbJ2xpc3RBY3Rpb24nLCdidXR0b24nLCAnY2hlY2tib3gnXTtcclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCYWNrZW5kU2VydmljZSB7XHJcbiAgICBwdWJsaWMgdG9wUGFuZWxNZXNzYWdlJCA9IG5ldyBTdWJqZWN0PFNuYWNrTWVzc2FnZT4oKTtcclxuICAgIC8vIEB0cy1pZ25vcmVcclxuICAgIHB1YmxpYyBwYXJlbnRGb3JtOiBGb3JtR3JvdXA7XHJcbiAgICBwdWJsaWMgY2hpbGRGb3JtOiBGb3JtR3JvdXA7XHJcbiAgICBwdWJsaWMgZmllbGRBY3Rpb24kID0gbmV3IFN1YmplY3Q8RmllbGRBY3Rpb24+KCk7XHJcbiAgICBwdWJsaWMgaXNFbXB0eUl0ZW1zOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICAgICAgICAgICAgICBwcml2YXRlIHRvcFBhbmVsOiBUb3BQYW5lbCxcclxuICAgICAgICAgICAgICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgICAgICAgICAgICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZyxcclxuICAgICAgICAgICAgICAgIEBJbmplY3QoJ2NvbmZpZycpIHByaXZhdGUgY29uZmlnOiBhbnksXHJcbiAgICAgICAgICAgICAgICBASW5qZWN0KCdzZWNyZXRzTWFuYWdlcicpIHByaXZhdGUgc2VjcmV0c01hbmFnZXI6IGFueSkge1xyXG5cclxuICAgICAgICB0aGlzLnRvcFBhbmVsTWVzc2FnZSQuc3Vic2NyaWJlKG1zZyA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMudG9wUGFuZWwudG9wUGFuZWxNZXNzYWdlJC5uZXh0KG1zZyk7XHJcbiAgICAgICAgfSlcclxuICAgIH1cclxuXHJcbiAgICBzZXQgZGVmYXVsdHModmFsdWU6IGFueSB8IHVuZGVmaW5lZCkge1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBkZWZhdWx0cygpOiBhbnkgfCB1bmRlZmluZWQge1xyXG4gICAgICAgIHJldHVybiB7fTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRTdGF0dXNEZXNjcmlwdGlvbihlbGVtZW50OiBhbnksIHdvcmtmbG93OiBXb3JrZmxvdykge1xyXG4gICAgICAgIGlmIChlbGVtZW50Py5zdGVwSWQpIHtcclxuXHJcbiAgICAgICAgICAgIGxldCBpbmRleCA9IHdvcmtmbG93Py53b3JrZmxvd1N0ZXBzPy5maW5kSW5kZXgocyA9PiBzLnN0ZXBJZCA9PT0gZWxlbWVudC5zdGVwSWQpO1xyXG4gICAgICAgICAgICBpZiAoaW5kZXggPiAtMSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS5nZXREZWZhdWx0TGFuZygpID09PSAnYXInID9cclxuICAgICAgICAgICAgICAgICAgICB3b3JrZmxvdz8ud29ya2Zsb3dTdGVwc1tpbmRleF0uc3RlcE5hbWVBciB8fCB3b3JrZmxvdz8ud29ya2Zsb3dTdGVwc1tpbmRleF0uc3RlcE5hbWU6XHJcbiAgICAgICAgICAgICAgICAgICAgd29ya2Zsb3c/LndvcmtmbG93U3RlcHNbaW5kZXhdLnN0ZXBOYW1lO1xyXG4gICAgICAgICAgICAgICAgLy8gcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KHdvcmtmbG93Py53b3JrZmxvd1N0ZXBzW2luZGV4XS5zdGVwTmFtZSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ0lOVkVOVE9SWS5pbnByb2Nlc3NTdGF0dXMnKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGlmIChlbGVtZW50LnN0YXR1c0lkID09PSA0ICYmIGVsZW1lbnQuc3RhdHVzRGVzY3JpcHRpb24pIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBlbGVtZW50LnN0YXR1c0Rlc2NyaXB0aW9uO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGVsZW1lbnQuc3RhdHVzSWQpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChXT1JLRkxPV19TVEFURVNfTUFQW2VsZW1lbnQuc3RhdHVzSWRdKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBcInVua25vd25cIjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuLy9zc3NcclxuICAgIGdldEl0ZW1zQnlGaWx0ZXIocmVwb3J0UmVxdWVzdDogYW55LCBhcGlVcmw6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICAgICAgY29uc3QgdXJsID0gYCR7dGhpcy5nZXRBcGlCYXNlUGF0aCgpfS9hcGkvdjEke2FwaVVybH0vbGlzdGA7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHVybCwgcmVwb3J0UmVxdWVzdCwgeyBoZWFkZXJzOiB0aGlzLmJ1aWxkU2VjdXJlZEhlYWRlcigpfSkucGlwZShcclxuICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcclxuICAgICAgICAgICAgY2F0Y2hFcnJvcihlcnIgPT4gb2YoZXJyLm1lc3NhZ2UgfHwgZXJyKSkpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEl0ZW1BdWRpdExvZyhyZXBvcnRSZXF1ZXN0OiBhbnksIGFwaVVybDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgICAgICBjb25zdCB1cmwgPSBgJHt0aGlzLmdldEFwaUJhc2VQYXRoKCl9L2FwaS92MSR7YXBpVXJsfS9hdWRpdC1sb2dgO1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh1cmwsIHJlcG9ydFJlcXVlc3QsIHsgaGVhZGVyczogdGhpcy5idWlsZFNlY3VyZWRIZWFkZXIoKX0pLnBpcGUoXHJcbiAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXHJcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoZXJyID0+IG9mKGVyci5tZXNzYWdlIHx8IGVycikpKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgcHJpdmF0ZSBidWlsZFNlY3VyZWRIZWFkZXIoKSB7XHJcbiAgICAgICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycyh7XHJcbiAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXHJcbiAgICAgICAgICAgIEF1dGhvcml6YXRpb246IHRoaXMuY29uZmlnLmdldEF1dGhUb2tlbigpXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIGhlYWRlcnM7XHJcbiAgICB9XHJcblxyXG4gIHB1YmxpYyBidWlsZEZvcm1TZWN1cmVkSGVhZGVyKCkge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycyh7XHJcbiAgICAgIEF1dGhvcml6YXRpb246IHRoaXMuY29uZmlnLmdldEF1dGhUb2tlbigpXHJcbiAgICB9KTtcclxuICAgIHJldHVybiBoZWFkZXJzO1xyXG4gIH1cclxuXHJcbiAgbGFiZWxLZXkoY29sdW1uOiBhbnksIHBhZ2VJbmZvOiBQYWdlSW5mbykge1xyXG4gICAgY29uc3QgY29uZmlndXJlZEtleSA9IGNvbHVtbi5sYWJlbCA/IGNvbHVtbi5sYWJlbCA6IGNvbHVtbi5wcm9wZXJ0eTtcclxuXHJcbiAgICBpZiAoY29uZmlndXJlZEtleSAmJiBjb25maWd1cmVkS2V5LnRyaW0oKSAhPT0gJycgJiYgY29uZmlndXJlZEtleS5zdGFydHNXaXRoKHBhZ2VJbmZvLmxhYmVsc1NlY3Rpb24pKSB7XHJcbiAgICAgIHJldHVybiBjb25maWd1cmVkS2V5O1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBgJHtwYWdlSW5mby5sYWJlbHNTZWN0aW9ufS4ke2NvbmZpZ3VyZWRLZXl9YDtcclxuICB9XHJcblxyXG5cclxuICAgIHByaXZhdGUgYnVpbGRSZXBvcnRDb2x1bW4oY29sdW1uczogVGFibGVDb2x1bW48YW55PltdLCBwYWdlSW5mbzogUGFnZUluZm8pOiBDb2x1bW5EZWZbXSB7XHJcbiAgICAgICAgbGV0IGNvbHVtbkRlZjogQ29sdW1uRGVmW10gPSBbXTtcclxuXHJcbiAgICAgICAgICBjb2x1bW5zLmZpbHRlcih4ID0+ICFFWENMVURFRF9SRVBPUlRfQ09MVU1OUy5pbmNsdWRlcyh4LnR5cGUpKS5mb3JFYWNoKChjLCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgICBsZXQgdHJhbnNMYWJlbCA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KHRoaXMubGFiZWxLZXkoYyxwYWdlSW5mbykpO1xyXG4gICAgICAgICAgICBsZXQgdHJhbnNHcm91cCA9IHBhZ2VJbmZvLnN1cHBvcnRHcm91cGluZ0luRXhwb3J0ID9cclxuICAgICAgICAgICAgICBjLmdyb3VwLnRyaW0oKSA/IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGMuZ3JvdXApIDogJyAnIDogbnVsbDtcclxuICAgICAgICAgICAgaWYgKGMudHlwZSA9PT0gJ3dvcmtmbG93U3RhdHVzJykge1xyXG4gICAgICAgICAgICAgIHRyYW5zTGFiZWwgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnd29ya2Zsb3dTdGF0dXMnKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoKGMucmVwb3J0VmlzaWJsZSA9PT0gdHJ1ZSkgfHwgKGMudmlzaWJsZSA9PT0gdHJ1ZSAmJiBjLnJlcG9ydFZpc2libGUgIT09IGZhbHNlKSkge1xyXG4gICAgICAgICAgICAgIGNvbHVtbkRlZi5wdXNoKG5ldyBDb2x1bW5EZWYoYywgaW5kZXgsIHRyYW5zTGFiZWwsIHRoaXMudHJhbnNsYXRlU2VydmljZS5nZXREZWZhdWx0TGFuZygpLHRyYW5zR3JvdXApKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiBjb2x1bW5EZWY7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBiYXNlNjRUb0FycmF5QnVmZmVyKGJhc2U2NDogc3RyaW5nKSB7XHJcbiAgICAgICAgY29uc3QgYmluYXJ5U3RyaW5nID0gd2luZG93LmF0b2IoYmFzZTY0KTsgLy8gQ29tbWVudCB0aGlzIGlmIG5vdCB1c2luZyBiYXNlNjRcclxuICAgICAgICBjb25zdCBieXRlcyA9IG5ldyBVaW50OEFycmF5KGJpbmFyeVN0cmluZy5sZW5ndGgpO1xyXG4gICAgICAgIHJldHVybiBieXRlcy5tYXAoKGJ5dGUsIGkpID0+IGJpbmFyeVN0cmluZy5jaGFyQ29kZUF0KGkpKTtcclxuICAgIH1cclxuXHJcbiAgICBidWlsZFJlcG9ydFJlcXVlc3QoY29sdW1uczogVGFibGVDb2x1bW48YW55PltdLCB0aXRsZTogc3RyaW5nIHwgc3RyaW5nW10sIGZpbHRlclJlcXVlc3Q6IEZpbHRlclJlcXVlc3QsIHJlcG9ydFR5cGU6IGFueSwgcGFnZUluZm86IFBhZ2VJbmZvLCBzZWFyY2hTdHI6IHN0cmluZyAsb3JpZW50YXRpb249J1BPUlRSQUlUJyk6IFJlcG9ydFJlcXVlc3Qge1xyXG4gICAgICAgIGNvbnN0IGNvbHVtbkRlZiA9IHRoaXMuYnVpbGRSZXBvcnRDb2x1bW4oY29sdW1ucywgcGFnZUluZm8pO1xyXG4gICAgICAgIGNvbnN0IHJlcG9ydFJlcXVlc3QgPSBuZXcgUmVwb3J0UmVxdWVzdCh7XHJcbiAgICAgICAgICAgIGRhdGFzZXQ6IFtdLCBmaWx0ZXI6IFwiXCIsXHJcbiAgICAgICAgICAgIGNvbHVtbnM6IGNvbHVtbkRlZixcclxuICAgICAgICAgICAgLy8gc2Vzc2lvbklkOiB0aGlzLnRvcFBhbmVsLnVzZXJTZXNzaW9uKCkuc2Vzc2lvbklkLFxyXG4gICAgICAgICAgICBzZXNzaW9uSWQ6IHRoaXMuY29uZmlnLmdldEF1dGhUb2tlbigpLFxyXG4gICAgICAgICAgICB0aXRsZTogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQodGl0bGUpLFxyXG4gICAgICAgICAgICBwcmVmTGFuZzogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmdldERlZmF1bHRMYW5nKCksXHJcbiAgICAgICAgICAgIHJlcG9ydFR5cGU6IHJlcG9ydFR5cGUsXHJcbiAgICAgICAgICAgIHNlYXJjaFN0cjogc2VhcmNoU3RyLFxyXG4gICAgICAgICAgICBmaWx0ZXJSZXF1ZXN0OiBmaWx0ZXJSZXF1ZXN0LFxyXG4gICAgICAgICAgICBvcmllbnRhdGlvbjogb3JpZW50YXRpb259KTtcclxuICAgICAgICByZXR1cm4gcmVwb3J0UmVxdWVzdDtcclxuICAgIH1cclxuXHJcbiAgICBnZXRMb29rdXBJdGVtc0J5TXVsdGlGaWx0ZXIobGlzdEl0ZW1zOiBHZXRJdGVtc0xpc3QsIGZpbHRlclJlcXVlc3Q/OiBGaWx0ZXJSZXF1ZXN0KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgICAgbGlzdEl0ZW1zLnBhZ2VTaXplID0gMTAwO1xyXG4gICAgICBmaWx0ZXJSZXF1ZXN0LnBhZ2VTaXplID0gMTAwO1xyXG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCkuc2V0KCdzZWFyY2hTdHInLCBsaXN0SXRlbXMuc2VhcmNoU3RyKTtcclxuICAgICAgICBsZXQgdXJsID0gYCR7dGhpcy5nZXRBcGlCYXNlUGF0aCgpfS9hcGkvdjEvJHtsaXN0SXRlbXMuYXBpVXJpfWA7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHVybCwgZmlsdGVyUmVxdWVzdCwgeyBoZWFkZXJzOiB0aGlzLmJ1aWxkU2VjdXJlZEhlYWRlcigpLCBwYXJhbXM6IHBhcmFtc30pLnBpcGUoXHJcbiAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXHJcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoZXJyID0+IG9mKGVyci5tZXNzYWdlIHx8IGVycikpKTtcclxuICAgIH1cclxuICAgIGdldExvb2t1cEl0ZW1zQnlGaWx0ZXIobGlzdEl0ZW1zOiBHZXRJdGVtc0xpc3QsIGNhc2NhZGVkSWQ/OiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgICAgIGxpc3RJdGVtcy5wYWdlU2l6ZSA9IDUwMDtcclxuICAgICAgICBjb25zdCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpLnNldCgnc2VhcmNoU3RyJywgbGlzdEl0ZW1zLnNlYXJjaFN0cik7XHJcbiAgICAgICAgbGV0IHVybCA9IGAke3RoaXMuZ2V0QXBpQmFzZVBhdGgoKX0vYXBpL3YxLyR7bGlzdEl0ZW1zLmFwaVVyaX1gO1xyXG4gICAgICAgIGlmIChjYXNjYWRlZElkKSB7XHJcbiAgICAgICAgICAgIHVybCA9IHVybCArIGAvJHtjYXNjYWRlZElkfWBcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh1cmwsIGxpc3RJdGVtcyx7IGhlYWRlcnM6IHRoaXMuYnVpbGRTZWN1cmVkSGVhZGVyKCl9KS5waXBlKFxyXG4gICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxyXG4gICAgICAgICAgICBjYXRjaEVycm9yKGVyciA9PiBvZihlcnIubWVzc2FnZSB8fCBlcnIpKSk7XHJcbiAgICB9XHJcblxyXG5cclxuXHJcbiAgICBkb3dubG9hZFJlcG9ydChyZXBvcnRSZXF1ZXN0OiBSZXBvcnRSZXF1ZXN0LCBwYWdlQXBpUGF0aCA6IHN0cmluZywgcmVhZHlQYXRoPyA6IGJvb2xlYW4gKSB7XHJcbiAgICAgIGNvbnN0IHMgPSByZWFkeVBhdGggPT09IHRydWUgPyBgL2FwaS92MSR7cGFnZUFwaVBhdGh9YCA6IGAvYXBpL3YxJHtwYWdlQXBpUGF0aH0vZXh0Y3RBbmREb3dubG9hZExpc3RSZXBvcnRgO1xyXG4gICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8UmVzcG9uc2VFbnZlbG9wPih0aGlzLmdldEFwaUJhc2VQYXRoKCkgKyBzLCByZXBvcnRSZXF1ZXN0LCB7aGVhZGVyczogdGhpcy5idWlsZFNlY3VyZWRIZWFkZXIoKX0pLnN1YnNjcmliZShcclxuICAgICAgICAgICAgKHJlc3A6UmVzcG9uc2VFbnZlbG9wKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzcC52YWxpZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNwLmJvZHkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMudG9wUGFuZWxNZXNzYWdlJC5uZXh0KFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBuZXcgU25hY2tNZXNzYWdlKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICdyZXBvcnQuZG93bmxvYWQuc3RhcnQnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ3N1Y2Nlc3MnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudGl0eTogcmVwb3J0UmVxdWVzdC50aXRsZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdDogcmVwb3J0UmVxdWVzdC5yZXBvcnRUeXBlPy50b1VwcGVyQ2FzZSgpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmaWxlbmFtZSA9IHJlcG9ydFJlcXVlc3QudGl0bGUgKyBcIi5cIiArIHJlcG9ydFJlcXVlc3QucmVwb3J0VHlwZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFt0aGlzLmJhc2U2NFRvQXJyYXlCdWZmZXIocmVzcC5ib2R5KV0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobmF2aWdhdG9yLm1zU2F2ZUJsb2IpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hdmlnYXRvci5tc1NhdmVCbG9iKGJsb2IsIGZpbGVuYW1lKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBCcm93c2VycyB0aGF0IHN1cHBvcnQgSFRNTDUgZG93bmxvYWQgYXR0cmlidXRlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGluay5kb3dubG9hZCAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5rLnNldEF0dHJpYnV0ZSgnaHJlZicsIHVybCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluay5zZXRBdHRyaWJ1dGUoJ2Rvd25sb2FkJywgZmlsZW5hbWUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmsuc3R5bGUudmlzaWJpbGl0eSA9ICdoaWRkZW4nO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobGluayk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluay5jbGljaygpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQobGluayk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRvcFBhbmVsLnRvcFBhbmVsTWVzc2FnZSQubmV4dChuZXcgU25hY2tNZXNzYWdlKHJlc3AubWVzc2FnZS50b1N0cmluZygpLCB0cnVlLCAnaW5mbycpKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudG9wUGFuZWwudG9wUGFuZWxNZXNzYWdlJC5uZXh0KG5ldyBTbmFja01lc3NhZ2UocmVzcC5tZXNzYWdlLnRvU3RyaW5nKCksIGZhbHNlLCAnZXJyb3InKSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICApO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldEFwaUJhc2VQYXRoKCl7XHJcbiAgICAgIHJldHVybiB0aGlzLmNvbmZpZy5nZXRCYXNlQXBpKCk7XHJcbiAgICB9XHJcblxyXG4gIGRvQWN0aW9uV2l0aEF0dGFjaG1lbnRzKHJlcXVlc3Q6IERvQWN0aW9uUmVxdWVzdCwgcGFyYW0yOiBhbnlbXSwgcGFnZUluZm86IFBhZ2VJbmZvKSB7XHJcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLmdldEFwaUJhc2VQYXRoKCl9L2FwaS92MSR7cGFnZUluZm8uYXBpVXJpfS9kb0FjdGlvbldpdGhBdHRhY2htZW50c2A7XHJcbiAgICBjb25zdCBmb3JtRGF0YTogRm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcclxuICAgIGZvcm1EYXRhLnNldCgnZG9BY3Rpb25SZXF1ZXN0JywgbmV3IEJsb2IoW0pTT04uc3RyaW5naWZ5KHJlcXVlc3QpXSwge1xyXG4gICAgICB0eXBlOiBcImFwcGxpY2F0aW9uL2pzb25cIlxyXG4gICAgfSkpO1xyXG5cclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh1cmwsIGZvcm1EYXRhLCB7IGhlYWRlcnM6IHRoaXMuYnVpbGRGb3JtU2VjdXJlZEhlYWRlcigpIH0pLnBpcGUoXHJcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXHJcbiAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgIHJldHVybiBvZihlcnJvci5lcnJvcik7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG5cclxuICB9XHJcbiAgZG9BY3Rpb25XaXRoQXR0YWNobWVudChyZXF1ZXN0OiBEb0FjdGlvblJlcXVlc3QsIGZpbGU6IEZpbGUsIHBhZ2VJbmZvOiBQYWdlSW5mbykge1xyXG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5nZXRBcGlCYXNlUGF0aCgpfS9hcGkvdjEke3BhZ2VJbmZvLmFwaVVyaX0vZG9BY3Rpb25XaXRoQXR0YWNobWVudHNgO1xyXG4gICAgY29uc3QgZm9ybURhdGE6IEZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XHJcblxyXG4gICAgZm9ybURhdGEuYXBwZW5kKCdmaWxlcycsIGZpbGUpO1xyXG4gICAgZm9ybURhdGEuc2V0KCdkb0FjdGlvblJlcXVlc3QnLCBuZXcgQmxvYihbSlNPTi5zdHJpbmdpZnkocmVxdWVzdCldLCB7XHJcbiAgICAgIHR5cGU6IFwiYXBwbGljYXRpb24vanNvblwiXHJcbiAgICB9KSk7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4odXJsLCBmb3JtRGF0YSwge1xyXG4gICAgICBoZWFkZXJzOiB0aGlzLmJ1aWxkRm9ybVNlY3VyZWRIZWFkZXIoKVxyXG4gICAgfSkucGlwZShcclxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcclxuICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgLy8gVHJhbnNmb3JtIHRoZSBlcnJvciBpbnRvIGEgZmFrZSBzdWNjZXNzLWxpa2UgcmVzcG9uc2VcclxuICAgICAgICByZXR1cm4gb2YoZXJyb3IuZXJyb3IpOyAvLyBUaGlzIHdpbGwgbm93IGJlIHBhc3NlZCB0byBgbmV4dGAgaW4gc3Vic2NyaWJlKClcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBlbmNyeXB0KG1lc3NhZ2U6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2VjcmV0c01hbmFnZXIuZW5jcnlwdFNlY3JldChtZXNzYWdlKTtcclxuICB9XHJcblxyXG4gIGRlY3J5cHQoc2VjcmV0OiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLnNlY3JldHNNYW5hZ2VyLmRlY3J5cHRTZWNyZXQoc2VjcmV0KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRDb25maXJtYXRpb24oKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oQWN0aW9uQ29uZmlybWF0aW9uQ29tcG9uZW50LCB7XHJcbiAgICAgIGRhdGE6IHthY2NlcHRBY3Rpb25MYWJlbDogJ2FjY2VwdCcscmVqZWN0QWN0aW9uTGFiZWw6J3JldHVybicsIHdhcm5pbmdNc2c6ICdjb25maXJtYXRpb25fbWVzc2FnZSd9LFxyXG4gICAgICB3aWR0aDogJzYwMHB4JyxcclxuICAgICAgaGVpZ2h0OiAnYXV0bydcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpO1xyXG4gIH1cclxuXHJcbn1cclxuXHJcbmRlY2xhcmUgZ2xvYmFsIHtcclxuICAgIGludGVyZmFjZSBOYXZpZ2F0b3Ige1xyXG4gICAgICAgIG1zU2F2ZUJsb2I6IChibG9iT3JCYXNlNjQ6IEJsb2IgfCBzdHJpbmcsIGZpbGVuYW1lOiBzdHJpbmcpID0+IHZvaWRcclxuICAgIH1cclxufVxyXG4iXX0=
244
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja2VuZC1zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW52b2ljZXEvdWktbGliL3NyYy9saWIvc2VydmljZXMvYmFja2VuZC1zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBZ0MsV0FBVyxFQUFFLFVBQVUsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzVGLE9BQU8sRUFBYSxFQUFFLEVBQUUsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFBQyxVQUFVLEVBQUUsb0JBQW9CLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFHL0QsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBS3pELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQVFqRSxPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSxpRUFBaUUsQ0FBQzs7Ozs7OztBQUU1RyxNQUFNLG1CQUFtQixHQUEyQjtJQUNoRCxDQUFDLEVBQUUsS0FBSztJQUNSLENBQUMsRUFBRSxTQUFTO0lBQ1osQ0FBQyxFQUFFLFlBQVk7SUFDZixDQUFDLEVBQUUsV0FBVztJQUNkLENBQUMsRUFBRSxTQUFTO0lBQ1osQ0FBQyxFQUFFLFNBQVM7Q0FDZixDQUFDO0FBRUYsTUFBTSx1QkFBdUIsR0FBRyxDQUFDLFlBQVksRUFBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLENBQUM7QUFJcEUsTUFBTSxPQUFPLGNBQWM7SUFRdkIsWUFBb0IsSUFBZ0IsRUFDaEIsUUFBa0IsRUFDbEIsZ0JBQWtDLEVBQ2xDLEtBQXFCLEVBQ3JCLE1BQWlCLEVBQ0MsTUFBVyxFQUNILGNBQW1CO1FBTjdDLFNBQUks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QkFIMUIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7OzBCQWNnQixNQUFNOzJCQUFDLFFBQVE7OzBCQUNmLE1BQU07MkJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3QsIEluamVjdGFibGV9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7SHR0cENsaWVudCwgSHR0cEVycm9yUmVzcG9uc2UsIEh0dHBIZWFkZXJzLCBIdHRwUGFyYW1zfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuaW1wb3J0IHtPYnNlcnZhYmxlLCBvZiwgU3ViamVjdH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHtjYXRjaEVycm9yLCBkaXN0aW5jdFVudGlsQ2hhbmdlZH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcbmltcG9ydCB7U25hY2tNZXNzYWdlfSBmcm9tIFwiLi4vYmFzZS1tb2RlbC9zbmFjay1tZXNzYWdlLm1vZGVsXCI7XHJcbmltcG9ydCB7UGFnZUluZm99IGZyb20gXCIuLi9iYXNlLW1vZGVsL3BhZ2UtaW5mb1wiO1xyXG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XHJcbmltcG9ydCB7Q29sdW1uRGVmfSBmcm9tIFwiLi4vYmFzZS1tb2RlbC9jb2x1bW4tZGVmLm1vZGVsXCI7XHJcbmltcG9ydCB7VGFibGVDb2x1bW59IGZyb20gXCIuLi9iYXNlLW1vZGVsL3RhYmxlLWNvbHVtbi5pbnRlcmZhY2VcIjtcclxuaW1wb3J0IHtHZXRJdGVtc0xpc3R9IGZyb20gXCIuLi9iYXNlLW1vZGVsL2dldC1pdGVtcy1saXN0XCI7XHJcbmltcG9ydCB7RmllbGRBY3Rpb259IGZyb20gXCIuLi9iYXNlLW1vZGVsL2ZpZWxkLWFjdGlvblwiO1xyXG5pbXBvcnQge1dvcmtmbG93fSBmcm9tIFwiLi4vYmFzZS1tb2RlbC93b3JrZmxvdy93b3JrZmxvdy5tb2RlbFwiO1xyXG5pbXBvcnQge1JlcG9ydFJlcXVlc3R9IGZyb20gXCIuLi9iYXNlLW1vZGVsL3JlcG9ydC1yZXF1ZXN0Lm1vZGVsXCI7XHJcbmltcG9ydCB7RmlsdGVyUmVxdWVzdH0gZnJvbSBcIi4uL2Jhc2UtbW9kZWwvZmlsdGVyLXJlcXVlc3RcIjtcclxuaW1wb3J0IHtSZXNwb25zZUVudmVsb3B9IGZyb20gXCIuLi9iYXNlLW1vZGVsL3Jlc3BvbnNlLWVudmVsb3AubW9kZWxcIjtcclxuaW1wb3J0IHtGb3JtR3JvdXB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHtUb3BQYW5lbH0gZnJvbSBcIi4vdG9wLXBhbmVsXCI7XHJcbmltcG9ydCB7RG9BY3Rpb25SZXF1ZXN0fSBmcm9tIFwiLi4vYmFzZS1tb2RlbC9kby1hY3Rpb24tcmVxdWVzdFwiO1xyXG5pbXBvcnQge01hdERpYWxvZ30gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2RpYWxvZ1wiO1xyXG5pbXBvcnQge0FjdGlvbkNvbmZpcm1hdGlvbkNvbXBvbmVudH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvYWN0aW9uLWNvbmZpcm1hdGlvbi9hY3Rpb24tY29uZmlybWF0aW9uLmNvbXBvbmVudFwiO1xyXG5cclxuY29uc3QgV09SS0ZMT1dfU1RBVEVTX01BUDogUmVjb3JkPG51bWJlciwgc3RyaW5nPiA9IHtcclxuICAgIDE6ICdOZXcnLFxyXG4gICAgMjogJ1BlbmRpbmcnLFxyXG4gICAgMzogJ1Rlcm1pbmF0ZWQnLFxyXG4gICAgNDogJ0NvbXBsZXRlZCcsXHJcbiAgICA1OiAnVXBkYXRlZCcsXHJcbiAgICA2OiAnRGVmYXVsdCdcclxufTtcclxuXHJcbmNvbnN0IEVYQ0xVREVEX1JFUE9SVF9DT0xVTU5TID0gWydsaXN0QWN0aW9uJywnYnV0dG9uJywgJ2NoZWNrYm94J107XHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQmFja2VuZFNlcnZpY2Uge1xyXG4gICAgcHVibGljIHRvcFBhbmVsTWVzc2FnZSQgPSBuZXcgU3ViamVjdDxTbmFja01lc3NhZ2U+KCk7XHJcbiAgICAvLyBAdHMtaWdub3JlXHJcbiAgICBwdWJsaWMgcGFyZW50Rm9ybTogRm9ybUdyb3VwO1xyXG4gICAgcHVibGljIGNoaWxkRm9ybTogRm9ybUdyb3VwO1xyXG4gICAgcHVibGljIGZpZWxkQWN0aW9uJCA9IG5ldyBTdWJqZWN0PEZpZWxkQWN0aW9uPigpO1xyXG4gICAgcHVibGljIGlzRW1wdHlJdGVtczogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSB0b3BQYW5lbDogVG9wUGFuZWwsXHJcbiAgICAgICAgICAgICAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgICAgICAgICAgICAgIHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2csXHJcbiAgICAgICAgICAgICAgICBASW5qZWN0KCdjb25maWcnKSBwcml2YXRlIGNvbmZpZzogYW55LFxyXG4gICAgICAgICAgICAgICAgQEluamVjdCgnc2VjcmV0c01hbmFnZXInKSBwcml2YXRlIHNlY3JldHNNYW5hZ2VyOiBhbnkpIHtcclxuXHJcbiAgICAgICAgdGhpcy50b3BQYW5lbE1lc3NhZ2UkLnN1YnNjcmliZShtc2cgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnRvcFBhbmVsLnRvcFBhbmVsTWVzc2FnZSQubmV4dChtc2cpO1xyXG4gICAgICAgIH0pXHJcbiAgICB9XHJcblxyXG4gICAgc2V0IGRlZmF1bHRzKHZhbHVlOiBhbnkgfCB1bmRlZmluZWQpIHtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgZGVmYXVsdHMoKTogYW55IHwgdW5kZWZpbmVkIHtcclxuICAgICAgICByZXR1cm4ge307XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0U3RhdHVzRGVzY3JpcHRpb24oZWxlbWVudDogYW55LCB3b3JrZmxvdzogV29ya2Zsb3cpIHtcclxuICAgICAgICBpZiAoZWxlbWVudD8uc3RlcElkKSB7XHJcblxyXG4gICAgICAgICAgICBsZXQgaW5kZXggPSB3b3JrZmxvdz8ud29ya2Zsb3dTdGVwcz8uZmluZEluZGV4KHMgPT4gcy5zdGVwSWQgPT09IGVsZW1lbnQuc3RlcElkKTtcclxuICAgICAgICAgICAgaWYgKGluZGV4ID4gLTEpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuZ2V0RGVmYXVsdExhbmcoKSA9PT0gJ2FyJyA/XHJcbiAgICAgICAgICAgICAgICAgICAgd29ya2Zsb3c/LndvcmtmbG93U3RlcHNbaW5kZXhdLnN0ZXBOYW1lQXIgfHwgd29ya2Zsb3c/LndvcmtmbG93U3RlcHNbaW5kZXhdLnN0ZXBOYW1lOlxyXG4gICAgICAgICAgICAgICAgICAgIHdvcmtmbG93Py53b3JrZmxvd1N0ZXBzW2luZGV4XS5zdGVwTmFtZTtcclxuICAgICAgICAgICAgICAgIC8vIHJldHVybiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCh3b3JrZmxvdz8ud29ya2Zsb3dTdGVwc1tpbmRleF0uc3RlcE5hbWUpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdJTlZFTlRPUlkuaW5wcm9jZXNzU3RhdHVzJyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAoZWxlbWVudC5zdGF0dXNJZCA9PT0gNCAmJiBlbGVtZW50LnN0YXR1c0Rlc2NyaXB0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZWxlbWVudC5zdGF0dXNEZXNjcmlwdGlvbjtcclxuICAgICAgICAgICAgfSBlbHNlIGlmIChlbGVtZW50LnN0YXR1c0lkKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoV09SS0ZMT1dfU1RBVEVTX01BUFtlbGVtZW50LnN0YXR1c0lkXSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJ1bmtub3duXCI7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbi8vc3NzXHJcbiAgICBnZXRJdGVtc0J5RmlsdGVyKHJlcG9ydFJlcXVlc3Q6IGFueSwgYXBpVXJsOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgICAgIGNvbnN0IHVybCA9IGAke3RoaXMuZ2V0QXBpQmFzZVBhdGgoKX0vYXBpL3YxJHthcGlVcmx9L2xpc3RgO1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh1cmwsIHJlcG9ydFJlcXVlc3QsIHsgaGVhZGVyczogdGhpcy5idWlsZFNlY3VyZWRIZWFkZXIoKX0pLnBpcGUoXHJcbiAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXHJcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoZXJyID0+IG9mKGVyci5tZXNzYWdlIHx8IGVycikpKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRJdGVtQXVkaXRMb2cocmVwb3J0UmVxdWVzdDogYW55LCBhcGlVcmw6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICAgICAgY29uc3QgdXJsID0gYCR7dGhpcy5nZXRBcGlCYXNlUGF0aCgpfS9hcGkvdjEke2FwaVVybH0vYXVkaXQtbG9nYDtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QodXJsLCByZXBvcnRSZXF1ZXN0LCB7IGhlYWRlcnM6IHRoaXMuYnVpbGRTZWN1cmVkSGVhZGVyKCl9KS5waXBlKFxyXG4gICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxyXG4gICAgICAgICAgICBjYXRjaEVycm9yKGVyciA9PiBvZihlcnIubWVzc2FnZSB8fCBlcnIpKSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHByaXZhdGUgYnVpbGRTZWN1cmVkSGVhZGVyKCkge1xyXG4gICAgICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoe1xyXG4gICAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxyXG4gICAgICAgICAgICBBdXRob3JpemF0aW9uOiB0aGlzLmNvbmZpZy5nZXRBdXRoVG9rZW4oKVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiBoZWFkZXJzO1xyXG4gICAgfVxyXG5cclxuICBwdWJsaWMgYnVpbGRGb3JtU2VjdXJlZEhlYWRlcigpIHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoe1xyXG4gICAgICBBdXRob3JpemF0aW9uOiB0aGlzLmNvbmZpZy5nZXRBdXRoVG9rZW4oKVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gaGVhZGVycztcclxuICB9XHJcblxyXG4gIGxhYmVsS2V5KGNvbHVtbjogYW55LCBwYWdlSW5mbzogUGFnZUluZm8pIHtcclxuICAgIGNvbnN0IGNvbmZpZ3VyZWRLZXkgPSBjb2x1bW4ubGFiZWwgPyBjb2x1bW4ubGFiZWwgOiBjb2x1bW4ucHJvcGVydHk7XHJcblxyXG4gICAgaWYgKGNvbmZpZ3VyZWRLZXkgJiYgY29uZmlndXJlZEtleS50cmltKCkgIT09ICcnICYmIGNvbmZpZ3VyZWRLZXkuc3RhcnRzV2l0aChwYWdlSW5mby5sYWJlbHNTZWN0aW9uKSkge1xyXG4gICAgICByZXR1cm4gY29uZmlndXJlZEtleTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gYCR7cGFnZUluZm8ubGFiZWxzU2VjdGlvbn0uJHtjb25maWd1cmVkS2V5fWA7XHJcbiAgfVxyXG5cclxuXHJcbiAgICBwcml2YXRlIGJ1aWxkUmVwb3J0Q29sdW1uKGNvbHVtbnM6IFRhYmxlQ29sdW1uPGFueT5bXSwgcGFnZUluZm86IFBhZ2VJbmZvKTogQ29sdW1uRGVmW10ge1xyXG4gICAgICAgIGxldCBjb2x1bW5EZWY6IENvbHVtbkRlZltdID0gW107XHJcblxyXG4gICAgICAgICAgY29sdW1ucy5maWx0ZXIoeCA9PiAhRVhDTFVERURfUkVQT1JUX0NPTFVNTlMuaW5jbHVkZXMoeC50eXBlKSkuZm9yRWFjaCgoYywgaW5kZXgpID0+IHtcclxuICAgICAgICAgICAgbGV0IHRyYW5zTGFiZWwgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCh0aGlzLmxhYmVsS2V5KGMscGFnZUluZm8pKTtcclxuICAgICAgICAgICAgbGV0IHRyYW5zR3JvdXAgPSBwYWdlSW5mby5zdXBwb3J0R3JvdXBpbmdJbkV4cG9ydCA/XHJcbiAgICAgICAgICAgICAgYy5ncm91cC50cmltKCkgPyB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChjLmdyb3VwKSA6ICcgJyA6IG51bGw7XHJcbiAgICAgICAgICAgIGlmIChjLnR5cGUgPT09ICd3b3JrZmxvd1N0YXR1cycpIHtcclxuICAgICAgICAgICAgICB0cmFuc0xhYmVsID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ3dvcmtmbG93U3RhdHVzJyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKChjLnJlcG9ydFZpc2libGUgPT09IHRydWUpIHx8IChjLnZpc2libGUgPT09IHRydWUgJiYgYy5yZXBvcnRWaXNpYmxlICE9PSBmYWxzZSkpIHtcclxuICAgICAgICAgICAgICBjb2x1bW5EZWYucHVzaChuZXcgQ29sdW1uRGVmKGMsIGluZGV4LCB0cmFuc0xhYmVsLCB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuZ2V0RGVmYXVsdExhbmcoKSx0cmFuc0dyb3VwKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gY29sdW1uRGVmO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgYmFzZTY0VG9BcnJheUJ1ZmZlcihiYXNlNjQ6IHN0cmluZykge1xyXG4gICAgICAgIGNvbnN0IGJpbmFyeVN0cmluZyA9IHdpbmRvdy5hdG9iKGJhc2U2NCk7IC8vIENvbW1lbnQgdGhpcyBpZiBub3QgdXNpbmcgYmFzZTY0XHJcbiAgICAgICAgY29uc3QgYnl0ZXMgPSBuZXcgVWludDhBcnJheShiaW5hcnlTdHJpbmcubGVuZ3RoKTtcclxuICAgICAgICByZXR1cm4gYnl0ZXMubWFwKChieXRlLCBpKSA9PiBiaW5hcnlTdHJpbmcuY2hhckNvZGVBdChpKSk7XHJcbiAgICB9XHJcblxyXG4gICAgYnVpbGRSZXBvcnRSZXF1ZXN0KGNvbHVtbnM6IFRhYmxlQ29sdW1uPGFueT5bXSwgdGl0bGU6IHN0cmluZyB8IHN0cmluZ1tdLCBmaWx0ZXJSZXF1ZXN0OiBGaWx0ZXJSZXF1ZXN0LCByZXBvcnRUeXBlOiBhbnksIHBhZ2VJbmZvOiBQYWdlSW5mbywgc2VhcmNoU3RyOiBzdHJpbmcgLG9yaWVudGF0aW9uPSdQT1JUUkFJVCcpOiBSZXBvcnRSZXF1ZXN0IHtcclxuICAgICAgICBjb25zdCBjb2x1bW5EZWYgPSB0aGlzLmJ1aWxkUmVwb3J0Q29sdW1uKGNvbHVtbnMsIHBhZ2VJbmZvKTtcclxuICAgICAgICBjb25zdCByZXBvcnRSZXF1ZXN0ID0gbmV3IFJlcG9ydFJlcXVlc3Qoe1xyXG4gICAgICAgICAgICBkYXRhc2V0OiBbXSwgZmlsdGVyOiBcIlwiLFxyXG4gICAgICAgICAgICBjb2x1bW5zOiBjb2x1bW5EZWYsXHJcbiAgICAgICAgICAgIC8vIHNlc3Npb25JZDogdGhpcy50b3BQYW5lbC51c2VyU2Vzc2lvbigpLnNlc3Npb25JZCxcclxuICAgICAgICAgICAgc2Vzc2lvbklkOiB0aGlzLmNvbmZpZy5nZXRBdXRoVG9rZW4oKSxcclxuICAgICAgICAgICAgdGl0bGU6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KHRpdGxlKSxcclxuICAgICAgICAgICAgcHJlZkxhbmc6IHRoaXMudHJhbnNsYXRlU2VydmljZS5nZXREZWZhdWx0TGFuZygpLFxyXG4gICAgICAgICAgICByZXBvcnRUeXBlOiByZXBvcnRUeXBlLFxyXG4gICAgICAgICAgICBzZWFyY2hTdHI6IHNlYXJjaFN0cixcclxuICAgICAgICAgICAgZmlsdGVyUmVxdWVzdDogZmlsdGVyUmVxdWVzdCxcclxuICAgICAgICAgICAgb3JpZW50YXRpb246IG9yaWVudGF0aW9ufSk7XHJcbiAgICAgICAgcmV0dXJuIHJlcG9ydFJlcXVlc3Q7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0TG9va3VwSXRlbXNCeU11bHRpRmlsdGVyKGxpc3RJdGVtczogR2V0SXRlbXNMaXN0LCBmaWx0ZXJSZXF1ZXN0PzogRmlsdGVyUmVxdWVzdCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICAgIGxpc3RJdGVtcy5wYWdlU2l6ZSA9IDEwMDtcclxuICAgICAgZmlsdGVyUmVxdWVzdC5wYWdlU2l6ZSA9IDEwMDtcclxuICAgICAgICBjb25zdCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpLnNldCgnc2VhcmNoU3RyJywgbGlzdEl0ZW1zLnNlYXJjaFN0cik7XHJcbiAgICAgICAgbGV0IHVybCA9IGAke3RoaXMuZ2V0QXBpQmFzZVBhdGgoKX0vYXBpL3YxLyR7bGlzdEl0ZW1zLmFwaVVyaX1gO1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh1cmwsIGZpbHRlclJlcXVlc3QsIHsgaGVhZGVyczogdGhpcy5idWlsZFNlY3VyZWRIZWFkZXIoKSwgcGFyYW1zOiBwYXJhbXN9KS5waXBlKFxyXG4gICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxyXG4gICAgICAgICAgICBjYXRjaEVycm9yKGVyciA9PiBvZihlcnIubWVzc2FnZSB8fCBlcnIpKSk7XHJcbiAgICB9XHJcbiAgICBnZXRMb29rdXBJdGVtc0J5RmlsdGVyKGxpc3RJdGVtczogR2V0SXRlbXNMaXN0LCBjYXNjYWRlZElkPzogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgICAgICBsaXN0SXRlbXMucGFnZVNpemUgPSA1MDA7XHJcbiAgICAgICAgY29uc3QgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKS5zZXQoJ3NlYXJjaFN0cicsIGxpc3RJdGVtcy5zZWFyY2hTdHIpO1xyXG4gICAgICAgIGxldCB1cmwgPSBgJHt0aGlzLmdldEFwaUJhc2VQYXRoKCl9L2FwaS92MS8ke2xpc3RJdGVtcy5hcGlVcml9YDtcclxuICAgICAgICBpZiAoY2FzY2FkZWRJZCkge1xyXG4gICAgICAgICAgICB1cmwgPSB1cmwgKyBgLyR7Y2FzY2FkZWRJZH1gXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QodXJsLCBsaXN0SXRlbXMseyBoZWFkZXJzOiB0aGlzLmJ1aWxkU2VjdXJlZEhlYWRlcigpfSkucGlwZShcclxuICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcclxuICAgICAgICAgICAgY2F0Y2hFcnJvcihlcnIgPT4gb2YoZXJyLm1lc3NhZ2UgfHwgZXJyKSkpO1xyXG4gICAgfVxyXG5cclxuXHJcblxyXG4gICAgZG93bmxvYWRSZXBvcnQocmVwb3J0UmVxdWVzdDogUmVwb3J0UmVxdWVzdCwgcGFnZUFwaVBhdGggOiBzdHJpbmcsIHJlYWR5UGF0aD8gOiBib29sZWFuICkge1xyXG4gICAgICBjb25zdCBzID0gcmVhZHlQYXRoID09PSB0cnVlID8gYC9hcGkvdjEke3BhZ2VBcGlQYXRofWAgOiBgL2FwaS92MSR7cGFnZUFwaVBhdGh9L2V4dHJhY3RBbmREb3dubG9hZExpc3RSZXBvcnRgO1xyXG4gICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8UmVzcG9uc2VFbnZlbG9wPih0aGlzLmdldEFwaUJhc2VQYXRoKCkgKyBzLCByZXBvcnRSZXF1ZXN0LCB7aGVhZGVyczogdGhpcy5idWlsZFNlY3VyZWRIZWFkZXIoKX0pLnN1YnNjcmliZShcclxuICAgICAgICAgICAgKHJlc3A6UmVzcG9uc2VFbnZlbG9wKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzcC52YWxpZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNwLmJvZHkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMudG9wUGFuZWxNZXNzYWdlJC5uZXh0KFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBuZXcgU25hY2tNZXNzYWdlKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICdyZXBvcnQuZG93bmxvYWQuc3RhcnQnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ3N1Y2Nlc3MnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudGl0eTogcmVwb3J0UmVxdWVzdC50aXRsZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdDogcmVwb3J0UmVxdWVzdC5yZXBvcnRUeXBlPy50b1VwcGVyQ2FzZSgpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmaWxlbmFtZSA9IHJlcG9ydFJlcXVlc3QudGl0bGUgKyBcIi5cIiArIHJlcG9ydFJlcXVlc3QucmVwb3J0VHlwZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFt0aGlzLmJhc2U2NFRvQXJyYXlCdWZmZXIocmVzcC5ib2R5KV0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobmF2aWdhdG9yLm1zU2F2ZUJsb2IpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hdmlnYXRvci5tc1NhdmVCbG9iKGJsb2IsIGZpbGVuYW1lKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBCcm93c2VycyB0aGF0IHN1cHBvcnQgSFRNTDUgZG93bmxvYWQgYXR0cmlidXRlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGluay5kb3dubG9hZCAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5rLnNldEF0dHJpYnV0ZSgnaHJlZicsIHVybCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluay5zZXRBdHRyaWJ1dGUoJ2Rvd25sb2FkJywgZmlsZW5hbWUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmsuc3R5bGUudmlzaWJpbGl0eSA9ICdoaWRkZW4nO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobGluayk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluay5jbGljaygpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQobGluayk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRvcFBhbmVsTWVzc2FnZSQubmV4dChuZXcgU25hY2tNZXNzYWdlKHJlc3AubWVzc2FnZS50b1N0cmluZygpLCB0cnVlLCAnaW5mbycpKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudG9wUGFuZWxNZXNzYWdlJC5uZXh0KG5ldyBTbmFja01lc3NhZ2UocmVzcC5tZXNzYWdlLnRvU3RyaW5nKCksIGZhbHNlLCAnZXJyb3InKSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICApO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldEFwaUJhc2VQYXRoKCl7XHJcbiAgICAgIHJldHVybiB0aGlzLmNvbmZpZy5nZXRCYXNlQXBpKCk7XHJcbiAgICB9XHJcblxyXG4gIGRvQWN0aW9uV2l0aEF0dGFjaG1lbnRzKHJlcXVlc3Q6IERvQWN0aW9uUmVxdWVzdCwgcGFyYW0yOiBhbnlbXSwgcGFnZUluZm86IFBhZ2VJbmZvKSB7XHJcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLmdldEFwaUJhc2VQYXRoKCl9L2FwaS92MSR7cGFnZUluZm8uYXBpVXJpfS9kb0FjdGlvbldpdGhBdHRhY2htZW50c2A7XHJcbiAgICBjb25zdCBmb3JtRGF0YTogRm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcclxuICAgIGZvcm1EYXRhLnNldCgnZG9BY3Rpb25SZXF1ZXN0JywgbmV3IEJsb2IoW0pTT04uc3RyaW5naWZ5KHJlcXVlc3QpXSwge1xyXG4gICAgICB0eXBlOiBcImFwcGxpY2F0aW9uL2pzb25cIlxyXG4gICAgfSkpO1xyXG5cclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh1cmwsIGZvcm1EYXRhLCB7IGhlYWRlcnM6IHRoaXMuYnVpbGRGb3JtU2VjdXJlZEhlYWRlcigpIH0pLnBpcGUoXHJcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXHJcbiAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgIHJldHVybiBvZihlcnJvci5lcnJvcik7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG5cclxuICB9XHJcbiAgZG9BY3Rpb25XaXRoQXR0YWNobWVudChyZXF1ZXN0OiBEb0FjdGlvblJlcXVlc3QsIGZpbGU6IEZpbGUsIHBhZ2VJbmZvOiBQYWdlSW5mbykge1xyXG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5nZXRBcGlCYXNlUGF0aCgpfS9hcGkvdjEke3BhZ2VJbmZvLmFwaVVyaX0vZG9BY3Rpb25XaXRoQXR0YWNobWVudHNgO1xyXG4gICAgY29uc3QgZm9ybURhdGE6IEZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XHJcblxyXG4gICAgZm9ybURhdGEuYXBwZW5kKCdmaWxlcycsIGZpbGUpO1xyXG4gICAgZm9ybURhdGEuc2V0KCdkb0FjdGlvblJlcXVlc3QnLCBuZXcgQmxvYihbSlNPTi5zdHJpbmdpZnkocmVxdWVzdCldLCB7XHJcbiAgICAgIHR5cGU6IFwiYXBwbGljYXRpb24vanNvblwiXHJcbiAgICB9KSk7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4odXJsLCBmb3JtRGF0YSwge1xyXG4gICAgICBoZWFkZXJzOiB0aGlzLmJ1aWxkRm9ybVNlY3VyZWRIZWFkZXIoKVxyXG4gICAgfSkucGlwZShcclxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcclxuICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgLy8gVHJhbnNmb3JtIHRoZSBlcnJvciBpbnRvIGEgZmFrZSBzdWNjZXNzLWxpa2UgcmVzcG9uc2VcclxuICAgICAgICByZXR1cm4gb2YoZXJyb3IuZXJyb3IpOyAvLyBUaGlzIHdpbGwgbm93IGJlIHBhc3NlZCB0byBgbmV4dGAgaW4gc3Vic2NyaWJlKClcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBlbmNyeXB0KG1lc3NhZ2U6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2VjcmV0c01hbmFnZXIuZW5jcnlwdFNlY3JldChtZXNzYWdlKTtcclxuICB9XHJcblxyXG4gIGRlY3J5cHQoc2VjcmV0OiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLnNlY3JldHNNYW5hZ2VyLmRlY3J5cHRTZWNyZXQoc2VjcmV0KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRDb25maXJtYXRpb24oKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oQWN0aW9uQ29uZmlybWF0aW9uQ29tcG9uZW50LCB7XHJcbiAgICAgIGRhdGE6IHthY2NlcHRBY3Rpb25MYWJlbDogJ2FjY2VwdCcscmVqZWN0QWN0aW9uTGFiZWw6J3JldHVybicsIHdhcm5pbmdNc2c6ICdjb25maXJtYXRpb25fbWVzc2FnZSd9LFxyXG4gICAgICB3aWR0aDogJzYwMHB4JyxcclxuICAgICAgaGVpZ2h0OiAnYXV0bydcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpO1xyXG4gIH1cclxuXHJcbn1cclxuXHJcbmRlY2xhcmUgZ2xvYmFsIHtcclxuICAgIGludGVyZmFjZSBOYXZpZ2F0b3Ige1xyXG4gICAgICAgIG1zU2F2ZUJsb2I6IChibG9iT3JCYXNlNjQ6IEJsb2IgfCBzdHJpbmcsIGZpbGVuYW1lOiBzdHJpbmcpID0+IHZvaWRcclxuICAgIH1cclxufVxyXG4iXX0=