vcomply-workflow-engine 3.4.23 → 3.4.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/add-multiple-responsibility/add-multiple-responsibility.component.mjs +2 -4
- package/esm2020/lib/add-multiple-risk/add-multiple-risk.component.mjs +2 -3
- package/esm2020/lib/formgroup/cs-select/cs-select.component.mjs +5 -5
- package/esm2020/lib/formgroup/cs-switch/cs-switch.component.mjs +1 -4
- package/esm2020/lib/log-an-issue/log-an-issue.component.mjs +1 -11
- package/esm2020/lib/more-option/more-option.component.mjs +5 -6
- package/esm2020/lib/pipes/filter.pipe.mjs +1 -2
- package/esm2020/lib/pipes/search.pipe.mjs +3 -5
- package/esm2020/lib/sharedComponents/approval-workflow/approval-create-form/approval-create-form.component.mjs +3 -7
- package/esm2020/lib/sharedComponents/approval-workflow/approval-workflow-list/approval-workflow-list.component.mjs +1 -5
- package/esm2020/lib/sharedComponents/approval-workflow/approval-workflow.component.mjs +1 -7
- package/esm2020/lib/sharedComponents/assessment-editor/create-assessment-container/create-assessment-container.component.mjs +80 -36
- package/esm2020/lib/sharedComponents/assessment-list/assessment-list.component.mjs +27 -21
- package/esm2020/lib/sharedComponents/assessment-preview/preview/preview.component.mjs +7 -4
- package/esm2020/lib/sharedComponents/audit-category-list/audit-category-list.component.mjs +3 -4
- package/esm2020/lib/sharedComponents/bulk-responsibility-view/bulk-responsibility-view.component.mjs +3 -9
- package/esm2020/lib/sharedComponents/bulk-view/bulk-view.component.mjs +9 -7
- package/esm2020/lib/sharedComponents/category-multiselect/category-multi-select.component.mjs +7 -9
- package/esm2020/lib/sharedComponents/checkpoint/checkpoints/checkpoints.component.mjs +93 -27
- package/esm2020/lib/sharedComponents/checkpoint/checkpoints-questions/checkpoints-questions.component.mjs +11 -9
- package/esm2020/lib/sharedComponents/checkpoint-policy/checkpoints-policy-container/checkpoints-policy-container.component.mjs +13 -12
- package/esm2020/lib/sharedComponents/checkpoint-policy/checkpoints-policy-questions/checkpoints-policy-questions.component.mjs +28 -19
- package/esm2020/lib/sharedComponents/floating-bar/floating-bar.component.mjs +8 -8
- package/esm2020/lib/sharedComponents/format-and-evidence/format-and-evidence.component.mjs +35 -37
- package/esm2020/lib/sharedComponents/framework-list/parent-table/parent-table.component.mjs +7 -7
- package/esm2020/lib/sharedComponents/frequency/frequency-biannual/frequency-biannual.component.mjs +1 -12
- package/esm2020/lib/sharedComponents/frequency/frequency-container/frequency-container.component.mjs +1 -3
- package/esm2020/lib/sharedComponents/frequency/frequency-daily/frequency-daily.component.mjs +1 -13
- package/esm2020/lib/sharedComponents/frequency/frequency-due-date/frequency-due-date.component.mjs +1 -7
- package/esm2020/lib/sharedComponents/frequency/frequency-lifecycle/frequency-lifecycle.component.mjs +1 -26
- package/esm2020/lib/sharedComponents/frequency/frequency-monthly/frequency-monthly.component.mjs +1 -15
- package/esm2020/lib/sharedComponents/frequency/frequency-one-time/frequency-one-time.component.mjs +1 -14
- package/esm2020/lib/sharedComponents/frequency/frequency-ongoing/frequency-ongoing.component.mjs +14 -8
- package/esm2020/lib/sharedComponents/frequency/frequency-quarterly/frequency-quarterly.component.mjs +1 -13
- package/esm2020/lib/sharedComponents/frequency/frequency-radio-list/frequency-radio-list.component.mjs +1 -2
- package/esm2020/lib/sharedComponents/frequency/frequency-random/frequency-random.component.mjs +1 -18
- package/esm2020/lib/sharedComponents/frequency/frequency-top/frequency-top.component.mjs +2 -2
- package/esm2020/lib/sharedComponents/frequency/frequency-weekly/frequency-weekly.component.mjs +1 -12
- package/esm2020/lib/sharedComponents/frequency/frequency.service.mjs +2 -11
- package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-annual/frequency-dialog-annual.component.mjs +1 -2
- package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-biannual/frequency-dialog-biannual.component.mjs +1 -2
- package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-monthly/frequency-dialog-monthly.component.mjs +1 -2
- package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-one-time/frequency-dialog-one-time.component.mjs +1 -2
- package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-quarterly/frequency-dialog-quarterly.component.mjs +1 -2
- package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-radio-list/frequency-dialog-radio-list.component.mjs +1 -2
- package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-top/frequency-dialog-top.component.mjs +2 -2
- package/esm2020/lib/sharedComponents/group-users-list/group-users-list.component.mjs +1 -3
- package/esm2020/lib/sharedComponents/link-program/link-program/link-program.component.mjs +48 -38
- package/esm2020/lib/sharedComponents/link-program/restapi.service.mjs +31 -16
- package/esm2020/lib/sharedComponents/no-data/no-data.component.mjs +2 -4
- package/esm2020/lib/sharedComponents/owner-list/owner-list.component.mjs +12 -10
- package/esm2020/lib/sharedComponents/program-listing/program-listing.component.mjs +127 -58
- package/esm2020/lib/sharedComponents/radio-list-with-pagination/radio-list.component.mjs +4 -7
- package/esm2020/lib/sharedComponents/responsibility-centers-list/responsibility-centers-list.component.mjs +9 -7
- package/esm2020/lib/sharedComponents/risk-classification/risk-classification.component.mjs +11 -6
- package/esm2020/lib/sharedComponents/select-approvers/select-approvers.component.mjs +1 -2
- package/esm2020/lib/sharedComponents/users-radio-list/users-radio-list.component.mjs +2 -3
- package/esm2020/lib/ui-kit/formgroup/cs-switch/cs-switch.component.mjs +1 -4
- package/esm2020/lib/ui-kit/popover/popover-longpress.directive.mjs +1 -3
- package/esm2020/lib/ui-kit/popover/popover.component.mjs +26 -12
- package/esm2020/lib/ui-kit/tooltip/tooltip.directive.mjs +8 -5
- package/esm2020/lib/workflow/shared/components/attributes/attributes.component.mjs +1 -2
- package/esm2020/lib/workflow/shared/components/edit-mode/edit-mode.component.mjs +1 -4
- package/esm2020/lib/workflow/shared/components/grc-object-list/grc-object-list.component.mjs +1 -2
- package/esm2020/lib/workflow/shared/components/list-popup/list-popup.component.mjs +1 -4
- package/esm2020/lib/workflow/shared/components/table-card/table-card.component.mjs +4 -8
- package/esm2020/lib/workflow-assessment/import-an-assessment/import-an-assessment.component.mjs +245 -108
- package/esm2020/lib/workflow-assessment/workflow-assessment.component.mjs +2 -4
- package/esm2020/lib/workflow-compliance/workflow-compliance.component.mjs +10 -8
- package/esm2020/lib/workflow-engine-container/workflow-engine-container.component.mjs +1 -5
- package/esm2020/lib/workflow-program/create-program-ui/assessment-picker/assessment-picker.component.mjs +45 -45
- package/esm2020/lib/workflow-program/create-program-ui/define-framework-listing/define-framework-listing.component.mjs +43 -25
- package/esm2020/lib/workflow-program/create-program-ui/define-framework-listing/pipes/sub-cat-indeter.pipe.mjs +4 -4
- package/esm2020/lib/workflow-program/create-program-ui/floating-bar/floating-bar.component.mjs +1 -2
- package/esm2020/lib/workflow-program/create-program-ui/pagination/pagination/pagination.component.mjs +25 -14
- package/esm2020/lib/workflow-program/create-program-ui/pipes/assessment-resolver.pipe.mjs +6 -3
- package/esm2020/lib/workflow-program/create-program-ui/role-list/role-list.component.mjs +25 -19
- package/esm2020/lib/workflow-program/create-program-ui/user-group-list/user-group-list.component.mjs +1 -4
- package/esm2020/lib/workflow-program/workflow-program.component.mjs +232 -110
- package/esm2020/lib/workflow-services/add-risk.service.mjs +1 -2
- package/esm2020/lib/workflow-services/assessment.service.mjs +1 -5
- package/esm2020/lib/workflow-services/programs.service.mjs +173 -57
- package/fesm2015/vcomply-workflow-engine.mjs +1381 -937
- package/fesm2015/vcomply-workflow-engine.mjs.map +1 -1
- package/fesm2020/vcomply-workflow-engine.mjs +1394 -945
- package/fesm2020/vcomply-workflow-engine.mjs.map +1 -1
- package/lib/formgroup/cs-switch/cs-switch.component.d.ts +2 -3
- package/lib/sharedComponents/assessment-list/assessment-list.component.d.ts +4 -5
- package/lib/sharedComponents/bulk-responsibility-view/bulk-responsibility-view.component.d.ts +2 -3
- package/lib/sharedComponents/bulk-view/bulk-view.component.d.ts +2 -3
- package/lib/sharedComponents/frequency/frequency-lifecycle/frequency-lifecycle.component.d.ts +2 -4
- package/lib/sharedComponents/frequency/frequency-ongoing/frequency-ongoing.component.d.ts +1 -1
- package/lib/sharedComponents/link-program/restapi.service.d.ts +3 -3
- package/lib/sharedComponents/no-data/no-data.component.d.ts +2 -4
- package/lib/ui-kit/formgroup/cs-switch/cs-switch.component.d.ts +2 -3
- package/lib/workflow/shared/components/edit-mode/edit-mode.component.d.ts +2 -3
- package/lib/workflow/shared/components/list-popup/list-popup.component.d.ts +2 -3
- package/lib/workflow/shared/components/table-card/table-card.component.d.ts +2 -5
- package/lib/workflow-program/create-program-ui/assessment-picker/assessment-picker.component.d.ts +8 -9
- package/lib/workflow-program/create-program-ui/pagination/pagination/pagination.component.d.ts +2 -4
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, Input, Output, EventEmitter, ViewChild } from '@angular/core';
|
|
1
|
+
import { Component, Input, Output, EventEmitter, ViewChild, } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
import * as i1 from "../../../ui-kit/snack-bar/snack-bar.service";
|
|
4
4
|
import * as i2 from "@angular/forms";
|
|
@@ -32,12 +32,11 @@ export class CheckpointsQuestionsComponent {
|
|
|
32
32
|
radio: 'Type your question here [Radio]',
|
|
33
33
|
checkbox: 'Type your question here [CheckBox]',
|
|
34
34
|
date: 'Type your question here [Date]',
|
|
35
|
-
upload: 'Type your question here [Upload]'
|
|
35
|
+
upload: 'Type your question here [Upload]',
|
|
36
36
|
};
|
|
37
37
|
this.description = '';
|
|
38
38
|
}
|
|
39
|
-
ngOnInit() {
|
|
40
|
-
}
|
|
39
|
+
ngOnInit() { }
|
|
41
40
|
saveDescription() {
|
|
42
41
|
this.addInstruction = false;
|
|
43
42
|
if (this.extractContent(this.checkpointInstruction) === '') {
|
|
@@ -48,11 +47,12 @@ export class CheckpointsQuestionsComponent {
|
|
|
48
47
|
extractContent(s) {
|
|
49
48
|
var span = document.createElement('span');
|
|
50
49
|
span.innerHTML = s;
|
|
51
|
-
return (span.textContent || span.innerText)
|
|
50
|
+
return (span.textContent || span.innerText)
|
|
51
|
+
.replace(/ /g, '')
|
|
52
|
+
.replace(/\<br\s*[\/]?>/gi, '')
|
|
53
|
+
.trim();
|
|
52
54
|
}
|
|
53
|
-
;
|
|
54
55
|
ngOnChanges(changes) {
|
|
55
|
-
console.log(changes, this.errorIndex);
|
|
56
56
|
if (changes.errorIndex) {
|
|
57
57
|
if (this.errorIndex >= 0) {
|
|
58
58
|
this.activeQuestionIndex = this.errorIndex;
|
|
@@ -90,7 +90,9 @@ export class CheckpointsQuestionsComponent {
|
|
|
90
90
|
this.removeOption.emit({ questionIndex, optionIndex, type });
|
|
91
91
|
}
|
|
92
92
|
deleteOnBackspace(questionIndex, optionIndex, type) {
|
|
93
|
-
if (this.checkpointData[questionIndex].options[optionIndex].label.length <
|
|
93
|
+
if (this.checkpointData[questionIndex].options[optionIndex].label.length <
|
|
94
|
+
1 &&
|
|
95
|
+
this.checkpointData[questionIndex].options.length > 1) {
|
|
94
96
|
this.removeOption.emit({ questionIndex, optionIndex, type });
|
|
95
97
|
}
|
|
96
98
|
}
|
|
@@ -126,4 +128,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
126
128
|
type: ViewChild,
|
|
127
129
|
args: ['datePicker']
|
|
128
130
|
}] } });
|
|
129
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2twb2ludHMtcXVlc3Rpb25zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3NoYXJlZENvbXBvbmVudHMvY2hlY2twb2ludC9jaGVja3BvaW50cy1xdWVzdGlvbnMvY2hlY2twb2ludHMtcXVlc3Rpb25zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3NoYXJlZENvbXBvbmVudHMvY2hlY2twb2ludC9jaGVja3BvaW50cy1xdWVzdGlvbnMvY2hlY2twb2ludHMtcXVlc3Rpb25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUF3QyxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7Ozs7QUFTaEksTUFBTSxPQUFPLDZCQUE2QjtJQUV4QyxZQUFvQixVQUFxQixFQUFVLFFBQXlCO1FBQXhELGVBQVUsR0FBVixVQUFVLENBQVc7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQUNuRSxtQkFBYyxHQUFRLEVBQUUsQ0FBQztRQUN6QixxQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFDdEIsZUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2hCLDBCQUFxQixHQUFXLEVBQUUsQ0FBQztRQUNsQyxtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDcEMsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3BDLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNsQyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbkMsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2xDLGlC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QUFDO0lBQzdELENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxhQUFxQixFQUFFLFdBQW1CLEVBQUUsSUFBWTtRQUN4RSxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBSSxDQUFDLEVBQUU7WUFDdEksSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBQyxhQUFhLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7U0FDNUQ7SUFDSCxDQUFDOzswSEExRlUsNkJBQTZCOzhHQUE3Qiw2QkFBNkIsaWxCQ1QxQyxtOGxCQTZUQTsyRkRwVGEsNkJBQTZCO2tCQUx6QyxTQUFTOytCQUNFLDJCQUEyQjsrSEFPNUIsY0FBYztzQkFBdEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBQ0ksY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csaUJBQWlCO3NCQUExQixNQUFNO2dCQUNrQixVQUFVO3NCQUFsQyxTQUFTO3VCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBWaWV3Q2hpbGQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEYXRlUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnbmcyLWRhdGUtcGlja2VyJztcclxuaW1wb3J0IHsgU25hY2tCYXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vdWkta2l0L3NuYWNrLWJhci9zbmFjay1iYXIuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1jaGVja3BvaW50cy1xdWVzdGlvbnMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jaGVja3BvaW50cy1xdWVzdGlvbnMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NoZWNrcG9pbnRzLXF1ZXN0aW9ucy5jb21wb25lbnQubGVzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDaGVja3BvaW50c1F1ZXN0aW9uc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50UmVmOkVsZW1lbnRSZWYsIHByaXZhdGUgc25hY2tiYXI6IFNuYWNrQmFyU2VydmljZSkgeyB9XHJcbiAgQElucHV0KCkgY2hlY2twb2ludERhdGE6IGFueSA9IFtdO1xyXG4gIEBJbnB1dCgpIHF1ZXN0aW9uVHlwZUxpc3QgPSBbXTtcclxuICBASW5wdXQoKSBlcnJvckluZGV4ID0gLTE7XHJcbiAgQElucHV0KCkgY2hlY2twb2ludEluc3RydWN0aW9uIDpzdHJpbmcgPSAnJztcclxuICBAT3V0cHV0KCkgY3JlYXRlUXVlc3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGRlbGV0ZVF1ZXN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBjb3B5UXVlc3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGJsYW5rUXVlc3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGNyZWF0ZU9wdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgcmVtb3ZlT3B0aW9uID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSB1cGRhdGVEZXNjcmlwdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAVmlld0NoaWxkKCdkYXRlUGlja2VyJykgZGF0ZVBpY2tlciE6IERhdGVQaWNrZXJDb21wb25lbnQ7XHJcbiAgZGF0ZVBpY2tlck92ZXJsYXkgPSBmYWxzZTtcclxuICBhY3RpdmVRdWVzdGlvbkluZGV4ID0gMDtcclxuICBhZGRJbnN0cnVjdGlvbiE6IGJvb2xlYW4gO1xyXG5cclxuICBwbGFjZWhvbGRlcjogYW55ID0ge1xyXG4gICAgdGV4dGJveDogJ1R5cGUgeW91ciBxdWVzdGlvbiBoZXJlIFtUZXh0IEJveF0nLFxyXG4gICAgc2VsZWN0OiAnVHlwZSB5b3VyIHF1ZXN0aW9uIGhlcmUgW1NlbGVjdF0nLFxyXG4gICAgcmFkaW86ICdUeXBlIHlvdXIgcXVlc3Rpb24gaGVyZSBbUmFkaW9dJyxcclxuICAgIGNoZWNrYm94OiAnVHlwZSB5b3VyIHF1ZXN0aW9uIGhlcmUgW0NoZWNrQm94XScsXHJcbiAgICBkYXRlOiAnVHlwZSB5b3VyIHF1ZXN0aW9uIGhlcmUgW0RhdGVdJyxcclxuICAgIHVwbG9hZDogJ1R5cGUgeW91ciBxdWVzdGlvbiBoZXJlIFtVcGxvYWRdJ1xyXG4gIH07XHJcbiAgZGVzY3JpcHRpb246IGFueSA9ICcnO1xyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG5cclxuICB9XHJcblxyXG4gIHNhdmVEZXNjcmlwdGlvbigpe1xyXG4gICAgdGhpcy5hZGRJbnN0cnVjdGlvbiA9IGZhbHNlO1xyXG4gICAgaWYodGhpcy5leHRyYWN0Q29udGVudCh0aGlzLmNoZWNrcG9pbnRJbnN0cnVjdGlvbikgPT09ICcnKXtcclxuICAgICAgdGhpcy5jaGVja3BvaW50SW5zdHJ1Y3Rpb24gPSAnJztcclxuICAgIH1cclxuICAgIHRoaXMudXBkYXRlRGVzY3JpcHRpb24uZW1pdCh0aGlzLmNoZWNrcG9pbnRJbnN0cnVjdGlvbilcclxuICB9XHJcbiAgZXh0cmFjdENvbnRlbnQoczpzdHJpbmcpIHtcclxuICAgIHZhciBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xyXG4gICAgc3Bhbi5pbm5lckhUTUwgPSBzO1xyXG4gICAgcmV0dXJuIChzcGFuLnRleHRDb250ZW50IHx8IHNwYW4uaW5uZXJUZXh0KS5yZXBsYWNlKC8mbmJzcDsvZywgJycpLnJlcGxhY2UoL1xcPGJyXFxzKltcXC9dPz4vZ2ksICcnKS50cmltKCk7XHJcbiAgfTtcclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKXtcclxuICAgIGNvbnNvbGUubG9nKGNoYW5nZXMsIHRoaXMuZXJyb3JJbmRleCk7XHJcbiAgICBpZiAoY2hhbmdlcy5lcnJvckluZGV4KXtcclxuICAgICAgaWYgKHRoaXMuZXJyb3JJbmRleCA+PSAwICl7XHJcbiAgICAgICAgdGhpcy5hY3RpdmVRdWVzdGlvbkluZGV4ID0gdGhpcy5lcnJvckluZGV4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIG9wZW5EYXRlUGlja2VyKCkge1xyXG4gICAgdGhpcy5kYXRlUGlja2VyLmFwaS5vcGVuKCk7XHJcbiAgICB0aGlzLmRhdGVQaWNrZXJPdmVybGF5ID0gdHJ1ZTtcclxuICB9XHJcbiAgY2xvc2VEYXRlcGlja2VyKCkge1xyXG4gICAgdGhpcy5kYXRlUGlja2VyLmFwaS5jbG9zZSgpO1xyXG4gICAgdGhpcy5kYXRlUGlja2VyT3ZlcmxheSA9IGZhbHNlO1xyXG4gIH1cclxuICBhZGRRdWVzdGlvbih0eXBlOiBhbnkpe1xyXG4gIC8vICB0aGlzLmNyZWF0ZVF1ZXN0aW9uLmVtaXQodHlwZS50eXBlKTtcclxuICAgLy8gdGhpcy5hY3RpdmVRdWVzdGlvbkluZGV4ID0gdGhpcy5jaGVja3BvaW50RGF0YS5sZW5ndGggLSAxO1xyXG4gIH1cclxuICByZW1vdmVRdWVzdGlvbihpbmRleDogbnVtYmVyKXtcclxuICAgIHRoaXMuZGVsZXRlUXVlc3Rpb24uZW1pdChpbmRleCk7XHJcbiAgICB0aGlzLmFjdGl2ZVF1ZXN0aW9uSW5kZXggPSBpbmRleCAtIDE7XHJcbiAgfVxyXG4gIGNsb25lUXVlc3Rpb24oaW5kZXg6IG51bWJlcil7XHJcbiAgICAvLyB0aGlzLmFjdGl2ZVF1ZXN0aW9uSW5kZXggPSBpbmRleCArIDE7XHJcbiAgICAvLyB0aGlzLmNvcHlRdWVzdGlvbi5lbWl0KGluZGV4KTtcclxuXHJcbiAgfVxyXG4gIGJsYW5rQ2xvbmUodHlwZTogc3RyaW5nLCBpbmRleDogbnVtYmVyKXtcclxuICAgIC8vIHRoaXMuYmxhbmtRdWVzdGlvbi5lbWl0KHt0eXBlLCBpbmRleH0pO1xyXG4gICAgLy8gdGhpcy5hY3RpdmVRdWVzdGlvbkluZGV4ID0gaW5kZXggKyAxO1xyXG4gIH1cclxuXHJcbiAgYWRkT3B0aW9uKHF1ZXN0aW9uSW5kZXg6IG51bWJlciwgb3B0aW9uSW5kZXg6IG51bWJlciwgdHlwZTogc3RyaW5nKXtcclxuICAgIC8vIHRoaXMuY3JlYXRlT3B0aW9uLmVtaXQoe3F1ZXN0aW9uSW5kZXgsIG9wdGlvbkluZGV4LCB0eXBlfSk7XHJcbiAgfVxyXG5cclxuICBkZWxldGVPcHRpb24ocXVlc3Rpb25JbmRleDogbnVtYmVyLCBvcHRpb25JbmRleDogbnVtYmVyLCB0eXBlOiBzdHJpbmcpe1xyXG4gICAgdGhpcy5yZW1vdmVPcHRpb24uZW1pdCh7cXVlc3Rpb25JbmRleCwgb3B0aW9uSW5kZXgsIHR5cGV9KTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZU9uQmFja3NwYWNlKHF1ZXN0aW9uSW5kZXg6IG51bWJlciwgb3B0aW9uSW5kZXg6IG51bWJlciwgdHlwZTogc3RyaW5nKXtcclxuICAgIGlmICh0aGlzLmNoZWNrcG9pbnREYXRhW3F1ZXN0aW9uSW5kZXhdLm9wdGlvbnNbb3B0aW9uSW5kZXhdLmxhYmVsLmxlbmd0aCA8IDEgJiYgdGhpcy5jaGVja3BvaW50RGF0YVtxdWVzdGlvbkluZGV4XS5vcHRpb25zLmxlbmd0aCAgPiAxKSB7XHJcbiAgICAgIHRoaXMucmVtb3ZlT3B0aW9uLmVtaXQoe3F1ZXN0aW9uSW5kZXgsIG9wdGlvbkluZGV4LCB0eXBlfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbn1cclxuIiwiPCEtLSA8cD5jaGVja3BvaW50cy1xdWVzdGlvbnMgd29ya3MhPC9wPiAtLT5cclxuPGRpdiBjbGFzcz1cImNoZWNrcG9pbnRzLXF1ZXN0aW9uc1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNoZWNrcG9pbnRzLXF1ZXN0aW9ucy1ibG9ja3MgaW5zdHJ1Y3Rpb25cIlxyXG4gICAgICAgIFtjbGFzcy5maWxsZWRdPVwiY2hlY2twb2ludEluc3RydWN0aW9uLmxlbmd0aD4wICYmICFhZGRJbnN0cnVjdGlvblwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cclxuICAgICAgICAgICAgPGgzIGNsYXNzPVwicXVlc3Rpb25cIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY291bnRlclwiICpuZ0lmPVwiIWFkZEluc3RydWN0aW9uXCI+PGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MzI7PC9pPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dFwiICpuZ0lmPVwiIWFkZEluc3RydWN0aW9uXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJjaGVja3BvaW50SW5zdHJ1Y3Rpb24ubGVuZ3RoPjAgPyAoY2hlY2twb2ludEluc3RydWN0aW9uIHwgZm9ybWF0SHRtbCkgOidBZGQgaW5zdHJ1Y3Rpb24nXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0XCIgKm5nSWY9XCJhZGRJbnN0cnVjdGlvbiAmJiBmYWxzZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDx2Y29tcGx5LWVkaXRvciBbKG5nTW9kZWwpXT1cImNoZWNrcG9pbnRJbnN0cnVjdGlvblwiIFtlZGl0b3JDb25maWddPVwie21vZGU6ICdwcmltZScsXHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3JQYWxldHRlOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgIGxpbms6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6ICdBZGQgaW5zdHJ1Y3Rpb24nLFxyXG4gICAgICAgICAgICAgICAgICAgIGJ1dHRvbk5hbWU6J1NBVkUnLCBpZDonY2hlY2twb2ludC1pbnN0cnVjdGlvbnMnfVwiIChjb21tZW50KT1cInNhdmVEZXNjcmlwdGlvbigpXCI+PC92Y29tcGx5LWVkaXRvcj5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPC9oMz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHF1ZXN0aW9uIG9mIGNoZWNrcG9pbnREYXRhOyBsZXQgcXVlc3Rpb25JbmRleCA9IGluZGV4XCI+XHJcbiAgICAgICAgPGRpdiAgY2xhc3M9XCJjaGVja3BvaW50cy1xdWVzdGlvbnMtYmxvY2tzXCJcclxuICAgICAgICAgICAgKm5nSWY9XCJbJ3RleHRib3gnLCdkYXRlJywndXBsb2FkJ10uaW5jbHVkZXMocXVlc3Rpb24/LnR5cGUpXCJcclxuICAgICAgICAgICAgW2NsYXNzLmVycm9yXT1cImVycm9ySW5kZXggPT09IHF1ZXN0aW9uSW5kZXhcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwicXVlc3Rpb25cIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNvdW50ZXJcIj57e3F1ZXN0aW9uSW5kZXgrMX19LiA8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwicXVlc3Rpb24ucmVxdWlyZWRcIj4qPC9zcGFuPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJ0ZXh0XCIgdHlwZT1cInRleHRcIiBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJbcXVlc3Rpb24udHlwZV1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInF1ZXN0aW9uLmxhYmVsXCIgcmVhZG9ubHk+XHJcbiAgICAgICAgICAgICAgICA8L2gzPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBjbGFzcz1cInByZXZpZXdcIiAqbmdJZj1cImFjdGl2ZVF1ZXN0aW9uSW5kZXggIT09IHF1ZXN0aW9uSW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmaWxlLXVwbG9hZFwiICpuZ0lmPVwicXVlc3Rpb24udHlwZT09PSd1cGxvYWQnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiZmlsZVwiIGRpc2FibGVkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48aSBjbGFzcz1cImljb25zXCI+JiN4ZTllZDs8L2k+IEJyb3dzZSBGaWxlPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInF1ZXN0aW9uLnR5cGUgPT09ICdkYXRlJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGF0ZS1waWNrZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTJkOzwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiU2VsZWN0IGRhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuRGF0ZVBpY2tlcigpOyRldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgZGF0ZVBpY2tlck92ZXJsYXkgPSB0cnVlO1wiIGRpc2FibGVkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRwLWRhdGUtcGlja2VyICNkYXRlUGlja2VyIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XCI+IDwvZHAtZGF0ZS1waWNrZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtb3ZlcmxheVwiIChjbGljayk9XCJjbG9zZURhdGVwaWNrZXIoKTskZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImRhdGVQaWNrZXJPdmVybGF5XCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9vdGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxhcHAtY3MtY2hlY2tib3ggW25nVmFsdWVdPVwicXVlc3Rpb24ucmVxdWlyZWRcIiAobmdWYWx1ZUNoYW5nZSk9XCJxdWVzdGlvbi5yZXF1aXJlZCA9ICRldmVudFwiPklzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkPC9hcHAtY3MtY2hlY2tib3g+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyaWdodFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDx1bD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBbYXBwVG9vbHRpcF09XCInQWRkIG5ldydcIiBwbGFjZW1lbnQ9XCJib3R0b21cIiBkZWxheT1cIjBcIiBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYmxhbmtDbG9uZShxdWVzdGlvbi50eXBlLHF1ZXN0aW9uSW5kZXgpOyRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTkxNTs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImRlbGV0ZVwiIFthcHBUb29sdGlwXT1cIidEZWxldGUnXCIgcGxhY2VtZW50PVwiYm90dG9tXCIgZGVsYXk9XCIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlUXVlc3Rpb24ocXVlc3Rpb25JbmRleCk7JGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTIzOzwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxidXR0b24gW2FwcFRvb2x0aXBdPVwiJ0NvcHknXCIgcGxhY2VtZW50PVwiYm90dG9tXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsb25lUXVlc3Rpb24ocXVlc3Rpb25JbmRleCk7JGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOWI2OzwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgIGNsYXNzPVwiY2hlY2twb2ludHMtcXVlc3Rpb25zLWJsb2Nrc1wiXHJcbiAgICAgICAgICAgICpuZ0lmPVwicXVlc3Rpb24/LnR5cGUgPT09ICdyYWRpbydcIlxyXG4gICAgICAgICAgICBbY2xhc3MuZXJyb3JdPVwiZXJyb3JJbmRleCA9PT0gcXVlc3Rpb25JbmRleFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJxdWVzdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY291bnRlclwiPnt7cXVlc3Rpb25JbmRleCsxfX0uIDxzcGFuIGNsYXNzPVwicmVxdWlyZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJxdWVzdGlvbi5yZXF1aXJlZFwiPio8L3NwYW4+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cInRleHRcIiB0eXBlPVwidGV4dFwiIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlcltxdWVzdGlvbi50eXBlXVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwicXVlc3Rpb24ubGFiZWxcInJlYWRvbmx5PlxyXG4gICAgICAgICAgICAgICAgPC9oMz5cclxuICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cImxpc3RcIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPGxpICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgcXVlc3Rpb24/Lm9wdGlvbnM7IGxldCBvcEluZGV4ID0gaW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGFwcC1jcy1yYWRpbyBbb25lTGluZV09XCJ0cnVlXCIgW3JlYWRvbmx5XT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImFjdGl2ZVF1ZXN0aW9uSW5kZXggPT09IHF1ZXN0aW9uSW5kZXhcIj48aW5wdXQgWyhuZ01vZGVsKV09XCJvcHRpb24ubGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpZF09XCIncmFkaW8tJyArICcnICsgcXVlc3Rpb25JbmRleCArICcnICsgb3BJbmRleFwiIHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJPcHRpb25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hcHAtY3MtcmFkaW8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGJ1dHRvbiBjbGFzcz1cImNsb3NlXCIgKGNsaWNrKT1cImRlbGV0ZU9wdGlvbihxdWVzdGlvbkluZGV4LG9wSW5kZXgscXVlc3Rpb24udHlwZSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJhY3RpdmVRdWVzdGlvbkluZGV4ID09PSBxdWVzdGlvbkluZGV4ICYmIHF1ZXN0aW9uPy5vcHRpb25zLmxlbmd0aCA+IDFcIj48aVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTBkOzwvaT48L2J1dHRvbj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIDxsaSAqbmdJZj1cImFjdGl2ZVF1ZXN0aW9uSW5kZXggPT09IHF1ZXN0aW9uSW5kZXggJiYgZmFsc2VcIiBjbGFzcz1cImFkZC1uZXdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGFwcC1jcy1yYWRpbyBbb25lTGluZV09XCJ0cnVlXCIgW3JlYWRvbmx5XT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHJlYWRvbmx5IHBsYWNlaG9sZGVyPVwiQWRkIG1vcmUgb3B0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWRkT3B0aW9uKHF1ZXN0aW9uSW5kZXgscXVlc3Rpb24/Lm9wdGlvbnM/Lmxlbmd0aC0xLHF1ZXN0aW9uLnR5cGUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYXBwLWNzLXJhZGlvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+IC0tPlxyXG4gICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9vdGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxhcHAtY3MtY2hlY2tib3ggW25nVmFsdWVdPVwicXVlc3Rpb24ucmVxdWlyZWRcIiAobmdWYWx1ZUNoYW5nZSk9XCJxdWVzdGlvbi5yZXF1aXJlZCA9ICRldmVudFwiPklzIHJlcXVpcmVkPC9hcHAtY3MtY2hlY2tib3g+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyaWdodFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDx1bD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8bGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIFthcHBUb29sdGlwXT1cIidBZGQgbmV3J1wiIHBsYWNlbWVudD1cImJvdHRvbVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJibGFua0Nsb25lKHF1ZXN0aW9uLnR5cGUscXVlc3Rpb25JbmRleCk7JGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTE1OzwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImRlbGV0ZVwiIFthcHBUb29sdGlwXT1cIidEZWxldGUnXCIgcGxhY2VtZW50PVwiYm90dG9tXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZVF1ZXN0aW9uKHF1ZXN0aW9uSW5kZXgpOyRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTkyMzs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8bGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIFthcHBUb29sdGlwXT1cIidDb3B5J1wiIHBsYWNlbWVudD1cImJvdHRvbVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjbG9uZVF1ZXN0aW9uKHF1ZXN0aW9uSW5kZXgpOyRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTliNjs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2ICBjbGFzcz1cImNoZWNrcG9pbnRzLXF1ZXN0aW9ucy1ibG9ja3NcIlxyXG4gICAgICAgICAgICAqbmdJZj1cInF1ZXN0aW9uPy50eXBlID09PSAnc2VsZWN0J1wiIFxyXG4gICAgICAgICAgICBbY2xhc3MuZXJyb3JdPVwiZXJyb3JJbmRleCA9PT0gcXVlc3Rpb25JbmRleFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJxdWVzdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY291bnRlclwiPnt7cXVlc3Rpb25JbmRleCsxfX0uIDxzcGFuIGNsYXNzPVwicmVxdWlyZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJxdWVzdGlvbi5yZXF1aXJlZFwiPio8L3NwYW4+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cInRleHRcIiB0eXBlPVwidGV4dFwiIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlcltxdWVzdGlvbi50eXBlXVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwicXVlc3Rpb24ubGFiZWxcInJlYWRvbmx5PlxyXG4gICAgICAgICAgICAgICAgPC9oMz5cclxuICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cImxpc3RcIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPGxpICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgcXVlc3Rpb24/Lm9wdGlvbnM7IGxldCBvcEluZGV4ID0gaW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGFwcC1jcy1yYWRpbyBbb25lTGluZV09XCJ0cnVlXCIgcmVhZG9ubHlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJhY3RpdmVRdWVzdGlvbkluZGV4ID09PSBxdWVzdGlvbkluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgWyhuZ01vZGVsKV09XCJvcHRpb24ubGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPVwiJ3NlbGVjdC0nICsgJycgKyBxdWVzdGlvbkluZGV4ICsgJycgKyBvcEluZGV4XCIgKGtleWRvd24uZW50ZXIpPVwiYWRkT3B0aW9uKHF1ZXN0aW9uSW5kZXgsb3BJbmRleCxxdWVzdGlvbi50eXBlKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGtleWRvd24uYmFja3NwYWNlKT1cImRlbGV0ZU9uQmFja3NwYWNlKHF1ZXN0aW9uSW5kZXgsb3BJbmRleCxxdWVzdGlvbi50eXBlKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lkXT1cIidzZWxlY3QtJyArICcnICsgcXVlc3Rpb25JbmRleCArICcnICsgb3BJbmRleFwiIHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJPcHRpb25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hcHAtY3MtcmFkaW8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGJ1dHRvbiBjbGFzcz1cImNsb3NlXCIgKGNsaWNrKT1cImRlbGV0ZU9wdGlvbihxdWVzdGlvbkluZGV4LG9wSW5kZXgscXVlc3Rpb24udHlwZSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJhY3RpdmVRdWVzdGlvbkluZGV4ID09PSBxdWVzdGlvbkluZGV4ICYmIHF1ZXN0aW9uPy5vcHRpb25zLmxlbmd0aCA+IDFcIj48aVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTBkOzwvaT48L2J1dHRvbj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuPCEtLSBcclxuICAgICAgICAgICAgICAgICAgICA8bGkgKm5nSWY9XCJhY3RpdmVRdWVzdGlvbkluZGV4ID09PSBxdWVzdGlvbkluZGV4XCIgY2xhc3M9XCJhZGQtbmV3XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhcHAtY3MtcmFkaW8gW29uZUxpbmVdPVwidHJ1ZVwiIFtyZWFkb25seV09XCJ0cnVlXCI+PGlucHV0IHJlYWRvbmx5IHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkFkZCBtb3JlIG9wdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImFkZE9wdGlvbihxdWVzdGlvbkluZGV4LHF1ZXN0aW9uPy5vcHRpb25zPy5sZW5ndGgtMSxxdWVzdGlvbi50eXBlKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2FwcC1jcy1yYWRpbz5cclxuICAgICAgICAgICAgICAgICAgICA8L2xpPiAtLT5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIDxidXR0b24gKGNsaWNrKT1cImFkZE9wdGlvbihxdWVzdGlvbkluZGV4LHF1ZXN0aW9uPy5vcHRpb25zPy5sZW5ndGgscXVlc3Rpb24udHlwZSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImFjdGl2ZVF1ZXN0aW9uSW5kZXggPT09IHF1ZXN0aW9uSW5kZXhcIj5BZGQgTW9yZSBPcHRpb25zPC9idXR0b24+IC0tPlxyXG4gICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9vdGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxhcHAtY3MtY2hlY2tib3ggW25nVmFsdWVdPVwicXVlc3Rpb24ucmVxdWlyZWRcIiAobmdWYWx1ZUNoYW5nZSk9XCJxdWVzdGlvbi5yZXF1aXJlZCA9ICRldmVudFwiPklzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkPC9hcHAtY3MtY2hlY2tib3g+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyaWdodFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDx1bD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8bGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIFthcHBUb29sdGlwXT1cIidBZGQgbmV3J1wiIHBsYWNlbWVudD1cImJvdHRvbVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJibGFua0Nsb25lKHF1ZXN0aW9uLnR5cGUscXVlc3Rpb25JbmRleCk7JGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTE1OzwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImRlbGV0ZVwiIFthcHBUb29sdGlwXT1cIidEZWxldGUnXCIgcGxhY2VtZW50PVwiYm90dG9tXCIgZGVsYXk9XCIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlUXVlc3Rpb24ocXVlc3Rpb25JbmRleCk7JGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTIzOzwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxsaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gW2FwcFRvb2x0aXBdPVwiJ0NvcHknXCIgcGxhY2VtZW50PVwiYm90dG9tXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsb25lUXVlc3Rpb24ocXVlc3Rpb25JbmRleCk7JGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOWI2OzwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPiAtLT5cclxuICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgIGNsYXNzPVwiY2hlY2twb2ludHMtcXVlc3Rpb25zLWJsb2Nrc1wiXHJcbiAgICAgICAgICAgICpuZ0lmPVwicXVlc3Rpb24/LnR5cGUgPT09ICdjaGVja2JveCdcIiBcclxuICAgICAgICAgICAgW2NsYXNzLmVycm9yXT1cImVycm9ySW5kZXggPT09IHF1ZXN0aW9uSW5kZXhcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwicXVlc3Rpb25cIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNvdW50ZXJcIj57e3F1ZXN0aW9uSW5kZXgrMX19LiA8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwicXVlc3Rpb24ucmVxdWlyZWRcIj4qPC9zcGFuPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJ0ZXh0XCIgdHlwZT1cInRleHRcIiBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJbcXVlc3Rpb24udHlwZV1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInF1ZXN0aW9uLmxhYmVsXCJyZWFkb25seT5cclxuICAgICAgICAgICAgICAgIDwvaDM+XHJcbiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJsaXN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxpICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgcXVlc3Rpb24/Lm9wdGlvbnM7IGxldCBvcEluZGV4ID0gaW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGFwcC1jcy1jaGVja2JveCBbb25lTGluZV09XCJ0cnVlXCIgW3JlYWRvbmx5XT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBbKG5nTW9kZWwpXT1cIm9wdGlvbi5sYWJlbFwiIHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJPcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpZF09XCInY2hlY2tib3gtJyArICcnICsgcXVlc3Rpb25JbmRleCArICcnICsgb3BJbmRleFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwiYWRkT3B0aW9uKHF1ZXN0aW9uSW5kZXgsb3BJbmRleCxxdWVzdGlvbi50eXBlKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGtleWRvd24uYmFja3NwYWNlKT1cImRlbGV0ZU9uQmFja3NwYWNlKHF1ZXN0aW9uSW5kZXgsb3BJbmRleCxxdWVzdGlvbi50eXBlKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2FwcC1jcy1jaGVja2JveD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8YnV0dG9uIGNsYXNzPVwiY2xvc2VcIiAoY2xpY2spPVwiZGVsZXRlT3B0aW9uKHF1ZXN0aW9uSW5kZXgsb3BJbmRleCxxdWVzdGlvbi50eXBlKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImFjdGl2ZVF1ZXN0aW9uSW5kZXggPT09IHF1ZXN0aW9uSW5kZXggJiYgcXVlc3Rpb24/Lm9wdGlvbnMubGVuZ3RoID4gMVwiPjxpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpY29uc1wiPiYjeGU5MGQ7PC9pPjwvYnV0dG9uPiAtLT5cclxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gPGxpICpuZ0lmPVwiYWN0aXZlUXVlc3Rpb25JbmRleCA9PT0gcXVlc3Rpb25JbmRleFwiIGNsYXNzPVwiYWRkLW5ld1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YXBwLWNzLWNoZWNrYm94IFtvbmVMaW5lXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImFkZE9wdGlvbihxdWVzdGlvbkluZGV4LHF1ZXN0aW9uPy5vcHRpb25zPy5sZW5ndGgtMSxxdWVzdGlvbi50eXBlKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IFtkaXNhYmxlZF09XCJ0cnVlXCIgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cIkFkZCBtb3JlIG9wdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2FwcC1jcy1jaGVja2JveD5cclxuICAgICAgICAgICAgICAgICAgICA8L2xpPiAtLT5cclxuICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvb3RlclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxlZnRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YXBwLWNzLWNoZWNrYm94IFtuZ1ZhbHVlXT1cInF1ZXN0aW9uLnJlcXVpcmVkXCIgKG5nVmFsdWVDaGFuZ2UpPVwicXVlc3Rpb24ucmVxdWlyZWQgPSAkZXZlbnRcIj5Jc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDwvYXBwLWNzLWNoZWNrYm94PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8dWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGxpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBbYXBwVG9vbHRpcF09XCInQWRkIG5ldydcIiBwbGFjZW1lbnQ9XCJib3R0b21cIiBkZWxheT1cIjBcIiBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYmxhbmtDbG9uZShxdWVzdGlvbi50eXBlLHF1ZXN0aW9uSW5kZXgpOyRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTkxNTs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJkZWxldGVcIiBbYXBwVG9vbHRpcF09XCInRGVsZXRlJ1wiIHBsYWNlbWVudD1cImJvdHRvbVwiIGRlbGF5PVwiMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZVF1ZXN0aW9uKHF1ZXN0aW9uSW5kZXgpOyRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTkyMzs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8bGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIFthcHBUb29sdGlwXT1cIidDb3B5J1wiIHBsYWNlbWVudD1cImJvdHRvbVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjbG9uZVF1ZXN0aW9uKHF1ZXN0aW9uSW5kZXgpOyRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTliNjs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJjaGVja3BvaW50cy1xdWVzdGlvbnMtYmxvY2tzXCIgW2NsYXNzLmFjdGl2ZV09XCJ0cnVlXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICA8aDMgY2xhc3M9XCJxdWVzdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjb3VudGVyXCI+Mi4gPHNwYW4gY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwidGV4dFwiIHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJUeXBlIHlvdXIgcXVlc3Rpb24gaGVyZSBbU2VsZWN0IEJveF1cIiB2YWx1ZT1cIkhhcyB0aGUgcHJldmlvdXMgYXVkaXQgcmVwb3J0IGJlZW4gY2xvc2VkIG91dD9cIj5cclxuICAgICAgICAgICAgPC9oMz5cclxuICAgICAgICAgICAgPHVsIGNsYXNzPVwibGlzdFwiPlxyXG4gICAgICAgICAgICAgICAgPGxpPlxyXG4gICAgICAgICAgICAgICAgICAgIDxhcHAtY3MtcmFkaW8gW29uZUxpbmVdPVwidHJ1ZVwiPjxzcGFuPlllczwvc3Bhbj48L2FwcC1jcy1yYWRpbz4gPGJ1dHRvbiBjbGFzcz1cImNsb3NlXCI+PGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MGQ7PC9pPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgIDxsaT5cclxuICAgICAgICAgICAgICAgICAgICA8YXBwLWNzLXJhZGlvIFtvbmVMaW5lXT1cInRydWVcIj48c3Bhbj5Obzwvc3Bhbj48L2FwcC1jcy1yYWRpbz48YnV0dG9uIGNsYXNzPVwiY2xvc2VcIj48aSBjbGFzcz1cImljb25zXCI+JiN4ZTkwZDs8L2k+PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgPGxpPlxyXG4gICAgICAgICAgICAgICAgICAgIDxhcHAtY3MtcmFkaW8gW29uZUxpbmVdPVwidHJ1ZVwiPjxzcGFuPk4vQTwvc3Bhbj48L2FwcC1jcy1yYWRpbz48YnV0dG9uIGNsYXNzPVwiY2xvc2VcIj48aSBjbGFzcz1cImljb25zXCI+JiN4ZTkwZDs8L2k+PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgPGxpPlxyXG4gICAgICAgICAgICAgICAgICAgIDxhcHAtY3MtcmFkaW8gW29uZUxpbmVdPVwidHJ1ZVwiPjxpbnB1dCB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiT3B0aW9uXCI+PC9hcHAtY3MtcmFkaW8+IDxidXR0b24gY2xhc3M9XCJjbG9zZVwiPjxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTBkOzwvaT48L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZvb3RlclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1jcy1jaGVja2JveCBbbmdWYWx1ZV09XCJxdWVzdGlvbi5yZXF1aXJlZFwiIChuZ1ZhbHVlQ2hhbmdlKT1cInF1ZXN0aW9uLnJlcXVpcmVkID0gJGV2ZW50XCI+SXMgcmVxdWlyZWQ8L2FwcC1jcy1jaGVja2JveD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyaWdodFwiPlxyXG4gICAgICAgICAgICAgICAgPHVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsaT48YnV0dG9uPjxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTE1OzwvaT48L2J1dHRvbj48L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsaT48YnV0dG9uPjxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTIzOzwvaT48L2J1dHRvbj48L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsaT48YnV0dG9uPjxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOWI2OzwvaT48L2J1dHRvbj48L2xpPlxyXG4gICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj4gLS0+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwhLS0gPGJ1dHRvbiBjbGFzcz1cImJ0bi1hZGQtbmV3XCIgdHlwZT1cImJ1dHRvblwiIGFwcFBvcG92ZXIgKGNsaWNrKT1cIm5ld0NoZWNrcG9pbnQucG9wb3ZlcigpXCIgcGxhY2VtZW50PVwibGVmdFwiPisgQWRkIGEgbmV3XHJcbiAgICAgICAgY2hlY2twb2ludDwvYnV0dG9uPiAtLT5cclxuICAgIDwhLS0gPGFwcC1wb3BvdmVyICNuZXdDaGVja3BvaW50PlxyXG5cclxuICAgICAgICA8dWwgY2xhc3M9XCJjaGVja3BvaW50LXR5cGUtbGlzdFwiPlxyXG4gICAgICAgICAgICA8bGk+PHNwYW4gY2xhc3M9XCJjaGVja3BvaW50LXR5cGUtbGlzdC10aXRsZVwiPkFkZCBDaGVja3BvaW50czwvc3Bhbj48L2xpPlxyXG4gICAgICAgICAgICA8bGkgKm5nRm9yPVwibGV0IHR5cGUgb2YgcXVlc3Rpb25UeXBlTGlzdFwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiYWRkUXVlc3Rpb24odHlwZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCIgW2lubmVySFRNTF09XCJ0eXBlLmljb25cIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7e3R5cGU/LnRleHR9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgIDwvdWw+XHJcbiAgICA8L2FwcC1wb3BvdmVyPiAtLT5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
131
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2twb2ludHMtcXVlc3Rpb25zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3NoYXJlZENvbXBvbmVudHMvY2hlY2twb2ludC9jaGVja3BvaW50cy1xdWVzdGlvbnMvY2hlY2twb2ludHMtcXVlc3Rpb25zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3NoYXJlZENvbXBvbmVudHMvY2hlY2twb2ludC9jaGVja3BvaW50cy1xdWVzdGlvbnMvY2hlY2twb2ludHMtcXVlc3Rpb25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUVMLE1BQU0sRUFDTixZQUFZLEVBQ1osU0FBUyxHQUlWLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7OztBQVN2QixNQUFNLE9BQU8sNkJBQTZCO0lBQ3hDLFlBQ1UsVUFBc0IsRUFDdEIsUUFBeUI7UUFEekIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQUUxQixtQkFBYyxHQUFRLEVBQUUsQ0FBQztRQUN6QixxQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFDdEIsZUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2hCLDBCQUFxQixHQUFXLEVBQUUsQ0FBQztRQUNsQyxtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDcEMsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3BDLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNsQyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbkMsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2xDLGlC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LElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNO1lBQ2xFLENBQUM7WUFDSCxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUNyRDtZQUNBLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1NBQzlEO0lBQ0gsQ0FBQzs7MEhBL0ZVLDZCQUE2Qjs4R0FBN0IsNkJBQTZCLGlsQkNuQjFDLG04bEJBNlRBOzJGRDFTYSw2QkFBNkI7a0JBTHpDLFNBQVM7K0JBQ0UsMkJBQTJCOytIQVM1QixjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFDSSxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBQ2tCLFVBQVU7c0JBQWxDLFNBQVM7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIFZpZXdDaGlsZCxcclxuICBPbkNoYW5nZXMsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBFbGVtZW50UmVmLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEYXRlUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnbmcyLWRhdGUtcGlja2VyJztcclxuaW1wb3J0IHsgU25hY2tCYXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vdWkta2l0L3NuYWNrLWJhci9zbmFjay1iYXIuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1jaGVja3BvaW50cy1xdWVzdGlvbnMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jaGVja3BvaW50cy1xdWVzdGlvbnMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NoZWNrcG9pbnRzLXF1ZXN0aW9ucy5jb21wb25lbnQubGVzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2hlY2twb2ludHNRdWVzdGlvbnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICBwcml2YXRlIHNuYWNrYmFyOiBTbmFja0JhclNlcnZpY2VcclxuICApIHt9XHJcbiAgQElucHV0KCkgY2hlY2twb2ludERhdGE6IGFueSA9IFtdO1xyXG4gIEBJbnB1dCgpIHF1ZXN0aW9uVHlwZUxpc3QgPSBbXTtcclxuICBASW5wdXQoKSBlcnJvckluZGV4ID0gLTE7XHJcbiAgQElucHV0KCkgY2hlY2twb2ludEluc3RydWN0aW9uOiBzdHJpbmcgPSAnJztcclxuICBAT3V0cHV0KCkgY3JlYXRlUXVlc3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGRlbGV0ZVF1ZXN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBjb3B5UXVlc3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGJsYW5rUXVlc3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGNyZWF0ZU9wdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgcmVtb3ZlT3B0aW9uID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSB1cGRhdGVEZXNjcmlwdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAVmlld0NoaWxkKCdkYXRlUGlja2VyJykgZGF0ZVBpY2tlciE6IERhdGVQaWNrZXJDb21wb25lbnQ7XHJcbiAgZGF0ZVBpY2tlck92ZXJsYXkgPSBmYWxzZTtcclxuICBhY3RpdmVRdWVzdGlvbkluZGV4ID0gMDtcclxuICBhZGRJbnN0cnVjdGlvbiE6IGJvb2xlYW47XHJcblxyXG4gIHBsYWNlaG9sZGVyOiBhbnkgPSB7XHJcbiAgICB0ZXh0Ym94OiAnVHlwZSB5b3VyIHF1ZXN0aW9uIGhlcmUgW1RleHQgQm94XScsXHJcbiAgICBzZWxlY3Q6ICdUeXBlIHlvdXIgcXVlc3Rpb24gaGVyZSBbU2VsZWN0XScsXHJcbiAgICByYWRpbzogJ1R5cGUgeW91ciBxdWVzdGlvbiBoZXJlIFtSYWRpb10nLFxyXG4gICAgY2hlY2tib3g6ICdUeXBlIHlvdXIgcXVlc3Rpb24gaGVyZSBbQ2hlY2tCb3hdJyxcclxuICAgIGRhdGU6ICdUeXBlIHlvdXIgcXVlc3Rpb24gaGVyZSBbRGF0ZV0nLFxyXG4gICAgdXBsb2FkOiAnVHlwZSB5b3VyIHF1ZXN0aW9uIGhlcmUgW1VwbG9hZF0nLFxyXG4gIH07XHJcbiAgZGVzY3JpcHRpb246IGFueSA9ICcnO1xyXG4gIG5nT25Jbml0KCk6IHZvaWQge31cclxuXHJcbiAgc2F2ZURlc2NyaXB0aW9uKCkge1xyXG4gICAgdGhpcy5hZGRJbnN0cnVjdGlvbiA9IGZhbHNlO1xyXG4gICAgaWYgKHRoaXMuZXh0cmFjdENvbnRlbnQodGhpcy5jaGVja3BvaW50SW5zdHJ1Y3Rpb24pID09PSAnJykge1xyXG4gICAgICB0aGlzLmNoZWNrcG9pbnRJbnN0cnVjdGlvbiA9ICcnO1xyXG4gICAgfVxyXG4gICAgdGhpcy51cGRhdGVEZXNjcmlwdGlvbi5lbWl0KHRoaXMuY2hlY2twb2ludEluc3RydWN0aW9uKTtcclxuICB9XHJcbiAgZXh0cmFjdENvbnRlbnQoczogc3RyaW5nKSB7XHJcbiAgICB2YXIgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcclxuICAgIHNwYW4uaW5uZXJIVE1MID0gcztcclxuICAgIHJldHVybiAoc3Bhbi50ZXh0Q29udGVudCB8fCBzcGFuLmlubmVyVGV4dClcclxuICAgICAgLnJlcGxhY2UoLyZuYnNwOy9nLCAnJylcclxuICAgICAgLnJlcGxhY2UoL1xcPGJyXFxzKltcXC9dPz4vZ2ksICcnKVxyXG4gICAgICAudHJpbSgpO1xyXG4gIH1cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICBpZiAoY2hhbmdlcy5lcnJvckluZGV4KSB7XHJcbiAgICAgIGlmICh0aGlzLmVycm9ySW5kZXggPj0gMCkge1xyXG4gICAgICAgIHRoaXMuYWN0aXZlUXVlc3Rpb25JbmRleCA9IHRoaXMuZXJyb3JJbmRleDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBvcGVuRGF0ZVBpY2tlcigpIHtcclxuICAgIHRoaXMuZGF0ZVBpY2tlci5hcGkub3BlbigpO1xyXG4gICAgdGhpcy5kYXRlUGlja2VyT3ZlcmxheSA9IHRydWU7XHJcbiAgfVxyXG4gIGNsb3NlRGF0ZXBpY2tlcigpIHtcclxuICAgIHRoaXMuZGF0ZVBpY2tlci5hcGkuY2xvc2UoKTtcclxuICAgIHRoaXMuZGF0ZVBpY2tlck92ZXJsYXkgPSBmYWxzZTtcclxuICB9XHJcbiAgYWRkUXVlc3Rpb24odHlwZTogYW55KSB7XHJcbiAgICAvLyAgdGhpcy5jcmVhdGVRdWVzdGlvbi5lbWl0KHR5cGUudHlwZSk7XHJcbiAgICAvLyB0aGlzLmFjdGl2ZVF1ZXN0aW9uSW5kZXggPSB0aGlzLmNoZWNrcG9pbnREYXRhLmxlbmd0aCAtIDE7XHJcbiAgfVxyXG4gIHJlbW92ZVF1ZXN0aW9uKGluZGV4OiBudW1iZXIpIHtcclxuICAgIHRoaXMuZGVsZXRlUXVlc3Rpb24uZW1pdChpbmRleCk7XHJcbiAgICB0aGlzLmFjdGl2ZVF1ZXN0aW9uSW5kZXggPSBpbmRleCAtIDE7XHJcbiAgfVxyXG4gIGNsb25lUXVlc3Rpb24oaW5kZXg6IG51bWJlcikge1xyXG4gICAgLy8gdGhpcy5hY3RpdmVRdWVzdGlvbkluZGV4ID0gaW5kZXggKyAxO1xyXG4gICAgLy8gdGhpcy5jb3B5UXVlc3Rpb24uZW1pdChpbmRleCk7XHJcbiAgfVxyXG4gIGJsYW5rQ2xvbmUodHlwZTogc3RyaW5nLCBpbmRleDogbnVtYmVyKSB7XHJcbiAgICAvLyB0aGlzLmJsYW5rUXVlc3Rpb24uZW1pdCh7dHlwZSwgaW5kZXh9KTtcclxuICAgIC8vIHRoaXMuYWN0aXZlUXVlc3Rpb25JbmRleCA9IGluZGV4ICsgMTtcclxuICB9XHJcblxyXG4gIGFkZE9wdGlvbihxdWVzdGlvbkluZGV4OiBudW1iZXIsIG9wdGlvbkluZGV4OiBudW1iZXIsIHR5cGU6IHN0cmluZykge1xyXG4gICAgLy8gdGhpcy5jcmVhdGVPcHRpb24uZW1pdCh7cXVlc3Rpb25JbmRleCwgb3B0aW9uSW5kZXgsIHR5cGV9KTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZU9wdGlvbihxdWVzdGlvbkluZGV4OiBudW1iZXIsIG9wdGlvbkluZGV4OiBudW1iZXIsIHR5cGU6IHN0cmluZykge1xyXG4gICAgdGhpcy5yZW1vdmVPcHRpb24uZW1pdCh7IHF1ZXN0aW9uSW5kZXgsIG9wdGlvbkluZGV4LCB0eXBlIH0pO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlT25CYWNrc3BhY2UocXVlc3Rpb25JbmRleDogbnVtYmVyLCBvcHRpb25JbmRleDogbnVtYmVyLCB0eXBlOiBzdHJpbmcpIHtcclxuICAgIGlmIChcclxuICAgICAgdGhpcy5jaGVja3BvaW50RGF0YVtxdWVzdGlvbkluZGV4XS5vcHRpb25zW29wdGlvbkluZGV4XS5sYWJlbC5sZW5ndGggPFxyXG4gICAgICAgIDEgJiZcclxuICAgICAgdGhpcy5jaGVja3BvaW50RGF0YVtxdWVzdGlvbkluZGV4XS5vcHRpb25zLmxlbmd0aCA+IDFcclxuICAgICkge1xyXG4gICAgICB0aGlzLnJlbW92ZU9wdGlvbi5lbWl0KHsgcXVlc3Rpb25JbmRleCwgb3B0aW9uSW5kZXgsIHR5cGUgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjwhLS0gPHA+Y2hlY2twb2ludHMtcXVlc3Rpb25zIHdvcmtzITwvcD4gLS0+XHJcbjxkaXYgY2xhc3M9XCJjaGVja3BvaW50cy1xdWVzdGlvbnNcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjaGVja3BvaW50cy1xdWVzdGlvbnMtYmxvY2tzIGluc3RydWN0aW9uXCJcclxuICAgICAgICBbY2xhc3MuZmlsbGVkXT1cImNoZWNrcG9pbnRJbnN0cnVjdGlvbi5sZW5ndGg+MCAmJiAhYWRkSW5zdHJ1Y3Rpb25cIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgIDxoMyBjbGFzcz1cInF1ZXN0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNvdW50ZXJcIiAqbmdJZj1cIiFhZGRJbnN0cnVjdGlvblwiPjxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTMyOzwvaT48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHRcIiAqbmdJZj1cIiFhZGRJbnN0cnVjdGlvblwiIFxyXG4gICAgICAgICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwiY2hlY2twb2ludEluc3RydWN0aW9uLmxlbmd0aD4wID8gKGNoZWNrcG9pbnRJbnN0cnVjdGlvbiB8IGZvcm1hdEh0bWwpIDonQWRkIGluc3RydWN0aW9uJ1wiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dFwiICpuZ0lmPVwiYWRkSW5zdHJ1Y3Rpb24gJiYgZmFsc2VcIj5cclxuICAgICAgICAgICAgICAgICAgICA8dmNvbXBseS1lZGl0b3IgWyhuZ01vZGVsKV09XCJjaGVja3BvaW50SW5zdHJ1Y3Rpb25cIiBbZWRpdG9yQ29uZmlnXT1cInttb2RlOiAncHJpbWUnLFxyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yUGFsZXR0ZTogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICBsaW5rOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiAnQWRkIGluc3RydWN0aW9uJyxcclxuICAgICAgICAgICAgICAgICAgICBidXR0b25OYW1lOidTQVZFJywgaWQ6J2NoZWNrcG9pbnQtaW5zdHJ1Y3Rpb25zJ31cIiAoY29tbWVudCk9XCJzYXZlRGVzY3JpcHRpb24oKVwiPjwvdmNvbXBseS1lZGl0b3I+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvaDM+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBxdWVzdGlvbiBvZiBjaGVja3BvaW50RGF0YTsgbGV0IHF1ZXN0aW9uSW5kZXggPSBpbmRleFwiPlxyXG4gICAgICAgIDxkaXYgIGNsYXNzPVwiY2hlY2twb2ludHMtcXVlc3Rpb25zLWJsb2Nrc1wiXHJcbiAgICAgICAgICAgICpuZ0lmPVwiWyd0ZXh0Ym94JywnZGF0ZScsJ3VwbG9hZCddLmluY2x1ZGVzKHF1ZXN0aW9uPy50eXBlKVwiXHJcbiAgICAgICAgICAgIFtjbGFzcy5lcnJvcl09XCJlcnJvckluZGV4ID09PSBxdWVzdGlvbkluZGV4XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cInF1ZXN0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjb3VudGVyXCI+e3txdWVzdGlvbkluZGV4KzF9fS4gPHNwYW4gY2xhc3M9XCJyZXF1aXJlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInF1ZXN0aW9uLnJlcXVpcmVkXCI+Kjwvc3Bhbj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwidGV4dFwiIHR5cGU9XCJ0ZXh0XCIgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyW3F1ZXN0aW9uLnR5cGVdXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJxdWVzdGlvbi5sYWJlbFwiIHJlYWRvbmx5PlxyXG4gICAgICAgICAgICAgICAgPC9oMz5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgY2xhc3M9XCJwcmV2aWV3XCIgKm5nSWY9XCJhY3RpdmVRdWVzdGlvbkluZGV4ICE9PSBxdWVzdGlvbkluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZmlsZS11cGxvYWRcIiAqbmdJZj1cInF1ZXN0aW9uLnR5cGU9PT0ndXBsb2FkJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImZpbGVcIiBkaXNhYmxlZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5ZWQ7PC9pPiBCcm93c2UgRmlsZTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJxdWVzdGlvbi50eXBlID09PSAnZGF0ZSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRhdGUtcGlja2VyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTkyZDs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cIlNlbGVjdCBkYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlbkRhdGVQaWNrZXIoKTskZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7IGRhdGVQaWNrZXJPdmVybGF5ID0gdHJ1ZTtcIiBkaXNhYmxlZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkcC1kYXRlLXBpY2tlciAjZGF0ZVBpY2tlciAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1wiPiA8L2RwLWRhdGUtcGlja2VyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LW92ZXJsYXlcIiAoY2xpY2spPVwiY2xvc2VEYXRlcGlja2VyKCk7JGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJkYXRlUGlja2VyT3ZlcmxheVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvb3RlclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxlZnRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YXBwLWNzLWNoZWNrYm94IFtuZ1ZhbHVlXT1cInF1ZXN0aW9uLnJlcXVpcmVkXCIgKG5nVmFsdWVDaGFuZ2UpPVwicXVlc3Rpb24ucmVxdWlyZWQgPSAkZXZlbnRcIj5Jc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDwvYXBwLWNzLWNoZWNrYm94PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8dWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gW2FwcFRvb2x0aXBdPVwiJ0FkZCBuZXcnXCIgcGxhY2VtZW50PVwiYm90dG9tXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImJsYW5rQ2xvbmUocXVlc3Rpb24udHlwZSxxdWVzdGlvbkluZGV4KTskZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MTU7PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJkZWxldGVcIiBbYXBwVG9vbHRpcF09XCInRGVsZXRlJ1wiIHBsYWNlbWVudD1cImJvdHRvbVwiIGRlbGF5PVwiMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZVF1ZXN0aW9uKHF1ZXN0aW9uSW5kZXgpOyRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTkyMzs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8YnV0dG9uIFthcHBUb29sdGlwXT1cIidDb3B5J1wiIHBsYWNlbWVudD1cImJvdHRvbVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjbG9uZVF1ZXN0aW9uKHF1ZXN0aW9uSW5kZXgpOyRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTliNjs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2ICBjbGFzcz1cImNoZWNrcG9pbnRzLXF1ZXN0aW9ucy1ibG9ja3NcIlxyXG4gICAgICAgICAgICAqbmdJZj1cInF1ZXN0aW9uPy50eXBlID09PSAncmFkaW8nXCJcclxuICAgICAgICAgICAgW2NsYXNzLmVycm9yXT1cImVycm9ySW5kZXggPT09IHF1ZXN0aW9uSW5kZXhcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwicXVlc3Rpb25cIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNvdW50ZXJcIj57e3F1ZXN0aW9uSW5kZXgrMX19LiA8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwicXVlc3Rpb24ucmVxdWlyZWRcIj4qPC9zcGFuPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJ0ZXh0XCIgdHlwZT1cInRleHRcIiBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJbcXVlc3Rpb24udHlwZV1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInF1ZXN0aW9uLmxhYmVsXCJyZWFkb25seT5cclxuICAgICAgICAgICAgICAgIDwvaDM+XHJcbiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJsaXN0XCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIHF1ZXN0aW9uPy5vcHRpb25zOyBsZXQgb3BJbmRleCA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhcHAtY3MtcmFkaW8gW29uZUxpbmVdPVwidHJ1ZVwiIFtyZWFkb25seV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJhY3RpdmVRdWVzdGlvbkluZGV4ID09PSBxdWVzdGlvbkluZGV4XCI+PGlucHV0IFsobmdNb2RlbCldPVwib3B0aW9uLmxhYmVsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWRdPVwiJ3JhZGlvLScgKyAnJyArIHF1ZXN0aW9uSW5kZXggKyAnJyArIG9wSW5kZXhcIiB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiT3B0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYXBwLWNzLXJhZGlvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxidXR0b24gY2xhc3M9XCJjbG9zZVwiIChjbGljayk9XCJkZWxldGVPcHRpb24ocXVlc3Rpb25JbmRleCxvcEluZGV4LHF1ZXN0aW9uLnR5cGUpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiYWN0aXZlUXVlc3Rpb25JbmRleCA9PT0gcXVlc3Rpb25JbmRleCAmJiBxdWVzdGlvbj8ub3B0aW9ucy5sZW5ndGggPiAxXCI+PGlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImljb25zXCI+JiN4ZTkwZDs8L2k+PC9idXR0b24+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSA8bGkgKm5nSWY9XCJhY3RpdmVRdWVzdGlvbkluZGV4ID09PSBxdWVzdGlvbkluZGV4ICYmIGZhbHNlXCIgY2xhc3M9XCJhZGQtbmV3XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhcHAtY3MtcmFkaW8gW29uZUxpbmVdPVwidHJ1ZVwiIFtyZWFkb25seV09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiByZWFkb25seSBwbGFjZWhvbGRlcj1cIkFkZCBtb3JlIG9wdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImFkZE9wdGlvbihxdWVzdGlvbkluZGV4LHF1ZXN0aW9uPy5vcHRpb25zPy5sZW5ndGgtMSxxdWVzdGlvbi50eXBlKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2FwcC1jcy1yYWRpbz5cclxuICAgICAgICAgICAgICAgICAgICA8L2xpPiAtLT5cclxuICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvb3RlclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxlZnRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YXBwLWNzLWNoZWNrYm94IFtuZ1ZhbHVlXT1cInF1ZXN0aW9uLnJlcXVpcmVkXCIgKG5nVmFsdWVDaGFuZ2UpPVwicXVlc3Rpb24ucmVxdWlyZWQgPSAkZXZlbnRcIj5JcyByZXF1aXJlZDwvYXBwLWNzLWNoZWNrYm94PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8dWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGxpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBbYXBwVG9vbHRpcF09XCInQWRkIG5ldydcIiBwbGFjZW1lbnQ9XCJib3R0b21cIiBkZWxheT1cIjBcIiBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYmxhbmtDbG9uZShxdWVzdGlvbi50eXBlLHF1ZXN0aW9uSW5kZXgpOyRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTkxNTs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJkZWxldGVcIiBbYXBwVG9vbHRpcF09XCInRGVsZXRlJ1wiIHBsYWNlbWVudD1cImJvdHRvbVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmVRdWVzdGlvbihxdWVzdGlvbkluZGV4KTskZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MjM7PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGxpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBbYXBwVG9vbHRpcF09XCInQ29weSdcIiBwbGFjZW1lbnQ9XCJib3R0b21cIiBkZWxheT1cIjBcIiBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2xvbmVRdWVzdGlvbihxdWVzdGlvbkluZGV4KTskZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5YjY7PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiAgY2xhc3M9XCJjaGVja3BvaW50cy1xdWVzdGlvbnMtYmxvY2tzXCJcclxuICAgICAgICAgICAgKm5nSWY9XCJxdWVzdGlvbj8udHlwZSA9PT0gJ3NlbGVjdCdcIiBcclxuICAgICAgICAgICAgW2NsYXNzLmVycm9yXT1cImVycm9ySW5kZXggPT09IHF1ZXN0aW9uSW5kZXhcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwicXVlc3Rpb25cIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNvdW50ZXJcIj57e3F1ZXN0aW9uSW5kZXgrMX19LiA8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwicXVlc3Rpb24ucmVxdWlyZWRcIj4qPC9zcGFuPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJ0ZXh0XCIgdHlwZT1cInRleHRcIiBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJbcXVlc3Rpb24udHlwZV1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInF1ZXN0aW9uLmxhYmVsXCJyZWFkb25seT5cclxuICAgICAgICAgICAgICAgIDwvaDM+XHJcbiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJsaXN0XCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIHF1ZXN0aW9uPy5vcHRpb25zOyBsZXQgb3BJbmRleCA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhcHAtY3MtcmFkaW8gW29uZUxpbmVdPVwidHJ1ZVwiIHJlYWRvbmx5XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiYWN0aXZlUXVlc3Rpb25JbmRleCA9PT0gcXVlc3Rpb25JbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IFsobmdNb2RlbCldPVwib3B0aW9uLmxhYmVsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID1cIidzZWxlY3QtJyArICcnICsgcXVlc3Rpb25JbmRleCArICcnICsgb3BJbmRleFwiIChrZXlkb3duLmVudGVyKT1cImFkZE9wdGlvbihxdWVzdGlvbkluZGV4LG9wSW5kZXgscXVlc3Rpb24udHlwZSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChrZXlkb3duLmJhY2tzcGFjZSk9XCJkZWxldGVPbkJhY2tzcGFjZShxdWVzdGlvbkluZGV4LG9wSW5kZXgscXVlc3Rpb24udHlwZSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpZF09XCInc2VsZWN0LScgKyAnJyArIHF1ZXN0aW9uSW5kZXggKyAnJyArIG9wSW5kZXhcIiB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiT3B0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYXBwLWNzLXJhZGlvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxidXR0b24gY2xhc3M9XCJjbG9zZVwiIChjbGljayk9XCJkZWxldGVPcHRpb24ocXVlc3Rpb25JbmRleCxvcEluZGV4LHF1ZXN0aW9uLnR5cGUpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiYWN0aXZlUXVlc3Rpb25JbmRleCA9PT0gcXVlc3Rpb25JbmRleCAmJiBxdWVzdGlvbj8ub3B0aW9ucy5sZW5ndGggPiAxXCI+PGlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImljb25zXCI+JiN4ZTkwZDs8L2k+PC9idXR0b24+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbjwhLS0gXHJcbiAgICAgICAgICAgICAgICAgICAgPGxpICpuZ0lmPVwiYWN0aXZlUXVlc3Rpb25JbmRleCA9PT0gcXVlc3Rpb25JbmRleFwiIGNsYXNzPVwiYWRkLW5ld1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YXBwLWNzLXJhZGlvIFtvbmVMaW5lXT1cInRydWVcIiBbcmVhZG9ubHldPVwidHJ1ZVwiPjxpbnB1dCByZWFkb25seSB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJBZGQgbW9yZSBvcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJhZGRPcHRpb24ocXVlc3Rpb25JbmRleCxxdWVzdGlvbj8ub3B0aW9ucz8ubGVuZ3RoLTEscXVlc3Rpb24udHlwZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hcHAtY3MtcmFkaW8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9saT4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSA8YnV0dG9uIChjbGljayk9XCJhZGRPcHRpb24ocXVlc3Rpb25JbmRleCxxdWVzdGlvbj8ub3B0aW9ucz8ubGVuZ3RoLHF1ZXN0aW9uLnR5cGUpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJhY3RpdmVRdWVzdGlvbkluZGV4ID09PSBxdWVzdGlvbkluZGV4XCI+QWRkIE1vcmUgT3B0aW9uczwvYnV0dG9uPiAtLT5cclxuICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvb3RlclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxlZnRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YXBwLWNzLWNoZWNrYm94IFtuZ1ZhbHVlXT1cInF1ZXN0aW9uLnJlcXVpcmVkXCIgKG5nVmFsdWVDaGFuZ2UpPVwicXVlc3Rpb24ucmVxdWlyZWQgPSAkZXZlbnRcIj5Jc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDwvYXBwLWNzLWNoZWNrYm94PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8dWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGxpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBbYXBwVG9vbHRpcF09XCInQWRkIG5ldydcIiBwbGFjZW1lbnQ9XCJib3R0b21cIiBkZWxheT1cIjBcIiBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYmxhbmtDbG9uZShxdWVzdGlvbi50eXBlLHF1ZXN0aW9uSW5kZXgpOyRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTkxNTs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJkZWxldGVcIiBbYXBwVG9vbHRpcF09XCInRGVsZXRlJ1wiIHBsYWNlbWVudD1cImJvdHRvbVwiIGRlbGF5PVwiMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZVF1ZXN0aW9uKHF1ZXN0aW9uSW5kZXgpOyRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTkyMzs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8bGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIFthcHBUb29sdGlwXT1cIidDb3B5J1wiIHBsYWNlbWVudD1cImJvdHRvbVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjbG9uZVF1ZXN0aW9uKHF1ZXN0aW9uSW5kZXgpOyRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTliNjs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2ICBjbGFzcz1cImNoZWNrcG9pbnRzLXF1ZXN0aW9ucy1ibG9ja3NcIlxyXG4gICAgICAgICAgICAqbmdJZj1cInF1ZXN0aW9uPy50eXBlID09PSAnY2hlY2tib3gnXCIgXHJcbiAgICAgICAgICAgIFtjbGFzcy5lcnJvcl09XCJlcnJvckluZGV4ID09PSBxdWVzdGlvbkluZGV4XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cInF1ZXN0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjb3VudGVyXCI+e3txdWVzdGlvbkluZGV4KzF9fS4gPHNwYW4gY2xhc3M9XCJyZXF1aXJlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInF1ZXN0aW9uLnJlcXVpcmVkXCI+Kjwvc3Bhbj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwidGV4dFwiIHR5cGU9XCJ0ZXh0XCIgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyW3F1ZXN0aW9uLnR5cGVdXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJxdWVzdGlvbi5sYWJlbFwicmVhZG9ubHk+XHJcbiAgICAgICAgICAgICAgICA8L2gzPlxyXG4gICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwibGlzdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIHF1ZXN0aW9uPy5vcHRpb25zOyBsZXQgb3BJbmRleCA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhcHAtY3MtY2hlY2tib3ggW29uZUxpbmVdPVwidHJ1ZVwiIFtyZWFkb25seV09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgWyhuZ01vZGVsKV09XCJvcHRpb24ubGFiZWxcIiB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiT3B0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWRdPVwiJ2NoZWNrYm94LScgKyAnJyArIHF1ZXN0aW9uSW5kZXggKyAnJyArIG9wSW5kZXhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cImFkZE9wdGlvbihxdWVzdGlvbkluZGV4LG9wSW5kZXgscXVlc3Rpb24udHlwZSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChrZXlkb3duLmJhY2tzcGFjZSk9XCJkZWxldGVPbkJhY2tzcGFjZShxdWVzdGlvbkluZGV4LG9wSW5kZXgscXVlc3Rpb24udHlwZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hcHAtY3MtY2hlY2tib3g+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGJ1dHRvbiBjbGFzcz1cImNsb3NlXCIgKGNsaWNrKT1cImRlbGV0ZU9wdGlvbihxdWVzdGlvbkluZGV4LG9wSW5kZXgscXVlc3Rpb24udHlwZSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJhY3RpdmVRdWVzdGlvbkluZGV4ID09PSBxdWVzdGlvbkluZGV4ICYmIHF1ZXN0aW9uPy5vcHRpb25zLmxlbmd0aCA+IDFcIj48aVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTBkOzwvaT48L2J1dHRvbj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIDxsaSAqbmdJZj1cImFjdGl2ZVF1ZXN0aW9uSW5kZXggPT09IHF1ZXN0aW9uSW5kZXhcIiBjbGFzcz1cImFkZC1uZXdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGFwcC1jcy1jaGVja2JveCBbb25lTGluZV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJhZGRPcHRpb24ocXVlc3Rpb25JbmRleCxxdWVzdGlvbj8ub3B0aW9ucz8ubGVuZ3RoLTEscXVlc3Rpb24udHlwZSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBbZGlzYWJsZWRdPVwidHJ1ZVwiIHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJBZGQgbW9yZSBvcHRpb25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hcHAtY3MtY2hlY2tib3g+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9saT4gLS0+XHJcbiAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb290ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGFwcC1jcy1jaGVja2JveCBbbmdWYWx1ZV09XCJxdWVzdGlvbi5yZXF1aXJlZFwiIChuZ1ZhbHVlQ2hhbmdlKT1cInF1ZXN0aW9uLnJlcXVpcmVkID0gJGV2ZW50XCI+SXNcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ8L2FwcC1jcy1jaGVja2JveD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxsaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gW2FwcFRvb2x0aXBdPVwiJ0FkZCBuZXcnXCIgcGxhY2VtZW50PVwiYm90dG9tXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImJsYW5rQ2xvbmUocXVlc3Rpb24udHlwZSxxdWVzdGlvbkluZGV4KTskZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MTU7PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiZGVsZXRlXCIgW2FwcFRvb2x0aXBdPVwiJ0RlbGV0ZSdcIiBwbGFjZW1lbnQ9XCJib3R0b21cIiBkZWxheT1cIjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmVRdWVzdGlvbihxdWVzdGlvbkluZGV4KTskZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MjM7PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGxpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBbYXBwVG9vbHRpcF09XCInQ29weSdcIiBwbGFjZW1lbnQ9XCJib3R0b21cIiBkZWxheT1cIjBcIiBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2xvbmVRdWVzdGlvbihxdWVzdGlvbkluZGV4KTskZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5YjY7PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiY2hlY2twb2ludHMtcXVlc3Rpb25zLWJsb2Nrc1wiIFtjbGFzcy5hY3RpdmVdPVwidHJ1ZVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cclxuICAgICAgICAgICAgPGgzIGNsYXNzPVwicXVlc3Rpb25cIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY291bnRlclwiPjIuIDxzcGFuIGNsYXNzPVwicmVxdWlyZWRcIj4qPC9zcGFuPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cInRleHRcIiB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiVHlwZSB5b3VyIHF1ZXN0aW9uIGhlcmUgW1NlbGVjdCBCb3hdXCIgdmFsdWU9XCJIYXMgdGhlIHByZXZpb3VzIGF1ZGl0IHJlcG9ydCBiZWVuIGNsb3NlZCBvdXQ/XCI+XHJcbiAgICAgICAgICAgIDwvaDM+XHJcbiAgICAgICAgICAgIDx1bCBjbGFzcz1cImxpc3RcIj5cclxuICAgICAgICAgICAgICAgIDxsaT5cclxuICAgICAgICAgICAgICAgICAgICA8YXBwLWNzLXJhZGlvIFtvbmVMaW5lXT1cInRydWVcIj48c3Bhbj5ZZXM8L3NwYW4+PC9hcHAtY3MtcmFkaW8+IDxidXR0b24gY2xhc3M9XCJjbG9zZVwiPjxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTBkOzwvaT48L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICA8bGk+XHJcbiAgICAgICAgICAgICAgICAgICAgPGFwcC1jcy1yYWRpbyBbb25lTGluZV09XCJ0cnVlXCI+PHNwYW4+Tm88L3NwYW4+PC9hcHAtY3MtcmFkaW8+PGJ1dHRvbiBjbGFzcz1cImNsb3NlXCI+PGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MGQ7PC9pPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgIDxsaT5cclxuICAgICAgICAgICAgICAgICAgICA8YXBwLWNzLXJhZGlvIFtvbmVMaW5lXT1cInRydWVcIj48c3Bhbj5OL0E8L3NwYW4+PC9hcHAtY3MtcmFkaW8+PGJ1dHRvbiBjbGFzcz1cImNsb3NlXCI+PGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MGQ7PC9pPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgIDxsaT5cclxuICAgICAgICAgICAgICAgICAgICA8YXBwLWNzLXJhZGlvIFtvbmVMaW5lXT1cInRydWVcIj48aW5wdXQgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cIk9wdGlvblwiPjwvYXBwLWNzLXJhZGlvPiA8YnV0dG9uIGNsYXNzPVwiY2xvc2VcIj48aSBjbGFzcz1cImljb25zXCI+JiN4ZTkwZDs8L2k+PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb290ZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxlZnRcIj5cclxuICAgICAgICAgICAgICAgIDxhcHAtY3MtY2hlY2tib3ggW25nVmFsdWVdPVwicXVlc3Rpb24ucmVxdWlyZWRcIiAobmdWYWx1ZUNoYW5nZSk9XCJxdWVzdGlvbi5yZXF1aXJlZCA9ICRldmVudFwiPklzIHJlcXVpcmVkPC9hcHAtY3MtY2hlY2tib3g+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cclxuICAgICAgICAgICAgICAgIDx1bD5cclxuICAgICAgICAgICAgICAgICAgICA8bGk+PGJ1dHRvbj48aSBjbGFzcz1cImljb25zXCI+JiN4ZTkxNTs8L2k+PC9idXR0b24+PC9saT5cclxuICAgICAgICAgICAgICAgICAgICA8bGk+PGJ1dHRvbj48aSBjbGFzcz1cImljb25zXCI+JiN4ZTkyMzs8L2k+PC9idXR0b24+PC9saT5cclxuICAgICAgICAgICAgICAgICAgICA8bGk+PGJ1dHRvbj48aSBjbGFzcz1cImljb25zXCI+JiN4ZTliNjs8L2k+PC9idXR0b24+PC9saT5cclxuICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+IC0tPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8IS0tIDxidXR0b24gY2xhc3M9XCJidG4tYWRkLW5ld1wiIHR5cGU9XCJidXR0b25cIiBhcHBQb3BvdmVyIChjbGljayk9XCJuZXdDaGVja3BvaW50LnBvcG92ZXIoKVwiIHBsYWNlbWVudD1cImxlZnRcIj4rIEFkZCBhIG5ld1xyXG4gICAgICAgIGNoZWNrcG9pbnQ8L2J1dHRvbj4gLS0+XHJcbiAgICA8IS0tIDxhcHAtcG9wb3ZlciAjbmV3Q2hlY2twb2ludD5cclxuXHJcbiAgICAgICAgPHVsIGNsYXNzPVwiY2hlY2twb2ludC10eXBlLWxpc3RcIj5cclxuICAgICAgICAgICAgPGxpPjxzcGFuIGNsYXNzPVwiY2hlY2twb2ludC10eXBlLWxpc3QtdGl0bGVcIj5BZGQgQ2hlY2twb2ludHM8L3NwYW4+PC9saT5cclxuICAgICAgICAgICAgPGxpICpuZ0Zvcj1cImxldCB0eXBlIG9mIHF1ZXN0aW9uVHlwZUxpc3RcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImFkZFF1ZXN0aW9uKHR5cGUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiIFtpbm5lckhUTUxdPVwidHlwZS5pY29uXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3t0eXBlPy50ZXh0fX1cclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9saT5cclxuICAgICAgICA8L3VsPlxyXG4gICAgPC9hcHAtcG9wb3Zlcj4gLS0+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import cloneDeep from 'lodash-es/cloneDeep';
|
|
2
|
-
import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
|
2
|
+
import { Component, EventEmitter, Input, Output, ViewChild, } from '@angular/core';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
import * as i1 from "./../../../ui-kit/snack-bar/snack-bar.service";
|
|
5
5
|
import * as i2 from "../checkpoints-policy-questions/checkpoints-policy-questions.component";
|
|
@@ -16,14 +16,13 @@ export class CheckpointsPolicyContainerComponent {
|
|
|
16
16
|
ngOnInit() {
|
|
17
17
|
this.checkpointData = cloneDeep(this.checkpointData);
|
|
18
18
|
if (this.checkpointData.length === 0) {
|
|
19
|
-
this.checkpointData = [
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
}];
|
|
19
|
+
this.checkpointData = [
|
|
20
|
+
{
|
|
21
|
+
ranswer: '',
|
|
22
|
+
question: '',
|
|
23
|
+
answers: ['', ''],
|
|
24
|
+
},
|
|
25
|
+
];
|
|
27
26
|
}
|
|
28
27
|
setTimeout(() => {
|
|
29
28
|
this.animation = false;
|
|
@@ -42,7 +41,6 @@ export class CheckpointsPolicyContainerComponent {
|
|
|
42
41
|
delete element._id;
|
|
43
42
|
}
|
|
44
43
|
});
|
|
45
|
-
console.log(this.requiredPoint, this.checkpointData);
|
|
46
44
|
if (this.requiredPoint > this.checkpointData.length) {
|
|
47
45
|
this.snackbarService.show(`The points required to attest this policy cannot exceed ${this.checkpointData.length}.`);
|
|
48
46
|
}
|
|
@@ -51,7 +49,10 @@ export class CheckpointsPolicyContainerComponent {
|
|
|
51
49
|
this.snackbarService.show(`The points required to attest this policy cannot be 0`);
|
|
52
50
|
}
|
|
53
51
|
else {
|
|
54
|
-
this.saveCheckPoint.emit({
|
|
52
|
+
this.saveCheckPoint.emit({
|
|
53
|
+
requiredPoint: this.requiredPoint,
|
|
54
|
+
checkpointDetails: this.checkpointData,
|
|
55
|
+
});
|
|
55
56
|
}
|
|
56
57
|
}
|
|
57
58
|
}
|
|
@@ -73,4 +74,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
73
74
|
}], checkpointData: [{
|
|
74
75
|
type: Input
|
|
75
76
|
}] } });
|
|
76
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2twb2ludHMtcG9saWN5LWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2NoZWNrcG9pbnQtcG9saWN5L2NoZWNrcG9pbnRzLXBvbGljeS1jb250YWluZXIvY2hlY2twb2ludHMtcG9saWN5LWNvbnRhaW5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2NoZWNrcG9pbnQtcG9saWN5L2NoZWNrcG9pbnRzLXBvbGljeS1jb250YWluZXIvY2hlY2twb2ludHMtcG9saWN5LWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLFNBQVMsTUFBTSxxQkFBcUIsQ0FBQztBQUM1QyxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFRdkIsTUFBTSxPQUFPLG1DQUFtQztJQUU5QyxZQUFvQixlQUFnQztRQUFoQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFEcEQsY0FBUyxHQUFHLElBQUksQ0FBQztRQUVQLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNyQyxtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFHckMsa0JBQWEsR0FBRyxDQUFDLENBQUM7UUFDbEIsbUJBQWMsR0FBUSxFQUFFLENBQUM7SUFOcUIsQ0FBQztJQVF4RCxRQUFRO1FBQ04sSUFBSSxDQUFDLGNBQWMsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3JELElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ3BDLElBQUksQ0FBQyxjQUFjLEdBQUc7Z0JBQ3BCO29CQUNFLE9BQU8sRUFBRSxFQUFFO29CQUNYLFFBQVEsRUFBRSxFQUFFO29CQUNaLE9BQU8sRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUM7aUJBQ2xCO2FBQ0YsQ0FBQztTQUNIO1FBQ0QsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNSLElBQUksSUFBSSxDQUFDLGFBQWEsS0FBSyxDQUFDLEVBQUU7WUFDNUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUM7U0FDeEI7SUFDSCxDQUFDO0lBRUQsSUFBSTtRQUNGLElBQUksQ0FBQyxtQ0FBbUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUM1RCxDQUFDO0lBQ0QsYUFBYSxDQUFDLEtBQVU7UUFDdEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7UUFDNUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFZLEVBQUUsRUFBRTtZQUMzQyxJQUFJLE9BQU8sRUFBRSxHQUFHLEVBQUU7Z0JBQ2hCLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQzthQUNwQjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFO1lBQ25ELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUN2QiwyREFBMkQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FDekYsQ0FBQztTQUNIO2FBQU07WUFDTCxJQUFJLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxFQUFFO2dCQUMxQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FDdkIsdURBQXVELENBQ3hELENBQUM7YUFDSDtpQkFBTTtnQkFDTCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQztvQkFDdkIsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhO29CQUNqQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsY0FBYztpQkFDdkMsQ0FBQyxDQUFDO2FBQ0o7U0FDRjtJQUNILENBQUM7O2dJQXZEVSxtQ0FBbUM7b0hBQW5DLG1DQUFtQyw0V0NqQmhELGcwQ0FrQ0E7MkZEakJhLG1DQUFtQztrQkFML0MsU0FBUzsrQkFDRSxrQ0FBa0M7c0dBT2xDLGVBQWU7c0JBQXhCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTTtnQkFFUCxtQ0FBbUM7c0JBRGxDLFNBQVM7dUJBQUMsWUFBWSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFFakMsYUFBYTtzQkFBckIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU25hY2tCYXJTZXJ2aWNlIH0gZnJvbSAnLi8uLi8uLi8uLi91aS1raXQvc25hY2stYmFyL3NuYWNrLWJhci5zZXJ2aWNlJztcclxuaW1wb3J0IGNsb25lRGVlcCBmcm9tICdsb2Rhc2gtZXMvY2xvbmVEZWVwJztcclxuaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDaGVja3BvaW50c1BvbGljeVF1ZXN0aW9uc0NvbXBvbmVudCB9IGZyb20gJy4uL2NoZWNrcG9pbnRzLXBvbGljeS1xdWVzdGlvbnMvY2hlY2twb2ludHMtcG9saWN5LXF1ZXN0aW9ucy5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtY2hlY2twb2ludHMtcG9saWN5LWNvbnRhaW5lcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NoZWNrcG9pbnRzLXBvbGljeS1jb250YWluZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NoZWNrcG9pbnRzLXBvbGljeS1jb250YWluZXIuY29tcG9uZW50Lmxlc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIENoZWNrcG9pbnRzUG9saWN5Q29udGFpbmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBhbmltYXRpb24gPSB0cnVlO1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc25hY2tiYXJTZXJ2aWNlOiBTbmFja0JhclNlcnZpY2UpIHt9XHJcbiAgQE91dHB1dCgpIGNsb3NlQ2hlY2tQb2ludCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgc2F2ZUNoZWNrUG9pbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQFZpZXdDaGlsZCgnY2hlY2twb2ludCcsIHsgc3RhdGljOiBmYWxzZSB9KVxyXG4gIENoZWNrcG9pbnRzUG9saWN5UXVlc3Rpb25zQ29tcG9uZW50ITogQ2hlY2twb2ludHNQb2xpY3lRdWVzdGlvbnNDb21wb25lbnQ7XHJcbiAgQElucHV0KCkgcmVxdWlyZWRQb2ludCA9IDA7XHJcbiAgQElucHV0KCkgY2hlY2twb2ludERhdGE6IGFueSA9IFtdO1xyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuY2hlY2twb2ludERhdGEgPSBjbG9uZURlZXAodGhpcy5jaGVja3BvaW50RGF0YSk7XHJcbiAgICBpZiAodGhpcy5jaGVja3BvaW50RGF0YS5sZW5ndGggPT09IDApIHtcclxuICAgICAgdGhpcy5jaGVja3BvaW50RGF0YSA9IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICByYW5zd2VyOiAnJyxcclxuICAgICAgICAgIHF1ZXN0aW9uOiAnJyxcclxuICAgICAgICAgIGFuc3dlcnM6IFsnJywgJyddLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIF07XHJcbiAgICB9XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5hbmltYXRpb24gPSBmYWxzZTtcclxuICAgIH0sIDUwMCk7XHJcbiAgICBpZiAodGhpcy5yZXF1aXJlZFBvaW50ID09PSAwKSB7XHJcbiAgICAgIHRoaXMucmVxdWlyZWRQb2ludCA9IDE7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZXh0KCkge1xyXG4gICAgdGhpcy5DaGVja3BvaW50c1BvbGljeVF1ZXN0aW9uc0NvbXBvbmVudC5zYXZlQ2hlY2tQb2ludCgpO1xyXG4gIH1cclxuICBzYXZlUXVlc3Rpb25zKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuY2hlY2twb2ludERhdGEgPSBldmVudDtcclxuICAgIHRoaXMuY2hlY2twb2ludERhdGEuZm9yRWFjaCgoZWxlbWVudDogYW55KSA9PiB7XHJcbiAgICAgIGlmIChlbGVtZW50Py5faWQpIHtcclxuICAgICAgICBkZWxldGUgZWxlbWVudC5faWQ7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgaWYgKHRoaXMucmVxdWlyZWRQb2ludCA+IHRoaXMuY2hlY2twb2ludERhdGEubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuc25hY2tiYXJTZXJ2aWNlLnNob3coXHJcbiAgICAgICAgYFRoZSBwb2ludHMgcmVxdWlyZWQgdG8gYXR0ZXN0IHRoaXMgcG9saWN5IGNhbm5vdCBleGNlZWQgJHt0aGlzLmNoZWNrcG9pbnREYXRhLmxlbmd0aH0uYFxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMucmVxdWlyZWRQb2ludCA8IDEpIHtcclxuICAgICAgICB0aGlzLnNuYWNrYmFyU2VydmljZS5zaG93KFxyXG4gICAgICAgICAgYFRoZSBwb2ludHMgcmVxdWlyZWQgdG8gYXR0ZXN0IHRoaXMgcG9saWN5IGNhbm5vdCBiZSAwYFxyXG4gICAgICAgICk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zYXZlQ2hlY2tQb2ludC5lbWl0KHtcclxuICAgICAgICAgIHJlcXVpcmVkUG9pbnQ6IHRoaXMucmVxdWlyZWRQb2ludCxcclxuICAgICAgICAgIGNoZWNrcG9pbnREZXRhaWxzOiB0aGlzLmNoZWNrcG9pbnREYXRhLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjwhLS0gPHA+Y2hlY2twb2ludHMgd29ya3MhPC9wPiAtLT5cclxuPGRpdiBjbGFzcz1cImNoZWNrcG9pbnRzXCIgW2NsYXNzLmFuaW1hdGVdPVwiYW5pbWF0aW9uXCI+XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJjaGVja3BvaW50cy1oZWFkIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1iZXR3ZWVuIHZ4LXBsLTQgdngtcHItNFwiXHJcbiAgPlxyXG4gICAgPGRpdiBjbGFzcz1cInZ4LWZzLTE0IHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHRcIj5BZGQgUXVlc3Rpb25zPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cImNoZWNrcG9pbnRzLWJvZHlcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjaGVja3BvaW50cy1ib2R5LWlubmVyIHZ4LW1iLTRcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNoZWNrcG9pbnRzLWJvZHktaW5zaWRlXCI+XHJcbiAgICAgICAgPCEtLSA8YXBwLWNoZWNrcG9pbnRzLWxpc3Q+PC9hcHAtY2hlY2twb2ludHMtbGlzdD4gLS0+XHJcbiAgICAgICAgPGFwcC1jaGVja3BvaW50cy1wb2xpY3ktcXVlc3Rpb25zXHJcbiAgICAgICAgICBbKHJlcXVpcmVkUG9pbnQpXT1cInJlcXVpcmVkUG9pbnRcIlxyXG4gICAgICAgICAgKGNoYW5nZU1heCk9XCJyZXF1aXJlZFBvaW50ID0gJGV2ZW50XCJcclxuICAgICAgICAgICNjaGVja3BvaW50XHJcbiAgICAgICAgICBbY2hlY2twb2ludERldGFpbHNdPVwiY2hlY2twb2ludERhdGFcIlxyXG4gICAgICAgICAgKHNhdmVWYWxpZFF1ZXN0aW9ucyk9XCJzYXZlUXVlc3Rpb25zKCRldmVudClcIlxyXG4gICAgICAgID48L2FwcC1jaGVja3BvaW50cy1wb2xpY3ktcXVlc3Rpb25zPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJjaGVja3BvaW50cy1mb290ZXJcIj5cclxuICAgICAgPGFwcC1jaGVja3BvaW50LWZsb2F0aW5nLWJhclxyXG4gICAgICAgIFtpc1BvbGljeUNoZWNrcG9pbnRdPVwidHJ1ZVwiXHJcbiAgICAgICAgKGNsb3NlTGlzdCk9XCJjbG9zZUNoZWNrUG9pbnQuZW1pdCgpXCJcclxuICAgICAgICBbcGx1cmFsVGV4dF09XCInUXVlc3Rpb25zIHNlbGVjdGVkJ1wiXHJcbiAgICAgICAgW3Npbmd1bGFyVGV4dF09XCInUXVlc3Rpb24gc2VsZWN0ZWQnXCJcclxuICAgICAgICAoc2F2ZUxpc3QpPVwibmV4dCgpXCJcclxuICAgICAgICBbKHJlcXVpcmVkUG9pbnQpXT1cInJlcXVpcmVkUG9pbnRcIlxyXG4gICAgICAgIFtjb3VudF09XCJjaGVja3BvaW50RGF0YT8ubGVuZ3RoXCJcclxuICAgICAgPjwvYXBwLWNoZWNrcG9pbnQtZmxvYXRpbmctYmFyPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -30,8 +30,7 @@ export class CheckpointsPolicyQuestionsComponent {
|
|
|
30
30
|
});
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
|
-
ngOnInit() {
|
|
34
|
-
}
|
|
33
|
+
ngOnInit() { }
|
|
35
34
|
/**
|
|
36
35
|
* Changes active question index
|
|
37
36
|
* @param index
|
|
@@ -48,9 +47,7 @@ export class CheckpointsPolicyQuestionsComponent {
|
|
|
48
47
|
const QUESTION = {
|
|
49
48
|
ranswer: '',
|
|
50
49
|
question: '',
|
|
51
|
-
answers: [
|
|
52
|
-
'', ''
|
|
53
|
-
]
|
|
50
|
+
answers: ['', ''],
|
|
54
51
|
};
|
|
55
52
|
this.checkPointQuestions.splice(index + 1, 0, QUESTION);
|
|
56
53
|
}
|
|
@@ -64,10 +61,9 @@ export class CheckpointsPolicyQuestionsComponent {
|
|
|
64
61
|
}
|
|
65
62
|
deleteOption(questionIndex, optionIndex) {
|
|
66
63
|
this.checkPointQuestions[questionIndex].answers.splice(optionIndex, 1);
|
|
67
|
-
this.focusAnOption(questionIndex,
|
|
64
|
+
this.focusAnOption(questionIndex, optionIndex - 1);
|
|
68
65
|
}
|
|
69
66
|
focusAnOption(questionIndex, optionIndex) {
|
|
70
|
-
console.log("focus", questionIndex, optionIndex);
|
|
71
67
|
setTimeout(() => {
|
|
72
68
|
const EL = document.getElementById('option' + '-' + questionIndex + '' + optionIndex);
|
|
73
69
|
if (EL) {
|
|
@@ -76,7 +72,9 @@ export class CheckpointsPolicyQuestionsComponent {
|
|
|
76
72
|
}, 10);
|
|
77
73
|
}
|
|
78
74
|
deleteOnBackspace(questionIndex, optionIndex) {
|
|
79
|
-
if (this.checkPointQuestions[questionIndex].answers?.length > 2 &&
|
|
75
|
+
if (this.checkPointQuestions[questionIndex].answers?.length > 2 &&
|
|
76
|
+
this.checkPointQuestions[questionIndex].answers[optionIndex].trim()
|
|
77
|
+
.length === 0) {
|
|
80
78
|
this.deleteOption(questionIndex, optionIndex);
|
|
81
79
|
}
|
|
82
80
|
}
|
|
@@ -86,9 +84,7 @@ export class CheckpointsPolicyQuestionsComponent {
|
|
|
86
84
|
const QUESTION = {
|
|
87
85
|
ranswer: '',
|
|
88
86
|
question: '',
|
|
89
|
-
answers: [
|
|
90
|
-
'', ''
|
|
91
|
-
]
|
|
87
|
+
answers: ['', ''],
|
|
92
88
|
};
|
|
93
89
|
this.checkPointQuestions.push(QUESTION);
|
|
94
90
|
this.requiredPoint = 1;
|
|
@@ -98,7 +94,8 @@ export class CheckpointsPolicyQuestionsComponent {
|
|
|
98
94
|
}
|
|
99
95
|
selectRightAnswer(evt, index, answerIndex) {
|
|
100
96
|
if (evt) {
|
|
101
|
-
this.checkPointQuestions[index].ranswer =
|
|
97
|
+
this.checkPointQuestions[index].ranswer =
|
|
98
|
+
this.checkPointQuestions[index][answerIndex];
|
|
102
99
|
this.rightAnswerIndex[index] = answerIndex;
|
|
103
100
|
this.reValidate(index);
|
|
104
101
|
}
|
|
@@ -124,31 +121,43 @@ export class CheckpointsPolicyQuestionsComponent {
|
|
|
124
121
|
this.errorTracker = [];
|
|
125
122
|
await this.checkPointQuestions.forEach((element, index) => {
|
|
126
123
|
if (element.question.trim().length === 0) {
|
|
127
|
-
this.errorTracker[index] = {
|
|
124
|
+
this.errorTracker[index] = {
|
|
125
|
+
type: 'QUESTION',
|
|
126
|
+
message: 'Please add a question.',
|
|
127
|
+
};
|
|
128
128
|
}
|
|
129
129
|
else {
|
|
130
130
|
if (element.answers.length >= 2) {
|
|
131
131
|
if (this.isOptionValid(element.answers) === false) {
|
|
132
|
-
this.errorTracker[index] = {
|
|
132
|
+
this.errorTracker[index] = {
|
|
133
|
+
type: 'OPTION',
|
|
134
|
+
message: 'You need to complete all the answer options.',
|
|
135
|
+
};
|
|
133
136
|
}
|
|
134
137
|
else {
|
|
135
138
|
if (this.checkDuplicate(element?.answers) === true) {
|
|
136
|
-
this.errorTracker[index] = {
|
|
139
|
+
this.errorTracker[index] = {
|
|
140
|
+
type: 'OPTION',
|
|
141
|
+
message: 'Two options cannot have same title.',
|
|
142
|
+
};
|
|
137
143
|
}
|
|
138
144
|
else {
|
|
139
145
|
if (element?.ranswer?.length === 0) {
|
|
140
|
-
this.errorTracker[index] = {
|
|
146
|
+
this.errorTracker[index] = {
|
|
147
|
+
type: 'OPTION',
|
|
148
|
+
message: 'Select the correct answer choice for this question.',
|
|
149
|
+
};
|
|
141
150
|
}
|
|
142
151
|
}
|
|
143
152
|
}
|
|
144
153
|
}
|
|
145
154
|
}
|
|
146
155
|
});
|
|
147
|
-
console.log(this.checkPointQuestions);
|
|
148
156
|
return this.errorTracker.length > 0 ? false : true;
|
|
149
157
|
}
|
|
150
158
|
isOptionValid(options) {
|
|
151
|
-
if (options.length ===
|
|
159
|
+
if (options.length ===
|
|
160
|
+
options.filter((ele) => ele.trim().length > 0).length) {
|
|
152
161
|
return true;
|
|
153
162
|
}
|
|
154
163
|
else {
|
|
@@ -185,4 +194,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
185
194
|
}], saveValidQuestions: [{
|
|
186
195
|
type: Output
|
|
187
196
|
}] } });
|
|
188
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2twb2ludHMtcG9saWN5LXF1ZXN0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2NoZWNrcG9pbnQtcG9saWN5L2NoZWNrcG9pbnRzLXBvbGljeS1xdWVzdGlvbnMvY2hlY2twb2ludHMtcG9saWN5LXF1ZXN0aW9ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2NoZWNrcG9pbnQtcG9saWN5L2NoZWNrcG9pbnRzLXBvbGljeS1xdWVzdGlvbnMvY2hlY2twb2ludHMtcG9saWN5LXF1ZXN0aW9ucy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7O0FBUS9FLE1BQU0sT0FBTyxtQ0FBbUM7SUFrQjlDO1FBakJBLHdCQUFtQixHQUFRLEVBQUUsQ0FBQztRQUNwQixjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNoQyxrQkFBYSxHQUFHLENBQUMsQ0FBQztRQUNqQix3QkFBbUIsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBWXpDLHVCQUFrQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbEQsd0JBQW1CLEdBQUcsQ0FBQyxDQUFFO1FBTXpCLGlCQUFZLEdBQU8sRUFBRSxDQUFDO1FBQ3RCLHFCQUFnQixHQUFRLEVBQUUsQ0FBQztJQU5YLENBQUM7SUFiakIsSUFBYSxpQkFBaUIsQ0FBQyxLQUFTO1FBQ25DLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxLQUFLLENBQUM7UUFDakMsSUFBRyxJQUFJLENB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QUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFDO1lBQzlFLE9BQU8sSUFBSSxDQUFDO1NBQ2I7YUFBSTtZQUNILE9BQU8sS0FBSyxDQUFDO1NBQ2Q7SUFDSCxDQUFDO0lBQ0QsY0FBYyxDQUFDLEdBQVE7UUFDckIsSUFBSSxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ25CLG1DQUFtQztRQUNuQyxNQUFNLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN2QixvQ0FBb0M7UUFDcEMsSUFBRyxHQUFHLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxJQUFJLEVBQUM7WUFDdEIsTUFBTSxHQUFHLElBQUksQ0FBQztTQUNoQjtRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxTQUFTLENBQUMsS0FBVSxFQUFFLElBQVM7UUFDN0IsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOztnSUF6S1ksbUNBQW1DO29IQUFuQyxtQ0FBbUMsdVJDUmhELDB5TkFnR0E7MkZEeEZhLG1DQUFtQztrQkFML0MsU0FBUzsrQkFDRSxrQ0FBa0M7MEVBTWxDLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0UsYUFBYTtzQkFBckIsS0FBSztnQkFDSSxtQkFBbUI7c0JBQTVCLE1BQU07Z0JBQ00saUJBQWlCO3NCQUE3QixLQUFLO2dCQVdJLGtCQUFrQjtzQkFBM0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1jaGVja3BvaW50cy1wb2xpY3ktcXVlc3Rpb25zJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY2hlY2twb2ludHMtcG9saWN5LXF1ZXN0aW9ucy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY2hlY2twb2ludHMtcG9saWN5LXF1ZXN0aW9ucy5jb21wb25lbnQubGVzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDaGVja3BvaW50c1BvbGljeVF1ZXN0aW9uc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgY2hlY2tQb2ludFF1ZXN0aW9ucyA6YW55ID0gW107XHJcbiAgQE91dHB1dCgpIGNoYW5nZU1heCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBASW5wdXQoKSByZXF1aXJlZFBvaW50ID0gMDtcclxuICBAT3V0cHV0KCkgcmVxdWlyZWRQb2ludENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBASW5wdXQoKSBzZXQgY2hlY2twb2ludERldGFpbHModmFsdWU6YW55KXtcclxuICAgICAgIHRoaXMuY2hlY2tQb2ludFF1ZXN0aW9ucyA9IHZhbHVlO1xyXG4gICAgICAgaWYodGhpcy5jaGVja1BvaW50UXVlc3Rpb25zLmxlbmd0aCl7XHJcbiAgICAgICAgIHRoaXMuY2hlY2tQb2ludFF1ZXN0aW9ucy5mb3JFYWNoKChlbGVtZW50OmFueSxpbmRleDpudW1iZXIpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgYW5zd2VySW5kZXggPSBlbGVtZW50Py5hbnN3ZXJzLmluZGV4T2YoZWxlbWVudD8ucmFuc3dlcik7XHJcbiAgICAgICAgICAgIGlmKGFuc3dlckluZGV4ID4gLTEgJiYgZWxlbWVudC5yYW5zd2VyLnRyaW0oKS5sZW5ndGggPiAwKXtcclxuICAgICAgICAgICAgICB0aGlzLnJpZ2h0QW5zd2VySW5kZXhbaW5kZXhdPWFuc3dlckluZGV4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgIH0pO1xyXG4gICAgICAgfVxyXG4gIH1cclxuICBAT3V0cHV0KCkgc2F2ZVZhbGlkUXVlc3Rpb25zID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIGFjdGl2ZVF1ZXN0aW9uSW5kZXggPSAwIDtcclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICB9XHJcblxyXG4gIGVycm9yVHJhY2tlcjphbnkgPSBbXTtcclxuICByaWdodEFuc3dlckluZGV4IDphbnkgPSBbXTtcclxuXHJcbi8qKlxyXG4gKiBDaGFuZ2VzIGFjdGl2ZSBxdWVzdGlvbiBpbmRleFxyXG4gKiBAcGFyYW0gaW5kZXhcclxuICovXHJcbmNoYW5nZUFjdGl2ZVF1ZXN0aW9uKGluZGV4Om51bWJlcil7XHJcbiAgICAgdGhpcy5hY3RpdmVRdWVzdGlvbkluZGV4ID0gaW5kZXg7XHJcbiAgfVxyXG5cclxuY2xvbmVRdWVzdGlvbihpbmRleDogYW55LCBpc0JsYW5rID86Ym9vbGVhbil7XHJcbiAgaWYoaXNCbGFuayA9PT0gZmFsc2Upe1xyXG4gICAgY29uc3QgQ09QWV9BUlIgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuY2hlY2tQb2ludFF1ZXN0aW9uc1tpbmRleF0pKTtcclxuICAgIHRoaXMuY2hlY2tQb2ludFF1ZXN0aW9ucy5zcGxpY2UoaW5kZXggKyAxLCAwLCBDT1BZX0FSUik7XHJcbiAgfVxyXG4gIGlmKGlzQmxhbmsgPT09IHRydWUpe1xyXG4gICAgY29uc3QgUVVFU1RJT04gPSB7XHJcbiAgICAgIHJhbnN3ZXIgOiAnJyxcclxuICAgICAgcXVlc3Rpb24gOiAnJyxcclxuICAgICAgYW5zd2VycyA6IFtcclxuICAgICAgICAnJywnJ1xyXG5cclxuICAgICAgXVxyXG4gICAgfVxyXG4gICAgdGhpcy5jaGVja1BvaW50UXVlc3Rpb25zLnNwbGljZShpbmRleCArIDEsIDAsIFFVRVNUSU9OKTtcclxuXHJcbiAgfVxyXG4gIHRoaXMuY2hhbmdlQWN0aXZlUXVlc3Rpb24oaW5kZXgrMSk7XHJcbiAgdGhpcy5yZXF1aXJlZFBvaW50Q2hhbmdlLmVtaXQodGhpcy5yZXF1aXJlZFBvaW50ICsxKVxyXG4gIC8vdGhpcy5jaGFuZ2VNYXguZW1pdCh0aGlzLmNoZWNrUG9pbnRRdWVzdGlvbnMubGVuZ3RoKVxyXG59XHJcblxyXG5hZGRPcHRpb24ocXVlc3Rpb25JbmRleDpudW1iZXIsIG9wdGlvbkluZGV4IDpudW1iZXIpe1xyXG4gIHRoaXMuY2hlY2tQb2ludFF1ZXN0aW9uc1txdWVzdGlvbkluZGV4XS5hbnN3ZXJzLnNwbGljZShvcHRpb25JbmRleCArIDEsIDAsICcnKTtcclxuICB0aGlzLmZvY3VzQW5PcHRpb24ocXVlc3Rpb25JbmRleCwgb3B0aW9uSW5kZXggKyAxKVxyXG59XHJcbmRlbGV0ZU9wdGlvbihxdWVzdGlvbkluZGV4Om51bWJlciwgb3B0aW9uSW5kZXggOm51bWJlcil7XHJcbiAgdGhpcy5jaGVja1BvaW50UXVlc3Rpb25zW3F1ZXN0aW9uSW5kZXhdLmFuc3dlcnMuc3BsaWNlKG9wdGlvbkluZGV4LCAxKTtcclxuICB0aGlzLmZvY3VzQW5PcHRpb24ocXVlc3Rpb25JbmRleCwgKG9wdGlvbkluZGV4IC0gMSkpXHJcbn1cclxuXHJcbmZvY3VzQW5PcHRpb24ocXVlc3Rpb25JbmRleDpudW1iZXIsIG9wdGlvbkluZGV4IDpudW1iZXIpe1xyXG4gIGNvbnNvbGUubG9nKFwiZm9jdXNcIixxdWVzdGlvbkluZGV4LG9wdGlvbkluZGV4KVxyXG4gIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgY29uc3QgRUw6IGFueSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdvcHRpb24nICsgJy0nICsgcXVlc3Rpb25JbmRleCArICcnICsgb3B0aW9uSW5kZXgpO1xyXG4gICAgaWYgKEVMKSB7IEVMLmZvY3VzKCk7IH1cclxuICB9LCAxMCk7XHJcbn1cclxuXHJcbmRlbGV0ZU9uQmFja3NwYWNlKHF1ZXN0aW9uSW5kZXg6bnVtYmVyLCBvcHRpb25JbmRleCA6bnVtYmVyKXtcclxuICBpZih0aGlzLmNoZWNrUG9pbnRRdWVzdGlvbnNbcXVlc3Rpb25JbmRleF0uYW5zd2Vycz8ubGVuZ3RoID4gMiAmJiAgdGhpcy5jaGVja1BvaW50UXVlc3Rpb25zW3F1ZXN0aW9uSW5kZXhdLmFuc3dlcnNbb3B0aW9uSW5kZXhdLnRyaW0oKS5sZW5ndGggPT09IDAgKXtcclxuICAgIHRoaXMuZGVsZXRlT3B0aW9uKHF1ZXN0aW9uSW5kZXgsb3B0aW9uSW5kZXgpO1xyXG4gIH1cclxufVxyXG5kZWxldGVRdWVzdGlvbihxdWVzdGlvbkluZGV4Om51bWJlcil7XHJcbiAgdGhpcy5jaGVja1BvaW50UXVlc3Rpb25zLnNwbGljZShxdWVzdGlvbkluZGV4LCAxKTtcclxuICBpZih0aGlzLmNoZWNrUG9pbnRRdWVzdGlvbnMubGVuZ3RoID09PSAwICl7XHJcbiAgICBjb25zdCBRVUVTVElPTiA9IHtcclxuICAgICAgcmFuc3dlciA6ICcnLFxyXG4gICAgICBxdWVzdGlvbiA6ICcnLFxyXG4gICAgICBhbnN3ZXJzIDogW1xyXG4gICAgICAgICcnLCcnXHJcbiAgICAgIF1cclxuICAgIH1cclxuICAgIHRoaXMuY2hlY2tQb2ludFF1ZXN0aW9ucy5wdXNoKFFVRVNUSU9OKTtcclxuICAgIHRoaXMucmVxdWlyZWRQb2ludCA9IDE7XHJcbiAgfVxyXG4gIC8vdGhpcy5jaGFuZ2VNYXguZW1pdCh0aGlzLmNoZWNrUG9pbnRRdWVzdGlvbnMubGVuZ3RoKVxyXG4gIHRoaXMucmVxdWlyZWRQb2ludENoYW5nZS5lbWl0KHRoaXMucmVxdWlyZWRQb2ludCAtIDEpXHJcbn1cclxuc2VsZWN0UmlnaHRBbnN3ZXIoZXZ0OmFueSwgaW5kZXg6IG51bWJlcixhbnN3ZXJJbmRleDpzdHJpbmcpe1xyXG4gIGlmKGV2dCl7XHJcbiAgICB0aGlzLmNoZWNrUG9pbnRRdWVzdGlvbnNbaW5kZXhdLnJhbnN3ZXIgPSAgdGhpcy5jaGVja1BvaW50UXVlc3Rpb25zW2luZGV4XVthbnN3ZXJJbmRleF07XHJcbiAgICB0aGlzLnJpZ2h0QW5zd2VySW5kZXhbaW5kZXhdID0gYW5zd2VySW5kZXg7XHJcbiAgICB0aGlzLnJlVmFsaWRhdGUoaW5kZXgpO1xyXG4gIH1cclxufVxyXG5cclxucmVWYWxpZGF0ZShxdWVzdGlvbkluZGV4Om51bWJlcil7XHJcbiAgaWYodGhpcy5lcnJvclRyYWNrZXJbcXVlc3Rpb25JbmRleF0pe1xyXG4gICAgdGhpcy52YWxpZGF0ZUZvcm0oKTtcclxuICB9XHJcbn1cclxuXHJcblxyXG5cclxuYXN5bmMgc2F2ZUNoZWNrUG9pbnQoKXtcclxuICBjb25zdCB2YWxpZFN0YXR1cyA9IGF3YWl0IHRoaXMudmFsaWRhdGVGb3JtKCk7XHJcbiAgaWYodmFsaWRTdGF0dXMpe1xyXG4gICAgdGhpcy5zYXZlVmFsaWRRdWVzdGlvbnMuZW1pdCh0aGlzLmNoZWNrUG9pbnRRdWVzdGlvbnMpO1xyXG4gIH1cclxufVxyXG5cclxubWFwUmlnaHRBbnN3ZXJzKCl7XHJcbiAgdGhpcy5jaGVja1BvaW50UXVlc3Rpb25zLmZvckVhY2goKGVsZW1lbnQ6YW55LGluZGV4Om51bWJlcikgPT4ge1xyXG4gICAgZWxlbWVudC5yYW5zd2VyID0gIGVsZW1lbnQuYW5zd2Vyc1t0aGlzLnJpZ2h0QW5zd2VySW5kZXhbaW5kZXhdXSA/PycnO1xyXG4gIH0pO1xyXG59XHJcbmFzeW5jIHZhbGlkYXRlRm9ybSgpe1xyXG4gIGF3YWl0IHRoaXMubWFwUmlnaHRBbnN3ZXJzKClcclxuICB0aGlzLmVycm9yVHJhY2tlciA9IFtdO1xyXG4gIGF3YWl0IHRoaXMuY2hlY2tQb2ludFF1ZXN0aW9ucy5mb3JFYWNoKChlbGVtZW50OmFueSxpbmRleDpudW1iZXIpID0+IHtcclxuICAgIGlmKGVsZW1lbnQucXVlc3Rpb24udHJpbSgpLmxlbmd0aCA9PT0gMCl7XHJcbiAgICAgIHRoaXMuZXJyb3JUcmFja2VyW2luZGV4XSA9IHt0eXBlIDonUVVFU1RJT04nLG1lc3NhZ2U6ICdQbGVhc2UgYWRkIGEgcXVlc3Rpb24uJ31cclxuICAgIH1lbHNle1xyXG4gICAgICAgaWYoZWxlbWVudC5hbnN3ZXJzLmxlbmd0aCAgPj0gIDIgKXtcclxuICAgICAgICAgICBpZih0aGlzLmlzT3B0aW9uVmFsaWQoZWxlbWVudC5hbnN3ZXJzKSA9PT0gZmFsc2Upe1xyXG4gICAgICAgICAgICB0aGlzLmVycm9yVHJhY2tlcltpbmRleF0gPSB7dHlwZSA6J09QVElPTicsbWVzc2FnZTogJ1lvdSBuZWVkIHRvIGNvbXBsZXRlIGFsbCB0aGUgYW5zd2VyIG9wdGlvbnMuJ307XHJcblxyXG4gICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICAgaWYodGhpcy5jaGVja0R1cGxpY2F0ZShlbGVtZW50Py5hbnN3ZXJzKSA9PT0gdHJ1ZSl7XHJcbiAgICAgICAgICAgICAgdGhpcy5lcnJvclRyYWNrZXJbaW5kZXhdID0ge3R5cGUgOidPUFRJT04nLG1lc3NhZ2U6ICdUd28gb3B0aW9ucyBjYW5ub3QgaGF2ZSBzYW1lIHRpdGxlLid9XHJcbiAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICBpZihlbGVtZW50Py5yYW5zd2VyPy5sZW5ndGggPT09IDApe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5lcnJvclRyYWNrZXJbaW5kZXhdID0ge3R5cGUgOidPUFRJT04nLG1lc3NhZ2U6ICdTZWxlY3QgdGhlIGNvcnJlY3QgYW5zd2VyIGNob2ljZSBmb3IgdGhpcyBxdWVzdGlvbi4nfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgIH1cclxuICAgICAgICAgICB9XHJcbiAgICAgICB9XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgY29uc29sZS5sb2codGhpcy5jaGVja1BvaW50UXVlc3Rpb25zKTtcclxuICByZXR1cm4gdGhpcy5lcnJvclRyYWNrZXIubGVuZ3RoID4gMCA/IGZhbHNlIDogdHJ1ZVxyXG59XHJcbmlzT3B0aW9uVmFsaWQob3B0aW9uczphbnkpe1xyXG4gIGlmKG9wdGlvbnMubGVuZ3RoID09PSBvcHRpb25zLmZpbHRlcigoZWxlOmFueSkgPT4gZWxlLnRyaW0oKS5sZW5ndGggPiAwKS5sZW5ndGgpe1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfWVsc2V7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG59XHJcbmNoZWNrRHVwbGljYXRlKGFyciA6YW55ICkge1xyXG4gIGxldCByZXN1bHQgPSBmYWxzZTtcclxuICAvLyBjcmVhdGUgYSBTZXQgd2l0aCBhcnJheSBlbGVtZW50c1xyXG4gIGNvbnN0IHMgPSBuZXcgU2V0KGFycik7XHJcbiAgLy8gY29tcGFyZSB0aGUgc2l6ZSBvZiBhcnJheSBhbmQgU2V0XHJcbiAgaWYoYXJyLmxlbmd0aCAhPT0gcy5zaXplKXtcclxuICAgICByZXN1bHQgPSB0cnVlO1xyXG4gIH1cclxuICByZXR1cm4gcmVzdWx0O1xyXG59XHJcblxyXG50cmFja0J5Rm4oaW5kZXg6IGFueSwgaXRlbTogYW55KSB7XHJcbiAgcmV0dXJuIGluZGV4O1xyXG59XHJcblxyXG5cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY2hlY2twb2ludHMtcG9saWN5LXF1ZXN0aW9uc1wiPlxyXG4gICAgPCEtLSA8ZGl2IGNsYXNzPVwiY2hlY2twb2ludHMtcXVlc3Rpb25zLWJsb2NrcyBpbnN0cnVjdGlvblwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cclxuICAgICAgICAgICAgPGgzIGNsYXNzPVwicXVlc3Rpb25cIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY291bnRlclwiPjxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTMyOzwvaT48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHRcIj5BZGQgaW5zdHJ1Y3Rpb248L3NwYW4+XHJcbiAgICAgICAgICAgIDwvaDM+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj4gLS0+XHJcbiAgICA8IS0tIDxzbWFsbD5cclxuICAgICAgPHByZT5cclxuICAgICAgICB7e2NoZWNrUG9pbnRRdWVzdGlvbnMgfGpzb259fVxyXG4gICAgICA8L3ByZT5cclxuICAgIDwvc21hbGw+IC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cImNoZWNrcG9pbnRzLXBvbGljeS1xdWVzdGlvbnMtdG9wIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1iZXR3ZWVuIHZ4LXBiLTIgdngtbWItMlwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidngtZnMtMTEgdngtZnctNTAwIHZ4LWxhYmVsLXR4dCB2eC10dC11cHBlcmNhc2UgdngtbXItMVwiPlRPVEFMIFBPSU5UUzwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2eC1mcy0xMSB2eC1wYXJhZ3JhcGgtdHh0IHZ4LW1yLTFcIj4oRWFjaCBxdWVzdGlvbiBjYXJyaWVzIDEgcG9pbnQpPC9zcGFuPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicXVlc3Rpb24tY291bnQgdngtZnMtMTIgdngtcGFyYWdyYXBoLXR4dCB2eC1wbC0xIHZ4LXByLTEgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlclwiPnt7Y2hlY2tQb2ludFF1ZXN0aW9ucy5sZW5ndGh9fTwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidngtZnMtMTEgdngtZnctNTAwIHZ4LWxhYmVsLXR4dCB2eC10dC11cHBlcmNhc2VcIj5QT0lOVFMgUkVRVUlSRUQgVE8gQVRURVNUOiA8c3BhbiBjbGFzcz1cInZ4LWZzLTE0IHZ4LXR4dC1yZWRcIj4qPC9zcGFuPjwvc3Bhbj5cclxuICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29ucyBpbmZvIHZ4LWZzLTEyIHZ4LXR4dC1ibHVlIHZ4LW1sLTJcIiBhcHBQb3BvdmVyIChjbGljayk9XCJwb2xpY3lQYXNzaW5nLnBvcG92ZXIoKVwiIHBsYWNlbWVudD1cInJpZ2h0XCI+JiN4ZTkxZjs8L2k+XHJcbiAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImF0dGVzdElucHV0XCIgIHR5cGU9XCJudW1iZXJcIiBbKG5nTW9kZWwpXT1cInJlcXVpcmVkUG9pbnRcIiBbbWF4XT1cImNoZWNrUG9pbnRRdWVzdGlvbnMubGVuZ3RoXCIgICBvbmtleWRvd249XCJyZXR1cm4gZXZlbnQua2V5Q29kZSAhPT0gMTkwXCIgbWluPVwiMFwiXHJcbiAgICAgICAgICAgIG9uaW5wdXQ9XCJ0aGlzLnZhbHVlID0gTWF0aC5hYnModGhpcy52YWx1ZSk7XCIgKG5nTW9kZWxDaGFuZ2UpPVwicmVxdWlyZWRQb2ludENoYW5nZS5lbWl0KHJlcXVpcmVkUG9pbnQpXCIvPlxyXG4gICAgICAgICAgICA8YXBwLXBvcG92ZXIgI3BvbGljeVBhc3NpbmcgW2RvbnRDbG9zZW9uQ2xpY2tdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImluZm9Qb3B1cFwiPlxyXG4gICAgICAgICAgICAgICAgIEV2ZXJ5IGNvcnJlY3QgYW5zd2VyIGNob2ljZSBjYXJyaWVzIDEgcG9pbnQuIFlvdSBjYW4gc3BlY2lmeSB0aGUgdG90YWwgbnVtYmVyIG9mIHF1ZXN0aW9ucyB0aGF0IHRoZSByZWFkZXIgbXVzdCBhbnN3ZXIgY29ycmVjdGx5IGluIG9yZGVyIHRvIGF0dGVzdCB0aGUgcG9saWN5LlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvYXBwLXBvcG92ZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHF1ZXN0aW9uVmFsdWUgb2YgY2hlY2tQb2ludFF1ZXN0aW9uczsgbGV0IHF1ZXN0aW9uSW5kZXggPSBpbmRleFwiPlxyXG4gICAgICA8IS0tIFtjbGFzcy5lcnJvcl09XCJxdWVzdGlvbkluZGV4ID09PSAwXCIgLS0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrcG9pbnRzLXBvbGljeS1xdWVzdGlvbnMtYmxvY2tzXCIgW2FwcFNjcm9sbEluVmlld109XCJhY3RpdmVRdWVzdGlvbkluZGV4ID09PSBxdWVzdGlvbkluZGV4XCIgICBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZVF1ZXN0aW9uSW5kZXggPT09IHF1ZXN0aW9uSW5kZXhcIiAoY2xpY2spPVwiY2hhbmdlQWN0aXZlUXVlc3Rpb24ocXVlc3Rpb25JbmRleClcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwicXVlc3Rpb25cIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjb3VudGVyXCI+e3txdWVzdGlvbkluZGV4ICsgMX19LlxyXG4gICAgICAgICAgICAgICAgICAgICAgPCEtLSA8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBbYXBwQ29uZGl0aW9uYWxGb2N1c109XCJhY3RpdmVRdWVzdGlvbkluZGV4ID09PSBxdWVzdGlvbkluZGV4XCIgWyhuZ01vZGVsKV09XCJxdWVzdGlvblZhbHVlLnF1ZXN0aW9uXCIgY2xhc3M9XCJ0ZXh0XCIgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlR5cGUgeW91ciBxdWVzdGlvbiBoZXJlXCIgKG5nTW9kZWxDaGFuZ2UpPVwicmVWYWxpZGF0ZShxdWVzdGlvbkluZGV4KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPC9oMz5cclxuICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiICpuZ0lmPVwiZXJyb3JUcmFja2VyW3F1ZXN0aW9uSW5kZXhdPy50eXBlID09PSAnUVVFU1RJT04nXCI+e3tlcnJvclRyYWNrZXJbcXVlc3Rpb25JbmRleF0/Lm1lc3NhZ2V9fTwvcD5cclxuICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cImxpc3RcIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPGxpICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgcXVlc3Rpb25WYWx1ZS5hbnN3ZXJzOyBsZXQgb3B0aW9uSW5kZXggPSBpbmRleDt0cmFja0J5OnRyYWNrQnlGblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YXBwLWNzLXJhZGlvICBbcmVhZG9ubHldPVwib3B0aW9uPy50cmltKCk/Lmxlbmd0aCA9PT0gMFwiIFtuYW1lXT1cIidvcHRpb24tJyArICcnICsgcXVlc3Rpb25JbmRleCArICcnICsgb3B0aW9uSW5kZXhcIiBbY2hlY2tlZF09XCJyaWdodEFuc3dlckluZGV4W3F1ZXN0aW9uSW5kZXhdID09PSBvcHRpb25JbmRleCA/IHRydWUgIDpmYWxzZSBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2hlY2tlZEV2ZW50KT1cInNlbGVjdFJpZ2h0QW5zd2VyKCRldmVudCxxdWVzdGlvbkluZGV4LG9wdGlvbkluZGV4KVwiIFtvbmVMaW5lXT1cInRydWVcIiBbaWRdPVwib3B0aW9uSW5kZXggKyAnd2VlJ1wiID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgIFtpZF09XCInb3B0aW9uLScgKyAnJyArIHF1ZXN0aW9uSW5kZXggKyAnJyArIG9wdGlvbkluZGV4XCIgKG5nTW9kZWxDaGFuZ2UpPVwicmVWYWxpZGF0ZShxdWVzdGlvbkluZGV4KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwiYWRkT3B0aW9uKHF1ZXN0aW9uSW5kZXgsb3B0aW9uSW5kZXgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bi5iYWNrc3BhY2UpPVwiZGVsZXRlT25CYWNrc3BhY2UocXVlc3Rpb25JbmRleCxvcHRpb25JbmRleClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiT3B0aW9uXCIgWyhuZ01vZGVsKV09XCJxdWVzdGlvblZhbHVlLmFuc3dlcnNbb3B0aW9uSW5kZXhdXCIgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cIk9wdGlvblwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYXBwLWNzLXJhZGlvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwicXVlc3Rpb25WYWx1ZT8uYW5zd2Vycz8ubGVuZ3RoID4gMiAmJiBhY3RpdmVRdWVzdGlvbkluZGV4ID09PSBxdWVzdGlvbkluZGV4XCIgKGNsaWNrKT1cImRlbGV0ZU9wdGlvbihxdWVzdGlvbkluZGV4LG9wdGlvbkluZGV4KVwiIGNsYXNzPVwiY2xvc2VcIiA+PGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MGQ7PC9pPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cImFkZC1uZXdcIiAqbmdJZj1cImFjdGl2ZVF1ZXN0aW9uSW5kZXggPT09IHF1ZXN0aW9uSW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGFwcC1jcy1yYWRpbyBbb25lTGluZV09XCJ0cnVlXCIgW3JlYWRvbmx5XT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHJlYWRvbmx5IHBsYWNlaG9sZGVyPVwiQWRkIG1vcmUgb3B0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWRkT3B0aW9uKHF1ZXN0aW9uSW5kZXgscXVlc3Rpb25WYWx1ZT8uYW5zd2Vycz8ubGVuZ3RoLTEpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYXBwLWNzLXJhZGlvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCIgKm5nSWY9XCJlcnJvclRyYWNrZXJbcXVlc3Rpb25JbmRleF0/LnR5cGUgPT09ICdPUFRJT04nXCI+e3tlcnJvclRyYWNrZXJbcXVlc3Rpb25JbmRleF0/Lm1lc3NhZ2V9fTwvcD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9vdGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gPGFwcC1jcy1jaGVja2JveD5JcyByZXF1aXJlZDwvYXBwLWNzLWNoZWNrYm94PiAtLT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJjbG9uZVF1ZXN0aW9uKHF1ZXN0aW9uSW5kZXgsdHJ1ZSk7JGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1wiIFthcHBUb29sdGlwXT1cIidBZGQgbmV3J1wiIHBsYWNlbWVudD1cImJvdHRvbVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTkxNTs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAgKGNsaWNrKT1cImRlbGV0ZVF1ZXN0aW9uKHF1ZXN0aW9uSW5kZXgpXCIgY2xhc3M9XCJkZWxldGVcIiBbYXBwVG9vbHRpcF09XCInRGVsZXRlJ1wiIHBsYWNlbWVudD1cImJvdHRvbVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTkyMzs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiY2xvbmVRdWVzdGlvbihxdWVzdGlvbkluZGV4LGZhbHNlKTskZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XCIgW2FwcFRvb2x0aXBdPVwiJ0NvcHknXCIgcGxhY2VtZW50PVwiYm90dG9tXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOWI2OzwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDxidXR0b24gY2xhc3M9XCJidG4tYWRkLW5ldyB2eC1mcy0xMSB2eC1mdy02MDAgdngtdHh0LWJsdWUgdngtdHQtdXBwZXJjYXNlIHZ4LXAtMCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktY2VudGVyXCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJjbG9uZVF1ZXN0aW9uKGNoZWNrUG9pbnRRdWVzdGlvbnMubGVuZ3RoIC0xLHRydWUpOyRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcIj4rIEFERCBBIE5FVyBRVUVTVElPTjwvYnV0dG9uPlxyXG48L2Rpdj5cclxuIl19
|
|
197
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2twb2ludHMtcG9saWN5LXF1ZXN0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2NoZWNrcG9pbnQtcG9saWN5L2NoZWNrcG9pbnRzLXBvbGljeS1xdWVzdGlvbnMvY2hlY2twb2ludHMtcG9saWN5LXF1ZXN0aW9ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2NoZWNrcG9pbnQtcG9saWN5L2NoZWNrcG9pbnRzLXBvbGljeS1xdWVzdGlvbnMvY2hlY2twb2ludHMtcG9saWN5LXF1ZXN0aW9ucy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7O0FBTy9FLE1BQU0sT0FBTyxtQ0FBbUM7SUFrQjlDO1FBakJBLHdCQUFtQixHQUFRLEVBQUUsQ0FBQztRQUNwQixjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNoQyxrQkFBYSxHQUFHLENBQUMsQ0FBQztRQUNqQix3QkFBbUIsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBWXpDLHVCQUFrQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbEQsd0JBQW1CLEdBQUcsQ0FBQyxDQUFDO1FBS3hCLGlCQUFZLEdBQVEsRUFBRSxDQUFDO1FBQ3ZCLHFCQUFnQixHQUFRLEVBQUUsQ0FBQztJQUxaLENBQUM7SUFiaEIsSUFBYSxpQkFBaUIsQ0FBQyxLQUFVO1FBQ3ZDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxLQUFLLENBQUM7UUFDakMsSUFBSSxJQUFJLENB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LENBQUM7U0FDZDtJQUNILENBQUM7SUFDRCxjQUFjLENBQUMsR0FBUTtRQUNyQixJQUFJLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDbkIsbUNBQW1DO1FBQ25DLE1BQU0sQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZCLG9DQUFvQztRQUNwQyxJQUFJLEdBQUcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLElBQUksRUFBRTtZQUN6QixNQUFNLEdBQUcsSUFBSSxDQUFDO1NBQ2Y7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQVUsRUFBRSxJQUFTO1FBQzdCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs7Z0lBM0xVLG1DQUFtQztvSEFBbkMsbUNBQW1DLHVSQ1BoRCwweU5BZ0dBOzJGRHpGYSxtQ0FBbUM7a0JBTC9DLFNBQVM7K0JBQ0Usa0NBQWtDOzBFQU1sQyxTQUFTO3NCQUFsQixNQUFNO2dCQUNFLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0ksbUJBQW1CO3NCQUE1QixNQUFNO2dCQUNNLGlCQUFpQjtzQkFBN0IsS0FBSztnQkFXSSxrQkFBa0I7c0JBQTNCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1jaGVja3BvaW50cy1wb2xpY3ktcXVlc3Rpb25zJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY2hlY2twb2ludHMtcG9saWN5LXF1ZXN0aW9ucy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY2hlY2twb2ludHMtcG9saWN5LXF1ZXN0aW9ucy5jb21wb25lbnQubGVzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2hlY2twb2ludHNQb2xpY3lRdWVzdGlvbnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGNoZWNrUG9pbnRRdWVzdGlvbnM6IGFueSA9IFtdO1xyXG4gIEBPdXRwdXQoKSBjaGFuZ2VNYXggPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQElucHV0KCkgcmVxdWlyZWRQb2ludCA9IDA7XHJcbiAgQE91dHB1dCgpIHJlcXVpcmVkUG9pbnRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQElucHV0KCkgc2V0IGNoZWNrcG9pbnREZXRhaWxzKHZhbHVlOiBhbnkpIHtcclxuICAgIHRoaXMuY2hlY2tQb2ludFF1ZXN0aW9ucyA9IHZhbHVlO1xyXG4gICAgaWYgKHRoaXMuY2hlY2tQb2ludFF1ZXN0aW9ucy5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5jaGVja1BvaW50UXVlc3Rpb25zLmZvckVhY2goKGVsZW1lbnQ6IGFueSwgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICAgIGNvbnN0IGFuc3dlckluZGV4ID0gZWxlbWVudD8uYW5zd2Vycy5pbmRleE9mKGVsZW1lbnQ/LnJhbnN3ZXIpO1xyXG4gICAgICAgIGlmIChhbnN3ZXJJbmRleCA+IC0xICYmIGVsZW1lbnQucmFuc3dlci50cmltKCkubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgdGhpcy5yaWdodEFuc3dlckluZGV4W2luZGV4XSA9IGFuc3dlckluZGV4O1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBPdXRwdXQoKSBzYXZlVmFsaWRRdWVzdGlvbnMgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgYWN0aXZlUXVlc3Rpb25JbmRleCA9IDA7XHJcbiAgY29uc3RydWN0b3IoKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHt9XHJcblxyXG4gIGVycm9yVHJhY2tlcjogYW55ID0gW107XHJcbiAgcmlnaHRBbnN3ZXJJbmRleDogYW55ID0gW107XHJcblxyXG4gIC8qKlxyXG4gICAqIENoYW5nZXMgYWN0aXZlIHF1ZXN0aW9uIGluZGV4XHJcbiAgICogQHBhcmFtIGluZGV4XHJcbiAgICovXHJcbiAgY2hhbmdlQWN0aXZlUXVlc3Rpb24oaW5kZXg6IG51bWJlcikge1xyXG4gICAgdGhpcy5hY3RpdmVRdWVzdGlvbkluZGV4ID0gaW5kZXg7XHJcbiAgfVxyXG5cclxuICBjbG9uZVF1ZXN0aW9uKGluZGV4OiBhbnksIGlzQmxhbms/OiBib29sZWFuKSB7XHJcbiAgICBpZiAoaXNCbGFuayA9PT0gZmFsc2UpIHtcclxuICAgICAgY29uc3QgQ09QWV9BUlIgPSBKU09OLnBhcnNlKFxyXG4gICAgICAgIEpTT04uc3RyaW5naWZ5KHRoaXMuY2hlY2tQb2ludFF1ZXN0aW9uc1tpbmRleF0pXHJcbiAgICAgICk7XHJcbiAgICAgIHRoaXMuY2hlY2tQb2ludFF1ZXN0aW9ucy5zcGxpY2UoaW5kZXggKyAxLCAwLCBDT1BZX0FSUik7XHJcbiAgICB9XHJcbiAgICBpZiAoaXNCbGFuayA9PT0gdHJ1ZSkge1xyXG4gICAgICBjb25zdCBRVUVTVElPTiA9IHtcclxuICAgICAgICByYW5zd2VyOiAnJyxcclxuICAgICAgICBxdWVzdGlvbjogJycsXHJcbiAgICAgICAgYW5zd2VyczogWycnLCAnJ10sXHJcbiAgICAgIH07XHJcbiAgICAgIHRoaXMuY2hlY2tQb2ludFF1ZXN0aW9ucy5zcGxpY2UoaW5kZXggKyAxLCAwLCBRVUVTVElPTik7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNoYW5nZUFjdGl2ZVF1ZXN0aW9uKGluZGV4ICsgMSk7XHJcbiAgICB0aGlzLnJlcXVpcmVkUG9pbnRDaGFuZ2UuZW1pdCh0aGlzLnJlcXVpcmVkUG9pbnQgKyAxKTtcclxuICAgIC8vdGhpcy5jaGFuZ2VNYXguZW1pdCh0aGlzLmNoZWNrUG9pbnRRdWVzdGlvbnMubGVuZ3RoKVxyXG4gIH1cclxuXHJcbiAgYWRkT3B0aW9uKHF1ZXN0aW9uSW5kZXg6IG51bWJlciwgb3B0aW9uSW5kZXg6IG51bWJlcikge1xyXG4gICAgdGhpcy5jaGVja1BvaW50UXVlc3Rpb25zW3F1ZXN0aW9uSW5kZXhdLmFuc3dlcnMuc3BsaWNlKFxyXG4gICAgICBvcHRpb25JbmRleCArIDEsXHJcbiAgICAgIDAsXHJcbiAgICAgICcnXHJcbiAgICApO1xyXG4gICAgdGhpcy5mb2N1c0FuT3B0aW9uKHF1ZXN0aW9uSW5kZXgsIG9wdGlvbkluZGV4ICsgMSk7XHJcbiAgfVxyXG4gIGRlbGV0ZU9wdGlvbihxdWVzdGlvbkluZGV4OiBudW1iZXIsIG9wdGlvbkluZGV4OiBudW1iZXIpIHtcclxuICAgIHRoaXMuY2hlY2tQb2ludFF1ZXN0aW9uc1txdWVzdGlvbkluZGV4XS5hbnN3ZXJzLnNwbGljZShvcHRpb25JbmRleCwgMSk7XHJcbiAgICB0aGlzLmZvY3VzQW5PcHRpb24ocXVlc3Rpb25JbmRleCwgb3B0aW9uSW5kZXggLSAxKTtcclxuICB9XHJcblxyXG4gIGZvY3VzQW5PcHRpb24ocXVlc3Rpb25JbmRleDogbnVtYmVyLCBvcHRpb25JbmRleDogbnVtYmVyKSB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgY29uc3QgRUw6IGFueSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFxyXG4gICAgICAgICdvcHRpb24nICsgJy0nICsgcXVlc3Rpb25JbmRleCArICcnICsgb3B0aW9uSW5kZXhcclxuICAgICAgKTtcclxuICAgICAgaWYgKEVMKSB7XHJcbiAgICAgICAgRUwuZm9jdXMoKTtcclxuICAgICAgfVxyXG4gICAgfSwgMTApO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlT25CYWNrc3BhY2UocXVlc3Rpb25JbmRleDogbnVtYmVyLCBvcHRpb25JbmRleDogbnVtYmVyKSB7XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMuY2hlY2tQb2ludFF1ZXN0aW9uc1txdWVzdGlvbkluZGV4XS5hbnN3ZXJzPy5sZW5ndGggPiAyICYmXHJcbiAgICAgIHRoaXMuY2hlY2tQb2ludFF1ZXN0aW9uc1txdWVzdGlvbkluZGV4XS5hbnN3ZXJzW29wdGlvbkluZGV4XS50cmltKClcclxuICAgICAgICAubGVuZ3RoID09PSAwXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5kZWxldGVPcHRpb24ocXVlc3Rpb25JbmRleCwgb3B0aW9uSW5kZXgpO1xyXG4gICAgfVxyXG4gIH1cclxuICBkZWxldGVRdWVzdGlvbihxdWVzdGlvbkluZGV4OiBudW1iZXIpIHtcclxuICAgIHRoaXMuY2hlY2tQb2ludFF1ZXN0aW9ucy5zcGxpY2UocXVlc3Rpb25JbmRleCwgMSk7XHJcbiAgICBpZiAodGhpcy5jaGVja1BvaW50UXVlc3Rpb25zLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICBjb25zdCBRVUVTVElPTiA9IHtcclxuICAgICAgICByYW5zd2VyOiAnJyxcclxuICAgICAgICBxdWVzdGlvbjogJycsXHJcbiAgICAgICAgYW5zd2VyczogWycnLCAnJ10sXHJcbiAgICAgIH07XHJcbiAgICAgIHRoaXMuY2hlY2tQb2ludFF1ZXN0aW9ucy5wdXNoKFFVRVNUSU9OKTtcclxuICAgICAgdGhpcy5yZXF1aXJlZFBvaW50ID0gMTtcclxuICAgIH1cclxuICAgIC8vdGhpcy5jaGFuZ2VNYXguZW1pdCh0aGlzLmNoZWNrUG9pbnRRdWVzdGlvbnMubGVuZ3RoKVxyXG4gICAgdGhpcy5yZXF1aXJlZFBvaW50Q2hhbmdlLmVtaXQodGhpcy5yZXF1aXJlZFBvaW50IC0gMSk7XHJcbiAgfVxyXG4gIHNlbGVjdFJpZ2h0QW5zd2VyKGV2dDogYW55LCBpbmRleDogbnVtYmVyLCBhbnN3ZXJJbmRleDogc3RyaW5nKSB7XHJcbiAgICBpZiAoZXZ0KSB7XHJcbiAgICAgIHRoaXMuY2hlY2tQb2ludFF1ZXN0aW9uc1tpbmRleF0ucmFuc3dlciA9XHJcbiAgICAgICAgdGhpcy5jaGVja1BvaW50UXVlc3Rpb25zW2luZGV4XVthbnN3ZXJJbmRleF07XHJcbiAgICAgIHRoaXMucmlnaHRBbnN3ZXJJbmRleFtpbmRleF0gPSBhbnN3ZXJJbmRleDtcclxuICAgICAgdGhpcy5yZVZhbGlkYXRlKGluZGV4KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlVmFsaWRhdGUocXVlc3Rpb25JbmRleDogbnVtYmVyKSB7XHJcbiAgICBpZiAodGhpcy5lcnJvclRyYWNrZXJbcXVlc3Rpb25JbmRleF0pIHtcclxuICAgICAgdGhpcy52YWxpZGF0ZUZvcm0oKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFzeW5jIHNhdmVDaGVja1BvaW50KCkge1xyXG4gICAgY29uc3QgdmFsaWRTdGF0dXMgPSBhd2FpdCB0aGlzLnZhbGlkYXRlRm9ybSgpO1xyXG4gICAgaWYgKHZhbGlkU3RhdHVzKSB7XHJcbiAgICAgIHRoaXMuc2F2ZVZhbGlkUXVlc3Rpb25zLmVtaXQodGhpcy5jaGVja1BvaW50UXVlc3Rpb25zKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG1hcFJpZ2h0QW5zd2VycygpIHtcclxuICAgIHRoaXMuY2hlY2tQb2ludFF1ZXN0aW9ucy5mb3JFYWNoKChlbGVtZW50OiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgZWxlbWVudC5yYW5zd2VyID0gZWxlbWVudC5hbnN3ZXJzW3RoaXMucmlnaHRBbnN3ZXJJbmRleFtpbmRleF1dID8/ICcnO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGFzeW5jIHZhbGlkYXRlRm9ybSgpIHtcclxuICAgIGF3YWl0IHRoaXMubWFwUmlnaHRBbnN3ZXJzKCk7XHJcbiAgICB0aGlzLmVycm9yVHJhY2tlciA9IFtdO1xyXG4gICAgYXdhaXQgdGhpcy5jaGVja1BvaW50UXVlc3Rpb25zLmZvckVhY2goKGVsZW1lbnQ6IGFueSwgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICBpZiAoZWxlbWVudC5xdWVzdGlvbi50cmltKCkubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgdGhpcy5lcnJvclRyYWNrZXJbaW5kZXhdID0ge1xyXG4gICAgICAgICAgdHlwZTogJ1FVRVNUSU9OJyxcclxuICAgICAgICAgIG1lc3NhZ2U6ICdQbGVhc2UgYWRkIGEgcXVlc3Rpb24uJyxcclxuICAgICAgICB9O1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmIChlbGVtZW50LmFuc3dlcnMubGVuZ3RoID49IDIpIHtcclxuICAgICAgICAgIGlmICh0aGlzLmlzT3B0aW9uVmFsaWQoZWxlbWVudC5hbnN3ZXJzKSA9PT0gZmFsc2UpIHtcclxuICAgICAgICAgICAgdGhpcy5lcnJvclRyYWNrZXJbaW5kZXhdID0ge1xyXG4gICAgICAgICAgICAgIHR5cGU6ICdPUFRJT04nLFxyXG4gICAgICAgICAgICAgIG1lc3NhZ2U6ICdZb3UgbmVlZCB0byBjb21wbGV0ZSBhbGwgdGhlIGFuc3dlciBvcHRpb25zLicsXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5jaGVja0R1cGxpY2F0ZShlbGVtZW50Py5hbnN3ZXJzKSA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAgIHRoaXMuZXJyb3JUcmFja2VyW2luZGV4XSA9IHtcclxuICAgICAgICAgICAgICAgIHR5cGU6ICdPUFRJT04nLFxyXG4gICAgICAgICAgICAgICAgbWVzc2FnZTogJ1R3byBvcHRpb25zIGNhbm5vdCBoYXZlIHNhbWUgdGl0bGUuJyxcclxuICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIGlmIChlbGVtZW50Py5yYW5zd2VyPy5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZXJyb3JUcmFja2VyW2luZGV4XSA9IHtcclxuICAgICAgICAgICAgICAgICAgdHlwZTogJ09QVElPTicsXHJcbiAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6XHJcbiAgICAgICAgICAgICAgICAgICAgJ1NlbGVjdCB0aGUgY29ycmVjdCBhbnN3ZXIgY2hvaWNlIGZvciB0aGlzIHF1ZXN0aW9uLicsXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gdGhpcy5lcnJvclRyYWNrZXIubGVuZ3RoID4gMCA/IGZhbHNlIDogdHJ1ZTtcclxuICB9XHJcbiAgaXNPcHRpb25WYWxpZChvcHRpb25zOiBhbnkpIHtcclxuICAgIGlmIChcclxuICAgICAgb3B0aW9ucy5sZW5ndGggPT09XHJcbiAgICAgIG9wdGlvbnMuZmlsdGVyKChlbGU6IGFueSkgPT4gZWxlLnRyaW0oKS5sZW5ndGggPiAwKS5sZW5ndGhcclxuICAgICkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcbiAgY2hlY2tEdXBsaWNhdGUoYXJyOiBhbnkpIHtcclxuICAgIGxldCByZXN1bHQgPSBmYWxzZTtcclxuICAgIC8vIGNyZWF0ZSBhIFNldCB3aXRoIGFycmF5IGVsZW1lbnRzXHJcbiAgICBjb25zdCBzID0gbmV3IFNldChhcnIpO1xyXG4gICAgLy8gY29tcGFyZSB0aGUgc2l6ZSBvZiBhcnJheSBhbmQgU2V0XHJcbiAgICBpZiAoYXJyLmxlbmd0aCAhPT0gcy5zaXplKSB7XHJcbiAgICAgIHJlc3VsdCA9IHRydWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgdHJhY2tCeUZuKGluZGV4OiBhbnksIGl0ZW06IGFueSkge1xyXG4gICAgcmV0dXJuIGluZGV4O1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY2hlY2twb2ludHMtcG9saWN5LXF1ZXN0aW9uc1wiPlxyXG4gICAgPCEtLSA8ZGl2IGNsYXNzPVwiY2hlY2twb2ludHMtcXVlc3Rpb25zLWJsb2NrcyBpbnN0cnVjdGlvblwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cclxuICAgICAgICAgICAgPGgzIGNsYXNzPVwicXVlc3Rpb25cIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY291bnRlclwiPjxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTMyOzwvaT48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHRcIj5BZGQgaW5zdHJ1Y3Rpb248L3NwYW4+XHJcbiAgICAgICAgICAgIDwvaDM+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj4gLS0+XHJcbiAgICA8IS0tIDxzbWFsbD5cclxuICAgICAgPHByZT5cclxuICAgICAgICB7e2NoZWNrUG9pbnRRdWVzdGlvbnMgfGpzb259fVxyXG4gICAgICA8L3ByZT5cclxuICAgIDwvc21hbGw+IC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cImNoZWNrcG9pbnRzLXBvbGljeS1xdWVzdGlvbnMtdG9wIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1iZXR3ZWVuIHZ4LXBiLTIgdngtbWItMlwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidngtZnMtMTEgdngtZnctNTAwIHZ4LWxhYmVsLXR4dCB2eC10dC11cHBlcmNhc2UgdngtbXItMVwiPlRPVEFMIFBPSU5UUzwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2eC1mcy0xMSB2eC1wYXJhZ3JhcGgtdHh0IHZ4LW1yLTFcIj4oRWFjaCBxdWVzdGlvbiBjYXJyaWVzIDEgcG9pbnQpPC9zcGFuPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicXVlc3Rpb24tY291bnQgdngtZnMtMTIgdngtcGFyYWdyYXBoLXR4dCB2eC1wbC0xIHZ4LXByLTEgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlclwiPnt7Y2hlY2tQb2ludFF1ZXN0aW9ucy5sZW5ndGh9fTwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidngtZnMtMTEgdngtZnctNTAwIHZ4LWxhYmVsLXR4dCB2eC10dC11cHBlcmNhc2VcIj5QT0lOVFMgUkVRVUlSRUQgVE8gQVRURVNUOiA8c3BhbiBjbGFzcz1cInZ4LWZzLTE0IHZ4LXR4dC1yZWRcIj4qPC9zcGFuPjwvc3Bhbj5cclxuICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29ucyBpbmZvIHZ4LWZzLTEyIHZ4LXR4dC1ibHVlIHZ4LW1sLTJcIiBhcHBQb3BvdmVyIChjbGljayk9XCJwb2xpY3lQYXNzaW5nLnBvcG92ZXIoKVwiIHBsYWNlbWVudD1cInJpZ2h0XCI+JiN4ZTkxZjs8L2k+XHJcbiAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImF0dGVzdElucHV0XCIgIHR5cGU9XCJudW1iZXJcIiBbKG5nTW9kZWwpXT1cInJlcXVpcmVkUG9pbnRcIiBbbWF4XT1cImNoZWNrUG9pbnRRdWVzdGlvbnMubGVuZ3RoXCIgICBvbmtleWRvd249XCJyZXR1cm4gZXZlbnQua2V5Q29kZSAhPT0gMTkwXCIgbWluPVwiMFwiXHJcbiAgICAgICAgICAgIG9uaW5wdXQ9XCJ0aGlzLnZhbHVlID0gTWF0aC5hYnModGhpcy52YWx1ZSk7XCIgKG5nTW9kZWxDaGFuZ2UpPVwicmVxdWlyZWRQb2ludENoYW5nZS5lbWl0KHJlcXVpcmVkUG9pbnQpXCIvPlxyXG4gICAgICAgICAgICA8YXBwLXBvcG92ZXIgI3BvbGljeVBhc3NpbmcgW2RvbnRDbG9zZW9uQ2xpY2tdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImluZm9Qb3B1cFwiPlxyXG4gICAgICAgICAgICAgICAgIEV2ZXJ5IGNvcnJlY3QgYW5zd2VyIGNob2ljZSBjYXJyaWVzIDEgcG9pbnQuIFlvdSBjYW4gc3BlY2lmeSB0aGUgdG90YWwgbnVtYmVyIG9mIHF1ZXN0aW9ucyB0aGF0IHRoZSByZWFkZXIgbXVzdCBhbnN3ZXIgY29ycmVjdGx5IGluIG9yZGVyIHRvIGF0dGVzdCB0aGUgcG9saWN5LlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvYXBwLXBvcG92ZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHF1ZXN0aW9uVmFsdWUgb2YgY2hlY2tQb2ludFF1ZXN0aW9uczsgbGV0IHF1ZXN0aW9uSW5kZXggPSBpbmRleFwiPlxyXG4gICAgICA8IS0tIFtjbGFzcy5lcnJvcl09XCJxdWVzdGlvbkluZGV4ID09PSAwXCIgLS0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrcG9pbnRzLXBvbGljeS1xdWVzdGlvbnMtYmxvY2tzXCIgW2FwcFNjcm9sbEluVmlld109XCJhY3RpdmVRdWVzdGlvbkluZGV4ID09PSBxdWVzdGlvbkluZGV4XCIgICBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZVF1ZXN0aW9uSW5kZXggPT09IHF1ZXN0aW9uSW5kZXhcIiAoY2xpY2spPVwiY2hhbmdlQWN0aXZlUXVlc3Rpb24ocXVlc3Rpb25JbmRleClcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwicXVlc3Rpb25cIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjb3VudGVyXCI+e3txdWVzdGlvbkluZGV4ICsgMX19LlxyXG4gICAgICAgICAgICAgICAgICAgICAgPCEtLSA8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBbYXBwQ29uZGl0aW9uYWxGb2N1c109XCJhY3RpdmVRdWVzdGlvbkluZGV4ID09PSBxdWVzdGlvbkluZGV4XCIgWyhuZ01vZGVsKV09XCJxdWVzdGlvblZhbHVlLnF1ZXN0aW9uXCIgY2xhc3M9XCJ0ZXh0XCIgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlR5cGUgeW91ciBxdWVzdGlvbiBoZXJlXCIgKG5nTW9kZWxDaGFuZ2UpPVwicmVWYWxpZGF0ZShxdWVzdGlvbkluZGV4KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPC9oMz5cclxuICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiICpuZ0lmPVwiZXJyb3JUcmFja2VyW3F1ZXN0aW9uSW5kZXhdPy50eXBlID09PSAnUVVFU1RJT04nXCI+e3tlcnJvclRyYWNrZXJbcXVlc3Rpb25JbmRleF0/Lm1lc3NhZ2V9fTwvcD5cclxuICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cImxpc3RcIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPGxpICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgcXVlc3Rpb25WYWx1ZS5hbnN3ZXJzOyBsZXQgb3B0aW9uSW5kZXggPSBpbmRleDt0cmFja0J5OnRyYWNrQnlGblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YXBwLWNzLXJhZGlvICBbcmVhZG9ubHldPVwib3B0aW9uPy50cmltKCk/Lmxlbmd0aCA9PT0gMFwiIFtuYW1lXT1cIidvcHRpb24tJyArICcnICsgcXVlc3Rpb25JbmRleCArICcnICsgb3B0aW9uSW5kZXhcIiBbY2hlY2tlZF09XCJyaWdodEFuc3dlckluZGV4W3F1ZXN0aW9uSW5kZXhdID09PSBvcHRpb25JbmRleCA/IHRydWUgIDpmYWxzZSBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2hlY2tlZEV2ZW50KT1cInNlbGVjdFJpZ2h0QW5zd2VyKCRldmVudCxxdWVzdGlvbkluZGV4LG9wdGlvbkluZGV4KVwiIFtvbmVMaW5lXT1cInRydWVcIiBbaWRdPVwib3B0aW9uSW5kZXggKyAnd2VlJ1wiID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgIFtpZF09XCInb3B0aW9uLScgKyAnJyArIHF1ZXN0aW9uSW5kZXggKyAnJyArIG9wdGlvbkluZGV4XCIgKG5nTW9kZWxDaGFuZ2UpPVwicmVWYWxpZGF0ZShxdWVzdGlvbkluZGV4KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwiYWRkT3B0aW9uKHF1ZXN0aW9uSW5kZXgsb3B0aW9uSW5kZXgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bi5iYWNrc3BhY2UpPVwiZGVsZXRlT25CYWNrc3BhY2UocXVlc3Rpb25JbmRleCxvcHRpb25JbmRleClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiT3B0aW9uXCIgWyhuZ01vZGVsKV09XCJxdWVzdGlvblZhbHVlLmFuc3dlcnNbb3B0aW9uSW5kZXhdXCIgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cIk9wdGlvblwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYXBwLWNzLXJhZGlvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwicXVlc3Rpb25WYWx1ZT8uYW5zd2Vycz8ubGVuZ3RoID4gMiAmJiBhY3RpdmVRdWVzdGlvbkluZGV4ID09PSBxdWVzdGlvbkluZGV4XCIgKGNsaWNrKT1cImRlbGV0ZU9wdGlvbihxdWVzdGlvbkluZGV4LG9wdGlvbkluZGV4KVwiIGNsYXNzPVwiY2xvc2VcIiA+PGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MGQ7PC9pPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cImFkZC1uZXdcIiAqbmdJZj1cImFjdGl2ZVF1ZXN0aW9uSW5kZXggPT09IHF1ZXN0aW9uSW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGFwcC1jcy1yYWRpbyBbb25lTGluZV09XCJ0cnVlXCIgW3JlYWRvbmx5XT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHJlYWRvbmx5IHBsYWNlaG9sZGVyPVwiQWRkIG1vcmUgb3B0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWRkT3B0aW9uKHF1ZXN0aW9uSW5kZXgscXVlc3Rpb25WYWx1ZT8uYW5zd2Vycz8ubGVuZ3RoLTEpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYXBwLWNzLXJhZGlvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCIgKm5nSWY9XCJlcnJvclRyYWNrZXJbcXVlc3Rpb25JbmRleF0/LnR5cGUgPT09ICdPUFRJT04nXCI+e3tlcnJvclRyYWNrZXJbcXVlc3Rpb25JbmRleF0/Lm1lc3NhZ2V9fTwvcD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9vdGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gPGFwcC1jcy1jaGVja2JveD5JcyByZXF1aXJlZDwvYXBwLWNzLWNoZWNrYm94PiAtLT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJjbG9uZVF1ZXN0aW9uKHF1ZXN0aW9uSW5kZXgsdHJ1ZSk7JGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1wiIFthcHBUb29sdGlwXT1cIidBZGQgbmV3J1wiIHBsYWNlbWVudD1cImJvdHRvbVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTkxNTs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAgKGNsaWNrKT1cImRlbGV0ZVF1ZXN0aW9uKHF1ZXN0aW9uSW5kZXgpXCIgY2xhc3M9XCJkZWxldGVcIiBbYXBwVG9vbHRpcF09XCInRGVsZXRlJ1wiIHBsYWNlbWVudD1cImJvdHRvbVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTkyMzs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiY2xvbmVRdWVzdGlvbihxdWVzdGlvbkluZGV4LGZhbHNlKTskZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XCIgW2FwcFRvb2x0aXBdPVwiJ0NvcHknXCIgcGxhY2VtZW50PVwiYm90dG9tXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOWI2OzwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDxidXR0b24gY2xhc3M9XCJidG4tYWRkLW5ldyB2eC1mcy0xMSB2eC1mdy02MDAgdngtdHh0LWJsdWUgdngtdHQtdXBwZXJjYXNlIHZ4LXAtMCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktY2VudGVyXCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJjbG9uZVF1ZXN0aW9uKGNoZWNrUG9pbnRRdWVzdGlvbnMubGVuZ3RoIC0xLHRydWUpOyRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcIj4rIEFERCBBIE5FVyBRVUVTVElPTjwvYnV0dG9uPlxyXG48L2Rpdj5cclxuIl19
|