bpm-core 0.0.63 → 0.0.65

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.
@@ -96,7 +96,7 @@ export class AttachmentSectionDataComponent extends ControlValueAccessorDirectiv
96
96
  useExisting: forwardRef(() => AttachmentSectionDataComponent),
97
97
  multi: true,
98
98
  },
99
- ], usesInheritance: true, ngImport: i0, template: "<div class=\"popup-container\">\r\n <div class=\"d-flex align-items-center justify-content-end\" mat-dialog-title>\r\n <h3 class=\"mb-0 font-16 fw-medium\">{{ 'addAttachments' | translate }}</h3>\r\n <ds-button icon matDialogClose>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n <mat-dialog-content>\r\n <div class=\"px-md-4 mt-3\">\r\n <form [formGroup]=\"formGroup\">\r\n <app-file-uploader class=\"section-item full\" [field]=\"popupData\" name=\"file\" [attachments]=\"dialogData?.attachments\"\r\n [labelTextReadMode]=\"'Attachment' | translate\" [labelTextWriteMode]=\"'Attachment' | translate\"\r\n [hasColumnBreak]=\"false\" [label]=\"'Attachment' | translate\" [required]=\"true\" [multiple]=\"false\" \r\n [allowedExtensions]=\"dialogData?.data\"\r\n [isReadOnly]=\"section?.header?.readOnly\" [showActions]=\"false\"\r\n formControlName=\"file\">\r\n </app-file-uploader>\r\n\r\n <app-textarea class=\"section-item d-block mt-4 mb-4\" [section]=\"section\" [field]=\"popupData?.fileDescription\" name=\"fileDescription\"\r\n [labelTextReadMode]=\"'description' | translate\" [labelTextWriteMode]=\"'description' | translate\"\r\n [hasColumnBreak]=\"false\" (emitedValue)=\"handleEmitValue($event,'fileDescription')\"\r\n [label]=\"'description' | translate\" [required]=\"dialogData?.isRequired\" [minLength]='1' [maxLength]='500'\r\n [isReadOnly]=\"section?.header?.readOnly\" [errorMessage]=\"'lenghtMin1Max500' | translate\"\r\n formControlName=\"description\">\r\n </app-textarea>\r\n\r\n <app-textarea class=\"section-item\" [section]=\"section\" [field]=\"popupData?.attachmentcomment\" name=\"attachmentcomment\"\r\n [labelTextReadMode]=\"'comments' | translate\" [labelTextWriteMode]=\"'comments' | translate\"\r\n [hasColumnBreak]=\"false\" (emitedValue)=\"handleEmitValue($event,'attachmentcomment')\" \r\n [label]=\"'comments' | translate\" [required]=\"false\" [minLength]='1' [maxLength]='500' \r\n [isReadOnly]=\"section?.header?.readOnly\" [errorMessage]=\"'lenghtMin1Max500' | translate\"\r\n formControlName=\"comments\">\r\n </app-textarea>\r\n </form>\r\n </div>\r\n </mat-dialog-content>\r\n <mat-dialog-actions class=\"default-footer justify-content-end gap-3\">\r\n <ds-button shape=\"outline\" matDialogClose [disabled]=\"uploading\">{{ 'cancel' | translate }}</ds-button>\r\n <ds-button (click)=\"addAttachments()\" [loading]=\"uploading\"\r\n [disabled]=\"(!(formGroup?.value?.file?.fileContents || formGroup?.value?.file?.attachmentId ) || (dialogData?.isRequired && !formGroup?.value?.description) || uploading || !formGroup.valid)\">\r\n <ng-container *ngIf=\"!editMode; else editTemplate\">\r\n <span>{{ 'add' | translate }}</span>\r\n </ng-container>\r\n <ng-template #editTemplate>\r\n <span>{{ 'edit' | translate }}</span>\r\n </ng-template>\r\n </ds-button>\r\n </mat-dialog-actions>\r\n</div>", styles: ["::ng-deep .add-attachment-dialog{--popup-max-width: 500px !important;--popup-width: 100% !important}::ng-deep .default-footer ds-button::part(base){--btn-min-width: 90px}\n"], dependencies: [{ kind: "component", type: TextareaComponent, selector: "app-textarea", inputs: ["className", "preventSpecailChar"] }, { kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: DocsUploaderComponent, selector: "app-file-uploader", inputs: ["useCrop", "formKey", "showLabel", "downloadLink", "showActions", "styleHeight", "fileInputHeight", "styleWidth", "hints", "allowedExtensions", "callApi", "display", "attachType", "error", "displayedFiles", "getDataFromTemplate", "allowFileContentsWithMultiAttachments", "accept", "signType", "showSignButton", "printType", "showPrintButton", "downloadType", "showDownloadButton", "preventFileContents", "maxSize"], outputs: ["selectedTemplateAttachment", "addSignatureClicked", "printActionClicked", "emitedValue", "downloadActionClicked"] }, { kind: "directive", type: MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i5.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i5.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
99
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"popup-container\">\r\n <div class=\"d-flex align-items-center justify-content-end\" mat-dialog-title>\r\n <h3 class=\"mb-0 font-16 fw-medium\">{{ 'addAttachments' | translate }}</h3>\r\n <ds-button icon matDialogClose>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n <mat-dialog-content>\r\n <div class=\"px-md-4 mt-3\">\r\n <form [formGroup]=\"formGroup\">\r\n <app-file-uploader class=\"section-item full\" [field]=\"popupData\" name=\"file\" [attachments]=\"dialogData?.attachments\"\r\n [labelTextReadMode]=\"'Attachment' | translate\" [labelTextWriteMode]=\"'Attachment' | translate\"\r\n [hasColumnBreak]=\"false\" [label]=\"'Attachment' | translate\" [required]=\"true\" [multiple]=\"false\" \r\n [allowedExtensions]=\"dialogData?.data\"\r\n [isReadOnly]=\"section?.header?.readOnly\" [showActions]=\"false\"\r\n formControlName=\"file\">\r\n </app-file-uploader>\r\n\r\n <app-textarea class=\"section-item d-block mt-4 mb-4\" [section]=\"section\" [field]=\"popupData?.fileDescription\" name=\"fileDescription\"\r\n [labelTextReadMode]=\"'description' | translate\" [labelTextWriteMode]=\"'description' | translate\"\r\n [hasColumnBreak]=\"false\" (emitedValue)=\"handleEmitValue($event,'fileDescription')\"\r\n [label]=\"'description' | translate\" [required]=\"dialogData?.isRequired\" [minLength]='1' [maxLength]='500'\r\n [isReadOnly]=\"section?.header?.readOnly\" [errorMessage]=\"'lenghtMin1Max500' | translate\"\r\n formControlName=\"description\">\r\n </app-textarea>\r\n\r\n <app-textarea class=\"section-item\" [section]=\"section\" [field]=\"popupData?.attachmentcomment\" name=\"attachmentcomment\"\r\n [labelTextReadMode]=\"'comments' | translate\" [labelTextWriteMode]=\"'comments' | translate\"\r\n [hasColumnBreak]=\"false\" (emitedValue)=\"handleEmitValue($event,'attachmentcomment')\" \r\n [label]=\"'comments' | translate\" [required]=\"false\" [minLength]='1' [maxLength]='500' \r\n [isReadOnly]=\"section?.header?.readOnly\" [errorMessage]=\"'lenghtMin1Max500' | translate\"\r\n formControlName=\"comments\">\r\n </app-textarea>\r\n </form>\r\n </div>\r\n </mat-dialog-content>\r\n <mat-dialog-actions class=\"default-footer justify-content-end gap-3\">\r\n <ds-button shape=\"outline\" matDialogClose [disabled]=\"uploading\">{{ 'cancel' | translate }}</ds-button>\r\n <ds-button (click)=\"addAttachments()\" [loading]=\"uploading\"\r\n [disabled]=\"(!(formGroup?.value?.file?.fileContents || formGroup?.value?.file?.attachmentId ) || (dialogData?.isRequired && !formGroup?.value?.description) || uploading || !formGroup.valid)\">\r\n <ng-container *ngIf=\"!editMode; else editTemplate\">\r\n <span>{{ 'add' | translate }}</span>\r\n </ng-container>\r\n <ng-template #editTemplate>\r\n <span>{{ 'edit' | translate }}</span>\r\n </ng-template>\r\n </ds-button>\r\n </mat-dialog-actions>\r\n</div>", styles: ["::ng-deep .add-attachment-dialog{--popup-max-width: 500px !important;--popup-width: 100% !important}::ng-deep .default-footer ds-button::part(base){--btn-min-width: 90px}\n"], dependencies: [{ kind: "component", type: TextareaComponent, selector: "app-textarea", inputs: ["className", "preventSpecailChar"] }, { kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: DocsUploaderComponent, selector: "app-file-uploader", inputs: ["useCrop", "formKey", "showLabel", "downloadLink", "showActions", "styleHeight", "fileInputHeight", "styleWidth", "hints", "allowedExtensions", "callApi", "display", "attachType", "error", "displayedFiles", "getDataFromTemplate", "allowFileContentsWithMultiAttachments", "accept", "signType", "customDownload", "showSignButton", "printType", "showPrintButton", "downloadType", "showDownloadButton", "preventFileContents", "maxSize"], outputs: ["selectedTemplateAttachment", "addSignatureClicked", "printActionClicked", "emitedValue", "downloadActionClicked"] }, { kind: "directive", type: MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i5.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i5.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
100
100
  }
101
101
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: AttachmentSectionDataComponent, decorators: [{
102
102
  type: Component,
@@ -125,4 +125,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
125
125
  }], section: [{
126
126
  type: Input
127
127
  }] } });
128
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWF0dGFjaG1lbnQtc2VjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9icG0tY29yZS9zcmMvbGliL2NvbXBvbmVudHMvc2hhcmVkLWNvbXBvbmVudHMvZm9ybS1maWVsZC9hZGQtYXR0YWNobWVudC1zZWN0aW9uL2FkZC1hdHRhY2htZW50LXNlY3Rpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlZC1jb21wb25lbnRzL2Zvcm0tZmllbGQvYWRkLWF0dGFjaG1lbnQtc2VjdGlvbi9hZGQtYXR0YWNobWVudC1zZWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1Qsc0JBQXNCLEVBQ3RCLFVBQVUsRUFDVixVQUFVLEVBQ1YsTUFBTSxFQUNOLE1BQU0sRUFFTixLQUFLLEdBQ04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbkUsT0FBTyxFQUNMLGVBQWUsRUFDZixnQkFBZ0IsRUFDaEIsY0FBYyxFQUNkLGdCQUFnQixFQUNoQixlQUFlLEdBRWhCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRXBGLE9BQU8sRUFFTCxXQUFXLEVBRVgsaUJBQWlCLEVBQ2pCLG1CQUFtQixFQUNuQixVQUFVLEdBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUloRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFB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QkFBZ0I7d0JBQ2hCLHFCQUFxQjt3QkFDckIsZ0JBQWdCO3dCQUNoQixJQUFJO3dCQUNKLGVBQWU7d0JBQ2YsbUJBQW1CO3dCQUNuQixjQUFjO3dCQUNkLGFBQWE7cUJBQ2QsYUFDVTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSwrQkFBK0IsQ0FBQzs0QkFDN0QsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7OzBCQXVCRSxNQUFNOzJCQUFDLGVBQWU7eUNBZGhCLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSxcclxuICBEZXN0cm95UmVmLFxyXG4gIGZvcndhcmRSZWYsXHJcbiAgaW5qZWN0LFxyXG4gIEluamVjdCxcclxuICBJbmplY3RvcixcclxuICBJbnB1dCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVGV4dGFyZWFDb21wb25lbnQgfSBmcm9tICcuLi90ZXh0YXJlYS90ZXh0YXJlYS5jb21wb25lbnQnO1xyXG5pbXBvcnQge1xyXG4gIE1BVF9ESUFMT0dfREFUQSxcclxuICBNYXREaWFsb2dBY3Rpb25zLFxyXG4gIE1hdERpYWxvZ0Nsb3NlLFxyXG4gIE1hdERpYWxvZ0NvbnRlbnQsXHJcbiAgTWF0RGlhbG9nTW9kdWxlLFxyXG4gIE1hdERpYWxvZ1JlZixcclxufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3JEaXJlY3RpdmUgfSBmcm9tICcuLi9jb250cm9sLXZhbHVlLWFjY2Vzc29yLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFNlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi8uLi9pbnRlcmZhY2VzJztcclxuaW1wb3J0IHtcclxuICBGb3JtQnVpbGRlcixcclxuICBGb3JtQ29udHJvbCxcclxuICBGb3JtR3JvdXAsXHJcbiAgTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICBWYWxpZGF0b3JzLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgRG9jc1VwbG9hZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vZG9jLXVwbG9hZGVyL2RvY3MtdXBsb2FkZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVG9hc3RyU2VydmljZSB9IGZyb20gJ25neC10b2FzdHInO1xyXG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuaW1wb3J0IHtDb3JlSTE4blNlcnZpY2UsIENvcmVTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vLi4vc2VydmljZXNcIjtcclxuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xyXG5pbXBvcnQge1RyYW5zbGF0ZVBpcGV9IGZyb20gXCIuLi8uLi8uLi8uLi9waXBlcy90cmFuc2xhdGUucGlwZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtYWRkLWF0dGFjaG1lbnQtc2VjdGlvbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2FkZC1hdHRhY2htZW50LXNlY3Rpb24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2FkZC1hdHRhY2htZW50LXNlY3Rpb24uY29tcG9uZW50LnNjc3MnXSxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBUZXh0YXJlYUNvbXBvbmVudCxcclxuICAgIE1hdERpYWxvZ0NvbnRlbnQsXHJcbiAgICBEb2NzVXBsb2FkZXJDb21wb25lbnQsXHJcbiAgICBNYXREaWFsb2dBY3Rpb25zLFxyXG4gICAgTmdJZixcclxuICAgIE1hdERpYWxvZ01vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBNYXREaWFsb2dDbG9zZSxcclxuICAgIFRyYW5zbGF0ZVBpcGVcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQXR0YWNobWVudFNlY3Rpb25EYXRhQ29tcG9uZW50KSxcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICB9LFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBdHRhY2htZW50U2VjdGlvbkRhdGFDb21wb25lbnQ8XHJcbiAgVHlwZVxyXG4+IGV4dGVuZHMgQ29udHJvbFZhbHVlQWNjZXNzb3JEaXJlY3RpdmU8VHlwZT4ge1xyXG4gIHBvcHVwRGF0YTogYW55ID0ge307XHJcbiAgcG9wdXBEYXRhT3JnOiBhbnkgPSB7fTtcclxuICB1cGxvYWRpbmc6IGJvb2xlYW47XHJcbiAgZWRpdE1vZGU6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgaGFzQ29sdW1uQnJlYWs6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgc2VjdGlvbjogU2VjdGlvbjtcclxuICBmb3JtR3JvdXA6IEZvcm1Hcm91cDtcclxuICBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xyXG5cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICBpMThuOiBDb3JlSTE4blNlcnZpY2UsXHJcbiAgICB0b2FzdGVyU2VydmljZTogVG9hc3RyU2VydmljZSxcclxuICAgIGNvcmVTZXJ2aWNlOiBDb3JlU2VydmljZSxcclxuICAgIHNhbml0aXplcjogRG9tU2FuaXRpemVyLFxyXG4gICAgZmI6IEZvcm1CdWlsZGVyLFxyXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPGFueT4sXHJcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGRpYWxvZ0RhdGE6IGFueVxyXG4gICkge1xyXG4gICAgc3VwZXIoaW5qZWN0b3IsIGkxOG4sIHRvYXN0ZXJTZXJ2aWNlLCBjb3JlU2VydmljZSwgc2FuaXRpemVyLCBmYik7XHJcbiAgfVxyXG5cclxuICBvdmVycmlkZSBuZ09uSW5pdCgpIHtcclxuICAgIC8vIHN1cGVyLm5nT25Jbml0KClcclxuICAgIHRoaXMuY3JlYXRlRm9ybSgpO1xyXG4gICAgaWYgKHRoaXMuZGlhbG9nRGF0YT8uYXR0YWNobWVudExpc3REYXRhKSB7XHJcbiAgICAgIHRoaXMucG9wdXBEYXRhID0gdGhpcy5kaWFsb2dEYXRhLmF0dGFjaG1lbnRMaXN0RGF0YTtcclxuICAgICAgdGhpcy5wb3B1cERhdGFPcmcgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLnBvcHVwRGF0YSk7XHJcbiAgICAgIHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzWydmaWxlJ10uc2V0VmFsdWUoXHJcbiAgICAgICAgdGhpcy5kaWFsb2dEYXRhLmF0dGFjaG1lbnRMaXN0RGF0YVxyXG4gICAgICApO1xyXG4gICAgICB0aGlzLmZvcm1Hcm91cC5jb250cm9sc1snZGVzY3JpcHRpb24nXS5zZXRWYWx1ZShcclxuICAgICAgICB0aGlzLmRpYWxvZ0RhdGEuYXR0YWNobWVudExpc3REYXRhLmZpbGVEZXNjcmlwdGlvblxyXG4gICAgICApO1xyXG4gICAgICB0aGlzLmZvcm1Hcm91cC5jb250cm9sc1snY29tbWVudHMnXS5zZXRWYWx1ZShcclxuICAgICAgICB0aGlzLmRpYWxvZ0RhdGEuYXR0YWNobWVudExpc3REYXRhLmZpbGVDb21tZW50c1xyXG4gICAgICApO1xyXG4gICAgICB0aGlzLmVkaXRNb2RlID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcbiAgY3JlYXRlRm9ybSgpIHtcclxuICAgIHRoaXMuZm9ybUdyb3VwID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgIGZpbGU6IG5ldyBGb3JtQ29udHJvbChudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcclxuICAgICAgZGVzY3JpcHRpb246IG5ldyBGb3JtQ29udHJvbChudWxsLHRoaXMuZGlhbG9nRGF0YS5kZXNjcmlwdGlvblJlcXVpcmVkID8gVmFsaWRhdG9ycy5yZXF1aXJlZDogbnVsbCksXHJcbiAgICAgIGNvbW1lbnRzOiBuZXcgRm9ybUNvbnRyb2wobnVsbCwgdGhpcy5kaWFsb2dEYXRhLmNvbW1lbnRzUmVxdWlyZWQgPyBWYWxpZGF0b3JzLnJlcXVpcmVkOiBudWxsKSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgY2xvc2UoKSB7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh0aGlzLnBvcHVwRGF0YU9yZyk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVFbWl0VmFsdWUoZGF0YTogYW55LCBmaWVsZE5hbWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5wb3B1cERhdGFbZmllbGROYW1lXSA9IGRhdGE7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVBdHRhY2htZW50RW1pdFZhbHVlKGRhdGE6IGFueSkge1xyXG4gICAgdGhpcy5wb3B1cERhdGEgPSB7XHJcbiAgICAgIGZpbGVDb250ZW50czogZGF0YT8uZmlsZUNvbnRlbnRzLFxyXG4gICAgICBmaWxlTmFtZTogZGF0YT8uZmlsZU5hbWUsXHJcbiAgICAgIG1pbWVUeXBlOiBkYXRhPy5taW1lVHlwZSxcclxuICAgICAgZmlsZURlc2NyaXB0aW9uOiB0aGlzLnBvcHVwRGF0YT8uZmlsZURlc2NyaXB0aW9uLFxyXG4gICAgICBhdHRhY2htZW50Y29tbWVudDogdGhpcy5wb3B1cERhdGE/LmF0dGFjaG1lbnRjb21tZW50LFxyXG4gICAgICBmaWxlQ29tbWVudHM6IHRoaXMucG9wdXBEYXRhPy5hdHRhY2htZW50Y29tbWVudCxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBhZGRBdHRhY2htZW50cygpIHtcclxuICAgIGNvbnN0IGRhdGEgPSB7XHJcbiAgICAgIGZpbGVEZXNjcmlwdGlvbjogdGhpcy5mb3JtR3JvdXAuY29udHJvbHNbJ2Rlc2NyaXB0aW9uJ10udmFsdWUsXHJcbiAgICAgIGF0dGFjaG1lbnRjb21tZW50OiB0aGlzLmZvcm1Hcm91cC5jb250cm9sc1snY29tbWVudHMnXS52YWx1ZSxcclxuICAgICAgZmlsZUNvbW1lbnRzOiB0aGlzLmZvcm1Hcm91cC5jb250cm9sc1snY29tbWVudHMnXS52YWx1ZSxcclxuICAgICAgZmlsZU5hbWU6IHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzWydmaWxlJ10udmFsdWUuZmlsZU5hbWUsXHJcbiAgICAgIG1pbWVUeXBlOiB0aGlzLmZvcm1Hcm91cC5jb250cm9sc1snZmlsZSddLnZhbHVlLm1pbWVUeXBlLFxyXG4gICAgICBmaWxlQ29udGVudHM6IHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzWydmaWxlJ10udmFsdWUuZmlsZUNvbnRlbnRzLFxyXG4gICAgfTtcclxuICAgIHRoaXMudXBsb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMuY29yZVNlcnZpY2UuZ2V0QXR0YWNobWVudHMoZGF0YSkucGlwZShcclxuICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZilcclxuICAgICkuc3Vic2NyaWJlKChSZXNwb25zZTogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMudXBsb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIGlmIChSZXNwb25zZSkge1xyXG4gICAgICAgIGNvbnN0IG5ld09iaiA9IHtcclxuICAgICAgICAgIGZpbGVEZXNjcmlwdGlvbjogdGhpcy5mb3JtR3JvdXAuY29udHJvbHNbJ2Rlc2NyaXB0aW9uJ10udmFsdWUsXHJcbiAgICAgICAgICBhdHRhY2htZW50Y29tbWVudDogdGhpcy5mb3JtR3JvdXAuY29udHJvbHNbJ2NvbW1lbnRzJ10udmFsdWUsXHJcbiAgICAgICAgICBmaWxlQ29tbWVudHM6IHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzWydjb21tZW50cyddLnZhbHVlLFxyXG4gICAgICAgICAgZmlsZU5hbWU6IHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzWydmaWxlJ10udmFsdWUuZmlsZU5hbWUsXHJcbiAgICAgICAgICBhdHRhY2htZW50SWQ6IFJlc3BvbnNlLmF0dGFjaG1lbnQuYXR0YWNobWVudElkLFxyXG4gICAgICAgICAgbWltZVR5cGU6IHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzWydmaWxlJ10udmFsdWUubWltZVR5cGUsXHJcbiAgICAgICAgfTtcclxuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZShuZXdPYmopO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInBvcHVwLWNvbnRhaW5lclwiPlxyXG4gIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1lbmRcIiBtYXQtZGlhbG9nLXRpdGxlPlxyXG4gICAgPGgzIGNsYXNzPVwibWItMCBmb250LTE2IGZ3LW1lZGl1bVwiPnt7ICdhZGRBdHRhY2htZW50cycgfCB0cmFuc2xhdGUgfX08L2gzPlxyXG4gICAgPGRzLWJ1dHRvbiBpY29uIG1hdERpYWxvZ0Nsb3NlPlxyXG4gICAgICA8ZHMtaWNvbiBpY29uPVwiY2xvc2VcIiBjbGFzcz1cImZzLTIwIGZjLWJsYWNrXCI+PC9kcy1pY29uPlxyXG4gICAgPC9kcy1idXR0b24+XHJcbiAgPC9kaXY+XHJcbiAgPG1hdC1kaWFsb2ctY29udGVudD5cclxuICAgIDxkaXYgY2xhc3M9XCJweC1tZC00IG10LTNcIj5cclxuICAgICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIj5cclxuICAgICAgICA8YXBwLWZpbGUtdXBsb2FkZXIgY2xhc3M9XCJzZWN0aW9uLWl0ZW0gZnVsbFwiIFtmaWVsZF09XCJwb3B1cERhdGFcIiBuYW1lPVwiZmlsZVwiIFthdHRhY2htZW50c109XCJkaWFsb2dEYXRhPy5hdHRhY2htZW50c1wiXHJcbiAgICAgICAgICBbbGFiZWxUZXh0UmVhZE1vZGVdPVwiJ0F0dGFjaG1lbnQnIHwgdHJhbnNsYXRlXCIgW2xhYmVsVGV4dFdyaXRlTW9kZV09XCInQXR0YWNobWVudCcgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgICAgW2hhc0NvbHVtbkJyZWFrXT1cImZhbHNlXCIgW2xhYmVsXT1cIidBdHRhY2htZW50JyB8IHRyYW5zbGF0ZVwiIFtyZXF1aXJlZF09XCJ0cnVlXCIgW211bHRpcGxlXT1cImZhbHNlXCIgXHJcbiAgICAgICAgICBbYWxsb3dlZEV4dGVuc2lvbnNdPVwiZGlhbG9nRGF0YT8uZGF0YVwiXHJcbiAgICAgICAgICBbaXNSZWFkT25seV09XCJzZWN0aW9uPy5oZWFkZXI/LnJlYWRPbmx5XCIgW3Nob3dBY3Rpb25zXT1cImZhbHNlXCJcclxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImZpbGVcIj5cclxuICAgICAgICA8L2FwcC1maWxlLXVwbG9hZGVyPlxyXG5cclxuICAgICAgICA8YXBwLXRleHRhcmVhIGNsYXNzPVwic2VjdGlvbi1pdGVtIGQtYmxvY2sgbXQtNCBtYi00XCIgW3NlY3Rpb25dPVwic2VjdGlvblwiIFtmaWVsZF09XCJwb3B1cERhdGE/LmZpbGVEZXNjcmlwdGlvblwiIG5hbWU9XCJmaWxlRGVzY3JpcHRpb25cIlxyXG4gICAgICAgICAgW2xhYmVsVGV4dFJlYWRNb2RlXT1cIidkZXNjcmlwdGlvbicgfCB0cmFuc2xhdGVcIiBbbGFiZWxUZXh0V3JpdGVNb2RlXT1cIidkZXNjcmlwdGlvbicgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgICAgW2hhc0NvbHVtbkJyZWFrXT1cImZhbHNlXCIgKGVtaXRlZFZhbHVlKT1cImhhbmRsZUVtaXRWYWx1ZSgkZXZlbnQsJ2ZpbGVEZXNjcmlwdGlvbicpXCJcclxuICAgICAgICAgIFtsYWJlbF09XCInZGVzY3JpcHRpb24nIHwgdHJhbnNsYXRlXCIgW3JlcXVpcmVkXT1cImRpYWxvZ0RhdGE/LmlzUmVxdWlyZWRcIiBbbWluTGVuZ3RoXT0nMScgW21heExlbmd0aF09JzUwMCdcclxuICAgICAgICAgIFtpc1JlYWRPbmx5XT1cInNlY3Rpb24/LmhlYWRlcj8ucmVhZE9ubHlcIiBbZXJyb3JNZXNzYWdlXT1cIidsZW5naHRNaW4xTWF4NTAwJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJkZXNjcmlwdGlvblwiPlxyXG4gICAgICAgIDwvYXBwLXRleHRhcmVhPlxyXG5cclxuICAgICAgICA8YXBwLXRleHRhcmVhIGNsYXNzPVwic2VjdGlvbi1pdGVtXCIgW3NlY3Rpb25dPVwic2VjdGlvblwiIFtmaWVsZF09XCJwb3B1cERhdGE/LmF0dGFjaG1lbnRjb21tZW50XCIgbmFtZT1cImF0dGFjaG1lbnRjb21tZW50XCJcclxuICAgICAgICAgIFtsYWJlbFRleHRSZWFkTW9kZV09XCInY29tbWVudHMnIHwgdHJhbnNsYXRlXCIgW2xhYmVsVGV4dFdyaXRlTW9kZV09XCInY29tbWVudHMnIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICAgIFtoYXNDb2x1bW5CcmVha109XCJmYWxzZVwiIChlbWl0ZWRWYWx1ZSk9XCJoYW5kbGVFbWl0VmFsdWUoJGV2ZW50LCdhdHRhY2htZW50Y29tbWVudCcpXCIgXHJcbiAgICAgICAgICBbbGFiZWxdPVwiJ2NvbW1lbnRzJyB8IHRyYW5zbGF0ZVwiIFtyZXF1aXJlZF09XCJmYWxzZVwiIFttaW5MZW5ndGhdPScxJyBbbWF4TGVuZ3RoXT0nNTAwJyBcclxuICAgICAgICAgIFtpc1JlYWRPbmx5XT1cInNlY3Rpb24/LmhlYWRlcj8ucmVhZE9ubHlcIiBbZXJyb3JNZXNzYWdlXT1cIidsZW5naHRNaW4xTWF4NTAwJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJjb21tZW50c1wiPlxyXG4gICAgICAgIDwvYXBwLXRleHRhcmVhPlxyXG4gICAgICA8L2Zvcm0+XHJcbiAgICA8L2Rpdj5cclxuICA8L21hdC1kaWFsb2ctY29udGVudD5cclxuICA8bWF0LWRpYWxvZy1hY3Rpb25zIGNsYXNzPVwiZGVmYXVsdC1mb290ZXIganVzdGlmeS1jb250ZW50LWVuZCBnYXAtM1wiPlxyXG4gICAgPGRzLWJ1dHRvbiBzaGFwZT1cIm91dGxpbmVcIiBtYXREaWFsb2dDbG9zZSBbZGlzYWJsZWRdPVwidXBsb2FkaW5nXCI+e3sgJ2NhbmNlbCcgfCB0cmFuc2xhdGUgfX08L2RzLWJ1dHRvbj5cclxuICAgIDxkcy1idXR0b24gKGNsaWNrKT1cImFkZEF0dGFjaG1lbnRzKClcIiBbbG9hZGluZ109XCJ1cGxvYWRpbmdcIlxyXG4gICAgICBbZGlzYWJsZWRdPVwiKCEoZm9ybUdyb3VwPy52YWx1ZT8uZmlsZT8uZmlsZUNvbnRlbnRzIHx8IGZvcm1Hcm91cD8udmFsdWU/LmZpbGU/LmF0dGFjaG1lbnRJZCApIHx8IChkaWFsb2dEYXRhPy5pc1JlcXVpcmVkICYmICFmb3JtR3JvdXA/LnZhbHVlPy5kZXNjcmlwdGlvbikgfHwgdXBsb2FkaW5nIHx8ICFmb3JtR3JvdXAudmFsaWQpXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhZWRpdE1vZGU7IGVsc2UgZWRpdFRlbXBsYXRlXCI+XHJcbiAgICAgICAgPHNwYW4+e3sgJ2FkZCcgfCB0cmFuc2xhdGUgfX08L3NwYW4+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8bmctdGVtcGxhdGUgI2VkaXRUZW1wbGF0ZT5cclxuICAgICAgICA8c3Bhbj57eyAnZWRpdCcgfCB0cmFuc2xhdGUgfX08L3NwYW4+XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L2RzLWJ1dHRvbj5cclxuICA8L21hdC1kaWFsb2ctYWN0aW9ucz5cclxuPC9kaXY+Il19
128
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWF0dGFjaG1lbnQtc2VjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9icG0tY29yZS9zcmMvbGliL2NvbXBvbmVudHMvc2hhcmVkLWNvbXBvbmVudHMvZm9ybS1maWVsZC9hZGQtYXR0YWNobWVudC1zZWN0aW9uL2FkZC1hdHRhY2htZW50LXNlY3Rpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlZC1jb21wb25lbnRzL2Zvcm0tZmllbGQvYWRkLWF0dGFjaG1lbnQtc2VjdGlvbi9hZGQtYXR0YWNobWVudC1zZWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1Qsc0JBQXNCLEVBQ3RCLFVBQVUsRUFDVixVQUFVLEVBQ1YsTUFBTSxFQUNOLE1BQU0sRUFFTixLQUFLLEdBQ04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbkUsT0FBTyxFQUNMLGVBQWUsRUFDZixnQkFBZ0IsRUFDaEIsY0FBYyxFQUNkLGdCQUFnQixFQUNoQixlQUFlLEdBRWhCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRXBGLE9BQU8sRUFFTCxXQUFXLEVBRVgsaUJBQWlCLEVBQ2pCLG1CQUFtQixFQUNuQixVQUFVLEdBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUloRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFB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QkFBZ0I7d0JBQ2hCLHFCQUFxQjt3QkFDckIsZ0JBQWdCO3dCQUNoQixJQUFJO3dCQUNKLGVBQWU7d0JBQ2YsbUJBQW1CO3dCQUNuQixjQUFjO3dCQUNkLGFBQWE7cUJBQ2QsYUFDVTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSwrQkFBK0IsQ0FBQzs0QkFDN0QsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7OzBCQXVCRSxNQUFNOzJCQUFDLGVBQWU7eUNBZGhCLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSxcclxuICBEZXN0cm95UmVmLFxyXG4gIGZvcndhcmRSZWYsXHJcbiAgaW5qZWN0LFxyXG4gIEluamVjdCxcclxuICBJbmplY3RvcixcclxuICBJbnB1dCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVGV4dGFyZWFDb21wb25lbnQgfSBmcm9tICcuLi90ZXh0YXJlYS90ZXh0YXJlYS5jb21wb25lbnQnO1xyXG5pbXBvcnQge1xyXG4gIE1BVF9ESUFMT0dfREFUQSxcclxuICBNYXREaWFsb2dBY3Rpb25zLFxyXG4gIE1hdERpYWxvZ0Nsb3NlLFxyXG4gIE1hdERpYWxvZ0NvbnRlbnQsXHJcbiAgTWF0RGlhbG9nTW9kdWxlLFxyXG4gIE1hdERpYWxvZ1JlZixcclxufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3JEaXJlY3RpdmUgfSBmcm9tICcuLi9jb250cm9sLXZhbHVlLWFjY2Vzc29yLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFNlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi8uLi9pbnRlcmZhY2VzJztcclxuaW1wb3J0IHtcclxuICBGb3JtQnVpbGRlcixcclxuICBGb3JtQ29udHJvbCxcclxuICBGb3JtR3JvdXAsXHJcbiAgTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICBWYWxpZGF0b3JzLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgRG9jc1VwbG9hZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vZG9jLXVwbG9hZGVyL2RvY3MtdXBsb2FkZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVG9hc3RyU2VydmljZSB9IGZyb20gJ25neC10b2FzdHInO1xyXG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuaW1wb3J0IHtDb3JlSTE4blNlcnZpY2UsIENvcmVTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vLi4vc2VydmljZXNcIjtcclxuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xyXG5pbXBvcnQge1RyYW5zbGF0ZVBpcGV9IGZyb20gXCIuLi8uLi8uLi8uLi9waXBlcy90cmFuc2xhdGUucGlwZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtYWRkLWF0dGFjaG1lbnQtc2VjdGlvbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2FkZC1hdHRhY2htZW50LXNlY3Rpb24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2FkZC1hdHRhY2htZW50LXNlY3Rpb24uY29tcG9uZW50LnNjc3MnXSxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBUZXh0YXJlYUNvbXBvbmVudCxcclxuICAgIE1hdERpYWxvZ0NvbnRlbnQsXHJcbiAgICBEb2NzVXBsb2FkZXJDb21wb25lbnQsXHJcbiAgICBNYXREaWFsb2dBY3Rpb25zLFxyXG4gICAgTmdJZixcclxuICAgIE1hdERpYWxvZ01vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBNYXREaWFsb2dDbG9zZSxcclxuICAgIFRyYW5zbGF0ZVBpcGVcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQXR0YWNobWVudFNlY3Rpb25EYXRhQ29tcG9uZW50KSxcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICB9LFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBdHRhY2htZW50U2VjdGlvbkRhdGFDb21wb25lbnQ8XHJcbiAgVHlwZVxyXG4+IGV4dGVuZHMgQ29udHJvbFZhbHVlQWNjZXNzb3JEaXJlY3RpdmU8VHlwZT4ge1xyXG4gIHBvcHVwRGF0YTogYW55ID0ge307XHJcbiAgcG9wdXBEYXRhT3JnOiBhbnkgPSB7fTtcclxuICB1cGxvYWRpbmc6IGJvb2xlYW47XHJcbiAgZWRpdE1vZGU6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgaGFzQ29sdW1uQnJlYWs6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgc2VjdGlvbjogU2VjdGlvbjtcclxuICBmb3JtR3JvdXA6IEZvcm1Hcm91cDtcclxuICBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xyXG5cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICBpMThuOiBDb3JlSTE4blNlcnZpY2UsXHJcbiAgICB0b2FzdGVyU2VydmljZTogVG9hc3RyU2VydmljZSxcclxuICAgIGNvcmVTZXJ2aWNlOiBDb3JlU2VydmljZSxcclxuICAgIHNhbml0aXplcjogRG9tU2FuaXRpemVyLFxyXG4gICAgZmI6IEZvcm1CdWlsZGVyLFxyXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPGFueT4sXHJcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGRpYWxvZ0RhdGE6IGFueVxyXG4gICkge1xyXG4gICAgc3VwZXIoaW5qZWN0b3IsIGkxOG4sIHRvYXN0ZXJTZXJ2aWNlLCBjb3JlU2VydmljZSwgc2FuaXRpemVyLCBmYik7XHJcbiAgfVxyXG5cclxuICBvdmVycmlkZSBuZ09uSW5pdCgpIHtcclxuICAgIC8vIHN1cGVyLm5nT25Jbml0KClcclxuICAgIHRoaXMuY3JlYXRlRm9ybSgpO1xyXG4gICAgaWYgKHRoaXMuZGlhbG9nRGF0YT8uYXR0YWNobWVudExpc3REYXRhKSB7XHJcbiAgICAgIHRoaXMucG9wdXBEYXRhID0gdGhpcy5kaWFsb2dEYXRhLmF0dGFjaG1lbnRMaXN0RGF0YTtcclxuICAgICAgdGhpcy5wb3B1cERhdGFPcmcgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLnBvcHVwRGF0YSk7XHJcbiAgICAgIHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzWydmaWxlJ10uc2V0VmFsdWUoXHJcbiAgICAgICAgdGhpcy5kaWFsb2dEYXRhLmF0dGFjaG1lbnRMaXN0RGF0YVxyXG4gICAgICApO1xyXG4gICAgICB0aGlzLmZvcm1Hcm91cC5jb250cm9sc1snZGVzY3JpcHRpb24nXS5zZXRWYWx1ZShcclxuICAgICAgICB0aGlzLmRpYWxvZ0RhdGEuYXR0YWNobWVudExpc3REYXRhLmZpbGVEZXNjcmlwdGlvblxyXG4gICAgICApO1xyXG4gICAgICB0aGlzLmZvcm1Hcm91cC5jb250cm9sc1snY29tbWVudHMnXS5zZXRWYWx1ZShcclxuICAgICAgICB0aGlzLmRpYWxvZ0RhdGEuYXR0YWNobWVudExpc3REYXRhLmZpbGVDb21tZW50c1xyXG4gICAgICApO1xyXG4gICAgICB0aGlzLmVkaXRNb2RlID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcbiAgY3JlYXRlRm9ybSgpIHtcclxuICAgIHRoaXMuZm9ybUdyb3VwID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgIGZpbGU6IG5ldyBGb3JtQ29udHJvbChudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcclxuICAgICAgZGVzY3JpcHRpb246IG5ldyBGb3JtQ29udHJvbChudWxsLHRoaXMuZGlhbG9nRGF0YS5kZXNjcmlwdGlvblJlcXVpcmVkID8gVmFsaWRhdG9ycy5yZXF1aXJlZDogbnVsbCksXHJcbiAgICAgIGNvbW1lbnRzOiBuZXcgRm9ybUNvbnRyb2wobnVsbCwgdGhpcy5kaWFsb2dEYXRhLmNvbW1lbnRzUmVxdWlyZWQgPyBWYWxpZGF0b3JzLnJlcXVpcmVkOiBudWxsKSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgY2xvc2UoKSB7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh0aGlzLnBvcHVwRGF0YU9yZyk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVFbWl0VmFsdWUoZGF0YTogYW55LCBmaWVsZE5hbWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5wb3B1cERhdGFbZmllbGROYW1lXSA9IGRhdGE7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVBdHRhY2htZW50RW1pdFZhbHVlKGRhdGE6IGFueSkge1xyXG4gICAgdGhpcy5wb3B1cERhdGEgPSB7XHJcbiAgICAgIGZpbGVDb250ZW50czogZGF0YT8uZmlsZUNvbnRlbnRzLFxyXG4gICAgICBmaWxlTmFtZTogZGF0YT8uZmlsZU5hbWUsXHJcbiAgICAgIG1pbWVUeXBlOiBkYXRhPy5taW1lVHlwZSxcclxuICAgICAgZmlsZURlc2NyaXB0aW9uOiB0aGlzLnBvcHVwRGF0YT8uZmlsZURlc2NyaXB0aW9uLFxyXG4gICAgICBhdHRhY2htZW50Y29tbWVudDogdGhpcy5wb3B1cERhdGE/LmF0dGFjaG1lbnRjb21tZW50LFxyXG4gICAgICBmaWxlQ29tbWVudHM6IHRoaXMucG9wdXBEYXRhPy5hdHRhY2htZW50Y29tbWVudCxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBhZGRBdHRhY2htZW50cygpIHtcclxuICAgIGNvbnN0IGRhdGEgPSB7XHJcbiAgICAgIGZpbGVEZXNjcmlwdGlvbjogdGhpcy5mb3JtR3JvdXAuY29udHJvbHNbJ2Rlc2NyaXB0aW9uJ10udmFsdWUsXHJcbiAgICAgIGF0dGFjaG1lbnRjb21tZW50OiB0aGlzLmZvcm1Hcm91cC5jb250cm9sc1snY29tbWVudHMnXS52YWx1ZSxcclxuICAgICAgZmlsZUNvbW1lbnRzOiB0aGlzLmZvcm1Hcm91cC5jb250cm9sc1snY29tbWVudHMnXS52YWx1ZSxcclxuICAgICAgZmlsZU5hbWU6IHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzWydmaWxlJ10udmFsdWUuZmlsZU5hbWUsXHJcbiAgICAgIG1pbWVUeXBlOiB0aGlzLmZvcm1Hcm91cC5jb250cm9sc1snZmlsZSddLnZhbHVlLm1pbWVUeXBlLFxyXG4gICAgICBmaWxlQ29udGVudHM6IHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzWydmaWxlJ10udmFsdWUuZmlsZUNvbnRlbnRzLFxyXG4gICAgfTtcclxuICAgIHRoaXMudXBsb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMuY29yZVNlcnZpY2UuZ2V0QXR0YWNobWVudHMoZGF0YSkucGlwZShcclxuICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZilcclxuICAgICkuc3Vic2NyaWJlKChSZXNwb25zZTogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMudXBsb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIGlmIChSZXNwb25zZSkge1xyXG4gICAgICAgIGNvbnN0IG5ld09iaiA9IHtcclxuICAgICAgICAgIGZpbGVEZXNjcmlwdGlvbjogdGhpcy5mb3JtR3JvdXAuY29udHJvbHNbJ2Rlc2NyaXB0aW9uJ10udmFsdWUsXHJcbiAgICAgICAgICBhdHRhY2htZW50Y29tbWVudDogdGhpcy5mb3JtR3JvdXAuY29udHJvbHNbJ2NvbW1lbnRzJ10udmFsdWUsXHJcbiAgICAgICAgICBmaWxlQ29tbWVudHM6IHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzWydjb21tZW50cyddLnZhbHVlLFxyXG4gICAgICAgICAgZmlsZU5hbWU6IHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzWydmaWxlJ10udmFsdWUuZmlsZU5hbWUsXHJcbiAgICAgICAgICBhdHRhY2htZW50SWQ6IFJlc3BvbnNlLmF0dGFjaG1lbnQuYXR0YWNobWVudElkLFxyXG4gICAgICAgICAgbWltZVR5cGU6IHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzWydmaWxlJ10udmFsdWUubWltZVR5cGUsXHJcbiAgICAgICAgfTtcclxuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZShuZXdPYmopO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInBvcHVwLWNvbnRhaW5lclwiPlxyXG4gIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1lbmRcIiBtYXQtZGlhbG9nLXRpdGxlPlxyXG4gICAgPGgzIGNsYXNzPVwibWItMCBmb250LTE2IGZ3LW1lZGl1bVwiPnt7ICdhZGRBdHRhY2htZW50cycgfCB0cmFuc2xhdGUgfX08L2gzPlxyXG4gICAgPGRzLWJ1dHRvbiBpY29uIG1hdERpYWxvZ0Nsb3NlPlxyXG4gICAgICA8ZHMtaWNvbiBpY29uPVwiY2xvc2VcIiBjbGFzcz1cImZzLTIwIGZjLWJsYWNrXCI+PC9kcy1pY29uPlxyXG4gICAgPC9kcy1idXR0b24+XHJcbiAgPC9kaXY+XHJcbiAgPG1hdC1kaWFsb2ctY29udGVudD5cclxuICAgIDxkaXYgY2xhc3M9XCJweC1tZC00IG10LTNcIj5cclxuICAgICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIj5cclxuICAgICAgICA8YXBwLWZpbGUtdXBsb2FkZXIgY2xhc3M9XCJzZWN0aW9uLWl0ZW0gZnVsbFwiIFtmaWVsZF09XCJwb3B1cERhdGFcIiBuYW1lPVwiZmlsZVwiIFthdHRhY2htZW50c109XCJkaWFsb2dEYXRhPy5hdHRhY2htZW50c1wiXHJcbiAgICAgICAgICBbbGFiZWxUZXh0UmVhZE1vZGVdPVwiJ0F0dGFjaG1lbnQnIHwgdHJhbnNsYXRlXCIgW2xhYmVsVGV4dFdyaXRlTW9kZV09XCInQXR0YWNobWVudCcgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgICAgW2hhc0NvbHVtbkJyZWFrXT1cImZhbHNlXCIgW2xhYmVsXT1cIidBdHRhY2htZW50JyB8IHRyYW5zbGF0ZVwiIFtyZXF1aXJlZF09XCJ0cnVlXCIgW211bHRpcGxlXT1cImZhbHNlXCIgXHJcbiAgICAgICAgICBbYWxsb3dlZEV4dGVuc2lvbnNdPVwiZGlhbG9nRGF0YT8uZGF0YVwiXHJcbiAgICAgICAgICBbaXNSZWFkT25seV09XCJzZWN0aW9uPy5oZWFkZXI/LnJlYWRPbmx5XCIgW3Nob3dBY3Rpb25zXT1cImZhbHNlXCJcclxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImZpbGVcIj5cclxuICAgICAgICA8L2FwcC1maWxlLXVwbG9hZGVyPlxyXG5cclxuICAgICAgICA8YXBwLXRleHRhcmVhIGNsYXNzPVwic2VjdGlvbi1pdGVtIGQtYmxvY2sgbXQtNCBtYi00XCIgW3NlY3Rpb25dPVwic2VjdGlvblwiIFtmaWVsZF09XCJwb3B1cERhdGE/LmZpbGVEZXNjcmlwdGlvblwiIG5hbWU9XCJmaWxlRGVzY3JpcHRpb25cIlxyXG4gICAgICAgICAgW2xhYmVsVGV4dFJlYWRNb2RlXT1cIidkZXNjcmlwdGlvbicgfCB0cmFuc2xhdGVcIiBbbGFiZWxUZXh0V3JpdGVNb2RlXT1cIidkZXNjcmlwdGlvbicgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgICAgW2hhc0NvbHVtbkJyZWFrXT1cImZhbHNlXCIgKGVtaXRlZFZhbHVlKT1cImhhbmRsZUVtaXRWYWx1ZSgkZXZlbnQsJ2ZpbGVEZXNjcmlwdGlvbicpXCJcclxuICAgICAgICAgIFtsYWJlbF09XCInZGVzY3JpcHRpb24nIHwgdHJhbnNsYXRlXCIgW3JlcXVpcmVkXT1cImRpYWxvZ0RhdGE/LmlzUmVxdWlyZWRcIiBbbWluTGVuZ3RoXT0nMScgW21heExlbmd0aF09JzUwMCdcclxuICAgICAgICAgIFtpc1JlYWRPbmx5XT1cInNlY3Rpb24/LmhlYWRlcj8ucmVhZE9ubHlcIiBbZXJyb3JNZXNzYWdlXT1cIidsZW5naHRNaW4xTWF4NTAwJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJkZXNjcmlwdGlvblwiPlxyXG4gICAgICAgIDwvYXBwLXRleHRhcmVhPlxyXG5cclxuICAgICAgICA8YXBwLXRleHRhcmVhIGNsYXNzPVwic2VjdGlvbi1pdGVtXCIgW3NlY3Rpb25dPVwic2VjdGlvblwiIFtmaWVsZF09XCJwb3B1cERhdGE/LmF0dGFjaG1lbnRjb21tZW50XCIgbmFtZT1cImF0dGFjaG1lbnRjb21tZW50XCJcclxuICAgICAgICAgIFtsYWJlbFRleHRSZWFkTW9kZV09XCInY29tbWVudHMnIHwgdHJhbnNsYXRlXCIgW2xhYmVsVGV4dFdyaXRlTW9kZV09XCInY29tbWVudHMnIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICAgIFtoYXNDb2x1bW5CcmVha109XCJmYWxzZVwiIChlbWl0ZWRWYWx1ZSk9XCJoYW5kbGVFbWl0VmFsdWUoJGV2ZW50LCdhdHRhY2htZW50Y29tbWVudCcpXCIgXHJcbiAgICAgICAgICBbbGFiZWxdPVwiJ2NvbW1lbnRzJyB8IHRyYW5zbGF0ZVwiIFtyZXF1aXJlZF09XCJmYWxzZVwiIFttaW5MZW5ndGhdPScxJyBbbWF4TGVuZ3RoXT0nNTAwJyBcclxuICAgICAgICAgIFtpc1JlYWRPbmx5XT1cInNlY3Rpb24/LmhlYWRlcj8ucmVhZE9ubHlcIiBbZXJyb3JNZXNzYWdlXT1cIidsZW5naHRNaW4xTWF4NTAwJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJjb21tZW50c1wiPlxyXG4gICAgICAgIDwvYXBwLXRleHRhcmVhPlxyXG4gICAgICA8L2Zvcm0+XHJcbiAgICA8L2Rpdj5cclxuICA8L21hdC1kaWFsb2ctY29udGVudD5cclxuICA8bWF0LWRpYWxvZy1hY3Rpb25zIGNsYXNzPVwiZGVmYXVsdC1mb290ZXIganVzdGlmeS1jb250ZW50LWVuZCBnYXAtM1wiPlxyXG4gICAgPGRzLWJ1dHRvbiBzaGFwZT1cIm91dGxpbmVcIiBtYXREaWFsb2dDbG9zZSBbZGlzYWJsZWRdPVwidXBsb2FkaW5nXCI+e3sgJ2NhbmNlbCcgfCB0cmFuc2xhdGUgfX08L2RzLWJ1dHRvbj5cclxuICAgIDxkcy1idXR0b24gKGNsaWNrKT1cImFkZEF0dGFjaG1lbnRzKClcIiBbbG9hZGluZ109XCJ1cGxvYWRpbmdcIlxyXG4gICAgICBbZGlzYWJsZWRdPVwiKCEoZm9ybUdyb3VwPy52YWx1ZT8uZmlsZT8uZmlsZUNvbnRlbnRzIHx8IGZvcm1Hcm91cD8udmFsdWU/LmZpbGU/LmF0dGFjaG1lbnRJZCApIHx8IChkaWFsb2dEYXRhPy5pc1JlcXVpcmVkICYmICFmb3JtR3JvdXA/LnZhbHVlPy5kZXNjcmlwdGlvbikgfHwgdXBsb2FkaW5nIHx8ICFmb3JtR3JvdXAudmFsaWQpXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhZWRpdE1vZGU7IGVsc2UgZWRpdFRlbXBsYXRlXCI+XHJcbiAgICAgICAgPHNwYW4+e3sgJ2FkZCcgfCB0cmFuc2xhdGUgfX08L3NwYW4+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8bmctdGVtcGxhdGUgI2VkaXRUZW1wbGF0ZT5cclxuICAgICAgICA8c3Bhbj57eyAnZWRpdCcgfCB0cmFuc2xhdGUgfX08L3NwYW4+XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L2RzLWJ1dHRvbj5cclxuICA8L21hdC1kaWFsb2ctYWN0aW9ucz5cclxuPC9kaXY+Il19
@@ -160,7 +160,7 @@ export class AttachmentSectionComponent extends ControlValueAccessorDirective {
160
160
  useExisting: forwardRef(() => AttachmentSectionComponent),
161
161
  multi: true,
162
162
  },
163
- ], viewQueries: [{ propertyName: "paginator", first: true, predicate: ["paginator"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"mt-2 p-0\">\r\n @if(label){\r\n <app-form-label [label]=\"label\" [optional]=\"!control.hasValidator(Validators['required'])\" [tooltip]=\"tooltip\"></app-form-label>\r\n }\r\n\r\n @if (!attachments?.length && !isReadOnly) {\r\n <section\r\n [ngClass]=\"insideTable ? 'file-uploader-table' : 'file-uploader'\"\r\n class=\"mb-2\"\r\n [class.insideTableStyle]=\"insideTable\"\r\n (click)=\"addAttachment()\">\r\n <div\r\n [ngClass]=\"insideTable ? 'file-uploader-table-dev' : ''\"\r\n class=\"file-uploader-input\">\r\n <div class=\"icon mb-1\">\r\n <svg\r\n [ngClass]=\"insideTable ? 'file-uploader-table-svg' : ''\"\r\n width=\"41\"\r\n height=\"38\"\r\n viewBox=\"0 0 41 38\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M0 22.1947V20.6736C0.0971303 20.1019 0.070094 19.5141 0.276371 18.9533C1.28372 16.2086 3.21231 14.5023 6.0421 13.8094C6.70499 13.6472 6.68497 13.6632 6.69899 12.9843C6.73203 11.3321 6.99839 9.71992 7.62423 8.17986C8.86289 5.13678 10.9467 2.83969 13.8816 1.39175C17.168 -0.230424 20.5956 -0.450719 24.0553 0.81598C27.4929 2.07467 29.9622 4.41581 31.4802 7.74828C31.7786 8.40316 32.027 9.08307 32.1712 9.79202C32.2402 10.1315 32.4035 10.2566 32.7529 10.3107C36.7012 10.9165 39.3358 13.1255 40.6946 16.8735C40.9069 17.4603 40.9199 18.0731 40.9599 18.6829C40.9649 18.7601 40.9389 18.8442 41 18.9113V20.5124C40.9109 20.995 40.969 21.4937 40.8608 21.9734C40.5244 23.4614 39.8454 24.7821 38.8501 25.9297C37.4522 27.5418 35.7059 28.5882 33.6161 29.0519C32.791 29.2351 31.9499 29.2521 31.1117 29.2922C30.6571 29.3142 30.584 29.193 30.592 28.7484C30.6451 25.8446 29.802 23.2571 27.8624 21.0591C25.9979 18.9463 23.6597 17.7167 20.867 17.4012C18.8553 17.1739 16.9057 17.4593 15.0612 18.3395C11.8319 19.8816 9.81416 22.4069 8.96102 25.8696C8.74273 26.7538 8.68265 27.658 8.70568 28.5702C8.7217 29.2111 8.60254 29.3122 7.95968 29.2972C5.95098 29.2511 4.10551 28.7234 2.58146 27.3596C1.07644 26.0168 0.0680913 24.3996 0.0400537 22.3028C0.0400537 22.2607 0.0250336 22.2257 0 22.1937V22.1947Z\"\r\n fill=\"#DEE0E2\"/>\r\n <path\r\n d=\"M29.0303 28.2632C29.0604 33.4031 24.8657 37.6187 19.6838 37.6548C14.5169 37.6908 10.2852 33.4952 10.2521 28.3042C10.2201 23.1403 14.4297 18.9126 19.6227 18.8946C24.8037 18.8766 28.9993 23.0542 29.0303 28.2632Z\"\r\n fill=\"#8E9AA0\"/>\r\n <path\r\n d=\"M20.5573 25.2644C20.4622 25.4477 20.5012 25.5939 20.5012 25.734C20.4982 28.2154 20.5002 30.6957 20.4982 33.177C20.4982 33.8099 20.2339 34.1704 19.7462 34.2234C19.2645 34.2765 18.88 33.9831 18.8169 33.5025C18.7959 33.3443 18.7969 33.183 18.7969 33.0238C18.7959 30.5826 18.7969 28.1423 18.7969 25.701C18.7969 25.5728 18.7969 25.4447 18.7969 25.2003C18.1971 25.8031 17.6774 26.3288 17.1527 26.8505C17.0115 26.9907 16.8683 27.1349 16.7061 27.2471C16.3566 27.4864 15.9341 27.4413 15.6457 27.154C15.3643 26.8746 15.3203 26.442 15.5486 26.0925C15.6207 25.9824 15.7128 25.8832 15.8069 25.7891C16.8613 24.7307 17.9167 23.6733 18.9732 22.6179C19.4017 22.1893 19.8784 22.1763 20.3039 22.5988C21.3914 23.6803 22.4739 24.7667 23.5533 25.8572C23.9809 26.2898 24.0129 26.8065 23.6534 27.167C23.299 27.5214 22.7753 27.4844 22.3437 27.0568C21.7499 26.47 21.1661 25.8732 20.5603 25.2644H20.5573Z\"\r\n fill=\"#F9F9F9\"/>\r\n </svg>\r\n </div>\r\n <div class=\"f-14 fc-black fw-normal\">\r\n <span class=\"fc-coral fw-medium\">{{ 'browse' | translate }}</span>\r\n </div>\r\n <div class=\"fs-10 fc-dark-gray\">\r\n {{ 'addMultiAttachments' | translate }}\r\n </div>\r\n </div>\r\n </section>\r\n }\r\n\r\n @if (attachments?.length) {\r\n <div\r\n class=\"table-responsive full\"\r\n cdkDropList\r\n [cdkDropListData]=\"attachments\"\r\n (cdkDropListDropped)=\"drop($event)\"\r\n >\r\n <table mat-table [dataSource]=\"dataSource\">\r\n\r\n <!-- index Column -->\r\n <ng-container matColumnDef=\"index\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n <ds-button\r\n [matTooltip]=\"'downloadAll' | translate\"\r\n square icon size=\"small\"\r\n (click)=\"downloadAllAttachments($event)\"\r\n class=\"icon-btn-shadow\">\r\n @if (loading) {\r\n <ds-icon class=\"sfi sfi-spinner d-inline-block spin fc-coral fs-30-imp\"></ds-icon>\r\n } @else {\r\n <ds-icon\r\n icon=\"download\"\r\n class=\"fs-20 fs-md-17 fc-purple\"></ds-icon>\r\n }\r\n </ds-button>\r\n </th>\r\n <td mat-cell *matCellDef=\"let element; let i = index\">{{ i + 1 + pageSize * (pageNumber) }}</td>\r\n </ng-container>\r\n\r\n <!-- Name Column -->\r\n <ng-container matColumnDef=\"file\">\r\n <th mat-header-cell *matHeaderCellDef>{{ 'FileName' | translate }}</th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <app-file-uploader\r\n [allowedExtensions]=\"allowedExtensions\"\r\n [displayedFiles]=\"[element]\"\r\n name=\"attachment\"\r\n [showActions]=\"true\"\r\n [isReadOnly]=\"true\"\r\n [multiple]=\"true\">\r\n </app-file-uploader>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- Description Column -->\r\n <ng-container matColumnDef=\"description\">\r\n <th mat-header-cell *matHeaderCellDef>{{ 'FileDescription' | translate }}</th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <a\r\n class=\"fw-medium fc-black underline cursor-pointer fs-12\"\r\n [hidden]=\"!element?.['fileDescription']\"\r\n (click)=\"$event.stopPropagation(); fileDescriptionAnchor.popover.open()\"\r\n [satPopoverAnchor]=\"fileDescriptionPopover\"\r\n #fileDescriptionAnchor=\"satPopoverAnchor\"\r\n [matTooltip]=\"element?.['fileDescription']\">\r\n {{ element?.['fileDescription']?.length > 10 ? (element?.['fileDescription'] | slice : 0 : 10) + '....' : element?.['fileDescription'] }}\r\n </a>\r\n <sat-popover\r\n #fileDescriptionPopover\r\n [anchor]=\"fileDescriptionAnchor\"\r\n [hasBackdrop]=\"true\"\r\n [restoreFocus]=\"false\"\r\n verticalAlign=\"below\"\r\n horizontalAlign=\"center\">\r\n <div class=\"default-popover p-3 fs-14 text-break view-note-popover\">\r\n <bdi class=\"fc-black\">{{ element?.['fileDescription'] }}</bdi>\r\n </div>\r\n </sat-popover>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- Comment Column -->\r\n <ng-container matColumnDef=\"comment\">\r\n <th mat-header-cell *matHeaderCellDef>{{ 'comment' | translate }}</th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <a\r\n class=\"fw-medium fc-black underline cursor-pointer fs-12\"\r\n [hidden]=\"!element?.['attachmentcomment']\"\r\n (click)=\"$event.stopPropagation(); commentsAnchor.popover.open()\"\r\n [satPopoverAnchor]=\"commentsPopover\"\r\n [matTooltip]=\"element?.['attachmentcomment']\"\r\n #commentsAnchor=\"satPopoverAnchor\">\r\n {{ element?.['attachmentcomment']?.length > 10 ? (element?.['attachmentcomment'] | slice : 0 : 10) + '....' : element?.['attachmentcomment'] }}\r\n </a>\r\n <sat-popover\r\n #commentsPopover\r\n [anchor]=\"commentsAnchor\"\r\n [hasBackdrop]=\"true\"\r\n [restoreFocus]=\"false\"\r\n verticalAlign=\"below\"\r\n horizontalAlign=\"center\">\r\n <div class=\"default-popover p-3 fs-14 text-break view-note-popover\">\r\n <bdi class=\"fc-black\">{{ element?.['attachmentcomment'] }}</bdi>\r\n </div>\r\n </sat-popover>\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"actions\">\r\n <th mat-header-cell *matHeaderCellDef></th>\r\n <td mat-cell *matCellDef=\"let element; let i = index\">\r\n @if (!isReadOnly) {\r\n <td>\r\n <div class=\"d-flex gap-2\">\r\n <ds-button\r\n square\r\n icon\r\n size=\"small\"\r\n (click)=\"deleteAttachments(i, element)\"\r\n class=\"icon-btn-shadow\">\r\n <ds-icon icon=\"trash\" class=\"fs-20 fs-md-17 fc-coral\"></ds-icon>\r\n </ds-button>\r\n\r\n <ds-button\r\n square\r\n icon\r\n size=\"small\"\r\n (click)=\"editRow(element, i)\"\r\n class=\"icon-btn-shadow\">\r\n <ds-icon icon=\"pen\" class=\"fs-20 fs-md-17 fc-purple\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n </td>\r\n }\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\r\n </table>\r\n\r\n <mat-paginator\r\n #paginator\r\n [pageSizeOptions]=\"[5]\"\r\n (page)=\"onPaginateChange($event)\"\r\n [length]=\"attachments.length\"\r\n [pageSize]=\"pageSize\"\r\n showFirstLastButtons></mat-paginator>\r\n </div>\r\n }\r\n\r\n @if (!isReadOnly && attachments?.length && attachments?.length < attachmentsMax) {\r\n <div class=\"text-center full mt-3\">\r\n <ds-button\r\n shape=\"{{ attachments?.length ? 'outline' : '' }}\"\r\n [ngClass]=\"{ 'full-add-btn w-100 pt-1': attachments?.length }\"\r\n (click)=\"addAttachment(); $event.stopPropagation()\">\r\n <ds-icon slot=\"prefix\" icon=\"plus\" class=\"fs-22 pb-1\"></ds-icon>\r\n {{ 'addAttachments' | translate }}\r\n </ds-button>\r\n </div>\r\n }\r\n</div>\r\n", styles: ["::ng-deep .add-attachment-dialog{--popup-max-width: 500px;--popup-width: 100%}::ng-deep .view-note-popover{max-width:250px;max-height:300px;overflow:auto;--popover-bc: var(--black);color:var(--white);--popover-before-width: .6rem}::ng-deep .mat-tooltip{max-width:500px;background:#1d252d}:host ::ng-deep .table-responsive table{--th-bg: var(--white);--th-fc: var(--dark-gray)}:host ::ng-deep .white-attached ds-attachments::part(base){--file-bg: transparent}:host ::ng-deep .full-add-btn::part(base){--btn-min-width: 100%;--btn-bg-color: rgb(248 248 248);--btn-height: 70px;--btn-radius: 6px;border:1px dashed rgb(142,154,160)}.file-uploader{--uploader-height: 150px;--uploader-width: 100%;--uploader-bg: var(--off-white);--uploader-border: 1px dashed var(--dark-gray);--uploader-radius: var(--box-radius);--uploader-padding: 1rem;height:var(--uploader-height);background-color:var(--uploader-bg);border:var(--uploader-border);border-radius:var(--uploader-radius);padding:var(--uploader-padding);text-align:center;cursor:pointer;display:flex;align-items:center;justify-content:center}.insideTableWidth{width:250px!important}.file-uploader-table{--uploader-height: 45px;--uploader-width: 100%;--uploader-bg: var(--off-white);--uploader-border: 1px dashed var(--dark-gray);--uploader-radius: var(--box-radius);--uploader-padding: 0 1rem;height:var(--uploader-height);background-color:var(--uploader-bg);border:var(--uploader-border);border-radius:var(--uploader-radius);padding:var(--uploader-padding);text-align:center;cursor:pointer;display:FLEX;align-items:CENTER;justify-content:CENTER}.file-uploader-table-dev{display:FLEX;align-items:CENTER;gap:1rem}.file-uploader-table-svg{width:70%}.files-list .file-item-container .uploaded-file-actions{margin-inline-start:20px}.files-list .file-item-container .uploaded-file-actions .button__wrapper{font-size:15px}.file-item-container-actions{display:flex;align-items:center}.file-item-container-actions .uploaded-file-actions{display:flex;align-items:center;gap:10px;margin-inline-start:25px}.file-item-container-actions .uploaded-file-actions .button__wrapper{font-size:15px}.file-uploader{--uploader-height: 120px;--uploader-width: 100%;--uploader-bg: #f8f8f8;--uploader-border: 1px dashed #8e9aa0;--uploader-radius: 6px;--uploader-padding: 20px 14px 20px 31px;height:var(--uploader-height);background-color:var(--uploader-bg);border:var(--uploader-border);border-radius:var(--uploader-radius);padding:var(--uploader-padding);text-align:center;cursor:pointer}.file-uploader--input{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:10px}.insideTableStyle{width:272px}.files-list{--file-item-width: 300px;display:grid;grid-template-columns:repeat(auto-fill,var(--file-item-width));grid-gap:.5rem}@media (max-width: 768px){.files-list{grid-template-columns:repeat(auto-fill,minmax(var(--file-item-width),1fr))}}.files-list .file-item-container .file-item{--file-bg: var(--off-white);--file-radius: var(--box-radius);--icon-color: var(--purple);--icon-size: 2rem;--file-border: transparent;display:flex;align-items:center;background-color:var(--file-bg);border:1px solid var(--file-border);border-radius:var(--file-radius);padding:0 1rem;height:70px;gap:.75rem}.files-list .file-item-container .file-item.error{--file-bg: rgba(var(--rgb-red), 10%);--file-border: var(--red);--icon-color: var(--red)}.files-list .file-item-container .file-item .icon{color:var(--icon-color);font-size:var(--icon-size)}.files-list .file-item-container .file-item .file-action{display:flex;align-items:center;gap:.5rem}ds-attachments::part(base){--file-width: 250px}.file-uploader-icon{color:var(--icon-color);font-size:var(--icon-size)}.file-uploader-icon svg{display:block;object-fit:contain;object-position:center;width:41px;height:auto}::ng-deep .file-item .name-size{display:flex;flex-direction:column;justify-content:center;flex-grow:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:120px}.table-responsive table,.table-responsive .primary-table{--cell-pading: 3px 24px 10px}\n"], dependencies: [{ kind: "ngmodule", type: SatPopoverModule }, { kind: "component", type: i1.SatPopoverComponent, selector: "sat-popover", inputs: ["anchor", "horizontalAlign", "xAlign", "verticalAlign", "yAlign", "forceAlignment", "lockAlignment", "autoFocus", "restoreFocus", "scrollStrategy", "hasBackdrop", "interactiveClose", "openTransition", "closeTransition", "openAnimationStartAtScale", "closeAnimationEndAtScale", "backdropClass", "panelClass"], outputs: ["opened", "closed", "afterOpen", "afterClose", "backdropClicked", "overlayKeydown"] }, { kind: "directive", type: i1.SatPopoverAnchorDirective, selector: "[satPopoverAnchor]", inputs: ["satPopoverAnchor"], exportAs: ["satPopoverAnchor"] }, { kind: "directive", type: MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "component", type: DocsUploaderComponent, selector: "app-file-uploader", inputs: ["useCrop", "formKey", "showLabel", "downloadLink", "showActions", "styleHeight", "fileInputHeight", "styleWidth", "hints", "allowedExtensions", "callApi", "display", "attachType", "error", "displayedFiles", "getDataFromTemplate", "allowFileContentsWithMultiAttachments", "accept", "signType", "showSignButton", "printType", "showPrintButton", "downloadType", "showDownloadButton", "preventFileContents", "maxSize"], outputs: ["selectedTemplateAttachment", "addSignatureClicked", "printActionClicked", "emitedValue", "downloadActionClicked"] }, { kind: "pipe", type: SlicePipe, name: "slice" }, { kind: "component", type: MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }, { kind: "component", type: MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "directive", type: MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "component", type: MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "directive", type: MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "component", type: FormLabelComponent, selector: "app-form-label", inputs: ["tooltip", "label", "optional"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
163
+ ], viewQueries: [{ propertyName: "paginator", first: true, predicate: ["paginator"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"mt-2 p-0\">\r\n @if(label){\r\n <app-form-label [label]=\"label\" [optional]=\"!control.hasValidator(Validators['required'])\" [tooltip]=\"tooltip\"></app-form-label>\r\n }\r\n\r\n @if (!attachments?.length && !isReadOnly) {\r\n <section\r\n [ngClass]=\"insideTable ? 'file-uploader-table' : 'file-uploader'\"\r\n class=\"mb-2\"\r\n [class.insideTableStyle]=\"insideTable\"\r\n (click)=\"addAttachment()\">\r\n <div\r\n [ngClass]=\"insideTable ? 'file-uploader-table-dev' : ''\"\r\n class=\"file-uploader-input\">\r\n <div class=\"icon mb-1\">\r\n <svg\r\n [ngClass]=\"insideTable ? 'file-uploader-table-svg' : ''\"\r\n width=\"41\"\r\n height=\"38\"\r\n viewBox=\"0 0 41 38\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M0 22.1947V20.6736C0.0971303 20.1019 0.070094 19.5141 0.276371 18.9533C1.28372 16.2086 3.21231 14.5023 6.0421 13.8094C6.70499 13.6472 6.68497 13.6632 6.69899 12.9843C6.73203 11.3321 6.99839 9.71992 7.62423 8.17986C8.86289 5.13678 10.9467 2.83969 13.8816 1.39175C17.168 -0.230424 20.5956 -0.450719 24.0553 0.81598C27.4929 2.07467 29.9622 4.41581 31.4802 7.74828C31.7786 8.40316 32.027 9.08307 32.1712 9.79202C32.2402 10.1315 32.4035 10.2566 32.7529 10.3107C36.7012 10.9165 39.3358 13.1255 40.6946 16.8735C40.9069 17.4603 40.9199 18.0731 40.9599 18.6829C40.9649 18.7601 40.9389 18.8442 41 18.9113V20.5124C40.9109 20.995 40.969 21.4937 40.8608 21.9734C40.5244 23.4614 39.8454 24.7821 38.8501 25.9297C37.4522 27.5418 35.7059 28.5882 33.6161 29.0519C32.791 29.2351 31.9499 29.2521 31.1117 29.2922C30.6571 29.3142 30.584 29.193 30.592 28.7484C30.6451 25.8446 29.802 23.2571 27.8624 21.0591C25.9979 18.9463 23.6597 17.7167 20.867 17.4012C18.8553 17.1739 16.9057 17.4593 15.0612 18.3395C11.8319 19.8816 9.81416 22.4069 8.96102 25.8696C8.74273 26.7538 8.68265 27.658 8.70568 28.5702C8.7217 29.2111 8.60254 29.3122 7.95968 29.2972C5.95098 29.2511 4.10551 28.7234 2.58146 27.3596C1.07644 26.0168 0.0680913 24.3996 0.0400537 22.3028C0.0400537 22.2607 0.0250336 22.2257 0 22.1937V22.1947Z\"\r\n fill=\"#DEE0E2\"/>\r\n <path\r\n d=\"M29.0303 28.2632C29.0604 33.4031 24.8657 37.6187 19.6838 37.6548C14.5169 37.6908 10.2852 33.4952 10.2521 28.3042C10.2201 23.1403 14.4297 18.9126 19.6227 18.8946C24.8037 18.8766 28.9993 23.0542 29.0303 28.2632Z\"\r\n fill=\"#8E9AA0\"/>\r\n <path\r\n d=\"M20.5573 25.2644C20.4622 25.4477 20.5012 25.5939 20.5012 25.734C20.4982 28.2154 20.5002 30.6957 20.4982 33.177C20.4982 33.8099 20.2339 34.1704 19.7462 34.2234C19.2645 34.2765 18.88 33.9831 18.8169 33.5025C18.7959 33.3443 18.7969 33.183 18.7969 33.0238C18.7959 30.5826 18.7969 28.1423 18.7969 25.701C18.7969 25.5728 18.7969 25.4447 18.7969 25.2003C18.1971 25.8031 17.6774 26.3288 17.1527 26.8505C17.0115 26.9907 16.8683 27.1349 16.7061 27.2471C16.3566 27.4864 15.9341 27.4413 15.6457 27.154C15.3643 26.8746 15.3203 26.442 15.5486 26.0925C15.6207 25.9824 15.7128 25.8832 15.8069 25.7891C16.8613 24.7307 17.9167 23.6733 18.9732 22.6179C19.4017 22.1893 19.8784 22.1763 20.3039 22.5988C21.3914 23.6803 22.4739 24.7667 23.5533 25.8572C23.9809 26.2898 24.0129 26.8065 23.6534 27.167C23.299 27.5214 22.7753 27.4844 22.3437 27.0568C21.7499 26.47 21.1661 25.8732 20.5603 25.2644H20.5573Z\"\r\n fill=\"#F9F9F9\"/>\r\n </svg>\r\n </div>\r\n <div class=\"f-14 fc-black fw-normal\">\r\n <span class=\"fc-coral fw-medium\">{{ 'browse' | translate }}</span>\r\n </div>\r\n <div class=\"fs-10 fc-dark-gray\">\r\n {{ 'addMultiAttachments' | translate }}\r\n </div>\r\n </div>\r\n </section>\r\n }\r\n\r\n @if (attachments?.length) {\r\n <div\r\n class=\"table-responsive full\"\r\n cdkDropList\r\n [cdkDropListData]=\"attachments\"\r\n (cdkDropListDropped)=\"drop($event)\"\r\n >\r\n <table mat-table [dataSource]=\"dataSource\">\r\n\r\n <!-- index Column -->\r\n <ng-container matColumnDef=\"index\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n <ds-button\r\n [matTooltip]=\"'downloadAll' | translate\"\r\n square icon size=\"small\"\r\n (click)=\"downloadAllAttachments($event)\"\r\n class=\"icon-btn-shadow\">\r\n @if (loading) {\r\n <ds-icon class=\"sfi sfi-spinner d-inline-block spin fc-coral fs-30-imp\"></ds-icon>\r\n } @else {\r\n <ds-icon\r\n icon=\"download\"\r\n class=\"fs-20 fs-md-17 fc-purple\"></ds-icon>\r\n }\r\n </ds-button>\r\n </th>\r\n <td mat-cell *matCellDef=\"let element; let i = index\">{{ i + 1 + pageSize * (pageNumber) }}</td>\r\n </ng-container>\r\n\r\n <!-- Name Column -->\r\n <ng-container matColumnDef=\"file\">\r\n <th mat-header-cell *matHeaderCellDef>{{ 'FileName' | translate }}</th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <app-file-uploader\r\n [allowedExtensions]=\"allowedExtensions\"\r\n [displayedFiles]=\"[element]\"\r\n name=\"attachment\"\r\n [showActions]=\"true\"\r\n [isReadOnly]=\"true\"\r\n [multiple]=\"true\">\r\n </app-file-uploader>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- Description Column -->\r\n <ng-container matColumnDef=\"description\">\r\n <th mat-header-cell *matHeaderCellDef>{{ 'FileDescription' | translate }}</th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <a\r\n class=\"fw-medium fc-black underline cursor-pointer fs-12\"\r\n [hidden]=\"!element?.['fileDescription']\"\r\n (click)=\"$event.stopPropagation(); fileDescriptionAnchor.popover.open()\"\r\n [satPopoverAnchor]=\"fileDescriptionPopover\"\r\n #fileDescriptionAnchor=\"satPopoverAnchor\"\r\n [matTooltip]=\"element?.['fileDescription']\">\r\n {{ element?.['fileDescription']?.length > 10 ? (element?.['fileDescription'] | slice : 0 : 10) + '....' : element?.['fileDescription'] }}\r\n </a>\r\n <sat-popover\r\n #fileDescriptionPopover\r\n [anchor]=\"fileDescriptionAnchor\"\r\n [hasBackdrop]=\"true\"\r\n [restoreFocus]=\"false\"\r\n verticalAlign=\"below\"\r\n horizontalAlign=\"center\">\r\n <div class=\"default-popover p-3 fs-14 text-break view-note-popover\">\r\n <bdi class=\"fc-black\">{{ element?.['fileDescription'] }}</bdi>\r\n </div>\r\n </sat-popover>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- Comment Column -->\r\n <ng-container matColumnDef=\"comment\">\r\n <th mat-header-cell *matHeaderCellDef>{{ 'comment' | translate }}</th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <a\r\n class=\"fw-medium fc-black underline cursor-pointer fs-12\"\r\n [hidden]=\"!element?.['attachmentcomment']\"\r\n (click)=\"$event.stopPropagation(); commentsAnchor.popover.open()\"\r\n [satPopoverAnchor]=\"commentsPopover\"\r\n [matTooltip]=\"element?.['attachmentcomment']\"\r\n #commentsAnchor=\"satPopoverAnchor\">\r\n {{ element?.['attachmentcomment']?.length > 10 ? (element?.['attachmentcomment'] | slice : 0 : 10) + '....' : element?.['attachmentcomment'] }}\r\n </a>\r\n <sat-popover\r\n #commentsPopover\r\n [anchor]=\"commentsAnchor\"\r\n [hasBackdrop]=\"true\"\r\n [restoreFocus]=\"false\"\r\n verticalAlign=\"below\"\r\n horizontalAlign=\"center\">\r\n <div class=\"default-popover p-3 fs-14 text-break view-note-popover\">\r\n <bdi class=\"fc-black\">{{ element?.['attachmentcomment'] }}</bdi>\r\n </div>\r\n </sat-popover>\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"actions\">\r\n <th mat-header-cell *matHeaderCellDef></th>\r\n <td mat-cell *matCellDef=\"let element; let i = index\">\r\n @if (!isReadOnly) {\r\n <td>\r\n <div class=\"d-flex gap-2\">\r\n <ds-button\r\n square\r\n icon\r\n size=\"small\"\r\n (click)=\"deleteAttachments(i, element)\"\r\n class=\"icon-btn-shadow\">\r\n <ds-icon icon=\"trash\" class=\"fs-20 fs-md-17 fc-coral\"></ds-icon>\r\n </ds-button>\r\n\r\n <ds-button\r\n square\r\n icon\r\n size=\"small\"\r\n (click)=\"editRow(element, i)\"\r\n class=\"icon-btn-shadow\">\r\n <ds-icon icon=\"pen\" class=\"fs-20 fs-md-17 fc-purple\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n </td>\r\n }\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\r\n </table>\r\n\r\n <mat-paginator\r\n #paginator\r\n [pageSizeOptions]=\"[5]\"\r\n (page)=\"onPaginateChange($event)\"\r\n [length]=\"attachments.length\"\r\n [pageSize]=\"pageSize\"\r\n showFirstLastButtons></mat-paginator>\r\n </div>\r\n }\r\n\r\n @if (!isReadOnly && attachments?.length && attachments?.length < attachmentsMax) {\r\n <div class=\"text-center full mt-3\">\r\n <ds-button\r\n shape=\"{{ attachments?.length ? 'outline' : '' }}\"\r\n [ngClass]=\"{ 'full-add-btn w-100 pt-1': attachments?.length }\"\r\n (click)=\"addAttachment(); $event.stopPropagation()\">\r\n <ds-icon slot=\"prefix\" icon=\"plus\" class=\"fs-22 pb-1\"></ds-icon>\r\n {{ 'addAttachments' | translate }}\r\n </ds-button>\r\n </div>\r\n }\r\n</div>\r\n", styles: ["::ng-deep .add-attachment-dialog{--popup-max-width: 500px;--popup-width: 100%}::ng-deep .view-note-popover{max-width:250px;max-height:300px;overflow:auto;--popover-bc: var(--black);color:var(--white);--popover-before-width: .6rem}::ng-deep .mat-tooltip{max-width:500px;background:#1d252d}:host ::ng-deep .table-responsive table{--th-bg: var(--white);--th-fc: var(--dark-gray)}:host ::ng-deep .white-attached ds-attachments::part(base){--file-bg: transparent}:host ::ng-deep .full-add-btn::part(base){--btn-min-width: 100%;--btn-bg-color: rgb(248 248 248);--btn-height: 70px;--btn-radius: 6px;border:1px dashed rgb(142,154,160)}.file-uploader{--uploader-height: 150px;--uploader-width: 100%;--uploader-bg: var(--off-white);--uploader-border: 1px dashed var(--dark-gray);--uploader-radius: var(--box-radius);--uploader-padding: 1rem;height:var(--uploader-height);background-color:var(--uploader-bg);border:var(--uploader-border);border-radius:var(--uploader-radius);padding:var(--uploader-padding);text-align:center;cursor:pointer;display:flex;align-items:center;justify-content:center}.insideTableWidth{width:250px!important}.file-uploader-table{--uploader-height: 45px;--uploader-width: 100%;--uploader-bg: var(--off-white);--uploader-border: 1px dashed var(--dark-gray);--uploader-radius: var(--box-radius);--uploader-padding: 0 1rem;height:var(--uploader-height);background-color:var(--uploader-bg);border:var(--uploader-border);border-radius:var(--uploader-radius);padding:var(--uploader-padding);text-align:center;cursor:pointer;display:FLEX;align-items:CENTER;justify-content:CENTER}.file-uploader-table-dev{display:FLEX;align-items:CENTER;gap:1rem}.file-uploader-table-svg{width:70%}.files-list .file-item-container .uploaded-file-actions{margin-inline-start:20px}.files-list .file-item-container .uploaded-file-actions .button__wrapper{font-size:15px}.file-item-container-actions{display:flex;align-items:center}.file-item-container-actions .uploaded-file-actions{display:flex;align-items:center;gap:10px;margin-inline-start:25px}.file-item-container-actions .uploaded-file-actions .button__wrapper{font-size:15px}.file-uploader{--uploader-height: 120px;--uploader-width: 100%;--uploader-bg: #f8f8f8;--uploader-border: 1px dashed #8e9aa0;--uploader-radius: 6px;--uploader-padding: 20px 14px 20px 31px;height:var(--uploader-height);background-color:var(--uploader-bg);border:var(--uploader-border);border-radius:var(--uploader-radius);padding:var(--uploader-padding);text-align:center;cursor:pointer}.file-uploader--input{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:10px}.insideTableStyle{width:272px}.files-list{--file-item-width: 300px;display:grid;grid-template-columns:repeat(auto-fill,var(--file-item-width));grid-gap:.5rem}@media (max-width: 768px){.files-list{grid-template-columns:repeat(auto-fill,minmax(var(--file-item-width),1fr))}}.files-list .file-item-container .file-item{--file-bg: var(--off-white);--file-radius: var(--box-radius);--icon-color: var(--purple);--icon-size: 2rem;--file-border: transparent;display:flex;align-items:center;background-color:var(--file-bg);border:1px solid var(--file-border);border-radius:var(--file-radius);padding:0 1rem;height:70px;gap:.75rem}.files-list .file-item-container .file-item.error{--file-bg: rgba(var(--rgb-red), 10%);--file-border: var(--red);--icon-color: var(--red)}.files-list .file-item-container .file-item .icon{color:var(--icon-color);font-size:var(--icon-size)}.files-list .file-item-container .file-item .file-action{display:flex;align-items:center;gap:.5rem}ds-attachments::part(base){--file-width: 250px}.file-uploader-icon{color:var(--icon-color);font-size:var(--icon-size)}.file-uploader-icon svg{display:block;object-fit:contain;object-position:center;width:41px;height:auto}::ng-deep .file-item .name-size{display:flex;flex-direction:column;justify-content:center;flex-grow:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:120px}.table-responsive table,.table-responsive .primary-table{--cell-pading: 3px 24px 10px}\n"], dependencies: [{ kind: "ngmodule", type: SatPopoverModule }, { kind: "component", type: i1.SatPopoverComponent, selector: "sat-popover", inputs: ["anchor", "horizontalAlign", "xAlign", "verticalAlign", "yAlign", "forceAlignment", "lockAlignment", "autoFocus", "restoreFocus", "scrollStrategy", "hasBackdrop", "interactiveClose", "openTransition", "closeTransition", "openAnimationStartAtScale", "closeAnimationEndAtScale", "backdropClass", "panelClass"], outputs: ["opened", "closed", "afterOpen", "afterClose", "backdropClicked", "overlayKeydown"] }, { kind: "directive", type: i1.SatPopoverAnchorDirective, selector: "[satPopoverAnchor]", inputs: ["satPopoverAnchor"], exportAs: ["satPopoverAnchor"] }, { kind: "directive", type: MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "component", type: DocsUploaderComponent, selector: "app-file-uploader", inputs: ["useCrop", "formKey", "showLabel", "downloadLink", "showActions", "styleHeight", "fileInputHeight", "styleWidth", "hints", "allowedExtensions", "callApi", "display", "attachType", "error", "displayedFiles", "getDataFromTemplate", "allowFileContentsWithMultiAttachments", "accept", "signType", "customDownload", "showSignButton", "printType", "showPrintButton", "downloadType", "showDownloadButton", "preventFileContents", "maxSize"], outputs: ["selectedTemplateAttachment", "addSignatureClicked", "printActionClicked", "emitedValue", "downloadActionClicked"] }, { kind: "pipe", type: SlicePipe, name: "slice" }, { kind: "component", type: MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }, { kind: "component", type: MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "directive", type: MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "component", type: MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "directive", type: MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "component", type: FormLabelComponent, selector: "app-form-label", inputs: ["tooltip", "label", "optional"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
164
164
  }
165
165
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: AttachmentSectionComponent, decorators: [{
166
166
  type: Component,
@@ -214,4 +214,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
214
214
  type: ViewChild,
215
215
  args: ['paginator']
216
216
  }] } });
217
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0YWNobWVudC1zZWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JwbS1jb3JlL3NyYy9saWIvY29tcG9uZW50cy9zaGFyZWQtY29tcG9uZW50cy9mb3JtLWZpZWxkL2F0dGFjaG1lbnQtc2VjdGlvbi9hdHRhY2htZW50LXNlY3Rpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlZC1jb21wb25lbnRzL2Zvcm0tZmllbGQvYXR0YWNobWVudC1zZWN0aW9uL2F0dGFjaG1lbnQtc2VjdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLFNBQVMsRUFBRSxzQkFBc0IsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkosT0FBTyxFQUFDLDhCQUE4QixFQUFDLE1BQU0sNERBQTRELENBQUM7QUFDMUcsT0FBTyxFQUFDLE9BQU8sRUFBZSxXQUFXLEVBQUUsZUFBZSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDMUYsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ3JELE9BQU8sRUFBQyxPQUFPLEVBQWlCLFNBQVMsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ2xFLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBQzlFLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHFEQUFxRCxDQUFDO0FBQzFGLE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLHFDQUFxQyxDQUFD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QUFTLHVHQUNULGtCQUFrQixnR0FDbEIsYUFBYTs7MkZBSUosMEJBQTBCO2tCQXBDdEMsU0FBUzsrQkFDRSx3QkFBd0IsV0FHekIsQ0FBQyxzQkFBc0IsQ0FBQyxhQUN0Qjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSwyQkFBMkIsQ0FBQzs0QkFDekQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0YsV0FDUTt3QkFDUCxnQkFBZ0I7d0JBQ2hCLFVBQVU7d0JBQ1YsT0FBTzt3QkFDUCxXQUFXO3dCQUNYLHFCQUFxQjt3QkFDckIsT0FBTzt3QkFDUCxTQUFTO3dCQUNULFlBQVk7d0JBQ1osUUFBUTt3QkFDUixZQUFZO3dCQUNaLE9BQU87d0JBQ1AsVUFBVTt3QkFDVixnQkFBZ0I7d0JBQ2hCLGFBQWE7d0JBQ2IsTUFBTTt3QkFDTixZQUFZO3dCQUNaLGVBQWU7d0JBQ2YsU0FBUzt3QkFDVCxrQkFBa0I7d0JBQ2xCLGFBQWE7cUJBQ2QsY0FDVyxJQUFJOzhCQUdQLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUcsY0FBYztzQkFBdEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUcsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNO2dCQUlpQixTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyVmlld0luaXQsIENvbXBvbmVudCwgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgRGVzdHJveVJlZiwgRXZlbnRFbWl0dGVyLCBmb3J3YXJkUmVmLCBpbmplY3QsIElucHV0LCBPdXRwdXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7QXR0YWNobWVudFNlY3Rpb25EYXRhQ29tcG9uZW50fSBmcm9tICcuLi9hZGQtYXR0YWNobWVudC1zZWN0aW9uL2FkZC1hdHRhY2htZW50LXNlY3Rpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHtDZGtEcmFnLCBDZGtEcmFnRHJvcCwgQ2RrRHJvcExpc3QsIG1vdmVJdGVtSW5BcnJheX0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcbmltcG9ydCB7U2F0UG9wb3Zlck1vZHVsZX0gZnJvbSAnQG5jc3RhdGUvc2F0LXBvcG92ZXInO1xyXG5pbXBvcnQge01hdFRvb2x0aXB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwXCI7XHJcbmltcG9ydCB7TmdDbGFzcywgTmdGb3JPZiwgTmdJZiwgU2xpY2VQaXBlfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7RG9jc1VwbG9hZGVyQ29tcG9uZW50fSBmcm9tICcuLi9kb2MtdXBsb2FkZXIvZG9jcy11cGxvYWRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQge0RlbGV0ZURpYWxvZ0NvbXBvbmVudH0gZnJvbSBcIi4uLy4uL2RpYWxvZ3MvZGVsZXRlLWRpYWxvZy9kZWxldGUtZGlhbG9nLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge0NvbnRyb2xWYWx1ZUFjY2Vzc29yRGlyZWN0aXZlfSBmcm9tIFwiLi4vY29udHJvbC12YWx1ZS1hY2Nlc3Nvci5kaXJlY3RpdmVcIjtcclxuaW1wb3J0IHtNYXREaWFsb2d9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2dcIjtcclxuaW1wb3J0IHtOR19WQUxVRV9BQ0NFU1NPUn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQge01hdFBhZ2luYXRvcn0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvclwiO1xyXG5pbXBvcnQge1xyXG4gIE1hdENlbGwsXHJcbiAgTWF0Q2VsbERlZixcclxuICBNYXRDb2x1bW5EZWYsXHJcbiAgTWF0SGVhZGVyQ2VsbCxcclxuICBNYXRIZWFkZXJDZWxsRGVmLFxyXG4gIE1hdEhlYWRlclJvdyxcclxuICBNYXRIZWFkZXJSb3dEZWYsXHJcbiAgTWF0Um93LFxyXG4gIE1hdFJvd0RlZixcclxuICBNYXRUYWJsZSxcclxuICBNYXRUYWJsZURhdGFTb3VyY2VcclxufSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGVcIjtcclxuaW1wb3J0IHsgRm9ybUxhYmVsQ29tcG9uZW50IH0gZnJvbSAnLi4vZm9ybS1sYWJlbC9mb3JtLWxhYmVsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcclxuaW1wb3J0IHtUcmFuc2xhdGVQaXBlfSBmcm9tIFwiLi4vLi4vLi4vLi4vcGlwZXMvdHJhbnNsYXRlLnBpcGVcIjtcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1hdHRhY2htZW50LXNlY3Rpb24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hdHRhY2htZW50LXNlY3Rpb24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2F0dGFjaG1lbnQtc2VjdGlvbi5jb21wb25lbnQuc2NzcyddLFxyXG4gIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEF0dGFjaG1lbnRTZWN0aW9uQ29tcG9uZW50KSxcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICB9LFxyXG4gIF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgU2F0UG9wb3Zlck1vZHVsZSxcclxuICAgIE1hdFRvb2x0aXAsXHJcbiAgICBOZ0NsYXNzLFxyXG4gICAgQ2RrRHJvcExpc3QsXHJcbiAgICBEb2NzVXBsb2FkZXJDb21wb25lbnQsXHJcbiAgICBDZGtEcmFnLFxyXG4gICAgU2xpY2VQaXBlLFxyXG4gICAgTWF0UGFnaW5hdG9yLFxyXG4gICAgTWF0VGFibGUsXHJcbiAgICBNYXRDb2x1bW5EZWYsXHJcbiAgICBNYXRDZWxsLFxyXG4gICAgTWF0Q2VsbERlZixcclxuICAgIE1hdEhlYWRlckNlbGxEZWYsXHJcbiAgICBNYXRIZWFkZXJDZWxsLFxyXG4gICAgTWF0Um93LFxyXG4gICAgTWF0SGVhZGVyUm93LFxyXG4gICAgTWF0SGVhZGVyUm93RGVmLFxyXG4gICAgTWF0Um93RGVmLFxyXG4gICAgRm9ybUxhYmVsQ29tcG9uZW50LFxyXG4gICAgVHJhbnNsYXRlUGlwZVxyXG4gIF0sXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXR0YWNobWVudFNlY3Rpb25Db21wb25lbnQgZXh0ZW5kcyBDb250cm9sVmFsdWVBY2Nlc3NvckRpcmVjdGl2ZTxhbnk+IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgQElucHV0KCkgY2xhc3NOYW1lID0gJ2luZm8tc2VjdGlvbic7XHJcblxyXG4gIEBJbnB1dCgpIGF0dGFjaG1lbnRzTWF4ID0gMTAwMDtcclxuICBASW5wdXQoKSBpc1NvcnRhYmxlID0gZmFsc2U7XHJcbiAgQElucHV0KCkgZG93bmxvYWRBbGwgPSBmYWxzZTtcclxuICBwb3B1cERhdGE6IGFueSA9IHt9O1xyXG4gIEBJbnB1dCgpIGlzUmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBkZXNjcmlwdGlvblJlcXVpcmVkOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGNvbW1lbnRzUmVxdWlyZWQ6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgYWxsb3dlZEV4dGVuc2lvbnMgPSAnJztcclxuICBAT3V0cHV0KCkgZW1pdGVkVmFsdWUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgZGlhbG9nID0gaW5qZWN0KE1hdERpYWxvZyk7XHJcbiAgZGlzcGxheWVkQ29sdW1uczogc3RyaW5nW10gPSBbXCJpbmRleFwiLCBcImZpbGVcIiwgXCJkZXNjcmlwdGlvblwiLCBcImNvbW1lbnRcIiwgXCJhY3Rpb25zXCJdO1xyXG4gIGRhdGFTb3VyY2U6IE1hdFRhYmxlRGF0YVNvdXJjZTxhbnk+O1xyXG4gIEBWaWV3Q2hpbGQoJ3BhZ2luYXRvcicpIHBhZ2luYXRvcjogTWF0UGFnaW5hdG9yO1xyXG4gIHRvdGFsUmVjb3JkczogbnVtYmVyID0gMDtcclxuICBwYWdlU2l6ZTogbnVtYmVyID0gNTtcclxuICBwYWdlTnVtYmVyOiBudW1iZXIgPSAwO1xyXG4gIGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XHJcblxyXG4gIG92ZXJyaWRlIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgc3VwZXIubmdPbkluaXQoKVxyXG4gICAgaWYgKHRoaXMuY29udHJvbC52YWx1ZSkge1xyXG4gICAgICB0aGlzLmF0dGFjaG1lbnRzID0gdGhpcy5jb250cm9sLnZhbHVlXHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5hdHRhY2htZW50cykge1xyXG4gICAgICB0aGlzLmF0dGFjaG1lbnRzLmZvckVhY2goZWxlbWVudCA9PiB7XHJcbiAgICAgICAgZWxlbWVudC5uYW1lID0gZWxlbWVudC5maWxlTmFtZTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLmFkZERhdGFUb1RhYmxlKCk7XHJcbiAgICB0aGlzLnBhZ2luYXRvci5faW50bC5pdGVtc1BlclBhZ2VMYWJlbCA9IHRoaXMuaTE4bi50cmFuc2xhdGUoJ2l0ZW1zUGVyUGFnZScpXHJcbiAgfVxyXG5cclxuICBvblBhZ2luYXRlQ2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMucGFnZU51bWJlciA9IGV2ZW50LnBhZ2VJbmRleFxyXG4gIH1cclxuXHJcbiAgZHJvcChldmVudDogQ2RrRHJhZ0Ryb3A8c3RyaW5nW10+KSB7XHJcbiAgICBtb3ZlSXRlbUluQXJyYXkodGhpcy5hdHRhY2htZW50cywgZXZlbnQucHJldmlvdXNJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KTtcclxuICB9XHJcblxyXG5cclxuICByZXNldEF0dGFjaG1lbnREYXRhKCkge1xyXG4gICAgaWYgKCF0aGlzLmlzUmVhZE9ubHkpIHtcclxuICAgICAgdGhpcy5hdHRhY2htZW50cyA9IFtdO1xyXG4gICAgICB0aGlzLmVtaXRlZFZhbHVlLmVtaXQodGhpcy5hdHRhY2htZW50cyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhZGREYXRhVG9UYWJsZSgpe1xyXG4gICAgdGhpcy5kYXRhU291cmNlID0gbmV3IE1hdFRhYmxlRGF0YVNvdXJjZSh0aGlzLmF0dGFjaG1lbnRzKTtcclxuICAgIHRoaXMudG90YWxSZWNvcmRzID0gdGhpcy5kYXRhU291cmNlLmRhdGEubGVuZ3RoO1xyXG4gICAgdGhpcy5kYXRhU291cmNlLnBhZ2luYXRvciA9IHRoaXMucGFnaW5hdG9yO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlRW1pdFZhbHVlKGRhdGE6IGFueSwgZmllbGROYW1lOiBzdHJpbmcpIHtcclxuICAgIHRoaXMucG9wdXBEYXRhW2ZpZWxkTmFtZV0gPSBkYXRhO1xyXG4gIH1cclxuXHJcbiAgYWRkQXR0YWNobWVudCgpOiB2b2lkIHtcclxuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oQXR0YWNobWVudFNlY3Rpb25EYXRhQ29tcG9uZW50LCB7XHJcbiAgICAgIHBhbmVsQ2xhc3M6IFsnbWFpbi1wb3B1cCcsICdhZGQtYXR0YWNobWVudC1kaWFsb2cnXSxcclxuICAgICAgZGF0YToge1xyXG4gICAgICAgIGF0dGFjaG1lbnRMaXN0RGF0YTogbnVsbCxcclxuICAgICAgICBkYXRhOiB0aGlzLmFsbG93ZWRFeHRlbnNpb25zLFxyXG4gICAgICAgIGlzUmVxdWlyZWQ6IHRoaXMuaXNSZXF1aXJlZCxcclxuICAgICAgICBtdWx0aXBsZTogdGhpcy5tdWx0aXBsZSxcclxuICAgICAgICBhdHRhY2htZW50czogdGhpcy5hdHRhY2htZW50cyxcclxuICAgICAgICBkZXNjcmlwdGlvblJlcXVpcmVkOiB0aGlzLmRlc2NyaXB0aW9uUmVxdWlyZWQsXHJcbiAgICAgICAgY29tbWVudHNSZXF1aXJlZDogdGhpcy5jb21tZW50c1JlcXVpcmVkXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXN1bHREYXRhKSA9PiB7XHJcbiAgICAgIGlmIChyZXN1bHREYXRhICE9ICdjbG9zZScpIHtcclxuICAgICAgICBpZiAocmVzdWx0RGF0YT8uYXR0YWNobWVudElkKSB7XHJcbiAgICAgICAgICB0aGlzLmF0dGFjaG1lbnRzLnB1c2gocmVzdWx0RGF0YSk7XHJcbiAgICB0aGlzLmFkZERhdGFUb1RhYmxlKCk7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUodGhpcy5hdHRhY2htZW50cylcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlQXR0YWNobWVudHMoaW5kZXg6IG51bWJlciwgaXRlbTogYW55KSB7XHJcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKERlbGV0ZURpYWxvZ0NvbXBvbmVudCwge1xyXG4gICAgICBwYW5lbENsYXNzOiBbJ21haW4tcG9wdXAnLCAnYWRkLWF0dGFjaG1lbnQtZGlhbG9nJ11cclxuICAgIH0pO1xyXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXN1bHREYXRhKSA9PiB7XHJcbiAgICAgIGlmIChyZXN1bHREYXRhID09ICd5ZXMnKSB7XHJcbiAgICAgICAgdGhpcy5kZWxldGVBdHRhY2htZW50KGluZGV4LCBpdGVtKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBkZWxldGVBdHRhY2htZW50KGluZGV4OiBudW1iZXIsIGl0ZW06IGFueSkge1xyXG4gICAgdGhpcy5hdHRhY2htZW50cyA9IHRoaXMuYXR0YWNobWVudHMuZmlsdGVyKChyb3c6IGFueSkgPT4ge1xyXG4gICAgICByZXR1cm4gcm93LmF0dGFjaG1lbnRJZCAhPSBpdGVtLmF0dGFjaG1lbnRJZDtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5hZGREYXRhVG9UYWJsZSgpO1xyXG4gICAgdGhpcy5jb250cm9sLnNldFZhbHVlKHRoaXMuYXR0YWNobWVudHMpXHJcbiAgfVxyXG5cclxuICBlZGl0Um93KHJvd0RhdGEsIGluZGV4KTogdm9pZCB7XHJcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKEF0dGFjaG1lbnRTZWN0aW9uRGF0YUNvbXBvbmVudCwge1xyXG4gICAgICBwYW5lbENsYXNzOiBbJ21haW4tcG9wdXAnLCAnYWRkLWF0dGFjaG1lbnQtZGlhbG9nJ10sXHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICBhdHRhY2htZW50TGlzdERhdGE6IE9iamVjdC5hc3NpZ24ocm93RGF0YSksXHJcbiAgICAgICAgZGF0YTogdGhpcy5hbGxvd2VkRXh0ZW5zaW9ucyxcclxuICAgICAgICBpc1JlcXVpcmVkOiB0aGlzLmlzUmVxdWlyZWQsXHJcbiAgICAgICAgbXVsdGlwbGU6IHRoaXMubXVsdGlwbGUsXHJcbiAgICAgICAgYXR0YWNobWVudHM6IHRoaXMuYXR0YWNobWVudHMsXHJcblxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzdWx0RGF0YSkgPT4ge1xyXG4gICAgICBpZiAocmVzdWx0RGF0YSAhPSAnY2xvc2UnKSB7XHJcbiAgICAgICAgaWYgKHJlc3VsdERhdGE/LmF0dGFjaG1lbnRJZCkge1xyXG4gICAgICAgICAgdGhpcy5hdHRhY2htZW50c1tpbmRleF0gPSByZXN1bHREYXRhO1xyXG4gICAgICAgICAgdGhpcy5lbWl0ZWRWYWx1ZS5lbWl0KHRoaXMuYXR0YWNobWVudHMpO1xyXG4gICAgICAgICAgdGhpcy5hZGREYXRhVG9UYWJsZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBkb3dubG9hZEFsbEF0dGFjaG1lbnRzKGV2ZW50KSB7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlXHJcbiAgICBjb25zdCBkb3dubG9hZHMgPSB0aGlzLmF0dGFjaG1lbnRzLm1hcCgoZmlsZSkgPT4gdGhpcy5kb3dubG9hZEZpbGUoZXZlbnQsIGZpbGUpKTtcclxuICAgIFByb21pc2UuYWxsKGRvd25sb2FkcylcclxuICAgICAgLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlXHJcbiAgICAgIH0pXHJcbiAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcclxuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGRvd25sb2FkRmlsZShldmVudCwgZmllbGQpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgIHRoaXMuY29yZVNlcnZpY2UubG9hZEZpbGUoZmllbGQuYXR0YWNobWVudElkKS5waXBlKFxyXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpXHJcbiAgICAgICkuc3Vic2NyaWJlKFxyXG4gICAgICAgIChyZXNwb25zZU9iamVjdDogeyBib2R5OiBhbnk7IH0pID0+IHtcclxuICAgICAgICAgIGNvbnN0IGZpbGVJbmZvcm1hdGlvbiA9IHJlc3BvbnNlT2JqZWN0LmJvZHk7XHJcbiAgICAgICAgICB0aGlzLmNvcmVTZXJ2aWNlLnNhdmVGaWxlKGZpbGVJbmZvcm1hdGlvbilcclxuICAgICAgICAgIHJlc29sdmUoKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yID0+IHtcclxuICAgICAgICAgIHRoaXMudG9hc3RlclNlcnZpY2UuZXJyb3IoZXJyb3IuZXJyb3I/LlsnbWVzc2FnZSddKTtcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJtdC0yIHAtMFwiPlxyXG4gIEBpZihsYWJlbCl7XHJcbiAgICA8YXBwLWZvcm0tbGFiZWwgW2xhYmVsXT1cImxhYmVsXCIgW29wdGlvbmFsXT1cIiFjb250cm9sLmhhc1ZhbGlkYXRvcihWYWxpZGF0b3JzWydyZXF1aXJlZCddKVwiIFt0b29sdGlwXT1cInRvb2x0aXBcIj48L2FwcC1mb3JtLWxhYmVsPlxyXG4gIH1cclxuXHJcbiAgQGlmICghYXR0YWNobWVudHM/Lmxlbmd0aCAmJiAhaXNSZWFkT25seSkge1xyXG4gICAgPHNlY3Rpb25cclxuICAgICAgW25nQ2xhc3NdPVwiaW5zaWRlVGFibGUgPyAnZmlsZS11cGxvYWRlci10YWJsZScgOiAnZmlsZS11cGxvYWRlcidcIlxyXG4gICAgICBjbGFzcz1cIm1iLTJcIlxyXG4gICAgICBbY2xhc3MuaW5zaWRlVGFibGVTdHlsZV09XCJpbnNpZGVUYWJsZVwiXHJcbiAgICAgIChjbGljayk9XCJhZGRBdHRhY2htZW50KClcIj5cclxuICAgICAgPGRpdlxyXG4gICAgICAgIFtuZ0NsYXNzXT1cImluc2lkZVRhYmxlID8gJ2ZpbGUtdXBsb2FkZXItdGFibGUtZGV2JyA6ICcnXCJcclxuICAgICAgICBjbGFzcz1cImZpbGUtdXBsb2FkZXItaW5wdXRcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvbiBtYi0xXCI+XHJcbiAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cImluc2lkZVRhYmxlID8gJ2ZpbGUtdXBsb2FkZXItdGFibGUtc3ZnJyA6ICcnXCJcclxuICAgICAgICAgICAgd2lkdGg9XCI0MVwiXHJcbiAgICAgICAgICAgIGhlaWdodD1cIjM4XCJcclxuICAgICAgICAgICAgdmlld0JveD1cIjAgMCA0MSAzOFwiXHJcbiAgICAgICAgICAgIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgIGQ9XCJNMCAyMi4xOTQ3VjIwLjY3MzZDMC4wOTcxMzAzIDIwLjEwMTkgMC4wNzAwOTQgMTkuNTE0MSAwLjI3NjM3MSAxOC45NTMzQzEuMjgzNzIgMTYuMjA4NiAzLjIxMjMxIDE0LjUwMjMgNi4wNDIxIDEzLjgwOTRDNi43MDQ5OSAxMy42NDcyIDYuNjg0OTcgMTMuNjYzMiA2LjY5ODk5IDEyLjk4NDNDNi43MzIwMyAxMS4zMzIxIDYuOTk4MzkgOS43MTk5MiA3LjYyNDIzIDguMTc5ODZDOC44NjI4OSA1LjEzNjc4IDEwLjk0NjcgMi44Mzk2OSAxMy44ODE2IDEuMzkxNzVDMTcuMTY4IC0wLjIzMDQyNCAyMC41OTU2IC0wLjQ1MDcxOSAyNC4wNTUzIDAuODE1OThDMjcuNDkyOSAyLjA3NDY3IDI5Ljk2MjIgNC40MTU4MSAzMS40ODAyIDcuNzQ4MjhDMzEuNzc4NiA4LjQwMzE2IDMyLjAyNyA5LjA4MzA3IDMyLjE3MTIgOS43OTIwMkMzMi4yNDAyIDEwLjEzMTUgMzIuNDAzNSAxMC4yNTY2IDMyLjc1MjkgMTAuMzEwN0MzNi43MDEyIDEwLjkxNjUgMzkuMzM1OCAxMy4xMjU1IDQwLjY5NDYgMTYuODczNUM0MC45MDY5IDE3LjQ2MDMgNDAuOTE5OSAxOC4wNzMxIDQwLjk1OTkgMTguNjgyOUM0MC45NjQ5IDE4Ljc2MDEgNDAuOTM4OSAxOC44NDQyIDQxIDE4LjkxMTNWMjAuNTEyNEM0MC45MTA5IDIwLjk5NSA0MC45NjkgMjEuNDkzNyA0MC44NjA4IDIxLjk3MzRDNDAuNTI0NCAyMy40NjE0IDM5Ljg0NTQgMjQuNzgyMSAzOC44NTAxIDI1LjkyOTdDMzcuNDUyMiAyNy41NDE4IDM1LjcwNTkgMjguNTg4MiAzMy42MTYxIDI5LjA1MTlDMzIuNzkxIDI5LjIzNTEgMzEuOTQ5OSAyOS4yNTIxIDMxLjExMTcgMjkuMjkyMkMzMC42NTcxIDI5LjMxNDIgMzAuNTg0IDI5LjE5MyAzMC41OTIgMjguNzQ4NEMzMC42NDUxIDI1Ljg0NDYgMjkuODAyIDIzLjI1NzEgMjcuODYyNCAyMS4wNTkxQzI1Ljk5NzkgMTguOTQ2MyAyMy42NTk3IDE3LjcxNjcgMjAuODY3IDE3LjQwMTJDMTguODU1MyAxNy4xNzM5IDE2LjkwNTcgMTcuNDU5MyAxNS4wNjEyIDE4LjMzOTVDMTEuODMxOSAxOS44ODE2IDkuODE0MTYgMjIuNDA2OSA4Ljk2MTAyIDI1Ljg2OTZDOC43NDI3MyAyNi43NTM4IDguNjgyNjUgMjcuNjU4IDguNzA1NjggMjguNTcwMkM4LjcyMTcgMjkuMjExMSA4LjYwMjU0IDI5LjMxMjIgNy45NTk2OCAyOS4yOTcyQzUuOTUwOTggMjkuMjUxMSA0LjEwNTUxIDI4LjcyMzQgMi41ODE0NiAyNy4zNTk2QzEuMDc2NDQgMjYuMDE2OCAwLjA2ODA5MTMgMjQuMzk5NiAwLjA0MDA1MzcgMjIuMzAyOEMwLjA0MDA1MzcgMjIuMjYwNyAwLjAyNTAzMzYgMjIuMjI1NyAwIDIyLjE5MzdWMjIuMTk0N1pcIlxyXG4gICAgICAgICAgICAgIGZpbGw9XCIjREVFMEUyXCIvPlxyXG4gICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgIGQ9XCJNMjkuMDMwMyAyOC4yNjMyQzI5LjA2MDQgMzMuNDAzMSAyNC44NjU3IDM3LjYxODcgMTkuNjgzOCAzNy42NTQ4QzE0LjUxNjkgMzcuNjkwOCAxMC4yODUyIDMzLjQ5NTIgMTAuMjUyMSAyOC4zMDQyQzEwLjIyMDEgMjMuMTQwMyAxNC40Mjk3IDE4LjkxMjYgMTkuNjIyNyAxOC44OTQ2QzI0LjgwMzcgMTguODc2NiAyOC45OTkzIDIzLjA1NDIgMjkuMDMwMyAyOC4yNjMyWlwiXHJcbiAgICAgICAgICAgICAgZmlsbD1cIiM4RTlBQTBcIi8+XHJcbiAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgZD1cIk0yMC41NTczIDI1LjI2NDRDMjAuNDYyMiAyNS40NDc3IDIwLjUwMTIgMjUuNTkzOSAyMC41MDEyIDI1LjczNEMyMC40OTgyIDI4LjIxNTQgMjAuNTAwMiAzMC42OTU3IDIwLjQ5ODIgMzMuMTc3QzIwLjQ5ODIgMzMuODA5OSAyMC4yMzM5IDM0LjE3MDQgMTkuNzQ2MiAzNC4yMjM0QzE5LjI2NDUgMzQuMjc2NSAxOC44OCAzMy45ODMxIDE4LjgxNjkgMzMuNTAyNUMxOC43OTU5IDMzLjM0NDMgMTguNzk2OSAzMy4xODMgMTguNzk2OSAzMy4wMjM4QzE4Ljc5NTkgMzAuNTgyNiAxOC43OTY5IDI4LjE0MjMgMTguNzk2OSAyNS43MDFDMTguNzk2OSAyNS41NzI4IDE4Ljc5NjkgMjUuNDQ0NyAxOC43OTY5IDI1LjIwMDNDMTguMTk3MSAyNS44MDMxIDE3LjY3NzQgMjYuMzI4OCAxNy4xNTI3IDI2Ljg1MDVDMTcuMDExNSAyNi45OTA3IDE2Ljg2ODMgMjcuMTM0OSAxNi43MDYxIDI3LjI0NzFDMTYuMzU2NiAyNy40ODY0IDE1LjkzNDEgMjcuNDQxMyAxNS42NDU3IDI3LjE1NEMxNS4zNjQzIDI2Ljg3NDYgMTUuMzIwMyAyNi40NDIgMTUuNTQ4NiAyNi4wOTI1QzE1LjYyMDcgMjUuOTgyNCAxNS43MTI4IDI1Ljg4MzIgMTUuODA2OSAyNS43ODkxQzE2Ljg2MTMgMjQuNzMwNyAxNy45MTY3IDIzLjY3MzMgMTguOTczMiAyMi42MTc5QzE5LjQwMTcgMjIuMTg5MyAxOS44Nzg0IDIyLjE3NjMgMjAuMzAzOSAyMi41OTg4QzIxLjM5MTQgMjMuNjgwMyAyMi40NzM5IDI0Ljc2NjcgMjMuNTUzMyAyNS44NTcyQzIzLjk4MDkgMjYuMjg5OCAyNC4wMTI5IDI2LjgwNjUgMjMuNjUzNCAyNy4xNjdDMjMuMjk5IDI3LjUyMTQgMjIuNzc1MyAyNy40ODQ0IDIyLjM0MzcgMjcuMDU2OEMyMS43NDk5IDI2LjQ3IDIxLjE2NjEgMjUuODczMiAyMC41NjAzIDI1LjI2NDRIMjAuNTU3M1pcIlxyXG4gICAgICAgICAgICAgIGZpbGw9XCIjRjlGOUY5XCIvPlxyXG4gICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImYtMTQgZmMtYmxhY2sgZnctbm9ybWFsXCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImZjLWNvcmFsIGZ3LW1lZGl1bVwiPnt7ICdicm93c2UnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmcy0xMCBmYy1kYXJrLWdyYXlcIj5cclxuICAgICAgICAgIHt7ICdhZGRNdWx0aUF0dGFjaG1lbnRzJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvc2VjdGlvbj5cclxuICB9XHJcblxyXG4gIEBpZiAoYXR0YWNobWVudHM/Lmxlbmd0aCkge1xyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cInRhYmxlLXJlc3BvbnNpdmUgZnVsbFwiXHJcbiAgICAgIGNka0Ryb3BMaXN0XHJcbiAgICAgIFtjZGtEcm9wTGlzdERhdGFdPVwiYXR0YWNobWVudHNcIlxyXG4gICAgICAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3AoJGV2ZW50KVwiXHJcbiAgICA+XHJcbiAgICAgIDx0YWJsZSBtYXQtdGFibGUgW2RhdGFTb3VyY2VdPVwiZGF0YVNvdXJjZVwiPlxyXG5cclxuICAgICAgICA8IS0tIGluZGV4IENvbHVtbiAtLT5cclxuICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImluZGV4XCI+XHJcbiAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPlxyXG4gICAgICAgICAgICA8ZHMtYnV0dG9uXHJcbiAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwiJ2Rvd25sb2FkQWxsJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgc3F1YXJlIGljb24gc2l6ZT1cInNtYWxsXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwiZG93bmxvYWRBbGxBdHRhY2htZW50cygkZXZlbnQpXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImljb24tYnRuLXNoYWRvd1wiPlxyXG4gICAgICAgICAgICAgIEBpZiAobG9hZGluZykge1xyXG4gICAgICAgICAgICAgICAgPGRzLWljb24gY2xhc3M9XCJzZmkgc2ZpLXNwaW5uZXIgZC1pbmxpbmUtYmxvY2sgc3BpbiBmYy1jb3JhbCBmcy0zMC1pbXBcIj48L2RzLWljb24+XHJcbiAgICAgICAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgICAgICAgICA8ZHMtaWNvblxyXG4gICAgICAgICAgICAgICAgICBpY29uPVwiZG93bmxvYWRcIlxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImZzLTIwIGZzLW1kLTE3IGZjLXB1cnBsZVwiPjwvZHMtaWNvbj5cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIDwvZHMtYnV0dG9uPlxyXG4gICAgICAgICAgPC90aD5cclxuICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50OyBsZXQgaSA9IGluZGV4XCI+e3sgaSArIDEgKyBwYWdlU2l6ZSAqIChwYWdlTnVtYmVyKSB9fTwvdGQ+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDwhLS0gTmFtZSBDb2x1bW4gLS0+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJmaWxlXCI+XHJcbiAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPnt7ICdGaWxlTmFtZScgfCB0cmFuc2xhdGUgfX08L3RoPlxyXG4gICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj5cclxuICAgICAgICAgICAgPGFwcC1maWxlLXVwbG9hZGVyXHJcbiAgICAgICAgICAgICAgW2FsbG93ZWRFeHRlbnNpb25zXT1cImFsbG93ZWRFeHRlbnNpb25zXCJcclxuICAgICAgICAgICAgICBbZGlzcGxheWVkRmlsZXNdPVwiW2VsZW1lbnRdXCJcclxuICAgICAgICAgICAgICBuYW1lPVwiYXR0YWNobWVudFwiXHJcbiAgICAgICAgICAgICAgW3Nob3dBY3Rpb25zXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgIFtpc1JlYWRPbmx5XT1cInRydWVcIlxyXG4gICAgICAgICAgICAgIFttdWx0aXBsZV09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgIDwvYXBwLWZpbGUtdXBsb2FkZXI+XHJcbiAgICAgICAgICA8L3RkPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8IS0tIERlc2NyaXB0aW9uIENvbHVtbiAtLT5cclxuICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImRlc2NyaXB0aW9uXCI+XHJcbiAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPnt7ICdGaWxlRGVzY3JpcHRpb24nIHwgdHJhbnNsYXRlIH19PC90aD5cclxuICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+XHJcbiAgICAgICAgICAgIDxhXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmdy1tZWRpdW0gZmMtYmxhY2sgdW5kZXJsaW5lIGN1cnNvci1wb2ludGVyIGZzLTEyXCJcclxuICAgICAgICAgICAgICBbaGlkZGVuXT1cIiFlbGVtZW50Py5bJ2ZpbGVEZXNjcmlwdGlvbiddXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyBmaWxlRGVzY3JpcHRpb25BbmNob3IucG9wb3Zlci5vcGVuKClcIlxyXG4gICAgICAgICAgICAgIFtzYXRQb3BvdmVyQW5jaG9yXT1cImZpbGVEZXNjcmlwdGlvblBvcG92ZXJcIlxyXG4gICAgICAgICAgICAgICNmaWxlRGVzY3JpcHRpb25BbmNob3I9XCJzYXRQb3BvdmVyQW5jaG9yXCJcclxuICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09XCJlbGVtZW50Py5bJ2ZpbGVEZXNjcmlwdGlvbiddXCI+XHJcbiAgICAgICAgICAgICAge3sgZWxlbWVudD8uWydmaWxlRGVzY3JpcHRpb24nXT8ubGVuZ3RoID4gMTAgPyAoZWxlbWVudD8uWydmaWxlRGVzY3JpcHRpb24nXSB8IHNsaWNlIDogMCA6IDEwKSArICcuLi4uJyA6IGVsZW1lbnQ/LlsnZmlsZURlc2NyaXB0aW9uJ10gfX1cclxuICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICA8c2F0LXBvcG92ZXJcclxuICAgICAgICAgICAgICAjZmlsZURlc2NyaXB0aW9uUG9wb3ZlclxyXG4gICAgICAgICAgICAgIFthbmNob3JdPVwiZmlsZURlc2NyaXB0aW9uQW5jaG9yXCJcclxuICAgICAgICAgICAgICBbaGFzQmFja2Ryb3BdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgW3Jlc3RvcmVGb2N1c109XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgdmVydGljYWxBbGlnbj1cImJlbG93XCJcclxuICAgICAgICAgICAgICBob3Jpem9udGFsQWxpZ249XCJjZW50ZXJcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGVmYXVsdC1wb3BvdmVyIHAtMyBmcy0xNCB0ZXh0LWJyZWFrIHZpZXctbm90ZS1wb3BvdmVyXCI+XHJcbiAgICAgICAgICAgICAgICA8YmRpIGNsYXNzPVwiZmMtYmxhY2tcIj57eyBlbGVtZW50Py5bJ2ZpbGVEZXNjcmlwdGlvbiddIH19PC9iZGk+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvc2F0LXBvcG92ZXI+XHJcbiAgICAgICAgICA8L3RkPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8IS0tIENvbW1lbnQgQ29sdW1uIC0tPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiY29tbWVudFwiPlxyXG4gICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj57eyAnY29tbWVudCcgfCB0cmFuc2xhdGUgfX08L3RoPlxyXG4gICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj5cclxuICAgICAgICAgICAgPGFcclxuICAgICAgICAgICAgICBjbGFzcz1cImZ3LW1lZGl1bSBmYy1ibGFjayB1bmRlcmxpbmUgY3Vyc29yLXBvaW50ZXIgZnMtMTJcIlxyXG4gICAgICAgICAgICAgIFtoaWRkZW5dPVwiIWVsZW1lbnQ/LlsnYXR0YWNobWVudGNvbW1lbnQnXVwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgY29tbWVudHNBbmNob3IucG9wb3Zlci5vcGVuKClcIlxyXG4gICAgICAgICAgICAgIFtzYXRQb3BvdmVyQW5jaG9yXT1cImNvbW1lbnRzUG9wb3ZlclwiXHJcbiAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwiZWxlbWVudD8uWydhdHRhY2htZW50Y29tbWVudCddXCJcclxuICAgICAgICAgICAgICAjY29tbWVudHNBbmNob3I9XCJzYXRQb3BvdmVyQW5jaG9yXCI+XHJcbiAgICAgICAgICAgICAge3sgZWxlbWVudD8uWydhdHRhY2htZW50Y29tbWVudCddPy5sZW5ndGggPiAxMCA/IChlbGVtZW50Py5bJ2F0dGFjaG1lbnRjb21tZW50J10gfCBzbGljZSA6IDAgOiAxMCkgKyAnLi4uLicgOiBlbGVtZW50Py5bJ2F0dGFjaG1lbnRjb21tZW50J10gfX1cclxuICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICA8c2F0LXBvcG92ZXJcclxuICAgICAgICAgICAgICAjY29tbWVudHNQb3BvdmVyXHJcbiAgICAgICAgICAgICAgW2FuY2hvcl09XCJjb21tZW50c0FuY2hvclwiXHJcbiAgICAgICAgICAgICAgW2hhc0JhY2tkcm9wXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgIFtyZXN0b3JlRm9jdXNdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgIHZlcnRpY2FsQWxpZ249XCJiZWxvd1wiXHJcbiAgICAgICAgICAgICAgaG9yaXpvbnRhbEFsaWduPVwiY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRlZmF1bHQtcG9wb3ZlciBwLTMgZnMtMTQgdGV4dC1icmVhayB2aWV3LW5vdGUtcG9wb3ZlclwiPlxyXG4gICAgICAgICAgICAgICAgPGJkaSBjbGFzcz1cImZjLWJsYWNrXCI+e3sgZWxlbWVudD8uWydhdHRhY2htZW50Y29tbWVudCddIH19PC9iZGk+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvc2F0LXBvcG92ZXI+XHJcbiAgICAgICAgICA8L3RkPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImFjdGlvbnNcIj5cclxuICAgICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+PC90aD5cclxuICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50OyBsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgIEBpZiAoIWlzUmVhZE9ubHkpIHtcclxuICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGdhcC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkcy1idXR0b25cclxuICAgICAgICAgICAgICAgICAgICBzcXVhcmVcclxuICAgICAgICAgICAgICAgICAgICBpY29uXHJcbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZGVsZXRlQXR0YWNobWVudHMoaSwgZWxlbWVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbi1idG4tc2hhZG93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRzLWljb24gaWNvbj1cInRyYXNoXCIgY2xhc3M9XCJmcy0yMCBmcy1tZC0xNyBmYy1jb3JhbFwiPjwvZHMtaWNvbj5cclxuICAgICAgICAgICAgICAgICAgPC9kcy1idXR0b24+XHJcblxyXG4gICAgICAgICAgICAgICAgICA8ZHMtYnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgc3F1YXJlXHJcbiAgICAgICAgICAgICAgICAgICAgaWNvblxyXG4gICAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImVkaXRSb3coZWxlbWVudCwgaSlcIlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbi1idG4tc2hhZG93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRzLWljb24gaWNvbj1cInBlblwiIGNsYXNzPVwiZnMtMjAgZnMtbWQtMTcgZmMtcHVycGxlXCI+PC9kcy1pY29uPlxyXG4gICAgICAgICAgICAgICAgICA8L2RzLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDx0ciBtYXQtaGVhZGVyLXJvdyAqbWF0SGVhZGVyUm93RGVmPVwiZGlzcGxheWVkQ29sdW1uc1wiPjwvdHI+XHJcbiAgICAgICAgPHRyIG1hdC1yb3cgKm1hdFJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IGRpc3BsYXllZENvbHVtbnM7XCI+PC90cj5cclxuICAgICAgPC90YWJsZT5cclxuXHJcbiAgICAgIDxtYXQtcGFnaW5hdG9yXHJcbiAgICAgICAgI3BhZ2luYXRvclxyXG4gICAgICAgIFtwYWdlU2l6ZU9wdGlvbnNdPVwiWzVdXCJcclxuICAgICAgICAocGFnZSk9XCJvblBhZ2luYXRlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgIFtsZW5ndGhdPVwiYXR0YWNobWVudHMubGVuZ3RoXCJcclxuICAgICAgICBbcGFnZVNpemVdPVwicGFnZVNpemVcIlxyXG4gICAgICAgIHNob3dGaXJzdExhc3RCdXR0b25zPjwvbWF0LXBhZ2luYXRvcj5cclxuICAgIDwvZGl2PlxyXG4gIH1cclxuXHJcbiAgQGlmICghaXNSZWFkT25seSAmJiBhdHRhY2htZW50cz8ubGVuZ3RoICYmIGF0dGFjaG1lbnRzPy5sZW5ndGggPCBhdHRhY2htZW50c01heCkge1xyXG4gICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyIGZ1bGwgbXQtM1wiPlxyXG4gICAgICA8ZHMtYnV0dG9uXHJcbiAgICAgICAgc2hhcGU9XCJ7eyBhdHRhY2htZW50cz8ubGVuZ3RoID8gJ291dGxpbmUnIDogJycgfX1cIlxyXG4gICAgICAgIFtuZ0NsYXNzXT1cInsgJ2Z1bGwtYWRkLWJ0biB3LTEwMCBwdC0xJzogYXR0YWNobWVudHM/Lmxlbmd0aCB9XCJcclxuICAgICAgICAoY2xpY2spPVwiYWRkQXR0YWNobWVudCgpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cclxuICAgICAgICA8ZHMtaWNvbiBzbG90PVwicHJlZml4XCIgaWNvbj1cInBsdXNcIiBjbGFzcz1cImZzLTIyIHBiLTFcIj48L2RzLWljb24+XHJcbiAgICAgICAge3sgJ2FkZEF0dGFjaG1lbnRzJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICA8L2RzLWJ1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIH1cclxuPC9kaXY+XHJcbiJdfQ==
217
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0YWNobWVudC1zZWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JwbS1jb3JlL3NyYy9saWIvY29tcG9uZW50cy9zaGFyZWQtY29tcG9uZW50cy9mb3JtLWZpZWxkL2F0dGFjaG1lbnQtc2VjdGlvbi9hdHRhY2htZW50LXNlY3Rpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlZC1jb21wb25lbnRzL2Zvcm0tZmllbGQvYXR0YWNobWVudC1zZWN0aW9uL2F0dGFjaG1lbnQtc2VjdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLFNBQVMsRUFBRSxzQkFBc0IsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkosT0FBTyxFQUFDLDhCQUE4QixFQUFDLE1BQU0sNERBQTRELENBQUM7QUFDMUcsT0FBTyxFQUFDLE9BQU8sRUFBZSxXQUFXLEVBQUUsZUFBZSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDMUYsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ3JELE9BQU8sRUFBQyxPQUFPLEVBQWlCLFNBQVMsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ2xFLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBQzlFLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHFEQUFxRCxDQUFDO0FBQzFGLE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLHFDQUFxQyxDQUFD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QUFTLHVHQUNULGtCQUFrQixnR0FDbEIsYUFBYTs7MkZBSUosMEJBQTBCO2tCQXBDdEMsU0FBUzsrQkFDRSx3QkFBd0IsV0FHekIsQ0FBQyxzQkFBc0IsQ0FBQyxhQUN0Qjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSwyQkFBMkIsQ0FBQzs0QkFDekQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0YsV0FDUTt3QkFDUCxnQkFBZ0I7d0JBQ2hCLFVBQVU7d0JBQ1YsT0FBTzt3QkFDUCxXQUFXO3dCQUNYLHFCQUFxQjt3QkFDckIsT0FBTzt3QkFDUCxTQUFTO3dCQUNULFlBQVk7d0JBQ1osUUFBUTt3QkFDUixZQUFZO3dCQUNaLE9BQU87d0JBQ1AsVUFBVTt3QkFDVixnQkFBZ0I7d0JBQ2hCLGFBQWE7d0JBQ2IsTUFBTTt3QkFDTixZQUFZO3dCQUNaLGVBQWU7d0JBQ2YsU0FBUzt3QkFDVCxrQkFBa0I7d0JBQ2xCLGFBQWE7cUJBQ2QsY0FDVyxJQUFJOzhCQUdQLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUcsY0FBYztzQkFBdEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUcsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNO2dCQUlpQixTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyVmlld0luaXQsIENvbXBvbmVudCwgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgRGVzdHJveVJlZiwgRXZlbnRFbWl0dGVyLCBmb3J3YXJkUmVmLCBpbmplY3QsIElucHV0LCBPdXRwdXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7QXR0YWNobWVudFNlY3Rpb25EYXRhQ29tcG9uZW50fSBmcm9tICcuLi9hZGQtYXR0YWNobWVudC1zZWN0aW9uL2FkZC1hdHRhY2htZW50LXNlY3Rpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHtDZGtEcmFnLCBDZGtEcmFnRHJvcCwgQ2RrRHJvcExpc3QsIG1vdmVJdGVtSW5BcnJheX0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcbmltcG9ydCB7U2F0UG9wb3Zlck1vZHVsZX0gZnJvbSAnQG5jc3RhdGUvc2F0LXBvcG92ZXInO1xyXG5pbXBvcnQge01hdFRvb2x0aXB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwXCI7XHJcbmltcG9ydCB7TmdDbGFzcywgTmdGb3JPZiwgTmdJZiwgU2xpY2VQaXBlfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7RG9jc1VwbG9hZGVyQ29tcG9uZW50fSBmcm9tICcuLi9kb2MtdXBsb2FkZXIvZG9jcy11cGxvYWRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQge0RlbGV0ZURpYWxvZ0NvbXBvbmVudH0gZnJvbSBcIi4uLy4uL2RpYWxvZ3MvZGVsZXRlLWRpYWxvZy9kZWxldGUtZGlhbG9nLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge0NvbnRyb2xWYWx1ZUFjY2Vzc29yRGlyZWN0aXZlfSBmcm9tIFwiLi4vY29udHJvbC12YWx1ZS1hY2Nlc3Nvci5kaXJlY3RpdmVcIjtcclxuaW1wb3J0IHtNYXREaWFsb2d9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2dcIjtcclxuaW1wb3J0IHtOR19WQUxVRV9BQ0NFU1NPUn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQge01hdFBhZ2luYXRvcn0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvclwiO1xyXG5pbXBvcnQge1xyXG4gIE1hdENlbGwsXHJcbiAgTWF0Q2VsbERlZixcclxuICBNYXRDb2x1bW5EZWYsXHJcbiAgTWF0SGVhZGVyQ2VsbCxcclxuICBNYXRIZWFkZXJDZWxsRGVmLFxyXG4gIE1hdEhlYWRlclJvdyxcclxuICBNYXRIZWFkZXJSb3dEZWYsXHJcbiAgTWF0Um93LFxyXG4gIE1hdFJvd0RlZixcclxuICBNYXRUYWJsZSxcclxuICBNYXRUYWJsZURhdGFTb3VyY2VcclxufSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGVcIjtcclxuaW1wb3J0IHsgRm9ybUxhYmVsQ29tcG9uZW50IH0gZnJvbSAnLi4vZm9ybS1sYWJlbC9mb3JtLWxhYmVsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcclxuaW1wb3J0IHtUcmFuc2xhdGVQaXBlfSBmcm9tIFwiLi4vLi4vLi4vLi4vcGlwZXMvdHJhbnNsYXRlLnBpcGVcIjtcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1hdHRhY2htZW50LXNlY3Rpb24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hdHRhY2htZW50LXNlY3Rpb24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2F0dGFjaG1lbnQtc2VjdGlvbi5jb21wb25lbnQuc2NzcyddLFxyXG4gIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEF0dGFjaG1lbnRTZWN0aW9uQ29tcG9uZW50KSxcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICB9LFxyXG4gIF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgU2F0UG9wb3Zlck1vZHVsZSxcclxuICAgIE1hdFRvb2x0aXAsXHJcbiAgICBOZ0NsYXNzLFxyXG4gICAgQ2RrRHJvcExpc3QsXHJcbiAgICBEb2NzVXBsb2FkZXJDb21wb25lbnQsXHJcbiAgICBDZGtEcmFnLFxyXG4gICAgU2xpY2VQaXBlLFxyXG4gICAgTWF0UGFnaW5hdG9yLFxyXG4gICAgTWF0VGFibGUsXHJcbiAgICBNYXRDb2x1bW5EZWYsXHJcbiAgICBNYXRDZWxsLFxyXG4gICAgTWF0Q2VsbERlZixcclxuICAgIE1hdEhlYWRlckNlbGxEZWYsXHJcbiAgICBNYXRIZWFkZXJDZWxsLFxyXG4gICAgTWF0Um93LFxyXG4gICAgTWF0SGVhZGVyUm93LFxyXG4gICAgTWF0SGVhZGVyUm93RGVmLFxyXG4gICAgTWF0Um93RGVmLFxyXG4gICAgRm9ybUxhYmVsQ29tcG9uZW50LFxyXG4gICAgVHJhbnNsYXRlUGlwZVxyXG4gIF0sXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXR0YWNobWVudFNlY3Rpb25Db21wb25lbnQgZXh0ZW5kcyBDb250cm9sVmFsdWVBY2Nlc3NvckRpcmVjdGl2ZTxhbnk+IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgQElucHV0KCkgY2xhc3NOYW1lID0gJ2luZm8tc2VjdGlvbic7XHJcblxyXG4gIEBJbnB1dCgpIGF0dGFjaG1lbnRzTWF4ID0gMTAwMDtcclxuICBASW5wdXQoKSBpc1NvcnRhYmxlID0gZmFsc2U7XHJcbiAgQElucHV0KCkgZG93bmxvYWRBbGwgPSBmYWxzZTtcclxuICBwb3B1cERhdGE6IGFueSA9IHt9O1xyXG4gIEBJbnB1dCgpIGlzUmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBkZXNjcmlwdGlvblJlcXVpcmVkOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGNvbW1lbnRzUmVxdWlyZWQ6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgYWxsb3dlZEV4dGVuc2lvbnMgPSAnJztcclxuICBAT3V0cHV0KCkgZW1pdGVkVmFsdWUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgZGlhbG9nID0gaW5qZWN0KE1hdERpYWxvZyk7XHJcbiAgZGlzcGxheWVkQ29sdW1uczogc3RyaW5nW10gPSBbXCJpbmRleFwiLCBcImZpbGVcIiwgXCJkZXNjcmlwdGlvblwiLCBcImNvbW1lbnRcIiwgXCJhY3Rpb25zXCJdO1xyXG4gIGRhdGFTb3VyY2U6IE1hdFRhYmxlRGF0YVNvdXJjZTxhbnk+O1xyXG4gIEBWaWV3Q2hpbGQoJ3BhZ2luYXRvcicpIHBhZ2luYXRvcjogTWF0UGFnaW5hdG9yO1xyXG4gIHRvdGFsUmVjb3JkczogbnVtYmVyID0gMDtcclxuICBwYWdlU2l6ZTogbnVtYmVyID0gNTtcclxuICBwYWdlTnVtYmVyOiBudW1iZXIgPSAwO1xyXG4gIGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XHJcblxyXG4gIG92ZXJyaWRlIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgc3VwZXIubmdPbkluaXQoKVxyXG4gICAgaWYgKHRoaXMuY29udHJvbC52YWx1ZSkge1xyXG4gICAgICB0aGlzLmF0dGFjaG1lbnRzID0gdGhpcy5jb250cm9sLnZhbHVlXHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5hdHRhY2htZW50cykge1xyXG4gICAgICB0aGlzLmF0dGFjaG1lbnRzLmZvckVhY2goZWxlbWVudCA9PiB7XHJcbiAgICAgICAgZWxlbWVudC5uYW1lID0gZWxlbWVudC5maWxlTmFtZTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLmFkZERhdGFUb1RhYmxlKCk7XHJcbiAgICB0aGlzLnBhZ2luYXRvci5faW50bC5pdGVtc1BlclBhZ2VMYWJlbCA9IHRoaXMuaTE4bi50cmFuc2xhdGUoJ2l0ZW1zUGVyUGFnZScpXHJcbiAgfVxyXG5cclxuICBvblBhZ2luYXRlQ2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMucGFnZU51bWJlciA9IGV2ZW50LnBhZ2VJbmRleFxyXG4gIH1cclxuXHJcbiAgZHJvcChldmVudDogQ2RrRHJhZ0Ryb3A8c3RyaW5nW10+KSB7XHJcbiAgICBtb3ZlSXRlbUluQXJyYXkodGhpcy5hdHRhY2htZW50cywgZXZlbnQucHJldmlvdXNJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KTtcclxuICB9XHJcblxyXG5cclxuICByZXNldEF0dGFjaG1lbnREYXRhKCkge1xyXG4gICAgaWYgKCF0aGlzLmlzUmVhZE9ubHkpIHtcclxuICAgICAgdGhpcy5hdHRhY2htZW50cyA9IFtdO1xyXG4gICAgICB0aGlzLmVtaXRlZFZhbHVlLmVtaXQodGhpcy5hdHRhY2htZW50cyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhZGREYXRhVG9UYWJsZSgpe1xyXG4gICAgdGhpcy5kYXRhU291cmNlID0gbmV3IE1hdFRhYmxlRGF0YVNvdXJjZSh0aGlzLmF0dGFjaG1lbnRzKTtcclxuICAgIHRoaXMudG90YWxSZWNvcmRzID0gdGhpcy5kYXRhU291cmNlLmRhdGEubGVuZ3RoO1xyXG4gICAgdGhpcy5kYXRhU291cmNlLnBhZ2luYXRvciA9IHRoaXMucGFnaW5hdG9yO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlRW1pdFZhbHVlKGRhdGE6IGFueSwgZmllbGROYW1lOiBzdHJpbmcpIHtcclxuICAgIHRoaXMucG9wdXBEYXRhW2ZpZWxkTmFtZV0gPSBkYXRhO1xyXG4gIH1cclxuXHJcbiAgYWRkQXR0YWNobWVudCgpOiB2b2lkIHtcclxuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oQXR0YWNobWVudFNlY3Rpb25EYXRhQ29tcG9uZW50LCB7XHJcbiAgICAgIHBhbmVsQ2xhc3M6IFsnbWFpbi1wb3B1cCcsICdhZGQtYXR0YWNobWVudC1kaWFsb2cnXSxcclxuICAgICAgZGF0YToge1xyXG4gICAgICAgIGF0dGFjaG1lbnRMaXN0RGF0YTogbnVsbCxcclxuICAgICAgICBkYXRhOiB0aGlzLmFsbG93ZWRFeHRlbnNpb25zLFxyXG4gICAgICAgIGlzUmVxdWlyZWQ6IHRoaXMuaXNSZXF1aXJlZCxcclxuICAgICAgICBtdWx0aXBsZTogdGhpcy5tdWx0aXBsZSxcclxuICAgICAgICBhdHRhY2htZW50czogdGhpcy5hdHRhY2htZW50cyxcclxuICAgICAgICBkZXNjcmlwdGlvblJlcXVpcmVkOiB0aGlzLmRlc2NyaXB0aW9uUmVxdWlyZWQsXHJcbiAgICAgICAgY29tbWVudHNSZXF1aXJlZDogdGhpcy5jb21tZW50c1JlcXVpcmVkXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXN1bHREYXRhKSA9PiB7XHJcbiAgICAgIGlmIChyZXN1bHREYXRhICE9ICdjbG9zZScpIHtcclxuICAgICAgICBpZiAocmVzdWx0RGF0YT8uYXR0YWNobWVudElkKSB7XHJcbiAgICAgICAgICB0aGlzLmF0dGFjaG1lbnRzLnB1c2gocmVzdWx0RGF0YSk7XHJcbiAgICB0aGlzLmFkZERhdGFUb1RhYmxlKCk7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUodGhpcy5hdHRhY2htZW50cylcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlQXR0YWNobWVudHMoaW5kZXg6IG51bWJlciwgaXRlbTogYW55KSB7XHJcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKERlbGV0ZURpYWxvZ0NvbXBvbmVudCwge1xyXG4gICAgICBwYW5lbENsYXNzOiBbJ21haW4tcG9wdXAnLCAnYWRkLWF0dGFjaG1lbnQtZGlhbG9nJ11cclxuICAgIH0pO1xyXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXN1bHREYXRhKSA9PiB7XHJcbiAgICAgIGlmIChyZXN1bHREYXRhID09ICd5ZXMnKSB7XHJcbiAgICAgICAgdGhpcy5kZWxldGVBdHRhY2htZW50KGluZGV4LCBpdGVtKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBkZWxldGVBdHRhY2htZW50KGluZGV4OiBudW1iZXIsIGl0ZW06IGFueSkge1xyXG4gICAgdGhpcy5hdHRhY2htZW50cyA9IHRoaXMuYXR0YWNobWVudHMuZmlsdGVyKChyb3c6IGFueSkgPT4ge1xyXG4gICAgICByZXR1cm4gcm93LmF0dGFjaG1lbnRJZCAhPSBpdGVtLmF0dGFjaG1lbnRJZDtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5hZGREYXRhVG9UYWJsZSgpO1xyXG4gICAgdGhpcy5jb250cm9sLnNldFZhbHVlKHRoaXMuYXR0YWNobWVudHMpXHJcbiAgfVxyXG5cclxuICBlZGl0Um93KHJvd0RhdGEsIGluZGV4KTogdm9pZCB7XHJcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKEF0dGFjaG1lbnRTZWN0aW9uRGF0YUNvbXBvbmVudCwge1xyXG4gICAgICBwYW5lbENsYXNzOiBbJ21haW4tcG9wdXAnLCAnYWRkLWF0dGFjaG1lbnQtZGlhbG9nJ10sXHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICBhdHRhY2htZW50TGlzdERhdGE6IE9iamVjdC5hc3NpZ24ocm93RGF0YSksXHJcbiAgICAgICAgZGF0YTogdGhpcy5hbGxvd2VkRXh0ZW5zaW9ucyxcclxuICAgICAgICBpc1JlcXVpcmVkOiB0aGlzLmlzUmVxdWlyZWQsXHJcbiAgICAgICAgbXVsdGlwbGU6IHRoaXMubXVsdGlwbGUsXHJcbiAgICAgICAgYXR0YWNobWVudHM6IHRoaXMuYXR0YWNobWVudHMsXHJcblxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzdWx0RGF0YSkgPT4ge1xyXG4gICAgICBpZiAocmVzdWx0RGF0YSAhPSAnY2xvc2UnKSB7XHJcbiAgICAgICAgaWYgKHJlc3VsdERhdGE/LmF0dGFjaG1lbnRJZCkge1xyXG4gICAgICAgICAgdGhpcy5hdHRhY2htZW50c1tpbmRleF0gPSByZXN1bHREYXRhO1xyXG4gICAgICAgICAgdGhpcy5lbWl0ZWRWYWx1ZS5lbWl0KHRoaXMuYXR0YWNobWVudHMpO1xyXG4gICAgICAgICAgdGhpcy5hZGREYXRhVG9UYWJsZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBkb3dubG9hZEFsbEF0dGFjaG1lbnRzKGV2ZW50KSB7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlXHJcbiAgICBjb25zdCBkb3dubG9hZHMgPSB0aGlzLmF0dGFjaG1lbnRzLm1hcCgoZmlsZSkgPT4gdGhpcy5kb3dubG9hZEZpbGUoZXZlbnQsIGZpbGUpKTtcclxuICAgIFByb21pc2UuYWxsKGRvd25sb2FkcylcclxuICAgICAgLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlXHJcbiAgICAgIH0pXHJcbiAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcclxuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGRvd25sb2FkRmlsZShldmVudCwgZmllbGQpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgIHRoaXMuY29yZVNlcnZpY2UubG9hZEZpbGUoZmllbGQuYXR0YWNobWVudElkKS5waXBlKFxyXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpXHJcbiAgICAgICkuc3Vic2NyaWJlKFxyXG4gICAgICAgIChyZXNwb25zZU9iamVjdDogeyBib2R5OiBhbnk7IH0pID0+IHtcclxuICAgICAgICAgIGNvbnN0IGZpbGVJbmZvcm1hdGlvbiA9IHJlc3BvbnNlT2JqZWN0LmJvZHk7XHJcbiAgICAgICAgICB0aGlzLmNvcmVTZXJ2aWNlLnNhdmVGaWxlKGZpbGVJbmZvcm1hdGlvbilcclxuICAgICAgICAgIHJlc29sdmUoKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yID0+IHtcclxuICAgICAgICAgIHRoaXMudG9hc3RlclNlcnZpY2UuZXJyb3IoZXJyb3IuZXJyb3I/LlsnbWVzc2FnZSddKTtcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJtdC0yIHAtMFwiPlxyXG4gIEBpZihsYWJlbCl7XHJcbiAgICA8YXBwLWZvcm0tbGFiZWwgW2xhYmVsXT1cImxhYmVsXCIgW29wdGlvbmFsXT1cIiFjb250cm9sLmhhc1ZhbGlkYXRvcihWYWxpZGF0b3JzWydyZXF1aXJlZCddKVwiIFt0b29sdGlwXT1cInRvb2x0aXBcIj48L2FwcC1mb3JtLWxhYmVsPlxyXG4gIH1cclxuXHJcbiAgQGlmICghYXR0YWNobWVudHM/Lmxlbmd0aCAmJiAhaXNSZWFkT25seSkge1xyXG4gICAgPHNlY3Rpb25cclxuICAgICAgW25nQ2xhc3NdPVwiaW5zaWRlVGFibGUgPyAnZmlsZS11cGxvYWRlci10YWJsZScgOiAnZmlsZS11cGxvYWRlcidcIlxyXG4gICAgICBjbGFzcz1cIm1iLTJcIlxyXG4gICAgICBbY2xhc3MuaW5zaWRlVGFibGVTdHlsZV09XCJpbnNpZGVUYWJsZVwiXHJcbiAgICAgIChjbGljayk9XCJhZGRBdHRhY2htZW50KClcIj5cclxuICAgICAgPGRpdlxyXG4gICAgICAgIFtuZ0NsYXNzXT1cImluc2lkZVRhYmxlID8gJ2ZpbGUtdXBsb2FkZXItdGFibGUtZGV2JyA6ICcnXCJcclxuICAgICAgICBjbGFzcz1cImZpbGUtdXBsb2FkZXItaW5wdXRcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvbiBtYi0xXCI+XHJcbiAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cImluc2lkZVRhYmxlID8gJ2ZpbGUtdXBsb2FkZXItdGFibGUtc3ZnJyA6ICcnXCJcclxuICAgICAgICAgICAgd2lkdGg9XCI0MVwiXHJcbiAgICAgICAgICAgIGhlaWdodD1cIjM4XCJcclxuICAgICAgICAgICAgdmlld0JveD1cIjAgMCA0MSAzOFwiXHJcbiAgICAgICAgICAgIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgIGQ9XCJNMCAyMi4xOTQ3VjIwLjY3MzZDMC4wOTcxMzAzIDIwLjEwMTkgMC4wNzAwOTQgMTkuNTE0MSAwLjI3NjM3MSAxOC45NTMzQzEuMjgzNzIgMTYuMjA4NiAzLjIxMjMxIDE0LjUwMjMgNi4wNDIxIDEzLjgwOTRDNi43MDQ5OSAxMy42NDcyIDYuNjg0OTcgMTMuNjYzMiA2LjY5ODk5IDEyLjk4NDNDNi43MzIwMyAxMS4zMzIxIDYuOTk4MzkgOS43MTk5MiA3LjYyNDIzIDguMTc5ODZDOC44NjI4OSA1LjEzNjc4IDEwLjk0NjcgMi44Mzk2OSAxMy44ODE2IDEuMzkxNzVDMTcuMTY4IC0wLjIzMDQyNCAyMC41OTU2IC0wLjQ1MDcxOSAyNC4wNTUzIDAuODE1OThDMjcuNDkyOSAyLjA3NDY3IDI5Ljk2MjIgNC40MTU4MSAzMS40ODAyIDcuNzQ4MjhDMzEuNzc4NiA4LjQwMzE2IDMyLjAyNyA5LjA4MzA3IDMyLjE3MTIgOS43OTIwMkMzMi4yNDAyIDEwLjEzMTUgMzIuNDAzNSAxMC4yNTY2IDMyLjc1MjkgMTAuMzEwN0MzNi43MDEyIDEwLjkxNjUgMzkuMzM1OCAxMy4xMjU1IDQwLjY5NDYgMTYuODczNUM0MC45MDY5IDE3LjQ2MDMgNDAuOTE5OSAxOC4wNzMxIDQwLjk1OTkgMTguNjgyOUM0MC45NjQ5IDE4Ljc2MDEgNDAuOTM4OSAxOC44NDQyIDQxIDE4LjkxMTNWMjAuNTEyNEM0MC45MTA5IDIwLjk5NSA0MC45NjkgMjEuNDkzNyA0MC44NjA4IDIxLjk3MzRDNDAuNTI0NCAyMy40NjE0IDM5Ljg0NTQgMjQuNzgyMSAzOC44NTAxIDI1LjkyOTdDMzcuNDUyMiAyNy41NDE4IDM1LjcwNTkgMjguNTg4MiAzMy42MTYxIDI5LjA1MTlDMzIuNzkxIDI5LjIzNTEgMzEuOTQ5OSAyOS4yNTIxIDMxLjExMTcgMjkuMjkyMkMzMC42NTcxIDI5LjMxNDIgMzAuNTg0IDI5LjE5MyAzMC41OTIgMjguNzQ4NEMzMC42NDUxIDI1Ljg0NDYgMjkuODAyIDIzLjI1NzEgMjcuODYyNCAyMS4wNTkxQzI1Ljk5NzkgMTguOTQ2MyAyMy42NTk3IDE3LjcxNjcgMjAuODY3IDE3LjQwMTJDMTguODU1MyAxNy4xNzM5IDE2LjkwNTcgMTcuNDU5MyAxNS4wNjEyIDE4LjMzOTVDMTEuODMxOSAxOS44ODE2IDkuODE0MTYgMjIuNDA2OSA4Ljk2MTAyIDI1Ljg2OTZDOC43NDI3MyAyNi43NTM4IDguNjgyNjUgMjcuNjU4IDguNzA1NjggMjguNTcwMkM4LjcyMTcgMjkuMjExMSA4LjYwMjU0IDI5LjMxMjIgNy45NTk2OCAyOS4yOTcyQzUuOTUwOTggMjkuMjUxMSA0LjEwNTUxIDI4LjcyMzQgMi41ODE0NiAyNy4zNTk2QzEuMDc2NDQgMjYuMDE2OCAwLjA2ODA5MTMgMjQuMzk5NiAwLjA0MDA1MzcgMjIuMzAyOEMwLjA0MDA1MzcgMjIuMjYwNyAwLjAyNTAzMzYgMjIuMjI1NyAwIDIyLjE5MzdWMjIuMTk0N1pcIlxyXG4gICAgICAgICAgICAgIGZpbGw9XCIjREVFMEUyXCIvPlxyXG4gICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgIGQ9XCJNMjkuMDMwMyAyOC4yNjMyQzI5LjA2MDQgMzMuNDAzMSAyNC44NjU3IDM3LjYxODcgMTkuNjgzOCAzNy42NTQ4QzE0LjUxNjkgMzcuNjkwOCAxMC4yODUyIDMzLjQ5NTIgMTAuMjUyMSAyOC4zMDQyQzEwLjIyMDEgMjMuMTQwMyAxNC40Mjk3IDE4LjkxMjYgMTkuNjIyNyAxOC44OTQ2QzI0LjgwMzcgMTguODc2NiAyOC45OTkzIDIzLjA1NDIgMjkuMDMwMyAyOC4yNjMyWlwiXHJcbiAgICAgICAgICAgICAgZmlsbD1cIiM4RTlBQTBcIi8+XHJcbiAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgZD1cIk0yMC41NTczIDI1LjI2NDRDMjAuNDYyMiAyNS40NDc3IDIwLjUwMTIgMjUuNTkzOSAyMC41MDEyIDI1LjczNEMyMC40OTgyIDI4LjIxNTQgMjAuNTAwMiAzMC42OTU3IDIwLjQ5ODIgMzMuMTc3QzIwLjQ5ODIgMzMuODA5OSAyMC4yMzM5IDM0LjE3MDQgMTkuNzQ2MiAzNC4yMjM0QzE5LjI2NDUgMzQuMjc2NSAxOC44OCAzMy45ODMxIDE4LjgxNjkgMzMuNTAyNUMxOC43OTU5IDMzLjM0NDMgMTguNzk2OSAzMy4xODMgMTguNzk2OSAzMy4wMjM4QzE4Ljc5NTkgMzAuNTgyNiAxOC43OTY5IDI4LjE0MjMgMTguNzk2OSAyNS43MDFDMTguNzk2OSAyNS41NzI4IDE4Ljc5NjkgMjUuNDQ0NyAxOC43OTY5IDI1LjIwMDNDMTguMTk3MSAyNS44MDMxIDE3LjY3NzQgMjYuMzI4OCAxNy4xNTI3IDI2Ljg1MDVDMTcuMDExNSAyNi45OTA3IDE2Ljg2ODMgMjcuMTM0OSAxNi43MDYxIDI3LjI0NzFDMTYuMzU2NiAyNy40ODY0IDE1LjkzNDEgMjcuNDQxMyAxNS42NDU3IDI3LjE1NEMxNS4zNjQzIDI2Ljg3NDYgMTUuMzIwMyAyNi40NDIgMTUuNTQ4NiAyNi4wOTI1QzE1LjYyMDcgMjUuOTgyNCAxNS43MTI4IDI1Ljg4MzIgMTUuODA2OSAyNS43ODkxQzE2Ljg2MTMgMjQuNzMwNyAxNy45MTY3IDIzLjY3MzMgMTguOTczMiAyMi42MTc5QzE5LjQwMTcgMjIuMTg5MyAxOS44Nzg0IDIyLjE3NjMgMjAuMzAzOSAyMi41OTg4QzIxLjM5MTQgMjMuNjgwMyAyMi40NzM5IDI0Ljc2NjcgMjMuNTUzMyAyNS44NTcyQzIzLjk4MDkgMjYuMjg5OCAyNC4wMTI5IDI2LjgwNjUgMjMuNjUzNCAyNy4xNjdDMjMuMjk5IDI3LjUyMTQgMjIuNzc1MyAyNy40ODQ0IDIyLjM0MzcgMjcuMDU2OEMyMS43NDk5IDI2LjQ3IDIxLjE2NjEgMjUuODczMiAyMC41NjAzIDI1LjI2NDRIMjAuNTU3M1pcIlxyXG4gICAgICAgICAgICAgIGZpbGw9XCIjRjlGOUY5XCIvPlxyXG4gICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImYtMTQgZmMtYmxhY2sgZnctbm9ybWFsXCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImZjLWNvcmFsIGZ3LW1lZGl1bVwiPnt7ICdicm93c2UnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmcy0xMCBmYy1kYXJrLWdyYXlcIj5cclxuICAgICAgICAgIHt7ICdhZGRNdWx0aUF0dGFjaG1lbnRzJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvc2VjdGlvbj5cclxuICB9XHJcblxyXG4gIEBpZiAoYXR0YWNobWVudHM/Lmxlbmd0aCkge1xyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cInRhYmxlLXJlc3BvbnNpdmUgZnVsbFwiXHJcbiAgICAgIGNka0Ryb3BMaXN0XHJcbiAgICAgIFtjZGtEcm9wTGlzdERhdGFdPVwiYXR0YWNobWVudHNcIlxyXG4gICAgICAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3AoJGV2ZW50KVwiXHJcbiAgICA+XHJcbiAgICAgIDx0YWJsZSBtYXQtdGFibGUgW2RhdGFTb3VyY2VdPVwiZGF0YVNvdXJjZVwiPlxyXG5cclxuICAgICAgICA8IS0tIGluZGV4IENvbHVtbiAtLT5cclxuICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImluZGV4XCI+XHJcbiAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPlxyXG4gICAgICAgICAgICA8ZHMtYnV0dG9uXHJcbiAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwiJ2Rvd25sb2FkQWxsJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgc3F1YXJlIGljb24gc2l6ZT1cInNtYWxsXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwiZG93bmxvYWRBbGxBdHRhY2htZW50cygkZXZlbnQpXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImljb24tYnRuLXNoYWRvd1wiPlxyXG4gICAgICAgICAgICAgIEBpZiAobG9hZGluZykge1xyXG4gICAgICAgICAgICAgICAgPGRzLWljb24gY2xhc3M9XCJzZmkgc2ZpLXNwaW5uZXIgZC1pbmxpbmUtYmxvY2sgc3BpbiBmYy1jb3JhbCBmcy0zMC1pbXBcIj48L2RzLWljb24+XHJcbiAgICAgICAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgICAgICAgICA8ZHMtaWNvblxyXG4gICAgICAgICAgICAgICAgICBpY29uPVwiZG93bmxvYWRcIlxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImZzLTIwIGZzLW1kLTE3IGZjLXB1cnBsZVwiPjwvZHMtaWNvbj5cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIDwvZHMtYnV0dG9uPlxyXG4gICAgICAgICAgPC90aD5cclxuICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50OyBsZXQgaSA9IGluZGV4XCI+e3sgaSArIDEgKyBwYWdlU2l6ZSAqIChwYWdlTnVtYmVyKSB9fTwvdGQ+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDwhLS0gTmFtZSBDb2x1bW4gLS0+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJmaWxlXCI+XHJcbiAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPnt7ICdGaWxlTmFtZScgfCB0cmFuc2xhdGUgfX08L3RoPlxyXG4gICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj5cclxuICAgICAgICAgICAgPGFwcC1maWxlLXVwbG9hZGVyXHJcbiAgICAgICAgICAgICAgW2FsbG93ZWRFeHRlbnNpb25zXT1cImFsbG93ZWRFeHRlbnNpb25zXCJcclxuICAgICAgICAgICAgICBbZGlzcGxheWVkRmlsZXNdPVwiW2VsZW1lbnRdXCJcclxuICAgICAgICAgICAgICBuYW1lPVwiYXR0YWNobWVudFwiXHJcbiAgICAgICAgICAgICAgW3Nob3dBY3Rpb25zXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgIFtpc1JlYWRPbmx5XT1cInRydWVcIlxyXG4gICAgICAgICAgICAgIFttdWx0aXBsZV09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgIDwvYXBwLWZpbGUtdXBsb2FkZXI+XHJcbiAgICAgICAgICA8L3RkPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8IS0tIERlc2NyaXB0aW9uIENvbHVtbiAtLT5cclxuICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImRlc2NyaXB0aW9uXCI+XHJcbiAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPnt7ICdGaWxlRGVzY3JpcHRpb24nIHwgdHJhbnNsYXRlIH19PC90aD5cclxuICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+XHJcbiAgICAgICAgICAgIDxhXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmdy1tZWRpdW0gZmMtYmxhY2sgdW5kZXJsaW5lIGN1cnNvci1wb2ludGVyIGZzLTEyXCJcclxuICAgICAgICAgICAgICBbaGlkZGVuXT1cIiFlbGVtZW50Py5bJ2ZpbGVEZXNjcmlwdGlvbiddXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyBmaWxlRGVzY3JpcHRpb25BbmNob3IucG9wb3Zlci5vcGVuKClcIlxyXG4gICAgICAgICAgICAgIFtzYXRQb3BvdmVyQW5jaG9yXT1cImZpbGVEZXNjcmlwdGlvblBvcG92ZXJcIlxyXG4gICAgICAgICAgICAgICNmaWxlRGVzY3JpcHRpb25BbmNob3I9XCJzYXRQb3BvdmVyQW5jaG9yXCJcclxuICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09XCJlbGVtZW50Py5bJ2ZpbGVEZXNjcmlwdGlvbiddXCI+XHJcbiAgICAgICAgICAgICAge3sgZWxlbWVudD8uWydmaWxlRGVzY3JpcHRpb24nXT8ubGVuZ3RoID4gMTAgPyAoZWxlbWVudD8uWydmaWxlRGVzY3JpcHRpb24nXSB8IHNsaWNlIDogMCA6IDEwKSArICcuLi4uJyA6IGVsZW1lbnQ/LlsnZmlsZURlc2NyaXB0aW9uJ10gfX1cclxuICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICA8c2F0LXBvcG92ZXJcclxuICAgICAgICAgICAgICAjZmlsZURlc2NyaXB0aW9uUG9wb3ZlclxyXG4gICAgICAgICAgICAgIFthbmNob3JdPVwiZmlsZURlc2NyaXB0aW9uQW5jaG9yXCJcclxuICAgICAgICAgICAgICBbaGFzQmFja2Ryb3BdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgW3Jlc3RvcmVGb2N1c109XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgdmVydGljYWxBbGlnbj1cImJlbG93XCJcclxuICAgICAgICAgICAgICBob3Jpem9udGFsQWxpZ249XCJjZW50ZXJcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGVmYXVsdC1wb3BvdmVyIHAtMyBmcy0xNCB0ZXh0LWJyZWFrIHZpZXctbm90ZS1wb3BvdmVyXCI+XHJcbiAgICAgICAgICAgICAgICA8YmRpIGNsYXNzPVwiZmMtYmxhY2tcIj57eyBlbGVtZW50Py5bJ2ZpbGVEZXNjcmlwdGlvbiddIH19PC9iZGk+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvc2F0LXBvcG92ZXI+XHJcbiAgICAgICAgICA8L3RkPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8IS0tIENvbW1lbnQgQ29sdW1uIC0tPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiY29tbWVudFwiPlxyXG4gICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj57eyAnY29tbWVudCcgfCB0cmFuc2xhdGUgfX08L3RoPlxyXG4gICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj5cclxuICAgICAgICAgICAgPGFcclxuICAgICAgICAgICAgICBjbGFzcz1cImZ3LW1lZGl1bSBmYy1ibGFjayB1bmRlcmxpbmUgY3Vyc29yLXBvaW50ZXIgZnMtMTJcIlxyXG4gICAgICAgICAgICAgIFtoaWRkZW5dPVwiIWVsZW1lbnQ/LlsnYXR0YWNobWVudGNvbW1lbnQnXVwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgY29tbWVudHNBbmNob3IucG9wb3Zlci5vcGVuKClcIlxyXG4gICAgICAgICAgICAgIFtzYXRQb3BvdmVyQW5jaG9yXT1cImNvbW1lbnRzUG9wb3ZlclwiXHJcbiAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwiZWxlbWVudD8uWydhdHRhY2htZW50Y29tbWVudCddXCJcclxuICAgICAgICAgICAgICAjY29tbWVudHNBbmNob3I9XCJzYXRQb3BvdmVyQW5jaG9yXCI+XHJcbiAgICAgICAgICAgICAge3sgZWxlbWVudD8uWydhdHRhY2htZW50Y29tbWVudCddPy5sZW5ndGggPiAxMCA/IChlbGVtZW50Py5bJ2F0dGFjaG1lbnRjb21tZW50J10gfCBzbGljZSA6IDAgOiAxMCkgKyAnLi4uLicgOiBlbGVtZW50Py5bJ2F0dGFjaG1lbnRjb21tZW50J10gfX1cclxuICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICA8c2F0LXBvcG92ZXJcclxuICAgICAgICAgICAgICAjY29tbWVudHNQb3BvdmVyXHJcbiAgICAgICAgICAgICAgW2FuY2hvcl09XCJjb21tZW50c0FuY2hvclwiXHJcbiAgICAgICAgICAgICAgW2hhc0JhY2tkcm9wXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgIFtyZXN0b3JlRm9jdXNdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgIHZlcnRpY2FsQWxpZ249XCJiZWxvd1wiXHJcbiAgICAgICAgICAgICAgaG9yaXpvbnRhbEFsaWduPVwiY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRlZmF1bHQtcG9wb3ZlciBwLTMgZnMtMTQgdGV4dC1icmVhayB2aWV3LW5vdGUtcG9wb3ZlclwiPlxyXG4gICAgICAgICAgICAgICAgPGJkaSBjbGFzcz1cImZjLWJsYWNrXCI+e3sgZWxlbWVudD8uWydhdHRhY2htZW50Y29tbWVudCddIH19PC9iZGk+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvc2F0LXBvcG92ZXI+XHJcbiAgICAgICAgICA8L3RkPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImFjdGlvbnNcIj5cclxuICAgICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+PC90aD5cclxuICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50OyBsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgIEBpZiAoIWlzUmVhZE9ubHkpIHtcclxuICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGdhcC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkcy1idXR0b25cclxuICAgICAgICAgICAgICAgICAgICBzcXVhcmVcclxuICAgICAgICAgICAgICAgICAgICBpY29uXHJcbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZGVsZXRlQXR0YWNobWVudHMoaSwgZWxlbWVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbi1idG4tc2hhZG93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRzLWljb24gaWNvbj1cInRyYXNoXCIgY2xhc3M9XCJmcy0yMCBmcy1tZC0xNyBmYy1jb3JhbFwiPjwvZHMtaWNvbj5cclxuICAgICAgICAgICAgICAgICAgPC9kcy1idXR0b24+XHJcblxyXG4gICAgICAgICAgICAgICAgICA8ZHMtYnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgc3F1YXJlXHJcbiAgICAgICAgICAgICAgICAgICAgaWNvblxyXG4gICAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImVkaXRSb3coZWxlbWVudCwgaSlcIlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbi1idG4tc2hhZG93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRzLWljb24gaWNvbj1cInBlblwiIGNsYXNzPVwiZnMtMjAgZnMtbWQtMTcgZmMtcHVycGxlXCI+PC9kcy1pY29uPlxyXG4gICAgICAgICAgICAgICAgICA8L2RzLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDx0ciBtYXQtaGVhZGVyLXJvdyAqbWF0SGVhZGVyUm93RGVmPVwiZGlzcGxheWVkQ29sdW1uc1wiPjwvdHI+XHJcbiAgICAgICAgPHRyIG1hdC1yb3cgKm1hdFJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IGRpc3BsYXllZENvbHVtbnM7XCI+PC90cj5cclxuICAgICAgPC90YWJsZT5cclxuXHJcbiAgICAgIDxtYXQtcGFnaW5hdG9yXHJcbiAgICAgICAgI3BhZ2luYXRvclxyXG4gICAgICAgIFtwYWdlU2l6ZU9wdGlvbnNdPVwiWzVdXCJcclxuICAgICAgICAocGFnZSk9XCJvblBhZ2luYXRlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgIFtsZW5ndGhdPVwiYXR0YWNobWVudHMubGVuZ3RoXCJcclxuICAgICAgICBbcGFnZVNpemVdPVwicGFnZVNpemVcIlxyXG4gICAgICAgIHNob3dGaXJzdExhc3RCdXR0b25zPjwvbWF0LXBhZ2luYXRvcj5cclxuICAgIDwvZGl2PlxyXG4gIH1cclxuXHJcbiAgQGlmICghaXNSZWFkT25seSAmJiBhdHRhY2htZW50cz8ubGVuZ3RoICYmIGF0dGFjaG1lbnRzPy5sZW5ndGggPCBhdHRhY2htZW50c01heCkge1xyXG4gICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyIGZ1bGwgbXQtM1wiPlxyXG4gICAgICA8ZHMtYnV0dG9uXHJcbiAgICAgICAgc2hhcGU9XCJ7eyBhdHRhY2htZW50cz8ubGVuZ3RoID8gJ291dGxpbmUnIDogJycgfX1cIlxyXG4gICAgICAgIFtuZ0NsYXNzXT1cInsgJ2Z1bGwtYWRkLWJ0biB3LTEwMCBwdC0xJzogYXR0YWNobWVudHM/Lmxlbmd0aCB9XCJcclxuICAgICAgICAoY2xpY2spPVwiYWRkQXR0YWNobWVudCgpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cclxuICAgICAgICA8ZHMtaWNvbiBzbG90PVwicHJlZml4XCIgaWNvbj1cInBsdXNcIiBjbGFzcz1cImZzLTIyIHBiLTFcIj48L2RzLWljb24+XHJcbiAgICAgICAge3sgJ2FkZEF0dGFjaG1lbnRzJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICA8L2RzLWJ1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIH1cclxuPC9kaXY+XHJcbiJdfQ==