@myrmidon/cadmus-part-codicology-shelfmarks 2.0.0 → 2.0.4
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/esm2020/lib/cadmus-part-codicology-shelfmarks.module.mjs +4 -4
- package/esm2020/lib/cod-shelfmark-editor/cod-shelfmark-editor.component.mjs +9 -9
- package/esm2020/lib/cod-shelfmarks-part/cod-shelfmarks-part.component.mjs +21 -19
- package/esm2020/lib/cod-shelfmarks-part-feature/cod-shelfmarks-part-feature.component.mjs +3 -3
- package/fesm2015/myrmidon-cadmus-part-codicology-shelfmarks.mjs +42 -40
- package/fesm2015/myrmidon-cadmus-part-codicology-shelfmarks.mjs.map +1 -1
- package/fesm2020/myrmidon-cadmus-part-codicology-shelfmarks.mjs +42 -40
- package/fesm2020/myrmidon-cadmus-part-codicology-shelfmarks.mjs.map +1 -1
- package/lib/cod-shelfmarks-part/cod-shelfmarks-part.component.d.ts +2 -3
- package/package.json +1 -1
|
@@ -19,8 +19,8 @@ import { CodShelfmarksPartFeatureComponent } from './cod-shelfmarks-part-feature
|
|
|
19
19
|
import * as i0 from "@angular/core";
|
|
20
20
|
export class CadmusPartCodicologyShelfmarksModule {
|
|
21
21
|
}
|
|
22
|
-
CadmusPartCodicologyShelfmarksModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.
|
|
23
|
-
CadmusPartCodicologyShelfmarksModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.
|
|
22
|
+
CadmusPartCodicologyShelfmarksModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: CadmusPartCodicologyShelfmarksModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
23
|
+
CadmusPartCodicologyShelfmarksModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.3", ngImport: i0, type: CadmusPartCodicologyShelfmarksModule, declarations: [CodShelfmarksPartComponent,
|
|
24
24
|
CodShelfmarkEditorComponent,
|
|
25
25
|
CodShelfmarksPartFeatureComponent], imports: [CommonModule,
|
|
26
26
|
FormsModule,
|
|
@@ -39,7 +39,7 @@ CadmusPartCodicologyShelfmarksModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersi
|
|
|
39
39
|
CadmusUiPgModule], exports: [CodShelfmarksPartComponent,
|
|
40
40
|
CodShelfmarkEditorComponent,
|
|
41
41
|
CodShelfmarksPartFeatureComponent] });
|
|
42
|
-
CadmusPartCodicologyShelfmarksModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.
|
|
42
|
+
CadmusPartCodicologyShelfmarksModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: CadmusPartCodicologyShelfmarksModule, imports: [CommonModule,
|
|
43
43
|
FormsModule,
|
|
44
44
|
ReactiveFormsModule,
|
|
45
45
|
// material
|
|
@@ -54,7 +54,7 @@ CadmusPartCodicologyShelfmarksModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersi
|
|
|
54
54
|
CadmusStateModule,
|
|
55
55
|
CadmusUiModule,
|
|
56
56
|
CadmusUiPgModule] });
|
|
57
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.
|
|
57
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: CadmusPartCodicologyShelfmarksModule, decorators: [{
|
|
58
58
|
type: NgModule,
|
|
59
59
|
args: [{
|
|
60
60
|
declarations: [
|
|
@@ -38,6 +38,9 @@ export class CodShelfmarkEditorComponent {
|
|
|
38
38
|
return this._shelfmark;
|
|
39
39
|
}
|
|
40
40
|
set shelfmark(value) {
|
|
41
|
+
if (this._shelfmark === value) {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
41
44
|
this._shelfmark = value;
|
|
42
45
|
this.updateForm(value);
|
|
43
46
|
}
|
|
@@ -74,16 +77,13 @@ export class CodShelfmarkEditorComponent {
|
|
|
74
77
|
if (this.form.invalid) {
|
|
75
78
|
return;
|
|
76
79
|
}
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
return;
|
|
80
|
-
}
|
|
81
|
-
this.shelfmarkChange.emit(model);
|
|
80
|
+
this._shelfmark = this.getModel();
|
|
81
|
+
this.shelfmarkChange.emit(this._shelfmark);
|
|
82
82
|
}
|
|
83
83
|
}
|
|
84
|
-
CodShelfmarkEditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.
|
|
85
|
-
CodShelfmarkEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.
|
|
86
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.
|
|
84
|
+
CodShelfmarkEditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: CodShelfmarkEditorComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
|
|
85
|
+
CodShelfmarkEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.3", type: CodShelfmarkEditorComponent, selector: "cadmus-cod-shelfmark-editor", inputs: { shelfmark: "shelfmark", tagEntries: "tagEntries", libEntries: "libEntries" }, outputs: { shelfmarkChange: "shelfmarkChange", editorClose: "editorClose" }, ngImport: i0, template: "<form [formGroup]=\"form\" (submit)=\"save()\">\r\n <div>\r\n <!-- tag (bound) -->\r\n <mat-form-field *ngIf=\"tagEntries?.length\" style=\"width: 8em\">\r\n <mat-label>tag</mat-label>\r\n <mat-select [formControl]=\"tag\">\r\n <mat-option *ngFor=\"let e of tagEntries\" [value]=\"e.id\">{{\r\n e.value\r\n }}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <!-- tag (free) -->\r\n <mat-form-field *ngIf=\"!tagEntries?.length\">\r\n <mat-label>tag</mat-label>\r\n <input matInput [formControl]=\"tag\" />\r\n <mat-error\r\n *ngIf=\"$any(tag).errors?.maxLength && (tag.dirty || tag.touched)\"\r\n >tag too long</mat-error\r\n >\r\n </mat-form-field>\r\n <!-- city -->\r\n \r\n <mat-form-field>\r\n <mat-label>city</mat-label>\r\n <input matInput [formControl]=\"city\" />\r\n <mat-error\r\n *ngIf=\"$any(city).errors?.required && (city.dirty || city.touched)\"\r\n >city required</mat-error\r\n >\r\n <mat-error\r\n *ngIf=\"$any(city).errors?.maxLength && (city.dirty || city.touched)\"\r\n >city too long</mat-error\r\n >\r\n </mat-form-field>\r\n </div>\r\n <div>\r\n <!-- library (bound) -->\r\n <mat-form-field *ngIf=\"libEntries?.length\" style=\"width: 8em\">\r\n <mat-label>library</mat-label>\r\n <mat-select [formControl]=\"library\">\r\n <mat-option *ngFor=\"let e of libEntries\" [value]=\"e.id\">{{\r\n e.value\r\n }}</mat-option>\r\n </mat-select>\r\n <mat-error\r\n *ngIf=\"\r\n $any(library).errors?.required && (library.dirty || library.touched)\r\n \"\r\n >library required</mat-error\r\n >\r\n </mat-form-field>\r\n <!-- library (free) -->\r\n <mat-form-field *ngIf=\"!libEntries?.length\">\r\n <mat-label>library</mat-label>\r\n <input matInput [formControl]=\"library\" />\r\n <mat-error\r\n *ngIf=\"\r\n $any(library).errors?.required && (library.dirty || library.touched)\r\n \"\r\n >library required</mat-error\r\n >\r\n <mat-error\r\n *ngIf=\"\r\n $any(library).errors?.maxLength && (library.dirty || library.touched)\r\n \"\r\n >library too long</mat-error\r\n >\r\n </mat-form-field>\r\n <!-- fund -->\r\n \r\n <mat-form-field>\r\n <mat-label>fund</mat-label>\r\n <input matInput [formControl]=\"fund\" />\r\n <mat-error\r\n *ngIf=\"$any(fund).errors?.maxLength && (fund.dirty || fund.touched)\"\r\n >fund too long</mat-error\r\n >\r\n </mat-form-field>\r\n <!-- location -->\r\n \r\n <mat-form-field>\r\n <mat-label>location</mat-label>\r\n <input matInput [formControl]=\"location\" />\r\n <mat-error\r\n *ngIf=\"\r\n $any(location).errors?.required &&\r\n (location.dirty || location.touched)\r\n \"\r\n >location required</mat-error\r\n >\r\n <mat-error\r\n *ngIf=\"\r\n $any(location).errors?.maxLength &&\r\n (location.dirty || location.touched)\r\n \"\r\n >location too long</mat-error\r\n >\r\n </mat-form-field>\r\n </div>\r\n <!-- buttons -->\r\n <div>\r\n <button\r\n type=\"button\"\r\n color=\"warn\"\r\n mat-icon-button\r\n matTooltip=\"Discard changes\"\r\n (click)=\"cancel()\"\r\n >\r\n <mat-icon>clear</mat-icon>\r\n </button>\r\n <button\r\n type=\"submit\"\r\n color=\"primary\"\r\n mat-icon-button\r\n matTooltip=\"Accept changes\"\r\n [disabled]=\"form.invalid || form.pristine\"\r\n >\r\n <mat-icon>check_circle</mat-icon>\r\n </button>\r\n </div>\r\n</form>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatLabel, selector: "mat-label" }, { kind: "directive", type: i6.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i7.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i8.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i9.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }] });
|
|
86
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: CodShelfmarkEditorComponent, decorators: [{
|
|
87
87
|
type: Component,
|
|
88
88
|
args: [{ selector: 'cadmus-cod-shelfmark-editor', template: "<form [formGroup]=\"form\" (submit)=\"save()\">\r\n <div>\r\n <!-- tag (bound) -->\r\n <mat-form-field *ngIf=\"tagEntries?.length\" style=\"width: 8em\">\r\n <mat-label>tag</mat-label>\r\n <mat-select [formControl]=\"tag\">\r\n <mat-option *ngFor=\"let e of tagEntries\" [value]=\"e.id\">{{\r\n e.value\r\n }}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <!-- tag (free) -->\r\n <mat-form-field *ngIf=\"!tagEntries?.length\">\r\n <mat-label>tag</mat-label>\r\n <input matInput [formControl]=\"tag\" />\r\n <mat-error\r\n *ngIf=\"$any(tag).errors?.maxLength && (tag.dirty || tag.touched)\"\r\n >tag too long</mat-error\r\n >\r\n </mat-form-field>\r\n <!-- city -->\r\n \r\n <mat-form-field>\r\n <mat-label>city</mat-label>\r\n <input matInput [formControl]=\"city\" />\r\n <mat-error\r\n *ngIf=\"$any(city).errors?.required && (city.dirty || city.touched)\"\r\n >city required</mat-error\r\n >\r\n <mat-error\r\n *ngIf=\"$any(city).errors?.maxLength && (city.dirty || city.touched)\"\r\n >city too long</mat-error\r\n >\r\n </mat-form-field>\r\n </div>\r\n <div>\r\n <!-- library (bound) -->\r\n <mat-form-field *ngIf=\"libEntries?.length\" style=\"width: 8em\">\r\n <mat-label>library</mat-label>\r\n <mat-select [formControl]=\"library\">\r\n <mat-option *ngFor=\"let e of libEntries\" [value]=\"e.id\">{{\r\n e.value\r\n }}</mat-option>\r\n </mat-select>\r\n <mat-error\r\n *ngIf=\"\r\n $any(library).errors?.required && (library.dirty || library.touched)\r\n \"\r\n >library required</mat-error\r\n >\r\n </mat-form-field>\r\n <!-- library (free) -->\r\n <mat-form-field *ngIf=\"!libEntries?.length\">\r\n <mat-label>library</mat-label>\r\n <input matInput [formControl]=\"library\" />\r\n <mat-error\r\n *ngIf=\"\r\n $any(library).errors?.required && (library.dirty || library.touched)\r\n \"\r\n >library required</mat-error\r\n >\r\n <mat-error\r\n *ngIf=\"\r\n $any(library).errors?.maxLength && (library.dirty || library.touched)\r\n \"\r\n >library too long</mat-error\r\n >\r\n </mat-form-field>\r\n <!-- fund -->\r\n \r\n <mat-form-field>\r\n <mat-label>fund</mat-label>\r\n <input matInput [formControl]=\"fund\" />\r\n <mat-error\r\n *ngIf=\"$any(fund).errors?.maxLength && (fund.dirty || fund.touched)\"\r\n >fund too long</mat-error\r\n >\r\n </mat-form-field>\r\n <!-- location -->\r\n \r\n <mat-form-field>\r\n <mat-label>location</mat-label>\r\n <input matInput [formControl]=\"location\" />\r\n <mat-error\r\n *ngIf=\"\r\n $any(location).errors?.required &&\r\n (location.dirty || location.touched)\r\n \"\r\n >location required</mat-error\r\n >\r\n <mat-error\r\n *ngIf=\"\r\n $any(location).errors?.maxLength &&\r\n (location.dirty || location.touched)\r\n \"\r\n >location too long</mat-error\r\n >\r\n </mat-form-field>\r\n </div>\r\n <!-- buttons -->\r\n <div>\r\n <button\r\n type=\"button\"\r\n color=\"warn\"\r\n mat-icon-button\r\n matTooltip=\"Discard changes\"\r\n (click)=\"cancel()\"\r\n >\r\n <mat-icon>clear</mat-icon>\r\n </button>\r\n <button\r\n type=\"submit\"\r\n color=\"primary\"\r\n mat-icon-button\r\n matTooltip=\"Accept changes\"\r\n [disabled]=\"form.invalid || form.pristine\"\r\n >\r\n <mat-icon>check_circle</mat-icon>\r\n </button>\r\n </div>\r\n</form>\r\n" }]
|
|
89
89
|
}], ctorParameters: function () { return [{ type: i1.FormBuilder }]; }, propDecorators: { shelfmark: [{
|
|
@@ -97,4 +97,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.1", ngImpor
|
|
|
97
97
|
}], editorClose: [{
|
|
98
98
|
type: Output
|
|
99
99
|
}] } });
|
|
100
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kLXNoZWxmbWFyay1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlybWlkb24vY2FkbXVzLXBhcnQtY29kaWNvbG9neS1zaGVsZm1hcmtzL3NyYy9saWIvY29kLXNoZWxmbWFyay1lZGl0b3IvY29kLXNoZWxmbWFyay1lZGl0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlybWlkb24vY2FkbXVzLXBhcnQtY29kaWNvbG9neS1zaGVsZm1hcmtzL3NyYy9saWIvY29kLXNoZWxmbWFyay1lZGl0b3IvY29kLXNoZWxmbWFyay1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBSUwsVUFBVSxHQUNYLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7O0FBU3hCLE1BQU0sT0FBTywyQkFBMkI7SUErQnRDLFlBQVksV0FBd0I7UUFDbEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLFlBQVksRUFBZ0IsQ0FBQztRQUN4RCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDM0MsT0FBTztRQUNQLElBQUksQ0FBQyxHQUFHLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQy9ELElBQUksQ0FBQyxJQUFJLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUU7WUFDcEMsVUFBVSxDQUFDLFFBQVE7WUFDbkIsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7U0FDekIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLE9BQU8sR0FBRyxXQUFX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LElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDVixPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuQyxDQUFDOzt3SEFuR1UsMkJBQTJCOzRHQUEzQiwyQkFBMkIsd09DZnhDLDR2SEF5SEE7MkZEMUdhLDJCQUEyQjtrQkFMdkMsU0FBUzsrQkFDRSw2QkFBNkI7a0dBUTVCLFNBQVM7c0JBRG5CLEtBQUs7Z0JBV0MsVUFBVTtzQkFEaEIsS0FBSztnQkFJQyxVQUFVO3NCQURoQixLQUFLO2dCQUlDLGVBQWU7c0JBRHJCLE1BQU07Z0JBR0EsV0FBVztzQkFEakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBGb3JtQnVpbGRlcixcclxuICBGb3JtQ29udHJvbCxcclxuICBGb3JtR3JvdXAsXHJcbiAgVmFsaWRhdG9ycyxcclxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFRoZXNhdXJ1c0VudHJ5IH0gZnJvbSAnQG15cm1pZG9uL2NhZG11cy1jb3JlJztcclxuaW1wb3J0IHsgQ29kU2hlbGZtYXJrIH0gZnJvbSAnLi4vY29kLXNoZWxmbWFya3MtcGFydCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NhZG11cy1jb2Qtc2hlbGZtYXJrLWVkaXRvcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvZC1zaGVsZm1hcmstZWRpdG9yLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jb2Qtc2hlbGZtYXJrLWVkaXRvci5jb21wb25lbnQuY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb2RTaGVsZm1hcmtFZGl0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHByaXZhdGUgX3NoZWxmbWFyazogQ29kU2hlbGZtYXJrIHwgdW5kZWZpbmVkO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBnZXQgc2hlbGZtYXJrKCk6IENvZFNoZWxmbWFyayB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2hlbGZtYXJrO1xyXG4gIH1cclxuICBwdWJsaWMgc2V0IHNoZWxmbWFyayh2YWx1ZTogQ29kU2hlbGZtYXJrIHwgdW5kZWZpbmVkKSB7XHJcbiAgICB0aGlzLl9zaGVsZm1hcmsgPSB2YWx1ZTtcclxuICAgIHRoaXMudXBkYXRlRm9ybSh2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICAvLyBjb2Qtc2hlbGZtYXJrLXRhZ3NcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyB0YWdFbnRyaWVzOiBUaGVzYXVydXNFbnRyeVtdIHwgdW5kZWZpbmVkO1xyXG4gIC8vIGNvZC1zaGVsZm1hcmstbGlicmFyaWVzXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgbGliRW50cmllczogVGhlc2F1cnVzRW50cnlbXSB8IHVuZGVmaW5lZDtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIHNoZWxmbWFya0NoYW5nZTogRXZlbnRFbWl0dGVyPENvZFNoZWxmbWFyaz47XHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIGVkaXRvckNsb3NlOiBFdmVudEVtaXR0ZXI8YW55PjtcclxuXHJcbiAgcHVibGljIHRhZzogRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD47XHJcbiAgcHVibGljIGNpdHk6IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+O1xyXG4gIHB1YmxpYyBsaWJyYXJ5OiBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPjtcclxuICBwdWJsaWMgZnVuZDogRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD47XHJcbiAgcHVibGljIGxvY2F0aW9uOiBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPjtcclxuICBwdWJsaWMgZm9ybTogRm9ybUdyb3VwO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIpIHtcclxuICAgIHRoaXMuc2hlbGZtYXJrQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxDb2RTaGVsZm1hcms+KCk7XHJcbiAgICB0aGlzLmVkaXRvckNsb3NlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgICAvLyBmb3JtXHJcbiAgICB0aGlzLnRhZyA9IGZvcm1CdWlsZGVyLmNvbnRyb2wobnVsbCwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoNTApKTtcclxuICAgIHRoaXMuY2l0eSA9IGZvcm1CdWlsZGVyLmNvbnRyb2wobnVsbCwgW1xyXG4gICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkLFxyXG4gICAgICBWYWxpZGF0b3JzLm1heExlbmd0aCg1MCksXHJcbiAgICBdKTtcclxuICAgIHRoaXMubGlicmFyeSA9IGZvcm1CdWlsZGVyLmNvbnRyb2wobnVsbCwgW1xyXG4gICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkLFxyXG4gICAgICBWYWxpZGF0b3JzLm1heExlbmd0aCg1MCksXHJcbiAgICBdKTtcclxuICAgIHRoaXMuZnVuZCA9IGZvcm1CdWlsZGVyLmNvbnRyb2wobnVsbCwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoNTApKTtcclxuICAgIHRoaXMubG9jYXRpb24gPSBmb3JtQnVpbGRlci5jb250cm9sKG51bGwsIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDUwKSk7XHJcblxyXG4gICAgdGhpcy5mb3JtID0gZm9ybUJ1aWxkZXIuZ3JvdXAoe1xyXG4gICAgICB0YWc6IHRoaXMudGFnLFxyXG4gICAgICBjaXR5OiB0aGlzLmNpdHksXHJcbiAgICAgIGxpYnJhcnk6IHRoaXMubGlicmFyeSxcclxuICAgICAgZnVuZDogdGhpcy5mdW5kLFxyXG4gICAgICBsb2NhdGlvbjogdGhpcy5sb2NhdGlvbixcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5fc2hlbGZtYXJrKSB7XHJcbiAgICAgIHRoaXMudXBkYXRlRm9ybSh0aGlzLl9zaGVsZm1hcmspO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGVGb3JtKG1vZGVsOiBDb2RTaGVsZm1hcmsgfCB1bmRlZmluZWQpOiB2b2lkIHtcclxuICAgIGlmICghbW9kZWwpIHtcclxuICAgICAgdGhpcy5mb3JtLnJlc2V0KCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnRhZy5zZXRWYWx1ZShtb2RlbC50YWcgfHwgbnVsbCk7XHJcbiAgICB0aGlzLmNpdHkuc2V0VmFsdWUobW9kZWwuY2l0eSk7XHJcbiAgICB0aGlzLmxpYnJhcnkuc2V0VmFsdWUobW9kZWwubGlicmFyeSk7XHJcbiAgICB0aGlzLmZ1bmQuc2V0VmFsdWUobW9kZWwuZnVuZCB8fCBudWxsKTtcclxuICAgIHRoaXMubG9jYXRpb24uc2V0VmFsdWUobW9kZWwubG9jYXRpb24pO1xyXG4gICAgdGhpcy5mb3JtLm1hcmtBc1ByaXN0aW5lKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldE1vZGVsKCk6IENvZFNoZWxmbWFyayB8IG51bGwge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgdGFnOiB0aGlzLnRhZy52YWx1ZT8udHJpbSgpLFxyXG4gICAgICBjaXR5OiB0aGlzLmNpdHkudmFsdWU/LnRyaW0oKSB8fCAnJyxcclxuICAgICAgbGlicmFyeTogdGhpcy5saWJyYXJ5LnZhbHVlPy50cmltKCkgfHwgJycsXHJcbiAgICAgIGZ1bmQ6IHRoaXMuZnVuZC52YWx1ZT8udHJpbSgpLFxyXG4gICAgICBsb2NhdGlvbjogdGhpcy5sb2NhdGlvbi52YWx1ZT8udHJpbSgpIHx8ICcnLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjYW5jZWwoKTogdm9pZCB7XHJcbiAgICB0aGlzLmVkaXRvckNsb3NlLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzYXZlKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZm9ybS5pbnZhbGlkKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IG1vZGVsID0gdGhpcy5nZXRNb2RlbCgpO1xyXG4gICAgaWYgKCFtb2RlbCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnNoZWxmbWFya0NoYW5nZS5lbWl0KG1vZGVsKTtcclxuICB9XHJcbn1cclxuIiwiPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCIgKHN1Ym1pdCk9XCJzYXZlKClcIj5cclxuICA8ZGl2PlxyXG4gICAgPCEtLSB0YWcgKGJvdW5kKSAtLT5cclxuICAgIDxtYXQtZm9ybS1maWVsZCAqbmdJZj1cInRhZ0VudHJpZXM/Lmxlbmd0aFwiIHN0eWxlPVwid2lkdGg6IDhlbVwiPlxyXG4gICAgICA8bWF0LWxhYmVsPnRhZzwvbWF0LWxhYmVsPlxyXG4gICAgICA8bWF0LXNlbGVjdCBbZm9ybUNvbnRyb2xdPVwidGFnXCI+XHJcbiAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGUgb2YgdGFnRW50cmllc1wiIFt2YWx1ZV09XCJlLmlkXCI+e3tcclxuICAgICAgICAgIGUudmFsdWVcclxuICAgICAgICB9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIDwhLS0gdGFnIChmcmVlKSAtLT5cclxuICAgIDxtYXQtZm9ybS1maWVsZCAqbmdJZj1cIiF0YWdFbnRyaWVzPy5sZW5ndGhcIj5cclxuICAgICAgPG1hdC1sYWJlbD50YWc8L21hdC1sYWJlbD5cclxuICAgICAgPGlucHV0IG1hdElucHV0IFtmb3JtQ29udHJvbF09XCJ0YWdcIiAvPlxyXG4gICAgICA8bWF0LWVycm9yXHJcbiAgICAgICAgKm5nSWY9XCIkYW55KHRhZykuZXJyb3JzPy5tYXhMZW5ndGggJiYgKHRhZy5kaXJ0eSB8fCB0YWcudG91Y2hlZClcIlxyXG4gICAgICAgID50YWcgdG9vIGxvbmc8L21hdC1lcnJvclxyXG4gICAgICA+XHJcbiAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgPCEtLSBjaXR5IC0tPlxyXG4gICAgJm5ic3A7XHJcbiAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIDxtYXQtbGFiZWw+Y2l0eTwvbWF0LWxhYmVsPlxyXG4gICAgICA8aW5wdXQgbWF0SW5wdXQgW2Zvcm1Db250cm9sXT1cImNpdHlcIiAvPlxyXG4gICAgICA8bWF0LWVycm9yXHJcbiAgICAgICAgKm5nSWY9XCIkYW55KGNpdHkpLmVycm9ycz8ucmVxdWlyZWQgJiYgKGNpdHkuZGlydHkgfHwgY2l0eS50b3VjaGVkKVwiXHJcbiAgICAgICAgPmNpdHkgcmVxdWlyZWQ8L21hdC1lcnJvclxyXG4gICAgICA+XHJcbiAgICAgIDxtYXQtZXJyb3JcclxuICAgICAgICAqbmdJZj1cIiRhbnkoY2l0eSkuZXJyb3JzPy5tYXhMZW5ndGggJiYgKGNpdHkuZGlydHkgfHwgY2l0eS50b3VjaGVkKVwiXHJcbiAgICAgICAgPmNpdHkgdG9vIGxvbmc8L21hdC1lcnJvclxyXG4gICAgICA+XHJcbiAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXY+XHJcbiAgICA8IS0tIGxpYnJhcnkgKGJvdW5kKSAtLT5cclxuICAgIDxtYXQtZm9ybS1maWVsZCAqbmdJZj1cImxpYkVudHJpZXM/Lmxlbmd0aFwiIHN0eWxlPVwid2lkdGg6IDhlbVwiPlxyXG4gICAgICA8bWF0LWxhYmVsPmxpYnJhcnk8L21hdC1sYWJlbD5cclxuICAgICAgPG1hdC1zZWxlY3QgW2Zvcm1Db250cm9sXT1cImxpYnJhcnlcIj5cclxuICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgZSBvZiBsaWJFbnRyaWVzXCIgW3ZhbHVlXT1cImUuaWRcIj57e1xyXG4gICAgICAgICAgZS52YWx1ZVxyXG4gICAgICAgIH19PC9tYXQtb3B0aW9uPlxyXG4gICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgIDxtYXQtZXJyb3JcclxuICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgJGFueShsaWJyYXJ5KS5lcnJvcnM/LnJlcXVpcmVkICYmIChsaWJyYXJ5LmRpcnR5IHx8IGxpYnJhcnkudG91Y2hlZClcclxuICAgICAgICBcIlxyXG4gICAgICAgID5saWJyYXJ5IHJlcXVpcmVkPC9tYXQtZXJyb3JcclxuICAgICAgPlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIDwhLS0gbGlicmFyeSAoZnJlZSkgLS0+XHJcbiAgICA8bWF0LWZvcm0tZmllbGQgKm5nSWY9XCIhbGliRW50cmllcz8ubGVuZ3RoXCI+XHJcbiAgICAgIDxtYXQtbGFiZWw+bGlicmFyeTwvbWF0LWxhYmVsPlxyXG4gICAgICA8aW5wdXQgbWF0SW5wdXQgW2Zvcm1Db250cm9sXT1cImxpYnJhcnlcIiAvPlxyXG4gICAgICA8bWF0LWVycm9yXHJcbiAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgICRhbnkobGlicmFyeSkuZXJyb3JzPy5yZXF1aXJlZCAmJiAobGlicmFyeS5kaXJ0eSB8fCBsaWJyYXJ5LnRvdWNoZWQpXHJcbiAgICAgICAgXCJcclxuICAgICAgICA+bGlicmFyeSByZXF1aXJlZDwvbWF0LWVycm9yXHJcbiAgICAgID5cclxuICAgICAgPG1hdC1lcnJvclxyXG4gICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAkYW55KGxpYnJhcnkpLmVycm9ycz8ubWF4TGVuZ3RoICYmIChsaWJyYXJ5LmRpcnR5IHx8IGxpYnJhcnkudG91Y2hlZClcclxuICAgICAgICBcIlxyXG4gICAgICAgID5saWJyYXJ5IHRvbyBsb25nPC9tYXQtZXJyb3JcclxuICAgICAgPlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIDwhLS0gZnVuZCAtLT5cclxuICAgICZuYnNwO1xyXG4gICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICA8bWF0LWxhYmVsPmZ1bmQ8L21hdC1sYWJlbD5cclxuICAgICAgPGlucHV0IG1hdElucHV0IFtmb3JtQ29udHJvbF09XCJmdW5kXCIgLz5cclxuICAgICAgPG1hdC1lcnJvclxyXG4gICAgICAgICpuZ0lmPVwiJGFueShmdW5kKS5lcnJvcnM/Lm1heExlbmd0aCAmJiAoZnVuZC5kaXJ0eSB8fCBmdW5kLnRvdWNoZWQpXCJcclxuICAgICAgICA+ZnVuZCB0b28gbG9uZzwvbWF0LWVycm9yXHJcbiAgICAgID5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8IS0tIGxvY2F0aW9uIC0tPlxyXG4gICAgJm5ic3A7XHJcbiAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIDxtYXQtbGFiZWw+bG9jYXRpb248L21hdC1sYWJlbD5cclxuICAgICAgPGlucHV0IG1hdElucHV0IFtmb3JtQ29udHJvbF09XCJsb2NhdGlvblwiIC8+XHJcbiAgICAgIDxtYXQtZXJyb3JcclxuICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgJGFueShsb2NhdGlvbikuZXJyb3JzPy5yZXF1aXJlZCAmJlxyXG4gICAgICAgICAgKGxvY2F0aW9uLmRpcnR5IHx8IGxvY2F0aW9uLnRvdWNoZWQpXHJcbiAgICAgICAgXCJcclxuICAgICAgICA+bG9jYXRpb24gcmVxdWlyZWQ8L21hdC1lcnJvclxyXG4gICAgICA+XHJcbiAgICAgIDxtYXQtZXJyb3JcclxuICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgJGFueShsb2NhdGlvbikuZXJyb3JzPy5tYXhMZW5ndGggJiZcclxuICAgICAgICAgIChsb2NhdGlvbi5kaXJ0eSB8fCBsb2NhdGlvbi50b3VjaGVkKVxyXG4gICAgICAgIFwiXHJcbiAgICAgICAgPmxvY2F0aW9uIHRvbyBsb25nPC9tYXQtZXJyb3JcclxuICAgICAgPlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICA8L2Rpdj5cclxuICA8IS0tIGJ1dHRvbnMgLS0+XHJcbiAgPGRpdj5cclxuICAgIDxidXR0b25cclxuICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgIGNvbG9yPVwid2FyblwiXHJcbiAgICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICBtYXRUb29sdGlwPVwiRGlzY2FyZCBjaGFuZ2VzXCJcclxuICAgICAgKGNsaWNrKT1cImNhbmNlbCgpXCJcclxuICAgID5cclxuICAgICAgPG1hdC1pY29uPmNsZWFyPC9tYXQtaWNvbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvblxyXG4gICAgICB0eXBlPVwic3VibWl0XCJcclxuICAgICAgY29sb3I9XCJwcmltYXJ5XCJcclxuICAgICAgbWF0LWljb24tYnV0dG9uXHJcbiAgICAgIG1hdFRvb2x0aXA9XCJBY2NlcHQgY2hhbmdlc1wiXHJcbiAgICAgIFtkaXNhYmxlZF09XCJmb3JtLmludmFsaWQgfHwgZm9ybS5wcmlzdGluZVwiXHJcbiAgICA+XHJcbiAgICAgIDxtYXQtaWNvbj5jaGVja19jaXJjbGU8L21hdC1pY29uPlxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbjwvZm9ybT5cclxuIl19
|
|
100
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kLXNoZWxmbWFyay1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlybWlkb24vY2FkbXVzLXBhcnQtY29kaWNvbG9neS1zaGVsZm1hcmtzL3NyYy9saWIvY29kLXNoZWxmbWFyay1lZGl0b3IvY29kLXNoZWxmbWFyay1lZGl0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlybWlkb24vY2FkbXVzLXBhcnQtY29kaWNvbG9neS1zaGVsZm1hcmtzL3NyYy9saWIvY29kLXNoZWxmbWFyay1lZGl0b3IvY29kLXNoZWxmbWFyay1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBSUwsVUFBVSxHQUNYLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7O0FBU3hCLE1BQU0sT0FBTywyQkFBMkI7SUFrQ3RDLFlBQVksV0FBd0I7UUFDbEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLFlBQVksRUFBZ0IsQ0FBQztRQUN4RCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDM0MsT0FBTztRQUNQLElBQUksQ0FBQyxHQUFHLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQy9ELElBQUksQ0FBQyxJQUFJLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUU7WUFDcEMsVUFBVSxDQUFDLFFBQVE7WUFDbkIsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7U0FDekIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLE9BQU8sR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRTtZQUN2QyxVQUFVLENBQUMsUUFBUTtZQUNuQixVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztTQUN6QixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsSUFBSSxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNoRSxJQUFJLENBQUMsUUFBUSxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUVwRSxJQUFJLENBQUMsSUFBSSxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUM7WUFDNUIsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHO1lBQ2IsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3JCLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNmLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtTQUN4QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBdERELElBQ1csU0FBUztRQUNsQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQUNELElBQVcsU0FBUyxDQUFDLEtBQStCO1FBQ2xELElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxLQUFLLEVBQUU7WUFDN0IsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFDeEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBOENELFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDbkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDbEM7SUFDSCxDQUFDO0lBRU8sVUFBVSxDQUFDLEtBQStCO1FBQ2hELElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDVixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2xCLE9BQU87U0FDUjtRQUVELElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFTyxRQUFRO1FBQ2QsT0FBTztZQUNMLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDM0IsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUU7WUFDbkMsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUU7WUFDekMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRTtZQUM3QixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRTtTQUM1QyxDQUFDO0lBQ0osQ0FBQztJQUVNLE1BQU07UUFDWCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTSxJQUFJO1FBQ1QsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNyQixPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNsQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDN0MsQ0FBQzs7d0hBbkdVLDJCQUEyQjs0R0FBM0IsMkJBQTJCLHdPQ2Z4Qyw0dkhBeUhBOzJGRDFHYSwyQkFBMkI7a0JBTHZDLFNBQVM7K0JBQ0UsNkJBQTZCO2tHQVE1QixTQUFTO3NCQURuQixLQUFLO2dCQWNDLFVBQVU7c0JBRGhCLEtBQUs7Z0JBSUMsVUFBVTtzQkFEaEIsS0FBSztnQkFJQyxlQUFlO3NCQURyQixNQUFNO2dCQUdBLFdBQVc7c0JBRGpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgRm9ybUJ1aWxkZXIsXHJcbiAgRm9ybUNvbnRyb2wsXHJcbiAgRm9ybUdyb3VwLFxyXG4gIFZhbGlkYXRvcnMsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBUaGVzYXVydXNFbnRyeSB9IGZyb20gJ0BteXJtaWRvbi9jYWRtdXMtY29yZSc7XHJcbmltcG9ydCB7IENvZFNoZWxmbWFyayB9IGZyb20gJy4uL2NvZC1zaGVsZm1hcmtzLXBhcnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjYWRtdXMtY29kLXNoZWxmbWFyay1lZGl0b3InLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb2Qtc2hlbGZtYXJrLWVkaXRvci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY29kLXNoZWxmbWFyay1lZGl0b3IuY29tcG9uZW50LmNzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29kU2hlbGZtYXJrRWRpdG9yQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBwcml2YXRlIF9zaGVsZm1hcms6IENvZFNoZWxmbWFyayB8IHVuZGVmaW5lZDtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZ2V0IHNoZWxmbWFyaygpOiBDb2RTaGVsZm1hcmsgfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NoZWxmbWFyaztcclxuICB9XHJcbiAgcHVibGljIHNldCBzaGVsZm1hcmsodmFsdWU6IENvZFNoZWxmbWFyayB8IHVuZGVmaW5lZCkge1xyXG4gICAgaWYgKHRoaXMuX3NoZWxmbWFyayA9PT0gdmFsdWUpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fc2hlbGZtYXJrID0gdmFsdWU7XHJcbiAgICB0aGlzLnVwZGF0ZUZvcm0odmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgLy8gY29kLXNoZWxmbWFyay10YWdzXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgdGFnRW50cmllczogVGhlc2F1cnVzRW50cnlbXSB8IHVuZGVmaW5lZDtcclxuICAvLyBjb2Qtc2hlbGZtYXJrLWxpYnJhcmllc1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGxpYkVudHJpZXM6IFRoZXNhdXJ1c0VudHJ5W10gfCB1bmRlZmluZWQ7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBzaGVsZm1hcmtDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDb2RTaGVsZm1hcms+O1xyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBlZGl0b3JDbG9zZTogRXZlbnRFbWl0dGVyPGFueT47XHJcblxyXG4gIHB1YmxpYyB0YWc6IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+O1xyXG4gIHB1YmxpYyBjaXR5OiBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPjtcclxuICBwdWJsaWMgbGlicmFyeTogRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD47XHJcbiAgcHVibGljIGZ1bmQ6IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+O1xyXG4gIHB1YmxpYyBsb2NhdGlvbjogRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD47XHJcbiAgcHVibGljIGZvcm06IEZvcm1Hcm91cDtcclxuXHJcbiAgY29uc3RydWN0b3IoZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyKSB7XHJcbiAgICB0aGlzLnNoZWxmbWFya0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q29kU2hlbGZtYXJrPigpO1xyXG4gICAgdGhpcy5lZGl0b3JDbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gICAgLy8gZm9ybVxyXG4gICAgdGhpcy50YWcgPSBmb3JtQnVpbGRlci5jb250cm9sKG51bGwsIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDUwKSk7XHJcbiAgICB0aGlzLmNpdHkgPSBmb3JtQnVpbGRlci5jb250cm9sKG51bGwsIFtcclxuICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZCxcclxuICAgICAgVmFsaWRhdG9ycy5tYXhMZW5ndGgoNTApLFxyXG4gICAgXSk7XHJcbiAgICB0aGlzLmxpYnJhcnkgPSBmb3JtQnVpbGRlci5jb250cm9sKG51bGwsIFtcclxuICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZCxcclxuICAgICAgVmFsaWRhdG9ycy5tYXhMZW5ndGgoNTApLFxyXG4gICAgXSk7XHJcbiAgICB0aGlzLmZ1bmQgPSBmb3JtQnVpbGRlci5jb250cm9sKG51bGwsIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDUwKSk7XHJcbiAgICB0aGlzLmxvY2F0aW9uID0gZm9ybUJ1aWxkZXIuY29udHJvbChudWxsLCBWYWxpZGF0b3JzLm1heExlbmd0aCg1MCkpO1xyXG5cclxuICAgIHRoaXMuZm9ybSA9IGZvcm1CdWlsZGVyLmdyb3VwKHtcclxuICAgICAgdGFnOiB0aGlzLnRhZyxcclxuICAgICAgY2l0eTogdGhpcy5jaXR5LFxyXG4gICAgICBsaWJyYXJ5OiB0aGlzLmxpYnJhcnksXHJcbiAgICAgIGZ1bmQ6IHRoaXMuZnVuZCxcclxuICAgICAgbG9jYXRpb246IHRoaXMubG9jYXRpb24sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuX3NoZWxmbWFyaykge1xyXG4gICAgICB0aGlzLnVwZGF0ZUZvcm0odGhpcy5fc2hlbGZtYXJrKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlRm9ybShtb2RlbDogQ29kU2hlbGZtYXJrIHwgdW5kZWZpbmVkKTogdm9pZCB7XHJcbiAgICBpZiAoIW1vZGVsKSB7XHJcbiAgICAgIHRoaXMuZm9ybS5yZXNldCgpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy50YWcuc2V0VmFsdWUobW9kZWwudGFnIHx8IG51bGwpO1xyXG4gICAgdGhpcy5jaXR5LnNldFZhbHVlKG1vZGVsLmNpdHkpO1xyXG4gICAgdGhpcy5saWJyYXJ5LnNldFZhbHVlKG1vZGVsLmxpYnJhcnkpO1xyXG4gICAgdGhpcy5mdW5kLnNldFZhbHVlKG1vZGVsLmZ1bmQgfHwgbnVsbCk7XHJcbiAgICB0aGlzLmxvY2F0aW9uLnNldFZhbHVlKG1vZGVsLmxvY2F0aW9uKTtcclxuICAgIHRoaXMuZm9ybS5tYXJrQXNQcmlzdGluZSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRNb2RlbCgpOiBDb2RTaGVsZm1hcmsge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgdGFnOiB0aGlzLnRhZy52YWx1ZT8udHJpbSgpLFxyXG4gICAgICBjaXR5OiB0aGlzLmNpdHkudmFsdWU/LnRyaW0oKSB8fCAnJyxcclxuICAgICAgbGlicmFyeTogdGhpcy5saWJyYXJ5LnZhbHVlPy50cmltKCkgfHwgJycsXHJcbiAgICAgIGZ1bmQ6IHRoaXMuZnVuZC52YWx1ZT8udHJpbSgpLFxyXG4gICAgICBsb2NhdGlvbjogdGhpcy5sb2NhdGlvbi52YWx1ZT8udHJpbSgpIHx8ICcnLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjYW5jZWwoKTogdm9pZCB7XHJcbiAgICB0aGlzLmVkaXRvckNsb3NlLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzYXZlKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZm9ybS5pbnZhbGlkKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuX3NoZWxmbWFyayA9IHRoaXMuZ2V0TW9kZWwoKTtcclxuICAgIHRoaXMuc2hlbGZtYXJrQ2hhbmdlLmVtaXQodGhpcy5fc2hlbGZtYXJrKTtcclxuICB9XHJcbn1cclxuIiwiPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCIgKHN1Ym1pdCk9XCJzYXZlKClcIj5cclxuICA8ZGl2PlxyXG4gICAgPCEtLSB0YWcgKGJvdW5kKSAtLT5cclxuICAgIDxtYXQtZm9ybS1maWVsZCAqbmdJZj1cInRhZ0VudHJpZXM/Lmxlbmd0aFwiIHN0eWxlPVwid2lkdGg6IDhlbVwiPlxyXG4gICAgICA8bWF0LWxhYmVsPnRhZzwvbWF0LWxhYmVsPlxyXG4gICAgICA8bWF0LXNlbGVjdCBbZm9ybUNvbnRyb2xdPVwidGFnXCI+XHJcbiAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGUgb2YgdGFnRW50cmllc1wiIFt2YWx1ZV09XCJlLmlkXCI+e3tcclxuICAgICAgICAgIGUudmFsdWVcclxuICAgICAgICB9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIDwhLS0gdGFnIChmcmVlKSAtLT5cclxuICAgIDxtYXQtZm9ybS1maWVsZCAqbmdJZj1cIiF0YWdFbnRyaWVzPy5sZW5ndGhcIj5cclxuICAgICAgPG1hdC1sYWJlbD50YWc8L21hdC1sYWJlbD5cclxuICAgICAgPGlucHV0IG1hdElucHV0IFtmb3JtQ29udHJvbF09XCJ0YWdcIiAvPlxyXG4gICAgICA8bWF0LWVycm9yXHJcbiAgICAgICAgKm5nSWY9XCIkYW55KHRhZykuZXJyb3JzPy5tYXhMZW5ndGggJiYgKHRhZy5kaXJ0eSB8fCB0YWcudG91Y2hlZClcIlxyXG4gICAgICAgID50YWcgdG9vIGxvbmc8L21hdC1lcnJvclxyXG4gICAgICA+XHJcbiAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgPCEtLSBjaXR5IC0tPlxyXG4gICAgJm5ic3A7XHJcbiAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIDxtYXQtbGFiZWw+Y2l0eTwvbWF0LWxhYmVsPlxyXG4gICAgICA8aW5wdXQgbWF0SW5wdXQgW2Zvcm1Db250cm9sXT1cImNpdHlcIiAvPlxyXG4gICAgICA8bWF0LWVycm9yXHJcbiAgICAgICAgKm5nSWY9XCIkYW55KGNpdHkpLmVycm9ycz8ucmVxdWlyZWQgJiYgKGNpdHkuZGlydHkgfHwgY2l0eS50b3VjaGVkKVwiXHJcbiAgICAgICAgPmNpdHkgcmVxdWlyZWQ8L21hdC1lcnJvclxyXG4gICAgICA+XHJcbiAgICAgIDxtYXQtZXJyb3JcclxuICAgICAgICAqbmdJZj1cIiRhbnkoY2l0eSkuZXJyb3JzPy5tYXhMZW5ndGggJiYgKGNpdHkuZGlydHkgfHwgY2l0eS50b3VjaGVkKVwiXHJcbiAgICAgICAgPmNpdHkgdG9vIGxvbmc8L21hdC1lcnJvclxyXG4gICAgICA+XHJcbiAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXY+XHJcbiAgICA8IS0tIGxpYnJhcnkgKGJvdW5kKSAtLT5cclxuICAgIDxtYXQtZm9ybS1maWVsZCAqbmdJZj1cImxpYkVudHJpZXM/Lmxlbmd0aFwiIHN0eWxlPVwid2lkdGg6IDhlbVwiPlxyXG4gICAgICA8bWF0LWxhYmVsPmxpYnJhcnk8L21hdC1sYWJlbD5cclxuICAgICAgPG1hdC1zZWxlY3QgW2Zvcm1Db250cm9sXT1cImxpYnJhcnlcIj5cclxuICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgZSBvZiBsaWJFbnRyaWVzXCIgW3ZhbHVlXT1cImUuaWRcIj57e1xyXG4gICAgICAgICAgZS52YWx1ZVxyXG4gICAgICAgIH19PC9tYXQtb3B0aW9uPlxyXG4gICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgIDxtYXQtZXJyb3JcclxuICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgJGFueShsaWJyYXJ5KS5lcnJvcnM/LnJlcXVpcmVkICYmIChsaWJyYXJ5LmRpcnR5IHx8IGxpYnJhcnkudG91Y2hlZClcclxuICAgICAgICBcIlxyXG4gICAgICAgID5saWJyYXJ5IHJlcXVpcmVkPC9tYXQtZXJyb3JcclxuICAgICAgPlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIDwhLS0gbGlicmFyeSAoZnJlZSkgLS0+XHJcbiAgICA8bWF0LWZvcm0tZmllbGQgKm5nSWY9XCIhbGliRW50cmllcz8ubGVuZ3RoXCI+XHJcbiAgICAgIDxtYXQtbGFiZWw+bGlicmFyeTwvbWF0LWxhYmVsPlxyXG4gICAgICA8aW5wdXQgbWF0SW5wdXQgW2Zvcm1Db250cm9sXT1cImxpYnJhcnlcIiAvPlxyXG4gICAgICA8bWF0LWVycm9yXHJcbiAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgICRhbnkobGlicmFyeSkuZXJyb3JzPy5yZXF1aXJlZCAmJiAobGlicmFyeS5kaXJ0eSB8fCBsaWJyYXJ5LnRvdWNoZWQpXHJcbiAgICAgICAgXCJcclxuICAgICAgICA+bGlicmFyeSByZXF1aXJlZDwvbWF0LWVycm9yXHJcbiAgICAgID5cclxuICAgICAgPG1hdC1lcnJvclxyXG4gICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAkYW55KGxpYnJhcnkpLmVycm9ycz8ubWF4TGVuZ3RoICYmIChsaWJyYXJ5LmRpcnR5IHx8IGxpYnJhcnkudG91Y2hlZClcclxuICAgICAgICBcIlxyXG4gICAgICAgID5saWJyYXJ5IHRvbyBsb25nPC9tYXQtZXJyb3JcclxuICAgICAgPlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIDwhLS0gZnVuZCAtLT5cclxuICAgICZuYnNwO1xyXG4gICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICA8bWF0LWxhYmVsPmZ1bmQ8L21hdC1sYWJlbD5cclxuICAgICAgPGlucHV0IG1hdElucHV0IFtmb3JtQ29udHJvbF09XCJmdW5kXCIgLz5cclxuICAgICAgPG1hdC1lcnJvclxyXG4gICAgICAgICpuZ0lmPVwiJGFueShmdW5kKS5lcnJvcnM/Lm1heExlbmd0aCAmJiAoZnVuZC5kaXJ0eSB8fCBmdW5kLnRvdWNoZWQpXCJcclxuICAgICAgICA+ZnVuZCB0b28gbG9uZzwvbWF0LWVycm9yXHJcbiAgICAgID5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8IS0tIGxvY2F0aW9uIC0tPlxyXG4gICAgJm5ic3A7XHJcbiAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIDxtYXQtbGFiZWw+bG9jYXRpb248L21hdC1sYWJlbD5cclxuICAgICAgPGlucHV0IG1hdElucHV0IFtmb3JtQ29udHJvbF09XCJsb2NhdGlvblwiIC8+XHJcbiAgICAgIDxtYXQtZXJyb3JcclxuICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgJGFueShsb2NhdGlvbikuZXJyb3JzPy5yZXF1aXJlZCAmJlxyXG4gICAgICAgICAgKGxvY2F0aW9uLmRpcnR5IHx8IGxvY2F0aW9uLnRvdWNoZWQpXHJcbiAgICAgICAgXCJcclxuICAgICAgICA+bG9jYXRpb24gcmVxdWlyZWQ8L21hdC1lcnJvclxyXG4gICAgICA+XHJcbiAgICAgIDxtYXQtZXJyb3JcclxuICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgJGFueShsb2NhdGlvbikuZXJyb3JzPy5tYXhMZW5ndGggJiZcclxuICAgICAgICAgIChsb2NhdGlvbi5kaXJ0eSB8fCBsb2NhdGlvbi50b3VjaGVkKVxyXG4gICAgICAgIFwiXHJcbiAgICAgICAgPmxvY2F0aW9uIHRvbyBsb25nPC9tYXQtZXJyb3JcclxuICAgICAgPlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICA8L2Rpdj5cclxuICA8IS0tIGJ1dHRvbnMgLS0+XHJcbiAgPGRpdj5cclxuICAgIDxidXR0b25cclxuICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgIGNvbG9yPVwid2FyblwiXHJcbiAgICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICBtYXRUb29sdGlwPVwiRGlzY2FyZCBjaGFuZ2VzXCJcclxuICAgICAgKGNsaWNrKT1cImNhbmNlbCgpXCJcclxuICAgID5cclxuICAgICAgPG1hdC1pY29uPmNsZWFyPC9tYXQtaWNvbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvblxyXG4gICAgICB0eXBlPVwic3VibWl0XCJcclxuICAgICAgY29sb3I9XCJwcmltYXJ5XCJcclxuICAgICAgbWF0LWljb24tYnV0dG9uXHJcbiAgICAgIG1hdFRvb2x0aXA9XCJBY2NlcHQgY2hhbmdlc1wiXHJcbiAgICAgIFtkaXNhYmxlZF09XCJmb3JtLmludmFsaWQgfHwgZm9ybS5wcmlzdGluZVwiXHJcbiAgICA+XHJcbiAgICAgIDxtYXQtaWNvbj5jaGVja19jaXJjbGU8L21hdC1pY29uPlxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbjwvZm9ybT5cclxuIl19
|
|
@@ -77,34 +77,36 @@ export class CodShelfmarksPartComponent extends ModelEditorComponentBase {
|
|
|
77
77
|
return part;
|
|
78
78
|
}
|
|
79
79
|
addShelfmark() {
|
|
80
|
-
|
|
80
|
+
this.editShelfmark({
|
|
81
81
|
city: '',
|
|
82
82
|
library: this.libEntries?.length ? this.libEntries[0].id : '',
|
|
83
83
|
location: '',
|
|
84
|
-
};
|
|
85
|
-
this.shelfmarks.setValue([...this.shelfmarks.value, entry]);
|
|
86
|
-
this.editShelfmark(this.shelfmarks.value.length - 1);
|
|
84
|
+
});
|
|
87
85
|
}
|
|
88
|
-
editShelfmark(index) {
|
|
89
|
-
if (
|
|
86
|
+
editShelfmark(shelfmark, index = -1) {
|
|
87
|
+
if (!shelfmark) {
|
|
90
88
|
this._editedIndex = -1;
|
|
91
89
|
this.tabIndex = 0;
|
|
92
90
|
this.editedShelfmark = undefined;
|
|
93
91
|
}
|
|
94
92
|
else {
|
|
95
93
|
this._editedIndex = index;
|
|
96
|
-
this.editedShelfmark =
|
|
94
|
+
this.editedShelfmark = shelfmark;
|
|
97
95
|
setTimeout(() => {
|
|
98
96
|
this.tabIndex = 1;
|
|
99
|
-
}
|
|
97
|
+
});
|
|
100
98
|
}
|
|
101
99
|
}
|
|
102
|
-
onShelfmarkSave(
|
|
103
|
-
|
|
104
|
-
this.
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
100
|
+
onShelfmarkSave(shelfmark) {
|
|
101
|
+
const shelfmarks = [...this.shelfmarks.value];
|
|
102
|
+
if (this._editedIndex > -1) {
|
|
103
|
+
shelfmarks.splice(this._editedIndex, 1, shelfmark);
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
shelfmarks.push(shelfmark);
|
|
107
|
+
}
|
|
108
|
+
this.shelfmarks.setValue(shelfmarks);
|
|
109
|
+
this.editShelfmark(null);
|
|
108
110
|
}
|
|
109
111
|
deleteShelfmark(index) {
|
|
110
112
|
this._dialogService
|
|
@@ -139,10 +141,10 @@ export class CodShelfmarksPartComponent extends ModelEditorComponentBase {
|
|
|
139
141
|
this.shelfmarks.setValue(entries);
|
|
140
142
|
}
|
|
141
143
|
}
|
|
142
|
-
CodShelfmarksPartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.
|
|
143
|
-
CodShelfmarksPartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.
|
|
144
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.
|
|
144
|
+
CodShelfmarksPartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: CodShelfmarksPartComponent, deps: [{ token: i1.AuthJwtService }, { token: i2.FormBuilder }, { token: i3.DialogService }], target: i0.ɵɵFactoryTarget.Component });
|
|
145
|
+
CodShelfmarksPartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.3", type: CodShelfmarksPartComponent, selector: "cadmus-cod-shelfmarks-part", usesInheritance: true, ngImport: i0, template: "<form [formGroup]=\"form\" (submit)=\"save()\">\r\n <mat-card appearance=\"outlined\">\r\n <mat-card-header>\r\n <div mat-card-avatar>\r\n <mat-icon>picture_in_picture</mat-icon>\r\n </div>\r\n <mat-card-title>Shelfmarks Part</mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <mat-tab-group [(selectedIndex)]=\"tabIndex\">\r\n <mat-tab label=\"shelfmarks\">\r\n <div>\r\n <button\r\n type=\"button\"\r\n mat-flat-button\r\n color=\"primary\"\r\n (click)=\"addShelfmark()\"\r\n >\r\n <mat-icon>add_circle</mat-icon> shelfmark\r\n </button>\r\n </div>\r\n <table *ngIf=\"shelfmarks?.value?.length\">\r\n <thead>\r\n <tr>\r\n <th></th>\r\n <th>tag</th>\r\n <th>city</th>\r\n <th>library</th>\r\n <th>fund</th>\r\n <th>location</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr\r\n *ngFor=\"\r\n let entry of shelfmarks?.value;\r\n let i = index;\r\n let first = first;\r\n let last = last\r\n \"\r\n >\r\n <td>\r\n <button\r\n type=\"button\"\r\n mat-icon-button\r\n color=\"primary\"\r\n matTooltip=\"Edit this shelfmark\"\r\n (click)=\"editShelfmark(entry, i)\"\r\n >\r\n <mat-icon>edit</mat-icon>\r\n </button>\r\n <button\r\n type=\"button\"\r\n mat-icon-button\r\n matTooltip=\"Move this shelfmark up\"\r\n [disabled]=\"first\"\r\n (click)=\"moveShelfmarkUp(i)\"\r\n >\r\n <mat-icon>arrow_upward</mat-icon>\r\n </button>\r\n <button\r\n type=\"button\"\r\n mat-icon-button\r\n matTooltip=\"Move this shelfmark down\"\r\n [disabled]=\"last\"\r\n (click)=\"moveShelfmarkDown(i)\"\r\n >\r\n <mat-icon>arrow_downward</mat-icon>\r\n </button>\r\n <button\r\n type=\"button\"\r\n mat-icon-button\r\n color=\"warn\"\r\n matTooltip=\"Delete this shelfmark\"\r\n (click)=\"deleteShelfmark(i)\"\r\n >\r\n <mat-icon>remove_circle</mat-icon>\r\n </button>\r\n </td>\r\n <td>{{ entry.tag }}</td>\r\n <td>{{ entry.city }}</td>\r\n <td>{{ entry.library }}</td>\r\n <td>{{ entry.fund }}</td>\r\n <td>{{ entry.location }}</td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </mat-tab>\r\n\r\n <mat-tab label=\"shelfmark\" *ngIf=\"editedShelfmark\">\r\n <cadmus-cod-shelfmark-editor\r\n [tagEntries]=\"tagEntries\"\r\n [libEntries]=\"libEntries\"\r\n [shelfmark]=\"editedShelfmark\"\r\n (shelfmarkChange)=\"onShelfmarkSave($event)\"\r\n (editorClose)=\"editShelfmark(null)\"\r\n ></cadmus-cod-shelfmark-editor>\r\n </mat-tab>\r\n </mat-tab-group>\r\n </mat-card-content>\r\n <mat-card-actions>\r\n <cadmus-close-save-buttons\r\n [form]=\"form\"\r\n [noSave]=\"userLevel < 2\"\r\n (closeRequest)=\"close()\"\r\n ></cadmus-close-save-buttons>\r\n </mat-card-actions>\r\n </mat-card>\r\n</form>\r\n", styles: ["th{font-weight:400;color:silver}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i5.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i6.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i6.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i6.MatCardAvatar, selector: "[mat-card-avatar], [matCardAvatar]" }, { kind: "directive", type: i6.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i6.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i6.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i8.MatTab, selector: "mat-tab", inputs: ["disabled"], exportAs: ["matTab"] }, { kind: "component", type: i8.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "disableRipple", "fitInkBarToContent", "mat-stretch-tabs"], exportAs: ["matTabGroup"] }, { kind: "directive", type: i9.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i10.CloseSaveButtonsComponent, selector: "cadmus-close-save-buttons", inputs: ["form", "noSave"], outputs: ["closeRequest"] }, { kind: "component", type: i11.CodShelfmarkEditorComponent, selector: "cadmus-cod-shelfmark-editor", inputs: ["shelfmark", "tagEntries", "libEntries"], outputs: ["shelfmarkChange", "editorClose"] }] });
|
|
146
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: CodShelfmarksPartComponent, decorators: [{
|
|
145
147
|
type: Component,
|
|
146
|
-
args: [{ selector: 'cadmus-cod-shelfmarks-part', template: "<form [formGroup]=\"form\" (submit)=\"save()\">\r\n <mat-card appearance=\"outlined\">\r\n <mat-card-header>\r\n <div mat-card-avatar>\r\n <mat-icon>picture_in_picture</mat-icon>\r\n </div>\r\n <mat-card-title>Shelfmarks Part</mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <mat-tab-group [(selectedIndex)]=\"tabIndex\">\r\n <mat-tab label=\"shelfmarks\">\r\n <div>\r\n <button\r\n type=\"button\"\r\n mat-
|
|
148
|
+
args: [{ selector: 'cadmus-cod-shelfmarks-part', template: "<form [formGroup]=\"form\" (submit)=\"save()\">\r\n <mat-card appearance=\"outlined\">\r\n <mat-card-header>\r\n <div mat-card-avatar>\r\n <mat-icon>picture_in_picture</mat-icon>\r\n </div>\r\n <mat-card-title>Shelfmarks Part</mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <mat-tab-group [(selectedIndex)]=\"tabIndex\">\r\n <mat-tab label=\"shelfmarks\">\r\n <div>\r\n <button\r\n type=\"button\"\r\n mat-flat-button\r\n color=\"primary\"\r\n (click)=\"addShelfmark()\"\r\n >\r\n <mat-icon>add_circle</mat-icon> shelfmark\r\n </button>\r\n </div>\r\n <table *ngIf=\"shelfmarks?.value?.length\">\r\n <thead>\r\n <tr>\r\n <th></th>\r\n <th>tag</th>\r\n <th>city</th>\r\n <th>library</th>\r\n <th>fund</th>\r\n <th>location</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr\r\n *ngFor=\"\r\n let entry of shelfmarks?.value;\r\n let i = index;\r\n let first = first;\r\n let last = last\r\n \"\r\n >\r\n <td>\r\n <button\r\n type=\"button\"\r\n mat-icon-button\r\n color=\"primary\"\r\n matTooltip=\"Edit this shelfmark\"\r\n (click)=\"editShelfmark(entry, i)\"\r\n >\r\n <mat-icon>edit</mat-icon>\r\n </button>\r\n <button\r\n type=\"button\"\r\n mat-icon-button\r\n matTooltip=\"Move this shelfmark up\"\r\n [disabled]=\"first\"\r\n (click)=\"moveShelfmarkUp(i)\"\r\n >\r\n <mat-icon>arrow_upward</mat-icon>\r\n </button>\r\n <button\r\n type=\"button\"\r\n mat-icon-button\r\n matTooltip=\"Move this shelfmark down\"\r\n [disabled]=\"last\"\r\n (click)=\"moveShelfmarkDown(i)\"\r\n >\r\n <mat-icon>arrow_downward</mat-icon>\r\n </button>\r\n <button\r\n type=\"button\"\r\n mat-icon-button\r\n color=\"warn\"\r\n matTooltip=\"Delete this shelfmark\"\r\n (click)=\"deleteShelfmark(i)\"\r\n >\r\n <mat-icon>remove_circle</mat-icon>\r\n </button>\r\n </td>\r\n <td>{{ entry.tag }}</td>\r\n <td>{{ entry.city }}</td>\r\n <td>{{ entry.library }}</td>\r\n <td>{{ entry.fund }}</td>\r\n <td>{{ entry.location }}</td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </mat-tab>\r\n\r\n <mat-tab label=\"shelfmark\" *ngIf=\"editedShelfmark\">\r\n <cadmus-cod-shelfmark-editor\r\n [tagEntries]=\"tagEntries\"\r\n [libEntries]=\"libEntries\"\r\n [shelfmark]=\"editedShelfmark\"\r\n (shelfmarkChange)=\"onShelfmarkSave($event)\"\r\n (editorClose)=\"editShelfmark(null)\"\r\n ></cadmus-cod-shelfmark-editor>\r\n </mat-tab>\r\n </mat-tab-group>\r\n </mat-card-content>\r\n <mat-card-actions>\r\n <cadmus-close-save-buttons\r\n [form]=\"form\"\r\n [noSave]=\"userLevel < 2\"\r\n (closeRequest)=\"close()\"\r\n ></cadmus-close-save-buttons>\r\n </mat-card-actions>\r\n </mat-card>\r\n</form>\r\n", styles: ["th{font-weight:400;color:silver}\n"] }]
|
|
147
149
|
}], ctorParameters: function () { return [{ type: i1.AuthJwtService }, { type: i2.FormBuilder }, { type: i3.DialogService }]; } });
|
|
148
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kLXNoZWxmbWFya3MtcGFydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJtaWRvbi9jYWRtdXMtcGFydC1jb2RpY29sb2d5LXNoZWxmbWFya3Mvc3JjL2xpYi9jb2Qtc2hlbGZtYXJrcy1wYXJ0L2NvZC1zaGVsZm1hcmtzLXBhcnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlybWlkb24vY2FkbXVzLXBhcnQtY29kaWNvbG9neS1zaGVsZm1hcmtzL3NyYy9saWIvY29kLXNoZWxmbWFya3MtcGFydC9jb2Qtc2hlbGZtYXJrcy1wYXJ0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFPbEQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXRDLE9BQU8sRUFBWSxpQkFBaUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBR2pFLE9BQU8sRUFBZ0Isd0JBQXdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUc3RSxPQUFPLEVBR0wsMEJBQTBCLEdBQzNCLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFFaEM7OztHQUdHO0FBTUgsTUFBTSxPQUFPLDBCQUNYLFNBQVEsd0JBQTJDO0lBZW5ELFlBQ0UsV0FBMkIsRUFDM0IsV0FBd0IsRUFDaEIsY0FBNkI7UUFFckMsS0FBSyxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUZ4QixtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUdyQyxJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQ2xCLE9BQU87UUFDUCxJQUFJLENBQUMsVUFBVSxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsRUFBRSxF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RkRoRmEsMEJBQTBCO2tCQUx0QyxTQUFTOytCQUNFLDRCQUE0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgRm9ybUNvbnRyb2wsXHJcbiAgRm9ybUJ1aWxkZXIsXHJcbiAgRm9ybUdyb3VwLFxyXG4gIFVudHlwZWRGb3JtR3JvdXAsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgZGVlcENvcHksIE5nVG9vbHNWYWxpZGF0b3JzIH0gZnJvbSAnQG15cm1pZG9uL25nLXRvb2xzJztcclxuaW1wb3J0IHsgRGlhbG9nU2VydmljZSB9IGZyb20gJ0BteXJtaWRvbi9uZy1tYXQtdG9vbHMnO1xyXG5pbXBvcnQgeyBBdXRoSnd0U2VydmljZSB9IGZyb20gJ0BteXJtaWRvbi9hdXRoLWp3dC1sb2dpbic7XHJcbmltcG9ydCB7IEVkaXRlZE9iamVjdCwgTW9kZWxFZGl0b3JDb21wb25lbnRCYXNlIH0gZnJvbSAnQG15cm1pZG9uL2NhZG11cy11aSc7XHJcbmltcG9ydCB7IFRoZXNhdXJpU2V0LCBUaGVzYXVydXNFbnRyeSB9IGZyb20gJ0BteXJtaWRvbi9jYWRtdXMtY29yZSc7XHJcblxyXG5pbXBvcnQge1xyXG4gIENvZFNoZWxmbWFyayxcclxuICBDb2RTaGVsZm1hcmtzUGFydCxcclxuICBDT0RfU0hFTEZNQVJLU19QQVJUX1RZUEVJRCxcclxufSBmcm9tICcuLi9jb2Qtc2hlbGZtYXJrcy1wYXJ0JztcclxuXHJcbi8qKlxyXG4gKiBDb2RTaGVsZm1hcmtzUGFydCBlZGl0b3IgY29tcG9uZW50LlxyXG4gKiBUaGVzYXVyaTogY29kLXNoZWxmbWFyay10YWdzLCBjb2Qtc2hlbGZtYXJrLWxpYnJhcmllcyAoYWxsIG9wdGlvbmFsKS5cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY2FkbXVzLWNvZC1zaGVsZm1hcmtzLXBhcnQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb2Qtc2hlbGZtYXJrcy1wYXJ0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jb2Qtc2hlbGZtYXJrcy1wYXJ0LmNvbXBvbmVudC5jc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIENvZFNoZWxmbWFya3NQYXJ0Q29tcG9uZW50XHJcbiAgZXh0ZW5kcyBNb2RlbEVkaXRvckNvbXBvbmVudEJhc2U8Q29kU2hlbGZtYXJrc1BhcnQ+XHJcbiAgaW1wbGVtZW50cyBPbkluaXRcclxue1xyXG4gIHByaXZhdGUgX2VkaXRlZEluZGV4OiBudW1iZXI7XHJcblxyXG4gIHB1YmxpYyB0YWJJbmRleDogbnVtYmVyO1xyXG4gIHB1YmxpYyBlZGl0ZWRTaGVsZm1hcms6IENvZFNoZWxmbWFyayB8IHVuZGVmaW5lZDtcclxuXHJcbiAgLy8gY29kLXNoZWxmbWFyay10YWdzXHJcbiAgcHVibGljIHRhZ0VudHJpZXM6IFRoZXNhdXJ1c0VudHJ5W10gfCB1bmRlZmluZWQ7XHJcbiAgLy8gY29kLXNoZWxmbWFyay1saWJyYXJpZXNcclxuICBwdWJsaWMgbGliRW50cmllczogVGhlc2F1cnVzRW50cnlbXSB8IHVuZGVmaW5lZDtcclxuXHJcbiAgcHVibGljIHNoZWxmbWFya3M6IEZvcm1Db250cm9sPENvZFNoZWxmbWFya1tdPjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBhdXRoU2VydmljZTogQXV0aEp3dFNlcnZpY2UsXHJcbiAgICBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsXHJcbiAgICBwcml2YXRlIF9kaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcihhdXRoU2VydmljZSwgZm9ybUJ1aWxkZXIpO1xyXG4gICAgdGhpcy5fZWRpdGVkSW5kZXggPSAtMTtcclxuICAgIHRoaXMudGFiSW5kZXggPSAwO1xyXG4gICAgLy8gZm9ybVxyXG4gICAgdGhpcy5zaGVsZm1hcmtzID0gZm9ybUJ1aWxkZXIuY29udHJvbChbXSwge1xyXG4gICAgICBub25OdWxsYWJsZTogdHJ1ZSxcclxuICAgICAgdmFsaWRhdG9yczogTmdUb29sc1ZhbGlkYXRvcnMuc3RyaWN0TWluTGVuZ3RoVmFsaWRhdG9yKDEpLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGJ1aWxkRm9ybShmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIpOiBGb3JtR3JvdXAgfCBVbnR5cGVkRm9ybUdyb3VwIHtcclxuICAgIHJldHVybiBmb3JtQnVpbGRlci5ncm91cCh7XHJcbiAgICAgIHNoZWxmbWFya3M6IHRoaXMuc2hlbGZtYXJrcyxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGVUaGVzYXVyaSh0aGVzYXVyaTogVGhlc2F1cmlTZXQpOiB2b2lkIHtcclxuICAgIGxldCBrZXkgPSAnY29kLXNoZWxmbWFyay10YWdzJztcclxuICAgIGlmICh0aGlzLmhhc1RoZXNhdXJ1cyhrZXkpKSB7XHJcbiAgICAgIHRoaXMudGFnRW50cmllcyA9IHRoZXNhdXJpW2tleV0uZW50cmllcztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudGFnRW50cmllcyA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICAgIGtleSA9ICdjb2Qtc2hlbGZtYXJrLWxpYnJhcmllcyc7XHJcbiAgICBpZiAodGhpcy5oYXNUaGVzYXVydXMoa2V5KSkge1xyXG4gICAgICB0aGlzLmxpYkVudHJpZXMgPSB0aGVzYXVyaVtrZXldLmVudHJpZXM7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmxpYkVudHJpZXMgPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZUZvcm0ocGFydD86IENvZFNoZWxmbWFya3NQYXJ0KTogdm9pZCB7XHJcbiAgICBpZiAoIXBhcnQpIHtcclxuICAgICAgdGhpcy5mb3JtLnJlc2V0KCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuc2hlbGZtYXJrcy5zZXRWYWx1ZShwYXJ0LnNoZWxmbWFya3MgfHwgW10pO1xyXG4gICAgdGhpcy5mb3JtLm1hcmtBc1ByaXN0aW5lKCk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgb25EYXRhU2V0KGRhdGE/OiBFZGl0ZWRPYmplY3Q8Q29kU2hlbGZtYXJrc1BhcnQ+KTogdm9pZCB7XHJcbiAgICAvLyB0aGVzYXVyaVxyXG4gICAgaWYgKGRhdGE/LnRoZXNhdXJpKSB7XHJcbiAgICAgIHRoaXMudXBkYXRlVGhlc2F1cmkoZGF0YS50aGVzYXVyaSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gZm9ybVxyXG4gICAgdGhpcy51cGRhdGVGb3JtKGRhdGE/LnZhbHVlKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBnZXRWYWx1ZSgpOiBDb2RTaGVsZm1hcmtzUGFydCB7XHJcbiAgICBsZXQgcGFydCA9IHRoaXMuZ2V0RWRpdGVkUGFydChcclxuICAgICAgQ09EX1NIRUxGTUFSS1NfUEFSVF9UWVBFSURcclxuICAgICkgYXMgQ29kU2hlbGZtYXJrc1BhcnQ7XHJcbiAgICBwYXJ0LnNoZWxmbWFya3MgPSB0aGlzLnNoZWxmbWFya3MudmFsdWUgfHwgW107XHJcbiAgICByZXR1cm4gcGFydDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhZGRTaGVsZm1hcmsoKTogdm9pZCB7XHJcbiAgICBjb25zdCBlbnRyeTogQ29kU2hlbGZtYXJrID0ge1xyXG4gICAgICBjaXR5OiAnJyxcclxuICAgICAgbGlicmFyeTogdGhpcy5saWJFbnRyaWVzPy5sZW5ndGggPyB0aGlzLmxpYkVudHJpZXNbMF0uaWQgOiAnJyxcclxuICAgICAgbG9jYXRpb246ICcnLFxyXG4gICAgfTtcclxuICAgIHRoaXMuc2hlbGZtYXJrcy5zZXRWYWx1ZShbLi4udGhpcy5zaGVsZm1hcmtzLnZhbHVlLCBlbnRyeV0pO1xyXG4gICAgdGhpcy5lZGl0U2hlbGZtYXJrKHRoaXMuc2hlbGZtYXJrcy52YWx1ZS5sZW5ndGggLSAxKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBlZGl0U2hlbGZtYXJrKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIGlmIChpbmRleCA8IDApIHtcclxuICAgICAgdGhpcy5fZWRpdGVkSW5kZXggPSAtMTtcclxuICAgICAgdGhpcy50YWJJbmRleCA9IDA7XHJcbiAgICAgIHRoaXMuZWRpdGVkU2hlbGZtYXJrID0gdW5kZWZpbmVkO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fZWRpdGVkSW5kZXggPSBpbmRleDtcclxuICAgICAgdGhpcy5lZGl0ZWRTaGVsZm1hcmsgPSB0aGlzLnNoZWxmbWFya3MudmFsdWVbaW5kZXhdO1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLnRhYkluZGV4ID0gMTtcclxuICAgICAgfSwgMzAwKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBvblNoZWxmbWFya1NhdmUoZW50cnk6IENvZFNoZWxmbWFyayk6IHZvaWQge1xyXG4gICAgdGhpcy5zaGVsZm1hcmtzLnNldFZhbHVlKFxyXG4gICAgICB0aGlzLnNoZWxmbWFya3MudmFsdWUubWFwKChlOiBDb2RTaGVsZm1hcmssIGk6IG51bWJlcikgPT5cclxuICAgICAgICBpID09PSB0aGlzLl9lZGl0ZWRJbmRleCA/IGVudHJ5IDogZVxyXG4gICAgICApXHJcbiAgICApO1xyXG4gICAgdGhpcy5lZGl0U2hlbGZtYXJrKC0xKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvblNoZWxmbWFya0Nsb3NlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5lZGl0U2hlbGZtYXJrKC0xKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBkZWxldGVTaGVsZm1hcmsoaW5kZXg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy5fZGlhbG9nU2VydmljZVxyXG4gICAgICAuY29uZmlybSgnQ29uZmlybWF0aW9uJywgJ0RlbGV0ZSBzaGVsZm1hcms/JylcclxuICAgICAgLnBpcGUodGFrZSgxKSlcclxuICAgICAgLnN1YnNjcmliZSgoeWVzKSA9PiB7XHJcbiAgICAgICAgaWYgKHllcykge1xyXG4gICAgICAgICAgY29uc3QgZW50cmllcyA9IFsuLi50aGlzLnNoZWxmbWFya3MudmFsdWVdO1xyXG4gICAgICAgICAgZW50cmllcy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICAgICAgdGhpcy5zaGVsZm1hcmtzLnNldFZhbHVlKGVudHJpZXMpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbW92ZVNoZWxmbWFya1VwKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIGlmIChpbmRleCA8IDEpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgZW50cnkgPSB0aGlzLnNoZWxmbWFya3MudmFsdWVbaW5kZXhdO1xyXG4gICAgY29uc3QgZW50cmllcyA9IFsuLi50aGlzLnNoZWxmbWFya3MudmFsdWVdO1xyXG4gICAgZW50cmllcy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgZW50cmllcy5zcGxpY2UoaW5kZXggLSAxLCAwLCBlbnRyeSk7XHJcbiAgICB0aGlzLnNoZWxmbWFya3Muc2V0VmFsdWUoZW50cmllcyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbW92ZVNoZWxmbWFya0Rvd24oaW5kZXg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgaWYgKGluZGV4ICsgMSA+PSB0aGlzLnNoZWxmbWFya3MudmFsdWUubGVuZ3RoKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IGVudHJ5ID0gdGhpcy5zaGVsZm1hcmtzLnZhbHVlW2luZGV4XTtcclxuICAgIGNvbnN0IGVudHJpZXMgPSBbLi4udGhpcy5zaGVsZm1hcmtzLnZhbHVlXTtcclxuICAgIGVudHJpZXMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgIGVudHJpZXMuc3BsaWNlKGluZGV4ICsgMSwgMCwgZW50cnkpO1xyXG4gICAgdGhpcy5zaGVsZm1hcmtzLnNldFZhbHVlKGVudHJpZXMpO1xyXG4gIH1cclxufVxyXG4iLCI8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIiAoc3VibWl0KT1cInNhdmUoKVwiPlxyXG4gIDxtYXQtY2FyZCBhcHBlYXJhbmNlPVwib3V0bGluZWRcIj5cclxuICAgIDxtYXQtY2FyZC1oZWFkZXI+XHJcbiAgICAgIDxkaXYgbWF0LWNhcmQtYXZhdGFyPlxyXG4gICAgICAgIDxtYXQtaWNvbj5waWN0dXJlX2luX3BpY3R1cmU8L21hdC1pY29uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPG1hdC1jYXJkLXRpdGxlPlNoZWxmbWFya3MgUGFydDwvbWF0LWNhcmQtdGl0bGU+XHJcbiAgICA8L21hdC1jYXJkLWhlYWRlcj5cclxuICAgIDxtYXQtY2FyZC1jb250ZW50PlxyXG4gICAgICA8bWF0LXRhYi1ncm91cCBbKHNlbGVjdGVkSW5kZXgpXT1cInRhYkluZGV4XCI+XHJcbiAgICAgICAgPG1hdC10YWIgbGFiZWw9XCJzaGVsZm1hcmtzXCI+XHJcbiAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgbWF0LWljb24tYnV0dG9uXHJcbiAgICAgICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcclxuICAgICAgICAgICAgICBtYXRUb29sdGlwPVwiQWRkIHNoZWxmbWFya1wiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImFkZFNoZWxmbWFyaygpXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxtYXQtaWNvbj5hZGRfY2lyY2xlPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDx0YWJsZSAqbmdJZj1cInNoZWxmbWFya3M/LnZhbHVlPy5sZW5ndGhcIj5cclxuICAgICAgICAgICAgPHRoZWFkPlxyXG4gICAgICAgICAgICAgIDx0cj5cclxuICAgICAgICAgICAgICAgIDx0aD48L3RoPlxyXG4gICAgICAgICAgICAgICAgPHRoPnRhZzwvdGg+XHJcbiAgICAgICAgICAgICAgICA8dGg+Y2l0eTwvdGg+XHJcbiAgICAgICAgICAgICAgICA8dGg+bGlicmFyeTwvdGg+XHJcbiAgICAgICAgICAgICAgICA8dGg+ZnVuZDwvdGg+XHJcbiAgICAgICAgICAgICAgICA8dGg+bG9jYXRpb248L3RoPlxyXG4gICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgIDwvdGhlYWQ+XHJcbiAgICAgICAgICAgIDx0Ym9keT5cclxuICAgICAgICAgICAgICA8dHJcclxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cIlxyXG4gICAgICAgICAgICAgICAgICBsZXQgZW50cnkgb2Ygc2hlbGZtYXJrcz8udmFsdWU7XHJcbiAgICAgICAgICAgICAgICAgIGxldCBpID0gaW5kZXg7XHJcbiAgICAgICAgICAgICAgICAgIGxldCBmaXJzdCA9IGZpcnN0O1xyXG4gICAgICAgICAgICAgICAgICBsZXQgbGFzdCA9IGxhc3RcclxuICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgbWF0LWljb24tYnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcclxuICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwPVwiRWRpdCB0aGlzIHNoZWxmbWFya1wiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImVkaXRTaGVsZm1hcmsoaSlcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPmVkaXQ8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJNb3ZlIHRoaXMgc2hlbGZtYXJrIHVwXCJcclxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZmlyc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJtb3ZlU2hlbGZtYXJrVXAoaSlcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPmFycm93X3Vwd2FyZDwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgbWF0LWljb24tYnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cIk1vdmUgdGhpcyBzaGVsZm1hcmsgZG93blwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImxhc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJtb3ZlU2hlbGZtYXJrRG93bihpKVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+YXJyb3dfZG93bndhcmQ8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yPVwid2FyblwiXHJcbiAgICAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cIkRlbGV0ZSB0aGlzIHNoZWxmbWFya1wiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImRlbGV0ZVNoZWxmbWFyayhpKVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+cmVtb3ZlX2NpcmNsZTwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgIDx0ZD57eyBlbnRyeS50YWcgfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgPHRkPnt7IGVudHJ5LmNpdHkgfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgPHRkPnt7IGVudHJ5LmxpYnJhcnkgfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgPHRkPnt7IGVudHJ5LmZ1bmQgfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgPHRkPnt7IGVudHJ5LmxvY2F0aW9uIH19PC90ZD5cclxuICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICA8L3Rib2R5PlxyXG4gICAgICAgICAgPC90YWJsZT5cclxuICAgICAgICA8L21hdC10YWI+XHJcblxyXG4gICAgICAgIDxtYXQtdGFiIGxhYmVsPVwic2hlbGZtYXJrXCIgKm5nSWY9XCJlZGl0ZWRTaGVsZm1hcmtcIj5cclxuICAgICAgICAgIDxjYWRtdXMtY29kLXNoZWxmbWFyay1lZGl0b3JcclxuICAgICAgICAgICAgW3RhZ0VudHJpZXNdPVwidGFnRW50cmllc1wiXHJcbiAgICAgICAgICAgIFtsaWJFbnRyaWVzXT1cImxpYkVudHJpZXNcIlxyXG4gICAgICAgICAgICBbc2hlbGZtYXJrXT1cImVkaXRlZFNoZWxmbWFya1wiXHJcbiAgICAgICAgICAgIChzaGVsZm1hcmtDaGFuZ2UpPVwib25TaGVsZm1hcmtTYXZlKCRldmVudClcIlxyXG4gICAgICAgICAgICAoZWRpdG9yQ2xvc2UpPVwib25TaGVsZm1hcmtDbG9zZSgpXCJcclxuICAgICAgICAgID48L2NhZG11cy1jb2Qtc2hlbGZtYXJrLWVkaXRvcj5cclxuICAgICAgICA8L21hdC10YWI+XHJcbiAgICAgIDwvbWF0LXRhYi1ncm91cD5cclxuICAgIDwvbWF0LWNhcmQtY29udGVudD5cclxuICAgIDxtYXQtY2FyZC1hY3Rpb25zPlxyXG4gICAgICA8Y2FkbXVzLWNsb3NlLXNhdmUtYnV0dG9uc1xyXG4gICAgICAgIFtmb3JtXT1cImZvcm1cIlxyXG4gICAgICAgIFtub1NhdmVdPVwidXNlckxldmVsIDwgMlwiXHJcbiAgICAgICAgKGNsb3NlUmVxdWVzdCk9XCJjbG9zZSgpXCJcclxuICAgICAgPjwvY2FkbXVzLWNsb3NlLXNhdmUtYnV0dG9ucz5cclxuICAgIDwvbWF0LWNhcmQtYWN0aW9ucz5cclxuICA8L21hdC1jYXJkPlxyXG48L2Zvcm0+XHJcbiJdfQ==
|
|
150
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kLXNoZWxmbWFya3MtcGFydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJtaWRvbi9jYWRtdXMtcGFydC1jb2RpY29sb2d5LXNoZWxmbWFya3Mvc3JjL2xpYi9jb2Qtc2hlbGZtYXJrcy1wYXJ0L2NvZC1zaGVsZm1hcmtzLXBhcnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlybWlkb24vY2FkbXVzLXBhcnQtY29kaWNvbG9neS1zaGVsZm1hcmtzL3NyYy9saWIvY29kLXNoZWxmbWFya3MtcGFydC9jb2Qtc2hlbGZtYXJrcy1wYXJ0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFPbEQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXRDLE9BQU8sRUFBWSxpQkFBaUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBR2pFLE9BQU8sRUFBZ0Isd0JBQXdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUc3RSxPQUFPLEVBR0wsMEJBQTBCLEdBQzNCLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFFaEM7OztHQUdHO0FBTUgsTUFBTSxPQUFPLDBCQUNYLFNBQVEsd0JBQTJDO0lBZW5ELFlBQ0UsV0FBMkIsRUFDM0IsV0FBd0IsRUFDaEIsY0FBNkI7UUFFckMsS0FBSyxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUZ4QixtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUdyQyxJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQ2xCLE9BQU87UUFDUCxJQUFJLENBQUMsVUFBVSxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsRUFBRSxF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LENBQUMsQ0FBQztRQUMzQyxNQUFNLE9BQU8sR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN6QixPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFTSxpQkFBaUIsQ0FBQyxLQUFhO1FBQ3BDLElBQUksS0FBSyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDN0MsT0FBTztTQUNSO1FBQ0QsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0MsTUFBTSxPQUFPLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0MsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDekIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNwQyxDQUFDOzt1SEF2SlUsMEJBQTBCOzJHQUExQiwwQkFBMEIseUZDOUJ2QyxpNEhBNkdBOzJGRC9FYSwwQkFBMEI7a0JBTHRDLFNBQVM7K0JBQ0UsNEJBQTRCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBGb3JtQ29udHJvbCxcclxuICBGb3JtQnVpbGRlcixcclxuICBGb3JtR3JvdXAsXHJcbiAgVW50eXBlZEZvcm1Hcm91cCxcclxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBkZWVwQ29weSwgTmdUb29sc1ZhbGlkYXRvcnMgfSBmcm9tICdAbXlybWlkb24vbmctdG9vbHMnO1xyXG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnQG15cm1pZG9uL25nLW1hdC10b29scyc7XHJcbmltcG9ydCB7IEF1dGhKd3RTZXJ2aWNlIH0gZnJvbSAnQG15cm1pZG9uL2F1dGgtand0LWxvZ2luJztcclxuaW1wb3J0IHsgRWRpdGVkT2JqZWN0LCBNb2RlbEVkaXRvckNvbXBvbmVudEJhc2UgfSBmcm9tICdAbXlybWlkb24vY2FkbXVzLXVpJztcclxuaW1wb3J0IHsgVGhlc2F1cmlTZXQsIFRoZXNhdXJ1c0VudHJ5IH0gZnJvbSAnQG15cm1pZG9uL2NhZG11cy1jb3JlJztcclxuXHJcbmltcG9ydCB7XHJcbiAgQ29kU2hlbGZtYXJrLFxyXG4gIENvZFNoZWxmbWFya3NQYXJ0LFxyXG4gIENPRF9TSEVMRk1BUktTX1BBUlRfVFlQRUlELFxyXG59IGZyb20gJy4uL2NvZC1zaGVsZm1hcmtzLXBhcnQnO1xyXG5cclxuLyoqXHJcbiAqIENvZFNoZWxmbWFya3NQYXJ0IGVkaXRvciBjb21wb25lbnQuXHJcbiAqIFRoZXNhdXJpOiBjb2Qtc2hlbGZtYXJrLXRhZ3MsIGNvZC1zaGVsZm1hcmstbGlicmFyaWVzIChhbGwgb3B0aW9uYWwpLlxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjYWRtdXMtY29kLXNoZWxmbWFya3MtcGFydCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvZC1zaGVsZm1hcmtzLXBhcnQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NvZC1zaGVsZm1hcmtzLXBhcnQuY29tcG9uZW50LmNzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29kU2hlbGZtYXJrc1BhcnRDb21wb25lbnRcclxuICBleHRlbmRzIE1vZGVsRWRpdG9yQ29tcG9uZW50QmFzZTxDb2RTaGVsZm1hcmtzUGFydD5cclxuICBpbXBsZW1lbnRzIE9uSW5pdFxyXG57XHJcbiAgcHJpdmF0ZSBfZWRpdGVkSW5kZXg6IG51bWJlcjtcclxuXHJcbiAgcHVibGljIHRhYkluZGV4OiBudW1iZXI7XHJcbiAgcHVibGljIGVkaXRlZFNoZWxmbWFyazogQ29kU2hlbGZtYXJrIHwgdW5kZWZpbmVkO1xyXG5cclxuICAvLyBjb2Qtc2hlbGZtYXJrLXRhZ3NcclxuICBwdWJsaWMgdGFnRW50cmllczogVGhlc2F1cnVzRW50cnlbXSB8IHVuZGVmaW5lZDtcclxuICAvLyBjb2Qtc2hlbGZtYXJrLWxpYnJhcmllc1xyXG4gIHB1YmxpYyBsaWJFbnRyaWVzOiBUaGVzYXVydXNFbnRyeVtdIHwgdW5kZWZpbmVkO1xyXG5cclxuICBwdWJsaWMgc2hlbGZtYXJrczogRm9ybUNvbnRyb2w8Q29kU2hlbGZtYXJrW10+O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIGF1dGhTZXJ2aWNlOiBBdXRoSnd0U2VydmljZSxcclxuICAgIGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcixcclxuICAgIHByaXZhdGUgX2RpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKGF1dGhTZXJ2aWNlLCBmb3JtQnVpbGRlcik7XHJcbiAgICB0aGlzLl9lZGl0ZWRJbmRleCA9IC0xO1xyXG4gICAgdGhpcy50YWJJbmRleCA9IDA7XHJcbiAgICAvLyBmb3JtXHJcbiAgICB0aGlzLnNoZWxmbWFya3MgPSBmb3JtQnVpbGRlci5jb250cm9sKFtdLCB7XHJcbiAgICAgIG5vbk51bGxhYmxlOiB0cnVlLFxyXG4gICAgICB2YWxpZGF0b3JzOiBOZ1Rvb2xzVmFsaWRhdG9ycy5zdHJpY3RNaW5MZW5ndGhWYWxpZGF0b3IoMSksXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvdmVycmlkZSBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgYnVpbGRGb3JtKGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcik6IEZvcm1Hcm91cCB8IFVudHlwZWRGb3JtR3JvdXAge1xyXG4gICAgcmV0dXJuIGZvcm1CdWlsZGVyLmdyb3VwKHtcclxuICAgICAgc2hlbGZtYXJrczogdGhpcy5zaGVsZm1hcmtzLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZVRoZXNhdXJpKHRoZXNhdXJpOiBUaGVzYXVyaVNldCk6IHZvaWQge1xyXG4gICAgbGV0IGtleSA9ICdjb2Qtc2hlbGZtYXJrLXRhZ3MnO1xyXG4gICAgaWYgKHRoaXMuaGFzVGhlc2F1cnVzKGtleSkpIHtcclxuICAgICAgdGhpcy50YWdFbnRyaWVzID0gdGhlc2F1cmlba2V5XS5lbnRyaWVzO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy50YWdFbnRyaWVzID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gICAga2V5ID0gJ2NvZC1zaGVsZm1hcmstbGlicmFyaWVzJztcclxuICAgIGlmICh0aGlzLmhhc1RoZXNhdXJ1cyhrZXkpKSB7XHJcbiAgICAgIHRoaXMubGliRW50cmllcyA9IHRoZXNhdXJpW2tleV0uZW50cmllcztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubGliRW50cmllcyA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlRm9ybShwYXJ0PzogQ29kU2hlbGZtYXJrc1BhcnQgfCBudWxsKTogdm9pZCB7XHJcbiAgICBpZiAoIXBhcnQpIHtcclxuICAgICAgdGhpcy5mb3JtLnJlc2V0KCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuc2hlbGZtYXJrcy5zZXRWYWx1ZShwYXJ0LnNoZWxmbWFya3MgfHwgW10pO1xyXG4gICAgdGhpcy5mb3JtLm1hcmtBc1ByaXN0aW5lKCk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgb25EYXRhU2V0KGRhdGE/OiBFZGl0ZWRPYmplY3Q8Q29kU2hlbGZtYXJrc1BhcnQ+KTogdm9pZCB7XHJcbiAgICAvLyB0aGVzYXVyaVxyXG4gICAgaWYgKGRhdGE/LnRoZXNhdXJpKSB7XHJcbiAgICAgIHRoaXMudXBkYXRlVGhlc2F1cmkoZGF0YS50aGVzYXVyaSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gZm9ybVxyXG4gICAgdGhpcy51cGRhdGVGb3JtKGRhdGE/LnZhbHVlKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBnZXRWYWx1ZSgpOiBDb2RTaGVsZm1hcmtzUGFydCB7XHJcbiAgICBsZXQgcGFydCA9IHRoaXMuZ2V0RWRpdGVkUGFydChcclxuICAgICAgQ09EX1NIRUxGTUFSS1NfUEFSVF9UWVBFSURcclxuICAgICkgYXMgQ29kU2hlbGZtYXJrc1BhcnQ7XHJcbiAgICBwYXJ0LnNoZWxmbWFya3MgPSB0aGlzLnNoZWxmbWFya3MudmFsdWUgfHwgW107XHJcbiAgICByZXR1cm4gcGFydDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhZGRTaGVsZm1hcmsoKTogdm9pZCB7XHJcbiAgICB0aGlzLmVkaXRTaGVsZm1hcmsoe1xyXG4gICAgICBjaXR5OiAnJyxcclxuICAgICAgbGlicmFyeTogdGhpcy5saWJFbnRyaWVzPy5sZW5ndGggPyB0aGlzLmxpYkVudHJpZXNbMF0uaWQgOiAnJyxcclxuICAgICAgbG9jYXRpb246ICcnLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZWRpdFNoZWxmbWFyayhzaGVsZm1hcms6IENvZFNoZWxmbWFyayB8IG51bGwsIGluZGV4ID0gLTEpOiB2b2lkIHtcclxuICAgIGlmICghc2hlbGZtYXJrKSB7XHJcbiAgICAgIHRoaXMuX2VkaXRlZEluZGV4ID0gLTE7XHJcbiAgICAgIHRoaXMudGFiSW5kZXggPSAwO1xyXG4gICAgICB0aGlzLmVkaXRlZFNoZWxmbWFyayA9IHVuZGVmaW5lZDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2VkaXRlZEluZGV4ID0gaW5kZXg7XHJcbiAgICAgIHRoaXMuZWRpdGVkU2hlbGZtYXJrID0gc2hlbGZtYXJrO1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLnRhYkluZGV4ID0gMTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25TaGVsZm1hcmtTYXZlKHNoZWxmbWFyazogQ29kU2hlbGZtYXJrKTogdm9pZCB7XHJcbiAgICBjb25zdCBzaGVsZm1hcmtzID0gWy4uLnRoaXMuc2hlbGZtYXJrcy52YWx1ZV07XHJcblxyXG4gICAgaWYgKHRoaXMuX2VkaXRlZEluZGV4ID4gLTEpIHtcclxuICAgICAgc2hlbGZtYXJrcy5zcGxpY2UodGhpcy5fZWRpdGVkSW5kZXgsIDEsIHNoZWxmbWFyayk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBzaGVsZm1hcmtzLnB1c2goc2hlbGZtYXJrKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnNoZWxmbWFya3Muc2V0VmFsdWUoc2hlbGZtYXJrcyk7XHJcbiAgICB0aGlzLmVkaXRTaGVsZm1hcmsobnVsbCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZGVsZXRlU2hlbGZtYXJrKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMuX2RpYWxvZ1NlcnZpY2VcclxuICAgICAgLmNvbmZpcm0oJ0NvbmZpcm1hdGlvbicsICdEZWxldGUgc2hlbGZtYXJrPycpXHJcbiAgICAgIC5waXBlKHRha2UoMSkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHllcykgPT4ge1xyXG4gICAgICAgIGlmICh5ZXMpIHtcclxuICAgICAgICAgIGNvbnN0IGVudHJpZXMgPSBbLi4udGhpcy5zaGVsZm1hcmtzLnZhbHVlXTtcclxuICAgICAgICAgIGVudHJpZXMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICAgIHRoaXMuc2hlbGZtYXJrcy5zZXRWYWx1ZShlbnRyaWVzKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG1vdmVTaGVsZm1hcmtVcChpbmRleDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICBpZiAoaW5kZXggPCAxKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IGVudHJ5ID0gdGhpcy5zaGVsZm1hcmtzLnZhbHVlW2luZGV4XTtcclxuICAgIGNvbnN0IGVudHJpZXMgPSBbLi4udGhpcy5zaGVsZm1hcmtzLnZhbHVlXTtcclxuICAgIGVudHJpZXMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgIGVudHJpZXMuc3BsaWNlKGluZGV4IC0gMSwgMCwgZW50cnkpO1xyXG4gICAgdGhpcy5zaGVsZm1hcmtzLnNldFZhbHVlKGVudHJpZXMpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG1vdmVTaGVsZm1hcmtEb3duKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIGlmIChpbmRleCArIDEgPj0gdGhpcy5zaGVsZm1hcmtzLnZhbHVlLmxlbmd0aCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCBlbnRyeSA9IHRoaXMuc2hlbGZtYXJrcy52YWx1ZVtpbmRleF07XHJcbiAgICBjb25zdCBlbnRyaWVzID0gWy4uLnRoaXMuc2hlbGZtYXJrcy52YWx1ZV07XHJcbiAgICBlbnRyaWVzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICBlbnRyaWVzLnNwbGljZShpbmRleCArIDEsIDAsIGVudHJ5KTtcclxuICAgIHRoaXMuc2hlbGZtYXJrcy5zZXRWYWx1ZShlbnRyaWVzKTtcclxuICB9XHJcbn1cclxuIiwiPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCIgKHN1Ym1pdCk9XCJzYXZlKClcIj5cclxuICA8bWF0LWNhcmQgYXBwZWFyYW5jZT1cIm91dGxpbmVkXCI+XHJcbiAgICA8bWF0LWNhcmQtaGVhZGVyPlxyXG4gICAgICA8ZGl2IG1hdC1jYXJkLWF2YXRhcj5cclxuICAgICAgICA8bWF0LWljb24+cGljdHVyZV9pbl9waWN0dXJlPC9tYXQtaWNvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxtYXQtY2FyZC10aXRsZT5TaGVsZm1hcmtzIFBhcnQ8L21hdC1jYXJkLXRpdGxlPlxyXG4gICAgPC9tYXQtY2FyZC1oZWFkZXI+XHJcbiAgICA8bWF0LWNhcmQtY29udGVudD5cclxuICAgICAgPG1hdC10YWItZ3JvdXAgWyhzZWxlY3RlZEluZGV4KV09XCJ0YWJJbmRleFwiPlxyXG4gICAgICAgIDxtYXQtdGFiIGxhYmVsPVwic2hlbGZtYXJrc1wiPlxyXG4gICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgIG1hdC1mbGF0LWJ1dHRvblxyXG4gICAgICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImFkZFNoZWxmbWFyaygpXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxtYXQtaWNvbj5hZGRfY2lyY2xlPC9tYXQtaWNvbj4gc2hlbGZtYXJrXHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8dGFibGUgKm5nSWY9XCJzaGVsZm1hcmtzPy52YWx1ZT8ubGVuZ3RoXCI+XHJcbiAgICAgICAgICAgIDx0aGVhZD5cclxuICAgICAgICAgICAgICA8dHI+XHJcbiAgICAgICAgICAgICAgICA8dGg+PC90aD5cclxuICAgICAgICAgICAgICAgIDx0aD50YWc8L3RoPlxyXG4gICAgICAgICAgICAgICAgPHRoPmNpdHk8L3RoPlxyXG4gICAgICAgICAgICAgICAgPHRoPmxpYnJhcnk8L3RoPlxyXG4gICAgICAgICAgICAgICAgPHRoPmZ1bmQ8L3RoPlxyXG4gICAgICAgICAgICAgICAgPHRoPmxvY2F0aW9uPC90aD5cclxuICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICA8L3RoZWFkPlxyXG4gICAgICAgICAgICA8dGJvZHk+XHJcbiAgICAgICAgICAgICAgPHRyXHJcbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJcclxuICAgICAgICAgICAgICAgICAgbGV0IGVudHJ5IG9mIHNoZWxmbWFya3M/LnZhbHVlO1xyXG4gICAgICAgICAgICAgICAgICBsZXQgaSA9IGluZGV4O1xyXG4gICAgICAgICAgICAgICAgICBsZXQgZmlyc3QgPSBmaXJzdDtcclxuICAgICAgICAgICAgICAgICAgbGV0IGxhc3QgPSBsYXN0XHJcbiAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXHJcbiAgICAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cIkVkaXQgdGhpcyBzaGVsZm1hcmtcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJlZGl0U2hlbGZtYXJrKGVudHJ5LCBpKVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+ZWRpdDwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgbWF0LWljb24tYnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cIk1vdmUgdGhpcyBzaGVsZm1hcmsgdXBcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJmaXJzdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm1vdmVTaGVsZm1hcmtVcChpKVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+YXJyb3dfdXB3YXJkPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICBtYXQtaWNvbi1idXR0b25cclxuICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwPVwiTW92ZSB0aGlzIHNoZWxmbWFyayBkb3duXCJcclxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwibGFzdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm1vdmVTaGVsZm1hcmtEb3duKGkpXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5hcnJvd19kb3dud2FyZDwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgbWF0LWljb24tYnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I9XCJ3YXJuXCJcclxuICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwPVwiRGVsZXRlIHRoaXMgc2hlbGZtYXJrXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZGVsZXRlU2hlbGZtYXJrKGkpXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5yZW1vdmVfY2lyY2xlPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgPHRkPnt7IGVudHJ5LnRhZyB9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICA8dGQ+e3sgZW50cnkuY2l0eSB9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICA8dGQ+e3sgZW50cnkubGlicmFyeSB9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICA8dGQ+e3sgZW50cnkuZnVuZCB9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICA8dGQ+e3sgZW50cnkubG9jYXRpb24gfX08L3RkPlxyXG4gICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgIDwvdGJvZHk+XHJcbiAgICAgICAgICA8L3RhYmxlPlxyXG4gICAgICAgIDwvbWF0LXRhYj5cclxuXHJcbiAgICAgICAgPG1hdC10YWIgbGFiZWw9XCJzaGVsZm1hcmtcIiAqbmdJZj1cImVkaXRlZFNoZWxmbWFya1wiPlxyXG4gICAgICAgICAgPGNhZG11cy1jb2Qtc2hlbGZtYXJrLWVkaXRvclxyXG4gICAgICAgICAgICBbdGFnRW50cmllc109XCJ0YWdFbnRyaWVzXCJcclxuICAgICAgICAgICAgW2xpYkVudHJpZXNdPVwibGliRW50cmllc1wiXHJcbiAgICAgICAgICAgIFtzaGVsZm1hcmtdPVwiZWRpdGVkU2hlbGZtYXJrXCJcclxuICAgICAgICAgICAgKHNoZWxmbWFya0NoYW5nZSk9XCJvblNoZWxmbWFya1NhdmUoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgIChlZGl0b3JDbG9zZSk9XCJlZGl0U2hlbGZtYXJrKG51bGwpXCJcclxuICAgICAgICAgID48L2NhZG11cy1jb2Qtc2hlbGZtYXJrLWVkaXRvcj5cclxuICAgICAgICA8L21hdC10YWI+XHJcbiAgICAgIDwvbWF0LXRhYi1ncm91cD5cclxuICAgIDwvbWF0LWNhcmQtY29udGVudD5cclxuICAgIDxtYXQtY2FyZC1hY3Rpb25zPlxyXG4gICAgICA8Y2FkbXVzLWNsb3NlLXNhdmUtYnV0dG9uc1xyXG4gICAgICAgIFtmb3JtXT1cImZvcm1cIlxyXG4gICAgICAgIFtub1NhdmVdPVwidXNlckxldmVsIDwgMlwiXHJcbiAgICAgICAgKGNsb3NlUmVxdWVzdCk9XCJjbG9zZSgpXCJcclxuICAgICAgPjwvY2FkbXVzLWNsb3NlLXNhdmUtYnV0dG9ucz5cclxuICAgIDwvbWF0LWNhcmQtYWN0aW9ucz5cclxuICA8L21hdC1jYXJkPlxyXG48L2Zvcm0+XHJcbiJdfQ==
|
|
@@ -15,9 +15,9 @@ export class CodShelfmarksPartFeatureComponent extends EditPartFeatureBase {
|
|
|
15
15
|
return ['cod-shelfmark-tags', 'cod-shelfmark-libraries'];
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
|
-
CodShelfmarksPartFeatureComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.
|
|
19
|
-
CodShelfmarksPartFeatureComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.
|
|
20
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.
|
|
18
|
+
CodShelfmarksPartFeatureComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: CodShelfmarksPartFeatureComponent, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }, { token: i2.MatSnackBar }, { token: i3.ItemService }, { token: i3.ThesaurusService }, { token: i4.PartEditorService }], target: i0.ɵɵFactoryTarget.Component });
|
|
19
|
+
CodShelfmarksPartFeatureComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.3", type: CodShelfmarksPartFeatureComponent, selector: "cadmus-cod-shelfmarks-part-feature", usesInheritance: true, ngImport: i0, template: "<cadmus-current-item-bar></cadmus-current-item-bar>\r\n<cadmus-cod-shelfmarks-part\r\n [identity]=\"identity\"\r\n [data]=\"$any(data)\"\r\n (dataChange)=\"save($event)\"\r\n (editorClose)=\"close()\"\r\n (dirtyChange)=\"onDirtyChange($event)\"\r\n></cadmus-cod-shelfmarks-part>\r\n", styles: [""], dependencies: [{ kind: "component", type: i5.CurrentItemBarComponent, selector: "cadmus-current-item-bar" }, { kind: "component", type: i6.CodShelfmarksPartComponent, selector: "cadmus-cod-shelfmarks-part" }] });
|
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: CodShelfmarksPartFeatureComponent, decorators: [{
|
|
21
21
|
type: Component,
|
|
22
22
|
args: [{ selector: 'cadmus-cod-shelfmarks-part-feature', template: "<cadmus-current-item-bar></cadmus-current-item-bar>\r\n<cadmus-cod-shelfmarks-part\r\n [identity]=\"identity\"\r\n [data]=\"$any(data)\"\r\n (dataChange)=\"save($event)\"\r\n (editorClose)=\"close()\"\r\n (dirtyChange)=\"onDirtyChange($event)\"\r\n></cadmus-cod-shelfmarks-part>\r\n" }]
|
|
23
23
|
}], ctorParameters: function () { return [{ type: i1.Router }, { type: i1.ActivatedRoute }, { type: i2.MatSnackBar }, { type: i3.ItemService }, { type: i3.ThesaurusService }, { type: i4.PartEditorService }]; } });
|