ngx-np-datepicker 1.0.0
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 +24 -0
- package/esm2020/lib/mapping.mjs +40 -0
- package/esm2020/lib/np-datepicker.component.mjs +211 -0
- package/esm2020/lib/np-datepicker.module.mjs +33 -0
- package/esm2020/lib/np-datepicker.service.mjs +295 -0
- package/esm2020/lib/to-np.pipe.mjs +50 -0
- package/esm2020/lib/types.mjs +2 -0
- package/esm2020/ngx-np-datepicker.mjs +5 -0
- package/esm2020/public-api.mjs +7 -0
- package/fesm2015/ngx-np-datepicker.mjs +628 -0
- package/fesm2015/ngx-np-datepicker.mjs.map +1 -0
- package/fesm2020/ngx-np-datepicker.mjs +627 -0
- package/fesm2020/ngx-np-datepicker.mjs.map +1 -0
- package/lib/mapping.d.ts +5 -0
- package/lib/np-datepicker.component.d.ts +51 -0
- package/lib/np-datepicker.module.d.ts +10 -0
- package/lib/np-datepicker.service.d.ts +46 -0
- package/lib/to-np.pipe.d.ts +7 -0
- package/lib/types.d.ts +33 -0
- package/ngx-np-datepicker.d.ts +5 -0
- package/package.json +31 -0
- package/package.json.bak +31 -0
- package/public-api.d.ts +3 -0
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class NpDatePickerService {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.englishMonths = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
|
|
6
|
+
this.englishLeapMonths = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
|
|
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, 31, 32, 32, 31, 30, 30, 30, 29, 30, 30, 30],
|
|
90
|
+
[30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 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
|
+
];
|
|
109
|
+
this.format = '.';
|
|
110
|
+
var d = new Date();
|
|
111
|
+
}
|
|
112
|
+
setCurrentNepaliDate() {
|
|
113
|
+
var d = new Date();
|
|
114
|
+
return this.engToNepDate(d.getDate(), d.getMonth() + 1, d.getFullYear());
|
|
115
|
+
}
|
|
116
|
+
//English to Nepali date conversion
|
|
117
|
+
engToNepDate(date, month, year) {
|
|
118
|
+
if (!this.isEnglishRange(date, month, year))
|
|
119
|
+
console.log('Invalid date format.');
|
|
120
|
+
this.englishYear = year;
|
|
121
|
+
this.englishMonth = month;
|
|
122
|
+
this.englishDate = date;
|
|
123
|
+
//Setting nepali reference to 2000/1/1 with english date 1943/4/14
|
|
124
|
+
this.nepaliYear = 2000;
|
|
125
|
+
this.nepaliMonth = 1;
|
|
126
|
+
this.nepaliDate = 0;
|
|
127
|
+
var difference = this.getEnglishDateDifference(1943, 4, 14);
|
|
128
|
+
//Getting nepali year untill the difference remains less than 365
|
|
129
|
+
var index = 0;
|
|
130
|
+
while (difference >= this.nepaliYearDays(index)) {
|
|
131
|
+
this.nepaliYear++;
|
|
132
|
+
difference = difference - this.nepaliYearDays(index);
|
|
133
|
+
index++;
|
|
134
|
+
}
|
|
135
|
+
//Getting nepali month untill the difference remains less than 31
|
|
136
|
+
var i = 0;
|
|
137
|
+
while (difference >= this.nepaliMonths[index][i]) {
|
|
138
|
+
difference = difference - this.nepaliMonths[index][i];
|
|
139
|
+
this.nepaliMonth++;
|
|
140
|
+
i++;
|
|
141
|
+
}
|
|
142
|
+
//Remaning days is the date;
|
|
143
|
+
this.nepaliDate = this.nepaliDate + difference;
|
|
144
|
+
this.getDay();
|
|
145
|
+
return {
|
|
146
|
+
day: this.nepaliDate,
|
|
147
|
+
month: this.nepaliMonth,
|
|
148
|
+
year: this.nepaliYear
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
toEnglishString(format) {
|
|
152
|
+
if (typeof format === 'undefined')
|
|
153
|
+
format = '-';
|
|
154
|
+
return (this.englishYear + format + this.englishMonth + format + this.englishDate);
|
|
155
|
+
}
|
|
156
|
+
getEnglishDateDifference(year, month, date) {
|
|
157
|
+
//Getting difference from the current date with the date provided
|
|
158
|
+
var difference = this.countTotalEnglishDays(this.englishYear, this.englishMonth, this.englishDate) - this.countTotalEnglishDays(year, month, date);
|
|
159
|
+
return difference < 0 ? -difference : difference;
|
|
160
|
+
}
|
|
161
|
+
countTotalEnglishDays(year, month, date) {
|
|
162
|
+
var totalDays = year * 365 + date;
|
|
163
|
+
for (var i = 0; i < month - 1; i++)
|
|
164
|
+
totalDays = totalDays + this.englishMonths[i];
|
|
165
|
+
totalDays = totalDays + this.countleap(year, month);
|
|
166
|
+
return totalDays;
|
|
167
|
+
}
|
|
168
|
+
countleap(year, month) {
|
|
169
|
+
if (month <= 2)
|
|
170
|
+
year--;
|
|
171
|
+
return (Math.floor(year / 4) - Math.floor(year / 100) + Math.floor(year / 400));
|
|
172
|
+
}
|
|
173
|
+
isEnglishRange(date, month, year) {
|
|
174
|
+
if (year < 1944 || year > 2042)
|
|
175
|
+
return false;
|
|
176
|
+
if (month < 1 || month > 12)
|
|
177
|
+
return false;
|
|
178
|
+
if (date < 1 || date > 31)
|
|
179
|
+
return false;
|
|
180
|
+
return true;
|
|
181
|
+
}
|
|
182
|
+
isLeapYear(year) {
|
|
183
|
+
if (year % 4 === 0) {
|
|
184
|
+
return year % 100 === 0 ? year % 400 === 0 : true;
|
|
185
|
+
}
|
|
186
|
+
else
|
|
187
|
+
return false;
|
|
188
|
+
}
|
|
189
|
+
//Nepali to English conversion
|
|
190
|
+
nepToEngDate(date, month, year) {
|
|
191
|
+
if (!this.isNepaliRange(date, month, year)) {
|
|
192
|
+
console.log('Invalid Date Format');
|
|
193
|
+
// throw new Exception("Invalid date format.");
|
|
194
|
+
return;
|
|
195
|
+
}
|
|
196
|
+
this.nepaliYear = year;
|
|
197
|
+
this.nepaliMonth = month;
|
|
198
|
+
this.nepaliDate = date;
|
|
199
|
+
//Setting english reference to 1944/1/1 with nepali date 2000/9/17
|
|
200
|
+
this.englishYear = 1944;
|
|
201
|
+
this.englishMonth = 1;
|
|
202
|
+
this.englishDate = 1;
|
|
203
|
+
var difference = this.getNepaliDateDifference(2000, 9, 17);
|
|
204
|
+
//Getting english year untill the difference remains less than 365
|
|
205
|
+
while (difference >= (this.isLeapYear(this.englishYear) ? 366 : 365)) {
|
|
206
|
+
difference = difference - (this.isLeapYear(this.englishYear) ? 366 : 365);
|
|
207
|
+
this.englishYear++;
|
|
208
|
+
}
|
|
209
|
+
//Getting english month untill the difference remains less than 31
|
|
210
|
+
var monthDays = this.isLeapYear(this.englishYear)
|
|
211
|
+
? this.englishLeapMonths
|
|
212
|
+
: this.englishMonths;
|
|
213
|
+
var i = 0;
|
|
214
|
+
while (difference >= monthDays[i]) {
|
|
215
|
+
this.englishMonth++;
|
|
216
|
+
difference = difference - monthDays[i];
|
|
217
|
+
i++;
|
|
218
|
+
}
|
|
219
|
+
//Remaning days is the date;
|
|
220
|
+
this.englishDate = this.englishDate + difference;
|
|
221
|
+
this.getDay();
|
|
222
|
+
return new Date(this.englishYear + '-' + this.englishMonth + '-' + this.englishDate);
|
|
223
|
+
}
|
|
224
|
+
toNepaliString(format) {
|
|
225
|
+
if (typeof format === 'undefined')
|
|
226
|
+
format = '-';
|
|
227
|
+
return (this.nepaliYear + format + this.nepaliMonth + format + this.nepaliDate);
|
|
228
|
+
}
|
|
229
|
+
getNepaliDateDifference(year, month, date) {
|
|
230
|
+
//Getting difference from the current date with the date provided
|
|
231
|
+
var difference = this.countTotalNepaliDays(this.nepaliYear, this.nepaliMonth, this.nepaliDate) - this.countTotalNepaliDays(year, month, date);
|
|
232
|
+
return difference < 0 ? -difference : difference;
|
|
233
|
+
}
|
|
234
|
+
countTotalNepaliDays(year, month, date) {
|
|
235
|
+
var total = 0;
|
|
236
|
+
if (year < 2000)
|
|
237
|
+
return 0;
|
|
238
|
+
total = total + (date - 1);
|
|
239
|
+
var yearIndex = year - 2000;
|
|
240
|
+
for (var i = 0; i < month - 1; i++)
|
|
241
|
+
total = total + this.nepaliMonths[yearIndex][i];
|
|
242
|
+
for (var i = 0; i < yearIndex; i++)
|
|
243
|
+
total = total + this.nepaliYearDays(i);
|
|
244
|
+
return total;
|
|
245
|
+
}
|
|
246
|
+
nepaliYearDays(index) {
|
|
247
|
+
var total = 0;
|
|
248
|
+
for (var i = 0; i < 12; i++)
|
|
249
|
+
total += this.nepaliMonths[index][i];
|
|
250
|
+
return total;
|
|
251
|
+
}
|
|
252
|
+
isNepaliRange(date, month, year) {
|
|
253
|
+
if (year < 2000 || year > 2099)
|
|
254
|
+
return false;
|
|
255
|
+
if (month < 1 || month > 12)
|
|
256
|
+
return false;
|
|
257
|
+
if (date < 1 || date > this.nepaliMonths[year - 2000][month - 1])
|
|
258
|
+
return false;
|
|
259
|
+
return true;
|
|
260
|
+
}
|
|
261
|
+
//Class Regular methods
|
|
262
|
+
getDay() {
|
|
263
|
+
//Reference date 1943/4/14 Wednesday
|
|
264
|
+
var difference = this.getEnglishDateDifference(1943, 4, 14);
|
|
265
|
+
this.weekDay = ((3 + (difference % 7)) % 7) + 1;
|
|
266
|
+
return this.weekDay;
|
|
267
|
+
}
|
|
268
|
+
getEnglishYear() {
|
|
269
|
+
return this.englishYear;
|
|
270
|
+
}
|
|
271
|
+
getEnglishMonth() {
|
|
272
|
+
return this.englishMonth;
|
|
273
|
+
}
|
|
274
|
+
getEnglishDate() {
|
|
275
|
+
return this.englishDate;
|
|
276
|
+
}
|
|
277
|
+
getNepaliYear() {
|
|
278
|
+
return this.nepaliYear;
|
|
279
|
+
}
|
|
280
|
+
getNepaliMonth() {
|
|
281
|
+
return this.nepaliMonth;
|
|
282
|
+
}
|
|
283
|
+
getNepaliDate() {
|
|
284
|
+
return this.nepaliDate;
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
NpDatePickerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: NpDatePickerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
288
|
+
NpDatePickerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: NpDatePickerService, providedIn: 'root' });
|
|
289
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: NpDatePickerService, decorators: [{
|
|
290
|
+
type: Injectable,
|
|
291
|
+
args: [{
|
|
292
|
+
providedIn: 'root',
|
|
293
|
+
}]
|
|
294
|
+
}], ctorParameters: function () { return []; } });
|
|
295
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnAtZGF0ZXBpY2tlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbnB4LW5wLWRhdGVwaWNrZXIvc3JjL2xpYi9ucC1kYXRlcGlja2VyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLM0MsTUFBTSxPQUFPLG1CQUFtQjtJQXFIOUI7UUFwSEEsa0JBQWEsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDakUsc0JBQWlCLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3JFLGlCQUFZLEdBQUc7WUFDYixDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2hELENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDaEQsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNoRCxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2hELENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDaEQsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNoRCxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2hELENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDaEQsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNoRCxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2hELENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDaEQsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNoRCxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2hELENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDaEQsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNoRCxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2hELENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDaEQsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNoRCxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2hELENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDaEQsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNoRCxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2hELENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDaEQsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNoRCxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2hELENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDaEQsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNoRCxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2hELENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDaEQsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNoRCxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2hELENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDaEQsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNoRCxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2hELENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDaEQsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNoRCxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2hELENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDaEQsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNoRCxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2hELENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDaEQsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNoRCxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2hELENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDaEQsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNoRCxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2hELENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDaEQsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNoRCxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2hELENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDaEQsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNoRCxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2hELENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDaEQsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNoRCxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2hELENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDaEQsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNoRCxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2hELENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDaEQsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNoRCxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2hELENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDaEQsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNoRCxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2hELENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDaEQsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNoRCxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2hELENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDaEQsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNoRCxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2hELENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDaEQsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNoRCxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2hELENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDaEQsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNoRCxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2hELENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDaEQsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNoRCxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2hELENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDaEQsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNoRCxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2hELENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDaEQsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNoRCxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2hELENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDaEQsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNoRCxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2hELENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDaEQsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNoRCxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2hELENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDaEQsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNoRCxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2hELENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDaEQsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNoRCxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2hELENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDaEQsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVB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QWM7UUFDWixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUVELGVBQWU7UUFDYixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQUVELGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUVELGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQUNELGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUVELGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQzs7Z0hBeFZVLG1CQUFtQjtvSEFBbkIsbUJBQW1CLGNBRmxCLE1BQU07MkZBRVAsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOcERhdGVQaWNrZXJTZXJ2aWNlIHtcclxuICBlbmdsaXNoTW9udGhzID0gWzMxLCAyOCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMSwgMzAsIDMxLCAzMCwgMzFdO1xyXG4gIGVuZ2xpc2hMZWFwTW9udGhzID0gWzMxLCAyOSwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMSwgMzAsIDMxLCAzMCwgMzFdO1xyXG4gIG5lcGFsaU1vbnRocyA9IFtcclxuICAgIFszMCwgMzIsIDMxLCAzMiwgMzEsIDMwLCAzMCwgMzAsIDI5LCAzMCwgMjksIDMxXSwgLy8yMDAwXHJcbiAgICBbMzEsIDMxLCAzMiwgMzEsIDMxLCAzMSwgMzAsIDI5LCAzMCwgMjksIDMwLCAzMF0sIC8vMjAwMVxyXG4gICAgWzMxLCAzMSwgMzIsIDMyLCAzMSwgMzAsIDMwLCAyOSwgMzAsIDI5LCAzMCwgMzBdLCAvLyAyMDAyXHJcbiAgICBbMzEsIDMyLCAzMSwgMzIsIDMxLCAzMCwgMzAsIDMwLCAyOSwgMjksIDMwLCAzMV0sIC8vIDIwMDNcclxuICAgIFszMCwgMzIsIDMxLCAzMiwgMzEsIDMwLCAzMCwgMzAsIDI5LCAzMCwgMjksIDMxXSwgLy8gMjAwNFxyXG4gICAgWzMxLCAzMSwgMzIsIDMxLCAzMSwgMzEsIDMwLCAyOSwgMzAsIDI5LCAzMCwgMzBdLCAvLyAyMDA1XHJcbiAgICBbMzEsIDMxLCAzMiwgMzIsIDMxLCAzMCwgMzAsIDI5LCAzMCwgMjksIDMwLCAzMF0sIC8vIDIwMDZcclxuICAgIFszMSwgMzIsIDMxLCAzMiwgMzEsIDMwLCAzMCwgMzAsIDI5LCAyOSwgMzAsIDMxXSwgLy8gMjAwNlxyXG4gICAgWzMxLCAzMSwgMzEsIDMyLCAzMSwgMzEsIDI5LCAzMCwgMzAsIDI5LCAyOSwgMzFdLCAvLyAyMDA3XHJcbiAgICBbMzEsIDMxLCAzMiwgMzEsIDMxLCAzMSwgMzAsIDI5LCAzMCwgMjksIDMwLCAzMF0sIC8vIDIwMDhcclxuICAgIFszMSwgMzEsIDMyLCAzMiwgMzEsIDMwLCAzMCwgMjksIDMwLCAyOSwgMzAsIDMwXSwgLy8gMjAwOVxyXG4gICAgWzMxLCAzMiwgMzEsIDMyLCAzMSwgMzAsIDMwLCAzMCwgMjksIDI5LCAzMCwgMzFdLCAvLyAyMDEwXHJcbiAgICBbMzEsIDMxLCAzMSwgMzIsIDMxLCAzMSwgMjksIDMwLCAzMCwgMjksIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMxLCAzMiwgMzEsIDMxLCAzMSwgMzAsIDI5LCAzMCwgMjksIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMxLCAzMiwgMzIsIDMxLCAzMCwgMzAsIDI5LCAzMCwgMjksIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMyLCAzMSwgMzIsIDMxLCAzMCwgMzAsIDMwLCAyOSwgMjksIDMwLCAzMV0sXHJcbiAgICBbMzEsIDMxLCAzMSwgMzIsIDMxLCAzMSwgMjksIDMwLCAzMCwgMjksIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMxLCAzMiwgMzEsIDMxLCAzMSwgMzAsIDI5LCAzMCwgMjksIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMyLCAzMSwgMzIsIDMxLCAzMCwgMzAsIDI5LCAzMCwgMjksIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMyLCAzMSwgMzIsIDMxLCAzMCwgMzAsIDMwLCAyOSwgMzAsIDI5LCAzMV0sXHJcbiAgICBbMzEsIDMxLCAzMSwgMzIsIDMxLCAzMSwgMzAsIDI5LCAzMCwgMjksIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMxLCAzMiwgMzEsIDMxLCAzMSwgMzAsIDI5LCAzMCwgMjksIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMyLCAzMSwgMzIsIDMxLCAzMCwgMzAsIDMwLCAyOSwgMjksIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMyLCAzMSwgMzIsIDMxLCAzMCwgMzAsIDMwLCAyOSwgMzAsIDI5LCAzMV0sXHJcbiAgICBbMzEsIDMxLCAzMSwgMzIsIDMxLCAzMSwgMzAsIDI5LCAzMCwgMjksIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMxLCAzMiwgMzEsIDMxLCAzMSwgMzAsIDI5LCAzMCwgMjksIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMyLCAzMSwgMzIsIDMxLCAzMCwgMzAsIDMwLCAyOSwgMjksIDMwLCAzMV0sXHJcbiAgICBbMzAsIDMyLCAzMSwgMzIsIDMxLCAzMCwgMzAsIDMwLCAyOSwgMzAsIDI5LCAzMV0sXHJcbiAgICBbMzEsIDMxLCAzMiwgMzEsIDMxLCAzMSwgMzAsIDI5LCAzMCwgMjksIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMxLCAzMiwgMzEsIDMyLCAzMCwgMzAsIDI5LCAzMCwgMjksIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMyLCAzMSwgMzIsIDMxLCAzMCwgMzAsIDMwLCAyOSwgMjksIDMwLCAzMV0sXHJcbiAgICBbMzAsIDMyLCAzMSwgMzIsIDMxLCAzMCwgMzAsIDMwLCAyOSwgMzAsIDI5LCAzMV0sXHJcbiAgICBbMzEsIDMxLCAzMiwgMzEsIDMxLCAzMSwgMzAsIDI5LCAzMCwgMjksIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMxLCAzMiwgMzIsIDMxLCAzMCwgMzAsIDI5LCAzMCwgMjksIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMyLCAzMSwgMzIsIDMxLCAzMCwgMzAsIDMwLCAyOSwgMjksIDMwLCAzMV0sXHJcbiAgICBbMzAsIDMyLCAzMSwgMzIsIDMxLCAzMSwgMjksIDMwLCAzMCwgMjksIDI5LCAzMV0sXHJcbiAgICBbMzEsIDMxLCAzMiwgMzEsIDMxLCAzMSwgMzAsIDI5LCAzMCwgMjksIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMxLCAzMiwgMzIsIDMxLCAzMCwgMzAsIDI5LCAzMCwgMjksIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMyLCAzMSwgMzIsIDMxLCAzMCwgMzAsIDMwLCAyOSwgMjksIDMwLCAzMV0sXHJcbiAgICBbMzEsIDMxLCAzMSwgMzIsIDMxLCAzMSwgMjksIDMwLCAzMCwgMjksIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMxLCAzMiwgMzEsIDMxLCAzMSwgMzAsIDI5LCAzMCwgMjksIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMxLCAzMiwgMzIsIDMxLCAzMCwgMzAsIDI5LCAzMCwgMjksIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMyLCAzMSwgMzIsIDMxLCAzMCwgMzAsIDMwLCAyOSwgMjksIDMwLCAzMV0sXHJcbiAgICBbMzEsIDMxLCAzMSwgMzIsIDMxLCAzMSwgMjksIDMwLCAzMCwgMjksIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMxLCAzMiwgMzEsIDMxLCAzMSwgMzAsIDI5LCAzMCwgMjksIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMyLCAzMSwgMzIsIDMxLCAzMCwgMzAsIDI5LCAzMCwgMjksIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMyLCAzMSwgMzIsIDMxLCAzMCwgMzAsIDMwLCAyOSwgMjksIDMwLCAzMV0sXHJcbiAgICBbMzEsIDMxLCAzMSwgMzIsIDMxLCAzMSwgMzAsIDI5LCAzMCwgMjksIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMxLCAzMiwgMzEsIDMxLCAzMSwgMzAsIDI5LCAzMCwgMjksIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMyLCAzMSwgMzIsIDMxLCAzMCwgMzAsIDMwLCAyOSwgMjksIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMyLCAzMSwgMzIsIDMxLCAzMCwgMzAsIDMwLCAyOSwgMzAsIDI5LCAzMV0sXHJcbiAgICBbMzEsIDMxLCAzMSwgMzIsIDMxLCAzMSwgMzAsIDI5LCAzMCwgMjksIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMxLCAzMiwgMzEsIDMxLCAzMSwgMzAsIDI5LCAzMCwgMjksIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMyLCAzMSwgMzIsIDMxLCAzMCwgMzAsIDMwLCAyOSwgMjksIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMyLCAzMSwgMzIsIDMxLCAzMCwgMzAsIDMwLCAyOSwgMzAsIDI5LCAzMV0sXHJcbiAgICBbMzEsIDMxLCAzMiwgMzEsIDMxLCAzMSwgMzAsIDI5LCAzMCwgMjksIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMxLCAzMiwgMzEsIDMyLCAzMCwgMzAsIDI5LCAzMCwgMjksIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMyLCAzMSwgMzIsIDMxLCAzMCwgMzAsIDMwLCAyOSwgMjksIDMwLCAzMV0sXHJcbiAgICBbMzAsIDMyLCAzMSwgMzIsIDMxLCAzMCwgMzAsIDMwLCAyOSwgMzAsIDI5LCAzMV0sXHJcbiAgICBbMzEsIDMxLCAzMiwgMzEsIDMxLCAzMSwgMzAsIDI5LCAzMCwgMjksIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMxLCAzMiwgMzIsIDMxLCAzMCwgMzAsIDI5LCAzMCwgMjksIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMyLCAzMSwgMzIsIDMxLCAzMCwgMzAsIDMwLCAyOSwgMjksIDMwLCAzMV0sXHJcbiAgICBbMzAsIDMyLCAzMSwgMzIsIDMxLCAzMSwgMjksIDMwLCAyOSwgMzAsIDI5LCAzMV0sXHJcbiAgICBbMzEsIDMxLCAzMiwgMzEsIDMxLCAzMSwgMzAsIDI5LCAzMCwgMjksIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMxLCAzMiwgMzIsIDMxLCAzMCwgMzAsIDI5LCAzMCwgMjksIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMyLCAzMSwgMzIsIDMxLCAzMCwgMzAsIDMwLCAyOSwgMjksIDMwLCAzMV0sXHJcbiAgICBbMzEsIDMxLCAzMSwgMzIsIDMxLCAzMSwgMjksIDMwLCAzMCwgMjksIDI5LCAzMV0sXHJcbiAgICBbMzEsIDMxLCAzMiwgMzEsIDMxLCAzMSwgMzAsIDI5LCAzMCwgMjksIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMxLCAzMiwgMzIsIDMxLCAzMCwgMzAsIDI5LCAzMCwgMjksIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMyLCAzMSwgMzIsIDMxLCAzMCwgMzAsIDMwLCAyOSwgMjksIDMwLCAzMV0sXHJcbiAgICBbMzEsIDMxLCAzMSwgMzIsIDMxLCAzMSwgMjksIDMwLCAzMCwgMjksIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMxLCAzMiwgMzEsIDMxLCAzMSwgMzAsIDI5LCAzMCwgMjksIDMwLCAzMF0sIC8vMjA3MVxyXG4gICAgWzMxLCAzMiwgMzEsIDMyLCAzMSwgMzAsIDMwLCAyOSwgMzAsIDI5LCAzMCwgMzBdLCAvLzIwNzJcclxuICAgIFszMSwgMzIsIDMxLCAzMiwgMzEsIDMwLCAzMCwgMzAsIDI5LCAyOSwgMzAsIDMxXSwgLy8yMDczXHJcbiAgICBbMzEsIDMxLCAzMSwgMzIsIDMxLCAzMSwgMzAsIDI5LCAzMCwgMjksIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMxLCAzMiwgMzEsIDMxLCAzMSwgMzAsIDI5LCAzMCwgMjksIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMyLCAzMSwgMzIsIDMxLCAzMCwgMzAsIDMwLCAyOSwgMjksIDMwLCAzMF0sIC8vIDIwNzZcclxuICAgIFszMSwgMzIsIDMxLCAzMiwgMzEsIDMwLCAzMCwgMzAsIDI5LCAzMCwgMjksIDMxXSxcclxuICAgIFszMSwgMzEsIDMxLCAzMiwgMzEsIDMxLCAzMCwgMjksIDMwLCAyOSwgMzAsIDMwXSxcclxuICAgIFszMSwgMzEsIDMyLCAzMSwgMzEsIDMxLCAzMCwgMjksIDMwLCAyOSwgMzAsIDMwXSxcclxuICAgIFszMSwgMzIsIDMxLCAzMiwgMzEsIDMwLCAzMCwgMzAsIDI5LCAyOSwgMzAsIDMwXSxcclxuICAgIFszMSwgMzEsIDMyLCAzMiwgMzEsIDMwLCAzMCwgMzAsIDI5LCAzMCwgMzAsIDMwXSxcclxuICAgIFszMCwgMzIsIDMxLCAzMiwgMzEsIDMwLCAzMCwgMzAsIDI5LCAzMCwgMzAsIDMwXSxcclxuICAgIFszMSwgMzEsIDMyLCAzMSwgMzEsIDMwLCAzMCwgMzAsIDI5LCAzMCwgMzAsIDMwXSxcclxuICAgIFszMSwgMzEsIDMyLCAzMSwgMzEsIDMwLCAzMCwgMzAsIDI5LCAzMCwgMzAsIDMwXSxcclxuICAgIFszMSwgMzIsIDMxLCAzMiwgMzAsIDMxLCAzMCwgMzAsIDI5LCAzMCwgMzAsIDMwXSxcclxuICAgIFszMCwgMzIsIDMxLCAzMiwgMzEsIDMwLCAzMCwgMzAsIDI5LCAzMCwgMzAsIDMwXSxcclxuICAgIFszMSwgMzEsIDMyLCAzMSwgMzEsIDMxLCAzMCwgMzAsIDI5LCAzMCwgMzAsIDMwXSxcclxuICAgIFszMCwgMzEsIDMyLCAzMiwgMzAsIDMxLCAzMCwgMzAsIDI5LCAzMCwgMzAsIDMwXSxcclxuICAgIFszMCwgMzIsIDMxLCAzMiwgMzEsIDMwLCAzMCwgMzAsIDI5LCAzMCwgMzAsIDMwXSxcclxuICAgIFszMCwgMzIsIDMxLCAzMiwgMzEsIDMwLCAzMCwgMzAsIDI5LCAzMCwgMzAsIDMwXSwgLy8yMDkwXHJcbiAgICBbMzEsIDMxLCAzMiwgMzEsIDMxLCAzMSwgMzAsIDMwLCAyOSwgMzAsIDMwLCAzMF0sXHJcbiAgICBbMzAsIDMxLCAzMiwgMzIsIDMxLCAzMCwgMzAsIDMwLCAyOSwgMzAsIDMwLCAzMF0sXHJcbiAgICBbMzAsIDMyLCAzMSwgMzIsIDMxLCAzMCwgMzAsIDMwLCAyOSwgMzAsIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMxLCAzMiwgMzEsIDMxLCAzMCwgMzAsIDMwLCAyOSwgMzAsIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMxLCAzMiwgMzEsIDMxLCAzMSwgMzAsIDI5LCAzMCwgMzAsIDMwLCAzMF0sXHJcbiAgICBbMzAsIDMxLCAzMiwgMzIsIDMxLCAzMCwgMzAsIDI5LCAzMCwgMjksIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMyLCAzMSwgMzIsIDMxLCAzMCwgMzAsIDMwLCAyOSwgMzAsIDMwLCAzMF0sXHJcbiAgICBbMzEsIDMxLCAzMiwgMzEsIDMxLCAzMSwgMjksIDMwLCAyOSwgMzAsIDI5LCAzMV0sXHJcbiAgICBbMzEsIDMxLCAzMiwgMzEsIDMxLCAzMSwgMzAsIDI5LCAyOSwgMzAsIDMwLCAzMF0sIC8vMjA5OVxyXG4gIF07XHJcblxyXG4gIGVuZ2xpc2hZZWFyOiBhbnk7XHJcbiAgZW5nbGlzaE1vbnRoOiBhbnk7XHJcbiAgZW5nbGlzaERhdGU6IGFueTtcclxuXHJcbiAgbmVwYWxpWWVhcjogYW55O1xyXG4gIG5lcGFsaU1vbnRoOiBhbnk7XHJcbiAgbmVwYWxpRGF0ZTogYW55O1xyXG5cclxuICB3ZWVrRGF5OiBhbnk7XHJcbiAgZm9ybWF0ID0gJy4nO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHZhciBkID0gbmV3IERhdGUoKTtcclxuICB9XHJcblxyXG4gIHNldEN1cnJlbnROZXBhbGlEYXRlKCkge1xyXG4gICAgdmFyIGQgPSBuZXcgRGF0ZSgpO1xyXG4gICAgcmV0dXJuIHRoaXMuZW5nVG9OZXBEYXRlKCBkLmdldERhdGUoKSwgZC5nZXRNb250aCgpICsgMSxkLmdldEZ1bGxZZWFyKCkgKTtcclxuICB9XHJcblxyXG4gIC8vRW5nbGlzaCB0byBOZXBhbGkgZGF0ZSBjb252ZXJzaW9uXHJcbiAgZW5nVG9OZXBEYXRlKGRhdGU6IGFueSwgbW9udGg6IGFueSwgeWVhcjogYW55KSB7XHJcbiAgICBpZiAoIXRoaXMuaXNFbmdsaXNoUmFuZ2UoZGF0ZSwgbW9udGgsIHllYXIpKVxyXG4gICAgICBjb25zb2xlLmxvZygnSW52YWxpZCBkYXRlIGZvcm1hdC4nKTtcclxuXHJcbiAgICB0aGlzLmVuZ2xpc2hZZWFyID0geWVhcjtcclxuICAgIHRoaXMuZW5nbGlzaE1vbnRoID0gbW9udGg7XHJcbiAgICB0aGlzLmVuZ2xpc2hEYXRlID0gZGF0ZTtcclxuXHJcbiAgICAvL1NldHRpbmcgbmVwYWxpIHJlZmVyZW5jZSB0byAyMDAwLzEvMSB3aXRoIGVuZ2xpc2ggZGF0ZSAxOTQzLzQvMTRcclxuICAgIHRoaXMubmVwYWxpWWVhciA9IDIwMDA7XHJcbiAgICB0aGlzLm5lcGFsaU1vbnRoID0gMTtcclxuICAgIHRoaXMubmVwYWxpRGF0ZSA9IDA7XHJcblxyXG4gICAgdmFyIGRpZmZlcmVuY2UgPSB0aGlzLmdldEVuZ2xpc2hEYXRlRGlmZmVyZW5jZSgxOTQzLCA0LCAxNCk7XHJcbiAgICAvL0dldHRpbmcgbmVwYWxpIHllYXIgdW50aWxsIHRoZSBkaWZmZXJlbmNlIHJlbWFpbnMgbGVzcyB0aGFuIDM2NVxyXG4gICAgdmFyIGluZGV4ID0gMDtcclxuICAgIHdoaWxlIChkaWZmZXJlbmNlID49IHRoaXMubmVwYWxpWWVhckRheXMoaW5kZXgpKSB7XHJcbiAgICAgIHRoaXMubmVwYWxpWWVhcisrO1xyXG4gICAgICBkaWZmZXJlbmNlID0gZGlmZmVyZW5jZSAtIHRoaXMubmVwYWxpWWVhckRheXMoaW5kZXgpO1xyXG4gICAgICBpbmRleCsrO1xyXG4gICAgfVxyXG5cclxuICAgIC8vR2V0dGluZyBuZXBhbGkgbW9udGggdW50aWxsIHRoZSBkaWZmZXJlbmNlIHJlbWFpbnMgbGVzcyB0aGFuIDMxXHJcbiAgICB2YXIgaSA9IDA7XHJcbiAgICB3aGlsZSAoZGlmZmVyZW5jZSA+PSB0aGlzLm5lcGFsaU1vbnRoc1tpbmRleF1baV0pIHtcclxuICAgICAgZGlmZmVyZW5jZSA9IGRpZmZlcmVuY2UgLSB0aGlzLm5lcGFsaU1vbnRoc1tpbmRleF1baV07XHJcbiAgICAgIHRoaXMubmVwYWxpTW9udGgrKztcclxuICAgICAgaSsrO1xyXG4gICAgfVxyXG4gIFxyXG4gICAgXHJcbiAgICAvL1JlbWFuaW5nIGRheXMgaXMgdGhlIGRhdGU7XHJcbiAgICB0aGlzLm5lcGFsaURhdGUgPSB0aGlzLm5lcGFsaURhdGUgKyBkaWZmZXJlbmNlO1xyXG4gICAgdGhpcy5nZXREYXkoKTtcclxuICAgIFxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgZGF5OiB0aGlzLm5lcGFsaURhdGUsXHJcbiAgICAgIG1vbnRoOiB0aGlzLm5lcGFsaU1vbnRoLFxyXG4gICAgICB5ZWFyOiB0aGlzLm5lcGFsaVllYXJcclxuICAgIH07XHJcbn1cclxuXHJcbiAgdG9FbmdsaXNoU3RyaW5nKGZvcm1hdDogYW55KSB7XHJcbiAgICBpZiAodHlwZW9mIGZvcm1hdCA9PT0gJ3VuZGVmaW5lZCcpIGZvcm1hdCA9ICctJztcclxuICAgIHJldHVybiAoXHJcbiAgICAgIHRoaXMuZW5nbGlzaFllYXIgKyBmb3JtYXQgKyB0aGlzLmVuZ2xpc2hNb250aCArIGZvcm1hdCArIHRoaXMuZW5nbGlzaERhdGVcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRFbmdsaXNoRGF0ZURpZmZlcmVuY2UoeWVhcjogYW55LCBtb250aDogYW55LCBkYXRlOiBhbnkpIHtcclxuICAgIC8vR2V0dGluZyBkaWZmZXJlbmNlIGZyb20gdGhlIGN1cnJlbnQgZGF0ZSB3aXRoIHRoZSBkYXRlIHByb3ZpZGVkXHJcbiAgICB2YXIgZGlmZmVyZW5jZSA9XHJcbiAgICAgIHRoaXMuY291bnRUb3RhbEVuZ2xpc2hEYXlzKFxyXG4gICAgICAgIHRoaXMuZW5nbGlzaFllYXIsXHJcbiAgICAgICAgdGhpcy5lbmdsaXNoTW9udGgsXHJcbiAgICAgICAgdGhpcy5lbmdsaXNoRGF0ZVxyXG4gICAgICApIC0gdGhpcy5jb3VudFRvdGFsRW5nbGlzaERheXMoeWVhciwgbW9udGgsIGRhdGUpO1xyXG4gICAgcmV0dXJuIGRpZmZlcmVuY2UgPCAwID8gLWRpZmZlcmVuY2UgOiBkaWZmZXJlbmNlO1xyXG4gIH1cclxuXHJcbiAgY291bnRUb3RhbEVuZ2xpc2hEYXlzKHllYXI6IGFueSwgbW9udGg6IGFueSwgZGF0ZTogYW55KSB7XHJcbiAgICB2YXIgdG90YWxEYXlzID0geWVhciAqIDM2NSArIGRhdGU7XHJcblxyXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtb250aCAtIDE7IGkrKylcclxuICAgICAgdG90YWxEYXlzID0gdG90YWxEYXlzICsgdGhpcy5lbmdsaXNoTW9udGhzW2ldO1xyXG5cclxuICAgIHRvdGFsRGF5cyA9IHRvdGFsRGF5cyArIHRoaXMuY291bnRsZWFwKHllYXIsIG1vbnRoKTtcclxuICAgIHJldHVybiB0b3RhbERheXM7XHJcbiAgfVxyXG5cclxuICBjb3VudGxlYXAoeWVhcjogYW55LCBtb250aDogYW55KSB7XHJcbiAgICBpZiAobW9udGggPD0gMikgeWVhci0tO1xyXG5cclxuICAgIHJldHVybiAoXHJcbiAgICAgIE1hdGguZmxvb3IoeWVhciAvIDQpIC0gTWF0aC5mbG9vcih5ZWFyIC8gMTAwKSArIE1hdGguZmxvb3IoeWVhciAvIDQwMClcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBpc0VuZ2xpc2hSYW5nZShkYXRlOiBhbnksIG1vbnRoOiBhbnksIHllYXI6IGFueSkge1xyXG4gICAgaWYgKHllYXIgPCAxOTQ0IHx8IHllYXIgPiAyMDQyKSByZXR1cm4gZmFsc2U7XHJcbiAgICBpZiAobW9udGggPCAxIHx8IG1vbnRoID4gMTIpIHJldHVybiBmYWxzZTtcclxuICAgIGlmIChkYXRlIDwgMSB8fCBkYXRlID4gMzEpIHJldHVybiBmYWxzZTtcclxuXHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGlzTGVhcFllYXIoeWVhcjogYW55KSB7XHJcbiAgICBpZiAoeWVhciAlIDQgPT09IDApIHtcclxuICAgICAgcmV0dXJuIHllYXIgJSAxMDAgPT09IDAgPyB5ZWFyICUgNDAwID09PSAwIDogdHJ1ZTtcclxuICAgIH0gZWxzZSByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICAvL05lcGFsaSB0byBFbmdsaXNoIGNvbnZlcnNpb25cclxuICBuZXBUb0VuZ0RhdGUoZGF0ZTogYW55LCBtb250aDogYW55LCB5ZWFyOiBhbnkpIHtcclxuICAgIGlmICghdGhpcy5pc05lcGFsaVJhbmdlKGRhdGUsIG1vbnRoLCB5ZWFyKSkge1xyXG4gICAgICBjb25zb2xlLmxvZygnSW52YWxpZCBEYXRlIEZvcm1hdCcpO1xyXG4gICAgICAvLyB0aHJvdyBuZXcgRXhjZXB0aW9uKFwiSW52YWxpZCBkYXRlIGZvcm1hdC5cIik7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLm5lcGFsaVllYXIgPSB5ZWFyO1xyXG4gICAgdGhpcy5uZXBhbGlNb250aCA9IG1vbnRoO1xyXG4gICAgdGhpcy5uZXBhbGlEYXRlID0gZGF0ZTtcclxuXHJcbiAgICAvL1NldHRpbmcgZW5nbGlzaCByZWZlcmVuY2UgdG8gMTk0NC8xLzEgd2l0aCBuZXBhbGkgZGF0ZSAyMDAwLzkvMTdcclxuICAgIHRoaXMuZW5nbGlzaFllYXIgPSAxOTQ0O1xyXG4gICAgdGhpcy5lbmdsaXNoTW9udGggPSAxO1xyXG4gICAgdGhpcy5lbmdsaXNoRGF0ZSA9IDE7XHJcblxyXG4gICAgdmFyIGRpZmZlcmVuY2UgPSB0aGlzLmdldE5lcGFsaURhdGVEaWZmZXJlbmNlKDIwMDAsIDksIDE3KTtcclxuXHJcbiAgICAvL0dldHRpbmcgZW5nbGlzaCB5ZWFyIHVudGlsbCB0aGUgZGlmZmVyZW5jZSByZW1haW5zIGxlc3MgdGhhbiAzNjVcclxuICAgIHdoaWxlIChkaWZmZXJlbmNlID49ICh0aGlzLmlzTGVhcFllYXIodGhpcy5lbmdsaXNoWWVhcikgPyAzNjYgOiAzNjUpKSB7XHJcbiAgICAgIGRpZmZlcmVuY2UgPSBkaWZmZXJlbmNlIC0gKHRoaXMuaXNMZWFwWWVhcih0aGlzLmVuZ2xpc2hZZWFyKSA/IDM2NiA6IDM2NSk7XHJcbiAgICAgIHRoaXMuZW5nbGlzaFllYXIrKztcclxuICAgIH1cclxuXHJcbiAgICAvL0dldHRpbmcgZW5nbGlzaCBtb250aCB1bnRpbGwgdGhlIGRpZmZlcmVuY2UgcmVtYWlucyBsZXNzIHRoYW4gMzFcclxuICAgIHZhciBtb250aERheXMgPSB0aGlzLmlzTGVhcFllYXIodGhpcy5lbmdsaXNoWWVhcilcclxuICAgICAgPyB0aGlzLmVuZ2xpc2hMZWFwTW9udGhzXHJcbiAgICAgIDogdGhpcy5lbmdsaXNoTW9udGhzO1xyXG4gICAgdmFyIGkgPSAwO1xyXG4gICAgd2hpbGUgKGRpZmZlcmVuY2UgPj0gbW9udGhEYXlzW2ldKSB7XHJcbiAgICAgIHRoaXMuZW5nbGlzaE1vbnRoKys7XHJcbiAgICAgIGRpZmZlcmVuY2UgPSBkaWZmZXJlbmNlIC0gbW9udGhEYXlzW2ldO1xyXG4gICAgICBpKys7XHJcbiAgICB9XHJcblxyXG4gICAgLy9SZW1hbmluZyBkYXlzIGlzIHRoZSBkYXRlO1xyXG4gICAgdGhpcy5lbmdsaXNoRGF0ZSA9IHRoaXMuZW5nbGlzaERhdGUgKyBkaWZmZXJlbmNlO1xyXG4gICAgdGhpcy5nZXREYXkoKTtcclxuXHJcbiAgICByZXR1cm4gbmV3IERhdGUodGhpcy5lbmdsaXNoWWVhciArICctJyArIHRoaXMuZW5nbGlzaE1vbnRoICsgJy0nICsgdGhpcy5lbmdsaXNoRGF0ZSk7XHJcbiAgfVxyXG5cclxuICB0b05lcGFsaVN0cmluZyhmb3JtYXQ6IGFueSkge1xyXG4gICAgaWYgKHR5cGVvZiBmb3JtYXQgPT09ICd1bmRlZmluZWQnKSBmb3JtYXQgPSAnLSc7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICB0aGlzLm5lcGFsaVllYXIgKyBmb3JtYXQgKyB0aGlzLm5lcGFsaU1vbnRoICsgZm9ybWF0ICsgdGhpcy5uZXBhbGlEYXRlXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0TmVwYWxpRGF0ZURpZmZlcmVuY2UoeWVhcjogYW55LCBtb250aDogYW55LCBkYXRlOiBhbnkpIHtcclxuICAgIC8vR2V0dGluZyBkaWZmZXJlbmNlIGZyb20gdGhlIGN1cnJlbnQgZGF0ZSB3aXRoIHRoZSBkYXRlIHByb3ZpZGVkXHJcbiAgICB2YXIgZGlmZmVyZW5jZSA9XHJcbiAgICAgIHRoaXMuY291bnRUb3RhbE5lcGFsaURheXMoXHJcbiAgICAgICAgdGhpcy5uZXBhbGlZZWFyLFxyXG4gICAgICAgIHRoaXMubmVwYWxpTW9udGgsXHJcbiAgICAgICAgdGhpcy5uZXBhbGlEYXRlXHJcbiAgICAgICkgLSB0aGlzLmNvdW50VG90YWxOZXBhbGlEYXlzKHllYXIsIG1vbnRoLCBkYXRlKTtcclxuICAgIHJldHVybiBkaWZmZXJlbmNlIDwgMCA/IC1kaWZmZXJlbmNlIDogZGlmZmVyZW5jZTtcclxuICB9XHJcblxyXG4gIGNvdW50VG90YWxOZXBhbGlEYXlzKHllYXI6IGFueSwgbW9udGg6IGFueSwgZGF0ZTogYW55KSB7XHJcbiAgICB2YXIgdG90YWwgPSAwO1xyXG4gICAgaWYgKHllYXIgPCAyMDAwKSByZXR1cm4gMDtcclxuXHJcbiAgICB0b3RhbCA9IHRvdGFsICsgKGRhdGUgLSAxKTtcclxuXHJcbiAgICB2YXIgeWVhckluZGV4ID0geWVhciAtIDIwMDA7XHJcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IG1vbnRoIC0gMTsgaSsrKVxyXG4gICAgICB0b3RhbCA9IHRvdGFsICsgdGhpcy5uZXBhbGlNb250aHNbeWVhckluZGV4XVtpXTtcclxuXHJcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHllYXJJbmRleDsgaSsrKSB0b3RhbCA9IHRvdGFsICsgdGhpcy5uZXBhbGlZZWFyRGF5cyhpKTtcclxuXHJcbiAgICByZXR1cm4gdG90YWw7XHJcbiAgfVxyXG5cclxuICBuZXBhbGlZZWFyRGF5cyhpbmRleDogYW55KSB7XHJcbiAgICB2YXIgdG90YWwgPSAwO1xyXG5cclxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTI7IGkrKykgdG90YWwgKz0gdGhpcy5uZXBhbGlNb250aHNbaW5kZXhdW2ldO1xyXG5cclxuICAgIHJldHVybiB0b3RhbDtcclxuICB9XHJcblxyXG4gIGlzTmVwYWxpUmFuZ2UoZGF0ZTogYW55LCBtb250aDogYW55LCB5ZWFyOiBhbnkpIHtcclxuICAgIGlmICh5ZWFyIDwgMjAwMCB8fCB5ZWFyID4gMjA5OSkgcmV0dXJuIGZhbHNlO1xyXG5cclxuICAgIGlmIChtb250aCA8IDEgfHwgbW9udGggPiAxMikgcmV0dXJuIGZhbHNlO1xyXG5cclxuICAgIGlmIChkYXRlIDwgMSB8fCBkYXRlID4gdGhpcy5uZXBhbGlNb250aHNbeWVhciAtIDIwMDBdW21vbnRoIC0gMV0pXHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuXHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIC8vQ2xhc3MgUmVndWxhciBtZXRob2RzXHJcblxyXG4gIGdldERheSgpIHtcclxuICAgIC8vUmVmZXJlbmNlIGRhdGUgMTk0My80LzE0IFdlZG5lc2RheVxyXG4gICAgdmFyIGRpZmZlcmVuY2UgPSB0aGlzLmdldEVuZ2xpc2hEYXRlRGlmZmVyZW5jZSgxOTQzLCA0LCAxNCk7XHJcbiAgICB0aGlzLndlZWtEYXkgPSAoKDMgKyAoZGlmZmVyZW5jZSAlIDcpKSAlIDcpICsgMTtcclxuICAgIHJldHVybiB0aGlzLndlZWtEYXk7XHJcbiAgfVxyXG5cclxuICBnZXRFbmdsaXNoWWVhcigpIHtcclxuICAgIHJldHVybiB0aGlzLmVuZ2xpc2hZZWFyO1xyXG4gIH1cclxuXHJcbiAgZ2V0RW5nbGlzaE1vbnRoKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZW5nbGlzaE1vbnRoO1xyXG4gIH1cclxuXHJcbiAgZ2V0RW5nbGlzaERhdGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5lbmdsaXNoRGF0ZTtcclxuICB9XHJcblxyXG4gIGdldE5lcGFsaVllYXIoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5uZXBhbGlZZWFyO1xyXG4gIH1cclxuICBnZXROZXBhbGlNb250aCgpIHtcclxuICAgIHJldHVybiB0aGlzLm5lcGFsaU1vbnRoO1xyXG4gIH1cclxuXHJcbiAgZ2V0TmVwYWxpRGF0ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLm5lcGFsaURhdGU7XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import { numberMapping, wordsMapping } from './mapping';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class ToNpPipe {
|
|
5
|
+
transform(value, language = 'ne', type = 'number') {
|
|
6
|
+
if (value) {
|
|
7
|
+
if (language === 'ne') {
|
|
8
|
+
switch (type) {
|
|
9
|
+
case 'number':
|
|
10
|
+
const split = value.toString().split('');
|
|
11
|
+
return split
|
|
12
|
+
.map((n) => {
|
|
13
|
+
if (n === ' ') {
|
|
14
|
+
return ' ';
|
|
15
|
+
}
|
|
16
|
+
return numberMapping[+n] ? numberMapping[+n] : n;
|
|
17
|
+
})
|
|
18
|
+
.join('');
|
|
19
|
+
case 'word':
|
|
20
|
+
let wrd = value.toString().toLowerCase();
|
|
21
|
+
if (wrd === 'month') {
|
|
22
|
+
return wordsMapping['month'];
|
|
23
|
+
}
|
|
24
|
+
else if (wrd === 'year') {
|
|
25
|
+
return wordsMapping['year'];
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
return wrd;
|
|
29
|
+
}
|
|
30
|
+
default:
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
return value;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
return '';
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
ToNpPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: ToNpPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
43
|
+
ToNpPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: ToNpPipe, name: "toNp" });
|
|
44
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: ToNpPipe, decorators: [{
|
|
45
|
+
type: Pipe,
|
|
46
|
+
args: [{
|
|
47
|
+
name: 'toNp',
|
|
48
|
+
}]
|
|
49
|
+
}] });
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG8tbnAucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25weC1ucC1kYXRlcGlja2VyL3NyYy9saWIvdG8tbnAucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxNQUFNLFdBQVcsQ0FBQzs7QUFLeEQsTUFBTSxPQUFPLFFBQVE7SUFDbkIsU0FBUyxDQUNQLEtBQXNCLEVBQ3RCLFdBQW1CLElBQUksRUFDdkIsT0FBZSxRQUFRO1FBRXZCLElBQUksS0FBSyxFQUFFO1lBQ1QsSUFBSSxRQUFRLEtBQUssSUFBSSxFQUFFO2dCQUNyQixRQUFRLElBQUksRUFBRTtvQkFDWixLQUFLLFFBQVE7d0JBQ1gsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQzt3QkFDekMsT0FBTyxLQUFLOzZCQUNULEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFOzRCQUNULElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRTtnQ0FDYixPQUFPLEdBQUcsQ0FBQzs2QkFDWjs0QkFDRCxPQUFPLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO3dCQUNuRCxDQUFDLENBQUM7NkJBQ0QsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO29CQUNkLEtBQUssTUFBTTt3QkFDVCxJQUFJLEdBQUcsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7d0JBQ3pDLElBQUcsR0FBRyxLQUFJLE9BQU8sRUFBQzs0QkFDaEIsT0FBTyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7eUJBQzlCOzZCQUFLLElBQUcsR0FBRyxLQUFJLE1BQU0sRUFBQzs0QkFDckIsT0FBTyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7eUJBQzdCOzZCQUFJOzRCQUNILE9BQU8sR0FBRyxDQUFBO3lCQUNYO29CQUVILFFBQVE7aUJBQ1Q7YUFDRjtpQkFBSTtnQkFDTCxPQUFPLEtBQUssQ0FBQzthQUNkO1NBQ0E7YUFBTTtZQUNMLE9BQU8sRUFBRSxDQUFDO1NBQ1g7SUFDSCxDQUFDOztxR0FyQ1UsUUFBUTttR0FBUixRQUFROzJGQUFSLFFBQVE7a0JBSHBCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLE1BQU07aUJBQ2IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBudW1iZXJNYXBwaW5nLCB3b3Jkc01hcHBpbmcgfSBmcm9tICcuL21hcHBpbmcnO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICd0b05wJyxcbn0pXG5leHBvcnQgY2xhc3MgVG9OcFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgdHJhbnNmb3JtKFxuICAgIHZhbHVlOiBudW1iZXIgfCBzdHJpbmcsXG4gICAgbGFuZ3VhZ2U6IHN0cmluZyA9ICduZScsXG4gICAgdHlwZTogc3RyaW5nID0gJ251bWJlcidcbiAgKTogYW55IHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIGlmIChsYW5ndWFnZSA9PT0gJ25lJykge1xuICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgICBjYXNlICdudW1iZXInOlxuICAgICAgICAgICAgY29uc3Qgc3BsaXQgPSB2YWx1ZS50b1N0cmluZygpLnNwbGl0KCcnKTtcbiAgICAgICAgICAgIHJldHVybiBzcGxpdFxuICAgICAgICAgICAgICAubWFwKChuKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKG4gPT09ICcgJykge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuICcgJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlck1hcHBpbmdbK25dID8gbnVtYmVyTWFwcGluZ1srbl0gOiBuO1xuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAuam9pbignJyk7XG4gICAgICAgICAgY2FzZSAnd29yZCc6XG4gICAgICAgICAgICBsZXQgd3JkID0gdmFsdWUudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgaWYod3JkID09PSdtb250aCcpe1xuICAgICAgICAgICAgICByZXR1cm4gd29yZHNNYXBwaW5nWydtb250aCddO1xuICAgICAgICAgICAgfWVsc2UgaWYod3JkID09PSd5ZWFyJyl7XG4gICAgICAgICAgICAgIHJldHVybiB3b3Jkc01hcHBpbmdbJ3llYXInXTtcbiAgICAgICAgICAgIH1lbHNle1xuICAgICAgICAgICAgICByZXR1cm4gd3JkXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICB9XG4gICAgICB9ZWxzZXtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9ucHgtbnAtZGF0ZXBpY2tlci9zcmMvbGliL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJcbmV4cG9ydCBpbnRlcmZhY2UgTW9udGhEYXRhIHtcbiAgMDogbnVtYmVyW107XG4gIDE6IG51bWJlcltdO1xuICAyOiBudW1iZXJbXTtcbiAgMzogbnVtYmVyW107XG4gIDQ6IG51bWJlcltdO1xuICA1OiBudW1iZXJbXTtcbiAgNjogbnVtYmVyW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmVwYWxpRGF0ZSB7XG4gIGRheTogbnVtYmVyO1xuICBtb250aDogbnVtYmVyO1xuICB5ZWFyOiBudW1iZXI7XG59XG5cblxuaW50ZXJmYWNlIFZhbHVlcyB7XG4gIGRlZmF1bHQ6IHN0cmluZ1tdO1xuICBzaG9ydD86IHN0cmluZ1tdO1xuICBtb2Rlcm4/OiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNb250aE1hcHBpbmcge1xuICBlbjogVmFsdWVzO1xuICBuZTogVmFsdWVzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERheXNNYXBwaW5nIHtcbiAgZW46IFZhbHVlcztcbiAgbmU6IFZhbHVlcztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBXb3Jkc01hcHBpbmcge1xuICB5ZWFyOiBzdHJpbmc7XG4gIG1vbnRoOiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIERhdGVGb3JtYXR0ZXIgPSAoZGF0ZTogTmVwYWxpRGF0ZSkgPT4gc3RyaW5nO1xuIl19
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public-api';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LW5wLWRhdGVwaWNrZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9ucHgtbnAtZGF0ZXBpY2tlci9zcmMvbmd4LW5wLWRhdGVwaWNrZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Public API Surface of npx-np-datepicker
|
|
3
|
+
*/
|
|
4
|
+
export * from './lib/np-datepicker.service';
|
|
5
|
+
export * from './lib/np-datepicker.component';
|
|
6
|
+
export * from './lib/np-datepicker.module';
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25weC1ucC1kYXRlcGlja2VyL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsNEJBQTRCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIG5weC1ucC1kYXRlcGlja2VyXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvbnAtZGF0ZXBpY2tlci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL25wLWRhdGVwaWNrZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL25wLWRhdGVwaWNrZXIubW9kdWxlJztcbiJdfQ==
|