vcomply-workflow-engine 3.0.278 → 3.0.279
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/add-multiple-responsibility/add-multiple-responsibility.component.mjs +2 -2
- package/esm2020/lib/add-multiple-responsibility-with-tab/add-multiple-responsibility-with-tab.component.mjs +310 -123
- package/esm2020/lib/add-multiple-risk/add-multiple-risk.component.mjs +128 -64
- package/esm2020/lib/log-an-issue/log-an-issue.component.mjs +2 -2
- package/esm2020/lib/sharedComponents/frequency/frequency-annual/frequency-annual.component.mjs +2 -2
- package/esm2020/lib/sharedComponents/frequency/frequency-biannual/frequency-biannual.component.mjs +2 -2
- package/esm2020/lib/sharedComponents/frequency/frequency-container/frequency-container.component.mjs +2 -2
- package/esm2020/lib/sharedComponents/frequency/frequency-daily/frequency-daily.component.mjs +2 -2
- package/esm2020/lib/sharedComponents/frequency/frequency-lifecycle/frequency-lifecycle.component.mjs +2 -2
- package/esm2020/lib/sharedComponents/frequency/frequency-monthly/frequency-monthly.component.mjs +2 -2
- package/esm2020/lib/sharedComponents/frequency/frequency-on-completion-of/frequency-on-completion-of.component.mjs +26 -11
- package/esm2020/lib/sharedComponents/frequency/frequency-one-time/frequency-one-time.component.mjs +2 -2
- package/esm2020/lib/sharedComponents/frequency/frequency-quarterly/frequency-quarterly.component.mjs +2 -2
- package/esm2020/lib/sharedComponents/frequency/frequency-top/frequency-top.component.mjs +21 -8
- package/esm2020/lib/sharedComponents/frequency/frequency-weekly/frequency-weekly.component.mjs +2 -2
- package/esm2020/lib/sharedComponents/frequency/frequency.service.mjs +5 -3
- package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-annual/frequency-dialog-annual.component.mjs +113 -23
- package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-biannual/frequency-dialog-biannual.component.mjs +60 -21
- package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-container/frequency-dialog-container.component.mjs +53 -43
- package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-monthly/frequency-dialog-monthly.component.mjs +64 -25
- package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-one-time/frequency-dialog-one-time.component.mjs +63 -20
- package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-quarterly/frequency-dialog-quarterly.component.mjs +65 -23
- package/esm2020/lib/workflow-compliance/workflow-compliance.component.mjs +2 -2
- package/esm2020/lib/workflow-policy/workflow-policy.component.mjs +2 -2
- package/esm2020/lib/workflow-risk/workflow-risk.component.mjs +365 -131
- package/fesm2015/vcomply-workflow-engine.mjs +1304 -537
- package/fesm2015/vcomply-workflow-engine.mjs.map +1 -1
- package/fesm2020/vcomply-workflow-engine.mjs +1320 -541
- package/fesm2020/vcomply-workflow-engine.mjs.map +1 -1
- package/lib/sharedComponents/frequency/frequency-lifecycle/frequency-lifecycle.component.d.ts +1 -1
- package/lib/sharedComponents/frequency/frequency-on-completion-of/frequency-on-completion-of.component.d.ts +1 -1
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
-
import
|
|
2
|
+
import moment from 'moment/moment';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
import * as i1 from "../../frequency/frequency.service";
|
|
5
5
|
import * as i2 from "../../../ui-kit/snack-bar/snack-bar.service";
|
|
@@ -40,39 +40,39 @@ export class FrequencyDialogContainerComponent {
|
|
|
40
40
|
},
|
|
41
41
|
{
|
|
42
42
|
name: 'Weekly',
|
|
43
|
-
type: 'weekly'
|
|
43
|
+
type: 'weekly',
|
|
44
44
|
},
|
|
45
45
|
{
|
|
46
46
|
name: 'Monthly',
|
|
47
|
-
type: 'monthly'
|
|
47
|
+
type: 'monthly',
|
|
48
48
|
},
|
|
49
49
|
{
|
|
50
50
|
name: 'Quarterly',
|
|
51
|
-
type: 'quarterly'
|
|
51
|
+
type: 'quarterly',
|
|
52
52
|
},
|
|
53
53
|
{
|
|
54
54
|
name: 'Biannual',
|
|
55
|
-
type: 'biannual'
|
|
55
|
+
type: 'biannual',
|
|
56
56
|
},
|
|
57
57
|
{
|
|
58
58
|
name: 'Annual',
|
|
59
|
-
type: 'annual'
|
|
59
|
+
type: 'annual',
|
|
60
60
|
},
|
|
61
61
|
{
|
|
62
62
|
name: 'One Time',
|
|
63
|
-
type: 'oneTime'
|
|
63
|
+
type: 'oneTime',
|
|
64
64
|
},
|
|
65
65
|
{
|
|
66
66
|
name: 'Random',
|
|
67
|
-
type: 'random'
|
|
67
|
+
type: 'random',
|
|
68
68
|
},
|
|
69
69
|
{
|
|
70
70
|
name: 'On Completion Of',
|
|
71
|
-
type: 'onCompletionOf'
|
|
71
|
+
type: 'onCompletionOf',
|
|
72
72
|
},
|
|
73
73
|
{
|
|
74
74
|
name: 'Ongoing',
|
|
75
|
-
type: 'ongoing'
|
|
75
|
+
type: 'ongoing',
|
|
76
76
|
},
|
|
77
77
|
];
|
|
78
78
|
}
|
|
@@ -80,7 +80,7 @@ export class FrequencyDialogContainerComponent {
|
|
|
80
80
|
this.frequencyDetails['pattern'] = frequency?.frequency;
|
|
81
81
|
this.frequencyDetails['window'] = frequency?.remind_before_days;
|
|
82
82
|
this.frequencyDetails['failedTime'] = frequency?.frequency_time;
|
|
83
|
-
console.log(
|
|
83
|
+
console.log('frequencyDetailsfrequencyDetailsfrequencyDetails', this.frequencyDetails);
|
|
84
84
|
}
|
|
85
85
|
ngOnInit() {
|
|
86
86
|
if (this.frequencyDetails?.pattern != '') {
|
|
@@ -95,7 +95,7 @@ export class FrequencyDialogContainerComponent {
|
|
|
95
95
|
this.closeFrequency.emit();
|
|
96
96
|
}
|
|
97
97
|
onFrequencySelected(event) {
|
|
98
|
-
console.log(
|
|
98
|
+
console.log('event.....', event);
|
|
99
99
|
this.frequencyData = event;
|
|
100
100
|
this.isNextDisabled = this.isInvalid();
|
|
101
101
|
}
|
|
@@ -104,48 +104,48 @@ export class FrequencyDialogContainerComponent {
|
|
|
104
104
|
switch (frequencyPattern) {
|
|
105
105
|
case 0:
|
|
106
106
|
this.frequencyTab = 'oneTime';
|
|
107
|
-
this.currentTabName =
|
|
107
|
+
this.currentTabName = 'a one time';
|
|
108
108
|
break;
|
|
109
109
|
case 1:
|
|
110
110
|
this.frequencyTab = 'daily';
|
|
111
|
-
this.currentTabName =
|
|
111
|
+
this.currentTabName = 'a daily';
|
|
112
112
|
break;
|
|
113
113
|
case 2:
|
|
114
114
|
this.frequencyTab = 'weekly';
|
|
115
|
-
this.currentTabName =
|
|
115
|
+
this.currentTabName = 'a weekly';
|
|
116
116
|
break;
|
|
117
117
|
case 3:
|
|
118
118
|
this.frequencyTab = 'monthly';
|
|
119
|
-
this.currentTabName =
|
|
119
|
+
this.currentTabName = 'a monthly';
|
|
120
120
|
break;
|
|
121
121
|
case 4:
|
|
122
122
|
this.frequencyTab = 'annual';
|
|
123
|
-
this.currentTabName =
|
|
123
|
+
this.currentTabName = 'an annual ';
|
|
124
124
|
break;
|
|
125
125
|
case 5:
|
|
126
126
|
this.frequencyTab = 'daily';
|
|
127
|
-
this.currentTabName =
|
|
127
|
+
this.currentTabName = 'a daily';
|
|
128
128
|
break;
|
|
129
129
|
case 6:
|
|
130
130
|
this.frequencyTab = 'onCompletionOf';
|
|
131
|
-
this.currentTabName =
|
|
131
|
+
this.currentTabName = 'an on completion of';
|
|
132
132
|
this.frequencyData.report_id = this.frequencyDetails.selectedReport;
|
|
133
133
|
break;
|
|
134
134
|
case 7:
|
|
135
135
|
this.frequencyTab = 'quarterly';
|
|
136
|
-
this.currentTabName =
|
|
136
|
+
this.currentTabName = 'a quarterly';
|
|
137
137
|
break;
|
|
138
138
|
case 8:
|
|
139
139
|
this.frequencyTab = 'random';
|
|
140
|
-
this.currentTabName =
|
|
140
|
+
this.currentTabName = 'a random';
|
|
141
141
|
break;
|
|
142
142
|
case 9:
|
|
143
143
|
this.frequencyTab = 'biannual';
|
|
144
|
-
this.currentTabName =
|
|
144
|
+
this.currentTabName = 'a biannual';
|
|
145
145
|
break;
|
|
146
146
|
case 10:
|
|
147
147
|
this.frequencyTab = 'ongoing';
|
|
148
|
-
this.currentTabName =
|
|
148
|
+
this.currentTabName = 'an ongoing';
|
|
149
149
|
break;
|
|
150
150
|
}
|
|
151
151
|
this.isNextDisabled = false;
|
|
@@ -156,7 +156,10 @@ export class FrequencyDialogContainerComponent {
|
|
|
156
156
|
this.currentTabName = 'a one time';
|
|
157
157
|
}
|
|
158
158
|
else {
|
|
159
|
-
this.currentTabName =
|
|
159
|
+
this.currentTabName =
|
|
160
|
+
frequency.startsWith('On') || frequency.toLowerCase() === 'annual'
|
|
161
|
+
? 'an ' + frequency
|
|
162
|
+
: 'a ' + frequency;
|
|
160
163
|
}
|
|
161
164
|
}
|
|
162
165
|
isInvalid() {
|
|
@@ -172,7 +175,6 @@ export class FrequencyDialogContainerComponent {
|
|
|
172
175
|
isInvalid = false;
|
|
173
176
|
this.isNextDisabled = false;
|
|
174
177
|
}
|
|
175
|
-
;
|
|
176
178
|
break;
|
|
177
179
|
case 'weekly':
|
|
178
180
|
if (this.frequencyData.continuous_failed_days < 2) {
|
|
@@ -184,14 +186,14 @@ export class FrequencyDialogContainerComponent {
|
|
|
184
186
|
isInvalid = false;
|
|
185
187
|
this.isNextDisabled = false;
|
|
186
188
|
}
|
|
187
|
-
|
|
188
|
-
|
|
189
|
+
if (frequencyDetails[1] == '' ||
|
|
190
|
+
!frequencyDetails[1] ||
|
|
191
|
+
frequencyDetails.length < 4) {
|
|
189
192
|
isInvalid = true;
|
|
190
193
|
}
|
|
191
194
|
else {
|
|
192
195
|
isInvalid = false;
|
|
193
196
|
}
|
|
194
|
-
;
|
|
195
197
|
break;
|
|
196
198
|
case 'monthly':
|
|
197
199
|
if (this.frequencyData.continuous_failed_days < 2) {
|
|
@@ -203,17 +205,19 @@ export class FrequencyDialogContainerComponent {
|
|
|
203
205
|
isInvalid = false;
|
|
204
206
|
this.isNextDisabled = false;
|
|
205
207
|
}
|
|
206
|
-
|
|
207
|
-
|
|
208
|
+
if (frequencyDetails[2] == '' ||
|
|
209
|
+
!frequencyDetails[2] ||
|
|
210
|
+
frequencyDetails.length < 4) {
|
|
208
211
|
isInvalid = true;
|
|
209
212
|
}
|
|
210
213
|
else {
|
|
211
214
|
isInvalid = false;
|
|
212
215
|
}
|
|
213
|
-
;
|
|
214
216
|
break;
|
|
215
217
|
case 'biannual':
|
|
216
|
-
if (frequencyDetails.length === 0 ||
|
|
218
|
+
if (frequencyDetails.length === 0 ||
|
|
219
|
+
frequencyDetails[2] === '' ||
|
|
220
|
+
frequencyDetails[2].split(',')?.length < 2) {
|
|
217
221
|
isInvalid = true;
|
|
218
222
|
}
|
|
219
223
|
else {
|
|
@@ -223,7 +227,8 @@ export class FrequencyDialogContainerComponent {
|
|
|
223
227
|
case 'oneTime':
|
|
224
228
|
if (frequencyDetails?.length > 0) {
|
|
225
229
|
const selectedTime = moment(`${frequencyDetails[3]}-${frequencyDetails[2]}-${frequencyDetails[1]} ${this.frequencyData.timeIn12hr}`, 'DD-MM-YYYY HH:mm a').unix();
|
|
226
|
-
if (this.frequencyService.changeTimeZone(new Date())?.getTime() / 1000 >
|
|
230
|
+
if (this.frequencyService.changeTimeZone(new Date())?.getTime() / 1000 >
|
|
231
|
+
selectedTime) {
|
|
227
232
|
this.snackbar.show('Please set a future date.', 'alert');
|
|
228
233
|
isInvalid = true;
|
|
229
234
|
break;
|
|
@@ -246,27 +251,32 @@ export class FrequencyDialogContainerComponent {
|
|
|
246
251
|
}
|
|
247
252
|
break;
|
|
248
253
|
case 'random':
|
|
249
|
-
if (parseInt(frequencyDetails[1]) == 2 &&
|
|
254
|
+
if (parseInt(frequencyDetails[1]) == 2 &&
|
|
255
|
+
(frequencyDetails[2] == '' ||
|
|
256
|
+
!frequencyDetails[2] ||
|
|
257
|
+
frequencyDetails.length < 4)) {
|
|
250
258
|
isInvalid = true;
|
|
251
259
|
}
|
|
252
260
|
else {
|
|
253
261
|
isInvalid = false;
|
|
254
262
|
}
|
|
255
|
-
;
|
|
256
263
|
break;
|
|
257
|
-
default:
|
|
264
|
+
default:
|
|
265
|
+
isInvalid = false;
|
|
258
266
|
}
|
|
259
267
|
return isInvalid;
|
|
260
268
|
}
|
|
261
269
|
save() {
|
|
262
270
|
let frequency_details = {
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
271
|
+
frequency: this.frequencyData?.pattern,
|
|
272
|
+
started_at: this.frequencyService?.changeTimeZone(new Date())
|
|
273
|
+
? moment(this.frequencyService?.changeTimeZone(new Date()))?.format('YYYY-MM-DD')
|
|
274
|
+
: moment().format('YYYY-MM-DD'),
|
|
275
|
+
frequency_time: this.frequencyData?.timeIn12hr,
|
|
276
|
+
remind_before_days: this.frequencyData?.window,
|
|
277
|
+
placeholder: this.frequencyData?.placeholder,
|
|
268
278
|
};
|
|
269
|
-
console.log(
|
|
279
|
+
console.log('frequency_detailsfrequency_details', frequency_details);
|
|
270
280
|
this.selectedFrequency.emit(frequency_details);
|
|
271
281
|
this.closeFrequency.emit();
|
|
272
282
|
}
|
|
@@ -286,4 +296,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
286
296
|
type: Input,
|
|
287
297
|
args: ['frequencyDetails']
|
|
288
298
|
}] } });
|
|
289
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlcXVlbmN5LWRpYWxvZy1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9mcmVxdWVuY3ktZGlhbG9nL2ZyZXF1ZW5jeS1kaWFsb2ctY29udGFpbmVyL2ZyZXF1ZW5jeS1kaWFsb2ctY29udGFpbmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3NoYXJlZENvbXBvbmVudHMvZnJlcXVlbmN5LWRpYWxvZy9mcmVxdWVuY3ktZGlhbG9nLWNvbnRhaW5lci9mcmVxdWVuY3ktZGlhbG9nLWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sS0FBSyxNQUFNLE1BQU0sUUFBUSxDQUFDOzs7Ozs7Ozs7OztBQVNqQyxNQUFNLE9BQU8saUNBQWlDO0lBeUY1QyxZQUNVLGdCQUFrQyxFQUNsQyxRQUF5QjtRQUR6QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLGFBQVEsR0FBUixRQUFRLENBQWlCO1FBMUZuQyxlQUFVLEdBQUcsUUFBUSxDQUFBO1FBRXJCLGtDQUFrQztRQUNsQyxxQkFBZ0IsR0FBTztZQUNyQixPQUFPLEVBQUUsRUFBRTtZQUNYLE1BQU0sRUFBRSxDQUFDO1lBQ1QsVUFBVSxFQUFFLEVBQUU7U0FDZixDQUFDO1FBQ08sU0FBSSxHQUFNLEVBQUUsQ0FBQztRQUNaLHNCQUFpQixHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDNUMsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBTzlDLG1CQUFjLEdBQWEsS0FBSyxDQUFDO1FBRWpDLG9CQUFvQjtRQUVwQixxQkFBcUI7UUFDckIsSUFBSTtRQUVKLHlCQUF5QjtRQUN6Qiw2QkFBNkI7UUFDN0IsSUFBSTtRQUlKLGlCQUFZLEdBQUcsUUFBUSxDQUFDO1FBQ3hCLG1CQUFjLEdBQUcsVUFBVSxDQUFDO1FBWTVCLGtCQUFhLEdBQUc7WUFDZDtnQkFDRSxJQUFJLEVBQUUsT0FBTztnQkFDYixJQUFJLEVBQUUsT0FBTzthQUVkO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsSUFBSSxFQUFFLFFBQVE7YUFDZjtZQUNEO2dCQUNFLElBQUksRUFBRSxTQUFTO2dCQUNmLElBQUksRUFBRSxTQUFTO2FBQ2hCO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLFdBQVc7Z0JBQ2pCLElBQUksRUFBRSxXQUFXO2FBQ2xCO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLFVBQVU7Z0JBQ2hCLElBQUksRUFBRSxVQUFVO2FBQ2pCO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsSUFBSSxFQUFFLFFBQVE7YUFDZjtZQUNEO2dCQUNFLElBQUksRUFBRSxVQUFVO2dCQUNoQixJQUFJLEVBQUUsU0FBUzthQUNoQjtZQUNEO2dCQUNFLElBQUksRUFBRSxRQUFRO2dCQUNkLElBQUksRUFBRSxRQUFRO2FBQ2Y7WUFDRDtnQkFDRSxJQUFJLEVBQUUsa0JBQWtCO2dCQUN4QixJQUFJLEVBQUUsZ0JBQWdCO2FBQ3ZCO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsSUFBSSxFQUFFLFNBQVM7YUFDaEI7U0FDRixDQUFBO0lBTUssQ0FBQztJQWhGUCxJQUErQixtQkFBbUIsQ0FBQyxTQUFjO1FBQy9ELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsR0FBRyxTQUFTLEVBQUUsU0FBUyxDQUFDO1FBQ3hELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsR0FBRyxTQUFTLEVBQUUsa0JBQWtCLENBQUM7UUFDaEUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxHQUFHLFNBQVMsRUFBRSxjQUFjLENBQUM7UUFDaEUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrREFBa0QsRUFBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtJQUN2RixDQUFDO0lBNkVELFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxPQUFPLElBQUksRUFBRSxFQUFFO1lBQ3hDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFBO1NBQ3pCO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFFVCxJQUFJLENBQUMscUJBQXFCLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFDLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFDLENBQUMsQ0FBQztRQUN2RSxJQUFJLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBQyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBQyxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxLQUFVO1FBQzVCLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRWpDLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFBO1FBQzFCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFFRCxpQkFBaUI7UUFDZixNQUFNLGdCQUFnQixHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2hGLFFBQVEsZ0JBQWdCLEVBQUU7WUFDeEIsS0FBSyxDQUFDO2dCQUFFLElBQUksQ0FBQyxZQUFZLEdBQUcsU0FBUyxDQUFDO2dCQUFDLElBQUksQ0FBQyxjQUFjLEdBQUcsWUFBWSxDQUFDO2dCQUFDLE1BQU07WUFDakYsS0FBSyxDQUFDO2dCQUFFLElBQUksQ0FBQyxZQUFZLEdBQUcsT0FBTyxDQUFDO2dCQUFFLElBQUksQ0FBQyxjQUFjLEdBQUcsU0FBUyxDQUFDO2dCQUFDLE1BQU07WUFDN0UsS0FBSyxDQUFDO2dCQUFFLElBQUksQ0FBQyxZQUFZLEdBQUcsUUFBUSxDQUFDO2dCQUFFLElBQUksQ0FBQyxjQUFjLEdBQUcsVUFBVSxDQUFDO2dCQUFDLE1BQU07WUFDL0UsS0FBSyxDQUFDO2dCQUFFLElBQUksQ0FBQyxZQUFZLEdBQUcsU0FBUyxDQUFDO2dCQUFFLElBQUksQ0FBQyxjQUFjLEdBQUcsV0FBVyxDQUFDO2dCQUFDLE1BQU07WUFDakYsS0FBSyxDQUFDO2dCQUFFLElBQUksQ0FBQyxZQUFZLEdBQUcsUUFBUSxDQUFDO2dCQUFFLElBQUksQ0FBQyxjQUFjLEdBQUcsWUFBWSxDQUFDO2dCQUFBLE1BQU07WUFDaEYsS0FBSyxDQUFDO2dCQUFFLElBQUksQ0FBQyxZQUFZLEdBQUcsT0FBTyxDQUFDO2dCQUFFLElBQUksQ0FBQyxjQUFjLEdBQUcsU0FBUyxDQUFDO2dCQUFDLE1BQU07WUFDN0UsS0FBSyxDQUFDO2dCQUFFLElBQUksQ0FBQyxZQUFZLEdBQUcsZ0JBQWdCLENBQUM7Z0JBQUUsSUFBSSxDQUFDLGNBQWMsR0FBRyxxQkFBcUIsQ0FBQztnQkFBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDO2dCQUFDLE1BQU07WUFDdkssS0FBSyxDQUFDO2dCQUFFLElBQUksQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDO2dCQUFFLElBQUksQ0FBQyxjQUFjLEdBQUcsYUFBYSxDQUFDO2dCQUFDLE1BQU07WUFDckYsS0FBSyxDQUFDO2dCQUFFLElBQUksQ0FBQyxZQUFZLEdBQUcsUUFBUSxDQUFDO2dCQUFFLElBQUksQ0FBQyxjQUFjLEdBQUcsVUFBVSxDQUFDO2dCQUFDLE1BQU07WUFDL0UsS0FBSyxDQUFDO2dCQUFFLElBQUksQ0FBQyxZQUFZLEdB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QUFFLE1BQU07WUFDaEQsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsV0FBVztTQUMvQyxDQUFBO1FBQ0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxvQ0FBb0MsRUFBQyxpQkFBaUIsQ0FBQyxDQUFBO1FBQ25FLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtRQUM5QyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzdCLENBQUM7OzhIQXJQVSxpQ0FBaUM7a0hBQWpDLGlDQUFpQyw4UUNWOUMsb3BLQWdFTTsyRkR0RE8saUNBQWlDO2tCQUw3QyxTQUFTOytCQUNFLGdDQUFnQztxSUFhakMsSUFBSTtzQkFBWixLQUFLO2dCQUNJLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNO2dCQUN3QixtQkFBbUI7c0JBQWpELEtBQUs7dUJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgKiBhcyBtb21lbnQgZnJvbSAnbW9tZW50JztcclxuaW1wb3J0IHsgU25hY2tCYXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vdWkta2l0L3NuYWNrLWJhci9zbmFjay1iYXIuc2VydmljZSc7XHJcbmltcG9ydCB7IEZyZXF1ZW5jeVNlcnZpY2UgfSBmcm9tICcuLi8uLi9mcmVxdWVuY3kvZnJlcXVlbmN5LnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtZnJlcXVlbmN5LWRpYWxvZy1jb250YWluZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9mcmVxdWVuY3ktZGlhbG9nLWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZnJlcXVlbmN5LWRpYWxvZy1jb250YWluZXIuY29tcG9uZW50Lmxlc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRnJlcXVlbmN5RGlhbG9nQ29udGFpbmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBjdXJyZW50VGFiID0gJ1dFRUtMWSdcclxuXHJcbiAgLy8gQElucHV0KCkgZnJlcXVlbmN5RGV0YWlsczogYW55O1xyXG4gIGZyZXF1ZW5jeURldGFpbHM6IGFueSA9e1xyXG4gICAgcGF0dGVybjogJycsXHJcbiAgICB3aW5kb3c6IDAsXHJcbiAgICB0aW1lSW4xMmhyOiAnJyxcclxuICB9O1xyXG4gIEBJbnB1dCgpIG1vZGU6IGFueT0nJztcclxuICBAT3V0cHV0KCkgc2VsZWN0ZWRGcmVxdWVuY3kgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgY2xvc2VGcmVxdWVuY3kgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQElucHV0KCdmcmVxdWVuY3lEZXRhaWxzJykgc2V0IGdldEZyZXF1ZW5jeURldGFpbHMoZnJlcXVlbmN5OiBhbnkpIHtcclxuICAgIHRoaXMuZnJlcXVlbmN5RGV0YWlsc1sncGF0dGVybiddID0gZnJlcXVlbmN5Py5mcmVxdWVuY3k7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeURldGFpbHNbJ3dpbmRvdyddID0gZnJlcXVlbmN5Py5yZW1pbmRfYmVmb3JlX2RheXM7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeURldGFpbHNbJ2ZhaWxlZFRpbWUnXSA9IGZyZXF1ZW5jeT8uZnJlcXVlbmN5X3RpbWU7XHJcbiAgICBjb25zb2xlLmxvZyhcImZyZXF1ZW5jeURldGFpbHNmcmVxdWVuY3lEZXRhaWxzZnJlcXVlbmN5RGV0YWlsc1wiLHRoaXMuZnJlcXVlbmN5RGV0YWlscylcclxuICB9XHJcbiAgaXNOZXh0RGlzYWJsZWQgOmJvb2xlYW4gID0gZmFsc2U7XHJcblxyXG4gIC8vIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gIC8vIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gIC8vIH1cclxuXHJcbiAgLy8gc3dpdGNoVGFiKHRhYjpzdHJpbmcpe1xyXG4gIC8vICAgdGhpcy5mcmVxdWVuY3lUYWIgPSB0YWI7XHJcbiAgLy8gfVxyXG5cclxuXHJcblxyXG4gIGZyZXF1ZW5jeVRhYiA9ICd3ZWVrbHknO1xyXG4gIGN1cnJlbnRUYWJOYW1lID0gJ2Egd2Vla2x5JztcclxuXHJcbiAgLy8gQElucHV0KCkgZnJlcXVlbmN5RGV0YWlsczogYW55O1xyXG4gIC8vIEBPdXRwdXQoKSBzZWxlY3RlZEZyZXF1ZW5jeSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIC8vIEBPdXRwdXQoKSBjbG9zZUZyZXF1ZW5jeSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIC8vIEBJbnB1dCgpIG1vZGU6IGFueT0nJztcclxuXHJcblxyXG5cclxuXHJcbiAgZnJlcXVlbmN5RGF0YTogYW55O1xyXG5cclxuICBmcmVxdWVuY3lMaXN0ID0gW1xyXG4gICAge1xyXG4gICAgICBuYW1lOiAnRGFpbHknLFxyXG4gICAgICB0eXBlOiAnZGFpbHknLFxyXG5cclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIG5hbWU6ICdXZWVrbHknLFxyXG4gICAgICB0eXBlOiAnd2Vla2x5J1xyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgbmFtZTogJ01vbnRobHknLFxyXG4gICAgICB0eXBlOiAnbW9udGhseSdcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIG5hbWU6ICdRdWFydGVybHknLFxyXG4gICAgICB0eXBlOiAncXVhcnRlcmx5J1xyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgbmFtZTogJ0JpYW5udWFsJyxcclxuICAgICAgdHlwZTogJ2JpYW5udWFsJ1xyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgbmFtZTogJ0FubnVhbCcsXHJcbiAgICAgIHR5cGU6ICdhbm51YWwnXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBuYW1lOiAnT25lIFRpbWUnLFxyXG4gICAgICB0eXBlOiAnb25lVGltZSdcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIG5hbWU6ICdSYW5kb20nLFxyXG4gICAgICB0eXBlOiAncmFuZG9tJ1xyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgbmFtZTogJ09uIENvbXBsZXRpb24gT2YnLFxyXG4gICAgICB0eXBlOiAnb25Db21wbGV0aW9uT2YnXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBuYW1lOiAnT25nb2luZycsXHJcbiAgICAgIHR5cGU6ICdvbmdvaW5nJ1xyXG4gICAgfSxcclxuICBdXHJcblxyXG4gIHNlbGVjdGVkRnJlcXVlbmN5RGF0YTogYW55O1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBmcmVxdWVuY3lTZXJ2aWNlOiBGcmVxdWVuY3lTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBzbmFja2JhcjogU25hY2tCYXJTZXJ2aWNlXHJcbiAgICApIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmZyZXF1ZW5jeURldGFpbHM/LnBhdHRlcm4gIT0gJycpIHtcclxuICAgICAgdGhpcy5wb3B1bGF0ZUZyZXF1ZW5jeSgpXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcygpIHtcclxuICAgIFxyXG4gICAgdGhpcy5zZWxlY3RlZEZyZXF1ZW5jeURhdGEgPSBPYmplY3QuYXNzaWduKHsuLi50aGlzLmZyZXF1ZW5jeURldGFpbHN9KTtcclxuICAgIHRoaXMuZnJlcXVlbmN5RGF0YSA9IE9iamVjdC5hc3NpZ24oey4uLnRoaXMuZnJlcXVlbmN5RGV0YWlsc30pO1xyXG4gIH1cclxuXHJcbiAgY2xvc2UoKSB7XHJcbiAgICB0aGlzLmNsb3NlRnJlcXVlbmN5LmVtaXQoKTtcclxuICB9XHJcblxyXG4gIG9uRnJlcXVlbmN5U2VsZWN0ZWQoZXZlbnQ6IGFueSkge1xyXG4gICAgY29uc29sZS5sb2coXCJldmVudC4uLi4uXCIsIGV2ZW50KTtcclxuXHJcbiAgICB0aGlzLmZyZXF1ZW5jeURhdGEgPSBldmVudFxyXG4gICAgdGhpcy5pc05leHREaXNhYmxlZCA9IHRoaXMuaXNJbnZhbGlkKCk7XHJcbiAgfVxyXG5cclxuICBwb3B1bGF0ZUZyZXF1ZW5jeSgpIHtcclxuICAgIGNvbnN0IGZyZXF1ZW5jeVBhdHRlcm4gPSBwYXJzZUludCh0aGlzLmZyZXF1ZW5jeURldGFpbHM/LnBhdHRlcm4uc3BsaXQoJ34nKVswXSk7ICAgIFxyXG4gICAgc3dpdGNoIChmcmVxdWVuY3lQYXR0ZXJuKSB7XHJcbiAgICAgIGNhc2UgMDogdGhpcy5mcmVxdWVuY3lUYWIgPSAnb25lVGltZSc7IHRoaXMuY3VycmVudFRhYk5hbWUgPSBcImEgb25lIHRpbWVcIjsgYnJlYWs7XHJcbiAgICAgIGNhc2UgMTogdGhpcy5mcmVxdWVuY3lUYWIgPSAnZGFpbHknOyAgdGhpcy5jdXJyZW50VGFiTmFtZSA9IFwiYSBkYWlseVwiOyBicmVhaztcclxuICAgICAgY2FzZSAyOiB0aGlzLmZyZXF1ZW5jeVRhYiA9ICd3ZWVrbHknOyAgdGhpcy5jdXJyZW50VGFiTmFtZSA9IFwiYSB3ZWVrbHlcIjsgYnJlYWs7XHJcbiAgICAgIGNhc2UgMzogdGhpcy5mcmVxdWVuY3lUYWIgPSAnbW9udGhseSc7ICB0aGlzLmN1cnJlbnRUYWJOYW1lID0gXCJhIG1vbnRobHlcIjsgYnJlYWs7XHJcbiAgICAgIGNhc2UgNDogdGhpcy5mcmVxdWVuY3lUYWIgPSAnYW5udWFsJzsgIHRoaXMuY3VycmVudFRhYk5hbWUgPSBcImFuIGFubnVhbCBcIjticmVhaztcclxuICAgICAgY2FzZSA1OiB0aGlzLmZyZXF1ZW5jeVRhYiA9ICdkYWlseSc7ICB0aGlzLmN1cnJlbnRUYWJOYW1lID0gXCJhIGRhaWx5XCI7IGJyZWFrO1xyXG4gICAgICBjYXNlIDY6IHRoaXMuZnJlcXVlbmN5VGFiID0gJ29uQ29tcGxldGlvbk9mJzsgIHRoaXMuY3VycmVudFRhYk5hbWUgPSBcImFuIG9uIGNvbXBsZXRpb24gb2ZcIjsgdGhpcy5mcmVxdWVuY3lEYXRhLnJlcG9ydF9pZCA9IHRoaXMuZnJlcXVlbmN5RGV0YWlscy5zZWxlY3RlZFJlcG9ydDsgYnJlYWs7XHJcbiAgICAgIGNhc2UgNzogdGhpcy5mcmVxdWVuY3lUYWIgPSAncXVhcnRlcmx5JzsgIHRoaXMuY3VycmVudFRhYk5hbWUgPSBcImEgcXVhcnRlcmx5XCI7IGJyZWFrO1xyXG4gICAgICBjYXNlIDg6IHRoaXMuZnJlcXVlbmN5VGFiID0gJ3JhbmRvbSc7ICB0aGlzLmN1cnJlbnRUYWJOYW1lID0gXCJhIHJhbmRvbVwiOyBicmVhaztcclxuICAgICAgY2FzZSA5OiB0aGlzLmZyZXF1ZW5jeVRhYiA9ICdiaWFubnVhbCc7ICB0aGlzLmN1cnJlbnRUYWJOYW1lID0gXCJhIGJpYW5udWFsXCI7IGJyZWFrO1xyXG4gICAgICBjYXNlIDEwOiB0aGlzLmZyZXF1ZW5jeVRhYiA9ICdvbmdvaW5nJzsgdGhpcy5jdXJyZW50VGFiTmFtZSA9IFwiYW4gb25nb2luZ1wiOyBicmVhaztcclxuICAgIH1cclxuICAgIHRoaXMuaXNOZXh0RGlzYWJsZWQgPSBmYWxzZTtcclxuXHJcbiAgfVxyXG5cclxuICBzd2l0Y2hUYWIoZnJlcXVlbmN5OiBhbnkpIHtcclxuICAgIHRoaXMuZnJlcXVlbmN5VGFiID0gZnJlcXVlbmN5O1xyXG4gICAgaWYgKGZyZXF1ZW5jeSA9PSAnb25lVGltZScpIHtcclxuICAgICAgdGhpcy5jdXJyZW50VGFiTmFtZSA9J2Egb25lIHRpbWUnO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jdXJyZW50VGFiTmFtZSA9IChmcmVxdWVuY3kuc3RhcnRzV2l0aCgnT24nKSB8fCBmcmVxdWVuY3kudG9Mb3dlckNhc2UoKSA9PT0gJ2FubnVhbCcpID8gJ2FuICcgICsgZnJlcXVlbmN5OiAnYSAnICsgZnJlcXVlbmN5O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaXNJbnZhbGlkKCkgOiBib29sZWFuIHtcclxuICAgIGxldCBpc0ludmFsaWQgPSBmYWxzZTtcclxuICAgIGNvbnN0IGZyZXF1ZW5jeURldGFpbHMgPSAgdGhpcy5mcmVxdWVuY3lEYXRhPy5wYXR0ZXJuPy5zcGxpdCgnficpO1xyXG4gICAgc3dpdGNoKHRoaXMuZnJlcXVlbmN5VGFiKSB7XHJcblxyXG4gICAgICBjYXNlICdkYWlseSc6IFxyXG4gICAgICBcclxuICAgICAgaWYodGhpcy5mcmVxdWVuY3lEYXRhLmNvbnRpbnVvdXNfZmFpbGVkX2RheXMgPCAyKSB7XHJcbiAgICAgICAgdGhpcy5zbmFja2Jhci5zaG93KCdJbnB1dCB2YWx1ZSBzaG91bGQgYmUgZ3JlYXRlciB0aGFuIDEuJywgJ2FsZXJ0Jyk7XHJcbiAgICAgICAgaXNJbnZhbGlkID0gdHJ1ZTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpc0ludmFsaWQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmlzTmV4dERpc2FibGVkID0gZmFsc2U7XHJcbiAgICAgIH07IGJyZWFrO1xyXG4gICAgICBjYXNlICd3ZWVrbHknOiBpZih0aGlzLmZyZXF1ZW5jeURhdGEuY29udGludW91c19mYWlsZWRfZGF5cyA8IDIpIHtcclxuICAgICAgICB0aGlzLnNuYWNrYmFyLnNob3coJ0lucHV0IHZhbHVlIHNob3VsZCBiZSBncmVhdGVyIHRoYW4gMS4nLCAnYWxlcnQnKTtcclxuICAgICAgICBpc0ludmFsaWQgPSB0cnVlO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlzSW52YWxpZCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuaXNOZXh0RGlzYWJsZWQgPSBmYWxzZTtcclxuICAgICAgfTtcclxuICAgICAgXHJcbiAgICAgIGlmKGZyZXF1ZW5jeURldGFpbHNbMV0gPT0gJycgfHwgIWZyZXF1ZW5jeURldGFpbHNbMV0gfHwgZnJlcXVlbmN5RGV0YWlscy5sZW5ndGggPCA0KSB7XHJcbiAgICAgICAgaXNJbnZhbGlkID0gdHJ1ZTtcclxuICAgICAgfSAgZWxzZSB7XHJcbiAgICAgICAgaXNJbnZhbGlkID0gZmFsc2U7XHJcbiAgICAgIH07XHJcblxyXG4gICAgICBicmVhaztcclxuICAgICAgY2FzZSAnbW9udGhseSc6ICBpZih0aGlzLmZyZXF1ZW5jeURhdGEuY29udGludW91c19mYWlsZWRfZGF5cyA8IDIpIHtcclxuICAgICAgICB0aGlzLnNuYWNrYmFyLnNob3coJ0lucHV0IHZhbHVlIHNob3VsZCBiZSBncmVhdGVyIHRoYW4gMS4nLCAnYWxlcnQnKTtcclxuICAgICAgICBpc0ludmFsaWQgPSB0cnVlO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlzSW52YWxpZCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuaXNOZXh0RGlzYWJsZWQgPSBmYWxzZTtcclxuICAgICAgfTtcclxuXHJcbiAgICAgIGlmKGZyZXF1ZW5jeURldGFpbHNbMl0gPT0gJycgfHwgIWZyZXF1ZW5jeURldGFpbHNbMl0gfHwgZnJlcXVlbmN5RGV0YWlscy5sZW5ndGggPCA0KSB7XHJcbiAgICAgICAgaXNJbnZhbGlkID0gdHJ1ZTtcclxuICAgICAgfSAgZWxzZSB7XHJcbiAgICAgICAgaXNJbnZhbGlkID0gZmFsc2U7XHJcbiAgICAgIH07XHJcblxyXG4gICAgICBicmVhaztcclxuICAgICAgY2FzZSAnYmlhbm51YWwnOlxyXG4gICAgICAgICBpZihmcmVxdWVuY3lEZXRhaWxzLmxlbmd0aCA9PT0gMCB8fGZyZXF1ZW5jeURldGFpbHNbMl0gPT09ICcnIHx8IGZyZXF1ZW5jeURldGFpbHNbMl0uc3BsaXQoJywnKT8ubGVuZ3RoIDwgMikge1xyXG4gICAgICAgICAgaXNJbnZhbGlkID0gdHJ1ZTtcclxuICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGlzSW52YWxpZCA9IGZhbHNlO1xyXG4gICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ29uZVRpbWUnOlxyXG4gICAgICAgIGlmKGZyZXF1ZW5jeURldGFpbHM/Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIGNvbnN0IHNlbGVjdGVkVGltZSA9IG1vbWVudChgJHtmcmVxdWVuY3lEZXRhaWxzWzNdfS0ke2ZyZXF1ZW5jeURldGFpbHNbMl19LSR7ZnJlcXVlbmN5RGV0YWlsc1sxXX0gJHt0aGlzLmZyZXF1ZW5jeURhdGEudGltZUluMTJocn1gLCAnREQtTU0tWVlZWSBISDptbSBhJykudW5peCgpO1xyXG4gICAgICAgICAgaWYodGhpcy5mcmVxdWVuY3lTZXJ2aWNlLmNoYW5nZVRpbWVab25lKG5ldyBEYXRlKCkpPy5nZXRUaW1lKCkvMTAwMCA+IHNlbGVjdGVkVGltZSkge1xyXG4gICAgICAgICAgICB0aGlzLnNuYWNrYmFyLnNob3coJ1BsZWFzZSBzZXQgYSBmdXR1cmUgZGF0ZS4nLCAnYWxlcnQnKTtcclxuICAgICAgICAgICAgaXNJbnZhbGlkID0gdHJ1ZTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgaXNJbnZhbGlkID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuaXNOZXh0RGlzYWJsZWQgPSBmYWxzZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaXNJbnZhbGlkID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ29uQ29tcGxldGlvbk9mJzpcclxuICAgICAgICBpZih0aGlzLmZyZXF1ZW5jeURhdGEucmVwb3J0SWQgPiAwKSB7XHJcbiAgICAgICAgICBpc0ludmFsaWQgPSBmYWxzZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaXNJbnZhbGlkID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlICdyYW5kb20nOlxyXG4gICAgICAgaWYocGFyc2VJbnQoZnJlcXVlbmN5RGV0YWlsc1sxXSkgPT0gMiAmJiAoIGZyZXF1ZW5jeURldGFpbHNbMl0gPT0gJycgfHwgIWZyZXF1ZW5jeURldGFpbHNbMl0gfHwgZnJlcXVlbmN5RGV0YWlscy5sZW5ndGggPCA0KSkge1xyXG4gICAgICAgIGlzSW52YWxpZCA9IHRydWU7XHJcbiAgICAgIH0gIGVsc2Uge1xyXG4gICAgICAgIGlzSW52YWxpZCA9IGZhbHNlO1xyXG4gICAgICB9O1xyXG4gICAgICBicmVhaztcclxuICAgICAgZGVmYXVsdDogaXNJbnZhbGlkID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICAgcmV0dXJuIGlzSW52YWxpZDtcclxuICB9XHJcblxyXG4gIHNhdmUoKSB7XHJcbiAgICBsZXQgZnJlcXVlbmN5X2RldGFpbHMgPSB7XHJcbiAgICAgIFwiZnJlcXVlbmN5XCI6IHRoaXMuZnJlcXVlbmN5RGF0YT8ucGF0dGVybixcclxuICAgICAgXCJzdGFydGVkX2F0XCI6IHRoaXMuZnJlcXVlbmN5U2VydmljZT8uY2hhbmdlVGltZVpvbmUobmV3IERhdGUpID8gbW9tZW50KHRoaXMuZnJlcXVlbmN5U2VydmljZT8uY2hhbmdlVGltZVpvbmUobmV3IERhdGUpKT8uZm9ybWF0KFwiWVlZWS1NTS1ERFwiKSA6IG1vbWVudCgpLmZvcm1hdChcIllZWVktTU0tRERcIiksXHJcbiAgICAgIFwiZnJlcXVlbmN5X3RpbWVcIjogdGhpcy5mcmVxdWVuY3lEYXRhPy50aW1lSW4xMmhyLFxyXG4gICAgICBcInJlbWluZF9iZWZvcmVfZGF5c1wiOiB0aGlzLmZyZXF1ZW5jeURhdGE/LndpbmRvdyxcclxuICAgICAgXCJwbGFjZWhvbGRlclwiOiB0aGlzLmZyZXF1ZW5jeURhdGE/LnBsYWNlaG9sZGVyXHJcbiAgICB9XHJcbiAgICBjb25zb2xlLmxvZyhcImZyZXF1ZW5jeV9kZXRhaWxzZnJlcXVlbmN5X2RldGFpbHNcIixmcmVxdWVuY3lfZGV0YWlscylcclxuICAgIHRoaXMuc2VsZWN0ZWRGcmVxdWVuY3kuZW1pdChmcmVxdWVuY3lfZGV0YWlscylcclxuICAgIHRoaXMuY2xvc2VGcmVxdWVuY3kuZW1pdCgpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LWRpYWxvZ1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1kaWFsb2ctaGVhZCB2eC1wbC0zIHZ4LXByLTMgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktZGlhbG9nLXRpdGxlIHZ4LWZzLTE0IHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHRcIj5TZXQgYSBSZWFzc2Vzc21lbnQgRnJlcXVlbmN5PC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktZGlhbG9nLWJvZHlcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LWRpYWxvZy10YWIgdngtbWItMyB2eC1kLWZsZXhcIj5cclxuICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwic3dpdGNoVGFiKCd3ZWVrbHknKVwiIGNsYXNzPVwidGFiLWJ0biB2eC1mcy0xMSB2eC1mdy01MDAgdngtcGFyYWdyYXBoLXR4dCB2eC10dC11cHBlcmNhc2UgdngtcC0wIHZ4LW0tMCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWxoLTZcIiBbY2xhc3MuYWN0aXZlXT1cImZyZXF1ZW5jeVRhYiA9PT0gJ3dlZWtseSdcIj5XRUVLTFk8L2J1dHRvbj5cclxuICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwic3dpdGNoVGFiKCdtb250aGx5JylcIiBjbGFzcz1cInRhYi1idG4gdngtZnMtMTEgdngtZnctNTAwIHZ4LXBhcmFncmFwaC10eHQgdngtdHQtdXBwZXJjYXNlIHZ4LXAtMCB2eC1tLTAgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1saC02XCIgW2NsYXNzLmFjdGl2ZV09XCJmcmVxdWVuY3lUYWIgPT09ICdtb250aGx5J1wiPk1PTlRITFk8L2J1dHRvbj5cclxuICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwic3dpdGNoVGFiKCdxdWFydGVybHknKVwiIGNsYXNzPVwidGFiLWJ0biB2eC1mcy0xMSB2eC1mdy01MDAgdngtcGFyYWdyYXBoLXR4dCB2eC10dC11cHBlcmNhc2UgdngtcC0wIHZ4LW0tMCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWxoLTZcIiBbY2xhc3MuYWN0aXZlXT1cImZyZXF1ZW5jeVRhYiA9PT0gJ3F1YXJ0ZXJseSdcIj5RVUFSVEVSTFk8L2J1dHRvbj5cclxuICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwic3dpdGNoVGFiKCdiaWFubnVhbCcpXCIgY2xhc3M9XCJ0YWItYnRuIHZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1wYXJhZ3JhcGgtdHh0IHZ4LXR0LXVwcGVyY2FzZSB2eC1wLTAgdngtbS0wIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtbGgtNlwiIFtjbGFzcy5hY3RpdmVdPVwiZnJlcXVlbmN5VGFiID09PSAnYmlhbm51YWwnXCI+QklBTk5VQUw8L2J1dHRvbj5cclxuICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwic3dpdGNoVGFiKCdhbm51YWwnKVwiIGNsYXNzPVwidGFiLWJ0biB2eC1mcy0xMSB2eC1mdy01MDAgdngtcGFyYWdyYXBoLXR4dCB2eC10dC11cHBlcmNhc2UgdngtcC0wIHZ4LW0tMCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWxoLTZcIiBbY2xhc3MuYWN0aXZlXT1cImZyZXF1ZW5jeVRhYiA9PT0gJ2FubnVhbCdcIj5BTk5VQUw8L2J1dHRvbj5cclxuICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwic3dpdGNoVGFiKCdvbmVUaW1lJylcIiBjbGFzcz1cInRhYi1idG4gdngtZnMtMTEgdngtZnctNTAwIHZ4LXBhcmFncmFwaC10eHQgdngtdHQtdXBwZXJjYXNlIHZ4LXAtMCB2eC1tLTAgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1saC02XCIgW2NsYXNzLmFjdGl2ZV09XCJmcmVxdWVuY3lUYWIgPT09ICdvbmVUaW1lJ1wiPk9ORSBUSU1FPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktZGlhbG9nLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICA8IS0tIDxhcHAtZnJlcXVlbmN5LWRpYWxvZy13ZWVrbHkgKm5nSWY9XCJmcmVxdWVuY3lUYWIgPT09ICdXRUVLTFknXCI+PC9hcHAtZnJlcXVlbmN5LWRpYWxvZy13ZWVrbHk+IC0tPlxyXG4gICAgICAgICAgICA8YXBwLWZyZXF1ZW5jeS1kaWFsb2ctd2Vla2x5ICpuZ0lmPVwiZnJlcXVlbmN5VGFiID09PSAnd2Vla2x5J1wiXHJcbiAgICAgICAgICAgICAgICBbbW9kZV09XCJtb2RlXCJcclxuICAgICAgICAgICAgICAgIChmcmVxdWVuY3lEZXRhaWxzKT1cIm9uRnJlcXVlbmN5U2VsZWN0ZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICBbZnJlcXVlbmN5RGF0YV09XCJmcmVxdWVuY3lEZXRhaWxzXCJcclxuICAgICAgICAgICAgPjwvYXBwLWZyZXF1ZW5jeS1kaWFsb2ctd2Vla2x5PlxyXG4gICAgICAgICAgICA8IS0tIDxhcHAtZnJlcXVlbmN5LWRpYWxvZy1tb250aGx5ICpuZ0lmPVwiZnJlcXVlbmN5VGFiID09PSAnTU9OVEhMWSdcIj48L2FwcC1mcmVxdWVuY3ktZGlhbG9nLW1vbnRobHk+IC0tPlxyXG4gICAgICAgICAgICA8YXBwLWZyZXF1ZW5jeS1kaWFsb2ctbW9udGhseSAqbmdJZj1cImZyZXF1ZW5jeVRhYiA9PT0gJ21vbnRobHknXCJcclxuICAgICAgICAgICAgICAgIFttb2RlXT1cIm1vZGVcIlxyXG4gICAgICAgICAgICAgICAgKGZyZXF1ZW5jeURldGFpbHMpPVwib25GcmVxdWVuY3lTZWxlY3RlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgIFtmcmVxdWVuY3lEYXRhXT1cImZyZXF1ZW5jeURldGFpbHNcIj5cclxuICAgICAgICAgICAgPC9hcHAtZnJlcXVlbmN5LWRpYWxvZy1tb250aGx5PlxyXG4gICAgICAgICAgICA8IS0tIDxhcHAtZnJlcXVlbmN5LWRpYWxvZy1xdWFydGVybHkgKm5nSWY9XCJmcmVxdWVuY3lUYWIgPT09ICdRVUFSVEVSTFknXCI+PC9hcHAtZnJlcXVlbmN5LWRpYWxvZy1xdWFydGVybHk+XHJcbiAgICAgICAgICAgIDxhcHAtZnJlcXVlbmN5LWRpYWxvZy1iaWFubnVhbCAqbmdJZj1cImZyZXF1ZW5jeVRhYiA9PT0gJ0JJQU5OVUFMJ1wiPjwvYXBwLWZyZXF1ZW5jeS1kaWFsb2ctYmlhbm51YWw+XHJcbiAgICAgICAgICAgIDxhcHAtZnJlcXVlbmN5LWRpYWxvZy1hbm51YWwgKm5nSWY9XCJmcmVxdWVuY3lUYWIgPT09ICdBTk5VQUwnXCI+PC9hcHAtZnJlcXVlbmN5LWRpYWxvZy1hbm51YWw+XHJcbiAgICAgICAgICAgIDxhcHAtZnJlcXVlbmN5LWRpYWxvZy1vbmUtdGltZSAqbmdJZj1cImZyZXF1ZW5jeVRhYiA9PT0gJ09ORVRJTUUnXCI+PC9hcHAtZnJlcXVlbmN5LWRpYWxvZy1vbmUtdGltZT4gLS0+XHJcbiAgICAgICAgICAgIDxhcHAtZnJlcXVlbmN5LWRpYWxvZy1xdWFydGVybHkgXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImZyZXF1ZW5jeVRhYiA9PT0gJ3F1YXJ0ZXJseSdcIlxyXG4gICAgICAgICAgICAgICAgW21vZGVdPVwibW9kZVwiXHJcbiAgICAgICAgICAgICAgICAoZnJlcXVlbmN5RGV0YWlscyk9XCJvbkZyZXF1ZW5jeVNlbGVjdGVkKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgW2ZyZXF1ZW5jeURhdGFdPVwiZnJlcXVlbmN5RGV0YWlsc1wiPlxyXG4gICAgICAgICAgICA8L2FwcC1mcmVxdWVuY3ktZGlhbG9nLXF1YXJ0ZXJseT5cclxuICAgICAgICAgICAgPGFwcC1mcmVxdWVuY3ktZGlhbG9nLWJpYW5udWFsIFxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJmcmVxdWVuY3lUYWIgPT09ICdiaWFubnVhbCdcIlxyXG4gICAgICAgICAgICAgICAgW21vZGVdPVwibW9kZVwiXHJcbiAgICAgICAgICAgICAgICAoZnJlcXVlbmN5RGV0YWlscyk9XCJvbkZyZXF1ZW5jeVNlbGVjdGVkKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgW2ZyZXF1ZW5jeURhdGFdPVwiZnJlcXVlbmN5RGV0YWlsc1wiPlxyXG4gICAgICAgICAgICA8L2FwcC1mcmVxdWVuY3ktZGlhbG9nLWJpYW5udWFsPlxyXG4gICAgICAgICAgICA8YXBwLWZyZXF1ZW5jeS1kaWFsb2ctYW5udWFsIFxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJmcmVxdWVuY3lUYWIgPT09ICdhbm51YWwnXCJcclxuICAgICAgICAgICAgICAgIFttb2RlXT1cIm1vZGVcIlxyXG4gICAgICAgICAgICAgICAgKGZyZXF1ZW5jeURldGFpbHMpPVwib25GcmVxdWVuY3lTZWxlY3RlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgIFtmcmVxdWVuY3lEYXRhXT1cImZyZXF1ZW5jeURldGFpbHNcIj5cclxuICAgICAgICAgICAgPC9hcHAtZnJlcXVlbmN5LWRpYWxvZy1hbm51YWw+XHJcbiAgICAgICAgICAgIDxhcHAtZnJlcXVlbmN5LWRpYWxvZy1vbmUtdGltZSBcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiZnJlcXVlbmN5VGFiID09PSAnb25lVGltZSdcIlxyXG4gICAgICAgICAgICAgICAgW21vZGVdPVwibW9kZVwiXHJcbiAgICAgICAgICAgICAgICAoZnJlcXVlbmN5RGV0YWlscyk9XCJvbkZyZXF1ZW5jeVNlbGVjdGVkKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgW2ZyZXF1ZW5jeURhdGFdPVwiZnJlcXVlbmN5RGV0YWlsc1wiPlxyXG4gICAgICAgICAgICA8L2FwcC1mcmVxdWVuY3ktZGlhbG9nLW9uZS10aW1lPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LWRpYWxvZy1mb290ZXIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWJldHdlZW4gdngtcGwtNCB2eC1wci0zXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWZzLTEyIHZ4LXBhcmFncmFwaC10eHRcIj5Zb3UgaGF2ZSBzZWxlY3RlZCA8c3BhbiBjbGFzcz1cInZ4LWZ3LTUwMCB2eC1sYWJlbC10eHRcIj57e2N1cnJlbnRUYWJOYW1lfX08L3NwYW4+IGZyZXF1ZW5jeS48L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlclwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiY2FuY2VsLWJ0biB2eC1mcy0xMSB2eC1mdy01MDAgdngtdHh0LXJlZCB2eC10dC11cHBlcmNhc2UgdngtcC0wIHZ4LXBsLTIgdngtcHItMiB2eC1tLTAgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1saC03XCIgKGNsaWNrKT1cImNsb3NlKClcIj5DQU5DRUw8L2J1dHRvbj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm5leHQtYnRuIHZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC10eHQtd2hpdGUgdngtdHQtdXBwZXJjYXNlIHZ4LXAtMCB2eC1wbC0yIHZ4LXByLTIgdngtbS0wIHZ4LW1sLTMgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1saC03XCIgW2NsYXNzLmRpc2FibGVkXT1cImlzTmV4dERpc2FibGVkXCIgKGNsaWNrKT1cInNhdmUoKVwiPk5FWFQgPGkgY2xhc3M9XCJpY29ucyB2eC1mcy0xNCB2eC1tbC0yXCI+JiN4ZTkxZTs8L2k+PC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19
|
|
299
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlcXVlbmN5LWRpYWxvZy1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9mcmVxdWVuY3ktZGlhbG9nL2ZyZXF1ZW5jeS1kaWFsb2ctY29udGFpbmVyL2ZyZXF1ZW5jeS1kaWFsb2ctY29udGFpbmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3NoYXJlZENvbXBvbmVudHMvZnJlcXVlbmN5LWRpYWxvZy9mcmVxdWVuY3ktZGlhbG9nLWNvbnRhaW5lci9mcmVxdWVuY3ktZGlhbG9nLWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sTUFBTSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7Ozs7QUFTbkMsTUFBTSxPQUFPLGlDQUFpQztJQXNGNUMsWUFDVSxnQkFBa0MsRUFDbEMsUUFBeUI7UUFEekIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQXZGbkMsZUFBVSxHQUFHLFFBQVEsQ0FBQztRQUV0QixrQ0FBa0M7UUFDbEMscUJBQWdCLEdBQVE7WUFDdEIsT0FBTyxFQUFFLEVBQUU7WUFDWCxNQUFNLEVBQUUsQ0FBQztZQUNULFVBQVUsRUFBRSxFQUFFO1NBQ2YsQ0FBQztRQUNPLFNBQUksR0FBUSxFQUFFLENBQUM7UUFDZCxzQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQzVDLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQVU5QyxtQkFBYyxHQUFZLEtBQUssQ0FBQztRQUVoQyxvQkFBb0I7UUFFcEIscUJBQXFCO1FBQ3JCLElBQUk7UUFFSix5QkFBeUI7UUFDekIsNkJBQTZCO1FBQzdCLElBQUk7UUFFSixpQkFBWSxHQUFHLFFBQVEsQ0FBQztRQUN4QixtQkFBYyxHQUFHLFVBQVUsQ0FBQztRQVM1QixrQkFBYSxHQUFHO1lBQ2Q7Z0JBQ0UsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsSUFBSSxFQUFFLE9BQU87YUFDZDtZQUNEO2dCQUNFLElBQUksRUFBRSxRQUFRO2dCQUNkLElBQUksRUFBRSxRQUFRO2FBQ2Y7WUFDRDtnQkFDRSxJQUFJLEVBQUUsU0FBUztnQkFDZixJQUFJLEVBQUUsU0FBUzthQUNoQjtZQUNEO2dCQUNFLElBQUksRUFBRSxXQUFXO2dCQUNqQixJQUFJLEVBQUUsV0FBVzthQUNsQjtZQUNEO2dCQUNFLElBQUksRUFBRSxVQUFVO2dCQUNoQixJQUFJLEVBQUUsVUFBVTthQUNqQjtZQUNEO2dCQUNFLElBQUksRUFBRSxRQUFRO2dCQUNkLElBQUksRUFBRSxRQUFRO2FBQ2Y7WUFDRDtnQkFDRSxJQUFJLEVBQUUsVUFBVTtnQkFDaEIsSUFBSSxFQUFFLFNBQVM7YUFDaEI7WUFDRDtnQkFDRSxJQUFJLEVBQUUsUUFBUTtnQkFDZCxJQUFJLEVBQUUsUUFBUTthQUNmO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLGtCQUFrQjtnQkFDeEIsSUFBSSxFQUFFLGdCQUFnQjthQUN2QjtZQUNEO2dCQUNFLElBQUksRUFBRSxTQUFTO2dCQUNmLElBQUksRUFBRSxTQUFTO2FBQ2hCO1NBQ0YsQ0FBQztJQU1DLENBQUM7SUE3RUosSUFBK0IsbUJBQW1CLENBQUMsU0FBYztRQUMvRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLEdBQUcsU0FBUyxFQUFFLFNBQVMsQ0FBQztRQUN4RCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLEdBQUcsU0FBUyxFQUFFLGtCQUFrQixDQUFDO1FBQ2hFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsR0FBRyxTQUFTLEVBQUUsY0FBYyxDQUFDO1FBQ2hFLE9BQU8sQ0FBQyxHQUFHLENBQ1Qsa0RBQWtELEVBQ2xELElBQUksQ0FBQyxnQkFBZ0IsQ0FDdEIsQ0FBQztJQUNKLENBQUM7SUF1RUQsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFLE9BQU8sSUFBSSxFQUFFLEVBQUU7WUFDeEMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7U0FDMUI7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxxQkFBcUIsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO1FBQ3pFLElBQUksQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELG1CQUFtQixDQUFDLEtBQVU7UUFDNUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFakMsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7UUFDM0IsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDekMsQ0FBQztJQUVELGlCQUFpQjtRQUNmLE1BQU0sZ0JBQWdCLEdBQUcsUUFBUSxDQUMvQixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDN0MsQ0FBQztRQUNGLFFBQVEsZ0JBQWdCLEVBQUU7WUFDeEIsS0FBSyxDQUFDO2dCQUNKLElBQUksQ0FBQyxZQUFZLEdBQUcsU0FBUyxDQUFDO2dCQUM5QixJQUFJLENBQUMsY0FBYyxHQUFHLFlBQVksQ0FBQztnQkFDbkMsTUFBTTtZQUNSLEtBQUssQ0FBQztnQkFDSixJQUFJLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQztnQkFDNUIsSUFBSSxDQUFDLGNBQWMsR0FBRyxTQUFTLENBQUM7Z0JBQ2hDLE1BQU07WUFDUixLQUFLLENBQUM7Z0JBQ0osSUFBSSxDQUFDLFlBQVksR0FBRyxRQUFRLENBQUM7Z0JBQzdCLElBQUksQ0FBQyxjQUFjLEdBQUcsVUFBVSxDQUFDO2dCQUNqQyxNQUFNO1lBQ1IsS0FBSyxDQUFDO2dCQUNKLElBQUksQ0FBQyxZQUFZLEdBQUcsU0FBUyxDQUFDO2dCQUM5QixJQUFJLENBQUMsY0FBYyxHQUFHLFdBQVcsQ0FBQztnQkFDbEMsTUFBTTtZQUNSLEtBQUssQ0FBQztnQkFDSixJQUFJLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQztnQkFDN0IsSUFBSSxDQUFDLGNBQWMsR0FBRyxZQUFZLENBQUM7Z0JBQ25DLE1BQU07WUFDUixLQUFLLENBQUM7Z0JBQ0osSUFBSSxDQUFDLFlBQVksR0FBRyxPQUFPLENBQUM7Z0JBQzVCLElBQUksQ0FBQyxjQUFjLEdBQUcsU0FBUyxDQUFDO2dCQUNoQyxNQUFNO1lBQ1IsS0FBSyxDQUFDO2dCQUNKLElBQUksQ0FBQyxZQUFZLEdBQUcsZ0JBQWdCLENBQUM7Z0JBQ3JDLElBQUksQ0FBQyxjQUFjLEdBQUcscUJBQXFCLENBQUM7Z0JBQzVDLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUM7Z0JBQ3BFLE1BQU07WUFDUixLQUFLLENBQUM7Z0JBQ0osSUFBSSxDQUFDLFlBQVksR0FBRyxXQUFXLENBQUM7Z0JBQ2hDLElBQUksQ0FBQyxjQUFjLEdBQUcsYUFBYSxDQUFDO2dCQUNwQyxNQUFNO1lBQ1IsS0FBSyxDQUFDO2dCQUNKLElBQUksQ0FBQyxZQUFZLEdBQUcsUUFBUSxDQUFDO2dCQUM3QixJQUFJLENBQUMsY0FBYyxHQUFHLFVBQVUsQ0FBQztnQkFDakMsTUFBTTtZQUNSLEtBQUssQ0FBQztnQkFDSixJQUFJLENBQUMsWUFBWSxHQUFHLFVBQVUsQ0FBQztnQkFDL0IsSUFBSSxDQUFDLGNBQWMsR0FBRyxZQUFZLENBQUM7Z0JBQ25DLE1BQU07WUFDUixLQUFLLEVBQUU7Z0JBQ0wsSUFBSSxDQUFDLFlBQVksR0FBRyxTQUFTLENBQUM7Z0JBQzlCLElBQUksQ0FBQyxjQUFjLEdBQUcsWUFBWSxDQUFDO2dCQUNuQyxNQUFNO1NBQ1Q7UUFDRCxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztJQUM5QixDQUFDO0lBRUQsU0FBUyxDQUFDLFNBQWM7UUFDdEIsSUFBSSxDQUFDLFlBQVksR0FBRyxTQUFTLENBQUM7UUFDOUIsSUFBSSxTQUFTLElBQUksU0FBUyxFQUFFO1lBQzFCLElBQUksQ0FBQyxjQUFjLEdBQUcsWUFBWSxDQUFDO1NBQ3BDO2FBQU07WUFDTCxJQUFJLENBQUMsY0FBYztnQkFDakIsU0FBUyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxTQUFTLENBQUMsV0FBVyxFQUFFLEtBQUssUUFBUTtvQkFDaEUsQ0FBQyxDQUFDLEtBQUssR0FBRyxTQUFTO29CQUNuQixDQUFDLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQztTQUN4QjtJQUNILENBQUM7SUFFRCxTQUFTO1FBQ1AsSUFBSSxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2pFLFFBQVEsSUFBSSxDQUFDLFlBQVksRUFBRTtZQUN6QixLQUFLLE9BQU87Z0JBQ1YsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLHNCQUFzQixHQUFHLENBQUMsRUFBRTtvQkFDakQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsdUNBQXVDLEVBQUUsT0FBTyxDQUFDLENBQUM7b0JBQ3JFLFNBQVMsR0FBRyxJQUFJLENBQUM7aUJBQ2xCO3FCQUFNO29CQUNMLFNBQVMsR0FBRyxLQUFLLENBQUM7b0JBQ2xCLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO2lCQUM3QjtnQkFDRCxNQUFNO1lBQ1IsS0FBSyxRQUFRO2dCQUNYLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxzQkFBc0IsR0FBRyxDQUFDLEVBQUU7b0JBQ2pELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLHVDQUF1QyxFQUFFLE9BQU8sQ0FBQyxDQUFDO29CQUNyRSxTQUFTLEdBQUcsSUFBSSxDQUFDO29CQUNqQixNQUFNO2lCQUNQO3FCQUFNO29CQUNMLFNBQVMsR0FBRyxLQUFLLENBQUM7b0JBQ2xCLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO2lCQUM3QjtnQkFFRCxJQUNFLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUU7b0JBQ3pCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO29CQUNwQixnQkFBZ0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUMzQjtvQkFDQSxTQUFTLEdBQUcsSUFBSSxDQUFDO2lCQUNsQjtxQkFBTTtvQkFDTCxTQUFTLEdBQUcsS0FBSyxDQUFDO2lCQUNuQjtnQkFFRCxNQUFNO1lBQ1IsS0FBSyxTQUFTO2dCQUNaLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxzQkFBc0IsR0FBRyxDQUFDLEVBQUU7b0JBQ2pELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLHVDQUF1QyxFQUFFLE9BQU8sQ0FBQyxDQUFDO29CQUNyRSxTQUFTLEdBQUcsSUFBSSxDQUFDO29CQUNqQixNQUFNO2lCQUNQO3FCQUFNO29CQUNMLFNBQVMsR0FBRyxLQUFLLENBQUM7b0JBQ2xCLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO2lCQUM3QjtnQkFFRCxJQUNFLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUU7b0JBQ3pCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO29CQUNwQixnQkFBZ0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUMzQjtvQkFDQSxTQUFTLEdBQUcsSUFBSSxDQUFDO2lCQUNsQjtxQkFBTTtvQkFDTCxTQUFTLEdBQUcsS0FBSyxDQUFDO2lCQUNuQjtnQkFFRCxNQUFNO1lBQ1IsS0FBSyxVQUFVO2dCQUNiLElBQ0UsZ0JBQWdCLENBQUMsTUFBTSxLQUFLLENBQUM7b0JBQzdCLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUU7b0JBQzFCLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLEdBQUcsQ0FBQyxFQUMxQztvQkFDQSxTQUFTLEdBQUcsSUFBSSxDQUFDO2lCQUNsQjtxQkFBTTtvQkFDTCxTQUFTLEdBQUcsS0FBSyxDQUFDO2lCQUNuQjtnQkFDRCxNQUFNO1lBQ1IsS0FBSyxTQUFTO2dCQUNaLElBQUksZ0JBQWdCLEVBQUUsTUFBTSxHQUFHLENBQUMsRUFBRTtvQkFDaEMsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUN6QixHQUFHLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxJQUFJLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxJQUFJLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxFQUFFLEVBQ3ZHLG9CQUFvQixDQUNyQixDQUFDLElBQUksRUFBRSxDQUFDO29CQUNULElBQ0UsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBSTt3QkFDbEUsWUFBWSxFQUNaO3dCQUNBLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLDJCQUEyQixFQUFFLE9BQU8sQ0FBQyxDQUFDO3dCQUN6RCxTQUFTLEdBQUcsSUFBSSxDQUFDO3dCQUNqQixNQUFNO3FCQUNQO3lCQUFNO3dCQUNMLFNBQVMsR0FBRyxLQUFLLENBQUM7d0JBQ2xCLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO3FCQUM3QjtpQkFDRjtxQkFBTTtvQkFDTCxTQUFTLEdBQUcsSUFBSSxDQUFDO2lCQUNsQjtnQkFDRCxNQUFNO1lBQ1IsS0FBSyxnQkFBZ0I7Z0JBQ25CLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxFQUFFO29CQUNuQyxTQUFTLEdBQUcsS0FBSyxDQUFDO2lCQUNuQjtxQkFBTTtvQkFDTCxTQUFTLEdBQUcsSUFBSSxDQUFDO2lCQUNsQjtnQkFDRCxNQUFNO1lBRVIsS0FBSyxRQUFRO2dCQUNYLElBQ0UsUUFBUSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztvQkFDbEMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFO3dCQUN4QixDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQzt3QkFDcEIsZ0JBQWdCLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxFQUM5QjtvQkFDQSxTQUFTLEdBQUcsSUFBSSxDQUFDO2lCQUNsQjtxQkFBTTtvQkFDTCxTQUFTLEdBQUcsS0FBSyxDQUFDO2lCQUNuQjtnQkFDRCxNQUFNO1lBQ1I7Z0JBQ0UsU0FBUyxHQUFHLEtBQUssQ0FBQztTQUNyQjtRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCxJQUFJO1FBQ0YsSUFBSSxpQkFBaUIsR0FBRztZQUN0QixTQUFTLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxPQUFPO1lBQ3RDLFVBQVUsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsY0FBYyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQzNELENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLGNBQWMsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxNQUFNLENBQy9ELFlBQVksQ0FDYjtnQkFDSCxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQztZQUNqQyxjQUFjLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxVQUFVO1lBQzlDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsTUFBTTtZQUM5QyxXQUFXLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxXQUFXO1NBQzdDLENBQUM7UUFDRixPQUFPLENBQUMsR0FBRyxDQUFDLG9DQUFvQyxFQUFFLGlCQUFpQixDQUFDLENBQUM7UUFDckUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDN0IsQ0FBQzs7OEhBblRVLGlDQUFpQztrSEFBakMsaUNBQWlDLDhRQ1Y5QyxvcEtBZ0VNOzJGRHRETyxpQ0FBaUM7a0JBTDdDLFNBQVM7K0JBQ0UsZ0NBQWdDO3FJQWFqQyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0ksaUJBQWlCO3NCQUExQixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ3dCLG1CQUFtQjtzQkFBakQsS0FBSzt1QkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50L21vbWVudCc7XHJcbmltcG9ydCB7IFNuYWNrQmFyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3VpLWtpdC9zbmFjay1iYXIvc25hY2stYmFyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGcmVxdWVuY3lTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZnJlcXVlbmN5L2ZyZXF1ZW5jeS5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWZyZXF1ZW5jeS1kaWFsb2ctY29udGFpbmVyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZnJlcXVlbmN5LWRpYWxvZy1jb250YWluZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2ZyZXF1ZW5jeS1kaWFsb2ctY29udGFpbmVyLmNvbXBvbmVudC5sZXNzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGcmVxdWVuY3lEaWFsb2dDb250YWluZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGN1cnJlbnRUYWIgPSAnV0VFS0xZJztcclxuXHJcbiAgLy8gQElucHV0KCkgZnJlcXVlbmN5RGV0YWlsczogYW55O1xyXG4gIGZyZXF1ZW5jeURldGFpbHM6IGFueSA9IHtcclxuICAgIHBhdHRlcm46ICcnLFxyXG4gICAgd2luZG93OiAwLFxyXG4gICAgdGltZUluMTJocjogJycsXHJcbiAgfTtcclxuICBASW5wdXQoKSBtb2RlOiBhbnkgPSAnJztcclxuICBAT3V0cHV0KCkgc2VsZWN0ZWRGcmVxdWVuY3kgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgY2xvc2VGcmVxdWVuY3kgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQElucHV0KCdmcmVxdWVuY3lEZXRhaWxzJykgc2V0IGdldEZyZXF1ZW5jeURldGFpbHMoZnJlcXVlbmN5OiBhbnkpIHtcclxuICAgIHRoaXMuZnJlcXVlbmN5RGV0YWlsc1sncGF0dGVybiddID0gZnJlcXVlbmN5Py5mcmVxdWVuY3k7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeURldGFpbHNbJ3dpbmRvdyddID0gZnJlcXVlbmN5Py5yZW1pbmRfYmVmb3JlX2RheXM7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeURldGFpbHNbJ2ZhaWxlZFRpbWUnXSA9IGZyZXF1ZW5jeT8uZnJlcXVlbmN5X3RpbWU7XHJcbiAgICBjb25zb2xlLmxvZyhcclxuICAgICAgJ2ZyZXF1ZW5jeURldGFpbHNmcmVxdWVuY3lEZXRhaWxzZnJlcXVlbmN5RGV0YWlscycsXHJcbiAgICAgIHRoaXMuZnJlcXVlbmN5RGV0YWlsc1xyXG4gICAgKTtcclxuICB9XHJcbiAgaXNOZXh0RGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLy8gY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgLy8gbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgLy8gfVxyXG5cclxuICAvLyBzd2l0Y2hUYWIodGFiOnN0cmluZyl7XHJcbiAgLy8gICB0aGlzLmZyZXF1ZW5jeVRhYiA9IHRhYjtcclxuICAvLyB9XHJcblxyXG4gIGZyZXF1ZW5jeVRhYiA9ICd3ZWVrbHknO1xyXG4gIGN1cnJlbnRUYWJOYW1lID0gJ2Egd2Vla2x5JztcclxuXHJcbiAgLy8gQElucHV0KCkgZnJlcXVlbmN5RGV0YWlsczogYW55O1xyXG4gIC8vIEBPdXRwdXQoKSBzZWxlY3RlZEZyZXF1ZW5jeSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIC8vIEBPdXRwdXQoKSBjbG9zZUZyZXF1ZW5jeSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIC8vIEBJbnB1dCgpIG1vZGU6IGFueT0nJztcclxuXHJcbiAgZnJlcXVlbmN5RGF0YTogYW55O1xyXG5cclxuICBmcmVxdWVuY3lMaXN0ID0gW1xyXG4gICAge1xyXG4gICAgICBuYW1lOiAnRGFpbHknLFxyXG4gICAgICB0eXBlOiAnZGFpbHknLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgbmFtZTogJ1dlZWtseScsXHJcbiAgICAgIHR5cGU6ICd3ZWVrbHknLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgbmFtZTogJ01vbnRobHknLFxyXG4gICAgICB0eXBlOiAnbW9udGhseScsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBuYW1lOiAnUXVhcnRlcmx5JyxcclxuICAgICAgdHlwZTogJ3F1YXJ0ZXJseScsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBuYW1lOiAnQmlhbm51YWwnLFxyXG4gICAgICB0eXBlOiAnYmlhbm51YWwnLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgbmFtZTogJ0FubnVhbCcsXHJcbiAgICAgIHR5cGU6ICdhbm51YWwnLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgbmFtZTogJ09uZSBUaW1lJyxcclxuICAgICAgdHlwZTogJ29uZVRpbWUnLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgbmFtZTogJ1JhbmRvbScsXHJcbiAgICAgIHR5cGU6ICdyYW5kb20nLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgbmFtZTogJ09uIENvbXBsZXRpb24gT2YnLFxyXG4gICAgICB0eXBlOiAnb25Db21wbGV0aW9uT2YnLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgbmFtZTogJ09uZ29pbmcnLFxyXG4gICAgICB0eXBlOiAnb25nb2luZycsXHJcbiAgICB9LFxyXG4gIF07XHJcblxyXG4gIHNlbGVjdGVkRnJlcXVlbmN5RGF0YTogYW55O1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBmcmVxdWVuY3lTZXJ2aWNlOiBGcmVxdWVuY3lTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBzbmFja2JhcjogU25hY2tCYXJTZXJ2aWNlXHJcbiAgKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmZyZXF1ZW5jeURldGFpbHM/LnBhdHRlcm4gIT0gJycpIHtcclxuICAgICAgdGhpcy5wb3B1bGF0ZUZyZXF1ZW5jeSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkRnJlcXVlbmN5RGF0YSA9IE9iamVjdC5hc3NpZ24oeyAuLi50aGlzLmZyZXF1ZW5jeURldGFpbHMgfSk7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeURhdGEgPSBPYmplY3QuYXNzaWduKHsgLi4udGhpcy5mcmVxdWVuY3lEZXRhaWxzIH0pO1xyXG4gIH1cclxuXHJcbiAgY2xvc2UoKSB7XHJcbiAgICB0aGlzLmNsb3NlRnJlcXVlbmN5LmVtaXQoKTtcclxuICB9XHJcblxyXG4gIG9uRnJlcXVlbmN5U2VsZWN0ZWQoZXZlbnQ6IGFueSkge1xyXG4gICAgY29uc29sZS5sb2coJ2V2ZW50Li4uLi4nLCBldmVudCk7XHJcblxyXG4gICAgdGhpcy5mcmVxdWVuY3lEYXRhID0gZXZlbnQ7XHJcbiAgICB0aGlzLmlzTmV4dERpc2FibGVkID0gdGhpcy5pc0ludmFsaWQoKTtcclxuICB9XHJcblxyXG4gIHBvcHVsYXRlRnJlcXVlbmN5KCkge1xyXG4gICAgY29uc3QgZnJlcXVlbmN5UGF0dGVybiA9IHBhcnNlSW50KFxyXG4gICAgICB0aGlzLmZyZXF1ZW5jeURldGFpbHM/LnBhdHRlcm4uc3BsaXQoJ34nKVswXVxyXG4gICAgKTtcclxuICAgIHN3aXRjaCAoZnJlcXVlbmN5UGF0dGVybikge1xyXG4gICAgICBjYXNlIDA6XHJcbiAgICAgICAgdGhpcy5mcmVxdWVuY3lUYWIgPSAnb25lVGltZSc7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50VGFiTmFtZSA9ICdhIG9uZSB0aW1lJztcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAxOlxyXG4gICAgICAgIHRoaXMuZnJlcXVlbmN5VGFiID0gJ2RhaWx5JztcclxuICAgICAgICB0aGlzLmN1cnJlbnRUYWJOYW1lID0gJ2EgZGFpbHknO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIDI6XHJcbiAgICAgICAgdGhpcy5mcmVxdWVuY3lUYWIgPSAnd2Vla2x5JztcclxuICAgICAgICB0aGlzLmN1cnJlbnRUYWJOYW1lID0gJ2Egd2Vla2x5JztcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAzOlxyXG4gICAgICAgIHRoaXMuZnJlcXVlbmN5VGFiID0gJ21vbnRobHknO1xyXG4gICAgICAgIHRoaXMuY3VycmVudFRhYk5hbWUgPSAnYSBtb250aGx5JztcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSA0OlxyXG4gICAgICAgIHRoaXMuZnJlcXVlbmN5VGFiID0gJ2FubnVhbCc7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50VGFiTmFtZSA9ICdhbiBhbm51YWwgJztcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSA1OlxyXG4gICAgICAgIHRoaXMuZnJlcXVlbmN5VGFiID0gJ2RhaWx5JztcclxuICAgICAgICB0aGlzLmN1cnJlbnRUYWJOYW1lID0gJ2EgZGFpbHknO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIDY6XHJcbiAgICAgICAgdGhpcy5mcmVxdWVuY3lUYWIgPSAnb25Db21wbGV0aW9uT2YnO1xyXG4gICAgICAgIHRoaXMuY3VycmVudFRhYk5hbWUgPSAnYW4gb24gY29tcGxldGlvbiBvZic7XHJcbiAgICAgICAgdGhpcy5mcmVxdWVuY3lEYXRhLnJlcG9ydF9pZCA9IHRoaXMuZnJlcXVlbmN5RGV0YWlscy5zZWxlY3RlZFJlcG9ydDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSA3OlxyXG4gICAgICAgIHRoaXMuZnJlcXVlbmN5VGFiID0gJ3F1YXJ0ZXJseSc7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50VGFiTmFtZSA9ICdhIHF1YXJ0ZXJseSc7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgODpcclxuICAgICAgICB0aGlzLmZyZXF1ZW5jeVRhYiA9ICdyYW5kb20nO1xyXG4gICAgICAgIHRoaXMuY3VycmVudFRhYk5hbWUgPSAnYSByYW5kb20nO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIDk6XHJcbiAgICAgICAgdGhpcy5mcmVxdWVuY3lUYWIgPSAnYmlhbm51YWwnO1xyXG4gICAgICAgIHRoaXMuY3VycmVudFRhYk5hbWUgPSAnYSBiaWFubnVhbCc7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgMTA6XHJcbiAgICAgICAgdGhpcy5mcmVxdWVuY3lUYWIgPSAnb25nb2luZyc7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50VGFiTmFtZSA9ICdhbiBvbmdvaW5nJztcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICAgIHRoaXMuaXNOZXh0RGlzYWJsZWQgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHN3aXRjaFRhYihmcmVxdWVuY3k6IGFueSkge1xyXG4gICAgdGhpcy5mcmVxdWVuY3lUYWIgPSBmcmVxdWVuY3k7XHJcbiAgICBpZiAoZnJlcXVlbmN5ID09ICdvbmVUaW1lJykge1xyXG4gICAgICB0aGlzLmN1cnJlbnRUYWJOYW1lID0gJ2Egb25lIHRpbWUnO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jdXJyZW50VGFiTmFtZSA9XHJcbiAgICAgICAgZnJlcXVlbmN5LnN0YXJ0c1dpdGgoJ09uJykgfHwgZnJlcXVlbmN5LnRvTG93ZXJDYXNlKCkgPT09ICdhbm51YWwnXHJcbiAgICAgICAgICA/ICdhbiAnICsgZnJlcXVlbmN5XHJcbiAgICAgICAgICA6ICdhICcgKyBmcmVxdWVuY3k7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpc0ludmFsaWQoKTogYm9vbGVhbiB7XHJcbiAgICBsZXQgaXNJbnZhbGlkID0gZmFsc2U7XHJcbiAgICBjb25zdCBmcmVxdWVuY3lEZXRhaWxzID0gdGhpcy5mcmVxdWVuY3lEYXRhPy5wYXR0ZXJuPy5zcGxpdCgnficpO1xyXG4gICAgc3dpdGNoICh0aGlzLmZyZXF1ZW5jeVRhYikge1xyXG4gICAgICBjYXNlICdkYWlseSc6XHJcbiAgICAgICAgaWYgKHRoaXMuZnJlcXVlbmN5RGF0YS5jb250aW51b3VzX2ZhaWxlZF9kYXlzIDwgMikge1xyXG4gICAgICAgICAgdGhpcy5zbmFja2Jhci5zaG93KCdJbnB1dCB2YWx1ZSBzaG91bGQgYmUgZ3JlYXRlciB0aGFuIDEuJywgJ2FsZXJ0Jyk7XHJcbiAgICAgICAgICBpc0ludmFsaWQgPSB0cnVlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBpc0ludmFsaWQgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuaXNOZXh0RGlzYWJsZWQgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3dlZWtseSc6XHJcbiAgICAgICAgaWYgKHRoaXMuZnJlcXVlbmN5RGF0YS5jb250aW51b3VzX2ZhaWxlZF9kYXlzIDwgMikge1xyXG4gICAgICAgICAgdGhpcy5zbmFja2Jhci5zaG93KCdJbnB1dCB2YWx1ZSBzaG91bGQgYmUgZ3JlYXRlciB0aGFuIDEuJywgJ2FsZXJ0Jyk7XHJcbiAgICAgICAgICBpc0ludmFsaWQgPSB0cnVlO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGlzSW52YWxpZCA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5pc05leHREaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgZnJlcXVlbmN5RGV0YWlsc1sxXSA9PSAnJyB8fFxyXG4gICAgICAgICAgIWZyZXF1ZW5jeURldGFpbHNbMV0gfHxcclxuICAgICAgICAgIGZyZXF1ZW5jeURldGFpbHMubGVuZ3RoIDwgNFxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgaXNJbnZhbGlkID0gdHJ1ZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaXNJbnZhbGlkID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnbW9udGhseSc6XHJcbiAgICAgICAgaWYgKHRoaXMuZnJlcXVlbmN5RGF0YS5jb250aW51b3VzX2ZhaWxlZF9kYXlzIDwgMikge1xyXG4gICAgICAgICAgdGhpcy5zbmFja2Jhci5zaG93KCdJbnB1dCB2YWx1ZSBzaG91bGQgYmUgZ3JlYXRlciB0aGFuIDEuJywgJ2FsZXJ0Jyk7XHJcbiAgICAgICAgICBpc0ludmFsaWQgPSB0cnVlO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGlzSW52YWxpZCA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5pc05leHREaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgZnJlcXVlbmN5RGV0YWlsc1syXSA9PSAnJyB8fFxyXG4gICAgICAgICAgIWZyZXF1ZW5jeURldGFpbHNbMl0gfHxcclxuICAgICAgICAgIGZyZXF1ZW5jeURldGFpbHMubGVuZ3RoIDwgNFxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgaXNJbnZhbGlkID0gdHJ1ZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaXNJbnZhbGlkID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnYmlhbm51YWwnOlxyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgIGZyZXF1ZW5jeURldGFpbHMubGVuZ3RoID09PSAwIHx8XHJcbiAgICAgICAgICBmcmVxdWVuY3lEZXRhaWxzWzJdID09PSAnJyB8fFxyXG4gICAgICAgICAgZnJlcXVlbmN5RGV0YWlsc1syXS5zcGxpdCgnLCcpPy5sZW5ndGggPCAyXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICBpc0ludmFsaWQgPSB0cnVlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBpc0ludmFsaWQgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ29uZVRpbWUnOlxyXG4gICAgICAgIGlmIChmcmVxdWVuY3lEZXRhaWxzPy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICBjb25zdCBzZWxlY3RlZFRpbWUgPSBtb21lbnQoXHJcbiAgICAgICAgICAgIGAke2ZyZXF1ZW5jeURldGFpbHNbM119LSR7ZnJlcXVlbmN5RGV0YWlsc1syXX0tJHtmcmVxdWVuY3lEZXRhaWxzWzFdfSAke3RoaXMuZnJlcXVlbmN5RGF0YS50aW1lSW4xMmhyfWAsXHJcbiAgICAgICAgICAgICdERC1NTS1ZWVlZIEhIOm1tIGEnXHJcbiAgICAgICAgICApLnVuaXgoKTtcclxuICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgdGhpcy5mcmVxdWVuY3lTZXJ2aWNlLmNoYW5nZVRpbWVab25lKG5ldyBEYXRlKCkpPy5nZXRUaW1lKCkgLyAxMDAwID5cclxuICAgICAgICAgICAgc2VsZWN0ZWRUaW1lXHJcbiAgICAgICAgICApIHtcclxuICAgICAgICAgICAgdGhpcy5zbmFja2Jhci5zaG93KCdQbGVhc2Ugc2V0IGEgZnV0dXJlIGRhdGUuJywgJ2FsZXJ0Jyk7XHJcbiAgICAgICAgICAgIGlzSW52YWxpZCA9IHRydWU7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaXNJbnZhbGlkID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuaXNOZXh0RGlzYWJsZWQgPSBmYWxzZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaXNJbnZhbGlkID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ29uQ29tcGxldGlvbk9mJzpcclxuICAgICAgICBpZiAodGhpcy5mcmVxdWVuY3lEYXRhLnJlcG9ydElkID4gMCkge1xyXG4gICAgICAgICAgaXNJbnZhbGlkID0gZmFsc2U7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGlzSW52YWxpZCA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSAncmFuZG9tJzpcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICBwYXJzZUludChmcmVxdWVuY3lEZXRhaWxzWzFdKSA9PSAyICYmXHJcbiAgICAgICAgICAoZnJlcXVlbmN5RGV0YWlsc1syXSA9PSAnJyB8fFxyXG4gICAgICAgICAgICAhZnJlcXVlbmN5RGV0YWlsc1syXSB8fFxyXG4gICAgICAgICAgICBmcmVxdWVuY3lEZXRhaWxzLmxlbmd0aCA8IDQpXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICBpc0ludmFsaWQgPSB0cnVlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBpc0ludmFsaWQgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgaXNJbnZhbGlkID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gaXNJbnZhbGlkO1xyXG4gIH1cclxuXHJcbiAgc2F2ZSgpIHtcclxuICAgIGxldCBmcmVxdWVuY3lfZGV0YWlscyA9IHtcclxuICAgICAgZnJlcXVlbmN5OiB0aGlzLmZyZXF1ZW5jeURhdGE/LnBhdHRlcm4sXHJcbiAgICAgIHN0YXJ0ZWRfYXQ6IHRoaXMuZnJlcXVlbmN5U2VydmljZT8uY2hhbmdlVGltZVpvbmUobmV3IERhdGUoKSlcclxuICAgICAgICA/IG1vbWVudCh0aGlzLmZyZXF1ZW5jeVNlcnZpY2U/LmNoYW5nZVRpbWVab25lKG5ldyBEYXRlKCkpKT8uZm9ybWF0KFxyXG4gICAgICAgICAgICAnWVlZWS1NTS1ERCdcclxuICAgICAgICAgIClcclxuICAgICAgICA6IG1vbWVudCgpLmZvcm1hdCgnWVlZWS1NTS1ERCcpLFxyXG4gICAgICBmcmVxdWVuY3lfdGltZTogdGhpcy5mcmVxdWVuY3lEYXRhPy50aW1lSW4xMmhyLFxyXG4gICAgICByZW1pbmRfYmVmb3JlX2RheXM6IHRoaXMuZnJlcXVlbmN5RGF0YT8ud2luZG93LFxyXG4gICAgICBwbGFjZWhvbGRlcjogdGhpcy5mcmVxdWVuY3lEYXRhPy5wbGFjZWhvbGRlcixcclxuICAgIH07XHJcbiAgICBjb25zb2xlLmxvZygnZnJlcXVlbmN5X2RldGFpbHNmcmVxdWVuY3lfZGV0YWlscycsIGZyZXF1ZW5jeV9kZXRhaWxzKTtcclxuICAgIHRoaXMuc2VsZWN0ZWRGcmVxdWVuY3kuZW1pdChmcmVxdWVuY3lfZGV0YWlscyk7XHJcbiAgICB0aGlzLmNsb3NlRnJlcXVlbmN5LmVtaXQoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1kaWFsb2dcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktZGlhbG9nLWhlYWQgdngtcGwtMyB2eC1wci0zIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LWRpYWxvZy10aXRsZSB2eC1mcy0xNCB2eC1mdy01MDAgdngtbGFiZWwtdHh0XCI+U2V0IGEgUmVhc3Nlc3NtZW50IEZyZXF1ZW5jeTwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LWRpYWxvZy1ib2R5XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1kaWFsb2ctdGFiIHZ4LW1iLTMgdngtZC1mbGV4XCI+XHJcbiAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cInN3aXRjaFRhYignd2Vla2x5JylcIiBjbGFzcz1cInRhYi1idG4gdngtZnMtMTEgdngtZnctNTAwIHZ4LXBhcmFncmFwaC10eHQgdngtdHQtdXBwZXJjYXNlIHZ4LXAtMCB2eC1tLTAgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1saC02XCIgW2NsYXNzLmFjdGl2ZV09XCJmcmVxdWVuY3lUYWIgPT09ICd3ZWVrbHknXCI+V0VFS0xZPC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cInN3aXRjaFRhYignbW9udGhseScpXCIgY2xhc3M9XCJ0YWItYnRuIHZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1wYXJhZ3JhcGgtdHh0IHZ4LXR0LXVwcGVyY2FzZSB2eC1wLTAgdngtbS0wIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtbGgtNlwiIFtjbGFzcy5hY3RpdmVdPVwiZnJlcXVlbmN5VGFiID09PSAnbW9udGhseSdcIj5NT05USExZPC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cInN3aXRjaFRhYigncXVhcnRlcmx5JylcIiBjbGFzcz1cInRhYi1idG4gdngtZnMtMTEgdngtZnctNTAwIHZ4LXBhcmFncmFwaC10eHQgdngtdHQtdXBwZXJjYXNlIHZ4LXAtMCB2eC1tLTAgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1saC02XCIgW2NsYXNzLmFjdGl2ZV09XCJmcmVxdWVuY3lUYWIgPT09ICdxdWFydGVybHknXCI+UVVBUlRFUkxZPC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cInN3aXRjaFRhYignYmlhbm51YWwnKVwiIGNsYXNzPVwidGFiLWJ0biB2eC1mcy0xMSB2eC1mdy01MDAgdngtcGFyYWdyYXBoLXR4dCB2eC10dC11cHBlcmNhc2UgdngtcC0wIHZ4LW0tMCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWxoLTZcIiBbY2xhc3MuYWN0aXZlXT1cImZyZXF1ZW5jeVRhYiA9PT0gJ2JpYW5udWFsJ1wiPkJJQU5OVUFMPC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cInN3aXRjaFRhYignYW5udWFsJylcIiBjbGFzcz1cInRhYi1idG4gdngtZnMtMTEgdngtZnctNTAwIHZ4LXBhcmFncmFwaC10eHQgdngtdHQtdXBwZXJjYXNlIHZ4LXAtMCB2eC1tLTAgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1saC02XCIgW2NsYXNzLmFjdGl2ZV09XCJmcmVxdWVuY3lUYWIgPT09ICdhbm51YWwnXCI+QU5OVUFMPC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cInN3aXRjaFRhYignb25lVGltZScpXCIgY2xhc3M9XCJ0YWItYnRuIHZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1wYXJhZ3JhcGgtdHh0IHZ4LXR0LXVwcGVyY2FzZSB2eC1wLTAgdngtbS0wIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtbGgtNlwiIFtjbGFzcy5hY3RpdmVdPVwiZnJlcXVlbmN5VGFiID09PSAnb25lVGltZSdcIj5PTkUgVElNRTwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LWRpYWxvZy1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgPCEtLSA8YXBwLWZyZXF1ZW5jeS1kaWFsb2ctd2Vla2x5ICpuZ0lmPVwiZnJlcXVlbmN5VGFiID09PSAnV0VFS0xZJ1wiPjwvYXBwLWZyZXF1ZW5jeS1kaWFsb2ctd2Vla2x5PiAtLT5cclxuICAgICAgICAgICAgPGFwcC1mcmVxdWVuY3ktZGlhbG9nLXdlZWtseSAqbmdJZj1cImZyZXF1ZW5jeVRhYiA9PT0gJ3dlZWtseSdcIlxyXG4gICAgICAgICAgICAgICAgW21vZGVdPVwibW9kZVwiXHJcbiAgICAgICAgICAgICAgICAoZnJlcXVlbmN5RGV0YWlscyk9XCJvbkZyZXF1ZW5jeVNlbGVjdGVkKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgW2ZyZXF1ZW5jeURhdGFdPVwiZnJlcXVlbmN5RGV0YWlsc1wiXHJcbiAgICAgICAgICAgID48L2FwcC1mcmVxdWVuY3ktZGlhbG9nLXdlZWtseT5cclxuICAgICAgICAgICAgPCEtLSA8YXBwLWZyZXF1ZW5jeS1kaWFsb2ctbW9udGhseSAqbmdJZj1cImZyZXF1ZW5jeVRhYiA9PT0gJ01PTlRITFknXCI+PC9hcHAtZnJlcXVlbmN5LWRpYWxvZy1tb250aGx5PiAtLT5cclxuICAgICAgICAgICAgPGFwcC1mcmVxdWVuY3ktZGlhbG9nLW1vbnRobHkgKm5nSWY9XCJmcmVxdWVuY3lUYWIgPT09ICdtb250aGx5J1wiXHJcbiAgICAgICAgICAgICAgICBbbW9kZV09XCJtb2RlXCJcclxuICAgICAgICAgICAgICAgIChmcmVxdWVuY3lEZXRhaWxzKT1cIm9uRnJlcXVlbmN5U2VsZWN0ZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICBbZnJlcXVlbmN5RGF0YV09XCJmcmVxdWVuY3lEZXRhaWxzXCI+XHJcbiAgICAgICAgICAgIDwvYXBwLWZyZXF1ZW5jeS1kaWFsb2ctbW9udGhseT5cclxuICAgICAgICAgICAgPCEtLSA8YXBwLWZyZXF1ZW5jeS1kaWFsb2ctcXVhcnRlcmx5ICpuZ0lmPVwiZnJlcXVlbmN5VGFiID09PSAnUVVBUlRFUkxZJ1wiPjwvYXBwLWZyZXF1ZW5jeS1kaWFsb2ctcXVhcnRlcmx5PlxyXG4gICAgICAgICAgICA8YXBwLWZyZXF1ZW5jeS1kaWFsb2ctYmlhbm51YWwgKm5nSWY9XCJmcmVxdWVuY3lUYWIgPT09ICdCSUFOTlVBTCdcIj48L2FwcC1mcmVxdWVuY3ktZGlhbG9nLWJpYW5udWFsPlxyXG4gICAgICAgICAgICA8YXBwLWZyZXF1ZW5jeS1kaWFsb2ctYW5udWFsICpuZ0lmPVwiZnJlcXVlbmN5VGFiID09PSAnQU5OVUFMJ1wiPjwvYXBwLWZyZXF1ZW5jeS1kaWFsb2ctYW5udWFsPlxyXG4gICAgICAgICAgICA8YXBwLWZyZXF1ZW5jeS1kaWFsb2ctb25lLXRpbWUgKm5nSWY9XCJmcmVxdWVuY3lUYWIgPT09ICdPTkVUSU1FJ1wiPjwvYXBwLWZyZXF1ZW5jeS1kaWFsb2ctb25lLXRpbWU+IC0tPlxyXG4gICAgICAgICAgICA8YXBwLWZyZXF1ZW5jeS1kaWFsb2ctcXVhcnRlcmx5IFxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJmcmVxdWVuY3lUYWIgPT09ICdxdWFydGVybHknXCJcclxuICAgICAgICAgICAgICAgIFttb2RlXT1cIm1vZGVcIlxyXG4gICAgICAgICAgICAgICAgKGZyZXF1ZW5jeURldGFpbHMpPVwib25GcmVxdWVuY3lTZWxlY3RlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgIFtmcmVxdWVuY3lEYXRhXT1cImZyZXF1ZW5jeURldGFpbHNcIj5cclxuICAgICAgICAgICAgPC9hcHAtZnJlcXVlbmN5LWRpYWxvZy1xdWFydGVybHk+XHJcbiAgICAgICAgICAgIDxhcHAtZnJlcXVlbmN5LWRpYWxvZy1iaWFubnVhbCBcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiZnJlcXVlbmN5VGFiID09PSAnYmlhbm51YWwnXCJcclxuICAgICAgICAgICAgICAgIFttb2RlXT1cIm1vZGVcIlxyXG4gICAgICAgICAgICAgICAgKGZyZXF1ZW5jeURldGFpbHMpPVwib25GcmVxdWVuY3lTZWxlY3RlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgIFtmcmVxdWVuY3lEYXRhXT1cImZyZXF1ZW5jeURldGFpbHNcIj5cclxuICAgICAgICAgICAgPC9hcHAtZnJlcXVlbmN5LWRpYWxvZy1iaWFubnVhbD5cclxuICAgICAgICAgICAgPGFwcC1mcmVxdWVuY3ktZGlhbG9nLWFubnVhbCBcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiZnJlcXVlbmN5VGFiID09PSAnYW5udWFsJ1wiXHJcbiAgICAgICAgICAgICAgICBbbW9kZV09XCJtb2RlXCJcclxuICAgICAgICAgICAgICAgIChmcmVxdWVuY3lEZXRhaWxzKT1cIm9uRnJlcXVlbmN5U2VsZWN0ZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICBbZnJlcXVlbmN5RGF0YV09XCJmcmVxdWVuY3lEZXRhaWxzXCI+XHJcbiAgICAgICAgICAgIDwvYXBwLWZyZXF1ZW5jeS1kaWFsb2ctYW5udWFsPlxyXG4gICAgICAgICAgICA8YXBwLWZyZXF1ZW5jeS1kaWFsb2ctb25lLXRpbWUgXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImZyZXF1ZW5jeVRhYiA9PT0gJ29uZVRpbWUnXCJcclxuICAgICAgICAgICAgICAgIFttb2RlXT1cIm1vZGVcIlxyXG4gICAgICAgICAgICAgICAgKGZyZXF1ZW5jeURldGFpbHMpPVwib25GcmVxdWVuY3lTZWxlY3RlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgIFtmcmVxdWVuY3lEYXRhXT1cImZyZXF1ZW5jeURldGFpbHNcIj5cclxuICAgICAgICAgICAgPC9hcHAtZnJlcXVlbmN5LWRpYWxvZy1vbmUtdGltZT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1kaWFsb2ctZm9vdGVyIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1iZXR3ZWVuIHZ4LXBsLTQgdngtcHItM1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mcy0xMiB2eC1wYXJhZ3JhcGgtdHh0XCI+WW91IGhhdmUgc2VsZWN0ZWQgPHNwYW4gY2xhc3M9XCJ2eC1mdy01MDAgdngtbGFiZWwtdHh0XCI+e3tjdXJyZW50VGFiTmFtZX19PC9zcGFuPiBmcmVxdWVuY3kuPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImNhbmNlbC1idG4gdngtZnMtMTEgdngtZnctNTAwIHZ4LXR4dC1yZWQgdngtdHQtdXBwZXJjYXNlIHZ4LXAtMCB2eC1wbC0yIHZ4LXByLTIgdngtbS0wIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtbGgtN1wiIChjbGljayk9XCJjbG9zZSgpXCI+Q0FOQ0VMPC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJuZXh0LWJ0biB2eC1mcy0xMSB2eC1mdy01MDAgdngtdHh0LXdoaXRlIHZ4LXR0LXVwcGVyY2FzZSB2eC1wLTAgdngtcGwtMiB2eC1wci0yIHZ4LW0tMCB2eC1tbC0zIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtbGgtN1wiIFtjbGFzcy5kaXNhYmxlZF09XCJpc05leHREaXNhYmxlZFwiIChjbGljayk9XCJzYXZlKClcIj5ORVhUIDxpIGNsYXNzPVwiaWNvbnMgdngtZnMtMTQgdngtbWwtMlwiPiYjeGU5MWU7PC9pPjwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
|