asp-lib 1.1.9 → 1.1.10

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.
@@ -0,0 +1,20 @@
1
+ // custom validator to check that two fields match
2
+ // from: https://jasonwatmore.com/angular-multiple-field-cross-field-validation-with-reactive-forms
3
+ export function MustMatch(controlName, matchingControlName) {
4
+ return (group) => {
5
+ const control = group.get(controlName);
6
+ const matchingControl = group.get(matchingControlName);
7
+ if (!control || !matchingControl)
8
+ return null;
9
+ // return if another validator has already found an error on the matchingControl
10
+ if (matchingControl.errors && !matchingControl.errors['mustMatch'])
11
+ return null;
12
+ // set error on matchingControl if validation fails
13
+ if (control.value !== matchingControl.value)
14
+ matchingControl.setErrors({ mustMatch: true });
15
+ else
16
+ matchingControl.setErrors(null);
17
+ return null;
18
+ };
19
+ }
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVzdC1tYXRjaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FzcC1saWIvc3JjL2xpYi9oZWxwZXJzL211c3QtbWF0Y2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsa0RBQWtEO0FBQ2xELG1HQUFtRztBQUNuRyxNQUFNLFVBQVUsU0FBUyxDQUFDLFdBQW1CLEVBQUUsbUJBQTJCO0lBQ3RFLE9BQU8sQ0FBQyxLQUFzQixFQUFFLEVBQUU7UUFDOUIsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN2QyxNQUFNLGVBQWUsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFFdkQsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLGVBQWU7WUFDNUIsT0FBTyxJQUFJLENBQUM7UUFFaEIsZ0ZBQWdGO1FBQ2hGLElBQUksZUFBZSxDQUFDLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDO1lBQzlELE9BQU8sSUFBSSxDQUFDO1FBRWhCLG1EQUFtRDtRQUNuRCxJQUFJLE9BQU8sQ0FBQyxLQUFLLEtBQUssZUFBZSxDQUFDLEtBQUs7WUFDdkMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDOztZQUUvQyxlQUFlLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXBDLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUMsQ0FBQTtBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG4vLyBjdXN0b20gdmFsaWRhdG9yIHRvIGNoZWNrIHRoYXQgdHdvIGZpZWxkcyBtYXRjaFxyXG4vLyBmcm9tOiBodHRwczovL2phc29ud2F0bW9yZS5jb20vYW5ndWxhci1tdWx0aXBsZS1maWVsZC1jcm9zcy1maWVsZC12YWxpZGF0aW9uLXdpdGgtcmVhY3RpdmUtZm9ybXNcclxuZXhwb3J0IGZ1bmN0aW9uIE11c3RNYXRjaChjb250cm9sTmFtZTogc3RyaW5nLCBtYXRjaGluZ0NvbnRyb2xOYW1lOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiAoZ3JvdXA6IEFic3RyYWN0Q29udHJvbCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGNvbnRyb2wgPSBncm91cC5nZXQoY29udHJvbE5hbWUpO1xyXG4gICAgICAgIGNvbnN0IG1hdGNoaW5nQ29udHJvbCA9IGdyb3VwLmdldChtYXRjaGluZ0NvbnRyb2xOYW1lKTtcclxuXHJcbiAgICAgICAgaWYgKCFjb250cm9sIHx8ICFtYXRjaGluZ0NvbnRyb2wpXHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG5cclxuICAgICAgICAvLyByZXR1cm4gaWYgYW5vdGhlciB2YWxpZGF0b3IgaGFzIGFscmVhZHkgZm91bmQgYW4gZXJyb3Igb24gdGhlIG1hdGNoaW5nQ29udHJvbFxyXG4gICAgICAgIGlmIChtYXRjaGluZ0NvbnRyb2wuZXJyb3JzICYmICFtYXRjaGluZ0NvbnRyb2wuZXJyb3JzWydtdXN0TWF0Y2gnXSlcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcblxyXG4gICAgICAgIC8vIHNldCBlcnJvciBvbiBtYXRjaGluZ0NvbnRyb2wgaWYgdmFsaWRhdGlvbiBmYWlsc1xyXG4gICAgICAgIGlmIChjb250cm9sLnZhbHVlICE9PSBtYXRjaGluZ0NvbnRyb2wudmFsdWUpXHJcbiAgICAgICAgICAgIG1hdGNoaW5nQ29udHJvbC5zZXRFcnJvcnMoeyBtdXN0TWF0Y2g6IHRydWUgfSk7XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICBtYXRjaGluZ0NvbnRyb2wuc2V0RXJyb3JzKG51bGwpO1xyXG5cclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,14 @@
1
+ export function PasswordValidator() {
2
+ return (control) => {
3
+ const value = control.value;
4
+ if (!value)
5
+ return null;
6
+ const hasNumeric = /[0-9]+/.test(value);
7
+ const hasLowerCase = /[a-z]+/.test(value);
8
+ const hasUpperCase = /[A-Z]+/.test(value);
9
+ const hasSpecialChar = /[^A-Za-z0-9]+/.test(value);
10
+ const passwordValid = hasNumeric && hasLowerCase && hasUpperCase && hasSpecialChar;
11
+ return !passwordValid ? { passwordValidator: true } : null;
12
+ };
13
+ }
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFzc3dvcmQtdmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXNwLWxpYi9zcmMvbGliL2hlbHBlcnMvcGFzc3dvcmQtdmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sVUFBVSxpQkFBaUI7SUFDN0IsT0FBTyxDQUFDLE9BQXVCLEVBQTJCLEVBQUU7UUFDeEQsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztRQUU1QixJQUFJLENBQUMsS0FBSztZQUNOLE9BQU8sSUFBSSxDQUFDO1FBRWhCLE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEMsTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxQyxNQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFDLE1BQU0sY0FBYyxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkQsTUFBTSxhQUFhLEdBQUcsVUFBVSxJQUFJLFlBQVksSUFBSSxZQUFZLElBQUksY0FBYyxDQUFDO1FBRW5GLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUMvRCxDQUFDLENBQUE7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBWYWxpZGF0aW9uRXJyb3JzLCBWYWxpZGF0b3JGbiB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIFBhc3N3b3JkVmFsaWRhdG9yKCk6IFZhbGlkYXRvckZuIHtcclxuICAgIHJldHVybiAoY29udHJvbDpBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XHJcbiAgICAgICAgY29uc3QgdmFsdWUgPSBjb250cm9sLnZhbHVlO1xyXG5cclxuICAgICAgICBpZiAoIXZhbHVlKVxyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuXHJcbiAgICAgICAgY29uc3QgaGFzTnVtZXJpYyA9IC9bMC05XSsvLnRlc3QodmFsdWUpO1xyXG4gICAgICAgIGNvbnN0IGhhc0xvd2VyQ2FzZSA9IC9bYS16XSsvLnRlc3QodmFsdWUpO1xyXG4gICAgICAgIGNvbnN0IGhhc1VwcGVyQ2FzZSA9IC9bQS1aXSsvLnRlc3QodmFsdWUpO1xyXG4gICAgICAgIGNvbnN0IGhhc1NwZWNpYWxDaGFyID0gL1teQS1aYS16MC05XSsvLnRlc3QodmFsdWUpO1xyXG4gICAgICAgIGNvbnN0IHBhc3N3b3JkVmFsaWQgPSBoYXNOdW1lcmljICYmIGhhc0xvd2VyQ2FzZSAmJiBoYXNVcHBlckNhc2UgJiYgaGFzU3BlY2lhbENoYXI7XHJcblxyXG4gICAgICAgIHJldHVybiAhcGFzc3dvcmRWYWxpZCA/IHsgcGFzc3dvcmRWYWxpZGF0b3I6IHRydWUgfSA6IG51bGw7XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -1,5 +1,6 @@
1
1
  import { Injectable } from '@angular/core';
2
2
  import { MultiOptionDialogComponent } from '../multi-option-dialog/multi-option-dialog.component';
3
+ import { DialogAlertComponent } from '../dialog-alert/dialog-alert.component';
3
4
  import * as i0 from "@angular/core";
4
5
  import * as i1 from "@angular/material/dialog";
5
6
  export class DialogService {
@@ -14,6 +15,16 @@ export class DialogService {
14
15
  } }).afterClosed().subscribe(result => {
15
16
  });
16
17
  }
18
+ alert(title, message, type) {
19
+ this.dialog.open(DialogAlertComponent, {
20
+ data: {
21
+ title: title,
22
+ message: message,
23
+ type: type
24
+ },
25
+ panelClass: "dialog-alert-panel"
26
+ });
27
+ }
17
28
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DialogService, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Injectable }); }
18
29
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DialogService, providedIn: 'root' }); }
19
30
  }
@@ -23,4 +34,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
23
34
  providedIn: 'root'
24
35
  }]
25
36
  }], ctorParameters: function () { return [{ type: i1.MatDialog }]; } });
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hc3AtbGliL3NyYy9saWIvc2VydmljZXMvZGlhbG9nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQzs7O0FBS2xHLE1BQU0sT0FBTyxhQUFhO0lBRXhCLFlBQW1CLE1BQWlCO1FBQWpCLFdBQU0sR0FBTixNQUFNLENBQVc7SUFBSSxDQUFDO0lBRTFDLFdBQVcsQ0FBQyxNQUFvRztRQUMvRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQywwQkFBMEIsRUFBRSxFQUFDLElBQUksRUFBRTtnQkFDaEQsT0FBTyxFQUFDLE1BQU0sQ0FBQyxPQUFPO2dCQUN0QixPQUFPLEVBQUMsTUFBTSxDQUFDLE9BQU87Z0JBQ3pCLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSzthQUNqQixFQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFBLEVBQUU7UUFDcEMsQ0FBQyxDQUFDLENBQUE7SUFDTCxDQUFDOytHQVhXLGFBQWE7bUhBQWIsYUFBYSxjQUZaLE1BQU07OzRGQUVQLGFBQWE7a0JBSHpCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBNdWx0aU9wdGlvbkRpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uL211bHRpLW9wdGlvbi1kaWFsb2cvbXVsdGktb3B0aW9uLWRpYWxvZy5jb21wb25lbnQnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRGlhbG9nU2VydmljZSB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBkaWFsb2c6IE1hdERpYWxvZykgeyB9XHJcblxyXG5cdG11bHRpT3B0aW9uKGNvbmZpZzp7bWVzc2FnZTogc3RyaW5nLCBvcHRpb25zOntsYWJlbDpzdHJpbmcsIGNhbGxiYWNrOkZ1bmN0aW9uLCB0eXBlPzogc3RyaW5nfVtdLCB0aGVtZT86IHN0cmluZ30pIHtcclxuXHRcdHRoaXMuZGlhbG9nLm9wZW4oTXVsdGlPcHRpb25EaWFsb2dDb21wb25lbnQsIHtkYXRhOiB7XHJcbiAgICAgIG1lc3NhZ2U6Y29uZmlnLm1lc3NhZ2UsXHJcbiAgICAgIG9wdGlvbnM6Y29uZmlnLm9wdGlvbnMsXHJcblx0XHRcdHRoZW1lOiBjb25maWcudGhlbWVcclxuICAgIH19KS5hZnRlckNsb3NlZCgpLnN1YnNjcmliZShyZXN1bHQ9PntcclxuICAgIH0pXHJcblx0fVxyXG59XHJcbiJdfQ==
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hc3AtbGliL3NyYy9saWIvc2VydmljZXMvZGlhbG9nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUNsRyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQzs7O0FBSzlFLE1BQU0sT0FBTyxhQUFhO0lBRXhCLFlBQW1CLE1BQWlCO1FBQWpCLFdBQU0sR0FBTixNQUFNLENBQVc7SUFBSSxDQUFDO0lBRTFDLFdBQVcsQ0FBQyxNQUFvRztRQUMvRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQywwQkFBMEIsRUFBRSxFQUFDLElBQUksRUFBRTtnQkFDaEQsT0FBTyxFQUFDLE1BQU0sQ0FBQyxPQUFPO2dCQUN0QixPQUFPLEVBQUMsTUFBTSxDQUFDLE9BQU87Z0JBQ3pCLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSzthQUNqQixFQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFBLEVBQUU7UUFDcEMsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsS0FBSyxDQUFDLEtBQWEsRUFBRSxPQUFlLEVBQUUsSUFBWTtRQUNoRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtZQUNyQyxJQUFJLEVBQUU7Z0JBQ0osS0FBSyxFQUFFLEtBQUs7Z0JBQ1osT0FBTyxFQUFFLE9BQU87Z0JBQ2hCLElBQUksRUFBRSxJQUFJO2FBQ1g7WUFDRCxVQUFVLEVBQUUsb0JBQW9CO1NBQ2pDLENBQUMsQ0FBQTtJQUNKLENBQUM7K0dBdEJVLGFBQWE7bUhBQWIsYUFBYSxjQUZaLE1BQU07OzRGQUVQLGFBQWE7a0JBSHpCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBNdWx0aU9wdGlvbkRpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uL211bHRpLW9wdGlvbi1kaWFsb2cvbXVsdGktb3B0aW9uLWRpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEaWFsb2dBbGVydENvbXBvbmVudCB9IGZyb20gJy4uL2RpYWxvZy1hbGVydC9kaWFsb2ctYWxlcnQuY29tcG9uZW50JztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIERpYWxvZ1NlcnZpY2Uge1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZGlhbG9nOiBNYXREaWFsb2cpIHsgfVxyXG5cclxuXHRtdWx0aU9wdGlvbihjb25maWc6e21lc3NhZ2U6IHN0cmluZywgb3B0aW9uczp7bGFiZWw6c3RyaW5nLCBjYWxsYmFjazpGdW5jdGlvbiwgdHlwZT86IHN0cmluZ31bXSwgdGhlbWU/OiBzdHJpbmd9KSB7XHJcblx0XHR0aGlzLmRpYWxvZy5vcGVuKE11bHRpT3B0aW9uRGlhbG9nQ29tcG9uZW50LCB7ZGF0YToge1xyXG4gICAgICBtZXNzYWdlOmNvbmZpZy5tZXNzYWdlLFxyXG4gICAgICBvcHRpb25zOmNvbmZpZy5vcHRpb25zLFxyXG5cdFx0XHR0aGVtZTogY29uZmlnLnRoZW1lXHJcbiAgICB9fSkuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUocmVzdWx0PT57XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgYWxlcnQodGl0bGU6IHN0cmluZywgbWVzc2FnZTogc3RyaW5nLCB0eXBlOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuZGlhbG9nLm9wZW4oRGlhbG9nQWxlcnRDb21wb25lbnQsIHtcclxuICAgICAgZGF0YToge1xyXG4gICAgICAgIHRpdGxlOiB0aXRsZSxcclxuICAgICAgICBtZXNzYWdlOiBtZXNzYWdlLFxyXG4gICAgICAgIHR5cGU6IHR5cGVcclxuICAgICAgfSxcclxuICAgICAgcGFuZWxDbGFzczogXCJkaWFsb2ctYWxlcnQtcGFuZWxcIlxyXG4gICAgfSlcclxuICB9XHJcbn1cclxuIl19
@@ -53,7 +53,8 @@ export class UserDropdownComponent {
53
53
  }
54
54
  changePassword() {
55
55
  this.dialog.open(ChangePasswordComponent, {
56
- data: { baseUrl: this.baseUrl }
56
+ data: { baseUrl: this.baseUrl },
57
+ panelClass: 'change-password-dialog'
57
58
  }).afterClosed().subscribe(result => {
58
59
  });
59
60
  }
@@ -90,4 +91,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
90
91
  type: HostListener,
91
92
  args: ['document:click', ['$event.target']]
92
93
  }] } });
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1kcm9wZG93bi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hc3AtbGliL3NyYy9saWIvdXNlci1kcm9wZG93bi91c2VyLWRyb3Bkb3duLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FzcC1saWIvc3JjL2xpYi91c2VyLWRyb3Bkb3duL3VzZXItZHJvcGRvd24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRixPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0UsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOENBQThDLENBQUM7Ozs7O0FBZ0J2RixNQUFNLE9BQU8scUJBQXFCO0lBTWhDLFlBQW9CLFVBQXNCLEVBQVMsUUFBeUIsRUFBUSxNQUFpQjtRQUFqRixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQVMsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7UUFBUSxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBTDVGLFlBQU8sR0FBVyxFQUFFLENBQUM7UUFDckIsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUNuQyx1QkFBa0IsR0FBWSxLQUFLLENBQUM7UUFDcEMsY0FBUyxHQUFXLEtBQUssQ0FBQztJQUU4RSxDQUFDO0lBR3pHLE9BQU8sQ0FBQyxhQUEwQjtRQUNoQyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDNUUsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUNsQixJQUFJLENBQUMsa0JBQWtCLEdBQUcsS0FBSyxDQUFDO1lBQ2hDLElBQUksQ0FBQyxTQUFT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QUFVLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQzt5QkFDbEQsQ0FBQztxQkFDSDt3SkFHUSxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFPTixPQUFPO3NCQUROLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0cmlnZ2VyLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIGFuaW1hdGUgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFNlY3VyaXR5U2VydmljZXMgfSBmcm9tICcuLi91dGlscy9zZXJ2aWNlcy9TZWN1cml0eVNlcnZpY2VzRGVmYXVsdCc7XHJcbmltcG9ydCB7IENoYW5nZVBhc3N3b3JkQ29tcG9uZW50IH0gZnJvbSAnLi4vY2hhbmdlLXBhc3N3b3JkL2NoYW5nZS1wYXNzd29yZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItdXNlci1kcm9wZG93bicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3VzZXItZHJvcGRvd24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuLi9hc3NldHMvZm9udHMvc3R5bGUuY3NzJywgJy4uL2Fzc2V0cy90aGVtZS5zY3NzJywnLi91c2VyLWRyb3Bkb3duLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgYW5pbWF0aW9uczogW1xyXG4gICAgdHJpZ2dlcignZmFkZUluT3V0JywgW1xyXG4gICAgICBzdGF0ZSgnaW4nLCBzdHlsZSh7IG9wYWNpdHk6IDEsIHZpc2liaWxpdHk6ICd2aXNpYmxlJyB9KSksXHJcbiAgICAgIHN0YXRlKCdvdXQnLCBzdHlsZSh7IG9wYWNpdHk6IDAsIHZpc2liaWxpdHk6ICdoaWRkZW4nIH0pKSwgLy8gVXNlICd2aXNpYmlsaXR5JyB0byByZW1vdmUgdGhlIGVsZW1lbnQgZnJvbSBpbnRlcmFjdGlvbiB3aGVuIG5vdCB2aXNpYmxlXHJcbiAgICAgIHRyYW5zaXRpb24oJ291dCA9PiBpbicsIGFuaW1hdGUoJzAuM3MgZWFzZS1pbicpKSxcclxuICAgICAgdHJhbnNpdGlvbignaW4gPT4gb3V0JywgYW5pbWF0ZSgnMC4zcyBlYXNlLW91dCcpKSxcclxuICAgIF0pLFxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFVzZXJEcm9wZG93bkNvbXBvbmVudCB7XHJcbiAgQElucHV0KCkgYmFzZVVybDogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KCkgaXNNb2JpbGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpc1VzZXJEcm9wZG93bk9wZW46IGJvb2xlYW4gPSBmYWxzZTtcclxuICBmYWRlSW5PdXQ6IHN0cmluZyA9ICdvdXQnO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYscHJpdmF0ZSBzZXJ2aWNlczpTZWN1cml0eVNlcnZpY2VzLHB1YmxpYyBkaWFsb2c6IE1hdERpYWxvZykge31cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y2xpY2snLCBbJyRldmVudC50YXJnZXQnXSlcclxuICBvbkNsaWNrKHRhcmdldEVsZW1lbnQ6IEhUTUxFbGVtZW50KSB7XHJcbiAgICBjb25zdCBjbGlja2VkSW5zaWRlID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnModGFyZ2V0RWxlbWVudCk7XHJcbiAgICBpZiAoIWNsaWNrZWRJbnNpZGUpIHtcclxuICAgICAgdGhpcy5pc1VzZXJEcm9wZG93bk9wZW4gPSBmYWxzZTtcclxuICAgICAgdGhpcy5mYWRlSW5PdXQgPSAnb3V0JztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldCB1c2VybmFtZSgpIHtcclxuICAgIHJldHVybiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndXNlcm5hbWUnKTtcclxuICB9XHJcblxyXG4gIG9wZW5Vc2VyRHJvcGRvd25IYW5kbGVyKCk6IHZvaWQge1xyXG4gICAgdGhpcy5pc1VzZXJEcm9wZG93bk9wZW4gPSAhdGhpcy5pc1VzZXJEcm9wZG93bk9wZW47XHJcbiAgICB0aGlzLmZhZGVJbk91dCA9IHRoaXMuaXNVc2VyRHJvcGRvd25PcGVuID8gJ2luJyA6ICdvdXQnO1xyXG4gIH1cclxuXHJcbiAgbG9nT3V0KCl7XHJcbiAgICB0aGlzLnNlcnZpY2VzLmxvZ091dCh0aGlzLmJhc2VVcmwpLnN1YnNjcmliZShcclxuICAgICAgKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChkYXRhKSB7XHJcbiAgICAgICAgICBpZihkYXRhLmxvYWQpe1xyXG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2UuY2xlYXIoKTtcclxuICAgICAgICAgICAgd2luZG93Lm9wZW4oJy8nLCAnX3NlbGYnKTtcclxuICAgICAgICAgIH0gICAgICAgICAgXHJcbiAgICAgICAgICBcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICAoZXJyOiBhbnkpID0+IHtcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ29Ub0hvbWUoKXtcclxuICAgIGlmKHRoaXMuaXNNb2JpbGUpe1xyXG4gICAgICB3aW5kb3cub3BlbignLi4vaW5kZXguaHRtbCcsICdfc2VsZicpO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIHdpbmRvdy5vcGVuKCcvaG9tZScsICdfc2VsZicpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2hhbmdlUGFzc3dvcmQoKXtcclxuICAgIHRoaXMuZGlhbG9nLm9wZW4oQ2hhbmdlUGFzc3dvcmRDb21wb25lbnQsIHtcclxuICAgICAgICAgIGRhdGE6IHsgYmFzZVVybDogdGhpcy5iYXNlVXJsfVxyXG4gICAgICAgIH0pLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XHJcbiAgICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcmludGVyQ29uZigpe1xyXG4gICAgaWYodGhpcy5pc01vYmlsZSl7XHJcbiAgICAgIHdpbmRvdy5vcGVuKCcvIy9wcmludGVyLWNvbmZpZ3VyYXRpb24nLCAnX3NlbGYnKTtcclxuICAgIH1cclxuICB9XHJcbiAgXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImhlYWRlci11c2VyLWNvbnRhaW5lclwiIChjbGljayk9XCJvcGVuVXNlckRyb3Bkb3duSGFuZGxlcigpXCI+XHJcbiAgPHNwYW4gKm5nSWY9XCJ1c2VybmFtZVwiPnt7dXNlcm5hbWVbMF19fTwvc3Bhbj5cclxuICA8aSAqbmdJZj1cIiF1c2VybmFtZVwiIGNsYXNzPVwiYnJhc2lsaWEtdXNlclwiPjwvaT5cclxuPC9kaXY+XHJcblxyXG48ZGl2XHJcbiAgY2xhc3M9XCJ1c2VyLW92ZXJsYXlcIlxyXG4gIFtAZmFkZUluT3V0XT1cImZhZGVJbk91dFwiXHJcbiAgKGNsaWNrKT1cIm9wZW5Vc2VyRHJvcGRvd25IYW5kbGVyKClcIlxyXG4+PC9kaXY+XHJcblxyXG48ZGl2IFtAZmFkZUluT3V0XT1cImZhZGVJbk91dFwiIGNsYXNzPVwiaGVhZGVyLXVzZXItZHJvcGRvd24tY29udGFpbmVyXCI+XHJcbiAgPGRpdiAoY2xpY2spPVwiZ29Ub0hvbWUoKVwiIGNsYXNzPVwiZWRpdC1wcm9maWxlIHVzZXItb3B0aW9uc1wiPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJicmFzaWxpYS1hZ2VuY3lcIj48L3NwYW4+XHJcbiAgICA8c3Bhbj5Ib21lPC9zcGFuPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgKGNsaWNrKT1cImNoYW5nZVBhc3N3b3JkKClcIiBjbGFzcz1cImVkaXQtcHJvZmlsZSB1c2VyLW9wdGlvbnNcIj5cclxuICAgIDxzcGFuIGNsYXNzPVwiYnJhc2lsaWEtdXNlclwiPjwvc3Bhbj5cclxuICAgIDxzcGFuPkNhbWJpYXIgQ29udHJhc2XDsWE8L3NwYW4+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiAqbmdJZj1cImlzTW9iaWxlXCIgKGNsaWNrKT1cInByaW50ZXJDb25mKClcIiBjbGFzcz1cImVkaXQtcHJvZmlsZSB1c2VyLW9wdGlvbnNcIj5cclxuICAgIDxzcGFuIGNsYXNzPVwiYnJhc2lsaWEtcHJpbnRcIj48L3NwYW4+XHJcbiAgICA8c3Bhbj5Db25maWd1cmFjacOzbiBJbXByZXNvcmE8L3NwYW4+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiAoY2xpY2spPVwibG9nT3V0KClcIiBjbGFzcz1cImxvZ291dCB1c2VyLW9wdGlvbnNcIj5cclxuICAgIDxzcGFuIGNsYXNzPVwiYnJhc2lsaWEtb3V0XCI+PC9zcGFuPlxyXG4gICAgPHNwYW4+Q2VycmFyIHNlc2nDs248L3NwYW4+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1kcm9wZG93bi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hc3AtbGliL3NyYy9saWIvdXNlci1kcm9wZG93bi91c2VyLWRyb3Bkb3duLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FzcC1saWIvc3JjL2xpYi91c2VyLWRyb3Bkb3duL3VzZXItZHJvcGRvd24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRixPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0UsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOENBQThDLENBQUM7Ozs7O0FBZ0J2RixNQUFNLE9BQU8scUJBQXFCO0lBTWhDLFlBQW9CLFVBQXNCLEVBQVMsUUFBeUIsRUFBUSxNQUFpQjtRQUFqRixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQVMsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7UUFBUSxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBTDVGLFlBQU8sR0FBVyxFQUFFLENBQUM7UUFDckIsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUNuQyx1QkFBa0IsR0FBWSxLQUFLLENBQUM7UUFDcEMsY0FBUyxHQUFXLEtBQUssQ0FBQztJQUU4RSxDQUFDO0lBR3pHLE9BQU8sQ0FBQyxhQUEwQjtRQUNoQyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDNUUsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUNsQixJQUFJLENBQUMsa0JBQWtCLEdBQUcsS0FBSyxDQUFDO1lBQ2hDLElBQUksQ0FBQyxTQUFT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Y0FBYyxDQUFDLENBQUM7NEJBQ2hELFVBQVUsQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO3lCQUNsRCxDQUFDO3FCQUNIO3dKQUdRLE9BQU87c0JBQWYsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQU9OLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHRyaWdnZXIsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgYW5pbWF0ZSB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU2VjdXJpdHlTZXJ2aWNlcyB9IGZyb20gJy4uL3V0aWxzL3NlcnZpY2VzL1NlY3VyaXR5U2VydmljZXNEZWZhdWx0JztcclxuaW1wb3J0IHsgQ2hhbmdlUGFzc3dvcmRDb21wb25lbnQgfSBmcm9tICcuLi9jaGFuZ2UtcGFzc3dvcmQvY2hhbmdlLXBhc3N3b3JkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi11c2VyLWRyb3Bkb3duJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdXNlci1kcm9wZG93bi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4uL2Fzc2V0cy9mb250cy9zdHlsZS5jc3MnLCAnLi4vYXNzZXRzL3RoZW1lLnNjc3MnLCcuL3VzZXItZHJvcGRvd24uY29tcG9uZW50LnNjc3MnXSxcclxuICBhbmltYXRpb25zOiBbXHJcbiAgICB0cmlnZ2VyKCdmYWRlSW5PdXQnLCBbXHJcbiAgICAgIHN0YXRlKCdpbicsIHN0eWxlKHsgb3BhY2l0eTogMSwgdmlzaWJpbGl0eTogJ3Zpc2libGUnIH0pKSxcclxuICAgICAgc3RhdGUoJ291dCcsIHN0eWxlKHsgb3BhY2l0eTogMCwgdmlzaWJpbGl0eTogJ2hpZGRlbicgfSkpLCAvLyBVc2UgJ3Zpc2liaWxpdHknIHRvIHJlbW92ZSB0aGUgZWxlbWVudCBmcm9tIGludGVyYWN0aW9uIHdoZW4gbm90IHZpc2libGVcclxuICAgICAgdHJhbnNpdGlvbignb3V0ID0+IGluJywgYW5pbWF0ZSgnMC4zcyBlYXNlLWluJykpLFxyXG4gICAgICB0cmFuc2l0aW9uKCdpbiA9PiBvdXQnLCBhbmltYXRlKCcwLjNzIGVhc2Utb3V0JykpLFxyXG4gICAgXSksXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVXNlckRyb3Bkb3duQ29tcG9uZW50IHtcclxuICBASW5wdXQoKSBiYXNlVXJsOiBzdHJpbmcgPSAnJztcclxuICBASW5wdXQoKSBpc01vYmlsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGlzVXNlckRyb3Bkb3duT3BlbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGZhZGVJbk91dDogc3RyaW5nID0gJ291dCc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixwcml2YXRlIHNlcnZpY2VzOlNlY3VyaXR5U2VydmljZXMscHVibGljIGRpYWxvZzogTWF0RGlhbG9nKSB7fVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50LnRhcmdldCddKVxyXG4gIG9uQ2xpY2sodGFyZ2V0RWxlbWVudDogSFRNTEVsZW1lbnQpIHtcclxuICAgIGNvbnN0IGNsaWNrZWRJbnNpZGUgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyh0YXJnZXRFbGVtZW50KTtcclxuICAgIGlmICghY2xpY2tlZEluc2lkZSkge1xyXG4gICAgICB0aGlzLmlzVXNlckRyb3Bkb3duT3BlbiA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmZhZGVJbk91dCA9ICdvdXQnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0IHVzZXJuYW1lKCkge1xyXG4gICAgcmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd1c2VybmFtZScpO1xyXG4gIH1cclxuXHJcbiAgb3BlblVzZXJEcm9wZG93bkhhbmRsZXIoKTogdm9pZCB7XHJcbiAgICB0aGlzLmlzVXNlckRyb3Bkb3duT3BlbiA9ICF0aGlzLmlzVXNlckRyb3Bkb3duT3BlbjtcclxuICAgIHRoaXMuZmFkZUluT3V0ID0gdGhpcy5pc1VzZXJEcm9wZG93bk9wZW4gPyAnaW4nIDogJ291dCc7XHJcbiAgfVxyXG5cclxuICBsb2dPdXQoKXtcclxuICAgIHRoaXMuc2VydmljZXMubG9nT3V0KHRoaXMuYmFzZVVybCkuc3Vic2NyaWJlKFxyXG4gICAgICAoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKGRhdGEpIHtcclxuICAgICAgICAgIGlmKGRhdGEubG9hZCl7XHJcbiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5jbGVhcigpO1xyXG4gICAgICAgICAgICB3aW5kb3cub3BlbignLycsICdfc2VsZicpO1xyXG4gICAgICAgICAgfSAgICAgICAgICBcclxuICAgICAgICAgIFxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycik7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnb1RvSG9tZSgpe1xyXG4gICAgaWYodGhpcy5pc01vYmlsZSl7XHJcbiAgICAgIHdpbmRvdy5vcGVuKCcuLi9pbmRleC5odG1sJywgJ19zZWxmJyk7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgd2luZG93Lm9wZW4oJy9ob21lJywgJ19zZWxmJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjaGFuZ2VQYXNzd29yZCgpe1xyXG4gICAgdGhpcy5kaWFsb2cub3BlbihDaGFuZ2VQYXNzd29yZENvbXBvbmVudCwge1xyXG4gICAgICAgICAgZGF0YTogeyBiYXNlVXJsOiB0aGlzLmJhc2VVcmwgfSxcclxuICAgICAgICAgIHBhbmVsQ2xhc3M6ICdjaGFuZ2UtcGFzc3dvcmQtZGlhbG9nJ1xyXG4gICAgICAgIH0pLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XHJcbiAgICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcmludGVyQ29uZigpe1xyXG4gICAgaWYodGhpcy5pc01vYmlsZSl7XHJcbiAgICAgIHdpbmRvdy5vcGVuKCcvIy9wcmludGVyLWNvbmZpZ3VyYXRpb24nLCAnX3NlbGYnKTtcclxuICAgIH1cclxuICB9XHJcbiAgXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImhlYWRlci11c2VyLWNvbnRhaW5lclwiIChjbGljayk9XCJvcGVuVXNlckRyb3Bkb3duSGFuZGxlcigpXCI+XHJcbiAgPHNwYW4gKm5nSWY9XCJ1c2VybmFtZVwiPnt7dXNlcm5hbWVbMF19fTwvc3Bhbj5cclxuICA8aSAqbmdJZj1cIiF1c2VybmFtZVwiIGNsYXNzPVwiYnJhc2lsaWEtdXNlclwiPjwvaT5cclxuPC9kaXY+XHJcblxyXG48ZGl2XHJcbiAgY2xhc3M9XCJ1c2VyLW92ZXJsYXlcIlxyXG4gIFtAZmFkZUluT3V0XT1cImZhZGVJbk91dFwiXHJcbiAgKGNsaWNrKT1cIm9wZW5Vc2VyRHJvcGRvd25IYW5kbGVyKClcIlxyXG4+PC9kaXY+XHJcblxyXG48ZGl2IFtAZmFkZUluT3V0XT1cImZhZGVJbk91dFwiIGNsYXNzPVwiaGVhZGVyLXVzZXItZHJvcGRvd24tY29udGFpbmVyXCI+XHJcbiAgPGRpdiAoY2xpY2spPVwiZ29Ub0hvbWUoKVwiIGNsYXNzPVwiZWRpdC1wcm9maWxlIHVzZXItb3B0aW9uc1wiPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJicmFzaWxpYS1hZ2VuY3lcIj48L3NwYW4+XHJcbiAgICA8c3Bhbj5Ib21lPC9zcGFuPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgKGNsaWNrKT1cImNoYW5nZVBhc3N3b3JkKClcIiBjbGFzcz1cImVkaXQtcHJvZmlsZSB1c2VyLW9wdGlvbnNcIj5cclxuICAgIDxzcGFuIGNsYXNzPVwiYnJhc2lsaWEtdXNlclwiPjwvc3Bhbj5cclxuICAgIDxzcGFuPkNhbWJpYXIgQ29udHJhc2XDsWE8L3NwYW4+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiAqbmdJZj1cImlzTW9iaWxlXCIgKGNsaWNrKT1cInByaW50ZXJDb25mKClcIiBjbGFzcz1cImVkaXQtcHJvZmlsZSB1c2VyLW9wdGlvbnNcIj5cclxuICAgIDxzcGFuIGNsYXNzPVwiYnJhc2lsaWEtcHJpbnRcIj48L3NwYW4+XHJcbiAgICA8c3Bhbj5Db25maWd1cmFjacOzbiBJbXByZXNvcmE8L3NwYW4+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiAoY2xpY2spPVwibG9nT3V0KClcIiBjbGFzcz1cImxvZ291dCB1c2VyLW9wdGlvbnNcIj5cclxuICAgIDxzcGFuIGNsYXNzPVwiYnJhc2lsaWEtb3V0XCI+PC9zcGFuPlxyXG4gICAgPHNwYW4+Q2VycmFyIHNlc2nDs248L3NwYW4+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=