vcomply-workflow-engine 3.1.0 → 3.1.2

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.
Files changed (23) hide show
  1. package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-annual/frequency-dialog-annual.component.mjs +21 -18
  2. package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-biannual/frequency-dialog-biannual.component.mjs +21 -28
  3. package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-container/frequency-dialog-container.component.mjs +15 -17
  4. package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-due-date/frequency-dialog-due-date.component.mjs +58 -14
  5. package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-monthly/frequency-dialog-monthly.component.mjs +22 -28
  6. package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-one-time/frequency-dialog-one-time.component.mjs +21 -16
  7. package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-quarterly/frequency-dialog-quarterly.component.mjs +22 -30
  8. package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-weekly/frequency-dialog-weekly.component.mjs +22 -18
  9. package/esm2020/lib/workflow-risk/workflow-risk.component.mjs +33 -43
  10. package/fesm2015/vcomply-workflow-engine.mjs +290 -254
  11. package/fesm2015/vcomply-workflow-engine.mjs.map +1 -1
  12. package/fesm2020/vcomply-workflow-engine.mjs +262 -240
  13. package/fesm2020/vcomply-workflow-engine.mjs.map +1 -1
  14. package/lib/sharedComponents/frequency-dialog/frequency-dialog-annual/frequency-dialog-annual.component.d.ts +4 -0
  15. package/lib/sharedComponents/frequency-dialog/frequency-dialog-biannual/frequency-dialog-biannual.component.d.ts +4 -0
  16. package/lib/sharedComponents/frequency-dialog/frequency-dialog-container/frequency-dialog-container.component.d.ts +4 -4
  17. package/lib/sharedComponents/frequency-dialog/frequency-dialog-due-date/frequency-dialog-due-date.component.d.ts +8 -2
  18. package/lib/sharedComponents/frequency-dialog/frequency-dialog-monthly/frequency-dialog-monthly.component.d.ts +5 -1
  19. package/lib/sharedComponents/frequency-dialog/frequency-dialog-one-time/frequency-dialog-one-time.component.d.ts +4 -0
  20. package/lib/sharedComponents/frequency-dialog/frequency-dialog-quarterly/frequency-dialog-quarterly.component.d.ts +5 -1
  21. package/lib/sharedComponents/frequency-dialog/frequency-dialog-weekly/frequency-dialog-weekly.component.d.ts +5 -1
  22. package/lib/workflow-risk/workflow-risk.component.d.ts +2 -0
  23. package/package.json +1 -1
@@ -8,7 +8,6 @@ import * as i4 from "../frequency-dialog-radio-list/frequency-dialog-radio-list.
8
8
  export class FrequencyDialogQuarterlyComponent {
9
9
  constructor(frequencyService) {
10
10
  this.frequencyService = frequencyService;
11
- this.mode = '';
12
11
  this.quarterlyInterval = '11:00 pm';
13
12
  this.quarterlyInput = this.frequencyService.changeTimeZone(new Date())?.getDate();
14
13
  this.quarterlyFailed = 5;
@@ -20,6 +19,9 @@ export class FrequencyDialogQuarterlyComponent {
20
19
  this.quarterlySeletedLifecycleType = 2;
21
20
  this.quarterlyGroup = [0, 3, 6, 9, 1, 4, 7, 10, 2, 5, 8, 11];
22
21
  this.quarterlyArray = [];
22
+ this.quarterlyExtension = 5;
23
+ this.quarterlyWindowOpen = 7;
24
+ this.mode = '';
23
25
  this.startDate = Math.floor(Date.now() / 1000);
24
26
  this.lifecycleDetails = '0000-00-00~~0';
25
27
  this.frequencyDetails = new EventEmitter();
@@ -30,7 +32,6 @@ export class FrequencyDialogQuarterlyComponent {
30
32
  const indexOfMonth = this.quarterlyGroup.indexOf(this.frequencyService.changeTimeZone(new Date())?.getMonth());
31
33
  this.selectedQuarterly =
32
34
  indexOfMonth < 4 ? 0 : indexOfMonth > 3 && indexOfMonth < 8 ? 1 : 2;
33
- console.log('this.frequencyData ==>', this.frequencyData);
34
35
  if (this.frequencyData?.pattern != '' &&
35
36
  parseInt(this.frequencyData?.pattern?.split('~')[0]) === 7) {
36
37
  this.populateFrequency();
@@ -39,52 +40,33 @@ export class FrequencyDialogQuarterlyComponent {
39
40
  }
40
41
  populateFrequency() {
41
42
  const patternInfo = this.frequencyData?.pattern.split('~');
42
- console.log('patternInfo ==>', patternInfo);
43
43
  const month = parseInt(patternInfo[2].split(',').map(Number)[0]);
44
- console.log('monte ', month);
45
44
  const index = this.quarterlyGroup.indexOf(month - 1);
46
45
  this.selectedQuarterly = index < 4 ? 0 : index > 3 && index < 8 ? 1 : 2;
47
- // const lifecycleInfo = this.frequencyData?.lifecycle.split('~~');
48
46
  this.quarterlyInterval = this.frequencyData?.failedTime;
49
47
  this.quarterlyWindow = this.frequencyData?.window;
50
48
  this.quarterlyInput = patternInfo[1];
51
- // if(Number(lifecycleInfo[1]) > 0) {
52
- // this.quarterlyLifecycleOccurance = Number(lifecycleInfo[1]);
53
- // }
54
49
  this.quarterlyLifecycleOccurance = Number(patternInfo[1]);
55
50
  this.startDate = this.frequencyData?.startDate;
56
51
  this.quarterlyLifeCycleStart = new Date(this.frequencyData?.startDate * 1000);
57
52
  this.quarterlyFailed = this.frequencyData?.failed;
58
- // if( lifecycleInfo[0] !== '0000-00-00') {
59
- // const dateSelected = moment(lifecycleInfo[0] + ' 11:59 pm', 'DD-MMMM-YYYY HH:mm a').unix()
60
- // this.quarterlyLifeCycleEndTime = new Date(dateSelected * 1000);
61
- // }
62
53
  this.lifecycleDetails = this.frequencyData?.lifecycle;
63
- // if( this.frequencyData?.lifecycle == '0000-00-00~~0') {
64
- // this.quarterlySeletedLifecycleType = 2;
65
- // } else if(lifecycleInfo[0] !== '0000-00-00') {
66
- // this.quarterlySeletedLifecycleType = 0;
67
- // } else {
68
- // this.quarterlySeletedLifecycleType = 1;
69
- // }
54
+ this.quarterlyWindowOpen = this.frequencyData?.can_assess_before_days;
55
+ this.quarterlyExtension = this.frequencyData?.failed_after_days;
70
56
  }
71
57
  valueChangedFirst(event) {
72
- console.log('event ==>', event);
73
58
  this.quarterlyInput = event.value;
74
59
  this.getQuarterlyFrequency();
75
60
  }
76
61
  onTimeChanged(event) {
77
- console.log('time event =>', event);
78
62
  this.quarterlyInterval = event;
79
63
  this.getQuarterlyFrequency();
80
64
  }
81
65
  selectedMonth(event) {
82
- console.log('event ==>', event);
83
66
  this.selectedQuarterly = parseInt(event.target.value);
84
67
  this.getQuarterlyFrequency();
85
68
  }
86
69
  lifecycleChange(event) {
87
- console.log('event==>', event);
88
70
  switch (event.type) {
89
71
  case 0:
90
72
  this.lifecycleDetails = event.endsBy + '~~0';
@@ -104,12 +86,10 @@ export class FrequencyDialogQuarterlyComponent {
104
86
  }
105
87
  let endByDate = Math.floor(this.frequencyService.changeTimeZone(new Date())?.getTime() / 1000 +
106
88
  86400000);
107
- console.log('end date', endByDate);
108
89
  if (event.type === 0) {
109
90
  endByDate = event.endsBy
110
91
  ? moment(event.endsBy + ' 00:00:00', 'DD-MMM-YYYY HH:mm:ss').unix()
111
92
  : endByDate;
112
- console.log('endByDate', endByDate);
113
93
  }
114
94
  this.frequencyInfo.failed_time_utc = endByDate;
115
95
  this.getQuarterlyFrequency();
@@ -123,6 +103,18 @@ export class FrequencyDialogQuarterlyComponent {
123
103
  }
124
104
  this.getQuarterlyFrequency();
125
105
  }
106
+ onWindowOpenChange(event) {
107
+ if (event?.type?.toLowerCase() === 'window open') {
108
+ this.quarterlyWindowOpen = event?.value;
109
+ }
110
+ this.getQuarterlyFrequency();
111
+ }
112
+ onExtensionChange(event) {
113
+ if (event?.type?.toLowerCase() === 'extension') {
114
+ this.quarterlyExtension = event.value;
115
+ }
116
+ this.getQuarterlyFrequency();
117
+ }
126
118
  getQuarterlyFrequency() {
127
119
  let monthSequence = this.selectedQuarterly === 0
128
120
  ? this.quarterlyGroup.slice(0, 4)
@@ -141,11 +133,12 @@ export class FrequencyDialogQuarterlyComponent {
141
133
  this.frequencyInfo.startFrom = this.startDate;
142
134
  this.frequencyInfo.reportId = 0;
143
135
  this.frequencyInfo.placeholder = this.getPlaceholder(Number(this.quarterlyInput));
136
+ this.frequencyInfo.failed_after_days = this.quarterlyExtension;
137
+ this.frequencyInfo.can_assess_before_days = this.quarterlyWindowOpen;
144
138
  this.frequencyDetails.emit(this.frequencyInfo);
145
139
  console.log(' this.frequencyInfo ==>', this.frequencyInfo);
146
140
  }
147
141
  getPlaceholder(quarterlyInput) {
148
- console.log(' this.placeholder ==>', quarterlyInput, quarterlyInput === 2, typeof quarterlyInput);
149
142
  let placeholder = '';
150
143
  if (quarterlyInput === 1) {
151
144
  placeholder =
@@ -200,15 +193,14 @@ export class FrequencyDialogQuarterlyComponent {
200
193
  ' by ' +
201
194
  this.quarterlyInterval;
202
195
  }
203
- console.log(' this.placeholderede ==>', placeholder);
204
196
  return placeholder;
205
197
  }
206
198
  }
207
199
  FrequencyDialogQuarterlyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FrequencyDialogQuarterlyComponent, deps: [{ token: i1.FrequencyService }], target: i0.ɵɵFactoryTarget.Component });
208
- FrequencyDialogQuarterlyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: FrequencyDialogQuarterlyComponent, selector: "app-frequency-dialog-quarterly", inputs: { mode: "mode", startDate: "startDate", frequencyData: "frequencyData" }, outputs: { frequencyDetails: "frequencyDetails" }, ngImport: i0, template: "<!-- <div class=\"frequency-dialog-quarterly\">\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-quarterly-item vx-mb-5\">\r\n <app-frequency-dialog-top></app-frequency-dialog-top>\r\n <app-frequency-dialog-radio-list></app-frequency-dialog-radio-list>\r\n </div>\r\n <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">REASSESSMENT EMAIL NOTIFICATION:</div>\r\n <div class=\"frequency-dialog-quarterly-item vx-mb-5\">\r\n <app-frequency-dialog-due-date></app-frequency-dialog-due-date>\r\n </div>\r\n</div> -->\r\n\r\n<div class=\"frequency-dialog-quarterly\">\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-quarterly-item vx-mb-5\">\r\n <!-- <app-frequency-dialog-top></app-frequency-dialog-top> -->\r\n <app-frequency-dialog-top\r\n [id]=\"3\"\r\n [inputTime]=\"quarterlyInterval\"\r\n [occurrenceFirst]=\"quarterlyInput\"\r\n [frequencyType]=\"3\"\r\n (timeChanged)=\"onTimeChanged($event)\"\r\n (valueChangedFirst)=\"valueChangedFirst($event)\"\r\n ></app-frequency-dialog-top>\r\n <app-frequency-dialog-radio-list></app-frequency-dialog-radio-list>\r\n <app-frequency-dialog-radio-list\r\n [radioList]=\"quarterlyArray\" \r\n [selectedIndex]=\"selectedQuarterly\" \r\n (selectedRadio)=\"selectedMonth($event)\"\r\n [name]=\"'quarter'\">\r\n </app-frequency-dialog-radio-list>\r\n </div>\r\n <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">REASSESSMENT EMAIL NOTIFICATION:</div>\r\n <div class=\"frequency-dialog-quarterly-item vx-mb-5\">\r\n <!-- <app-frequency-dialog-due-date></app-frequency-dialog-due-date> -->\r\n <app-frequency-dialog-due-date\r\n [id] = '3'\r\n [mode]=\"mode\"\r\n [pageName]=\"'quarterly'\"\r\n [isDeactivated]=\"false\"\r\n [completedValue]=\"quarterlyWindow\"\r\n (valueChange)=\"onValueChange($event)\"\r\n ></app-frequency-dialog-due-date>\r\n </div>\r\n</div>", 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-quarterly-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"], outputs: ["valueChange"] }, { kind: "component", type: i4.FrequencyDialogRadioListComponent, selector: "app-frequency-dialog-radio-list", inputs: ["radioList", "selectedIndex", "name"], outputs: ["selectedRadio"] }] });
200
+ FrequencyDialogQuarterlyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: FrequencyDialogQuarterlyComponent, selector: "app-frequency-dialog-quarterly", inputs: { mode: "mode", startDate: "startDate", frequencyData: "frequencyData" }, outputs: { frequencyDetails: "frequencyDetails" }, ngImport: i0, template: "\r\n<div class=\"frequency-dialog-quarterly\">\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-quarterly-item vx-mb-5\">\r\n <app-frequency-dialog-top\r\n [id]=\"3\"\r\n [inputTime]=\"quarterlyInterval\"\r\n [occurrenceFirst]=\"quarterlyInput\"\r\n [frequencyType]=\"3\"\r\n (timeChanged)=\"onTimeChanged($event)\"\r\n (valueChangedFirst)=\"valueChangedFirst($event)\"\r\n ></app-frequency-dialog-top>\r\n <app-frequency-dialog-radio-list></app-frequency-dialog-radio-list>\r\n <app-frequency-dialog-radio-list\r\n [radioList]=\"quarterlyArray\"\r\n [selectedIndex]=\"selectedQuarterly\"\r\n (selectedRadio)=\"selectedMonth($event)\"\r\n [name]=\"'quarter'\">\r\n </app-frequency-dialog-radio-list>\r\n </div>\r\n <app-frequency-dialog-due-date\r\n [id] = '3'\r\n [mode]=\"mode\"\r\n [pageName]=\"'quarterly'\"\r\n [isDeactivated]=\"false\"\r\n [completedValue]=\"quarterlyWindow\"\r\n [windowCloses]=\"quarterlyExtension\"\r\n [assessWindowOpen]=\"quarterlyWindowOpen\"\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-quarterly-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"] }] });
209
201
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FrequencyDialogQuarterlyComponent, decorators: [{
210
202
  type: Component,
211
- args: [{ selector: 'app-frequency-dialog-quarterly', template: "<!-- <div class=\"frequency-dialog-quarterly\">\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-quarterly-item vx-mb-5\">\r\n <app-frequency-dialog-top></app-frequency-dialog-top>\r\n <app-frequency-dialog-radio-list></app-frequency-dialog-radio-list>\r\n </div>\r\n <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">REASSESSMENT EMAIL NOTIFICATION:</div>\r\n <div class=\"frequency-dialog-quarterly-item vx-mb-5\">\r\n <app-frequency-dialog-due-date></app-frequency-dialog-due-date>\r\n </div>\r\n</div> -->\r\n\r\n<div class=\"frequency-dialog-quarterly\">\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-quarterly-item vx-mb-5\">\r\n <!-- <app-frequency-dialog-top></app-frequency-dialog-top> -->\r\n <app-frequency-dialog-top\r\n [id]=\"3\"\r\n [inputTime]=\"quarterlyInterval\"\r\n [occurrenceFirst]=\"quarterlyInput\"\r\n [frequencyType]=\"3\"\r\n (timeChanged)=\"onTimeChanged($event)\"\r\n (valueChangedFirst)=\"valueChangedFirst($event)\"\r\n ></app-frequency-dialog-top>\r\n <app-frequency-dialog-radio-list></app-frequency-dialog-radio-list>\r\n <app-frequency-dialog-radio-list\r\n [radioList]=\"quarterlyArray\" \r\n [selectedIndex]=\"selectedQuarterly\" \r\n (selectedRadio)=\"selectedMonth($event)\"\r\n [name]=\"'quarter'\">\r\n </app-frequency-dialog-radio-list>\r\n </div>\r\n <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">REASSESSMENT EMAIL NOTIFICATION:</div>\r\n <div class=\"frequency-dialog-quarterly-item vx-mb-5\">\r\n <!-- <app-frequency-dialog-due-date></app-frequency-dialog-due-date> -->\r\n <app-frequency-dialog-due-date\r\n [id] = '3'\r\n [mode]=\"mode\"\r\n [pageName]=\"'quarterly'\"\r\n [isDeactivated]=\"false\"\r\n [completedValue]=\"quarterlyWindow\"\r\n (valueChange)=\"onValueChange($event)\"\r\n ></app-frequency-dialog-due-date>\r\n </div>\r\n</div>", 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-quarterly-item{border-radius:.25rem;border:1px solid #f1f1f1}\n"] }]
203
+ args: [{ selector: 'app-frequency-dialog-quarterly', template: "\r\n<div class=\"frequency-dialog-quarterly\">\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-quarterly-item vx-mb-5\">\r\n <app-frequency-dialog-top\r\n [id]=\"3\"\r\n [inputTime]=\"quarterlyInterval\"\r\n [occurrenceFirst]=\"quarterlyInput\"\r\n [frequencyType]=\"3\"\r\n (timeChanged)=\"onTimeChanged($event)\"\r\n (valueChangedFirst)=\"valueChangedFirst($event)\"\r\n ></app-frequency-dialog-top>\r\n <app-frequency-dialog-radio-list></app-frequency-dialog-radio-list>\r\n <app-frequency-dialog-radio-list\r\n [radioList]=\"quarterlyArray\"\r\n [selectedIndex]=\"selectedQuarterly\"\r\n (selectedRadio)=\"selectedMonth($event)\"\r\n [name]=\"'quarter'\">\r\n </app-frequency-dialog-radio-list>\r\n </div>\r\n <app-frequency-dialog-due-date\r\n [id] = '3'\r\n [mode]=\"mode\"\r\n [pageName]=\"'quarterly'\"\r\n [isDeactivated]=\"false\"\r\n [completedValue]=\"quarterlyWindow\"\r\n [windowCloses]=\"quarterlyExtension\"\r\n [assessWindowOpen]=\"quarterlyWindowOpen\"\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-quarterly-item{border-radius:.25rem;border:1px solid #f1f1f1}\n"] }]
212
204
  }], ctorParameters: function () { return [{ type: i1.FrequencyService }]; }, propDecorators: { mode: [{
213
205
  type: Input
214
206
  }], startDate: [{
@@ -218,4 +210,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
218
210
  }], frequencyDetails: [{
219
211
  type: Output
220
212
  }] } });
221
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlcXVlbmN5LWRpYWxvZy1xdWFydGVybHkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9mcmVxdWVuY3ktZGlhbG9nL2ZyZXF1ZW5jeS1kaWFsb2ctcXVhcnRlcmx5L2ZyZXF1ZW5jeS1kaWFsb2ctcXVhcnRlcmx5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3NoYXJlZENvbXBvbmVudHMvZnJlcXVlbmN5LWRpYWxvZy9mcmVxdWVuY3ktZGlhbG9nLXF1YXJ0ZXJseS9mcmVxdWVuY3ktZGlhbG9nLXF1YXJ0ZXJseS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sTUFBTSxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBUW5DLE1BQU0sT0FBTyxpQ0FBaUM7SUF3QjVDLFlBQW9CLGdCQUFrQztRQUFsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBdkI3QyxTQUFJLEdBQVEsRUFBRSxDQUFDO1FBRXhCLHNCQUFpQixHQUFHLFVBQVUsQ0FBQztRQUMvQixtQkFBYyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDO1FBQzdFLG9CQUFlLEdBQUcsQ0FBQyxDQUFDO1FBQ3BCLG9CQUFlLEdBQUcsQ0FBQyxDQUFDO1FBQ3BCLHNCQUFpQixHQUFHLENBQUMsQ0FBQztRQUN0Qiw0QkFBdUIsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLElBQUksSUFB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aEMsV0FBVztnQkFDVCxjQUFjO29CQUNkLGNBQWM7b0JBQ2QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUM7b0JBQzNDLE1BQU07b0JBQ04sSUFBSSxDQUFDLGlCQUFpQixDQUFDO1NBQzFCO2FBQU0sSUFBSSxjQUFjLEtBQUssRUFBRSxFQUFFO1lBQ2hDLFdBQVc7Z0JBQ1QsY0FBYztvQkFDZCxjQUFjO29CQUNkLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDO29CQUMzQyxNQUFNO29CQUNOLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztTQUMxQjthQUFNLElBQUksY0FBYyxHQUFHLENBQUMsRUFBRTtZQUM3QixXQUFXO2dCQUNULGNBQWM7b0JBQ2QsY0FBYztvQkFDZCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztvQkFDM0MsTUFBTTtvQkFDTixJQUFJLENBQUMsaUJBQWlCLENBQUM7U0FDMUI7UUFDRCxPQUFPLENBQUMsR0FBRyxDQUFDLDBCQUEwQixFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ3JELE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7OzhIQWpPVSxpQ0FBaUM7a0hBQWpDLGlDQUFpQywyTUNUOUMsNndFQTRDTTsyRkRuQ08saUNBQWlDO2tCQUw3QyxTQUFTOytCQUNFLGdDQUFnQzt1R0FLakMsSUFBSTtzQkFBWixLQUFLO2dCQWlCRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBR0ksZ0JBQWdCO3NCQUF6QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudC9tb21lbnQnO1xyXG5pbXBvcnQgeyBGcmVxdWVuY3lTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZnJlcXVlbmN5L2ZyZXF1ZW5jeS5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWZyZXF1ZW5jeS1kaWFsb2ctcXVhcnRlcmx5JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZnJlcXVlbmN5LWRpYWxvZy1xdWFydGVybHkuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2ZyZXF1ZW5jeS1kaWFsb2ctcXVhcnRlcmx5LmNvbXBvbmVudC5sZXNzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGcmVxdWVuY3lEaWFsb2dRdWFydGVybHlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpIG1vZGU6IGFueSA9ICcnO1xyXG5cclxuICBxdWFydGVybHlJbnRlcnZhbCA9ICcxMTowMCBwbSc7XHJcbiAgcXVhcnRlcmx5SW5wdXQgPSB0aGlzLmZyZXF1ZW5jeVNlcnZpY2UuY2hhbmdlVGltZVpvbmUobmV3IERhdGUoKSk/LmdldERhdGUoKTtcclxuICBxdWFydGVybHlGYWlsZWQgPSA1O1xyXG4gIHF1YXJ0ZXJseVdpbmRvdyA9IDc7XHJcbiAgc2VsZWN0ZWRRdWFydGVybHkgPSAxO1xyXG4gIHF1YXJ0ZXJseUxpZmVDeWNsZVN0YXJ0ID0gdGhpcy5mcmVxdWVuY3lTZXJ2aWNlLmNoYW5nZVRpbWVab25lKG5ldyBEYXRlKCkpO1xyXG4gIHF1YXJ0ZXJseUxpZmVDeWNsZUVuZFRpbWUgPSBuZXcgRGF0ZShcclxuICAgIHRoaXMucXVhcnRlcmx5TGlmZUN5Y2xlU3RhcnQuZ2V0VGltZSgpICsgODY0MDAwMDBcclxuICApO1xyXG4gIHF1YXJ0ZXJseUxpZmVjeWNsZU9jY3VyYW5jZSA9IDEwO1xyXG4gIHF1YXJ0ZXJseVNlbGV0ZWRMaWZlY3ljbGVUeXBlID0gMjtcclxuICBxdWFydGVybHlHcm91cCA9IFswLCAzLCA2LCA5LCAxLCA0LCA3LCAxMCwgMiwgNSwgOCwgMTFdO1xyXG4gIGZyZXF1ZW5jeUluZm86IGFueTtcclxuICBxdWFydGVybHlBcnJheTogQXJyYXk8c3RyaW5nPiA9IFtdO1xyXG5cclxuICBASW5wdXQoKSBzdGFydERhdGUgPSBNYXRoLmZsb29yKERhdGUubm93KCkgLyAxMDAwKTtcclxuICBASW5wdXQoKSBmcmVxdWVuY3lEYXRhOiBhbnk7XHJcbiAgbGlmZWN5Y2xlRGV0YWlsczogYW55ID0gJzAwMDAtMDAtMDB+fjAnO1xyXG5cclxuICBAT3V0cHV0KCkgZnJlcXVlbmN5RGV0YWlscyA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZyZXF1ZW5jeVNlcnZpY2U6IEZyZXF1ZW5jeVNlcnZpY2UpIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvID0gT2JqZWN0LmFzc2lnbih0aGlzLmZyZXF1ZW5jeVNlcnZpY2U/LmZyZXF1ZW5jeUluZm8pO1xyXG4gICAgdGhpcy5xdWFydGVybHlBcnJheSA9IFsuLi5uZXcgU2V0KHRoaXMuZnJlcXVlbmN5U2VydmljZS5xdWFydGVybHlNb250aCldO1xyXG4gICAgY29uc3QgaW5kZXhPZk1vbnRoID0gdGhpcy5xdWFydGVybHlHcm91cC5pbmRleE9mKFxyXG4gICAgICB0aGlzLmZyZXF1ZW5jeVNlcnZpY2UuY2hhbmdlVGltZVpvbmUobmV3IERhdGUoKSk/LmdldE1vbnRoKClcclxuICAgICk7XHJcbiAgICB0aGlzLnNlbGVjdGVkUXVhcnRlcmx5ID1cclxuICAgICAgaW5kZXhPZk1vbnRoIDwgNCA/IDAgOiBpbmRleE9mTW9udGggPiAzICYmIGluZGV4T2ZNb250aCA8IDggPyAxIDogMjtcclxuICAgIGNvbnNvbGUubG9nKCd0aGlzLmZyZXF1ZW5jeURhdGEgPT0+JywgdGhpcy5mcmVxdWVuY3lEYXRhKTtcclxuICAgIGlmIChcclxuICAgICAgdGhpcy5mcmVxdWVuY3lEYXRhPy5wYXR0ZXJuICE9ICcnICYmXHJcbiAgICAgIHBhcnNlSW50KHRoaXMuZnJlcXVlbmN5RGF0YT8ucGF0dGVybj8uc3BsaXQoJ34nKVswXSkgPT09IDdcclxuICAgICkge1xyXG4gICAgICB0aGlzLnBvcHVsYXRlRnJlcXVlbmN5KCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmdldFF1YXJ0ZXJseUZyZXF1ZW5jeSgpO1xyXG4gIH1cclxuXHJcbiAgcG9wdWxhdGVGcmVxdWVuY3koKSB7XHJcbiAgICBjb25zdCBwYXR0ZXJuSW5mbyA9IHRoaXMuZnJlcXVlbmN5RGF0YT8ucGF0dGVybi5zcGxpdCgnficpO1xyXG4gICAgY29uc29sZS5sb2coJ3BhdHRlcm5JbmZvID09PicsIHBhdHRlcm5JbmZvKTtcclxuICAgIGNvbnN0IG1vbnRoID0gcGFyc2VJbnQocGF0dGVybkluZm9bMl0uc3BsaXQoJywnKS5tYXAoTnVtYmVyKVswXSk7XHJcbiAgICBjb25zb2xlLmxvZygnbW9udGUgICAnLCBtb250aCk7XHJcbiAgICBjb25zdCBpbmRleCA9IHRoaXMucXVhcnRlcmx5R3JvdXAuaW5kZXhPZihtb250aCAtIDEpO1xyXG4gICAgdGhpcy5zZWxlY3RlZFF1YXJ0ZXJseSA9IGluZGV4IDwgNCA/IDAgOiBpbmRleCA+IDMgJiYgaW5kZXggPCA4ID8gMSA6IDI7XHJcbiAgICAvLyBjb25zdCBsaWZlY3ljbGVJbmZvID0gdGhpcy5mcmVxdWVuY3lEYXRhPy5saWZlY3ljbGUuc3BsaXQoJ35+Jyk7XHJcbiAgICB0aGlzLnF1YXJ0ZXJseUludGVydmFsID0gdGhpcy5mcmVxdWVuY3lEYXRhPy5mYWlsZWRUaW1lO1xyXG4gICAgdGhpcy5xdWFydGVybHlXaW5kb3cgPSB0aGlzLmZyZXF1ZW5jeURhdGE/LndpbmRvdztcclxuICAgIHRoaXMucXVhcnRlcmx5SW5wdXQgPSBwYXR0ZXJuSW5mb1sxXTtcclxuICAgIC8vIGlmKE51bWJlcihsaWZlY3ljbGVJbmZvWzFdKSA+IDApIHtcclxuICAgIC8vICAgdGhpcy5xdWFydGVybHlMaWZlY3ljbGVPY2N1cmFuY2UgPSBOdW1iZXIobGlmZWN5Y2xlSW5mb1sxXSk7XHJcbiAgICAvLyB9XHJcblxyXG4gICAgdGhpcy5xdWFydGVybHlMaWZlY3ljbGVPY2N1cmFuY2UgPSBOdW1iZXIocGF0dGVybkluZm9bMV0pO1xyXG4gICAgdGhpcy5zdGFydERhdGUgPSB0aGlzLmZyZXF1ZW5jeURhdGE/LnN0YXJ0RGF0ZTtcclxuICAgIHRoaXMucXVhcnRlcmx5TGlmZUN5Y2xlU3RhcnQgPSBuZXcgRGF0ZShcclxuICAgICAgdGhpcy5mcmVxdWVuY3lEYXRhPy5zdGFydERhdGUgKiAxMDAwXHJcbiAgICApO1xyXG4gICAgdGhpcy5xdWFydGVybHlGYWlsZWQgPSB0aGlzLmZyZXF1ZW5jeURhdGE/LmZhaWxlZDtcclxuICAgIC8vIGlmKCBsaWZlY3ljbGVJbmZvWzBdICE9PSAnMDAwMC0wMC0wMCcpIHtcclxuICAgIC8vICAgY29uc3QgZGF0ZVNlbGVjdGVkID0gbW9tZW50KGxpZmVjeWNsZUluZm9bMF0gKyAnIDExOjU5IHBtJywgJ0RELU1NTU0tWVlZWSBISDptbSBhJykudW5peCgpXHJcbiAgICAvLyAgIHRoaXMucXVhcnRlcmx5TGlmZUN5Y2xlRW5kVGltZSA9IG5ldyBEYXRlKGRhdGVTZWxlY3RlZCAqIDEwMDApO1xyXG4gICAgLy8gfVxyXG4gICAgdGhpcy5saWZlY3ljbGVEZXRhaWxzID0gdGhpcy5mcmVxdWVuY3lEYXRhPy5saWZlY3ljbGU7XHJcbiAgICAvLyBpZiggIHRoaXMuZnJlcXVlbmN5RGF0YT8ubGlmZWN5Y2xlID09ICcwMDAwLTAwLTAwfn4wJykge1xyXG4gICAgLy8gICB0aGlzLnF1YXJ0ZXJseVNlbGV0ZWRMaWZlY3ljbGVUeXBlID0gMjtcclxuICAgIC8vIH0gZWxzZSBpZihsaWZlY3ljbGVJbmZvWzBdICE9PSAnMDAwMC0wMC0wMCcpIHtcclxuICAgIC8vICAgdGhpcy5xdWFydGVybHlTZWxldGVkTGlmZWN5Y2xlVHlwZSA9IDA7XHJcbiAgICAvLyB9IGVsc2Uge1xyXG4gICAgLy8gICB0aGlzLnF1YXJ0ZXJseVNlbGV0ZWRMaWZlY3ljbGVUeXBlID0gMTtcclxuICAgIC8vIH1cclxuICB9XHJcblxyXG4gIHZhbHVlQ2hhbmdlZEZpcnN0KGV2ZW50OiBhbnkpIHtcclxuICAgIGNvbnNvbGUubG9nKCdldmVudCA9PT4nLCBldmVudCk7XHJcbiAgICB0aGlzLnF1YXJ0ZXJseUlucHV0ID0gZXZlbnQudmFsdWU7XHJcbiAgICB0aGlzLmdldFF1YXJ0ZXJseUZyZXF1ZW5jeSgpO1xyXG4gIH1cclxuXHJcbiAgb25UaW1lQ2hhbmdlZChldmVudDogc3RyaW5nKSB7XHJcbiAgICBjb25zb2xlLmxvZygndGltZSBldmVudCA9PicsIGV2ZW50KTtcclxuICAgIHRoaXMucXVhcnRlcmx5SW50ZXJ2YWwgPSBldmVudDtcclxuICAgIHRoaXMuZ2V0UXVhcnRlcmx5RnJlcXVlbmN5KCk7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RlZE1vbnRoKGV2ZW50OiBhbnkpIHtcclxuICAgIGNvbnNvbGUubG9nKCdldmVudCA9PT4nLCBldmVudCk7XHJcbiAgICB0aGlzLnNlbGVjdGVkUXVhcnRlcmx5ID0gcGFyc2VJbnQoZXZlbnQudGFyZ2V0LnZhbHVlKTtcclxuICAgIHRoaXMuZ2V0UXVhcnRlcmx5RnJlcXVlbmN5KCk7XHJcbiAgfVxyXG5cclxuICBsaWZlY3ljbGVDaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgY29uc29sZS5sb2coJ2V2ZW50PT0+JywgZXZlbnQpO1xyXG5cclxuICAgIHN3aXRjaCAoZXZlbnQudHlwZSkge1xyXG4gICAgICBjYXNlIDA6XHJcbiAgICAgICAgdGhpcy5saWZlY3ljbGVEZXRhaWxzID0gZXZlbnQuZW5kc0J5ICsgJ35+MCc7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgMTpcclxuICAgICAgICB0aGlzLmxpZmVjeWNsZURldGFpbHMgPSAnMDAwMC0wMC0wMH5+JyArIGV2ZW50LmVuZGFmdGVyO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIDI6XHJcbiAgICAgICAgdGhpcy5saWZlY3ljbGVEZXRhaWxzID0gJzAwMDAtMDAtMDB+fjAnO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gICAgaWYgKGV2ZW50LnN0YXJ0RnJvbS50b1N0cmluZygpLmxlbmd0aCA+IDEwKSB7XHJcbiAgICAgIHRoaXMuc3RhcnREYXRlID0gTWF0aC5mbG9vcihldmVudC5zdGFydEZyb20gLyAxMDAwKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc3RhcnREYXRlID0gTWF0aC5mbG9vcihldmVudC5zdGFydEZyb20pO1xyXG4gICAgfVxyXG4gICAgbGV0IGVuZEJ5RGF0ZSA9IE1hdGguZmxvb3IoXHJcbiAgICAgIHRoaXMuZnJlcXVlbmN5U2VydmljZS5jaGFuZ2VUaW1lWm9uZShuZXcgRGF0ZSgpKT8uZ2V0VGltZSgpIC8gMTAwMCArXHJcbiAgICAgICAgODY0MDAwMDBcclxuICAgICk7XHJcbiAgICBjb25zb2xlLmxvZygnZW5kIGRhdGUnLCBlbmRCeURhdGUpO1xyXG4gICAgaWYgKGV2ZW50LnR5cGUgPT09IDApIHtcclxuICAgICAgZW5kQnlEYXRlID0gZXZlbnQuZW5kc0J5XHJcbiAgICAgICAgPyBtb21lbnQoZXZlbnQuZW5kc0J5ICsgJyAwMDowMDowMCcsICdERC1NTU0tWVlZWSBISDptbTpzcycpLnVuaXgoKVxyXG4gICAgICAgIDogZW5kQnlEYXRlO1xyXG4gICAgICBjb25zb2xlLmxvZygnZW5kQnlEYXRlJywgZW5kQnlEYXRlKTtcclxuICAgIH1cclxuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5mYWlsZWRfdGltZV91dGMgPSBlbmRCeURhdGU7XHJcbiAgICB0aGlzLmdldFF1YXJ0ZXJseUZyZXF1ZW5jeSgpO1xyXG4gIH1cclxuXHJcbiAgb25WYWx1ZUNoYW5nZShldmVudDogYW55KSB7XHJcbiAgICBpZiAoZXZlbnQudHlwZSA9PT0gJ2NvbXBsZXRlZCcpIHtcclxuICAgICAgdGhpcy5xdWFydGVybHlXaW5kb3cgPSBldmVudC52YWx1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMucXVhcnRlcmx5RmFpbGVkID0gZXZlbnQudmFsdWU7XHJcbiAgICB9XHJcbiAgICB0aGlzLmdldFF1YXJ0ZXJseUZyZXF1ZW5jeSgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0UXVhcnRlcmx5RnJlcXVlbmN5KCkge1xyXG4gICAgbGV0IG1vbnRoU2VxdWVuY2UgPVxyXG4gICAgICB0aGlzLnNlbGVjdGVkUXVhcnRlcmx5ID09PSAwXHJcbiAgICAgICAgPyB0aGlzLnF1YXJ0ZXJseUdyb3VwLnNsaWNlKDAsIDQpXHJcbiAgICAgICAgOiB0aGlzLnNlbGVjdGVkUXVhcnRlcmx5ID09PSAxXHJcbiAgICAgICAgPyB0aGlzLnF1YXJ0ZXJseUdyb3VwLnNsaWNlKDQsIDgpXHJcbiAgICAgICAgOiB0aGlzLnF1YXJ0ZXJseUdyb3VwLnNsaWNlKDgpO1xyXG4gICAgbW9udGhTZXF1ZW5jZSA9IG1vbnRoU2VxdWVuY2UubWFwKChlbGUpID0+IGVsZSArIDEpO1xyXG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLnBhdHRlcm4gPVxyXG4gICAgICA3ICsgJ34nICsgdGhpcy5xdWFydGVybHlJbnB1dCArICd+JyArIG1vbnRoU2VxdWVuY2UgKyAnficgKyAnMCc7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8uY2FzZSA9ICdxdWFydGVybHknO1xyXG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLmZhaWxlZEFmdGVyID0gdGhpcy5xdWFydGVybHlGYWlsZWQ7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8ud2luZG93ID0gdGhpcy5xdWFydGVybHlXaW5kb3c7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8udGltZUluMTJociA9IHRoaXMucXVhcnRlcmx5SW50ZXJ2YWw7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8udGltZUluMjRIciA9IHRoaXMuZnJlcXVlbmN5U2VydmljZS50aW1lRnJvbTEyaFRvMjRoKFxyXG4gICAgICB0aGlzLnF1YXJ0ZXJseUludGVydmFsXHJcbiAgICApO1xyXG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLmxpZmVjeWNsZURldGFpbHMgPSB0aGlzLmxpZmVjeWNsZURldGFpbHM7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8uc3RhcnRGcm9tID0gdGhpcy5zdGFydERhdGU7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8ucmVwb3J0SWQgPSAwO1xyXG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLnBsYWNlaG9sZGVyID0gdGhpcy5nZXRQbGFjZWhvbGRlcihcclxuICAgICAgTnVtYmVyKHRoaXMucXVhcnRlcmx5SW5wdXQpXHJcbiAgICApO1xyXG4gICAgdGhpcy5mcmVxdWVuY3lEZXRhaWxzLmVtaXQodGhpcy5mcmVxdWVuY3lJbmZvKTtcclxuICAgIGNvbnNvbGUubG9nKCcgdGhpcy5mcmVxdWVuY3lJbmZvID09PicsIHRoaXMuZnJlcXVlbmN5SW5mbyk7XHJcbiAgfVxyXG5cclxuICBnZXRQbGFjZWhvbGRlcihxdWFydGVybHlJbnB1dDogbnVtYmVyKSB7XHJcbiAgICBjb25zb2xlLmxvZyhcclxuICAgICAgJyB0aGlzLnBsYWNlaG9sZGVyID09PicsXHJcbiAgICAgIHF1YXJ0ZXJseUlucHV0LFxyXG4gICAgICBxdWFydGVybHlJbnB1dCA9PT0gMixcclxuICAgICAgdHlwZW9mIHF1YXJ0ZXJseUlucHV0XHJcbiAgICApO1xyXG4gICAgbGV0IHBsYWNlaG9sZGVyID0gJyc7XHJcblxyXG4gICAgaWYgKHF1YXJ0ZXJseUlucHV0ID09PSAxKSB7XHJcbiAgICAgIHBsYWNlaG9sZGVyID1cclxuICAgICAgICAnMXN0IG9mIGV2ZXJ5ICcgK1xyXG4gICAgICAgIHRoaXMucXVhcnRlcmx5QXJyYXlbdGhpcy5zZWxlY3RlZFF1YXJ0ZXJseV0gK1xyXG4gICAgICAgICcgYnkgJyArXHJcbiAgICAgICAgdGhpcy5xdWFydGVybHlJbnRlcnZhbDtcclxuICAgIH0gZWxzZSBpZiAocXVhcnRlcmx5SW5wdXQgPT09IDIpIHtcclxuICAgICAgcGxhY2Vob2xkZXIgPVxyXG4gICAgICAgICcybmQgb2YgZXZlcnkgJyArXHJcbiAgICAgICAgdGhpcy5xdWFydGVybHlBcnJheVt0aGlzLnNlbGVjdGVkUXVhcnRlcmx5XSArXHJcbiAgICAgICAgJyBieSAnICtcclxuICAgICAgICB0aGlzLnF1YXJ0ZXJseUludGVydmFsO1xyXG4gICAgfSBlbHNlIGlmIChxdWFydGVybHlJbnB1dCA9PT0gMykge1xyXG4gICAgICBwbGFjZWhvbGRlciA9XHJcbiAgICAgICAgJzNyZCBvZiBldmVyeSAnICtcclxuICAgICAgICB0aGlzLnF1YXJ0ZXJseUFycmF5W3RoaXMuc2VsZWN0ZWRRdWFydGVybHldICtcclxuICAgICAgICAnIGJ5ICcgK1xyXG4gICAgICAgIHRoaXMucXVhcnRlcmx5SW50ZXJ2YWw7XHJcbiAgICB9IGVsc2UgaWYgKHF1YXJ0ZXJseUlucHV0ID09PSAyMSB8fCBxdWFydGVybHlJbnB1dCA9PT0gMzEpIHtcclxuICAgICAgcGxhY2Vob2xkZXIgPVxyXG4gICAgICAgIHF1YXJ0ZXJseUlucHV0ICtcclxuICAgICAgICAnc3Qgb2YgZXZlcnkgJyArXHJcbiAgICAgICAgdGhpcy5xdWFydGVybHlBcnJheVt0aGlzLnNlbGVjdGVkUXVhcnRlcmx5XSArXHJcbiAgICAgICAgJyBieSAnICtcclxuICAgICAgICB0aGlzLnF1YXJ0ZXJseUludGVydmFsO1xyXG4gICAgfSBlbHNlIGlmIChxdWFydGVybHlJbnB1dCA9PT0gMjIpIHtcclxuICAgICAgcGxhY2Vob2xkZXIgPVxyXG4gICAgICAgIHF1YXJ0ZXJseUlucHV0ICtcclxuICAgICAgICAnbmQgb2YgZXZlcnkgJyArXHJcbiAgICAgICAgdGhpcy5xdWFydGVybHlBcnJheVt0aGlzLnNlbGVjdGVkUXVhcnRlcmx5XSArXHJcbiAgICAgICAgJyBieSAnICtcclxuICAgICAgICB0aGlzLnF1YXJ0ZXJseUludGVydmFsO1xyXG4gICAgfSBlbHNlIGlmIChxdWFydGVybHlJbnB1dCA9PT0gMjMpIHtcclxuICAgICAgcGxhY2Vob2xkZXIgPVxyXG4gICAgICAgIHF1YXJ0ZXJseUlucHV0ICtcclxuICAgICAgICAncmQgb2YgZXZlcnkgJyArXHJcbiAgICAgICAgdGhpcy5xdWFydGVybHlBcnJheVt0aGlzLnNlbGVjdGVkUXVhcnRlcmx5XSArXHJcbiAgICAgICAgJyBieSAnICtcclxuICAgICAgICB0aGlzLnF1YXJ0ZXJseUludGVydmFsO1xyXG4gICAgfSBlbHNlIGlmIChxdWFydGVybHlJbnB1dCA+IDMpIHtcclxuICAgICAgcGxhY2Vob2xkZXIgPVxyXG4gICAgICAgIHF1YXJ0ZXJseUlucHV0ICtcclxuICAgICAgICAndGggb2YgZXZlcnkgJyArXHJcbiAgICAgICAgdGhpcy5xdWFydGVybHlBcnJheVt0aGlzLnNlbGVjdGVkUXVhcnRlcmx5XSArXHJcbiAgICAgICAgJyBieSAnICtcclxuICAgICAgICB0aGlzLnF1YXJ0ZXJseUludGVydmFsO1xyXG4gICAgfVxyXG4gICAgY29uc29sZS5sb2coJyB0aGlzLnBsYWNlaG9sZGVyZWRlID09PicsIHBsYWNlaG9sZGVyKTtcclxuICAgIHJldHVybiBwbGFjZWhvbGRlcjtcclxuICB9XHJcbn1cclxuIiwiPCEtLSA8ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LWRpYWxvZy1xdWFydGVybHlcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ2eC1mcy0xMSB2eC1mdy01MDAgdngtbGFiZWwtdHh0IHZ4LXR0LXVwcGVyY2FzZSB2eC1tYi0xXCI+UkVBU1NFU1NNRU5UIEZSRVFVRU5DWTo8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktZGlhbG9nLXF1YXJ0ZXJseS1pdGVtIHZ4LW1iLTVcIj5cclxuICAgICAgICA8YXBwLWZyZXF1ZW5jeS1kaWFsb2ctdG9wPjwvYXBwLWZyZXF1ZW5jeS1kaWFsb2ctdG9wPlxyXG4gICAgICAgIDxhcHAtZnJlcXVlbmN5LWRpYWxvZy1yYWRpby1saXN0PjwvYXBwLWZyZXF1ZW5jeS1kaWFsb2ctcmFkaW8tbGlzdD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHQgdngtdHQtdXBwZXJjYXNlIHZ4LW1iLTFcIj5SRUFTU0VTU01FTlQgRU1BSUwgTk9USUZJQ0FUSU9OOjwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1kaWFsb2ctcXVhcnRlcmx5LWl0ZW0gdngtbWItNVwiPlxyXG4gICAgICAgIDxhcHAtZnJlcXVlbmN5LWRpYWxvZy1kdWUtZGF0ZT48L2FwcC1mcmVxdWVuY3ktZGlhbG9nLWR1ZS1kYXRlPlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiAtLT5cclxuXHJcbjxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktZGlhbG9nLXF1YXJ0ZXJseVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHQgdngtdHQtdXBwZXJjYXNlIHZ4LW1iLTFcIj5SRUFTU0VTU01FTlQgRlJFUVVFTkNZOjwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1kaWFsb2ctcXVhcnRlcmx5LWl0ZW0gdngtbWItNVwiPlxyXG4gICAgICAgIDwhLS0gPGFwcC1mcmVxdWVuY3ktZGlhbG9nLXRvcD48L2FwcC1mcmVxdWVuY3ktZGlhbG9nLXRvcD4gLS0+XHJcbiAgICAgICAgPGFwcC1mcmVxdWVuY3ktZGlhbG9nLXRvcFxyXG4gICAgICAgICAgICBbaWRdPVwiM1wiXHJcbiAgICAgICAgICAgIFtpbnB1dFRpbWVdPVwicXVhcnRlcmx5SW50ZXJ2YWxcIlxyXG4gICAgICAgICAgICBbb2NjdXJyZW5jZUZpcnN0XT1cInF1YXJ0ZXJseUlucHV0XCJcclxuICAgICAgICAgICAgW2ZyZXF1ZW5jeVR5cGVdPVwiM1wiXHJcbiAgICAgICAgICAgICh0aW1lQ2hhbmdlZCk9XCJvblRpbWVDaGFuZ2VkKCRldmVudClcIlxyXG4gICAgICAgICAgICAodmFsdWVDaGFuZ2VkRmlyc3QpPVwidmFsdWVDaGFuZ2VkRmlyc3QoJGV2ZW50KVwiXHJcbiAgICAgICAgPjwvYXBwLWZyZXF1ZW5jeS1kaWFsb2ctdG9wPlxyXG4gICAgICAgIDxhcHAtZnJlcXVlbmN5LWRpYWxvZy1yYWRpby1saXN0PjwvYXBwLWZyZXF1ZW5jeS1kaWFsb2ctcmFkaW8tbGlzdD5cclxuICAgICAgICA8YXBwLWZyZXF1ZW5jeS1kaWFsb2ctcmFkaW8tbGlzdFxyXG4gICAgICAgICAgICBbcmFkaW9MaXN0XT1cInF1YXJ0ZXJseUFycmF5XCIgXHJcbiAgICAgICAgICAgIFtzZWxlY3RlZEluZGV4XT1cInNlbGVjdGVkUXVhcnRlcmx5XCIgXHJcbiAgICAgICAgICAgIChzZWxlY3RlZFJhZGlvKT1cInNlbGVjdGVkTW9udGgoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgIFtuYW1lXT1cIidxdWFydGVyJ1wiPlxyXG4gICAgICAgIDwvYXBwLWZyZXF1ZW5jeS1kaWFsb2ctcmFkaW8tbGlzdD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHQgdngtdHQtdXBwZXJjYXNlIHZ4LW1iLTFcIj5SRUFTU0VTU01FTlQgRU1BSUwgTk9USUZJQ0FUSU9OOjwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1kaWFsb2ctcXVhcnRlcmx5LWl0ZW0gdngtbWItNVwiPlxyXG4gICAgICAgIDwhLS0gPGFwcC1mcmVxdWVuY3ktZGlhbG9nLWR1ZS1kYXRlPjwvYXBwLWZyZXF1ZW5jeS1kaWFsb2ctZHVlLWRhdGU+IC0tPlxyXG4gICAgICAgIDxhcHAtZnJlcXVlbmN5LWRpYWxvZy1kdWUtZGF0ZVxyXG4gICAgICAgICAgICBbaWRdID0gJzMnXHJcbiAgICAgICAgICAgIFttb2RlXT1cIm1vZGVcIlxyXG4gICAgICAgICAgICBbcGFnZU5hbWVdPVwiJ3F1YXJ0ZXJseSdcIlxyXG4gICAgICAgICAgICBbaXNEZWFjdGl2YXRlZF09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgIFtjb21wbGV0ZWRWYWx1ZV09XCJxdWFydGVybHlXaW5kb3dcIlxyXG4gICAgICAgICAgICAodmFsdWVDaGFuZ2UpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICA+PC9hcHAtZnJlcXVlbmN5LWRpYWxvZy1kdWUtZGF0ZT5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj4iXX0=
213
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlcXVlbmN5LWRpYWxvZy1xdWFydGVybHkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9mcmVxdWVuY3ktZGlhbG9nL2ZyZXF1ZW5jeS1kaWFsb2ctcXVhcnRlcmx5L2ZyZXF1ZW5jeS1kaWFsb2ctcXVhcnRlcmx5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3NoYXJlZENvbXBvbmVudHMvZnJlcXVlbmN5LWRpYWxvZy9mcmVxdWVuY3ktZGlhbG9nLXF1YXJ0ZXJseS9mcmVxdWVuY3ktZGlhbG9nLXF1YXJ0ZXJseS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sTUFBTSxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBUW5DLE1BQU0sT0FBTyxpQ0FBaUM7SUF5QjVDLFlBQW9CLGdCQUFrQztRQUFsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBeEJ0RCxzQkFBaUIsR0FBRyxVQUFVLENBQUM7UUFDL0IsbUJBQWMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQztRQUM3RSxvQkFBZSxHQUFHLENBQUMsQ0FBQztRQUNwQixvQkFBZSxHQUFHLENBQUMsQ0FBQztRQUNwQixzQkFBaUIsR0FBRyxDQUFDLENBQUM7UUFDdEIsNEJBQXVCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUM7UUFDM0UsOEJB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Q0FBQyxpQkFBaUIsQ0FBQztTQUMxQjthQUFNLElBQUksY0FBYyxLQUFLLEVBQUUsRUFBRTtZQUNoQyxXQUFXO2dCQUNULGNBQWM7b0JBQ2QsY0FBYztvQkFDZCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztvQkFDM0MsTUFBTTtvQkFDTixJQUFJLENBQUMsaUJBQWlCLENBQUM7U0FDMUI7YUFBTSxJQUFJLGNBQWMsR0FBRyxDQUFDLEVBQUU7WUFDN0IsV0FBVztnQkFDVCxjQUFjO29CQUNkLGNBQWM7b0JBQ2QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUM7b0JBQzNDLE1BQU07b0JBQ04sSUFBSSxDQUFDLGlCQUFpQixDQUFDO1NBQzFCO1FBQ0QsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQzs7OEhBbE5VLGlDQUFpQztrSEFBakMsaUNBQWlDLDJNQ1Q5QywwOENBaUNBOzJGRHhCYSxpQ0FBaUM7a0JBTDdDLFNBQVM7K0JBQ0UsZ0NBQWdDO3VHQXNCakMsSUFBSTtzQkFBWixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFHSSxnQkFBZ0I7c0JBQXpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50L21vbWVudCc7XHJcbmltcG9ydCB7IEZyZXF1ZW5jeVNlcnZpY2UgfSBmcm9tICcuLi8uLi9mcmVxdWVuY3kvZnJlcXVlbmN5LnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtZnJlcXVlbmN5LWRpYWxvZy1xdWFydGVybHknLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9mcmVxdWVuY3ktZGlhbG9nLXF1YXJ0ZXJseS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZnJlcXVlbmN5LWRpYWxvZy1xdWFydGVybHkuY29tcG9uZW50Lmxlc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEZyZXF1ZW5jeURpYWxvZ1F1YXJ0ZXJseUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgcXVhcnRlcmx5SW50ZXJ2YWwgPSAnMTE6MDAgcG0nO1xyXG4gIHF1YXJ0ZXJseUlucHV0ID0gdGhpcy5mcmVxdWVuY3lTZXJ2aWNlLmNoYW5nZVRpbWVab25lKG5ldyBEYXRlKCkpPy5nZXREYXRlKCk7XHJcbiAgcXVhcnRlcmx5RmFpbGVkID0gNTtcclxuICBxdWFydGVybHlXaW5kb3cgPSA3O1xyXG4gIHNlbGVjdGVkUXVhcnRlcmx5ID0gMTtcclxuICBxdWFydGVybHlMaWZlQ3ljbGVTdGFydCA9IHRoaXMuZnJlcXVlbmN5U2VydmljZS5jaGFuZ2VUaW1lWm9uZShuZXcgRGF0ZSgpKTtcclxuICBxdWFydGVybHlMaWZlQ3ljbGVFbmRUaW1lID0gbmV3IERhdGUoXHJcbiAgICB0aGlzLnF1YXJ0ZXJseUxpZmVDeWNsZVN0YXJ0LmdldFRpbWUoKSArIDg2NDAwMDAwXHJcbiAgKTtcclxuICBxdWFydGVybHlMaWZlY3ljbGVPY2N1cmFuY2UgPSAxMDtcclxuICBxdWFydGVybHlTZWxldGVkTGlmZWN5Y2xlVHlwZSA9IDI7XHJcbiAgcXVhcnRlcmx5R3JvdXAgPSBbMCwgMywgNiwgOSwgMSwgNCwgNywgMTAsIDIsIDUsIDgsIDExXTtcclxuICBmcmVxdWVuY3lJbmZvOiBhbnk7XHJcbiAgcXVhcnRlcmx5QXJyYXk6IEFycmF5PHN0cmluZz4gPSBbXTtcclxuICBxdWFydGVybHlFeHRlbnNpb246IG51bWJlciA9IDU7XHJcbiAgcXVhcnRlcmx5V2luZG93T3BlbjogbnVtYmVyID0gNztcclxuXHJcbiAgQElucHV0KCkgbW9kZTogYW55ID0gJyc7XHJcbiAgQElucHV0KCkgc3RhcnREYXRlID0gTWF0aC5mbG9vcihEYXRlLm5vdygpIC8gMTAwMCk7XHJcbiAgQElucHV0KCkgZnJlcXVlbmN5RGF0YTogYW55O1xyXG4gIGxpZmVjeWNsZURldGFpbHM6IGFueSA9ICcwMDAwLTAwLTAwfn4wJztcclxuXHJcbiAgQE91dHB1dCgpIGZyZXF1ZW5jeURldGFpbHMgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmcmVxdWVuY3lTZXJ2aWNlOiBGcmVxdWVuY3lTZXJ2aWNlKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZnJlcXVlbmN5SW5mbyA9IE9iamVjdC5hc3NpZ24odGhpcy5mcmVxdWVuY3lTZXJ2aWNlPy5mcmVxdWVuY3lJbmZvKTtcclxuICAgIHRoaXMucXVhcnRlcmx5QXJyYXkgPSBbLi4ubmV3IFNldCh0aGlzLmZyZXF1ZW5jeVNlcnZpY2UucXVhcnRlcmx5TW9udGgpXTtcclxuICAgIGNvbnN0IGluZGV4T2ZNb250aCA9IHRoaXMucXVhcnRlcmx5R3JvdXAuaW5kZXhPZihcclxuICAgICAgdGhpcy5mcmVxdWVuY3lTZXJ2aWNlLmNoYW5nZVRpbWVab25lKG5ldyBEYXRlKCkpPy5nZXRNb250aCgpXHJcbiAgICApO1xyXG4gICAgdGhpcy5zZWxlY3RlZFF1YXJ0ZXJseSA9XHJcbiAgICAgIGluZGV4T2ZNb250aCA8IDQgPyAwIDogaW5kZXhPZk1vbnRoID4gMyAmJiBpbmRleE9mTW9udGggPCA4ID8gMSA6IDI7XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMuZnJlcXVlbmN5RGF0YT8ucGF0dGVybiAhPSAnJyAmJlxyXG4gICAgICBwYXJzZUludCh0aGlzLmZyZXF1ZW5jeURhdGE/LnBhdHRlcm4/LnNwbGl0KCd+JylbMF0pID09PSA3XHJcbiAgICApIHtcclxuICAgICAgdGhpcy5wb3B1bGF0ZUZyZXF1ZW5jeSgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5nZXRRdWFydGVybHlGcmVxdWVuY3koKTtcclxuICB9XHJcblxyXG4gIHBvcHVsYXRlRnJlcXVlbmN5KCkge1xyXG4gICAgY29uc3QgcGF0dGVybkluZm8gPSB0aGlzLmZyZXF1ZW5jeURhdGE/LnBhdHRlcm4uc3BsaXQoJ34nKTtcclxuICAgIGNvbnN0IG1vbnRoID0gcGFyc2VJbnQocGF0dGVybkluZm9bMl0uc3BsaXQoJywnKS5tYXAoTnVtYmVyKVswXSk7XHJcbiAgICBjb25zdCBpbmRleCA9IHRoaXMucXVhcnRlcmx5R3JvdXAuaW5kZXhPZihtb250aCAtIDEpO1xyXG4gICAgdGhpcy5zZWxlY3RlZFF1YXJ0ZXJseSA9IGluZGV4IDwgNCA/IDAgOiBpbmRleCA+IDMgJiYgaW5kZXggPCA4ID8gMSA6IDI7XHJcbiAgICB0aGlzLnF1YXJ0ZXJseUludGVydmFsID0gdGhpcy5mcmVxdWVuY3lEYXRhPy5mYWlsZWRUaW1lO1xyXG4gICAgdGhpcy5xdWFydGVybHlXaW5kb3cgPSB0aGlzLmZyZXF1ZW5jeURhdGE/LndpbmRvdztcclxuICAgIHRoaXMucXVhcnRlcmx5SW5wdXQgPSBwYXR0ZXJuSW5mb1sxXTtcclxuICAgIHRoaXMucXVhcnRlcmx5TGlmZWN5Y2xlT2NjdXJhbmNlID0gTnVtYmVyKHBhdHRlcm5JbmZvWzFdKTtcclxuICAgIHRoaXMuc3RhcnREYXRlID0gdGhpcy5mcmVxdWVuY3lEYXRhPy5zdGFydERhdGU7XHJcbiAgICB0aGlzLnF1YXJ0ZXJseUxpZmVDeWNsZVN0YXJ0ID0gbmV3IERhdGUoXHJcbiAgICAgIHRoaXMuZnJlcXVlbmN5RGF0YT8uc3RhcnREYXRlICogMTAwMFxyXG4gICAgKTtcclxuICAgIHRoaXMucXVhcnRlcmx5RmFpbGVkID0gdGhpcy5mcmVxdWVuY3lEYXRhPy5mYWlsZWQ7XHJcbiAgICB0aGlzLmxpZmVjeWNsZURldGFpbHMgPSB0aGlzLmZyZXF1ZW5jeURhdGE/LmxpZmVjeWNsZTtcclxuICAgIHRoaXMucXVhcnRlcmx5V2luZG93T3BlbiA9IHRoaXMuZnJlcXVlbmN5RGF0YT8uY2FuX2Fzc2Vzc19iZWZvcmVfZGF5cztcclxuICAgIHRoaXMucXVhcnRlcmx5RXh0ZW5zaW9uID0gdGhpcy5mcmVxdWVuY3lEYXRhPy5mYWlsZWRfYWZ0ZXJfZGF5cztcclxuICB9XHJcblxyXG4gIHZhbHVlQ2hhbmdlZEZpcnN0KGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMucXVhcnRlcmx5SW5wdXQgPSBldmVudC52YWx1ZTtcclxuICAgIHRoaXMuZ2V0UXVhcnRlcmx5RnJlcXVlbmN5KCk7XHJcbiAgfVxyXG5cclxuICBvblRpbWVDaGFuZ2VkKGV2ZW50OiBzdHJpbmcpIHtcclxuICAgIHRoaXMucXVhcnRlcmx5SW50ZXJ2YWwgPSBldmVudDtcclxuICAgIHRoaXMuZ2V0UXVhcnRlcmx5RnJlcXVlbmN5KCk7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RlZE1vbnRoKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRRdWFydGVybHkgPSBwYXJzZUludChldmVudC50YXJnZXQudmFsdWUpO1xyXG4gICAgdGhpcy5nZXRRdWFydGVybHlGcmVxdWVuY3koKTtcclxuICB9XHJcblxyXG4gIGxpZmVjeWNsZUNoYW5nZShldmVudDogYW55KSB7XHJcbiAgICBzd2l0Y2ggKGV2ZW50LnR5cGUpIHtcclxuICAgICAgY2FzZSAwOlxyXG4gICAgICAgIHRoaXMubGlmZWN5Y2xlRGV0YWlscyA9IGV2ZW50LmVuZHNCeSArICd+fjAnO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIDE6XHJcbiAgICAgICAgdGhpcy5saWZlY3ljbGVEZXRhaWxzID0gJzAwMDAtMDAtMDB+ficgKyBldmVudC5lbmRhZnRlcjtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAyOlxyXG4gICAgICAgIHRoaXMubGlmZWN5Y2xlRGV0YWlscyA9ICcwMDAwLTAwLTAwfn4wJztcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICAgIGlmIChldmVudC5zdGFydEZyb20udG9TdHJpbmcoKS5sZW5ndGggPiAxMCkge1xyXG4gICAgICB0aGlzLnN0YXJ0RGF0ZSA9IE1hdGguZmxvb3IoZXZlbnQuc3RhcnRGcm9tIC8gMTAwMCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnN0YXJ0RGF0ZSA9IE1hdGguZmxvb3IoZXZlbnQuc3RhcnRGcm9tKTtcclxuICAgIH1cclxuICAgIGxldCBlbmRCeURhdGUgPSBNYXRoLmZsb29yKFxyXG4gICAgICB0aGlzLmZyZXF1ZW5jeVNlcnZpY2UuY2hhbmdlVGltZVpvbmUobmV3IERhdGUoKSk/LmdldFRpbWUoKSAvIDEwMDAgK1xyXG4gICAgICAgIDg2NDAwMDAwXHJcbiAgICApO1xyXG4gICAgaWYgKGV2ZW50LnR5cGUgPT09IDApIHtcclxuICAgICAgZW5kQnlEYXRlID0gZXZlbnQuZW5kc0J5XHJcbiAgICAgICAgPyBtb21lbnQoZXZlbnQuZW5kc0J5ICsgJyAwMDowMDowMCcsICdERC1NTU0tWVlZWSBISDptbTpzcycpLnVuaXgoKVxyXG4gICAgICAgIDogZW5kQnlEYXRlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLmZhaWxlZF90aW1lX3V0YyA9IGVuZEJ5RGF0ZTtcclxuICAgIHRoaXMuZ2V0UXVhcnRlcmx5RnJlcXVlbmN5KCk7XHJcbiAgfVxyXG5cclxuICBvblZhbHVlQ2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmIChldmVudC50eXBlID09PSAnY29tcGxldGVkJykge1xyXG4gICAgICB0aGlzLnF1YXJ0ZXJseVdpbmRvdyA9IGV2ZW50LnZhbHVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5xdWFydGVybHlGYWlsZWQgPSBldmVudC52YWx1ZTtcclxuICAgIH1cclxuICAgIHRoaXMuZ2V0UXVhcnRlcmx5RnJlcXVlbmN5KCk7XHJcbiAgfVxyXG5cclxuICBvbldpbmRvd09wZW5DaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKGV2ZW50Py50eXBlPy50b0xvd2VyQ2FzZSgpID09PSAnd2luZG93IG9wZW4nKSB7XHJcbiAgICAgIHRoaXMucXVhcnRlcmx5V2luZG93T3BlbiA9IGV2ZW50Py52YWx1ZTtcclxuICAgIH1cclxuICAgIHRoaXMuZ2V0UXVhcnRlcmx5RnJlcXVlbmN5KCk7XHJcbiAgfVxyXG5cclxuICBvbkV4dGVuc2lvbkNoYW5nZShldmVudDogYW55KSB7XHJcbiAgICBpZiAoZXZlbnQ/LnR5cGU/LnRvTG93ZXJDYXNlKCkgPT09ICdleHRlbnNpb24nKSB7XHJcbiAgICAgIHRoaXMucXVhcnRlcmx5RXh0ZW5zaW9uID0gZXZlbnQudmFsdWU7XHJcbiAgICB9XHJcbiAgICB0aGlzLmdldFF1YXJ0ZXJseUZyZXF1ZW5jeSgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0UXVhcnRlcmx5RnJlcXVlbmN5KCkge1xyXG4gICAgbGV0IG1vbnRoU2VxdWVuY2UgPVxyXG4gICAgICB0aGlzLnNlbGVjdGVkUXVhcnRlcmx5ID09PSAwXHJcbiAgICAgICAgPyB0aGlzLnF1YXJ0ZXJseUdyb3VwLnNsaWNlKDAsIDQpXHJcbiAgICAgICAgOiB0aGlzLnNlbGVjdGVkUXVhcnRlcmx5ID09PSAxXHJcbiAgICAgICAgPyB0aGlzLnF1YXJ0ZXJseUdyb3VwLnNsaWNlKDQsIDgpXHJcbiAgICAgICAgOiB0aGlzLnF1YXJ0ZXJseUdyb3VwLnNsaWNlKDgpO1xyXG4gICAgbW9udGhTZXF1ZW5jZSA9IG1vbnRoU2VxdWVuY2UubWFwKChlbGUpID0+IGVsZSArIDEpO1xyXG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLnBhdHRlcm4gPVxyXG4gICAgICA3ICsgJ34nICsgdGhpcy5xdWFydGVybHlJbnB1dCArICd+JyArIG1vbnRoU2VxdWVuY2UgKyAnficgKyAnMCc7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8uY2FzZSA9ICdxdWFydGVybHknO1xyXG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLmZhaWxlZEFmdGVyID0gdGhpcy5xdWFydGVybHlGYWlsZWQ7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8ud2luZG93ID0gdGhpcy5xdWFydGVybHlXaW5kb3c7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8udGltZUluMTJociA9IHRoaXMucXVhcnRlcmx5SW50ZXJ2YWw7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8udGltZUluMjRIciA9IHRoaXMuZnJlcXVlbmN5U2VydmljZS50aW1lRnJvbTEyaFRvMjRoKFxyXG4gICAgICB0aGlzLnF1YXJ0ZXJseUludGVydmFsXHJcbiAgICApO1xyXG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLmxpZmVjeWNsZURldGFpbHMgPSB0aGlzLmxpZmVjeWNsZURldGFpbHM7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8uc3RhcnRGcm9tID0gdGhpcy5zdGFydERhdGU7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8ucmVwb3J0SWQgPSAwO1xyXG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLnBsYWNlaG9sZGVyID0gdGhpcy5nZXRQbGFjZWhvbGRlcihcclxuICAgICAgTnVtYmVyKHRoaXMucXVhcnRlcmx5SW5wdXQpXHJcbiAgICApO1xyXG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLmZhaWxlZF9hZnRlcl9kYXlzID0gdGhpcy5xdWFydGVybHlFeHRlbnNpb247XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8uY2FuX2Fzc2Vzc19iZWZvcmVfZGF5cyA9IHRoaXMucXVhcnRlcmx5V2luZG93T3BlbjtcclxuICAgIHRoaXMuZnJlcXVlbmN5RGV0YWlscy5lbWl0KHRoaXMuZnJlcXVlbmN5SW5mbyk7XHJcbiAgICBjb25zb2xlLmxvZygnIHRoaXMuZnJlcXVlbmN5SW5mbyA9PT4nLCB0aGlzLmZyZXF1ZW5jeUluZm8pO1xyXG4gIH1cclxuXHJcbiAgZ2V0UGxhY2Vob2xkZXIocXVhcnRlcmx5SW5wdXQ6IG51bWJlcikge1xyXG4gICAgbGV0IHBsYWNlaG9sZGVyID0gJyc7XHJcbiAgICBpZiAocXVhcnRlcmx5SW5wdXQgPT09IDEpIHtcclxuICAgICAgcGxhY2Vob2xkZXIgPVxyXG4gICAgICAgICcxc3Qgb2YgZXZlcnkgJyArXHJcbiAgICAgICAgdGhpcy5xdWFydGVybHlBcnJheVt0aGlzLnNlbGVjdGVkUXVhcnRlcmx5XSArXHJcbiAgICAgICAgJyBieSAnICtcclxuICAgICAgICB0aGlzLnF1YXJ0ZXJseUludGVydmFsO1xyXG4gICAgfSBlbHNlIGlmIChxdWFydGVybHlJbnB1dCA9PT0gMikge1xyXG4gICAgICBwbGFjZWhvbGRlciA9XHJcbiAgICAgICAgJzJuZCBvZiBldmVyeSAnICtcclxuICAgICAgICB0aGlzLnF1YXJ0ZXJseUFycmF5W3RoaXMuc2VsZWN0ZWRRdWFydGVybHldICtcclxuICAgICAgICAnIGJ5ICcgK1xyXG4gICAgICAgIHRoaXMucXVhcnRlcmx5SW50ZXJ2YWw7XHJcbiAgICB9IGVsc2UgaWYgKHF1YXJ0ZXJseUlucHV0ID09PSAzKSB7XHJcbiAgICAgIHBsYWNlaG9sZGVyID1cclxuICAgICAgICAnM3JkIG9mIGV2ZXJ5ICcgK1xyXG4gICAgICAgIHRoaXMucXVhcnRlcmx5QXJyYXlbdGhpcy5zZWxlY3RlZFF1YXJ0ZXJseV0gK1xyXG4gICAgICAgICcgYnkgJyArXHJcbiAgICAgICAgdGhpcy5xdWFydGVybHlJbnRlcnZhbDtcclxuICAgIH0gZWxzZSBpZiAocXVhcnRlcmx5SW5wdXQgPT09IDIxIHx8IHF1YXJ0ZXJseUlucHV0ID09PSAzMSkge1xyXG4gICAgICBwbGFjZWhvbGRlciA9XHJcbiAgICAgICAgcXVhcnRlcmx5SW5wdXQgK1xyXG4gICAgICAgICdzdCBvZiBldmVyeSAnICtcclxuICAgICAgICB0aGlzLnF1YXJ0ZXJseUFycmF5W3RoaXMuc2VsZWN0ZWRRdWFydGVybHldICtcclxuICAgICAgICAnIGJ5ICcgK1xyXG4gICAgICAgIHRoaXMucXVhcnRlcmx5SW50ZXJ2YWw7XHJcbiAgICB9IGVsc2UgaWYgKHF1YXJ0ZXJseUlucHV0ID09PSAyMikge1xyXG4gICAgICBwbGFjZWhvbGRlciA9XHJcbiAgICAgICAgcXVhcnRlcmx5SW5wdXQgK1xyXG4gICAgICAgICduZCBvZiBldmVyeSAnICtcclxuICAgICAgICB0aGlzLnF1YXJ0ZXJseUFycmF5W3RoaXMuc2VsZWN0ZWRRdWFydGVybHldICtcclxuICAgICAgICAnIGJ5ICcgK1xyXG4gICAgICAgIHRoaXMucXVhcnRlcmx5SW50ZXJ2YWw7XHJcbiAgICB9IGVsc2UgaWYgKHF1YXJ0ZXJseUlucHV0ID09PSAyMykge1xyXG4gICAgICBwbGFjZWhvbGRlciA9XHJcbiAgICAgICAgcXVhcnRlcmx5SW5wdXQgK1xyXG4gICAgICAgICdyZCBvZiBldmVyeSAnICtcclxuICAgICAgICB0aGlzLnF1YXJ0ZXJseUFycmF5W3RoaXMuc2VsZWN0ZWRRdWFydGVybHldICtcclxuICAgICAgICAnIGJ5ICcgK1xyXG4gICAgICAgIHRoaXMucXVhcnRlcmx5SW50ZXJ2YWw7XHJcbiAgICB9IGVsc2UgaWYgKHF1YXJ0ZXJseUlucHV0ID4gMykge1xyXG4gICAgICBwbGFjZWhvbGRlciA9XHJcbiAgICAgICAgcXVhcnRlcmx5SW5wdXQgK1xyXG4gICAgICAgICd0aCBvZiBldmVyeSAnICtcclxuICAgICAgICB0aGlzLnF1YXJ0ZXJseUFycmF5W3RoaXMuc2VsZWN0ZWRRdWFydGVybHldICtcclxuICAgICAgICAnIGJ5ICcgK1xyXG4gICAgICAgIHRoaXMucXVhcnRlcmx5SW50ZXJ2YWw7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcGxhY2Vob2xkZXI7XHJcbiAgfVxyXG59XHJcbiIsIlxyXG48ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LWRpYWxvZy1xdWFydGVybHlcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ2eC1mcy0xMSB2eC1mdy01MDAgdngtbGFiZWwtdHh0IHZ4LXR0LXVwcGVyY2FzZSB2eC1tYi0xXCI+UkVBU1NFU1NNRU5UIEZSRVFVRU5DWTo8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktZGlhbG9nLXF1YXJ0ZXJseS1pdGVtIHZ4LW1iLTVcIj5cclxuICAgICAgICA8YXBwLWZyZXF1ZW5jeS1kaWFsb2ctdG9wXHJcbiAgICAgICAgICAgIFtpZF09XCIzXCJcclxuICAgICAgICAgICAgW2lucHV0VGltZV09XCJxdWFydGVybHlJbnRlcnZhbFwiXHJcbiAgICAgICAgICAgIFtvY2N1cnJlbmNlRmlyc3RdPVwicXVhcnRlcmx5SW5wdXRcIlxyXG4gICAgICAgICAgICBbZnJlcXVlbmN5VHlwZV09XCIzXCJcclxuICAgICAgICAgICAgKHRpbWVDaGFuZ2VkKT1cIm9uVGltZUNoYW5nZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICh2YWx1ZUNoYW5nZWRGaXJzdCk9XCJ2YWx1ZUNoYW5nZWRGaXJzdCgkZXZlbnQpXCJcclxuICAgICAgICA+PC9hcHAtZnJlcXVlbmN5LWRpYWxvZy10b3A+XHJcbiAgICAgICAgPGFwcC1mcmVxdWVuY3ktZGlhbG9nLXJhZGlvLWxpc3Q+PC9hcHAtZnJlcXVlbmN5LWRpYWxvZy1yYWRpby1saXN0PlxyXG4gICAgICAgIDxhcHAtZnJlcXVlbmN5LWRpYWxvZy1yYWRpby1saXN0XHJcbiAgICAgICAgICAgIFtyYWRpb0xpc3RdPVwicXVhcnRlcmx5QXJyYXlcIlxyXG4gICAgICAgICAgICBbc2VsZWN0ZWRJbmRleF09XCJzZWxlY3RlZFF1YXJ0ZXJseVwiXHJcbiAgICAgICAgICAgIChzZWxlY3RlZFJhZGlvKT1cInNlbGVjdGVkTW9udGgoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgIFtuYW1lXT1cIidxdWFydGVyJ1wiPlxyXG4gICAgICAgIDwvYXBwLWZyZXF1ZW5jeS1kaWFsb2ctcmFkaW8tbGlzdD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGFwcC1mcmVxdWVuY3ktZGlhbG9nLWR1ZS1kYXRlXHJcbiAgICAgIFtpZF0gPSAnMydcclxuICAgICAgW21vZGVdPVwibW9kZVwiXHJcbiAgICAgIFtwYWdlTmFtZV09XCIncXVhcnRlcmx5J1wiXHJcbiAgICAgIFtpc0RlYWN0aXZhdGVkXT1cImZhbHNlXCJcclxuICAgICAgW2NvbXBsZXRlZFZhbHVlXT1cInF1YXJ0ZXJseVdpbmRvd1wiXHJcbiAgICAgIFt3aW5kb3dDbG9zZXNdPVwicXVhcnRlcmx5RXh0ZW5zaW9uXCJcclxuICAgICAgW2Fzc2Vzc1dpbmRvd09wZW5dPVwicXVhcnRlcmx5V2luZG93T3BlblwiXHJcbiAgICAgICh2YWx1ZUNoYW5nZSk9XCJvblZhbHVlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAod2luZG93T3BlbkNoYW5nZSk9XCJvbldpbmRvd09wZW5DaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgIChleHRlbnNpb25WYWx1ZUNoYW5nZSk9XCJvbkV4dGVuc2lvbkNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgPjwvYXBwLWZyZXF1ZW5jeS1kaWFsb2ctZHVlLWRhdGU+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -8,15 +8,12 @@ import * as i4 from "../frequency-dialog-checkbox-list/frequency-dialog-checkbox
8
8
  export class FrequencyDialogWeeklyComponent {
9
9
  constructor(frequencyService) {
10
10
  this.frequencyService = frequencyService;
11
- this.mode = '';
12
11
  this.weeklyInterval = '11:00 pm';
13
12
  this.weeklyInput = 1;
14
- // weeklyFailed = 2;
15
13
  this.weeklyWindow = 2;
16
14
  this.weeklyLifeCycleStart = this.frequencyService.changeTimeZone(new Date());
17
15
  this.weeklyLifeCycleEndTime = new Date(this.weeklyLifeCycleStart.getTime() + 86400000);
18
16
  this.weeklyLifecycleOccurance = 10;
19
- // weeklySeletedLifecycleType = 2;
20
17
  this.selectedWeekly = [
21
18
  this.frequencyService.changeTimeZone(new Date())?.getDay() == 0
22
19
  ? 6
@@ -25,13 +22,15 @@ export class FrequencyDialogWeeklyComponent {
25
22
  this.weeklyDeactivatedValue = 10;
26
23
  this.dayArray = [];
27
24
  this.lifecycleDetails = '0000-00-00~~0';
25
+ this.weeklyExtension = 2;
26
+ this.weeklyWindowOpen = 2;
27
+ this.mode = '';
28
28
  this.startDate = Math.floor(Date.now() / 1000);
29
29
  this.frequencyDetails = new EventEmitter();
30
30
  }
31
31
  ngOnInit() {
32
32
  this.dayArray = [...new Set(this.frequencyService.dayName)];
33
33
  this.frequencyInfo = Object.assign(this.frequencyService.frequencyInfo);
34
- console.log('this.frequencyData ==>', this.frequencyData);
35
34
  if (this.frequencyData?.pattern != '' &&
36
35
  parseInt(this.frequencyData?.pattern?.split('~')[0]) === 2) {
37
36
  this.populateFrequency();
@@ -51,19 +50,18 @@ export class FrequencyDialogWeeklyComponent {
51
50
  this.frequencyData?.startFrom ?? this.frequencyData?.startDate;
52
51
  this.weeklyLifeCycleStart = new Date((this.frequencyData?.startDate ?? this.frequencyData?.startDate) * 1000);
53
52
  this.weeklyDeactivatedValue = this.frequencyData?.continuous_failed_days;
53
+ this.weeklyWindowOpen = this.frequencyData?.can_assess_before_days;
54
+ this.weeklyExtension = this.frequencyData?.failed_after_days;
54
55
  }
55
56
  onTimeChanged(event) {
56
- console.log('time event =>', event);
57
57
  this.weeklyInterval = event;
58
58
  this.getWeeklyFrequency();
59
59
  }
60
60
  valueChangedFirst(event) {
61
- console.log('event ==>', event);
62
61
  this.weeklyInput = event.value;
63
62
  this.getWeeklyFrequency();
64
63
  }
65
64
  onDaySelected(event) {
66
- console.log('evnet', event);
67
65
  if (event.checked) {
68
66
  this.selectedWeekly.push(event.index);
69
67
  }
@@ -73,7 +71,6 @@ export class FrequencyDialogWeeklyComponent {
73
71
  this.getWeeklyFrequency();
74
72
  }
75
73
  lifecycleChange(event) {
76
- console.log('event==>', event);
77
74
  switch (event.type) {
78
75
  case 0:
79
76
  this.lifecycleDetails = event.endsBy + '~~0';
@@ -86,22 +83,17 @@ export class FrequencyDialogWeeklyComponent {
86
83
  break;
87
84
  }
88
85
  if (event.startFrom.toString().length > 10) {
89
- console.log('start 1111');
90
86
  this.startDate = Math.floor(event.startFrom / 1000);
91
87
  }
92
88
  else {
93
- console.log('start 11112222');
94
89
  this.startDate = Math.floor(event.startFrom);
95
90
  }
96
91
  let endByDate = Math.floor(this.frequencyService.changeTimeZone(new Date())?.getTime() / 1000 +
97
92
  86400000);
98
- console.log('strat date ====>', this.startDate);
99
- console.log('end date', endByDate);
100
93
  if (event.type === 0) {
101
94
  endByDate = event.endsBy
102
95
  ? moment(event.endsBy + ' 00:00:00', 'DD-MMM-YYYY HH:mm:ss').unix()
103
96
  : endByDate;
104
- console.log('endByDate', endByDate);
105
97
  }
106
98
  this.weeklyLifeCycleStart = new Date(this.startDate * 1000);
107
99
  this.frequencyInfo.failed_time_utc = endByDate;
@@ -119,6 +111,18 @@ export class FrequencyDialogWeeklyComponent {
119
111
  }
120
112
  this.getWeeklyFrequency();
121
113
  }
114
+ onWindowOpenChange(event) {
115
+ if (event?.type?.toLowerCase() === 'window open') {
116
+ this.weeklyWindowOpen = event?.value;
117
+ }
118
+ this.getWeeklyFrequency();
119
+ }
120
+ onExtensionChange(event) {
121
+ if (event?.type?.toLowerCase() === 'extension') {
122
+ this.weeklyExtension = event.value;
123
+ }
124
+ this.getWeeklyFrequency();
125
+ }
122
126
  getWeeklyFrequency() {
123
127
  this.selectedWeekly = this.selectedWeekly.sort((n1, n2) => n1 - n2);
124
128
  this.frequencyInfo.placeholder = this.getPlaceholder(Number(this.weeklyInput));
@@ -131,7 +135,6 @@ export class FrequencyDialogWeeklyComponent {
131
135
  '~' +
132
136
  this.weeklyInput;
133
137
  this.frequencyInfo.case = 'week';
134
- // this.frequencyInfo.failedAfter = this.weeklyFailed;
135
138
  this.frequencyInfo.window = this.weeklyWindow;
136
139
  this.frequencyInfo.timeIn12hr = this.weeklyInterval;
137
140
  this.frequencyInfo.timeIn24Hr = this.frequencyService.timeFrom12hTo24h(this.weeklyInterval);
@@ -140,8 +143,9 @@ export class FrequencyDialogWeeklyComponent {
140
143
  this.startDate ?? Math.floor(Date.now() / 1000);
141
144
  this.frequencyInfo.reportId = 0;
142
145
  this.frequencyInfo.continuous_failed_days = this.weeklyDeactivatedValue;
146
+ this.frequencyInfo.failed_after_days = this.weeklyExtension;
147
+ this.frequencyInfo.can_assess_before_days = this.weeklyWindowOpen;
143
148
  this.frequencyDetails.emit(this.frequencyInfo);
144
- console.log(' this.frequencyInfo ==>', this.frequencyInfo);
145
149
  }
146
150
  getPlaceholder(weeklyInput) {
147
151
  let placeholder = '';
@@ -177,10 +181,10 @@ export class FrequencyDialogWeeklyComponent {
177
181
  }
178
182
  }
179
183
  FrequencyDialogWeeklyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FrequencyDialogWeeklyComponent, deps: [{ token: i1.FrequencyService }], target: i0.ɵɵFactoryTarget.Component });
180
- FrequencyDialogWeeklyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: FrequencyDialogWeeklyComponent, selector: "app-frequency-dialog-weekly", inputs: { mode: "mode", startDate: "startDate", frequencyData: "frequencyData" }, outputs: { frequencyDetails: "frequencyDetails" }, ngImport: i0, template: "<div class=\"frequency-dialog-weekly\">\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-weekly-item vx-mb-5\">\r\n <!-- <app-frequency-dialog-top></app-frequency-dialog-top> -->\r\n <app-frequency-dialog-top\r\n [id]=\"1\"\r\n [inputTime]=\"weeklyInterval\"\r\n [occurrenceFirst]=\"weeklyInput\"\r\n [frequencyType]=\"1\"\r\n (timeChanged)=\"onTimeChanged($event)\"\r\n (valueChangedFirst)=\"valueChangedFirst($event)\"\r\n ></app-frequency-dialog-top>\r\n <!-- <app-frequency-dialog-checkbox-list></app-frequency-dialog-checkbox-list> -->\r\n <app-frequency-dialog-checkbox-list\r\n [id]=\"1\"\r\n [listArray]=\"dayArray\"\r\n [selectedIndex]=\"selectedWeekly\"\r\n (selectedCheckbox)=\"onDaySelected($event)\"\r\n ></app-frequency-dialog-checkbox-list>\r\n </div>\r\n <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">REASSESSMENT EMAIL NOTIFICATION:</div>\r\n <div class=\"frequency-dialog-weekly-item vx-mb-5\">\r\n <!-- <app-frequency-dialog-due-date></app-frequency-dialog-due-date> -->\r\n <app-frequency-dialog-due-date\r\n [id] = '1'\r\n [mode]=\"mode\"\r\n [pageName]=\"'weekly'\"\r\n [deactivateValue]=\"weeklyDeactivatedValue\"\r\n [isDeactivated]=\"true\"\r\n [completedValue]=\"weeklyWindow\"\r\n (valueChange)=\"onValueChange($event)\"\r\n ></app-frequency-dialog-due-date>\r\n </div>\r\n</div>", 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-weekly-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"], outputs: ["valueChange"] }, { kind: "component", type: i4.FrequencyDialogCheckboxListComponent, selector: "app-frequency-dialog-checkbox-list", inputs: ["id", "listArray", "selectedIndex"], outputs: ["selectedCheckbox"] }] });
184
+ FrequencyDialogWeeklyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: FrequencyDialogWeeklyComponent, selector: "app-frequency-dialog-weekly", inputs: { mode: "mode", startDate: "startDate", frequencyData: "frequencyData" }, outputs: { frequencyDetails: "frequencyDetails" }, ngImport: i0, template: "<div class=\"frequency-dialog-weekly\">\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-weekly-item vx-mb-5\">\r\n <app-frequency-dialog-top\r\n [id]=\"1\"\r\n [inputTime]=\"weeklyInterval\"\r\n [occurrenceFirst]=\"weeklyInput\"\r\n [frequencyType]=\"1\"\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]=\"1\"\r\n [listArray]=\"dayArray\"\r\n [selectedIndex]=\"selectedWeekly\"\r\n (selectedCheckbox)=\"onDaySelected($event)\"\r\n ></app-frequency-dialog-checkbox-list>\r\n </div>\r\n <app-frequency-dialog-due-date\r\n [id] = '1'\r\n [mode]=\"mode\"\r\n [pageName]=\"'weekly'\"\r\n [deactivateValue]=\"weeklyDeactivatedValue\"\r\n [isDeactivated]=\"true\"\r\n [assessWindowOpen]=\"weeklyWindowOpen\"\r\n [windowCloses]=\"weeklyExtension\"\r\n [completedValue]=\"weeklyWindow\"\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-weekly-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"] }] });
181
185
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FrequencyDialogWeeklyComponent, decorators: [{
182
186
  type: Component,
183
- args: [{ selector: 'app-frequency-dialog-weekly', template: "<div class=\"frequency-dialog-weekly\">\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-weekly-item vx-mb-5\">\r\n <!-- <app-frequency-dialog-top></app-frequency-dialog-top> -->\r\n <app-frequency-dialog-top\r\n [id]=\"1\"\r\n [inputTime]=\"weeklyInterval\"\r\n [occurrenceFirst]=\"weeklyInput\"\r\n [frequencyType]=\"1\"\r\n (timeChanged)=\"onTimeChanged($event)\"\r\n (valueChangedFirst)=\"valueChangedFirst($event)\"\r\n ></app-frequency-dialog-top>\r\n <!-- <app-frequency-dialog-checkbox-list></app-frequency-dialog-checkbox-list> -->\r\n <app-frequency-dialog-checkbox-list\r\n [id]=\"1\"\r\n [listArray]=\"dayArray\"\r\n [selectedIndex]=\"selectedWeekly\"\r\n (selectedCheckbox)=\"onDaySelected($event)\"\r\n ></app-frequency-dialog-checkbox-list>\r\n </div>\r\n <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">REASSESSMENT EMAIL NOTIFICATION:</div>\r\n <div class=\"frequency-dialog-weekly-item vx-mb-5\">\r\n <!-- <app-frequency-dialog-due-date></app-frequency-dialog-due-date> -->\r\n <app-frequency-dialog-due-date\r\n [id] = '1'\r\n [mode]=\"mode\"\r\n [pageName]=\"'weekly'\"\r\n [deactivateValue]=\"weeklyDeactivatedValue\"\r\n [isDeactivated]=\"true\"\r\n [completedValue]=\"weeklyWindow\"\r\n (valueChange)=\"onValueChange($event)\"\r\n ></app-frequency-dialog-due-date>\r\n </div>\r\n</div>", 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-weekly-item{border-radius:.25rem;border:1px solid #f1f1f1}\n"] }]
187
+ args: [{ selector: 'app-frequency-dialog-weekly', template: "<div class=\"frequency-dialog-weekly\">\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-weekly-item vx-mb-5\">\r\n <app-frequency-dialog-top\r\n [id]=\"1\"\r\n [inputTime]=\"weeklyInterval\"\r\n [occurrenceFirst]=\"weeklyInput\"\r\n [frequencyType]=\"1\"\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]=\"1\"\r\n [listArray]=\"dayArray\"\r\n [selectedIndex]=\"selectedWeekly\"\r\n (selectedCheckbox)=\"onDaySelected($event)\"\r\n ></app-frequency-dialog-checkbox-list>\r\n </div>\r\n <app-frequency-dialog-due-date\r\n [id] = '1'\r\n [mode]=\"mode\"\r\n [pageName]=\"'weekly'\"\r\n [deactivateValue]=\"weeklyDeactivatedValue\"\r\n [isDeactivated]=\"true\"\r\n [assessWindowOpen]=\"weeklyWindowOpen\"\r\n [windowCloses]=\"weeklyExtension\"\r\n [completedValue]=\"weeklyWindow\"\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-weekly-item{border-radius:.25rem;border:1px solid #f1f1f1}\n"] }]
184
188
  }], ctorParameters: function () { return [{ type: i1.FrequencyService }]; }, propDecorators: { mode: [{
185
189
  type: Input
186
190
  }], startDate: [{
@@ -190,4 +194,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
190
194
  }], frequencyDetails: [{
191
195
  type: Output
192
196
  }] } });
193
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlcXVlbmN5LWRpYWxvZy13ZWVrbHkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9mcmVxdWVuY3ktZGlhbG9nL2ZyZXF1ZW5jeS1kaWFsb2ctd2Vla2x5L2ZyZXF1ZW5jeS1kaWFsb2ctd2Vla2x5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3NoYXJlZENvbXBvbmVudHMvZnJlcXVlbmN5LWRpYWxvZy9mcmVxdWVuY3ktZGlhbG9nLXdlZWtseS9mcmVxdWVuY3ktZGlhbG9nLXdlZWtseS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9FLE9BQU8sTUFBTSxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBT25DLE1BQU0sT0FBTyw4QkFBOEI7SUE2QnpDLFlBQW9CLGdCQUFrQztRQUFsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBNUI3QyxTQUFJLEdBQVEsRUFBRSxDQUFDO1FBRXhCLG1CQUFjLEdBQUcsVUFBVSxDQUFDO1FBQzVCLGdCQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ2hCLG9CQUFvQjtRQUNwQixpQkFBWSxHQUFHLENBQUMsQ0FBQztRQUNqQix5QkFBb0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztRQUN4RSwyQkFBc0IsR0FBRyxJQUFJLElBQUksQ0FDL0IsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sRUFBRSxHQUFHLFFBQVEsQ0FDL0MsQ0FBQztRQUNGLDZCQUF3QixHQUFH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QUFNLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztTQUNwRTtRQUNELElBQUksV0FBVyxLQUFLLENBQUMsRUFBRTtZQUNyQixXQUFXO2dCQUNULGtCQUFrQjtvQkFDbEIsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7b0JBQ3RCLE1BQU07b0JBQ04sSUFBSSxDQUFDLGNBQWMsQ0FBQztTQUN2QjtRQUNELElBQUksV0FBVyxLQUFLLENBQUMsRUFBRTtZQUNyQixXQUFXO2dCQUNULFlBQVksR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO1NBQ3hFO1FBQ0QsSUFBSSxXQUFXLEdBQUcsQ0FBQyxFQUFFO1lBQ25CLFdBQVc7Z0JBQ1QsUUFBUTtvQkFDUixJQUFJLENBQUMsV0FBVztvQkFDaEIsS0FBSztvQkFDTCxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztvQkFDdEIsTUFBTTtvQkFDTixJQUFJLENBQUMsY0FBYyxDQUFDO1NBQ3ZCO1FBQ0QsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQzs7MkhBbk1VLDhCQUE4QjsrR0FBOUIsOEJBQThCLHdNQ1QzQywycERBaUNNOzJGRHhCTyw4QkFBOEI7a0JBTDFDLFNBQVM7K0JBQ0UsNkJBQTZCO3VHQUs5QixJQUFJO3NCQUFaLEtBQUs7Z0JBdUJHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFFSSxnQkFBZ0I7c0JBQXpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZyZXF1ZW5jeVNlcnZpY2UgfSBmcm9tICcuLi8uLi9mcmVxdWVuY3kvZnJlcXVlbmN5LnNlcnZpY2UnO1xyXG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudC9tb21lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtZnJlcXVlbmN5LWRpYWxvZy13ZWVrbHknLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9mcmVxdWVuY3ktZGlhbG9nLXdlZWtseS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZnJlcXVlbmN5LWRpYWxvZy13ZWVrbHkuY29tcG9uZW50Lmxlc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEZyZXF1ZW5jeURpYWxvZ1dlZWtseUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgbW9kZTogYW55ID0gJyc7XHJcblxyXG4gIHdlZWtseUludGVydmFsID0gJzExOjAwIHBtJztcclxuICB3ZWVrbHlJbnB1dCA9IDE7XHJcbiAgLy8gd2Vla2x5RmFpbGVkID0gMjtcclxuICB3ZWVrbHlXaW5kb3cgPSAyO1xyXG4gIHdlZWtseUxpZmVDeWNsZVN0YXJ0ID0gdGhpcy5mcmVxdWVuY3lTZXJ2aWNlLmNoYW5nZVRpbWVab25lKG5ldyBEYXRlKCkpO1xyXG4gIHdlZWtseUxpZmVDeWNsZUVuZFRpbWUgPSBuZXcgRGF0ZShcclxuICAgIHRoaXMud2Vla2x5TGlmZUN5Y2xlU3RhcnQuZ2V0VGltZSgpICsgODY0MDAwMDBcclxuICApO1xyXG4gIHdlZWtseUxpZmVjeWNsZU9jY3VyYW5jZSA9IDEwO1xyXG4gIC8vIHdlZWtseVNlbGV0ZWRMaWZlY3ljbGVUeXBlID0gMjtcclxuICBzZWxlY3RlZFdlZWtseSA9IFtcclxuICAgIHRoaXMuZnJlcXVlbmN5U2VydmljZS5jaGFuZ2VUaW1lWm9uZShuZXcgRGF0ZSgpKT8uZ2V0RGF5KCkgPT0gMFxyXG4gICAgICA/IDZcclxuICAgICAgOiB0aGlzLmZyZXF1ZW5jeVNlcnZpY2UuY2hhbmdlVGltZVpvbmUobmV3IERhdGUoKSk/LmdldERheSgpIC0gMSxcclxuICBdO1xyXG4gIHdlZWtseURlYWN0aXZhdGVkVmFsdWUgPSAxMDtcclxuICBkYXlBcnJheTogQXJyYXk8c3RyaW5nPiA9IFtdO1xyXG5cclxuICBmcmVxdWVuY3lJbmZvOiBhbnk7XHJcbiAgbGlmZWN5Y2xlRGV0YWlsczogYW55ID0gJzAwMDAtMDAtMDB+fjAnO1xyXG5cclxuICBASW5wdXQoKSBzdGFydERhdGUgPSBNYXRoLmZsb29yKERhdGUubm93KCkgLyAxMDAwKTtcclxuICBASW5wdXQoKSBmcmVxdWVuY3lEYXRhOiBhbnk7XHJcblxyXG4gIEBPdXRwdXQoKSBmcmVxdWVuY3lEZXRhaWxzID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZnJlcXVlbmN5U2VydmljZTogRnJlcXVlbmN5U2VydmljZSkge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmRheUFycmF5ID0gWy4uLm5ldyBTZXQodGhpcy5mcmVxdWVuY3lTZXJ2aWNlLmRheU5hbWUpXTtcclxuICAgIHRoaXMuZnJlcXVlbmN5SW5mbyA9IE9iamVjdC5hc3NpZ24odGhpcy5mcmVxdWVuY3lTZXJ2aWNlLmZyZXF1ZW5jeUluZm8pO1xyXG4gICAgY29uc29sZS5sb2coJ3RoaXMuZnJlcXVlbmN5RGF0YSA9PT4nLCB0aGlzLmZyZXF1ZW5jeURhdGEpO1xyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLmZyZXF1ZW5jeURhdGE/LnBhdHRlcm4gIT0gJycgJiZcclxuICAgICAgcGFyc2VJbnQodGhpcy5mcmVxdWVuY3lEYXRhPy5wYXR0ZXJuPy5zcGxpdCgnficpWzBdKSA9PT0gMlxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMucG9wdWxhdGVGcmVxdWVuY3koKTtcclxuICAgIH1cclxuICAgIHRoaXMuZ2V0V2Vla2x5RnJlcXVlbmN5KCk7XHJcbiAgfVxyXG5cclxuICBwb3B1bGF0ZUZyZXF1ZW5jeSgpIHtcclxuICAgIGNvbnN0IHBhdHRlcm5JbmZvID0gdGhpcy5mcmVxdWVuY3lEYXRhPy5wYXR0ZXJuLnNwbGl0KCd+Jyk7XHJcbiAgICB0aGlzLnNlbGVjdGVkV2Vla2x5ID0gcGF0dGVybkluZm9bMV1cclxuICAgICAgLnNwbGl0KCcsJylcclxuICAgICAgLm1hcCgoZWxlOiBhbnkpID0+IE51bWJlcihlbGUpIC0gMSk7XHJcbiAgICB0aGlzLndlZWtseUludGVydmFsID0gdGhpcy5mcmVxdWVuY3lEYXRhPy5mYWlsZWRUaW1lO1xyXG4gICAgdGhpcy53ZWVrbHlXaW5kb3cgPSB0aGlzLmZyZXF1ZW5jeURhdGE/LndpbmRvdztcclxuICAgIHRoaXMud2Vla2x5SW5wdXQgPSBwYXR0ZXJuSW5mb1szXTtcclxuICAgIHRoaXMud2Vla2x5TGlmZWN5Y2xlT2NjdXJhbmNlID0gTnVtYmVyKHBhdHRlcm5JbmZvWzNdKTtcclxuICAgIHRoaXMuc3RhcnREYXRlID1cclxuICAgICAgdGhpcy5mcmVxdWVuY3lEYXRhPy5zdGFydEZyb20gPz8gdGhpcy5mcmVxdWVuY3lEYXRhPy5zdGFydERhdGU7XHJcbiAgICB0aGlzLndlZWtseUxpZmVDeWNsZVN0YXJ0ID0gbmV3IERhdGUoXHJcbiAgICAgICh0aGlzLmZyZXF1ZW5jeURhdGE/LnN0YXJ0RGF0ZSA/PyB0aGlzLmZyZXF1ZW5jeURhdGE/LnN0YXJ0RGF0ZSkgKiAxMDAwXHJcbiAgICApO1xyXG4gICAgdGhpcy53ZWVrbHlEZWFjdGl2YXRlZFZhbHVlID0gdGhpcy5mcmVxdWVuY3lEYXRhPy5jb250aW51b3VzX2ZhaWxlZF9kYXlzO1xyXG4gIH1cclxuXHJcbiAgb25UaW1lQ2hhbmdlZChldmVudDogc3RyaW5nKSB7XHJcbiAgICBjb25zb2xlLmxvZygndGltZSBldmVudCA9PicsIGV2ZW50KTtcclxuICAgIHRoaXMud2Vla2x5SW50ZXJ2YWwgPSBldmVudDtcclxuICAgIHRoaXMuZ2V0V2Vla2x5RnJlcXVlbmN5KCk7XHJcbiAgfVxyXG5cclxuICB2YWx1ZUNoYW5nZWRGaXJzdChldmVudDogYW55KSB7XHJcbiAgICBjb25zb2xlLmxvZygnZXZlbnQgPT0+JywgZXZlbnQpO1xyXG4gICAgdGhpcy53ZWVrbHlJbnB1dCA9IGV2ZW50LnZhbHVlO1xyXG4gICAgdGhpcy5nZXRXZWVrbHlGcmVxdWVuY3koKTtcclxuICB9XHJcblxyXG4gIG9uRGF5U2VsZWN0ZWQoZXZlbnQ6IGFueSkge1xyXG4gICAgY29uc29sZS5sb2coJ2V2bmV0JywgZXZlbnQpO1xyXG4gICAgaWYgKGV2ZW50LmNoZWNrZWQpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZFdlZWtseS5wdXNoKGV2ZW50LmluZGV4KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRXZWVrbHkgPSB0aGlzLnNlbGVjdGVkV2Vla2x5LmZpbHRlcihcclxuICAgICAgICAoZWxlKSA9PiBlbGUgIT09IGV2ZW50LmluZGV4XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmdldFdlZWtseUZyZXF1ZW5jeSgpO1xyXG4gIH1cclxuXHJcbiAgbGlmZWN5Y2xlQ2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgIGNvbnNvbGUubG9nKCdldmVudD09PicsIGV2ZW50KTtcclxuXHJcbiAgICBzd2l0Y2ggKGV2ZW50LnR5cGUpIHtcclxuICAgICAgY2FzZSAwOlxyXG4gICAgICAgIHRoaXMubGlmZWN5Y2xlRGV0YWlscyA9IGV2ZW50LmVuZHNCeSArICd+fjAnO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIDE6XHJcbiAgICAgICAgdGhpcy5saWZlY3ljbGVEZXRhaWxzID0gJzAwMDAtMDAtMDB+ficgKyBldmVudC5lbmRhZnRlcjtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAyOlxyXG4gICAgICAgIHRoaXMubGlmZWN5Y2xlRGV0YWlscyA9ICcwMDAwLTAwLTAwfn4wJztcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICAgIGlmIChldmVudC5zdGFydEZyb20udG9TdHJpbmcoKS5sZW5ndGggPiAxMCkge1xyXG4gICAgICBjb25zb2xlLmxvZygnc3RhcnQgMTExMScpO1xyXG4gICAgICB0aGlzLnN0YXJ0RGF0ZSA9IE1hdGguZmxvb3IoZXZlbnQuc3RhcnRGcm9tIC8gMTAwMCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zb2xlLmxvZygnc3RhcnQgMTExMTIyMjInKTtcclxuICAgICAgdGhpcy5zdGFydERhdGUgPSBNYXRoLmZsb29yKGV2ZW50LnN0YXJ0RnJvbSk7XHJcbiAgICB9XHJcbiAgICBsZXQgZW5kQnlEYXRlID0gTWF0aC5mbG9vcihcclxuICAgICAgdGhpcy5mcmVxdWVuY3lTZXJ2aWNlLmNoYW5nZVRpbWVab25lKG5ldyBEYXRlKCkpPy5nZXRUaW1lKCkgLyAxMDAwICtcclxuICAgICAgICA4NjQwMDAwMFxyXG4gICAgKTtcclxuICAgIGNvbnNvbGUubG9nKCdzdHJhdCBkYXRlID09PT0+JywgdGhpcy5zdGFydERhdGUpO1xyXG4gICAgY29uc29sZS5sb2coJ2VuZCBkYXRlJywgZW5kQnlEYXRlKTtcclxuICAgIGlmIChldmVudC50eXBlID09PSAwKSB7XHJcbiAgICAgIGVuZEJ5RGF0ZSA9IGV2ZW50LmVuZHNCeVxyXG4gICAgICAgID8gbW9tZW50KGV2ZW50LmVuZHNCeSArICcgMDA6MDA6MDAnLCAnREQtTU1NLVlZWVkgSEg6bW06c3MnKS51bml4KClcclxuICAgICAgICA6IGVuZEJ5RGF0ZTtcclxuICAgICAgY29uc29sZS5sb2coJ2VuZEJ5RGF0ZScsIGVuZEJ5RGF0ZSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLndlZWtseUxpZmVDeWNsZVN0YXJ0ID0gbmV3IERhdGUodGhpcy5zdGFydERhdGUgKiAxMDAwKTtcclxuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5mYWlsZWRfdGltZV91dGMgPSBlbmRCeURhdGU7XHJcbiAgICB0aGlzLmdldFdlZWtseUZyZXF1ZW5jeSgpO1xyXG4gIH1cclxuXHJcbiAgb25WYWx1ZUNoYW5nZShldmVudDogYW55KSB7XHJcbiAgICBpZiAoZXZlbnQudHlwZSA9PT0gJ2RlYWN0aXZhdGVkJykge1xyXG4gICAgICB0aGlzLndlZWtseURlYWN0aXZhdGVkVmFsdWUgPSBldmVudC52YWx1ZTtcclxuICAgIH0gZWxzZSBpZiAoZXZlbnQudHlwZSA9PT0gJ2NvbXBsZXRlZCcpIHtcclxuICAgICAgdGhpcy53ZWVrbHlXaW5kb3cgPSBldmVudC52YWx1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vIHRoaXMud2Vla2x5RmFpbGVkID0gZXZlbnQudmFsdWU7XHJcbiAgICB9XHJcbiAgICB0aGlzLmdldFdlZWtseUZyZXF1ZW5jeSgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0V2Vla2x5RnJlcXVlbmN5KCkge1xyXG4gICAgdGhpcy5zZWxlY3RlZFdlZWtseSA9IHRoaXMuc2VsZWN0ZWRXZWVrbHkuc29ydCgobjEsIG4yKSA9PiBuMSAtIG4yKTtcclxuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5wbGFjZWhvbGRlciA9IHRoaXMuZ2V0UGxhY2Vob2xkZXIoXHJcbiAgICAgIE51bWJlcih0aGlzLndlZWtseUlucHV0KVxyXG4gICAgKTtcclxuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5wYXR0ZXJuID1cclxuICAgICAgMiArXHJcbiAgICAgICd+JyArXHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRXZWVrbHkubWFwKChlbGUpID0+IGVsZSArIDEpLmpvaW4oJywnKSArXHJcbiAgICAgICd+JyArXHJcbiAgICAgICcwJyArXHJcbiAgICAgICd+JyArXHJcbiAgICAgIHRoaXMud2Vla2x5SW5wdXQ7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8uY2FzZSA9ICd3ZWVrJztcclxuICAgIC8vIHRoaXMuZnJlcXVlbmN5SW5mby5mYWlsZWRBZnRlciA9IHRoaXMud2Vla2x5RmFpbGVkO1xyXG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLndpbmRvdyA9IHRoaXMud2Vla2x5V2luZG93O1xyXG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLnRpbWVJbjEyaHIgPSB0aGlzLndlZWtseUludGVydmFsO1xyXG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLnRpbWVJbjI0SHIgPSB0aGlzLmZyZXF1ZW5jeVNlcnZpY2UudGltZUZyb20xMmhUbzI0aChcclxuICAgICAgdGhpcy53ZWVrbHlJbnRlcnZhbFxyXG4gICAgKTtcclxuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5saWZlY3ljbGVEZXRhaWxzID0gdGhpcy5saWZlY3ljbGVEZXRhaWxzO1xyXG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLnN0YXJ0RnJvbSA9XHJcbiAgICAgIHRoaXMuc3RhcnREYXRlID8/IE1hdGguZmxvb3IoRGF0ZS5ub3coKSAvIDEwMDApO1xyXG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLnJlcG9ydElkID0gMDtcclxuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5jb250aW51b3VzX2ZhaWxlZF9kYXlzID0gdGhpcy53ZWVrbHlEZWFjdGl2YXRlZFZhbHVlO1xyXG4gICAgdGhpcy5mcmVxdWVuY3lEZXRhaWxzLmVtaXQodGhpcy5mcmVxdWVuY3lJbmZvKTtcclxuICAgIGNvbnNvbGUubG9nKCcgdGhpcy5mcmVxdWVuY3lJbmZvID09PicsIHRoaXMuZnJlcXVlbmN5SW5mbyk7XHJcbiAgfVxyXG5cclxuICBnZXRQbGFjZWhvbGRlcih3ZWVrbHlJbnB1dDogbnVtYmVyKSB7XHJcbiAgICBsZXQgcGxhY2Vob2xkZXIgPSAnJztcclxuICAgIHdlZWtseUlucHV0ID0gTnVtYmVyKHdlZWtseUlucHV0KTtcclxuXHJcbiAgICBjb25zdCBzZWxlY3RlZERheSA9IHRoaXMuc2VsZWN0ZWRXZWVrbHkubWFwKChlbGUpID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuZnJlcXVlbmN5U2VydmljZS5kYXlOYW1lW2VsZV07XHJcbiAgICB9KTtcclxuICAgIGlmICh3ZWVrbHlJbnB1dCA9PT0gMSkge1xyXG4gICAgICBwbGFjZWhvbGRlciA9XHJcbiAgICAgICAgJ0V2ZXJ5ICcgKyBzZWxlY3RlZERheS5qb2luKCcsICcpICsgJyBieSAnICsgdGhpcy53ZWVrbHlJbnRlcnZhbDtcclxuICAgIH1cclxuICAgIGlmICh3ZWVrbHlJbnB1dCA9PT0gMikge1xyXG4gICAgICBwbGFjZWhvbGRlciA9XHJcbiAgICAgICAgJ0V2ZXJ5IGFsdGVybmF0ZSAnICtcclxuICAgICAgICBzZWxlY3RlZERheS5qb2luKCcsICcpICtcclxuICAgICAgICAnIGJ5ICcgK1xyXG4gICAgICAgIHRoaXMud2Vla2x5SW50ZXJ2YWw7XHJcbiAgICB9XHJcbiAgICBpZiAod2Vla2x5SW5wdXQgPT09IDMpIHtcclxuICAgICAgcGxhY2Vob2xkZXIgPVxyXG4gICAgICAgICdFdmVyeSAzcmQgJyArIHNlbGVjdGVkRGF5LmpvaW4oJywgJykgKyAnIGJ5ICcgKyB0aGlzLndlZWtseUludGVydmFsO1xyXG4gICAgfVxyXG4gICAgaWYgKHdlZWtseUlucHV0ID4gMykge1xyXG4gICAgICBwbGFjZWhvbGRlciA9XHJcbiAgICAgICAgJ0V2ZXJ5ICcgK1xyXG4gICAgICAgIHRoaXMud2Vla2x5SW5wdXQgK1xyXG4gICAgICAgICd0aCAnICtcclxuICAgICAgICBzZWxlY3RlZERheS5qb2luKCcsICcpICtcclxuICAgICAgICAnIGJ5ICcgK1xyXG4gICAgICAgIHRoaXMud2Vla2x5SW50ZXJ2YWw7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcGxhY2Vob2xkZXI7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktZGlhbG9nLXdlZWtseVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHQgdngtdHQtdXBwZXJjYXNlIHZ4LW1iLTFcIj5SRUFTU0VTU01FTlQgRlJFUVVFTkNZOjwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1kaWFsb2ctd2Vla2x5LWl0ZW0gdngtbWItNVwiPlxyXG4gICAgICAgIDwhLS0gPGFwcC1mcmVxdWVuY3ktZGlhbG9nLXRvcD48L2FwcC1mcmVxdWVuY3ktZGlhbG9nLXRvcD4gLS0+XHJcbiAgICAgICAgPGFwcC1mcmVxdWVuY3ktZGlhbG9nLXRvcFxyXG4gICAgICAgICAgICBbaWRdPVwiMVwiXHJcbiAgICAgICAgICAgIFtpbnB1dFRpbWVdPVwid2Vla2x5SW50ZXJ2YWxcIlxyXG4gICAgICAgICAgICBbb2NjdXJyZW5jZUZpcnN0XT1cIndlZWtseUlucHV0XCJcclxuICAgICAgICAgICAgW2ZyZXF1ZW5jeVR5cGVdPVwiMVwiXHJcbiAgICAgICAgICAgICh0aW1lQ2hhbmdlZCk9XCJvblRpbWVDaGFuZ2VkKCRldmVudClcIlxyXG4gICAgICAgICAgICAodmFsdWVDaGFuZ2VkRmlyc3QpPVwidmFsdWVDaGFuZ2VkRmlyc3QoJGV2ZW50KVwiXHJcbiAgICAgICAgPjwvYXBwLWZyZXF1ZW5jeS1kaWFsb2ctdG9wPlxyXG4gICAgICAgIDwhLS0gPGFwcC1mcmVxdWVuY3ktZGlhbG9nLWNoZWNrYm94LWxpc3Q+PC9hcHAtZnJlcXVlbmN5LWRpYWxvZy1jaGVja2JveC1saXN0PiAtLT5cclxuICAgICAgICA8YXBwLWZyZXF1ZW5jeS1kaWFsb2ctY2hlY2tib3gtbGlzdFxyXG4gICAgICAgICAgICBbaWRdPVwiMVwiXHJcbiAgICAgICAgICAgIFtsaXN0QXJyYXldPVwiZGF5QXJyYXlcIlxyXG4gICAgICAgICAgICBbc2VsZWN0ZWRJbmRleF09XCJzZWxlY3RlZFdlZWtseVwiXHJcbiAgICAgICAgICAgIChzZWxlY3RlZENoZWNrYm94KT1cIm9uRGF5U2VsZWN0ZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgPjwvYXBwLWZyZXF1ZW5jeS1kaWFsb2ctY2hlY2tib3gtbGlzdD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHQgdngtdHQtdXBwZXJjYXNlIHZ4LW1iLTFcIj5SRUFTU0VTU01FTlQgRU1BSUwgTk9USUZJQ0FUSU9OOjwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1kaWFsb2ctd2Vla2x5LWl0ZW0gdngtbWItNVwiPlxyXG4gICAgICAgIDwhLS0gPGFwcC1mcmVxdWVuY3ktZGlhbG9nLWR1ZS1kYXRlPjwvYXBwLWZyZXF1ZW5jeS1kaWFsb2ctZHVlLWRhdGU+IC0tPlxyXG4gICAgICAgIDxhcHAtZnJlcXVlbmN5LWRpYWxvZy1kdWUtZGF0ZVxyXG4gICAgICAgICAgICBbaWRdID0gJzEnXHJcbiAgICAgICAgICAgIFttb2RlXT1cIm1vZGVcIlxyXG4gICAgICAgICAgICBbcGFnZU5hbWVdPVwiJ3dlZWtseSdcIlxyXG4gICAgICAgICAgICBbZGVhY3RpdmF0ZVZhbHVlXT1cIndlZWtseURlYWN0aXZhdGVkVmFsdWVcIlxyXG4gICAgICAgICAgICBbaXNEZWFjdGl2YXRlZF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgW2NvbXBsZXRlZFZhbHVlXT1cIndlZWtseVdpbmRvd1wiXHJcbiAgICAgICAgICAgICh2YWx1ZUNoYW5nZSk9XCJvblZhbHVlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgID48L2FwcC1mcmVxdWVuY3ktZGlhbG9nLWR1ZS1kYXRlPlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
197
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlcXVlbmN5LWRpYWxvZy13ZWVrbHkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9mcmVxdWVuY3ktZGlhbG9nL2ZyZXF1ZW5jeS1kaWFsb2ctd2Vla2x5L2ZyZXF1ZW5jeS1kaWFsb2ctd2Vla2x5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3NoYXJlZENvbXBvbmVudHMvZnJlcXVlbmN5LWRpYWxvZy9mcmVxdWVuY3ktZGlhbG9nLXdlZWtseS9mcmVxdWVuY3ktZGlhbG9nLXdlZWtseS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9FLE9BQU8sTUFBTSxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBT25DLE1BQU0sT0FBTyw4QkFBOEI7SUEyQnpDLFlBQW9CLGdCQUFrQztRQUFsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBMUJ0RCxtQkFBYyxHQUFHLFVBQVUsQ0FBQztRQUM1QixnQkFBVyxHQUFHLENBQUMsQ0FBQztRQUNoQixpQkFBWSxHQUFHLENBQUMsQ0FBQztRQUNqQix5QkFBb0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztRQUN4RSwyQkFBc0IsR0FBRyxJQUFJLElBQUksQ0FDL0IsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sRUFBRSxHQUFHLFFBQVEsQ0FDL0MsQ0FBQztRQUNGLDZCQUF3QixHQUFHLEVBQUUsQ0FBQztRQUM5QixtQkFBYyxHQUFHO1lBQ2YsSUFBSSxD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QUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO1NBQ3BFO1FBQ0QsSUFBSSxXQUFXLEtBQUssQ0FBQyxFQUFFO1lBQ3JCLFdBQVc7Z0JBQ1Qsa0JBQWtCO29CQUNsQixXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztvQkFDdEIsTUFBTTtvQkFDTixJQUFJLENBQUMsY0FBYyxDQUFDO1NBQ3ZCO1FBQ0QsSUFBSSxXQUFXLEtBQUssQ0FBQyxFQUFFO1lBQ3JCLFdBQVc7Z0JBQ1QsWUFBWSxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7U0FDeEU7UUFDRCxJQUFJLFdBQVcsR0FBRyxDQUFDLEVBQUU7WUFDbkIsV0FBVztnQkFDVCxRQUFRO29CQUNSLElBQUksQ0FBQyxXQUFXO29CQUNoQixLQUFLO29CQUNMLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO29CQUN0QixNQUFNO29CQUNOLElBQUksQ0FBQyxjQUFjLENBQUM7U0FDdkI7UUFDRCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDOzsySEF0TVUsOEJBQThCOytHQUE5Qiw4QkFBOEIsd01DVDNDLDg1Q0FnQ0E7MkZEdkJhLDhCQUE4QjtrQkFMMUMsU0FBUzsrQkFDRSw2QkFBNkI7dUdBeUI5QixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUVJLGdCQUFnQjtzQkFBekIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRnJlcXVlbmN5U2VydmljZSB9IGZyb20gJy4uLy4uL2ZyZXF1ZW5jeS9mcmVxdWVuY3kuc2VydmljZSc7XHJcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50L21vbWVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1mcmVxdWVuY3ktZGlhbG9nLXdlZWtseScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2ZyZXF1ZW5jeS1kaWFsb2ctd2Vla2x5LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9mcmVxdWVuY3ktZGlhbG9nLXdlZWtseS5jb21wb25lbnQubGVzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRnJlcXVlbmN5RGlhbG9nV2Vla2x5Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICB3ZWVrbHlJbnRlcnZhbCA9ICcxMTowMCBwbSc7XHJcbiAgd2Vla2x5SW5wdXQgPSAxO1xyXG4gIHdlZWtseVdpbmRvdyA9IDI7XHJcbiAgd2Vla2x5TGlmZUN5Y2xlU3RhcnQgPSB0aGlzLmZyZXF1ZW5jeVNlcnZpY2UuY2hhbmdlVGltZVpvbmUobmV3IERhdGUoKSk7XHJcbiAgd2Vla2x5TGlmZUN5Y2xlRW5kVGltZSA9IG5ldyBEYXRlKFxyXG4gICAgdGhpcy53ZWVrbHlMaWZlQ3ljbGVTdGFydC5nZXRUaW1lKCkgKyA4NjQwMDAwMFxyXG4gICk7XHJcbiAgd2Vla2x5TGlmZWN5Y2xlT2NjdXJhbmNlID0gMTA7XHJcbiAgc2VsZWN0ZWRXZWVrbHkgPSBbXHJcbiAgICB0aGlzLmZyZXF1ZW5jeVNlcnZpY2UuY2hhbmdlVGltZVpvbmUobmV3IERhdGUoKSk/LmdldERheSgpID09IDBcclxuICAgICAgPyA2XHJcbiAgICAgIDogdGhpcy5mcmVxdWVuY3lTZXJ2aWNlLmNoYW5nZVRpbWVab25lKG5ldyBEYXRlKCkpPy5nZXREYXkoKSAtIDEsXHJcbiAgXTtcclxuICB3ZWVrbHlEZWFjdGl2YXRlZFZhbHVlID0gMTA7XHJcbiAgZGF5QXJyYXk6IEFycmF5PHN0cmluZz4gPSBbXTtcclxuICBmcmVxdWVuY3lJbmZvOiBhbnk7XHJcbiAgbGlmZWN5Y2xlRGV0YWlsczogYW55ID0gJzAwMDAtMDAtMDB+fjAnO1xyXG4gIHdlZWtseUV4dGVuc2lvbjogbnVtYmVyID0gMjtcclxuICB3ZWVrbHlXaW5kb3dPcGVuOiBudW1iZXIgPSAyO1xyXG5cclxuICBASW5wdXQoKSBtb2RlOiBhbnkgPSAnJztcclxuICBASW5wdXQoKSBzdGFydERhdGUgPSBNYXRoLmZsb29yKERhdGUubm93KCkgLyAxMDAwKTtcclxuICBASW5wdXQoKSBmcmVxdWVuY3lEYXRhOiBhbnk7XHJcblxyXG4gIEBPdXRwdXQoKSBmcmVxdWVuY3lEZXRhaWxzID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZnJlcXVlbmN5U2VydmljZTogRnJlcXVlbmN5U2VydmljZSkge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmRheUFycmF5ID0gWy4uLm5ldyBTZXQodGhpcy5mcmVxdWVuY3lTZXJ2aWNlLmRheU5hbWUpXTtcclxuICAgIHRoaXMuZnJlcXVlbmN5SW5mbyA9IE9iamVjdC5hc3NpZ24odGhpcy5mcmVxdWVuY3lTZXJ2aWNlLmZyZXF1ZW5jeUluZm8pO1xyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLmZyZXF1ZW5jeURhdGE/LnBhdHRlcm4gIT0gJycgJiZcclxuICAgICAgcGFyc2VJbnQodGhpcy5mcmVxdWVuY3lEYXRhPy5wYXR0ZXJuPy5zcGxpdCgnficpWzBdKSA9PT0gMlxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMucG9wdWxhdGVGcmVxdWVuY3koKTtcclxuICAgIH1cclxuICAgIHRoaXMuZ2V0V2Vla2x5RnJlcXVlbmN5KCk7XHJcbiAgfVxyXG5cclxuICBwb3B1bGF0ZUZyZXF1ZW5jeSgpIHtcclxuICAgIGNvbnN0IHBhdHRlcm5JbmZvID0gdGhpcy5mcmVxdWVuY3lEYXRhPy5wYXR0ZXJuLnNwbGl0KCd+Jyk7XHJcbiAgICB0aGlzLnNlbGVjdGVkV2Vla2x5ID0gcGF0dGVybkluZm9bMV1cclxuICAgICAgLnNwbGl0KCcsJylcclxuICAgICAgLm1hcCgoZWxlOiBhbnkpID0+IE51bWJlcihlbGUpIC0gMSk7XHJcbiAgICB0aGlzLndlZWtseUludGVydmFsID0gdGhpcy5mcmVxdWVuY3lEYXRhPy5mYWlsZWRUaW1lO1xyXG4gICAgdGhpcy53ZWVrbHlXaW5kb3cgPSB0aGlzLmZyZXF1ZW5jeURhdGE/LndpbmRvdztcclxuICAgIHRoaXMud2Vla2x5SW5wdXQgPSBwYXR0ZXJuSW5mb1szXTtcclxuICAgIHRoaXMud2Vla2x5TGlmZWN5Y2xlT2NjdXJhbmNlID0gTnVtYmVyKHBhdHRlcm5JbmZvWzNdKTtcclxuICAgIHRoaXMuc3RhcnREYXRlID1cclxuICAgICAgdGhpcy5mcmVxdWVuY3lEYXRhPy5zdGFydEZyb20gPz8gdGhpcy5mcmVxdWVuY3lEYXRhPy5zdGFydERhdGU7XHJcbiAgICB0aGlzLndlZWtseUxpZmVDeWNsZVN0YXJ0ID0gbmV3IERhdGUoXHJcbiAgICAgICh0aGlzLmZyZXF1ZW5jeURhdGE/LnN0YXJ0RGF0ZSA/PyB0aGlzLmZyZXF1ZW5jeURhdGE/LnN0YXJ0RGF0ZSkgKiAxMDAwXHJcbiAgICApO1xyXG4gICAgdGhpcy53ZWVrbHlEZWFjdGl2YXRlZFZhbHVlID0gdGhpcy5mcmVxdWVuY3lEYXRhPy5jb250aW51b3VzX2ZhaWxlZF9kYXlzO1xyXG4gICAgdGhpcy53ZWVrbHlXaW5kb3dPcGVuID0gdGhpcy5mcmVxdWVuY3lEYXRhPy5jYW5fYXNzZXNzX2JlZm9yZV9kYXlzO1xyXG4gICAgdGhpcy53ZWVrbHlFeHRlbnNpb24gPSB0aGlzLmZyZXF1ZW5jeURhdGE/LmZhaWxlZF9hZnRlcl9kYXlzO1xyXG4gIH1cclxuXHJcbiAgb25UaW1lQ2hhbmdlZChldmVudDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLndlZWtseUludGVydmFsID0gZXZlbnQ7XHJcbiAgICB0aGlzLmdldFdlZWtseUZyZXF1ZW5jeSgpO1xyXG4gIH1cclxuXHJcbiAgdmFsdWVDaGFuZ2VkRmlyc3QoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy53ZWVrbHlJbnB1dCA9IGV2ZW50LnZhbHVlO1xyXG4gICAgdGhpcy5nZXRXZWVrbHlGcmVxdWVuY3koKTtcclxuICB9XHJcblxyXG4gIG9uRGF5U2VsZWN0ZWQoZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKGV2ZW50LmNoZWNrZWQpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZFdlZWtseS5wdXNoKGV2ZW50LmluZGV4KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRXZWVrbHkgPSB0aGlzLnNlbGVjdGVkV2Vla2x5LmZpbHRlcihcclxuICAgICAgICAoZWxlKSA9PiBlbGUgIT09IGV2ZW50LmluZGV4XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmdldFdlZWtseUZyZXF1ZW5jeSgpO1xyXG4gIH1cclxuXHJcbiAgbGlmZWN5Y2xlQ2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgIHN3aXRjaCAoZXZlbnQudHlwZSkge1xyXG4gICAgICBjYXNlIDA6XHJcbiAgICAgICAgdGhpcy5saWZlY3ljbGVEZXRhaWxzID0gZXZlbnQuZW5kc0J5ICsgJ35+MCc7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgMTpcclxuICAgICAgICB0aGlzLmxpZmVjeWNsZURldGFpbHMgPSAnMDAwMC0wMC0wMH5+JyArIGV2ZW50LmVuZGFmdGVyO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIDI6XHJcbiAgICAgICAgdGhpcy5saWZlY3ljbGVEZXRhaWxzID0gJzAwMDAtMDAtMDB+fjAnO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gICAgaWYgKGV2ZW50LnN0YXJ0RnJvbS50b1N0cmluZygpLmxlbmd0aCA+IDEwKSB7XHJcbiAgICAgIHRoaXMuc3RhcnREYXRlID0gTWF0aC5mbG9vcihldmVudC5zdGFydEZyb20gLyAxMDAwKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc3RhcnREYXRlID0gTWF0aC5mbG9vcihldmVudC5zdGFydEZyb20pO1xyXG4gICAgfVxyXG4gICAgbGV0IGVuZEJ5RGF0ZSA9IE1hdGguZmxvb3IoXHJcbiAgICAgIHRoaXMuZnJlcXVlbmN5U2VydmljZS5jaGFuZ2VUaW1lWm9uZShuZXcgRGF0ZSgpKT8uZ2V0VGltZSgpIC8gMTAwMCArXHJcbiAgICAgICAgODY0MDAwMDBcclxuICAgICk7XHJcbiAgICBpZiAoZXZlbnQudHlwZSA9PT0gMCkge1xyXG4gICAgICBlbmRCeURhdGUgPSBldmVudC5lbmRzQnlcclxuICAgICAgICA/IG1vbWVudChldmVudC5lbmRzQnkgKyAnIDAwOjAwOjAwJywgJ0RELU1NTS1ZWVlZIEhIOm1tOnNzJykudW5peCgpXHJcbiAgICAgICAgOiBlbmRCeURhdGU7XHJcbiAgICB9XHJcbiAgICB0aGlzLndlZWtseUxpZmVDeWNsZVN0YXJ0ID0gbmV3IERhdGUodGhpcy5zdGFydERhdGUgKiAxMDAwKTtcclxuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5mYWlsZWRfdGltZV91dGMgPSBlbmRCeURhdGU7XHJcbiAgICB0aGlzLmdldFdlZWtseUZyZXF1ZW5jeSgpO1xyXG4gIH1cclxuXHJcbiAgb25WYWx1ZUNoYW5nZShldmVudDogYW55KSB7XHJcbiAgICBpZiAoZXZlbnQudHlwZSA9PT0gJ2RlYWN0aXZhdGVkJykge1xyXG4gICAgICB0aGlzLndlZWtseURlYWN0aXZhdGVkVmFsdWUgPSBldmVudC52YWx1ZTtcclxuICAgIH0gZWxzZSBpZiAoZXZlbnQudHlwZSA9PT0gJ2NvbXBsZXRlZCcpIHtcclxuICAgICAgdGhpcy53ZWVrbHlXaW5kb3cgPSBldmVudC52YWx1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vIHRoaXMud2Vla2x5RmFpbGVkID0gZXZlbnQudmFsdWU7XHJcbiAgICB9XHJcbiAgICB0aGlzLmdldFdlZWtseUZyZXF1ZW5jeSgpO1xyXG4gIH1cclxuXHJcbiAgb25XaW5kb3dPcGVuQ2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmIChldmVudD8udHlwZT8udG9Mb3dlckNhc2UoKSA9PT0gJ3dpbmRvdyBvcGVuJykge1xyXG4gICAgICB0aGlzLndlZWtseVdpbmRvd09wZW4gPSBldmVudD8udmFsdWU7XHJcbiAgICB9XHJcbiAgICB0aGlzLmdldFdlZWtseUZyZXF1ZW5jeSgpO1xyXG4gIH1cclxuXHJcbiAgb25FeHRlbnNpb25DaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKGV2ZW50Py50eXBlPy50b0xvd2VyQ2FzZSgpID09PSAnZXh0ZW5zaW9uJykge1xyXG4gICAgICB0aGlzLndlZWtseUV4dGVuc2lvbiA9IGV2ZW50LnZhbHVlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5nZXRXZWVrbHlGcmVxdWVuY3koKTtcclxuICB9XHJcblxyXG4gIGdldFdlZWtseUZyZXF1ZW5jeSgpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRXZWVrbHkgPSB0aGlzLnNlbGVjdGVkV2Vla2x5LnNvcnQoKG4xLCBuMikgPT4gbjEgLSBuMik7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8ucGxhY2Vob2xkZXIgPSB0aGlzLmdldFBsYWNlaG9sZGVyKFxyXG4gICAgICBOdW1iZXIodGhpcy53ZWVrbHlJbnB1dClcclxuICAgICk7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8ucGF0dGVybiA9XHJcbiAgICAgIDIgK1xyXG4gICAgICAnficgK1xyXG4gICAgICB0aGlzLnNlbGVjdGVkV2Vla2x5Lm1hcCgoZWxlKSA9PiBlbGUgKyAxKS5qb2luKCcsJykgK1xyXG4gICAgICAnficgK1xyXG4gICAgICAnMCcgK1xyXG4gICAgICAnficgK1xyXG4gICAgICB0aGlzLndlZWtseUlucHV0O1xyXG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLmNhc2UgPSAnd2Vlayc7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8ud2luZG93ID0gdGhpcy53ZWVrbHlXaW5kb3c7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8udGltZUluMTJociA9IHRoaXMud2Vla2x5SW50ZXJ2YWw7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8udGltZUluMjRIciA9IHRoaXMuZnJlcXVlbmN5U2VydmljZS50aW1lRnJvbTEyaFRvMjRoKFxyXG4gICAgICB0aGlzLndlZWtseUludGVydmFsXHJcbiAgICApO1xyXG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLmxpZmVjeWNsZURldGFpbHMgPSB0aGlzLmxpZmVjeWNsZURldGFpbHM7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8uc3RhcnRGcm9tID1cclxuICAgICAgdGhpcy5zdGFydERhdGUgPz8gTWF0aC5mbG9vcihEYXRlLm5vdygpIC8gMTAwMCk7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8ucmVwb3J0SWQgPSAwO1xyXG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLmNvbnRpbnVvdXNfZmFpbGVkX2RheXMgPSB0aGlzLndlZWtseURlYWN0aXZhdGVkVmFsdWU7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8uZmFpbGVkX2FmdGVyX2RheXMgPSB0aGlzLndlZWtseUV4dGVuc2lvbjtcclxuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5jYW5fYXNzZXNzX2JlZm9yZV9kYXlzID0gdGhpcy53ZWVrbHlXaW5kb3dPcGVuO1xyXG4gICAgdGhpcy5mcmVxdWVuY3lEZXRhaWxzLmVtaXQodGhpcy5mcmVxdWVuY3lJbmZvKTtcclxuICB9XHJcblxyXG4gIGdldFBsYWNlaG9sZGVyKHdlZWtseUlucHV0OiBudW1iZXIpIHtcclxuICAgIGxldCBwbGFjZWhvbGRlciA9ICcnO1xyXG4gICAgd2Vla2x5SW5wdXQgPSBOdW1iZXIod2Vla2x5SW5wdXQpO1xyXG5cclxuICAgIGNvbnN0IHNlbGVjdGVkRGF5ID0gdGhpcy5zZWxlY3RlZFdlZWtseS5tYXAoKGVsZSkgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5mcmVxdWVuY3lTZXJ2aWNlLmRheU5hbWVbZWxlXTtcclxuICAgIH0pO1xyXG4gICAgaWYgKHdlZWtseUlucHV0ID09PSAxKSB7XHJcbiAgICAgIHBsYWNlaG9sZGVyID1cclxuICAgICAgICAnRXZlcnkgJyArIHNlbGVjdGVkRGF5LmpvaW4oJywgJykgKyAnIGJ5ICcgKyB0aGlzLndlZWtseUludGVydmFsO1xyXG4gICAgfVxyXG4gICAgaWYgKHdlZWtseUlucHV0ID09PSAyKSB7XHJcbiAgICAgIHBsYWNlaG9sZGVyID1cclxuICAgICAgICAnRXZlcnkgYWx0ZXJuYXRlICcgK1xyXG4gICAgICAgIHNlbGVjdGVkRGF5LmpvaW4oJywgJykgK1xyXG4gICAgICAgICcgYnkgJyArXHJcbiAgICAgICAgdGhpcy53ZWVrbHlJbnRlcnZhbDtcclxuICAgIH1cclxuICAgIGlmICh3ZWVrbHlJbnB1dCA9PT0gMykge1xyXG4gICAgICBwbGFjZWhvbGRlciA9XHJcbiAgICAgICAgJ0V2ZXJ5IDNyZCAnICsgc2VsZWN0ZWREYXkuam9pbignLCAnKSArICcgYnkgJyArIHRoaXMud2Vla2x5SW50ZXJ2YWw7XHJcbiAgICB9XHJcbiAgICBpZiAod2Vla2x5SW5wdXQgPiAzKSB7XHJcbiAgICAgIHBsYWNlaG9sZGVyID1cclxuICAgICAgICAnRXZlcnkgJyArXHJcbiAgICAgICAgdGhpcy53ZWVrbHlJbnB1dCArXHJcbiAgICAgICAgJ3RoICcgK1xyXG4gICAgICAgIHNlbGVjdGVkRGF5LmpvaW4oJywgJykgK1xyXG4gICAgICAgICcgYnkgJyArXHJcbiAgICAgICAgdGhpcy53ZWVrbHlJbnRlcnZhbDtcclxuICAgIH1cclxuICAgIHJldHVybiBwbGFjZWhvbGRlcjtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1kaWFsb2ctd2Vla2x5XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwidngtZnMtMTEgdngtZnctNTAwIHZ4LWxhYmVsLXR4dCB2eC10dC11cHBlcmNhc2UgdngtbWItMVwiPlJFQVNTRVNTTUVOVCBGUkVRVUVOQ1k6PC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LWRpYWxvZy13ZWVrbHktaXRlbSB2eC1tYi01XCI+XHJcbiAgICAgICAgPGFwcC1mcmVxdWVuY3ktZGlhbG9nLXRvcFxyXG4gICAgICAgICAgICBbaWRdPVwiMVwiXHJcbiAgICAgICAgICAgIFtpbnB1dFRpbWVdPVwid2Vla2x5SW50ZXJ2YWxcIlxyXG4gICAgICAgICAgICBbb2NjdXJyZW5jZUZpcnN0XT1cIndlZWtseUlucHV0XCJcclxuICAgICAgICAgICAgW2ZyZXF1ZW5jeVR5cGVdPVwiMVwiXHJcbiAgICAgICAgICAgICh0aW1lQ2hhbmdlZCk9XCJvblRpbWVDaGFuZ2VkKCRldmVudClcIlxyXG4gICAgICAgICAgICAodmFsdWVDaGFuZ2VkRmlyc3QpPVwidmFsdWVDaGFuZ2VkRmlyc3QoJGV2ZW50KVwiXHJcbiAgICAgICAgPjwvYXBwLWZyZXF1ZW5jeS1kaWFsb2ctdG9wPlxyXG4gICAgICAgIDxhcHAtZnJlcXVlbmN5LWRpYWxvZy1jaGVja2JveC1saXN0XHJcbiAgICAgICAgICAgIFtpZF09XCIxXCJcclxuICAgICAgICAgICAgW2xpc3RBcnJheV09XCJkYXlBcnJheVwiXHJcbiAgICAgICAgICAgIFtzZWxlY3RlZEluZGV4XT1cInNlbGVjdGVkV2Vla2x5XCJcclxuICAgICAgICAgICAgKHNlbGVjdGVkQ2hlY2tib3gpPVwib25EYXlTZWxlY3RlZCgkZXZlbnQpXCJcclxuICAgICAgICA+PC9hcHAtZnJlcXVlbmN5LWRpYWxvZy1jaGVja2JveC1saXN0PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8YXBwLWZyZXF1ZW5jeS1kaWFsb2ctZHVlLWRhdGVcclxuICAgICAgICBbaWRdID0gJzEnXHJcbiAgICAgICAgW21vZGVdPVwibW9kZVwiXHJcbiAgICAgICAgW3BhZ2VOYW1lXT1cIid3ZWVrbHknXCJcclxuICAgICAgICBbZGVhY3RpdmF0ZVZhbHVlXT1cIndlZWtseURlYWN0aXZhdGVkVmFsdWVcIlxyXG4gICAgICAgIFtpc0RlYWN0aXZhdGVkXT1cInRydWVcIlxyXG4gICAgICAgIFthc3Nlc3NXaW5kb3dPcGVuXT1cIndlZWtseVdpbmRvd09wZW5cIlxyXG4gICAgICAgIFt3aW5kb3dDbG9zZXNdPVwid2Vla2x5RXh0ZW5zaW9uXCJcclxuICAgICAgICBbY29tcGxldGVkVmFsdWVdPVwid2Vla2x5V2luZG93XCJcclxuICAgICAgICAodmFsdWVDaGFuZ2UpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAod2luZG93T3BlbkNoYW5nZSk9XCJvbldpbmRvd09wZW5DaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgKGV4dGVuc2lvblZhbHVlQ2hhbmdlKT1cIm9uRXh0ZW5zaW9uQ2hhbmdlKCRldmVudClcIlxyXG4gICAgPjwvYXBwLWZyZXF1ZW5jeS1kaWFsb2ctZHVlLWRhdGU+XHJcbjwvZGl2PlxyXG4iXX0=