vcomply-workflow-engine 3.0.281 → 3.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-annual/frequency-dialog-annual.component.mjs +19 -18
- package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-biannual/frequency-dialog-biannual.component.mjs +19 -28
- package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-container/frequency-dialog-container.component.mjs +9 -17
- package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-due-date/frequency-dialog-due-date.component.mjs +58 -14
- package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-monthly/frequency-dialog-monthly.component.mjs +20 -28
- package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-one-time/frequency-dialog-one-time.component.mjs +19 -16
- package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-quarterly/frequency-dialog-quarterly.component.mjs +20 -30
- package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-weekly/frequency-dialog-weekly.component.mjs +20 -18
- package/esm2020/lib/workflow-risk/workflow-risk.component.mjs +25 -43
- package/fesm2015/vcomply-workflow-engine.mjs +257 -247
- package/fesm2015/vcomply-workflow-engine.mjs.map +1 -1
- package/fesm2020/vcomply-workflow-engine.mjs +236 -240
- package/fesm2020/vcomply-workflow-engine.mjs.map +1 -1
- package/lib/sharedComponents/frequency-dialog/frequency-dialog-annual/frequency-dialog-annual.component.d.ts +4 -0
- package/lib/sharedComponents/frequency-dialog/frequency-dialog-biannual/frequency-dialog-biannual.component.d.ts +4 -0
- package/lib/sharedComponents/frequency-dialog/frequency-dialog-container/frequency-dialog-container.component.d.ts +4 -4
- package/lib/sharedComponents/frequency-dialog/frequency-dialog-due-date/frequency-dialog-due-date.component.d.ts +8 -2
- package/lib/sharedComponents/frequency-dialog/frequency-dialog-monthly/frequency-dialog-monthly.component.d.ts +5 -1
- package/lib/sharedComponents/frequency-dialog/frequency-dialog-one-time/frequency-dialog-one-time.component.d.ts +4 -0
- package/lib/sharedComponents/frequency-dialog/frequency-dialog-quarterly/frequency-dialog-quarterly.component.d.ts +5 -1
- package/lib/sharedComponents/frequency-dialog/frequency-dialog-weekly/frequency-dialog-weekly.component.d.ts +5 -1
- package/package.json +1 -1
|
@@ -22,6 +22,8 @@ export class FrequencyDialogAnnualComponent {
|
|
|
22
22
|
this.lifecycleDetails = '0000-00-00~~0';
|
|
23
23
|
this.previousStartDate = Math.floor(Date.now() / 1000);
|
|
24
24
|
this.shortMonth = [];
|
|
25
|
+
this.annuallyExtension = 5;
|
|
26
|
+
this.annualWindowOpen = 30;
|
|
25
27
|
this.mode = '';
|
|
26
28
|
this.startDate = Math.floor(Date.now() / 1000);
|
|
27
29
|
this.frequencyDetails = new EventEmitter();
|
|
@@ -39,31 +41,16 @@ export class FrequencyDialogAnnualComponent {
|
|
|
39
41
|
populateFrequency() {
|
|
40
42
|
const patternInfo = this.frequencyData?.pattern.split('~').map(Number);
|
|
41
43
|
this.yearlySelected = patternInfo[2] - 1;
|
|
42
|
-
// const lifecycleInfo = this.frequencyData?.lifecycle.split('~~');
|
|
43
44
|
this.yearlyInterval = this.frequencyData?.failedTime;
|
|
44
45
|
this.yearlyWindow = this.frequencyData?.window;
|
|
45
46
|
this.yearlyInput = patternInfo[3];
|
|
46
47
|
this.yearlyDay = patternInfo[1];
|
|
47
|
-
// if(Number(lifecycleInfo[1]) > 0) {
|
|
48
|
-
// this.yearlyLifecycleOccurance = Number(lifecycleInfo[1]);
|
|
49
|
-
// }
|
|
50
48
|
this.yearlyLifecycleOccurance = Number(patternInfo[1]);
|
|
51
49
|
this.yearlyLifeCycleStart = new Date(this.frequencyData?.startDate * 1000);
|
|
52
50
|
this.startDate =
|
|
53
51
|
this.frequencyData?.startFrom ?? this.frequencyData?.startDate;
|
|
54
52
|
this.yearlyFailed = this.frequencyData?.failed;
|
|
55
|
-
// if( lifecycleInfo[0] !== '0000-00-00') {
|
|
56
|
-
// const dateSelected = moment(lifecycleInfo[0] + ' 11:59 pm', 'DD-MMMM-YYYY HH:mm a').unix()
|
|
57
|
-
// this.yearlyLifeCycleEndTime = new Date(dateSelected * 1000);
|
|
58
|
-
// }
|
|
59
53
|
this.lifecycleDetails = this.frequencyData?.lifecycle;
|
|
60
|
-
// if( this.frequencyData?.lifecycle == '0000-00-00~~0') {
|
|
61
|
-
// this.yearlySeletedLifecycleType = 2;
|
|
62
|
-
// } else if(lifecycleInfo[0] !== '0000-00-00') {
|
|
63
|
-
// this.yearlySeletedLifecycleType = 0;
|
|
64
|
-
// } else {
|
|
65
|
-
// this.yearlySeletedLifecycleType = 1;
|
|
66
|
-
// }
|
|
67
54
|
}
|
|
68
55
|
onTimeChanged(event) {
|
|
69
56
|
this.yearlyInterval = event;
|
|
@@ -118,6 +105,18 @@ export class FrequencyDialogAnnualComponent {
|
|
|
118
105
|
}
|
|
119
106
|
this.getAnnualFrequency();
|
|
120
107
|
}
|
|
108
|
+
onWindowOpenChange(event) {
|
|
109
|
+
if (event?.type?.toLowerCase() === 'window open') {
|
|
110
|
+
this.annualWindowOpen = event?.value;
|
|
111
|
+
}
|
|
112
|
+
this.getAnnualFrequency();
|
|
113
|
+
}
|
|
114
|
+
onExtensionChange(event) {
|
|
115
|
+
if (event?.type?.toLowerCase() === 'extension') {
|
|
116
|
+
this.annuallyExtension = event.value;
|
|
117
|
+
}
|
|
118
|
+
this.getAnnualFrequency();
|
|
119
|
+
}
|
|
121
120
|
// frequency pattern and details info
|
|
122
121
|
getAnnualFrequency() {
|
|
123
122
|
this.frequencyInfo.placeholder = this.getFrequencyPlaceholder(Number(this.yearlyInput));
|
|
@@ -137,6 +136,8 @@ export class FrequencyDialogAnnualComponent {
|
|
|
137
136
|
this.frequencyInfo.lifecycleDetails = this.lifecycleDetails;
|
|
138
137
|
this.frequencyInfo.startFrom = this.startDate;
|
|
139
138
|
this.frequencyInfo.reportId = 0;
|
|
139
|
+
this.frequencyInfo.failed_after_days = this.annuallyExtension;
|
|
140
|
+
this.frequencyInfo.can_assess_before_days = this.annualWindowOpen;
|
|
140
141
|
console.log(' this.frequencyInfo ==>', this.frequencyInfo);
|
|
141
142
|
this.frequencyDetails.emit(this.frequencyInfo);
|
|
142
143
|
}
|
|
@@ -282,10 +283,10 @@ export class FrequencyDialogAnnualComponent {
|
|
|
282
283
|
}
|
|
283
284
|
}
|
|
284
285
|
FrequencyDialogAnnualComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FrequencyDialogAnnualComponent, deps: [{ token: i1.FrequencyService }], target: i0.ɵɵFactoryTarget.Component });
|
|
285
|
-
FrequencyDialogAnnualComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: FrequencyDialogAnnualComponent, selector: "app-frequency-dialog-annual", inputs: { frequencyData: "frequencyData", mode: "mode", startDate: "startDate" }, outputs: { frequencyDetails: "frequencyDetails" }, ngImport: i0, template: "
|
|
286
|
+
FrequencyDialogAnnualComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: FrequencyDialogAnnualComponent, selector: "app-frequency-dialog-annual", inputs: { frequencyData: "frequencyData", mode: "mode", startDate: "startDate" }, outputs: { frequencyDetails: "frequencyDetails" }, ngImport: i0, template: "\r\n<div class=\"frequency-dialog-annual\">\r\n <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">REASSESSMENT FREQUENCY:</div>\r\n <div class=\"frequency-dialog-annual-item vx-mb-5\">\r\n <app-frequency-dialog-top\r\n [id]=\"5\"\r\n [inputTime]=\"yearlyInterval\"\r\n [occurrenceFirst]=\"yearlyInput\"\r\n [yearlyDay]=\"yearlyDay\"\r\n [frequencyType]=\"2\"\r\n (timeChanged)=\"onTimeChanged($event)\"\r\n (valueChangedFirst)=\"valueChangedFirst($event)\"\r\n (yearlyDateChanged)=\"dateChange($event)\">\r\n </app-frequency-dialog-top>\r\n <app-frequency-dialog-radio-list\r\n [radioList]=\"monthList\"\r\n [selectedIndex]=\"yearlySelected\"\r\n (selectedRadio)=\"selectedMonth($event)\"\r\n [name]=\"'annual'\">\r\n </app-frequency-dialog-radio-list>\r\n </div>\r\n <app-frequency-dialog-due-date\r\n [pageName]=\"'yearly'\"\r\n [mode]=\"mode\"\r\n [id]=\"5\"\r\n [completedValue]=\"yearlyWindow\"\r\n [windowCloses]=\"annuallyExtension\"\r\n [assessWindowOpen]=\"annualWindowOpen\"\r\n (valueChange)=\"onValueChange($event)\"\r\n (windowOpenChange)=\"onWindowOpenChange($event)\"\r\n (extensionValueChange)=\"onExtensionChange($event)\"\r\n >\r\n </app-frequency-dialog-due-date>\r\n</div>\r\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/mixin/mixin.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";::ng-deep .frequency-dialog-annual-item{border-radius:.25rem;border:1px solid #f1f1f1}\n"], dependencies: [{ kind: "component", type: i2.FrequencyDialogTopComponent, selector: "app-frequency-dialog-top", inputs: ["occurrenceFirst", "id", "inputTime", "frequencyType", "yearlyDay"], outputs: ["valueChangedFirst", "nextDisable", "timeChanged", "yearlyDateChanged"] }, { kind: "component", type: i3.FrequencyDialogDueDateComponent, selector: "app-frequency-dialog-due-date", inputs: ["mode", "completedValue", "deactivateValue", "isDeactivated", "id", "pageName", "windowCloses", "assessWindowOpen"], outputs: ["valueChange", "windowOpenChange", "extensionValueChange"] }, { kind: "component", type: i4.FrequencyDialogRadioListComponent, selector: "app-frequency-dialog-radio-list", inputs: ["radioList", "selectedIndex", "name"], outputs: ["selectedRadio"] }] });
|
|
286
287
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FrequencyDialogAnnualComponent, decorators: [{
|
|
287
288
|
type: Component,
|
|
288
|
-
args: [{ selector: 'app-frequency-dialog-annual', template: "
|
|
289
|
+
args: [{ selector: 'app-frequency-dialog-annual', template: "\r\n<div class=\"frequency-dialog-annual\">\r\n <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">REASSESSMENT FREQUENCY:</div>\r\n <div class=\"frequency-dialog-annual-item vx-mb-5\">\r\n <app-frequency-dialog-top\r\n [id]=\"5\"\r\n [inputTime]=\"yearlyInterval\"\r\n [occurrenceFirst]=\"yearlyInput\"\r\n [yearlyDay]=\"yearlyDay\"\r\n [frequencyType]=\"2\"\r\n (timeChanged)=\"onTimeChanged($event)\"\r\n (valueChangedFirst)=\"valueChangedFirst($event)\"\r\n (yearlyDateChanged)=\"dateChange($event)\">\r\n </app-frequency-dialog-top>\r\n <app-frequency-dialog-radio-list\r\n [radioList]=\"monthList\"\r\n [selectedIndex]=\"yearlySelected\"\r\n (selectedRadio)=\"selectedMonth($event)\"\r\n [name]=\"'annual'\">\r\n </app-frequency-dialog-radio-list>\r\n </div>\r\n <app-frequency-dialog-due-date\r\n [pageName]=\"'yearly'\"\r\n [mode]=\"mode\"\r\n [id]=\"5\"\r\n [completedValue]=\"yearlyWindow\"\r\n [windowCloses]=\"annuallyExtension\"\r\n [assessWindowOpen]=\"annualWindowOpen\"\r\n (valueChange)=\"onValueChange($event)\"\r\n (windowOpenChange)=\"onWindowOpenChange($event)\"\r\n (extensionValueChange)=\"onExtensionChange($event)\"\r\n >\r\n </app-frequency-dialog-due-date>\r\n</div>\r\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/mixin/mixin.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";::ng-deep .frequency-dialog-annual-item{border-radius:.25rem;border:1px solid #f1f1f1}\n"] }]
|
|
289
290
|
}], ctorParameters: function () { return [{ type: i1.FrequencyService }]; }, propDecorators: { frequencyData: [{
|
|
290
291
|
type: Input
|
|
291
292
|
}], mode: [{
|
|
@@ -295,4 +296,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
295
296
|
}], frequencyDetails: [{
|
|
296
297
|
type: Output
|
|
297
298
|
}] } });
|
|
298
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlcXVlbmN5LWRpYWxvZy1hbm51YWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9mcmVxdWVuY3ktZGlhbG9nL2ZyZXF1ZW5jeS1kaWFsb2ctYW5udWFsL2ZyZXF1ZW5jeS1kaWFsb2ctYW5udWFsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3NoYXJlZENvbXBvbmVudHMvZnJlcXVlbmN5LWRpYWxvZy9mcmVxdWVuY3ktZGlhbG9nLWFubnVhbC9mcmVxdWVuY3ktZGlhbG9nLWFubnVhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sTUFBTSxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBUW5DLE1BQU0sT0FBTyw4QkFBOEI7SUEyQnpDLFlBQW9CLGdCQUFrQztRQUFsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBMUJ0RCxjQUFTLEdBQWUsRUFBRSxDQUFDO1FBRTNCLG1CQUFjLEdBQVcsVUFBVSxDQUFDO1FBQ3BDLGdCQUFXLEdBQVcsQ0FBQyxDQUFDO1FBQ3hCLGlCQUFZLEdBQVcsQ0FBQyxDQUFDO1FBQ3pCLGlCQUFZLEdBQVcsRUFBRSxDQUFDO1FBQzFCLGNBQVMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQztRQUN4RSx5QkFBb0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztRQUN4RSwyQkFBc0IsR0FBRyxJQUFJLElBQUksQ0FDL0IsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sRUFBRSxHQUFHLFFBQVEsQ0FDL0MsQ0FBQztRQUNGLDZCQUF3QixHQUFXLEVBQUUsQ0FBQztRQUN0QywrQkFBMEIsR0FBVyxDQUFDLENBQUM7UUFDdkMsbUJBQWMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQztRQUM5RSxxQkFBZ0IsR0FBUSxlQUFlLENBQUM7UUFDeEMsc0JBQWlCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFFbEQsZUFBVSxHQUFrQixFQUFFLENBQUM7UUFHdEIsU0FBSSxHQUFRLEVBQUUsQ0FBQztRQUVmLGNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUV6QyxxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO0lBRUksQ0FBQztJQUUxRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDO1FBQ2xELElBQUksQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDeEUsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQy9ELEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUN0QixDQUFDO1FBQ0YsSUFDRSxJQUFJLENBQUMsYUFBYSxFQUFFLE9BQU8sSUFBSSxFQUFFO1lBQ2pDLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQ3pEO1lBQ0EsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7U0FDMUI7UUFDRCxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN2RSxJQUFJLENBQUMsY0FBYyxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekMsbUVBQW1FO1FBQ25FLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxVQUFVLENBQUM7UUFDckQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQztRQUMvQyxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsU0FBUyxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoQyxxQ0FBcUM7UUFDckMsOERBQThEO1FBQzlELElBQUk7UUFDSixJQUFJLENBQUMsd0JBQXdCLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLFNBQVMsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUMzRSxJQUFJLENBQUMsU0FBUztZQUNaLElBQUksQ0FBQyxhQUFhLEVBQUUsU0FBUyxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsU0FBUyxDQUFDO1FBQ2pFLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUM7UUFDL0MsMkNBQTJDO1FBQzNDLCtGQUErRjtRQUMvRixpRUFBaUU7UUFDakUsSUFBSTtRQUNKLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLFNBQVMsQ0FBQztRQUN0RCwwREFBMEQ7UUFDMUQseUNBQXlDO1FBQ3pDLGlEQUFpRDtRQUNqRCx5Q0FBeUM7UUFDekMsV0FBVztRQUNYLHlDQUF5QztRQUN6QyxJQUFJO0lBQ04sQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFhO1FBQ3pCLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO1FBQzVCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBYTtRQUN0QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN2QixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsaUJBQWlCLENBQUMsS0FBVTtRQUMxQixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDL0IsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFVO1FBQ3RCLElBQUksQ0FBQyxjQUFjLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELGVBQWUsQ0FBQyxLQUFVO1FBQ3hCLFFBQVEsS0FBSyxDQUFDLElBQUksRUFBRTtZQUNsQixLQUFLLENBQUM7Z0JBQ0osSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO2dCQUM3QyxNQUFNO1lBQ1IsS0FBSyxDQUFDO2dCQUNKLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxjQUFjLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQztnQkFDeEQsTUFBTTtZQUNSLEtBQUssQ0FBQztnQkFDSixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsZUFBZSxDQUFDO2dCQUN4QyxNQUFNO1NBQ1Q7UUFDRCxJQUFJLEtBQUssQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTSxHQUFHLEVBQUUsRUFBRTtZQUMxQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsQ0FBQztTQUNyRDthQUFNO1lBQ0wsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUM5QztRQUNELElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQ3hCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxHQUFHLElBQUk7WUFDaEUsUUFBUSxDQUNYLENBQUM7UUFDRixJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxFQUFFO1lBQ3BCLFNBQVMsR0FBRyxLQUFLLENBQUMsTUFBTTtnQkFDdEIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLFdBQVcsRUFBRSxzQkFBc0IsQ0FBQyxDQUFDLElBQUksRUFBRTtnQkFDbkUsQ0FBQyxDQUFDLFNBQVMsQ0FBQztTQUNmO1FBQ0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLEdBQUcsU0FBUyxDQUFDO1FBQy9DLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxhQUFhLENBQUMsS0FBVTtRQUN0QixJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssV0FBVyxFQUFFO1lBQzlCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQztTQUNqQzthQUFNO1lBQ0wsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDO1NBQ2pDO1FBQ0QsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELHFDQUFxQztJQUNyQyxrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUMzRCxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUN6QixDQUFDO1FBQ0YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPO1lBQ3hCLENBQUM7Z0JBQ0QsR0FBRztnQkFDSCxJQUFJLENBQUMsU0FBUztnQkFDZCxHQUFHO2dCQUNILENBQUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUM7Z0JBQ3pCLEdBQUc7Z0JBQ0gsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUNuQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUM7UUFDbkMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUNuRCxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBQzlDLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7UUFDcEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixDQUNwRSxJQUFJLENBQUMsY0FBYyxDQUNwQixDQUFDO1FBQ0YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7UUFDNUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUM5QyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUM7UUFDaEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyx5QkFBeUIsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELHVCQUF1QixDQUFDLFdBQWdCO1FBQ3RDLElBQUksV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUNyQixJQUFJLFdBQVcsS0FBSyxDQUFDLEVBQUU7WUFDckIsV0FBVyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1NBQzNDO2FBQU07WUFDTCxXQUFXLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7U0FDM0M7UUFDRCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0lBRUQsa0VBQWtFO0lBQ2xFLG9CQUFvQjtRQUNsQixJQUFJLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDckIsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLENBQUMsRUFBRTtZQUN4QixXQUFXO2dCQUNULGVBQWU7b0JBQ2YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDO29CQUNwQyxNQUFNO29CQUNOLElBQUksQ0FBQyxjQUFjLENBQUM7U0FDdkI7UUFDRCxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssQ0FBQyxFQUFFO1lBQ3hCLFdBQVc7Z0JBQ1QsZUFBZTtvQkFDZixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUM7b0JBQ3BDLE1BQU07b0JBQ04sSUFBSSxDQUFDLGNBQWMsQ0FBQztTQUN2QjtRQUNELElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxDQUFDLEVBQUU7WUFDeEIsV0FBVztnQkFDVCxlQUFlO29CQUNmLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQztvQkFDcEMsTUFBTTtvQkFDTixJQUFJLENBQUMsY0FBYyxDQUFDO1NBQ3ZCO1FBQ0QsSUFBSSxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsRUFBRTtZQUN0QixXQUFXO2dCQUNULElBQUksQ0FBQyxTQUFTO29CQUNkLGNBQWM7b0JBQ2QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDO29CQUNwQyxNQUFNO29CQUNOLElBQUksQ0FBQyxjQUFjLENBQUM7U0FDdkI7UUFDRCxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssRUFBRSxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssRUFBRSxFQUFFO1lBQ2xELFdBQVc7Z0JBQ1QsSUFBSSxDQUFDLFNBQVM7b0JBQ2QsY0FBYztvQkFDZCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUM7b0JBQ3BDLE1BQU07b0JBQ04sSUFBSSxDQUFDLGNBQWMsQ0FBQztTQUN2QjtRQUNELElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxFQUFFLEVBQUU7WUFDekIsV0FBVztnQkFDVCxJQUFJLENBQUMsU0FBUztvQkFDZCxjQUFjO29CQUNkLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQztvQkFDcEMsTUFBTTtvQkFDTixJQUFJLENBQUMsY0FBYyxDQUFDO1NBQ3ZCO1FBQ0QsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLEVBQUUsRUFBRTtZQUN6QixXQUFXO2dCQUNULElBQUksQ0FBQyxTQUFTO29CQUNkLGNBQWM7b0JBQ2QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDO29CQUNwQyxNQUFNO29CQUNOLElBQUksQ0FBQyxjQUFjLENBQUM7U0FDdkI7UUFDRCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0lBRUQsa0VBQWtFO0lBQ2xFLG9CQUFvQjtRQUNsQixJQUFJLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDckIsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLENBQUMsRUFBRTtZQUN4QixXQUFXO2dCQUNULFNBQVM7b0JBQ1QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDO29CQUNwQyxvQkFBb0I7b0JBQ3BCLElBQUksQ0FBQyxXQUFXO29CQUNoQixZQUFZO29CQUNaLElBQUksQ0FBQyxjQUFjLENBQUM7U0FDdkI7UUFDRCxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssQ0FBQyxFQUFFO1lBQ3hCLFdBQVc7Z0JBQ1QsU0FBUztvQkFDVCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUM7b0JBQ3BDLG9CQUFvQjtvQkFDcEIsSUFBSSxDQUFDLFdBQVc7b0JBQ2hCLFlBQVk7b0JBQ1osSUFBSSxDQUFDLGNBQWMsQ0FBQztTQUN2QjtRQUNELElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxDQUFDLEVBQUU7WUFDeEIsV0FBVztnQkFDVCxTQUFTO29CQUNULElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQztvQkFDcEMsb0JBQW9CO29CQUNwQixJQUFJLENBQUMsV0FBVztvQkFDaEIsWUFBWTtvQkFDWixJQUFJLENBQUMsY0FBYyxDQUFDO1NBQ3ZCO1FBQ0QsSUFBSSxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsRUFBRTtZQUN0QixXQUFXO2dCQUNULElBQUksQ0FBQyxTQUFTO29CQUNkLFFBQVE7b0JBQ1IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDO29CQUNwQyxvQkFBb0I7b0JBQ3BCLElBQUksQ0FBQyxXQUFXO29CQUNoQixZQUFZO29CQUNaLElBQUksQ0FBQyxjQUFjLENBQUM7U0FDdkI7UUFDRCxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssRUFBRSxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssRUFBRSxFQUFFO1lBQ2xELFdBQVc7Z0JBQ1QsSUFBSSxDQUFDLFNBQVM7b0JBQ2QsUUFBUTtvQkFDUixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUM7b0JBQ3BDLG9CQUFvQjtvQkFDcEIsSUFBSSxDQUFDLFdBQVc7b0JBQ2hCLFlBQVk7b0JBQ1osSUFBSSxDQUFDLGNBQWMsQ0FBQztTQUN2QjtRQUNELElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxFQUFFLEVBQUU7WUFDekIsV0FBVztnQkFDVCxJQUFJLENBQUMsU0FBUztvQkFDZCxRQUFRO29CQUNSLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQztvQkFDcEMsb0JBQW9CO29CQUNwQixJQUFJLENBQUMsV0FBVztvQkFDaEIsWUFBWTtvQkFDWixJQUFJLENBQUMsY0FBYyxDQUFDO1NBQ3ZCO1FBQ0QsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLEVBQUUsRUFBRTtZQUN6QixXQUFXO2dCQUNULElBQUksQ0FBQyxTQUFTO29CQUNkLFFBQVE7b0JBQ1IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDO29CQUNwQyxvQkFBb0I7b0JBQ3BCLElBQUksQ0FBQyxXQUFXO29CQUNoQixZQUFZO29CQUNaLElBQUksQ0FBQyxjQUFjLENBQUM7U0FDdkI7UUFDRCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDOzsySEE1U1UsOEJBQThCOytHQUE5Qiw4QkFBOEIsd01DVDNDLHVqRUEyQ007MkZEbENPLDhCQUE4QjtrQkFMMUMsU0FBUzsrQkFDRSw2QkFBNkI7dUdBd0I5QixhQUFhO3NCQUFyQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVJLGdCQUFnQjtzQkFBekIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQvbW9tZW50JztcclxuaW1wb3J0IHsgRnJlcXVlbmN5U2VydmljZSB9IGZyb20gJy4uLy4uL2ZyZXF1ZW5jeS9mcmVxdWVuY3kuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1mcmVxdWVuY3ktZGlhbG9nLWFubnVhbCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2ZyZXF1ZW5jeS1kaWFsb2ctYW5udWFsLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9mcmVxdWVuY3ktZGlhbG9nLWFubnVhbC5jb21wb25lbnQubGVzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRnJlcXVlbmN5RGlhbG9nQW5udWFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBtb250aExpc3Q6IEFycmF5PGFueT4gPSBbXTtcclxuXHJcbiAgeWVhcmx5SW50ZXJ2YWw6IHN0cmluZyA9ICcxMTowMCBwbSc7XHJcbiAgeWVhcmx5SW5wdXQ6IG51bWJlciA9IDE7XHJcbiAgeWVhcmx5RmFpbGVkOiBudW1iZXIgPSA1O1xyXG4gIHllYXJseVdpbmRvdzogbnVtYmVyID0gMzA7XHJcbiAgeWVhcmx5RGF5ID0gdGhpcy5mcmVxdWVuY3lTZXJ2aWNlLmNoYW5nZVRpbWVab25lKG5ldyBEYXRlKCkpPy5nZXREYXRlKCk7XHJcbiAgeWVhcmx5TGlmZUN5Y2xlU3RhcnQgPSB0aGlzLmZyZXF1ZW5jeVNlcnZpY2UuY2hhbmdlVGltZVpvbmUobmV3IERhdGUoKSk7XHJcbiAgeWVhcmx5TGlmZUN5Y2xlRW5kVGltZSA9IG5ldyBEYXRlKFxyXG4gICAgdGhpcy55ZWFybHlMaWZlQ3ljbGVTdGFydC5nZXRUaW1lKCkgKyA4NjQwMDAwMFxyXG4gICk7XHJcbiAgeWVhcmx5TGlmZWN5Y2xlT2NjdXJhbmNlOiBudW1iZXIgPSAxMDtcclxuICB5ZWFybHlTZWxldGVkTGlmZWN5Y2xlVHlwZTogbnVtYmVyID0gMjtcclxuICB5ZWFybHlTZWxlY3RlZCA9IHRoaXMuZnJlcXVlbmN5U2VydmljZS5jaGFuZ2VUaW1lWm9uZShuZXcgRGF0ZSgpKT8uZ2V0TW9udGgoKTtcclxuICBsaWZlY3ljbGVEZXRhaWxzOiBhbnkgPSAnMDAwMC0wMC0wMH5+MCc7XHJcbiAgcHJldmlvdXNTdGFydERhdGUgPSBNYXRoLmZsb29yKERhdGUubm93KCkgLyAxMDAwKTtcclxuICBmcmVxdWVuY3lJbmZvOiBhbnk7XHJcbiAgc2hvcnRNb250aDogQXJyYXk8c3RyaW5nPiA9IFtdO1xyXG5cclxuICBASW5wdXQoKSBmcmVxdWVuY3lEYXRhOiBhbnk7XHJcbiAgQElucHV0KCkgbW9kZTogYW55ID0gJyc7XHJcblxyXG4gIEBJbnB1dCgpIHN0YXJ0RGF0ZSA9IE1hdGguZmxvb3IoRGF0ZS5ub3coKSAvIDEwMDApO1xyXG5cclxuICBAT3V0cHV0KCkgZnJlcXVlbmN5RGV0YWlscyA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZyZXF1ZW5jeVNlcnZpY2U6IEZyZXF1ZW5jeVNlcnZpY2UpIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5tb250aExpc3QgPSB0aGlzLmZyZXF1ZW5jeVNlcnZpY2UubW9udGhBcnJheTtcclxuICAgIHRoaXMuZnJlcXVlbmN5SW5mbyA9IE9iamVjdC5hc3NpZ24odGhpcy5mcmVxdWVuY3lTZXJ2aWNlLmZyZXF1ZW5jeUluZm8pO1xyXG4gICAgdGhpcy5zaG9ydE1vbnRoID0gdGhpcy5mcmVxdWVuY3lTZXJ2aWNlLm1vbnRoQXJyYXkubWFwKChtb250aCkgPT5cclxuICAgICAgbW9udGguc3Vic3RyaW5nKDAsIDMpXHJcbiAgICApO1xyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLmZyZXF1ZW5jeURhdGE/LnBhdHRlcm4gIT0gJycgJiZcclxuICAgICAgcGFyc2VJbnQodGhpcy5mcmVxdWVuY3lEYXRhPy5wYXR0ZXJuLnNwbGl0KCd+JylbMF0pID09PSA0XHJcbiAgICApIHtcclxuICAgICAgdGhpcy5wb3B1bGF0ZUZyZXF1ZW5jeSgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5nZXRBbm51YWxGcmVxdWVuY3koKTtcclxuICB9XHJcblxyXG4gIHBvcHVsYXRlRnJlcXVlbmN5KCkge1xyXG4gICAgY29uc3QgcGF0dGVybkluZm8gPSB0aGlzLmZyZXF1ZW5jeURhdGE/LnBhdHRlcm4uc3BsaXQoJ34nKS5tYXAoTnVtYmVyKTtcclxuICAgIHRoaXMueWVhcmx5U2VsZWN0ZWQgPSBwYXR0ZXJuSW5mb1syXSAtIDE7XHJcbiAgICAvLyBjb25zdCBsaWZlY3ljbGVJbmZvID0gdGhpcy5mcmVxdWVuY3lEYXRhPy5saWZlY3ljbGUuc3BsaXQoJ35+Jyk7XHJcbiAgICB0aGlzLnllYXJseUludGVydmFsID0gdGhpcy5mcmVxdWVuY3lEYXRhPy5mYWlsZWRUaW1lO1xyXG4gICAgdGhpcy55ZWFybHlXaW5kb3cgPSB0aGlzLmZyZXF1ZW5jeURhdGE/LndpbmRvdztcclxuICAgIHRoaXMueWVhcmx5SW5wdXQgPSBwYXR0ZXJuSW5mb1szXTtcclxuICAgIHRoaXMueWVhcmx5RGF5ID0gcGF0dGVybkluZm9bMV07XHJcbiAgICAvLyBpZihOdW1iZXIobGlmZWN5Y2xlSW5mb1sxXSkgPiAwKSB7XHJcbiAgICAvLyAgIHRoaXMueWVhcmx5TGlmZWN5Y2xlT2NjdXJhbmNlID0gTnVtYmVyKGxpZmVjeWNsZUluZm9bMV0pO1xyXG4gICAgLy8gfVxyXG4gICAgdGhpcy55ZWFybHlMaWZlY3ljbGVPY2N1cmFuY2UgPSBOdW1iZXIocGF0dGVybkluZm9bMV0pO1xyXG4gICAgdGhpcy55ZWFybHlMaWZlQ3ljbGVTdGFydCA9IG5ldyBEYXRlKHRoaXMuZnJlcXVlbmN5RGF0YT8uc3RhcnREYXRlICogMTAwMCk7XHJcbiAgICB0aGlzLnN0YXJ0RGF0ZSA9XHJcbiAgICAgIHRoaXMuZnJlcXVlbmN5RGF0YT8uc3RhcnRGcm9tID8/IHRoaXMuZnJlcXVlbmN5RGF0YT8uc3RhcnREYXRlO1xyXG4gICAgdGhpcy55ZWFybHlGYWlsZWQgPSB0aGlzLmZyZXF1ZW5jeURhdGE/LmZhaWxlZDtcclxuICAgIC8vIGlmKCBsaWZlY3ljbGVJbmZvWzBdICE9PSAnMDAwMC0wMC0wMCcpIHtcclxuICAgIC8vICAgY29uc3QgZGF0ZVNlbGVjdGVkID0gbW9tZW50KGxpZmVjeWNsZUluZm9bMF0gKyAnIDExOjU5IHBtJywgJ0RELU1NTU0tWVlZWSBISDptbSBhJykudW5peCgpXHJcbiAgICAvLyAgIHRoaXMueWVhcmx5TGlmZUN5Y2xlRW5kVGltZSA9IG5ldyBEYXRlKGRhdGVTZWxlY3RlZCAqIDEwMDApO1xyXG4gICAgLy8gfVxyXG4gICAgdGhpcy5saWZlY3ljbGVEZXRhaWxzID0gdGhpcy5mcmVxdWVuY3lEYXRhPy5saWZlY3ljbGU7XHJcbiAgICAvLyBpZiggdGhpcy5mcmVxdWVuY3lEYXRhPy5saWZlY3ljbGUgPT0gJzAwMDAtMDAtMDB+fjAnKSB7XHJcbiAgICAvLyAgIHRoaXMueWVhcmx5U2VsZXRlZExpZmVjeWNsZVR5cGUgPSAyO1xyXG4gICAgLy8gfSBlbHNlIGlmKGxpZmVjeWNsZUluZm9bMF0gIT09ICcwMDAwLTAwLTAwJykge1xyXG4gICAgLy8gICB0aGlzLnllYXJseVNlbGV0ZWRMaWZlY3ljbGVUeXBlID0gMDtcclxuICAgIC8vIH0gZWxzZSB7XHJcbiAgICAvLyAgIHRoaXMueWVhcmx5U2VsZXRlZExpZmVjeWNsZVR5cGUgPSAxO1xyXG4gICAgLy8gfVxyXG4gIH1cclxuXHJcbiAgb25UaW1lQ2hhbmdlZChldmVudDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnllYXJseUludGVydmFsID0gZXZlbnQ7XHJcbiAgICB0aGlzLmdldEFubnVhbEZyZXF1ZW5jeSgpO1xyXG4gIH1cclxuXHJcbiAgZGF0ZUNoYW5nZShldmVudDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLnllYXJseURheSA9IGV2ZW50O1xyXG4gICAgdGhpcy5nZXRBbm51YWxGcmVxdWVuY3koKTtcclxuICB9XHJcblxyXG4gIHZhbHVlQ2hhbmdlZEZpcnN0KGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMueWVhcmx5SW5wdXQgPSBldmVudC52YWx1ZTtcclxuICAgIHRoaXMuZ2V0QW5udWFsRnJlcXVlbmN5KCk7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RlZE1vbnRoKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMueWVhcmx5U2VsZWN0ZWQgPSBwYXJzZUludChldmVudC50YXJnZXQudmFsdWUpO1xyXG4gICAgdGhpcy5nZXRBbm51YWxGcmVxdWVuY3koKTtcclxuICB9XHJcblxyXG4gIGxpZmVjeWNsZUNoYW5nZShldmVudDogYW55KSB7XHJcbiAgICBzd2l0Y2ggKGV2ZW50LnR5cGUpIHtcclxuICAgICAgY2FzZSAwOlxyXG4gICAgICAgIHRoaXMubGlmZWN5Y2xlRGV0YWlscyA9IGV2ZW50LmVuZHNCeSArICd+fjAnO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIDE6XHJcbiAgICAgICAgdGhpcy5saWZlY3ljbGVEZXRhaWxzID0gJzAwMDAtMDAtMDB+ficgKyBldmVudC5lbmRhZnRlcjtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAyOlxyXG4gICAgICAgIHRoaXMubGlmZWN5Y2xlRGV0YWlscyA9ICcwMDAwLTAwLTAwfn4wJztcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICAgIGlmIChldmVudC5zdGFydEZyb20udG9TdHJpbmcoKS5sZW5ndGggPiAxMCkge1xyXG4gICAgICB0aGlzLnN0YXJ0RGF0ZSA9IE1hdGguZmxvb3IoZXZlbnQuc3RhcnRGcm9tIC8gMTAwMCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnN0YXJ0RGF0ZSA9IE1hdGguZmxvb3IoZXZlbnQuc3RhcnRGcm9tKTtcclxuICAgIH1cclxuICAgIGxldCBlbmRCeURhdGUgPSBNYXRoLmZsb29yKFxyXG4gICAgICB0aGlzLmZyZXF1ZW5jeVNlcnZpY2UuY2hhbmdlVGltZVpvbmUobmV3IERhdGUoKSk/LmdldFRpbWUoKSAvIDEwMDAgK1xyXG4gICAgICAgIDg2NDAwMDAwXHJcbiAgICApO1xyXG4gICAgaWYgKGV2ZW50LnR5cGUgPT09IDApIHtcclxuICAgICAgZW5kQnlEYXRlID0gZXZlbnQuZW5kc0J5XHJcbiAgICAgICAgPyBtb21lbnQoZXZlbnQuZW5kc0J5ICsgJyAwMDowMDowMCcsICdERC1NTU0tWVlZWSBISDptbTpzcycpLnVuaXgoKVxyXG4gICAgICAgIDogZW5kQnlEYXRlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLmZhaWxlZF90aW1lX3V0YyA9IGVuZEJ5RGF0ZTtcclxuICAgIHRoaXMuZ2V0QW5udWFsRnJlcXVlbmN5KCk7XHJcbiAgfVxyXG5cclxuICBvblZhbHVlQ2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmIChldmVudC50eXBlID09PSAnY29tcGxldGVkJykge1xyXG4gICAgICB0aGlzLnllYXJseVdpbmRvdyA9IGV2ZW50LnZhbHVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy55ZWFybHlGYWlsZWQgPSBldmVudC52YWx1ZTtcclxuICAgIH1cclxuICAgIHRoaXMuZ2V0QW5udWFsRnJlcXVlbmN5KCk7XHJcbiAgfVxyXG5cclxuICAvLyBmcmVxdWVuY3kgcGF0dGVybiBhbmQgZGV0YWlscyBpbmZvXHJcbiAgZ2V0QW5udWFsRnJlcXVlbmN5KCkge1xyXG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLnBsYWNlaG9sZGVyID0gdGhpcy5nZXRGcmVxdWVuY3lQbGFjZWhvbGRlcihcclxuICAgICAgTnVtYmVyKHRoaXMueWVhcmx5SW5wdXQpXHJcbiAgICApO1xyXG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLnBhdHRlcm4gPVxyXG4gICAgICA0ICtcclxuICAgICAgJ34nICtcclxuICAgICAgdGhpcy55ZWFybHlEYXkgK1xyXG4gICAgICAnficgK1xyXG4gICAgICAodGhpcy55ZWFybHlTZWxlY3RlZCArIDEpICtcclxuICAgICAgJ34nICtcclxuICAgICAgdGhpcy55ZWFybHlJbnB1dDtcclxuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5jYXNlID0gJ3llYXJseSc7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8uZmFpbGVkQWZ0ZXIgPSB0aGlzLnllYXJseUZhaWxlZDtcclxuICAgIHRoaXMuZnJlcXVlbmN5SW5mby53aW5kb3cgPSB0aGlzLnllYXJseVdpbmRvdztcclxuICAgIHRoaXMuZnJlcXVlbmN5SW5mby50aW1lSW4xMmhyID0gdGhpcy55ZWFybHlJbnRlcnZhbDtcclxuICAgIHRoaXMuZnJlcXVlbmN5SW5mby50aW1lSW4yNEhyID0gdGhpcy5mcmVxdWVuY3lTZXJ2aWNlLnRpbWVGcm9tMTJoVG8yNGgoXHJcbiAgICAgIHRoaXMueWVhcmx5SW50ZXJ2YWxcclxuICAgICk7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8ubGlmZWN5Y2xlRGV0YWlscyA9IHRoaXMubGlmZWN5Y2xlRGV0YWlscztcclxuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5zdGFydEZyb20gPSB0aGlzLnN0YXJ0RGF0ZTtcclxuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5yZXBvcnRJZCA9IDA7XHJcbiAgICBjb25zb2xlLmxvZygnIHRoaXMuZnJlcXVlbmN5SW5mbyA9PT4nLCB0aGlzLmZyZXF1ZW5jeUluZm8pO1xyXG4gICAgdGhpcy5mcmVxdWVuY3lEZXRhaWxzLmVtaXQodGhpcy5mcmVxdWVuY3lJbmZvKTtcclxuICB9XHJcblxyXG4gIGdldEZyZXF1ZW5jeVBsYWNlaG9sZGVyKHllYXJseUlucHV0OiBhbnkpIHtcclxuICAgIGxldCBwbGFjZWhvbGRlciA9ICcnO1xyXG4gICAgaWYgKHllYXJseUlucHV0ID09PSAxKSB7XHJcbiAgICAgIHBsYWNlaG9sZGVyID0gdGhpcy5nZXRQbGFjZWhvbGRlckZvclN0MigpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcGxhY2Vob2xkZXIgPSB0aGlzLmdldFBsYWNlaG9sZGVyRm9yR3QxKCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcGxhY2Vob2xkZXI7XHJcbiAgfVxyXG5cclxuICAvLyBpZiB5ZWFybHlJbnB1dCBpcyBzbWFsbGVyIHRoYW4gMiB0aGVuIHRoaXMgZnVuY3Rpb24gd2lsbCBjYWxsZWRcclxuICBnZXRQbGFjZWhvbGRlckZvclN0MigpIHtcclxuICAgIGxldCBwbGFjZWhvbGRlciA9ICcnO1xyXG4gICAgaWYgKHRoaXMueWVhcmx5RGF5ID09PSAxKSB7XHJcbiAgICAgIHBsYWNlaG9sZGVyID1cclxuICAgICAgICAnMXN0IG9mIGV2ZXJ5ICcgK1xyXG4gICAgICAgIHRoaXMuc2hvcnRNb250aFt0aGlzLnllYXJseVNlbGVjdGVkXSArXHJcbiAgICAgICAgJyBieSAnICtcclxuICAgICAgICB0aGlzLnllYXJseUludGVydmFsO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMueWVhcmx5RGF5ID09PSAyKSB7XHJcbiAgICAgIHBsYWNlaG9sZGVyID1cclxuICAgICAgICAnMm5kIG9mIGV2ZXJ5ICcgK1xyXG4gICAgICAgIHRoaXMuc2hvcnRNb250aFt0aGlzLnllYXJseVNlbGVjdGVkXSArXHJcbiAgICAgICAgJyBieSAnICtcclxuICAgICAgICB0aGlzLnllYXJseUludGVydmFsO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMueWVhcmx5RGF5ID09PSAzKSB7XHJcbiAgICAgIHBsYWNlaG9sZGVyID1cclxuICAgICAgICAnM3JkIG9mIGV2ZXJ5ICcgK1xyXG4gICAgICAgIHRoaXMuc2hvcnRNb250aFt0aGlzLnllYXJseVNlbGVjdGVkXSArXHJcbiAgICAgICAgJyBieSAnICtcclxuICAgICAgICB0aGlzLnllYXJseUludGVydmFsO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMueWVhcmx5RGF5ID4gMykge1xyXG4gICAgICBwbGFjZWhvbGRlciA9XHJcbiAgICAgICAgdGhpcy55ZWFybHlEYXkgK1xyXG4gICAgICAgICd0aCBvZiBldmVyeSAnICtcclxuICAgICAgICB0aGlzLnNob3J0TW9udGhbdGhpcy55ZWFybHlTZWxlY3RlZF0gK1xyXG4gICAgICAgICcgYnkgJyArXHJcbiAgICAgICAgdGhpcy55ZWFybHlJbnRlcnZhbDtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnllYXJseURheSA9PT0gMzEgfHwgdGhpcy55ZWFybHlEYXkgPT09IDIxKSB7XHJcbiAgICAgIHBsYWNlaG9sZGVyID1cclxuICAgICAgICB0aGlzLnllYXJseURheSArXHJcbiAgICAgICAgJ3N0IG9mIGV2ZXJ5ICcgK1xyXG4gICAgICAgIHRoaXMuc2hvcnRNb250aFt0aGlzLnllYXJseVNlbGVjdGVkXSArXHJcbiAgICAgICAgJyBieSAnICtcclxuICAgICAgICB0aGlzLnllYXJseUludGVydmFsO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMueWVhcmx5RGF5ID09PSAyMikge1xyXG4gICAgICBwbGFjZWhvbGRlciA9XHJcbiAgICAgICAgdGhpcy55ZWFybHlEYXkgK1xyXG4gICAgICAgICduZCBvZiBldmVyeSAnICtcclxuICAgICAgICB0aGlzLnNob3J0TW9udGhbdGhpcy55ZWFybHlTZWxlY3RlZF0gK1xyXG4gICAgICAgICcgYnkgJyArXHJcbiAgICAgICAgdGhpcy55ZWFybHlJbnRlcnZhbDtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnllYXJseURheSA9PT0gMjMpIHtcclxuICAgICAgcGxhY2Vob2xkZXIgPVxyXG4gICAgICAgIHRoaXMueWVhcmx5RGF5ICtcclxuICAgICAgICAncmQgb2YgZXZlcnkgJyArXHJcbiAgICAgICAgdGhpcy5zaG9ydE1vbnRoW3RoaXMueWVhcmx5U2VsZWN0ZWRdICtcclxuICAgICAgICAnIGJ5ICcgK1xyXG4gICAgICAgIHRoaXMueWVhcmx5SW50ZXJ2YWw7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcGxhY2Vob2xkZXI7XHJcbiAgfVxyXG5cclxuICAvLyBpZiB5ZWFybHlJbnB1dCBpcyBncmVhdGVyIHRoYW4gMSB0aGVuIHRoaXMgZnVuY3Rpb24gd2lsbCBjYWxsZWRcclxuICBnZXRQbGFjZWhvbGRlckZvckd0MSgpIHtcclxuICAgIGxldCBwbGFjZWhvbGRlciA9ICcnO1xyXG4gICAgaWYgKHRoaXMueWVhcmx5RGF5ID09PSAxKSB7XHJcbiAgICAgIHBsYWNlaG9sZGVyID1cclxuICAgICAgICAnMXN0IG9mICcgK1xyXG4gICAgICAgIHRoaXMuc2hvcnRNb250aFt0aGlzLnllYXJseVNlbGVjdGVkXSArXHJcbiAgICAgICAgJywgSW50ZXJ2YWw6IGV2ZXJ5ICcgK1xyXG4gICAgICAgIHRoaXMueWVhcmx5SW5wdXQgK1xyXG4gICAgICAgICcgeWVhcnMgYnkgJyArXHJcbiAgICAgICAgdGhpcy55ZWFybHlJbnRlcnZhbDtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnllYXJseURheSA9PT0gMikge1xyXG4gICAgICBwbGFjZWhvbGRlciA9XHJcbiAgICAgICAgJzJuZCBvZiAnICtcclxuICAgICAgICB0aGlzLnNob3J0TW9udGhbdGhpcy55ZWFybHlTZWxlY3RlZF0gK1xyXG4gICAgICAgICcsIEludGVydmFsOiBldmVyeSAnICtcclxuICAgICAgICB0aGlzLnllYXJseUlucHV0ICtcclxuICAgICAgICAnIHllYXJzIGJ5ICcgK1xyXG4gICAgICAgIHRoaXMueWVhcmx5SW50ZXJ2YWw7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy55ZWFybHlEYXkgPT09IDMpIHtcclxuICAgICAgcGxhY2Vob2xkZXIgPVxyXG4gICAgICAgICczcmQgb2YgJyArXHJcbiAgICAgICAgdGhpcy5zaG9ydE1vbnRoW3RoaXMueWVhcmx5U2VsZWN0ZWRdICtcclxuICAgICAgICAnLCBJbnRlcnZhbDogZXZlcnkgJyArXHJcbiAgICAgICAgdGhpcy55ZWFybHlJbnB1dCArXHJcbiAgICAgICAgJyB5ZWFycyBieSAnICtcclxuICAgICAgICB0aGlzLnllYXJseUludGVydmFsO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMueWVhcmx5RGF5ID4gMykge1xyXG4gICAgICBwbGFjZWhvbGRlciA9XHJcbiAgICAgICAgdGhpcy55ZWFybHlEYXkgK1xyXG4gICAgICAgICd0aCBvZiAnICtcclxuICAgICAgICB0aGlzLnNob3J0TW9udGhbdGhpcy55ZWFybHlTZWxlY3RlZF0gK1xyXG4gICAgICAgICcsIEludGVydmFsOiBldmVyeSAnICtcclxuICAgICAgICB0aGlzLnllYXJseUlucHV0ICtcclxuICAgICAgICAnIHllYXJzIGJ5ICcgK1xyXG4gICAgICAgIHRoaXMueWVhcmx5SW50ZXJ2YWw7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy55ZWFybHlEYXkgPT09IDMxIHx8IHRoaXMueWVhcmx5RGF5ID09PSAyMSkge1xyXG4gICAgICBwbGFjZWhvbGRlciA9XHJcbiAgICAgICAgdGhpcy55ZWFybHlEYXkgK1xyXG4gICAgICAgICdzdCBvZiAnICtcclxuICAgICAgICB0aGlzLnNob3J0TW9udGhbdGhpcy55ZWFybHlTZWxlY3RlZF0gK1xyXG4gICAgICAgICcsIEludGVydmFsOiBldmVyeSAnICtcclxuICAgICAgICB0aGlzLnllYXJseUlucHV0ICtcclxuICAgICAgICAnIHllYXJzIGJ5ICcgK1xyXG4gICAgICAgIHRoaXMueWVhcmx5SW50ZXJ2YWw7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy55ZWFybHlEYXkgPT09IDIyKSB7XHJcbiAgICAgIHBsYWNlaG9sZGVyID1cclxuICAgICAgICB0aGlzLnllYXJseURheSArXHJcbiAgICAgICAgJ25kIG9mICcgK1xyXG4gICAgICAgIHRoaXMuc2hvcnRNb250aFt0aGlzLnllYXJseVNlbGVjdGVkXSArXHJcbiAgICAgICAgJywgSW50ZXJ2YWw6IGV2ZXJ5ICcgK1xyXG4gICAgICAgIHRoaXMueWVhcmx5SW5wdXQgK1xyXG4gICAgICAgICcgeWVhcnMgYnkgJyArXHJcbiAgICAgICAgdGhpcy55ZWFybHlJbnRlcnZhbDtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnllYXJseURheSA9PT0gMjMpIHtcclxuICAgICAgcGxhY2Vob2xkZXIgPVxyXG4gICAgICAgIHRoaXMueWVhcmx5RGF5ICtcclxuICAgICAgICAncmQgb2YgJyArXHJcbiAgICAgICAgdGhpcy5zaG9ydE1vbnRoW3RoaXMueWVhcmx5U2VsZWN0ZWRdICtcclxuICAgICAgICAnLCBJbnRlcnZhbDogZXZlcnkgJyArXHJcbiAgICAgICAgdGhpcy55ZWFybHlJbnB1dCArXHJcbiAgICAgICAgJyB5ZWFycyBieSAnICtcclxuICAgICAgICB0aGlzLnllYXJseUludGVydmFsO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHBsYWNlaG9sZGVyO1xyXG4gIH1cclxufVxyXG4iLCI8IS0tIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktZGlhbG9nLWFubnVhbFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHQgdngtdHQtdXBwZXJjYXNlIHZ4LW1iLTFcIj5SRUFTU0VTU01FTlQgRlJFUVVFTkNZOjwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1kaWFsb2ctYW5udWFsLWl0ZW0gdngtbWItNVwiPlxyXG4gICAgICAgIDxhcHAtZnJlcXVlbmN5LWRpYWxvZy10b3A+PC9hcHAtZnJlcXVlbmN5LWRpYWxvZy10b3A+XHJcbiAgICAgICAgPGFwcC1mcmVxdWVuY3ktZGlhbG9nLXJhZGlvLWxpc3Q+PC9hcHAtZnJlcXVlbmN5LWRpYWxvZy1yYWRpby1saXN0PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwidngtZnMtMTEgdngtZnctNTAwIHZ4LWxhYmVsLXR4dCB2eC10dC11cHBlcmNhc2UgdngtbWItMVwiPlJFQVNTRVNTTUVOVCBFTUFJTCBOT1RJRklDQVRJT046PC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LWRpYWxvZy1hbm51YWwtaXRlbSB2eC1tYi01XCI+XHJcbiAgICAgICAgPGFwcC1mcmVxdWVuY3ktZGlhbG9nLWR1ZS1kYXRlPjwvYXBwLWZyZXF1ZW5jeS1kaWFsb2ctZHVlLWRhdGU+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+IC0tPlxyXG5cclxuXHJcbjxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktZGlhbG9nLWFubnVhbFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHQgdngtdHQtdXBwZXJjYXNlIHZ4LW1iLTFcIj5SRUFTU0VTU01FTlQgRlJFUVVFTkNZOjwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1kaWFsb2ctYW5udWFsLWl0ZW0gdngtbWItNVwiPlxyXG4gICAgICAgIDxhcHAtZnJlcXVlbmN5LWRpYWxvZy10b3BcclxuICAgICAgICAgICAgW2lkXT1cIjVcIlxyXG4gICAgICAgICAgICBbaW5wdXRUaW1lXT1cInllYXJseUludGVydmFsXCJcclxuICAgICAgICAgICAgW29jY3VycmVuY2VGaXJzdF09XCJ5ZWFybHlJbnB1dFwiXHJcbiAgICAgICAgICAgIFt5ZWFybHlEYXldPVwieWVhcmx5RGF5XCJcclxuICAgICAgICAgICAgW2ZyZXF1ZW5jeVR5cGVdPVwiMlwiXHJcbiAgICAgICAgICAgICh0aW1lQ2hhbmdlZCk9XCJvblRpbWVDaGFuZ2VkKCRldmVudClcIlxyXG4gICAgICAgICAgICAodmFsdWVDaGFuZ2VkRmlyc3QpPVwidmFsdWVDaGFuZ2VkRmlyc3QoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICh5ZWFybHlEYXRlQ2hhbmdlZCk9XCJkYXRlQ2hhbmdlKCRldmVudClcIj5cclxuICAgICAgICA8L2FwcC1mcmVxdWVuY3ktZGlhbG9nLXRvcD5cclxuICAgICAgICA8YXBwLWZyZXF1ZW5jeS1kaWFsb2ctcmFkaW8tbGlzdFxyXG4gICAgICAgICAgICBbcmFkaW9MaXN0XT1cIm1vbnRoTGlzdFwiIFxyXG4gICAgICAgICAgICBbc2VsZWN0ZWRJbmRleF09XCJ5ZWFybHlTZWxlY3RlZFwiIFxyXG4gICAgICAgICAgICAoc2VsZWN0ZWRSYWRpbyk9XCJzZWxlY3RlZE1vbnRoKCRldmVudClcIlxyXG4gICAgICAgICAgICBbbmFtZV09XCInYW5udWFsJ1wiPlxyXG4gICAgICAgIDwvYXBwLWZyZXF1ZW5jeS1kaWFsb2ctcmFkaW8tbGlzdD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHQgdngtdHQtdXBwZXJjYXNlIHZ4LW1iLTFcIj5SRUFTU0VTU01FTlQgRU1BSUwgTk9USUZJQ0FUSU9OOjwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1kaWFsb2ctYW5udWFsLWl0ZW0gdngtbWItNVwiPlxyXG4gICAgICAgIDxhcHAtZnJlcXVlbmN5LWRpYWxvZy1kdWUtZGF0ZVxyXG4gICAgICAgICAgICBbcGFnZU5hbWVdPVwiJ3llYXJseSdcIlxyXG4gICAgICAgICAgICBbbW9kZV09XCJtb2RlXCJcclxuICAgICAgICAgICAgW2lkXT1cIjVcIlxyXG4gICAgICAgICAgICBbY29tcGxldGVkVmFsdWVdPVwieWVhcmx5V2luZG93XCJcclxuICAgICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2UoJGV2ZW50KVwiPlxyXG4gICAgICAgIDwvYXBwLWZyZXF1ZW5jeS1kaWFsb2ctZHVlLWRhdGU+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19
|
|
299
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlcXVlbmN5LWRpYWxvZy1hbm51YWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9mcmVxdWVuY3ktZGlhbG9nL2ZyZXF1ZW5jeS1kaWFsb2ctYW5udWFsL2ZyZXF1ZW5jeS1kaWFsb2ctYW5udWFsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3NoYXJlZENvbXBvbmVudHMvZnJlcXVlbmN5LWRpYWxvZy9mcmVxdWVuY3ktZGlhbG9nLWFubnVhbC9mcmVxdWVuY3ktZGlhbG9nLWFubnVhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sTUFBTSxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBUW5DLE1BQU0sT0FBTyw4QkFBOEI7SUEyQnpDLFlBQW9CLGdCQUFrQztRQUFsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBMUJ0RCxjQUFTLEdBQWUsRUFBRSxDQUFDO1FBQzNCLG1CQUFjLEdBQVcsVUFBVSxDQUFDO1FBQ3BDLGdCQUFXLEdBQVcsQ0FBQyxDQUFDO1FBQ3hCLGlCQUFZLEdBQVcsQ0FBQyxDQUFDO1FBQ3pCLGlCQUFZLEdBQVcsRUFBRSxDQUFDO1FBQzFCLGNBQVMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQztRQUN4RSx5QkFBb0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztR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RCxXQUFXO2dCQUNULElBQUksQ0FBQyxTQUFTO29CQUNkLFFBQVE7b0JBQ1IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDO29CQUNwQyxvQkFBb0I7b0JBQ3BCLElBQUksQ0FBQyxXQUFXO29CQUNoQixZQUFZO29CQUNaLElBQUksQ0FBQyxjQUFjLENBQUM7U0FDdkI7UUFDRCxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssRUFBRSxFQUFFO1lBQ3pCLFdBQVc7Z0JBQ1QsSUFBSSxDQUFDLFNBQVM7b0JBQ2QsUUFBUTtvQkFDUixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUM7b0JBQ3BDLG9CQUFvQjtvQkFDcEIsSUFBSSxDQUFDLFdBQVc7b0JBQ2hCLFlBQVk7b0JBQ1osSUFBSSxDQUFDLGNBQWMsQ0FBQztTQUN2QjtRQUNELElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxFQUFFLEVBQUU7WUFDekIsV0FBVztnQkFDVCxJQUFJLENBQUMsU0FBUztvQkFDZCxRQUFRO29CQUNSLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQztvQkFDcEMsb0JBQW9CO29CQUNwQixJQUFJLENBQUMsV0FBVztvQkFDaEIsWUFBWTtvQkFDWixJQUFJLENBQUMsY0FBYyxDQUFDO1NBQ3ZCO1FBQ0QsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQzs7MkhBN1NVLDhCQUE4QjsrR0FBOUIsOEJBQThCLHdNQ1QzQyxvNkNBa0NBOzJGRHpCYSw4QkFBOEI7a0JBTDFDLFNBQVM7K0JBQ0UsNkJBQTZCO3VHQXlCOUIsYUFBYTtzQkFBckIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFFSSxnQkFBZ0I7c0JBQXpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50L21vbWVudCc7XHJcbmltcG9ydCB7IEZyZXF1ZW5jeVNlcnZpY2UgfSBmcm9tICcuLi8uLi9mcmVxdWVuY3kvZnJlcXVlbmN5LnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtZnJlcXVlbmN5LWRpYWxvZy1hbm51YWwnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9mcmVxdWVuY3ktZGlhbG9nLWFubnVhbC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZnJlcXVlbmN5LWRpYWxvZy1hbm51YWwuY29tcG9uZW50Lmxlc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEZyZXF1ZW5jeURpYWxvZ0FubnVhbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgbW9udGhMaXN0OiBBcnJheTxhbnk+ID0gW107XHJcbiAgeWVhcmx5SW50ZXJ2YWw6IHN0cmluZyA9ICcxMTowMCBwbSc7XHJcbiAgeWVhcmx5SW5wdXQ6IG51bWJlciA9IDE7XHJcbiAgeWVhcmx5RmFpbGVkOiBudW1iZXIgPSA1O1xyXG4gIHllYXJseVdpbmRvdzogbnVtYmVyID0gMzA7XHJcbiAgeWVhcmx5RGF5ID0gdGhpcy5mcmVxdWVuY3lTZXJ2aWNlLmNoYW5nZVRpbWVab25lKG5ldyBEYXRlKCkpPy5nZXREYXRlKCk7XHJcbiAgeWVhcmx5TGlmZUN5Y2xlU3RhcnQgPSB0aGlzLmZyZXF1ZW5jeVNlcnZpY2UuY2hhbmdlVGltZVpvbmUobmV3IERhdGUoKSk7XHJcbiAgeWVhcmx5TGlmZUN5Y2xlRW5kVGltZSA9IG5ldyBEYXRlKFxyXG4gICAgdGhpcy55ZWFybHlMaWZlQ3ljbGVTdGFydC5nZXRUaW1lKCkgKyA4NjQwMDAwMFxyXG4gICk7XHJcbiAgeWVhcmx5TGlmZWN5Y2xlT2NjdXJhbmNlOiBudW1iZXIgPSAxMDtcclxuICB5ZWFybHlTZWxldGVkTGlmZWN5Y2xlVHlwZTogbnVtYmVyID0gMjtcclxuICB5ZWFybHlTZWxlY3RlZCA9IHRoaXMuZnJlcXVlbmN5U2VydmljZS5jaGFuZ2VUaW1lWm9uZShuZXcgRGF0ZSgpKT8uZ2V0TW9udGgoKTtcclxuICBsaWZlY3ljbGVEZXRhaWxzOiBhbnkgPSAnMDAwMC0wMC0wMH5+MCc7XHJcbiAgcHJldmlvdXNTdGFydERhdGUgPSBNYXRoLmZsb29yKERhdGUubm93KCkgLyAxMDAwKTtcclxuICBmcmVxdWVuY3lJbmZvOiBhbnk7XHJcbiAgc2hvcnRNb250aDogQXJyYXk8c3RyaW5nPiA9IFtdO1xyXG4gIGFubnVhbGx5RXh0ZW5zaW9uOiBudW1iZXIgPSA1O1xyXG4gIGFubnVhbFdpbmRvd09wZW46IG51bWJlciA9IDMwO1xyXG5cclxuICBASW5wdXQoKSBmcmVxdWVuY3lEYXRhOiBhbnk7XHJcbiAgQElucHV0KCkgbW9kZTogYW55ID0gJyc7XHJcbiAgQElucHV0KCkgc3RhcnREYXRlID0gTWF0aC5mbG9vcihEYXRlLm5vdygpIC8gMTAwMCk7XHJcblxyXG4gIEBPdXRwdXQoKSBmcmVxdWVuY3lEZXRhaWxzID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZnJlcXVlbmN5U2VydmljZTogRnJlcXVlbmN5U2VydmljZSkge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLm1vbnRoTGlzdCA9IHRoaXMuZnJlcXVlbmN5U2VydmljZS5tb250aEFycmF5O1xyXG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvID0gT2JqZWN0LmFzc2lnbih0aGlzLmZyZXF1ZW5jeVNlcnZpY2UuZnJlcXVlbmN5SW5mbyk7XHJcbiAgICB0aGlzLnNob3J0TW9udGggPSB0aGlzLmZyZXF1ZW5jeVNlcnZpY2UubW9udGhBcnJheS5tYXAoKG1vbnRoKSA9PlxyXG4gICAgICBtb250aC5zdWJzdHJpbmcoMCwgMylcclxuICAgICk7XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMuZnJlcXVlbmN5RGF0YT8ucGF0dGVybiAhPSAnJyAmJlxyXG4gICAgICBwYXJzZUludCh0aGlzLmZyZXF1ZW5jeURhdGE/LnBhdHRlcm4uc3BsaXQoJ34nKVswXSkgPT09IDRcclxuICAgICkge1xyXG4gICAgICB0aGlzLnBvcHVsYXRlRnJlcXVlbmN5KCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmdldEFubnVhbEZyZXF1ZW5jeSgpO1xyXG4gIH1cclxuXHJcbiAgcG9wdWxhdGVGcmVxdWVuY3koKSB7XHJcbiAgICBjb25zdCBwYXR0ZXJuSW5mbyA9IHRoaXMuZnJlcXVlbmN5RGF0YT8ucGF0dGVybi5zcGxpdCgnficpLm1hcChOdW1iZXIpO1xyXG4gICAgdGhpcy55ZWFybHlTZWxlY3RlZCA9IHBhdHRlcm5JbmZvWzJdIC0gMTtcclxuICAgIHRoaXMueWVhcmx5SW50ZXJ2YWwgPSB0aGlzLmZyZXF1ZW5jeURhdGE/LmZhaWxlZFRpbWU7XHJcbiAgICB0aGlzLnllYXJseVdpbmRvdyA9IHRoaXMuZnJlcXVlbmN5RGF0YT8ud2luZG93O1xyXG4gICAgdGhpcy55ZWFybHlJbnB1dCA9IHBhdHRlcm5JbmZvWzNdO1xyXG4gICAgdGhpcy55ZWFybHlEYXkgPSBwYXR0ZXJuSW5mb1sxXTtcclxuICAgIHRoaXMueWVhcmx5TGlmZWN5Y2xlT2NjdXJhbmNlID0gTnVtYmVyKHBhdHRlcm5JbmZvWzFdKTtcclxuICAgIHRoaXMueWVhcmx5TGlmZUN5Y2xlU3RhcnQgPSBuZXcgRGF0ZSh0aGlzLmZyZXF1ZW5jeURhdGE/LnN0YXJ0RGF0ZSAqIDEwMDApO1xyXG4gICAgdGhpcy5zdGFydERhdGUgPVxyXG4gICAgICB0aGlzLmZyZXF1ZW5jeURhdGE/LnN0YXJ0RnJvbSA/PyB0aGlzLmZyZXF1ZW5jeURhdGE/LnN0YXJ0RGF0ZTtcclxuICAgIHRoaXMueWVhcmx5RmFpbGVkID0gdGhpcy5mcmVxdWVuY3lEYXRhPy5mYWlsZWQ7XHJcbiAgICB0aGlzLmxpZmVjeWNsZURldGFpbHMgPSB0aGlzLmZyZXF1ZW5jeURhdGE/LmxpZmVjeWNsZTtcclxuICB9XHJcblxyXG4gIG9uVGltZUNoYW5nZWQoZXZlbnQ6IHN0cmluZykge1xyXG4gICAgdGhpcy55ZWFybHlJbnRlcnZhbCA9IGV2ZW50O1xyXG4gICAgdGhpcy5nZXRBbm51YWxGcmVxdWVuY3koKTtcclxuICB9XHJcblxyXG4gIGRhdGVDaGFuZ2UoZXZlbnQ6IG51bWJlcikge1xyXG4gICAgdGhpcy55ZWFybHlEYXkgPSBldmVudDtcclxuICAgIHRoaXMuZ2V0QW5udWFsRnJlcXVlbmN5KCk7XHJcbiAgfVxyXG5cclxuICB2YWx1ZUNoYW5nZWRGaXJzdChldmVudDogYW55KSB7XHJcbiAgICB0aGlzLnllYXJseUlucHV0ID0gZXZlbnQudmFsdWU7XHJcbiAgICB0aGlzLmdldEFubnVhbEZyZXF1ZW5jeSgpO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0ZWRNb250aChldmVudDogYW55KSB7XHJcbiAgICB0aGlzLnllYXJseVNlbGVjdGVkID0gcGFyc2VJbnQoZXZlbnQudGFyZ2V0LnZhbHVlKTtcclxuICAgIHRoaXMuZ2V0QW5udWFsRnJlcXVlbmN5KCk7XHJcbiAgfVxyXG5cclxuICBsaWZlY3ljbGVDaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgc3dpdGNoIChldmVudC50eXBlKSB7XHJcbiAgICAgIGNhc2UgMDpcclxuICAgICAgICB0aGlzLmxpZmVjeWNsZURldGFpbHMgPSBldmVudC5lbmRzQnkgKyAnfn4wJztcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAxOlxyXG4gICAgICAgIHRoaXMubGlmZWN5Y2xlRGV0YWlscyA9ICcwMDAwLTAwLTAwfn4nICsgZXZlbnQuZW5kYWZ0ZXI7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgMjpcclxuICAgICAgICB0aGlzLmxpZmVjeWNsZURldGFpbHMgPSAnMDAwMC0wMC0wMH5+MCc7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgICBpZiAoZXZlbnQuc3RhcnRGcm9tLnRvU3RyaW5nKCkubGVuZ3RoID4gMTApIHtcclxuICAgICAgdGhpcy5zdGFydERhdGUgPSBNYXRoLmZsb29yKGV2ZW50LnN0YXJ0RnJvbSAvIDEwMDApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zdGFydERhdGUgPSBNYXRoLmZsb29yKGV2ZW50LnN0YXJ0RnJvbSk7XHJcbiAgICB9XHJcbiAgICBsZXQgZW5kQnlEYXRlID0gTWF0aC5mbG9vcihcclxuICAgICAgdGhpcy5mcmVxdWVuY3lTZXJ2aWNlLmNoYW5nZVRpbWVab25lKG5ldyBEYXRlKCkpPy5nZXRUaW1lKCkgLyAxMDAwICtcclxuICAgICAgICA4NjQwMDAwMFxyXG4gICAgKTtcclxuICAgIGlmIChldmVudC50eXBlID09PSAwKSB7XHJcbiAgICAgIGVuZEJ5RGF0ZSA9IGV2ZW50LmVuZHNCeVxyXG4gICAgICAgID8gbW9tZW50KGV2ZW50LmVuZHNCeSArICcgMDA6MDA6MDAnLCAnREQtTU1NLVlZWVkgSEg6bW06c3MnKS51bml4KClcclxuICAgICAgICA6IGVuZEJ5RGF0ZTtcclxuICAgIH1cclxuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5mYWlsZWRfdGltZV91dGMgPSBlbmRCeURhdGU7XHJcbiAgICB0aGlzLmdldEFubnVhbEZyZXF1ZW5jeSgpO1xyXG4gIH1cclxuXHJcbiAgb25WYWx1ZUNoYW5nZShldmVudDogYW55KSB7XHJcbiAgICBpZiAoZXZlbnQudHlwZSA9PT0gJ2NvbXBsZXRlZCcpIHtcclxuICAgICAgdGhpcy55ZWFybHlXaW5kb3cgPSBldmVudC52YWx1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMueWVhcmx5RmFpbGVkID0gZXZlbnQudmFsdWU7XHJcbiAgICB9XHJcbiAgICB0aGlzLmdldEFubnVhbEZyZXF1ZW5jeSgpO1xyXG4gIH1cclxuXHJcbiAgb25XaW5kb3dPcGVuQ2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmIChldmVudD8udHlwZT8udG9Mb3dlckNhc2UoKSA9PT0gJ3dpbmRvdyBvcGVuJykge1xyXG4gICAgICB0aGlzLmFubnVhbFdpbmRvd09wZW4gPSBldmVudD8udmFsdWU7XHJcbiAgICB9XHJcbiAgICB0aGlzLmdldEFubnVhbEZyZXF1ZW5jeSgpO1xyXG4gIH1cclxuXHJcbiAgb25FeHRlbnNpb25DaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKGV2ZW50Py50eXBlPy50b0xvd2VyQ2FzZSgpID09PSAnZXh0ZW5zaW9uJykge1xyXG4gICAgICB0aGlzLmFubnVhbGx5RXh0ZW5zaW9uID0gZXZlbnQudmFsdWU7XHJcbiAgICB9XHJcbiAgICB0aGlzLmdldEFubnVhbEZyZXF1ZW5jeSgpO1xyXG4gIH1cclxuXHJcbiAgLy8gZnJlcXVlbmN5IHBhdHRlcm4gYW5kIGRldGFpbHMgaW5mb1xyXG4gIGdldEFubnVhbEZyZXF1ZW5jeSgpIHtcclxuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5wbGFjZWhvbGRlciA9IHRoaXMuZ2V0RnJlcXVlbmN5UGxhY2Vob2xkZXIoXHJcbiAgICAgIE51bWJlcih0aGlzLnllYXJseUlucHV0KVxyXG4gICAgKTtcclxuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5wYXR0ZXJuID1cclxuICAgICAgNCArXHJcbiAgICAgICd+JyArXHJcbiAgICAgIHRoaXMueWVhcmx5RGF5ICtcclxuICAgICAgJ34nICtcclxuICAgICAgKHRoaXMueWVhcmx5U2VsZWN0ZWQgKyAxKSArXHJcbiAgICAgICd+JyArXHJcbiAgICAgIHRoaXMueWVhcmx5SW5wdXQ7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8uY2FzZSA9ICd5ZWFybHknO1xyXG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLmZhaWxlZEFmdGVyID0gdGhpcy55ZWFybHlGYWlsZWQ7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8ud2luZG93ID0gdGhpcy55ZWFybHlXaW5kb3c7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8udGltZUluMTJociA9IHRoaXMueWVhcmx5SW50ZXJ2YWw7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8udGltZUluMjRIciA9IHRoaXMuZnJlcXVlbmN5U2VydmljZS50aW1lRnJvbTEyaFRvMjRoKFxyXG4gICAgICB0aGlzLnllYXJseUludGVydmFsXHJcbiAgICApO1xyXG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLmxpZmVjeWNsZURldGFpbHMgPSB0aGlzLmxpZmVjeWNsZURldGFpbHM7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8uc3RhcnRGcm9tID0gdGhpcy5zdGFydERhdGU7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8ucmVwb3J0SWQgPSAwO1xyXG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLmZhaWxlZF9hZnRlcl9kYXlzID0gdGhpcy5hbm51YWxseUV4dGVuc2lvbjtcclxuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5jYW5fYXNzZXNzX2JlZm9yZV9kYXlzID0gdGhpcy5hbm51YWxXaW5kb3dPcGVuO1xyXG4gICAgY29uc29sZS5sb2coJyB0aGlzLmZyZXF1ZW5jeUluZm8gPT0+JywgdGhpcy5mcmVxdWVuY3lJbmZvKTtcclxuICAgIHRoaXMuZnJlcXVlbmN5RGV0YWlscy5lbWl0KHRoaXMuZnJlcXVlbmN5SW5mbyk7XHJcbiAgfVxyXG5cclxuICBnZXRGcmVxdWVuY3lQbGFjZWhvbGRlcih5ZWFybHlJbnB1dDogYW55KSB7XHJcbiAgICBsZXQgcGxhY2Vob2xkZXIgPSAnJztcclxuICAgIGlmICh5ZWFybHlJbnB1dCA9PT0gMSkge1xyXG4gICAgICBwbGFjZWhvbGRlciA9IHRoaXMuZ2V0UGxhY2Vob2xkZXJGb3JTdDIoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHBsYWNlaG9sZGVyID0gdGhpcy5nZXRQbGFjZWhvbGRlckZvckd0MSgpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHBsYWNlaG9sZGVyO1xyXG4gIH1cclxuXHJcbiAgLy8gaWYgeWVhcmx5SW5wdXQgaXMgc21hbGxlciB0aGFuIDIgdGhlbiB0aGlzIGZ1bmN0aW9uIHdpbGwgY2FsbGVkXHJcbiAgZ2V0UGxhY2Vob2xkZXJGb3JTdDIoKSB7XHJcbiAgICBsZXQgcGxhY2Vob2xkZXIgPSAnJztcclxuICAgIGlmICh0aGlzLnllYXJseURheSA9PT0gMSkge1xyXG4gICAgICBwbGFjZWhvbGRlciA9XHJcbiAgICAgICAgJzFzdCBvZiBldmVyeSAnICtcclxuICAgICAgICB0aGlzLnNob3J0TW9udGhbdGhpcy55ZWFybHlTZWxlY3RlZF0gK1xyXG4gICAgICAgICcgYnkgJyArXHJcbiAgICAgICAgdGhpcy55ZWFybHlJbnRlcnZhbDtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnllYXJseURheSA9PT0gMikge1xyXG4gICAgICBwbGFjZWhvbGRlciA9XHJcbiAgICAgICAgJzJuZCBvZiBldmVyeSAnICtcclxuICAgICAgICB0aGlzLnNob3J0TW9udGhbdGhpcy55ZWFybHlTZWxlY3RlZF0gK1xyXG4gICAgICAgICcgYnkgJyArXHJcbiAgICAgICAgdGhpcy55ZWFybHlJbnRlcnZhbDtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnllYXJseURheSA9PT0gMykge1xyXG4gICAgICBwbGFjZWhvbGRlciA9XHJcbiAgICAgICAgJzNyZCBvZiBldmVyeSAnICtcclxuICAgICAgICB0aGlzLnNob3J0TW9udGhbdGhpcy55ZWFybHlTZWxlY3RlZF0gK1xyXG4gICAgICAgICcgYnkgJyArXHJcbiAgICAgICAgdGhpcy55ZWFybHlJbnRlcnZhbDtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnllYXJseURheSA+IDMpIHtcclxuICAgICAgcGxhY2Vob2xkZXIgPVxyXG4gICAgICAgIHRoaXMueWVhcmx5RGF5ICtcclxuICAgICAgICAndGggb2YgZXZlcnkgJyArXHJcbiAgICAgICAgdGhpcy5zaG9ydE1vbnRoW3RoaXMueWVhcmx5U2VsZWN0ZWRdICtcclxuICAgICAgICAnIGJ5ICcgK1xyXG4gICAgICAgIHRoaXMueWVhcmx5SW50ZXJ2YWw7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy55ZWFybHlEYXkgPT09IDMxIHx8IHRoaXMueWVhcmx5RGF5ID09PSAyMSkge1xyXG4gICAgICBwbGFjZWhvbGRlciA9XHJcbiAgICAgICAgdGhpcy55ZWFybHlEYXkgK1xyXG4gICAgICAgICdzdCBvZiBldmVyeSAnICtcclxuICAgICAgICB0aGlzLnNob3J0TW9udGhbdGhpcy55ZWFybHlTZWxlY3RlZF0gK1xyXG4gICAgICAgICcgYnkgJyArXHJcbiAgICAgICAgdGhpcy55ZWFybHlJbnRlcnZhbDtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnllYXJseURheSA9PT0gMjIpIHtcclxuICAgICAgcGxhY2Vob2xkZXIgPVxyXG4gICAgICAgIHRoaXMueWVhcmx5RGF5ICtcclxuICAgICAgICAnbmQgb2YgZXZlcnkgJyArXHJcbiAgICAgICAgdGhpcy5zaG9ydE1vbnRoW3RoaXMueWVhcmx5U2VsZWN0ZWRdICtcclxuICAgICAgICAnIGJ5ICcgK1xyXG4gICAgICAgIHRoaXMueWVhcmx5SW50ZXJ2YWw7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy55ZWFybHlEYXkgPT09IDIzKSB7XHJcbiAgICAgIHBsYWNlaG9sZGVyID1cclxuICAgICAgICB0aGlzLnllYXJseURheSArXHJcbiAgICAgICAgJ3JkIG9mIGV2ZXJ5ICcgK1xyXG4gICAgICAgIHRoaXMuc2hvcnRNb250aFt0aGlzLnllYXJseVNlbGVjdGVkXSArXHJcbiAgICAgICAgJyBieSAnICtcclxuICAgICAgICB0aGlzLnllYXJseUludGVydmFsO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHBsYWNlaG9sZGVyO1xyXG4gIH1cclxuXHJcbiAgLy8gaWYgeWVhcmx5SW5wdXQgaXMgZ3JlYXRlciB0aGFuIDEgdGhlbiB0aGlzIGZ1bmN0aW9uIHdpbGwgY2FsbGVkXHJcbiAgZ2V0UGxhY2Vob2xkZXJGb3JHdDEoKSB7XHJcbiAgICBsZXQgcGxhY2Vob2xkZXIgPSAnJztcclxuICAgIGlmICh0aGlzLnllYXJseURheSA9PT0gMSkge1xyXG4gICAgICBwbGFjZWhvbGRlciA9XHJcbiAgICAgICAgJzFzdCBvZiAnICtcclxuICAgICAgICB0aGlzLnNob3J0TW9udGhbdGhpcy55ZWFybHlTZWxlY3RlZF0gK1xyXG4gICAgICAgICcsIEludGVydmFsOiBldmVyeSAnICtcclxuICAgICAgICB0aGlzLnllYXJseUlucHV0ICtcclxuICAgICAgICAnIHllYXJzIGJ5ICcgK1xyXG4gICAgICAgIHRoaXMueWVhcmx5SW50ZXJ2YWw7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy55ZWFybHlEYXkgPT09IDIpIHtcclxuICAgICAgcGxhY2Vob2xkZXIgPVxyXG4gICAgICAgICcybmQgb2YgJyArXHJcbiAgICAgICAgdGhpcy5zaG9ydE1vbnRoW3RoaXMueWVhcmx5U2VsZWN0ZWRdICtcclxuICAgICAgICAnLCBJbnRlcnZhbDogZXZlcnkgJyArXHJcbiAgICAgICAgdGhpcy55ZWFybHlJbnB1dCArXHJcbiAgICAgICAgJyB5ZWFycyBieSAnICtcclxuICAgICAgICB0aGlzLnllYXJseUludGVydmFsO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMueWVhcmx5RGF5ID09PSAzKSB7XHJcbiAgICAgIHBsYWNlaG9sZGVyID1cclxuICAgICAgICAnM3JkIG9mICcgK1xyXG4gICAgICAgIHRoaXMuc2hvcnRNb250aFt0aGlzLnllYXJseVNlbGVjdGVkXSArXHJcbiAgICAgICAgJywgSW50ZXJ2YWw6IGV2ZXJ5ICcgK1xyXG4gICAgICAgIHRoaXMueWVhcmx5SW5wdXQgK1xyXG4gICAgICAgICcgeWVhcnMgYnkgJyArXHJcbiAgICAgICAgdGhpcy55ZWFybHlJbnRlcnZhbDtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnllYXJseURheSA+IDMpIHtcclxuICAgICAgcGxhY2Vob2xkZXIgPVxyXG4gICAgICAgIHRoaXMueWVhcmx5RGF5ICtcclxuICAgICAgICAndGggb2YgJyArXHJcbiAgICAgICAgdGhpcy5zaG9ydE1vbnRoW3RoaXMueWVhcmx5U2VsZWN0ZWRdICtcclxuICAgICAgICAnLCBJbnRlcnZhbDogZXZlcnkgJyArXHJcbiAgICAgICAgdGhpcy55ZWFybHlJbnB1dCArXHJcbiAgICAgICAgJyB5ZWFycyBieSAnICtcclxuICAgICAgICB0aGlzLnllYXJseUludGVydmFsO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMueWVhcmx5RGF5ID09PSAzMSB8fCB0aGlzLnllYXJseURheSA9PT0gMjEpIHtcclxuICAgICAgcGxhY2Vob2xkZXIgPVxyXG4gICAgICAgIHRoaXMueWVhcmx5RGF5ICtcclxuICAgICAgICAnc3Qgb2YgJyArXHJcbiAgICAgICAgdGhpcy5zaG9ydE1vbnRoW3RoaXMueWVhcmx5U2VsZWN0ZWRdICtcclxuICAgICAgICAnLCBJbnRlcnZhbDogZXZlcnkgJyArXHJcbiAgICAgICAgdGhpcy55ZWFybHlJbnB1dCArXHJcbiAgICAgICAgJyB5ZWFycyBieSAnICtcclxuICAgICAgICB0aGlzLnllYXJseUludGVydmFsO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMueWVhcmx5RGF5ID09PSAyMikge1xyXG4gICAgICBwbGFjZWhvbGRlciA9XHJcbiAgICAgICAgdGhpcy55ZWFybHlEYXkgK1xyXG4gICAgICAgICduZCBvZiAnICtcclxuICAgICAgICB0aGlzLnNob3J0TW9udGhbdGhpcy55ZWFybHlTZWxlY3RlZF0gK1xyXG4gICAgICAgICcsIEludGVydmFsOiBldmVyeSAnICtcclxuICAgICAgICB0aGlzLnllYXJseUlucHV0ICtcclxuICAgICAgICAnIHllYXJzIGJ5ICcgK1xyXG4gICAgICAgIHRoaXMueWVhcmx5SW50ZXJ2YWw7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy55ZWFybHlEYXkgPT09IDIzKSB7XHJcbiAgICAgIHBsYWNlaG9sZGVyID1cclxuICAgICAgICB0aGlzLnllYXJseURheSArXHJcbiAgICAgICAgJ3JkIG9mICcgK1xyXG4gICAgICAgIHRoaXMuc2hvcnRNb250aFt0aGlzLnllYXJseVNlbGVjdGVkXSArXHJcbiAgICAgICAgJywgSW50ZXJ2YWw6IGV2ZXJ5ICcgK1xyXG4gICAgICAgIHRoaXMueWVhcmx5SW5wdXQgK1xyXG4gICAgICAgICcgeWVhcnMgYnkgJyArXHJcbiAgICAgICAgdGhpcy55ZWFybHlJbnRlcnZhbDtcclxuICAgIH1cclxuICAgIHJldHVybiBwbGFjZWhvbGRlcjtcclxuICB9XHJcbn1cclxuIiwiXHJcbjxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktZGlhbG9nLWFubnVhbFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHQgdngtdHQtdXBwZXJjYXNlIHZ4LW1iLTFcIj5SRUFTU0VTU01FTlQgRlJFUVVFTkNZOjwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1kaWFsb2ctYW5udWFsLWl0ZW0gdngtbWItNVwiPlxyXG4gICAgICAgIDxhcHAtZnJlcXVlbmN5LWRpYWxvZy10b3BcclxuICAgICAgICAgICAgW2lkXT1cIjVcIlxyXG4gICAgICAgICAgICBbaW5wdXRUaW1lXT1cInllYXJseUludGVydmFsXCJcclxuICAgICAgICAgICAgW29jY3VycmVuY2VGaXJzdF09XCJ5ZWFybHlJbnB1dFwiXHJcbiAgICAgICAgICAgIFt5ZWFybHlEYXldPVwieWVhcmx5RGF5XCJcclxuICAgICAgICAgICAgW2ZyZXF1ZW5jeVR5cGVdPVwiMlwiXHJcbiAgICAgICAgICAgICh0aW1lQ2hhbmdlZCk9XCJvblRpbWVDaGFuZ2VkKCRldmVudClcIlxyXG4gICAgICAgICAgICAodmFsdWVDaGFuZ2VkRmlyc3QpPVwidmFsdWVDaGFuZ2VkRmlyc3QoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICh5ZWFybHlEYXRlQ2hhbmdlZCk9XCJkYXRlQ2hhbmdlKCRldmVudClcIj5cclxuICAgICAgICA8L2FwcC1mcmVxdWVuY3ktZGlhbG9nLXRvcD5cclxuICAgICAgICA8YXBwLWZyZXF1ZW5jeS1kaWFsb2ctcmFkaW8tbGlzdFxyXG4gICAgICAgICAgICBbcmFkaW9MaXN0XT1cIm1vbnRoTGlzdFwiXHJcbiAgICAgICAgICAgIFtzZWxlY3RlZEluZGV4XT1cInllYXJseVNlbGVjdGVkXCJcclxuICAgICAgICAgICAgKHNlbGVjdGVkUmFkaW8pPVwic2VsZWN0ZWRNb250aCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgW25hbWVdPVwiJ2FubnVhbCdcIj5cclxuICAgICAgICA8L2FwcC1mcmVxdWVuY3ktZGlhbG9nLXJhZGlvLWxpc3Q+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxhcHAtZnJlcXVlbmN5LWRpYWxvZy1kdWUtZGF0ZVxyXG4gICAgICBbcGFnZU5hbWVdPVwiJ3llYXJseSdcIlxyXG4gICAgICBbbW9kZV09XCJtb2RlXCJcclxuICAgICAgW2lkXT1cIjVcIlxyXG4gICAgICBbY29tcGxldGVkVmFsdWVdPVwieWVhcmx5V2luZG93XCJcclxuICAgICAgW3dpbmRvd0Nsb3Nlc109XCJhbm51YWxseUV4dGVuc2lvblwiXHJcbiAgICAgIFthc3Nlc3NXaW5kb3dPcGVuXT1cImFubnVhbFdpbmRvd09wZW5cIlxyXG4gICAgICAodmFsdWVDaGFuZ2UpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgKHdpbmRvd09wZW5DaGFuZ2UpPVwib25XaW5kb3dPcGVuQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAoZXh0ZW5zaW9uVmFsdWVDaGFuZ2UpPVwib25FeHRlbnNpb25DaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgID5cclxuICAgIDwvYXBwLWZyZXF1ZW5jeS1kaWFsb2ctZHVlLWRhdGU+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -22,6 +22,8 @@ export class FrequencyDialogBiannualComponent {
|
|
|
22
22
|
this.monthNameArray = [];
|
|
23
23
|
this.shortMonth = [];
|
|
24
24
|
this.selectedMonthly = [];
|
|
25
|
+
this.biannuallyExtension = 5;
|
|
26
|
+
this.biannualWindowOpen = 30;
|
|
25
27
|
this.mode = '';
|
|
26
28
|
this.startDate = Math.floor(Date.now() / 1000);
|
|
27
29
|
this.lifecycleDetails = '0000-00-00~~0';
|
|
@@ -31,7 +33,6 @@ export class FrequencyDialogBiannualComponent {
|
|
|
31
33
|
this.frequencyInfo = Object.assign(this.frequencyService.frequencyInfo);
|
|
32
34
|
this.monthNameArray = [...new Set(this.frequencyService.monthArray)];
|
|
33
35
|
this.shortMonth = this.frequencyService.monthArray.map((month) => month.substring(0, 3));
|
|
34
|
-
console.log('this.frequencyData ==>', this.frequencyData);
|
|
35
36
|
if (this.frequencyData?.pattern != '' &&
|
|
36
37
|
parseInt(this.frequencyData?.pattern.split('~')[0]) === 9) {
|
|
37
38
|
this.populateFrequency();
|
|
@@ -43,31 +44,15 @@ export class FrequencyDialogBiannualComponent {
|
|
|
43
44
|
this.biannualSelected = patternInfo[2]
|
|
44
45
|
.split(',')
|
|
45
46
|
.map((ele) => Number(ele) - 1);
|
|
46
|
-
// const lifecycleInfo = this.frequencyData?.lifecycle.split('~~');
|
|
47
47
|
this.biannualInterval = this.frequencyData?.failedTime;
|
|
48
48
|
this.biannualWindow = this.frequencyData?.window;
|
|
49
49
|
this.biannualInput = patternInfo[1];
|
|
50
|
-
// if(Number(lifecycleInfo[1]) > 0) {
|
|
51
|
-
// this.biannualLifecycleOccurance = Number(lifecycleInfo[1]);
|
|
52
|
-
// }
|
|
53
50
|
this.biannualLifecycleOccurance = Number(patternInfo[1]);
|
|
54
51
|
this.biannualLifeCycleStart = new Date(this.frequencyData?.startDate * 1000);
|
|
55
52
|
this.biannualFailed = this.frequencyData?.failed;
|
|
56
|
-
// if( lifecycleInfo[0] !== '0000-00-00') {
|
|
57
|
-
// const dateSelected = moment(lifecycleInfo[0] + ' 11:59 pm', 'DD-MMMM-YYYY HH:mm a').unix()
|
|
58
|
-
// this.biannualLifeCycleEndTime = new Date(dateSelected * 1000);
|
|
59
|
-
// }
|
|
60
53
|
this.lifecycleDetails = this.frequencyData?.lifecycle;
|
|
61
|
-
// if( this.frequencyData?.lifecycle == '0000-00-00~~0') {
|
|
62
|
-
// this.biannualSeletedLifecycleType = 2;
|
|
63
|
-
// } else if(lifecycleInfo[0] !== '0000-00-00') {
|
|
64
|
-
// this.biannualSeletedLifecycleType = 0;
|
|
65
|
-
// } else {
|
|
66
|
-
// this.biannualSeletedLifecycleType = 1;
|
|
67
|
-
// }
|
|
68
54
|
}
|
|
69
55
|
onMonthSelected(event) {
|
|
70
|
-
console.log('event', event);
|
|
71
56
|
if (event.checked) {
|
|
72
57
|
this.biannualSelected.push(event.index);
|
|
73
58
|
}
|
|
@@ -77,12 +62,10 @@ export class FrequencyDialogBiannualComponent {
|
|
|
77
62
|
this.getBiannualFrequency();
|
|
78
63
|
}
|
|
79
64
|
valueChangedFirst(event) {
|
|
80
|
-
console.log('event ==>', event);
|
|
81
65
|
this.biannualInput = event.value;
|
|
82
66
|
this.getBiannualFrequency();
|
|
83
67
|
}
|
|
84
68
|
onTimeChanged(event) {
|
|
85
|
-
console.log('time event =>', event);
|
|
86
69
|
this.biannualInterval = event;
|
|
87
70
|
this.getBiannualFrequency();
|
|
88
71
|
}
|
|
@@ -95,8 +78,19 @@ export class FrequencyDialogBiannualComponent {
|
|
|
95
78
|
}
|
|
96
79
|
this.getBiannualFrequency();
|
|
97
80
|
}
|
|
81
|
+
onWindowOpenChange(event) {
|
|
82
|
+
if (event?.type?.toLowerCase() === 'window open') {
|
|
83
|
+
this.biannualWindowOpen = event?.value;
|
|
84
|
+
}
|
|
85
|
+
this.getBiannualFrequency();
|
|
86
|
+
}
|
|
87
|
+
onExtensionChange(event) {
|
|
88
|
+
if (event?.type?.toLowerCase() === 'extension') {
|
|
89
|
+
this.biannuallyExtension = event.value;
|
|
90
|
+
}
|
|
91
|
+
this.getBiannualFrequency();
|
|
92
|
+
}
|
|
98
93
|
lifecycleChange(event) {
|
|
99
|
-
console.log('event==>', event);
|
|
100
94
|
switch (event.type) {
|
|
101
95
|
case 0:
|
|
102
96
|
this.lifecycleDetails = event.endsBy + '~~0';
|
|
@@ -109,22 +103,17 @@ export class FrequencyDialogBiannualComponent {
|
|
|
109
103
|
break;
|
|
110
104
|
}
|
|
111
105
|
if (event.startFrom.toString().length > 10) {
|
|
112
|
-
console.log('start 1111');
|
|
113
106
|
this.startDate = Math.floor(event.startFrom / 1000);
|
|
114
107
|
}
|
|
115
108
|
else {
|
|
116
|
-
console.log('start 11112222');
|
|
117
109
|
this.startDate = Math.floor(event.startFrom);
|
|
118
110
|
}
|
|
119
111
|
let endByDate = Math.floor(this.frequencyService.changeTimeZone(new Date())?.getTime() / 1000 +
|
|
120
112
|
86400000);
|
|
121
|
-
console.log('strat date ====>', this.startDate);
|
|
122
|
-
console.log('end date', endByDate);
|
|
123
113
|
if (event.type === 0) {
|
|
124
114
|
endByDate = event.endsBy
|
|
125
115
|
? moment(event.endsBy + ' 00:00:00', 'DD-MMM-YYYY HH:mm:ss').unix()
|
|
126
116
|
: endByDate;
|
|
127
|
-
console.log('endByDate', endByDate);
|
|
128
117
|
}
|
|
129
118
|
this.frequencyInfo.failed_time_utc = endByDate;
|
|
130
119
|
this.getBiannualFrequency();
|
|
@@ -143,6 +132,8 @@ export class FrequencyDialogBiannualComponent {
|
|
|
143
132
|
this.frequencyInfo.startFrom = this.startDate;
|
|
144
133
|
this.frequencyInfo.reportId = 0;
|
|
145
134
|
this.frequencyInfo.placeholder = this.getFrequencyPlaceholder(Number(this.biannualInput));
|
|
135
|
+
this.frequencyInfo.failed_after_days = this.biannuallyExtension;
|
|
136
|
+
this.frequencyInfo.can_assess_before_days = this.biannualWindowOpen;
|
|
146
137
|
this.frequencyDetails.emit(this.frequencyInfo);
|
|
147
138
|
console.log(' this.frequencyInfo ==>', this.frequencyInfo);
|
|
148
139
|
}
|
|
@@ -208,10 +199,10 @@ export class FrequencyDialogBiannualComponent {
|
|
|
208
199
|
}
|
|
209
200
|
}
|
|
210
201
|
FrequencyDialogBiannualComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FrequencyDialogBiannualComponent, deps: [{ token: i1.FrequencyService }], target: i0.ɵɵFactoryTarget.Component });
|
|
211
|
-
FrequencyDialogBiannualComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: FrequencyDialogBiannualComponent, selector: "app-frequency-dialog-biannual", inputs: { mode: "mode", startDate: "startDate", frequencyData: "frequencyData" }, outputs: { frequencyDetails: "frequencyDetails" }, ngImport: i0, template: "
|
|
202
|
+
FrequencyDialogBiannualComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: FrequencyDialogBiannualComponent, selector: "app-frequency-dialog-biannual", inputs: { mode: "mode", startDate: "startDate", frequencyData: "frequencyData" }, outputs: { frequencyDetails: "frequencyDetails" }, ngImport: i0, template: "\r\n<div class=\"frequency-dialog-biannual\">\r\n <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">REASSESSMENT FREQUENCY:</div>\r\n <div class=\"frequency-dialog-biannual-item vx-mb-5\">\r\n <app-frequency-dialog-top\r\n [id]=\"4\"\r\n [inputTime]=\"biannualInterval\"\r\n [occurrenceFirst]=\"biannualInput\"\r\n [frequencyType]=\"4\"\r\n (timeChanged)=\"onTimeChanged($event)\"\r\n (valueChangedFirst)=\"valueChangedFirst($event)\"\r\n ></app-frequency-dialog-top>\r\n <app-frequency-dialog-checkbox-list\r\n [id]=\"4\"\r\n [listArray]=\"monthNameArray\"\r\n [selectedIndex]=\"biannualSelected\"\r\n (selectedCheckbox)=\"onMonthSelected($event)\">\r\n </app-frequency-dialog-checkbox-list>\r\n </div>\r\n <app-frequency-dialog-due-date\r\n [pageName]=\"'biannual'\"\r\n [mode]=\"mode\"\r\n [id]=\"4\"\r\n [completedValue]=\"biannualWindow\"\r\n [windowCloses]=\"biannuallyExtension\"\r\n [assessWindowOpen]=\"biannualWindowOpen\"\r\n (valueChange)=\"onValueChange($event)\"\r\n (windowOpenChange)=\"onWindowOpenChange($event)\"\r\n (extensionValueChange)=\"onExtensionChange($event)\"\r\n ></app-frequency-dialog-due-date>\r\n</div>\r\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/mixin/mixin.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";::ng-deep .frequency-dialog-biannual-item{border-radius:.25rem;border:1px solid #f1f1f1}\n"], dependencies: [{ kind: "component", type: i2.FrequencyDialogTopComponent, selector: "app-frequency-dialog-top", inputs: ["occurrenceFirst", "id", "inputTime", "frequencyType", "yearlyDay"], outputs: ["valueChangedFirst", "nextDisable", "timeChanged", "yearlyDateChanged"] }, { kind: "component", type: i3.FrequencyDialogDueDateComponent, selector: "app-frequency-dialog-due-date", inputs: ["mode", "completedValue", "deactivateValue", "isDeactivated", "id", "pageName", "windowCloses", "assessWindowOpen"], outputs: ["valueChange", "windowOpenChange", "extensionValueChange"] }, { kind: "component", type: i4.FrequencyDialogCheckboxListComponent, selector: "app-frequency-dialog-checkbox-list", inputs: ["id", "listArray", "selectedIndex"], outputs: ["selectedCheckbox"] }] });
|
|
212
203
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FrequencyDialogBiannualComponent, decorators: [{
|
|
213
204
|
type: Component,
|
|
214
|
-
args: [{ selector: 'app-frequency-dialog-biannual', template: "
|
|
205
|
+
args: [{ selector: 'app-frequency-dialog-biannual', template: "\r\n<div class=\"frequency-dialog-biannual\">\r\n <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">REASSESSMENT FREQUENCY:</div>\r\n <div class=\"frequency-dialog-biannual-item vx-mb-5\">\r\n <app-frequency-dialog-top\r\n [id]=\"4\"\r\n [inputTime]=\"biannualInterval\"\r\n [occurrenceFirst]=\"biannualInput\"\r\n [frequencyType]=\"4\"\r\n (timeChanged)=\"onTimeChanged($event)\"\r\n (valueChangedFirst)=\"valueChangedFirst($event)\"\r\n ></app-frequency-dialog-top>\r\n <app-frequency-dialog-checkbox-list\r\n [id]=\"4\"\r\n [listArray]=\"monthNameArray\"\r\n [selectedIndex]=\"biannualSelected\"\r\n (selectedCheckbox)=\"onMonthSelected($event)\">\r\n </app-frequency-dialog-checkbox-list>\r\n </div>\r\n <app-frequency-dialog-due-date\r\n [pageName]=\"'biannual'\"\r\n [mode]=\"mode\"\r\n [id]=\"4\"\r\n [completedValue]=\"biannualWindow\"\r\n [windowCloses]=\"biannuallyExtension\"\r\n [assessWindowOpen]=\"biannualWindowOpen\"\r\n (valueChange)=\"onValueChange($event)\"\r\n (windowOpenChange)=\"onWindowOpenChange($event)\"\r\n (extensionValueChange)=\"onExtensionChange($event)\"\r\n ></app-frequency-dialog-due-date>\r\n</div>\r\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/mixin/mixin.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";::ng-deep .frequency-dialog-biannual-item{border-radius:.25rem;border:1px solid #f1f1f1}\n"] }]
|
|
215
206
|
}], ctorParameters: function () { return [{ type: i1.FrequencyService }]; }, propDecorators: { mode: [{
|
|
216
207
|
type: Input
|
|
217
208
|
}], startDate: [{
|
|
@@ -221,4 +212,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
221
212
|
}], frequencyDetails: [{
|
|
222
213
|
type: Output
|
|
223
214
|
}] } });
|
|
224
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlcXVlbmN5LWRpYWxvZy1iaWFubnVhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2ZyZXF1ZW5jeS1kaWFsb2cvZnJlcXVlbmN5LWRpYWxvZy1iaWFubnVhbC9mcmVxdWVuY3ktZGlhbG9nLWJpYW5udWFsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3NoYXJlZENvbXBvbmVudHMvZnJlcXVlbmN5LWRpYWxvZy9mcmVxdWVuY3ktZGlhbG9nLWJpYW5udWFsL2ZyZXF1ZW5jeS1kaWFsb2ctYmlhbm51YWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLE1BQU0sTUFBTSxlQUFlLENBQUM7Ozs7OztBQVFuQyxNQUFNLE9BQU8sZ0NBQWdDO0lBMkIzQyxZQUFvQixnQkFBa0M7UUFBbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQTFCdEQscUJBQWdCLEdBQUcsVUFBVSxDQUFDO1FBQzlCLGtCQUFhLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUM7UUFDNUUsbUJBQWMsR0FBRyxDQUFDLENBQUM7UUFDbkIsbUJBQWMsR0FBRyxFQUFFLENBQUM7UUFDcEIsZ0JBQVcsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQztRQUMxRSwyQkFBc0IsR0FBRyxJQUFJLENBQUMs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Y0FBYztvQkFDZCxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztvQkFDeEIsTUFBTTtvQkFDTixJQUFJLENBQUMsZ0JBQWdCLENBQUM7U0FDekI7UUFDRCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDOzs2SEEvTlUsZ0NBQWdDO2lIQUFoQyxnQ0FBZ0MsME1DVDdDLDgrREF1Q007MkZEOUJPLGdDQUFnQztrQkFMNUMsU0FBUzsrQkFDRSwrQkFBK0I7dUdBdUJoQyxJQUFJO3NCQUFaLEtBQUs7Z0JBRUcsU0FBUztzQkFBakIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUdJLGdCQUFnQjtzQkFBekIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQvbW9tZW50JztcclxuaW1wb3J0IHsgRnJlcXVlbmN5U2VydmljZSB9IGZyb20gJy4uLy4uL2ZyZXF1ZW5jeS9mcmVxdWVuY3kuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1mcmVxdWVuY3ktZGlhbG9nLWJpYW5udWFsJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZnJlcXVlbmN5LWRpYWxvZy1iaWFubnVhbC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZnJlcXVlbmN5LWRpYWxvZy1iaWFubnVhbC5jb21wb25lbnQubGVzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRnJlcXVlbmN5RGlhbG9nQmlhbm51YWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGJpYW5udWFsSW50ZXJ2YWwgPSAnMTE6MDAgcG0nO1xyXG4gIGJpYW5udWFsSW5wdXQgPSB0aGlzLmZyZXF1ZW5jeVNlcnZpY2UuY2hhbmdlVGltZVpvbmUobmV3IERhdGUoKSk/LmdldERhdGUoKTtcclxuICBiaWFubnVhbEZhaWxlZCA9IDU7XHJcbiAgYmlhbm51YWxXaW5kb3cgPSAzMDtcclxuICBiaWFubnVhbERheSA9IHRoaXMuZnJlcXVlbmN5U2VydmljZS5jaGFuZ2VUaW1lWm9uZShuZXcgRGF0ZSgpKT8uZ2V0RGF0ZSgpO1xyXG4gIGJpYW5udWFsTGlmZUN5Y2xlU3RhcnQgPSB0aGlzLmZyZXF1ZW5jeVNlcnZpY2UuY2hhbmdlVGltZVpvbmUobmV3IERhdGUoKSk7XHJcbiAgYmlhbm51YWxMaWZlQ3ljbGVFbmRUaW1lID0gbmV3IERhdGUoXHJcbiAgICB0aGlzLmJpYW5udWFsTGlmZUN5Y2xlU3RhcnQuZ2V0VGltZSgpICsgODY0MDAwMDBcclxuICApO1xyXG4gIGJpYW5udWFsTGlmZWN5Y2xlT2NjdXJhbmNlID0gMTA7XHJcbiAgYmlhbm51YWxTZWxldGVkTGlmZWN5Y2xlVHlwZSA9IDI7XHJcbiAgYmlhbm51YWxTZWxlY3RlZDogQXJyYXk8bnVtYmVyPiA9IFtdO1xyXG4gIGJpYW5udWFsTGlmZWN5Y2xlID0gZmFsc2U7XHJcbiAgZnJlcXVlbmN5SW5mbzogYW55O1xyXG4gIG1vbnRoTmFtZUFycmF5OiBBcnJheTxzdHJpbmc+ID0gW107XHJcbiAgc2hvcnRNb250aDogQXJyYXk8c3RyaW5nPiA9IFtdO1xyXG4gIHNlbGVjdGVkTW9udGhseTogQXJyYXk8bnVtYmVyPiA9IFtdO1xyXG5cclxuICBASW5wdXQoKSBtb2RlOiBhbnkgPSAnJztcclxuXHJcbiAgQElucHV0KCkgc3RhcnREYXRlID0gTWF0aC5mbG9vcihEYXRlLm5vdygpIC8gMTAwMCk7XHJcbiAgQElucHV0KCkgZnJlcXVlbmN5RGF0YTogYW55O1xyXG4gIGxpZmVjeWNsZURldGFpbHM6IGFueSA9ICcwMDAwLTAwLTAwfn4wJztcclxuXHJcbiAgQE91dHB1dCgpIGZyZXF1ZW5jeURldGFpbHMgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmcmVxdWVuY3lTZXJ2aWNlOiBGcmVxdWVuY3lTZXJ2aWNlKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZnJlcXVlbmN5SW5mbyA9IE9iamVjdC5hc3NpZ24odGhpcy5mcmVxdWVuY3lTZXJ2aWNlLmZyZXF1ZW5jeUluZm8pO1xyXG4gICAgdGhpcy5tb250aE5hbWVBcnJheSA9IFsuLi5uZXcgU2V0KHRoaXMuZnJlcXVlbmN5U2VydmljZS5tb250aEFycmF5KV07XHJcbiAgICB0aGlzLnNob3J0TW9udGggPSB0aGlzLmZyZXF1ZW5jeVNlcnZpY2UubW9udGhBcnJheS5tYXAoKG1vbnRoKSA9PlxyXG4gICAgICBtb250aC5zdWJzdHJpbmcoMCwgMylcclxuICAgICk7XHJcbiAgICBjb25zb2xlLmxvZygndGhpcy5mcmVxdWVuY3lEYXRhID09PicsIHRoaXMuZnJlcXVlbmN5RGF0YSk7XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMuZnJlcXVlbmN5RGF0YT8ucGF0dGVybiAhPSAnJyAmJlxyXG4gICAgICBwYXJzZUludCh0aGlzLmZyZXF1ZW5jeURhdGE/LnBhdHRlcm4uc3BsaXQoJ34nKVswXSkgPT09IDlcclxuICAgICkge1xyXG4gICAgICB0aGlzLnBvcHVsYXRlRnJlcXVlbmN5KCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmdldEJpYW5udWFsRnJlcXVlbmN5KCk7XHJcbiAgfVxyXG5cclxuICBwb3B1bGF0ZUZyZXF1ZW5jeSgpIHtcclxuICAgIGNvbnN0IHBhdHRlcm5JbmZvID0gdGhpcy5mcmVxdWVuY3lEYXRhPy5wYXR0ZXJuLnNwbGl0KCd+Jyk7XHJcbiAgICB0aGlzLmJpYW5udWFsU2VsZWN0ZWQgPSBwYXR0ZXJuSW5mb1syXVxyXG4gICAgICAuc3BsaXQoJywnKVxyXG4gICAgICAubWFwKChlbGU6IGFueSkgPT4gTnVtYmVyKGVsZSkgLSAxKTtcclxuICAgIC8vIGNvbnN0IGxpZmVjeWNsZUluZm8gPSB0aGlzLmZyZXF1ZW5jeURhdGE/LmxpZmVjeWNsZS5zcGxpdCgnfn4nKTtcclxuICAgIHRoaXMuYmlhbm51YWxJbnRlcnZhbCA9IHRoaXMuZnJlcXVlbmN5RGF0YT8uZmFpbGVkVGltZTtcclxuICAgIHRoaXMuYmlhbm51YWxXaW5kb3cgPSB0aGlzLmZyZXF1ZW5jeURhdGE/LndpbmRvdztcclxuICAgIHRoaXMuYmlhbm51YWxJbnB1dCA9IHBhdHRlcm5JbmZvWzFdO1xyXG4gICAgLy8gaWYoTnVtYmVyKGxpZmVjeWNsZUluZm9bMV0pID4gMCkge1xyXG4gICAgLy8gICB0aGlzLmJpYW5udWFsTGlmZWN5Y2xlT2NjdXJhbmNlID0gTnVtYmVyKGxpZmVjeWNsZUluZm9bMV0pO1xyXG4gICAgLy8gfVxyXG5cclxuICAgIHRoaXMuYmlhbm51YWxMaWZlY3ljbGVPY2N1cmFuY2UgPSBOdW1iZXIocGF0dGVybkluZm9bMV0pO1xyXG4gICAgdGhpcy5iaWFubnVhbExpZmVDeWNsZVN0YXJ0ID0gbmV3IERhdGUoXHJcbiAgICAgIHRoaXMuZnJlcXVlbmN5RGF0YT8uc3RhcnREYXRlICogMTAwMFxyXG4gICAgKTtcclxuICAgIHRoaXMuYmlhbm51YWxGYWlsZWQgPSB0aGlzLmZyZXF1ZW5jeURhdGE/LmZhaWxlZDtcclxuICAgIC8vIGlmKCBsaWZlY3ljbGVJbmZvWzBdICE9PSAnMDAwMC0wMC0wMCcpIHtcclxuICAgIC8vICAgY29uc3QgZGF0ZVNlbGVjdGVkID0gbW9tZW50KGxpZmVjeWNsZUluZm9bMF0gKyAnIDExOjU5IHBtJywgJ0RELU1NTU0tWVlZWSBISDptbSBhJykudW5peCgpXHJcbiAgICAvLyAgIHRoaXMuYmlhbm51YWxMaWZlQ3ljbGVFbmRUaW1lID0gbmV3IERhdGUoZGF0ZVNlbGVjdGVkICogMTAwMCk7XHJcbiAgICAvLyB9XHJcbiAgICB0aGlzLmxpZmVjeWNsZURldGFpbHMgPSB0aGlzLmZyZXF1ZW5jeURhdGE/LmxpZmVjeWNsZTtcclxuICAgIC8vIGlmKCAgdGhpcy5mcmVxdWVuY3lEYXRhPy5saWZlY3ljbGUgPT0gJzAwMDAtMDAtMDB+fjAnKSB7XHJcbiAgICAvLyAgIHRoaXMuYmlhbm51YWxTZWxldGVkTGlmZWN5Y2xlVHlwZSA9IDI7XHJcbiAgICAvLyB9IGVsc2UgaWYobGlmZWN5Y2xlSW5mb1swXSAhPT0gJzAwMDAtMDAtMDAnKSB7XHJcbiAgICAvLyAgIHRoaXMuYmlhbm51YWxTZWxldGVkTGlmZWN5Y2xlVHlwZSA9IDA7XHJcbiAgICAvLyB9IGVsc2Uge1xyXG4gICAgLy8gICB0aGlzLmJpYW5udWFsU2VsZXRlZExpZmVjeWNsZVR5cGUgPSAxO1xyXG4gICAgLy8gfVxyXG4gIH1cclxuXHJcbiAgb25Nb250aFNlbGVjdGVkKGV2ZW50OiBhbnkpIHtcclxuICAgIGNvbnNvbGUubG9nKCdldmVudCcsIGV2ZW50KTtcclxuICAgIGlmIChldmVudC5jaGVja2VkKSB7XHJcbiAgICAgIHRoaXMuYmlhbm51YWxTZWxlY3RlZC5wdXNoKGV2ZW50LmluZGV4KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuYmlhbm51YWxTZWxlY3RlZCA9IHRoaXMuYmlhbm51YWxTZWxlY3RlZC5maWx0ZXIoXHJcbiAgICAgICAgKGVsZSkgPT4gZWxlICE9PSBldmVudC5pbmRleFxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgdGhpcy5nZXRCaWFubnVhbEZyZXF1ZW5jeSgpO1xyXG4gIH1cclxuXHJcbiAgdmFsdWVDaGFuZ2VkRmlyc3QoZXZlbnQ6IGFueSkge1xyXG4gICAgY29uc29sZS5sb2coJ2V2ZW50ID09PicsIGV2ZW50KTtcclxuICAgIHRoaXMuYmlhbm51YWxJbnB1dCA9IGV2ZW50LnZhbHVlO1xyXG4gICAgdGhpcy5nZXRCaWFubnVhbEZyZXF1ZW5jeSgpO1xyXG4gIH1cclxuXHJcbiAgb25UaW1lQ2hhbmdlZChldmVudDogc3RyaW5nKSB7XHJcbiAgICBjb25zb2xlLmxvZygndGltZSBldmVudCA9PicsIGV2ZW50KTtcclxuICAgIHRoaXMuYmlhbm51YWxJbnRlcnZhbCA9IGV2ZW50O1xyXG4gICAgdGhpcy5nZXRCaWFubnVhbEZyZXF1ZW5jeSgpO1xyXG4gIH1cclxuXHJcbiAgb25WYWx1ZUNoYW5nZShldmVudDogYW55KSB7XHJcbiAgICBpZiAoZXZlbnQudHlwZSA9PT0gJ2NvbXBsZXRlZCcpIHtcclxuICAgICAgdGhpcy5iaWFubnVhbFdpbmRvdyA9IGV2ZW50LnZhbHVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5iaWFubnVhbEZhaWxlZCA9IGV2ZW50LnZhbHVlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5nZXRCaWFubnVhbEZyZXF1ZW5jeSgpO1xyXG4gIH1cclxuXHJcbiAgbGlmZWN5Y2xlQ2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgIGNvbnNvbGUubG9nKCdldmVudD09PicsIGV2ZW50KTtcclxuXHJcbiAgICBzd2l0Y2ggKGV2ZW50LnR5cGUpIHtcclxuICAgICAgY2FzZSAwOlxyXG4gICAgICAgIHRoaXMubGlmZWN5Y2xlRGV0YWlscyA9IGV2ZW50LmVuZHNCeSArICd+fjAnO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIDE6XHJcbiAgICAgICAgdGhpcy5saWZlY3ljbGVEZXRhaWxzID0gJzAwMDAtMDAtMDB+ficgKyBldmVudC5lbmRhZnRlcjtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAyOlxyXG4gICAgICAgIHRoaXMubGlmZWN5Y2xlRGV0YWlscyA9ICcwMDAwLTAwLTAwfn4wJztcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICAgIGlmIChldmVudC5zdGFydEZyb20udG9TdHJpbmcoKS5sZW5ndGggPiAxMCkge1xyXG4gICAgICBjb25zb2xlLmxvZygnc3RhcnQgMTExMScpO1xyXG4gICAgICB0aGlzLnN0YXJ0RGF0ZSA9IE1hdGguZmxvb3IoZXZlbnQuc3RhcnRGcm9tIC8gMTAwMCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zb2xlLmxvZygnc3RhcnQgMTExMTIyMjInKTtcclxuICAgICAgdGhpcy5zdGFydERhdGUgPSBNYXRoLmZsb29yKGV2ZW50LnN0YXJ0RnJvbSk7XHJcbiAgICB9XHJcbiAgICBsZXQgZW5kQnlEYXRlID0gTWF0aC5mbG9vcihcclxuICAgICAgdGhpcy5mcmVxdWVuY3lTZXJ2aWNlLmNoYW5nZVRpbWVab25lKG5ldyBEYXRlKCkpPy5nZXRUaW1lKCkgLyAxMDAwICtcclxuICAgICAgICA4NjQwMDAwMFxyXG4gICAgKTtcclxuICAgIGNvbnNvbGUubG9nKCdzdHJhdCBkYXRlID09PT0+JywgdGhpcy5zdGFydERhdGUpO1xyXG4gICAgY29uc29sZS5sb2coJ2VuZCBkYXRlJywgZW5kQnlEYXRlKTtcclxuICAgIGlmIChldmVudC50eXBlID09PSAwKSB7XHJcbiAgICAgIGVuZEJ5RGF0ZSA9IGV2ZW50LmVuZHNCeVxyXG4gICAgICAgID8gbW9tZW50KGV2ZW50LmVuZHNCeSArICcgMDA6MDA6MDAnLCAnREQtTU1NLVlZWVkgSEg6bW06c3MnKS51bml4KClcclxuICAgICAgICA6IGVuZEJ5RGF0ZTtcclxuICAgICAgY29uc29sZS5sb2coJ2VuZEJ5RGF0ZScsIGVuZEJ5RGF0ZSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8uZmFpbGVkX3RpbWVfdXRjID0gZW5kQnlEYXRlO1xyXG4gICAgdGhpcy5nZXRCaWFubnVhbEZyZXF1ZW5jeSgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0Qmlhbm51YWxGcmVxdWVuY3koKSB7XHJcbiAgICB0aGlzLmJpYW5udWFsU2VsZWN0ZWQgPSB0aGlzLmJpYW5udWFsU2VsZWN0ZWQuc29ydCgobjEsIG4yKSA9PiBuMSAtIG4yKTtcclxuICAgIGNvbnN0IG1vbnRoSW5kZXggPSB0aGlzLmJpYW5udWFsU2VsZWN0ZWQubWFwKChlbGUpID0+IGVsZSArIDEpO1xyXG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLnBhdHRlcm4gPVxyXG4gICAgICA5ICsgJ34nICsgdGhpcy5iaWFubnVhbElucHV0ICsgJ34nICsgbW9udGhJbmRleC5qb2luKCcsJykgKyAnfjAnO1xyXG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLmNhc2UgPSAnYmlhbm51YWwnO1xyXG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLmZhaWxlZEFmdGVyID0gdGhpcy5iaWFubnVhbEZhaWxlZDtcclxuICAgIHRoaXMuZnJlcXVlbmN5SW5mby53aW5kb3cgPSB0aGlzLmJpYW5udWFsV2luZG93O1xyXG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLnRpbWVJbjEyaHIgPSB0aGlzLmJpYW5udWFsSW50ZXJ2YWw7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8udGltZUluMjRIciA9IHRoaXMuZnJlcXVlbmN5U2VydmljZS50aW1lRnJvbTEyaFRvMjRoKFxyXG4gICAgICB0aGlzLmJpYW5udWFsSW50ZXJ2YWxcclxuICAgICk7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8ubGlmZWN5Y2xlRGV0YWlscyA9IHRoaXMubGlmZWN5Y2xlRGV0YWlscztcclxuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5zdGFydEZyb20gPSB0aGlzLnN0YXJ0RGF0ZTtcclxuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5yZXBvcnRJZCA9IDA7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8ucGxhY2Vob2xkZXIgPSB0aGlzLmdldEZyZXF1ZW5jeVBsYWNlaG9sZGVyKFxyXG4gICAgICBOdW1iZXIodGhpcy5iaWFubnVhbElucHV0KVxyXG4gICAgKTtcclxuICAgIHRoaXMuZnJlcXVlbmN5RGV0YWlscy5lbWl0KHRoaXMuZnJlcXVlbmN5SW5mbyk7XHJcbiAgICBjb25zb2xlLmxvZygnIHRoaXMuZnJlcXVlbmN5SW5mbyA9PT4nLCB0aGlzLmZyZXF1ZW5jeUluZm8pO1xyXG4gIH1cclxuXHJcbiAgZ2V0RnJlcXVlbmN5UGxhY2Vob2xkZXIoYmlhbm51YWxJbnB1dDogbnVtYmVyKSB7XHJcbiAgICBsZXQgcGxhY2Vob2xkZXIgPSAnJztcclxuICAgIGNvbnN0IHNlbGVjdGVkTW9udGggPSB0aGlzLmJpYW5udWFsU2VsZWN0ZWQubWFwKChlbGUpID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuc2hvcnRNb250aFtlbGVdO1xyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKGJpYW5udWFsSW5wdXQgPT09IDEpIHtcclxuICAgICAgcGxhY2Vob2xkZXIgPVxyXG4gICAgICAgICcxc3Qgb2YgZXZlcnkgJyArXHJcbiAgICAgICAgc2VsZWN0ZWRNb250aC5qb2luKCcsICcpICtcclxuICAgICAgICAnIGJ5ICcgK1xyXG4gICAgICAgIHRoaXMuYmlhbm51YWxJbnRlcnZhbDtcclxuICAgIH0gZWxzZSBpZiAoYmlhbm51YWxJbnB1dCA9PT0gMikge1xyXG4gICAgICBwbGFjZWhvbGRlciA9XHJcbiAgICAgICAgJzJuZCBvZiBldmVyeSAnICtcclxuICAgICAgICBzZWxlY3RlZE1vbnRoLmpvaW4oJywgJykgK1xyXG4gICAgICAgICcgYnkgJyArXHJcbiAgICAgICAgdGhpcy5iaWFubnVhbEludGVydmFsO1xyXG4gICAgfSBlbHNlIGlmIChiaWFubnVhbElucHV0ID09PSAzKSB7XHJcbiAgICAgIHBsYWNlaG9sZGVyID1cclxuICAgICAgICAnM3JkIG9mIGV2ZXJ5ICcgK1xyXG4gICAgICAgIHNlbGVjdGVkTW9udGguam9pbignLCAnKSArXHJcbiAgICAgICAgJyBieSAnICtcclxuICAgICAgICB0aGlzLmJpYW5udWFsSW50ZXJ2YWw7XHJcbiAgICB9IGVsc2UgaWYgKGJpYW5udWFsSW5wdXQgPT09IDIxIHx8IGJpYW5udWFsSW5wdXQgPT09IDMxKSB7XHJcbiAgICAgIHBsYWNlaG9sZGVyID1cclxuICAgICAgICBiaWFubnVhbElucHV0ICtcclxuICAgICAgICAnc3Qgb2YgZXZlcnkgJyArXHJcbiAgICAgICAgc2VsZWN0ZWRNb250aC5qb2luKCcsICcpICtcclxuICAgICAgICAnIGJ5ICcgK1xyXG4gICAgICAgIHRoaXMuYmlhbm51YWxJbnRlcnZhbDtcclxuICAgIH0gZWxzZSBpZiAoYmlhbm51YWxJbnB1dCA9PT0gMjIpIHtcclxuICAgICAgcGxhY2Vob2xkZXIgPVxyXG4gICAgICAgIGJpYW5udWFsSW5wdXQgK1xyXG4gICAgICAgICduZCBvZiBldmVyeSAnICtcclxuICAgICAgICBzZWxlY3RlZE1vbnRoLmpvaW4oJywgJykgK1xyXG4gICAgICAgICcgYnkgJyArXHJcbiAgICAgICAgdGhpcy5iaWFubnVhbEludGVydmFsO1xyXG4gICAgfSBlbHNlIGlmIChiaWFubnVhbElucHV0ID09PSAyMykge1xyXG4gICAgICBwbGFjZWhvbGRlciA9XHJcbiAgICAgICAgYmlhbm51YWxJbnB1dCArXHJcbiAgICAgICAgJ3JkIG9mIGV2ZXJ5ICcgK1xyXG4gICAgICAgIHNlbGVjdGVkTW9udGguam9pbignLCAnKSArXHJcbiAgICAgICAgJyBieSAnICtcclxuICAgICAgICB0aGlzLmJpYW5udWFsSW50ZXJ2YWw7XHJcbiAgICB9IGVsc2UgaWYgKGJpYW5udWFsSW5wdXQgPiAzKSB7XHJcbiAgICAgIHBsYWNlaG9sZGVyID1cclxuICAgICAgICBiaWFubnVhbElucHV0ICtcclxuICAgICAgICAndGggb2YgZXZlcnkgJyArXHJcbiAgICAgICAgc2VsZWN0ZWRNb250aC5qb2luKCcsICcpICtcclxuICAgICAgICAnIGJ5ICcgK1xyXG4gICAgICAgIHRoaXMuYmlhbm51YWxJbnRlcnZhbDtcclxuICAgIH1cclxuICAgIHJldHVybiBwbGFjZWhvbGRlcjtcclxuICB9XHJcbn1cclxuIiwiPCEtLSA8ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LWRpYWxvZy1iaWFubnVhbFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHQgdngtdHQtdXBwZXJjYXNlIHZ4LW1iLTFcIj5SRUFTU0VTU01FTlQgRlJFUVVFTkNZOjwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1kaWFsb2ctYmlhbm51YWwtaXRlbSB2eC1tYi01XCI+XHJcbiAgICAgICAgPGFwcC1mcmVxdWVuY3ktZGlhbG9nLXRvcD48L2FwcC1mcmVxdWVuY3ktZGlhbG9nLXRvcD5cclxuICAgICAgICA8YXBwLWZyZXF1ZW5jeS1kaWFsb2ctY2hlY2tib3gtbGlzdD48L2FwcC1mcmVxdWVuY3ktZGlhbG9nLWNoZWNrYm94LWxpc3Q+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJ2eC1mcy0xMSB2eC1mdy01MDAgdngtbGFiZWwtdHh0IHZ4LXR0LXVwcGVyY2FzZSB2eC1tYi0xXCI+UkVBU1NFU1NNRU5UIEVNQUlMIE5PVElGSUNBVElPTjo8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktZGlhbG9nLWJpYW5udWFsLWl0ZW0gdngtbWItNVwiPlxyXG4gICAgICAgIDxhcHAtZnJlcXVlbmN5LWRpYWxvZy1kdWUtZGF0ZT48L2FwcC1mcmVxdWVuY3ktZGlhbG9nLWR1ZS1kYXRlPlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiAtLT5cclxuPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1kaWFsb2ctYmlhbm51YWxcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ2eC1mcy0xMSB2eC1mdy01MDAgdngtbGFiZWwtdHh0IHZ4LXR0LXVwcGVyY2FzZSB2eC1tYi0xXCI+UkVBU1NFU1NNRU5UIEZSRVFVRU5DWTo8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktZGlhbG9nLWJpYW5udWFsLWl0ZW0gdngtbWItNVwiPlxyXG4gICAgICAgIDxhcHAtZnJlcXVlbmN5LWRpYWxvZy10b3BcclxuICAgICAgICAgICAgW2lkXT1cIjRcIlxyXG4gICAgICAgICAgICBbaW5wdXRUaW1lXT1cImJpYW5udWFsSW50ZXJ2YWxcIlxyXG4gICAgICAgICAgICBbb2NjdXJyZW5jZUZpcnN0XT1cImJpYW5udWFsSW5wdXRcIlxyXG4gICAgICAgICAgICBbZnJlcXVlbmN5VHlwZV09XCI0XCJcclxuICAgICAgICAgICAgKHRpbWVDaGFuZ2VkKT1cIm9uVGltZUNoYW5nZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICh2YWx1ZUNoYW5nZWRGaXJzdCk9XCJ2YWx1ZUNoYW5nZWRGaXJzdCgkZXZlbnQpXCJcclxuICAgICAgICA+PC9hcHAtZnJlcXVlbmN5LWRpYWxvZy10b3A+XHJcbiAgICAgICAgPGFwcC1mcmVxdWVuY3ktZGlhbG9nLWNoZWNrYm94LWxpc3QgXHJcbiAgICAgICAgICAgIFtpZF09XCI0XCJcclxuICAgICAgICAgICAgW2xpc3RBcnJheV09XCJtb250aE5hbWVBcnJheVwiXHJcbiAgICAgICAgICAgIFtzZWxlY3RlZEluZGV4XT1cImJpYW5udWFsU2VsZWN0ZWRcIlxyXG4gICAgICAgICAgICAoc2VsZWN0ZWRDaGVja2JveCk9XCJvbk1vbnRoU2VsZWN0ZWQoJGV2ZW50KVwiPlxyXG4gICAgICAgIDwvYXBwLWZyZXF1ZW5jeS1kaWFsb2ctY2hlY2tib3gtbGlzdD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHQgdngtdHQtdXBwZXJjYXNlIHZ4LW1iLTFcIj5SRUFTU0VTU01FTlQgRU1BSUwgTk9USUZJQ0FUSU9OOjwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1kaWFsb2ctYmlhbm51YWwtaXRlbSB2eC1tYi01XCI+XHJcbiAgICAgICAgPGFwcC1mcmVxdWVuY3ktZGlhbG9nLWR1ZS1kYXRlXHJcbiAgICAgICAgICAgIFtwYWdlTmFtZV09XCInYmlhbm51YWwnXCJcclxuICAgICAgICAgICAgW21vZGVdPVwibW9kZVwiXHJcbiAgICAgICAgICAgIFtpZF09XCI0XCJcclxuICAgICAgICAgICAgW2NvbXBsZXRlZFZhbHVlXT1cImJpYW5udWFsV2luZG93XCJcclxuICAgICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgPjwvYXBwLWZyZXF1ZW5jeS1kaWFsb2ctZHVlLWRhdGU+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19
|
|
215
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlcXVlbmN5LWRpYWxvZy1iaWFubnVhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2ZyZXF1ZW5jeS1kaWFsb2cvZnJlcXVlbmN5LWRpYWxvZy1iaWFubnVhbC9mcmVxdWVuY3ktZGlhbG9nLWJpYW5udWFsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3NoYXJlZENvbXBvbmVudHMvZnJlcXVlbmN5LWRpYWxvZy9mcmVxdWVuY3ktZGlhbG9nLWJpYW5udWFsL2ZyZXF1ZW5jeS1kaWFsb2ctYmlhbm51YWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLE1BQU0sTUFBTSxlQUFlLENBQUM7Ozs7OztBQVFuQyxNQUFNLE9BQU8sZ0NBQWdDO0lBNEIzQyxZQUFvQixnQkFBa0M7UUFBbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQTNCdEQscUJBQWdCLEdBQUcsVUFBVSxDQUFDO1FBQzlCLGtCQUFhLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUM7UUFDNUUsbUJBQWMsR0FBRyxDQUFDLENBQUM7UUFDbkIsbUJBQWMsR0FBRyxFQUFFLENBQUM7UUFDcEIsZ0JBQVcsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQztRQUMxRSwyQkFBc0IsR0FBRyxJQUFJLENBQUMs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Z0M7a0JBTDVDLFNBQVM7K0JBQ0UsK0JBQStCO3VHQXlCaEMsSUFBSTtzQkFBWixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFHSSxnQkFBZ0I7c0JBQXpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50L21vbWVudCc7XHJcbmltcG9ydCB7IEZyZXF1ZW5jeVNlcnZpY2UgfSBmcm9tICcuLi8uLi9mcmVxdWVuY3kvZnJlcXVlbmN5LnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtZnJlcXVlbmN5LWRpYWxvZy1iaWFubnVhbCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2ZyZXF1ZW5jeS1kaWFsb2ctYmlhbm51YWwuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2ZyZXF1ZW5jeS1kaWFsb2ctYmlhbm51YWwuY29tcG9uZW50Lmxlc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEZyZXF1ZW5jeURpYWxvZ0JpYW5udWFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBiaWFubnVhbEludGVydmFsID0gJzExOjAwIHBtJztcclxuICBiaWFubnVhbElucHV0ID0gdGhpcy5mcmVxdWVuY3lTZXJ2aWNlLmNoYW5nZVRpbWVab25lKG5ldyBEYXRlKCkpPy5nZXREYXRlKCk7XHJcbiAgYmlhbm51YWxGYWlsZWQgPSA1O1xyXG4gIGJpYW5udWFsV2luZG93ID0gMzA7XHJcbiAgYmlhbm51YWxEYXkgPSB0aGlzLmZyZXF1ZW5jeVNlcnZpY2UuY2hhbmdlVGltZVpvbmUobmV3IERhdGUoKSk/LmdldERhdGUoKTtcclxuICBiaWFubnVhbExpZmVDeWNsZVN0YXJ0ID0gdGhpcy5mcmVxdWVuY3lTZXJ2aWNlLmNoYW5nZVRpbWVab25lKG5ldyBEYXRlKCkpO1xyXG4gIGJpYW5udWFsTGlmZUN5Y2xlRW5kVGltZSA9IG5ldyBEYXRlKFxyXG4gICAgdGhpcy5iaWFubnVhbExpZmVDeWNsZVN0YXJ0LmdldFRpbWUoKSArIDg2NDAwMDAwXHJcbiAgKTtcclxuICBiaWFubnVhbExpZmVjeWNsZU9jY3VyYW5jZSA9IDEwO1xyXG4gIGJpYW5udWFsU2VsZXRlZExpZmVjeWNsZVR5cGUgPSAyO1xyXG4gIGJpYW5udWFsU2VsZWN0ZWQ6IEFycmF5PG51bWJlcj4gPSBbXTtcclxuICBiaWFubnVhbExpZmVjeWNsZSA9IGZhbHNlO1xyXG4gIGZyZXF1ZW5jeUluZm86IGFueTtcclxuICBtb250aE5hbWVBcnJheTogQXJyYXk8c3RyaW5nPiA9IFtdO1xyXG4gIHNob3J0TW9udGg6IEFycmF5PHN0cmluZz4gPSBbXTtcclxuICBzZWxlY3RlZE1vbnRobHk6IEFycmF5PG51bWJlcj4gPSBbXTtcclxuICBiaWFubnVhbGx5RXh0ZW5zaW9uOiBudW1iZXIgPSA1O1xyXG4gIGJpYW5udWFsV2luZG93T3BlbjogbnVtYmVyID0gMzA7XHJcblxyXG4gIEBJbnB1dCgpIG1vZGU6IGFueSA9ICcnO1xyXG4gIEBJbnB1dCgpIHN0YXJ0RGF0ZSA9IE1hdGguZmxvb3IoRGF0ZS5ub3coKSAvIDEwMDApO1xyXG4gIEBJbnB1dCgpIGZyZXF1ZW5jeURhdGE6IGFueTtcclxuICBsaWZlY3ljbGVEZXRhaWxzOiBhbnkgPSAnMDAwMC0wMC0wMH5+MCc7XHJcblxyXG4gIEBPdXRwdXQoKSBmcmVxdWVuY3lEZXRhaWxzID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZnJlcXVlbmN5U2VydmljZTogRnJlcXVlbmN5U2VydmljZSkge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8gPSBPYmplY3QuYXNzaWduKHRoaXMuZnJlcXVlbmN5U2VydmljZS5mcmVxdWVuY3lJbmZvKTtcclxuICAgIHRoaXMubW9udGhOYW1lQXJyYXkgPSBbLi4ubmV3IFNldCh0aGlzLmZyZXF1ZW5jeVNlcnZpY2UubW9udGhBcnJheSldO1xyXG4gICAgdGhpcy5zaG9ydE1vbnRoID0gdGhpcy5mcmVxdWVuY3lTZXJ2aWNlLm1vbnRoQXJyYXkubWFwKChtb250aCkgPT5cclxuICAgICAgbW9udGguc3Vic3RyaW5nKDAsIDMpXHJcbiAgICApO1xyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLmZyZXF1ZW5jeURhdGE/LnBhdHRlcm4gIT0gJycgJiZcclxuICAgICAgcGFyc2VJbnQodGhpcy5mcmVxdWVuY3lEYXRhPy5wYXR0ZXJuLnNwbGl0KCd+JylbMF0pID09PSA5XHJcbiAgICApIHtcclxuICAgICAgdGhpcy5wb3B1bGF0ZUZyZXF1ZW5jeSgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5nZXRCaWFubnVhbEZyZXF1ZW5jeSgpO1xyXG4gIH1cclxuXHJcbiAgcG9wdWxhdGVGcmVxdWVuY3koKSB7XHJcbiAgICBjb25zdCBwYXR0ZXJuSW5mbyA9IHRoaXMuZnJlcXVlbmN5RGF0YT8ucGF0dGVybi5zcGxpdCgnficpO1xyXG4gICAgdGhpcy5iaWFubnVhbFNlbGVjdGVkID0gcGF0dGVybkluZm9bMl1cclxuICAgICAgLnNwbGl0KCcsJylcclxuICAgICAgLm1hcCgoZWxlOiBhbnkpID0+IE51bWJlcihlbGUpIC0gMSk7XHJcbiAgICB0aGlzLmJpYW5udWFsSW50ZXJ2YWwgPSB0aGlzLmZyZXF1ZW5jeURhdGE/LmZhaWxlZFRpbWU7XHJcbiAgICB0aGlzLmJpYW5udWFsV2luZG93ID0gdGhpcy5mcmVxdWVuY3lEYXRhPy53aW5kb3c7XHJcbiAgICB0aGlzLmJpYW5udWFsSW5wdXQgPSBwYXR0ZXJuSW5mb1sxXTtcclxuICAgIHRoaXMuYmlhbm51YWxMaWZlY3ljbGVPY2N1cmFuY2UgPSBOdW1iZXIocGF0dGVybkluZm9bMV0pO1xyXG4gICAgdGhpcy5iaWFubnVhbExpZmVDeWNsZVN0YXJ0ID0gbmV3IERhdGUoXHJcbiAgICAgIHRoaXMuZnJlcXVlbmN5RGF0YT8uc3RhcnREYXRlICogMTAwMFxyXG4gICAgKTtcclxuICAgIHRoaXMuYmlhbm51YWxGYWlsZWQgPSB0aGlzLmZyZXF1ZW5jeURhdGE/LmZhaWxlZDtcclxuICAgIHRoaXMubGlmZWN5Y2xlRGV0YWlscyA9IHRoaXMuZnJlcXVlbmN5RGF0YT8ubGlmZWN5Y2xlO1xyXG4gIH1cclxuXHJcbiAgb25Nb250aFNlbGVjdGVkKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmIChldmVudC5jaGVja2VkKSB7XHJcbiAgICAgIHRoaXMuYmlhbm51YWxTZWxlY3RlZC5wdXNoKGV2ZW50LmluZGV4KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuYmlhbm51YWxTZWxlY3RlZCA9IHRoaXMuYmlhbm51YWxTZWxlY3RlZC5maWx0ZXIoXHJcbiAgICAgICAgKGVsZSkgPT4gZWxlICE9PSBldmVudC5pbmRleFxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgdGhpcy5nZXRCaWFubnVhbEZyZXF1ZW5jeSgpO1xyXG4gIH1cclxuXHJcbiAgdmFsdWVDaGFuZ2VkRmlyc3QoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5iaWFubnVhbElucHV0ID0gZXZlbnQudmFsdWU7XHJcbiAgICB0aGlzLmdldEJpYW5udWFsRnJlcXVlbmN5KCk7XHJcbiAgfVxyXG5cclxuICBvblRpbWVDaGFuZ2VkKGV2ZW50OiBzdHJpbmcpIHtcclxuICAgIHRoaXMuYmlhbm51YWxJbnRlcnZhbCA9IGV2ZW50O1xyXG4gICAgdGhpcy5nZXRCaWFubnVhbEZyZXF1ZW5jeSgpO1xyXG4gIH1cclxuXHJcbiAgb25WYWx1ZUNoYW5nZShldmVudDogYW55KSB7XHJcbiAgICBpZiAoZXZlbnQudHlwZSA9PT0gJ2NvbXBsZXRlZCcpIHtcclxuICAgICAgdGhpcy5iaWFubnVhbFdpbmRvdyA9IGV2ZW50LnZhbHVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5iaWFubnVhbEZhaWxlZCA9IGV2ZW50LnZhbHVlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5nZXRCaWFubnVhbEZyZXF1ZW5jeSgpO1xyXG4gIH1cclxuXHJcbiAgb25XaW5kb3dPcGVuQ2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmIChldmVudD8udHlwZT8udG9Mb3dlckNhc2UoKSA9PT0gJ3dpbmRvdyBvcGVuJykge1xyXG4gICAgICB0aGlzLmJpYW5udWFsV2luZG93T3BlbiA9IGV2ZW50Py52YWx1ZTtcclxuICAgIH1cclxuICAgIHRoaXMuZ2V0Qmlhbm51YWxGcmVxdWVuY3koKTtcclxuICB9XHJcblxyXG4gIG9uRXh0ZW5zaW9uQ2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmIChldmVudD8udHlwZT8udG9Mb3dlckNhc2UoKSA9PT0gJ2V4dGVuc2lvbicpIHtcclxuICAgICAgdGhpcy5iaWFubnVhbGx5RXh0ZW5zaW9uID0gZXZlbnQudmFsdWU7XHJcbiAgICB9XHJcbiAgICB0aGlzLmdldEJpYW5udWFsRnJlcXVlbmN5KCk7XHJcbiAgfVxyXG5cclxuICBsaWZlY3ljbGVDaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgc3dpdGNoIChldmVudC50eXBlKSB7XHJcbiAgICAgIGNhc2UgMDpcclxuICAgICAgICB0aGlzLmxpZmVjeWNsZURldGFpbHMgPSBldmVudC5lbmRzQnkgKyAnfn4wJztcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAxOlxyXG4gICAgICAgIHRoaXMubGlmZWN5Y2xlRGV0YWlscyA9ICcwMDAwLTAwLTAwfn4nICsgZXZlbnQuZW5kYWZ0ZXI7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgMjpcclxuICAgICAgICB0aGlzLmxpZmVjeWNsZURldGFpbHMgPSAnMDAwMC0wMC0wMH5+MCc7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgICBpZiAoZXZlbnQuc3RhcnRGcm9tLnRvU3RyaW5nKCkubGVuZ3RoID4gMTApIHtcclxuICAgICAgdGhpcy5zdGFydERhdGUgPSBNYXRoLmZsb29yKGV2ZW50LnN0YXJ0RnJvbSAvIDEwMDApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zdGFydERhdGUgPSBNYXRoLmZsb29yKGV2ZW50LnN0YXJ0RnJvbSk7XHJcbiAgICB9XHJcbiAgICBsZXQgZW5kQnlEYXRlID0gTWF0aC5mbG9vcihcclxuICAgICAgdGhpcy5mcmVxdWVuY3lTZXJ2aWNlLmNoYW5nZVRpbWVab25lKG5ldyBEYXRlKCkpPy5nZXRUaW1lKCkgLyAxMDAwICtcclxuICAgICAgICA4NjQwMDAwMFxyXG4gICAgKTtcclxuICAgIGlmIChldmVudC50eXBlID09PSAwKSB7XHJcbiAgICAgIGVuZEJ5RGF0ZSA9IGV2ZW50LmVuZHNCeVxyXG4gICAgICAgID8gbW9tZW50KGV2ZW50LmVuZHNCeSArICcgMDA6MDA6MDAnLCAnREQtTU1NLVlZWVkgSEg6bW06c3MnKS51bml4KClcclxuICAgICAgICA6IGVuZEJ5RGF0ZTtcclxuICAgIH1cclxuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5mYWlsZWRfdGltZV91dGMgPSBlbmRCeURhdGU7XHJcbiAgICB0aGlzLmdldEJpYW5udWFsRnJlcXVlbmN5KCk7XHJcbiAgfVxyXG5cclxuICBnZXRCaWFubnVhbEZyZXF1ZW5jeSgpIHtcclxuICAgIHRoaXMuYmlhbm51YWxTZWxlY3RlZCA9IHRoaXMuYmlhbm51YWxTZWxlY3RlZC5zb3J0KChuMSwgbjIpID0+IG4xIC0gbjIpO1xyXG4gICAgY29uc3QgbW9udGhJbmRleCA9IHRoaXMuYmlhbm51YWxTZWxlY3RlZC5tYXAoKGVsZSkgPT4gZWxlICsgMSk7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8ucGF0dGVybiA9XHJcbiAgICAgIDkgKyAnficgKyB0aGlzLmJpYW5udWFsSW5wdXQgKyAnficgKyBtb250aEluZGV4LmpvaW4oJywnKSArICd+MCc7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8uY2FzZSA9ICdiaWFubnVhbCc7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8uZmFpbGVkQWZ0ZXIgPSB0aGlzLmJpYW5udWFsRmFpbGVkO1xyXG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLndpbmRvdyA9IHRoaXMuYmlhbm51YWxXaW5kb3c7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8udGltZUluMTJociA9IHRoaXMuYmlhbm51YWxJbnRlcnZhbDtcclxuICAgIHRoaXMuZnJlcXVlbmN5SW5mby50aW1lSW4yNEhyID0gdGhpcy5mcmVxdWVuY3lTZXJ2aWNlLnRpbWVGcm9tMTJoVG8yNGgoXHJcbiAgICAgIHRoaXMuYmlhbm51YWxJbnRlcnZhbFxyXG4gICAgKTtcclxuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5saWZlY3ljbGVEZXRhaWxzID0gdGhpcy5saWZlY3ljbGVEZXRhaWxzO1xyXG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLnN0YXJ0RnJvbSA9IHRoaXMuc3RhcnREYXRlO1xyXG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLnJlcG9ydElkID0gMDtcclxuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5wbGFjZWhvbGRlciA9IHRoaXMuZ2V0RnJlcXVlbmN5UGxhY2Vob2xkZXIoXHJcbiAgICAgIE51bWJlcih0aGlzLmJpYW5udWFsSW5wdXQpXHJcbiAgICApO1xyXG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLmZhaWxlZF9hZnRlcl9kYXlzID0gdGhpcy5iaWFubnVhbGx5RXh0ZW5zaW9uO1xyXG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLmNhbl9hc3Nlc3NfYmVmb3JlX2RheXMgPSB0aGlzLmJpYW5udWFsV2luZG93T3BlbjtcclxuICAgIHRoaXMuZnJlcXVlbmN5RGV0YWlscy5lbWl0KHRoaXMuZnJlcXVlbmN5SW5mbyk7XHJcbiAgICBjb25zb2xlLmxvZygnIHRoaXMuZnJlcXVlbmN5SW5mbyA9PT4nLCB0aGlzLmZyZXF1ZW5jeUluZm8pO1xyXG4gIH1cclxuXHJcbiAgZ2V0RnJlcXVlbmN5UGxhY2Vob2xkZXIoYmlhbm51YWxJbnB1dDogbnVtYmVyKSB7XHJcbiAgICBsZXQgcGxhY2Vob2xkZXIgPSAnJztcclxuICAgIGNvbnN0IHNlbGVjdGVkTW9udGggPSB0aGlzLmJpYW5udWFsU2VsZWN0ZWQubWFwKChlbGUpID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuc2hvcnRNb250aFtlbGVdO1xyXG4gICAgfSk7XHJcbiAgICBpZiAoYmlhbm51YWxJbnB1dCA9PT0gMSkge1xyXG4gICAgICBwbGFjZWhvbGRlciA9XHJcbiAgICAgICAgJzFzdCBvZiBldmVyeSAnICtcclxuICAgICAgICBzZWxlY3RlZE1vbnRoLmpvaW4oJywgJykgK1xyXG4gICAgICAgICcgYnkgJyArXHJcbiAgICAgICAgdGhpcy5iaWFubnVhbEludGVydmFsO1xyXG4gICAgfSBlbHNlIGlmIChiaWFubnVhbElucHV0ID09PSAyKSB7XHJcbiAgICAgIHBsYWNlaG9sZGVyID1cclxuICAgICAgICAnMm5kIG9mIGV2ZXJ5ICcgK1xyXG4gICAgICAgIHNlbGVjdGVkTW9udGguam9pbignLCAnKSArXHJcbiAgICAgICAgJyBieSAnICtcclxuICAgICAgICB0aGlzLmJpYW5udWFsSW50ZXJ2YWw7XHJcbiAgICB9IGVsc2UgaWYgKGJpYW5udWFsSW5wdXQgPT09IDMpIHtcclxuICAgICAgcGxhY2Vob2xkZXIgPVxyXG4gICAgICAgICczcmQgb2YgZXZlcnkgJyArXHJcbiAgICAgICAgc2VsZWN0ZWRNb250aC5qb2luKCcsICcpICtcclxuICAgICAgICAnIGJ5ICcgK1xyXG4gICAgICAgIHRoaXMuYmlhbm51YWxJbnRlcnZhbDtcclxuICAgIH0gZWxzZSBpZiAoYmlhbm51YWxJbnB1dCA9PT0gMjEgfHwgYmlhbm51YWxJbnB1dCA9PT0gMzEpIHtcclxuICAgICAgcGxhY2Vob2xkZXIgPVxyXG4gICAgICAgIGJpYW5udWFsSW5wdXQgK1xyXG4gICAgICAgICdzdCBvZiBldmVyeSAnICtcclxuICAgICAgICBzZWxlY3RlZE1vbnRoLmpvaW4oJywgJykgK1xyXG4gICAgICAgICcgYnkgJyArXHJcbiAgICAgICAgdGhpcy5iaWFubnVhbEludGVydmFsO1xyXG4gICAgfSBlbHNlIGlmIChiaWFubnVhbElucHV0ID09PSAyMikge1xyXG4gICAgICBwbGFjZWhvbGRlciA9XHJcbiAgICAgICAgYmlhbm51YWxJbnB1dCArXHJcbiAgICAgICAgJ25kIG9mIGV2ZXJ5ICcgK1xyXG4gICAgICAgIHNlbGVjdGVkTW9udGguam9pbignLCAnKSArXHJcbiAgICAgICAgJyBieSAnICtcclxuICAgICAgICB0aGlzLmJpYW5udWFsSW50ZXJ2YWw7XHJcbiAgICB9IGVsc2UgaWYgKGJpYW5udWFsSW5wdXQgPT09IDIzKSB7XHJcbiAgICAgIHBsYWNlaG9sZGVyID1cclxuICAgICAgICBiaWFubnVhbElucHV0ICtcclxuICAgICAgICAncmQgb2YgZXZlcnkgJyArXHJcbiAgICAgICAgc2VsZWN0ZWRNb250aC5qb2luKCcsICcpICtcclxuICAgICAgICAnIGJ5ICcgK1xyXG4gICAgICAgIHRoaXMuYmlhbm51YWxJbnRlcnZhbDtcclxuICAgIH0gZWxzZSBpZiAoYmlhbm51YWxJbnB1dCA+IDMpIHtcclxuICAgICAgcGxhY2Vob2xkZXIgPVxyXG4gICAgICAgIGJpYW5udWFsSW5wdXQgK1xyXG4gICAgICAgICd0aCBvZiBldmVyeSAnICtcclxuICAgICAgICBzZWxlY3RlZE1vbnRoLmpvaW4oJywgJykgK1xyXG4gICAgICAgICcgYnkgJyArXHJcbiAgICAgICAgdGhpcy5iaWFubnVhbEludGVydmFsO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHBsYWNlaG9sZGVyO1xyXG4gIH1cclxufVxyXG4iLCJcclxuPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1kaWFsb2ctYmlhbm51YWxcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ2eC1mcy0xMSB2eC1mdy01MDAgdngtbGFiZWwtdHh0IHZ4LXR0LXVwcGVyY2FzZSB2eC1tYi0xXCI+UkVBU1NFU1NNRU5UIEZSRVFVRU5DWTo8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktZGlhbG9nLWJpYW5udWFsLWl0ZW0gdngtbWItNVwiPlxyXG4gICAgICAgIDxhcHAtZnJlcXVlbmN5LWRpYWxvZy10b3BcclxuICAgICAgICAgICAgW2lkXT1cIjRcIlxyXG4gICAgICAgICAgICBbaW5wdXRUaW1lXT1cImJpYW5udWFsSW50ZXJ2YWxcIlxyXG4gICAgICAgICAgICBbb2NjdXJyZW5jZUZpcnN0XT1cImJpYW5udWFsSW5wdXRcIlxyXG4gICAgICAgICAgICBbZnJlcXVlbmN5VHlwZV09XCI0XCJcclxuICAgICAgICAgICAgKHRpbWVDaGFuZ2VkKT1cIm9uVGltZUNoYW5nZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICh2YWx1ZUNoYW5nZWRGaXJzdCk9XCJ2YWx1ZUNoYW5nZWRGaXJzdCgkZXZlbnQpXCJcclxuICAgICAgICA+PC9hcHAtZnJlcXVlbmN5LWRpYWxvZy10b3A+XHJcbiAgICAgICAgPGFwcC1mcmVxdWVuY3ktZGlhbG9nLWNoZWNrYm94LWxpc3RcclxuICAgICAgICAgICAgW2lkXT1cIjRcIlxyXG4gICAgICAgICAgICBbbGlzdEFycmF5XT1cIm1vbnRoTmFtZUFycmF5XCJcclxuICAgICAgICAgICAgW3NlbGVjdGVkSW5kZXhdPVwiYmlhbm51YWxTZWxlY3RlZFwiXHJcbiAgICAgICAgICAgIChzZWxlY3RlZENoZWNrYm94KT1cIm9uTW9udGhTZWxlY3RlZCgkZXZlbnQpXCI+XHJcbiAgICAgICAgPC9hcHAtZnJlcXVlbmN5LWRpYWxvZy1jaGVja2JveC1saXN0PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8YXBwLWZyZXF1ZW5jeS1kaWFsb2ctZHVlLWRhdGVcclxuICAgICAgW3BhZ2VOYW1lXT1cIidiaWFubnVhbCdcIlxyXG4gICAgICBbbW9kZV09XCJtb2RlXCJcclxuICAgICAgW2lkXT1cIjRcIlxyXG4gICAgICBbY29tcGxldGVkVmFsdWVdPVwiYmlhbm51YWxXaW5kb3dcIlxyXG4gICAgICBbd2luZG93Q2xvc2VzXT1cImJpYW5udWFsbHlFeHRlbnNpb25cIlxyXG4gICAgICBbYXNzZXNzV2luZG93T3Blbl09XCJiaWFubnVhbFdpbmRvd09wZW5cIlxyXG4gICAgICAodmFsdWVDaGFuZ2UpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgKHdpbmRvd09wZW5DaGFuZ2UpPVwib25XaW5kb3dPcGVuQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAoZXh0ZW5zaW9uVmFsdWVDaGFuZ2UpPVwib25FeHRlbnNpb25DaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICA+PC9hcHAtZnJlcXVlbmN5LWRpYWxvZy1kdWUtZGF0ZT5cclxuPC9kaXY+XHJcbiJdfQ==
|