@sumaris-net/ngx-components 2.7.0-rc6 → 2.7.0-rc8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/src/app/core/table/testing/table.testing.mjs +1 -1
- package/esm2022/src/app/core/table/testing/table2.testing.mjs +1 -1
- package/esm2022/src/app/shared/form/field.component.mjs +1 -1
- package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.mjs +10 -4
- package/esm2022/src/app/shared/material/autocomplete/testing/autocomplete.test.mjs +1 -1
- package/esm2022/src/app/shared/material/datetime/material.date.mjs +36 -30
- package/esm2022/src/app/shared/material/datetime/material.dateshort.mjs +35 -29
- package/esm2022/src/app/shared/material/datetime/material.datetime.mjs +65 -55
- package/esm2022/src/app/shared/named-filter/named-filter-selector.component.mjs +9 -3
- package/esm2022/src/app/shared/pipes/maskito.pipe.mjs +1 -1
- package/fesm2022/sumaris-net.ngx-components.mjs +151 -117
- package/fesm2022/sumaris-net.ngx-components.mjs.map +1 -1
- package/package.json +1 -1
- package/src/app/shared/material/autocomplete/material.autocomplete.d.ts +3 -1
- package/src/app/shared/material/datetime/material.date.d.ts +1 -1
- package/src/app/shared/material/datetime/material.dateshort.d.ts +1 -1
- package/src/app/shared/material/datetime/material.datetime.d.ts +2 -2
- package/src/app/shared/named-filter/named-filter-selector.component.d.ts +3 -1
|
@@ -44,6 +44,8 @@ export class NamedFilterSelector extends AppForm {
|
|
|
44
44
|
showButtons = true;
|
|
45
45
|
exportFileNamePrefix = 'filter';
|
|
46
46
|
autocompleteConfig;
|
|
47
|
+
dropButtonTitle;
|
|
48
|
+
clearButtonTitle;
|
|
47
49
|
filterSelected = new EventEmitter();
|
|
48
50
|
filterDeleted = new EventEmitter();
|
|
49
51
|
autocompleteField;
|
|
@@ -203,11 +205,11 @@ export class NamedFilterSelector extends AppForm {
|
|
|
203
205
|
this.autocompleteField.blurred.emit();
|
|
204
206
|
}
|
|
205
207
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: NamedFilterSelector, deps: [{ token: i0.Injector }, { token: i1.UntypedFormBuilder }, { token: i0.ChangeDetectorRef }, { token: i2.ToastController }, { token: i2.PopoverController }, { token: APP_NAMED_FILTER_SERVICE }], target: i0.ɵɵFactoryTarget.Component });
|
|
206
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.1", type: NamedFilterSelector, selector: "app-named-filter-selector", inputs: { entityName: "entityName", filterContentProvider: "filterContentProvider", filterImportCallback: "filterImportCallback", filterFormDirty: "filterFormDirty", showButtons: "showButtons", exportFileNamePrefix: "exportFileNamePrefix", autocompleteConfig: "autocompleteConfig" }, outputs: { filterSelected: "filterSelected", filterDeleted: "filterDeleted" }, viewQueries: [{ propertyName: "autocompleteField", first: true, predicate: MatAutocompleteField, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<form class=\"form-container\" [formGroup]=\"form\">\n <mat-autocomplete-field\n formControlName=\"namedFilter\"\n [config]=\"autocompleteFields.namedFilter\"\n [placeholder]=\"'COMMON.NAMED_FILTER.TITLE' | translate\"\n [clearable]=\"true\"\n >\n <ng-container matSuffix *ngIf=\"showButtons\">\n <button\n mat-icon-button\n [color]=\"'primary'\"\n [disabled]=\"saveDisabled\"\n [title]=\"'COMMON.NAMED_FILTER.SAVE' | translate\"\n (click)=\"save()\"\n >\n <mat-icon>save</mat-icon>\n <mat-icon *ngIf=\"isNew\" class=\"icon-secondary\" style=\"left: 12px; top: 0px\">add</mat-icon>\n </button>\n <button\n mat-icon-button\n [disabled]=\"deleteDisabled\"\n [title]=\"'COMMON.NAMED_FILTER.DELETE' | translate\"\n (click)=\"delete()\"\n >\n <mat-icon>delete</mat-icon>\n </button>\n <button mat-icon-button [matMenuTriggerFor]=\"moreMenu\">\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #moreMenu=\"matMenu\">\n <button mat-menu-item (click)=\"export()\" [disabled]=\"isNew\">\n <ion-label>\n <mat-icon>file_download</mat-icon>\n <span>{{ 'COMMON.NAMED_FILTER.EXPORT' | translate }}</span>\n </ion-label>\n </button>\n <button mat-menu-item (click)=\"import($event)\">\n <ion-label>\n <mat-icon>file_upload</mat-icon>\n <span>{{ 'COMMON.NAMED_FILTER.IMPORT' | translate }}</span>\n </ion-label>\n </button>\n </mat-menu>\n </ng-container>\n </mat-autocomplete-field>\n</form>\n", styles: [".filter-name-container{background:transparent!important;overflow:hidden}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i4.MatAutocompleteField, selector: "mat-autocomplete-field", inputs: ["equals", "logPrefix", "formControl", "formControlName", "floatLabel", "appearance", "placeholder", "suggestFn", "required", "mobile", "clearable", "debounceTime", "displayWith", "displayAttributes", "displayColumnSizes", "displayColumnNames", "highlightAccent", "showAllOnFocus", "showPanelOnFocus", "autofocus", "config", "i18nPrefix", "noResultMessage", "class", "panelWidth", "matAutocompletePosition", "multiple", "fetchMoreThreshold", "suggestLengthThreshold", "showLoadingSpinner", "debug", "showSearchBar", "stickySearchBar", "applyImplicitValue", "filter", "readonly", "tabindex", "items"], outputs: ["click", "blur", "focus", "dropButtonClick", "keydown.escape", "keyup.enter"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i5.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i7.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i8.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i8.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i8.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "pipe", type: i9.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
208
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.1", type: NamedFilterSelector, selector: "app-named-filter-selector", inputs: { entityName: "entityName", filterContentProvider: "filterContentProvider", filterImportCallback: "filterImportCallback", filterFormDirty: "filterFormDirty", showButtons: "showButtons", exportFileNamePrefix: "exportFileNamePrefix", autocompleteConfig: "autocompleteConfig", dropButtonTitle: "dropButtonTitle", clearButtonTitle: "clearButtonTitle" }, outputs: { filterSelected: "filterSelected", filterDeleted: "filterDeleted" }, viewQueries: [{ propertyName: "autocompleteField", first: true, predicate: MatAutocompleteField, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<form class=\"form-container\" [formGroup]=\"form\">\n <mat-autocomplete-field\n formControlName=\"namedFilter\"\n [config]=\"autocompleteFields.namedFilter\"\n [placeholder]=\"'COMMON.NAMED_FILTER.TITLE' | translate\"\n [clearable]=\"true\"\n [dropButtonTitle]=\"dropButtonTitle\"\n [clearButtonTitle]=\"clearButtonTitle\"\n >\n <ng-container matSuffix *ngIf=\"showButtons\">\n <button\n mat-icon-button\n [color]=\"'primary'\"\n [disabled]=\"saveDisabled\"\n [title]=\"'COMMON.NAMED_FILTER.SAVE' | translate\"\n (click)=\"save()\"\n >\n <mat-icon>save</mat-icon>\n <mat-icon *ngIf=\"isNew\" class=\"icon-secondary\" style=\"left: 12px; top: 0px\">add</mat-icon>\n </button>\n <button\n mat-icon-button\n [disabled]=\"deleteDisabled\"\n [title]=\"'COMMON.NAMED_FILTER.DELETE' | translate\"\n (click)=\"delete()\"\n >\n <mat-icon>delete</mat-icon>\n </button>\n <button mat-icon-button [matMenuTriggerFor]=\"moreMenu\">\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #moreMenu=\"matMenu\">\n <button mat-menu-item (click)=\"export()\" [disabled]=\"isNew\">\n <ion-label>\n <mat-icon>file_download</mat-icon>\n <span>{{ 'COMMON.NAMED_FILTER.EXPORT' | translate }}</span>\n </ion-label>\n </button>\n <button mat-menu-item (click)=\"import($event)\">\n <ion-label>\n <mat-icon>file_upload</mat-icon>\n <span>{{ 'COMMON.NAMED_FILTER.IMPORT' | translate }}</span>\n </ion-label>\n </button>\n </mat-menu>\n </ng-container>\n </mat-autocomplete-field>\n</form>\n", styles: [".filter-name-container{background:transparent!important;overflow:hidden}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i4.MatAutocompleteField, selector: "mat-autocomplete-field", inputs: ["equals", "logPrefix", "formControl", "formControlName", "floatLabel", "appearance", "placeholder", "suggestFn", "required", "mobile", "clearable", "debounceTime", "displayWith", "displayAttributes", "displayColumnSizes", "displayColumnNames", "highlightAccent", "showAllOnFocus", "showPanelOnFocus", "autofocus", "config", "i18nPrefix", "noResultMessage", "class", "panelWidth", "matAutocompletePosition", "multiple", "fetchMoreThreshold", "suggestLengthThreshold", "showLoadingSpinner", "debug", "showSearchBar", "stickySearchBar", "applyImplicitValue", "dropButtonTitle", "clearButtonTitle", "filter", "readonly", "tabindex", "items"], outputs: ["click", "blur", "focus", "dropButtonClick", "keydown.escape", "keyup.enter"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i5.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i7.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i8.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i8.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i8.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "pipe", type: i9.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
207
209
|
}
|
|
208
210
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: NamedFilterSelector, decorators: [{
|
|
209
211
|
type: Component,
|
|
210
|
-
args: [{ selector: 'app-named-filter-selector', changeDetection: ChangeDetectionStrategy.OnPush, template: "<form class=\"form-container\" [formGroup]=\"form\">\n <mat-autocomplete-field\n formControlName=\"namedFilter\"\n [config]=\"autocompleteFields.namedFilter\"\n [placeholder]=\"'COMMON.NAMED_FILTER.TITLE' | translate\"\n [clearable]=\"true\"\n >\n <ng-container matSuffix *ngIf=\"showButtons\">\n <button\n mat-icon-button\n [color]=\"'primary'\"\n [disabled]=\"saveDisabled\"\n [title]=\"'COMMON.NAMED_FILTER.SAVE' | translate\"\n (click)=\"save()\"\n >\n <mat-icon>save</mat-icon>\n <mat-icon *ngIf=\"isNew\" class=\"icon-secondary\" style=\"left: 12px; top: 0px\">add</mat-icon>\n </button>\n <button\n mat-icon-button\n [disabled]=\"deleteDisabled\"\n [title]=\"'COMMON.NAMED_FILTER.DELETE' | translate\"\n (click)=\"delete()\"\n >\n <mat-icon>delete</mat-icon>\n </button>\n <button mat-icon-button [matMenuTriggerFor]=\"moreMenu\">\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #moreMenu=\"matMenu\">\n <button mat-menu-item (click)=\"export()\" [disabled]=\"isNew\">\n <ion-label>\n <mat-icon>file_download</mat-icon>\n <span>{{ 'COMMON.NAMED_FILTER.EXPORT' | translate }}</span>\n </ion-label>\n </button>\n <button mat-menu-item (click)=\"import($event)\">\n <ion-label>\n <mat-icon>file_upload</mat-icon>\n <span>{{ 'COMMON.NAMED_FILTER.IMPORT' | translate }}</span>\n </ion-label>\n </button>\n </mat-menu>\n </ng-container>\n </mat-autocomplete-field>\n</form>\n", styles: [".filter-name-container{background:transparent!important;overflow:hidden}\n"] }]
|
|
212
|
+
args: [{ selector: 'app-named-filter-selector', changeDetection: ChangeDetectionStrategy.OnPush, template: "<form class=\"form-container\" [formGroup]=\"form\">\n <mat-autocomplete-field\n formControlName=\"namedFilter\"\n [config]=\"autocompleteFields.namedFilter\"\n [placeholder]=\"'COMMON.NAMED_FILTER.TITLE' | translate\"\n [clearable]=\"true\"\n [dropButtonTitle]=\"dropButtonTitle\"\n [clearButtonTitle]=\"clearButtonTitle\"\n >\n <ng-container matSuffix *ngIf=\"showButtons\">\n <button\n mat-icon-button\n [color]=\"'primary'\"\n [disabled]=\"saveDisabled\"\n [title]=\"'COMMON.NAMED_FILTER.SAVE' | translate\"\n (click)=\"save()\"\n >\n <mat-icon>save</mat-icon>\n <mat-icon *ngIf=\"isNew\" class=\"icon-secondary\" style=\"left: 12px; top: 0px\">add</mat-icon>\n </button>\n <button\n mat-icon-button\n [disabled]=\"deleteDisabled\"\n [title]=\"'COMMON.NAMED_FILTER.DELETE' | translate\"\n (click)=\"delete()\"\n >\n <mat-icon>delete</mat-icon>\n </button>\n <button mat-icon-button [matMenuTriggerFor]=\"moreMenu\">\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #moreMenu=\"matMenu\">\n <button mat-menu-item (click)=\"export()\" [disabled]=\"isNew\">\n <ion-label>\n <mat-icon>file_download</mat-icon>\n <span>{{ 'COMMON.NAMED_FILTER.EXPORT' | translate }}</span>\n </ion-label>\n </button>\n <button mat-menu-item (click)=\"import($event)\">\n <ion-label>\n <mat-icon>file_upload</mat-icon>\n <span>{{ 'COMMON.NAMED_FILTER.IMPORT' | translate }}</span>\n </ion-label>\n </button>\n </mat-menu>\n </ng-container>\n </mat-autocomplete-field>\n</form>\n", styles: [".filter-name-container{background:transparent!important;overflow:hidden}\n"] }]
|
|
211
213
|
}], ctorParameters: () => [{ type: i0.Injector }, { type: i1.UntypedFormBuilder }, { type: i0.ChangeDetectorRef }, { type: i2.ToastController }, { type: i2.PopoverController }, { type: undefined, decorators: [{
|
|
212
214
|
type: Inject,
|
|
213
215
|
args: [APP_NAMED_FILTER_SERVICE]
|
|
@@ -225,6 +227,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImpor
|
|
|
225
227
|
type: Input
|
|
226
228
|
}], autocompleteConfig: [{
|
|
227
229
|
type: Input
|
|
230
|
+
}], dropButtonTitle: [{
|
|
231
|
+
type: Input
|
|
232
|
+
}], clearButtonTitle: [{
|
|
233
|
+
type: Input
|
|
228
234
|
}], filterSelected: [{
|
|
229
235
|
type: Output
|
|
230
236
|
}], filterDeleted: [{
|
|
@@ -233,4 +239,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImpor
|
|
|
233
239
|
type: ViewChild,
|
|
234
240
|
args: [MatAutocompleteField, { static: true }]
|
|
235
241
|
}] } });
|
|
236
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFtZWQtZmlsdGVyLXNlbGVjdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL25hbWVkLWZpbHRlci9uYW1lZC1maWx0ZXItc2VsZWN0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvbmFtZWQtZmlsdGVyL25hbWVkLWZpbHRlci1zZWxlY3Rvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osTUFBTSxFQUVOLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDbkQsT0FBTyxFQUFDLHdCQUF3QixFQUFzQixNQUFNLHdCQUF3QixDQUFDO0FBQ3JGLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLGdEQUFnRCxDQUFDO0FBQ3BGLE9BQU8sRUFBQyxZQUFZLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsZUFBZSxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQy9GLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN2QyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDOUMsT0FBTyxFQUFtQyxXQUFXLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7Ozs7QUFTbkYsTUFBTSxPQUFPLG1CQUFvQixTQUFRLE9BQVk7SUE4QnZDO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDa0M7SUFsQ3BDLFNBQVMsR0FBRyx5QkFBeUIsQ0FBQztJQUV4QyxXQUFXLENBQVM7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QkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBRUksY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUU0QyxpQkFBaUI7c0JBQW5FLFNBQVM7dUJBQUMsb0JBQW9CLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5qZWN0LFxuICBJbmplY3RvcixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVW50eXBlZEZvcm1CdWlsZGVyIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUG9wb3ZlckNvbnRyb2xsZXIsIFRvYXN0Q29udHJvbGxlciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0FwcEZvcm19IGZyb20gJy4uLy4uL2NvcmUvZm9ybS9mb3JtLmNsYXNzJztcbmltcG9ydCB7QVBQX05BTUVEX0ZJTFRFUl9TRVJWSUNFLCBJTmFtZWRGaWx0ZXJTZXJ2aWNlfSBmcm9tICcuL25hbWVkLWZpbHRlci5zZXJ2aWNlJztcbmltcG9ydCB7TWF0QXV0b2NvbXBsZXRlRmllbGR9IGZyb20gJy4uL21hdGVyaWFsL2F1dG9jb21wbGV0ZS9tYXRlcmlhbC5hdXRvY29tcGxldGUnO1xuaW1wb3J0IHtpc0VtcHR5QXJyYXksIGlzTmlsT3JCbGFuaywgaXNOaWxPck5hTiwgaXNOb3ROaWwsIGlzTm90TmlsT3JCbGFua30gZnJvbSAnLi4vZnVuY3Rpb25zJztcbmltcG9ydCB7VG9hc3RzfSBmcm9tICcuLi90b2FzdC90b2FzdHMnO1xuaW1wb3J0IHtGaWxlc1V0aWxzfSBmcm9tICcuLi9maWxlL2ZpbGUudXRpbHMnO1xuaW1wb3J0IHtJTmFtZWRGaWx0ZXIsIElOYW1lZEZpbHRlckZpbHRlciwgTmFtZWRGaWx0ZXJ9IGZyb20gJy4vbmFtZWQtZmlsdGVyLm1vZGVsJztcbmltcG9ydCB7TWF0QXV0b2NvbXBsZXRlRmllbGRDb25maWd9IGZyb20gJy4uL21hdGVyaWFsL2F1dG9jb21wbGV0ZS9tYXRlcmlhbC5hdXRvY29tcGxldGUuY29uZmlnJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLW5hbWVkLWZpbHRlci1zZWxlY3RvcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9uYW1lZC1maWx0ZXItc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9uYW1lZC1maWx0ZXItc2VsZWN0b3IuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE5hbWVkRmlsdGVyU2VsZWN0b3IgZXh0ZW5kcyBBcHBGb3JtPGFueT4gaW1wbGVtZW50cyBPbkluaXQge1xuICBwcm90ZWN0ZWQgbG9nUHJlZml4ID0gJ1tuYW1lZC1maWx0ZXItc2VsZWN0b3JdJztcblxuICBwcml2YXRlIF9lbnRpdHlOYW1lOiBzdHJpbmc7XG4gIHByaXZhdGUgX2RlbGV0ZURpc2FibGVkID0gZmFsc2U7XG5cbiAgQElucHV0KCkgc2V0IGVudGl0eU5hbWUoZW50aXR5TmFtZTogc3RyaW5nKSB7XG4gICAgaWYgKCFlbnRpdHlOYW1lIHx8IHRoaXMuX2VudGl0eU5hbWUgPT09IGVudGl0eU5hbWUpIHJldHVybjtcbiAgICB0aGlzLl9lbnRpdHlOYW1lID0gZW50aXR5TmFtZTtcbiAgICAvLyBVcGRhdGUgYXV0b2NvbXBsZXRlIGZpbHRlclxuICAgIHRoaXMuYXV0b2NvbXBsZXRlRmllbGQuZmlsdGVyID0geyAuLi50aGlzLmF1dG9jb21wbGV0ZUZpZWxkLmZpbHRlciwgLi4udGhpcy5nZXRGaWx0ZXIoKSB9O1xuICB9O1xuXG4gIGdldCBlbnRpdHlOYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2VudGl0eU5hbWU7XG4gIH1cblxuICBASW5wdXQoKSBmaWx0ZXJDb250ZW50UHJvdmlkZXI6ICgpID0+IGFueTtcbiAgQElucHV0KCkgZmlsdGVySW1wb3J0Q2FsbGJhY2s6IChuYW1lZEZpbHRlcjogTmFtZWRGaWx0ZXIpID0+IFByb21pc2U8TmFtZWRGaWx0ZXI+O1xuICBASW5wdXQoKSBmaWx0ZXJGb3JtRGlydHk6IGJvb2xlYW47XG4gIEBJbnB1dCgpIHNob3dCdXR0b25zID0gdHJ1ZTtcbiAgQElucHV0KCkgZXhwb3J0RmlsZU5hbWVQcmVmaXggPSAnZmlsdGVyJztcbiAgQElucHV0KCkgYXV0b2NvbXBsZXRlQ29uZmlnOiBNYXRBdXRvY29tcGxldGVGaWVsZENvbmZpZztcblxuICBAT3V0cHV0KCkgZmlsdGVyU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIGZpbHRlckRlbGV0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPE5hbWVkRmlsdGVyPigpO1xuXG4gIEBWaWV3Q2hpbGQoTWF0QXV0b2NvbXBsZXRlRmllbGQsIHsgc3RhdGljOiB0cnVlIH0pIGF1dG9jb21wbGV0ZUZpZWxkOiBNYXRBdXRvY29tcGxldGVGaWVsZDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIHByb3RlY3RlZCBmb3JtQnVpbGRlcjogVW50eXBlZEZvcm1CdWlsZGVyLFxuICAgIHByb3RlY3RlZCBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJvdGVjdGVkIHRvYXN0Q29udHJvbGxlcjogVG9hc3RDb250cm9sbGVyLFxuICAgIHByb3RlY3RlZCBwb3BvdmVyQ29udHJvbGxlcjogUG9wb3ZlckNvbnRyb2xsZXIsXG4gICAgQEluamVjdChBUFBfTkFNRURfRklMVEVSX1NFUlZJQ0UpIHByb3RlY3RlZCBkYXRhU2VydmljZTogSU5hbWVkRmlsdGVyU2VydmljZTxJTmFtZWRGaWx0ZXI8YW55PiwgSU5hbWVkRmlsdGVyRmlsdGVyPGFueSwgYW55Pj5cbiAgKSB7XG4gICAgc3VwZXIoaW5qZWN0b3IsIGZvcm1CdWlsZGVyLmdyb3VwKHsgbmFtZWRGaWx0ZXI6IFtudWxsXSB9KSk7XG4gIH1cblxuICBnZXQgaXNOZXcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzTmlsT3JOYU4odGhpcy52YWx1ZT8ubmFtZWRGaWx0ZXI/LmlkKTtcbiAgfVxuXG4gIGdldCBzYXZlRGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLmRpcnR5IHx8IGlzTmlsT3JCbGFuayh0aGlzLnZhbHVlLm5hbWVkRmlsdGVyKTtcbiAgfVxuXG4gIGdldCBkZWxldGVEaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZGVsZXRlRGlzYWJsZWQgfHwgdGhpcy5pc05ldztcbiAgfVxuXG4gIGdldCBkaXJ0eSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gc3VwZXIuZGlydHkgfHwgdGhpcy5maWx0ZXJGb3JtRGlydHk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnJlZ2lzdGVyQXV0b2NvbXBsZXRlRmllbGQoJ25hbWVkRmlsdGVyJywge1xuICAgICAgc3VnZ2VzdEZuOiAodmFsdWUsIGZpbHRlcikgPT4gdGhpcy5kYXRhU2VydmljZS5zdWdnZXN0KHZhbHVlLCBmaWx0ZXIpLFxuICAgICAgYXR0cmlidXRlczogWyduYW1lJ10sXG4gICAgICBmaWx0ZXI6IHRoaXMuZ2V0RmlsdGVyKCksXG4gICAgICAuLi50aGlzLmF1dG9jb21wbGV0ZUNvbmZpZ1xuICAgIH0pO1xuXG4gICAgdGhpcy5yZWdpc3RlclN1YnNjcmlwdGlvbihcbiAgICAgIHRoaXMuZm9ybS5jb250cm9scy5uYW1lZEZpbHRlci52YWx1ZUNoYW5nZXMucGlwZShkZWJvdW5jZVRpbWUoMTAwKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSkuc3Vic2NyaWJlKCh2YWx1ZSkgPT4gdGhpcy5vbkZpbHRlckNoYW5nZXModmFsdWUpKVxuICAgICk7XG4gIH1cblxuICBnZXRGaWx0ZXIoKTogYW55IHtcbiAgICByZXR1cm4ge1xuICAgICAgZW50aXR5TmFtZTogdGhpcy5lbnRpdHlOYW1lLFxuICAgIH07XG4gIH1cblxuICBtYXJrRm9yQ2hlY2soKSB7XG4gICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIGFzeW5jIHNhdmUoKSB7XG4gICAgY29uc3QgZmlsdGVyQ29udGVudCA9IHRoaXMuZmlsdGVyQ29udGVudFByb3ZpZGVyKCk7XG5cbiAgICBpZiAodGhpcy5kZWJ1ZykgY29uc29sZS5kZWJ1ZyhgJHt0aGlzLmxvZ1ByZWZpeH0gc2F2ZSBuYW1lZCBmaWx0ZXJgLCBmaWx0ZXJDb250ZW50KTtcblxuICAgIGlmIChpc05pbE9yQmxhbmsoZmlsdGVyQ29udGVudCkpIHJldHVybjtcblxuICAgIGNvbnN0IGN1cnJlbnRTZWxlY3RlZCA9IHRoaXMudmFsdWUubmFtZWRGaWx0ZXI7XG4gICAgbGV0IHJlc3VsdDogTmFtZWRGaWx0ZXI7XG5cbiAgICBpZiAodHlwZW9mIGN1cnJlbnRTZWxlY3RlZCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHJlc3VsdCA9IE5hbWVkRmlsdGVyLmZyb21PYmplY3Qoe1xuICAgICAgICBuYW1lOiBjdXJyZW50U2VsZWN0ZWQsXG4gICAgICAgIGVudGl0eU5hbWU6IHRoaXMuZW50aXR5TmFtZSxcbiAgICAgICAgY29udGVudDogZmlsdGVyQ29udGVudCxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXN1bHQgPSBOYW1lZEZpbHRlci5mcm9tT2JqZWN0KHtcbiAgICAgICAgLi4uY3VycmVudFNlbGVjdGVkLFxuICAgICAgICBjb250ZW50OiBmaWx0ZXJDb250ZW50LFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgY29uc3Qgc2F2ZWRFbnRpdHkgPSBhd2FpdCB0aGlzLmRhdGFTZXJ2aWNlLnNhdmUocmVzdWx0KTtcbiAgICB0aGlzLnNldENvbnRyb2xWYWx1ZShzYXZlZEVudGl0eSk7XG4gICAgdGhpcy5tYXJrQXNQcmlzdGluZSgpO1xuICB9XG5cbiAgYXN5bmMgZGVsZXRlKCkge1xuICAgIGNvbnN0IGRhdGEgPSB0aGlzLnZhbHVlLm5hbWVkRmlsdGVyO1xuXG4gICAgaWYgKHRoaXMuZGVidWcpIGNvbnNvbGUuZGVidWcoYCR7dGhpcy5sb2dQcmVmaXh9IGRlbGV0ZSBuYW1lZCBmaWx0ZXJgLCBkYXRhKTtcblxuICAgIGlmICh0eXBlb2YgZGF0YSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIGF3YWl0IHRoaXMuZGF0YVNlcnZpY2UuZGVsZXRlKGRhdGEpO1xuICAgICAgdGhpcy5yZXNldCgpO1xuICAgICAgdGhpcy5hdXRvY29tcGxldGVGaWVsZC5ibHVycmVkLmVtaXQoKTtcbiAgICAgIHRoaXMuZmlsdGVyRGVsZXRlZC5lbWl0KGRhdGEpO1xuICAgICAgVG9hc3RzLnNob3codGhpcy50b2FzdENvbnRyb2xsZXIsIHRoaXMudHJhbnNsYXRlLCB7XG4gICAgICAgIHR5cGU6ICdpbmZvJyxcbiAgICAgICAgbWVzc2FnZTogJ0NPTU1PTi5OQU1FRF9GSUxURVIuREVMRVRFRCcsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBleHBvcnQoKSB7XG4gICAgY29uc3QgaWQgPSB0aGlzLmF1dG9jb21wbGV0ZUZpZWxkLnZhbHVlPy5pZDtcblxuICAgIGlmICh0aGlzLmRlYnVnKSBjb25zb2xlLmRlYnVnKGAke3RoaXMubG9nUHJlZml4fSBleHBvcnQgbmFtZWQgZmlsdGVyYCwgaWQpO1xuXG4gICAgaWYgKCFpZCkgcmV0dXJuO1xuXG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IHRoaXMuZGF0YVNlcnZpY2UubG9hZChpZCwgeyB3aXRoQ29udGVudDogdHJ1ZSB9KTtcblxuICAgIGlmIChkYXRhKSB7XG4gICAgICBGaWxlc1V0aWxzLndyaXRlVGV4dFRvRmlsZShKU09OLnN0cmluZ2lmeShkYXRhLCBudWxsLCAyKSwge1xuICAgICAgICB0eXBlOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgIGZpbGVuYW1lOiBgJHt0aGlzLmV4cG9ydEZpbGVOYW1lUHJlZml4fS0ke2RhdGEuZW50aXR5TmFtZX0tJHtkYXRhLm5hbWV9Lmpzb25gLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIFRvYXN0cy5zaG93KHRoaXMudG9hc3RDb250cm9sbGVyLCB0aGlzLnRyYW5zbGF0ZSwge1xuICAgICAgICB0eXBlOiAnZXJyb3InLFxuICAgICAgICBtZXNzYWdlOiAnQ09NTU9OLk5BTUVEX0ZJTFRFUi5OT1RfRk9VTkQnLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgaW1wb3J0KGV2ZW50OiBFdmVudCkge1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IEZpbGVzVXRpbHMuc2hvd1VwbG9hZFBvcG92ZXIodGhpcy5wb3BvdmVyQ29udHJvbGxlciwgZXZlbnQsIHtcbiAgICAgIHVwbG9hZEZuOiAoZmlsZSkgPT4gRmlsZXNVdGlscy5yZWFkQXNUZXh0KGZpbGUpLFxuICAgICAgdGl0bGU6ICdDT01NT04uTkFNRURfRklMVEVSLklNUE9SVCcsXG4gICAgICBmaWxlRXh0ZW5zaW9uOiAnLmpzb24nLFxuICAgICAgdW5pcXVlRmlsZTogdHJ1ZSxcbiAgICAgIGluc3RhbnRVcGxvYWQ6IHRydWUsXG4gICAgfSk7XG4gICAgaWYgKCFyZXN1bHQgfHwgaXNFbXB0eUFycmF5KHJlc3VsdC5kYXRhKSkgcmV0dXJuO1xuICAgIHRyeSB7XG4gICAgICBsZXQgZGF0YSA9IEpTT04ucGFyc2UocmVzdWx0LmRhdGFbMF0ucmVzcG9uc2UuYm9keSk7XG4gICAgICBpZiAodGhpcy5kZWJ1ZykgY29uc29sZS5kZWJ1ZyhgJHt0aGlzLmxvZ1ByZWZpeH0gaW1wb3J0IG5hbWVkIGZpbHRlcmAsIGRhdGEpO1xuICAgICAgaWYgKCEhdGhpcy5maWx0ZXJJbXBvcnRDYWxsYmFjaykge1xuICAgICAgICBkYXRhID0gYXdhaXQgdGhpcy5maWx0ZXJJbXBvcnRDYWxsYmFjayhkYXRhKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuc2V0Q29udHJvbFZhbHVlKGRhdGEpO1xuICAgICAgdGhpcy5maWx0ZXJTZWxlY3RlZC5lbWl0KGRhdGEuY29udGVudCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS5lcnJvcihlKTtcbiAgICAgIFRvYXN0cy5zaG93KHRoaXMudG9hc3RDb250cm9sbGVyLCB0aGlzLnRyYW5zbGF0ZSwge1xuICAgICAgICB0eXBlOiAnZXJyb3InLFxuICAgICAgICBtZXNzYWdlOiAnQ09NTU9OLk5BTUVEX0ZJTFRFUi5JTVBPUlRfRkFJTEVEJyxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBvbkZpbHRlckNoYW5nZXModmFsdWU6IE5hbWVkRmlsdGVyIHwgc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMuZGVidWcpIGNvbnNvbGUuZGVidWcoYCR7dGhpcy5sb2dQcmVmaXh9IGZpbHRlciBjaGFuZ2VgLCB2YWx1ZSk7XG5cbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB2YWx1ZT8uaWQgJiYgaXNOb3ROaWwodmFsdWUuaWQpKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBkYXRhID0gYXdhaXQgdGhpcy5kYXRhU2VydmljZS5sb2FkKHZhbHVlLmlkLCB7IHdpdGhDb250ZW50OiB0cnVlIH0pO1xuICAgICAgICB0aGlzLl9kZWxldGVEaXNhYmxlZCA9ICF0aGlzLmRhdGFTZXJ2aWNlLmNhblVzZXJXcml0ZShkYXRhKTtcblxuICAgICAgICBjb25zdCBmaWx0ZXIgPSBpc05vdE5pbE9yQmxhbmsoZGF0YT8uY29udGVudCkgPyBkYXRhLmNvbnRlbnQgOiBudWxsO1xuICAgICAgICBpZiAoZmlsdGVyKSB7XG4gICAgICAgICAgdGhpcy5maWx0ZXJTZWxlY3RlZC5lbWl0KGZpbHRlcik7XG4gICAgICAgICAgdGhpcy5tYXJrQXNQcmlzdGluZSgpO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIFRvYXN0cy5zaG93KHRoaXMudG9hc3RDb250cm9sbGVyLCB0aGlzLnRyYW5zbGF0ZSwge1xuICAgICAgICAgIHR5cGU6ICdlcnJvcicsXG4gICAgICAgICAgbWVzc2FnZTogJ0NPTU1PTi5OQU1FRF9GSUxURVIuTE9BRF9GQUlMRUQnLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5hdXRvY29tcGxldGVGaWVsZC5hcHBseUltcGxpY2l0VmFsdWUgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hdXRvY29tcGxldGVGaWVsZC5hcHBseUltcGxpY2l0VmFsdWUgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0Q29udHJvbFZhbHVlKHZhbHVlOiBOYW1lZEZpbHRlcikge1xuICAgIHRoaXMuc2V0VmFsdWUoeyBuYW1lZEZpbHRlcjogdmFsdWUgfSk7XG4gICAgdGhpcy5hdXRvY29tcGxldGVGaWVsZC5ibHVycmVkLmVtaXQoKTtcbiAgfVxufVxuIiwiPGZvcm0gY2xhc3M9XCJmb3JtLWNvbnRhaW5lclwiIFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxuICA8bWF0LWF1dG9jb21wbGV0ZS1maWVsZFxuICAgIGZvcm1Db250cm9sTmFtZT1cIm5hbWVkRmlsdGVyXCJcbiAgICBbY29uZmlnXT1cImF1dG9jb21wbGV0ZUZpZWxkcy5uYW1lZEZpbHRlclwiXG4gICAgW3BsYWNlaG9sZGVyXT1cIidDT01NT04uTkFNRURfRklMVEVSLlRJVExFJyB8IHRyYW5zbGF0ZVwiXG4gICAgW2NsZWFyYWJsZV09XCJ0cnVlXCJcbiAgPlxuICAgIDxuZy1jb250YWluZXIgbWF0U3VmZml4ICpuZ0lmPVwic2hvd0J1dHRvbnNcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgIFtjb2xvcl09XCIncHJpbWFyeSdcIlxuICAgICAgICBbZGlzYWJsZWRdPVwic2F2ZURpc2FibGVkXCJcbiAgICAgICAgW3RpdGxlXT1cIidDT01NT04uTkFNRURfRklMVEVSLlNBVkUnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgKGNsaWNrKT1cInNhdmUoKVwiXG4gICAgICA+XG4gICAgICAgIDxtYXQtaWNvbj5zYXZlPC9tYXQtaWNvbj5cbiAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwiaXNOZXdcIiBjbGFzcz1cImljb24tc2Vjb25kYXJ5XCIgc3R5bGU9XCJsZWZ0OiAxMnB4OyB0b3A6IDBweFwiPmFkZDwvbWF0LWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgIFtkaXNhYmxlZF09XCJkZWxldGVEaXNhYmxlZFwiXG4gICAgICAgIFt0aXRsZV09XCInQ09NTU9OLk5BTUVEX0ZJTFRFUi5ERUxFVEUnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgKGNsaWNrKT1cImRlbGV0ZSgpXCJcbiAgICAgID5cbiAgICAgICAgPG1hdC1pY29uPmRlbGV0ZTwvbWF0LWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIFttYXRNZW51VHJpZ2dlckZvcl09XCJtb3JlTWVudVwiPlxuICAgICAgICA8bWF0LWljb24+bW9yZV92ZXJ0PC9tYXQtaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPG1hdC1tZW51ICNtb3JlTWVudT1cIm1hdE1lbnVcIj5cbiAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJleHBvcnQoKVwiIFtkaXNhYmxlZF09XCJpc05ld1wiPlxuICAgICAgICAgIDxpb24tbGFiZWw+XG4gICAgICAgICAgICA8bWF0LWljb24+ZmlsZV9kb3dubG9hZDwvbWF0LWljb24+XG4gICAgICAgICAgICA8c3Bhbj57eyAnQ09NTU9OLk5BTUVEX0ZJTFRFUi5FWFBPUlQnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICAgIDwvaW9uLWxhYmVsPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJpbXBvcnQoJGV2ZW50KVwiPlxuICAgICAgICAgIDxpb24tbGFiZWw+XG4gICAgICAgICAgICA8bWF0LWljb24+ZmlsZV91cGxvYWQ8L21hdC1pY29uPlxuICAgICAgICAgICAgPHNwYW4+e3sgJ0NPTU1PTi5OQU1FRF9GSUxURVIuSU1QT1JUJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2lvbi1sYWJlbD5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L21hdC1tZW51PlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L21hdC1hdXRvY29tcGxldGUtZmllbGQ+XG48L2Zvcm0+XG4iXX0=
|
|
242
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFtZWQtZmlsdGVyLXNlbGVjdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL25hbWVkLWZpbHRlci9uYW1lZC1maWx0ZXItc2VsZWN0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvbmFtZWQtZmlsdGVyL25hbWVkLWZpbHRlci1zZWxlY3Rvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osTUFBTSxFQUVOLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDbkQsT0FBTyxFQUFDLHdCQUF3QixFQUFzQixNQUFNLHdCQUF3QixDQUFDO0FBQ3JGLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLGdEQUFnRCxDQUFDO0FBQ3BGLE9BQU8sRUFBQyxZQUFZLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsZUFBZSxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQy9GLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN2QyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDOUMsT0FBTyxFQUFtQyxXQUFXLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7Ozs7QUFTbkYsTUFBTSxPQUFPLG1CQUFvQixTQUFRLE9BQVk7SUFnQ3ZDO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDa0M7SUFwQ3BDLFNBQVMsR0FBRyx5QkFBeUIsQ0FBQztJQUV4QyxXQUFXLENBQVM7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QW5CLEtBQUs7Z0JBQ0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFFSSxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBRTRDLGlCQUFpQjtzQkFBbkUsU0FBUzt1QkFBQyxvQkFBb0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbmplY3QsXG4gIEluamVjdG9yLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUJ1aWxkZXIgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBQb3BvdmVyQ29udHJvbGxlciwgVG9hc3RDb250cm9sbGVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7QXBwRm9ybX0gZnJvbSAnLi4vLi4vY29yZS9mb3JtL2Zvcm0uY2xhc3MnO1xuaW1wb3J0IHtBUFBfTkFNRURfRklMVEVSX1NFUlZJQ0UsIElOYW1lZEZpbHRlclNlcnZpY2V9IGZyb20gJy4vbmFtZWQtZmlsdGVyLnNlcnZpY2UnO1xuaW1wb3J0IHtNYXRBdXRvY29tcGxldGVGaWVsZH0gZnJvbSAnLi4vbWF0ZXJpYWwvYXV0b2NvbXBsZXRlL21hdGVyaWFsLmF1dG9jb21wbGV0ZSc7XG5pbXBvcnQge2lzRW1wdHlBcnJheSwgaXNOaWxPckJsYW5rLCBpc05pbE9yTmFOLCBpc05vdE5pbCwgaXNOb3ROaWxPckJsYW5rfSBmcm9tICcuLi9mdW5jdGlvbnMnO1xuaW1wb3J0IHtUb2FzdHN9IGZyb20gJy4uL3RvYXN0L3RvYXN0cyc7XG5pbXBvcnQge0ZpbGVzVXRpbHN9IGZyb20gJy4uL2ZpbGUvZmlsZS51dGlscyc7XG5pbXBvcnQge0lOYW1lZEZpbHRlciwgSU5hbWVkRmlsdGVyRmlsdGVyLCBOYW1lZEZpbHRlcn0gZnJvbSAnLi9uYW1lZC1maWx0ZXIubW9kZWwnO1xuaW1wb3J0IHtNYXRBdXRvY29tcGxldGVGaWVsZENvbmZpZ30gZnJvbSAnLi4vbWF0ZXJpYWwvYXV0b2NvbXBsZXRlL21hdGVyaWFsLmF1dG9jb21wbGV0ZS5jb25maWcnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtbmFtZWQtZmlsdGVyLXNlbGVjdG9yJyxcbiAgdGVtcGxhdGVVcmw6ICcuL25hbWVkLWZpbHRlci1zZWxlY3Rvci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL25hbWVkLWZpbHRlci1zZWxlY3Rvci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTmFtZWRGaWx0ZXJTZWxlY3RvciBleHRlbmRzIEFwcEZvcm08YW55PiBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHByb3RlY3RlZCBsb2dQcmVmaXggPSAnW25hbWVkLWZpbHRlci1zZWxlY3Rvcl0nO1xuXG4gIHByaXZhdGUgX2VudGl0eU5hbWU6IHN0cmluZztcbiAgcHJpdmF0ZSBfZGVsZXRlRGlzYWJsZWQgPSBmYWxzZTtcblxuICBASW5wdXQoKSBzZXQgZW50aXR5TmFtZShlbnRpdHlOYW1lOiBzdHJpbmcpIHtcbiAgICBpZiAoIWVudGl0eU5hbWUgfHwgdGhpcy5fZW50aXR5TmFtZSA9PT0gZW50aXR5TmFtZSkgcmV0dXJuO1xuICAgIHRoaXMuX2VudGl0eU5hbWUgPSBlbnRpdHlOYW1lO1xuICAgIC8vIFVwZGF0ZSBhdXRvY29tcGxldGUgZmlsdGVyXG4gICAgdGhpcy5hdXRvY29tcGxldGVGaWVsZC5maWx0ZXIgPSB7IC4uLnRoaXMuYXV0b2NvbXBsZXRlRmllbGQuZmlsdGVyLCAuLi50aGlzLmdldEZpbHRlcigpIH07XG4gIH07XG5cbiAgZ2V0IGVudGl0eU5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fZW50aXR5TmFtZTtcbiAgfVxuXG4gIEBJbnB1dCgpIGZpbHRlckNvbnRlbnRQcm92aWRlcjogKCkgPT4gYW55O1xuICBASW5wdXQoKSBmaWx0ZXJJbXBvcnRDYWxsYmFjazogKG5hbWVkRmlsdGVyOiBOYW1lZEZpbHRlcikgPT4gUHJvbWlzZTxOYW1lZEZpbHRlcj47XG4gIEBJbnB1dCgpIGZpbHRlckZvcm1EaXJ0eTogYm9vbGVhbjtcbiAgQElucHV0KCkgc2hvd0J1dHRvbnMgPSB0cnVlO1xuICBASW5wdXQoKSBleHBvcnRGaWxlTmFtZVByZWZpeCA9ICdmaWx0ZXInO1xuICBASW5wdXQoKSBhdXRvY29tcGxldGVDb25maWc6IE1hdEF1dG9jb21wbGV0ZUZpZWxkQ29uZmlnO1xuICBASW5wdXQoKSBkcm9wQnV0dG9uVGl0bGU6IHN0cmluZ1xuICBASW5wdXQoKSBjbGVhckJ1dHRvblRpdGxlOiBzdHJpbmdcblxuICBAT3V0cHV0KCkgZmlsdGVyU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIGZpbHRlckRlbGV0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPE5hbWVkRmlsdGVyPigpO1xuXG4gIEBWaWV3Q2hpbGQoTWF0QXV0b2NvbXBsZXRlRmllbGQsIHsgc3RhdGljOiB0cnVlIH0pIGF1dG9jb21wbGV0ZUZpZWxkOiBNYXRBdXRvY29tcGxldGVGaWVsZDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIHByb3RlY3RlZCBmb3JtQnVpbGRlcjogVW50eXBlZEZvcm1CdWlsZGVyLFxuICAgIHByb3RlY3RlZCBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJvdGVjdGVkIHRvYXN0Q29udHJvbGxlcjogVG9hc3RDb250cm9sbGVyLFxuICAgIHByb3RlY3RlZCBwb3BvdmVyQ29udHJvbGxlcjogUG9wb3ZlckNvbnRyb2xsZXIsXG4gICAgQEluamVjdChBUFBfTkFNRURfRklMVEVSX1NFUlZJQ0UpIHByb3RlY3RlZCBkYXRhU2VydmljZTogSU5hbWVkRmlsdGVyU2VydmljZTxJTmFtZWRGaWx0ZXI8YW55PiwgSU5hbWVkRmlsdGVyRmlsdGVyPGFueSwgYW55Pj5cbiAgKSB7XG4gICAgc3VwZXIoaW5qZWN0b3IsIGZvcm1CdWlsZGVyLmdyb3VwKHsgbmFtZWRGaWx0ZXI6IFtudWxsXSB9KSk7XG4gIH1cblxuICBnZXQgaXNOZXcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzTmlsT3JOYU4odGhpcy52YWx1ZT8ubmFtZWRGaWx0ZXI/LmlkKTtcbiAgfVxuXG4gIGdldCBzYXZlRGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLmRpcnR5IHx8IGlzTmlsT3JCbGFuayh0aGlzLnZhbHVlLm5hbWVkRmlsdGVyKTtcbiAgfVxuXG4gIGdldCBkZWxldGVEaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZGVsZXRlRGlzYWJsZWQgfHwgdGhpcy5pc05ldztcbiAgfVxuXG4gIGdldCBkaXJ0eSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gc3VwZXIuZGlydHkgfHwgdGhpcy5maWx0ZXJGb3JtRGlydHk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnJlZ2lzdGVyQXV0b2NvbXBsZXRlRmllbGQoJ25hbWVkRmlsdGVyJywge1xuICAgICAgc3VnZ2VzdEZuOiAodmFsdWUsIGZpbHRlcikgPT4gdGhpcy5kYXRhU2VydmljZS5zdWdnZXN0KHZhbHVlLCBmaWx0ZXIpLFxuICAgICAgYXR0cmlidXRlczogWyduYW1lJ10sXG4gICAgICBmaWx0ZXI6IHRoaXMuZ2V0RmlsdGVyKCksXG4gICAgICAuLi50aGlzLmF1dG9jb21wbGV0ZUNvbmZpZ1xuICAgIH0pO1xuXG4gICAgdGhpcy5yZWdpc3RlclN1YnNjcmlwdGlvbihcbiAgICAgIHRoaXMuZm9ybS5jb250cm9scy5uYW1lZEZpbHRlci52YWx1ZUNoYW5nZXMucGlwZShkZWJvdW5jZVRpbWUoMTAwKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSkuc3Vic2NyaWJlKCh2YWx1ZSkgPT4gdGhpcy5vbkZpbHRlckNoYW5nZXModmFsdWUpKVxuICAgICk7XG4gIH1cblxuICBnZXRGaWx0ZXIoKTogYW55IHtcbiAgICByZXR1cm4ge1xuICAgICAgZW50aXR5TmFtZTogdGhpcy5lbnRpdHlOYW1lLFxuICAgIH07XG4gIH1cblxuICBtYXJrRm9yQ2hlY2soKSB7XG4gICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIGFzeW5jIHNhdmUoKSB7XG4gICAgY29uc3QgZmlsdGVyQ29udGVudCA9IHRoaXMuZmlsdGVyQ29udGVudFByb3ZpZGVyKCk7XG5cbiAgICBpZiAodGhpcy5kZWJ1ZykgY29uc29sZS5kZWJ1ZyhgJHt0aGlzLmxvZ1ByZWZpeH0gc2F2ZSBuYW1lZCBmaWx0ZXJgLCBmaWx0ZXJDb250ZW50KTtcblxuICAgIGlmIChpc05pbE9yQmxhbmsoZmlsdGVyQ29udGVudCkpIHJldHVybjtcblxuICAgIGNvbnN0IGN1cnJlbnRTZWxlY3RlZCA9IHRoaXMudmFsdWUubmFtZWRGaWx0ZXI7XG4gICAgbGV0IHJlc3VsdDogTmFtZWRGaWx0ZXI7XG5cbiAgICBpZiAodHlwZW9mIGN1cnJlbnRTZWxlY3RlZCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHJlc3VsdCA9IE5hbWVkRmlsdGVyLmZyb21PYmplY3Qoe1xuICAgICAgICBuYW1lOiBjdXJyZW50U2VsZWN0ZWQsXG4gICAgICAgIGVudGl0eU5hbWU6IHRoaXMuZW50aXR5TmFtZSxcbiAgICAgICAgY29udGVudDogZmlsdGVyQ29udGVudCxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXN1bHQgPSBOYW1lZEZpbHRlci5mcm9tT2JqZWN0KHtcbiAgICAgICAgLi4uY3VycmVudFNlbGVjdGVkLFxuICAgICAgICBjb250ZW50OiBmaWx0ZXJDb250ZW50LFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgY29uc3Qgc2F2ZWRFbnRpdHkgPSBhd2FpdCB0aGlzLmRhdGFTZXJ2aWNlLnNhdmUocmVzdWx0KTtcbiAgICB0aGlzLnNldENvbnRyb2xWYWx1ZShzYXZlZEVudGl0eSk7XG4gICAgdGhpcy5tYXJrQXNQcmlzdGluZSgpO1xuICB9XG5cbiAgYXN5bmMgZGVsZXRlKCkge1xuICAgIGNvbnN0IGRhdGEgPSB0aGlzLnZhbHVlLm5hbWVkRmlsdGVyO1xuXG4gICAgaWYgKHRoaXMuZGVidWcpIGNvbnNvbGUuZGVidWcoYCR7dGhpcy5sb2dQcmVmaXh9IGRlbGV0ZSBuYW1lZCBmaWx0ZXJgLCBkYXRhKTtcblxuICAgIGlmICh0eXBlb2YgZGF0YSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIGF3YWl0IHRoaXMuZGF0YVNlcnZpY2UuZGVsZXRlKGRhdGEpO1xuICAgICAgdGhpcy5yZXNldCgpO1xuICAgICAgdGhpcy5hdXRvY29tcGxldGVGaWVsZC5ibHVycmVkLmVtaXQoKTtcbiAgICAgIHRoaXMuZmlsdGVyRGVsZXRlZC5lbWl0KGRhdGEpO1xuICAgICAgVG9hc3RzLnNob3codGhpcy50b2FzdENvbnRyb2xsZXIsIHRoaXMudHJhbnNsYXRlLCB7XG4gICAgICAgIHR5cGU6ICdpbmZvJyxcbiAgICAgICAgbWVzc2FnZTogJ0NPTU1PTi5OQU1FRF9GSUxURVIuREVMRVRFRCcsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBleHBvcnQoKSB7XG4gICAgY29uc3QgaWQgPSB0aGlzLmF1dG9jb21wbGV0ZUZpZWxkLnZhbHVlPy5pZDtcblxuICAgIGlmICh0aGlzLmRlYnVnKSBjb25zb2xlLmRlYnVnKGAke3RoaXMubG9nUHJlZml4fSBleHBvcnQgbmFtZWQgZmlsdGVyYCwgaWQpO1xuXG4gICAgaWYgKCFpZCkgcmV0dXJuO1xuXG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IHRoaXMuZGF0YVNlcnZpY2UubG9hZChpZCwgeyB3aXRoQ29udGVudDogdHJ1ZSB9KTtcblxuICAgIGlmIChkYXRhKSB7XG4gICAgICBGaWxlc1V0aWxzLndyaXRlVGV4dFRvRmlsZShKU09OLnN0cmluZ2lmeShkYXRhLCBudWxsLCAyKSwge1xuICAgICAgICB0eXBlOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgIGZpbGVuYW1lOiBgJHt0aGlzLmV4cG9ydEZpbGVOYW1lUHJlZml4fS0ke2RhdGEuZW50aXR5TmFtZX0tJHtkYXRhLm5hbWV9Lmpzb25gLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIFRvYXN0cy5zaG93KHRoaXMudG9hc3RDb250cm9sbGVyLCB0aGlzLnRyYW5zbGF0ZSwge1xuICAgICAgICB0eXBlOiAnZXJyb3InLFxuICAgICAgICBtZXNzYWdlOiAnQ09NTU9OLk5BTUVEX0ZJTFRFUi5OT1RfRk9VTkQnLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgaW1wb3J0KGV2ZW50OiBFdmVudCkge1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IEZpbGVzVXRpbHMuc2hvd1VwbG9hZFBvcG92ZXIodGhpcy5wb3BvdmVyQ29udHJvbGxlciwgZXZlbnQsIHtcbiAgICAgIHVwbG9hZEZuOiAoZmlsZSkgPT4gRmlsZXNVdGlscy5yZWFkQXNUZXh0KGZpbGUpLFxuICAgICAgdGl0bGU6ICdDT01NT04uTkFNRURfRklMVEVSLklNUE9SVCcsXG4gICAgICBmaWxlRXh0ZW5zaW9uOiAnLmpzb24nLFxuICAgICAgdW5pcXVlRmlsZTogdHJ1ZSxcbiAgICAgIGluc3RhbnRVcGxvYWQ6IHRydWUsXG4gICAgfSk7XG4gICAgaWYgKCFyZXN1bHQgfHwgaXNFbXB0eUFycmF5KHJlc3VsdC5kYXRhKSkgcmV0dXJuO1xuICAgIHRyeSB7XG4gICAgICBsZXQgZGF0YSA9IEpTT04ucGFyc2UocmVzdWx0LmRhdGFbMF0ucmVzcG9uc2UuYm9keSk7XG4gICAgICBpZiAodGhpcy5kZWJ1ZykgY29uc29sZS5kZWJ1ZyhgJHt0aGlzLmxvZ1ByZWZpeH0gaW1wb3J0IG5hbWVkIGZpbHRlcmAsIGRhdGEpO1xuICAgICAgaWYgKCEhdGhpcy5maWx0ZXJJbXBvcnRDYWxsYmFjaykge1xuICAgICAgICBkYXRhID0gYXdhaXQgdGhpcy5maWx0ZXJJbXBvcnRDYWxsYmFjayhkYXRhKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuc2V0Q29udHJvbFZhbHVlKGRhdGEpO1xuICAgICAgdGhpcy5maWx0ZXJTZWxlY3RlZC5lbWl0KGRhdGEuY29udGVudCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS5lcnJvcihlKTtcbiAgICAgIFRvYXN0cy5zaG93KHRoaXMudG9hc3RDb250cm9sbGVyLCB0aGlzLnRyYW5zbGF0ZSwge1xuICAgICAgICB0eXBlOiAnZXJyb3InLFxuICAgICAgICBtZXNzYWdlOiAnQ09NTU9OLk5BTUVEX0ZJTFRFUi5JTVBPUlRfRkFJTEVEJyxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBvbkZpbHRlckNoYW5nZXModmFsdWU6IE5hbWVkRmlsdGVyIHwgc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMuZGVidWcpIGNvbnNvbGUuZGVidWcoYCR7dGhpcy5sb2dQcmVmaXh9IGZpbHRlciBjaGFuZ2VgLCB2YWx1ZSk7XG5cbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB2YWx1ZT8uaWQgJiYgaXNOb3ROaWwodmFsdWUuaWQpKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBkYXRhID0gYXdhaXQgdGhpcy5kYXRhU2VydmljZS5sb2FkKHZhbHVlLmlkLCB7IHdpdGhDb250ZW50OiB0cnVlIH0pO1xuICAgICAgICB0aGlzLl9kZWxldGVEaXNhYmxlZCA9ICF0aGlzLmRhdGFTZXJ2aWNlLmNhblVzZXJXcml0ZShkYXRhKTtcblxuICAgICAgICBjb25zdCBmaWx0ZXIgPSBpc05vdE5pbE9yQmxhbmsoZGF0YT8uY29udGVudCkgPyBkYXRhLmNvbnRlbnQgOiBudWxsO1xuICAgICAgICBpZiAoZmlsdGVyKSB7XG4gICAgICAgICAgdGhpcy5maWx0ZXJTZWxlY3RlZC5lbWl0KGZpbHRlcik7XG4gICAgICAgICAgdGhpcy5tYXJrQXNQcmlzdGluZSgpO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIFRvYXN0cy5zaG93KHRoaXMudG9hc3RDb250cm9sbGVyLCB0aGlzLnRyYW5zbGF0ZSwge1xuICAgICAgICAgIHR5cGU6ICdlcnJvcicsXG4gICAgICAgICAgbWVzc2FnZTogJ0NPTU1PTi5OQU1FRF9GSUxURVIuTE9BRF9GQUlMRUQnLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5hdXRvY29tcGxldGVGaWVsZC5hcHBseUltcGxpY2l0VmFsdWUgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hdXRvY29tcGxldGVGaWVsZC5hcHBseUltcGxpY2l0VmFsdWUgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0Q29udHJvbFZhbHVlKHZhbHVlOiBOYW1lZEZpbHRlcikge1xuICAgIHRoaXMuc2V0VmFsdWUoeyBuYW1lZEZpbHRlcjogdmFsdWUgfSk7XG4gICAgdGhpcy5hdXRvY29tcGxldGVGaWVsZC5ibHVycmVkLmVtaXQoKTtcbiAgfVxufVxuIiwiPGZvcm0gY2xhc3M9XCJmb3JtLWNvbnRhaW5lclwiIFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxuICA8bWF0LWF1dG9jb21wbGV0ZS1maWVsZFxuICAgIGZvcm1Db250cm9sTmFtZT1cIm5hbWVkRmlsdGVyXCJcbiAgICBbY29uZmlnXT1cImF1dG9jb21wbGV0ZUZpZWxkcy5uYW1lZEZpbHRlclwiXG4gICAgW3BsYWNlaG9sZGVyXT1cIidDT01NT04uTkFNRURfRklMVEVSLlRJVExFJyB8IHRyYW5zbGF0ZVwiXG4gICAgW2NsZWFyYWJsZV09XCJ0cnVlXCJcbiAgICBbZHJvcEJ1dHRvblRpdGxlXT1cImRyb3BCdXR0b25UaXRsZVwiXG4gICAgW2NsZWFyQnV0dG9uVGl0bGVdPVwiY2xlYXJCdXR0b25UaXRsZVwiXG4gID5cbiAgICA8bmctY29udGFpbmVyIG1hdFN1ZmZpeCAqbmdJZj1cInNob3dCdXR0b25zXCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICBbY29sb3JdPVwiJ3ByaW1hcnknXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cInNhdmVEaXNhYmxlZFwiXG4gICAgICAgIFt0aXRsZV09XCInQ09NTU9OLk5BTUVEX0ZJTFRFUi5TQVZFJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIChjbGljayk9XCJzYXZlKClcIlxuICAgICAgPlxuICAgICAgICA8bWF0LWljb24+c2F2ZTwvbWF0LWljb24+XG4gICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cImlzTmV3XCIgY2xhc3M9XCJpY29uLXNlY29uZGFyeVwiIHN0eWxlPVwibGVmdDogMTJweDsgdG9wOiAwcHhcIj5hZGQ8L21hdC1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICBbZGlzYWJsZWRdPVwiZGVsZXRlRGlzYWJsZWRcIlxuICAgICAgICBbdGl0bGVdPVwiJ0NPTU1PTi5OQU1FRF9GSUxURVIuREVMRVRFJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIChjbGljayk9XCJkZWxldGUoKVwiXG4gICAgICA+XG4gICAgICAgIDxtYXQtaWNvbj5kZWxldGU8L21hdC1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBbbWF0TWVudVRyaWdnZXJGb3JdPVwibW9yZU1lbnVcIj5cbiAgICAgICAgPG1hdC1pY29uPm1vcmVfdmVydDwvbWF0LWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxtYXQtbWVudSAjbW9yZU1lbnU9XCJtYXRNZW51XCI+XG4gICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwiZXhwb3J0KClcIiBbZGlzYWJsZWRdPVwiaXNOZXdcIj5cbiAgICAgICAgICA8aW9uLWxhYmVsPlxuICAgICAgICAgICAgPG1hdC1pY29uPmZpbGVfZG93bmxvYWQ8L21hdC1pY29uPlxuICAgICAgICAgICAgPHNwYW4+e3sgJ0NPTU1PTi5OQU1FRF9GSUxURVIuRVhQT1JUJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2lvbi1sYWJlbD5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwiaW1wb3J0KCRldmVudClcIj5cbiAgICAgICAgICA8aW9uLWxhYmVsPlxuICAgICAgICAgICAgPG1hdC1pY29uPmZpbGVfdXBsb2FkPC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDxzcGFuPnt7ICdDT01NT04uTkFNRURfRklMVEVSLklNUE9SVCcgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgPC9pb24tbGFiZWw+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9tYXQtbWVudT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9tYXQtYXV0b2NvbXBsZXRlLWZpZWxkPlxuPC9mb3JtPlxuIl19
|
|
@@ -66,4 +66,4 @@ export function maskitoPrefixPlugin(prefix, placeholder) {
|
|
|
66
66
|
}
|
|
67
67
|
});
|
|
68
68
|
}
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFza2l0by5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvcGlwZXMvbWFza2l0by5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxJQUFJLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFFMUMsT0FBTyxFQUFDLG1CQUFtQixFQUFFLHNCQUFzQixFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQ3pFLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLGNBQWMsQ0FBQzs7QUFLcEQsTUFBTSxPQUFPLHNCQUFzQjtJQUUvQixTQUFTLENBQUMsV0FBbUIsRUFBRSxJQUFpQixFQUFFLGFBQXNCO1FBQ3RFLElBQUksWUFBWSxDQUFDLFdBQVcsQ0FBQztZQUFFLE9BQU8sRUFBQyxJQUFJLEVBQUMsQ0FBQztRQUU3QyxNQUFNLGtCQUFrQixHQUFHLHNCQUFzQixDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNyRSxNQUFNLE9BQU8sR0FBRTtZQUNiLEdBQUcsa0JBQWtCLENBQUMsT0FBTztTQUM5QixDQUFDO1FBQ0YsSUFBSSxhQUFhLEVBQUUsQ0FBQztZQUNsQixPQUFPLENBQUMsSUFBSSxDQUNWLG1CQUFtQixDQUFDLGFBQWEsRUFBRSxXQUFXLENBQUMsQ0FDaEQsQ0FBQztRQUNKLENBQUM7UUFFRCxPQUFPO1lBQ0wsR0FBRyxrQkFBa0I7WUFDckIsT0FBTztZQUNQLGFBQWEsRUFBRTtnQkFDYixDQUFDLEVBQUMsWUFBWSxFQUFFLElBQUksRUFBQyxFQUFFLFVBQVUsRUFBRSxFQUFFO29CQUNuQyxJQUFJLEVBQUMsS0FBSyxFQUFFLFNBQVMsRUFBQyxHQUFHLFlBQVksQ0FBQztvQkFDdEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNO3dCQUFFLE9BQU8sRUFBQyxZQUFZLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQyxnQkFBZ0I7b0JBRWhFLElBQUksQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLEdBQUcsU0FBUyxDQUFDO29CQUM3QixJQUFJLFlBQVksR0FBRyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztvQkFFcEMsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQzt3QkFDdEMsS0FBSyxHQUFHLEtBQUs7NEJBQ1gsV0FBVyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO2lDQUNoQyxPQUFPLENBQUMsUUFBUSxFQUFFLHNCQUFzQixDQUFDLENBQUM7b0JBQ2pELENBQUM7eUJBQ0ksSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQzt3QkFDdEQsWUFBWSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsc0JBQXNCLENBQUMsQ0FBQztvQkFDdkQsQ0FBQztvQkFDRCxPQUFPO3dCQUNMLFlBQVksRUFBRTs0QkFDWixTQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxLQUFLLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxHQUFHLENBQUMsQ0FBQzs0QkFDdkUsS0FBSzt5QkFDTjt3QkFDRCxJQUFJO3FCQUNMLENBQUM7Z0JBRUosQ0FBQztnQkFDRCxHQUFHLGtCQUFrQixDQUFDLGFBQWE7YUFDcEM7WUFDRCxJQUFJO1NBQ0wsQ0FBQztJQUNKLENBQUM7dUdBL0NRLHNCQUFzQjtxR0FBdEIsc0JBQXNCOzsyRkFBdEIsc0JBQXNCO2tCQUhsQyxJQUFJO21CQUFDO29CQUNGLElBQUksRUFBRSxvQkFBb0I7aUJBQzdCOztBQW1ERCxNQUFNLFVBQVUsbUJBQW1CLENBQUMsTUFBYyxFQUFFLFdBQW9CO0lBQ3RFLE9BQU8sbUJBQW1CLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBK0MsRUFBRSxPQUFpQyxFQUFFLEVBQUU7UUFDekgsSUFBSSxPQUFPLENBQUMsS0FBSyxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ3pCLE9BQU8sQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDO1lBQ3ZCLE9BQU8sQ0FBQyxhQUFhLENBQUMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUM1QyxDQUFDO2FBQU0sSUFBSSxPQUFPLENBQUMsS0FBSyxLQUFLLFdBQVcsRUFBRSxDQUFDO1lBQ3pDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsTUFBTSxHQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzlELE9BQU8sQ0FBQyxhQUFhLENBQUMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUM1QyxDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtQaXBlLCBQaXBlVHJhbnNmb3JtfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7aXNOaWxPckJsYW5rfSBmcm9tICcuLi9mdW5jdGlvbnMnO1xuaW1wb3J0IHtNYXNraXRvTWFzaywgTWFza2l0b09wdGlvbnMsIE1hc2tpdG9QbHVnaW59IGZyb20gJ0BtYXNraXRvL2NvcmUnO1xuaW1wb3J0IHttYXNraXRvRXZlbnRIYW5kbGVyLCBtYXNraXRvV2l0aFBsYWNlaG9sZGVyfSBmcm9tICdAbWFza2l0by9raXQnO1xuaW1wb3J0IHtFTVBUWV9QTEFDRUhPTERFUl9DSEFSfSBmcm9tICcuLi9jb25zdGFudHMnO1xuXG5AUGlwZSh7XG4gICAgbmFtZTogJ21hc2tpdG9QbGFjZWhvbGRlcidcbn0pXG5leHBvcnQgY2xhc3MgTWFza2l0b1BsYWNlaG9sZGVyUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuXG4gICAgdHJhbnNmb3JtKHBsYWNlaG9sZGVyOiBzdHJpbmcsIG1hc2s6IE1hc2tpdG9NYXNrLCBkZWZhdWx0UHJlZml4Pzogc3RyaW5nKTogTWFza2l0b09wdGlvbnMge1xuICAgICAgaWYgKGlzTmlsT3JCbGFuayhwbGFjZWhvbGRlcikpIHJldHVybiB7bWFza307XG5cbiAgICAgIGNvbnN0IHBsYWNlaG9sZGVyT3B0aW9ucyA9IG1hc2tpdG9XaXRoUGxhY2Vob2xkZXIocGxhY2Vob2xkZXIsIHRydWUpO1xuICAgICAgY29uc3QgcGx1Z2lucz0gW1xuICAgICAgICAuLi5wbGFjZWhvbGRlck9wdGlvbnMucGx1Z2lucyxcbiAgICAgIF07XG4gICAgICBpZiAoZGVmYXVsdFByZWZpeCkge1xuICAgICAgICBwbHVnaW5zLnB1c2goXG4gICAgICAgICAgbWFza2l0b1ByZWZpeFBsdWdpbihkZWZhdWx0UHJlZml4LCBwbGFjZWhvbGRlcilcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ucGxhY2Vob2xkZXJPcHRpb25zLFxuICAgICAgICBwbHVnaW5zLFxuICAgICAgICBwcmVwcm9jZXNzb3JzOiBbXG4gICAgICAgICAgKHtlbGVtZW50U3RhdGUsIGRhdGF9LCBhY3Rpb25UeXBlKSA9PiB7XG4gICAgICAgICAgICBsZXQge3ZhbHVlLCBzZWxlY3Rpb259ID0gZWxlbWVudFN0YXRlO1xuICAgICAgICAgICAgaWYgKCF2YWx1ZS5sZW5ndGgpIHJldHVybiB7ZWxlbWVudFN0YXRlLCBkYXRhfTsgLy8gU2tpcCBpZiBlbXB0eVxuXG4gICAgICAgICAgICBsZXQgW3N0YXJ0LCBlbmRdID0gc2VsZWN0aW9uO1xuICAgICAgICAgICAgbGV0IHNlbGVjdGlvbk1heCA9IHZhbHVlLmxlbmd0aCAtIDE7XG5cbiAgICAgICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPCBwbGFjZWhvbGRlci5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZSArXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXIuc3Vic3RyaW5nKHZhbHVlLmxlbmd0aClcbiAgICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9bRFNNXS9nLCBFTVBUWV9QTEFDRUhPTERFUl9DSEFSKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHZhbHVlLmluZGV4T2YoRU1QVFlfUExBQ0VIT0xERVJfQ0hBUikgIT09IC0xKSB7XG4gICAgICAgICAgICAgIHNlbGVjdGlvbk1heCA9IHZhbHVlLmluZGV4T2YoRU1QVFlfUExBQ0VIT0xERVJfQ0hBUik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICBlbGVtZW50U3RhdGU6IHtcbiAgICAgICAgICAgICAgICBzZWxlY3Rpb246IFtNYXRoLm1pbihzZWxlY3Rpb25NYXgsIHN0YXJ0KSwgTWF0aC5taW4oc2VsZWN0aW9uTWF4LCBlbmQpXSxcbiAgICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgZGF0YSxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICB9LFxuICAgICAgICAgIC4uLnBsYWNlaG9sZGVyT3B0aW9ucy5wcmVwcm9jZXNzb3JzXG4gICAgICAgIF0sXG4gICAgICAgIG1hc2tcbiAgICAgIH07XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbWFza2l0b1ByZWZpeFBsdWdpbihwcmVmaXg6IHN0cmluZywgcGxhY2Vob2xkZXI/OiBzdHJpbmcpOiBNYXNraXRvUGx1Z2luIHtcbiAgcmV0dXJuIG1hc2tpdG9FdmVudEhhbmRsZXIoJ2ZvY3VzJywgKGVsZW1lbnQ6IEhUTUxJbnB1dEVsZW1lbnQgfCBIVE1MVGV4dEFyZWFFbGVtZW50LCBvcHRpb25zOiBSZXF1aXJlZDxNYXNraXRvT3B0aW9ucz4pID0+IHtcbiAgICBpZiAoZWxlbWVudC52YWx1ZSA9PT0gJycpIHtcbiAgICAgIGVsZW1lbnQudmFsdWUgPSBwcmVmaXg7XG4gICAgICBlbGVtZW50LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdpbnB1dCcpKTtcbiAgICB9IGVsc2UgaWYgKGVsZW1lbnQudmFsdWUgPT09IHBsYWNlaG9sZGVyKSB7XG4gICAgICBlbGVtZW50LnZhbHVlID0gcHJlZml4ICsgcGxhY2Vob2xkZXIuc3Vic3RyaW5nKHByZWZpeC5sZW5ndGgpO1xuICAgICAgZWxlbWVudC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnaW5wdXQnKSk7XG4gICAgfVxuICB9KTtcbn1cbiJdfQ==
|