@openziti/ziti-console-lib 0.5.0 → 0.5.1
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/assets/styles/global.scss +126 -1
- package/assets/styles/ziti.css +7 -0
- package/esm2022/lib/features/custom-tags/custom-tags.component.mjs +5 -2
- package/esm2022/lib/features/data-table/column-headers/table-column-default/table-column-default.component.mjs +2 -2
- package/esm2022/lib/features/data-table/data-table.component.mjs +7 -7
- package/esm2022/lib/features/data-table/data-table.service.mjs +5 -5
- package/esm2022/lib/features/preview-list/preview-list.component.mjs +3 -3
- package/esm2022/lib/features/projectable-forms/configuration/configuration-form.component.mjs +12 -9
- package/esm2022/lib/features/projectable-forms/edge-router/edge-router-form.component.mjs +1 -2
- package/esm2022/lib/features/projectable-forms/edge-router-policy/edge-router-policy-form.component.mjs +13 -11
- package/esm2022/lib/features/projectable-forms/identity/identity-form.component.mjs +7 -8
- package/esm2022/lib/features/projectable-forms/projectable-form.class.mjs +8 -1
- package/esm2022/lib/features/projectable-forms/service/service-form.component.mjs +83 -23
- package/esm2022/lib/features/projectable-forms/service/service-form.service.mjs +32 -11
- package/esm2022/lib/features/projectable-forms/service-edge-router-policy/service-edge-router-policy-form.component.mjs +13 -11
- package/esm2022/lib/features/projectable-forms/service-policy/service-policy-form.component.mjs +14 -12
- package/esm2022/lib/features/wrappers/zac-wrapper-service.class.mjs +4 -1
- package/esm2022/lib/features/wrappers/zac-wrapper.component.mjs +5 -4
- package/esm2022/lib/features/wrappers/zac-wrapper.service.mjs +3 -3
- package/esm2022/lib/models/config.mjs +2 -1
- package/esm2022/lib/models/edge-router-policy.mjs +2 -1
- package/esm2022/lib/models/service-edge-router-policy.mjs +2 -1
- package/esm2022/lib/models/service-policy.mjs +2 -1
- package/esm2022/lib/services/settings-service.class.mjs +2 -2
- package/esm2022/lib/shared/list-page-component.class.mjs +2 -2
- package/fesm2022/openziti-ziti-console-lib.mjs +158 -62
- package/fesm2022/openziti-ziti-console-lib.mjs.map +1 -1
- package/lib/features/custom-tags/custom-tags.component.d.ts +3 -2
- package/lib/features/custom-tags/custom-tags.component.d.ts.map +1 -1
- package/lib/features/projectable-forms/configuration/configuration-form.component.d.ts.map +1 -1
- package/lib/features/projectable-forms/edge-router/edge-router-form.component.d.ts +0 -1
- package/lib/features/projectable-forms/edge-router/edge-router-form.component.d.ts.map +1 -1
- package/lib/features/projectable-forms/edge-router-policy/edge-router-policy-form.component.d.ts +0 -1
- package/lib/features/projectable-forms/edge-router-policy/edge-router-policy-form.component.d.ts.map +1 -1
- package/lib/features/projectable-forms/identity/identity-form.component.d.ts +0 -1
- package/lib/features/projectable-forms/identity/identity-form.component.d.ts.map +1 -1
- package/lib/features/projectable-forms/projectable-form.class.d.ts +7 -0
- package/lib/features/projectable-forms/projectable-form.class.d.ts.map +1 -1
- package/lib/features/projectable-forms/service/service-form.component.d.ts +3 -1
- package/lib/features/projectable-forms/service/service-form.component.d.ts.map +1 -1
- package/lib/features/projectable-forms/service/service-form.service.d.ts +5 -1
- package/lib/features/projectable-forms/service/service-form.service.d.ts.map +1 -1
- package/lib/features/projectable-forms/service-edge-router-policy/service-edge-router-policy-form.component.d.ts +0 -1
- package/lib/features/projectable-forms/service-edge-router-policy/service-edge-router-policy-form.component.d.ts.map +1 -1
- package/lib/features/projectable-forms/service-policy/service-policy-form.component.d.ts +0 -1
- package/lib/features/projectable-forms/service-policy/service-policy-form.component.d.ts.map +1 -1
- package/lib/features/wrappers/zac-wrapper-service.class.d.ts.map +1 -1
- package/lib/features/wrappers/zac-wrapper.component.d.ts.map +1 -1
- package/lib/features/wrappers/zac-wrapper.service.d.ts +1 -0
- package/lib/features/wrappers/zac-wrapper.service.d.ts.map +1 -1
- package/lib/models/config.d.ts +1 -0
- package/lib/models/config.d.ts.map +1 -1
- package/lib/models/edge-router-policy.d.ts +1 -0
- package/lib/models/edge-router-policy.d.ts.map +1 -1
- package/lib/models/service-edge-router-policy.d.ts +1 -0
- package/lib/models/service-edge-router-policy.d.ts.map +1 -1
- package/lib/models/service-policy.d.ts +1 -0
- package/lib/models/service-policy.d.ts.map +1 -1
- package/package.json +3 -3
|
@@ -1,3 +1,53 @@
|
|
|
1
|
+
body {
|
|
2
|
+
--highlighted: #f5a93d;
|
|
3
|
+
--red: #ff104b;
|
|
4
|
+
--green: #00db48;
|
|
5
|
+
--white: #FFF;
|
|
6
|
+
--menu: #434c5e;
|
|
7
|
+
--stroke: #d4d9e2;
|
|
8
|
+
--black: #000;
|
|
9
|
+
--shaded: #f6f7fb;
|
|
10
|
+
--formBackground: #f6f7fb;
|
|
11
|
+
--visualizerBackground: #ffffff80;
|
|
12
|
+
--background: #ffffff;
|
|
13
|
+
--placeholder: #CDCDCD;
|
|
14
|
+
--text: #000;
|
|
15
|
+
--tableText: #000;
|
|
16
|
+
--table: #ffffff;
|
|
17
|
+
--shadow: 0px 0px 8px 2px rgba(0,0,0,0.08);
|
|
18
|
+
--shadowLarge: 0 12px 23px 0 rgba(0, 0, 0, .07);
|
|
19
|
+
--shadowColor: rgba(0,0,0,0.08);
|
|
20
|
+
--transition: 0.5s;
|
|
21
|
+
--offWhite: #FCFCFC;
|
|
22
|
+
--dark: #28292B;
|
|
23
|
+
--formBase: #919ca5;
|
|
24
|
+
--formGroup: #232f3e;
|
|
25
|
+
--formSubGroup: #5e7088;
|
|
26
|
+
--modalBorderRadius: 15px;
|
|
27
|
+
--paddingSmall: 5px;
|
|
28
|
+
--paddingMedium: 10px;
|
|
29
|
+
--paddingLarge: 10px;
|
|
30
|
+
--paddingXL: 15px;
|
|
31
|
+
--paddingXXL: 20px;
|
|
32
|
+
--marginSmall: 5px;
|
|
33
|
+
--marginMedium: 10px;
|
|
34
|
+
--marginLarge: 10px;
|
|
35
|
+
--marginXL: 15px;
|
|
36
|
+
--marginXXL: 20px;
|
|
37
|
+
--gapSmall: 5px;
|
|
38
|
+
--gapMedium: 10px;
|
|
39
|
+
--gapLarge: 10px;
|
|
40
|
+
--gapXL: 15px;
|
|
41
|
+
--defaultInputHeight: 43px;
|
|
42
|
+
--defaultLineHeight: 15px;
|
|
43
|
+
--inputBorderRadius: 7px;
|
|
44
|
+
--inputBorderWidth: 2px;
|
|
45
|
+
--spinnerSizeMedium: 20px;
|
|
46
|
+
--spinerBorderTopMedium: 2px solid var(--stroke);
|
|
47
|
+
--spinerBorderRightMedium: 2px solid var(--stroke);
|
|
48
|
+
--spinerBorderBottomMedium: 2px solid transparent;
|
|
49
|
+
--spinerBorderLeftMedium: 2px solid transparent;
|
|
50
|
+
}
|
|
1
51
|
|
|
2
52
|
body {
|
|
3
53
|
overflow: hidden;
|
|
@@ -941,4 +991,79 @@ lib-tag-selector {
|
|
|
941
991
|
margin-top: 10px;
|
|
942
992
|
transition: var(--transition);
|
|
943
993
|
}
|
|
944
|
-
}
|
|
994
|
+
}
|
|
995
|
+
|
|
996
|
+
.dropdown-loading {
|
|
997
|
+
.p-dropdown {
|
|
998
|
+
&.p-component {
|
|
999
|
+
.p-inputtext {
|
|
1000
|
+
&.p-dropdown-label {
|
|
1001
|
+
background: none;
|
|
1002
|
+
}
|
|
1003
|
+
}
|
|
1004
|
+
}
|
|
1005
|
+
}
|
|
1006
|
+
}
|
|
1007
|
+
|
|
1008
|
+
p-dropdown {
|
|
1009
|
+
.p-dropdown {
|
|
1010
|
+
&.p-component {
|
|
1011
|
+
width: 100%;
|
|
1012
|
+
border-radius: var(--inputBorderRadius);
|
|
1013
|
+
height: var(--defaultInputHeight);
|
|
1014
|
+
font-family: 'Open Sans', Arial, sans-serif;
|
|
1015
|
+
border-color: var(--stroke);
|
|
1016
|
+
border-style: solid;
|
|
1017
|
+
border-width: var(--inputBorderWidth);
|
|
1018
|
+
|
|
1019
|
+
.p-inputtext {
|
|
1020
|
+
font-size: 14px;
|
|
1021
|
+
font-family: 'Open Sans', Arial, sans-serif;
|
|
1022
|
+
padding: 7px;
|
|
1023
|
+
border-radius: var(--inputBorderRadius);
|
|
1024
|
+
}
|
|
1025
|
+
|
|
1026
|
+
&.p-focus {
|
|
1027
|
+
box-shadow: none;
|
|
1028
|
+
border-color: var(--primary);
|
|
1029
|
+
border-width: var(--inputBorderWidth);
|
|
1030
|
+
}
|
|
1031
|
+
|
|
1032
|
+
.p-dropdown-header {
|
|
1033
|
+
padding: 10px;
|
|
1034
|
+
|
|
1035
|
+
.p-dropdown-filter {
|
|
1036
|
+
box-shadow: none;
|
|
1037
|
+
border-style: solid;
|
|
1038
|
+
border-width: var(--inputBorderWidth);
|
|
1039
|
+
border-color: var(--stroke);
|
|
1040
|
+
|
|
1041
|
+
&:focus {
|
|
1042
|
+
border-color: var(--primary);
|
|
1043
|
+
}
|
|
1044
|
+
}
|
|
1045
|
+
}
|
|
1046
|
+
|
|
1047
|
+
.p-inputtext {
|
|
1048
|
+
&.p-dropdown-label {
|
|
1049
|
+
background-image: url(/assets/svgs/ArrowDown.svg);
|
|
1050
|
+
background-position: center right 10px;
|
|
1051
|
+
background-repeat: no-repeat;
|
|
1052
|
+
background-size: 18px;
|
|
1053
|
+
min-height: var(--defaultInputHeight);
|
|
1054
|
+
font-family: 'Open Sans', Arial, sans-serif;
|
|
1055
|
+
font-size: 14px;
|
|
1056
|
+
color: var(--tableText);
|
|
1057
|
+
height: 43px;
|
|
1058
|
+
line-height: 40px;
|
|
1059
|
+
padding: 0;
|
|
1060
|
+
padding-left: var(--inputBorderRadius);
|
|
1061
|
+
}
|
|
1062
|
+
}
|
|
1063
|
+
|
|
1064
|
+
.p-dropdown-trigger {
|
|
1065
|
+
display: none;
|
|
1066
|
+
}
|
|
1067
|
+
}
|
|
1068
|
+
}
|
|
1069
|
+
}
|
package/assets/styles/ziti.css
CHANGED
|
@@ -43,6 +43,13 @@ body {
|
|
|
43
43
|
--gapXL: 15px;
|
|
44
44
|
--defaultInputHeight: 43px;
|
|
45
45
|
--defaultLineHeight: 15px;
|
|
46
|
+
--inputBorderRadius: 7px;
|
|
47
|
+
--inputBorderWidth: 2px;
|
|
48
|
+
--spinnerSizeMedium: 20px;
|
|
49
|
+
--spinerBorderTopMedium: 2px solid var(--stroke);
|
|
50
|
+
--spinerBorderRightMedium: 2px solid var(--stroke);
|
|
51
|
+
--spinerBorderBottomMedium: 2px solid transparent;
|
|
52
|
+
--spinerBorderLeftMedium: 2px solid transparent;
|
|
46
53
|
}
|
|
47
54
|
|
|
48
55
|
::placeholder {
|
|
@@ -31,6 +31,9 @@ class CustomTagsComponent {
|
|
|
31
31
|
ngOnInit() {
|
|
32
32
|
this.updateTagsArray();
|
|
33
33
|
}
|
|
34
|
+
ngOnChanges(changes) {
|
|
35
|
+
this.updateTagsArray();
|
|
36
|
+
}
|
|
34
37
|
updateTagsArray() {
|
|
35
38
|
this.tagsArray = map(this.tags, (value, key) => {
|
|
36
39
|
return { name: key, value: value };
|
|
@@ -63,7 +66,7 @@ class CustomTagsComponent {
|
|
|
63
66
|
event.preventDefault();
|
|
64
67
|
}
|
|
65
68
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CustomTagsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
66
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CustomTagsComponent, selector: "lib-custom-tags", inputs: { tags: "tags" }, outputs: { tagsChange: "tagsChange" }, ngImport: i0, template: "<div id=\"TagExtended\">\n <div class=\"grid tags\">\n <label>Name</label><label>Value</label>\n </div>\n <div id=\"NewTags\" >\n <div class=\"grid tags\" *ngFor=\"let tag of tagsArray\">\n <input\n id=\"NewKey\"\n maxlength=\"100\"\n placeholder=\"enter the tag key\"\n [(ngModel)]=\"tag['name']\"\n (keyup.enter)=\"enterKeyPressed($event)\"\n >\n <input\n id=\"NewValue\"\n placeholder=\"enter the value\"\n type=\"text\"\n maxlength=\"100\"\n [(ngModel)]=\"tag['value']\"\n (keyup.enter)=\"enterKeyPressed($event)\"\n >\n <div class=\"removeIcon icon-clear\" (click)=\"removeTag(tag.name)\"></div>\n </div>\n </div>\n <div class=\"grid tags\">\n <input id=\"NewKey\" (keyup.enter)=\"enterKeyPressed($event)\" [(ngModel)]=\"newTagName\" [ngClass]=\"{invalid: this.errors.name}\" maxlength=\"100\" placeholder=\"enter the tag key\">\n <input id=\"NewValue\" (keyup.enter)=\"enterKeyPressed($event)\" [(ngModel)]=\"newTagValue\" [ngClass]=\"{invalid: this.errors.value}\" placeholder=\"enter the value\" maxlength=\"100\">\n <div id=\"AddCustomButton\" class=\"addIcon icon-add\" (click)=\"addTag()\"></div>\n </div>\n</div>", styles: [".grid.tags .invalid{border-color:var(--red)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
|
|
69
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CustomTagsComponent, selector: "lib-custom-tags", inputs: { tags: "tags" }, outputs: { tagsChange: "tagsChange" }, usesOnChanges: true, ngImport: i0, template: "<div id=\"TagExtended\">\n <div class=\"grid tags\">\n <label>Name</label><label>Value</label>\n </div>\n <div id=\"NewTags\" >\n <div class=\"grid tags\" *ngFor=\"let tag of tagsArray\">\n <input\n id=\"NewKey\"\n maxlength=\"100\"\n placeholder=\"enter the tag key\"\n [(ngModel)]=\"tag['name']\"\n (keyup.enter)=\"enterKeyPressed($event)\"\n >\n <input\n id=\"NewValue\"\n placeholder=\"enter the value\"\n type=\"text\"\n maxlength=\"100\"\n [(ngModel)]=\"tag['value']\"\n (keyup.enter)=\"enterKeyPressed($event)\"\n >\n <div class=\"removeIcon icon-clear\" (click)=\"removeTag(tag.name)\"></div>\n </div>\n </div>\n <div class=\"grid tags\">\n <input id=\"NewKey\" (keyup.enter)=\"enterKeyPressed($event)\" [(ngModel)]=\"newTagName\" [ngClass]=\"{invalid: this.errors.name}\" maxlength=\"100\" placeholder=\"enter the tag key\">\n <input id=\"NewValue\" (keyup.enter)=\"enterKeyPressed($event)\" [(ngModel)]=\"newTagValue\" [ngClass]=\"{invalid: this.errors.value}\" placeholder=\"enter the value\" maxlength=\"100\">\n <div id=\"AddCustomButton\" class=\"addIcon icon-add\" (click)=\"addTag()\"></div>\n </div>\n</div>", styles: [".grid.tags .invalid{border-color:var(--red)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
|
|
67
70
|
}
|
|
68
71
|
export { CustomTagsComponent };
|
|
69
72
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CustomTagsComponent, decorators: [{
|
|
@@ -74,4 +77,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
74
77
|
}], tagsChange: [{
|
|
75
78
|
type: Output
|
|
76
79
|
}] } });
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXRhZ3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMveml0aS1jb25zb2xlLWxpYi9zcmMvbGliL2ZlYXR1cmVzL2N1c3RvbS10YWdzL2N1c3RvbS10YWdzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ppdGktY29uc29sZS1saWIvc3JjL2xpYi9mZWF0dXJlcy9jdXN0b20tdGFncy9jdXN0b20tdGFncy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7RUFjRTtBQUVGLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFnQixNQUFNLGVBQWUsQ0FBQztBQUN2RyxPQUFPLEVBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUMsTUFBTSxRQUFRLENBQUM7Ozs7QUFFM0MsTUFLYSxtQkFBbUI7SUFXOUI7UUFUUyxTQUFJLEdBQVEsRUFBRSxDQUFDO1FBQ2QsZUFBVSxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBRWxFLGNBQVMsR0FBRyxFQUFFLENBQUM7UUFDZixlQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLFdBQU0sR0FBUSxFQUFFLENBQUM7UUFDakIsV0FBTSxHQUFHLE1BQU0sQ0FBQztJQUVELENBQUM7SUFFaEIsUUFBUTtRQUNOLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQTtJQUN4QixDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUU7WUFDN0MsT0FBTyxFQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBQyxDQUFBO1FBQ2xDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDakIsSUFBRyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQzNCLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDO1NBQzVCO1FBQ0QsSUFBRyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQzVCLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDO1NBQzdCO1FBQ0QsSUFBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDeEIsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUM5QyxJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELFNBQVMsQ0FBQyxPQUFlO1FBQ3ZCLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsZUFBZSxDQUFDLEtBQUs7UUFDbkIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2QsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN6QixDQUFDOytHQXREVSxtQkFBbUI7bUdBQW5CLG1CQUFtQiw2SUN4QmhDLDgzQ0E2Qk07O1NETE8sbUJBQW1COzRGQUFuQixtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0UsaUJBQWlCOzBFQU1sQixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0ksVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gICAgQ29weXJpZ2h0IE5ldEZvdW5kcnkgSW5jLlxuXG4gICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG5cbiAgICBodHRwczovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG5cbiAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiovXG5cbmltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7aXNFbXB0eSwgbWFwLCB1bnNldH0gZnJvbSBcImxvZGFzaFwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItY3VzdG9tLXRhZ3MnLFxuICB0ZW1wbGF0ZVVybDogJy4vY3VzdG9tLXRhZ3MuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jdXN0b20tdGFncy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEN1c3RvbVRhZ3NDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG5cbiAgQElucHV0KCkgdGFnczogYW55ID0ge307XG4gIEBPdXRwdXQoKSB0YWdzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIHRhZ3NBcnJheSA9IFtdO1xuICBuZXdUYWdOYW1lID0gJyc7XG4gIG5ld1RhZ1ZhbHVlID0gJyc7XG4gIGVycm9yczogYW55ID0ge307XG4gIG9iamVjdCA9IE9iamVjdDtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy51cGRhdGVUYWdzQXJyYXkoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICB0aGlzLnVwZGF0ZVRhZ3NBcnJheSgpXG4gIH1cblxuICB1cGRhdGVUYWdzQXJyYXkoKSB7XG4gICAgdGhpcy50YWdzQXJyYXkgPSBtYXAodGhpcy50YWdzLCAodmFsdWUsIGtleSkgPT4ge1xuICAgICAgcmV0dXJuIHtuYW1lOiBrZXksIHZhbHVlOiB2YWx1ZX1cbiAgICB9KTtcbiAgICB0aGlzLnRhZ3NDaGFuZ2UuZW1pdCh0aGlzLnRhZ3MpO1xuICB9XG5cbiAgYWRkVGFnKCkge1xuICAgIHRoaXMuZXJyb3JzID0ge307XG4gICAgaWYoaXNFbXB0eSh0aGlzLm5ld1RhZ05hbWUpKSB7XG4gICAgICB0aGlzLmVycm9yc1snbmFtZSddID0gdHJ1ZTtcbiAgICB9XG4gICAgaWYoaXNFbXB0eSh0aGlzLm5ld1RhZ1ZhbHVlKSkge1xuICAgICAgdGhpcy5lcnJvcnNbJ3ZhbHVlJ10gPSB0cnVlO1xuICAgIH1cbiAgICBpZighaXNFbXB0eSh0aGlzLmVycm9ycykpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy50YWdzW3RoaXMubmV3VGFnTmFtZV0gPSB0aGlzLm5ld1RhZ1ZhbHVlO1xuICAgIHRoaXMubmV3VGFnTmFtZSA9ICcnO1xuICAgIHRoaXMubmV3VGFnVmFsdWUgPSAnJztcbiAgICB0aGlzLnVwZGF0ZVRhZ3NBcnJheSgpO1xuICB9XG5cbiAgcmVtb3ZlVGFnKHRhZ05hbWU6IHN0cmluZykge1xuICAgIHVuc2V0KHRoaXMudGFncywgdGFnTmFtZSk7XG4gICAgdGhpcy51cGRhdGVUYWdzQXJyYXkoKTtcbiAgfVxuXG4gIGVudGVyS2V5UHJlc3NlZChldmVudCkge1xuICAgIHRoaXMuYWRkVGFnKCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgfVxufVxuIiwiPGRpdiBpZD1cIlRhZ0V4dGVuZGVkXCI+XG4gICAgPGRpdiBjbGFzcz1cImdyaWQgdGFnc1wiPlxuICAgICAgICA8bGFiZWw+TmFtZTwvbGFiZWw+PGxhYmVsPlZhbHVlPC9sYWJlbD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGlkPVwiTmV3VGFnc1wiID5cbiAgICAgICAgPGRpdiBjbGFzcz1cImdyaWQgdGFnc1wiICpuZ0Zvcj1cImxldCB0YWcgb2YgdGFnc0FycmF5XCI+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICBpZD1cIk5ld0tleVwiXG4gICAgICAgICAgICAgICAgbWF4bGVuZ3RoPVwiMTAwXCJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cImVudGVyIHRoZSB0YWcga2V5XCJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInRhZ1snbmFtZSddXCJcbiAgICAgICAgICAgICAgICAoa2V5dXAuZW50ZXIpPVwiZW50ZXJLZXlQcmVzc2VkKCRldmVudClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgaWQ9XCJOZXdWYWx1ZVwiXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJlbnRlciB0aGUgdmFsdWVcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICBtYXhsZW5ndGg9XCIxMDBcIlxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwidGFnWyd2YWx1ZSddXCJcbiAgICAgICAgICAgICAgICAoa2V5dXAuZW50ZXIpPVwiZW50ZXJLZXlQcmVzc2VkKCRldmVudClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlbW92ZUljb24gaWNvbi1jbGVhclwiIChjbGljayk9XCJyZW1vdmVUYWcodGFnLm5hbWUpXCI+PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJncmlkIHRhZ3NcIj5cbiAgICAgICAgPGlucHV0IGlkPVwiTmV3S2V5XCIgKGtleXVwLmVudGVyKT1cImVudGVyS2V5UHJlc3NlZCgkZXZlbnQpXCIgWyhuZ01vZGVsKV09XCJuZXdUYWdOYW1lXCIgW25nQ2xhc3NdPVwie2ludmFsaWQ6IHRoaXMuZXJyb3JzLm5hbWV9XCIgbWF4bGVuZ3RoPVwiMTAwXCIgcGxhY2Vob2xkZXI9XCJlbnRlciB0aGUgdGFnIGtleVwiPlxuICAgICAgICA8aW5wdXQgaWQ9XCJOZXdWYWx1ZVwiIChrZXl1cC5lbnRlcik9XCJlbnRlcktleVByZXNzZWQoJGV2ZW50KVwiIFsobmdNb2RlbCldPVwibmV3VGFnVmFsdWVcIiBbbmdDbGFzc109XCJ7aW52YWxpZDogdGhpcy5lcnJvcnMudmFsdWV9XCIgcGxhY2Vob2xkZXI9XCJlbnRlciB0aGUgdmFsdWVcIiBtYXhsZW5ndGg9XCIxMDBcIj5cbiAgICAgICAgPGRpdiBpZD1cIkFkZEN1c3RvbUJ1dHRvblwiIGNsYXNzPVwiYWRkSWNvbiBpY29uLWFkZFwiIChjbGljayk9XCJhZGRUYWcoKVwiPjwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+Il19
|
|
@@ -118,7 +118,7 @@ class TableColumnDefaultComponent {
|
|
|
118
118
|
}
|
|
119
119
|
});
|
|
120
120
|
headerParams.api.addEventListener('columnEverythingChanged', (event) => {
|
|
121
|
-
_.forEach(event.
|
|
121
|
+
_.forEach(event.api?.columnModel?.columnDefs, colDef => {
|
|
122
122
|
if (this.columnDef.colId === colDef.colId && colDef.headerComponentParams?.filterOptions) {
|
|
123
123
|
this.updateFilterOptions();
|
|
124
124
|
}
|
|
@@ -266,4 +266,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
266
266
|
type: ViewChild,
|
|
267
267
|
args: ['menuButton']
|
|
268
268
|
}] } });
|
|
269
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29sdW1uLWRlZmF1bHQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMveml0aS1jb25zb2xlLWxpYi9zcmMvbGliL2ZlYXR1cmVzL2RhdGEtdGFibGUvY29sdW1uLWhlYWRlcnMvdGFibGUtY29sdW1uLWRlZmF1bHQvdGFibGUtY29sdW1uLWRlZmF1bHQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMveml0aS1jb25zb2xlLWxpYi9zcmMvbGliL2ZlYXR1cmVzL2RhdGEtdGFibGUvY29sdW1uLWhlYWRlcnMvdGFibGUtY29sdW1uLWRlZmF1bHQvdGFibGUtY29sdW1uLWRlZmF1bHQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0VBY0U7QUFFRixPQUFPLEVBQWdCLFNBQVMsRUFBc0IsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBR3RGLE9BQU8sQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUN2QixPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sTUFBTSxDQUFDOzs7Ozs7QUFHbEMsTUFLYSwyQkFBMkI7SUFrQ3RDLFlBQW9CLGFBQXFDO1FBQXJDLGtCQUFhLEdBQWIsYUFBYSxDQUF3QjtRQTlCekQsaUJBQVksR0FBUTtZQUNsQixHQUFHLEVBQUUsRUFBRTtTQUNSLENBQUM7UUFNRixjQUFTLEdBQVE7WUFDZixPQUFPLEVBQUUsU0FBUztZQUNsQixLQUFLLEVBQUUsU0FBUztZQUNoQixTQUFTLEVBQUUsU0FBUztZQUNwQixVQUFVLEVBQUUsU0FBUztTQUN0QixDQUFDO1FBQ0YsZUFBVSxHQUFHLFdBQVcsQ0FBQztRQUN6QixrQkFBYSxHQUFHLEVBQUUsQ0FBQztRQUNuQixrQkFBYSxHQUFRLEVBQUUsQ0FBQztRQUN4QixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBRWxCLGVBQVUs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RSwwQkFBMEI7NkdBb0NYLFVBQVU7c0JBQWxDLFNBQVM7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gICAgQ29weXJpZ2h0IE5ldEZvdW5kcnkgSW5jLlxuXG4gICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG5cbiAgICBodHRwczovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG5cbiAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiovXG5cbmltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBPbkluaXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0lIZWFkZXJBbmd1bGFyQ29tcH0gZnJvbSAnYWctZ3JpZC1hbmd1bGFyJztcbmltcG9ydCB7SUhlYWRlclBhcmFtc30gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHtEYXRhVGFibGVGaWx0ZXJTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vZGF0YS10YWJsZS1maWx0ZXIuc2VydmljZVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtdGFibGUtY29sdW1uLWRlZmF1bHQnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFibGUtY29sdW1uLWRlZmF1bHQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90YWJsZS1jb2x1bW4tZGVmYXVsdC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBUYWJsZUNvbHVtbkRlZmF1bHRDb21wb25lbnQgaW1wbGVtZW50cyBJSGVhZGVyQW5ndWxhckNvbXAsIEFmdGVyVmlld0luaXQsIE9uSW5pdCB7XG4gIGl0ZW06IHtcbiAgICBzZWxlY3RlZDogYm9vbGVhbjtcbiAgfTtcbiAgaGVhZGVyUGFyYW1zOiBhbnkgPSB7XG4gICAgYXBpOiB7fSxcbiAgfTtcbiAgaGVhZGVyTmFtZTtcbiAgZW5hYmxlU29ydGluZztcbiAgc29ydERpcjtcbiAgc29ydENvbDtcbiAgY29sdW1uT2JqO1xuICBjb2x1bW5EZWY6IGFueSA9IHtcbiAgICBzb3J0RGlyOiB1bmRlZmluZWQsXG4gICAgY29sSWQ6IHVuZGVmaW5lZCxcbiAgICBwaW5Db2x1bW46IHVuZGVmaW5lZCxcbiAgICBzb3J0Q29sdW1uOiB1bmRlZmluZWQsXG4gIH07XG4gIGZpbHRlclR5cGUgPSAnVEVYVElOUFVUJztcbiAgZmlsdGVyT3B0aW9ucyA9IFtdO1xuICBjb2x1bW5GaWx0ZXJzOiBhbnkgPSB7fTtcbiAgZmlsdGVyaW5nID0gZmFsc2U7XG4gIHBpbm5lZDtcbiAgc2hvd0ZpbHRlciA9IGZhbHNlO1xuICBjb21ib0FjdGl2ZSA9IGZhbHNlO1xuICBzaG93U2Vjb25kYXJ5RmlsdGVyID0gZmFsc2U7XG4gIF9zaG93Q29sdW1uTWVudTtcblxuICBvbmxpbmVTdGF0dXNGaWx0ZXI7XG4gIHNob3dCdWJibGUgPSBmYWxzZTtcbiAgc2hvd0xvYWRlciA9IGZhbHNlO1xuICBwcml2YXRlIHN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgQFZpZXdDaGlsZCgnbWVudUJ1dHRvbicpIG1lbnVCdXR0b246IEVsZW1lbnRSZWY7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmaWx0ZXJTZXJ2aWNlOiBEYXRhVGFibGVGaWx0ZXJTZXJ2aWNlKSB7XG4gICAgaWYgKCF0aGlzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuaXRlbSA9IHtcbiAgICAgIHNlbGVjdGVkOiBmYWxzZSxcbiAgICB9O1xuICB9XG5cbiAgX3N0YXR1c0NsYXNzID0gJ3Y3T2ZmbGluZSc7XG5cbiAgZ2V0IHN0YXR1c0NsYXNzKCk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLnNob3dCdWJibGUpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gICAgY29uc3Qgc3RhdHVzID0gXy5nZXQoXG4gICAgICB0aGlzLmNvbHVtbk9iaixcbiAgICAgICdncmlkQXBpLmNvbHVtbkZpbHRlcnMuaGFzQXBpU2Vzc2lvbicsXG4gICAgICBfLmdldCh0aGlzLmNvbHVtbk9iaiwgJ2dyaWRBcGkuY29sdW1uRmlsdGVycy5vbmxpbmUnKVxuICAgICk7XG4gICAgc3dpdGNoIChzdGF0dXMpIHtcbiAgICAgIGNhc2UgJ2FsbCc6XG4gICAgICAgIHRoaXMuX3N0YXR1c0NsYXNzID0gJ3Y3T25saW5lT2ZmbGluZSc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZmFsc2UnOlxuICAgICAgICB0aGlzLl9zdGF0dXNDbGFzcyA9ICd2N09mZmxpbmUnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3RydWUnOlxuICAgICAgICB0aGlzLl9zdGF0dXNDbGFzcyA9ICd2N09ubGluZSc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAncHJvdmlzaW9uaW5nJzpcbiAgICAgICAgdGhpcy5fc3RhdHVzQ2xhc3MgPSAnJztcbiAgICAgICAgdGhpcy5zaG93TG9hZGVyID0gdHJ1ZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdlcnJvcic6XG4gICAgICAgIHRoaXMuX3N0YXR1c0NsYXNzID0gJ3Y3RXJyb3InO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRoaXMuX3N0YXR1c0NsYXNzID0gJ3Y3T25saW5lT2ZmbGluZSc7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fc3RhdHVzQ2xhc3M7XG4gIH1cblxuICBnZXQgZmlsdGVyQXBwbGllZCgpOiBib29sZWFuIHtcbiAgICBjb25zdCBjb2x1bW5JZCA9IF8uZ2V0KHRoaXMuY29sdW1uRGVmLCAnY29sSWQnKTtcbiAgICBjb25zdCBmaWx0ZXJWYWwgPSBfLmdldCh0aGlzLmhlYWRlclBhcmFtcywgYGFwaS5jb2x1bW5GaWx0ZXJzLiR7Y29sdW1uSWR9YCk7XG4gICAgcmV0dXJuICFfLmlzRW1wdHkoZmlsdGVyVmFsKSB8fCB0aGlzLnNob3dGaWx0ZXIgfHwgdGhpcy5maWx0ZXJpbmc7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcblxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKVxuICB9XG5cbiAgYWdJbml0KGhlYWRlclBhcmFtczogYW55ID0ge30pOiB2b2lkIHtcbiAgICBpZiAoIWhlYWRlclBhcmFtcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmhlYWRlclBhcmFtcyA9IGhlYWRlclBhcmFtcztcbiAgICB0aGlzLmVuYWJsZVNvcnRpbmcgPSBoZWFkZXJQYXJhbXMuZW5hYmxlU29ydGluZztcbiAgICB0aGlzLmhlYWRlck5hbWUgPSBoZWFkZXJQYXJhbXMuZGlzcGxheU5hbWU7XG4gICAgdGhpcy5jb2x1bW5PYmogPSBoZWFkZXJQYXJhbXMuY29sdW1uO1xuICAgIHRoaXMuZmlsdGVyVHlwZSA9IGhlYWRlclBhcmFtcy5maWx0ZXJUeXBlIHx8ICdURVhUSU5QVVQnO1xuICAgIHRoaXMuY29sdW1uRmlsdGVycyA9IGhlYWRlclBhcmFtcy5jb2x1bW5GaWx0ZXJzO1xuICAgIHRoaXMuY29sdW1uRGVmID0gdGhpcy5jb2x1bW5PYmouY29sRGVmO1xuICAgIHRoaXMucGlubmVkID0gdGhpcy5jb2x1bW5PYmoucGlubmVkID09PSAnbGVmdCc7XG4gICAgdGhpcy5zb3J0RGlyID0gdGhpcy5jb2x1bW5EZWYuc29ydERpciB8fCAnbm9uZSc7XG4gICAgdGhpcy5vbmxpbmVTdGF0dXNGaWx0ZXIgPSBfLmhhcyh0aGlzLmNvbHVtbkZpbHRlcnMsICdoYXNBcGlTZXNzaW9uJykgPyAnaGFzQXBpU2Vzc2lvbicgOiAnb25saW5lJztcbiAgICB0aGlzLnNob3dCdWJibGUgPVxuICAgICAgdGhpcy5jb2x1bW5EZWYuY29sSWQgPT09ICduYW1lJyAmJlxuICAgICAgKF8uaGFzKHRoaXMuY29sdW1uRmlsdGVycywgJ2hhc0FwaVNlc3Npb24nKSB8fCBfLmhhcyh0aGlzLmNvbHVtbkZpbHRlcnMsICdvbmxpbmUnKSk7XG4gICAgdGhpcy5fc2hvd0NvbHVtbk1lbnUgPSBoZWFkZXJQYXJhbXMuc2hvd0NvbHVtbk1lbnU7XG4gICAgdGhpcy51cGRhdGVGaWx0ZXJPcHRpb25zKCk7XG4gICAgaGVhZGVyUGFyYW1zLmFwaS5hZGRFdmVudExpc3RlbmVyKCdzb3J0Q2hhbmdlZCcsIChldmVudCkgPT4ge1xuICAgICAgY29uc3QgY29sSWQgPSBfLmdldChldmVudCwgJ2NvbHVtbkRlZi5jb2xJZCcsICcnKTtcbiAgICAgIGlmIChjb2xJZCAhPT0gdGhpcy5jb2x1bW5EZWYuY29sSWQpIHtcbiAgICAgICAgdGhpcy5zb3J0RGlyID0gdW5kZWZpbmVkO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zb3J0RGlyID0gXy5nZXQoZXZlbnQsICdzb3J0RGlyJyk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgaGVhZGVyUGFyYW1zLmFwaS5hZGRFdmVudExpc3RlbmVyKCdjb2x1bW5FdmVyeXRoaW5nQ2hhbmdlZCcsIChldmVudCkgPT4ge1xuICAgICAgXy5mb3JFYWNoKGV2ZW50LmNvbHVtbkFwaS5jb2x1bW5Nb2RlbC5jb2x1bW5EZWZzLCBjb2xEZWYgPT4ge1xuICAgICAgICBpZiAodGhpcy5jb2x1bW5EZWYuY29sSWQgPT09IGNvbERlZi5jb2xJZCAmJiBjb2xEZWYuaGVhZGVyQ29tcG9uZW50UGFyYW1zPy5maWx0ZXJPcHRpb25zKSB7XG4gICAgICAgICAgdGhpcy51cGRhdGVGaWx0ZXJPcHRpb25zKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGlmICh0aGlzLnNob3dCdWJibGUpIHtcbiAgICAgIC8vIHRoaXMudXBkYXRlU3RhdHVzQ2xhc3MoKTtcbiAgICB9XG4gIH1cblxuICBwaW4oKTogdm9pZCB7XG4gICAgdGhpcy5jb2x1bW5EZWYucGluQ29sdW1uKHRoaXMuY29sdW1uT2JqLCB0aGlzLnBpbm5lZCA/IGZhbHNlIDogJ2xlZnQnKTtcbiAgICB0aGlzLnBpbm5lZCA9ICF0aGlzLnBpbm5lZDtcbiAgfVxuXG4gIGhpZGUoKTogdm9pZCB7XG4gICAgdGhpcy5oZWFkZXJQYXJhbXMuYXBpLnppdGlIaWRlQ29sdW1uKHRoaXMuY29sdW1uT2JqLCBmYWxzZSk7XG4gIH1cblxuICBzb3J0KGV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmNvbHVtbkRlZi5zb3J0YWJsZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCB0YXJnZXRJZCA9IF8uZ2V0KGV2ZW50LCAndGFyZ2V0LmlkJyk7XG4gICAgaWYgKFxuICAgICAgXy5pbmNsdWRlcyhcbiAgICAgICAgW2BIZWFkZXJTdGF0dXNfJHt0aGlzLmNvbHVtbkRlZi5jb2xJZH1gLCAnU2VhcmNoRmlsdGVyJywgYEhlYWRlckZpbHRlckljb25fJHt0aGlzLmNvbHVtbkRlZi5jb2xJZH1gXSxcbiAgICAgICAgdGFyZ2V0SWRcbiAgICAgIClcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKF8uaXNFbXB0eSh0aGlzLnNvcnREaXIpKSB7XG4gICAgICB0aGlzLnNvcnREaXIgPSAnYXNjJztcbiAgICB9IGVsc2UgaWYgKHRoaXMuc29ydERpciA9PT0gJ2FzYycpIHtcbiAgICAgIHRoaXMuc29ydERpciA9ICdkZXNjJztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zb3J0RGlyID0gJ2FzYyc7XG4gICAgfVxuICAgIF8uc2V0KHRoaXMuaGVhZGVyUGFyYW1zLCAnYXBpLnNvcnREaXInLCB0aGlzLnNvcnREaXIpO1xuICAgIF8uc2V0KHRoaXMuaGVhZGVyUGFyYW1zLCAnYXBpLnNvcnREaXInLCB0aGlzLmNvbHVtbkRlZi5jb2xJZCk7XG4gICAgaWYgKHRoaXMuY29sdW1uRGVmLnNvcnRDb2x1bW4pIHtcbiAgICAgIHRoaXMuY29sdW1uRGVmLnNvcnRDb2x1bW4odGhpcy5jb2x1bW5EZWYuY29sSWQsIHRoaXMuc29ydERpciwgdGhpcy5oZWFkZXJQYXJhbXMuYXBpKTtcbiAgICAgIHRoaXMuaGVhZGVyUGFyYW1zLmFwaS5kaXNwYXRjaEV2ZW50KHtcbiAgICAgICAgdHlwZTogJ3NvcnRDaGFuZ2VkJyxcbiAgICAgICAgY29sdW1uRGVmOiB0aGlzLmNvbHVtbkRlZixcbiAgICAgICAgc29ydERpcjogdGhpcy5zb3J0RGlyLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgdG9nZ2xlRmlsdGVyKGV2ZW50KSB7XG4gICAgdGhpcy5zaG93RmlsdGVyID0gIXRoaXMuc2hvd0ZpbHRlcjtcbiAgICBpZiAodGhpcy5maWx0ZXJUeXBlID09PSAnU0VMRUNUJyB8fCB0aGlzLmZpbHRlclR5cGUgPT09ICdDT01CTycgfHwgdGhpcy5maWx0ZXJUeXBlID09PSAnREFURVRJTUUnfHwgdGhpcy5maWx0ZXJUeXBlID09PSAnQVRUUklCVVRFJykge1xuICAgICAgaWYgKHRoaXMuc2hvd0ZpbHRlcikge1xuICAgICAgICB0aGlzLnVwZGF0ZUZpbHRlck9wdGlvbnMoKTtcbiAgICAgICAgXy5pbnZva2UodGhpcy5oZWFkZXJQYXJhbXMsICdhcGkub3BlbkhlYWRlckZpbHRlcicsIGV2ZW50LCB0aGlzLmZpbHRlck9wdGlvbnMsIHRoaXMuZmlsdGVyVHlwZSwgdGhpcy5jb2x1bW5EZWY/LmNvbElkLCB0aGlzLmhlYWRlck5hbWUsIHRoaXMuY29sdW1uRGVmPy5oZWFkZXJDb21wb25lbnRQYXJhbXMpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgXy5pbnZva2UodGhpcy5oZWFkZXJQYXJhbXMsICdhcGkuY2xvc2VIZWFkZXJGaWx0ZXInLCBldmVudCk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0aGlzLmZpbHRlclR5cGUgPT09ICdDVVNUT00nKSB7XG4gICAgICBpZiAodGhpcy5zaG93RmlsdGVyKSB7XG4gICAgICAgIHRoaXMudXBkYXRlRmlsdGVyT3B0aW9ucygpO1xuICAgICAgICBfLmludm9rZSh0aGlzLmhlYWRlclBhcmFtcywgJ2NvbHVtbi5jb2xEZWYuaGVhZGVyQ29tcG9uZW50UGFyYW1zLm9wZW5IZWFkZXJGaWx0ZXInLCBldmVudCwgdGhpcy5maWx0ZXJPcHRpb25zKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIF8uaW52b2tlKHRoaXMuaGVhZGVyUGFyYW1zLCAnY29sdW1uLmNvbERlZi5oZWFkZXJDb21wb25lbnRQYXJhbXMuY2xvc2VIZWFkZXJGaWx0ZXInLCBldmVudCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdG9nZ2xlU2Vjb25kYXJ5RmlsdGVyKGV2ZW50KSB7XG4gICAgdGhpcy5zaG93U2Vjb25kYXJ5RmlsdGVyID0gIXRoaXMuc2hvd1NlY29uZGFyeUZpbHRlcjtcbiAgICBpZiAodGhpcy5zaG93U2Vjb25kYXJ5RmlsdGVyKSB7XG4gICAgICBjb25zdCBvcHRpb25zID0gW1xuICAgICAgICB7XG4gICAgICAgICAgbGFiZWw6ICdBbnknLFxuICAgICAgICAgIGNvbHVtbklkOiB0aGlzLm9ubGluZVN0YXR1c0ZpbHRlcixcbiAgICAgICAgICBmaWx0ZXJOYW1lOiAnU3RhdHVzJyxcbiAgICAgICAgICB2YWx1ZTogdW5kZWZpbmVkLFxuICAgICAgICAgIGJ1YmJsZUNsYXNzOiAndjdPbmxpbmVPZmZsaW5lJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGxhYmVsOiAnT25saW5lJyxcbiAgICAgICAgICBjb2x1bW5JZDogdGhpcy5vbmxpbmVTdGF0dXNGaWx0ZXIsXG4gICAgICAgICAgZmlsdGVyTmFtZTogJ1N0YXR1cycsXG4gICAgICAgICAgdmFsdWU6ICd0cnVlJyxcbiAgICAgICAgICBidWJibGVDbGFzczogJ3Y3T25saW5lJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGxhYmVsOiAnT2ZmbGluZScsXG4gICAgICAgICAgY29sdW1uSWQ6IHRoaXMub25saW5lU3RhdHVzRmlsdGVyLFxuICAgICAgICAgIGZpbHRlck5hbWU6ICdTdGF0dXMnLFxuICAgICAgICAgIHZhbHVlOiAnZmFsc2UnLFxuICAgICAgICAgIGJ1YmJsZUNsYXNzOiAndjdPZmZsaW5lJyxcbiAgICAgICAgfSxcbiAgICAgIF07XG4gICAgICBfLmludm9rZSh0aGlzLmhlYWRlclBhcmFtcywgJ2FwaS5vcGVuSGVhZGVyRmlsdGVyJywgZXZlbnQsIG9wdGlvbnMpO1xuICAgIH0gZWxzZSB7XG4gICAgICBfLmludm9rZSh0aGlzLmhlYWRlclBhcmFtcywgJ2FwaS5jbG9zZUhlYWRlckZpbHRlcicsIGV2ZW50KTtcbiAgICB9XG4gIH1cblxuICBoaWRlRmlsdGVyKGV2ZW50KSB7XG4gICAgY29uc3QgdGFyZ2V0SWQgPSBfLmdldChldmVudCwgJ3RhcmdldC5pZCcpO1xuICAgIGlmIChcbiAgICAgIF8uaW5jbHVkZXMoXG4gICAgICAgIFtgSGVhZGVyRmlsdGVyQnV0dG9uXyR7dGhpcy5jb2x1bW5EZWYuY29sSWR9YCwgYEhlYWRlckZpbHRlckljb25fJHt0aGlzLmNvbHVtbkRlZi5jb2xJZH1gXSxcbiAgICAgICAgdGFyZ2V0SWRcbiAgICAgIClcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9IGVsc2UgaWYgKHRhcmdldElkID09PSB0aGlzLmNvbHVtbkRlZj8uY29sSWQgJiYgdGhpcy5maWx0ZXJUeXBlID09PSAnQ09NQk8nKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIF8uaW52b2tlKHRoaXMuaGVhZGVyUGFyYW1zLCAnYXBpLmNsb3NlSGVhZGVyRmlsdGVyJywgZXZlbnQpO1xuXG4gICAgdGhpcy5jb21ib0FjdGl2ZSA9IGZhbHNlO1xuICAgIHRoaXMuc2hvd0ZpbHRlciA9IGZhbHNlO1xuICAgIHRoaXMuc2hvd1NlY29uZGFyeUZpbHRlciA9IGZhbHNlO1xuICB9XG5cbiAgcmVmcmVzaChwYXJhbXM6IElIZWFkZXJQYXJhbXMpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIG9wZW5HcmlkTWVudSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX3Nob3dDb2x1bW5NZW51KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX3Nob3dDb2x1bW5NZW51KHRoaXMubWVudUJ1dHRvbi5uYXRpdmVFbGVtZW50KTtcbiAgfVxuXG4gIHVwZGF0ZUZpbHRlck9wdGlvbnMoKSB7XG4gICAgbGV0IG9wdGlvbnMgPSBbXTtcbiAgICBpZiAodGhpcy5oZWFkZXJQYXJhbXMuZ2V0RmlsdGVyT3B0aW9ucykge1xuICAgICAgb3B0aW9ucyA9IHRoaXMuaGVhZGVyUGFyYW1zLmdldEZpbHRlck9wdGlvbnMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgb3B0aW9ucyA9IHRoaXMuaGVhZGVyUGFyYW1zLmZpbHRlck9wdGlvbnM7XG4gICAgfVxuICAgIHRoaXMuZmlsdGVyT3B0aW9ucyA9IF8ubWFwKG9wdGlvbnMsIChvcHRpb24pID0+IHtcbiAgICAgIG9wdGlvbi5jb2x1bW5JZCA9IHRoaXMuY29sdW1uRGVmLmNvbElkO1xuICAgICAgb3B0aW9uLmZpbHRlck5hbWUgPSB0aGlzLmhlYWRlck5hbWU7XG4gICAgICBvcHRpb24udHlwZSA9IHRoaXMuZmlsdGVyVHlwZTtcbiAgICAgIHJldHVybiBvcHRpb247XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgKGNsaWNrKT1cInNvcnQoJGV2ZW50KVwiXG4gIFtuZ0NsYXNzXT1cInsgJ25mLWNhbi1zb3J0JzogZW5hYmxlU29ydGluZyB9XCJcbiAgY2xhc3M9XCJhZy1jZWxsLWxhYmVsLWNvbnRhaW5lciBhZy1oZWFkZXItY2VsbC1zb3J0ZWQtbm9uZVwiXG4gIGlkPVwiVGFibGVIZWFkZXJDb250YWluZXJfe3sgY29sdW1uRGVmLmNvbElkIH19XCJcbj5cbiAgICA8c3BhblxuICAgICAgI21lbnVCdXR0b25cbiAgICAgIChjbGljayk9XCJvcGVuR3JpZE1lbnUoKVwiXG4gICAgICAqbmdJZj1cImZhbHNlXCJcbiAgICAgIGNsYXNzPVwiYWctaGVhZGVyLWljb24gYWctaGVhZGVyLWNlbGwtbWVudS1idXR0b25cIlxuICAgICAgaWQ9XCJIZWFkZXJNZW51X3t7IGNvbHVtbkRlZi5jb2xJZCB9fVwiXG4gICAgICByZWY9XCJlTWVudVwiXG4gICAgPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImFnLWljb24gYWctaWNvbi1tZW51XCIgdW5zZWxlY3RhYmxlPVwib25cIj48L3NwYW4+XG4gICAgPC9zcGFuPlxuICA8c3BhblxuICAgIChjbGljayk9XCJwaW4oKVwiXG4gICAgY2xhc3M9XCJhZy1oZWFkZXItaWNvbiBhZy1oZWFkZXItY29sLXBpbi1idXR0b25cIlxuICAgIGlkPVwiSGVhZGVyUGluX3t7IGNvbHVtbkRlZi5jb2xJZCB9fVwiXG4gICAgdGl0bGU9XCJ7eyBwaW5uZWQgPyAnVW5waW4gQ29sdW1uJyA6ICdQaW4gQ29sdW1uJyB9fVwiXG4gID5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJhZy1pY29uIGFnLWljb24tcGluXCI+PC9zcGFuPlxuICAgIDwvc3Bhbj5cbiAgPHNwYW5cbiAgICAoY2xpY2spPVwiaGlkZSgpXCJcbiAgICBjbGFzcz1cImFnLWhlYWRlci1pY29uIGFnLWhlYWRlci1jb2wtaGlkZS1idXR0b25cIlxuICAgIGlkPVwiSGVhZGVySGlkZV97eyBjb2x1bW5EZWYuY29sSWQgfX1cIlxuICAgIHRpdGxlPVwiSGlkZSBDb2x1bW5cIlxuICA+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiYWctaWNvbiBhZy1pY29uLWV5ZS1zbGFzaFwiPjwvc3Bhbj5cbiAgICA8L3NwYW4+XG4gIDxkaXYgY2xhc3M9XCJhZy1oZWFkZXItY2VsbC1sYWJlbFwiIHJlZj1cImVMYWJlbFwiIHVuc2VsZWN0YWJsZT1cIm9uXCI+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgKm5nSWY9XCIhaGVhZGVyUGFyYW1zLmZpbHRlclR5cGVcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2FnLWZpbHRlci1hcHBsaWVkJzogZmlsdGVyQXBwbGllZCB9XCJcbiAgICAgICAgICBjbGFzcz1cImFnLWhlYWRlci1pY29uIGFnLWhlYWRlci1jb2wtZmlsdGVyLWJ1dHRvblwiXG4gICAgICAgICAgaWQ9XCJIZWFkZXJGaWx0ZXJTcGFjZXJfe3sgY29sdW1uRGVmLmNvbElkIH19XCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhZy1pY29uIGFnLWljb24tZmlsdGVyXCIgaWQ9XCJIZWFkZXJGaWx0ZXJTcGFjZV97eyBjb2x1bW5EZWYuY29sSWQgfX1cIiBzdHlsZT1cIm9wYWNpdHk6IDBcIj48L3NwYW4+XG4gICAgICAgIDwvc3Bhbj5cbiAgICA8c3BhblxuICAgICAgKGNsaWNrKT1cInRvZ2dsZUZpbHRlcigkZXZlbnQpXCJcbiAgICAgICpuZ0lmPVwiaGVhZGVyUGFyYW1zLmZpbHRlclR5cGVcIlxuICAgICAgW25nQ2xhc3NdPVwieyAnYWctZmlsdGVyLWFwcGxpZWQnOiBmaWx0ZXJBcHBsaWVkIH1cIlxuICAgICAgY2xhc3M9XCJhZy1oZWFkZXItaWNvbiBhZy1oZWFkZXItY29sLWZpbHRlci1idXR0b25cIlxuICAgICAgaWQ9XCJIZWFkZXJGaWx0ZXJCdXR0b25fe3sgY29sdW1uRGVmLmNvbElkIH19XCJcbiAgICA+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFnLWljb24gYWctaWNvbi1maWx0ZXJcIiBpZD1cIkhlYWRlckZpbHRlckljb25fe3sgY29sdW1uRGVmLmNvbElkIH19XCI+PC9zcGFuPlxuICAgICAgICA8L3NwYW4+XG4gICAgPGRpdlxuICAgICAgKGNsaWNrT3V0c2lkZSk9XCJoaWRlRmlsdGVyKCRldmVudClcIlxuICAgICAgW25nQ2xhc3NdPVwieyAnc2hvdy1pbnB1dC1maWx0ZXInOiBzaG93RmlsdGVyIH1cIlxuICAgICAgY2xhc3M9XCJoZWFkZXItdGV4dC1jb250YWluZXIgdGV4dC1pbnB1dC1maWx0ZXJcIlxuICAgID5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVTZWNvbmRhcnlGaWx0ZXIoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICpuZ0lmPVwic2hvd0J1YmJsZVwiXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInN0YXR1c0NsYXNzXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJidWJibGVcIlxuICAgICAgICAgICAgICBpZD1cIkhlYWRlclN0YXR1c197eyBjb2x1bW5EZWYuY29sSWQgfX1cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxzdmcgKm5nSWY9XCJzaG93TG9hZGVyXCIgY2xhc3M9XCJjaXJjdWxhclwiIHZpZXdCb3g9XCIyNSAyNSA1MCA1MFwiPlxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwYXRoXCJcbiAgICAgICAgICAgICAgICAgICAgICBjeD1cIjUwXCJcbiAgICAgICAgICAgICAgICAgICAgICBjeT1cIjUwXCJcbiAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgICAgcj1cIjIwXCJcbiAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbWl0ZXJsaW1pdD1cIjEwXCJcbiAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIzXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvY2lyY2xlPlxuICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgPGFwcC10YWJsZS1jb2x1bW4tZmlsdGVyXG4gICAgICAgICpuZ0lmPVwiKChzaG93RmlsdGVyIHx8IGNvbWJvQWN0aXZlKSAmJiAhKGZpbHRlclR5cGUgPT09ICdDT01CTycgJiYgIWNvbWJvQWN0aXZlKSkgJiYgZmlsdGVyVHlwZSAhPT0gJ1NFTEVDVCcgJiYgZmlsdGVyVHlwZSAhPT0gJ0NVU1RPTSdcIlxuICAgICAgICBbY29sdW1uRGVmXT1cImNvbHVtbkRlZlwiXG4gICAgICAgIFtmaWx0ZXJOYW1lXT1cImhlYWRlck5hbWVcIlxuICAgICAgICBbZmlsdGVyU3RyaW5nXT1cIicnXCJcbiAgICAgICAgW29wZW5TdGF0dXNNZW51XT1cInRvZ2dsZVNlY29uZGFyeUZpbHRlci5iaW5kKHRoaXMpXCJcbiAgICAgICAgW3R5cGVdPVwiZmlsdGVyVHlwZVwiXG4gICAgICA+PC9hcHAtdGFibGUtY29sdW1uLWZpbHRlcj5cbiAgICAgIDxzcGFuXG4gICAgICAgICpuZ0lmPVwiKCghc2hvd0ZpbHRlciAmJiAhY29tYm9BY3RpdmUpIHx8IChmaWx0ZXJUeXBlID09PSAnQ09NQk8nICYmICFjb21ib0FjdGl2ZSkpIHx8IGZpbHRlclR5cGUgPT09ICdTRUxFQ1QnIHx8IGZpbHRlclR5cGUgPT09ICdDVVNUT00nXCJcbiAgICAgICAgW3RpdGxlXT1cImhlYWRlck5hbWVcIlxuICAgICAgICBjbGFzcz1cImFnLWhlYWRlci1jZWxsLXRleHRcIlxuICAgICAgICBpZD1cIkhlYWRlck5hbWVfe3sgY29sdW1uRGVmLmNvbElkIH19XCJcbiAgICAgICAgdW5zZWxlY3RhYmxlPVwib25cIlxuICAgICAgPnt7IGhlYWRlck5hbWUgfX08L3NwYW5cbiAgICAgID5cbiAgICA8L2Rpdj5cbiAgICA8c3BhblxuICAgICAgKm5nSWY9XCJlbmFibGVTb3J0aW5nICYmICFzaG93RmlsdGVyXCJcbiAgICAgIFtuZ0NsYXNzXT1cInsgJ2FnLWhpZGRlbic6IHNvcnREaXIgIT09ICdkZXNjJyB9XCJcbiAgICAgIGNsYXNzPVwiYWctaGVhZGVyLWljb24gYWctaGVhZGVyLWxhYmVsLWljb24gYWctc29ydC1hc2NlbmRpbmctaWNvblwiXG4gICAgICBpZD1cIkhlYWRlclNvcnRBc2Nfe3sgY29sdW1uRGVmLmNvbElkIH19XCJcbiAgICA+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFnLWljb24gYWctaWNvbi1hc2NcIiB1bnNlbGVjdGFibGU9XCJvblwiPjwvc3Bhbj5cbiAgICAgICAgPC9zcGFuPlxuICAgIDxzcGFuXG4gICAgICAqbmdJZj1cImVuYWJsZVNvcnRpbmcgJiYgIXNob3dGaWx0ZXJcIlxuICAgICAgW25nQ2xhc3NdPVwieyAnYWctaGlkZGVuJzogc29ydERpciAhPT0gJ2FzYycgfVwiXG4gICAgICBjbGFzcz1cImFnLWhlYWRlci1pY29uIGFnLWhlYWRlci1sYWJlbC1pY29uIGFnLXNvcnQtZGVzY2VuZGluZy1pY29uXCJcbiAgICAgIGlkPVwiSGVhZGVyU29ydERlc2Nfe3sgY29sdW1uRGVmLmNvbElkIH19XCJcbiAgICA+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFnLWljb24gYWctaWNvbi1kZXNjXCIgdW5zZWxlY3RhYmxlPVwib25cIj48L3NwYW4+XG4gICAgICAgIDwvc3Bhbj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
269
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29sdW1uLWRlZmF1bHQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMveml0aS1jb25zb2xlLWxpYi9zcmMvbGliL2ZlYXR1cmVzL2RhdGEtdGFibGUvY29sdW1uLWhlYWRlcnMvdGFibGUtY29sdW1uLWRlZmF1bHQvdGFibGUtY29sdW1uLWRlZmF1bHQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMveml0aS1jb25zb2xlLWxpYi9zcmMvbGliL2ZlYXR1cmVzL2RhdGEtdGFibGUvY29sdW1uLWhlYWRlcnMvdGFibGUtY29sdW1uLWRlZmF1bHQvdGFibGUtY29sdW1uLWRlZmF1bHQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0VBY0U7QUFFRixPQUFPLEVBQWdCLFNBQVMsRUFBc0IsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBR3RGLE9BQU8sQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUN2QixPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sTUFBTSxDQUFDOzs7Ozs7QUFHbEMsTUFLYSwyQkFBMkI7SUFrQ3RDLFlBQW9CLGFBQXFDO1FBQXJDLGtCQUFhLEdBQWIsYUFBYSxDQUF3QjtRQTlCekQsaUJBQVksR0FBUTtZQUNsQixHQUFHLEVBQUUsRUFBRTtTQUNSLENBQUM7UUFNRixjQUFTLEdBQVE7WUFDZixPQUFPLEVBQUUsU0FBUztZQUNsQixLQUFLLEVBQUUsU0FBUztZQUNoQixTQUFTLEVBQUUsU0FBUztZQUNwQixVQUFVLEVBQUUsU0FBUztTQUN0QixDQUFDO1FBQ0YsZUFBVSxHQUFHLFdBQVcsQ0FBQztRQUN6QixrQkFBYSxHQUFHLEVBQUUsQ0FBQztRQUNuQixrQkFBYSxHQUFRLEVBQUUsQ0FBQztRQUN4QixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBRWxCLGVBQVUs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RSwwQkFBMEI7NkdBb0NYLFVBQVU7c0JBQWxDLFNBQVM7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gICAgQ29weXJpZ2h0IE5ldEZvdW5kcnkgSW5jLlxuXG4gICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG5cbiAgICBodHRwczovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG5cbiAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiovXG5cbmltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBPbkluaXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0lIZWFkZXJBbmd1bGFyQ29tcH0gZnJvbSAnYWctZ3JpZC1hbmd1bGFyJztcbmltcG9ydCB7SUhlYWRlclBhcmFtc30gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHtEYXRhVGFibGVGaWx0ZXJTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vZGF0YS10YWJsZS1maWx0ZXIuc2VydmljZVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtdGFibGUtY29sdW1uLWRlZmF1bHQnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFibGUtY29sdW1uLWRlZmF1bHQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90YWJsZS1jb2x1bW4tZGVmYXVsdC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBUYWJsZUNvbHVtbkRlZmF1bHRDb21wb25lbnQgaW1wbGVtZW50cyBJSGVhZGVyQW5ndWxhckNvbXAsIEFmdGVyVmlld0luaXQsIE9uSW5pdCB7XG4gIGl0ZW06IHtcbiAgICBzZWxlY3RlZDogYm9vbGVhbjtcbiAgfTtcbiAgaGVhZGVyUGFyYW1zOiBhbnkgPSB7XG4gICAgYXBpOiB7fSxcbiAgfTtcbiAgaGVhZGVyTmFtZTtcbiAgZW5hYmxlU29ydGluZztcbiAgc29ydERpcjtcbiAgc29ydENvbDtcbiAgY29sdW1uT2JqO1xuICBjb2x1bW5EZWY6IGFueSA9IHtcbiAgICBzb3J0RGlyOiB1bmRlZmluZWQsXG4gICAgY29sSWQ6IHVuZGVmaW5lZCxcbiAgICBwaW5Db2x1bW46IHVuZGVmaW5lZCxcbiAgICBzb3J0Q29sdW1uOiB1bmRlZmluZWQsXG4gIH07XG4gIGZpbHRlclR5cGUgPSAnVEVYVElOUFVUJztcbiAgZmlsdGVyT3B0aW9ucyA9IFtdO1xuICBjb2x1bW5GaWx0ZXJzOiBhbnkgPSB7fTtcbiAgZmlsdGVyaW5nID0gZmFsc2U7XG4gIHBpbm5lZDtcbiAgc2hvd0ZpbHRlciA9IGZhbHNlO1xuICBjb21ib0FjdGl2ZSA9IGZhbHNlO1xuICBzaG93U2Vjb25kYXJ5RmlsdGVyID0gZmFsc2U7XG4gIF9zaG93Q29sdW1uTWVudTtcblxuICBvbmxpbmVTdGF0dXNGaWx0ZXI7XG4gIHNob3dCdWJibGUgPSBmYWxzZTtcbiAgc2hvd0xvYWRlciA9IGZhbHNlO1xuICBwcml2YXRlIHN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgQFZpZXdDaGlsZCgnbWVudUJ1dHRvbicpIG1lbnVCdXR0b246IEVsZW1lbnRSZWY7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmaWx0ZXJTZXJ2aWNlOiBEYXRhVGFibGVGaWx0ZXJTZXJ2aWNlKSB7XG4gICAgaWYgKCF0aGlzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuaXRlbSA9IHtcbiAgICAgIHNlbGVjdGVkOiBmYWxzZSxcbiAgICB9O1xuICB9XG5cbiAgX3N0YXR1c0NsYXNzID0gJ3Y3T2ZmbGluZSc7XG5cbiAgZ2V0IHN0YXR1c0NsYXNzKCk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLnNob3dCdWJibGUpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gICAgY29uc3Qgc3RhdHVzID0gXy5nZXQoXG4gICAgICB0aGlzLmNvbHVtbk9iaixcbiAgICAgICdncmlkQXBpLmNvbHVtbkZpbHRlcnMuaGFzQXBpU2Vzc2lvbicsXG4gICAgICBfLmdldCh0aGlzLmNvbHVtbk9iaiwgJ2dyaWRBcGkuY29sdW1uRmlsdGVycy5vbmxpbmUnKVxuICAgICk7XG4gICAgc3dpdGNoIChzdGF0dXMpIHtcbiAgICAgIGNhc2UgJ2FsbCc6XG4gICAgICAgIHRoaXMuX3N0YXR1c0NsYXNzID0gJ3Y3T25saW5lT2ZmbGluZSc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZmFsc2UnOlxuICAgICAgICB0aGlzLl9zdGF0dXNDbGFzcyA9ICd2N09mZmxpbmUnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3RydWUnOlxuICAgICAgICB0aGlzLl9zdGF0dXNDbGFzcyA9ICd2N09ubGluZSc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAncHJvdmlzaW9uaW5nJzpcbiAgICAgICAgdGhpcy5fc3RhdHVzQ2xhc3MgPSAnJztcbiAgICAgICAgdGhpcy5zaG93TG9hZGVyID0gdHJ1ZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdlcnJvcic6XG4gICAgICAgIHRoaXMuX3N0YXR1c0NsYXNzID0gJ3Y3RXJyb3InO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRoaXMuX3N0YXR1c0NsYXNzID0gJ3Y3T25saW5lT2ZmbGluZSc7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fc3RhdHVzQ2xhc3M7XG4gIH1cblxuICBnZXQgZmlsdGVyQXBwbGllZCgpOiBib29sZWFuIHtcbiAgICBjb25zdCBjb2x1bW5JZCA9IF8uZ2V0KHRoaXMuY29sdW1uRGVmLCAnY29sSWQnKTtcbiAgICBjb25zdCBmaWx0ZXJWYWwgPSBfLmdldCh0aGlzLmhlYWRlclBhcmFtcywgYGFwaS5jb2x1bW5GaWx0ZXJzLiR7Y29sdW1uSWR9YCk7XG4gICAgcmV0dXJuICFfLmlzRW1wdHkoZmlsdGVyVmFsKSB8fCB0aGlzLnNob3dGaWx0ZXIgfHwgdGhpcy5maWx0ZXJpbmc7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcblxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKVxuICB9XG5cbiAgYWdJbml0KGhlYWRlclBhcmFtczogYW55ID0ge30pOiB2b2lkIHtcbiAgICBpZiAoIWhlYWRlclBhcmFtcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmhlYWRlclBhcmFtcyA9IGhlYWRlclBhcmFtcztcbiAgICB0aGlzLmVuYWJsZVNvcnRpbmcgPSBoZWFkZXJQYXJhbXMuZW5hYmxlU29ydGluZztcbiAgICB0aGlzLmhlYWRlck5hbWUgPSBoZWFkZXJQYXJhbXMuZGlzcGxheU5hbWU7XG4gICAgdGhpcy5jb2x1bW5PYmogPSBoZWFkZXJQYXJhbXMuY29sdW1uO1xuICAgIHRoaXMuZmlsdGVyVHlwZSA9IGhlYWRlclBhcmFtcy5maWx0ZXJUeXBlIHx8ICdURVhUSU5QVVQnO1xuICAgIHRoaXMuY29sdW1uRmlsdGVycyA9IGhlYWRlclBhcmFtcy5jb2x1bW5GaWx0ZXJzO1xuICAgIHRoaXMuY29sdW1uRGVmID0gdGhpcy5jb2x1bW5PYmouY29sRGVmO1xuICAgIHRoaXMucGlubmVkID0gdGhpcy5jb2x1bW5PYmoucGlubmVkID09PSAnbGVmdCc7XG4gICAgdGhpcy5zb3J0RGlyID0gdGhpcy5jb2x1bW5EZWYuc29ydERpciB8fCAnbm9uZSc7XG4gICAgdGhpcy5vbmxpbmVTdGF0dXNGaWx0ZXIgPSBfLmhhcyh0aGlzLmNvbHVtbkZpbHRlcnMsICdoYXNBcGlTZXNzaW9uJykgPyAnaGFzQXBpU2Vzc2lvbicgOiAnb25saW5lJztcbiAgICB0aGlzLnNob3dCdWJibGUgPVxuICAgICAgdGhpcy5jb2x1bW5EZWYuY29sSWQgPT09ICduYW1lJyAmJlxuICAgICAgKF8uaGFzKHRoaXMuY29sdW1uRmlsdGVycywgJ2hhc0FwaVNlc3Npb24nKSB8fCBfLmhhcyh0aGlzLmNvbHVtbkZpbHRlcnMsICdvbmxpbmUnKSk7XG4gICAgdGhpcy5fc2hvd0NvbHVtbk1lbnUgPSBoZWFkZXJQYXJhbXMuc2hvd0NvbHVtbk1lbnU7XG4gICAgdGhpcy51cGRhdGVGaWx0ZXJPcHRpb25zKCk7XG4gICAgaGVhZGVyUGFyYW1zLmFwaS5hZGRFdmVudExpc3RlbmVyKCdzb3J0Q2hhbmdlZCcsIChldmVudCkgPT4ge1xuICAgICAgY29uc3QgY29sSWQgPSBfLmdldChldmVudCwgJ2NvbHVtbkRlZi5jb2xJZCcsICcnKTtcbiAgICAgIGlmIChjb2xJZCAhPT0gdGhpcy5jb2x1bW5EZWYuY29sSWQpIHtcbiAgICAgICAgdGhpcy5zb3J0RGlyID0gdW5kZWZpbmVkO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zb3J0RGlyID0gXy5nZXQoZXZlbnQsICdzb3J0RGlyJyk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgaGVhZGVyUGFyYW1zLmFwaS5hZGRFdmVudExpc3RlbmVyKCdjb2x1bW5FdmVyeXRoaW5nQ2hhbmdlZCcsIChldmVudCkgPT4ge1xuICAgICAgXy5mb3JFYWNoKGV2ZW50LmFwaT8uY29sdW1uTW9kZWw/LmNvbHVtbkRlZnMsIGNvbERlZiA9PiB7XG4gICAgICAgIGlmICh0aGlzLmNvbHVtbkRlZi5jb2xJZCA9PT0gY29sRGVmLmNvbElkICYmIGNvbERlZi5oZWFkZXJDb21wb25lbnRQYXJhbXM/LmZpbHRlck9wdGlvbnMpIHtcbiAgICAgICAgICB0aGlzLnVwZGF0ZUZpbHRlck9wdGlvbnMoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgaWYgKHRoaXMuc2hvd0J1YmJsZSkge1xuICAgICAgLy8gdGhpcy51cGRhdGVTdGF0dXNDbGFzcygpO1xuICAgIH1cbiAgfVxuXG4gIHBpbigpOiB2b2lkIHtcbiAgICB0aGlzLmNvbHVtbkRlZi5waW5Db2x1bW4odGhpcy5jb2x1bW5PYmosIHRoaXMucGlubmVkID8gZmFsc2UgOiAnbGVmdCcpO1xuICAgIHRoaXMucGlubmVkID0gIXRoaXMucGlubmVkO1xuICB9XG5cbiAgaGlkZSgpOiB2b2lkIHtcbiAgICB0aGlzLmhlYWRlclBhcmFtcy5hcGkueml0aUhpZGVDb2x1bW4odGhpcy5jb2x1bW5PYmosIGZhbHNlKTtcbiAgfVxuXG4gIHNvcnQoZXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuY29sdW1uRGVmLnNvcnRhYmxlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHRhcmdldElkID0gXy5nZXQoZXZlbnQsICd0YXJnZXQuaWQnKTtcbiAgICBpZiAoXG4gICAgICBfLmluY2x1ZGVzKFxuICAgICAgICBbYEhlYWRlclN0YXR1c18ke3RoaXMuY29sdW1uRGVmLmNvbElkfWAsICdTZWFyY2hGaWx0ZXInLCBgSGVhZGVyRmlsdGVySWNvbl8ke3RoaXMuY29sdW1uRGVmLmNvbElkfWBdLFxuICAgICAgICB0YXJnZXRJZFxuICAgICAgKVxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoXy5pc0VtcHR5KHRoaXMuc29ydERpcikpIHtcbiAgICAgIHRoaXMuc29ydERpciA9ICdhc2MnO1xuICAgIH0gZWxzZSBpZiAodGhpcy5zb3J0RGlyID09PSAnYXNjJykge1xuICAgICAgdGhpcy5zb3J0RGlyID0gJ2Rlc2MnO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNvcnREaXIgPSAnYXNjJztcbiAgICB9XG4gICAgXy5zZXQodGhpcy5oZWFkZXJQYXJhbXMsICdhcGkuc29ydERpcicsIHRoaXMuc29ydERpcik7XG4gICAgXy5zZXQodGhpcy5oZWFkZXJQYXJhbXMsICdhcGkuc29ydERpcicsIHRoaXMuY29sdW1uRGVmLmNvbElkKTtcbiAgICBpZiAodGhpcy5jb2x1bW5EZWYuc29ydENvbHVtbikge1xuICAgICAgdGhpcy5jb2x1bW5EZWYuc29ydENvbHVtbih0aGlzLmNvbHVtbkRlZi5jb2xJZCwgdGhpcy5zb3J0RGlyLCB0aGlzLmhlYWRlclBhcmFtcy5hcGkpO1xuICAgICAgdGhpcy5oZWFkZXJQYXJhbXMuYXBpLmRpc3BhdGNoRXZlbnQoe1xuICAgICAgICB0eXBlOiAnc29ydENoYW5nZWQnLFxuICAgICAgICBjb2x1bW5EZWY6IHRoaXMuY29sdW1uRGVmLFxuICAgICAgICBzb3J0RGlyOiB0aGlzLnNvcnREaXIsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICB0b2dnbGVGaWx0ZXIoZXZlbnQpIHtcbiAgICB0aGlzLnNob3dGaWx0ZXIgPSAhdGhpcy5zaG93RmlsdGVyO1xuICAgIGlmICh0aGlzLmZpbHRlclR5cGUgPT09ICdTRUxFQ1QnIHx8IHRoaXMuZmlsdGVyVHlwZSA9PT0gJ0NPTUJPJyB8fCB0aGlzLmZpbHRlclR5cGUgPT09ICdEQVRFVElNRSd8fCB0aGlzLmZpbHRlclR5cGUgPT09ICdBVFRSSUJVVEUnKSB7XG4gICAgICBpZiAodGhpcy5zaG93RmlsdGVyKSB7XG4gICAgICAgIHRoaXMudXBkYXRlRmlsdGVyT3B0aW9ucygpO1xuICAgICAgICBfLmludm9rZSh0aGlzLmhlYWRlclBhcmFtcywgJ2FwaS5vcGVuSGVhZGVyRmlsdGVyJywgZXZlbnQsIHRoaXMuZmlsdGVyT3B0aW9ucywgdGhpcy5maWx0ZXJUeXBlLCB0aGlzLmNvbHVtbkRlZj8uY29sSWQsIHRoaXMuaGVhZGVyTmFtZSwgdGhpcy5jb2x1bW5EZWY/LmhlYWRlckNvbXBvbmVudFBhcmFtcyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBfLmludm9rZSh0aGlzLmhlYWRlclBhcmFtcywgJ2FwaS5jbG9zZUhlYWRlckZpbHRlcicsIGV2ZW50KTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHRoaXMuZmlsdGVyVHlwZSA9PT0gJ0NVU1RPTScpIHtcbiAgICAgIGlmICh0aGlzLnNob3dGaWx0ZXIpIHtcbiAgICAgICAgdGhpcy51cGRhdGVGaWx0ZXJPcHRpb25zKCk7XG4gICAgICAgIF8uaW52b2tlKHRoaXMuaGVhZGVyUGFyYW1zLCAnY29sdW1uLmNvbERlZi5oZWFkZXJDb21wb25lbnRQYXJhbXMub3BlbkhlYWRlckZpbHRlcicsIGV2ZW50LCB0aGlzLmZpbHRlck9wdGlvbnMpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgXy5pbnZva2UodGhpcy5oZWFkZXJQYXJhbXMsICdjb2x1bW4uY29sRGVmLmhlYWRlckNvbXBvbmVudFBhcmFtcy5jbG9zZUhlYWRlckZpbHRlcicsIGV2ZW50KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB0b2dnbGVTZWNvbmRhcnlGaWx0ZXIoZXZlbnQpIHtcbiAgICB0aGlzLnNob3dTZWNvbmRhcnlGaWx0ZXIgPSAhdGhpcy5zaG93U2Vjb25kYXJ5RmlsdGVyO1xuICAgIGlmICh0aGlzLnNob3dTZWNvbmRhcnlGaWx0ZXIpIHtcbiAgICAgIGNvbnN0IG9wdGlvbnMgPSBbXG4gICAgICAgIHtcbiAgICAgICAgICBsYWJlbDogJ0FueScsXG4gICAgICAgICAgY29sdW1uSWQ6IHRoaXMub25saW5lU3RhdHVzRmlsdGVyLFxuICAgICAgICAgIGZpbHRlck5hbWU6ICdTdGF0dXMnLFxuICAgICAgICAgIHZhbHVlOiB1bmRlZmluZWQsXG4gICAgICAgICAgYnViYmxlQ2xhc3M6ICd2N09ubGluZU9mZmxpbmUnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbGFiZWw6ICdPbmxpbmUnLFxuICAgICAgICAgIGNvbHVtbklkOiB0aGlzLm9ubGluZVN0YXR1c0ZpbHRlcixcbiAgICAgICAgICBmaWx0ZXJOYW1lOiAnU3RhdHVzJyxcbiAgICAgICAgICB2YWx1ZTogJ3RydWUnLFxuICAgICAgICAgIGJ1YmJsZUNsYXNzOiAndjdPbmxpbmUnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbGFiZWw6ICdPZmZsaW5lJyxcbiAgICAgICAgICBjb2x1bW5JZDogdGhpcy5vbmxpbmVTdGF0dXNGaWx0ZXIsXG4gICAgICAgICAgZmlsdGVyTmFtZTogJ1N0YXR1cycsXG4gICAgICAgICAgdmFsdWU6ICdmYWxzZScsXG4gICAgICAgICAgYnViYmxlQ2xhc3M6ICd2N09mZmxpbmUnLFxuICAgICAgICB9LFxuICAgICAgXTtcbiAgICAgIF8uaW52b2tlKHRoaXMuaGVhZGVyUGFyYW1zLCAnYXBpLm9wZW5IZWFkZXJGaWx0ZXInLCBldmVudCwgb3B0aW9ucyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIF8uaW52b2tlKHRoaXMuaGVhZGVyUGFyYW1zLCAnYXBpLmNsb3NlSGVhZGVyRmlsdGVyJywgZXZlbnQpO1xuICAgIH1cbiAgfVxuXG4gIGhpZGVGaWx0ZXIoZXZlbnQpIHtcbiAgICBjb25zdCB0YXJnZXRJZCA9IF8uZ2V0KGV2ZW50LCAndGFyZ2V0LmlkJyk7XG4gICAgaWYgKFxuICAgICAgXy5pbmNsdWRlcyhcbiAgICAgICAgW2BIZWFkZXJGaWx0ZXJCdXR0b25fJHt0aGlzLmNvbHVtbkRlZi5jb2xJZH1gLCBgSGVhZGVyRmlsdGVySWNvbl8ke3RoaXMuY29sdW1uRGVmLmNvbElkfWBdLFxuICAgICAgICB0YXJnZXRJZFxuICAgICAgKVxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH0gZWxzZSBpZiAodGFyZ2V0SWQgPT09IHRoaXMuY29sdW1uRGVmPy5jb2xJZCAmJiB0aGlzLmZpbHRlclR5cGUgPT09ICdDT01CTycpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgXy5pbnZva2UodGhpcy5oZWFkZXJQYXJhbXMsICdhcGkuY2xvc2VIZWFkZXJGaWx0ZXInLCBldmVudCk7XG5cbiAgICB0aGlzLmNvbWJvQWN0aXZlID0gZmFsc2U7XG4gICAgdGhpcy5zaG93RmlsdGVyID0gZmFsc2U7XG4gICAgdGhpcy5zaG93U2Vjb25kYXJ5RmlsdGVyID0gZmFsc2U7XG4gIH1cblxuICByZWZyZXNoKHBhcmFtczogSUhlYWRlclBhcmFtcyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgb3BlbkdyaWRNZW51KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fc2hvd0NvbHVtbk1lbnUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fc2hvd0NvbHVtbk1lbnUodGhpcy5tZW51QnV0dG9uLm5hdGl2ZUVsZW1lbnQpO1xuICB9XG5cbiAgdXBkYXRlRmlsdGVyT3B0aW9ucygpIHtcbiAgICBsZXQgb3B0aW9ucyA9IFtdO1xuICAgIGlmICh0aGlzLmhlYWRlclBhcmFtcy5nZXRGaWx0ZXJPcHRpb25zKSB7XG4gICAgICBvcHRpb25zID0gdGhpcy5oZWFkZXJQYXJhbXMuZ2V0RmlsdGVyT3B0aW9ucygpO1xuICAgIH0gZWxzZSB7XG4gICAgICBvcHRpb25zID0gdGhpcy5oZWFkZXJQYXJhbXMuZmlsdGVyT3B0aW9ucztcbiAgICB9XG4gICAgdGhpcy5maWx0ZXJPcHRpb25zID0gXy5tYXAob3B0aW9ucywgKG9wdGlvbikgPT4ge1xuICAgICAgb3B0aW9uLmNvbHVtbklkID0gdGhpcy5jb2x1bW5EZWYuY29sSWQ7XG4gICAgICBvcHRpb24uZmlsdGVyTmFtZSA9IHRoaXMuaGVhZGVyTmFtZTtcbiAgICAgIG9wdGlvbi50eXBlID0gdGhpcy5maWx0ZXJUeXBlO1xuICAgICAgcmV0dXJuIG9wdGlvbjtcbiAgICB9KTtcbiAgfVxufVxuIiwiPGRpdlxuICAoY2xpY2spPVwic29ydCgkZXZlbnQpXCJcbiAgW25nQ2xhc3NdPVwieyAnbmYtY2FuLXNvcnQnOiBlbmFibGVTb3J0aW5nIH1cIlxuICBjbGFzcz1cImFnLWNlbGwtbGFiZWwtY29udGFpbmVyIGFnLWhlYWRlci1jZWxsLXNvcnRlZC1ub25lXCJcbiAgaWQ9XCJUYWJsZUhlYWRlckNvbnRhaW5lcl97eyBjb2x1bW5EZWYuY29sSWQgfX1cIlxuPlxuICAgIDxzcGFuXG4gICAgICAjbWVudUJ1dHRvblxuICAgICAgKGNsaWNrKT1cIm9wZW5HcmlkTWVudSgpXCJcbiAgICAgICpuZ0lmPVwiZmFsc2VcIlxuICAgICAgY2xhc3M9XCJhZy1oZWFkZXItaWNvbiBhZy1oZWFkZXItY2VsbC1tZW51LWJ1dHRvblwiXG4gICAgICBpZD1cIkhlYWRlck1lbnVfe3sgY29sdW1uRGVmLmNvbElkIH19XCJcbiAgICAgIHJlZj1cImVNZW51XCJcbiAgICA+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiYWctaWNvbiBhZy1pY29uLW1lbnVcIiB1bnNlbGVjdGFibGU9XCJvblwiPjwvc3Bhbj5cbiAgICA8L3NwYW4+XG4gIDxzcGFuXG4gICAgKGNsaWNrKT1cInBpbigpXCJcbiAgICBjbGFzcz1cImFnLWhlYWRlci1pY29uIGFnLWhlYWRlci1jb2wtcGluLWJ1dHRvblwiXG4gICAgaWQ9XCJIZWFkZXJQaW5fe3sgY29sdW1uRGVmLmNvbElkIH19XCJcbiAgICB0aXRsZT1cInt7IHBpbm5lZCA/ICdVbnBpbiBDb2x1bW4nIDogJ1BpbiBDb2x1bW4nIH19XCJcbiAgPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImFnLWljb24gYWctaWNvbi1waW5cIj48L3NwYW4+XG4gICAgPC9zcGFuPlxuICA8c3BhblxuICAgIChjbGljayk9XCJoaWRlKClcIlxuICAgIGNsYXNzPVwiYWctaGVhZGVyLWljb24gYWctaGVhZGVyLWNvbC1oaWRlLWJ1dHRvblwiXG4gICAgaWQ9XCJIZWFkZXJIaWRlX3t7IGNvbHVtbkRlZi5jb2xJZCB9fVwiXG4gICAgdGl0bGU9XCJIaWRlIENvbHVtblwiXG4gID5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJhZy1pY29uIGFnLWljb24tZXllLXNsYXNoXCI+PC9zcGFuPlxuICAgIDwvc3Bhbj5cbiAgPGRpdiBjbGFzcz1cImFnLWhlYWRlci1jZWxsLWxhYmVsXCIgcmVmPVwiZUxhYmVsXCIgdW5zZWxlY3RhYmxlPVwib25cIj5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAqbmdJZj1cIiFoZWFkZXJQYXJhbXMuZmlsdGVyVHlwZVwiXG4gICAgICAgICAgW25nQ2xhc3NdPVwieyAnYWctZmlsdGVyLWFwcGxpZWQnOiBmaWx0ZXJBcHBsaWVkIH1cIlxuICAgICAgICAgIGNsYXNzPVwiYWctaGVhZGVyLWljb24gYWctaGVhZGVyLWNvbC1maWx0ZXItYnV0dG9uXCJcbiAgICAgICAgICBpZD1cIkhlYWRlckZpbHRlclNwYWNlcl97eyBjb2x1bW5EZWYuY29sSWQgfX1cIlxuICAgICAgICA+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFnLWljb24gYWctaWNvbi1maWx0ZXJcIiBpZD1cIkhlYWRlckZpbHRlclNwYWNlX3t7IGNvbHVtbkRlZi5jb2xJZCB9fVwiIHN0eWxlPVwib3BhY2l0eTogMFwiPjwvc3Bhbj5cbiAgICAgICAgPC9zcGFuPlxuICAgIDxzcGFuXG4gICAgICAoY2xpY2spPVwidG9nZ2xlRmlsdGVyKCRldmVudClcIlxuICAgICAgKm5nSWY9XCJoZWFkZXJQYXJhbXMuZmlsdGVyVHlwZVwiXG4gICAgICBbbmdDbGFzc109XCJ7ICdhZy1maWx0ZXItYXBwbGllZCc6IGZpbHRlckFwcGxpZWQgfVwiXG4gICAgICBjbGFzcz1cImFnLWhlYWRlci1pY29uIGFnLWhlYWRlci1jb2wtZmlsdGVyLWJ1dHRvblwiXG4gICAgICBpZD1cIkhlYWRlckZpbHRlckJ1dHRvbl97eyBjb2x1bW5EZWYuY29sSWQgfX1cIlxuICAgID5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWctaWNvbiBhZy1pY29uLWZpbHRlclwiIGlkPVwiSGVhZGVyRmlsdGVySWNvbl97eyBjb2x1bW5EZWYuY29sSWQgfX1cIj48L3NwYW4+XG4gICAgICAgIDwvc3Bhbj5cbiAgICA8ZGl2XG4gICAgICAoY2xpY2tPdXRzaWRlKT1cImhpZGVGaWx0ZXIoJGV2ZW50KVwiXG4gICAgICBbbmdDbGFzc109XCJ7ICdzaG93LWlucHV0LWZpbHRlcic6IHNob3dGaWx0ZXIgfVwiXG4gICAgICBjbGFzcz1cImhlYWRlci10ZXh0LWNvbnRhaW5lciB0ZXh0LWlucHV0LWZpbHRlclwiXG4gICAgPlxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZVNlY29uZGFyeUZpbHRlcigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgKm5nSWY9XCJzaG93QnViYmxlXCJcbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwic3RhdHVzQ2xhc3NcIlxuICAgICAgICAgICAgICBjbGFzcz1cImJ1YmJsZVwiXG4gICAgICAgICAgICAgIGlkPVwiSGVhZGVyU3RhdHVzX3t7IGNvbHVtbkRlZi5jb2xJZCB9fVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHN2ZyAqbmdJZj1cInNob3dMb2FkZXJcIiBjbGFzcz1cImNpcmN1bGFyXCIgdmlld0JveD1cIjI1IDI1IDUwIDUwXCI+XG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGVcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInBhdGhcIlxuICAgICAgICAgICAgICAgICAgICAgIGN4PVwiNTBcIlxuICAgICAgICAgICAgICAgICAgICAgIGN5PVwiNTBcIlxuICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgICByPVwiMjBcIlxuICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1taXRlcmxpbWl0PVwiMTBcIlxuICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjNcIlxuICAgICAgICAgICAgICAgICAgICA+PC9jaXJjbGU+XG4gICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICA8YXBwLXRhYmxlLWNvbHVtbi1maWx0ZXJcbiAgICAgICAgKm5nSWY9XCIoKHNob3dGaWx0ZXIgfHwgY29tYm9BY3RpdmUpICYmICEoZmlsdGVyVHlwZSA9PT0gJ0NPTUJPJyAmJiAhY29tYm9BY3RpdmUpKSAmJiBmaWx0ZXJUeXBlICE9PSAnU0VMRUNUJyAmJiBmaWx0ZXJUeXBlICE9PSAnQ1VTVE9NJ1wiXG4gICAgICAgIFtjb2x1bW5EZWZdPVwiY29sdW1uRGVmXCJcbiAgICAgICAgW2ZpbHRlck5hbWVdPVwiaGVhZGVyTmFtZVwiXG4gICAgICAgIFtmaWx0ZXJTdHJpbmddPVwiJydcIlxuICAgICAgICBbb3BlblN0YXR1c01lbnVdPVwidG9nZ2xlU2Vjb25kYXJ5RmlsdGVyLmJpbmQodGhpcylcIlxuICAgICAgICBbdHlwZV09XCJmaWx0ZXJUeXBlXCJcbiAgICAgID48L2FwcC10YWJsZS1jb2x1bW4tZmlsdGVyPlxuICAgICAgPHNwYW5cbiAgICAgICAgKm5nSWY9XCIoKCFzaG93RmlsdGVyICYmICFjb21ib0FjdGl2ZSkgfHwgKGZpbHRlclR5cGUgPT09ICdDT01CTycgJiYgIWNvbWJvQWN0aXZlKSkgfHwgZmlsdGVyVHlwZSA9PT0gJ1NFTEVDVCcgfHwgZmlsdGVyVHlwZSA9PT0gJ0NVU1RPTSdcIlxuICAgICAgICBbdGl0bGVdPVwiaGVhZGVyTmFtZVwiXG4gICAgICAgIGNsYXNzPVwiYWctaGVhZGVyLWNlbGwtdGV4dFwiXG4gICAgICAgIGlkPVwiSGVhZGVyTmFtZV97eyBjb2x1bW5EZWYuY29sSWQgfX1cIlxuICAgICAgICB1bnNlbGVjdGFibGU9XCJvblwiXG4gICAgICA+e3sgaGVhZGVyTmFtZSB9fTwvc3BhblxuICAgICAgPlxuICAgIDwvZGl2PlxuICAgIDxzcGFuXG4gICAgICAqbmdJZj1cImVuYWJsZVNvcnRpbmcgJiYgIXNob3dGaWx0ZXJcIlxuICAgICAgW25nQ2xhc3NdPVwieyAnYWctaGlkZGVuJzogc29ydERpciAhPT0gJ2Rlc2MnIH1cIlxuICAgICAgY2xhc3M9XCJhZy1oZWFkZXItaWNvbiBhZy1oZWFkZXItbGFiZWwtaWNvbiBhZy1zb3J0LWFzY2VuZGluZy1pY29uXCJcbiAgICAgIGlkPVwiSGVhZGVyU29ydEFzY197eyBjb2x1bW5EZWYuY29sSWQgfX1cIlxuICAgID5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWctaWNvbiBhZy1pY29uLWFzY1wiIHVuc2VsZWN0YWJsZT1cIm9uXCI+PC9zcGFuPlxuICAgICAgICA8L3NwYW4+XG4gICAgPHNwYW5cbiAgICAgICpuZ0lmPVwiZW5hYmxlU29ydGluZyAmJiAhc2hvd0ZpbHRlclwiXG4gICAgICBbbmdDbGFzc109XCJ7ICdhZy1oaWRkZW4nOiBzb3J0RGlyICE9PSAnYXNjJyB9XCJcbiAgICAgIGNsYXNzPVwiYWctaGVhZGVyLWljb24gYWctaGVhZGVyLWxhYmVsLWljb24gYWctc29ydC1kZXNjZW5kaW5nLWljb25cIlxuICAgICAgaWQ9XCJIZWFkZXJTb3J0RGVzY197eyBjb2x1bW5EZWYuY29sSWQgfX1cIlxuICAgID5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWctaWNvbiBhZy1pY29uLWRlc2NcIiB1bnNlbGVjdGFibGU9XCJvblwiPjwvc3Bhbj5cbiAgICAgICAgPC9zcGFuPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|