ngx-np-datepicker 2.3.0 → 2.3.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.
- package/README.md +1 -0
- package/esm2020/lib/dateconst.mjs +107 -0
- package/esm2020/lib/np-datepicker.component.mjs +12 -12
- package/esm2020/lib/np-datepicker.module.mjs +5 -5
- package/esm2020/lib/np-datepicker.service.mjs +48 -108
- package/fesm2015/ngx-np-datepicker.mjs +168 -122
- package/fesm2015/ngx-np-datepicker.mjs.map +1 -1
- package/fesm2020/ngx-np-datepicker.mjs +168 -122
- package/fesm2020/ngx-np-datepicker.mjs.map +1 -1
- package/lib/dateconst.d.ts +5 -0
- package/lib/np-datepicker.component.d.ts +1 -1
- package/lib/np-datepicker.module.d.ts +2 -2
- package/lib/np-datepicker.service.d.ts +21 -21
- package/package.json +2 -2
|
@@ -1,113 +1,12 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
|
+
import { NP_DATE } from './dateconst';
|
|
2
3
|
import * as i0 from "@angular/core";
|
|
3
4
|
export class NpDatePickerService {
|
|
4
5
|
constructor() {
|
|
5
|
-
this.englishMonths =
|
|
6
|
-
this.englishLeapMonths =
|
|
7
|
-
this.nepaliMonths =
|
|
8
|
-
[30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],
|
|
9
|
-
[31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],
|
|
10
|
-
[31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],
|
|
11
|
-
[31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],
|
|
12
|
-
[30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],
|
|
13
|
-
[31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],
|
|
14
|
-
[31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],
|
|
15
|
-
[31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],
|
|
16
|
-
[31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 29, 31],
|
|
17
|
-
[31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],
|
|
18
|
-
[31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],
|
|
19
|
-
[31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],
|
|
20
|
-
[31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30],
|
|
21
|
-
[31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],
|
|
22
|
-
[31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],
|
|
23
|
-
[31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],
|
|
24
|
-
[31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30],
|
|
25
|
-
[31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],
|
|
26
|
-
[31, 32, 31, 32, 31, 30, 30, 29, 30, 29, 30, 30],
|
|
27
|
-
[31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],
|
|
28
|
-
[31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],
|
|
29
|
-
[31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],
|
|
30
|
-
[31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30],
|
|
31
|
-
[31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],
|
|
32
|
-
[31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],
|
|
33
|
-
[31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],
|
|
34
|
-
[31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],
|
|
35
|
-
[30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],
|
|
36
|
-
[31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],
|
|
37
|
-
[31, 31, 32, 31, 32, 30, 30, 29, 30, 29, 30, 30],
|
|
38
|
-
[31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],
|
|
39
|
-
[30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],
|
|
40
|
-
[31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],
|
|
41
|
-
[31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],
|
|
42
|
-
[31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],
|
|
43
|
-
[30, 32, 31, 32, 31, 31, 29, 30, 30, 29, 29, 31],
|
|
44
|
-
[31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],
|
|
45
|
-
[31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],
|
|
46
|
-
[31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],
|
|
47
|
-
[31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30],
|
|
48
|
-
[31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],
|
|
49
|
-
[31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],
|
|
50
|
-
[31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],
|
|
51
|
-
[31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30],
|
|
52
|
-
[31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],
|
|
53
|
-
[31, 32, 31, 32, 31, 30, 30, 29, 30, 29, 30, 30],
|
|
54
|
-
[31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],
|
|
55
|
-
[31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],
|
|
56
|
-
[31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],
|
|
57
|
-
[31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30],
|
|
58
|
-
[31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],
|
|
59
|
-
[31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],
|
|
60
|
-
[31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],
|
|
61
|
-
[31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30],
|
|
62
|
-
[31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],
|
|
63
|
-
[31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],
|
|
64
|
-
[31, 31, 32, 31, 32, 30, 30, 29, 30, 29, 30, 30],
|
|
65
|
-
[31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],
|
|
66
|
-
[30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],
|
|
67
|
-
[31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],
|
|
68
|
-
[31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],
|
|
69
|
-
[31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],
|
|
70
|
-
[30, 32, 31, 32, 31, 31, 29, 30, 29, 30, 29, 31],
|
|
71
|
-
[31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],
|
|
72
|
-
[31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],
|
|
73
|
-
[31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],
|
|
74
|
-
[31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 29, 31],
|
|
75
|
-
[31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],
|
|
76
|
-
[31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],
|
|
77
|
-
[31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],
|
|
78
|
-
[31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30],
|
|
79
|
-
[31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],
|
|
80
|
-
[31, 32, 31, 32, 31, 30, 30, 29, 30, 29, 30, 30],
|
|
81
|
-
[31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],
|
|
82
|
-
[31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],
|
|
83
|
-
[31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],
|
|
84
|
-
[31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30],
|
|
85
|
-
[31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],
|
|
86
|
-
[31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],
|
|
87
|
-
[31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],
|
|
88
|
-
[31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30],
|
|
89
|
-
[31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],
|
|
90
|
-
[31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],
|
|
91
|
-
[31, 31, 32, 31, 31, 30, 30, 30, 29, 30, 30, 30],
|
|
92
|
-
[31, 31, 32, 31, 31, 30, 30, 30, 29, 30, 30, 30],
|
|
93
|
-
[31, 32, 31, 32, 30, 31, 30, 30, 29, 30, 30, 30],
|
|
94
|
-
[30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 30, 30],
|
|
95
|
-
[31, 31, 32, 31, 31, 31, 30, 30, 29, 30, 30, 30],
|
|
96
|
-
[30, 31, 32, 32, 30, 31, 30, 30, 29, 30, 30, 30],
|
|
97
|
-
[30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 30, 30],
|
|
98
|
-
[30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 30, 30],
|
|
99
|
-
[31, 31, 32, 31, 31, 31, 30, 30, 29, 30, 30, 30],
|
|
100
|
-
[30, 31, 32, 32, 31, 30, 30, 30, 29, 30, 30, 30],
|
|
101
|
-
[30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 30, 30],
|
|
102
|
-
[31, 31, 32, 31, 31, 30, 30, 30, 29, 30, 30, 30],
|
|
103
|
-
[31, 31, 32, 31, 31, 31, 30, 29, 30, 30, 30, 30],
|
|
104
|
-
[30, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],
|
|
105
|
-
[31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 30, 30],
|
|
106
|
-
[31, 31, 32, 31, 31, 31, 29, 30, 29, 30, 29, 31],
|
|
107
|
-
[31, 31, 32, 31, 31, 31, 30, 29, 29, 30, 30, 30], //2099
|
|
108
|
-
];
|
|
6
|
+
this.englishMonths = NP_DATE.englishMonths;
|
|
7
|
+
this.englishLeapMonths = NP_DATE.englishLeapMonths;
|
|
8
|
+
this.nepaliMonths = NP_DATE.nepaliMonths;
|
|
109
9
|
this.format = '.';
|
|
110
|
-
var d = new Date();
|
|
111
10
|
}
|
|
112
11
|
setCurrentNepaliDate() {
|
|
113
12
|
var d = new Date();
|
|
@@ -150,7 +49,48 @@ export class NpDatePickerService {
|
|
|
150
49
|
return {
|
|
151
50
|
day: this.nepaliDate,
|
|
152
51
|
month: this.nepaliMonth,
|
|
153
|
-
year: this.nepaliYear
|
|
52
|
+
year: this.nepaliYear,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
//ISO format English string date (YYYY-MM-DD) to Nepali date conversion
|
|
56
|
+
engStringToNepDate(engDate) {
|
|
57
|
+
const [year, month, day] = engDate.split('-').map(Number);
|
|
58
|
+
if (!this.isEnglishRange(day, month, year))
|
|
59
|
+
console.log('Invalid date format.');
|
|
60
|
+
this.englishYear = year;
|
|
61
|
+
this.englishMonth = month;
|
|
62
|
+
this.englishDate = day;
|
|
63
|
+
//Setting nepali reference to 2000/1/1 with english date 1943/4/14
|
|
64
|
+
this.nepaliYear = 2000;
|
|
65
|
+
this.nepaliMonth = 1;
|
|
66
|
+
this.nepaliDate = 1;
|
|
67
|
+
var difference = this.getEnglishDateDifference(1943, 4, 14);
|
|
68
|
+
//Getting nepali year untill the difference remains less than 365
|
|
69
|
+
var index = 0;
|
|
70
|
+
while (difference >= this.nepaliYearDays(index)) {
|
|
71
|
+
this.nepaliYear++;
|
|
72
|
+
difference = difference - this.nepaliYearDays(index);
|
|
73
|
+
index++;
|
|
74
|
+
//console.log('Difference:'+difference+ 'nepaliYearDays:'+this.nepaliYearDays(index));
|
|
75
|
+
}
|
|
76
|
+
//console.log("nepaliMonths="+this.nepaliMonths[index][0]+"difference:"+difference);
|
|
77
|
+
//Getting nepali month untill the difference remains less than 31
|
|
78
|
+
var i = 0;
|
|
79
|
+
while (difference >= this.nepaliMonths[index][i]) {
|
|
80
|
+
difference = difference - this.nepaliMonths[index][i];
|
|
81
|
+
this.nepaliMonth++;
|
|
82
|
+
i++;
|
|
83
|
+
//console.log("nepaliMonths="+this.nepaliMonths[index][i]+"difference:"+difference);
|
|
84
|
+
}
|
|
85
|
+
this.nepaliMonth--;
|
|
86
|
+
//console.log(difference);
|
|
87
|
+
//Remaning days is the date;
|
|
88
|
+
this.nepaliDate = this.nepaliDate + difference;
|
|
89
|
+
this.getDay();
|
|
90
|
+
return {
|
|
91
|
+
day: this.nepaliDate,
|
|
92
|
+
month: this.nepaliMonth,
|
|
93
|
+
year: this.nepaliYear,
|
|
154
94
|
};
|
|
155
95
|
}
|
|
156
96
|
toEnglishString(format) {
|
|
@@ -296,5 +236,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImpor
|
|
|
296
236
|
args: [{
|
|
297
237
|
providedIn: 'root',
|
|
298
238
|
}]
|
|
299
|
-
}]
|
|
300
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnAtZGF0ZXBpY2tlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbnB4LW5wLWRhdGVwaWNrZXIvc3JjL2xpYi9ucC1kYXRlcGlja2VyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLM0MsTUFBTSxPQUFPLG1CQUFtQjtJQXFIOUI7UUFwSEEsa0JBQWEsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDakUsc0JBQWlCLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3JFLGlCQUFZLEdBQUc7WUFDYixDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2hELENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDaEQsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNoRCxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2hELENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDaEQsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNoRCxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2hELENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDaEQsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNoRCxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2hELENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDaEQsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNoRCxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2hELENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDaEQsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNoRCxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2hELENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDaEQsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNoRCxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2hELENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDaEQsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNoRCxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2hELENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDaEQsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNoRCxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2hELENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDaEQsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNoRCxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2hELENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDaEQsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNoRCxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2hELENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDaEQsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNoRCxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2hELENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDaEQsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNoRCxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2hELENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDaEQsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNoRCxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2hELENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDaEQsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNoRCxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2hELENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDaEQsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNoRCxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2hELENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDaEQsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNoRCxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2hELENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDaEQsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNoRCxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2hELENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDaEQsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNoRCxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2hELENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDaEQsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNoRCxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2hELENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDaEQsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNoRCxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2hELENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDaEQsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNoRCxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2hELENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDaEQsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNoRCxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2hELENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDaEQsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNoRCxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2hELENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDaEQsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNoRCxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2hELENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDaEQsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNoRCxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2hELENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDaEQsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNoRCxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2hELENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDaEQsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNoRCxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2hELENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDaEQsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNoRCxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2hELENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDaEQsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNoRCxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2hELENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDaEQsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNoRCxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2hELENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDaEQsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNoRCxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2hELENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDaEQsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNoRCxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2hELENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDaEQsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVB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QUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNoRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQUVELGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUVELGVBQWU7UUFDYixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQUVELGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUVELGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQUNELGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUVELGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQzs7Z0hBM1ZVLG1CQUFtQjtvSEFBbkIsbUJBQW1CLGNBRmxCLE1BQU07MkZBRVAsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOcERhdGVQaWNrZXJTZXJ2aWNlIHtcclxuICBlbmdsaXNoTW9udGhzID0gWzMxLCAyOCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMSwgMzAsIDMxLCAzMCwgMzFdO1xyXG4gIGVuZ2xpc2hMZWFwTW9udGhzID0gWzMxLCAyOSwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMSwgMzAsIDMxLCAzMCwgMzFdO1xyXG4gIG5lcGFsaU1vbnRocyA9IFtcclxuICAgIFszMCwgMzIsIDMxLCAzMiwgMzEsIDMwLCAzMCwgMzAsIDI5LCAzMCwgMjksIDMxXSwgLy8yMDAwXHJcbiAgICBbMzEsIDMxLCAzMiwgMzEsIDMxLCAzMSwgMzAsIDI5LCAzMCwgMjksIDMwLCAzMF0sIC8vMjAwMVxyXG4gICAgWzMxLCAzMSwgMzIsIDMyLCAzMSwgMzAsIDMwLCAyOSwgMzAsIDI5LCAzMCwgMzBdLCAvLyAyMDAyXHJcbiAgICBbMzEsIDMyLCAzMSwgMzIsIDMxLCAzMCwgMzAsIDMwLCAyOSwgMjksIDMwLCAzMV0sIC8vIDIwMDNcclxuICAgIFszMCwgMzIsIDMxLCAzMiwgMzEsIDMwLCAzMCwgMzAsIDI5LCAzMCwgMjksIDMxXSwgLy8gMjAwNFxyXG4gICAgWzMxLCAzMSwgMzIsIDMxLCAzMSwgMzEsIDMwLCAyOSwgMzAsIDI5LCAzMCwgMzBdLCAvLyAyMDA1XHJcbiAgICBbMzEsIDMxLCAzMiwgMzIsIDMxLCAzMCwgMzAsIDI5LCAzMCwgMjksIDMwLCAzMF0sIC8vIDIwMDZcclxuICAgIFszMSwgMzIsIDMxLCAzMiwgMzEsIDMwLCAzMCwgMzAsIDI5LCAyOSwgMzAsIDMxXSwgLy8gMjAwNlxyXG4gICAgWzMxLCAzMSwgMzEsIDMyLCAzMSwgMzEsIDI5LCAzMCwgMzAsIDI5LCAyOSwgMzFdLCAvLyAyMDA3XHJcbiAgICBbMzEsIDMxLCAzMiwgMzEsIDMxLCAzMSwgMzAsIDI5LCAzMCwgMjksIDMwLCAzMF0sIC8vIDIwMDhcclxuICAgIFszMSwgMzEsIDMyLCAzMiwgMzEsIDMwLCAzMCwgMjksIDMwLCAyOSwgMzAsIDMwXSwgLy8gMjAwOVxyXG4gICAgWzMxLCAzMiwgMzEsIDMyLCAzMSwgMzAsIDMwLCAzMCwgMjksIDI5LCAzMCwgMzFdLCAvLyAyMDEwXHJcbiAgICBbMzEsIDMxLCAzMSwgMzIsIDMxLCAzMSwgMjksIDMwLCAzMCwgMjksIDMwLCAzMF0sIC8vIDIwMTFcclxuICAgIFszMSwgMzEsIDMyLCAzMSwgMzEsIDMxLCAzMCwgMjksIDMwLCAyOSwgMzAsIDMwXSwgLy8gMjAxMlxyXG4gICAgWzMxLCAzMSwgMzIsIDMyLCAzMSwgMzAsIDMwLCAyOSwgMzAsIDI5LCAzMCwgMzBdLCAvLyAyMDEzXHJcbiAgICBbMzEsIDMyLCAzMSwgMzIsIDMxLCAzMCwgMzAsIDMwLCAyOSwgMjksIDMwLCAzMV0sIC8vIDIwMTRcclxuICAgIFszMSwgMzEsIDMxLCAzMiwgMzEsIDMxLCAyOSwgMzAsIDMwLCAyOSwgMzAsIDMwXSwgLy8gMjAxNVxyXG4gICAgWzMxLCAzMSwgMzIsIDMxLCAzMSwgMzEsIDMwLCAyOSwgMzAsIDI5LCAzMCwgMzBdLCAvLyAyMDE2XHJcbiAgICBbMzEsIDMyLCAzMSwgMzIsIDMxLCAzMCwgMzAsIDI5LCAzMCwgMjksIDMwLCAzMF0sIC8vIDIwMTdcclxuICAgIFszMSwgMzIsIDMxLCAzMiwgMzEsIDMwLCAzMCwgMzAsIDI5LCAzMCwgMjksIDMxXSwgLy8gMjAxOFxyXG4gICAgWzMxLCAzMSwgMzEsIDMyLCAzMSwgMzEsIDMwLCAyOSwgMzAsIDI5LCAzMCwgMzBdLCAvLyAyMDE5XHJcbiAgICBbMzEsIDMxLCAzMiwgMzEsIDMxLCAzMSwgMzAsIDI5LCAzMCwgMjksIDMwLCAzMF0sIC8vIDIwMjBcclxuICAgIFszMSwgMzIsIDMxLCAzMiwgMzEsIDMwLCAzMCwgMzAsIDI5LCAyOSwgMzAsIDMwXSwgLy8gMjAyMVxyXG4gICAgWzMxLCAzMiwgMzEsIDMyLCAzMSwgMzAsIDMwLCAzMCwgMjksIDMwLCAyOSwgMzFdLCAvLyAyMDIyXHJcbiAgICBbMzEsIDMxLCAzMSwgMzIsIDMxLCAzMSwgMzAsIDI5LCAzMCwgMjksIDMwLCAzMF0sIC8vIDIwMjNcclxuICAgIFszMSwgMzEsIDMyLCAzMSwgMzEsIDMxLCAzMCwgMjksIDMwLCAyOSwgMzAsIDMwXSwgLy8gMjAyNFxyXG4gICAgWzMxLCAzMiwgMzEsIDMyLCAzMSwgMzAsIDMwLCAzMCwgMjksIDI5LCAzMCwgMzFdLCAvLyAyMDI1XHJcbiAgICBbMzAsIDMyLCAzMSwgMzIsIDMxLCAzMCwgMzAsIDMwLCAyOSwgMzAsIDI5LCAzMV0sXHJcbiAgICBbMzEsIDMxLCAzMiwgMzEsIDMxLCAzMSwgMzAsIDI5LCAzMCwgMjksIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMxLCAzMiwgMzEsIDMyLCAzMCwgMzAsIDI5LCAzMCwgMjksIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMyLCAzMSwgMzIsIDMxLCAzMCwgMzAsIDMwLCAyOSwgMjksIDMwLCAzMV0sXHJcbiAgICBbMzAsIDMyLCAzMSwgMzIsIDMxLCAzMCwgMzAsIDMwLCAyOSwgMzAsIDI5LCAzMV0sXHJcbiAgICBbMzEsIDMxLCAzMiwgMzEsIDMxLCAzMSwgMzAsIDI5LCAzMCwgMjksIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMxLCAzMiwgMzIsIDMxLCAzMCwgMzAsIDI5LCAzMCwgMjksIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMyLCAzMSwgMzIsIDMxLCAzMCwgMzAsIDMwLCAyOSwgMjksIDMwLCAzMV0sXHJcbiAgICBbMzAsIDMyLCAzMSwgMzIsIDMxLCAzMSwgMjksIDMwLCAzMCwgMjksIDI5LCAzMV0sXHJcbiAgICBbMzEsIDMxLCAzMiwgMzEsIDMxLCAzMSwgMzAsIDI5LCAzMCwgMjksIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMxLCAzMiwgMzIsIDMxLCAzMCwgMzAsIDI5LCAzMCwgMjksIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMyLCAzMSwgMzIsIDMxLCAzMCwgMzAsIDMwLCAyOSwgMjksIDMwLCAzMV0sXHJcbiAgICBbMzEsIDMxLCAzMSwgMzIsIDMxLCAzMSwgMjksIDMwLCAzMCwgMjksIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMxLCAzMiwgMzEsIDMxLCAzMSwgMzAsIDI5LCAzMCwgMjksIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMxLCAzMiwgMzIsIDMxLCAzMCwgMzAsIDI5LCAzMCwgMjksIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMyLCAzMSwgMzIsIDMxLCAzMCwgMzAsIDMwLCAyOSwgMjksIDMwLCAzMV0sXHJcbiAgICBbMzEsIDMxLCAzMSwgMzIsIDMxLCAzMSwgMjksIDMwLCAzMCwgMjksIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMxLCAzMiwgMzEsIDMxLCAzMSwgMzAsIDI5LCAzMCwgMjksIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMyLCAzMSwgMzIsIDMxLCAzMCwgMzAsIDI5LCAzMCwgMjksIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMyLCAzMSwgMzIsIDMxLCAzMCwgMzAsIDMwLCAyOSwgMjksIDMwLCAzMV0sXHJcbiAgICBbMzEsIDMxLCAzMSwgMzIsIDMxLCAzMSwgMzAsIDI5LCAzMCwgMjksIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMxLCAzMiwgMzEsIDMxLCAzMSwgMzAsIDI5LCAzMCwgMjksIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMyLCAzMSwgMzIsIDMxLCAzMCwgMzAsIDMwLCAyOSwgMjksIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMyLCAzMSwgMzIsIDMxLCAzMCwgMzAsIDMwLCAyOSwgMzAsIDI5LCAzMV0sXHJcbiAgICBbMzEsIDMxLCAzMSwgMzIsIDMxLCAzMSwgMzAsIDI5LCAzMCwgMjksIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMxLCAzMiwgMzEsIDMxLCAzMSwgMzAsIDI5LCAzMCwgMjksIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMyLCAzMSwgMzIsIDMxLCAzMCwgMzAsIDMwLCAyOSwgMjksIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMyLCAzMSwgMzIsIDMxLCAzMCwgMzAsIDMwLCAyOSwgMzAsIDI5LCAzMV0sXHJcbiAgICBbMzEsIDMxLCAzMiwgMzEsIDMxLCAzMSwgMzAsIDI5LCAzMCwgMjksIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMxLCAzMiwgMzEsIDMyLCAzMCwgMzAsIDI5LCAzMCwgMjksIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMyLCAzMSwgMzIsIDMxLCAzMCwgMzAsIDMwLCAyOSwgMjksIDMwLCAzMV0sXHJcbiAgICBbMzAsIDMyLCAzMSwgMzIsIDMxLCAzMCwgMzAsIDMwLCAyOSwgMzAsIDI5LCAzMV0sXHJcbiAgICBbMzEsIDMxLCAzMiwgMzEsIDMxLCAzMSwgMzAsIDI5LCAzMCwgMjksIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMxLCAzMiwgMzIsIDMxLCAzMCwgMzAsIDI5LCAzMCwgMjksIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMyLCAzMSwgMzIsIDMxLCAzMCwgMzAsIDMwLCAyOSwgMjksIDMwLCAzMV0sXHJcbiAgICBbMzAsIDMyLCAzMSwgMzIsIDMxLCAzMSwgMjksIDMwLCAyOSwgMzAsIDI5LCAzMV0sXHJcbiAgICBbMzEsIDMxLCAzMiwgMzEsIDMxLCAzMSwgMzAsIDI5LCAzMCwgMjksIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMxLCAzMiwgMzIsIDMxLCAzMCwgMzAsIDI5LCAzMCwgMjksIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMyLCAzMSwgMzIsIDMxLCAzMCwgMzAsIDMwLCAyOSwgMjksIDMwLCAzMV0sXHJcbiAgICBbMzEsIDMxLCAzMSwgMzIsIDMxLCAzMSwgMjksIDMwLCAzMCwgMjksIDI5LCAzMV0sXHJcbiAgICBbMzEsIDMxLCAzMiwgMzEsIDMxLCAzMSwgMzAsIDI5LCAzMCwgMjksIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMxLCAzMiwgMzIsIDMxLCAzMCwgMzAsIDI5LCAzMCwgMjksIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMyLCAzMSwgMzIsIDMxLCAzMCwgMzAsIDMwLCAyOSwgMjksIDMwLCAzMV0sXHJcbiAgICBbMzEsIDMxLCAzMSwgMzIsIDMxLCAzMSwgMjksIDMwLCAzMCwgMjksIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMxLCAzMiwgMzEsIDMxLCAzMSwgMzAsIDI5LCAzMCwgMjksIDMwLCAzMF0sIC8vMjA3MVxyXG4gICAgWzMxLCAzMiwgMzEsIDMyLCAzMSwgMzAsIDMwLCAyOSwgMzAsIDI5LCAzMCwgMzBdLCAvLzIwNzJcclxuICAgIFszMSwgMzIsIDMxLCAzMiwgMzEsIDMwLCAzMCwgMzAsIDI5LCAyOSwgMzAsIDMxXSwgLy8yMDczXHJcbiAgICBbMzEsIDMxLCAzMSwgMzIsIDMxLCAzMSwgMzAsIDI5LCAzMCwgMjksIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMxLCAzMiwgMzEsIDMxLCAzMSwgMzAsIDI5LCAzMCwgMjksIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMyLCAzMSwgMzIsIDMxLCAzMCwgMzAsIDMwLCAyOSwgMjksIDMwLCAzMF0sIC8vIDIwNzZcclxuICAgIFszMSwgMzIsIDMxLCAzMiwgMzEsIDMwLCAzMCwgMzAsIDI5LCAzMCwgMjksIDMxXSxcclxuICAgIFszMSwgMzEsIDMxLCAzMiwgMzEsIDMxLCAzMCwgMjksIDMwLCAyOSwgMzAsIDMwXSwgLy8gMjA3OFxyXG4gICAgWzMxLCAzMSwgMzIsIDMxLCAzMSwgMzEsIDMwLCAyOSwgMzAsIDI5LCAzMCwgMzBdLCAvLyAyMDc5XHJcbiAgICBbMzEsIDMyLCAzMSwgMzIsIDMxLCAzMCwgMzAsIDMwLCAyOSwgMjksIDMwLCAzMF0sIC8vIDIwODBcclxuICAgIFszMSwgMzIsIDMxLCAzMiwgMzEsIDMwLCAzMCwgMzAsIDI5LCAzMCwgMjksIDMxXSwgLy8gMjA4MVxyXG4gICAgWzMxLCAzMSwgMzIsIDMxLCAzMSwgMzEsIDMwLCAyOSwgMzAsIDI5LCAzMCwgMzBdLCAvLyAyMDgyXHJcbiAgICBbMzEsIDMxLCAzMiwgMzEsIDMxLCAzMCwgMzAsIDMwLCAyOSwgMzAsIDMwLCAzMF0sIC8vIDIwODNcclxuICAgIFszMSwgMzEsIDMyLCAzMSwgMzEsIDMwLCAzMCwgMzAsIDI5LCAzMCwgMzAsIDMwXSxcclxuICAgIFszMSwgMzIsIDMxLCAzMiwgMzAsIDMxLCAzMCwgMzAsIDI5LCAzMCwgMzAsIDMwXSxcclxuICAgIFszMCwgMzIsIDMxLCAzMiwgMzEsIDMwLCAzMCwgMzAsIDI5LCAzMCwgMzAsIDMwXSxcclxuICAgIFszMSwgMzEsIDMyLCAzMSwgMzEsIDMxLCAzMCwgMzAsIDI5LCAzMCwgMzAsIDMwXSxcclxuICAgIFszMCwgMzEsIDMyLCAzMiwgMzAsIDMxLCAzMCwgMzAsIDI5LCAzMCwgMzAsIDMwXSxcclxuICAgIFszMCwgMzIsIDMxLCAzMiwgMzEsIDMwLCAzMCwgMzAsIDI5LCAzMCwgMzAsIDMwXSxcclxuICAgIFszMCwgMzIsIDMxLCAzMiwgMzEsIDMwLCAzMCwgMzAsIDI5LCAzMCwgMzAsIDMwXSwgLy8yMDkwXHJcbiAgICBbMzEsIDMxLCAzMiwgMzEsIDMxLCAzMSwgMzAsIDMwLCAyOSwgMzAsIDMwLCAzMF0sXHJcbiAgICBbMzAsIDMxLCAzMiwgMzIsIDMxLCAzMCwgMzAsIDMwLCAyOSwgMzAsIDMwLCAzMF0sXHJcbiAgICBbMzAsIDMyLCAzMSwgMzIsIDMxLCAzMCwgMzAsIDMwLCAyOSwgMzAsIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMxLCAzMiwgMzEsIDMxLCAzMCwgMzAsIDMwLCAyOSwgMzAsIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMxLCAzMiwgMzEsIDMxLCAzMSwgMzAsIDI5LCAzMCwgMzAsIDMwLCAzMF0sXHJcbiAgICBbMzAsIDMxLCAzMiwgMzIsIDMxLCAzMCwgMzAsIDI5LCAzMCwgMjksIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMyLCAzMSwgMzIsIDMxLCAzMCwgMzAsIDMwLCAyOSwgMzAsIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMxLCAzMiwgMzEsIDMxLCAzMSwgMjksIDMwLCAyOSwgMzAsIDI5LCAzMV0sXHJcbiAgICBbMzEsIDMxLCAzMiwgMzEsIDMxLCAzMSwgMzAsIDI5LCAyOSwgMzAsIDMwLCAzMF0sIC8vMjA5OVxyXG4gIF07XHJcblxyXG4gIGVuZ2xpc2hZZWFyOiBhbnk7XHJcbiAgZW5nbGlzaE1vbnRoOiBhbnk7XHJcbiAgZW5nbGlzaERhdGU6IGFueTtcclxuXHJcbiAgbmVwYWxpWWVhcjogYW55O1xyXG4gIG5lcGFsaU1vbnRoOiBhbnk7XHJcbiAgbmVwYWxpRGF0ZTogYW55O1xyXG5cclxuICB3ZWVrRGF5OiBhbnk7XHJcbiAgZm9ybWF0ID0gJy4nO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHZhciBkID0gbmV3IERhdGUoKTtcclxuICB9XHJcblxyXG4gIHNldEN1cnJlbnROZXBhbGlEYXRlKCkge1xyXG4gICAgdmFyIGQgPSBuZXcgRGF0ZSgpO1xyXG4gICAgcmV0dXJuIHRoaXMuZW5nVG9OZXBEYXRlKGQuZ2V0RGF0ZSgpLCBkLmdldE1vbnRoKCksIGQuZ2V0RnVsbFllYXIoKSk7XHJcbiAgfVxyXG5cclxuICAvL0VuZ2xpc2ggdG8gTmVwYWxpIGRhdGUgY29udmVyc2lvblxyXG4gIGVuZ1RvTmVwRGF0ZShkYXRlOiBhbnksIG1vbnRoOiBhbnksIHllYXI6IGFueSkge1xyXG4gICAgaWYgKCF0aGlzLmlzRW5nbGlzaFJhbmdlKGRhdGUsIG1vbnRoLCB5ZWFyKSlcclxuICAgICAgY29uc29sZS5sb2coJ0ludmFsaWQgZGF0ZSBmb3JtYXQuJyk7XHJcblxyXG4gICAgdGhpcy5lbmdsaXNoWWVhciA9IHllYXI7XHJcbiAgICB0aGlzLmVuZ2xpc2hNb250aCA9IG1vbnRoICsgMTtcclxuICAgIHRoaXMuZW5nbGlzaERhdGUgPSBkYXRlO1xyXG5cclxuICAgIC8vU2V0dGluZyBuZXBhbGkgcmVmZXJlbmNlIHRvIDIwMDAvMS8xIHdpdGggZW5nbGlzaCBkYXRlIDE5NDMvNC8xNFxyXG4gICAgdGhpcy5uZXBhbGlZZWFyID0gMjAwMDtcclxuICAgIHRoaXMubmVwYWxpTW9udGggPSAxO1xyXG4gICAgdGhpcy5uZXBhbGlEYXRlID0gMTtcclxuXHJcbiAgICB2YXIgZGlmZmVyZW5jZSA9IHRoaXMuZ2V0RW5nbGlzaERhdGVEaWZmZXJlbmNlKDE5NDMsIDQsIDE0KTtcclxuXHJcbiAgICAvL0dldHRpbmcgbmVwYWxpIHllYXIgdW50aWxsIHRoZSBkaWZmZXJlbmNlIHJlbWFpbnMgbGVzcyB0aGFuIDM2NVxyXG4gICAgdmFyIGluZGV4ID0gMDtcclxuICAgIHdoaWxlIChkaWZmZXJlbmNlID49IHRoaXMubmVwYWxpWWVhckRheXMoaW5kZXgpKSB7XHJcbiAgICAgIHRoaXMubmVwYWxpWWVhcisrO1xyXG4gICAgICBkaWZmZXJlbmNlID0gZGlmZmVyZW5jZSAtIHRoaXMubmVwYWxpWWVhckRheXMoaW5kZXgpO1xyXG4gICAgICBpbmRleCsrO1xyXG4gICAgICAvL2NvbnNvbGUubG9nKCdEaWZmZXJlbmNlOicrZGlmZmVyZW5jZSsgJ25lcGFsaVllYXJEYXlzOicrdGhpcy5uZXBhbGlZZWFyRGF5cyhpbmRleCkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vY29uc29sZS5sb2coXCJuZXBhbGlNb250aHM9XCIrdGhpcy5uZXBhbGlNb250aHNbaW5kZXhdWzBdK1wiZGlmZmVyZW5jZTpcIitkaWZmZXJlbmNlKTtcclxuICAgIC8vR2V0dGluZyBuZXBhbGkgbW9udGggdW50aWxsIHRoZSBkaWZmZXJlbmNlIHJlbWFpbnMgbGVzcyB0aGFuIDMxXHJcbiAgICB2YXIgaSA9IDA7XHJcbiAgICB3aGlsZSAoZGlmZmVyZW5jZSA+PSB0aGlzLm5lcGFsaU1vbnRoc1tpbmRleF1baV0pIHtcclxuICAgICAgZGlmZmVyZW5jZSA9IGRpZmZlcmVuY2UgLSB0aGlzLm5lcGFsaU1vbnRoc1tpbmRleF1baV07XHJcbiAgICAgIHRoaXMubmVwYWxpTW9udGgrKztcclxuICAgICAgaSsrO1xyXG4gICAgICAvL2NvbnNvbGUubG9nKFwibmVwYWxpTW9udGhzPVwiK3RoaXMubmVwYWxpTW9udGhzW2luZGV4XVtpXStcImRpZmZlcmVuY2U6XCIrZGlmZmVyZW5jZSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLm5lcGFsaU1vbnRoLS07XHJcbiAgICAvL2NvbnNvbGUubG9nKGRpZmZlcmVuY2UpO1xyXG5cclxuICAgIC8vUmVtYW5pbmcgZGF5cyBpcyB0aGUgZGF0ZTtcclxuICAgIHRoaXMubmVwYWxpRGF0ZSA9IHRoaXMubmVwYWxpRGF0ZSArIGRpZmZlcmVuY2U7XHJcbiAgICB0aGlzLmdldERheSgpO1xyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgIGRheTogdGhpcy5uZXBhbGlEYXRlLFxyXG4gICAgICBtb250aDogdGhpcy5uZXBhbGlNb250aCxcclxuICAgICAgeWVhcjogdGhpcy5uZXBhbGlZZWFyXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgdG9FbmdsaXNoU3RyaW5nKGZvcm1hdDogYW55KSB7XHJcbiAgICBpZiAodHlwZW9mIGZvcm1hdCA9PT0gJ3VuZGVmaW5lZCcpIGZvcm1hdCA9ICctJztcclxuICAgIHJldHVybiAoXHJcbiAgICAgIHRoaXMuZW5nbGlzaFllYXIgKyBmb3JtYXQgKyB0aGlzLmVuZ2xpc2hNb250aCArIGZvcm1hdCArIHRoaXMuZW5nbGlzaERhdGVcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRFbmdsaXNoRGF0ZURpZmZlcmVuY2UoeWVhcjogYW55LCBtb250aDogYW55LCBkYXRlOiBhbnkpIHtcclxuICAgIC8vR2V0dGluZyBkaWZmZXJlbmNlIGZyb20gdGhlIGN1cnJlbnQgZGF0ZSB3aXRoIHRoZSBkYXRlIHByb3ZpZGVkXHJcbiAgICB2YXIgZGlmZmVyZW5jZSA9XHJcbiAgICAgIHRoaXMuY291bnRUb3RhbEVuZ2xpc2hEYXlzKFxyXG4gICAgICAgIHRoaXMuZW5nbGlzaFllYXIsXHJcbiAgICAgICAgdGhpcy5lbmdsaXNoTW9udGgsXHJcbiAgICAgICAgdGhpcy5lbmdsaXNoRGF0ZVxyXG4gICAgICApIC0gdGhpcy5jb3VudFRvdGFsRW5nbGlzaERheXMoeWVhciwgbW9udGgsIGRhdGUpO1xyXG4gICAgcmV0dXJuIGRpZmZlcmVuY2UgPCAwID8gLWRpZmZlcmVuY2UgOiBkaWZmZXJlbmNlO1xyXG4gIH1cclxuXHJcbiAgY291bnRUb3RhbEVuZ2xpc2hEYXlzKHllYXI6IGFueSwgbW9udGg6IGFueSwgZGF0ZTogYW55KSB7XHJcbiAgICB2YXIgdG90YWxEYXlzID0geWVhciAqIDM2NSArIGRhdGU7XHJcblxyXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtb250aCAtIDE7IGkrKylcclxuICAgICAgdG90YWxEYXlzID0gdG90YWxEYXlzICsgdGhpcy5lbmdsaXNoTW9udGhzW2ldO1xyXG5cclxuICAgIHRvdGFsRGF5cyA9IHRvdGFsRGF5cyArIHRoaXMuY291bnRsZWFwKHllYXIsIG1vbnRoKTtcclxuICAgIHJldHVybiB0b3RhbERheXM7XHJcbiAgfVxyXG5cclxuICBjb3VudGxlYXAoeWVhcjogYW55LCBtb250aDogYW55KSB7XHJcbiAgICBpZiAobW9udGggPD0gMikgeWVhci0tO1xyXG5cclxuICAgIHJldHVybiAoXHJcbiAgICAgIE1hdGguZmxvb3IoeWVhciAvIDQpIC0gTWF0aC5mbG9vcih5ZWFyIC8gMTAwKSArIE1hdGguZmxvb3IoeWVhciAvIDQwMClcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBpc0VuZ2xpc2hSYW5nZShkYXRlOiBhbnksIG1vbnRoOiBhbnksIHllYXI6IGFueSkge1xyXG4gICAgaWYgKHllYXIgPCAxOTQ0IHx8IHllYXIgPiAyMDQyKSByZXR1cm4gZmFsc2U7XHJcbiAgICBpZiAobW9udGggPCAxIHx8IG1vbnRoID4gMTIpIHJldHVybiBmYWxzZTtcclxuICAgIGlmIChkYXRlIDwgMSB8fCBkYXRlID4gMzEpIHJldHVybiBmYWxzZTtcclxuXHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGlzTGVhcFllYXIoeWVhcjogYW55KSB7XHJcbiAgICBpZiAoeWVhciAlIDQgPT09IDApIHtcclxuICAgICAgcmV0dXJuIHllYXIgJSAxMDAgPT09IDAgPyB5ZWFyICUgNDAwID09PSAwIDogdHJ1ZTtcclxuICAgIH0gZWxzZSByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICAvL05lcGFsaSB0byBFbmdsaXNoIGNvbnZlcnNpb25cclxuICBuZXBUb0VuZ0RhdGUoZGF0ZTogYW55LCBtb250aDogYW55LCB5ZWFyOiBhbnkpIHtcclxuICAgIGlmICghdGhpcy5pc05lcGFsaVJhbmdlKGRhdGUsIG1vbnRoLCB5ZWFyKSkge1xyXG4gICAgICBjb25zb2xlLmxvZygnSW52YWxpZCBEYXRlIEZvcm1hdCcpO1xyXG4gICAgICAvLyB0aHJvdyBuZXcgRXhjZXB0aW9uKFwiSW52YWxpZCBkYXRlIGZvcm1hdC5cIik7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLm5lcGFsaVllYXIgPSB5ZWFyO1xyXG4gICAgdGhpcy5uZXBhbGlNb250aCA9IG1vbnRoICsgMTtcclxuICAgIHRoaXMubmVwYWxpRGF0ZSA9IGRhdGU7XHJcblxyXG4gICAgLy9TZXR0aW5nIGVuZ2xpc2ggcmVmZXJlbmNlIHRvIDE5NDQvMS8xIHdpdGggbmVwYWxpIGRhdGUgMjAwMC85LzE3XHJcbiAgICB0aGlzLmVuZ2xpc2hZZWFyID0gMTk0NDtcclxuICAgIHRoaXMuZW5nbGlzaE1vbnRoID0gMTtcclxuICAgIHRoaXMuZW5nbGlzaERhdGUgPSAxO1xyXG5cclxuICAgIHZhciBkaWZmZXJlbmNlID0gdGhpcy5nZXROZXBhbGlEYXRlRGlmZmVyZW5jZSgyMDAwLCA5LCAxNyk7XHJcblxyXG4gICAgLy9HZXR0aW5nIGVuZ2xpc2ggeWVhciB1bnRpbGwgdGhlIGRpZmZlcmVuY2UgcmVtYWlucyBsZXNzIHRoYW4gMzY1XHJcbiAgICB3aGlsZSAoZGlmZmVyZW5jZSA+PSAodGhpcy5pc0xlYXBZZWFyKHRoaXMuZW5nbGlzaFllYXIpID8gMzY2IDogMzY1KSkge1xyXG4gICAgICBkaWZmZXJlbmNlID0gZGlmZmVyZW5jZSAtICh0aGlzLmlzTGVhcFllYXIodGhpcy5lbmdsaXNoWWVhcikgPyAzNjYgOiAzNjUpO1xyXG4gICAgICB0aGlzLmVuZ2xpc2hZZWFyKys7XHJcbiAgICB9XHJcblxyXG4gICAgLy9HZXR0aW5nIGVuZ2xpc2ggbW9udGggdW50aWxsIHRoZSBkaWZmZXJlbmNlIHJlbWFpbnMgbGVzcyB0aGFuIDMxXHJcbiAgICB2YXIgbW9udGhEYXlzID0gdGhpcy5pc0xlYXBZZWFyKHRoaXMuZW5nbGlzaFllYXIpXHJcbiAgICAgID8gdGhpcy5lbmdsaXNoTGVhcE1vbnRoc1xyXG4gICAgICA6IHRoaXMuZW5nbGlzaE1vbnRocztcclxuICAgIHZhciBpID0gMDtcclxuICAgIHdoaWxlIChkaWZmZXJlbmNlID49IG1vbnRoRGF5c1tpXSkge1xyXG4gICAgICB0aGlzLmVuZ2xpc2hNb250aCsrO1xyXG4gICAgICBkaWZmZXJlbmNlID0gZGlmZmVyZW5jZSAtIG1vbnRoRGF5c1tpXTtcclxuICAgICAgaSsrO1xyXG4gICAgfVxyXG5cclxuICAgIC8vUmVtYW5pbmcgZGF5cyBpcyB0aGUgZGF0ZTtcclxuICAgIHRoaXMuZW5nbGlzaERhdGUgPSB0aGlzLmVuZ2xpc2hEYXRlICsgZGlmZmVyZW5jZTtcclxuICAgIHRoaXMuZ2V0RGF5KCk7XHJcblxyXG4gICAgcmV0dXJuIG5ldyBEYXRlKHRoaXMuZW5nbGlzaFllYXIgKyAnLScgKyB0aGlzLmVuZ2xpc2hNb250aCArICctJyArIHRoaXMuZW5nbGlzaERhdGUpO1xyXG4gIH1cclxuXHJcbiAgdG9OZXBhbGlTdHJpbmcoZm9ybWF0OiBhbnkpIHtcclxuICAgIGlmICh0eXBlb2YgZm9ybWF0ID09PSAndW5kZWZpbmVkJykgZm9ybWF0ID0gJy0nO1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgdGhpcy5uZXBhbGlZZWFyICsgZm9ybWF0ICsgdGhpcy5uZXBhbGlNb250aCArIGZvcm1hdCArIHRoaXMubmVwYWxpRGF0ZVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldE5lcGFsaURhdGVEaWZmZXJlbmNlKHllYXI6IGFueSwgbW9udGg6IGFueSwgZGF0ZTogYW55KSB7XHJcbiAgICAvL0dldHRpbmcgZGlmZmVyZW5jZSBmcm9tIHRoZSBjdXJyZW50IGRhdGUgd2l0aCB0aGUgZGF0ZSBwcm92aWRlZFxyXG4gICAgdmFyIGRpZmZlcmVuY2UgPVxyXG4gICAgICB0aGlzLmNvdW50VG90YWxOZXBhbGlEYXlzKFxyXG4gICAgICAgIHRoaXMubmVwYWxpWWVhcixcclxuICAgICAgICB0aGlzLm5lcGFsaU1vbnRoLFxyXG4gICAgICAgIHRoaXMubmVwYWxpRGF0ZVxyXG4gICAgICApIC0gdGhpcy5jb3VudFRvdGFsTmVwYWxpRGF5cyh5ZWFyLCBtb250aCwgZGF0ZSk7XHJcbiAgICByZXR1cm4gZGlmZmVyZW5jZSA8IDAgPyAtZGlmZmVyZW5jZSA6IGRpZmZlcmVuY2U7XHJcbiAgfVxyXG5cclxuICBjb3VudFRvdGFsTmVwYWxpRGF5cyh5ZWFyOiBhbnksIG1vbnRoOiBhbnksIGRhdGU6IGFueSkge1xyXG4gICAgdmFyIHRvdGFsID0gMDtcclxuICAgIGlmICh5ZWFyIDwgMjAwMCkgcmV0dXJuIDA7XHJcblxyXG4gICAgdG90YWwgPSB0b3RhbCArIChkYXRlIC0gMSk7XHJcblxyXG4gICAgdmFyIHllYXJJbmRleCA9IHllYXIgLSAyMDAwO1xyXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtb250aCAtIDE7IGkrKylcclxuICAgICAgdG90YWwgPSB0b3RhbCArIHRoaXMubmVwYWxpTW9udGhzW3llYXJJbmRleF1baV07XHJcblxyXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB5ZWFySW5kZXg7IGkrKykgdG90YWwgPSB0b3RhbCArIHRoaXMubmVwYWxpWWVhckRheXMoaSk7XHJcblxyXG4gICAgcmV0dXJuIHRvdGFsO1xyXG4gIH1cclxuXHJcbiAgbmVwYWxpWWVhckRheXMoaW5kZXg6IGFueSkge1xyXG4gICAgdmFyIHRvdGFsID0gMDtcclxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTI7IGkrKykgdG90YWwgKz0gdGhpcy5uZXBhbGlNb250aHNbaW5kZXhdW2ldO1xyXG4gICAgcmV0dXJuIHRvdGFsO1xyXG4gIH1cclxuXHJcbiAgaXNOZXBhbGlSYW5nZShkYXRlOiBhbnksIG1vbnRoOiBhbnksIHllYXI6IGFueSkge1xyXG4gICAgaWYgKHllYXIgPCAyMDAwIHx8IHllYXIgPiAyMDk5KSByZXR1cm4gZmFsc2U7XHJcblxyXG4gICAgaWYgKG1vbnRoIDwgMCB8fCBtb250aCA+IDExKSByZXR1cm4gZmFsc2U7XHJcblxyXG4gICAgaWYgKGRhdGUgPCAxIHx8IGRhdGUgPiB0aGlzLm5lcGFsaU1vbnRoc1t5ZWFyIC0gMjAwMF1bbW9udGggLSAxXSlcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG5cclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLy9DbGFzcyBSZWd1bGFyIG1ldGhvZHNcclxuXHJcbiAgZ2V0RGF5KCkge1xyXG4gICAgLy9SZWZlcmVuY2UgZGF0ZSAxOTQzLzQvMTQgV2VkbmVzZGF5XHJcbiAgICB2YXIgZGlmZmVyZW5jZSA9IHRoaXMuZ2V0RW5nbGlzaERhdGVEaWZmZXJlbmNlKDE5NDMsIDQsIDE0KTtcclxuICAgIHRoaXMud2Vla0RheSA9ICgoMyArIChkaWZmZXJlbmNlICUgNykpICUgNykgKyAxO1xyXG4gICAgcmV0dXJuIHRoaXMud2Vla0RheTtcclxuICB9XHJcblxyXG4gIGdldEVuZ2xpc2hZZWFyKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZW5nbGlzaFllYXI7XHJcbiAgfVxyXG5cclxuICBnZXRFbmdsaXNoTW9udGgoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5lbmdsaXNoTW9udGg7XHJcbiAgfVxyXG5cclxuICBnZXRFbmdsaXNoRGF0ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmVuZ2xpc2hEYXRlO1xyXG4gIH1cclxuXHJcbiAgZ2V0TmVwYWxpWWVhcigpIHtcclxuICAgIHJldHVybiB0aGlzLm5lcGFsaVllYXI7XHJcbiAgfVxyXG4gIGdldE5lcGFsaU1vbnRoKCkge1xyXG4gICAgcmV0dXJuIHRoaXMubmVwYWxpTW9udGg7XHJcbiAgfVxyXG5cclxuICBnZXROZXBhbGlEYXRlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMubmVwYWxpRGF0ZTtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
|
|
239
|
+
}] });
|
|
240
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnAtZGF0ZXBpY2tlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbnB4LW5wLWRhdGVwaWNrZXIvc3JjL2xpYi9ucC1kYXRlcGlja2VyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sYUFBYSxDQUFDOztBQUt0QyxNQUFNLE9BQU8sbUJBQW1CO0lBSGhDO1FBSUUsa0JBQWEsR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDO1FBQ3RDLHNCQUFpQixHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQztRQUM5QyxpQkFBWSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUM7UUFXcEMsV0FBTSxHQUFHLEdBQUcsQ0FBQztLQXlSZDtJQXZSUyxvQkFBb0I7UUFDMUIsSUFBSSxDQUFDLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNuQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQsbUNBQW1DO0lBQ25DLFlBQVksQ0FBQyxJQUFTLEVBQUUsS0FBVSxFQUFFLElBQVM7UUFDM0MsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUM7WUFDekMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBRXRDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUV4QixrRUFBa0U7UUFD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O0lBQ08sY0FBYztRQUNwQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUVPLGFBQWE7UUFDbkIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7O2dIQXRTVSxtQkFBbUI7b0hBQW5CLG1CQUFtQixjQUZsQixNQUFNOzJGQUVQLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5QX0RBVEUgfSBmcm9tICcuL2RhdGVjb25zdCc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTnBEYXRlUGlja2VyU2VydmljZSB7XHJcbiAgZW5nbGlzaE1vbnRocyA9IE5QX0RBVEUuZW5nbGlzaE1vbnRocztcclxuICBlbmdsaXNoTGVhcE1vbnRocyA9IE5QX0RBVEUuZW5nbGlzaExlYXBNb250aHM7XHJcbiAgbmVwYWxpTW9udGhzID0gTlBfREFURS5uZXBhbGlNb250aHM7XHJcblxyXG4gIGVuZ2xpc2hZZWFyOiBhbnk7XHJcbiAgZW5nbGlzaE1vbnRoOiBhbnk7XHJcbiAgZW5nbGlzaERhdGU6IGFueTtcclxuXHJcbiAgbmVwYWxpWWVhcjogYW55O1xyXG4gIG5lcGFsaU1vbnRoOiBhbnk7XHJcbiAgbmVwYWxpRGF0ZTogYW55O1xyXG5cclxuICB3ZWVrRGF5OiBhbnk7XHJcbiAgZm9ybWF0ID0gJy4nO1xyXG5cclxuICBwcml2YXRlIHNldEN1cnJlbnROZXBhbGlEYXRlKCkge1xyXG4gICAgdmFyIGQgPSBuZXcgRGF0ZSgpO1xyXG4gICAgcmV0dXJuIHRoaXMuZW5nVG9OZXBEYXRlKGQuZ2V0RGF0ZSgpLCBkLmdldE1vbnRoKCksIGQuZ2V0RnVsbFllYXIoKSk7XHJcbiAgfVxyXG5cclxuICAvL0VuZ2xpc2ggdG8gTmVwYWxpIGRhdGUgY29udmVyc2lvblxyXG4gIGVuZ1RvTmVwRGF0ZShkYXRlOiBhbnksIG1vbnRoOiBhbnksIHllYXI6IGFueSkge1xyXG4gICAgaWYgKCF0aGlzLmlzRW5nbGlzaFJhbmdlKGRhdGUsIG1vbnRoLCB5ZWFyKSlcclxuICAgICAgY29uc29sZS5sb2coJ0ludmFsaWQgZGF0ZSBmb3JtYXQuJyk7XHJcblxyXG4gICAgdGhpcy5lbmdsaXNoWWVhciA9IHllYXI7XHJcbiAgICB0aGlzLmVuZ2xpc2hNb250aCA9IG1vbnRoICsgMTtcclxuICAgIHRoaXMuZW5nbGlzaERhdGUgPSBkYXRlO1xyXG5cclxuICAgIC8vU2V0dGluZyBuZXBhbGkgcmVmZXJlbmNlIHRvIDIwMDAvMS8xIHdpdGggZW5nbGlzaCBkYXRlIDE5NDMvNC8xNFxyXG4gICAgdGhpcy5uZXBhbGlZZWFyID0gMjAwMDtcclxuICAgIHRoaXMubmVwYWxpTW9udGggPSAxO1xyXG4gICAgdGhpcy5uZXBhbGlEYXRlID0gMTtcclxuXHJcbiAgICB2YXIgZGlmZmVyZW5jZSA9IHRoaXMuZ2V0RW5nbGlzaERhdGVEaWZmZXJlbmNlKDE5NDMsIDQsIDE0KTtcclxuXHJcbiAgICAvL0dldHRpbmcgbmVwYWxpIHllYXIgdW50aWxsIHRoZSBkaWZmZXJlbmNlIHJlbWFpbnMgbGVzcyB0aGFuIDM2NVxyXG4gICAgdmFyIGluZGV4ID0gMDtcclxuICAgIHdoaWxlIChkaWZmZXJlbmNlID49IHRoaXMubmVwYWxpWWVhckRheXMoaW5kZXgpKSB7XHJcbiAgICAgIHRoaXMubmVwYWxpWWVhcisrO1xyXG4gICAgICBkaWZmZXJlbmNlID0gZGlmZmVyZW5jZSAtIHRoaXMubmVwYWxpWWVhckRheXMoaW5kZXgpO1xyXG4gICAgICBpbmRleCsrO1xyXG4gICAgICAvL2NvbnNvbGUubG9nKCdEaWZmZXJlbmNlOicrZGlmZmVyZW5jZSsgJ25lcGFsaVllYXJEYXlzOicrdGhpcy5uZXBhbGlZZWFyRGF5cyhpbmRleCkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vY29uc29sZS5sb2coXCJuZXBhbGlNb250aHM9XCIrdGhpcy5uZXBhbGlNb250aHNbaW5kZXhdWzBdK1wiZGlmZmVyZW5jZTpcIitkaWZmZXJlbmNlKTtcclxuICAgIC8vR2V0dGluZyBuZXBhbGkgbW9udGggdW50aWxsIHRoZSBkaWZmZXJlbmNlIHJlbWFpbnMgbGVzcyB0aGFuIDMxXHJcbiAgICB2YXIgaSA9IDA7XHJcbiAgICB3aGlsZSAoZGlmZmVyZW5jZSA+PSB0aGlzLm5lcGFsaU1vbnRoc1tpbmRleF1baV0pIHtcclxuICAgICAgZGlmZmVyZW5jZSA9IGRpZmZlcmVuY2UgLSB0aGlzLm5lcGFsaU1vbnRoc1tpbmRleF1baV07XHJcbiAgICAgIHRoaXMubmVwYWxpTW9udGgrKztcclxuICAgICAgaSsrO1xyXG4gICAgICAvL2NvbnNvbGUubG9nKFwibmVwYWxpTW9udGhzPVwiK3RoaXMubmVwYWxpTW9udGhzW2luZGV4XVtpXStcImRpZmZlcmVuY2U6XCIrZGlmZmVyZW5jZSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLm5lcGFsaU1vbnRoLS07XHJcbiAgICAvL2NvbnNvbGUubG9nKGRpZmZlcmVuY2UpO1xyXG5cclxuICAgIC8vUmVtYW5pbmcgZGF5cyBpcyB0aGUgZGF0ZTtcclxuICAgIHRoaXMubmVwYWxpRGF0ZSA9IHRoaXMubmVwYWxpRGF0ZSArIGRpZmZlcmVuY2U7XHJcbiAgICB0aGlzLmdldERheSgpO1xyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgIGRheTogdGhpcy5uZXBhbGlEYXRlLFxyXG4gICAgICBtb250aDogdGhpcy5uZXBhbGlNb250aCxcclxuICAgICAgeWVhcjogdGhpcy5uZXBhbGlZZWFyLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIC8vSVNPIGZvcm1hdCBFbmdsaXNoIHN0cmluZyBkYXRlIChZWVlZLU1NLUREKSB0byBOZXBhbGkgZGF0ZSBjb252ZXJzaW9uXHJcbiAgZW5nU3RyaW5nVG9OZXBEYXRlKGVuZ0RhdGU6IHN0cmluZykge1xyXG4gICAgY29uc3QgW3llYXIsIG1vbnRoLCBkYXldID0gZW5nRGF0ZS5zcGxpdCgnLScpLm1hcChOdW1iZXIpO1xyXG5cclxuICAgIGlmICghdGhpcy5pc0VuZ2xpc2hSYW5nZShkYXksIG1vbnRoLCB5ZWFyKSlcclxuICAgICAgY29uc29sZS5sb2coJ0ludmFsaWQgZGF0ZSBmb3JtYXQuJyk7XHJcblxyXG4gICAgdGhpcy5lbmdsaXNoWWVhciA9IHllYXI7XHJcbiAgICB0aGlzLmVuZ2xpc2hNb250aCA9IG1vbnRoO1xyXG4gICAgdGhpcy5lbmdsaXNoRGF0ZSA9IGRheTtcclxuXHJcbiAgICAvL1NldHRpbmcgbmVwYWxpIHJlZmVyZW5jZSB0byAyMDAwLzEvMSB3aXRoIGVuZ2xpc2ggZGF0ZSAxOTQzLzQvMTRcclxuICAgIHRoaXMubmVwYWxpWWVhciA9IDIwMDA7XHJcbiAgICB0aGlzLm5lcGFsaU1vbnRoID0gMTtcclxuICAgIHRoaXMubmVwYWxpRGF0ZSA9IDE7XHJcblxyXG4gICAgdmFyIGRpZmZlcmVuY2UgPSB0aGlzLmdldEVuZ2xpc2hEYXRlRGlmZmVyZW5jZSgxOTQzLCA0LCAxNCk7XHJcblxyXG4gICAgLy9HZXR0aW5nIG5lcGFsaSB5ZWFyIHVudGlsbCB0aGUgZGlmZmVyZW5jZSByZW1haW5zIGxlc3MgdGhhbiAzNjVcclxuICAgIHZhciBpbmRleCA9IDA7XHJcbiAgICB3aGlsZSAoZGlmZmVyZW5jZSA+PSB0aGlzLm5lcGFsaVllYXJEYXlzKGluZGV4KSkge1xyXG4gICAgICB0aGlzLm5lcGFsaVllYXIrKztcclxuICAgICAgZGlmZmVyZW5jZSA9IGRpZmZlcmVuY2UgLSB0aGlzLm5lcGFsaVllYXJEYXlzKGluZGV4KTtcclxuICAgICAgaW5kZXgrKztcclxuICAgICAgLy9jb25zb2xlLmxvZygnRGlmZmVyZW5jZTonK2RpZmZlcmVuY2UrICduZXBhbGlZZWFyRGF5czonK3RoaXMubmVwYWxpWWVhckRheXMoaW5kZXgpKTtcclxuICAgIH1cclxuXHJcbiAgICAvL2NvbnNvbGUubG9nKFwibmVwYWxpTW9udGhzPVwiK3RoaXMubmVwYWxpTW9udGhzW2luZGV4XVswXStcImRpZmZlcmVuY2U6XCIrZGlmZmVyZW5jZSk7XHJcbiAgICAvL0dldHRpbmcgbmVwYWxpIG1vbnRoIHVudGlsbCB0aGUgZGlmZmVyZW5jZSByZW1haW5zIGxlc3MgdGhhbiAzMVxyXG4gICAgdmFyIGkgPSAwO1xyXG4gICAgd2hpbGUgKGRpZmZlcmVuY2UgPj0gdGhpcy5uZXBhbGlNb250aHNbaW5kZXhdW2ldKSB7XHJcbiAgICAgIGRpZmZlcmVuY2UgPSBkaWZmZXJlbmNlIC0gdGhpcy5uZXBhbGlNb250aHNbaW5kZXhdW2ldO1xyXG4gICAgICB0aGlzLm5lcGFsaU1vbnRoKys7XHJcbiAgICAgIGkrKztcclxuICAgICAgLy9jb25zb2xlLmxvZyhcIm5lcGFsaU1vbnRocz1cIit0aGlzLm5lcGFsaU1vbnRoc1tpbmRleF1baV0rXCJkaWZmZXJlbmNlOlwiK2RpZmZlcmVuY2UpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5uZXBhbGlNb250aC0tO1xyXG4gICAgLy9jb25zb2xlLmxvZyhkaWZmZXJlbmNlKTtcclxuXHJcbiAgICAvL1JlbWFuaW5nIGRheXMgaXMgdGhlIGRhdGU7XHJcbiAgICB0aGlzLm5lcGFsaURhdGUgPSB0aGlzLm5lcGFsaURhdGUgKyBkaWZmZXJlbmNlO1xyXG4gICAgdGhpcy5nZXREYXkoKTtcclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBkYXk6IHRoaXMubmVwYWxpRGF0ZSxcclxuICAgICAgbW9udGg6IHRoaXMubmVwYWxpTW9udGgsXHJcbiAgICAgIHllYXI6IHRoaXMubmVwYWxpWWVhcixcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHRvRW5nbGlzaFN0cmluZyhmb3JtYXQ6IGFueSkge1xyXG4gICAgaWYgKHR5cGVvZiBmb3JtYXQgPT09ICd1bmRlZmluZWQnKSBmb3JtYXQgPSAnLSc7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICB0aGlzLmVuZ2xpc2hZZWFyICsgZm9ybWF0ICsgdGhpcy5lbmdsaXNoTW9udGggKyBmb3JtYXQgKyB0aGlzLmVuZ2xpc2hEYXRlXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRFbmdsaXNoRGF0ZURpZmZlcmVuY2UoeWVhcjogYW55LCBtb250aDogYW55LCBkYXRlOiBhbnkpIHtcclxuICAgIC8vR2V0dGluZyBkaWZmZXJlbmNlIGZyb20gdGhlIGN1cnJlbnQgZGF0ZSB3aXRoIHRoZSBkYXRlIHByb3ZpZGVkXHJcbiAgICB2YXIgZGlmZmVyZW5jZSA9XHJcbiAgICAgIHRoaXMuY291bnRUb3RhbEVuZ2xpc2hEYXlzKFxyXG4gICAgICAgIHRoaXMuZW5nbGlzaFllYXIsXHJcbiAgICAgICAgdGhpcy5lbmdsaXNoTW9udGgsXHJcbiAgICAgICAgdGhpcy5lbmdsaXNoRGF0ZVxyXG4gICAgICApIC0gdGhpcy5jb3VudFRvdGFsRW5nbGlzaERheXMoeWVhciwgbW9udGgsIGRhdGUpO1xyXG4gICAgcmV0dXJuIGRpZmZlcmVuY2UgPCAwID8gLWRpZmZlcmVuY2UgOiBkaWZmZXJlbmNlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjb3VudFRvdGFsRW5nbGlzaERheXMoeWVhcjogYW55LCBtb250aDogYW55LCBkYXRlOiBhbnkpIHtcclxuICAgIHZhciB0b3RhbERheXMgPSB5ZWFyICogMzY1ICsgZGF0ZTtcclxuXHJcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IG1vbnRoIC0gMTsgaSsrKVxyXG4gICAgICB0b3RhbERheXMgPSB0b3RhbERheXMgKyB0aGlzLmVuZ2xpc2hNb250aHNbaV07XHJcblxyXG4gICAgdG90YWxEYXlzID0gdG90YWxEYXlzICsgdGhpcy5jb3VudGxlYXAoeWVhciwgbW9udGgpO1xyXG4gICAgcmV0dXJuIHRvdGFsRGF5cztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY291bnRsZWFwKHllYXI6IGFueSwgbW9udGg6IGFueSkge1xyXG4gICAgaWYgKG1vbnRoIDw9IDIpIHllYXItLTtcclxuXHJcbiAgICByZXR1cm4gKFxyXG4gICAgICBNYXRoLmZsb29yKHllYXIgLyA0KSAtIE1hdGguZmxvb3IoeWVhciAvIDEwMCkgKyBNYXRoLmZsb29yKHllYXIgLyA0MDApXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc0VuZ2xpc2hSYW5nZShkYXRlOiBhbnksIG1vbnRoOiBhbnksIHllYXI6IGFueSkge1xyXG4gICAgaWYgKHllYXIgPCAxOTQ0IHx8IHllYXIgPiAyMDQyKSByZXR1cm4gZmFsc2U7XHJcbiAgICBpZiAobW9udGggPCAxIHx8IG1vbnRoID4gMTIpIHJldHVybiBmYWxzZTtcclxuICAgIGlmIChkYXRlIDwgMSB8fCBkYXRlID4gMzEpIHJldHVybiBmYWxzZTtcclxuXHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNMZWFwWWVhcih5ZWFyOiBhbnkpIHtcclxuICAgIGlmICh5ZWFyICUgNCA9PT0gMCkge1xyXG4gICAgICByZXR1cm4geWVhciAlIDEwMCA9PT0gMCA/IHllYXIgJSA0MDAgPT09IDAgOiB0cnVlO1xyXG4gICAgfSBlbHNlIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIC8vTmVwYWxpIHRvIEVuZ2xpc2ggY29udmVyc2lvblxyXG4gIG5lcFRvRW5nRGF0ZShkYXRlOiBhbnksIG1vbnRoOiBhbnksIHllYXI6IGFueSkge1xyXG4gICAgaWYgKCF0aGlzLmlzTmVwYWxpUmFuZ2UoZGF0ZSwgbW9udGgsIHllYXIpKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdJbnZhbGlkIERhdGUgRm9ybWF0Jyk7XHJcbiAgICAgIC8vIHRocm93IG5ldyBFeGNlcHRpb24oXCJJbnZhbGlkIGRhdGUgZm9ybWF0LlwiKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMubmVwYWxpWWVhciA9IHllYXI7XHJcbiAgICB0aGlzLm5lcGFsaU1vbnRoID0gbW9udGggKyAxO1xyXG4gICAgdGhpcy5uZXBhbGlEYXRlID0gZGF0ZTtcclxuXHJcbiAgICAvL1NldHRpbmcgZW5nbGlzaCByZWZlcmVuY2UgdG8gMTk0NC8xLzEgd2l0aCBuZXBhbGkgZGF0ZSAyMDAwLzkvMTdcclxuICAgIHRoaXMuZW5nbGlzaFllYXIgPSAxOTQ0O1xyXG4gICAgdGhpcy5lbmdsaXNoTW9udGggPSAxO1xyXG4gICAgdGhpcy5lbmdsaXNoRGF0ZSA9IDE7XHJcblxyXG4gICAgdmFyIGRpZmZlcmVuY2UgPSB0aGlzLmdldE5lcGFsaURhdGVEaWZmZXJlbmNlKDIwMDAsIDksIDE3KTtcclxuXHJcbiAgICAvL0dldHRpbmcgZW5nbGlzaCB5ZWFyIHVudGlsbCB0aGUgZGlmZmVyZW5jZSByZW1haW5zIGxlc3MgdGhhbiAzNjVcclxuICAgIHdoaWxlIChkaWZmZXJlbmNlID49ICh0aGlzLmlzTGVhcFllYXIodGhpcy5lbmdsaXNoWWVhcikgPyAzNjYgOiAzNjUpKSB7XHJcbiAgICAgIGRpZmZlcmVuY2UgPSBkaWZmZXJlbmNlIC0gKHRoaXMuaXNMZWFwWWVhcih0aGlzLmVuZ2xpc2hZZWFyKSA/IDM2NiA6IDM2NSk7XHJcbiAgICAgIHRoaXMuZW5nbGlzaFllYXIrKztcclxuICAgIH1cclxuXHJcbiAgICAvL0dldHRpbmcgZW5nbGlzaCBtb250aCB1bnRpbGwgdGhlIGRpZmZlcmVuY2UgcmVtYWlucyBsZXNzIHRoYW4gMzFcclxuICAgIHZhciBtb250aERheXMgPSB0aGlzLmlzTGVhcFllYXIodGhpcy5lbmdsaXNoWWVhcilcclxuICAgICAgPyB0aGlzLmVuZ2xpc2hMZWFwTW9udGhzXHJcbiAgICAgIDogdGhpcy5lbmdsaXNoTW9udGhzO1xyXG4gICAgdmFyIGkgPSAwO1xyXG4gICAgd2hpbGUgKGRpZmZlcmVuY2UgPj0gbW9udGhEYXlzW2ldKSB7XHJcbiAgICAgIHRoaXMuZW5nbGlzaE1vbnRoKys7XHJcbiAgICAgIGRpZmZlcmVuY2UgPSBkaWZmZXJlbmNlIC0gbW9udGhEYXlzW2ldO1xyXG4gICAgICBpKys7XHJcbiAgICB9XHJcblxyXG4gICAgLy9SZW1hbmluZyBkYXlzIGlzIHRoZSBkYXRlO1xyXG4gICAgdGhpcy5lbmdsaXNoRGF0ZSA9IHRoaXMuZW5nbGlzaERhdGUgKyBkaWZmZXJlbmNlO1xyXG4gICAgdGhpcy5nZXREYXkoKTtcclxuXHJcbiAgICByZXR1cm4gbmV3IERhdGUoXHJcbiAgICAgIHRoaXMuZW5nbGlzaFllYXIgKyAnLScgKyB0aGlzLmVuZ2xpc2hNb250aCArICctJyArIHRoaXMuZW5nbGlzaERhdGVcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHRvTmVwYWxpU3RyaW5nKGZvcm1hdDogYW55KSB7XHJcbiAgICBpZiAodHlwZW9mIGZvcm1hdCA9PT0gJ3VuZGVmaW5lZCcpIGZvcm1hdCA9ICctJztcclxuICAgIHJldHVybiAoXHJcbiAgICAgIHRoaXMubmVwYWxpWWVhciArIGZvcm1hdCArIHRoaXMubmVwYWxpTW9udGggKyBmb3JtYXQgKyB0aGlzLm5lcGFsaURhdGVcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldE5lcGFsaURhdGVEaWZmZXJlbmNlKHllYXI6IGFueSwgbW9udGg6IGFueSwgZGF0ZTogYW55KSB7XHJcbiAgICAvL0dldHRpbmcgZGlmZmVyZW5jZSBmcm9tIHRoZSBjdXJyZW50IGRhdGUgd2l0aCB0aGUgZGF0ZSBwcm92aWRlZFxyXG4gICAgdmFyIGRpZmZlcmVuY2UgPVxyXG4gICAgICB0aGlzLmNvdW50VG90YWxOZXBhbGlEYXlzKFxyXG4gICAgICAgIHRoaXMubmVwYWxpWWVhcixcclxuICAgICAgICB0aGlzLm5lcGFsaU1vbnRoLFxyXG4gICAgICAgIHRoaXMubmVwYWxpRGF0ZVxyXG4gICAgICApIC0gdGhpcy5jb3VudFRvdGFsTmVwYWxpRGF5cyh5ZWFyLCBtb250aCwgZGF0ZSk7XHJcbiAgICByZXR1cm4gZGlmZmVyZW5jZSA8IDAgPyAtZGlmZmVyZW5jZSA6IGRpZmZlcmVuY2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNvdW50VG90YWxOZXBhbGlEYXlzKHllYXI6IGFueSwgbW9udGg6IGFueSwgZGF0ZTogYW55KSB7XHJcbiAgICB2YXIgdG90YWwgPSAwO1xyXG4gICAgaWYgKHllYXIgPCAyMDAwKSByZXR1cm4gMDtcclxuXHJcbiAgICB0b3RhbCA9IHRvdGFsICsgKGRhdGUgLSAxKTtcclxuXHJcbiAgICB2YXIgeWVhckluZGV4ID0geWVhciAtIDIwMDA7XHJcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IG1vbnRoIC0gMTsgaSsrKVxyXG4gICAgICB0b3RhbCA9IHRvdGFsICsgdGhpcy5uZXBhbGlNb250aHNbeWVhckluZGV4XVtpXTtcclxuXHJcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHllYXJJbmRleDsgaSsrKSB0b3RhbCA9IHRvdGFsICsgdGhpcy5uZXBhbGlZZWFyRGF5cyhpKTtcclxuXHJcbiAgICByZXR1cm4gdG90YWw7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG5lcGFsaVllYXJEYXlzKGluZGV4OiBhbnkpIHtcclxuICAgIHZhciB0b3RhbCA9IDA7XHJcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEyOyBpKyspIHRvdGFsICs9IHRoaXMubmVwYWxpTW9udGhzW2luZGV4XVtpXTtcclxuICAgIHJldHVybiB0b3RhbDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNOZXBhbGlSYW5nZShkYXRlOiBhbnksIG1vbnRoOiBhbnksIHllYXI6IGFueSkge1xyXG4gICAgaWYgKHllYXIgPCAyMDAwIHx8IHllYXIgPiAyMDk5KSByZXR1cm4gZmFsc2U7XHJcblxyXG4gICAgaWYgKG1vbnRoIDwgMCB8fCBtb250aCA+IDExKSByZXR1cm4gZmFsc2U7XHJcblxyXG4gICAgaWYgKGRhdGUgPCAxIHx8IGRhdGUgPiB0aGlzLm5lcGFsaU1vbnRoc1t5ZWFyIC0gMjAwMF1bbW9udGggLSAxXSlcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG5cclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLy9DbGFzcyBSZWd1bGFyIG1ldGhvZHNcclxuXHJcbiAgcHJpdmF0ZSBnZXREYXkoKSB7XHJcbiAgICAvL1JlZmVyZW5jZSBkYXRlIDE5NDMvNC8xNCBXZWRuZXNkYXlcclxuICAgIHZhciBkaWZmZXJlbmNlID0gdGhpcy5nZXRFbmdsaXNoRGF0ZURpZmZlcmVuY2UoMTk0MywgNCwgMTQpO1xyXG4gICAgdGhpcy53ZWVrRGF5ID0gKCgzICsgKGRpZmZlcmVuY2UgJSA3KSkgJSA3KSArIDE7XHJcbiAgICByZXR1cm4gdGhpcy53ZWVrRGF5O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRFbmdsaXNoWWVhcigpIHtcclxuICAgIHJldHVybiB0aGlzLmVuZ2xpc2hZZWFyO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRFbmdsaXNoTW9udGgoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5lbmdsaXNoTW9udGg7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEVuZ2xpc2hEYXRlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZW5nbGlzaERhdGU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldE5lcGFsaVllYXIoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5uZXBhbGlZZWFyO1xyXG4gIH1cclxuICBwcml2YXRlIGdldE5lcGFsaU1vbnRoKCkge1xyXG4gICAgcmV0dXJuIHRoaXMubmVwYWxpTW9udGg7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldE5lcGFsaURhdGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5uZXBhbGlEYXRlO1xyXG4gIH1cclxufVxyXG4iXX0=
|