nuxeo-development-framework 4.1.3 → 4.1.5
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/bundles/nuxeo-development-framework.umd.js +511 -433
- package/bundles/nuxeo-development-framework.umd.js.map +1 -1
- package/esm2015/lib/components/dynamic-form/components/department-form/department-form.component.js +28 -29
- package/esm2015/lib/components/dynamic-form/dynamic-form.module.js +13 -10
- package/esm2015/lib/components/file-manger/components/add-to-collection/add-to-collection.component.js +58 -42
- package/esm2015/lib/components/file-manger/components/scan-modal/scan-modal.component.js +99 -66
- package/esm2015/lib/components/permissions/add-permissions-dialog/add-permissions-dialog.component.js +107 -90
- package/esm2015/lib/components/permissions/permissions.module.js +23 -7
- package/esm2015/lib/shared/components/nuxeo-dialog/nuxeo.dialog.js +21 -21
- package/esm2015/lib/shared/services/base/cache-base.service.js +2 -1
- package/fesm2015/nuxeo-development-framework.js +335 -259
- package/fesm2015/nuxeo-development-framework.js.map +1 -1
- package/lib/components/dynamic-form/components/department-form/department-form.component.d.ts +4 -4
- package/lib/components/dynamic-form/dynamic-form.module.d.ts +2 -1
- package/lib/components/file-manger/components/add-to-collection/add-to-collection.component.d.ts +11 -5
- package/lib/components/file-manger/components/scan-modal/scan-modal.component.d.ts +9 -8
- package/lib/components/permissions/add-permissions-dialog/add-permissions-dialog.component.d.ts +8 -6
- package/lib/components/permissions/permissions.module.d.ts +2 -1
- package/lib/shared/components/nuxeo-dialog/nuxeo.dialog.d.ts +5 -5
- package/package.json +1 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { Component, ContentChild, Input, ViewChild } from
|
|
2
|
-
import { MatDialogRef, MAT_DIALOG_DATA } from
|
|
3
|
-
import { isObservable } from
|
|
4
|
-
import { takeUntil } from
|
|
5
|
-
import { BaseComponent } from
|
|
1
|
+
import { Component, ContentChild, Input, ViewChild, } from "@angular/core";
|
|
2
|
+
import { MatDialogRef, MAT_DIALOG_DATA } from "@angular/material/dialog";
|
|
3
|
+
import { isObservable } from "rxjs";
|
|
4
|
+
import { takeUntil } from "rxjs/operators";
|
|
5
|
+
import { BaseComponent } from "../../components/base";
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
import * as i1 from "@angular/material/icon";
|
|
8
8
|
import * as i2 from "../../../directive/rtl/set-dir-rtl.directive";
|
|
@@ -12,9 +12,9 @@ import * as i5 from "@ngx-translate/core";
|
|
|
12
12
|
export class NdfNuxeoDialog extends BaseComponent {
|
|
13
13
|
constructor(injector) {
|
|
14
14
|
super(injector);
|
|
15
|
-
this.dialogTitle =
|
|
16
|
-
this.subTitle =
|
|
17
|
-
this.loaderMode =
|
|
15
|
+
this.dialogTitle = "";
|
|
16
|
+
this.subTitle = "";
|
|
17
|
+
this.loaderMode = "spinner";
|
|
18
18
|
this.dialogBodyTopOffset = 0;
|
|
19
19
|
this.data = injector.get(MAT_DIALOG_DATA, null);
|
|
20
20
|
this.dialogRef = injector.get(MatDialogRef, null);
|
|
@@ -23,14 +23,14 @@ export class NdfNuxeoDialog extends BaseComponent {
|
|
|
23
23
|
this.dialogBodyTopOffset = this.dialogBody.nativeElement.scrollTop;
|
|
24
24
|
if (action) {
|
|
25
25
|
if (!this.isArrowFunction(action)) {
|
|
26
|
-
throw new Error(
|
|
26
|
+
throw new Error("The action should be arrow function");
|
|
27
27
|
}
|
|
28
28
|
this.loading = true;
|
|
29
29
|
//TODO here we should find a way to test if actions instance of DialogActionType
|
|
30
30
|
const result = action(...params);
|
|
31
31
|
if (!isObservable(result)) {
|
|
32
32
|
this.loading = false;
|
|
33
|
-
throw new Error(
|
|
33
|
+
throw new Error("The action you used should return an Observable");
|
|
34
34
|
}
|
|
35
35
|
result.pipe(takeUntil(this.destroy$)).subscribe((value) => {
|
|
36
36
|
this.loading = false;
|
|
@@ -45,10 +45,10 @@ export class NdfNuxeoDialog extends BaseComponent {
|
|
|
45
45
|
}
|
|
46
46
|
isArrowFunction(fn) {
|
|
47
47
|
const strFn = fn.toString();
|
|
48
|
-
const firstIndex = strFn.indexOf(
|
|
49
|
-
const lastIndex = strFn.indexOf(
|
|
50
|
-
const target = strFn.substring(firstIndex, lastIndex).replace(
|
|
51
|
-
return target.includes(
|
|
48
|
+
const firstIndex = strFn.indexOf(")");
|
|
49
|
+
const lastIndex = strFn.indexOf("{") + 1;
|
|
50
|
+
const target = strFn.substring(firstIndex, lastIndex).replace(" ", "");
|
|
51
|
+
return lastIndex == 0 || target.includes("=>");
|
|
52
52
|
}
|
|
53
53
|
onClose() {
|
|
54
54
|
this.dialogRef.close();
|
|
@@ -59,9 +59,9 @@ NdfNuxeoDialog.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version
|
|
|
59
59
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NdfNuxeoDialog, decorators: [{
|
|
60
60
|
type: Component,
|
|
61
61
|
args: [{
|
|
62
|
-
selector:
|
|
63
|
-
templateUrl:
|
|
64
|
-
styleUrls: [
|
|
62
|
+
selector: "ndf-nuxeo-dialog",
|
|
63
|
+
templateUrl: "./nuxeo.dialog.html",
|
|
64
|
+
styleUrls: ["./nuxeo.dialog.scss"],
|
|
65
65
|
}]
|
|
66
66
|
}], ctorParameters: function () { return [{ type: i0.Injector }]; }, propDecorators: { dialogTitle: [{
|
|
67
67
|
type: Input
|
|
@@ -71,12 +71,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
71
71
|
type: Input
|
|
72
72
|
}], contentTemplate: [{
|
|
73
73
|
type: ContentChild,
|
|
74
|
-
args: [
|
|
74
|
+
args: ["contentTemplate"]
|
|
75
75
|
}], actionsTemplate: [{
|
|
76
76
|
type: ContentChild,
|
|
77
|
-
args: [
|
|
77
|
+
args: ["actionsTemplate"]
|
|
78
78
|
}], dialogBody: [{
|
|
79
79
|
type: ViewChild,
|
|
80
|
-
args: [
|
|
80
|
+
args: ["dialogBody"]
|
|
81
81
|
}] } });
|
|
82
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnV4ZW8uZGlhbG9nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvbnV4ZW8tZGlhbG9nL251eGVvLmRpYWxvZy50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL251eGVvLWRpYWxvZy9udXhlby5kaWFsb2cuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBd0IsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRyxPQUFPLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7OztBQVF0RCxNQUFNLE9BQU8sY0FBNEIsU0FBUSxhQUFhO0lBVzdELFlBQVksUUFBa0I7UUFDN0IsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBWFIsZ0JBQVcsR0FBVyxFQUFFLENBQUM7UUFDekIsYUFBUSxHQUFXLEVBQUUsQ0FBQztRQUN0QixlQUFVLEdBQThCLFNBQVMsQ0FBQztRQU8zRCx3QkFBbUIsR0FBVyxDQUFDLENBQUM7UUFHL0IsSUFBSSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCxhQUFhLENBQUMsTUFBeUIsRUFBRSxHQUFHLE1BQWE7UUFDeEQsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQztRQUNuRSxJQUFJLE1BQU0sRUFBRTtZQUNYLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUNsQyxNQUFNLElBQUksS0FBSyxDQUFDLHFDQUFxQyxDQUFDLENBQUM7YUFDdkQ7WUFDRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztZQUNwQixnRkFBZ0Y7WUFDaEYsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUM7WUFDakMsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDMUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7Z0JBQ3JCLE1BQU0sSUFBSSxLQUFLLENBQUMsaURBQWlELENBQUMsQ0FBQzthQUNuRTtZQUNELE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FDOUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDVCxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztnQkFDckIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDN0IsQ0FBQyxFQUNELENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ1AsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDdEIsQ0FBQyxDQUNELENBQUM7U0FDRjthQUFNO1lBQ04sSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUN2QjtJQUNGLENBQUM7SUFFRCxlQUFlLENBQUMsRUFBWTtRQUMzQixNQUFNLEtBQUssR0FBRyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDNUIsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN0QyxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN6QyxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZFLE9BQU8sTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsT0FBTztRQUNOLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDeEIsQ0FBQzs7NEdBdERXLGNBQWM7Z0dBQWQsY0FBYyxzZUNaM0IsNjhFQStEQTs0RkRuRGEsY0FBYztrQkFMMUIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixXQUFXLEVBQUUscUJBQXFCO29CQUNsQyxTQUFTLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztpQkFDbEM7K0ZBRVMsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQzJCLGVBQWU7c0JBQS9DLFlBQVk7dUJBQUMsaUJBQWlCO2dCQUNFLGVBQWU7c0JBQS9DLFlBQVk7dUJBQUMsaUJBQWlCO2dCQUlOLFVBQVU7c0JBQWxDLFNBQVM7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ29udGVudENoaWxkLCBFbGVtZW50UmVmLCBJbmplY3RvciwgSW5wdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2dSZWYsIE1BVF9ESUFMT0dfREFUQSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IGlzT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2Jhc2UnO1xyXG5pbXBvcnQgeyBEaWFsb2dBY3Rpb25UeXBlIH0gZnJvbSAnLi9tb2RlbHMvZGlhbG9nLW9wdGlvbi5tb2RlbCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ25kZi1udXhlby1kaWFsb2cnLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi9udXhlby5kaWFsb2cuaHRtbCcsXHJcblx0c3R5bGVVcmxzOiBbJy4vbnV4ZW8uZGlhbG9nLnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmRmTnV4ZW9EaWFsb2c8VERhdGEgPSBhbnk+IGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XHJcblx0QElucHV0KCkgZGlhbG9nVGl0bGU6IHN0cmluZyA9ICcnO1xyXG5cdEBJbnB1dCgpIHN1YlRpdGxlOiBzdHJpbmcgPSAnJztcclxuXHRASW5wdXQoKSBsb2FkZXJNb2RlOiAnc3Bpbm5lcicgfCAncHJvZ3Jlc3NCYXInID0gJ3NwaW5uZXInO1xyXG5cdEBDb250ZW50Q2hpbGQoJ2NvbnRlbnRUZW1wbGF0ZScpIGNvbnRlbnRUZW1wbGF0ZSE6IGFueTtcclxuXHRAQ29udGVudENoaWxkKCdhY3Rpb25zVGVtcGxhdGUnKSBhY3Rpb25zVGVtcGxhdGUhOiBhbnk7XHJcblxyXG5cdGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPE5kZk51eGVvRGlhbG9nPjtcclxuXHRkYXRhOiBURGF0YTtcclxuXHRAVmlld0NoaWxkKCdkaWFsb2dCb2R5JykgZGlhbG9nQm9keTogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XHJcblx0ZGlhbG9nQm9keVRvcE9mZnNldDogbnVtYmVyID0gMDtcclxuXHRjb25zdHJ1Y3RvcihpbmplY3RvcjogSW5qZWN0b3IpIHtcclxuXHRcdHN1cGVyKGluamVjdG9yKTtcclxuXHRcdHRoaXMuZGF0YSA9IGluamVjdG9yLmdldChNQVRfRElBTE9HX0RBVEEsIG51bGwpO1xyXG5cdFx0dGhpcy5kaWFsb2dSZWYgPSBpbmplY3Rvci5nZXQoTWF0RGlhbG9nUmVmLCBudWxsKTtcclxuXHR9XHJcblxyXG5cdGV4ZWN1dGVBY3Rpb24oYWN0aW9uPzogRGlhbG9nQWN0aW9uVHlwZSwgLi4ucGFyYW1zOiBhbnlbXSk6IHZvaWQge1xyXG5cdFx0dGhpcy5kaWFsb2dCb2R5VG9wT2Zmc2V0ID0gdGhpcy5kaWFsb2dCb2R5Lm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wO1xyXG5cdFx0aWYgKGFjdGlvbikge1xyXG5cdFx0XHRpZiAoIXRoaXMuaXNBcnJvd0Z1bmN0aW9uKGFjdGlvbikpIHtcclxuXHRcdFx0XHR0aHJvdyBuZXcgRXJyb3IoJ1RoZSBhY3Rpb24gc2hvdWxkIGJlIGFycm93IGZ1bmN0aW9uJyk7XHJcblx0XHRcdH1cclxuXHRcdFx0dGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuXHRcdFx0Ly9UT0RPIGhlcmUgd2Ugc2hvdWxkIGZpbmQgYSB3YXkgdG8gdGVzdCBpZiBhY3Rpb25zIGluc3RhbmNlIG9mIERpYWxvZ0FjdGlvblR5cGVcclxuXHRcdFx0Y29uc3QgcmVzdWx0ID0gYWN0aW9uKC4uLnBhcmFtcyk7XHJcblx0XHRcdGlmICghaXNPYnNlcnZhYmxlKHJlc3VsdCkpIHtcclxuXHRcdFx0XHR0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuXHRcdFx0XHR0aHJvdyBuZXcgRXJyb3IoJ1RoZSBhY3Rpb24geW91IHVzZWQgc2hvdWxkIHJldHVybiBhbiBPYnNlcnZhYmxlJyk7XHJcblx0XHRcdH1cclxuXHRcdFx0cmVzdWx0LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoXHJcblx0XHRcdFx0KHZhbHVlKSA9PiB7XHJcblx0XHRcdFx0XHR0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuXHRcdFx0XHRcdHRoaXMuZGlhbG9nUmVmLmNsb3NlKHZhbHVlKTtcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdChlcnIpID0+IHtcclxuXHRcdFx0XHRcdHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0KTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRpc0Fycm93RnVuY3Rpb24oZm46IEZ1bmN0aW9uKTogYm9vbGVhbiB7XHJcblx0XHRjb25zdCBzdHJGbiA9IGZuLnRvU3RyaW5nKCk7XHJcblx0XHRjb25zdCBmaXJzdEluZGV4ID0gc3RyRm4uaW5kZXhPZignKScpO1xyXG5cdFx0Y29uc3QgbGFzdEluZGV4ID0gc3RyRm4uaW5kZXhPZigneycpICsgMTtcclxuXHRcdGNvbnN0IHRhcmdldCA9IHN0ckZuLnN1YnN0cmluZyhmaXJzdEluZGV4LCBsYXN0SW5kZXgpLnJlcGxhY2UoJyAnLCAnJyk7XHJcblx0XHRyZXR1cm4gdGFyZ2V0LmluY2x1ZGVzKCc9PicpO1xyXG5cdH1cclxuXHJcblx0b25DbG9zZSgpOiB2b2lkIHtcclxuXHRcdHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XHJcblx0fVxyXG59XHJcbiIsIjxkaXYgU2V0RGlyUnRsIGNsYXNzPVwibmRmLWRpYWxvZy13cmFwcGVyIGZsZXggZmxleC1jb2wgaC1mdWxsXCI+XHJcblx0PGRpdlxyXG5cdFx0Y2xhc3M9XCJkaWFsb2ctaGVhZGVyIGZsZXggaC0yMCBwLTYganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlciB3LWZ1bGwgYmctdmFwb3IgdGV4dC1ibHVlLW11bnNlbGwgdGV4dC14bCBub3QtaXRhbGljIGZvbnQtYm9sZCBsZWFkaW5nLTdcIlxyXG5cdD5cclxuXHRcdDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sXCI+XHJcblx0XHRcdDxzcGFuPnt7IGRhdGE/LmRpYWxvZ0NvbmZpZz8udGl0bGUgfHwgZGlhbG9nVGl0bGUgfX08L3NwYW4+XHJcblx0XHRcdDxzcGFuIGNsYXNzPVwidGV4dC1iYXNlIGZvbnQtbm9ybWFsXCJcclxuXHRcdFx0XHQ+e3sgZGF0YT8uZGlhbG9nQ29uZmlnPy5zdWJUaXRsZSB8fCBzdWJUaXRsZSB9fTwvc3BhblxyXG5cdFx0XHQ+XHJcblx0XHQ8L2Rpdj5cclxuXHRcdDxidXR0b25cclxuXHRcdFx0Y2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciByb3VuZGVkLWZ1bGwgYmctYW50aS1mbGFzaC13aGl0ZSB3LTEwIGgtMTBcIlxyXG5cdFx0XHQoY2xpY2spPVwiZXhlY3V0ZUFjdGlvbigpXCJcclxuXHRcdFx0bWF0VG9vbHRpcD1cInt7J0JVVFRPTlMuQ0xPU0UnIHwgdHJhbnNsYXRlfX1cIlxyXG5cdFx0PlxyXG5cdFx0XHQ8bWF0LWljb24gY2xhc3M9XCJpY29uLXNpemUtMy41XCIgW3N2Z0ljb25dPVwiJ2ljb25zOmNhbmNlbC1pY29uJ1wiPlxyXG5cdFx0XHQ8L21hdC1pY29uPlxyXG5cdFx0PC9idXR0b24+XHJcblx0PC9kaXY+XHJcblx0PGRpdlxyXG5cdFx0I2RpYWxvZ0JvZHlcclxuXHRcdGNsYXNzPVwiZGlhbG9nLWJvZHkgZmxleCBmbGV4LWNvbCBnYXAteS00IHAtNiBvdmVyZmxvdy15LWF1dG8gcmVsYXRpdmUgei05OVwiXHJcblx0XHRbbmdDbGFzc109XCJ7J292ZXJmbG93LWhpZGRlbic6IGxvYWRpbmd9XCJcclxuXHQ+XHJcblx0XHQ8bmctY29udGFpbmVyXHJcblx0XHRcdCpuZ1RlbXBsYXRlT3V0bGV0PVwiZGF0YT8uZGlhbG9nQ29uZmlnPy5jb250ZW50VGVtcGxhdGUgfHwgY29udGVudFRlbXBsYXRlXCJcclxuXHRcdD48L25nLWNvbnRhaW5lcj5cclxuXHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCJsb2FkaW5nXCI+XHJcblx0XHRcdDxkaXZcclxuXHRcdFx0XHRjbGFzcz1cIm92ZXJsYXkgZmxleCB3LWZ1bGwgaC1mdWxsIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBhYnNvbHV0ZSBsZWZ0LTAgYm90dG9tLTAgcmlnaHQtMCBiZy1ncmF5LTMwMCBvcGFjaXR5LTQwIHotOTk5XCJcclxuXHRcdFx0XHRbbmdTdHlsZV09XCJ7J3RvcCc6IGRpYWxvZ0JvZHlUb3BPZmZzZXQgKyAncHgnfVwiXHJcblx0XHRcdD48L2Rpdj5cclxuXHRcdFx0PGRpdlxyXG5cdFx0XHRcdGNsYXNzPVwib3ZlcmxheSBmbGV4IHctZnVsbCBoLWZ1bGwgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGFic29sdXRlIGxlZnQtMCBib3R0b20tMCByaWdodC0wIHotOTk5OVwiXHJcblx0XHRcdFx0Km5nSWY9XCJsb2FkZXJNb2RlID09PSAnc3Bpbm5lcidcIlxyXG5cdFx0XHRcdFtuZ1N0eWxlXT1cInsndG9wJzogZGlhbG9nQm9keVRvcE9mZnNldCArICdweCd9XCJcclxuXHRcdFx0PlxyXG5cdFx0XHRcdDxtYXQtc3Bpbm5lclxyXG5cdFx0XHRcdFx0W3ZhbHVlXT1cIjkwXCJcclxuXHRcdFx0XHRcdFtzdHJva2VXaWR0aF09XCI0XCJcclxuXHRcdFx0XHRcdG92ZXJsYXk9XCJ0cnVlXCJcclxuXHRcdFx0XHRcdFtkaWFtZXRlcl09XCI0MFwiXHJcblx0XHRcdFx0XHRjb2xvcj1cInByaW1hcnlcIlxyXG5cdFx0XHRcdD5cclxuXHRcdFx0XHQ8L21hdC1zcGlubmVyPlxyXG5cdFx0XHQ8L2Rpdj5cclxuXHRcdFx0PGRpdlxyXG5cdFx0XHRcdGNsYXNzPVwiYmxvY2sgdy1mdWxsIGgtcHggYWJzb2x1dGUgaW5zZXQtMCB6LTk5OTlcIlxyXG5cdFx0XHRcdCpuZ0lmPVwibG9hZGVyTW9kZSA9PT0gJ3Byb2dyZXNzQmFyJ1wiXHJcblx0XHRcdD5cclxuXHRcdFx0XHQ8bWF0LXByb2dyZXNzLWJhciBtb2RlPVwiaW5kZXRlcm1pbmF0ZVwiPjwvbWF0LXByb2dyZXNzLWJhcj5cclxuXHRcdFx0PC9kaXY+XHJcblx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHQ8L2Rpdj5cclxuXHQ8ZGl2IGNsYXNzPVwiZmxleCB3LWZ1bGwganVzdGlmeS1lbmQgcC02IHB0LTAgZ2FwLXgtNFwiPlxyXG5cdFx0PGJ1dHRvbiBjbGFzcz1cImNhbmNlbGF0aW9uLWJ1dHRvblwiIChjbGljayk9XCJleGVjdXRlQWN0aW9uKClcIj5cclxuXHRcdFx0e3tcIkJVVFRPTlMuQ0FOQ0VMXCIgfCB0cmFuc2xhdGV9fVxyXG5cdFx0PC9idXR0b24+XHJcblx0XHQ8bmctY29udGFpbmVyXHJcblx0XHRcdCpuZ1RlbXBsYXRlT3V0bGV0PVwiKGRhdGE/LmRpYWxvZ0NvbmZpZz8uYWN0aW9uc1RlbXBsYXRlIHx8IGFjdGlvbnNUZW1wbGF0ZSk7IGNvbnRleHQ6IHsgZGlhbG9nOiB0aGlzIH1cIlxyXG5cdFx0PjwvbmctY29udGFpbmVyPlxyXG5cdDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnV4ZW8uZGlhbG9nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvbnV4ZW8tZGlhbG9nL251eGVvLmRpYWxvZy50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL251eGVvLWRpYWxvZy9udXhlby5kaWFsb2cuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFHWixLQUFLLEVBQ0wsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7O0FBUXRELE1BQU0sT0FBTyxjQUE0QixTQUFRLGFBQWE7SUFXNUQsWUFBWSxRQUFrQjtRQUM1QixLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFYVCxnQkFBVyxHQUFXLEVBQUUsQ0FBQztRQUN6QixhQUFRLEdBQVcsRUFBRSxDQUFDO1FBQ3RCLGVBQVUsR0FBOEIsU0FBUyxDQUFDO1FBTzNELHdCQUFtQixHQUFXLENBQUMsQ0FBQztRQUc5QixJQUFJLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVELGFBQWEsQ0FBQyxNQUF5QixFQUFFLEdBQUcsTUFBYTtRQUN2RCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDO1FBQ25FLElBQUksTUFBTSxFQUFFO1lBQ1YsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQ2pDLE1BQU0sSUFBSSxLQUFLLENBQUMscUNBQXFDLENBQUMsQ0FBQzthQUN4RDtZQUNELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1lBQ3BCLGdGQUFnRjtZQUNoRixNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQztZQUNqQyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUN6QixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztnQkFDckIsTUFBTSxJQUFJLEtBQUssQ0FBQyxpREFBaUQsQ0FBQyxDQUFDO2FBQ3BFO1lBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUM3QyxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUNSLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO2dCQUNyQixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM5QixDQUFDLEVBQ0QsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDTixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUN2QixDQUFDLENBQ0YsQ0FBQztTQUNIO2FBQU07WUFDTCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQ3hCO0lBQ0gsQ0FBQztJQUVELGVBQWUsQ0FBQyxFQUFZO1FBQzFCLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUM1QixNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3RDLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pDLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFLFNBQVMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDdkUsT0FBTyxTQUFTLElBQUksQ0FBQyxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3pCLENBQUM7OzRHQXREVSxjQUFjO2dHQUFkLGNBQWMsc2VDbkIzQiw2OEVBK0RBOzRGRDVDYSxjQUFjO2tCQUwxQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLFdBQVcsRUFBRSxxQkFBcUI7b0JBQ2xDLFNBQVMsRUFBRSxDQUFDLHFCQUFxQixDQUFDO2lCQUNuQzsrRkFFVSxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDMkIsZUFBZTtzQkFBL0MsWUFBWTt1QkFBQyxpQkFBaUI7Z0JBQ0UsZUFBZTtzQkFBL0MsWUFBWTt1QkFBQyxpQkFBaUI7Z0JBSU4sVUFBVTtzQkFBbEMsU0FBUzt1QkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgQ29udGVudENoaWxkLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgSW5qZWN0b3IsXHJcbiAgSW5wdXQsXHJcbiAgVmlld0NoaWxkLFxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IE1hdERpYWxvZ1JlZiwgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2RpYWxvZ1wiO1xyXG5pbXBvcnQgeyBpc09ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gXCIuLi8uLi9jb21wb25lbnRzL2Jhc2VcIjtcclxuaW1wb3J0IHsgRGlhbG9nQWN0aW9uVHlwZSB9IGZyb20gXCIuL21vZGVscy9kaWFsb2ctb3B0aW9uLm1vZGVsXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJuZGYtbnV4ZW8tZGlhbG9nXCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi9udXhlby5kaWFsb2cuaHRtbFwiLFxyXG4gIHN0eWxlVXJsczogW1wiLi9udXhlby5kaWFsb2cuc2Nzc1wiXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE5kZk51eGVvRGlhbG9nPFREYXRhID0gYW55PiBleHRlbmRzIEJhc2VDb21wb25lbnQge1xyXG4gIEBJbnB1dCgpIGRpYWxvZ1RpdGxlOiBzdHJpbmcgPSBcIlwiO1xyXG4gIEBJbnB1dCgpIHN1YlRpdGxlOiBzdHJpbmcgPSBcIlwiO1xyXG4gIEBJbnB1dCgpIGxvYWRlck1vZGU6IFwic3Bpbm5lclwiIHwgXCJwcm9ncmVzc0JhclwiID0gXCJzcGlubmVyXCI7XHJcbiAgQENvbnRlbnRDaGlsZChcImNvbnRlbnRUZW1wbGF0ZVwiKSBjb250ZW50VGVtcGxhdGUhOiBhbnk7XHJcbiAgQENvbnRlbnRDaGlsZChcImFjdGlvbnNUZW1wbGF0ZVwiKSBhY3Rpb25zVGVtcGxhdGUhOiBhbnk7XHJcblxyXG4gIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPE5kZk51eGVvRGlhbG9nPjtcclxuICBkYXRhOiBURGF0YTtcclxuICBAVmlld0NoaWxkKFwiZGlhbG9nQm9keVwiKSBkaWFsb2dCb2R5OiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcclxuICBkaWFsb2dCb2R5VG9wT2Zmc2V0OiBudW1iZXIgPSAwO1xyXG4gIGNvbnN0cnVjdG9yKGluamVjdG9yOiBJbmplY3Rvcikge1xyXG4gICAgc3VwZXIoaW5qZWN0b3IpO1xyXG4gICAgdGhpcy5kYXRhID0gaW5qZWN0b3IuZ2V0KE1BVF9ESUFMT0dfREFUQSwgbnVsbCk7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZiA9IGluamVjdG9yLmdldChNYXREaWFsb2dSZWYsIG51bGwpO1xyXG4gIH1cclxuXHJcbiAgZXhlY3V0ZUFjdGlvbihhY3Rpb24/OiBEaWFsb2dBY3Rpb25UeXBlLCAuLi5wYXJhbXM6IGFueVtdKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpYWxvZ0JvZHlUb3BPZmZzZXQgPSB0aGlzLmRpYWxvZ0JvZHkubmF0aXZlRWxlbWVudC5zY3JvbGxUb3A7XHJcbiAgICBpZiAoYWN0aW9uKSB7XHJcbiAgICAgIGlmICghdGhpcy5pc0Fycm93RnVuY3Rpb24oYWN0aW9uKSkge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIlRoZSBhY3Rpb24gc2hvdWxkIGJlIGFycm93IGZ1bmN0aW9uXCIpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICAgIC8vVE9ETyBoZXJlIHdlIHNob3VsZCBmaW5kIGEgd2F5IHRvIHRlc3QgaWYgYWN0aW9ucyBpbnN0YW5jZSBvZiBEaWFsb2dBY3Rpb25UeXBlXHJcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGFjdGlvbiguLi5wYXJhbXMpO1xyXG4gICAgICBpZiAoIWlzT2JzZXJ2YWJsZShyZXN1bHQpKSB7XHJcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVGhlIGFjdGlvbiB5b3UgdXNlZCBzaG91bGQgcmV0dXJuIGFuIE9ic2VydmFibGVcIik7XHJcbiAgICAgIH1cclxuICAgICAgcmVzdWx0LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoXHJcbiAgICAgICAgKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHZhbHVlKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIChlcnIpID0+IHtcclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpc0Fycm93RnVuY3Rpb24oZm46IEZ1bmN0aW9uKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBzdHJGbiA9IGZuLnRvU3RyaW5nKCk7XHJcbiAgICBjb25zdCBmaXJzdEluZGV4ID0gc3RyRm4uaW5kZXhPZihcIilcIik7XHJcbiAgICBjb25zdCBsYXN0SW5kZXggPSBzdHJGbi5pbmRleE9mKFwie1wiKSArIDE7XHJcbiAgICBjb25zdCB0YXJnZXQgPSBzdHJGbi5zdWJzdHJpbmcoZmlyc3RJbmRleCwgbGFzdEluZGV4KS5yZXBsYWNlKFwiIFwiLCBcIlwiKTtcclxuICAgIHJldHVybiBsYXN0SW5kZXggPT0gMCB8fCB0YXJnZXQuaW5jbHVkZXMoXCI9PlwiKTtcclxuICB9XHJcblxyXG4gIG9uQ2xvc2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IFNldERpclJ0bCBjbGFzcz1cIm5kZi1kaWFsb2ctd3JhcHBlciBmbGV4IGZsZXgtY29sIGgtZnVsbFwiPlxyXG5cdDxkaXZcclxuXHRcdGNsYXNzPVwiZGlhbG9nLWhlYWRlciBmbGV4IGgtMjAgcC02IGp1c3RpZnktYmV0d2VlbiBpdGVtcy1jZW50ZXIgdy1mdWxsIGJnLXZhcG9yIHRleHQtYmx1ZS1tdW5zZWxsIHRleHQteGwgbm90LWl0YWxpYyBmb250LWJvbGQgbGVhZGluZy03XCJcclxuXHQ+XHJcblx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbFwiPlxyXG5cdFx0XHQ8c3Bhbj57eyBkYXRhPy5kaWFsb2dDb25maWc/LnRpdGxlIHx8IGRpYWxvZ1RpdGxlIH19PC9zcGFuPlxyXG5cdFx0XHQ8c3BhbiBjbGFzcz1cInRleHQtYmFzZSBmb250LW5vcm1hbFwiXHJcblx0XHRcdFx0Pnt7IGRhdGE/LmRpYWxvZ0NvbmZpZz8uc3ViVGl0bGUgfHwgc3ViVGl0bGUgfX08L3NwYW5cclxuXHRcdFx0PlxyXG5cdFx0PC9kaXY+XHJcblx0XHQ8YnV0dG9uXHJcblx0XHRcdGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcm91bmRlZC1mdWxsIGJnLWFudGktZmxhc2gtd2hpdGUgdy0xMCBoLTEwXCJcclxuXHRcdFx0KGNsaWNrKT1cImV4ZWN1dGVBY3Rpb24oKVwiXHJcblx0XHRcdG1hdFRvb2x0aXA9XCJ7eydCVVRUT05TLkNMT1NFJyB8IHRyYW5zbGF0ZX19XCJcclxuXHRcdD5cclxuXHRcdFx0PG1hdC1pY29uIGNsYXNzPVwiaWNvbi1zaXplLTMuNVwiIFtzdmdJY29uXT1cIidpY29uczpjYW5jZWwtaWNvbidcIj5cclxuXHRcdFx0PC9tYXQtaWNvbj5cclxuXHRcdDwvYnV0dG9uPlxyXG5cdDwvZGl2PlxyXG5cdDxkaXZcclxuXHRcdCNkaWFsb2dCb2R5XHJcblx0XHRjbGFzcz1cImRpYWxvZy1ib2R5IGZsZXggZmxleC1jb2wgZ2FwLXktNCBwLTYgb3ZlcmZsb3cteS1hdXRvIHJlbGF0aXZlIHotOTlcIlxyXG5cdFx0W25nQ2xhc3NdPVwieydvdmVyZmxvdy1oaWRkZW4nOiBsb2FkaW5nfVwiXHJcblx0PlxyXG5cdFx0PG5nLWNvbnRhaW5lclxyXG5cdFx0XHQqbmdUZW1wbGF0ZU91dGxldD1cImRhdGE/LmRpYWxvZ0NvbmZpZz8uY29udGVudFRlbXBsYXRlIHx8IGNvbnRlbnRUZW1wbGF0ZVwiXHJcblx0XHQ+PC9uZy1jb250YWluZXI+XHJcblx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwibG9hZGluZ1wiPlxyXG5cdFx0XHQ8ZGl2XHJcblx0XHRcdFx0Y2xhc3M9XCJvdmVybGF5IGZsZXggdy1mdWxsIGgtZnVsbCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgYWJzb2x1dGUgbGVmdC0wIGJvdHRvbS0wIHJpZ2h0LTAgYmctZ3JheS0zMDAgb3BhY2l0eS00MCB6LTk5OVwiXHJcblx0XHRcdFx0W25nU3R5bGVdPVwieyd0b3AnOiBkaWFsb2dCb2R5VG9wT2Zmc2V0ICsgJ3B4J31cIlxyXG5cdFx0XHQ+PC9kaXY+XHJcblx0XHRcdDxkaXZcclxuXHRcdFx0XHRjbGFzcz1cIm92ZXJsYXkgZmxleCB3LWZ1bGwgaC1mdWxsIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBhYnNvbHV0ZSBsZWZ0LTAgYm90dG9tLTAgcmlnaHQtMCB6LTk5OTlcIlxyXG5cdFx0XHRcdCpuZ0lmPVwibG9hZGVyTW9kZSA9PT0gJ3NwaW5uZXInXCJcclxuXHRcdFx0XHRbbmdTdHlsZV09XCJ7J3RvcCc6IGRpYWxvZ0JvZHlUb3BPZmZzZXQgKyAncHgnfVwiXHJcblx0XHRcdD5cclxuXHRcdFx0XHQ8bWF0LXNwaW5uZXJcclxuXHRcdFx0XHRcdFt2YWx1ZV09XCI5MFwiXHJcblx0XHRcdFx0XHRbc3Ryb2tlV2lkdGhdPVwiNFwiXHJcblx0XHRcdFx0XHRvdmVybGF5PVwidHJ1ZVwiXHJcblx0XHRcdFx0XHRbZGlhbWV0ZXJdPVwiNDBcIlxyXG5cdFx0XHRcdFx0Y29sb3I9XCJwcmltYXJ5XCJcclxuXHRcdFx0XHQ+XHJcblx0XHRcdFx0PC9tYXQtc3Bpbm5lcj5cclxuXHRcdFx0PC9kaXY+XHJcblx0XHRcdDxkaXZcclxuXHRcdFx0XHRjbGFzcz1cImJsb2NrIHctZnVsbCBoLXB4IGFic29sdXRlIGluc2V0LTAgei05OTk5XCJcclxuXHRcdFx0XHQqbmdJZj1cImxvYWRlck1vZGUgPT09ICdwcm9ncmVzc0JhcidcIlxyXG5cdFx0XHQ+XHJcblx0XHRcdFx0PG1hdC1wcm9ncmVzcy1iYXIgbW9kZT1cImluZGV0ZXJtaW5hdGVcIj48L21hdC1wcm9ncmVzcy1iYXI+XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0PC9uZy1jb250YWluZXI+XHJcblx0PC9kaXY+XHJcblx0PGRpdiBjbGFzcz1cImZsZXggdy1mdWxsIGp1c3RpZnktZW5kIHAtNiBwdC0wIGdhcC14LTRcIj5cclxuXHRcdDxidXR0b24gY2xhc3M9XCJjYW5jZWxhdGlvbi1idXR0b25cIiAoY2xpY2spPVwiZXhlY3V0ZUFjdGlvbigpXCI+XHJcblx0XHRcdHt7XCJCVVRUT05TLkNBTkNFTFwiIHwgdHJhbnNsYXRlfX1cclxuXHRcdDwvYnV0dG9uPlxyXG5cdFx0PG5nLWNvbnRhaW5lclxyXG5cdFx0XHQqbmdUZW1wbGF0ZU91dGxldD1cIihkYXRhPy5kaWFsb2dDb25maWc/LmFjdGlvbnNUZW1wbGF0ZSB8fCBhY3Rpb25zVGVtcGxhdGUpOyBjb250ZXh0OiB7IGRpYWxvZzogdGhpcyB9XCJcclxuXHRcdD48L25nLWNvbnRhaW5lcj5cclxuXHQ8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -105,6 +105,7 @@ _CacheBaseService_fetchedItems = new WeakMap(), _CacheBaseService_instances = ne
|
|
|
105
105
|
resultsCount: _fetchedItems[options.resultsCount]
|
|
106
106
|
}, options);
|
|
107
107
|
}
|
|
108
|
+
__classPrivateFieldGet(this, _CacheBaseService_fetchedItems, "f")[options.cacheKey] = _fetchedItems;
|
|
108
109
|
return _fetchedItems;
|
|
109
110
|
}), map((res) => {
|
|
110
111
|
const result = _cloneDeep({
|
|
@@ -292,4 +293,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
292
293
|
providedIn: 'root'
|
|
293
294
|
}]
|
|
294
295
|
}], ctorParameters: function () { return [{ type: i1.UserPreferencesService }, { type: i2.UtilityService }]; } });
|
|
295
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUtYmFzZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvc2hhcmVkL3NlcnZpY2VzL2Jhc2UvY2FjaGUtYmFzZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsS0FBSyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsRCxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUQsT0FBTyxLQUFLLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFDakMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXBELE9BQU8sS0FBSyxNQUFNLGFBQWEsQ0FBQztBQUNoQyxPQUFPLE9BQU8sTUFBTSxlQUFlLENBQUM7QUFDcEMsT0FBTyxVQUFVLE1BQU0sa0JBQWtCLENBQUM7QUFDMUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRzlDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7OztBQUszRCxNQUFNLE9BQU8sZ0JBQWdCO0lBRzVCLFlBQ1Msc0JBQThDLEVBQzlDLGNBQThCO1FBRDlCLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFDOUMsbUJBQWMsR0FBZCxjQUFjLENBQWdCOztRQUp2Qyx5Q0FBd0MsSUFBSSxHQUFHLEVBQXFCLEVBQUM7UUFNcEUsdUJBQUEsSUFBSSxvRUFBZSxNQUFuQixJQUFJLENBQWlCLENBQUM7SUFDdkIsQ0FBQztJQUVELE9BQU8sQ0FBQyxRQUFnQjtRQUN2QixPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLENB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QkFBcUIsQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUNwRCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUNyQixDQUFDO0tBQ0Y7QUFDRixDQUFDOzhHQTVXVyxnQkFBZ0I7a0hBQWhCLGdCQUFnQixjQUZoQixNQUFNOzRGQUVOLGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDWCxVQUFVLEVBQUUsTUFBTTtpQkFDbEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEVNUFRZLCBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGV4cGFuZCwgbGFzdCwgbWFwLCByZXRyeSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0ICogYXMgbW9tZW50IGZyb20gJ21vbWVudCc7XHJcbmltcG9ydCB7IERFRkFVTFRfQ0FDSEVfT1BUSU9OUyB9IGZyb20gJy4vY29uc3RhbnRzJztcclxuaW1wb3J0IHsgQmFzZUNhY2hlT3B0aW9ucywgQ2FjaGVJbmZvIH0gZnJvbSAnLi9tb2RlbHMnO1xyXG5pbXBvcnQgX29taXQgZnJvbSAnbG9kYXNoL29taXQnO1xyXG5pbXBvcnQgX2Fzc2lnbiBmcm9tICdsb2Rhc2gvYXNzaWduJztcclxuaW1wb3J0IF9jbG9uZURlZXAgZnJvbSAnbG9kYXNoL2Nsb25lRGVlcCc7XHJcbmltcG9ydCB7IERFRkFVTFRfVFRMX0NPTkZJRyB9IGZyb20gJy4vY29uZmlnJztcclxuaW1wb3J0IHsgVXNlclByZWZlcmVuY2VzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvc2VydmljZXMvdXNlci91c2VyLXByZWZlcmVuY2VzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBVdGlsaXR5U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvdXRpbGl0aWVzL3V0aWxpdHkuc2VydmljZSc7XHJcbmltcG9ydCB7IEVudk1hbmFnZXIgfSBmcm9tICcuLi8uLi8uLi9jb3JlL2Vudi9lbnYtbWFuYWdlcic7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcblx0cHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDYWNoZUJhc2VTZXJ2aWNlIHtcclxuXHQjZmV0Y2hlZEl0ZW1zOiBNYXA8c3RyaW5nLCBDYWNoZUluZm8+ID0gbmV3IE1hcDxzdHJpbmcsIENhY2hlSW5mbz4oKTtcclxuXHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRwcml2YXRlIHVzZXJQcmVmZXJlbmNlc1NlcnZpY2U6IFVzZXJQcmVmZXJlbmNlc1NlcnZpY2UsXHJcblx0XHRwcml2YXRlIHV0aWxpdHlTZXJ2aWNlOiBVdGlsaXR5U2VydmljZVxyXG5cdCkge1xyXG5cdFx0dGhpcy4jcHJlcGFyZUNvbmZpZygpO1xyXG5cdH1cclxuXHJcblx0aGFzSXRlbShjYWNoZUtleTogc3RyaW5nKTogYm9vbGVhbiB7XHJcblx0XHRyZXR1cm4gdGhpcy51c2VyUHJlZmVyZW5jZXNTZXJ2aWNlLmhhc0l0ZW0oXHJcblx0XHRcdGAke0RFRkFVTFRfQ0FDSEVfT1BUSU9OUy5QUkVGSVh9JHtjYWNoZUtleX1gXHJcblx0XHQpO1xyXG5cdH1cclxuXHRjbGVhckFsbCh1c2VyTmFtZTogc3RyaW5nKSB7XHJcblx0XHR0aGlzLiNjbGVhcih1c2VyTmFtZSk7XHJcblx0fVxyXG5cdHZhbGlkYXRlVFRMKHVzZXJOYW1lOiBzdHJpbmcpIHtcclxuXHRcdGlmICghREVGQVVMVF9UVExfQ09ORklHLkFVVE9fQ0hFQ0sgfHwgIXVzZXJOYW1lKSByZXR1cm47XHJcblxyXG5cdFx0Y29uc3QgcHJlZml4ID0gYCR7dXNlck5hbWV9X18ke0RFRkFVTFRfQ0FDSEVfT1BUSU9OUy5QUkVGSVh9YDtcclxuXHRcdE9iamVjdC5rZXlzKHdpbmRvdy5sb2NhbFN0b3JhZ2UpXHJcblx0XHRcdC5maWx0ZXIoKHEpID0+IHEuc3RhcnRzV2l0aChwcmVmaXgpKVxyXG5cdFx0XHQuZmlsdGVyKChrZXkpID0+IHtcclxuXHRcdFx0XHRjb25zdCBvcHRpb25zOiBCYXNlQ2FjaGVPcHRpb25zID0ge1xyXG5cdFx0XHRcdFx0Y2FjaGVLZXk6IGtleS5yZXBsYWNlKHByZWZpeCwgJycpLFxyXG5cdFx0XHRcdFx0dXNlck5hbWU6IHVzZXJOYW1lLFxyXG5cdFx0XHRcdFx0cmVxdWVzdDogREVGQVVMVF9DQUNIRV9PUFRJT05TLlJFUVVFU1QsXHJcblx0XHRcdFx0XHRwcmVwYXJlRGF0YUJlZm9yZUNhY2hpbmc6IERFRkFVTFRfQ0FDSEVfT1BUSU9OUy5QUkVQQVJFX0RBVEFcclxuXHRcdFx0XHR9O1xyXG5cdFx0XHRcdGNvbnN0IGZpcnN0RmV0Y2hpbmdEYXRlID0gdGhpcy4jZ2V0SXRlbShvcHRpb25zKT8uZmlyc3RGZXRjaGluZ0RhdGU7XHJcblx0XHRcdFx0aWYgKCFmaXJzdEZldGNoaW5nRGF0ZSkgcmV0dXJuO1xyXG5cclxuXHRcdFx0XHRjb25zdCBtb21lbnREYXRlMSA9IG1vbWVudChuZXcgRGF0ZShmaXJzdEZldGNoaW5nRGF0ZSkpO1xyXG5cdFx0XHRcdGNvbnN0IG1vbWVudERhdGUyID0gbW9tZW50KG5ldyBEYXRlKCkpO1xyXG5cdFx0XHRcdGNvbnN0IGRpZmZlcmVuY2UgPSBtb21lbnREYXRlMi5kaWZmKFxyXG5cdFx0XHRcdFx0bW9tZW50RGF0ZTEsXHJcblx0XHRcdFx0XHRERUZBVUxUX1RUTF9DT05GSUcuVU5JVFxyXG5cdFx0XHRcdCk7XHJcblx0XHRcdFx0cmV0dXJuIGRpZmZlcmVuY2UgPj0gREVGQVVMVF9UVExfQ09ORklHLlRUTDtcclxuXHRcdFx0fSlcclxuXHRcdFx0LmZvckVhY2goKGtleSkgPT4ge1xyXG5cdFx0XHRcdHdpbmRvdy5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShrZXkpO1xyXG5cdFx0XHR9KTtcclxuXHR9XHJcblx0c3RhcnRGZXRjaGluZ0l0ZW1zKG9wdGlvbnM6IEJhc2VDYWNoZU9wdGlvbnMpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG5cdFx0dGhpcy4jdmFsaWRhdGVUVExGb3JLZXkob3B0aW9ucyk7XHJcblxyXG5cdFx0aWYgKHRoaXMuI2ZldGNoZWRJdGVtc1tvcHRpb25zLmNhY2hlS2V5XT8uZmV0Y2hpbmdJdGVtc0Zyb21UaGVTZXJ2ZXIpIHtcclxuXHRcdFx0cmV0dXJuIHRoaXMuI2ZldGNoZWRJdGVtc1tcclxuXHRcdFx0XHRvcHRpb25zLmNhY2hlS2V5XHJcblx0XHRcdF0ub25GaW5pc2hGZXRjaGluZy5hc09ic2VydmFibGUoKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHJldHVybiB0aGlzLiNoYW5kbGVDYWNoZUl0ZW1zKG9wdGlvbnMpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHQjaGFuZGxlQ2FjaGVJdGVtcyhvcHRpb25zOiBCYXNlQ2FjaGVPcHRpb25zKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuXHRcdGxldCBvYnNlcnZhYmxlOiBPYnNlcnZhYmxlPGFueT47XHJcblx0XHR0aGlzLiNwcmVwYXJlT3B0aW9ucyhvcHRpb25zKTtcclxuXHJcblx0XHRjb25zdCBjYWNoZWRJdGVtID0gdGhpcy4jZ2V0SXRlbShvcHRpb25zKTtcclxuXHJcblx0XHRpZiAoY2FjaGVkSXRlbSkge1xyXG5cdFx0XHR0aGlzLiNzZXRJdGVtSW5NYXAob3B0aW9ucy5jYWNoZUtleSwge1xyXG5cdFx0XHRcdC4uLmNhY2hlZEl0ZW0sXHJcblx0XHRcdFx0ZmV0Y2hpbmdJdGVtc0Zyb21UaGVTZXJ2ZXI6IGZhbHNlLFxyXG5cdFx0XHRcdG9uRmluaXNoRmV0Y2hpbmc6IG5ldyBTdWJqZWN0PENhY2hlSW5mbz4oKSxcclxuXHRcdFx0XHRyZXF1ZXN0OiBvcHRpb25zLnJlcXVlc3RcclxuXHRcdFx0fSk7XHJcblxyXG5cdFx0XHRjb25zdCBwYXJhbXMgPSB7XHJcblx0XHRcdFx0W29wdGlvbnMucGFnZUtleV06IDAsXHJcblx0XHRcdFx0W29wdGlvbnMubWluQ29tcGFyZURhdGVLZXldOiB0aGlzLiNhZGQxU2Vjb25kVG9Nb2RpZmllZERhdGUoXHJcblx0XHRcdFx0XHRuZXcgRGF0ZSh0aGlzLiNmZXRjaGVkSXRlbXNbb3B0aW9ucy5jYWNoZUtleV0ubGFzdE1vZGlmaWVkRGF0ZSlcclxuXHRcdFx0XHQpLnRvSVNPU3RyaW5nKClcclxuXHRcdFx0fTtcclxuXHRcdFx0dGhpcy4jZmV0Y2hlZEl0ZW1zW29wdGlvbnMuY2FjaGVLZXldLnBhcmFtcyA9IHBhcmFtcztcclxuXHRcdFx0b2JzZXJ2YWJsZSA9IG9wdGlvbnMucmVxdWVzdChwYXJhbXMpO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhpcy4jc2V0SXRlbUluTWFwKG9wdGlvbnMuY2FjaGVLZXkpO1xyXG5cdFx0XHR0aGlzLiNmZXRjaGVkSXRlbXNbb3B0aW9ucy5jYWNoZUtleV0ucmVxdWVzdCA9IG9wdGlvbnMucmVxdWVzdDtcclxuXHRcdFx0dGhpcy4jZmV0Y2hlZEl0ZW1zW29wdGlvbnMuY2FjaGVLZXldLmZpcnN0RmV0Y2hpbmdEYXRlID1cclxuXHRcdFx0XHRuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCk7XHJcblx0XHRcdG9ic2VydmFibGUgPSBvcHRpb25zLnJlcXVlc3QoeyBbb3B0aW9ucy5wYWdlS2V5XTogMCB9KTtcclxuXHRcdH1cclxuXHJcblx0XHR0aGlzLiNmZXRjaGVkSXRlbXNbb3B0aW9ucy5jYWNoZUtleV0uZmV0Y2hpbmdJdGVtc0Zyb21UaGVTZXJ2ZXIgPSB0cnVlO1xyXG5cdFx0cmV0dXJuIG9ic2VydmFibGUucGlwZShcclxuXHRcdFx0cmV0cnkoREVGQVVMVF9UVExfQ09ORklHLlJFVFJZKSxcclxuXHRcdFx0ZXhwYW5kKChyZXN1bHRzOiBhbnkpID0+IHtcclxuXHRcdFx0XHRsZXQgYW5vdGhlckNhbGw6IE9ic2VydmFibGU8YW55PiB8IG51bGwgPSBudWxsO1xyXG5cdFx0XHRcdGlmIChyZXN1bHRzICYmIHJlc3VsdHNbb3B0aW9ucy5tYXBwZWREYXRhS2V5XT8ubGVuZ3RoKSB7XHJcblx0XHRcdFx0XHRhbm90aGVyQ2FsbCA9IHRoaXMuI2hhbmRsZUZldGNoZWRJdGVtcyhvcHRpb25zLCByZXN1bHRzKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0cmV0dXJuIGFub3RoZXJDYWxsID8gYW5vdGhlckNhbGwgOiBFTVBUWTtcclxuXHRcdFx0fSksXHJcblx0XHRcdGxhc3QoKSxcclxuXHRcdFx0bWFwKChfKSA9PiB7XHJcblx0XHRcdFx0bGV0IF9mZXRjaGVkSXRlbXMgPSB0aGlzLiNmZXRjaGVkSXRlbXNbb3B0aW9ucy5jYWNoZUtleV0gYXMgQ2FjaGVJbmZvO1xyXG5cdFx0XHRcdF9mZXRjaGVkSXRlbXMuZmV0Y2hpbmdJdGVtc0Zyb21UaGVTZXJ2ZXIgPSBmYWxzZTtcclxuXHRcdFx0XHRpZiAoX2ZldGNoZWRJdGVtcy5kYXRhPy5sZW5ndGgpIHtcclxuXHRcdFx0XHRcdF9mZXRjaGVkSXRlbXMubGFzdE1vZGlmaWVkRGF0ZSA9IHRoaXMuI2ZpbmRMYXJnZXN0RGF0ZShcclxuXHRcdFx0XHRcdFx0X2ZldGNoZWRJdGVtcy5kYXRhLFxyXG5cdFx0XHRcdFx0XHRvcHRpb25zLmNoaWxkcmVuUGF0aCxcclxuXHRcdFx0XHRcdFx0b3B0aW9ucy5sYXN0TW9kaWZpZWREYXRlUGF0aFxyXG5cdFx0XHRcdFx0KTtcclxuXHRcdFx0XHRcdHRoaXMuI3NldEl0ZW0oXHJcblx0XHRcdFx0XHRcdHtcclxuXHRcdFx0XHRcdFx0XHRkYXRhOiBfZmV0Y2hlZEl0ZW1zLmRhdGEsXHJcblx0XHRcdFx0XHRcdFx0bGFzdE1vZGlmaWVkRGF0ZTogX2ZldGNoZWRJdGVtcy5sYXN0TW9kaWZpZWREYXRlLFxyXG5cdFx0XHRcdFx0XHRcdGZpcnN0RmV0Y2hpbmdEYXRlOiBfZmV0Y2hlZEl0ZW1zLmZpcnN0RmV0Y2hpbmdEYXRlLFxyXG5cdFx0XHRcdFx0XHRcdHJlc3VsdHNDb3VudDogX2ZldGNoZWRJdGVtc1tvcHRpb25zLnJlc3VsdHNDb3VudF1cclxuXHRcdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdFx0b3B0aW9uc1xyXG5cdFx0XHRcdFx0KTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0cmV0dXJuIF9mZXRjaGVkSXRlbXM7XHJcblx0XHRcdH0pLFxyXG5cdFx0XHRtYXAoKHJlcykgPT4ge1xyXG5cdFx0XHRcdGNvbnN0IHJlc3VsdCA9IF9jbG9uZURlZXAoe1xyXG5cdFx0XHRcdFx0W29wdGlvbnMubWFwcGVkRGF0YUtleV06IHJlcy5kYXRhLFxyXG5cdFx0XHRcdFx0W29wdGlvbnMubGFzdE1vZGlmaWVkRGF0ZUtleV06IHJlcy5sYXN0TW9kaWZpZWREYXRlLFxyXG5cdFx0XHRcdFx0W29wdGlvbnMucmVzdWx0c0NvdW50XTogcmVzW29wdGlvbnMucmVzdWx0c0NvdW50XVxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHRcdHJlcy5vbkZpbmlzaEZldGNoaW5nLm5leHQocmVzdWx0KTtcclxuXHRcdFx0XHRyZXR1cm4gcmVzdWx0O1xyXG5cdFx0XHR9KVxyXG5cdFx0KTtcclxuXHR9XHJcblx0I2ZpbmROb2RlKFxyXG5cdFx0aXRlbXM6IGFueVtdLFxyXG5cdFx0dW5pcXVlQ29tcGFyZUtleTogc3RyaW5nLFxyXG5cdFx0Y2hpbGRyZW5QYXRoOiBzdHJpbmcsXHJcblx0XHR2YWx1ZTogYW55XHJcblx0KSB7XHJcblx0XHRmb3IgKGNvbnN0IG5vZGUgb2YgaXRlbXMpIHtcclxuXHRcdFx0aWYgKG5vZGVbdW5pcXVlQ29tcGFyZUtleV0gPT09IHZhbHVlKSB7XHJcblx0XHRcdFx0cmV0dXJuIG5vZGU7XHJcblx0XHRcdH1cclxuXHRcdFx0Y29uc3QgY2hpbGRyZW4gPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFZhbHVlKG5vZGUsIGNoaWxkcmVuUGF0aCk7XHJcblx0XHRcdGlmIChjaGlsZHJlbikge1xyXG5cdFx0XHRcdGNvbnN0IHJlc3VsdCA9IHRoaXMuI2ZpbmROb2RlKFxyXG5cdFx0XHRcdFx0Y2hpbGRyZW4sXHJcblx0XHRcdFx0XHR1bmlxdWVDb21wYXJlS2V5LFxyXG5cdFx0XHRcdFx0Y2hpbGRyZW5QYXRoLFxyXG5cdFx0XHRcdFx0dmFsdWVcclxuXHRcdFx0XHQpO1xyXG5cdFx0XHRcdGlmIChyZXN1bHQpIHtcclxuXHRcdFx0XHRcdHJldHVybiByZXN1bHQ7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gbnVsbDtcclxuXHR9XHJcblx0I2ZpbmRMYXJnZXN0RGF0ZShcclxuXHRcdG5vZGVMaXN0OiBhbnlbXSxcclxuXHRcdGNoaWxkcmVuUGF0aDogc3RyaW5nLFxyXG5cdFx0ZGF0ZVBhdGg6IHN0cmluZ1xyXG5cdCk6IHN0cmluZyB7XHJcblx0XHRsZXQgbGFyZ2VzdERhdGU6IHN0cmluZyA9IG51bGw7XHJcblx0XHRjb25zdCB0cmF2ZXJzZSA9IChub2RlOiBhbnkpID0+IHtcclxuXHRcdFx0aWYgKCFub2RlKSByZXR1cm47XHJcblx0XHRcdGNvbnN0IGNoaWxkcmVuID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRWYWx1ZShub2RlLCBjaGlsZHJlblBhdGgpO1xyXG5cdFx0XHRjb25zdCBub2RlRGF0ZSA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0VmFsdWUobm9kZSwgZGF0ZVBhdGgpO1xyXG5cdFx0XHRpZiAobm9kZURhdGUgJiYgKCFsYXJnZXN0RGF0ZSB8fCBub2RlRGF0ZSA+IGxhcmdlc3REYXRlKSkge1xyXG5cdFx0XHRcdGxhcmdlc3REYXRlID0gbm9kZURhdGU7XHJcblx0XHRcdH1cclxuXHRcdFx0aWYgKGNoaWxkcmVuPy5sZW5ndGgpIHtcclxuXHRcdFx0XHRmb3IgKGNvbnN0IGNoaWxkIG9mIGNoaWxkcmVuKSB7XHJcblx0XHRcdFx0XHR0cmF2ZXJzZShjaGlsZCk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9O1xyXG5cdFx0bm9kZUxpc3QuZm9yRWFjaCgobm9kZSkgPT4gdHJhdmVyc2Uobm9kZSkpO1xyXG5cdFx0cmV0dXJuIGxhcmdlc3REYXRlO1xyXG5cdH1cclxuXHQjaGFuZGxlRmV0Y2hlZEl0ZW1zKFxyXG5cdFx0b3B0aW9uczogQmFzZUNhY2hlT3B0aW9ucyxcclxuXHRcdHJlczogYW55XHJcblx0KTogT2JzZXJ2YWJsZTxhbnk+IHwgbnVsbCB7XHJcblx0XHRpZiAodGhpcy4jZmV0Y2hlZEl0ZW1zW29wdGlvbnMuY2FjaGVLZXldLmRhdGE/Lmxlbmd0aCkge1xyXG5cdFx0XHRyZXNbb3B0aW9ucy5tYXBwZWREYXRhS2V5XS5zb3J0KChhLCBiKSA9PiB7XHJcblx0XHRcdFx0Y29uc3QgZmlyc3QgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFZhbHVlKFxyXG5cdFx0XHRcdFx0YSxcclxuXHRcdFx0XHRcdG9wdGlvbnMubGFzdE1vZGlmaWVkRGF0ZVBhdGhcclxuXHRcdFx0XHQpO1xyXG5cdFx0XHRcdGNvbnN0IHNlY29uZCA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0VmFsdWUoXHJcblx0XHRcdFx0XHRiLFxyXG5cdFx0XHRcdFx0b3B0aW9ucy5sYXN0TW9kaWZpZWREYXRlUGF0aFxyXG5cdFx0XHRcdCk7XHJcblx0XHRcdFx0cmV0dXJuIG5ldyBEYXRlKGZpcnN0KS5nZXRUaW1lKCkgLSBuZXcgRGF0ZShzZWNvbmQpLmdldFRpbWUoKTtcclxuXHRcdFx0fSk7XHJcblx0XHRcdHJlc1tvcHRpb25zLm1hcHBlZERhdGFLZXldLmZvckVhY2goKGVsZW1lbnQpID0+IHtcclxuXHRcdFx0XHRjb25zdCBpdGVtID0gdGhpcy4jZmluZE5vZGUoXHJcblx0XHRcdFx0XHR0aGlzLiNmZXRjaGVkSXRlbXNbb3B0aW9ucy5jYWNoZUtleV0uZGF0YSxcclxuXHRcdFx0XHRcdG9wdGlvbnMudW5pcXVlQ29tcGFyZUtleSxcclxuXHRcdFx0XHRcdG9wdGlvbnMuY2hpbGRyZW5QYXRoLFxyXG5cdFx0XHRcdFx0ZWxlbWVudFtvcHRpb25zLnVuaXF1ZUNvbXBhcmVLZXldXHJcblx0XHRcdFx0KTtcclxuXHJcblx0XHRcdFx0Y29uc3QgbWFwcGVkRWxlbWVudCA9IG9wdGlvbnMucHJlcGFyZURhdGFCZWZvcmVDYWNoaW5nKFtlbGVtZW50XSlbMF07XHJcblx0XHRcdFx0aWYgKGl0ZW0pIHtcclxuXHRcdFx0XHRcdC8vIGVkaXQgOiB1cGRhdGUgaXRlbSBpbiBjYWNoZVxyXG5cdFx0XHRcdFx0Y29uc3QgZmlsdGVyZWRTb3VyY2UgPSBfb21pdChcclxuXHRcdFx0XHRcdFx0bWFwcGVkRWxlbWVudCxcclxuXHRcdFx0XHRcdFx0b3B0aW9ucy5leGNsdWRlS2V5c1doZW5VcGRhdGVcclxuXHRcdFx0XHRcdCk7XHJcblx0XHRcdFx0XHRfYXNzaWduKGl0ZW0sIGZpbHRlcmVkU291cmNlKTtcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0Ly8gYWRkIDogY2hlY2sgZGF0ZSB0byBkZXRlcm1pbmUgd2hlcmUgd2lsbCBpbnNlcnRcclxuXHJcblx0XHRcdFx0XHQvLyBpZiBpdGVtIHBhcmVudCBub3QgZm91bmQgYWRkIGFzIHJvb3QgZWxzZSB3aWxsIGFkZCBsZWF2ZXMgdG8gc3ViUGFyZW50XHJcblx0XHRcdFx0XHRjb25zdCBub2RlID0gdGhpcy4jZmluZE5vZGUoXHJcblx0XHRcdFx0XHRcdHRoaXMuI2ZldGNoZWRJdGVtc1tvcHRpb25zLmNhY2hlS2V5XS5kYXRhLFxyXG5cdFx0XHRcdFx0XHRvcHRpb25zLnVuaXF1ZUNvbXBhcmVLZXksXHJcblx0XHRcdFx0XHRcdG9wdGlvbnMuY2hpbGRyZW5QYXRoLFxyXG5cdFx0XHRcdFx0XHRlbGVtZW50W29wdGlvbnMucGFyZW50S2V5XVxyXG5cdFx0XHRcdFx0KTtcclxuXHJcblx0XHRcdFx0XHRpZiAobm9kZSkge1xyXG5cdFx0XHRcdFx0XHQvLyB3aWxsIGNvbXBhcmUgd2l0aCBub2RlIGNoaWxkIHRvIGFkZFxyXG5cdFx0XHRcdFx0XHRjb25zdCBjaGlsZHJlbiA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0VmFsdWUoXHJcblx0XHRcdFx0XHRcdFx0bm9kZSxcclxuXHRcdFx0XHRcdFx0XHRvcHRpb25zLmNoaWxkcmVuUGF0aFxyXG5cdFx0XHRcdFx0XHQpO1xyXG5cdFx0XHRcdFx0XHR0aGlzLiNhZGRJdGVtc1RvKG9wdGlvbnMsIGNoaWxkcmVuLCBlbGVtZW50KTtcclxuXHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdC8vIHdpbGwgY29tcGFyZSB3aXRoIHJvb3QgbGV2ZWwgdG8gYWRkXHJcblx0XHRcdFx0XHRcdHRoaXMuI2FkZEl0ZW1zVG8oXHJcblx0XHRcdFx0XHRcdFx0b3B0aW9ucyxcclxuXHRcdFx0XHRcdFx0XHR0aGlzLiNmZXRjaGVkSXRlbXNbb3B0aW9ucy5jYWNoZUtleV0uZGF0YSxcclxuXHRcdFx0XHRcdFx0XHRlbGVtZW50XHJcblx0XHRcdFx0XHRcdCk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9KTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHJlc1tvcHRpb25zLm1hcHBlZERhdGFLZXldID0gb3B0aW9ucy5wcmVwYXJlRGF0YUJlZm9yZUNhY2hpbmcoXHJcblx0XHRcdFx0cmVzW29wdGlvbnMubWFwcGVkRGF0YUtleV1cclxuXHRcdFx0KTtcclxuXHRcdFx0dGhpcy4jZmV0Y2hlZEl0ZW1zW29wdGlvbnMuY2FjaGVLZXldLmRhdGEgPSByZXNbb3B0aW9ucy5tYXBwZWREYXRhS2V5XTtcclxuXHRcdFx0dGhpcy4jZmV0Y2hlZEl0ZW1zW29wdGlvbnMuY2FjaGVLZXldLnJlc3VsdHNDb3VudCA9XHJcblx0XHRcdFx0cmVzW29wdGlvbnMucmVzdWx0c0NvdW50XTtcclxuXHRcdH1cclxuXHRcdGlmIChyZXNbb3B0aW9ucy50b3RhbFBhZ2VLZXldIC0gcmVzW29wdGlvbnMucGFnZUtleV0gPiAxKSB7XHJcblx0XHRcdHJldHVybiB0aGlzLiNmZXRjaGVkSXRlbXNbb3B0aW9ucy5jYWNoZUtleV0ucmVxdWVzdCh7XHJcblx0XHRcdFx0Li4uKHRoaXMuI2ZldGNoZWRJdGVtc1tvcHRpb25zLmNhY2hlS2V5XS5wYXJhbXMgfHwge30pLFxyXG5cdFx0XHRcdFtvcHRpb25zLnBhZ2VLZXldOiByZXNbb3B0aW9ucy5wYWdlS2V5XSArIDFcclxuXHRcdFx0fSk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRyZXR1cm4gbnVsbDtcclxuXHRcdH1cclxuXHR9XHJcblx0I2FkZEl0ZW1zVG8ob3B0aW9uczogQmFzZUNhY2hlT3B0aW9ucywgZGF0YTogYW55W10sIGl0ZW06IGFueSkge1xyXG5cdFx0Y29uc3QgZmlyc3RDYWNoZWRNb2RpZmllZCA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0VmFsdWUoXHJcblx0XHRcdGRhdGFbMF0sXHJcblx0XHRcdG9wdGlvbnMubGFzdE1vZGlmaWVkRGF0ZVBhdGhcclxuXHRcdCk7XHJcblx0XHRjb25zdCBjdXJyZW50TW9kaWZpZWQgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFZhbHVlKFxyXG5cdFx0XHRpdGVtLFxyXG5cdFx0XHRvcHRpb25zLmxhc3RNb2RpZmllZERhdGVQYXRoXHJcblx0XHQpO1xyXG5cdFx0aWYgKGZpcnN0Q2FjaGVkTW9kaWZpZWQgPCBjdXJyZW50TW9kaWZpZWQpIHtcclxuXHRcdFx0ZGF0YS51bnNoaWZ0KC4uLm9wdGlvbnMucHJlcGFyZURhdGFCZWZvcmVDYWNoaW5nKFtpdGVtXSkpO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0ZGF0YS5wdXNoKC4uLm9wdGlvbnMucHJlcGFyZURhdGFCZWZvcmVDYWNoaW5nKFtpdGVtXSkpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHQjcHJlcGFyZU9wdGlvbnMob3B0aW9uczogQmFzZUNhY2hlT3B0aW9ucykge1xyXG5cdFx0b3B0aW9ucy5wcmVwYXJlRGF0YUJlZm9yZUNhY2hpbmcgPVxyXG5cdFx0XHRvcHRpb25zLnByZXBhcmVEYXRhQmVmb3JlQ2FjaGluZyB8fCBERUZBVUxUX0NBQ0hFX09QVElPTlMuUFJFUEFSRV9EQVRBO1xyXG5cdFx0b3B0aW9ucy5wYWdlS2V5ID0gb3B0aW9ucy5wYWdlS2V5IHx8IERFRkFVTFRfQ0FDSEVfT1BUSU9OUy5QQUdFX0tFWTtcclxuXHRcdG9wdGlvbnMudG90YWxQYWdlS2V5ID1cclxuXHRcdFx0b3B0aW9ucy50b3RhbFBhZ2VLZXkgfHwgREVGQVVMVF9DQUNIRV9PUFRJT05TLlRPVEFMX1BBR0VfS0VZO1xyXG5cdFx0b3B0aW9ucy5yZXN1bHRzQ291bnQgPVxyXG5cdFx0XHRvcHRpb25zLnJlc3VsdHNDb3VudCB8fCBERUZBVUxUX0NBQ0hFX09QVElPTlMuUkVTVUxUU19DT1VOVF9LRVk7XHJcblx0XHRvcHRpb25zLm1hcHBlZERhdGFLZXkgPVxyXG5cdFx0XHRvcHRpb25zLm1hcHBlZERhdGFLZXkgfHwgREVGQVVMVF9DQUNIRV9PUFRJT05TLk1BUFBFRF9EQVRBX0tFWTtcclxuXHRcdG9wdGlvbnMudW5pcXVlQ29tcGFyZUtleSA9XHJcblx0XHRcdG9wdGlvbnMudW5pcXVlQ29tcGFyZUtleSB8fCBERUZBVUxUX0NBQ0hFX09QVElPTlMuVU5JUVVFX0NPTVBBUkVfS0VZO1xyXG5cdFx0b3B0aW9ucy5taW5Db21wYXJlRGF0ZUtleSA9XHJcblx0XHRcdG9wdGlvbnMubWluQ29tcGFyZURhdGVLZXkgfHwgREVGQVVMVF9DQUNIRV9PUFRJT05TLk1JTl9DT01QQVJFX0RBVEVfS0VZO1xyXG5cdFx0b3B0aW9ucy5sYXN0TW9kaWZpZWREYXRlS2V5ID1cclxuXHRcdFx0b3B0aW9ucy5sYXN0TW9kaWZpZWREYXRlS2V5IHx8IERFRkFVTFRfQ0FDSEVfT1BUSU9OUy5MQVNUX01PRElGSUVEX0tFWTtcclxuXHRcdG9wdGlvbnMubGFzdE1vZGlmaWVkRGF0ZVBhdGggPVxyXG5cdFx0XHRvcHRpb25zLmxhc3RNb2RpZmllZERhdGVQYXRoIHx8IERFRkFVTFRfQ0FDSEVfT1BUSU9OUy5MQVNUX01PRElGSUVEX1BBVEg7XHJcblx0XHRvcHRpb25zLmV4Y2x1ZGVLZXlzV2hlblVwZGF0ZSA9XHJcblx0XHRcdG9wdGlvbnMuZXhjbHVkZUtleXNXaGVuVXBkYXRlIHx8XHJcblx0XHRcdERFRkFVTFRfQ0FDSEVfT1BUSU9OUy5FWENMVURFX0tFWVNfV0hFTl9VUERBVEU7XHJcblx0XHRvcHRpb25zLmNoaWxkcmVuUGF0aCA9XHJcblx0XHRcdG9wdGlvbnMuY2hpbGRyZW5QYXRoIHx8IERFRkFVTFRfQ0FDSEVfT1BUSU9OUy5DSElMRFJFTl9QQVRIO1xyXG5cdFx0b3B0aW9ucy5wYXJlbnRLZXkgPSBvcHRpb25zLnBhcmVudEtleSB8fCBERUZBVUxUX0NBQ0hFX09QVElPTlMuUEFSRU5UX0tFWTtcclxuXHR9XHJcblx0I3ByZXBhcmVDb25maWcoKSB7XHJcblx0XHRERUZBVUxUX1RUTF9DT05GSUcuVFRMID1cclxuXHRcdFx0RW52TWFuYWdlci5lbnZpcm9ubWVudD8uY2FjaGU/LnR0bCB8fCBERUZBVUxUX1RUTF9DT05GSUcuVFRMO1xyXG5cdFx0REVGQVVMVF9UVExfQ09ORklHLlVOSVQgPVxyXG5cdFx0XHRFbnZNYW5hZ2VyLmVudmlyb25tZW50Py5jYWNoZT8udHRsVW5pdCB8fCBERUZBVUxUX1RUTF9DT05GSUcuVU5JVDtcclxuXHRcdERFRkFVTFRfVFRMX0NPTkZJRy5BVVRPX0NIRUNLID1cclxuXHRcdFx0RW52TWFuYWdlci5lbnZpcm9ubWVudD8uY2FjaGU/LmF1dG9DaGVjayA9PSAnWUVTJztcclxuXHRcdERFRkFVTFRfVFRMX0NPTkZJRy5SRVRSWSA9XHJcblx0XHRcdEVudk1hbmFnZXIuZW52aXJvbm1lbnQ/LmNhY2hlPy5yZXRyeSB8fCBERUZBVUxUX1RUTF9DT05GSUcuUkVUUlk7XHJcblx0fVxyXG5cdCNhZGQxU2Vjb25kVG9Nb2RpZmllZERhdGUoZGF0ZTogRGF0ZSk6IERhdGUge1xyXG5cdFx0bGV0IG5ld0RhdGUgPSBuZXcgRGF0ZShkYXRlLmdldFRpbWUoKSk7XHJcblx0XHRuZXdEYXRlLnNldFNlY29uZHMobmV3RGF0ZS5nZXRTZWNvbmRzKCkgKyAxKTtcclxuXHRcdHJldHVybiBuZXdEYXRlO1xyXG5cdH1cclxuXHQjY2xlYXIodXNlck5hbWU6IHN0cmluZywga2V5T3JBbGw6IHN0cmluZyA9ICcnKSB7XHJcblx0XHRPYmplY3Qua2V5cyh3aW5kb3cubG9jYWxTdG9yYWdlKVxyXG5cdFx0XHQuZmlsdGVyKChxKSA9PlxyXG5cdFx0XHRcdHEuc3RhcnRzV2l0aChgJHt1c2VyTmFtZX1fXyR7REVGQVVMVF9DQUNIRV9PUFRJT05TLlBSRUZJWH0ke2tleU9yQWxsfWApXHJcblx0XHRcdClcclxuXHRcdFx0LmZvckVhY2goKGtleSkgPT4ge1xyXG5cdFx0XHRcdHdpbmRvdy5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShrZXkpO1xyXG5cdFx0XHR9KTtcclxuXHR9XHJcblx0I3ZhbGlkYXRlVFRMRm9yS2V5KG9wdGlvbnM6IEJhc2VDYWNoZU9wdGlvbnMpIHtcclxuXHRcdGNvbnN0IGZpcnN0RmV0Y2hpbmdEYXRlID0gdGhpcy4jZ2V0SXRlbShvcHRpb25zKT8uZmlyc3RGZXRjaGluZ0RhdGU7XHJcblxyXG5cdFx0aWYgKCFmaXJzdEZldGNoaW5nRGF0ZSkgcmV0dXJuO1xyXG5cclxuXHRcdGNvbnN0IG1vbWVudERhdGUxID0gbW9tZW50KG5ldyBEYXRlKGZpcnN0RmV0Y2hpbmdEYXRlKSk7XHJcblx0XHRjb25zdCBtb21lbnREYXRlMiA9IG1vbWVudChuZXcgRGF0ZSgpKTtcclxuXHJcblx0XHRjb25zdCBkaWZmZXJlbmNlID0gbW9tZW50RGF0ZTIuZGlmZihtb21lbnREYXRlMSwgREVGQVVMVF9UVExfQ09ORklHLlVOSVQpO1xyXG5cclxuXHRcdGlmIChkaWZmZXJlbmNlID49IERFRkFVTFRfVFRMX0NPTkZJRy5UVEwpXHJcblx0XHRcdHRoaXMuI2NsZWFyKG9wdGlvbnMudXNlck5hbWUsIG9wdGlvbnMuY2FjaGVLZXkpO1xyXG5cdH1cclxuXHQjc2V0SXRlbUluTWFwKGtleTogc3RyaW5nLCB2YWw/OiBDYWNoZUluZm8pOiB2b2lkIHtcclxuXHRcdGNvbnN0IGVtcHR5OiBDYWNoZUluZm8gPSB7XHJcblx0XHRcdGRhdGE6IFtdLFxyXG5cdFx0XHRmaXJzdEZldGNoaW5nRGF0ZTogJycsXHJcblx0XHRcdGxhc3RNb2RpZmllZERhdGU6ICcnLFxyXG5cdFx0XHRyZXN1bHRzQ291bnQ6IDAsXHJcblx0XHRcdGZldGNoaW5nSXRlbXNGcm9tVGhlU2VydmVyOiBmYWxzZSxcclxuXHRcdFx0b25GaW5pc2hGZXRjaGluZzogbmV3IFN1YmplY3Q8Q2FjaGVJbmZvPigpXHJcblx0XHR9O1xyXG5cdFx0bGV0IHZhbHVlOiBDYWNoZUluZm8gPSB2YWwgPyB2YWwgOiBlbXB0eTtcclxuXHRcdHRoaXMuI2ZldGNoZWRJdGVtc1trZXldID0gdmFsdWU7XHJcblx0fVxyXG5cdCNnZXRJdGVtKG9wdGlvbnM6IEJhc2VDYWNoZU9wdGlvbnMpIHtcclxuXHRcdGxldCBkYXRhOiBDYWNoZUluZm87XHJcblx0XHRpZiAob3B0aW9ucy5pbk1lbW9yeSkge1xyXG5cdFx0XHRkYXRhID0gdGhpcy4jZmV0Y2hlZEl0ZW1zW29wdGlvbnMuY2FjaGVLZXldO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0Y29uc3QgdmFsdWUgPSB0aGlzLnVzZXJQcmVmZXJlbmNlc1NlcnZpY2UuZ2V0KFxyXG5cdFx0XHRcdGAke0RFRkFVTFRfQ0FDSEVfT1BUSU9OUy5QUkVGSVh9JHtvcHRpb25zLmNhY2hlS2V5fWBcclxuXHRcdFx0KTtcclxuXHRcdFx0aWYgKCF2YWx1ZSkgcmV0dXJuO1xyXG5cdFx0XHRkYXRhID0gSlNPTi5wYXJzZSh2YWx1ZSk7XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gZGF0YTtcclxuXHR9XHJcblx0I3NldEl0ZW0odmFsdWU6IFJlY29yZDxzdHJpbmcsIGFueT4sIG9wdGlvbnM6IEJhc2VDYWNoZU9wdGlvbnMpIHtcclxuXHRcdGlmIChvcHRpb25zLmluTWVtb3J5KSByZXR1cm47XHJcblx0XHRlbHNlIHtcclxuXHRcdFx0dGhpcy51c2VyUHJlZmVyZW5jZXNTZXJ2aWNlLnNldChcclxuXHRcdFx0XHRgJHtERUZBVUxUX0NBQ0hFX09QVElPTlMuUFJFRklYfSR7b3B0aW9ucy5jYWNoZUtleX1gLFxyXG5cdFx0XHRcdEpTT04uc3RyaW5naWZ5KHZhbHVlKVxyXG5cdFx0XHQpO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iXX0=
|
|
296
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUtYmFzZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvc2hhcmVkL3NlcnZpY2VzL2Jhc2UvY2FjaGUtYmFzZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsS0FBSyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsRCxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUQsT0FBTyxLQUFLLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFDakMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXBELE9BQU8sS0FBSyxNQUFNLGFBQWEsQ0FBQztBQUNoQyxPQUFPLE9BQU8sTUFBTSxlQUFlLENBQUM7QUFDcEMsT0FBTyxVQUFVLE1BQU0sa0JBQWtCLENBQUM7QUFDMUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRzlDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7OztBQUszRCxNQUFNLE9BQU8sZ0JBQWdCO0lBRzVCLFlBQ1Msc0JBQThDLEVBQzlDLGNBQThCO1FBRDlCLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFDOUMsbUJBQWMsR0FBZCxjQUFjLENBQWdCOztRQUp2Qyx5Q0FBd0MsSUFBSSxHQUFHLEVBQXFCLEVBQUM7UUFNcEUsdUJBQUEsSUFBSSxvRUFBZSxNQUFuQixJQUFJLENBQWlCLENBQUM7SUFDdkIsQ0FBQztJQUVELE9BQU8sQ0FBQyxRQUFnQjtRQUN2QixPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLENB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QVE7UUFBRSxPQUFPO1NBQ3hCO1FBQ0osSUFBSSxDQUFDLHNCQUFzQixDQUFDLEdBQUcsQ0FDOUIsR0FBRyxxQkFBcUIsQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUNwRCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUNyQixDQUFDO0tBQ0Y7QUFDRixDQUFDOzhHQTdXVyxnQkFBZ0I7a0hBQWhCLGdCQUFnQixjQUZoQixNQUFNOzRGQUVOLGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDWCxVQUFVLEVBQUUsTUFBTTtpQkFDbEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEVNUFRZLCBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGV4cGFuZCwgbGFzdCwgbWFwLCByZXRyeSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0ICogYXMgbW9tZW50IGZyb20gJ21vbWVudCc7XHJcbmltcG9ydCB7IERFRkFVTFRfQ0FDSEVfT1BUSU9OUyB9IGZyb20gJy4vY29uc3RhbnRzJztcclxuaW1wb3J0IHsgQmFzZUNhY2hlT3B0aW9ucywgQ2FjaGVJbmZvIH0gZnJvbSAnLi9tb2RlbHMnO1xyXG5pbXBvcnQgX29taXQgZnJvbSAnbG9kYXNoL29taXQnO1xyXG5pbXBvcnQgX2Fzc2lnbiBmcm9tICdsb2Rhc2gvYXNzaWduJztcclxuaW1wb3J0IF9jbG9uZURlZXAgZnJvbSAnbG9kYXNoL2Nsb25lRGVlcCc7XHJcbmltcG9ydCB7IERFRkFVTFRfVFRMX0NPTkZJRyB9IGZyb20gJy4vY29uZmlnJztcclxuaW1wb3J0IHsgVXNlclByZWZlcmVuY2VzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvc2VydmljZXMvdXNlci91c2VyLXByZWZlcmVuY2VzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBVdGlsaXR5U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvdXRpbGl0aWVzL3V0aWxpdHkuc2VydmljZSc7XHJcbmltcG9ydCB7IEVudk1hbmFnZXIgfSBmcm9tICcuLi8uLi8uLi9jb3JlL2Vudi9lbnYtbWFuYWdlcic7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcblx0cHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDYWNoZUJhc2VTZXJ2aWNlIHtcclxuXHQjZmV0Y2hlZEl0ZW1zOiBNYXA8c3RyaW5nLCBDYWNoZUluZm8+ID0gbmV3IE1hcDxzdHJpbmcsIENhY2hlSW5mbz4oKTtcclxuXHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRwcml2YXRlIHVzZXJQcmVmZXJlbmNlc1NlcnZpY2U6IFVzZXJQcmVmZXJlbmNlc1NlcnZpY2UsXHJcblx0XHRwcml2YXRlIHV0aWxpdHlTZXJ2aWNlOiBVdGlsaXR5U2VydmljZVxyXG5cdCkge1xyXG5cdFx0dGhpcy4jcHJlcGFyZUNvbmZpZygpO1xyXG5cdH1cclxuXHJcblx0aGFzSXRlbShjYWNoZUtleTogc3RyaW5nKTogYm9vbGVhbiB7XHJcblx0XHRyZXR1cm4gdGhpcy51c2VyUHJlZmVyZW5jZXNTZXJ2aWNlLmhhc0l0ZW0oXHJcblx0XHRcdGAke0RFRkFVTFRfQ0FDSEVfT1BUSU9OUy5QUkVGSVh9JHtjYWNoZUtleX1gXHJcblx0XHQpO1xyXG5cdH1cclxuXHRjbGVhckFsbCh1c2VyTmFtZTogc3RyaW5nKSB7XHJcblx0XHR0aGlzLiNjbGVhcih1c2VyTmFtZSk7XHJcblx0fVxyXG5cdHZhbGlkYXRlVFRMKHVzZXJOYW1lOiBzdHJpbmcpIHtcclxuXHRcdGlmICghREVGQVVMVF9UVExfQ09ORklHLkFVVE9fQ0hFQ0sgfHwgIXVzZXJOYW1lKSByZXR1cm47XHJcblxyXG5cdFx0Y29uc3QgcHJlZml4ID0gYCR7dXNlck5hbWV9X18ke0RFRkFVTFRfQ0FDSEVfT1BUSU9OUy5QUkVGSVh9YDtcclxuXHRcdE9iamVjdC5rZXlzKHdpbmRvdy5sb2NhbFN0b3JhZ2UpXHJcblx0XHRcdC5maWx0ZXIoKHEpID0+IHEuc3RhcnRzV2l0aChwcmVmaXgpKVxyXG5cdFx0XHQuZmlsdGVyKChrZXkpID0+IHtcclxuXHRcdFx0XHRjb25zdCBvcHRpb25zOiBCYXNlQ2FjaGVPcHRpb25zID0ge1xyXG5cdFx0XHRcdFx0Y2FjaGVLZXk6IGtleS5yZXBsYWNlKHByZWZpeCwgJycpLFxyXG5cdFx0XHRcdFx0dXNlck5hbWU6IHVzZXJOYW1lLFxyXG5cdFx0XHRcdFx0cmVxdWVzdDogREVGQVVMVF9DQUNIRV9PUFRJT05TLlJFUVVFU1QsXHJcblx0XHRcdFx0XHRwcmVwYXJlRGF0YUJlZm9yZUNhY2hpbmc6IERFRkFVTFRfQ0FDSEVfT1BUSU9OUy5QUkVQQVJFX0RBVEFcclxuXHRcdFx0XHR9O1xyXG5cdFx0XHRcdGNvbnN0IGZpcnN0RmV0Y2hpbmdEYXRlID0gdGhpcy4jZ2V0SXRlbShvcHRpb25zKT8uZmlyc3RGZXRjaGluZ0RhdGU7XHJcblx0XHRcdFx0aWYgKCFmaXJzdEZldGNoaW5nRGF0ZSkgcmV0dXJuO1xyXG5cclxuXHRcdFx0XHRjb25zdCBtb21lbnREYXRlMSA9IG1vbWVudChuZXcgRGF0ZShmaXJzdEZldGNoaW5nRGF0ZSkpO1xyXG5cdFx0XHRcdGNvbnN0IG1vbWVudERhdGUyID0gbW9tZW50KG5ldyBEYXRlKCkpO1xyXG5cdFx0XHRcdGNvbnN0IGRpZmZlcmVuY2UgPSBtb21lbnREYXRlMi5kaWZmKFxyXG5cdFx0XHRcdFx0bW9tZW50RGF0ZTEsXHJcblx0XHRcdFx0XHRERUZBVUxUX1RUTF9DT05GSUcuVU5JVFxyXG5cdFx0XHRcdCk7XHJcblx0XHRcdFx0cmV0dXJuIGRpZmZlcmVuY2UgPj0gREVGQVVMVF9UVExfQ09ORklHLlRUTDtcclxuXHRcdFx0fSlcclxuXHRcdFx0LmZvckVhY2goKGtleSkgPT4ge1xyXG5cdFx0XHRcdHdpbmRvdy5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShrZXkpO1xyXG5cdFx0XHR9KTtcclxuXHR9XHJcblx0c3RhcnRGZXRjaGluZ0l0ZW1zKG9wdGlvbnM6IEJhc2VDYWNoZU9wdGlvbnMpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG5cdFx0dGhpcy4jdmFsaWRhdGVUVExGb3JLZXkob3B0aW9ucyk7XHJcblxyXG5cdFx0aWYgKHRoaXMuI2ZldGNoZWRJdGVtc1tvcHRpb25zLmNhY2hlS2V5XT8uZmV0Y2hpbmdJdGVtc0Zyb21UaGVTZXJ2ZXIpIHtcclxuXHRcdFx0cmV0dXJuIHRoaXMuI2ZldGNoZWRJdGVtc1tcclxuXHRcdFx0XHRvcHRpb25zLmNhY2hlS2V5XHJcblx0XHRcdF0ub25GaW5pc2hGZXRjaGluZy5hc09ic2VydmFibGUoKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHJldHVybiB0aGlzLiNoYW5kbGVDYWNoZUl0ZW1zKG9wdGlvbnMpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHQjaGFuZGxlQ2FjaGVJdGVtcyhvcHRpb25zOiBCYXNlQ2FjaGVPcHRpb25zKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuXHRcdGxldCBvYnNlcnZhYmxlOiBPYnNlcnZhYmxlPGFueT47XHJcblx0XHR0aGlzLiNwcmVwYXJlT3B0aW9ucyhvcHRpb25zKTtcclxuXHJcblx0XHRjb25zdCBjYWNoZWRJdGVtID0gdGhpcy4jZ2V0SXRlbShvcHRpb25zKTtcclxuXHJcblx0XHRpZiAoY2FjaGVkSXRlbSkge1xyXG5cdFx0XHR0aGlzLiNzZXRJdGVtSW5NYXAob3B0aW9ucy5jYWNoZUtleSwge1xyXG5cdFx0XHRcdC4uLmNhY2hlZEl0ZW0sXHJcblx0XHRcdFx0ZmV0Y2hpbmdJdGVtc0Zyb21UaGVTZXJ2ZXI6IGZhbHNlLFxyXG5cdFx0XHRcdG9uRmluaXNoRmV0Y2hpbmc6IG5ldyBTdWJqZWN0PENhY2hlSW5mbz4oKSxcclxuXHRcdFx0XHRyZXF1ZXN0OiBvcHRpb25zLnJlcXVlc3RcclxuXHRcdFx0fSk7XHJcblxyXG5cdFx0XHRjb25zdCBwYXJhbXMgPSB7XHJcblx0XHRcdFx0W29wdGlvbnMucGFnZUtleV06IDAsXHJcblx0XHRcdFx0W29wdGlvbnMubWluQ29tcGFyZURhdGVLZXldOiB0aGlzLiNhZGQxU2Vjb25kVG9Nb2RpZmllZERhdGUoXHJcblx0XHRcdFx0XHRuZXcgRGF0ZSh0aGlzLiNmZXRjaGVkSXRlbXNbb3B0aW9ucy5jYWNoZUtleV0ubGFzdE1vZGlmaWVkRGF0ZSlcclxuXHRcdFx0XHQpLnRvSVNPU3RyaW5nKClcclxuXHRcdFx0fTtcclxuXHRcdFx0dGhpcy4jZmV0Y2hlZEl0ZW1zW29wdGlvbnMuY2FjaGVLZXldLnBhcmFtcyA9IHBhcmFtcztcclxuXHRcdFx0b2JzZXJ2YWJsZSA9IG9wdGlvbnMucmVxdWVzdChwYXJhbXMpO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhpcy4jc2V0SXRlbUluTWFwKG9wdGlvbnMuY2FjaGVLZXkpO1xyXG5cdFx0XHR0aGlzLiNmZXRjaGVkSXRlbXNbb3B0aW9ucy5jYWNoZUtleV0ucmVxdWVzdCA9IG9wdGlvbnMucmVxdWVzdDtcclxuXHRcdFx0dGhpcy4jZmV0Y2hlZEl0ZW1zW29wdGlvbnMuY2FjaGVLZXldLmZpcnN0RmV0Y2hpbmdEYXRlID1cclxuXHRcdFx0XHRuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCk7XHJcblx0XHRcdG9ic2VydmFibGUgPSBvcHRpb25zLnJlcXVlc3QoeyBbb3B0aW9ucy5wYWdlS2V5XTogMCB9KTtcclxuXHRcdH1cclxuXHJcblx0XHR0aGlzLiNmZXRjaGVkSXRlbXNbb3B0aW9ucy5jYWNoZUtleV0uZmV0Y2hpbmdJdGVtc0Zyb21UaGVTZXJ2ZXIgPSB0cnVlO1xyXG5cdFx0cmV0dXJuIG9ic2VydmFibGUucGlwZShcclxuXHRcdFx0cmV0cnkoREVGQVVMVF9UVExfQ09ORklHLlJFVFJZKSxcclxuXHRcdFx0ZXhwYW5kKChyZXN1bHRzOiBhbnkpID0+IHtcclxuXHRcdFx0XHRsZXQgYW5vdGhlckNhbGw6IE9ic2VydmFibGU8YW55PiB8IG51bGwgPSBudWxsO1xyXG5cdFx0XHRcdGlmIChyZXN1bHRzICYmIHJlc3VsdHNbb3B0aW9ucy5tYXBwZWREYXRhS2V5XT8ubGVuZ3RoKSB7XHJcblx0XHRcdFx0XHRhbm90aGVyQ2FsbCA9IHRoaXMuI2hhbmRsZUZldGNoZWRJdGVtcyhvcHRpb25zLCByZXN1bHRzKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0cmV0dXJuIGFub3RoZXJDYWxsID8gYW5vdGhlckNhbGwgOiBFTVBUWTtcclxuXHRcdFx0fSksXHJcblx0XHRcdGxhc3QoKSxcclxuXHRcdFx0bWFwKChfKSA9PiB7XHJcblx0XHRcdFx0bGV0IF9mZXRjaGVkSXRlbXMgPSB0aGlzLiNmZXRjaGVkSXRlbXNbb3B0aW9ucy5jYWNoZUtleV0gYXMgQ2FjaGVJbmZvO1xyXG5cdFx0XHRcdF9mZXRjaGVkSXRlbXMuZmV0Y2hpbmdJdGVtc0Zyb21UaGVTZXJ2ZXIgPSBmYWxzZTtcclxuXHRcdFx0XHRpZiAoX2ZldGNoZWRJdGVtcy5kYXRhPy5sZW5ndGgpIHtcclxuXHRcdFx0XHRcdF9mZXRjaGVkSXRlbXMubGFzdE1vZGlmaWVkRGF0ZSA9IHRoaXMuI2ZpbmRMYXJnZXN0RGF0ZShcclxuXHRcdFx0XHRcdFx0X2ZldGNoZWRJdGVtcy5kYXRhLFxyXG5cdFx0XHRcdFx0XHRvcHRpb25zLmNoaWxkcmVuUGF0aCxcclxuXHRcdFx0XHRcdFx0b3B0aW9ucy5sYXN0TW9kaWZpZWREYXRlUGF0aFxyXG5cdFx0XHRcdFx0KTtcclxuXHRcdFx0XHRcdHRoaXMuI3NldEl0ZW0oXHJcblx0XHRcdFx0XHRcdHtcclxuXHRcdFx0XHRcdFx0XHRkYXRhOiBfZmV0Y2hlZEl0ZW1zLmRhdGEsXHJcblx0XHRcdFx0XHRcdFx0bGFzdE1vZGlmaWVkRGF0ZTogX2ZldGNoZWRJdGVtcy5sYXN0TW9kaWZpZWREYXRlLFxyXG5cdFx0XHRcdFx0XHRcdGZpcnN0RmV0Y2hpbmdEYXRlOiBfZmV0Y2hlZEl0ZW1zLmZpcnN0RmV0Y2hpbmdEYXRlLFxyXG5cdFx0XHRcdFx0XHRcdHJlc3VsdHNDb3VudDogX2ZldGNoZWRJdGVtc1tvcHRpb25zLnJlc3VsdHNDb3VudF1cclxuXHRcdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdFx0b3B0aW9uc1xyXG5cdFx0XHRcdFx0KTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0dGhpcy4jZmV0Y2hlZEl0ZW1zW29wdGlvbnMuY2FjaGVLZXldID0gX2ZldGNoZWRJdGVtcztcclxuXHRcdFx0XHRyZXR1cm4gX2ZldGNoZWRJdGVtcztcclxuXHRcdFx0fSksXHJcblx0XHRcdG1hcCgocmVzKSA9PiB7XHJcblx0XHRcdFx0Y29uc3QgcmVzdWx0ID0gX2Nsb25lRGVlcCh7XHJcblx0XHRcdFx0XHRbb3B0aW9ucy5tYXBwZWREYXRhS2V5XTogcmVzLmRhdGEsXHJcblx0XHRcdFx0XHRbb3B0aW9ucy5sYXN0TW9kaWZpZWREYXRlS2V5XTogcmVzLmxhc3RNb2RpZmllZERhdGUsXHJcblx0XHRcdFx0XHRbb3B0aW9ucy5yZXN1bHRzQ291bnRdOiByZXNbb3B0aW9ucy5yZXN1bHRzQ291bnRdXHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdFx0cmVzLm9uRmluaXNoRmV0Y2hpbmcubmV4dChyZXN1bHQpO1xyXG5cdFx0XHRcdHJldHVybiByZXN1bHQ7XHJcblx0XHRcdH0pXHJcblx0XHQpO1xyXG5cdH1cclxuXHQjZmluZE5vZGUoXHJcblx0XHRpdGVtczogYW55W10sXHJcblx0XHR1bmlxdWVDb21wYXJlS2V5OiBzdHJpbmcsXHJcblx0XHRjaGlsZHJlblBhdGg6IHN0cmluZyxcclxuXHRcdHZhbHVlOiBhbnlcclxuXHQpIHtcclxuXHRcdGZvciAoY29uc3Qgbm9kZSBvZiBpdGVtcykge1xyXG5cdFx0XHRpZiAobm9kZVt1bmlxdWVDb21wYXJlS2V5XSA9PT0gdmFsdWUpIHtcclxuXHRcdFx0XHRyZXR1cm4gbm9kZTtcclxuXHRcdFx0fVxyXG5cdFx0XHRjb25zdCBjaGlsZHJlbiA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0VmFsdWUobm9kZSwgY2hpbGRyZW5QYXRoKTtcclxuXHRcdFx0aWYgKGNoaWxkcmVuKSB7XHJcblx0XHRcdFx0Y29uc3QgcmVzdWx0ID0gdGhpcy4jZmluZE5vZGUoXHJcblx0XHRcdFx0XHRjaGlsZHJlbixcclxuXHRcdFx0XHRcdHVuaXF1ZUNvbXBhcmVLZXksXHJcblx0XHRcdFx0XHRjaGlsZHJlblBhdGgsXHJcblx0XHRcdFx0XHR2YWx1ZVxyXG5cdFx0XHRcdCk7XHJcblx0XHRcdFx0aWYgKHJlc3VsdCkge1xyXG5cdFx0XHRcdFx0cmV0dXJuIHJlc3VsdDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdHJldHVybiBudWxsO1xyXG5cdH1cclxuXHQjZmluZExhcmdlc3REYXRlKFxyXG5cdFx0bm9kZUxpc3Q6IGFueVtdLFxyXG5cdFx0Y2hpbGRyZW5QYXRoOiBzdHJpbmcsXHJcblx0XHRkYXRlUGF0aDogc3RyaW5nXHJcblx0KTogc3RyaW5nIHtcclxuXHRcdGxldCBsYXJnZXN0RGF0ZTogc3RyaW5nID0gbnVsbDtcclxuXHRcdGNvbnN0IHRyYXZlcnNlID0gKG5vZGU6IGFueSkgPT4ge1xyXG5cdFx0XHRpZiAoIW5vZGUpIHJldHVybjtcclxuXHRcdFx0Y29uc3QgY2hpbGRyZW4gPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFZhbHVlKG5vZGUsIGNoaWxkcmVuUGF0aCk7XHJcblx0XHRcdGNvbnN0IG5vZGVEYXRlID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRWYWx1ZShub2RlLCBkYXRlUGF0aCk7XHJcblx0XHRcdGlmIChub2RlRGF0ZSAmJiAoIWxhcmdlc3REYXRlIHx8IG5vZGVEYXRlID4gbGFyZ2VzdERhdGUpKSB7XHJcblx0XHRcdFx0bGFyZ2VzdERhdGUgPSBub2RlRGF0ZTtcclxuXHRcdFx0fVxyXG5cdFx0XHRpZiAoY2hpbGRyZW4/Lmxlbmd0aCkge1xyXG5cdFx0XHRcdGZvciAoY29uc3QgY2hpbGQgb2YgY2hpbGRyZW4pIHtcclxuXHRcdFx0XHRcdHRyYXZlcnNlKGNoaWxkKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH07XHJcblx0XHRub2RlTGlzdC5mb3JFYWNoKChub2RlKSA9PiB0cmF2ZXJzZShub2RlKSk7XHJcblx0XHRyZXR1cm4gbGFyZ2VzdERhdGU7XHJcblx0fVxyXG5cdCNoYW5kbGVGZXRjaGVkSXRlbXMoXHJcblx0XHRvcHRpb25zOiBCYXNlQ2FjaGVPcHRpb25zLFxyXG5cdFx0cmVzOiBhbnlcclxuXHQpOiBPYnNlcnZhYmxlPGFueT4gfCBudWxsIHtcclxuXHRcdGlmICh0aGlzLiNmZXRjaGVkSXRlbXNbb3B0aW9ucy5jYWNoZUtleV0uZGF0YT8ubGVuZ3RoKSB7XHJcblx0XHRcdHJlc1tvcHRpb25zLm1hcHBlZERhdGFLZXldLnNvcnQoKGEsIGIpID0+IHtcclxuXHRcdFx0XHRjb25zdCBmaXJzdCA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0VmFsdWUoXHJcblx0XHRcdFx0XHRhLFxyXG5cdFx0XHRcdFx0b3B0aW9ucy5sYXN0TW9kaWZpZWREYXRlUGF0aFxyXG5cdFx0XHRcdCk7XHJcblx0XHRcdFx0Y29uc3Qgc2Vjb25kID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRWYWx1ZShcclxuXHRcdFx0XHRcdGIsXHJcblx0XHRcdFx0XHRvcHRpb25zLmxhc3RNb2RpZmllZERhdGVQYXRoXHJcblx0XHRcdFx0KTtcclxuXHRcdFx0XHRyZXR1cm4gbmV3IERhdGUoZmlyc3QpLmdldFRpbWUoKSAtIG5ldyBEYXRlKHNlY29uZCkuZ2V0VGltZSgpO1xyXG5cdFx0XHR9KTtcclxuXHRcdFx0cmVzW29wdGlvbnMubWFwcGVkRGF0YUtleV0uZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xyXG5cdFx0XHRcdGNvbnN0IGl0ZW0gPSB0aGlzLiNmaW5kTm9kZShcclxuXHRcdFx0XHRcdHRoaXMuI2ZldGNoZWRJdGVtc1tvcHRpb25zLmNhY2hlS2V5XS5kYXRhLFxyXG5cdFx0XHRcdFx0b3B0aW9ucy51bmlxdWVDb21wYXJlS2V5LFxyXG5cdFx0XHRcdFx0b3B0aW9ucy5jaGlsZHJlblBhdGgsXHJcblx0XHRcdFx0XHRlbGVtZW50W29wdGlvbnMudW5pcXVlQ29tcGFyZUtleV1cclxuXHRcdFx0XHQpO1xyXG5cclxuXHRcdFx0XHRjb25zdCBtYXBwZWRFbGVtZW50ID0gb3B0aW9ucy5wcmVwYXJlRGF0YUJlZm9yZUNhY2hpbmcoW2VsZW1lbnRdKVswXTtcclxuXHRcdFx0XHRpZiAoaXRlbSkge1xyXG5cdFx0XHRcdFx0Ly8gZWRpdCA6IHVwZGF0ZSBpdGVtIGluIGNhY2hlXHJcblx0XHRcdFx0XHRjb25zdCBmaWx0ZXJlZFNvdXJjZSA9IF9vbWl0KFxyXG5cdFx0XHRcdFx0XHRtYXBwZWRFbGVtZW50LFxyXG5cdFx0XHRcdFx0XHRvcHRpb25zLmV4Y2x1ZGVLZXlzV2hlblVwZGF0ZVxyXG5cdFx0XHRcdFx0KTtcclxuXHRcdFx0XHRcdF9hc3NpZ24oaXRlbSwgZmlsdGVyZWRTb3VyY2UpO1xyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHQvLyBhZGQgOiBjaGVjayBkYXRlIHRvIGRldGVybWluZSB3aGVyZSB3aWxsIGluc2VydFxyXG5cclxuXHRcdFx0XHRcdC8vIGlmIGl0ZW0gcGFyZW50IG5vdCBmb3VuZCBhZGQgYXMgcm9vdCBlbHNlIHdpbGwgYWRkIGxlYXZlcyB0byBzdWJQYXJlbnRcclxuXHRcdFx0XHRcdGNvbnN0IG5vZGUgPSB0aGlzLiNmaW5kTm9kZShcclxuXHRcdFx0XHRcdFx0dGhpcy4jZmV0Y2hlZEl0ZW1zW29wdGlvbnMuY2FjaGVLZXldLmRhdGEsXHJcblx0XHRcdFx0XHRcdG9wdGlvbnMudW5pcXVlQ29tcGFyZUtleSxcclxuXHRcdFx0XHRcdFx0b3B0aW9ucy5jaGlsZHJlblBhdGgsXHJcblx0XHRcdFx0XHRcdGVsZW1lbnRbb3B0aW9ucy5wYXJlbnRLZXldXHJcblx0XHRcdFx0XHQpO1xyXG5cclxuXHRcdFx0XHRcdGlmIChub2RlKSB7XHJcblx0XHRcdFx0XHRcdC8vIHdpbGwgY29tcGFyZSB3aXRoIG5vZGUgY2hpbGQgdG8gYWRkXHJcblx0XHRcdFx0XHRcdGNvbnN0IGNoaWxkcmVuID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRWYWx1ZShcclxuXHRcdFx0XHRcdFx0XHRub2RlLFxyXG5cdFx0XHRcdFx0XHRcdG9wdGlvbnMuY2hpbGRyZW5QYXRoXHJcblx0XHRcdFx0XHRcdCk7XHJcblx0XHRcdFx0XHRcdHRoaXMuI2FkZEl0ZW1zVG8ob3B0aW9ucywgY2hpbGRyZW4sIGVsZW1lbnQpO1xyXG5cdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0Ly8gd2lsbCBjb21wYXJlIHdpdGggcm9vdCBsZXZlbCB0byBhZGRcclxuXHRcdFx0XHRcdFx0dGhpcy4jYWRkSXRlbXNUbyhcclxuXHRcdFx0XHRcdFx0XHRvcHRpb25zLFxyXG5cdFx0XHRcdFx0XHRcdHRoaXMuI2ZldGNoZWRJdGVtc1tvcHRpb25zLmNhY2hlS2V5XS5kYXRhLFxyXG5cdFx0XHRcdFx0XHRcdGVsZW1lbnRcclxuXHRcdFx0XHRcdFx0KTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH0pO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0cmVzW29wdGlvbnMubWFwcGVkRGF0YUtleV0gPSBvcHRpb25zLnByZXBhcmVEYXRhQmVmb3JlQ2FjaGluZyhcclxuXHRcdFx0XHRyZXNbb3B0aW9ucy5tYXBwZWREYXRhS2V5XVxyXG5cdFx0XHQpO1xyXG5cdFx0XHR0aGlzLiNmZXRjaGVkSXRlbXNbb3B0aW9ucy5jYWNoZUtleV0uZGF0YSA9IHJlc1tvcHRpb25zLm1hcHBlZERhdGFLZXldO1xyXG5cdFx0XHR0aGlzLiNmZXRjaGVkSXRlbXNbb3B0aW9ucy5jYWNoZUtleV0ucmVzdWx0c0NvdW50ID1cclxuXHRcdFx0XHRyZXNbb3B0aW9ucy5yZXN1bHRzQ291bnRdO1xyXG5cdFx0fVxyXG5cdFx0aWYgKHJlc1tvcHRpb25zLnRvdGFsUGFnZUtleV0gLSByZXNbb3B0aW9ucy5wYWdlS2V5XSA+IDEpIHtcclxuXHRcdFx0cmV0dXJuIHRoaXMuI2ZldGNoZWRJdGVtc1tvcHRpb25zLmNhY2hlS2V5XS5yZXF1ZXN0KHtcclxuXHRcdFx0XHQuLi4odGhpcy4jZmV0Y2hlZEl0ZW1zW29wdGlvbnMuY2FjaGVLZXldLnBhcmFtcyB8fCB7fSksXHJcblx0XHRcdFx0W29wdGlvbnMucGFnZUtleV06IHJlc1tvcHRpb25zLnBhZ2VLZXldICsgMVxyXG5cdFx0XHR9KTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHJldHVybiBudWxsO1xyXG5cdFx0fVxyXG5cdH1cclxuXHQjYWRkSXRlbXNUbyhvcHRpb25zOiBCYXNlQ2FjaGVPcHRpb25zLCBkYXRhOiBhbnlbXSwgaXRlbTogYW55KSB7XHJcblx0XHRjb25zdCBmaXJzdENhY2hlZE1vZGlmaWVkID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRWYWx1ZShcclxuXHRcdFx0ZGF0YVswXSxcclxuXHRcdFx0b3B0aW9ucy5sYXN0TW9kaWZpZWREYXRlUGF0aFxyXG5cdFx0KTtcclxuXHRcdGNvbnN0IGN1cnJlbnRNb2RpZmllZCA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0VmFsdWUoXHJcblx0XHRcdGl0ZW0sXHJcblx0XHRcdG9wdGlvbnMubGFzdE1vZGlmaWVkRGF0ZVBhdGhcclxuXHRcdCk7XHJcblx0XHRpZiAoZmlyc3RDYWNoZWRNb2RpZmllZCA8IGN1cnJlbnRNb2RpZmllZCkge1xyXG5cdFx0XHRkYXRhLnVuc2hpZnQoLi4ub3B0aW9ucy5wcmVwYXJlRGF0YUJlZm9yZUNhY2hpbmcoW2l0ZW1dKSk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRkYXRhLnB1c2goLi4ub3B0aW9ucy5wcmVwYXJlRGF0YUJlZm9yZUNhY2hpbmcoW2l0ZW1dKSk7XHJcblx0XHR9XHJcblx0fVxyXG5cdCNwcmVwYXJlT3B0aW9ucyhvcHRpb25zOiBCYXNlQ2FjaGVPcHRpb25zKSB7XHJcblx0XHRvcHRpb25zLnByZXBhcmVEYXRhQmVmb3JlQ2FjaGluZyA9XHJcblx0XHRcdG9wdGlvbnMucHJlcGFyZURhdGFCZWZvcmVDYWNoaW5nIHx8IERFRkFVTFRfQ0FDSEVfT1BUSU9OUy5QUkVQQVJFX0RBVEE7XHJcblx0XHRvcHRpb25zLnBhZ2VLZXkgPSBvcHRpb25zLnBhZ2VLZXkgfHwgREVGQVVMVF9DQUNIRV9PUFRJT05TLlBBR0VfS0VZO1xyXG5cdFx0b3B0aW9ucy50b3RhbFBhZ2VLZXkgPVxyXG5cdFx0XHRvcHRpb25zLnRvdGFsUGFnZUtleSB8fCBERUZBVUxUX0NBQ0hFX09QVElPTlMuVE9UQUxfUEFHRV9LRVk7XHJcblx0XHRvcHRpb25zLnJlc3VsdHNDb3VudCA9XHJcblx0XHRcdG9wdGlvbnMucmVzdWx0c0NvdW50IHx8IERFRkFVTFRfQ0FDSEVfT1BUSU9OUy5SRVNVTFRTX0NPVU5UX0tFWTtcclxuXHRcdG9wdGlvbnMubWFwcGVkRGF0YUtleSA9XHJcblx0XHRcdG9wdGlvbnMubWFwcGVkRGF0YUtleSB8fCBERUZBVUxUX0NBQ0hFX09QVElPTlMuTUFQUEVEX0RBVEFfS0VZO1xyXG5cdFx0b3B0aW9ucy51bmlxdWVDb21wYXJlS2V5ID1cclxuXHRcdFx0b3B0aW9ucy51bmlxdWVDb21wYXJlS2V5IHx8IERFRkFVTFRfQ0FDSEVfT1BUSU9OUy5VTklRVUVfQ09NUEFSRV9LRVk7XHJcblx0XHRvcHRpb25zLm1pbkNvbXBhcmVEYXRlS2V5ID1cclxuXHRcdFx0b3B0aW9ucy5taW5Db21wYXJlRGF0ZUtleSB8fCBERUZBVUxUX0NBQ0hFX09QVElPTlMuTUlOX0NPTVBBUkVfREFURV9LRVk7XHJcblx0XHRvcHRpb25zLmxhc3RNb2RpZmllZERhdGVLZXkgPVxyXG5cdFx0XHRvcHRpb25zLmxhc3RNb2RpZmllZERhdGVLZXkgfHwgREVGQVVMVF9DQUNIRV9PUFRJT05TLkxBU1RfTU9ESUZJRURfS0VZO1xyXG5cdFx0b3B0aW9ucy5sYXN0TW9kaWZpZWREYXRlUGF0aCA9XHJcblx0XHRcdG9wdGlvbnMubGFzdE1vZGlmaWVkRGF0ZVBhdGggfHwgREVGQVVMVF9DQUNIRV9PUFRJT05TLkxBU1RfTU9ESUZJRURfUEFUSDtcclxuXHRcdG9wdGlvbnMuZXhjbHVkZUtleXNXaGVuVXBkYXRlID1cclxuXHRcdFx0b3B0aW9ucy5leGNsdWRlS2V5c1doZW5VcGRhdGUgfHxcclxuXHRcdFx0REVGQVVMVF9DQUNIRV9PUFRJT05TLkVYQ0xVREVfS0VZU19XSEVOX1VQREFURTtcclxuXHRcdG9wdGlvbnMuY2hpbGRyZW5QYXRoID1cclxuXHRcdFx0b3B0aW9ucy5jaGlsZHJlblBhdGggfHwgREVGQVVMVF9DQUNIRV9PUFRJT05TLkNISUxEUkVOX1BBVEg7XHJcblx0XHRvcHRpb25zLnBhcmVudEtleSA9IG9wdGlvbnMucGFyZW50S2V5IHx8IERFRkFVTFRfQ0FDSEVfT1BUSU9OUy5QQVJFTlRfS0VZO1xyXG5cdH1cclxuXHQjcHJlcGFyZUNvbmZpZygpIHtcclxuXHRcdERFRkFVTFRfVFRMX0NPTkZJRy5UVEwgPVxyXG5cdFx0XHRFbnZNYW5hZ2VyLmVudmlyb25tZW50Py5jYWNoZT8udHRsIHx8IERFRkFVTFRfVFRMX0NPTkZJRy5UVEw7XHJcblx0XHRERUZBVUxUX1RUTF9DT05GSUcuVU5JVCA9XHJcblx0XHRcdEVudk1hbmFnZXIuZW52aXJvbm1lbnQ/LmNhY2hlPy50dGxVbml0IHx8IERFRkFVTFRfVFRMX0NPTkZJRy5VTklUO1xyXG5cdFx0REVGQVVMVF9UVExfQ09ORklHLkFVVE9fQ0hFQ0sgPVxyXG5cdFx0XHRFbnZNYW5hZ2VyLmVudmlyb25tZW50Py5jYWNoZT8uYXV0b0NoZWNrID09ICdZRVMnO1xyXG5cdFx0REVGQVVMVF9UVExfQ09ORklHLlJFVFJZID1cclxuXHRcdFx0RW52TWFuYWdlci5lbnZpcm9ubWVudD8uY2FjaGU/LnJldHJ5IHx8IERFRkFVTFRfVFRMX0NPTkZJRy5SRVRSWTtcclxuXHR9XHJcblx0I2FkZDFTZWNvbmRUb01vZGlmaWVkRGF0ZShkYXRlOiBEYXRlKTogRGF0ZSB7XHJcblx0XHRsZXQgbmV3RGF0ZSA9IG5ldyBEYXRlKGRhdGUuZ2V0VGltZSgpKTtcclxuXHRcdG5ld0RhdGUuc2V0U2Vjb25kcyhuZXdEYXRlLmdldFNlY29uZHMoKSArIDEpO1xyXG5cdFx0cmV0dXJuIG5ld0RhdGU7XHJcblx0fVxyXG5cdCNjbGVhcih1c2VyTmFtZTogc3RyaW5nLCBrZXlPckFsbDogc3RyaW5nID0gJycpIHtcclxuXHRcdE9iamVjdC5rZXlzKHdpbmRvdy5sb2NhbFN0b3JhZ2UpXHJcblx0XHRcdC5maWx0ZXIoKHEpID0+XHJcblx0XHRcdFx0cS5zdGFydHNXaXRoKGAke3VzZXJOYW1lfV9fJHtERUZBVUxUX0NBQ0hFX09QVElPTlMuUFJFRklYfSR7a2V5T3JBbGx9YClcclxuXHRcdFx0KVxyXG5cdFx0XHQuZm9yRWFjaCgoa2V5KSA9PiB7XHJcblx0XHRcdFx0d2luZG93LmxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKGtleSk7XHJcblx0XHRcdH0pO1xyXG5cdH1cclxuXHQjdmFsaWRhdGVUVExGb3JLZXkob3B0aW9uczogQmFzZUNhY2hlT3B0aW9ucykge1xyXG5cdFx0Y29uc3QgZmlyc3RGZXRjaGluZ0RhdGUgPSB0aGlzLiNnZXRJdGVtKG9wdGlvbnMpPy5maXJzdEZldGNoaW5nRGF0ZTtcclxuXHJcblx0XHRpZiAoIWZpcnN0RmV0Y2hpbmdEYXRlKSByZXR1cm47XHJcblxyXG5cdFx0Y29uc3QgbW9tZW50RGF0ZTEgPSBtb21lbnQobmV3IERhdGUoZmlyc3RGZXRjaGluZ0RhdGUpKTtcclxuXHRcdGNvbnN0IG1vbWVudERhdGUyID0gbW9tZW50KG5ldyBEYXRlKCkpO1xyXG5cclxuXHRcdGNvbnN0IGRpZmZlcmVuY2UgPSBtb21lbnREYXRlMi5kaWZmKG1vbWVudERhdGUxLCBERUZBVUxUX1RUTF9DT05GSUcuVU5JVCk7XHJcblxyXG5cdFx0aWYgKGRpZmZlcmVuY2UgPj0gREVGQVVMVF9UVExfQ09ORklHLlRUTClcclxuXHRcdFx0dGhpcy4jY2xlYXIob3B0aW9ucy51c2VyTmFtZSwgb3B0aW9ucy5jYWNoZUtleSk7XHJcblx0fVxyXG5cdCNzZXRJdGVtSW5NYXAoa2V5OiBzdHJpbmcsIHZhbD86IENhY2hlSW5mbyk6IHZvaWQge1xyXG5cdFx0Y29uc3QgZW1wdHk6IENhY2hlSW5mbyA9IHtcclxuXHRcdFx0ZGF0YTogW10sXHJcblx0XHRcdGZpcnN0RmV0Y2hpbmdEYXRlOiAnJyxcclxuXHRcdFx0bGFzdE1vZGlmaWVkRGF0ZTogJycsXHJcblx0XHRcdHJlc3VsdHNDb3VudDogMCxcclxuXHRcdFx0ZmV0Y2hpbmdJdGVtc0Zyb21UaGVTZXJ2ZXI6IGZhbHNlLFxyXG5cdFx0XHRvbkZpbmlzaEZldGNoaW5nOiBuZXcgU3ViamVjdDxDYWNoZUluZm8+KClcclxuXHRcdH07XHJcblx0XHRsZXQgdmFsdWU6IENhY2hlSW5mbyA9IHZhbCA/IHZhbCA6IGVtcHR5O1xyXG5cdFx0dGhpcy4jZmV0Y2hlZEl0ZW1zW2tleV0gPSB2YWx1ZTtcclxuXHR9XHJcblx0I2dldEl0ZW0ob3B0aW9uczogQmFzZUNhY2hlT3B0aW9ucykge1xyXG5cdFx0bGV0IGRhdGE6IENhY2hlSW5mbztcclxuXHRcdGlmIChvcHRpb25zLmluTWVtb3J5KSB7XHJcblx0XHRcdGRhdGEgPSB0aGlzLiNmZXRjaGVkSXRlbXNbb3B0aW9ucy5jYWNoZUtleV07XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRjb25zdCB2YWx1ZSA9IHRoaXMudXNlclByZWZlcmVuY2VzU2VydmljZS5nZXQoXHJcblx0XHRcdFx0YCR7REVGQVVMVF9DQUNIRV9PUFRJT05TLlBSRUZJWH0ke29wdGlvbnMuY2FjaGVLZXl9YFxyXG5cdFx0XHQpO1xyXG5cdFx0XHRpZiAoIXZhbHVlKSByZXR1cm47XHJcblx0XHRcdGRhdGEgPSBKU09OLnBhcnNlKHZhbHVlKTtcclxuXHRcdH1cclxuXHRcdHJldHVybiBkYXRhO1xyXG5cdH1cclxuXHQjc2V0SXRlbSh2YWx1ZTogUmVjb3JkPHN0cmluZywgYW55Piwgb3B0aW9uczogQmFzZUNhY2hlT3B0aW9ucykge1xyXG5cdFx0aWYgKG9wdGlvbnMuaW5NZW1vcnkpIHJldHVybjtcclxuXHRcdGVsc2Uge1xyXG5cdFx0XHR0aGlzLnVzZXJQcmVmZXJlbmNlc1NlcnZpY2Uuc2V0KFxyXG5cdFx0XHRcdGAke0RFRkFVTFRfQ0FDSEVfT1BUSU9OUy5QUkVGSVh9JHtvcHRpb25zLmNhY2hlS2V5fWAsXHJcblx0XHRcdFx0SlNPTi5zdHJpbmdpZnkodmFsdWUpXHJcblx0XHRcdCk7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcbiJdfQ==
|