@alfresco/adf-process-services-cloud 8.1.0-15865093855 → 8.1.0-15902121227
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/lib/form/components/widgets/date/date-cloud.widget.mjs +4 -4
- package/esm2022/lib/form/components/widgets/display-external-property/display-external-property.widget.mjs +3 -3
- package/esm2022/lib/form/components/widgets/dropdown/dropdown-cloud.widget.mjs +3 -3
- package/esm2022/lib/form/components/widgets/group/group-cloud.widget.mjs +3 -3
- package/esm2022/lib/form/components/widgets/people/people-cloud.widget.mjs +3 -3
- package/esm2022/lib/group/components/group-cloud.component.mjs +3 -3
- package/esm2022/lib/people/components/people-cloud.component.mjs +3 -3
- package/fesm2022/adf-process-services-cloud.mjs +15 -15
- package/fesm2022/adf-process-services-cloud.mjs.map +1 -1
- package/package.json +4 -4
|
@@ -165,10 +165,10 @@ export class DateCloudWidgetComponent extends WidgetComponent {
|
|
|
165
165
|
}
|
|
166
166
|
}
|
|
167
167
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DateCloudWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
168
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
168
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DateCloudWidgetComponent, isStandalone: true, selector: "date-widget", host: { listeners: { "click": "event($event)", "blur": "event($event)", "change": "event($event)", "focus": "event($event)", "focusin": "event($event)", "focusout": "event($event)", "input": "event($event)", "invalid": "event($event)", "select": "event($event)" } }, providers: [
|
|
169
169
|
{ provide: MAT_DATE_FORMATS, useValue: ADF_DATE_FORMATS },
|
|
170
170
|
{ provide: DateAdapter, useClass: AdfDateFnsAdapter }
|
|
171
|
-
], usesInheritance: true, ngImport: i0, template: "<div\n class=\"{{field.className}}\"\n id=\"data-widget\"\n [class.adf-invalid]=\"dateInputControl.invalid && dateInputControl.touched\"\n [class.adf-left-label-input-container]=\"field.leftLabels\"\n>\n <div *ngIf=\"field.leftLabels\">\n <label class=\"adf-label adf-left-label\" [attr.for]=\"field.id\"\n >{{field.name | translate }} ({{field.dateDisplayFormat}})<span\n class=\"adf-asterisk\"\n [style.visibility]=\"isRequired() ? 'visible' : 'hidden'\"\n >*</span\n ></label\n >\n </div>\n <div>\n <mat-form-field class=\"adf-date-widget\" [class.adf-left-label-input-datepicker]=\"field.leftLabels\"
|
|
171
|
+
], usesInheritance: true, ngImport: i0, template: "<div\n class=\"{{field.className}}\"\n id=\"data-widget\"\n [class.adf-invalid]=\"dateInputControl.invalid && dateInputControl.touched\"\n [class.adf-left-label-input-container]=\"field.leftLabels\"\n>\n <div *ngIf=\"field.leftLabels\">\n <label class=\"adf-label adf-left-label\" [attr.for]=\"field.id\"\n >{{field.name | translate }} ({{field.dateDisplayFormat}})<span\n class=\"adf-asterisk\"\n [style.visibility]=\"isRequired() ? 'visible' : 'hidden'\"\n >*</span\n ></label\n >\n </div>\n <div>\n <mat-form-field class=\"adf-date-widget adf-form-field-input\" [class.adf-left-label-input-datepicker]=\"field.leftLabels\">\n @if ( (field.name || field?.required) && !field.leftLabels) {\n <mat-label class=\"adf-label\" [attr.for]=\"field.id\">\n {{field.name | translate }} ({{field.dateDisplayFormat}})\n </mat-label>\n }\n <input\n matInput\n class=\"adf-input\"\n [matDatepicker]=\"datePicker\"\n [id]=\"field.id\"\n [formControl]=\"dateInputControl\"\n [placeholder]=\"field.placeholder\"\n [required]=\"field.required && field.isVisible\"\n [min]=\"minDate\"\n [max]=\"maxDate\"\n [title]=\"field.tooltip\"\n />\n <mat-datepicker-toggle matSuffix [for]=\"datePicker\" [disabled]=\"field.readOnly\" />\n <mat-datepicker #datePicker [startAt]=\"startAt\" [disabled]=\"field.readOnly\" />\n </mat-form-field>\n <div class=\"adf-error-messages-container\">\n <error-widget *ngIf=\"dateInputControl.invalid && dateInputControl.touched\" [error]=\"field.validationSummary\" />\n </div>\n </div>\n</div>\n", styles: [".adf-date-widget .mat-mdc-form-field-text-suffix{top:26px}.adf-date-widget .adf-label{top:20px}.adf-left-label-input-datepicker .mat-mdc-form-field-text-suffix{top:0}.adf-left-label-input-datepicker .mat-mdc-form-text-infix{width:100%}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i3.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: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i4.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i4.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i4.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i5.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: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: ErrorWidgetComponent, selector: "error-widget", inputs: ["error", "required"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
172
172
|
}
|
|
173
173
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DateCloudWidgetComponent, decorators: [{
|
|
174
174
|
type: Component,
|
|
@@ -185,6 +185,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
185
185
|
'(input)': 'event($event)',
|
|
186
186
|
'(invalid)': 'event($event)',
|
|
187
187
|
'(select)': 'event($event)'
|
|
188
|
-
}, encapsulation: ViewEncapsulation.None, template: "<div\n class=\"{{field.className}}\"\n id=\"data-widget\"\n [class.adf-invalid]=\"dateInputControl.invalid && dateInputControl.touched\"\n [class.adf-left-label-input-container]=\"field.leftLabels\"\n>\n <div *ngIf=\"field.leftLabels\">\n <label class=\"adf-label adf-left-label\" [attr.for]=\"field.id\"\n >{{field.name | translate }} ({{field.dateDisplayFormat}})<span\n class=\"adf-asterisk\"\n [style.visibility]=\"isRequired() ? 'visible' : 'hidden'\"\n >*</span\n ></label\n >\n </div>\n <div>\n <mat-form-field class=\"adf-date-widget\" [class.adf-left-label-input-datepicker]=\"field.leftLabels\"
|
|
188
|
+
}, encapsulation: ViewEncapsulation.None, template: "<div\n class=\"{{field.className}}\"\n id=\"data-widget\"\n [class.adf-invalid]=\"dateInputControl.invalid && dateInputControl.touched\"\n [class.adf-left-label-input-container]=\"field.leftLabels\"\n>\n <div *ngIf=\"field.leftLabels\">\n <label class=\"adf-label adf-left-label\" [attr.for]=\"field.id\"\n >{{field.name | translate }} ({{field.dateDisplayFormat}})<span\n class=\"adf-asterisk\"\n [style.visibility]=\"isRequired() ? 'visible' : 'hidden'\"\n >*</span\n ></label\n >\n </div>\n <div>\n <mat-form-field class=\"adf-date-widget adf-form-field-input\" [class.adf-left-label-input-datepicker]=\"field.leftLabels\">\n @if ( (field.name || field?.required) && !field.leftLabels) {\n <mat-label class=\"adf-label\" [attr.for]=\"field.id\">\n {{field.name | translate }} ({{field.dateDisplayFormat}})\n </mat-label>\n }\n <input\n matInput\n class=\"adf-input\"\n [matDatepicker]=\"datePicker\"\n [id]=\"field.id\"\n [formControl]=\"dateInputControl\"\n [placeholder]=\"field.placeholder\"\n [required]=\"field.required && field.isVisible\"\n [min]=\"minDate\"\n [max]=\"maxDate\"\n [title]=\"field.tooltip\"\n />\n <mat-datepicker-toggle matSuffix [for]=\"datePicker\" [disabled]=\"field.readOnly\" />\n <mat-datepicker #datePicker [startAt]=\"startAt\" [disabled]=\"field.readOnly\" />\n </mat-form-field>\n <div class=\"adf-error-messages-container\">\n <error-widget *ngIf=\"dateInputControl.invalid && dateInputControl.touched\" [error]=\"field.validationSummary\" />\n </div>\n </div>\n</div>\n", styles: [".adf-date-widget .mat-mdc-form-field-text-suffix{top:26px}.adf-date-widget .adf-label{top:20px}.adf-left-label-input-datepicker .mat-mdc-form-field-text-suffix{top:0}.adf-left-label-input-datepicker .mat-mdc-form-text-infix{width:100%}\n"] }]
|
|
189
189
|
}] });
|
|
190
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1jbG91ZC53aWRnZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvcHJvY2Vzcy1zZXJ2aWNlcy1jbG91ZC9zcmMvbGliL2Zvcm0vY29tcG9uZW50cy93aWRnZXRzL2RhdGUvZGF0ZS1jbG91ZC53aWRnZXQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvcHJvY2Vzcy1zZXJ2aWNlcy1jbG91ZC9zcmMvbGliL2Zvcm0vY29tcG9uZW50cy93aWRnZXRzL2RhdGUvZGF0ZS1jbG91ZC53aWRnZXQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCx1REFBdUQ7QUFFdkQsT0FBTyxFQUFFLFNBQVMsRUFBVSxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RSxPQUFPLEVBQ0gsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNqQixZQUFZLEVBQ1osbUJBQW1CLEVBQ25CLGlCQUFpQixFQUNqQixvQkFBb0IsRUFDcEIsV0FBVyxFQUNYLGVBQWUsRUFFbEIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUM3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFvQixVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhC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LGVBQWU7d0JBQzdCLFNBQVMsRUFBRSxlQUFlO3dCQUMxQixXQUFXLEVBQUUsZUFBZTt3QkFDNUIsVUFBVSxFQUFFLGVBQWU7cUJBQzlCLGlCQUNjLGlCQUFpQixDQUFDLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3IgKi9cblxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdFbmNhcHN1bGF0aW9uLCBEZXN0cm95UmVmLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERhdGVBZGFwdGVyLCBNQVRfREFURV9GT1JNQVRTIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQge1xuICAgIEFERl9EQVRFX0ZPUk1BVFMsXG4gICAgQWRmRGF0ZUZuc0FkYXB0ZXIsXG4gICAgRGF0ZUZuc1V0aWxzLFxuICAgIERFRkFVTFRfREFURV9GT1JNQVQsXG4gICAgRXJyb3JNZXNzYWdlTW9kZWwsXG4gICAgRXJyb3JXaWRnZXRDb21wb25lbnQsXG4gICAgRm9ybVNlcnZpY2UsXG4gICAgV2lkZ2V0Q29tcG9uZW50LFxuICAgIFJlYWN0aXZlRm9ybVdpZGdldFxufSBmcm9tICdAYWxmcmVzY28vYWRmLWNvcmUnO1xuaW1wb3J0IHsgTWF0RGF0ZXBpY2tlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXInO1xuaW1wb3J0IHsgYWRkRGF5cywgcGFyc2VJU08gfSBmcm9tICdkYXRlLWZucyc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVmFsaWRhdGlvbkVycm9ycywgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2RhdGUtd2lkZ2V0JyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtOZ0lmLCBUcmFuc2xhdGVNb2R1bGUsIE1hdEZvcm1GaWVsZE1vZHVsZSwgTWF0SW5wdXRNb2R1bGUsIE1hdERhdGVwaWNrZXJNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIEVycm9yV2lkZ2V0Q29tcG9uZW50XSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgeyBwcm92aWRlOiBNQVRfREFURV9GT1JNQVRTLCB1c2VWYWx1ZTogQURGX0RBVEVfRk9STUFUUyB9LFxuICAgICAgICB7IHByb3ZpZGU6IERhdGVBZGFwdGVyLCB1c2VDbGFzczogQWRmRGF0ZUZuc0FkYXB0ZXIgfVxuICAgIF0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RhdGUtY2xvdWQud2lkZ2V0Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2RhdGUtY2xvdWQud2lkZ2V0LnNjc3MnXSxcbiAgICBob3N0OiB7XG4gICAgICAgICcoY2xpY2spJzogJ2V2ZW50KCRldmVudCknLFxuICAgICAgICAnKGJsdXIpJzogJ2V2ZW50KCRldmVudCknLFxuICAgICAgICAnKGNoYW5nZSknOiAnZXZlbnQoJGV2ZW50KScsXG4gICAgICAgICcoZm9jdXMpJzogJ2V2ZW50KCRldmVudCknLFxuICAgICAgICAnKGZvY3VzaW4pJzogJ2V2ZW50KCRldmVudCknLFxuICAgICAgICAnKGZvY3Vzb3V0KSc6ICdldmVudCgkZXZlbnQpJyxcbiAgICAgICAgJyhpbnB1dCknOiAnZXZlbnQoJGV2ZW50KScsXG4gICAgICAgICcoaW52YWxpZCknOiAnZXZlbnQoJGV2ZW50KScsXG4gICAgICAgICcoc2VsZWN0KSc6ICdldmVudCgkZXZlbnQpJ1xuICAgIH0sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBEYXRlQ2xvdWRXaWRnZXRDb21wb25lbnQgZXh0ZW5kcyBXaWRnZXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIFJlYWN0aXZlRm9ybVdpZGdldCB7XG4gICAgdHlwZUlkID0gJ0RhdGVDbG91ZFdpZGdldENvbXBvbmVudCc7XG5cbiAgICBtaW5EYXRlOiBEYXRlID0gbnVsbDtcbiAgICBtYXhEYXRlOiBEYXRlID0gbnVsbDtcbiAgICBzdGFydEF0OiBEYXRlID0gbnVsbDtcblxuICAgIGRhdGVJbnB1dENvbnRyb2w6IEZvcm1Db250cm9sPERhdGU+ID0gbmV3IEZvcm1Db250cm9sPERhdGU+KG51bGwpO1xuXG4gICAgcHVibGljIHJlYWRvbmx5IGZvcm1TZXJ2aWNlID0gaW5qZWN0KEZvcm1TZXJ2aWNlKTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRhdGVBZGFwdGVyID0gaW5qZWN0KERhdGVBZGFwdGVyKTtcblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldEZvcm1Db250cm9sVmFsdWUoKTtcbiAgICAgICAgdGhpcy51cGRhdGVGb3JtQ29udHJvbFN0YXRlKCk7XG4gICAgICAgIHRoaXMuaW5pdERhdGVBZGFwdGVyKCk7XG4gICAgICAgIHRoaXMuaW5pdFJhbmdlU2VsZWN0aW9uKCk7XG4gICAgICAgIHRoaXMuaW5pdFN0YXJ0QXQoKTtcbiAgICAgICAgdGhpcy5zdWJzY3JpYmVUb0RhdGVDaGFuZ2VzKCk7XG4gICAgICAgIHRoaXMudmFsaWRhdGVGaWVsZCgpO1xuICAgIH1cblxuICAgIHVwZGF0ZVJlYWN0aXZlRm9ybUNvbnRyb2woKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0Rm9ybUNvbnRyb2xWYWx1ZSgpO1xuICAgICAgICB0aGlzLnVwZGF0ZUZvcm1Db250cm9sU3RhdGUoKTtcbiAgICAgICAgdGhpcy52YWxpZGF0ZUZpZWxkKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRGb3JtQ29udHJvbFZhbHVlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRhdGVJbnB1dENvbnRyb2wuc2V0VmFsdWUodGhpcy5maWVsZC52YWx1ZSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlRm9ybUNvbnRyb2xTdGF0ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kYXRlSW5wdXRDb250cm9sLnNldFZhbGlkYXRvcnModGhpcy5pc1JlcXVpcmVkKCkgJiYgdGhpcy5maWVsZD8uaXNWaXNpYmxlID8gW1ZhbGlkYXRvcnMucmVxdWlyZWRdIDogW10pO1xuICAgICAgICB0aGlzLmZpZWxkPy5yZWFkT25seSB8fCB0aGlzLnJlYWRPbmx5XG4gICAgICAgICAgICA/IHRoaXMuZGF0ZUlucHV0Q29udHJvbC5kaXNhYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KVxuICAgICAgICAgICAgOiB0aGlzLmRhdGVJbnB1dENvbnRyb2wuZW5hYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcblxuICAgICAgICB0aGlzLmRhdGVJbnB1dENvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdWJzY3JpYmVUb0RhdGVDaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRhdGVJbnB1dENvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpLnN1YnNjcmliZSgobmV3RGF0ZTogRGF0ZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5maWVsZC52YWx1ZSA9IG5ld0RhdGU7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUZpZWxkKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlRmllbGQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsaWRhdGVGaWVsZCgpO1xuICAgICAgICB0aGlzLm9uRmllbGRDaGFuZ2VkKHRoaXMuZmllbGQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdmFsaWRhdGVGaWVsZCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZGF0ZUlucHV0Q29udHJvbC5pbnZhbGlkKSB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZUVycm9ycyh0aGlzLmRhdGVJbnB1dENvbnRyb2wuZXJyb3JzKTtcbiAgICAgICAgICAgIHRoaXMuZmllbGQubWFya0FzSW52YWxpZCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5yZXNldEVycm9ycygpO1xuICAgICAgICAgICAgdGhpcy5maWVsZC5tYXJrQXNWYWxpZCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVFcnJvcnMoZXJyb3JzOiBWYWxpZGF0aW9uRXJyb3JzKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGVycm9yQXR0cmlidXRlcyA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KCk7XG4gICAgICAgIHN3aXRjaCAodHJ1ZSkge1xuICAgICAgICAgICAgY2FzZSAhIWVycm9ycy5tYXREYXRlcGlja2VyUGFyc2U6XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVWYWxpZGF0aW9uU3VtbWFyeSh0aGlzLmZpZWxkLmRhdGVEaXNwbGF5Rm9ybWF0IHx8IHRoaXMuZmllbGQuZGVmYXVsdERhdGVUaW1lRm9ybWF0KTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgISFlcnJvcnMucmVxdWlyZWQ6XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVWYWxpZGF0aW9uU3VtbWFyeSgnRk9STS5GSUVMRC5SRVFVSVJFRCcpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAhIWVycm9ycy5tYXREYXRlcGlja2VyTWluOiB7XG4gICAgICAgICAgICAgICAgY29uc3QgbWluVmFsdWUgPSBEYXRlRm5zVXRpbHMuZm9ybWF0RGF0ZShlcnJvcnMubWF0RGF0ZXBpY2tlck1pbi5taW4sIHRoaXMuZmllbGQuZGF0ZURpc3BsYXlGb3JtYXQpLnRvTG9jYWxlVXBwZXJDYXNlKCk7XG4gICAgICAgICAgICAgICAgZXJyb3JBdHRyaWJ1dGVzLnNldCgnbWluVmFsdWUnLCBtaW5WYWx1ZSk7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVWYWxpZGF0aW9uU3VtbWFyeSgnRk9STS5GSUVMRC5WQUxJREFUT1IuTk9UX0xFU1NfVEhBTicsIGVycm9yQXR0cmlidXRlcyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICEhZXJyb3JzLm1hdERhdGVwaWNrZXJNYXg6IHtcbiAgICAgICAgICAgICAgICBjb25zdCBtYXhWYWx1ZSA9IERhdGVGbnNVdGlscy5mb3JtYXREYXRlKGVycm9ycy5tYXREYXRlcGlja2VyTWF4Lm1heCwgdGhpcy5maWVsZC5kYXRlRGlzcGxheUZvcm1hdCkudG9Mb2NhbGVVcHBlckNhc2UoKTtcbiAgICAgICAgICAgICAgICBlcnJvckF0dHJpYnV0ZXMuc2V0KCdtYXhWYWx1ZScsIG1heFZhbHVlKTtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVZhbGlkYXRpb25TdW1tYXJ5KCdGT1JNLkZJRUxELlZBTElEQVRPUi5OT1RfR1JFQVRFUl9USEFOJywgZXJyb3JBdHRyaWJ1dGVzKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVZhbGlkYXRpb25TdW1tYXJ5KG1lc3NhZ2U6IHN0cmluZywgYXR0cmlidXRlcz86IE1hcDxzdHJpbmcsIHN0cmluZz4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5maWVsZC52YWxpZGF0aW9uU3VtbWFyeSA9IG5ldyBFcnJvck1lc3NhZ2VNb2RlbCh7IG1lc3NhZ2UsIGF0dHJpYnV0ZXMgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXNldEVycm9ycygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVWYWxpZGF0aW9uU3VtbWFyeSgnJyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0RGF0ZUFkYXB0ZXIoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmZpZWxkPy5kYXRlRGlzcGxheUZvcm1hdCkge1xuICAgICAgICAgICAgY29uc3QgYWRhcHRlciA9IHRoaXMuZGF0ZUFkYXB0ZXIgYXMgQWRmRGF0ZUZuc0FkYXB0ZXI7XG4gICAgICAgICAgICBhZGFwdGVyLmRpc3BsYXlGb3JtYXQgPSB0aGlzLmZpZWxkLmRhdGVEaXNwbGF5Rm9ybWF0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0U3RhcnRBdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZmllbGQ/LnZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXJ0QXQgPSB0aGlzLmRhdGVBZGFwdGVyLnBhcnNlKHRoaXMuZmllbGQudmFsdWUsIERFRkFVTFRfREFURV9GT1JNQVQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0UmFuZ2VTZWxlY3Rpb24oKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmZpZWxkPy5keW5hbWljRGF0ZVJhbmdlU2VsZWN0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLnNldER5bmFtaWNSYW5nZVNlbGVjdGlvbigpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZXRTdGF0aWNSYW5nZVNlbGVjdGlvbigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXREeW5hbWljUmFuZ2VTZWxlY3Rpb24oKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmZpZWxkLm1pbkRhdGVSYW5nZVZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLm1pbkRhdGUgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5maWVsZC5taW5WYWx1ZSA9IG51bGw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm1pbkRhdGUgPSBhZGREYXlzKHRoaXMuZGF0ZUFkYXB0ZXIudG9kYXkoKSwgdGhpcy5maWVsZC5taW5EYXRlUmFuZ2VWYWx1ZSk7XG4gICAgICAgICAgICB0aGlzLmZpZWxkLm1pblZhbHVlID0gRGF0ZUZuc1V0aWxzLmZvcm1hdERhdGUodGhpcy5taW5EYXRlLCBERUZBVUxUX0RBVEVfRk9STUFUKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5maWVsZC5tYXhEYXRlUmFuZ2VWYWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5tYXhEYXRlID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMuZmllbGQubWF4VmFsdWUgPSBudWxsO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5tYXhEYXRlID0gYWRkRGF5cyh0aGlzLmRhdGVBZGFwdGVyLnRvZGF5KCksIHRoaXMuZmllbGQubWF4RGF0ZVJhbmdlVmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5maWVsZC5tYXhWYWx1ZSA9IERhdGVGbnNVdGlscy5mb3JtYXREYXRlKHRoaXMubWF4RGF0ZSwgREVGQVVMVF9EQVRFX0ZPUk1BVCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFN0YXRpY1JhbmdlU2VsZWN0aW9uKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5maWVsZD8ubWluVmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMubWluRGF0ZSA9IHBhcnNlSVNPKHRoaXMuZmllbGQubWluVmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZmllbGQ/Lm1heFZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLm1heERhdGUgPSBwYXJzZUlTTyh0aGlzLmZpZWxkLm1heFZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxkaXZcbiAgICBjbGFzcz1cInt7ZmllbGQuY2xhc3NOYW1lfX1cIlxuICAgIGlkPVwiZGF0YS13aWRnZXRcIlxuICAgIFtjbGFzcy5hZGYtaW52YWxpZF09XCJkYXRlSW5wdXRDb250cm9sLmludmFsaWQgJiYgZGF0ZUlucHV0Q29udHJvbC50b3VjaGVkXCJcbiAgICBbY2xhc3MuYWRmLWxlZnQtbGFiZWwtaW5wdXQtY29udGFpbmVyXT1cImZpZWxkLmxlZnRMYWJlbHNcIlxuPlxuICAgIDxkaXYgKm5nSWY9XCJmaWVsZC5sZWZ0TGFiZWxzXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImFkZi1sYWJlbCBhZGYtbGVmdC1sYWJlbFwiIFthdHRyLmZvcl09XCJmaWVsZC5pZFwiXG4gICAgICAgICAgICA+e3tmaWVsZC5uYW1lIHwgdHJhbnNsYXRlIH19ICh7e2ZpZWxkLmRhdGVEaXNwbGF5Rm9ybWF0fX0pPHNwYW5cbiAgICAgICAgICAgICAgICBjbGFzcz1cImFkZi1hc3Rlcmlza1wiXG4gICAgICAgICAgICAgICAgW3N0eWxlLnZpc2liaWxpdHldPVwiaXNSZXF1aXJlZCgpID8gJ3Zpc2libGUnIDogJ2hpZGRlbidcIlxuICAgICAgICAgICAgICAgID4qPC9zcGFuXG4gICAgICAgICAgICA+PC9sYWJlbFxuICAgICAgICA+XG4gICAgPC9kaXY+XG4gICAgPGRpdj5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiYWRmLWRhdGUtd2lkZ2V0XCIgW2NsYXNzLmFkZi1sZWZ0LWxhYmVsLWlucHV0LWRhdGVwaWNrZXJdPVwiZmllbGQubGVmdExhYmVsc1wiIFtoaWRlUmVxdWlyZWRNYXJrZXJdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgPG1hdC1sYWJlbCBjbGFzcz1cImFkZi1sYWJlbFwiICpuZ0lmPVwiIWZpZWxkLmxlZnRMYWJlbHNcIiBbYXR0ci5mb3JdPVwiZmllbGQuaWRcIlxuICAgICAgICAgICAgICAgID57e2ZpZWxkLm5hbWUgfCB0cmFuc2xhdGUgfX0gKHt7ZmllbGQuZGF0ZURpc3BsYXlGb3JtYXR9fSk8c3BhblxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFkZi1hc3Rlcmlza1wiXG4gICAgICAgICAgICAgICAgICAgIFtzdHlsZS52aXNpYmlsaXR5XT1cImlzUmVxdWlyZWQoKSA/ICd2aXNpYmxlJyA6ICdoaWRkZW4nXCJcbiAgICAgICAgICAgICAgICAgICAgPio8L3NwYW5cbiAgICAgICAgICAgICAgICA+PC9tYXQtbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgICAgIFttYXREYXRlcGlja2VyXT1cImRhdGVQaWNrZXJcIlxuICAgICAgICAgICAgICAgIFtpZF09XCJmaWVsZC5pZFwiXG4gICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImRhdGVJbnB1dENvbnRyb2xcIlxuICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJmaWVsZC5wbGFjZWhvbGRlclwiXG4gICAgICAgICAgICAgICAgW21pbl09XCJtaW5EYXRlXCJcbiAgICAgICAgICAgICAgICBbbWF4XT1cIm1heERhdGVcIlxuICAgICAgICAgICAgICAgIFt0aXRsZV09XCJmaWVsZC50b29sdGlwXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8bWF0LWRhdGVwaWNrZXItdG9nZ2xlIG1hdFN1ZmZpeCBbZm9yXT1cImRhdGVQaWNrZXJcIiBbZGlzYWJsZWRdPVwiZmllbGQucmVhZE9ubHlcIiAvPlxuICAgICAgICAgICAgPG1hdC1kYXRlcGlja2VyICNkYXRlUGlja2VyIFtzdGFydEF0XT1cInN0YXJ0QXRcIiBbZGlzYWJsZWRdPVwiZmllbGQucmVhZE9ubHlcIiAvPlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWRmLWVycm9yLW1lc3NhZ2VzLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPGVycm9yLXdpZGdldCAqbmdJZj1cImRhdGVJbnB1dENvbnRyb2wuaW52YWxpZCAmJiBkYXRlSW5wdXRDb250cm9sLnRvdWNoZWRcIiBbZXJyb3JdPVwiZmllbGQudmFsaWRhdGlvblN1bW1hcnlcIiAvPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
190
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1jbG91ZC53aWRnZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvcHJvY2Vzcy1zZXJ2aWNlcy1jbG91ZC9zcmMvbGliL2Zvcm0vY29tcG9uZW50cy93aWRnZXRzL2RhdGUvZGF0ZS1jbG91ZC53aWRnZXQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvcHJvY2Vzcy1zZXJ2aWNlcy1jbG91ZC9zcmMvbGliL2Zvcm0vY29tcG9uZW50cy93aWRnZXRzL2RhdGUvZGF0ZS1jbG91ZC53aWRnZXQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCx1REFBdUQ7QUFFdkQsT0FBTyxFQUFFLFNBQVMsRUFBVSxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RSxPQUFPLEVBQ0gsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNqQixZQUFZLEVBQ1osbUJBQW1CLEVBQ25CLGlCQUFpQixFQUNqQixvQkFBb0IsRUFDcEIsV0FBVyxFQUNYLGVBQWUsRUFFbEIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUM3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFvQixVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhC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LGVBQWU7d0JBQzdCLFNBQVMsRUFBRSxlQUFlO3dCQUMxQixXQUFXLEVBQUUsZUFBZTt3QkFDNUIsVUFBVSxFQUFFLGVBQWU7cUJBQzlCLGlCQUNjLGlCQUFpQixDQUFDLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3IgKi9cblxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdFbmNhcHN1bGF0aW9uLCBEZXN0cm95UmVmLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERhdGVBZGFwdGVyLCBNQVRfREFURV9GT1JNQVRTIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQge1xuICAgIEFERl9EQVRFX0ZPUk1BVFMsXG4gICAgQWRmRGF0ZUZuc0FkYXB0ZXIsXG4gICAgRGF0ZUZuc1V0aWxzLFxuICAgIERFRkFVTFRfREFURV9GT1JNQVQsXG4gICAgRXJyb3JNZXNzYWdlTW9kZWwsXG4gICAgRXJyb3JXaWRnZXRDb21wb25lbnQsXG4gICAgRm9ybVNlcnZpY2UsXG4gICAgV2lkZ2V0Q29tcG9uZW50LFxuICAgIFJlYWN0aXZlRm9ybVdpZGdldFxufSBmcm9tICdAYWxmcmVzY28vYWRmLWNvcmUnO1xuaW1wb3J0IHsgTWF0RGF0ZXBpY2tlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXInO1xuaW1wb3J0IHsgYWRkRGF5cywgcGFyc2VJU08gfSBmcm9tICdkYXRlLWZucyc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVmFsaWRhdGlvbkVycm9ycywgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2RhdGUtd2lkZ2V0JyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtOZ0lmLCBUcmFuc2xhdGVNb2R1bGUsIE1hdEZvcm1GaWVsZE1vZHVsZSwgTWF0SW5wdXRNb2R1bGUsIE1hdERhdGVwaWNrZXJNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIEVycm9yV2lkZ2V0Q29tcG9uZW50XSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgeyBwcm92aWRlOiBNQVRfREFURV9GT1JNQVRTLCB1c2VWYWx1ZTogQURGX0RBVEVfRk9STUFUUyB9LFxuICAgICAgICB7IHByb3ZpZGU6IERhdGVBZGFwdGVyLCB1c2VDbGFzczogQWRmRGF0ZUZuc0FkYXB0ZXIgfVxuICAgIF0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RhdGUtY2xvdWQud2lkZ2V0Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2RhdGUtY2xvdWQud2lkZ2V0LnNjc3MnXSxcbiAgICBob3N0OiB7XG4gICAgICAgICcoY2xpY2spJzogJ2V2ZW50KCRldmVudCknLFxuICAgICAgICAnKGJsdXIpJzogJ2V2ZW50KCRldmVudCknLFxuICAgICAgICAnKGNoYW5nZSknOiAnZXZlbnQoJGV2ZW50KScsXG4gICAgICAgICcoZm9jdXMpJzogJ2V2ZW50KCRldmVudCknLFxuICAgICAgICAnKGZvY3VzaW4pJzogJ2V2ZW50KCRldmVudCknLFxuICAgICAgICAnKGZvY3Vzb3V0KSc6ICdldmVudCgkZXZlbnQpJyxcbiAgICAgICAgJyhpbnB1dCknOiAnZXZlbnQoJGV2ZW50KScsXG4gICAgICAgICcoaW52YWxpZCknOiAnZXZlbnQoJGV2ZW50KScsXG4gICAgICAgICcoc2VsZWN0KSc6ICdldmVudCgkZXZlbnQpJ1xuICAgIH0sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBEYXRlQ2xvdWRXaWRnZXRDb21wb25lbnQgZXh0ZW5kcyBXaWRnZXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIFJlYWN0aXZlRm9ybVdpZGdldCB7XG4gICAgdHlwZUlkID0gJ0RhdGVDbG91ZFdpZGdldENvbXBvbmVudCc7XG5cbiAgICBtaW5EYXRlOiBEYXRlID0gbnVsbDtcbiAgICBtYXhEYXRlOiBEYXRlID0gbnVsbDtcbiAgICBzdGFydEF0OiBEYXRlID0gbnVsbDtcblxuICAgIGRhdGVJbnB1dENvbnRyb2w6IEZvcm1Db250cm9sPERhdGU+ID0gbmV3IEZvcm1Db250cm9sPERhdGU+KG51bGwpO1xuXG4gICAgcHVibGljIHJlYWRvbmx5IGZvcm1TZXJ2aWNlID0gaW5qZWN0KEZvcm1TZXJ2aWNlKTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRhdGVBZGFwdGVyID0gaW5qZWN0KERhdGVBZGFwdGVyKTtcblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldEZvcm1Db250cm9sVmFsdWUoKTtcbiAgICAgICAgdGhpcy51cGRhdGVGb3JtQ29udHJvbFN0YXRlKCk7XG4gICAgICAgIHRoaXMuaW5pdERhdGVBZGFwdGVyKCk7XG4gICAgICAgIHRoaXMuaW5pdFJhbmdlU2VsZWN0aW9uKCk7XG4gICAgICAgIHRoaXMuaW5pdFN0YXJ0QXQoKTtcbiAgICAgICAgdGhpcy5zdWJzY3JpYmVUb0RhdGVDaGFuZ2VzKCk7XG4gICAgICAgIHRoaXMudmFsaWRhdGVGaWVsZCgpO1xuICAgIH1cblxuICAgIHVwZGF0ZVJlYWN0aXZlRm9ybUNvbnRyb2woKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0Rm9ybUNvbnRyb2xWYWx1ZSgpO1xuICAgICAgICB0aGlzLnVwZGF0ZUZvcm1Db250cm9sU3RhdGUoKTtcbiAgICAgICAgdGhpcy52YWxpZGF0ZUZpZWxkKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRGb3JtQ29udHJvbFZhbHVlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRhdGVJbnB1dENvbnRyb2wuc2V0VmFsdWUodGhpcy5maWVsZC52YWx1ZSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlRm9ybUNvbnRyb2xTdGF0ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kYXRlSW5wdXRDb250cm9sLnNldFZhbGlkYXRvcnModGhpcy5pc1JlcXVpcmVkKCkgJiYgdGhpcy5maWVsZD8uaXNWaXNpYmxlID8gW1ZhbGlkYXRvcnMucmVxdWlyZWRdIDogW10pO1xuICAgICAgICB0aGlzLmZpZWxkPy5yZWFkT25seSB8fCB0aGlzLnJlYWRPbmx5XG4gICAgICAgICAgICA/IHRoaXMuZGF0ZUlucHV0Q29udHJvbC5kaXNhYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KVxuICAgICAgICAgICAgOiB0aGlzLmRhdGVJbnB1dENvbnRyb2wuZW5hYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcblxuICAgICAgICB0aGlzLmRhdGVJbnB1dENvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdWJzY3JpYmVUb0RhdGVDaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRhdGVJbnB1dENvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpLnN1YnNjcmliZSgobmV3RGF0ZTogRGF0ZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5maWVsZC52YWx1ZSA9IG5ld0RhdGU7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUZpZWxkKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlRmllbGQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsaWRhdGVGaWVsZCgpO1xuICAgICAgICB0aGlzLm9uRmllbGRDaGFuZ2VkKHRoaXMuZmllbGQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdmFsaWRhdGVGaWVsZCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZGF0ZUlucHV0Q29udHJvbC5pbnZhbGlkKSB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZUVycm9ycyh0aGlzLmRhdGVJbnB1dENvbnRyb2wuZXJyb3JzKTtcbiAgICAgICAgICAgIHRoaXMuZmllbGQubWFya0FzSW52YWxpZCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5yZXNldEVycm9ycygpO1xuICAgICAgICAgICAgdGhpcy5maWVsZC5tYXJrQXNWYWxpZCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVFcnJvcnMoZXJyb3JzOiBWYWxpZGF0aW9uRXJyb3JzKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGVycm9yQXR0cmlidXRlcyA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KCk7XG4gICAgICAgIHN3aXRjaCAodHJ1ZSkge1xuICAgICAgICAgICAgY2FzZSAhIWVycm9ycy5tYXREYXRlcGlja2VyUGFyc2U6XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVWYWxpZGF0aW9uU3VtbWFyeSh0aGlzLmZpZWxkLmRhdGVEaXNwbGF5Rm9ybWF0IHx8IHRoaXMuZmllbGQuZGVmYXVsdERhdGVUaW1lRm9ybWF0KTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgISFlcnJvcnMucmVxdWlyZWQ6XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVWYWxpZGF0aW9uU3VtbWFyeSgnRk9STS5GSUVMRC5SRVFVSVJFRCcpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAhIWVycm9ycy5tYXREYXRlcGlja2VyTWluOiB7XG4gICAgICAgICAgICAgICAgY29uc3QgbWluVmFsdWUgPSBEYXRlRm5zVXRpbHMuZm9ybWF0RGF0ZShlcnJvcnMubWF0RGF0ZXBpY2tlck1pbi5taW4sIHRoaXMuZmllbGQuZGF0ZURpc3BsYXlGb3JtYXQpLnRvTG9jYWxlVXBwZXJDYXNlKCk7XG4gICAgICAgICAgICAgICAgZXJyb3JBdHRyaWJ1dGVzLnNldCgnbWluVmFsdWUnLCBtaW5WYWx1ZSk7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVWYWxpZGF0aW9uU3VtbWFyeSgnRk9STS5GSUVMRC5WQUxJREFUT1IuTk9UX0xFU1NfVEhBTicsIGVycm9yQXR0cmlidXRlcyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICEhZXJyb3JzLm1hdERhdGVwaWNrZXJNYXg6IHtcbiAgICAgICAgICAgICAgICBjb25zdCBtYXhWYWx1ZSA9IERhdGVGbnNVdGlscy5mb3JtYXREYXRlKGVycm9ycy5tYXREYXRlcGlja2VyTWF4Lm1heCwgdGhpcy5maWVsZC5kYXRlRGlzcGxheUZvcm1hdCkudG9Mb2NhbGVVcHBlckNhc2UoKTtcbiAgICAgICAgICAgICAgICBlcnJvckF0dHJpYnV0ZXMuc2V0KCdtYXhWYWx1ZScsIG1heFZhbHVlKTtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVZhbGlkYXRpb25TdW1tYXJ5KCdGT1JNLkZJRUxELlZBTElEQVRPUi5OT1RfR1JFQVRFUl9USEFOJywgZXJyb3JBdHRyaWJ1dGVzKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVZhbGlkYXRpb25TdW1tYXJ5KG1lc3NhZ2U6IHN0cmluZywgYXR0cmlidXRlcz86IE1hcDxzdHJpbmcsIHN0cmluZz4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5maWVsZC52YWxpZGF0aW9uU3VtbWFyeSA9IG5ldyBFcnJvck1lc3NhZ2VNb2RlbCh7IG1lc3NhZ2UsIGF0dHJpYnV0ZXMgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXNldEVycm9ycygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVWYWxpZGF0aW9uU3VtbWFyeSgnJyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0RGF0ZUFkYXB0ZXIoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmZpZWxkPy5kYXRlRGlzcGxheUZvcm1hdCkge1xuICAgICAgICAgICAgY29uc3QgYWRhcHRlciA9IHRoaXMuZGF0ZUFkYXB0ZXIgYXMgQWRmRGF0ZUZuc0FkYXB0ZXI7XG4gICAgICAgICAgICBhZGFwdGVyLmRpc3BsYXlGb3JtYXQgPSB0aGlzLmZpZWxkLmRhdGVEaXNwbGF5Rm9ybWF0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0U3RhcnRBdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZmllbGQ/LnZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXJ0QXQgPSB0aGlzLmRhdGVBZGFwdGVyLnBhcnNlKHRoaXMuZmllbGQudmFsdWUsIERFRkFVTFRfREFURV9GT1JNQVQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0UmFuZ2VTZWxlY3Rpb24oKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmZpZWxkPy5keW5hbWljRGF0ZVJhbmdlU2VsZWN0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLnNldER5bmFtaWNSYW5nZVNlbGVjdGlvbigpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZXRTdGF0aWNSYW5nZVNlbGVjdGlvbigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXREeW5hbWljUmFuZ2VTZWxlY3Rpb24oKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmZpZWxkLm1pbkRhdGVSYW5nZVZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLm1pbkRhdGUgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5maWVsZC5taW5WYWx1ZSA9IG51bGw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm1pbkRhdGUgPSBhZGREYXlzKHRoaXMuZGF0ZUFkYXB0ZXIudG9kYXkoKSwgdGhpcy5maWVsZC5taW5EYXRlUmFuZ2VWYWx1ZSk7XG4gICAgICAgICAgICB0aGlzLmZpZWxkLm1pblZhbHVlID0gRGF0ZUZuc1V0aWxzLmZvcm1hdERhdGUodGhpcy5taW5EYXRlLCBERUZBVUxUX0RBVEVfRk9STUFUKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5maWVsZC5tYXhEYXRlUmFuZ2VWYWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5tYXhEYXRlID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMuZmllbGQubWF4VmFsdWUgPSBudWxsO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5tYXhEYXRlID0gYWRkRGF5cyh0aGlzLmRhdGVBZGFwdGVyLnRvZGF5KCksIHRoaXMuZmllbGQubWF4RGF0ZVJhbmdlVmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5maWVsZC5tYXhWYWx1ZSA9IERhdGVGbnNVdGlscy5mb3JtYXREYXRlKHRoaXMubWF4RGF0ZSwgREVGQVVMVF9EQVRFX0ZPUk1BVCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFN0YXRpY1JhbmdlU2VsZWN0aW9uKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5maWVsZD8ubWluVmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMubWluRGF0ZSA9IHBhcnNlSVNPKHRoaXMuZmllbGQubWluVmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZmllbGQ/Lm1heFZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLm1heERhdGUgPSBwYXJzZUlTTyh0aGlzLmZpZWxkLm1heFZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxkaXZcbiAgICBjbGFzcz1cInt7ZmllbGQuY2xhc3NOYW1lfX1cIlxuICAgIGlkPVwiZGF0YS13aWRnZXRcIlxuICAgIFtjbGFzcy5hZGYtaW52YWxpZF09XCJkYXRlSW5wdXRDb250cm9sLmludmFsaWQgJiYgZGF0ZUlucHV0Q29udHJvbC50b3VjaGVkXCJcbiAgICBbY2xhc3MuYWRmLWxlZnQtbGFiZWwtaW5wdXQtY29udGFpbmVyXT1cImZpZWxkLmxlZnRMYWJlbHNcIlxuPlxuICAgIDxkaXYgKm5nSWY9XCJmaWVsZC5sZWZ0TGFiZWxzXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImFkZi1sYWJlbCBhZGYtbGVmdC1sYWJlbFwiIFthdHRyLmZvcl09XCJmaWVsZC5pZFwiXG4gICAgICAgICAgICA+e3tmaWVsZC5uYW1lIHwgdHJhbnNsYXRlIH19ICh7e2ZpZWxkLmRhdGVEaXNwbGF5Rm9ybWF0fX0pPHNwYW5cbiAgICAgICAgICAgICAgICBjbGFzcz1cImFkZi1hc3Rlcmlza1wiXG4gICAgICAgICAgICAgICAgW3N0eWxlLnZpc2liaWxpdHldPVwiaXNSZXF1aXJlZCgpID8gJ3Zpc2libGUnIDogJ2hpZGRlbidcIlxuICAgICAgICAgICAgICAgID4qPC9zcGFuXG4gICAgICAgICAgICA+PC9sYWJlbFxuICAgICAgICA+XG4gICAgPC9kaXY+XG4gICAgPGRpdj5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiYWRmLWRhdGUtd2lkZ2V0IGFkZi1mb3JtLWZpZWxkLWlucHV0XCIgW2NsYXNzLmFkZi1sZWZ0LWxhYmVsLWlucHV0LWRhdGVwaWNrZXJdPVwiZmllbGQubGVmdExhYmVsc1wiPlxuICAgICAgICAgICAgQGlmICggKGZpZWxkLm5hbWUgfHwgZmllbGQ/LnJlcXVpcmVkKSAmJiAhZmllbGQubGVmdExhYmVscykge1xuICAgICAgICAgICAgICAgIDxtYXQtbGFiZWwgY2xhc3M9XCJhZGYtbGFiZWxcIiBbYXR0ci5mb3JdPVwiZmllbGQuaWRcIj5cbiAgICAgICAgICAgICAgICAgICAge3tmaWVsZC5uYW1lIHwgdHJhbnNsYXRlIH19ICh7e2ZpZWxkLmRhdGVEaXNwbGF5Rm9ybWF0fX0pXG4gICAgICAgICAgICAgICAgPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYWRmLWlucHV0XCJcbiAgICAgICAgICAgICAgICBbbWF0RGF0ZXBpY2tlcl09XCJkYXRlUGlja2VyXCJcbiAgICAgICAgICAgICAgICBbaWRdPVwiZmllbGQuaWRcIlxuICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJkYXRlSW5wdXRDb250cm9sXCJcbiAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiZmllbGQucGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJmaWVsZC5yZXF1aXJlZCAmJiBmaWVsZC5pc1Zpc2libGVcIlxuICAgICAgICAgICAgICAgIFttaW5dPVwibWluRGF0ZVwiXG4gICAgICAgICAgICAgICAgW21heF09XCJtYXhEYXRlXCJcbiAgICAgICAgICAgICAgICBbdGl0bGVdPVwiZmllbGQudG9vbHRpcFwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPG1hdC1kYXRlcGlja2VyLXRvZ2dsZSBtYXRTdWZmaXggW2Zvcl09XCJkYXRlUGlja2VyXCIgW2Rpc2FibGVkXT1cImZpZWxkLnJlYWRPbmx5XCIgLz5cbiAgICAgICAgICAgIDxtYXQtZGF0ZXBpY2tlciAjZGF0ZVBpY2tlciBbc3RhcnRBdF09XCJzdGFydEF0XCIgW2Rpc2FibGVkXT1cImZpZWxkLnJlYWRPbmx5XCIgLz5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFkZi1lcnJvci1tZXNzYWdlcy1jb250YWluZXJcIj5cbiAgICAgICAgICAgIDxlcnJvci13aWRnZXQgKm5nSWY9XCJkYXRlSW5wdXRDb250cm9sLmludmFsaWQgJiYgZGF0ZUlucHV0Q29udHJvbC50b3VjaGVkXCIgW2Vycm9yXT1cImZpZWxkLnZhbGlkYXRpb25TdW1tYXJ5XCIgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -67,7 +67,7 @@ export class DisplayExternalPropertyWidgetComponent extends WidgetComponent {
|
|
|
67
67
|
}
|
|
68
68
|
}
|
|
69
69
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DisplayExternalPropertyWidgetComponent, deps: [{ token: i1.FormService }, { token: i2.FormCloudService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
70
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
70
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DisplayExternalPropertyWidgetComponent, isStandalone: true, selector: "adf-cloud-display-external-property", host: { listeners: { "click": "event($event)", "blur": "event($event)", "change": "event($event)", "focus": "event($event)", "focusin": "event($event)", "focusout": "event($event)", "input": "event($event)", "invalid": "event($event)", "select": "event($event)" } }, usesInheritance: true, ngImport: i0, template: "<div\n class=\"adf-textfield adf-display-external-property-widget {{ field.className }}\"\n [class.adf-invalid]=\"!field.isValid && isTouched()\"\n [class.adf-readonly]=\"field.readOnly\"\n [class.adf-left-label-input-container]=\"field.leftLabels\"\n>\n <div *ngIf=\"field.leftLabels\">\n <label class=\"adf-label adf-left-label\" [attr.for]=\"field.id\">\n {{ field.name | translate }}<span class=\"adf-asterisk\" [style.visibility]=\"isRequired() ? 'visible' : 'hidden'\">*</span>\n </label>\n </div>\n\n <div>\n <mat-form-field class=\"adf-form-field-input\" [floatLabel]=\"field.placeholder ? 'always' : null\">\n @if( (field.name || field?.required) && !field.leftLabels) {\n <mat-label class=\"adf-label\" [attr.for]=\"field.id\">\n {{ field.name | translate }}\n </mat-label>\n }\n <input matInput\n class=\"adf-input\"\n type=\"text\"\n data-automation-id=\"adf-display-external-property-widget\"\n [id]=\"field.id\"\n [formControl]=\"propertyControl\"\n [required]=\"field.required\"\n >\n\n <ng-container *ngIf=\"previewState\">\n <span class=\"adf-display-external-property-widget-preview\"\n data-automation-id=\"adf-display-external-property-widget-preview\"\n >\n {{ field.params.externalPropertyLabel }}\n </span>\n </ng-container>\n </mat-form-field>\n\n <ng-container *ngIf=\"!previewState\">\n <error-widget *ngIf=\"propertyLoadFailed\" [required]=\"'FORM.FIELD.EXTERNAL_PROPERTY_LOAD_FAILED' | translate\" />\n </ng-container>\n</div>\n", styles: [".adf-display-external-property-widget{width:100%}.adf-display-external-property-widget .adf-label{top:20px}.adf-display-external-property-widget-preview{color:var(--adf-theme-foreground-secondary-text-color);word-break:break-all}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i5.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: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatFormFieldModule }, { 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: "ngmodule", type: MatInputModule }, { kind: "directive", type: i7.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: "ngmodule", type: FormBaseModule }, { kind: "component", type: i1.ErrorWidgetComponent, selector: "error-widget", inputs: ["error", "required"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
71
71
|
}
|
|
72
72
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DisplayExternalPropertyWidgetComponent, decorators: [{
|
|
73
73
|
type: Component,
|
|
@@ -81,6 +81,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
81
81
|
'(input)': 'event($event)',
|
|
82
82
|
'(invalid)': 'event($event)',
|
|
83
83
|
'(select)': 'event($event)'
|
|
84
|
-
}, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"adf-textfield adf-display-external-property-widget {{ field.className }}\"\n [class.adf-invalid]=\"!field.isValid && isTouched()\"\n [class.adf-readonly]=\"field.readOnly\"\n [class.adf-left-label-input-container]=\"field.leftLabels\"\n>\n <div *ngIf=\"field.leftLabels\">\n <label class=\"adf-label adf-left-label\" [attr.for]=\"field.id\">\n {{ field.name | translate }}<span class=\"adf-asterisk\" [style.visibility]=\"isRequired() ? 'visible' : 'hidden'\">*</span>\n </label>\n </div>\n\n <div>\n <mat-form-field [
|
|
84
|
+
}, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"adf-textfield adf-display-external-property-widget {{ field.className }}\"\n [class.adf-invalid]=\"!field.isValid && isTouched()\"\n [class.adf-readonly]=\"field.readOnly\"\n [class.adf-left-label-input-container]=\"field.leftLabels\"\n>\n <div *ngIf=\"field.leftLabels\">\n <label class=\"adf-label adf-left-label\" [attr.for]=\"field.id\">\n {{ field.name | translate }}<span class=\"adf-asterisk\" [style.visibility]=\"isRequired() ? 'visible' : 'hidden'\">*</span>\n </label>\n </div>\n\n <div>\n <mat-form-field class=\"adf-form-field-input\" [floatLabel]=\"field.placeholder ? 'always' : null\">\n @if( (field.name || field?.required) && !field.leftLabels) {\n <mat-label class=\"adf-label\" [attr.for]=\"field.id\">\n {{ field.name | translate }}\n </mat-label>\n }\n <input matInput\n class=\"adf-input\"\n type=\"text\"\n data-automation-id=\"adf-display-external-property-widget\"\n [id]=\"field.id\"\n [formControl]=\"propertyControl\"\n [required]=\"field.required\"\n >\n\n <ng-container *ngIf=\"previewState\">\n <span class=\"adf-display-external-property-widget-preview\"\n data-automation-id=\"adf-display-external-property-widget-preview\"\n >\n {{ field.params.externalPropertyLabel }}\n </span>\n </ng-container>\n </mat-form-field>\n\n <ng-container *ngIf=\"!previewState\">\n <error-widget *ngIf=\"propertyLoadFailed\" [required]=\"'FORM.FIELD.EXTERNAL_PROPERTY_LOAD_FAILED' | translate\" />\n </ng-container>\n</div>\n", styles: [".adf-display-external-property-widget{width:100%}.adf-display-external-property-widget .adf-label{top:20px}.adf-display-external-property-widget-preview{color:var(--adf-theme-foreground-secondary-text-color);word-break:break-all}\n"] }]
|
|
85
85
|
}], ctorParameters: () => [{ type: i1.FormService }, { type: i2.FormCloudService }] });
|
|
86
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzcGxheS1leHRlcm5hbC1wcm9wZXJ0eS53aWRnZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvcHJvY2Vzcy1zZXJ2aWNlcy1jbG91ZC9zcmMvbGliL2Zvcm0vY29tcG9uZW50cy93aWRnZXRzL2Rpc3BsYXktZXh0ZXJuYWwtcHJvcGVydHkvZGlzcGxheS1leHRlcm5hbC1wcm9wZXJ0eS53aWRnZXQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvcHJvY2Vzcy1zZXJ2aWNlcy1jbG91ZC9zcmMvbGliL2Zvcm0vY29tcG9uZW50cy93aWRnZXRzL2Rpc3BsYXktZXh0ZXJuYWwtcHJvcGVydHkvZGlzcGxheS1leHRlcm5hbC1wcm9wZXJ0eS53aWRnZXQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFVLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlGLE9BQU8sRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDeEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7Ozs7OztBQXNCekQsTUFBTSxPQUFPLHNDQUF1QyxTQUFRLGVBQWU7SUFLdkUsWUFBNEIsV0FBd0IsRUFBbUIsZ0JBQWtDO1FBQ3JHLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQURLLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQW1CLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFKekcsdUJBQWtCLEdBQUcsS0FBSyxDQUFDO1FBQzNCLGlCQUFZLEdBQUcsS0FBSyxDQUFDO0lBS3JCLENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFTyxlQUFlO1FBQ25CLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxXQUFXLENBQ2xDO1lBQ0ksS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSztZQUN4QixRQUFRLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVE7U0FDbEQsRUFDRCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQ2pELENBQUM7SUFDTixDQUFDO0lBRU8sb0JBQW9CO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO0lBQzVELENBQUM7SUFFTyx3QkFBd0I7UUFDNUIsSUFBSSxJQUFJLENBQUMsb0JBQW9CLEVBQUUsRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxXQUFXLENBQUMsNkJBQTZCLENBQUMsQ0FBQztRQUNwRCxDQUFDO0lBQ0wsQ0FBQztJQUVPLGdCQUFnQjtRQUNwQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUNoRSxDQUFDO0lBRU8sV0FBVyxDQUFDLEtBQVU7UUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDO1lBQy9CLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pDLENBQUM7SUFDTCxDQUFDOytHQTVDUSxzQ0FBc0M7bUdBQXRDLHNDQUFzQyxpWUM5Q25ELG11REFzQ0EsZ1NEVmMsWUFBWSxrSUFBRSxlQUFlLDJGQUFFLG1CQUFtQix5a0JBQUUsa0JBQWtCLHlPQUFFLGNBQWMsMFdBQUUsY0FBYzs7NEZBa0J2RyxzQ0FBc0M7a0JBcEJsRCxTQUFTO2lDQUNNLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxlQUFlLEVBQUUsbUJBQW1CLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLGNBQWMsQ0FBQyxZQUN2RyxxQ0FBcUMsUUFHekM7d0JBQ0YsU0FBUyxFQUFFLGVBQWU7d0JBQzFCLFFBQVEsRUFBRSxlQUFlO3dCQUN6QixVQUFVLEVBQUUsZUFBZTt3QkFDM0IsU0FBUyxFQUFFLGVBQWU7d0JBQzFCLFdBQVcsRUFBRSxlQUFlO3dCQUM1QixZQUFZLEVBQUUsZUFBZTt3QkFDN0IsU0FBUyxFQUFFLGVBQWU7d0JBQzFCLFdBQVcsRUFBRSxlQUFlO3dCQUM1QixVQUFVLEVBQUUsZUFBZTtxQkFDOUIsaUJBQ2MsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgT25Jbml0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgV2lkZ2V0Q29tcG9uZW50LCBGb3JtU2VydmljZSwgRm9ybUJhc2VNb2R1bGUgfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNsb3VkU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Zvcm0tY2xvdWQuc2VydmljZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgVHJhbnNsYXRlTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBNYXRGb3JtRmllbGRNb2R1bGUsIE1hdElucHV0TW9kdWxlLCBGb3JtQmFzZU1vZHVsZV0sXG4gICAgc2VsZWN0b3I6ICdhZGYtY2xvdWQtZGlzcGxheS1leHRlcm5hbC1wcm9wZXJ0eScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2Rpc3BsYXktZXh0ZXJuYWwtcHJvcGVydHkud2lkZ2V0Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2Rpc3BsYXktZXh0ZXJuYWwtcHJvcGVydHkud2lkZ2V0LnNjc3MnXSxcbiAgICBob3N0OiB7XG4gICAgICAgICcoY2xpY2spJzogJ2V2ZW50KCRldmVudCknLFxuICAgICAgICAnKGJsdXIpJzogJ2V2ZW50KCRldmVudCknLFxuICAgICAgICAnKGNoYW5nZSknOiAnZXZlbnQoJGV2ZW50KScsXG4gICAgICAgICcoZm9jdXMpJzogJ2V2ZW50KCRldmVudCknLFxuICAgICAgICAnKGZvY3VzaW4pJzogJ2V2ZW50KCRldmVudCknLFxuICAgICAgICAnKGZvY3Vzb3V0KSc6ICdldmVudCgkZXZlbnQpJyxcbiAgICAgICAgJyhpbnB1dCknOiAnZXZlbnQoJGV2ZW50KScsXG4gICAgICAgICcoaW52YWxpZCknOiAnZXZlbnQoJGV2ZW50KScsXG4gICAgICAgICcoc2VsZWN0KSc6ICdldmVudCgkZXZlbnQpJ1xuICAgIH0sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBEaXNwbGF5RXh0ZXJuYWxQcm9wZXJ0eVdpZGdldENvbXBvbmVudCBleHRlbmRzIFdpZGdldENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgcHJvcGVydHlMb2FkRmFpbGVkID0gZmFsc2U7XG4gICAgcHJldmlld1N0YXRlID0gZmFsc2U7XG4gICAgcHJvcGVydHlDb250cm9sOiBGb3JtQ29udHJvbDtcblxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBmb3JtU2VydmljZTogRm9ybVNlcnZpY2UsIHByaXZhdGUgcmVhZG9ubHkgZm9ybUNsb3VkU2VydmljZTogRm9ybUNsb3VkU2VydmljZSkge1xuICAgICAgICBzdXBlcihmb3JtU2VydmljZSk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW5pdEZvcm1Db250cm9sKCk7XG4gICAgICAgIHRoaXMuaW5pdFByZXZpZXdTdGF0ZSgpO1xuICAgICAgICB0aGlzLmhhbmRsZUZhaWxlZFByb3BlcnR5TG9hZCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdEZvcm1Db250cm9sKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnByb3BlcnR5Q29udHJvbCA9IG5ldyBGb3JtQ29udHJvbChcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogdGhpcy5maWVsZD8udmFsdWUsXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ6IHRoaXMuZmllbGQ/LnJlYWRPbmx5IHx8IHRoaXMucmVhZE9ubHlcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB0aGlzLmlzUmVxdWlyZWQoKSA/IFtWYWxpZGF0b3JzLnJlcXVpcmVkXSA6IFtdXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc1Byb3BlcnR5TG9hZEZhaWxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmllbGQuZXh0ZXJuYWxQcm9wZXJ0eSAmJiAhdGhpcy5maWVsZC52YWx1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhhbmRsZUZhaWxlZFByb3BlcnR5TG9hZCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNQcm9wZXJ0eUxvYWRGYWlsZWQoKSkge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVFcnJvcignRXh0ZXJuYWwgcHJvcGVydHkgbm90IGZvdW5kJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRQcmV2aWV3U3RhdGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucHJldmlld1N0YXRlID0gdGhpcy5mb3JtQ2xvdWRTZXJ2aWNlLmdldFByZXZpZXdTdGF0ZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlRXJyb3IoZXJyb3I6IGFueSk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMucHJldmlld1N0YXRlKSB7XG4gICAgICAgICAgICB0aGlzLnByb3BlcnR5TG9hZEZhaWxlZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLndpZGdldEVycm9yLmVtaXQoZXJyb3IpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGRpdlxuICAgIGNsYXNzPVwiYWRmLXRleHRmaWVsZCBhZGYtZGlzcGxheS1leHRlcm5hbC1wcm9wZXJ0eS13aWRnZXQge3sgZmllbGQuY2xhc3NOYW1lIH19XCJcbiAgICBbY2xhc3MuYWRmLWludmFsaWRdPVwiIWZpZWxkLmlzVmFsaWQgJiYgaXNUb3VjaGVkKClcIlxuICAgIFtjbGFzcy5hZGYtcmVhZG9ubHldPVwiZmllbGQucmVhZE9ubHlcIlxuICAgIFtjbGFzcy5hZGYtbGVmdC1sYWJlbC1pbnB1dC1jb250YWluZXJdPVwiZmllbGQubGVmdExhYmVsc1wiXG4+XG4gICAgPGRpdiAqbmdJZj1cImZpZWxkLmxlZnRMYWJlbHNcIj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiYWRmLWxhYmVsIGFkZi1sZWZ0LWxhYmVsXCIgW2F0dHIuZm9yXT1cImZpZWxkLmlkXCI+XG4gICAgICAgICAgICB7eyBmaWVsZC5uYW1lIHwgdHJhbnNsYXRlIH19PHNwYW4gY2xhc3M9XCJhZGYtYXN0ZXJpc2tcIiBbc3R5bGUudmlzaWJpbGl0eV09XCJpc1JlcXVpcmVkKCkgPyAndmlzaWJsZScgOiAnaGlkZGVuJ1wiPio8L3NwYW4+XG4gICAgICAgIDwvbGFiZWw+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2PlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgW2hpZGVSZXF1aXJlZE1hcmtlcl09XCJ0cnVlXCI+XG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJhZGYtbGFiZWxcIiAqbmdJZj1cIiFmaWVsZC5sZWZ0TGFiZWxzXCIgW2F0dHIuZm9yXT1cImZpZWxkLmlkXCI+XG4gICAgICAgICAgICAgICAge3sgZmllbGQubmFtZSB8IHRyYW5zbGF0ZSB9fTxzcGFuIGNsYXNzPVwiYWRmLWFzdGVyaXNrXCIgW3N0eWxlLnZpc2liaWxpdHldPVwiaXNSZXF1aXJlZCgpID8gJ3Zpc2libGUnIDogJ2hpZGRlbidcIj4qPC9zcGFuPlxuICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dFxuICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYWRmLWlucHV0XCJcbiAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgZGF0YS1hdXRvbWF0aW9uLWlkPVwiYWRmLWRpc3BsYXktZXh0ZXJuYWwtcHJvcGVydHktd2lkZ2V0XCJcbiAgICAgICAgICAgICAgICAgICBbaWRdPVwiZmllbGQuaWRcIlxuICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJwcm9wZXJ0eUNvbnRyb2xcIlxuICAgICAgICAgICAgPlxuXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicHJldmlld1N0YXRlXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhZGYtZGlzcGxheS1leHRlcm5hbC1wcm9wZXJ0eS13aWRnZXQtcHJldmlld1wiXG4gICAgICAgICAgICAgICAgICAgICAgIGRhdGEtYXV0b21hdGlvbi1pZD1cImFkZi1kaXNwbGF5LWV4dGVybmFsLXByb3BlcnR5LXdpZGdldC1wcmV2aWV3XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt7IGZpZWxkLnBhcmFtcy5leHRlcm5hbFByb3BlcnR5TGFiZWwgfX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXByZXZpZXdTdGF0ZVwiPlxuICAgICAgICAgICAgPGVycm9yLXdpZGdldCAqbmdJZj1cInByb3BlcnR5TG9hZEZhaWxlZFwiIFtyZXF1aXJlZF09XCInRk9STS5GSUVMRC5FWFRFUk5BTF9QUk9QRVJUWV9MT0FEX0ZBSUxFRCcgfCB0cmFuc2xhdGVcIiAvPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuIl19
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzcGxheS1leHRlcm5hbC1wcm9wZXJ0eS53aWRnZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvcHJvY2Vzcy1zZXJ2aWNlcy1jbG91ZC9zcmMvbGliL2Zvcm0vY29tcG9uZW50cy93aWRnZXRzL2Rpc3BsYXktZXh0ZXJuYWwtcHJvcGVydHkvZGlzcGxheS1leHRlcm5hbC1wcm9wZXJ0eS53aWRnZXQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvcHJvY2Vzcy1zZXJ2aWNlcy1jbG91ZC9zcmMvbGliL2Zvcm0vY29tcG9uZW50cy93aWRnZXRzL2Rpc3BsYXktZXh0ZXJuYWwtcHJvcGVydHkvZGlzcGxheS1leHRlcm5hbC1wcm9wZXJ0eS53aWRnZXQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFVLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlGLE9BQU8sRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDeEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7Ozs7OztBQXNCekQsTUFBTSxPQUFPLHNDQUF1QyxTQUFRLGVBQWU7SUFLdkUsWUFBNEIsV0FBd0IsRUFBbUIsZ0JBQWtDO1FBQ3JHLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQURLLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQW1CLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFKekcsdUJBQWtCLEdBQUcsS0FBSyxDQUFDO1FBQzNCLGlCQUFZLEdBQUcsS0FBSyxDQUFDO0lBS3JCLENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFTyxlQUFlO1FBQ25CLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxXQUFXLENBQ2xDO1lBQ0ksS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSztZQUN4QixRQUFRLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVE7U0FDbEQsRUFDRCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQ2pELENBQUM7SUFDTixDQUFDO0lBRU8sb0JBQW9CO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO0lBQzVELENBQUM7SUFFTyx3QkFBd0I7UUFDNUIsSUFBSSxJQUFJLENBQUMsb0JBQW9CLEVBQUUsRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxXQUFXLENBQUMsNkJBQTZCLENBQUMsQ0FBQztRQUNwRCxDQUFDO0lBQ0wsQ0FBQztJQUVPLGdCQUFnQjtRQUNwQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUNoRSxDQUFDO0lBRU8sV0FBVyxDQUFDLEtBQVU7UUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDO1lBQy9CLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pDLENBQUM7SUFDTCxDQUFDOytHQTVDUSxzQ0FBc0M7bUdBQXRDLHNDQUFzQyxpWUM5Q25ELHF6REF5Q0EsZ1NEYmMsWUFBWSxrSUFBRSxlQUFlLDJGQUFFLG1CQUFtQixzeUJBQUUsa0JBQWtCLDBTQUFFLGNBQWMsMFdBQUUsY0FBYzs7NEZBa0J2RyxzQ0FBc0M7a0JBcEJsRCxTQUFTO2lDQUNNLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxlQUFlLEVBQUUsbUJBQW1CLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLGNBQWMsQ0FBQyxZQUN2RyxxQ0FBcUMsUUFHekM7d0JBQ0YsU0FBUyxFQUFFLGVBQWU7d0JBQzFCLFFBQVEsRUFBRSxlQUFlO3dCQUN6QixVQUFVLEVBQUUsZUFBZTt3QkFDM0IsU0FBUyxFQUFFLGVBQWU7d0JBQzFCLFdBQVcsRUFBRSxlQUFlO3dCQUM1QixZQUFZLEVBQUUsZUFBZTt3QkFDN0IsU0FBUyxFQUFFLGVBQWU7d0JBQzFCLFdBQVcsRUFBRSxlQUFlO3dCQUM1QixVQUFVLEVBQUUsZUFBZTtxQkFDOUIsaUJBQ2MsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgT25Jbml0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgV2lkZ2V0Q29tcG9uZW50LCBGb3JtU2VydmljZSwgRm9ybUJhc2VNb2R1bGUgfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNsb3VkU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Zvcm0tY2xvdWQuc2VydmljZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgVHJhbnNsYXRlTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBNYXRGb3JtRmllbGRNb2R1bGUsIE1hdElucHV0TW9kdWxlLCBGb3JtQmFzZU1vZHVsZV0sXG4gICAgc2VsZWN0b3I6ICdhZGYtY2xvdWQtZGlzcGxheS1leHRlcm5hbC1wcm9wZXJ0eScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2Rpc3BsYXktZXh0ZXJuYWwtcHJvcGVydHkud2lkZ2V0Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2Rpc3BsYXktZXh0ZXJuYWwtcHJvcGVydHkud2lkZ2V0LnNjc3MnXSxcbiAgICBob3N0OiB7XG4gICAgICAgICcoY2xpY2spJzogJ2V2ZW50KCRldmVudCknLFxuICAgICAgICAnKGJsdXIpJzogJ2V2ZW50KCRldmVudCknLFxuICAgICAgICAnKGNoYW5nZSknOiAnZXZlbnQoJGV2ZW50KScsXG4gICAgICAgICcoZm9jdXMpJzogJ2V2ZW50KCRldmVudCknLFxuICAgICAgICAnKGZvY3VzaW4pJzogJ2V2ZW50KCRldmVudCknLFxuICAgICAgICAnKGZvY3Vzb3V0KSc6ICdldmVudCgkZXZlbnQpJyxcbiAgICAgICAgJyhpbnB1dCknOiAnZXZlbnQoJGV2ZW50KScsXG4gICAgICAgICcoaW52YWxpZCknOiAnZXZlbnQoJGV2ZW50KScsXG4gICAgICAgICcoc2VsZWN0KSc6ICdldmVudCgkZXZlbnQpJ1xuICAgIH0sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBEaXNwbGF5RXh0ZXJuYWxQcm9wZXJ0eVdpZGdldENvbXBvbmVudCBleHRlbmRzIFdpZGdldENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgcHJvcGVydHlMb2FkRmFpbGVkID0gZmFsc2U7XG4gICAgcHJldmlld1N0YXRlID0gZmFsc2U7XG4gICAgcHJvcGVydHlDb250cm9sOiBGb3JtQ29udHJvbDtcblxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBmb3JtU2VydmljZTogRm9ybVNlcnZpY2UsIHByaXZhdGUgcmVhZG9ubHkgZm9ybUNsb3VkU2VydmljZTogRm9ybUNsb3VkU2VydmljZSkge1xuICAgICAgICBzdXBlcihmb3JtU2VydmljZSk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW5pdEZvcm1Db250cm9sKCk7XG4gICAgICAgIHRoaXMuaW5pdFByZXZpZXdTdGF0ZSgpO1xuICAgICAgICB0aGlzLmhhbmRsZUZhaWxlZFByb3BlcnR5TG9hZCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdEZvcm1Db250cm9sKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnByb3BlcnR5Q29udHJvbCA9IG5ldyBGb3JtQ29udHJvbChcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogdGhpcy5maWVsZD8udmFsdWUsXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ6IHRoaXMuZmllbGQ/LnJlYWRPbmx5IHx8IHRoaXMucmVhZE9ubHlcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB0aGlzLmlzUmVxdWlyZWQoKSA/IFtWYWxpZGF0b3JzLnJlcXVpcmVkXSA6IFtdXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc1Byb3BlcnR5TG9hZEZhaWxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmllbGQuZXh0ZXJuYWxQcm9wZXJ0eSAmJiAhdGhpcy5maWVsZC52YWx1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhhbmRsZUZhaWxlZFByb3BlcnR5TG9hZCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNQcm9wZXJ0eUxvYWRGYWlsZWQoKSkge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVFcnJvcignRXh0ZXJuYWwgcHJvcGVydHkgbm90IGZvdW5kJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRQcmV2aWV3U3RhdGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucHJldmlld1N0YXRlID0gdGhpcy5mb3JtQ2xvdWRTZXJ2aWNlLmdldFByZXZpZXdTdGF0ZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlRXJyb3IoZXJyb3I6IGFueSk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMucHJldmlld1N0YXRlKSB7XG4gICAgICAgICAgICB0aGlzLnByb3BlcnR5TG9hZEZhaWxlZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLndpZGdldEVycm9yLmVtaXQoZXJyb3IpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGRpdlxuICAgIGNsYXNzPVwiYWRmLXRleHRmaWVsZCBhZGYtZGlzcGxheS1leHRlcm5hbC1wcm9wZXJ0eS13aWRnZXQge3sgZmllbGQuY2xhc3NOYW1lIH19XCJcbiAgICBbY2xhc3MuYWRmLWludmFsaWRdPVwiIWZpZWxkLmlzVmFsaWQgJiYgaXNUb3VjaGVkKClcIlxuICAgIFtjbGFzcy5hZGYtcmVhZG9ubHldPVwiZmllbGQucmVhZE9ubHlcIlxuICAgIFtjbGFzcy5hZGYtbGVmdC1sYWJlbC1pbnB1dC1jb250YWluZXJdPVwiZmllbGQubGVmdExhYmVsc1wiXG4+XG4gICAgPGRpdiAqbmdJZj1cImZpZWxkLmxlZnRMYWJlbHNcIj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiYWRmLWxhYmVsIGFkZi1sZWZ0LWxhYmVsXCIgW2F0dHIuZm9yXT1cImZpZWxkLmlkXCI+XG4gICAgICAgICAgICB7eyBmaWVsZC5uYW1lIHwgdHJhbnNsYXRlIH19PHNwYW4gY2xhc3M9XCJhZGYtYXN0ZXJpc2tcIiBbc3R5bGUudmlzaWJpbGl0eV09XCJpc1JlcXVpcmVkKCkgPyAndmlzaWJsZScgOiAnaGlkZGVuJ1wiPio8L3NwYW4+XG4gICAgICAgIDwvbGFiZWw+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2PlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJhZGYtZm9ybS1maWVsZC1pbnB1dFwiIFtmbG9hdExhYmVsXT1cImZpZWxkLnBsYWNlaG9sZGVyID8gJ2Fsd2F5cycgOiBudWxsXCI+XG4gICAgICAgICAgICBAaWYoIChmaWVsZC5uYW1lIHx8IGZpZWxkPy5yZXF1aXJlZCkgJiYgIWZpZWxkLmxlZnRMYWJlbHMpIHtcbiAgICAgICAgICAgIDxtYXQtbGFiZWwgY2xhc3M9XCJhZGYtbGFiZWxcIiBbYXR0ci5mb3JdPVwiZmllbGQuaWRcIj5cbiAgICAgICAgICAgICAgICB7eyBmaWVsZC5uYW1lIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICA8L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPGlucHV0IG1hdElucHV0XG4gICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhZGYtaW5wdXRcIlxuICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICBkYXRhLWF1dG9tYXRpb24taWQ9XCJhZGYtZGlzcGxheS1leHRlcm5hbC1wcm9wZXJ0eS13aWRnZXRcIlxuICAgICAgICAgICAgICAgICAgIFtpZF09XCJmaWVsZC5pZFwiXG4gICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cInByb3BlcnR5Q29udHJvbFwiXG4gICAgICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cImZpZWxkLnJlcXVpcmVkXCJcbiAgICAgICAgICAgID5cblxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInByZXZpZXdTdGF0ZVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWRmLWRpc3BsYXktZXh0ZXJuYWwtcHJvcGVydHktd2lkZ2V0LXByZXZpZXdcIlxuICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWF1dG9tYXRpb24taWQ9XCJhZGYtZGlzcGxheS1leHRlcm5hbC1wcm9wZXJ0eS13aWRnZXQtcHJldmlld1wiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7eyBmaWVsZC5wYXJhbXMuZXh0ZXJuYWxQcm9wZXJ0eUxhYmVsIH19XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFwcmV2aWV3U3RhdGVcIj5cbiAgICAgICAgICAgIDxlcnJvci13aWRnZXQgKm5nSWY9XCJwcm9wZXJ0eUxvYWRGYWlsZWRcIiBbcmVxdWlyZWRdPVwiJ0ZPUk0uRklFTEQuRVhURVJOQUxfUFJPUEVSVFlfTE9BRF9GQUlMRUQnIHwgdHJhbnNsYXRlXCIgLz5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -445,7 +445,7 @@ export class DropdownCloudWidgetComponent extends WidgetComponent {
|
|
|
445
445
|
}
|
|
446
446
|
}
|
|
447
447
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DropdownCloudWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
448
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
448
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DropdownCloudWidgetComponent, isStandalone: true, selector: "dropdown-cloud-widget", usesInheritance: true, ngImport: i0, template: "<div\n class=\"adf-dropdown-widget {{field.className}}\"\n [class.adf-invalid]=\"dropdownControl.invalid && dropdownControl.touched\"\n [class.adf-readonly]=\"field.readOnly\"\n [class.adf-left-label-input-container]=\"field.leftLabels\"\n>\n <div *ngIf=\"field.leftLabels\">\n <label class=\"adf-label adf-left-label\" [attr.for]=\"field.id\">\n {{ field.name | translate }}<span class=\"adf-asterisk\" [style.visibility]=\"isRequired() ? 'visible' : 'hidden'\">*</span>\n </label>\n </div>\n <div>\n <mat-form-field class=\"adf-form-field-input\">\n @if ( (field.name || this.field?.required) && !field.leftLabels) { <mat-label class=\"adf-label\" [attr.for]=\"field.id\">{{ field.name | translate }}</mat-label> }\n <mat-select\n class=\"adf-select\"\n [formControl]=\"dropdownControl\"\n [id]=\"field.id\"\n [compareWith]=\"compareDropdownValues\"\n [title]=\"field.tooltip\"\n panelClass=\"adf-select-filter\"\n [multiple]=\"field.hasMultipleValues\"\n [disabled]=\"field.readOnly\"\n [required]=\"field.required \"\n >\n <adf-select-filter-input *ngIf=\"showInputFilter\" (change)=\"filter$.next($event)\" />\n\n <mat-option *ngFor=\"let opt of list$ | async\" [value]=\"opt\" [id]=\"opt.id\">{{opt.name}}</mat-option>\n <mat-option id=\"readonlyOption\" *ngIf=\"isReadOnlyType\" [value]=\"field.value\">{{field.value}}</mat-option>\n </mat-select>\n </mat-form-field>\n <div class=\"adf-error-messages-container\" *ngIf=\"!previewState && !field.readOnly\">\n <error-widget\n class=\"adf-dropdown-required-message\"\n *ngIf=\"showRequiredMessage\"\n required=\"{{ 'FORM.FIELD.REQUIRED' | translate }}\"\n />\n <error-widget\n class=\"adf-dropdown-failed-message\"\n *ngIf=\"isRestApiFailed\"\n required=\"{{ 'FORM.FIELD.REST_API_FAILED' | translate: { hostname: restApiHostName } }}\"\n />\n <error-widget\n class=\"adf-dropdown-failed-message\"\n *ngIf=\"variableOptionsFailed\"\n required=\"{{ 'FORM.FIELD.VARIABLE_DROPDOWN_OPTIONS_FAILED' | translate }}\"\n />\n </div>\n </div>\n</div>\n", styles: [".adf-dropdown-widget{width:100%}.adf-dropdown-widget .adf-select{padding-top:0;width:100%}.adf-dropdown-widget .adf-select-filter{font-size:var(--theme-body-1-font-size)}.adf-dropdown-widget-select{width:100%}.adf-dropdown-widget-dropdown-required-message .adf-error-container,.adf-dropdown-widget-dropdown-failed-message .adf-error-container{margin-top:1px}.adf-dropdown-widget .mat-mdc-select-arrow-wrapper{height:auto}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i3.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i4.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: ErrorWidgetComponent, selector: "error-widget", inputs: ["error", "required"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "component", type: SelectFilterInputComponent, selector: "adf-select-filter-input", outputs: ["change"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
449
449
|
}
|
|
450
450
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DropdownCloudWidgetComponent, decorators: [{
|
|
451
451
|
type: Component,
|
|
@@ -459,6 +459,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
459
459
|
ErrorWidgetComponent,
|
|
460
460
|
TranslateModule,
|
|
461
461
|
SelectFilterInputComponent
|
|
462
|
-
], template: "<div\n class=\"adf-dropdown-widget {{field.className}}\"\n [class.adf-invalid]=\"dropdownControl.invalid && dropdownControl.touched\"\n [class.adf-readonly]=\"field.readOnly\"\n [class.adf-left-label-input-container]=\"field.leftLabels\"\n>\n <div *ngIf=\"field.leftLabels\">\n <label class=\"adf-label adf-left-label\" [attr.for]=\"field.id\">\n {{ field.name | translate }}<span class=\"adf-asterisk\" [style.visibility]=\"isRequired() ? 'visible' : 'hidden'\">*</span>\n </label>\n </div>\n <div>\n <mat-form-field>\n
|
|
462
|
+
], template: "<div\n class=\"adf-dropdown-widget {{field.className}}\"\n [class.adf-invalid]=\"dropdownControl.invalid && dropdownControl.touched\"\n [class.adf-readonly]=\"field.readOnly\"\n [class.adf-left-label-input-container]=\"field.leftLabels\"\n>\n <div *ngIf=\"field.leftLabels\">\n <label class=\"adf-label adf-left-label\" [attr.for]=\"field.id\">\n {{ field.name | translate }}<span class=\"adf-asterisk\" [style.visibility]=\"isRequired() ? 'visible' : 'hidden'\">*</span>\n </label>\n </div>\n <div>\n <mat-form-field class=\"adf-form-field-input\">\n @if ( (field.name || this.field?.required) && !field.leftLabels) { <mat-label class=\"adf-label\" [attr.for]=\"field.id\">{{ field.name | translate }}</mat-label> }\n <mat-select\n class=\"adf-select\"\n [formControl]=\"dropdownControl\"\n [id]=\"field.id\"\n [compareWith]=\"compareDropdownValues\"\n [title]=\"field.tooltip\"\n panelClass=\"adf-select-filter\"\n [multiple]=\"field.hasMultipleValues\"\n [disabled]=\"field.readOnly\"\n [required]=\"field.required \"\n >\n <adf-select-filter-input *ngIf=\"showInputFilter\" (change)=\"filter$.next($event)\" />\n\n <mat-option *ngFor=\"let opt of list$ | async\" [value]=\"opt\" [id]=\"opt.id\">{{opt.name}}</mat-option>\n <mat-option id=\"readonlyOption\" *ngIf=\"isReadOnlyType\" [value]=\"field.value\">{{field.value}}</mat-option>\n </mat-select>\n </mat-form-field>\n <div class=\"adf-error-messages-container\" *ngIf=\"!previewState && !field.readOnly\">\n <error-widget\n class=\"adf-dropdown-required-message\"\n *ngIf=\"showRequiredMessage\"\n required=\"{{ 'FORM.FIELD.REQUIRED' | translate }}\"\n />\n <error-widget\n class=\"adf-dropdown-failed-message\"\n *ngIf=\"isRestApiFailed\"\n required=\"{{ 'FORM.FIELD.REST_API_FAILED' | translate: { hostname: restApiHostName } }}\"\n />\n <error-widget\n class=\"adf-dropdown-failed-message\"\n *ngIf=\"variableOptionsFailed\"\n required=\"{{ 'FORM.FIELD.VARIABLE_DROPDOWN_OPTIONS_FAILED' | translate }}\"\n />\n </div>\n </div>\n</div>\n", styles: [".adf-dropdown-widget{width:100%}.adf-dropdown-widget .adf-select{padding-top:0;width:100%}.adf-dropdown-widget .adf-select-filter{font-size:var(--theme-body-1-font-size)}.adf-dropdown-widget-select{width:100%}.adf-dropdown-widget-dropdown-required-message .adf-error-container,.adf-dropdown-widget-dropdown-failed-message .adf-error-container{margin-top:1px}.adf-dropdown-widget .mat-mdc-select-arrow-wrapper{height:auto}\n"] }]
|
|
463
463
|
}] });
|
|
464
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tY2xvdWQud2lkZ2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL3Byb2Nlc3Mtc2VydmljZXMtY2xvdWQvc3JjL2xpYi9mb3JtL2NvbXBvbmVudHMvd2lkZ2V0cy9kcm9wZG93bi9kcm9wZG93bi1jbG91ZC53aWRnZXQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvcHJvY2Vzcy1zZXJ2aWNlcy1jbG91ZC9zcmMvbGliL2Zvcm0vY29tcG9uZW50cy93aWRnZXRzL2Ryb3Bkb3duL2Ryb3Bkb3duLWNsb3VkLndpZGdldC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILE9BQU8sRUFDSCxnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ2pCLG9CQUFvQixFQUNwQixjQUFjLEVBR2QsY0FBYyxFQUNkLFdBQVcsRUFHWCwwQkFBMEIsRUFDMUIsZUFBZSxFQUNsQixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBVSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RixPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFB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MFNBQ2xCLGVBQWUsb3JCQUNmLG9CQUFvQix1RkFDcEIsZUFBZSw0RkFDZiwwQkFBMEI7OzRGQUdyQiw0QkFBNEI7a0JBbEJ4QyxTQUFTOytCQUNJLHVCQUF1QixpQkFHbEIsaUJBQWlCLENBQUMsSUFBSSxjQUN6QixJQUFJLFdBQ1A7d0JBQ0wsSUFBSTt3QkFDSixLQUFLO3dCQUNMLFNBQVM7d0JBQ1QsbUJBQW1CO3dCQUNuQixrQkFBa0I7d0JBQ2xCLGVBQWU7d0JBQ2Ysb0JBQW9CO3dCQUNwQixlQUFlO3dCQUNmLDBCQUEwQjtxQkFDN0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7XG4gICAgQXBwQ29uZmlnU2VydmljZSxcbiAgICBFcnJvck1lc3NhZ2VNb2RlbCxcbiAgICBFcnJvcldpZGdldENvbXBvbmVudCxcbiAgICBGb3JtRmllbGRFdmVudCxcbiAgICBGb3JtRmllbGRNb2RlbCxcbiAgICBGb3JtRmllbGRPcHRpb24sXG4gICAgRm9ybUZpZWxkVHlwZXMsXG4gICAgRm9ybVNlcnZpY2UsXG4gICAgUmVhY3RpdmVGb3JtV2lkZ2V0LFxuICAgIFJ1bGVFbnRyeSxcbiAgICBTZWxlY3RGaWx0ZXJJbnB1dENvbXBvbmVudCxcbiAgICBXaWRnZXRDb21wb25lbnRcbn0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcbmltcG9ydCB7IEFzeW5jUGlwZSwgTmdGb3IsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBEZXN0cm95UmVmLCBpbmplY3QsIE9uSW5pdCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgVGFza1ZhcmlhYmxlQ2xvdWQgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvdGFzay12YXJpYWJsZS1jbG91ZC5tb2RlbCc7XG5pbXBvcnQgeyBGb3JtQ2xvdWRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZm9ybS1jbG91ZC5zZXJ2aWNlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IEZvcm1VdGlsc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9mb3JtLXV0aWxzLnNlcnZpY2UnO1xuaW1wb3J0IHsgZGVmYXVsdFZhbHVlVmFsaWRhdG9yIH0gZnJvbSAnLi92YWxpZGF0b3JzJztcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfT1BUSU9OID0ge1xuICAgIGlkOiAnZW1wdHknLFxuICAgIG5hbWU6ICdDaG9vc2Ugb25lLi4uJ1xufTtcbmV4cG9ydCBjb25zdCBISURFX0ZJTFRFUl9MSU1JVCA9IDU7XG5cbi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3IgKi9cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkcm9wZG93bi1jbG91ZC13aWRnZXQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kcm9wZG93bi1jbG91ZC53aWRnZXQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZHJvcGRvd24tY2xvdWQud2lkZ2V0LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBOZ0lmLFxuICAgICAgICBOZ0ZvcixcbiAgICAgICAgQXN5bmNQaXBlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgICAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgICAgIE1hdFNlbGVjdE1vZHVsZSxcbiAgICAgICAgRXJyb3JXaWRnZXRDb21wb25lbnQsXG4gICAgICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICAgICAgU2VsZWN0RmlsdGVySW5wdXRDb21wb25lbnRcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIERyb3Bkb3duQ2xvdWRXaWRnZXRDb21wb25lbnQgZXh0ZW5kcyBXaWRnZXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIFJlYWN0aXZlRm9ybVdpZGdldCB7XG4gICAgcHVibGljIGZvcm1TZXJ2aWNlID0gaW5qZWN0KEZvcm1TZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZvcm1DbG91ZFNlcnZpY2UgPSBpbmplY3QoRm9ybUNsb3VkU2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBhcHBDb25maWcgPSBpbmplY3QoQXBwQ29uZmlnU2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBmb3JtVXRpbHNTZXJ2aWNlID0gaW5qZWN0KEZvcm1VdGlsc1NlcnZpY2UpO1xuICAgIHByaXZhdGUgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICAgIHR5cGVJZCA9ICdEcm9wZG93bkNsb3VkV2lkZ2V0Q29tcG9uZW50JztcbiAgICBzaG93SW5wdXRGaWx0ZXIgPSBmYWxzZTtcbiAgICBpc1Jlc3RBcGlGYWlsZWQgPSBmYWxzZTtcbiAgICB2YXJpYWJsZU9wdGlvbnNGYWlsZWQgPSBmYWxzZTtcbiAgICBwcmV2aWV3U3RhdGUgPSBmYWxzZTtcbiAgICByZXN0QXBpSG9zdE5hbWU6IHN0cmluZztcbiAgICBkcm9wZG93bkNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2w8Rm9ybUZpZWxkT3B0aW9uIHwgRm9ybUZpZWxkT3B0aW9uW10+KHVuZGVmaW5lZCk7XG5cbiAgICBsaXN0JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Rm9ybUZpZWxkT3B0aW9uW10+KFtdKTtcbiAgICBmaWx0ZXIkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcnKTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdFZhcmlhYmxlT3B0aW9uSWQgPSAnaWQnO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdFZhcmlhYmxlT3B0aW9uTGFiZWwgPSAnbmFtZSc7XG4gICAgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0VmFyaWFibGVPcHRpb25QYXRoID0gJ2RhdGEnO1xuXG4gICAgZ2V0IHNob3dSZXF1aXJlZE1lc3NhZ2UoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmRyb3Bkb3duQ29udHJvbC50b3VjaGVkICYmIHRoaXMuZHJvcGRvd25Db250cm9sLmVycm9ycz8ucmVxdWlyZWQgJiYgIXRoaXMuaXNSZXN0QXBpRmFpbGVkICYmICF0aGlzLnZhcmlhYmxlT3B0aW9uc0ZhaWxlZDtcbiAgICB9XG5cbiAgICBnZXQgaXNSZWFkT25seVR5cGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpZWxkLnR5cGUgPT09ICdyZWFkb25seSc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgaXNMaW5rZWRXaWRnZXQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMubGlua2VkV2lkZ2V0SWQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgbGlua2VkV2lkZ2V0SWQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmllbGQ/LnJ1bGU/LnJ1bGVPbjtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBpc1JlYWRPbmx5Rm9ybSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5maWVsZD8uZm9ybT8ucmVhZE9ubHk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgaGFzUmVzdFVybCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5maWVsZD8ucmVzdFVybDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBpc1ZhbGlkUmVzdENvbmZpZygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNSZXN0T3B0aW9uVHlwZSAmJiB0aGlzLmhhc1Jlc3RVcmw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgaXNSZXN0T3B0aW9uVHlwZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmllbGQ/Lm9wdGlvblR5cGUgPT09ICdyZXN0JztcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBpc1ZhcmlhYmxlT3B0aW9uVHlwZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmllbGQ/Lm9wdGlvblR5cGUgPT09ICd2YXJpYWJsZSc7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuc2V0dXBEcm9wZG93bigpO1xuXG4gICAgICAgIHRoaXMuZm9ybVNlcnZpY2Uub25Gb3JtVmFyaWFibGVDaGFuZ2VkLnN1YnNjcmliZSgoeyBmaWVsZCB9KSA9PiB7XG4gICAgICAgICAgICBpZiAoZmllbGQuaWQgPT09IHRoaXMuZmllbGQuaWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldHVwRHJvcGRvd24oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgdXBkYXRlUmVhY3RpdmVGb3JtQ29udHJvbCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVGb3JtQ29udHJvbFN0YXRlKCk7XG4gICAgICAgIHRoaXMuaGFuZGxlRXJyb3JzKCk7XG4gICAgfVxuXG4gICAgY29tcGFyZURyb3Bkb3duVmFsdWVzKG9wdDE6IEZvcm1GaWVsZE9wdGlvbiB8IHN0cmluZywgb3B0MjogRm9ybUZpZWxkT3B0aW9uIHwgc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghb3B0MSB8fCAhb3B0Mikge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHR5cGVvZiBvcHQxID09PSAnc3RyaW5nJyAmJiB0eXBlb2Ygb3B0MiA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgIHJldHVybiBvcHQxID09PSBvcHQyLmlkIHx8IG9wdDEgPT09IG9wdDIubmFtZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2Ygb3B0MSA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG9wdDIgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICByZXR1cm4gb3B0MS5pZCA9PT0gb3B0MiB8fCBvcHQxLm5hbWUgPT09IG9wdDI7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZW9mIG9wdDEgPT09ICdvYmplY3QnICYmIHR5cGVvZiBvcHQyID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgcmV0dXJuIG9wdDEuaWQgPT09IG9wdDIuaWQgfHwgb3B0MS5uYW1lID09PSBvcHQyLm5hbWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gb3B0MSA9PT0gb3B0MjtcbiAgICB9XG5cbiAgICBzZWxlY3Rpb25DaGFuZ2VkRm9yRmllbGQoZmllbGQ6IEZvcm1GaWVsZE1vZGVsKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGZvcm1GaWVsZFZhbHVlQ2hhbmdlZEV2ZW50ID0gbmV3IEZvcm1GaWVsZEV2ZW50KGZpZWxkLmZvcm0sIGZpZWxkKTtcbiAgICAgICAgdGhpcy5mb3JtU2VydmljZS5mb3JtRmllbGRWYWx1ZUNoYW5nZWQubmV4dChmb3JtRmllbGRWYWx1ZUNoYW5nZWRFdmVudCk7XG4gICAgICAgIHRoaXMub25GaWVsZENoYW5nZWQoZmllbGQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0dXBEcm9wZG93bigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRQcmV2aWV3U3RhdGUoKTtcblxuICAgICAgICB0aGlzLmNoZWNrRmllbGRPcHRpb25zU291cmNlKCk7XG4gICAgICAgIHRoaXMudXBkYXRlT3B0aW9ucygpO1xuXG4gICAgICAgIHRoaXMuc2V0Rm9ybUNvbnRyb2xWYWx1ZSgpO1xuICAgICAgICB0aGlzLnVwZGF0ZUZvcm1Db250cm9sU3RhdGUoKTtcbiAgICAgICAgdGhpcy5zdWJzY3JpYmVUb0lucHV0Q2hhbmdlcygpO1xuICAgICAgICB0aGlzLmluaXRGaWx0ZXIoKTtcbiAgICAgICAgdGhpcy5oYW5kbGVFcnJvcnMoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN1YnNjcmliZVRvSW5wdXRDaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRyb3Bkb3duQ29udHJvbC52YWx1ZUNoYW5nZXNcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGZpbHRlcigoKSA9PiAhIXRoaXMuZmllbGQpLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0T3B0aW9uVmFsdWUodmFsdWUsIHRoaXMuZmllbGQpO1xuICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlRXJyb3JzKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2VkRm9yRmllbGQodGhpcy5maWVsZCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldEZvcm1Db250cm9sVmFsdWUoKTogdm9pZCB7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMuZmllbGQudmFsdWUpKSB7XG4gICAgICAgICAgICB0aGlzLmRyb3Bkb3duQ29udHJvbC5zZXRWYWx1ZSh0aGlzLmZpZWxkPy52YWx1ZSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZmllbGQ/LnZhbHVlICYmIHR5cGVvZiB0aGlzLmZpZWxkPy52YWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgIHRoaXMuZHJvcGRvd25Db250cm9sLnNldFZhbHVlKHsgaWQ6IHRoaXMuZmllbGQ/LnZhbHVlLmlkLCBuYW1lOiB0aGlzLmZpZWxkPy52YWx1ZS5uYW1lIH0sIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmZpZWxkLnZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLmRyb3Bkb3duQ29udHJvbC5zZXRWYWx1ZSh0aGlzLmZpZWxkPy52YWx1ZSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5kcm9wZG93bkNvbnRyb2wuc2V0VmFsdWUoeyBpZDogdGhpcy5maWVsZD8udmFsdWUsIG5hbWU6ICcnIH0sIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlRm9ybUNvbnRyb2xTdGF0ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVEcm9wZG93blZhbGlkYXRpb25SdWxlcygpO1xuICAgICAgICB0aGlzLnVwZGF0ZURyb3Bkb3duUmVhZG9ubHlSdWxlcygpO1xuICAgICAgICB0aGlzLmRyb3Bkb3duQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZURyb3Bkb3duVmFsaWRhdGlvblJ1bGVzKCkge1xuICAgICAgICB0aGlzLmRyb3Bkb3duQ29udHJvbC5zZXRWYWxpZGF0b3JzKFtdKTtcblxuICAgICAgICBpZiAoIXRoaXMuZmllbGQ/LmlzVmlzaWJsZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuaXNSZXF1aXJlZCgpKSB7XG4gICAgICAgICAgICB0aGlzLmRyb3Bkb3duQ29udHJvbC5hZGRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkXSk7XG4gICAgICAgICAgICBpZiAodGhpcy5maWVsZC5oYXNFbXB0eVZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kcm9wZG93bkNvbnRyb2wuYWRkVmFsaWRhdG9ycyhbZGVmYXVsdFZhbHVlVmFsaWRhdG9yKHRoaXMuZmllbGQpXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZURyb3Bkb3duUmVhZG9ubHlSdWxlcygpIHtcbiAgICAgICAgaWYgKHRoaXMuZmllbGQ/LnJlYWRPbmx5IHx8IHRoaXMucmVhZE9ubHkpIHtcbiAgICAgICAgICAgIHRoaXMuZHJvcGRvd25Db250cm9sLmRpc2FibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5kcm9wZG93bkNvbnRyb2wuZW5hYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlRXJyb3JzKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5kcm9wZG93bkNvbnRyb2wudmFsaWQpIHtcbiAgICAgICAgICAgIHRoaXMuZmllbGQudmFsaWRhdGlvblN1bW1hcnkgPSBuZXcgRXJyb3JNZXNzYWdlTW9kZWwoJycpO1xuICAgICAgICAgICAgdGhpcy5maWVsZC5tYXJrQXNWYWxpZCgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZHJvcGRvd25Db250cm9sLmludmFsaWQgJiYgdGhpcy5kcm9wZG93bkNvbnRyb2wuZXJyb3JzLnJlcXVpcmVkKSB7XG4gICAgICAgICAgICB0aGlzLmZpZWxkLnZhbGlkYXRpb25TdW1tYXJ5ID0gbmV3IEVycm9yTWVzc2FnZU1vZGVsKHsgbWVzc2FnZTogJ0ZPUk0uRklFTEQuUkVRVUlSRUQnIH0pO1xuICAgICAgICAgICAgdGhpcy5maWVsZC5tYXJrQXNJbnZhbGlkKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRGaWx0ZXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZmlsdGVyJFxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgZmlsdGVyKChzZWFyY2gpID0+IHNlYXJjaCAhPT0gdW5kZWZpbmVkKSxcbiAgICAgICAgICAgICAgICBtYXAoKHNlYXJjaCkgPT5cbiAgICAgICAgICAgICAgICAgICAgc2VhcmNoID8gdGhpcy5maWVsZC5vcHRpb25zLmZpbHRlcigoeyBuYW1lIH0pID0+IG5hbWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2gudG9Mb3dlckNhc2UoKSkpIDogdGhpcy5maWVsZC5vcHRpb25zXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgocmVzdWx0KSA9PiB0aGlzLmxpc3QkLm5leHQocmVzdWx0KSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjaGVja0ZpZWxkT3B0aW9uc1NvdXJjZSgpOiB2b2lkIHtcbiAgICAgICAgc3dpdGNoICh0cnVlKSB7XG4gICAgICAgICAgICBjYXNlIHRoaXMuaXNSZWFkT25seUZvcm06XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIHRoaXMuaXNWYWxpZFJlc3RDb25maWcgJiYgIXRoaXMuaXNMaW5rZWRXaWRnZXQ6XG4gICAgICAgICAgICAgICAgdGhpcy5wZXJzaXN0RmllbGRPcHRpb25zRnJvbVJlc3RBcGkoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSB0aGlzLmlzTGlua2VkV2lkZ2V0OlxuICAgICAgICAgICAgICAgIHRoaXMubG9hZEZpZWxkT3B0aW9uc0ZvckxpbmtlZFdpZGdldCgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlIHRoaXMuaXNWYXJpYWJsZU9wdGlvblR5cGU6XG4gICAgICAgICAgICAgICAgdGhpcy5wZXJzaXN0RmllbGRPcHRpb25zRnJvbVZhcmlhYmxlKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHBlcnNpc3RGaWVsZE9wdGlvbnNGcm9tVmFyaWFibGUoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG9wdGlvbnNQYXRoID0gdGhpcy5maWVsZD8udmFyaWFibGVDb25maWc/Lm9wdGlvbnNQYXRoID8/IHRoaXMuZGVmYXVsdFZhcmlhYmxlT3B0aW9uUGF0aDtcbiAgICAgICAgY29uc3QgdmFyaWFibGVOYW1lID0gdGhpcy5maWVsZD8udmFyaWFibGVDb25maWc/LnZhcmlhYmxlTmFtZTtcbiAgICAgICAgY29uc3QgcHJvY2Vzc1ZhcmlhYmxlcyA9IHRoaXMuZmllbGQ/LmZvcm0/LnByb2Nlc3NWYXJpYWJsZXM7XG4gICAgICAgIGNvbnN0IGZvcm1WYXJpYWJsZXMgPSB0aGlzLmZpZWxkPy5mb3JtPy52YXJpYWJsZXM7XG5cbiAgICAgICAgY29uc3QgZHJvcGRvd25PcHRpb25zID0gdGhpcy5nZXRPcHRpb25zRnJvbVZhcmlhYmxlKHByb2Nlc3NWYXJpYWJsZXMsIGZvcm1WYXJpYWJsZXMsIHZhcmlhYmxlTmFtZSk7XG5cbiAgICAgICAgaWYgKGRyb3Bkb3duT3B0aW9ucykge1xuICAgICAgICAgICAgY29uc3QgZm9ybVZhcmlhYmxlT3B0aW9uczogRm9ybUZpZWxkT3B0aW9uW10gPSB0aGlzLmdldE9wdGlvbnNGcm9tUGF0aChkcm9wZG93bk9wdGlvbnMsIG9wdGlvbnNQYXRoKTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlT3B0aW9ucyhmb3JtVmFyaWFibGVPcHRpb25zKTtcbiAgICAgICAgICAgIHRoaXMucmVzZXRJbnZhbGlkVmFsdWUoKTtcbiAgICAgICAgICAgIHRoaXMuZmllbGQudXBkYXRlRm9ybSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVFcnJvcihgJHt2YXJpYWJsZU5hbWV9IG5vdCBmb3VuZGApO1xuICAgICAgICAgICAgdGhpcy5yZXNldE9wdGlvbnMoKTtcbiAgICAgICAgICAgIHRoaXMudmFyaWFibGVPcHRpb25zRmFpbGVkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0T3B0aW9uc0Zyb21QYXRoKGRhdGE6IGFueSwgcGF0aDogc3RyaW5nKTogRm9ybUZpZWxkT3B0aW9uW10ge1xuICAgICAgICBjb25zdCBvcHRpb25zSWQgPSB0aGlzLmZpZWxkPy52YXJpYWJsZUNvbmZpZz8ub3B0aW9uc0lkID8/IHRoaXMuZGVmYXVsdFZhcmlhYmxlT3B0aW9uSWQ7XG4gICAgICAgIGNvbnN0IG9wdGlvbnNMYWJlbCA9IHRoaXMuZmllbGQ/LnZhcmlhYmxlQ29uZmlnPy5vcHRpb25zTGFiZWwgPz8gdGhpcy5kZWZhdWx0VmFyaWFibGVPcHRpb25MYWJlbDtcblxuICAgICAgICBjb25zdCBwcm9wZXJ0aWVzID0gcGF0aC5zcGxpdCgnLicpO1xuICAgICAgICBjb25zdCBjdXJyZW50UHJvcGVydHkgPSBwcm9wZXJ0aWVzLnNoaWZ0KCk7XG5cbiAgICAgICAgaWYgKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZGF0YSwgY3VycmVudFByb3BlcnR5KSkge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVFcnJvcihgJHtjdXJyZW50UHJvcGVydHl9IG5vdCBmb3VuZCBpbiAke0pTT04uc3RyaW5naWZ5KGRhdGEpfWApO1xuICAgICAgICAgICAgdGhpcy52YXJpYWJsZU9wdGlvbnNGYWlsZWQgPSB0cnVlO1xuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbmVzdGVkRGF0YSA9IGRhdGFbY3VycmVudFByb3BlcnR5XTtcblxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShuZXN0ZWREYXRhKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0T3B0aW9uc0Zyb21BcnJheShuZXN0ZWREYXRhLCBvcHRpb25zSWQsIG9wdGlvbnNMYWJlbCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5nZXRPcHRpb25zRnJvbVBhdGgobmVzdGVkRGF0YSwgcHJvcGVydGllcy5qb2luKCcuJykpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0T3B0aW9uc0Zyb21BcnJheShuZXN0ZWREYXRhOiBhbnlbXSwgaWQ6IHN0cmluZywgbGFiZWw6IHN0cmluZyk6IEZvcm1GaWVsZE9wdGlvbltdIHtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IG5lc3RlZERhdGEubWFwKChpdGVtKSA9PiB0aGlzLmNyZWF0ZU9wdGlvbihpdGVtLCBpZCwgbGFiZWwpKTtcbiAgICAgICAgY29uc3QgaGFzSW52YWxpZE9wdGlvbiA9IG9wdGlvbnMuc29tZSgob3B0aW9uKSA9PiAhb3B0aW9uKTtcblxuICAgICAgICBpZiAoaGFzSW52YWxpZE9wdGlvbikge1xuICAgICAgICAgICAgdGhpcy52YXJpYWJsZU9wdGlvbnNGYWlsZWQgPSB0cnVlO1xuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy52YXJpYWJsZU9wdGlvbnNGYWlsZWQgPSBmYWxzZTtcbiAgICAgICAgcmV0dXJuIG9wdGlvbnM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVPcHRpb24oaXRlbTogYW55LCBpZDogc3RyaW5nLCBsYWJlbDogc3RyaW5nKTogRm9ybUZpZWxkT3B0aW9uIHtcbiAgICAgICAgY29uc3Qgb3B0aW9uOiBGb3JtRmllbGRPcHRpb24gPSB7XG4gICAgICAgICAgICBpZDogaXRlbVtpZF0sXG4gICAgICAgICAgICBuYW1lOiBpdGVtW2xhYmVsXVxuICAgICAgICB9O1xuXG4gICAgICAgIGlmICghb3B0aW9uLmlkIHx8ICFvcHRpb24ubmFtZSkge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVFcnJvcihgJ2lkJyBvciAnbGFiZWwnIGlzIG5vdCBwcm9wZXJseSBkZWZpbmVkYCk7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG9wdGlvbjtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldE9wdGlvbnNGcm9tVmFyaWFibGUoXG4gICAgICAgIHByb2Nlc3NWYXJpYWJsZXM6IFRhc2tWYXJpYWJsZUNsb3VkW10sXG4gICAgICAgIGZvcm1WYXJpYWJsZXM6IFRhc2tWYXJpYWJsZUNsb3VkW10sXG4gICAgICAgIHZhcmlhYmxlTmFtZTogc3RyaW5nXG4gICAgKTogVGFza1ZhcmlhYmxlQ2xvdWQge1xuICAgICAgICBjb25zdCBwcm9jZXNzVmFyaWFibGVEcm9wZG93bk9wdGlvbnM6IFRhc2tWYXJpYWJsZUNsb3VkID0gdGhpcy5nZXRWYXJpYWJsZVZhbHVlQnlOYW1lKHByb2Nlc3NWYXJpYWJsZXMsIHZhcmlhYmxlTmFtZSk7XG4gICAgICAgIGNvbnN0IGZvcm1WYXJpYWJsZURyb3Bkb3duT3B0aW9uczogVGFza1ZhcmlhYmxlQ2xvdWQgPSB0aGlzLmdldFZhcmlhYmxlVmFsdWVCeU5hbWUoZm9ybVZhcmlhYmxlcywgdmFyaWFibGVOYW1lKTtcblxuICAgICAgICByZXR1cm4gcHJvY2Vzc1ZhcmlhYmxlRHJvcGRvd25PcHRpb25zID8/IGZvcm1WYXJpYWJsZURyb3Bkb3duT3B0aW9ucztcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFZhcmlhYmxlVmFsdWVCeU5hbWUodmFyaWFibGVzOiBUYXNrVmFyaWFibGVDbG91ZFtdLCB2YXJpYWJsZU5hbWU6IHN0cmluZyk6IGFueSB7XG4gICAgICAgIHJldHVybiB2YXJpYWJsZXM/LmZpbmQoKHZhcmlhYmxlOiBUYXNrVmFyaWFibGVDbG91ZCkgPT4gdmFyaWFibGU/Lm5hbWUgPT09IGB2YXJpYWJsZXMuJHt2YXJpYWJsZU5hbWV9YCB8fCB2YXJpYWJsZT8ubmFtZSA9PT0gdmFyaWFibGVOYW1lKVxuICAgICAgICAgICAgPy52YWx1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHBlcnNpc3RGaWVsZE9wdGlvbnNGcm9tUmVzdEFwaSgpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNWYWxpZFJlc3RDb25maWcpIHtcbiAgICAgICAgICAgIHRoaXMucmVzZXRSZXN0QXBpRXJyb3JNZXNzYWdlKCk7XG4gICAgICAgICAgICBjb25zdCBib2R5UGFyYW0gPSB0aGlzLmJ1aWxkQm9keVBhcmFtKCk7XG4gICAgICAgICAgICB0aGlzLmZvcm1DbG91ZFNlcnZpY2VcbiAgICAgICAgICAgICAgICAuZ2V0UmVzdFdpZGdldERhdGEodGhpcy5maWVsZC5mb3JtLmlkLCB0aGlzLmZpZWxkLmlkLCBib2R5UGFyYW0pXG4gICAgICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgICAgICAgICAgICAgIG5leHQ6IChyZXN1bHQ6IEZvcm1GaWVsZE9wdGlvbltdKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlc2V0UmVzdEFwaUVycm9yTWVzc2FnZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVPcHRpb25zKHJlc3VsdCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpZWxkLnVwZGF0ZUZvcm0oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVzZXRJbnZhbGlkVmFsdWUoKTtcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgZXJyb3I6IChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVzZXRSZXN0QXBpT3B0aW9ucygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVFcnJvcihlcnIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGJ1aWxkQm9keVBhcmFtKCk6IGFueSB7XG4gICAgICAgIGNvbnN0IGJvZHlQYXJhbSA9IE9iamVjdC5hc3NpZ24oe30pO1xuICAgICAgICBpZiAodGhpcy5pc0xpbmtlZFdpZGdldCkge1xuICAgICAgICAgICAgY29uc3QgcGFyZW50V2lkZ2V0VmFsdWUgPSB0aGlzLmdldFBhcmVudFdpZGdldFZhbHVlKCk7XG4gICAgICAgICAgICBjb25zdCBwYXJlbnRXaWRnZXRJZCA9IHRoaXMubGlua2VkV2lkZ2V0SWQ7XG4gICAgICAgICAgICBib2R5UGFyYW1bcGFyZW50V2lkZ2V0SWRdID0gcGFyZW50V2lkZ2V0VmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5mb3JtVXRpbHNTZXJ2aWNlLmdldFJlc3RVcmxWYXJpYWJsZXNNYXAodGhpcy5maWVsZC5mb3JtLCB0aGlzLmZpZWxkLnJlc3RVcmwsIGJvZHlQYXJhbSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBsb2FkRmllbGRPcHRpb25zRm9yTGlua2VkV2lkZ2V0KCkge1xuICAgICAgICBjb25zdCBwYXJlbnRXaWRnZXRWYWx1ZSA9IHRoaXMuZ2V0UGFyZW50V2lkZ2V0VmFsdWUoKTtcbiAgICAgICAgdGhpcy5wYXJlbnRWYWx1ZUNoYW5nZWQocGFyZW50V2lkZ2V0VmFsdWUpO1xuXG4gICAgICAgIHRoaXMuZm9ybVNlcnZpY2UuZm9ybUZpZWxkVmFsdWVDaGFuZ2VkXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBmaWx0ZXIoKGV2ZW50OiBGb3JtRmllbGRFdmVudCkgPT4gdGhpcy5pc0Zvcm1GaWVsZEV2ZW50T2ZUeXBlRHJvcGRvd24oZXZlbnQpICYmIHRoaXMuaXNQYXJlbnRGb3JtRmllbGRFdmVudChldmVudCkpLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChldmVudDogRm9ybUZpZWxkRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZU9mUGFyZW50V2lkZ2V0ID0gZXZlbnQuZmllbGQudmFsdWU7XG4gICAgICAgICAgICAgICAgdGhpcy5wYXJlbnRWYWx1ZUNoYW5nZWQodmFsdWVPZlBhcmVudFdpZGdldCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFBhcmVudFdpZGdldFZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHBhcmVudFdpZGdldElkID0gdGhpcy5saW5rZWRXaWRnZXRJZDtcbiAgICAgICAgY29uc3QgcGFyZW50V2lkZ2V0ID0gdGhpcy5nZXRGb3JtRmllbGRCeUlkKHBhcmVudFdpZGdldElkKTtcbiAgICAgICAgcmV0dXJuIHBhcmVudFdpZGdldD8udmFsdWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBwYXJlbnRWYWx1ZUNoYW5nZWQodmFsdWU6IHN0cmluZykge1xuICAgICAgICBpZiAodmFsdWUgJiYgIXRoaXMuaXNOb25lVmFsdWVTZWxlY3RlZCh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHRoaXMuaXNWYWxpZFJlc3RDb25maWcgPyB0aGlzLnBlcnNpc3RGaWVsZE9wdGlvbnNGcm9tUmVzdEFwaSgpIDogdGhpcy5wZXJzaXN0RmllbGRPcHRpb25zRnJvbU1hbnVhbExpc3QodmFsdWUpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuaXNOb25lVmFsdWVTZWxlY3RlZCh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHRoaXMucmVzZXRSZXN0QXBpRXJyb3JNZXNzYWdlKCk7XG4gICAgICAgICAgICB0aGlzLnJlc2V0T3B0aW9ucygpO1xuICAgICAgICAgICAgdGhpcy5yZXNldEludmFsaWRWYWx1ZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVPcHRpb25zKFtdKTtcbiAgICAgICAgICAgIHRoaXMucmVzZXRJbnZhbGlkVmFsdWUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaXNOb25lVmFsdWVTZWxlY3RlZCh2YWx1ZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB2YWx1ZSA9PT0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Rm9ybUZpZWxkQnlJZChmaWVsZElkKTogRm9ybUZpZWxkTW9kZWwge1xuICAgICAgICByZXR1cm4gdGhpcy5maWVsZC5mb3JtLmdldEZvcm1GaWVsZHMoKS5maWx0ZXIoKGZpZWxkOiBGb3JtRmllbGRNb2RlbCkgPT4gZmllbGQuaWQgPT09IGZpZWxkSWQpWzBdO1xuICAgIH1cblxuICAgIHByaXZhdGUgcGVyc2lzdEZpZWxkT3B0aW9uc0Zyb21NYW51YWxMaXN0KHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKHRoaXMuaGFzUnVsZUVudHJpZXMoKSkge1xuICAgICAgICAgICAgY29uc3QgcnVsZXNFbnRyaWVzID0gdGhpcy5maWVsZC5ydWxlLmVudHJpZXM7XG4gICAgICAgICAgICBydWxlc0VudHJpZXMuZm9yRWFjaCgocnVsZUVudHJ5OiBSdWxlRW50cnkpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocnVsZUVudHJ5LmtleSA9PT0gdmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVPcHRpb25zKHJ1bGVFbnRyeS5vcHRpb25zKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZXNldEludmFsaWRWYWx1ZSgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZpZWxkLnVwZGF0ZUZvcm0oKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgcmVzZXRJbnZhbGlkVmFsdWUoKSB7XG4gICAgICAgIGlmICghdGhpcy5pc1ZhbGlkVmFsdWUoKSkge1xuICAgICAgICAgICAgdGhpcy5yZXNldFZhbHVlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHJlc2V0VmFsdWUoKSB7XG4gICAgICAgIHRoaXMuZmllbGQudmFsdWUgPSAnJztcbiAgICAgICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2VkRm9yRmllbGQodGhpcy5maWVsZCk7XG4gICAgICAgIHRoaXMudXBkYXRlT3B0aW9ucygpO1xuICAgICAgICB0aGlzLmZpZWxkLnVwZGF0ZUZvcm0oKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzVmFsaWRWYWx1ZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmllbGQudmFsdWUgJiYgdGhpcy5pc1NlbGVjdGVkVmFsdWVJbk9wdGlvbnMoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzU2VsZWN0ZWRWYWx1ZUluT3B0aW9ucygpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5maWVsZC52YWx1ZSkpIHtcbiAgICAgICAgICAgIGNvbnN0IG9wdGlvbklkTGlzdCA9IFsuLi50aGlzLmZpZWxkLm9wdGlvbnNdLm1hcCgob3B0aW9uKSA9PiBvcHRpb24uaWQpO1xuICAgICAgICAgICAgY29uc3QgZmllbGRWYWx1ZUlkcyA9IHRoaXMuZmllbGQudmFsdWUubWFwKCh2YWx1ZU9wdGlvbikgPT4gdmFsdWVPcHRpb24uaWQpO1xuICAgICAgICAgICAgcmV0dXJuIGZpZWxkVmFsdWVJZHMuZXZlcnkoKHZhbHVlT3B0aW9uSWQpID0+IG9wdGlvbklkTGlzdC5pbmNsdWRlcyh2YWx1ZU9wdGlvbklkKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAodGhpcy5maWVsZD8udmFsdWUgJiYgdHlwZW9mIHRoaXMuZmllbGQ/LnZhbHVlID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgICAgIHJldHVybiBbLi4udGhpcy5maWVsZC5vcHRpb25zXS5tYXAoKG9wdGlvbikgPT4gb3B0aW9uLmlkKS5pbmNsdWRlcyh0aGlzLmZpZWxkLnZhbHVlLmlkKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFsuLi50aGlzLmZpZWxkLm9wdGlvbnNdLm1hcCgob3B0aW9uKSA9PiBvcHRpb24uaWQpLmluY2x1ZGVzKHRoaXMuZmllbGQudmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYXNSdWxlRW50cmllcygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5maWVsZC5ydWxlLmVudHJpZXMubGVuZ3RoO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVzZXRPcHRpb25zKCkge1xuICAgICAgICB0aGlzLnVwZGF0ZU9wdGlvbnMoW10pO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNQYXJlbnRGb3JtRmllbGRFdmVudChldmVudDogRm9ybUZpZWxkRXZlbnQpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGV2ZW50LmZpZWxkLmlkID09PSB0aGlzLmxpbmtlZFdpZGdldElkO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNGb3JtRmllbGRFdmVudE9mVHlwZURyb3Bkb3duKGV2ZW50OiBGb3JtRmllbGRFdmVudCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gZXZlbnQuZmllbGQudHlwZSA9PT0gRm9ybUZpZWxkVHlwZXMuRFJPUERPV047XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRPcHRpb25WYWx1ZShvcHRpb246IEZvcm1GaWVsZE9wdGlvbiB8IEZvcm1GaWVsZE9wdGlvbltdLCBmaWVsZDogRm9ybUZpZWxkTW9kZWwpIHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkob3B0aW9uKSB8fCBmaWVsZC5oYXNNdWx0aXBsZVZhbHVlcykge1xuICAgICAgICAgICAgZmllbGQudmFsdWUgPSBvcHRpb247XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgb3B0aW9uVmFsdWU6IHN0cmluZyA9ICcnO1xuICAgICAgICBpZiAob3B0aW9uLmlkID09PSBERUZBVUxUX09QVElPTi5pZCkge1xuICAgICAgICAgICAgb3B0aW9uVmFsdWUgPSB1bmRlZmluZWQ7XG4gICAgICAgIH0gZWxzZSBpZiAob3B0aW9uLm5hbWUgIT09IGZpZWxkLnZhbHVlKSB7XG4gICAgICAgICAgICBvcHRpb25WYWx1ZSA9IG9wdGlvbi5pZDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG9wdGlvblZhbHVlID0gb3B0aW9uLm5hbWU7XG4gICAgICAgIH1cblxuICAgICAgICBmaWVsZC52YWx1ZSA9IG9wdGlvblZhbHVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0UHJldmlld1N0YXRlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnByZXZpZXdTdGF0ZSA9IHRoaXMuZm9ybUNsb3VkU2VydmljZS5nZXRQcmV2aWV3U3RhdGUoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhhbmRsZUVycm9yKGVycm9yOiBhbnkpIHtcbiAgICAgICAgaWYgKCF0aGlzLnByZXZpZXdTdGF0ZSkge1xuICAgICAgICAgICAgdGhpcy53aWRnZXRFcnJvci5lbWl0KGVycm9yKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlT3B0aW9ucyhvcHRpb25zPzogRm9ybUZpZWxkT3B0aW9uW10pOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmZpZWxkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAob3B0aW9ucykge1xuICAgICAgICAgICAgdGhpcy5maWVsZC5vcHRpb25zID0gb3B0aW9ucztcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubGlzdCQubmV4dCh0aGlzLmZpZWxkLm9wdGlvbnMpO1xuICAgICAgICB0aGlzLnNob3dJbnB1dEZpbHRlciA9IHRoaXMuZmllbGQub3B0aW9ucy5sZW5ndGggPiB0aGlzLmFwcENvbmZpZy5nZXQ8bnVtYmVyPignZm9ybS5kcm9wRG93bkZpbHRlckxpbWl0JywgSElERV9GSUxURVJfTElNSVQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVzZXRSZXN0QXBpRXJyb3JNZXNzYWdlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzUmVzdEFwaUZhaWxlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLnJlc3RBcGlIb3N0TmFtZSA9ICcnO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVzZXRSZXN0QXBpT3B0aW9ucygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVPcHRpb25zKFtdKTtcbiAgICAgICAgdGhpcy5yZXNldFZhbHVlKCk7XG4gICAgICAgIHRoaXMuaXNSZXN0QXBpRmFpbGVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5yZXN0QXBpSG9zdE5hbWUgPSB0aGlzLmdldFJlc3RVcmxIb3N0TmFtZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0UmVzdFVybEhvc3ROYW1lKCk6IHN0cmluZyB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFVSTCh0aGlzLmZpZWxkPy5yZXN0VXJsKS5ob3N0bmFtZTtcbiAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5maWVsZD8ucmVzdFVybDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxkaXZcbiAgICBjbGFzcz1cImFkZi1kcm9wZG93bi13aWRnZXQge3tmaWVsZC5jbGFzc05hbWV9fVwiXG4gICAgW2NsYXNzLmFkZi1pbnZhbGlkXT1cImRyb3Bkb3duQ29udHJvbC5pbnZhbGlkICYmIGRyb3Bkb3duQ29udHJvbC50b3VjaGVkXCJcbiAgICBbY2xhc3MuYWRmLXJlYWRvbmx5XT1cImZpZWxkLnJlYWRPbmx5XCJcbiAgICBbY2xhc3MuYWRmLWxlZnQtbGFiZWwtaW5wdXQtY29udGFpbmVyXT1cImZpZWxkLmxlZnRMYWJlbHNcIlxuPlxuICAgIDxkaXYgKm5nSWY9XCJmaWVsZC5sZWZ0TGFiZWxzXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImFkZi1sYWJlbCBhZGYtbGVmdC1sYWJlbFwiIFthdHRyLmZvcl09XCJmaWVsZC5pZFwiPlxuICAgICAgICAgICAge3sgZmllbGQubmFtZSB8IHRyYW5zbGF0ZSB9fTxzcGFuIGNsYXNzPVwiYWRmLWFzdGVyaXNrXCIgW3N0eWxlLnZpc2liaWxpdHldPVwiaXNSZXF1aXJlZCgpID8gJ3Zpc2libGUnIDogJ2hpZGRlbidcIj4qPC9zcGFuPlxuICAgICAgICA8L2xhYmVsPlxuICAgIDwvZGl2PlxuICAgIDxkaXY+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgIDxtYXQtbGFiZWwgKm5nSWY9XCIhZmllbGQubGVmdExhYmVsc1wiIGNsYXNzPVwiYWRmLWxhYmVsXCIgW2F0dHIuZm9yXT1cImZpZWxkLmlkXCI+XG4gICAgICAgICAgICAgICAge3sgZmllbGQubmFtZSB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICA8bWF0LXNlbGVjdFxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYWRmLXNlbGVjdFwiXG4gICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImRyb3Bkb3duQ29udHJvbFwiXG4gICAgICAgICAgICAgICAgW2lkXT1cImZpZWxkLmlkXCJcbiAgICAgICAgICAgICAgICBbY29tcGFyZVdpdGhdPVwiY29tcGFyZURyb3Bkb3duVmFsdWVzXCJcbiAgICAgICAgICAgICAgICBbdGl0bGVdPVwiZmllbGQudG9vbHRpcFwiXG4gICAgICAgICAgICAgICAgcGFuZWxDbGFzcz1cImFkZi1zZWxlY3QtZmlsdGVyXCJcbiAgICAgICAgICAgICAgICBbbXVsdGlwbGVdPVwiZmllbGQuaGFzTXVsdGlwbGVWYWx1ZXNcIlxuICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJpc1JlcXVpcmVkKClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxhZGYtc2VsZWN0LWZpbHRlci1pbnB1dCAqbmdJZj1cInNob3dJbnB1dEZpbHRlclwiIChjaGFuZ2UpPVwiZmlsdGVyJC5uZXh0KCRldmVudClcIiAvPlxuXG4gICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IG9wdCBvZiBsaXN0JCB8IGFzeW5jXCIgW3ZhbHVlXT1cIm9wdFwiIFtpZF09XCJvcHQuaWRcIj57e29wdC5uYW1lfX08L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gaWQ9XCJyZWFkb25seU9wdGlvblwiICpuZ0lmPVwiaXNSZWFkT25seVR5cGVcIiBbdmFsdWVdPVwiZmllbGQudmFsdWVcIj57e2ZpZWxkLnZhbHVlfX08L21hdC1vcHRpb24+XG4gICAgICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDxkaXYgKm5nSWY9XCIhcHJldmlld1N0YXRlICYmICFmaWVsZC5yZWFkT25seVwiPlxuICAgICAgICAgICAgPGVycm9yLXdpZGdldFxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYWRmLWRyb3Bkb3duLXJlcXVpcmVkLW1lc3NhZ2VcIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwic2hvd1JlcXVpcmVkTWVzc2FnZVwiXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ9XCJ7eyAnRk9STS5GSUVMRC5SRVFVSVJFRCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxlcnJvci13aWRnZXRcbiAgICAgICAgICAgICAgICBjbGFzcz1cImFkZi1kcm9wZG93bi1mYWlsZWQtbWVzc2FnZVwiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJpc1Jlc3RBcGlGYWlsZWRcIlxuICAgICAgICAgICAgICAgIHJlcXVpcmVkPVwie3sgJ0ZPUk0uRklFTEQuUkVTVF9BUElfRkFJTEVEJyB8IHRyYW5zbGF0ZTogeyBob3N0bmFtZTogcmVzdEFwaUhvc3ROYW1lIH0gfX1cIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxlcnJvci13aWRnZXRcbiAgICAgICAgICAgICAgICBjbGFzcz1cImFkZi1kcm9wZG93bi1mYWlsZWQtbWVzc2FnZVwiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJ2YXJpYWJsZU9wdGlvbnNGYWlsZWRcIlxuICAgICAgICAgICAgICAgIHJlcXVpcmVkPVwie3sgJ0ZPUk0uRklFTEQuVkFSSUFCTEVfRFJPUERPV05fT1BUSU9OU19GQUlMRUQnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
464
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tY2xvdWQud2lkZ2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL3Byb2Nlc3Mtc2VydmljZXMtY2xvdWQvc3JjL2xpYi9mb3JtL2NvbXBvbmVudHMvd2lkZ2V0cy9kcm9wZG93bi9kcm9wZG93bi1jbG91ZC53aWRnZXQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvcHJvY2Vzcy1zZXJ2aWNlcy1jbG91ZC9zcmMvbGliL2Zvcm0vY29tcG9uZW50cy93aWRnZXRzL2Ryb3Bkb3duL2Ryb3Bkb3duLWNsb3VkLndpZGdldC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILE9BQU8sRUFDSCxnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ2pCLG9CQUFvQixFQUNwQixjQUFjLEVBR2QsY0FBYyxFQUNkLFdBQVcsRUFHWCwwQkFBMEIsRUFDMUIsZUFBZSxFQUNsQixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBVSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RixPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFB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MFNBQ2xCLGVBQWUsb3JCQUNmLG9CQUFvQix1RkFDcEIsZUFBZSw0RkFDZiwwQkFBMEI7OzRGQUdyQiw0QkFBNEI7a0JBbEJ4QyxTQUFTOytCQUNJLHVCQUF1QixpQkFHbEIsaUJBQWlCLENBQUMsSUFBSSxjQUN6QixJQUFJLFdBQ1A7d0JBQ0wsSUFBSTt3QkFDSixLQUFLO3dCQUNMLFNBQVM7d0JBQ1QsbUJBQW1CO3dCQUNuQixrQkFBa0I7d0JBQ2xCLGVBQWU7d0JBQ2Ysb0JBQW9CO3dCQUNwQixlQUFlO3dCQUNmLDBCQUEwQjtxQkFDN0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7XG4gICAgQXBwQ29uZmlnU2VydmljZSxcbiAgICBFcnJvck1lc3NhZ2VNb2RlbCxcbiAgICBFcnJvcldpZGdldENvbXBvbmVudCxcbiAgICBGb3JtRmllbGRFdmVudCxcbiAgICBGb3JtRmllbGRNb2RlbCxcbiAgICBGb3JtRmllbGRPcHRpb24sXG4gICAgRm9ybUZpZWxkVHlwZXMsXG4gICAgRm9ybVNlcnZpY2UsXG4gICAgUmVhY3RpdmVGb3JtV2lkZ2V0LFxuICAgIFJ1bGVFbnRyeSxcbiAgICBTZWxlY3RGaWx0ZXJJbnB1dENvbXBvbmVudCxcbiAgICBXaWRnZXRDb21wb25lbnRcbn0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcbmltcG9ydCB7IEFzeW5jUGlwZSwgTmdGb3IsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBEZXN0cm95UmVmLCBpbmplY3QsIE9uSW5pdCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgVGFza1ZhcmlhYmxlQ2xvdWQgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvdGFzay12YXJpYWJsZS1jbG91ZC5tb2RlbCc7XG5pbXBvcnQgeyBGb3JtQ2xvdWRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZm9ybS1jbG91ZC5zZXJ2aWNlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IEZvcm1VdGlsc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9mb3JtLXV0aWxzLnNlcnZpY2UnO1xuaW1wb3J0IHsgZGVmYXVsdFZhbHVlVmFsaWRhdG9yIH0gZnJvbSAnLi92YWxpZGF0b3JzJztcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfT1BUSU9OID0ge1xuICAgIGlkOiAnZW1wdHknLFxuICAgIG5hbWU6ICdDaG9vc2Ugb25lLi4uJ1xufTtcbmV4cG9ydCBjb25zdCBISURFX0ZJTFRFUl9MSU1JVCA9IDU7XG5cbi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3IgKi9cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkcm9wZG93bi1jbG91ZC13aWRnZXQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kcm9wZG93bi1jbG91ZC53aWRnZXQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZHJvcGRvd24tY2xvdWQud2lkZ2V0LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBOZ0lmLFxuICAgICAgICBOZ0ZvcixcbiAgICAgICAgQXN5bmNQaXBlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgICAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgICAgIE1hdFNlbGVjdE1vZHVsZSxcbiAgICAgICAgRXJyb3JXaWRnZXRDb21wb25lbnQsXG4gICAgICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICAgICAgU2VsZWN0RmlsdGVySW5wdXRDb21wb25lbnRcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIERyb3Bkb3duQ2xvdWRXaWRnZXRDb21wb25lbnQgZXh0ZW5kcyBXaWRnZXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIFJlYWN0aXZlRm9ybVdpZGdldCB7XG4gICAgcHVibGljIGZvcm1TZXJ2aWNlID0gaW5qZWN0KEZvcm1TZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZvcm1DbG91ZFNlcnZpY2UgPSBpbmplY3QoRm9ybUNsb3VkU2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBhcHBDb25maWcgPSBpbmplY3QoQXBwQ29uZmlnU2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBmb3JtVXRpbHNTZXJ2aWNlID0gaW5qZWN0KEZvcm1VdGlsc1NlcnZpY2UpO1xuICAgIHByaXZhdGUgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICAgIHR5cGVJZCA9ICdEcm9wZG93bkNsb3VkV2lkZ2V0Q29tcG9uZW50JztcbiAgICBzaG93SW5wdXRGaWx0ZXIgPSBmYWxzZTtcbiAgICBpc1Jlc3RBcGlGYWlsZWQgPSBmYWxzZTtcbiAgICB2YXJpYWJsZU9wdGlvbnNGYWlsZWQgPSBmYWxzZTtcbiAgICBwcmV2aWV3U3RhdGUgPSBmYWxzZTtcbiAgICByZXN0QXBpSG9zdE5hbWU6IHN0cmluZztcbiAgICBkcm9wZG93bkNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2w8Rm9ybUZpZWxkT3B0aW9uIHwgRm9ybUZpZWxkT3B0aW9uW10+KHVuZGVmaW5lZCk7XG5cbiAgICBsaXN0JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Rm9ybUZpZWxkT3B0aW9uW10+KFtdKTtcbiAgICBmaWx0ZXIkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcnKTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdFZhcmlhYmxlT3B0aW9uSWQgPSAnaWQnO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdFZhcmlhYmxlT3B0aW9uTGFiZWwgPSAnbmFtZSc7XG4gICAgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0VmFyaWFibGVPcHRpb25QYXRoID0gJ2RhdGEnO1xuXG4gICAgZ2V0IHNob3dSZXF1aXJlZE1lc3NhZ2UoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmRyb3Bkb3duQ29udHJvbC50b3VjaGVkICYmIHRoaXMuZHJvcGRvd25Db250cm9sLmVycm9ycz8ucmVxdWlyZWQgJiYgIXRoaXMuaXNSZXN0QXBpRmFpbGVkICYmICF0aGlzLnZhcmlhYmxlT3B0aW9uc0ZhaWxlZDtcbiAgICB9XG5cbiAgICBnZXQgaXNSZWFkT25seVR5cGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpZWxkLnR5cGUgPT09ICdyZWFkb25seSc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgaXNMaW5rZWRXaWRnZXQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMubGlua2VkV2lkZ2V0SWQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgbGlua2VkV2lkZ2V0SWQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmllbGQ/LnJ1bGU/LnJ1bGVPbjtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBpc1JlYWRPbmx5Rm9ybSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5maWVsZD8uZm9ybT8ucmVhZE9ubHk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgaGFzUmVzdFVybCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5maWVsZD8ucmVzdFVybDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBpc1ZhbGlkUmVzdENvbmZpZygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNSZXN0T3B0aW9uVHlwZSAmJiB0aGlzLmhhc1Jlc3RVcmw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgaXNSZXN0T3B0aW9uVHlwZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmllbGQ/Lm9wdGlvblR5cGUgPT09ICdyZXN0JztcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBpc1ZhcmlhYmxlT3B0aW9uVHlwZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmllbGQ/Lm9wdGlvblR5cGUgPT09ICd2YXJpYWJsZSc7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuc2V0dXBEcm9wZG93bigpO1xuXG4gICAgICAgIHRoaXMuZm9ybVNlcnZpY2Uub25Gb3JtVmFyaWFibGVDaGFuZ2VkLnN1YnNjcmliZSgoeyBmaWVsZCB9KSA9PiB7XG4gICAgICAgICAgICBpZiAoZmllbGQuaWQgPT09IHRoaXMuZmllbGQuaWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldHVwRHJvcGRvd24oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgdXBkYXRlUmVhY3RpdmVGb3JtQ29udHJvbCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVGb3JtQ29udHJvbFN0YXRlKCk7XG4gICAgICAgIHRoaXMuaGFuZGxlRXJyb3JzKCk7XG4gICAgfVxuXG4gICAgY29tcGFyZURyb3Bkb3duVmFsdWVzKG9wdDE6IEZvcm1GaWVsZE9wdGlvbiB8IHN0cmluZywgb3B0MjogRm9ybUZpZWxkT3B0aW9uIHwgc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghb3B0MSB8fCAhb3B0Mikge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHR5cGVvZiBvcHQxID09PSAnc3RyaW5nJyAmJiB0eXBlb2Ygb3B0MiA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgIHJldHVybiBvcHQxID09PSBvcHQyLmlkIHx8IG9wdDEgPT09IG9wdDIubmFtZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2Ygb3B0MSA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG9wdDIgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICByZXR1cm4gb3B0MS5pZCA9PT0gb3B0MiB8fCBvcHQxLm5hbWUgPT09IG9wdDI7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZW9mIG9wdDEgPT09ICdvYmplY3QnICYmIHR5cGVvZiBvcHQyID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgcmV0dXJuIG9wdDEuaWQgPT09IG9wdDIuaWQgfHwgb3B0MS5uYW1lID09PSBvcHQyLm5hbWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gb3B0MSA9PT0gb3B0MjtcbiAgICB9XG5cbiAgICBzZWxlY3Rpb25DaGFuZ2VkRm9yRmllbGQoZmllbGQ6IEZvcm1GaWVsZE1vZGVsKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGZvcm1GaWVsZFZhbHVlQ2hhbmdlZEV2ZW50ID0gbmV3IEZvcm1GaWVsZEV2ZW50KGZpZWxkLmZvcm0sIGZpZWxkKTtcbiAgICAgICAgdGhpcy5mb3JtU2VydmljZS5mb3JtRmllbGRWYWx1ZUNoYW5nZWQubmV4dChmb3JtRmllbGRWYWx1ZUNoYW5nZWRFdmVudCk7XG4gICAgICAgIHRoaXMub25GaWVsZENoYW5nZWQoZmllbGQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0dXBEcm9wZG93bigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRQcmV2aWV3U3RhdGUoKTtcblxuICAgICAgICB0aGlzLmNoZWNrRmllbGRPcHRpb25zU291cmNlKCk7XG4gICAgICAgIHRoaXMudXBkYXRlT3B0aW9ucygpO1xuXG4gICAgICAgIHRoaXMuc2V0Rm9ybUNvbnRyb2xWYWx1ZSgpO1xuICAgICAgICB0aGlzLnVwZGF0ZUZvcm1Db250cm9sU3RhdGUoKTtcbiAgICAgICAgdGhpcy5zdWJzY3JpYmVUb0lucHV0Q2hhbmdlcygpO1xuICAgICAgICB0aGlzLmluaXRGaWx0ZXIoKTtcbiAgICAgICAgdGhpcy5oYW5kbGVFcnJvcnMoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN1YnNjcmliZVRvSW5wdXRDaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRyb3Bkb3duQ29udHJvbC52YWx1ZUNoYW5nZXNcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGZpbHRlcigoKSA9PiAhIXRoaXMuZmllbGQpLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0T3B0aW9uVmFsdWUodmFsdWUsIHRoaXMuZmllbGQpO1xuICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlRXJyb3JzKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2VkRm9yRmllbGQodGhpcy5maWVsZCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldEZvcm1Db250cm9sVmFsdWUoKTogdm9pZCB7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMuZmllbGQudmFsdWUpKSB7XG4gICAgICAgICAgICB0aGlzLmRyb3Bkb3duQ29udHJvbC5zZXRWYWx1ZSh0aGlzLmZpZWxkPy52YWx1ZSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZmllbGQ/LnZhbHVlICYmIHR5cGVvZiB0aGlzLmZpZWxkPy52YWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgIHRoaXMuZHJvcGRvd25Db250cm9sLnNldFZhbHVlKHsgaWQ6IHRoaXMuZmllbGQ/LnZhbHVlLmlkLCBuYW1lOiB0aGlzLmZpZWxkPy52YWx1ZS5uYW1lIH0sIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmZpZWxkLnZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLmRyb3Bkb3duQ29udHJvbC5zZXRWYWx1ZSh0aGlzLmZpZWxkPy52YWx1ZSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5kcm9wZG93bkNvbnRyb2wuc2V0VmFsdWUoeyBpZDogdGhpcy5maWVsZD8udmFsdWUsIG5hbWU6ICcnIH0sIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlRm9ybUNvbnRyb2xTdGF0ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVEcm9wZG93blZhbGlkYXRpb25SdWxlcygpO1xuICAgICAgICB0aGlzLnVwZGF0ZURyb3Bkb3duUmVhZG9ubHlSdWxlcygpO1xuICAgICAgICB0aGlzLmRyb3Bkb3duQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZURyb3Bkb3duVmFsaWRhdGlvblJ1bGVzKCkge1xuICAgICAgICB0aGlzLmRyb3Bkb3duQ29udHJvbC5zZXRWYWxpZGF0b3JzKFtdKTtcblxuICAgICAgICBpZiAoIXRoaXMuZmllbGQ/LmlzVmlzaWJsZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuaXNSZXF1aXJlZCgpKSB7XG4gICAgICAgICAgICB0aGlzLmRyb3Bkb3duQ29udHJvbC5hZGRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkXSk7XG4gICAgICAgICAgICBpZiAodGhpcy5maWVsZC5oYXNFbXB0eVZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kcm9wZG93bkNvbnRyb2wuYWRkVmFsaWRhdG9ycyhbZGVmYXVsdFZhbHVlVmFsaWRhdG9yKHRoaXMuZmllbGQpXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZURyb3Bkb3duUmVhZG9ubHlSdWxlcygpIHtcbiAgICAgICAgaWYgKHRoaXMuZmllbGQ/LnJlYWRPbmx5IHx8IHRoaXMucmVhZE9ubHkpIHtcbiAgICAgICAgICAgIHRoaXMuZHJvcGRvd25Db250cm9sLmRpc2FibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5kcm9wZG93bkNvbnRyb2wuZW5hYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlRXJyb3JzKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5kcm9wZG93bkNvbnRyb2wudmFsaWQpIHtcbiAgICAgICAgICAgIHRoaXMuZmllbGQudmFsaWRhdGlvblN1bW1hcnkgPSBuZXcgRXJyb3JNZXNzYWdlTW9kZWwoJycpO1xuICAgICAgICAgICAgdGhpcy5maWVsZC5tYXJrQXNWYWxpZCgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZHJvcGRvd25Db250cm9sLmludmFsaWQgJiYgdGhpcy5kcm9wZG93bkNvbnRyb2wuZXJyb3JzLnJlcXVpcmVkKSB7XG4gICAgICAgICAgICB0aGlzLmZpZWxkLnZhbGlkYXRpb25TdW1tYXJ5ID0gbmV3IEVycm9yTWVzc2FnZU1vZGVsKHsgbWVzc2FnZTogJ0ZPUk0uRklFTEQuUkVRVUlSRUQnIH0pO1xuICAgICAgICAgICAgdGhpcy5maWVsZC5tYXJrQXNJbnZhbGlkKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRGaWx0ZXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZmlsdGVyJFxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgZmlsdGVyKChzZWFyY2gpID0+IHNlYXJjaCAhPT0gdW5kZWZpbmVkKSxcbiAgICAgICAgICAgICAgICBtYXAoKHNlYXJjaCkgPT5cbiAgICAgICAgICAgICAgICAgICAgc2VhcmNoID8gdGhpcy5maWVsZC5vcHRpb25zLmZpbHRlcigoeyBuYW1lIH0pID0+IG5hbWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2gudG9Mb3dlckNhc2UoKSkpIDogdGhpcy5maWVsZC5vcHRpb25zXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgocmVzdWx0KSA9PiB0aGlzLmxpc3QkLm5leHQocmVzdWx0KSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjaGVja0ZpZWxkT3B0aW9uc1NvdXJjZSgpOiB2b2lkIHtcbiAgICAgICAgc3dpdGNoICh0cnVlKSB7XG4gICAgICAgICAgICBjYXNlIHRoaXMuaXNSZWFkT25seUZvcm06XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIHRoaXMuaXNWYWxpZFJlc3RDb25maWcgJiYgIXRoaXMuaXNMaW5rZWRXaWRnZXQ6XG4gICAgICAgICAgICAgICAgdGhpcy5wZXJzaXN0RmllbGRPcHRpb25zRnJvbVJlc3RBcGkoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSB0aGlzLmlzTGlua2VkV2lkZ2V0OlxuICAgICAgICAgICAgICAgIHRoaXMubG9hZEZpZWxkT3B0aW9uc0ZvckxpbmtlZFdpZGdldCgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlIHRoaXMuaXNWYXJpYWJsZU9wdGlvblR5cGU6XG4gICAgICAgICAgICAgICAgdGhpcy5wZXJzaXN0RmllbGRPcHRpb25zRnJvbVZhcmlhYmxlKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHBlcnNpc3RGaWVsZE9wdGlvbnNGcm9tVmFyaWFibGUoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG9wdGlvbnNQYXRoID0gdGhpcy5maWVsZD8udmFyaWFibGVDb25maWc/Lm9wdGlvbnNQYXRoID8/IHRoaXMuZGVmYXVsdFZhcmlhYmxlT3B0aW9uUGF0aDtcbiAgICAgICAgY29uc3QgdmFyaWFibGVOYW1lID0gdGhpcy5maWVsZD8udmFyaWFibGVDb25maWc/LnZhcmlhYmxlTmFtZTtcbiAgICAgICAgY29uc3QgcHJvY2Vzc1ZhcmlhYmxlcyA9IHRoaXMuZmllbGQ/LmZvcm0/LnByb2Nlc3NWYXJpYWJsZXM7XG4gICAgICAgIGNvbnN0IGZvcm1WYXJpYWJsZXMgPSB0aGlzLmZpZWxkPy5mb3JtPy52YXJpYWJsZXM7XG5cbiAgICAgICAgY29uc3QgZHJvcGRvd25PcHRpb25zID0gdGhpcy5nZXRPcHRpb25zRnJvbVZhcmlhYmxlKHByb2Nlc3NWYXJpYWJsZXMsIGZvcm1WYXJpYWJsZXMsIHZhcmlhYmxlTmFtZSk7XG5cbiAgICAgICAgaWYgKGRyb3Bkb3duT3B0aW9ucykge1xuICAgICAgICAgICAgY29uc3QgZm9ybVZhcmlhYmxlT3B0aW9uczogRm9ybUZpZWxkT3B0aW9uW10gPSB0aGlzLmdldE9wdGlvbnNGcm9tUGF0aChkcm9wZG93bk9wdGlvbnMsIG9wdGlvbnNQYXRoKTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlT3B0aW9ucyhmb3JtVmFyaWFibGVPcHRpb25zKTtcbiAgICAgICAgICAgIHRoaXMucmVzZXRJbnZhbGlkVmFsdWUoKTtcbiAgICAgICAgICAgIHRoaXMuZmllbGQudXBkYXRlRm9ybSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVFcnJvcihgJHt2YXJpYWJsZU5hbWV9IG5vdCBmb3VuZGApO1xuICAgICAgICAgICAgdGhpcy5yZXNldE9wdGlvbnMoKTtcbiAgICAgICAgICAgIHRoaXMudmFyaWFibGVPcHRpb25zRmFpbGVkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0T3B0aW9uc0Zyb21QYXRoKGRhdGE6IGFueSwgcGF0aDogc3RyaW5nKTogRm9ybUZpZWxkT3B0aW9uW10ge1xuICAgICAgICBjb25zdCBvcHRpb25zSWQgPSB0aGlzLmZpZWxkPy52YXJpYWJsZUNvbmZpZz8ub3B0aW9uc0lkID8/IHRoaXMuZGVmYXVsdFZhcmlhYmxlT3B0aW9uSWQ7XG4gICAgICAgIGNvbnN0IG9wdGlvbnNMYWJlbCA9IHRoaXMuZmllbGQ/LnZhcmlhYmxlQ29uZmlnPy5vcHRpb25zTGFiZWwgPz8gdGhpcy5kZWZhdWx0VmFyaWFibGVPcHRpb25MYWJlbDtcblxuICAgICAgICBjb25zdCBwcm9wZXJ0aWVzID0gcGF0aC5zcGxpdCgnLicpO1xuICAgICAgICBjb25zdCBjdXJyZW50UHJvcGVydHkgPSBwcm9wZXJ0aWVzLnNoaWZ0KCk7XG5cbiAgICAgICAgaWYgKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZGF0YSwgY3VycmVudFByb3BlcnR5KSkge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVFcnJvcihgJHtjdXJyZW50UHJvcGVydHl9IG5vdCBmb3VuZCBpbiAke0pTT04uc3RyaW5naWZ5KGRhdGEpfWApO1xuICAgICAgICAgICAgdGhpcy52YXJpYWJsZU9wdGlvbnNGYWlsZWQgPSB0cnVlO1xuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbmVzdGVkRGF0YSA9IGRhdGFbY3VycmVudFByb3BlcnR5XTtcblxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShuZXN0ZWREYXRhKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0T3B0aW9uc0Zyb21BcnJheShuZXN0ZWREYXRhLCBvcHRpb25zSWQsIG9wdGlvbnNMYWJlbCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5nZXRPcHRpb25zRnJvbVBhdGgobmVzdGVkRGF0YSwgcHJvcGVydGllcy5qb2luKCcuJykpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0T3B0aW9uc0Zyb21BcnJheShuZXN0ZWREYXRhOiBhbnlbXSwgaWQ6IHN0cmluZywgbGFiZWw6IHN0cmluZyk6IEZvcm1GaWVsZE9wdGlvbltdIHtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IG5lc3RlZERhdGEubWFwKChpdGVtKSA9PiB0aGlzLmNyZWF0ZU9wdGlvbihpdGVtLCBpZCwgbGFiZWwpKTtcbiAgICAgICAgY29uc3QgaGFzSW52YWxpZE9wdGlvbiA9IG9wdGlvbnMuc29tZSgob3B0aW9uKSA9PiAhb3B0aW9uKTtcblxuICAgICAgICBpZiAoaGFzSW52YWxpZE9wdGlvbikge1xuICAgICAgICAgICAgdGhpcy52YXJpYWJsZU9wdGlvbnNGYWlsZWQgPSB0cnVlO1xuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy52YXJpYWJsZU9wdGlvbnNGYWlsZWQgPSBmYWxzZTtcbiAgICAgICAgcmV0dXJuIG9wdGlvbnM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVPcHRpb24oaXRlbTogYW55LCBpZDogc3RyaW5nLCBsYWJlbDogc3RyaW5nKTogRm9ybUZpZWxkT3B0aW9uIHtcbiAgICAgICAgY29uc3Qgb3B0aW9uOiBGb3JtRmllbGRPcHRpb24gPSB7XG4gICAgICAgICAgICBpZDogaXRlbVtpZF0sXG4gICAgICAgICAgICBuYW1lOiBpdGVtW2xhYmVsXVxuICAgICAgICB9O1xuXG4gICAgICAgIGlmICghb3B0aW9uLmlkIHx8ICFvcHRpb24ubmFtZSkge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVFcnJvcihgJ2lkJyBvciAnbGFiZWwnIGlzIG5vdCBwcm9wZXJseSBkZWZpbmVkYCk7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG9wdGlvbjtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldE9wdGlvbnNGcm9tVmFyaWFibGUoXG4gICAgICAgIHByb2Nlc3NWYXJpYWJsZXM6IFRhc2tWYXJpYWJsZUNsb3VkW10sXG4gICAgICAgIGZvcm1WYXJpYWJsZXM6IFRhc2tWYXJpYWJsZUNsb3VkW10sXG4gICAgICAgIHZhcmlhYmxlTmFtZTogc3RyaW5nXG4gICAgKTogVGFza1ZhcmlhYmxlQ2xvdWQge1xuICAgICAgICBjb25zdCBwcm9jZXNzVmFyaWFibGVEcm9wZG93bk9wdGlvbnM6IFRhc2tWYXJpYWJsZUNsb3VkID0gdGhpcy5nZXRWYXJpYWJsZVZhbHVlQnlOYW1lKHByb2Nlc3NWYXJpYWJsZXMsIHZhcmlhYmxlTmFtZSk7XG4gICAgICAgIGNvbnN0IGZvcm1WYXJpYWJsZURyb3Bkb3duT3B0aW9uczogVGFza1ZhcmlhYmxlQ2xvdWQgPSB0aGlzLmdldFZhcmlhYmxlVmFsdWVCeU5hbWUoZm9ybVZhcmlhYmxlcywgdmFyaWFibGVOYW1lKTtcblxuICAgICAgICByZXR1cm4gcHJvY2Vzc1ZhcmlhYmxlRHJvcGRvd25PcHRpb25zID8/IGZvcm1WYXJpYWJsZURyb3Bkb3duT3B0aW9ucztcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFZhcmlhYmxlVmFsdWVCeU5hbWUodmFyaWFibGVzOiBUYXNrVmFyaWFibGVDbG91ZFtdLCB2YXJpYWJsZU5hbWU6IHN0cmluZyk6IGFueSB7XG4gICAgICAgIHJldHVybiB2YXJpYWJsZXM/LmZpbmQoKHZhcmlhYmxlOiBUYXNrVmFyaWFibGVDbG91ZCkgPT4gdmFyaWFibGU/Lm5hbWUgPT09IGB2YXJpYWJsZXMuJHt2YXJpYWJsZU5hbWV9YCB8fCB2YXJpYWJsZT8ubmFtZSA9PT0gdmFyaWFibGVOYW1lKVxuICAgICAgICAgICAgPy52YWx1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHBlcnNpc3RGaWVsZE9wdGlvbnNGcm9tUmVzdEFwaSgpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNWYWxpZFJlc3RDb25maWcpIHtcbiAgICAgICAgICAgIHRoaXMucmVzZXRSZXN0QXBpRXJyb3JNZXNzYWdlKCk7XG4gICAgICAgICAgICBjb25zdCBib2R5UGFyYW0gPSB0aGlzLmJ1aWxkQm9keVBhcmFtKCk7XG4gICAgICAgICAgICB0aGlzLmZvcm1DbG91ZFNlcnZpY2VcbiAgICAgICAgICAgICAgICAuZ2V0UmVzdFdpZGdldERhdGEodGhpcy5maWVsZC5mb3JtLmlkLCB0aGlzLmZpZWxkLmlkLCBib2R5UGFyYW0pXG4gICAgICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgICAgICAgICAgICAgIG5leHQ6IChyZXN1bHQ6IEZvcm1GaWVsZE9wdGlvbltdKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlc2V0UmVzdEFwaUVycm9yTWVzc2FnZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVPcHRpb25zKHJlc3VsdCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpZWxkLnVwZGF0ZUZvcm0oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVzZXRJbnZhbGlkVmFsdWUoKTtcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgZXJyb3I6IChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVzZXRSZXN0QXBpT3B0aW9ucygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVFcnJvcihlcnIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGJ1aWxkQm9keVBhcmFtKCk6IGFueSB7XG4gICAgICAgIGNvbnN0IGJvZHlQYXJhbSA9IE9iamVjdC5hc3NpZ24oe30pO1xuICAgICAgICBpZiAodGhpcy5pc0xpbmtlZFdpZGdldCkge1xuICAgICAgICAgICAgY29uc3QgcGFyZW50V2lkZ2V0VmFsdWUgPSB0aGlzLmdldFBhcmVudFdpZGdldFZhbHVlKCk7XG4gICAgICAgICAgICBjb25zdCBwYXJlbnRXaWRnZXRJZCA9IHRoaXMubGlua2VkV2lkZ2V0SWQ7XG4gICAgICAgICAgICBib2R5UGFyYW1bcGFyZW50V2lkZ2V0SWRdID0gcGFyZW50V2lkZ2V0VmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5mb3JtVXRpbHNTZXJ2aWNlLmdldFJlc3RVcmxWYXJpYWJsZXNNYXAodGhpcy5maWVsZC5mb3JtLCB0aGlzLmZpZWxkLnJlc3RVcmwsIGJvZHlQYXJhbSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBsb2FkRmllbGRPcHRpb25zRm9yTGlua2VkV2lkZ2V0KCkge1xuICAgICAgICBjb25zdCBwYXJlbnRXaWRnZXRWYWx1ZSA9IHRoaXMuZ2V0UGFyZW50V2lkZ2V0VmFsdWUoKTtcbiAgICAgICAgdGhpcy5wYXJlbnRWYWx1ZUNoYW5nZWQocGFyZW50V2lkZ2V0VmFsdWUpO1xuXG4gICAgICAgIHRoaXMuZm9ybVNlcnZpY2UuZm9ybUZpZWxkVmFsdWVDaGFuZ2VkXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBmaWx0ZXIoKGV2ZW50OiBGb3JtRmllbGRFdmVudCkgPT4gdGhpcy5pc0Zvcm1GaWVsZEV2ZW50T2ZUeXBlRHJvcGRvd24oZXZlbnQpICYmIHRoaXMuaXNQYXJlbnRGb3JtRmllbGRFdmVudChldmVudCkpLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChldmVudDogRm9ybUZpZWxkRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZU9mUGFyZW50V2lkZ2V0ID0gZXZlbnQuZmllbGQudmFsdWU7XG4gICAgICAgICAgICAgICAgdGhpcy5wYXJlbnRWYWx1ZUNoYW5nZWQodmFsdWVPZlBhcmVudFdpZGdldCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFBhcmVudFdpZGdldFZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHBhcmVudFdpZGdldElkID0gdGhpcy5saW5rZWRXaWRnZXRJZDtcbiAgICAgICAgY29uc3QgcGFyZW50V2lkZ2V0ID0gdGhpcy5nZXRGb3JtRmllbGRCeUlkKHBhcmVudFdpZGdldElkKTtcbiAgICAgICAgcmV0dXJuIHBhcmVudFdpZGdldD8udmFsdWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBwYXJlbnRWYWx1ZUNoYW5nZWQodmFsdWU6IHN0cmluZykge1xuICAgICAgICBpZiAodmFsdWUgJiYgIXRoaXMuaXNOb25lVmFsdWVTZWxlY3RlZCh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHRoaXMuaXNWYWxpZFJlc3RDb25maWcgPyB0aGlzLnBlcnNpc3RGaWVsZE9wdGlvbnNGcm9tUmVzdEFwaSgpIDogdGhpcy5wZXJzaXN0RmllbGRPcHRpb25zRnJvbU1hbnVhbExpc3QodmFsdWUpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuaXNOb25lVmFsdWVTZWxlY3RlZCh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHRoaXMucmVzZXRSZXN0QXBpRXJyb3JNZXNzYWdlKCk7XG4gICAgICAgICAgICB0aGlzLnJlc2V0T3B0aW9ucygpO1xuICAgICAgICAgICAgdGhpcy5yZXNldEludmFsaWRWYWx1ZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVPcHRpb25zKFtdKTtcbiAgICAgICAgICAgIHRoaXMucmVzZXRJbnZhbGlkVmFsdWUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaXNOb25lVmFsdWVTZWxlY3RlZCh2YWx1ZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB2YWx1ZSA9PT0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Rm9ybUZpZWxkQnlJZChmaWVsZElkKTogRm9ybUZpZWxkTW9kZWwge1xuICAgICAgICByZXR1cm4gdGhpcy5maWVsZC5mb3JtLmdldEZvcm1GaWVsZHMoKS5maWx0ZXIoKGZpZWxkOiBGb3JtRmllbGRNb2RlbCkgPT4gZmllbGQuaWQgPT09IGZpZWxkSWQpWzBdO1xuICAgIH1cblxuICAgIHByaXZhdGUgcGVyc2lzdEZpZWxkT3B0aW9uc0Zyb21NYW51YWxMaXN0KHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKHRoaXMuaGFzUnVsZUVudHJpZXMoKSkge1xuICAgICAgICAgICAgY29uc3QgcnVsZXNFbnRyaWVzID0gdGhpcy5maWVsZC5ydWxlLmVudHJpZXM7XG4gICAgICAgICAgICBydWxlc0VudHJpZXMuZm9yRWFjaCgocnVsZUVudHJ5OiBSdWxlRW50cnkpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocnVsZUVudHJ5LmtleSA9PT0gdmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVPcHRpb25zKHJ1bGVFbnRyeS5vcHRpb25zKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZXNldEludmFsaWRWYWx1ZSgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZpZWxkLnVwZGF0ZUZvcm0oKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgcmVzZXRJbnZhbGlkVmFsdWUoKSB7XG4gICAgICAgIGlmICghdGhpcy5pc1ZhbGlkVmFsdWUoKSkge1xuICAgICAgICAgICAgdGhpcy5yZXNldFZhbHVlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHJlc2V0VmFsdWUoKSB7XG4gICAgICAgIHRoaXMuZmllbGQudmFsdWUgPSAnJztcbiAgICAgICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2VkRm9yRmllbGQodGhpcy5maWVsZCk7XG4gICAgICAgIHRoaXMudXBkYXRlT3B0aW9ucygpO1xuICAgICAgICB0aGlzLmZpZWxkLnVwZGF0ZUZvcm0oKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzVmFsaWRWYWx1ZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmllbGQudmFsdWUgJiYgdGhpcy5pc1NlbGVjdGVkVmFsdWVJbk9wdGlvbnMoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzU2VsZWN0ZWRWYWx1ZUluT3B0aW9ucygpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5maWVsZC52YWx1ZSkpIHtcbiAgICAgICAgICAgIGNvbnN0IG9wdGlvbklkTGlzdCA9IFsuLi50aGlzLmZpZWxkLm9wdGlvbnNdLm1hcCgob3B0aW9uKSA9PiBvcHRpb24uaWQpO1xuICAgICAgICAgICAgY29uc3QgZmllbGRWYWx1ZUlkcyA9IHRoaXMuZmllbGQudmFsdWUubWFwKCh2YWx1ZU9wdGlvbikgPT4gdmFsdWVPcHRpb24uaWQpO1xuICAgICAgICAgICAgcmV0dXJuIGZpZWxkVmFsdWVJZHMuZXZlcnkoKHZhbHVlT3B0aW9uSWQpID0+IG9wdGlvbklkTGlzdC5pbmNsdWRlcyh2YWx1ZU9wdGlvbklkKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAodGhpcy5maWVsZD8udmFsdWUgJiYgdHlwZW9mIHRoaXMuZmllbGQ/LnZhbHVlID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgICAgIHJldHVybiBbLi4udGhpcy5maWVsZC5vcHRpb25zXS5tYXAoKG9wdGlvbikgPT4gb3B0aW9uLmlkKS5pbmNsdWRlcyh0aGlzLmZpZWxkLnZhbHVlLmlkKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFsuLi50aGlzLmZpZWxkLm9wdGlvbnNdLm1hcCgob3B0aW9uKSA9PiBvcHRpb24uaWQpLmluY2x1ZGVzKHRoaXMuZmllbGQudmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYXNSdWxlRW50cmllcygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5maWVsZC5ydWxlLmVudHJpZXMubGVuZ3RoO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVzZXRPcHRpb25zKCkge1xuICAgICAgICB0aGlzLnVwZGF0ZU9wdGlvbnMoW10pO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNQYXJlbnRGb3JtRmllbGRFdmVudChldmVudDogRm9ybUZpZWxkRXZlbnQpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGV2ZW50LmZpZWxkLmlkID09PSB0aGlzLmxpbmtlZFdpZGdldElkO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNGb3JtRmllbGRFdmVudE9mVHlwZURyb3Bkb3duKGV2ZW50OiBGb3JtRmllbGRFdmVudCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gZXZlbnQuZmllbGQudHlwZSA9PT0gRm9ybUZpZWxkVHlwZXMuRFJPUERPV047XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRPcHRpb25WYWx1ZShvcHRpb246IEZvcm1GaWVsZE9wdGlvbiB8IEZvcm1GaWVsZE9wdGlvbltdLCBmaWVsZDogRm9ybUZpZWxkTW9kZWwpIHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkob3B0aW9uKSB8fCBmaWVsZC5oYXNNdWx0aXBsZVZhbHVlcykge1xuICAgICAgICAgICAgZmllbGQudmFsdWUgPSBvcHRpb247XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgb3B0aW9uVmFsdWU6IHN0cmluZyA9ICcnO1xuICAgICAgICBpZiAob3B0aW9uLmlkID09PSBERUZBVUxUX09QVElPTi5pZCkge1xuICAgICAgICAgICAgb3B0aW9uVmFsdWUgPSB1bmRlZmluZWQ7XG4gICAgICAgIH0gZWxzZSBpZiAob3B0aW9uLm5hbWUgIT09IGZpZWxkLnZhbHVlKSB7XG4gICAgICAgICAgICBvcHRpb25WYWx1ZSA9IG9wdGlvbi5pZDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG9wdGlvblZhbHVlID0gb3B0aW9uLm5hbWU7XG4gICAgICAgIH1cblxuICAgICAgICBmaWVsZC52YWx1ZSA9IG9wdGlvblZhbHVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0UHJldmlld1N0YXRlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnByZXZpZXdTdGF0ZSA9IHRoaXMuZm9ybUNsb3VkU2VydmljZS5nZXRQcmV2aWV3U3RhdGUoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhhbmRsZUVycm9yKGVycm9yOiBhbnkpIHtcbiAgICAgICAgaWYgKCF0aGlzLnByZXZpZXdTdGF0ZSkge1xuICAgICAgICAgICAgdGhpcy53aWRnZXRFcnJvci5lbWl0KGVycm9yKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlT3B0aW9ucyhvcHRpb25zPzogRm9ybUZpZWxkT3B0aW9uW10pOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmZpZWxkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAob3B0aW9ucykge1xuICAgICAgICAgICAgdGhpcy5maWVsZC5vcHRpb25zID0gb3B0aW9ucztcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubGlzdCQubmV4dCh0aGlzLmZpZWxkLm9wdGlvbnMpO1xuICAgICAgICB0aGlzLnNob3dJbnB1dEZpbHRlciA9IHRoaXMuZmllbGQub3B0aW9ucy5sZW5ndGggPiB0aGlzLmFwcENvbmZpZy5nZXQ8bnVtYmVyPignZm9ybS5kcm9wRG93bkZpbHRlckxpbWl0JywgSElERV9GSUxURVJfTElNSVQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVzZXRSZXN0QXBpRXJyb3JNZXNzYWdlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzUmVzdEFwaUZhaWxlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLnJlc3RBcGlIb3N0TmFtZSA9ICcnO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVzZXRSZXN0QXBpT3B0aW9ucygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVPcHRpb25zKFtdKTtcbiAgICAgICAgdGhpcy5yZXNldFZhbHVlKCk7XG4gICAgICAgIHRoaXMuaXNSZXN0QXBpRmFpbGVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5yZXN0QXBpSG9zdE5hbWUgPSB0aGlzLmdldFJlc3RVcmxIb3N0TmFtZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0UmVzdFVybEhvc3ROYW1lKCk6IHN0cmluZyB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFVSTCh0aGlzLmZpZWxkPy5yZXN0VXJsKS5ob3N0bmFtZTtcbiAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5maWVsZD8ucmVzdFVybDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxkaXZcbiAgICBjbGFzcz1cImFkZi1kcm9wZG93bi13aWRnZXQge3tmaWVsZC5jbGFzc05hbWV9fVwiXG4gICAgW2NsYXNzLmFkZi1pbnZhbGlkXT1cImRyb3Bkb3duQ29udHJvbC5pbnZhbGlkICYmIGRyb3Bkb3duQ29udHJvbC50b3VjaGVkXCJcbiAgICBbY2xhc3MuYWRmLXJlYWRvbmx5XT1cImZpZWxkLnJlYWRPbmx5XCJcbiAgICBbY2xhc3MuYWRmLWxlZnQtbGFiZWwtaW5wdXQtY29udGFpbmVyXT1cImZpZWxkLmxlZnRMYWJlbHNcIlxuPlxuICAgIDxkaXYgKm5nSWY9XCJmaWVsZC5sZWZ0TGFiZWxzXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImFkZi1sYWJlbCBhZGYtbGVmdC1sYWJlbFwiIFthdHRyLmZvcl09XCJmaWVsZC5pZFwiPlxuICAgICAgICAgICAge3sgZmllbGQubmFtZSB8IHRyYW5zbGF0ZSB9fTxzcGFuIGNsYXNzPVwiYWRmLWFzdGVyaXNrXCIgW3N0eWxlLnZpc2liaWxpdHldPVwiaXNSZXF1aXJlZCgpID8gJ3Zpc2libGUnIDogJ2hpZGRlbidcIj4qPC9zcGFuPlxuICAgICAgICA8L2xhYmVsPlxuICAgIDwvZGl2PlxuICAgIDxkaXY+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImFkZi1mb3JtLWZpZWxkLWlucHV0XCI+XG4gICAgICAgICAgICBAaWYgKCAoZmllbGQubmFtZSB8fCB0aGlzLmZpZWxkPy5yZXF1aXJlZCkgJiYgIWZpZWxkLmxlZnRMYWJlbHMpIHsgIDxtYXQtbGFiZWwgY2xhc3M9XCJhZGYtbGFiZWxcIiBbYXR0ci5mb3JdPVwiZmllbGQuaWRcIj57eyBmaWVsZC5uYW1lIHwgdHJhbnNsYXRlIH19PC9tYXQtbGFiZWw+IH1cbiAgICAgICAgICAgIDxtYXQtc2VsZWN0XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJhZGYtc2VsZWN0XCJcbiAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZHJvcGRvd25Db250cm9sXCJcbiAgICAgICAgICAgICAgICBbaWRdPVwiZmllbGQuaWRcIlxuICAgICAgICAgICAgICAgIFtjb21wYXJlV2l0aF09XCJjb21wYXJlRHJvcGRvd25WYWx1ZXNcIlxuICAgICAgICAgICAgICAgIFt0aXRsZV09XCJmaWVsZC50b29sdGlwXCJcbiAgICAgICAgICAgICAgICBwYW5lbENsYXNzPVwiYWRmLXNlbGVjdC1maWx0ZXJcIlxuICAgICAgICAgICAgICAgIFttdWx0aXBsZV09XCJmaWVsZC5oYXNNdWx0aXBsZVZhbHVlc1wiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImZpZWxkLnJlYWRPbmx5XCJcbiAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwiZmllbGQucmVxdWlyZWQgXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8YWRmLXNlbGVjdC1maWx0ZXItaW5wdXQgKm5nSWY9XCJzaG93SW5wdXRGaWx0ZXJcIiAoY2hhbmdlKT1cImZpbHRlciQubmV4dCgkZXZlbnQpXCIgLz5cblxuICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBvcHQgb2YgbGlzdCQgfCBhc3luY1wiIFt2YWx1ZV09XCJvcHRcIiBbaWRdPVwib3B0LmlkXCI+e3tvcHQubmFtZX19PC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIGlkPVwicmVhZG9ubHlPcHRpb25cIiAqbmdJZj1cImlzUmVhZE9ubHlUeXBlXCIgW3ZhbHVlXT1cImZpZWxkLnZhbHVlXCI+e3tmaWVsZC52YWx1ZX19PC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWRmLWVycm9yLW1lc3NhZ2VzLWNvbnRhaW5lclwiICpuZ0lmPVwiIXByZXZpZXdTdGF0ZSAmJiAhZmllbGQucmVhZE9ubHlcIj5cbiAgICAgICAgICAgIDxlcnJvci13aWRnZXRcbiAgICAgICAgICAgICAgICBjbGFzcz1cImFkZi1kcm9wZG93bi1yZXF1aXJlZC1tZXNzYWdlXCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cInNob3dSZXF1aXJlZE1lc3NhZ2VcIlxuICAgICAgICAgICAgICAgIHJlcXVpcmVkPVwie3sgJ0ZPUk0uRklFTEQuUkVRVUlSRUQnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8ZXJyb3Itd2lkZ2V0XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJhZGYtZHJvcGRvd24tZmFpbGVkLW1lc3NhZ2VcIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwiaXNSZXN0QXBpRmFpbGVkXCJcbiAgICAgICAgICAgICAgICByZXF1aXJlZD1cInt7ICdGT1JNLkZJRUxELlJFU1RfQVBJX0ZBSUxFRCcgfCB0cmFuc2xhdGU6IHsgaG9zdG5hbWU6IHJlc3RBcGlIb3N0TmFtZSB9IH19XCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8ZXJyb3Itd2lkZ2V0XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJhZGYtZHJvcGRvd24tZmFpbGVkLW1lc3NhZ2VcIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwidmFyaWFibGVPcHRpb25zRmFpbGVkXCJcbiAgICAgICAgICAgICAgICByZXF1aXJlZD1cInt7ICdGT1JNLkZJRUxELlZBUklBQkxFX0RST1BET1dOX09QVElPTlNfRkFJTEVEJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
|