@reusa/ngx-reusa-app-lib 0.0.1347 → 0.0.1349

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.
@@ -29,45 +29,45 @@ const _c4 = "City name can only contain letters, spaces, and hyphens";
29
29
  const _c5 = () => ({ required: "Required.", invalidwsCityLength: "City should not exceed a length of 30 characters", pattern: _c4, maxlength: "cannot exceed 30 characters" });
30
30
  const _c6 = () => ({ required: "Required." });
31
31
  const _c7 = () => ({ required: "Required.", invalidLength: "Zip code should be of 5 or 9 digits.", invalidNumber: "Zip code should only have numbers." });
32
- function WorkSearchEmployerComponentMS_section_16_Template(rf, ctx) { if (rf & 1) {
32
+ function WorkSearchEmployerComponentMS_section_18_Template(rf, ctx) { if (rf & 1) {
33
33
  const _r5 = i0.ɵɵgetCurrentView();
34
- i0.ɵɵelementStart(0, "section")(1, "div", 6)(2, "label", 15);
34
+ i0.ɵɵelementStart(0, "section")(1, "div", 7)(2, "label", 16);
35
35
  i0.ɵɵtext(3);
36
36
  i0.ɵɵpipe(4, "translate");
37
37
  i0.ɵɵelementEnd();
38
- i0.ɵɵelementStart(5, "app-search-employer", 16);
39
- i0.ɵɵlistener("onFound", function WorkSearchEmployerComponentMS_section_16_Template_app_search_employer_onFound_5_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r4 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r4.setEmployer($event)); });
38
+ i0.ɵɵelementStart(5, "app-search-employer", 17);
39
+ i0.ɵɵlistener("onFound", function WorkSearchEmployerComponentMS_section_18_Template_app_search_employer_onFound_5_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r4 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r4.setEmployer($event)); });
40
40
  i0.ɵɵelementEnd();
41
- i0.ɵɵelement(6, "app-error", 9);
41
+ i0.ɵɵelement(6, "app-error", 10);
42
42
  i0.ɵɵelementEnd();
43
- i0.ɵɵelementStart(7, "div", 6)(8, "label", 17);
43
+ i0.ɵɵelementStart(7, "div", 7)(8, "label", 18);
44
44
  i0.ɵɵtext(9);
45
45
  i0.ɵɵpipe(10, "translate");
46
46
  i0.ɵɵelementEnd();
47
- i0.ɵɵelement(11, "input", 18)(12, "app-error", 9);
47
+ i0.ɵɵelement(11, "input", 19)(12, "app-error", 10);
48
48
  i0.ɵɵelementEnd();
49
- i0.ɵɵelementStart(13, "div", 6)(14, "label", 19);
49
+ i0.ɵɵelementStart(13, "div", 7)(14, "label", 20);
50
50
  i0.ɵɵtext(15);
51
51
  i0.ɵɵpipe(16, "translate");
52
52
  i0.ɵɵelementEnd();
53
- i0.ɵɵelement(17, "input", 20)(18, "app-error", 9);
53
+ i0.ɵɵelement(17, "input", 21)(18, "app-error", 10);
54
54
  i0.ɵɵelementEnd();
55
- i0.ɵɵelementStart(19, "ion-row")(20, "ion-col", 21)(21, "div", 6)(22, "label", 22);
55
+ i0.ɵɵelementStart(19, "ion-row")(20, "ion-col", 22)(21, "div", 7)(22, "label", 23);
56
56
  i0.ɵɵtext(23);
57
57
  i0.ɵɵpipe(24, "translate");
58
58
  i0.ɵɵelementEnd();
59
- i0.ɵɵelement(25, "app-dropdown", 23)(26, "app-error", 9);
59
+ i0.ɵɵelement(25, "app-dropdown", 24)(26, "app-error", 10);
60
60
  i0.ɵɵelementEnd()();
61
- i0.ɵɵelement(27, "ion-col", 24);
62
- i0.ɵɵelementStart(28, "ion-col", 21)(29, "div", 6)(30, "label", 25);
61
+ i0.ɵɵelement(27, "ion-col", 25);
62
+ i0.ɵɵelementStart(28, "ion-col", 22)(29, "div", 7)(30, "label", 26);
63
63
  i0.ɵɵtext(31);
64
64
  i0.ɵɵpipe(32, "translate");
65
65
  i0.ɵɵelementEnd();
66
- i0.ɵɵelement(33, "input", 26)(34, "app-error", 9);
66
+ i0.ɵɵelement(33, "input", 27)(34, "app-error", 10);
67
67
  i0.ɵɵelementEnd()()()();
68
68
  } if (rf & 2) {
69
69
  const ctx_r1 = i0.ɵɵnextContext();
70
- const _r0 = i0.ɵɵreference(5);
70
+ const _r0 = i0.ɵɵreference(7);
71
71
  i0.ɵɵadvance(3);
72
72
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(4, 37, "work.search.journal.employerName"));
73
73
  i0.ɵɵadvance(2);
@@ -105,20 +105,20 @@ function WorkSearchEmployerComponentMS_section_16_Template(rf, ctx) { if (rf & 1
105
105
  i0.ɵɵproperty("field", ctx_r1.zip)("form", _r0)("errDef", i0.ɵɵpureFunction0(51, _c7));
106
106
  } }
107
107
  const _c8 = a1 => ({ required: "Required.", dateNotBetween: a1 });
108
- function WorkSearchEmployerComponentMS_div_19_Template(rf, ctx) { if (rf & 1) {
108
+ function WorkSearchEmployerComponentMS_div_21_Template(rf, ctx) { if (rf & 1) {
109
109
  const _r7 = i0.ɵɵgetCurrentView();
110
- i0.ɵɵelementStart(0, "div", 6)(1, "label", 27);
110
+ i0.ɵɵelementStart(0, "div", 7)(1, "label", 28);
111
111
  i0.ɵɵtext(2);
112
112
  i0.ɵɵpipe(3, "translate");
113
113
  i0.ɵɵelementEnd();
114
- i0.ɵɵelementStart(4, "p-calendar", 28);
115
- i0.ɵɵlistener("onInput", function WorkSearchEmployerComponentMS_div_19_Template_p_calendar_onInput_4_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r6 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r6.dateInput($event)); });
114
+ i0.ɵɵelementStart(4, "p-calendar", 29);
115
+ i0.ɵɵlistener("onInput", function WorkSearchEmployerComponentMS_div_21_Template_p_calendar_onInput_4_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r6 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r6.dateInput($event)); });
116
116
  i0.ɵɵelementEnd();
117
- i0.ɵɵelement(5, "app-error", 9);
117
+ i0.ɵɵelement(5, "app-error", 10);
118
118
  i0.ɵɵelementEnd();
119
119
  } if (rf & 2) {
120
120
  const ctx_r2 = i0.ɵɵnextContext();
121
- const _r0 = i0.ɵɵreference(5);
121
+ const _r0 = i0.ɵɵreference(7);
122
122
  i0.ɵɵadvance(2);
123
123
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 14, "work.search.journal.applicationDate"));
124
124
  i0.ɵɵadvance(2);
@@ -127,16 +127,16 @@ function WorkSearchEmployerComponentMS_div_19_Template(rf, ctx) { if (rf & 1) {
127
127
  i0.ɵɵclassMap("app-grid");
128
128
  i0.ɵɵproperty("field", ctx_r2.workSearchDate)("form", _r0)("errDef", i0.ɵɵpureFunction1(16, _c8, "Date should be between " + ctx_r2.sunDateString + " and " + ctx_r2.currentDateString + "."));
129
129
  } }
130
- function WorkSearchEmployerComponentMS_section_20_div_7_Template(rf, ctx) { if (rf & 1) {
131
- i0.ɵɵelementStart(0, "div")(1, "div", 6)(2, "label", 32);
130
+ function WorkSearchEmployerComponentMS_section_22_div_7_Template(rf, ctx) { if (rf & 1) {
131
+ i0.ɵɵelementStart(0, "div")(1, "div", 7)(2, "label", 33);
132
132
  i0.ɵɵtext(3);
133
133
  i0.ɵɵpipe(4, "translate");
134
134
  i0.ɵɵelementEnd();
135
- i0.ɵɵelement(5, "p-selectButton", 33)(6, "app-error", 9);
135
+ i0.ɵɵelement(5, "p-selectButton", 34)(6, "app-error", 10);
136
136
  i0.ɵɵelementEnd()();
137
137
  } if (rf & 2) {
138
138
  const ctx_r8 = i0.ɵɵnextContext(2);
139
- const _r0 = i0.ɵɵreference(5);
139
+ const _r0 = i0.ɵɵreference(7);
140
140
  i0.ɵɵadvance(3);
141
141
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(4, 8, "work.search.journal.contactMethod"));
142
142
  i0.ɵɵadvance(2);
@@ -145,16 +145,16 @@ function WorkSearchEmployerComponentMS_section_20_div_7_Template(rf, ctx) { if (
145
145
  i0.ɵɵclassMap("app-grid");
146
146
  i0.ɵɵproperty("field", ctx_r8.contactMethod)("form", _r0)("errDef", i0.ɵɵpureFunction0(10, _c6));
147
147
  } }
148
- function WorkSearchEmployerComponentMS_section_20_div_8_Template(rf, ctx) { if (rf & 1) {
149
- i0.ɵɵelementStart(0, "div")(1, "div", 6)(2, "label", 32);
148
+ function WorkSearchEmployerComponentMS_section_22_div_8_Template(rf, ctx) { if (rf & 1) {
149
+ i0.ɵɵelementStart(0, "div")(1, "div", 7)(2, "label", 33);
150
150
  i0.ɵɵtext(3);
151
151
  i0.ɵɵpipe(4, "translate");
152
152
  i0.ɵɵelementEnd();
153
- i0.ɵɵelement(5, "p-selectButton", 33)(6, "app-error", 9);
153
+ i0.ɵɵelement(5, "p-selectButton", 34)(6, "app-error", 10);
154
154
  i0.ɵɵelementEnd()();
155
155
  } if (rf & 2) {
156
156
  const ctx_r9 = i0.ɵɵnextContext(2);
157
- const _r0 = i0.ɵɵreference(5);
157
+ const _r0 = i0.ɵɵreference(7);
158
158
  i0.ɵɵadvance(3);
159
159
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(4, 8, "work.search.journal.contactMethodJobSearch"));
160
160
  i0.ɵɵadvance(2);
@@ -163,16 +163,16 @@ function WorkSearchEmployerComponentMS_section_20_div_8_Template(rf, ctx) { if (
163
163
  i0.ɵɵclassMap("app-grid");
164
164
  i0.ɵɵproperty("field", ctx_r9.contactMethod)("form", _r0)("errDef", i0.ɵɵpureFunction0(10, _c6));
165
165
  } }
166
- function WorkSearchEmployerComponentMS_section_20_div_9_Template(rf, ctx) { if (rf & 1) {
167
- i0.ɵɵelementStart(0, "div", 6)(1, "label", 34);
166
+ function WorkSearchEmployerComponentMS_section_22_div_9_Template(rf, ctx) { if (rf & 1) {
167
+ i0.ɵɵelementStart(0, "div", 7)(1, "label", 35);
168
168
  i0.ɵɵtext(2);
169
169
  i0.ɵɵpipe(3, "translate");
170
170
  i0.ɵɵelementEnd();
171
- i0.ɵɵelement(4, "p-inputMask", 35)(5, "app-error", 9);
171
+ i0.ɵɵelement(4, "p-inputMask", 36)(5, "app-error", 10);
172
172
  i0.ɵɵelementEnd();
173
173
  } if (rf & 2) {
174
174
  const ctx_r10 = i0.ɵɵnextContext(2);
175
- const _r0 = i0.ɵɵreference(5);
175
+ const _r0 = i0.ɵɵreference(7);
176
176
  i0.ɵɵadvance(2);
177
177
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 7, "work.search.journal.phoneNo"));
178
178
  i0.ɵɵadvance(2);
@@ -182,16 +182,16 @@ function WorkSearchEmployerComponentMS_section_20_div_9_Template(rf, ctx) { if (
182
182
  i0.ɵɵproperty("field", ctx_r10.employerPhone)("form", _r0)("errDef", i0.ɵɵpureFunction0(9, _c6));
183
183
  } }
184
184
  const _c9 = () => ({ required: "Required.", employerEmail: "Invalid email address.", maxlength: "cannot exceed 40 characters" });
185
- function WorkSearchEmployerComponentMS_section_20_div_10_Template(rf, ctx) { if (rf & 1) {
186
- i0.ɵɵelementStart(0, "div", 6)(1, "label", 36);
185
+ function WorkSearchEmployerComponentMS_section_22_div_10_Template(rf, ctx) { if (rf & 1) {
186
+ i0.ɵɵelementStart(0, "div", 7)(1, "label", 37);
187
187
  i0.ɵɵtext(2);
188
188
  i0.ɵɵpipe(3, "translate");
189
189
  i0.ɵɵelementEnd();
190
- i0.ɵɵelement(4, "input", 37)(5, "app-error", 9);
190
+ i0.ɵɵelement(4, "input", 38)(5, "app-error", 10);
191
191
  i0.ɵɵelementEnd();
192
192
  } if (rf & 2) {
193
193
  const ctx_r11 = i0.ɵɵnextContext(2);
194
- const _r0 = i0.ɵɵreference(5);
194
+ const _r0 = i0.ɵɵreference(7);
195
195
  i0.ɵɵadvance(2);
196
196
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 7, "work.search.journal.email"));
197
197
  i0.ɵɵadvance(2);
@@ -201,16 +201,16 @@ function WorkSearchEmployerComponentMS_section_20_div_10_Template(rf, ctx) { if
201
201
  i0.ɵɵproperty("field", ctx_r11.employerEmail)("form", _r0)("errDef", i0.ɵɵpureFunction0(9, _c9));
202
202
  } }
203
203
  const _c10 = () => ({ required: "Required.", invalidWebsite: "Please enter a valid website address", maxlength: "cannot exceed 40 characters" });
204
- function WorkSearchEmployerComponentMS_section_20_div_11_Template(rf, ctx) { if (rf & 1) {
205
- i0.ɵɵelementStart(0, "div", 6)(1, "label", 38);
204
+ function WorkSearchEmployerComponentMS_section_22_div_11_Template(rf, ctx) { if (rf & 1) {
205
+ i0.ɵɵelementStart(0, "div", 7)(1, "label", 39);
206
206
  i0.ɵɵtext(2);
207
207
  i0.ɵɵpipe(3, "translate");
208
208
  i0.ɵɵelementEnd();
209
- i0.ɵɵelement(4, "input", 39)(5, "app-error", 9);
209
+ i0.ɵɵelement(4, "input", 40)(5, "app-error", 10);
210
210
  i0.ɵɵelementEnd();
211
211
  } if (rf & 2) {
212
212
  const ctx_r12 = i0.ɵɵnextContext(2);
213
- const _r0 = i0.ɵɵreference(5);
213
+ const _r0 = i0.ɵɵreference(7);
214
214
  i0.ɵɵadvance(2);
215
215
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 7, "work.search.journal.website"));
216
216
  i0.ɵɵadvance(2);
@@ -220,16 +220,16 @@ function WorkSearchEmployerComponentMS_section_20_div_11_Template(rf, ctx) { if
220
220
  i0.ɵɵproperty("field", ctx_r12.employerWebsite)("form", _r0)("errDef", i0.ɵɵpureFunction0(9, _c10));
221
221
  } }
222
222
  const _c11 = () => ({ required: "Required.", maxlength: "cannot exceed 50 characters" });
223
- function WorkSearchEmployerComponentMS_section_20_div_12_Template(rf, ctx) { if (rf & 1) {
224
- i0.ɵɵelementStart(0, "div", 6)(1, "label", 40);
223
+ function WorkSearchEmployerComponentMS_section_22_div_12_Template(rf, ctx) { if (rf & 1) {
224
+ i0.ɵɵelementStart(0, "div", 7)(1, "label", 41);
225
225
  i0.ɵɵtext(2);
226
226
  i0.ɵɵpipe(3, "translate");
227
227
  i0.ɵɵelementEnd();
228
- i0.ɵɵelement(4, "input", 41)(5, "app-error", 9);
228
+ i0.ɵɵelement(4, "input", 42)(5, "app-error", 10);
229
229
  i0.ɵɵelementEnd();
230
230
  } if (rf & 2) {
231
231
  const ctx_r13 = i0.ɵɵnextContext(2);
232
- const _r0 = i0.ɵɵreference(5);
232
+ const _r0 = i0.ɵɵreference(7);
233
233
  i0.ɵɵadvance(2);
234
234
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 7, "work.search.journal.contactName"));
235
235
  i0.ɵɵadvance(2);
@@ -238,16 +238,16 @@ function WorkSearchEmployerComponentMS_section_20_div_12_Template(rf, ctx) { if
238
238
  i0.ɵɵclassMap("app-grid");
239
239
  i0.ɵɵproperty("field", ctx_r13.empContactPersonName)("form", _r0)("errDef", i0.ɵɵpureFunction0(9, _c11));
240
240
  } }
241
- function WorkSearchEmployerComponentMS_section_20_div_13_Template(rf, ctx) { if (rf & 1) {
242
- i0.ɵɵelementStart(0, "div", 6)(1, "label", 42);
241
+ function WorkSearchEmployerComponentMS_section_22_div_13_Template(rf, ctx) { if (rf & 1) {
242
+ i0.ɵɵelementStart(0, "div", 7)(1, "label", 43);
243
243
  i0.ɵɵtext(2);
244
244
  i0.ɵɵpipe(3, "translate");
245
245
  i0.ɵɵelementEnd();
246
- i0.ɵɵelement(4, "input", 43)(5, "app-error", 9);
246
+ i0.ɵɵelement(4, "input", 44)(5, "app-error", 10);
247
247
  i0.ɵɵelementEnd();
248
248
  } if (rf & 2) {
249
249
  const ctx_r14 = i0.ɵɵnextContext(2);
250
- const _r0 = i0.ɵɵreference(5);
250
+ const _r0 = i0.ɵɵreference(7);
251
251
  i0.ɵɵadvance(2);
252
252
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 7, "work.search.journal.contactTitle"));
253
253
  i0.ɵɵadvance(2);
@@ -256,26 +256,26 @@ function WorkSearchEmployerComponentMS_section_20_div_13_Template(rf, ctx) { if
256
256
  i0.ɵɵclassMap("app-grid");
257
257
  i0.ɵɵproperty("field", ctx_r14.empContactPersonTitle)("form", _r0)("errDef", i0.ɵɵpureFunction0(9, _c11));
258
258
  } }
259
- function WorkSearchEmployerComponentMS_section_20_div_18_Template(rf, ctx) { if (rf & 1) {
259
+ function WorkSearchEmployerComponentMS_section_22_div_18_Template(rf, ctx) { if (rf & 1) {
260
260
  i0.ɵɵelementStart(0, "div");
261
- i0.ɵɵelement(1, "app-dropdown", 44)(2, "app-error", 9);
261
+ i0.ɵɵelement(1, "app-dropdown", 45)(2, "app-error", 10);
262
262
  i0.ɵɵelementEnd();
263
263
  } if (rf & 2) {
264
264
  const ctx_r15 = i0.ɵɵnextContext(2);
265
- const _r0 = i0.ɵɵreference(5);
265
+ const _r0 = i0.ɵɵreference(7);
266
266
  i0.ɵɵadvance(1);
267
267
  i0.ɵɵproperty("options", ctx_r15.workSearchResultComboJobApplicationMs)("formControl", ctx_r15.searchResult);
268
268
  i0.ɵɵadvance(1);
269
269
  i0.ɵɵclassMap("app-grid");
270
270
  i0.ɵɵproperty("field", ctx_r15.searchResult)("form", _r0)("errDef", i0.ɵɵpureFunction0(7, _c6));
271
271
  } }
272
- function WorkSearchEmployerComponentMS_section_20_div_19_Template(rf, ctx) { if (rf & 1) {
272
+ function WorkSearchEmployerComponentMS_section_22_div_19_Template(rf, ctx) { if (rf & 1) {
273
273
  i0.ɵɵelementStart(0, "div");
274
- i0.ɵɵelement(1, "app-dropdown", 44)(2, "app-error", 9);
274
+ i0.ɵɵelement(1, "app-dropdown", 45)(2, "app-error", 10);
275
275
  i0.ɵɵelementEnd();
276
276
  } if (rf & 2) {
277
277
  const ctx_r16 = i0.ɵɵnextContext(2);
278
- const _r0 = i0.ɵɵreference(5);
278
+ const _r0 = i0.ɵɵreference(7);
279
279
  i0.ɵɵadvance(1);
280
280
  i0.ɵɵproperty("options", ctx_r16.workSearchResultComboJobSearchMs)("formControl", ctx_r16.searchResult);
281
281
  i0.ɵɵadvance(1);
@@ -284,23 +284,23 @@ function WorkSearchEmployerComponentMS_section_20_div_19_Template(rf, ctx) { if
284
284
  } }
285
285
  const _c12 = "Job Title can only contain letters, spaces, and hyphens";
286
286
  const _c13 = () => ({ required: "Required.", pattern: _c12, maxlength: "cannot exceed 50 characters" });
287
- function WorkSearchEmployerComponentMS_section_20_Template(rf, ctx) { if (rf & 1) {
288
- i0.ɵɵelementStart(0, "section")(1, "div", 6)(2, "label", 29);
287
+ function WorkSearchEmployerComponentMS_section_22_Template(rf, ctx) { if (rf & 1) {
288
+ i0.ɵɵelementStart(0, "section")(1, "div", 7)(2, "label", 30);
289
289
  i0.ɵɵtext(3);
290
290
  i0.ɵɵpipe(4, "translate");
291
291
  i0.ɵɵelementEnd();
292
- i0.ɵɵelement(5, "input", 30)(6, "app-error", 9);
292
+ i0.ɵɵelement(5, "input", 31)(6, "app-error", 10);
293
293
  i0.ɵɵelementEnd();
294
- i0.ɵɵtemplate(7, WorkSearchEmployerComponentMS_section_20_div_7_Template, 7, 11, "div", 10)(8, WorkSearchEmployerComponentMS_section_20_div_8_Template, 7, 11, "div", 10)(9, WorkSearchEmployerComponentMS_section_20_div_9_Template, 6, 10, "div", 11)(10, WorkSearchEmployerComponentMS_section_20_div_10_Template, 6, 10, "div", 11)(11, WorkSearchEmployerComponentMS_section_20_div_11_Template, 6, 10, "div", 11)(12, WorkSearchEmployerComponentMS_section_20_div_12_Template, 6, 10, "div", 11)(13, WorkSearchEmployerComponentMS_section_20_div_13_Template, 6, 10, "div", 11);
295
- i0.ɵɵelementStart(14, "div", 6)(15, "label", 31);
294
+ i0.ɵɵtemplate(7, WorkSearchEmployerComponentMS_section_22_div_7_Template, 7, 11, "div", 11)(8, WorkSearchEmployerComponentMS_section_22_div_8_Template, 7, 11, "div", 11)(9, WorkSearchEmployerComponentMS_section_22_div_9_Template, 6, 10, "div", 12)(10, WorkSearchEmployerComponentMS_section_22_div_10_Template, 6, 10, "div", 12)(11, WorkSearchEmployerComponentMS_section_22_div_11_Template, 6, 10, "div", 12)(12, WorkSearchEmployerComponentMS_section_22_div_12_Template, 6, 10, "div", 12)(13, WorkSearchEmployerComponentMS_section_22_div_13_Template, 6, 10, "div", 12);
295
+ i0.ɵɵelementStart(14, "div", 7)(15, "label", 32);
296
296
  i0.ɵɵtext(16);
297
297
  i0.ɵɵpipe(17, "translate");
298
298
  i0.ɵɵelementEnd();
299
- i0.ɵɵtemplate(18, WorkSearchEmployerComponentMS_section_20_div_18_Template, 3, 8, "div", 10)(19, WorkSearchEmployerComponentMS_section_20_div_19_Template, 3, 8, "div", 10);
299
+ i0.ɵɵtemplate(18, WorkSearchEmployerComponentMS_section_22_div_18_Template, 3, 8, "div", 11)(19, WorkSearchEmployerComponentMS_section_22_div_19_Template, 3, 8, "div", 11);
300
300
  i0.ɵɵelementEnd()();
301
301
  } if (rf & 2) {
302
302
  const ctx_r3 = i0.ɵɵnextContext();
303
- const _r0 = i0.ɵɵreference(5);
303
+ const _r0 = i0.ɵɵreference(7);
304
304
  i0.ɵɵadvance(3);
305
305
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(4, 17, "work.search.journal.jobTitle"));
306
306
  i0.ɵɵadvance(2);
@@ -330,6 +330,7 @@ function WorkSearchEmployerComponentMS_section_20_Template(rf, ctx) { if (rf & 1
330
330
  i0.ɵɵproperty("ngIf", ctx_r3.activityType.value == "JOSE");
331
331
  } }
332
332
  const _c14 = () => ({ "1200px": "660px", "992px": "660px", "768px": "660px", "576px": "100vw" });
333
+ const _c15 = a0 => [a0];
333
334
  export class WorkSearchEmployerComponentMS extends BasePage {
334
335
  constructor(wcService, formBuilder, util) {
335
336
  super();
@@ -604,46 +605,50 @@ export class WorkSearchEmployerComponentMS extends BasePage {
604
605
  } if (rf & 2) {
605
606
  let _t;
606
607
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.wsrFormDirective = _t.first);
607
- } }, inputs: { recordIndexToEdit: "recordIndexToEdit", data: "data", satDate: "satDate", sunDate: "sunDate", satDateString: "satDateString", sunDateString: "sunDateString", journal: "journal" }, outputs: { success: "success", onClose: "onClose" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 29, vars: 28, consts: [["visible", "true", "modal", "true", "appendTo", "body", "position", "top", 3, "showHeader", "breakpoints"], [2, "color", "var(--ion-color-grey)", "padding-left", "20px"], [3, "formGroup"], ["wsrFormDirective", "ngForm"], ["size", "12", "sizeSm", "12", "sizeXs", "12", "sizeMd", "6", "sizeLg", "6", "sizeXl", "6", 1, "ion-padding"], [1, "p-fluid", "p-formgrid"], [1, "field"], ["for", "activityType"], ["optionLabel", "DESC", "optionValue", "NAME", "appendTo", "body", "inputId", "activityType", 3, "options", "formControl"], [3, "field", "form", "errDef"], [4, "ngIf"], ["class", "field", 4, "ngIf"], [1, "ion-text-right"], ["shape", "round", "fill", "outline", "type", "reset", 3, "click"], ["shape", "round", "type", "submit", 3, "click"], ["for", "employerName"], [3, "formControl", "empType", "onFound"], ["for", "line1"], ["id", "line1", "type", "input", "pInputText", "", "appStripInvisibleChars", "", 3, "formControl"], ["for", "city"], ["id", "city", "type", "input", "pInputText", "", "appStripInvisibleChars", "", 3, "formControl"], [2, "padding", "0px"], ["for", "state"], ["inputId", "state", "optionLabel", "DESC", "optionValue", "NAME", "appendTo", "body", "inputId", "state", 3, "options", "formControl"], ["size", "1"], ["for", "zip"], ["id", "zip", "type", "input", "pInputText", "", "minlength", "5", "maxlength", "9", "appStripInvisibleChars", "", 3, "formControl"], ["for", "workSearchDate"], ["inputId", "workSearchDate", "appendTo", "body", "dateFormat", "mm/dd/yy", "placeholder", "mm/dd/yyyy", "yearRange", "1901:2050", 3, "showIcon", "formControl", "minDate", "maxDate", "defaultDate", "selectOtherMonths", "monthNavigator", "yearNavigator", "onInput"], ["for", "positionAppliedFor"], ["id", "positionAppliedFor", "type", "input", "pInputText", "", "appStripInvisibleChars", "", 3, "formControl"], ["for", "searchResult"], ["for", "contactMethod"], ["optionLabel", "DESC", "optionValue", "NAME", 3, "options", "formControl"], ["for", "employerPhone"], ["inputId", "employerPhone", "mask", "(999) 999-9999", "unmask", "true", 3, "formControl"], ["for", "employerEmail"], ["id", "employerEmail", "type", "input", "pInputText", "", "placeholder", "emailid@example.com", "appStripInvisibleChars", "", 3, "formControl"], ["for", "employerWebsite"], ["id", "employerWebsite", "type", "input", "pInputText", "", "appStripInvisibleChars", "", 3, "formControl"], ["for", "empContactPersonName"], ["id", "empContactPersonName", "type", "input", "pInputText", "", "appStripInvisibleChars", "", 3, "formControl"], ["for", "empContactPersonTitle"], ["id", "empContactPersonTitle", "type", "input", "pInputText", "", "appStripInvisibleChars", "", 3, "formControl"], ["optionLabel", "DESC", "optionValue", "NAME", "appendTo", "body", "inputId", "searchResult", 3, "options", "formControl"]], template: function WorkSearchEmployerComponentMS_Template(rf, ctx) { if (rf & 1) {
608
+ } }, inputs: { recordIndexToEdit: "recordIndexToEdit", data: "data", satDate: "satDate", sunDate: "sunDate", satDateString: "satDateString", sunDateString: "sunDateString", journal: "journal" }, outputs: { success: "success", onClose: "onClose" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 31, vars: 33, consts: [["visible", "true", "modal", "true", "appendTo", "body", "position", "top", 3, "showHeader", "breakpoints"], [2, "color", "var(--ion-color-grey)", "padding-left", "20px"], [2, "padding-left", "20px", 3, "innerHTML"], [3, "formGroup"], ["wsrFormDirective", "ngForm"], ["size", "12", "sizeSm", "12", "sizeXs", "12", "sizeMd", "6", "sizeLg", "6", "sizeXl", "6", 1, "ion-padding"], [1, "p-fluid", "p-formgrid"], [1, "field"], ["for", "activityType"], ["optionLabel", "DESC", "optionValue", "NAME", "appendTo", "body", "inputId", "activityType", 3, "options", "formControl"], [3, "field", "form", "errDef"], [4, "ngIf"], ["class", "field", 4, "ngIf"], [1, "ion-text-right"], ["shape", "round", "fill", "outline", "type", "reset", 3, "click"], ["shape", "round", "type", "submit", 3, "click"], ["for", "employerName"], [3, "formControl", "empType", "onFound"], ["for", "line1"], ["id", "line1", "type", "input", "pInputText", "", "appStripInvisibleChars", "", 3, "formControl"], ["for", "city"], ["id", "city", "type", "input", "pInputText", "", "appStripInvisibleChars", "", 3, "formControl"], [2, "padding", "0px"], ["for", "state"], ["inputId", "state", "optionLabel", "DESC", "optionValue", "NAME", "appendTo", "body", "inputId", "state", 3, "options", "formControl"], ["size", "1"], ["for", "zip"], ["id", "zip", "type", "input", "pInputText", "", "minlength", "5", "maxlength", "9", "appStripInvisibleChars", "", 3, "formControl"], ["for", "workSearchDate"], ["inputId", "workSearchDate", "appendTo", "body", "dateFormat", "mm/dd/yy", "placeholder", "mm/dd/yyyy", "yearRange", "1901:2050", 3, "showIcon", "formControl", "minDate", "maxDate", "defaultDate", "selectOtherMonths", "monthNavigator", "yearNavigator", "onInput"], ["for", "positionAppliedFor"], ["id", "positionAppliedFor", "type", "input", "pInputText", "", "appStripInvisibleChars", "", 3, "formControl"], ["for", "searchResult"], ["for", "contactMethod"], ["optionLabel", "DESC", "optionValue", "NAME", 3, "options", "formControl"], ["for", "employerPhone"], ["inputId", "employerPhone", "mask", "(999) 999-9999", "unmask", "true", 3, "formControl"], ["for", "employerEmail"], ["id", "employerEmail", "type", "input", "pInputText", "", "placeholder", "emailid@example.com", "appStripInvisibleChars", "", 3, "formControl"], ["for", "employerWebsite"], ["id", "employerWebsite", "type", "input", "pInputText", "", "appStripInvisibleChars", "", 3, "formControl"], ["for", "empContactPersonName"], ["id", "empContactPersonName", "type", "input", "pInputText", "", "appStripInvisibleChars", "", 3, "formControl"], ["for", "empContactPersonTitle"], ["id", "empContactPersonTitle", "type", "input", "pInputText", "", "appStripInvisibleChars", "", 3, "formControl"], ["optionLabel", "DESC", "optionValue", "NAME", "appendTo", "body", "inputId", "searchResult", 3, "options", "formControl"]], template: function WorkSearchEmployerComponentMS_Template(rf, ctx) { if (rf & 1) {
608
609
  i0.ɵɵelementStart(0, "p-dialog", 0)(1, "h4", 1);
609
610
  i0.ɵɵtext(2);
610
611
  i0.ɵɵpipe(3, "translate");
611
612
  i0.ɵɵelementEnd();
612
- i0.ɵɵelementStart(4, "form", 2, 3)(6, "ion-grid")(7, "ion-row")(8, "ion-col", 4)(9, "div", 5)(10, "div", 6)(11, "label", 7);
613
- i0.ɵɵtext(12);
614
- i0.ɵɵpipe(13, "translate");
613
+ i0.ɵɵelement(4, "h6", 2);
614
+ i0.ɵɵpipe(5, "translate");
615
+ i0.ɵɵelementStart(6, "form", 3, 4)(8, "ion-grid")(9, "ion-row")(10, "ion-col", 5)(11, "div", 6)(12, "div", 7)(13, "label", 8);
616
+ i0.ɵɵtext(14);
617
+ i0.ɵɵpipe(15, "translate");
615
618
  i0.ɵɵelementEnd();
616
- i0.ɵɵelement(14, "app-dropdown", 8)(15, "app-error", 9);
619
+ i0.ɵɵelement(16, "app-dropdown", 9)(17, "app-error", 10);
617
620
  i0.ɵɵelementEnd();
618
- i0.ɵɵtemplate(16, WorkSearchEmployerComponentMS_section_16_Template, 35, 52, "section", 10);
621
+ i0.ɵɵtemplate(18, WorkSearchEmployerComponentMS_section_18_Template, 35, 52, "section", 11);
619
622
  i0.ɵɵelementEnd()();
620
- i0.ɵɵelementStart(17, "ion-col", 4)(18, "div", 5);
621
- i0.ɵɵtemplate(19, WorkSearchEmployerComponentMS_div_19_Template, 6, 18, "div", 11)(20, WorkSearchEmployerComponentMS_section_20_Template, 20, 22, "section", 10);
623
+ i0.ɵɵelementStart(19, "ion-col", 5)(20, "div", 6);
624
+ i0.ɵɵtemplate(21, WorkSearchEmployerComponentMS_div_21_Template, 6, 18, "div", 12)(22, WorkSearchEmployerComponentMS_section_22_Template, 20, 22, "section", 11);
622
625
  i0.ɵɵelementEnd()()();
623
- i0.ɵɵelementStart(21, "ion-row")(22, "ion-col", 12)(23, "ion-button", 13);
624
- i0.ɵɵlistener("click", function WorkSearchEmployerComponentMS_Template_ion_button_click_23_listener() { return ctx.close(); });
625
- i0.ɵɵtext(24);
626
- i0.ɵɵpipe(25, "translate");
626
+ i0.ɵɵelementStart(23, "ion-row")(24, "ion-col", 13)(25, "ion-button", 14);
627
+ i0.ɵɵlistener("click", function WorkSearchEmployerComponentMS_Template_ion_button_click_25_listener() { return ctx.close(); });
628
+ i0.ɵɵtext(26);
629
+ i0.ɵɵpipe(27, "translate");
627
630
  i0.ɵɵelementEnd();
628
- i0.ɵɵelementStart(26, "ion-button", 14);
629
- i0.ɵɵlistener("click", function WorkSearchEmployerComponentMS_Template_ion_button_click_26_listener() { return ctx.add(); });
630
- i0.ɵɵtext(27);
631
- i0.ɵɵpipe(28, "translate");
631
+ i0.ɵɵelementStart(28, "ion-button", 15);
632
+ i0.ɵɵlistener("click", function WorkSearchEmployerComponentMS_Template_ion_button_click_28_listener() { return ctx.add(); });
633
+ i0.ɵɵtext(29);
634
+ i0.ɵɵpipe(30, "translate");
632
635
  i0.ɵɵelementEnd()()()()()();
633
636
  } if (rf & 2) {
634
- const _r0 = i0.ɵɵreference(5);
635
- i0.ɵɵproperty("showHeader", false)("breakpoints", i0.ɵɵpureFunction0(26, _c14));
637
+ const _r0 = i0.ɵɵreference(7);
638
+ i0.ɵɵproperty("showHeader", false)("breakpoints", i0.ɵɵpureFunction0(29, _c14));
636
639
  i0.ɵɵadvance(2);
637
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(3, 17, "work.search.journal.activity.heading", ctx.dynamicParam));
640
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(3, 18, "work.search.journal.activity.heading", ctx.dynamicParam));
641
+ i0.ɵɵadvance(2);
642
+ i0.ɵɵproperty("innerHTML", i0.ɵɵpureFunction1(30, _c15, i0.ɵɵpipeBind1(5, 21, "work.search.journal.activity.details")), i0.ɵɵsanitizeHtml);
638
643
  i0.ɵɵadvance(2);
639
644
  i0.ɵɵproperty("formGroup", ctx.wsrForm);
640
645
  i0.ɵɵadvance(8);
641
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(13, 20, "work.search.journal.activity.type"));
646
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(15, 23, "work.search.journal.activity.type"));
642
647
  i0.ɵɵadvance(2);
643
648
  i0.ɵɵproperty("options", ctx.activityTypeComboMs)("formControl", ctx.activityType);
644
649
  i0.ɵɵadvance(1);
645
650
  i0.ɵɵclassMap("app-grid");
646
- i0.ɵɵproperty("field", ctx.activityType)("form", _r0)("errDef", i0.ɵɵpureFunction0(27, _c6));
651
+ i0.ɵɵproperty("field", ctx.activityType)("form", _r0)("errDef", i0.ɵɵpureFunction0(32, _c6));
647
652
  i0.ɵɵadvance(1);
648
653
  i0.ɵɵproperty("ngIf", ctx.displayJobApplicationQuestions || ctx.displayJobSearchQuestions);
649
654
  i0.ɵɵadvance(3);
@@ -651,14 +656,14 @@ export class WorkSearchEmployerComponentMS extends BasePage {
651
656
  i0.ɵɵadvance(1);
652
657
  i0.ɵɵproperty("ngIf", ctx.displayJobApplicationQuestions || ctx.displayJobSearchQuestions);
653
658
  i0.ɵɵadvance(4);
654
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(25, 22, "button.cancel"));
659
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(27, 25, "button.cancel"));
655
660
  i0.ɵɵadvance(3);
656
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(28, 24, "button.add"));
661
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(30, 27, "button.add"));
657
662
  } }, dependencies: [i4.IonButton, i4.IonCol, i4.IonGrid, i4.IonRow, i5.NgIf, i2.ɵNgNoValidate, i2.DefaultValueAccessor, i2.NgControlStatus, i2.NgControlStatusGroup, i2.MinLengthValidator, i2.MaxLengthValidator, i2.FormControlDirective, i2.FormGroupDirective, i6.Dialog, i7.InputText, i8.InputMask, i9.Calendar, i10.SelectButton, i11.ErrorComponent, i12.SearchEmployerComponent, i13.Dropdown, i14.StripInvisibleCharsDirective, i15.TranslatePipe] }); }
658
663
  }
659
664
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WorkSearchEmployerComponentMS, [{
660
665
  type: Component,
661
- args: [{ selector: 'app-work-search-employer-ms', template: "<p-dialog visible=\"true\" modal=\"true\" appendTo=\"body\" position=\"top\" [showHeader]=\"false\"\r\n [breakpoints]=\"{'1200px': '660px', '992px': '660px', '768px': '660px', '576px': '100vw'}\">\r\n <h4 style=\"color: var(--ion-color-grey); padding-left: 20px;\">{{'work.search.journal.activity.heading' |\r\n translate:dynamicParam }}</h4>\r\n <form [formGroup]=\"wsrForm\" #wsrFormDirective=\"ngForm\">\r\n <ion-grid>\r\n <ion-row>\r\n <ion-col class=\"ion-padding\" size=\"12\" sizeSm=\"12\" sizeXs=\"12\" sizeMd=\"6\" sizeLg=\"6\" sizeXl=\"6\">\r\n <div class=\"p-fluid p-formgrid\">\r\n <div class=\"field\">\r\n <label for=\"activityType\">{{'work.search.journal.activity.type' | translate}}</label>\r\n <app-dropdown [options]=\"activityTypeComboMs\" optionLabel=\"DESC\" optionValue=\"NAME\"\r\n [formControl]=\"activityType\" appendTo=\"body\" inputId=\"activityType\"></app-dropdown>\r\n <app-error [class]=\"'app-grid'\" [field]='activityType' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.'\r\n }\"></app-error>\r\n </div>\r\n\r\n <section *ngIf=\"displayJobApplicationQuestions || displayJobSearchQuestions\">\r\n <div class=\"field\">\r\n <label for=\"employerName\">{{'work.search.journal.employerName' | translate}}</label>\r\n <app-search-employer [formControl]=\"employerName\" (onFound)=\"setEmployer($event)\"\r\n [empType]=\"'REG'\"></app-search-employer>\r\n <app-error [class]=\"'app-grid'\" [field]='employerName' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.', pattern: '%, <, >, ^, _, {, } are not allowed'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\">\r\n <label for=\"line1\">{{'work.search.journal.streetAddress' | translate}}</label>\r\n <input id=\"line1\" type=\"input\" pInputText [formControl]=\"line1\" appStripInvisibleChars/>\r\n <app-error [class]=\"'app-grid'\" [field]='line1' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.', pattern: 'Only letters, numbers, spaces, commas, periods, apostrophes, hyphens, # and / allowed',\r\n maxlength: 'cannot exceed 40 characters'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\">\r\n <label for=\"city\">{{'work.search.journal.city' | translate}}</label>\r\n <input id=\"city\" type=\"input\" pInputText [formControl]=\"city\" appStripInvisibleChars/>\r\n <app-error [class]=\"'app-grid'\" [field]='city' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.',\r\n invalidwsCityLength: 'City should not exceed a length of 30 characters',\r\n pattern: 'City name can only contain letters, spaces, and hyphens',\r\n maxlength: 'cannot exceed 30 characters'\r\n }\"></app-error>\r\n </div>\r\n\r\n <ion-row>\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"state\">{{'work.search.journal.state'| translate}}</label>\r\n <app-dropdown inputId=\"state\" [options]=\"statesCombo\" optionLabel=\"DESC\" optionValue=\"NAME\"\r\n appendTo=\"body\" [formControl]=\"state\" inputId=\"state\"></app-dropdown>\r\n <app-error [class]=\"'app-grid'\" [field]='state' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n <ion-col size=\"1\"></ion-col>\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"zip\">{{'work.search.journal.zip'| translate}}</label>\r\n <input id=\"zip\" type=\"input\" pInputText [formControl]=\"zip\" minlength=\"5\" maxlength=\"9\" appStripInvisibleChars/>\r\n <app-error [class]=\"'app-grid'\" [field]='zip' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.',\r\n invalidLength: 'Zip code should be of 5 or 9 digits.',\r\n invalidNumber: 'Zip code should only have numbers.'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n\r\n </section>\r\n </div>\r\n </ion-col>\r\n <ion-col class=\"ion-padding\" size=\"12\" sizeSm=\"12\" sizeXs=\"12\" sizeMd=\"6\" sizeLg=\"6\" sizeXl=\"6\">\r\n <div class=\"p-fluid p-formgrid\">\r\n <div class=\"field\" *ngIf=\"displayJobApplicationQuestions || displayJobSearchQuestions\">\r\n <label for=\"workSearchDate\">{{'work.search.journal.applicationDate'| translate}}</label>\r\n <p-calendar [showIcon]=\"true\" inputId=\"workSearchDate\" appendTo=\"body\" [formControl]=\"workSearchDate\" dateFormat=\"mm/dd/yy\"\r\n [minDate]=\"sunDate\" [maxDate]=\"satDate\" [defaultDate]=\"sunDate\" [selectOtherMonths]=\"true\" placeholder=\"mm/dd/yyyy\" \r\n [monthNavigator]=\"true\" [yearNavigator]=\"true\" yearRange=\"1901:2050\" (onInput)=\"dateInput($event)\"></p-calendar> \r\n <app-error [class]=\"'app-grid'\" [field]='workSearchDate' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.',\r\n dateNotBetween: 'Date should be between ' + sunDateString + ' and ' + currentDateString + '.'\r\n }\"></app-error>\r\n </div>\r\n <section *ngIf=\"displayJobApplicationQuestions || displayJobSearchQuestions\">\r\n <div class=\"field\">\r\n <label for=\"positionAppliedFor\">{{'work.search.journal.jobTitle'| translate}}</label>\r\n <input id=\"positionAppliedFor\" type=\"input\" pInputText [formControl]=\"positionAppliedFor\" appStripInvisibleChars/>\r\n <app-error [class]=\"'app-grid'\" [field]='positionAppliedFor' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.',\r\n pattern: 'Job Title can only contain letters, spaces, and hyphens',\r\n maxlength: 'cannot exceed 50 characters'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div *ngIf=\"displayJobApplicationQuestions\">\r\n <div class=\"field\">\r\n <label for=\"contactMethod\">{{'work.search.journal.contactMethod'| translate}}</label>\r\n <p-selectButton [options]=\"workSearchMethodContactMs\" optionLabel=\"DESC\" optionValue=\"NAME\"\r\n [formControl]=\"contactMethod\"></p-selectButton>\r\n <app-error [class]=\"'app-grid'\" [field]='contactMethod' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"displayJobSearchQuestions\">\r\n <div class=\"field\">\r\n <label for=\"contactMethod\">{{'work.search.journal.contactMethodJobSearch'| translate}}</label>\r\n <p-selectButton [options]=\"workSearchMethodContactMs\" optionLabel=\"DESC\" optionValue=\"NAME\"\r\n [formControl]=\"contactMethod\"></p-selectButton>\r\n <app-error [class]=\"'app-grid'\" [field]='contactMethod' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n\r\n <div class=\"field\" *ngIf=\"contactMethod.value == 'TELE'\">\r\n <label for=\"employerPhone\">{{'work.search.journal.phoneNo' | translate}}</label>\r\n <p-inputMask inputId=\"employerPhone\" [formControl]=\"employerPhone\" mask=\"(999) 999-9999\"\r\n unmask=\"true\"></p-inputMask>\r\n <app-error [class]=\"'app-grid'\" [field]='employerPhone' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\" *ngIf=\"contactMethod.value == 'EMAL'\">\r\n <label for=\"employerEmail\">{{'work.search.journal.email' | translate}}</label>\r\n <input id=\"employerEmail\" type=\"input\" pInputText [formControl]=\"employerEmail\"\r\n placeholder=\"emailid@example.com\" appStripInvisibleChars/>\r\n <app-error [class]=\"'app-grid'\" [field]='employerEmail' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.',\r\n employerEmail: 'Invalid email address.',\r\n maxlength: 'cannot exceed 40 characters'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\" *ngIf=\"contactMethod.value == 'ONLI'\">\r\n <label for=\"employerWebsite\">{{'work.search.journal.website' | translate}}</label>\r\n <input id=\"employerWebsite\" type=\"input\" pInputText [formControl]=\"employerWebsite\" appStripInvisibleChars />\r\n <app-error [class]=\"'app-grid'\" [field]='employerWebsite' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.',\r\n invalidWebsite: 'Please enter a valid website address',\r\n maxlength: 'cannot exceed 40 characters'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\" *ngIf=\"contactMethod.value =='PRSN'\">\r\n <label for=\"empContactPersonName\">{{'work.search.journal.contactName' | translate}}</label>\r\n <input id=\"empContactPersonName\" type=\"input\" pInputText [formControl]=\"empContactPersonName\" appStripInvisibleChars/>\r\n <app-error [class]=\"'app-grid'\" [field]='empContactPersonName' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.',\r\n maxlength: 'cannot exceed 50 characters'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\" *ngIf=\"contactMethod.value =='PRSN'\">\r\n <label for=\"empContactPersonTitle\">{{'work.search.journal.contactTitle' | translate}}</label>\r\n <input id=\"empContactPersonTitle\" type=\"input\" pInputText [formControl]=\"empContactPersonTitle\" appStripInvisibleChars/>\r\n <app-error [class]=\"'app-grid'\" [field]='empContactPersonTitle' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.',\r\n maxlength: 'cannot exceed 50 characters'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\">\r\n <label for=\"searchResult\">{{'work.search.journal.result' | translate}}</label>\r\n <div *ngIf=\"activityType.value =='JOAP'\">\r\n <app-dropdown [options]=\"workSearchResultComboJobApplicationMs\" optionLabel=\"DESC\" optionValue=\"NAME\"\r\n [formControl]=\"searchResult\" appendTo=\"body\" inputId=\"searchResult\"></app-dropdown>\r\n <app-error [class]=\"'app-grid'\" [field]='searchResult' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.'\r\n }\"></app-error>\r\n </div>\r\n <div *ngIf=\"activityType.value =='JOSE'\">\r\n <app-dropdown [options]=\"workSearchResultComboJobSearchMs\" optionLabel=\"DESC\" optionValue=\"NAME\"\r\n [formControl]=\"searchResult\" appendTo=\"body\" inputId=\"searchResult\"></app-dropdown>\r\n <app-error [class]=\"'app-grid'\" [field]='searchResult' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row>\r\n <ion-col class=\"ion-text-right\">\r\n <ion-button shape=\"round\" fill=\"outline\" (click)=\"close()\" type=\"reset\">{{'button.cancel' |\r\n translate}}</ion-button>\r\n <ion-button shape=\"round\" (click)=\"add()\" type=\"submit\">{{'button.add' | translate}}</ion-button>\r\n </ion-col>\r\n </ion-row>\r\n </ion-grid>\r\n </form>\r\n</p-dialog>" }]
666
+ args: [{ selector: 'app-work-search-employer-ms', template: "<p-dialog visible=\"true\" modal=\"true\" appendTo=\"body\" position=\"top\" [showHeader]=\"false\"\r\n [breakpoints]=\"{'1200px': '660px', '992px': '660px', '768px': '660px', '576px': '100vw'}\">\r\n <h4 style=\"color: var(--ion-color-grey); padding-left: 20px;\">{{'work.search.journal.activity.heading' |\r\n translate:dynamicParam }}</h4>\r\n <h6 style=\"padding-left: 20px;\" [innerHTML]=\"['work.search.journal.activity.details' | translate]\">\r\n </h6>\r\n <form [formGroup]=\"wsrForm\" #wsrFormDirective=\"ngForm\">\r\n <ion-grid>\r\n <ion-row>\r\n <ion-col class=\"ion-padding\" size=\"12\" sizeSm=\"12\" sizeXs=\"12\" sizeMd=\"6\" sizeLg=\"6\" sizeXl=\"6\">\r\n <div class=\"p-fluid p-formgrid\">\r\n <div class=\"field\">\r\n <label for=\"activityType\">{{'work.search.journal.activity.type' | translate}}</label>\r\n <app-dropdown [options]=\"activityTypeComboMs\" optionLabel=\"DESC\" optionValue=\"NAME\"\r\n [formControl]=\"activityType\" appendTo=\"body\" inputId=\"activityType\"></app-dropdown>\r\n <app-error [class]=\"'app-grid'\" [field]='activityType' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.'\r\n }\"></app-error>\r\n </div>\r\n\r\n <section *ngIf=\"displayJobApplicationQuestions || displayJobSearchQuestions\">\r\n <div class=\"field\">\r\n <label for=\"employerName\">{{'work.search.journal.employerName' | translate}}</label>\r\n <app-search-employer [formControl]=\"employerName\" (onFound)=\"setEmployer($event)\"\r\n [empType]=\"'REG'\"></app-search-employer>\r\n <app-error [class]=\"'app-grid'\" [field]='employerName' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.', pattern: '%, <, >, ^, _, {, } are not allowed'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\">\r\n <label for=\"line1\">{{'work.search.journal.streetAddress' | translate}}</label>\r\n <input id=\"line1\" type=\"input\" pInputText [formControl]=\"line1\" appStripInvisibleChars/>\r\n <app-error [class]=\"'app-grid'\" [field]='line1' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.', pattern: 'Only letters, numbers, spaces, commas, periods, apostrophes, hyphens, # and / allowed',\r\n maxlength: 'cannot exceed 40 characters'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\">\r\n <label for=\"city\">{{'work.search.journal.city' | translate}}</label>\r\n <input id=\"city\" type=\"input\" pInputText [formControl]=\"city\" appStripInvisibleChars/>\r\n <app-error [class]=\"'app-grid'\" [field]='city' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.',\r\n invalidwsCityLength: 'City should not exceed a length of 30 characters',\r\n pattern: 'City name can only contain letters, spaces, and hyphens',\r\n maxlength: 'cannot exceed 30 characters'\r\n }\"></app-error>\r\n </div>\r\n\r\n <ion-row>\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"state\">{{'work.search.journal.state'| translate}}</label>\r\n <app-dropdown inputId=\"state\" [options]=\"statesCombo\" optionLabel=\"DESC\" optionValue=\"NAME\"\r\n appendTo=\"body\" [formControl]=\"state\" inputId=\"state\"></app-dropdown>\r\n <app-error [class]=\"'app-grid'\" [field]='state' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n <ion-col size=\"1\"></ion-col>\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"zip\">{{'work.search.journal.zip'| translate}}</label>\r\n <input id=\"zip\" type=\"input\" pInputText [formControl]=\"zip\" minlength=\"5\" maxlength=\"9\" appStripInvisibleChars/>\r\n <app-error [class]=\"'app-grid'\" [field]='zip' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.',\r\n invalidLength: 'Zip code should be of 5 or 9 digits.',\r\n invalidNumber: 'Zip code should only have numbers.'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n\r\n </section>\r\n </div>\r\n </ion-col>\r\n <ion-col class=\"ion-padding\" size=\"12\" sizeSm=\"12\" sizeXs=\"12\" sizeMd=\"6\" sizeLg=\"6\" sizeXl=\"6\">\r\n <div class=\"p-fluid p-formgrid\">\r\n <div class=\"field\" *ngIf=\"displayJobApplicationQuestions || displayJobSearchQuestions\">\r\n <label for=\"workSearchDate\">{{'work.search.journal.applicationDate'| translate}}</label>\r\n <p-calendar [showIcon]=\"true\" inputId=\"workSearchDate\" appendTo=\"body\" [formControl]=\"workSearchDate\" dateFormat=\"mm/dd/yy\"\r\n [minDate]=\"sunDate\" [maxDate]=\"satDate\" [defaultDate]=\"sunDate\" [selectOtherMonths]=\"true\" placeholder=\"mm/dd/yyyy\" \r\n [monthNavigator]=\"true\" [yearNavigator]=\"true\" yearRange=\"1901:2050\" (onInput)=\"dateInput($event)\"></p-calendar> \r\n <app-error [class]=\"'app-grid'\" [field]='workSearchDate' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.',\r\n dateNotBetween: 'Date should be between ' + sunDateString + ' and ' + currentDateString + '.'\r\n }\"></app-error>\r\n </div>\r\n <section *ngIf=\"displayJobApplicationQuestions || displayJobSearchQuestions\">\r\n <div class=\"field\">\r\n <label for=\"positionAppliedFor\">{{'work.search.journal.jobTitle'| translate}}</label>\r\n <input id=\"positionAppliedFor\" type=\"input\" pInputText [formControl]=\"positionAppliedFor\" appStripInvisibleChars/>\r\n <app-error [class]=\"'app-grid'\" [field]='positionAppliedFor' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.',\r\n pattern: 'Job Title can only contain letters, spaces, and hyphens',\r\n maxlength: 'cannot exceed 50 characters'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div *ngIf=\"displayJobApplicationQuestions\">\r\n <div class=\"field\">\r\n <label for=\"contactMethod\">{{'work.search.journal.contactMethod'| translate}}</label>\r\n <p-selectButton [options]=\"workSearchMethodContactMs\" optionLabel=\"DESC\" optionValue=\"NAME\"\r\n [formControl]=\"contactMethod\"></p-selectButton>\r\n <app-error [class]=\"'app-grid'\" [field]='contactMethod' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"displayJobSearchQuestions\">\r\n <div class=\"field\">\r\n <label for=\"contactMethod\">{{'work.search.journal.contactMethodJobSearch'| translate}}</label>\r\n <p-selectButton [options]=\"workSearchMethodContactMs\" optionLabel=\"DESC\" optionValue=\"NAME\"\r\n [formControl]=\"contactMethod\"></p-selectButton>\r\n <app-error [class]=\"'app-grid'\" [field]='contactMethod' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n\r\n <div class=\"field\" *ngIf=\"contactMethod.value == 'TELE'\">\r\n <label for=\"employerPhone\">{{'work.search.journal.phoneNo' | translate}}</label>\r\n <p-inputMask inputId=\"employerPhone\" [formControl]=\"employerPhone\" mask=\"(999) 999-9999\"\r\n unmask=\"true\"></p-inputMask>\r\n <app-error [class]=\"'app-grid'\" [field]='employerPhone' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\" *ngIf=\"contactMethod.value == 'EMAL'\">\r\n <label for=\"employerEmail\">{{'work.search.journal.email' | translate}}</label>\r\n <input id=\"employerEmail\" type=\"input\" pInputText [formControl]=\"employerEmail\"\r\n placeholder=\"emailid@example.com\" appStripInvisibleChars/>\r\n <app-error [class]=\"'app-grid'\" [field]='employerEmail' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.',\r\n employerEmail: 'Invalid email address.',\r\n maxlength: 'cannot exceed 40 characters'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\" *ngIf=\"contactMethod.value == 'ONLI'\">\r\n <label for=\"employerWebsite\">{{'work.search.journal.website' | translate}}</label>\r\n <input id=\"employerWebsite\" type=\"input\" pInputText [formControl]=\"employerWebsite\" appStripInvisibleChars />\r\n <app-error [class]=\"'app-grid'\" [field]='employerWebsite' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.',\r\n invalidWebsite: 'Please enter a valid website address',\r\n maxlength: 'cannot exceed 40 characters'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\" *ngIf=\"contactMethod.value =='PRSN'\">\r\n <label for=\"empContactPersonName\">{{'work.search.journal.contactName' | translate}}</label>\r\n <input id=\"empContactPersonName\" type=\"input\" pInputText [formControl]=\"empContactPersonName\" appStripInvisibleChars/>\r\n <app-error [class]=\"'app-grid'\" [field]='empContactPersonName' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.',\r\n maxlength: 'cannot exceed 50 characters'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\" *ngIf=\"contactMethod.value =='PRSN'\">\r\n <label for=\"empContactPersonTitle\">{{'work.search.journal.contactTitle' | translate}}</label>\r\n <input id=\"empContactPersonTitle\" type=\"input\" pInputText [formControl]=\"empContactPersonTitle\" appStripInvisibleChars/>\r\n <app-error [class]=\"'app-grid'\" [field]='empContactPersonTitle' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.',\r\n maxlength: 'cannot exceed 50 characters'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\">\r\n <label for=\"searchResult\">{{'work.search.journal.result' | translate}}</label>\r\n <div *ngIf=\"activityType.value =='JOAP'\">\r\n <app-dropdown [options]=\"workSearchResultComboJobApplicationMs\" optionLabel=\"DESC\" optionValue=\"NAME\"\r\n [formControl]=\"searchResult\" appendTo=\"body\" inputId=\"searchResult\"></app-dropdown>\r\n <app-error [class]=\"'app-grid'\" [field]='searchResult' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.'\r\n }\"></app-error>\r\n </div>\r\n <div *ngIf=\"activityType.value =='JOSE'\">\r\n <app-dropdown [options]=\"workSearchResultComboJobSearchMs\" optionLabel=\"DESC\" optionValue=\"NAME\"\r\n [formControl]=\"searchResult\" appendTo=\"body\" inputId=\"searchResult\"></app-dropdown>\r\n <app-error [class]=\"'app-grid'\" [field]='searchResult' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row>\r\n <ion-col class=\"ion-text-right\">\r\n <ion-button shape=\"round\" fill=\"outline\" (click)=\"close()\" type=\"reset\">{{'button.cancel' |\r\n translate}}</ion-button>\r\n <ion-button shape=\"round\" (click)=\"add()\" type=\"submit\">{{'button.add' | translate}}</ion-button>\r\n </ion-col>\r\n </ion-row>\r\n </ion-grid>\r\n </form>\r\n</p-dialog>" }]
662
667
  }], () => [{ type: i1.WeeklyCertServiceV2 }, { type: i2.UntypedFormBuilder }, { type: i3.UtilService }], { wsrFormDirective: [{
663
668
  type: ViewChild,
664
669
  args: ['wsrFormDirective', { static: false }]
@@ -682,4 +687,4 @@ export class WorkSearchEmployerComponentMS extends BasePage {
682
687
  type: Input
683
688
  }] }); })();
684
689
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(WorkSearchEmployerComponentMS, { className: "WorkSearchEmployerComponentMS", filePath: "lib\\components\\weekly-work-search-employer-ms\\work-search-employer-ms.component.ts", lineNumber: 18 }); })();
685
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29yay1zZWFyY2gtZW1wbG95ZXItbXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJldXNhLWFwcC1saWIvc3JjL2xpYi9jb21wb25lbnRzL3dlZWtseS13b3JrLXNlYXJjaC1lbXBsb3llci1tcy93b3JrLXNlYXJjaC1lbXBsb3llci1tcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmV1c2EtYXBwLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvd2Vla2x5LXdvcmstc2VhcmNoLWVtcGxveWVyLW1zL3dvcmstc2VhcmNoLWVtcGxveWVyLW1zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RyxPQUFPLEVBQWdELFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTFGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFdkQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFFN0YsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lDUzdDLCtCQUE2RSxhQUFBLGdCQUFBO0lBRS9DLFlBQWtEOztJQUFBLGlCQUFRO0lBQ3BGLCtDQUNvQjtJQUQ4QixzTUFBVyxlQUFBLDBCQUFtQixDQUFBLElBQUM7SUFDN0QsaUJBQXNCO0lBQzFDLCtCQUVlO0lBQ2pCLGlCQUFNO0lBRU4sOEJBQW1CLGdCQUFBO0lB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QUNFLDZCQUE2QjsrR0FRaEMsZ0JBQWdCO2tCQUR0QixTQUFTO21CQUFDLGtCQUFrQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtZQUloRCxPQUFPO2tCQUROLE1BQU07WUFJUCxPQUFPO2tCQUROLE1BQU07WUFJQSxpQkFBaUI7a0JBRHZCLEtBQUs7WUFJQyxJQUFJO2tCQURWLEtBQUs7WUFJQyxPQUFPO2tCQURiLEtBQUs7WUFJQyxPQUFPO2tCQURiLEtBQUs7WUFJQyxhQUFhO2tCQURuQixLQUFLO1lBSUMsYUFBYTtrQkFEbkIsS0FBSztZQUlDLE9BQU87a0JBRGIsS0FBSzs7a0ZBN0JLLDZCQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdGb3JtLCBVbnR5cGVkRm9ybUJ1aWxkZXIsIFVudHlwZWRGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFV0aWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdXRpbC91dGlsLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBCYXNlUGFnZSB9IGZyb20gJy4uLy4uL3BhZ2VzL0Jhc2VQYWdlJztcclxuaW1wb3J0IHsgQ29tYm9PcHRpb24gfSBmcm9tICcuLi8uLi9tb2RlbHMvY29tYm8tbW9kZWwnO1xyXG5pbXBvcnQgeyBFbXBsb3llclNlYXJjaFJlc3VsdCB9IGZyb20gJy4uLy4uL21vZGVscy9FbXBsb3llckRldGFpbFNlYXJjaFJlc3VsdCc7XHJcbmltcG9ydCB7IFdvcmtTZWFyY2hSZWNvcmRNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy93ZWVrbHktY2VydC93b3JrLXNlYXJjaC1yZWNvcmQtdjItbW9kZWwnO1xyXG5pbXBvcnQgeyBXZWVrbHlDZXJ0U2VydmljZVYyIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvd2Vla2x5LWNlcnQvd2Vla2x5LWNlcnQtdjIuc2VydmljZSc7XHJcbmltcG9ydCB7IEFwcFZhbGlkYXRvcnMgfSBmcm9tICcuLi8uLi92YWxpZGF0aW9ucy9BcHBWYWxpZGF0b3JzJztcclxuaW1wb3J0IHsgTGliQ29uc3RhbnRzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL0xpYkNvbnN0YW50cyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC13b3JrLXNlYXJjaC1lbXBsb3llci1tcycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3dvcmstc2VhcmNoLWVtcGxveWVyLW1zLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi93b3JrLXNlYXJjaC1lbXBsb3llci1tcy5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIFdvcmtTZWFyY2hFbXBsb3llckNvbXBvbmVudE1TIGV4dGVuZHMgQmFzZVBhZ2UgaW1wbGVtZW50cyBPbkluaXQgIHtcclxuICAgXHJcbiAgQFZpZXdDaGlsZCgnd3NyRm9ybURpcmVjdGl2ZScsIHsgc3RhdGljOiBmYWxzZSB9KVxyXG4gIHB1YmxpYyB3c3JGb3JtRGlyZWN0aXZlOiBOZ0Zvcm07XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHN1Y2Nlc3M6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBvbkNsb3NlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgcmVjb3JkSW5kZXhUb0VkaXQ6IG51bWJlcjtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZGF0YTogV29ya1NlYXJjaFJlY29yZE1vZGVsO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzYXREYXRlOiBEYXRlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzdW5EYXRlOiBEYXRlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzYXREYXRlU3RyaW5nO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzdW5EYXRlU3RyaW5nO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBqb3VybmFsOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHB1YmxpYyBhY3Rpdml0eVR5cGVDb21ib01zID0gQ29tYm9PcHRpb24uQWN0aXZpdHlUeXBlQ29tYm9NcztcclxuICBwdWJsaWMgd29ya1NlYXJjaE1ldGhvZENvbnRhY3RNcyA9IENvbWJvT3B0aW9uLldvcmtTZWFyY2hNZXRob2RDb250YWN0TXM7XHJcbiAgcHVibGljIHdvcmtTZWFyY2hSZXN1bHRDb21ib0pvYkFwcGxpY2F0aW9uTXMgPSBDb21ib09wdGlvbi5Xb3JrU2VhcmNoUmVzdWx0Q29tYm9Kb2JBcHBsaWNhdGlvbk1zO1xyXG4gIHB1YmxpYyB3b3JrU2VhcmNoUmVzdWx0Q29tYm9Kb2JTZWFyY2hNcyA9IENvbWJvT3B0aW9uLldvcmtTZWFyY2hSZXN1bHRDb21ib0pvYlNlYXJjaE1zO1xyXG4gIHB1YmxpYyBzdGF0ZXNDb21ibyA9IENvbWJvT3B0aW9uLlN0YXRlc0NvbWJvO1xyXG4gIHB1YmxpYyB3b3JrU2VhcmNoUmVjb3JkRGF0YSA6IFdvcmtTZWFyY2hSZWNvcmRNb2RlbCA9IG51bGw7XHJcblxyXG4gIGR5bmFtaWNQYXJhbTogYW55O1xyXG4gIHB1YmxpYyB3c3JGb3JtIDogVW50eXBlZEZvcm1Hcm91cDtcclxuICBwdWJsaWMgaXNSZWFkT25seSA6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBkaXNwbGF5Sm9iU2VhcmNoUXVlc3Rpb25zIDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGRpc3BsYXlKb2JBcHBsaWNhdGlvblF1ZXN0aW9ucyA6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBjdXJyZW50RGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgY3VycmVudERhdGVTdHJpbmcgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCgnZW4tVVMnKS5mb3JtYXQodGhpcy5jdXJyZW50RGF0ZSk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB3Y1NlcnZpY2U6IFdlZWtseUNlcnRTZXJ2aWNlVjIsIHB1YmxpYyBmb3JtQnVpbGRlcjogVW50eXBlZEZvcm1CdWlsZGVyLCBwdWJsaWMgdXRpbDogVXRpbFNlcnZpY2UpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGlmICghdGhpcy5qb3VybmFsKSB7XHJcbiAgICAgIHRoaXMuc2F0RGF0ZSA9IHRoaXMudXRpbC5nZXRFbnRlcmVkRGF0ZSh0aGlzLndjU2VydmljZS5nZXRTYXR1cmRheURhdGUoKSlcclxuICAgICAgdGhpcy5zdW5EYXRlID0gdGhpcy51dGlsLmdldEVudGVyZWREYXRlKHRoaXMud2NTZXJ2aWNlLmdldFN1bmRheURhdGUoKSk7XHJcbiAgICAgIHRoaXMuc2F0RGF0ZVN0cmluZyA9IHRoaXMud2NTZXJ2aWNlLmdldFNhdHVyZGF5RGF0ZUFzU3RyaW5nKCk7XHJcbiAgICAgIHRoaXMuc3VuRGF0ZVN0cmluZyA9IHRoaXMud2NTZXJ2aWNlLmdldFN1bmRheURhdGVBc1N0cmluZygpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5keW5hbWljUGFyYW0gPSB7XHJcbiAgICAgICdzYXR1cmRheV9kYXRlJzogdGhpcy5zYXREYXRlU3RyaW5nLFxyXG4gICAgICAnc3VuZGF5X2RhdGUnOiB0aGlzLnN1bkRhdGVTdHJpbmcsXHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMuaW5pdGlsaXplV29ya1NlYXJjaEZvcm0oKTtcclxuICAgIHRoaXMudHJpbUlucHV0SGVscGVyKCk7XHJcbiAgfVxyXG5cclxuICBkYXRlSW5wdXQoZXZlbnQpe1xyXG4gICAgbGV0IGN1cnJlbnRWYWx1ZSA6IHN0cmluZyA9IGV2ZW50LnNyY0VsZW1lbnQudmFsdWU7XHJcbiAgICBpZihjdXJyZW50VmFsdWUpe1xyXG4gICAgICAgIGlmKGN1cnJlbnRWYWx1ZS5sZW5ndGggPT0gMiAmJiBjdXJyZW50VmFsdWUuY2hhckF0KDIpICE9ICcvJyl7XHJcbiAgICAgICAgICAgIGV2ZW50LnRhcmdldC52YWx1ZSA9IGN1cnJlbnRWYWx1ZSArIFwiL1wiO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZihjdXJyZW50VmFsdWUubGVuZ3RoID09IDUgJiYgY3VycmVudFZhbHVlLmNoYXJBdCg1KSAhPSAnLycpe1xyXG4gICAgICAgICAgICBldmVudC50YXJnZXQudmFsdWUgPSBjdXJyZW50VmFsdWUgKyBcIi9cIjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB0cmltSW5wdXRIZWxwZXIoKSB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5lbXBsb3llckVtYWlsLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsID0+IHtcclxuICAgICAgICBpZiAodmFsKSB7XHJcbiAgICAgICAgICBjb25zdCBzYW5pdGl6ZWQgPSB2YWwucmVwbGFjZSgvXFxzKy9nLCAnJyk7XHJcbiAgICAgICAgICBpZiAodmFsICE9PSBzYW5pdGl6ZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5lbXBsb3llckVtYWlsLnNldFZhbHVlKHNhbml0aXplZCwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9LCAwKTtcclxuICB9XHJcblxyXG4gIGluaXRpbGl6ZVdvcmtTZWFyY2hGb3JtKCkge1xyXG4gICAgbGV0IHdzcjogV29ya1NlYXJjaFJlY29yZE1vZGVsO1xyXG4gICAgaWYgKHRoaXMuZGF0YSkge1xyXG4gICAgICB3c3IgPSB0aGlzLmRhdGE7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMucmVjb3JkSW5kZXhUb0VkaXQgPT0gdW5kZWZpbmVkIHx8IHRoaXMucmVjb3JkSW5kZXhUb0VkaXQgPT0gbnVsbCkge1xyXG4gICAgICB3c3IgPSBuZXcgV29ya1NlYXJjaFJlY29yZE1vZGVsKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB3c3IgPSB0aGlzLndjU2VydmljZS5nZXRXb3JrU2VhcmNoUmVjb3JkcygpW3RoaXMucmVjb3JkSW5kZXhUb0VkaXRdO1xyXG4gICAgfVxyXG4gICAgdGhpcy53c3JGb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XHJcbiAgICAgICdhY3Rpdml0eVR5cGUnOiBbd3NyLmFjdGl2aXR5VHlwZSwgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICAgICd3b3JrU2VhcmNoRGF0ZSc6IFt3c3Iud29ya1NlYXJjaERhdGUgIT0gbnVsbCA/IHRoaXMuZ2V0RGF0ZSh3c3Iud29ya1NlYXJjaERhdGUpIDogJycsIFZhbGlkYXRvcnMuY29tcG9zZShbVmFsaWRhdG9ycy5yZXF1aXJlZCwgQXBwVmFsaWRhdG9ycy5pc0JldHdlZW4odGhpcy5zdW5EYXRlLCB0aGlzLmN1cnJlbnREYXRlKV0pXSxcclxuICAgICAgJ2VtcGxveWVyTmFtZSc6IFt3c3IuZW1wbG95ZXJOYW1lXSxcclxuICAgICAgJ2NpdHknOiBbd3NyLmNpdHldLFxyXG4gICAgICAnbGluZTEnOiBbd3NyLmxpbmUxXSxcclxuICAgICAgJ2xpbmUyJzogW3dzci5saW5lMl0sXHJcbiAgICAgICdzdGF0ZSc6IFt3c3Iuc3RhdGUgIT0gbnVsbCA/IHdzci5zdGF0ZSA6IExpYkNvbnN0YW50cy5TVEFURV0sXHJcbiAgICAgICdjb250YWN0TWV0aG9kJzogW3dzci5jb250YWN0TWV0aG9kICE9IG51bGwgPyB3c3IuY29udGFjdE1ldGhvZCA6ICcnXSxcclxuICAgICAgJ2VtcENvbnRhY3RQZXJzb25OYW1lJzogW3dzci5lbXBDb250YWN0UGVyc29uTmFtZV0sXHJcbiAgICAgICdlbXBDb250YWN0UGVyc29uVGl0bGUnOiBbd3NyLmVtcENvbnRhY3RQZXJzb25UaXRsZV0sXHJcbiAgICAgICd6aXAnOiBbd3NyLnppcF0sXHJcbiAgICAgICdlbXBsb3llclBob25lJzogW3dzci5lbXBsb3llclBob25lICE9IG51bGwgPyB3c3IuZW1wbG95ZXJQaG9uZSA6ICcnXSxcclxuICAgICAgJ2VtcGxveWVyRW1haWwnOiBbd3NyLmVtcGxveWVyRW1haWxdLFxyXG4gICAgICAnZW1wbG95ZXJXZWJzaXRlJzogW3dzci5lbXBsb3llcldlYnNpdGVdLFxyXG4gICAgICAnZW1wbG95ZXJGYXgnOiBbd3NyLmVtcGxveWVyRmF4ICE9IG51bGwgPyB3c3IuZW1wbG95ZXJGYXggOiAnJ10sXHJcbiAgICAgICdwb3NpdGlvbkFwcGxpZWRGb3InOiBbd3NyLnBvc2l0aW9uQXBwbGllZEZvcl0sXHJcbiAgICAgICdzZWFyY2hSZXN1bHQnOiBbd3NyLnNlYXJjaFJlc3VsdF0sXHJcbiAgICAgICd3aW5nc1JlZmVycmFsV29ya1NlYXJjaElkJzogW3dzci53aW5nc1JlZmVycmFsV29ya1NlYXJjaElkXSxcclxuICAgICAgJ2NsYWltYW50V29ya1NlYXJjaEpvdXJuYWxJZCc6IFt3c3IuY2xhaW1hbnRXb3JrU2VhcmNoSm91cm5hbElkXSxcclxuICAgICAgJ3dzcklkJzogW3dzci53c3JJZF1cclxuICAgIH0pO1xyXG5cclxuICAgIGlmICh3c3IuYWN0aXZpdHlUeXBlID09ICdKT0FQJykge1xyXG4gICAgICB0aGlzLmRpc3BsYXlKb2JBcHBsaWNhdGlvblF1ZXN0aW9ucyA9IHRydWU7XHJcbiAgICB9IGVsc2UgaWYgKHdzci5hY3Rpdml0eVR5cGUgPT0gJ0pPU0UnKSB7XHJcbiAgICAgIHRoaXMuZGlzcGxheUpvYlNlYXJjaFF1ZXN0aW9ucyA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHdzci53aW5nc1JlZmVycmFsV29ya1NlYXJjaElkICE9IG51bGwgJiYgd3NyLndpbmdzUmVmZXJyYWxXb3JrU2VhcmNoSWQgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMuaXNSZWFkT25seSA9IHRydWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmlzUmVhZE9ubHkgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHtcclxuICAgICAgdGhpcy5jb250YWN0TWV0aG9kLnNldFZhbHVlKHdzci5jb250YWN0TWV0aG9kICE9IG51bGwgPyB3c3IuY29udGFjdE1ldGhvZCA6ICcnKTtcclxuXHJcbiAgICAgIHRoaXMuY29udGFjdE1ldGhvZC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbCA9PiB7XHJcbiAgICAgICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB0aGlzLnNldENvbnRhY3RJbmZvVmFsaWRhdGlvbih2YWwpKTtcclxuICAgICAgICBcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMuYWN0aXZpdHlUeXBlLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsID0+IHtcclxuICAgICAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHRoaXMuc2V0QWN0aXZpdHlUeXBlVmFsaWRhdGlvbih2YWwpKTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgICB0aGlzLnNldENvbnRhY3RJbmZvVmFsaWRhdGlvbih0aGlzLmNvbnRhY3RNZXRob2QudmFsdWUpO1xyXG4gICAgICB0aGlzLnNldEFjdGl2aXR5VHlwZVZhbGlkYXRpb24odGhpcy5hY3Rpdml0eVR5cGUudmFsdWUpO1xyXG5cclxuICAgIH0pO1xyXG5cclxuICB9XHJcblxyXG4gIHNldEFjdGl2aXR5VHlwZVZhbGlkYXRpb24odmFsOiBhbnkpIHtcclxuICAgIHRoaXMuZGlzcGxheUpvYkFwcGxpY2F0aW9uUXVlc3Rpb25zID0gZmFsc2U7XHJcbiAgICB0aGlzLmRpc3BsYXlKb2JTZWFyY2hRdWVzdGlvbnMgPSBmYWxzZTtcclxuICAgIGlmKHZhbCA9PSAnSk9BUCcgKXtcclxuICAgICAgdGhpcy5kaXNwbGF5Sm9iQXBwbGljYXRpb25RdWVzdGlvbnMgPSB0cnVlO1xyXG4gICAgICB0aGlzLmRpc3BsYXlKb2JTZWFyY2hRdWVzdGlvbnMgPSBmYWxzZTtcclxuXHJcbiAgICAgIHRoaXMuZW1wbG95ZXJOYW1lLmFkZFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMucGF0dGVybigvXig/IS4qWyU8PlxcXl97fV0pW0EtWmEtejAtOVxcc1xcLiwmJygpIyFAOiRcXC9cXFxcXFwtXFwrP1wiXSskLyldKTtcclxuICAgICAgdGhpcy5lbXBsb3llck5hbWUudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgICB0aGlzLmxpbmUxLmFkZFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMucGF0dGVybigvXlswLTlBLVphLXpcXHMsJ1xcLVxcLiNcXC9dKyQvKSxWYWxpZGF0b3JzLm1heExlbmd0aCg0MCldKTtcclxuICAgICAgdGhpcy5saW5lMS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICAgIHRoaXMuY2l0eS5hZGRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLnBhdHRlcm4oL14oPyEtKVtBLVphLXogLV0qJC8pLFZhbGlkYXRvcnMubWF4TGVuZ3RoKDMwKV0pO1xyXG4gICAgICB0aGlzLmNpdHkudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5zdGF0ZSk7XHJcbiAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLnppcCk7XHJcbiAgICAgIHRoaXMucG9zaXRpb25BcHBsaWVkRm9yLmFkZFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMucGF0dGVybigvXig/IS0pW0EtWmEtejAtOSAtXSokLyksVmFsaWRhdG9ycy5tYXhMZW5ndGgoNTApXSk7XHJcbiAgICAgIHRoaXMucG9zaXRpb25BcHBsaWVkRm9yLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuY29udGFjdE1ldGhvZCk7XHJcbiAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLnNlYXJjaFJlc3VsdCk7XHJcbiAgICB9XHJcbiAgICBpZih2YWwgPT0gJ0pPU0UnKXtcclxuICAgICAgdGhpcy5kaXNwbGF5Sm9iU2VhcmNoUXVlc3Rpb25zID0gdHJ1ZTtcclxuICAgICAgdGhpcy5kaXNwbGF5Sm9iQXBwbGljYXRpb25RdWVzdGlvbnMgPSBmYWxzZTtcclxuXHJcbiAgICAgIHRoaXMuZW1wbG95ZXJOYW1lLmFkZFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMucGF0dGVybigvXig/IS4qWyU8PlxcXl97fV0pW0EtWmEtejAtOVxcc1xcLiwmJygpIyFAOiRcXC9cXFxcXFwtXFwrP1wiXSskLyldKTtcclxuICAgICAgdGhpcy5lbXBsb3llck5hbWUudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgICB0aGlzLmxpbmUxLmFkZFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMucGF0dGVybigvXlswLTlBLVphLXpcXHMsJ1xcLVxcLiNcXC9dKyQvKSxWYWxpZGF0b3JzLm1heExlbmd0aCg0MCldKTtcclxuICAgICAgdGhpcy5saW5lMS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICAgIHRoaXMuY2l0eS5hZGRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLnBhdHRlcm4oL14oPyEtKVtBLVphLXogLV0qJC8pLFZhbGlkYXRvcnMubWF4TGVuZ3RoKDMwKV0pO1xyXG4gICAgICB0aGlzLmNpdHkudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5zdGF0ZSk7XHJcbiAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLnppcCk7XHJcbiAgICAgIHRoaXMucG9zaXRpb25BcHBsaWVkRm9yLmFkZFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMucGF0dGVybigvXig/IS0pW0EtWmEtejAtOSAtXSokLyksVmFsaWRhdG9ycy5tYXhMZW5ndGgoNTApXSk7XHJcbiAgICAgIHRoaXMucG9zaXRpb25BcHBsaWVkRm9yLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuY29udGFjdE1ldGhvZCk7XHJcbiAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLnNlYXJjaFJlc3VsdCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRDb250YWN0SW5mb1ZhbGlkYXRpb24odmFsOiBhbnkpIHtcclxuICAgIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4ge1xyXG4gICAgICBpZiAodmFsID09ICdURUxFJykge1xyXG4gICAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLmVtcGxveWVyUGhvbmUpO1xyXG4gICAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5lbXBDb250YWN0UGVyc29uTmFtZSk7XHJcbiAgICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLmVtcENvbnRhY3RQZXJzb25UaXRsZSk7XHJcbiAgICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLmVtcGxveWVyRW1haWwpO1xyXG4gICAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5lbXBsb3llcldlYnNpdGUpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh2YWwgPT0gJ0VNQUwnKSB7XHJcbiAgICAgICAgdGhpcy51dGlsLnNldFZhbGlkYXRpb24odGhpcy5lbXBsb3llckVtYWlsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5lbWFpbCwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoNDApXSk7XHJcbiAgICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLmVtcGxveWVyUGhvbmUpO1xyXG4gICAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5lbXBDb250YWN0UGVyc29uTmFtZSk7XHJcbiAgICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLmVtcENvbnRhY3RQZXJzb25UaXRsZSk7XHJcbiAgICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLmVtcGxveWVyV2Vic2l0ZSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHZhbCA9PSAnT05MSScpIHtcclxuICAgICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5lbXBsb3llcldlYnNpdGUpO1xyXG4gICAgICAgIHRoaXMudXRpbC5zZXRWYWxpZGF0aW9uKHRoaXMuZW1wbG95ZXJXZWJzaXRlLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgQXBwVmFsaWRhdG9ycy5pc1ZhbGlkV2Vic2l0ZSwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoNDApXSlcclxuICAgICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuZW1wbG95ZXJFbWFpbCk7XHJcbiAgICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLmVtcGxveWVyUGhvbmUpO1xyXG4gICAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5lbXBDb250YWN0UGVyc29uTmFtZSk7XHJcbiAgICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLmVtcENvbnRhY3RQZXJzb25UaXRsZSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHZhbCA9PSAnUFJTTicpIHtcclxuICAgICAgICB0aGlzLnV0aWwuc2V0VmFsaWRhdGlvbih0aGlzLmVtcENvbnRhY3RQZXJzb25OYW1lLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoNTApXSk7XHJcbiAgICAgICAgdGhpcy51dGlsLnNldFZhbGlkYXRpb24odGhpcy5lbXBDb250YWN0UGVyc29uVGl0bGUsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1heExlbmd0aCg1MCldKTtcclxuICAgICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuZW1wbG95ZXJXZWJzaXRlKTtcclxuICAgICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuZW1wbG95ZXJFbWFpbCk7XHJcbiAgICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLmVtcGxveWVyUGhvbmUpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldERhdGUod3NEYXRlKTogRGF0ZSB7XHJcbiAgICBpZighKHdzRGF0ZSBpbnN0YW5jZW9mIERhdGUpKXtcclxuICAgICAgcmV0dXJuIHRoaXMudXRpbC5nZXRFbnRlcmVkRGF0ZSh3c0RhdGUpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHdzRGF0ZTtcclxuICB9XHJcblxyXG4gIGdldCBhY3Rpdml0eVR5cGUoKXtcclxuICAgIHJldHVybiB0aGlzLndzckZvcm0uY29udHJvbHNbJ2FjdGl2aXR5VHlwZSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHdvcmtTZWFyY2hEYXRlKCl7XHJcbiAgICByZXR1cm4gdGhpcy53c3JGb3JtLmNvbnRyb2xzWyd3b3JrU2VhcmNoRGF0ZSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGVtcGxveWVyTmFtZSgpe1xyXG4gICAgcmV0dXJuIHRoaXMud3NyRm9ybS5jb250cm9sc1snZW1wbG95ZXJOYW1lJ107XHJcbiAgfVxyXG5cclxuICBnZXQgY2l0eSgpe1xyXG4gICAgcmV0dXJuIHRoaXMud3NyRm9ybS5jb250cm9sc1snY2l0eSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGxpbmUxKCl7XHJcbiAgICByZXR1cm4gdGhpcy53c3JGb3JtLmNvbnRyb2xzWydsaW5lMSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGxpbmUyKCl7XHJcbiAgICByZXR1cm4gdGhpcy53c3JGb3JtLmNvbnRyb2xzWydsaW5lMiddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHN0YXRlKCl7XHJcbiAgICByZXR1cm4gdGhpcy53c3JGb3JtLmNvbnRyb2xzWydzdGF0ZSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGNvbnRhY3RNZXRob2QoKXtcclxuICAgIHJldHVybiB0aGlzLndzckZvcm0uY29udHJvbHNbJ2NvbnRhY3RNZXRob2QnXTtcclxuICB9XHJcblxyXG4gIGdldCBlbXBDb250YWN0UGVyc29uTmFtZSgpe1xyXG4gICAgcmV0dXJuIHRoaXMud3NyRm9ybS5jb250cm9sc1snZW1wQ29udGFjdFBlcnNvbk5hbWUnXTtcclxuICB9XHJcblxyXG4gIGdldCBlbXBDb250YWN0UGVyc29uVGl0bGUoKXtcclxuICAgIHJldHVybiB0aGlzLndzckZvcm0uY29udHJvbHNbJ2VtcENvbnRhY3RQZXJzb25UaXRsZSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHppcCgpe1xyXG4gICAgcmV0dXJuIHRoaXMud3NyRm9ybS5jb250cm9sc1snemlwJ107XHJcbiAgfVxyXG5cclxuICBnZXQgZW1wbG95ZXJQaG9uZSgpe1xyXG4gICAgcmV0dXJuIHRoaXMud3NyRm9ybS5jb250cm9sc1snZW1wbG95ZXJQaG9uZSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGVtcGxveWVyRW1haWwoKXtcclxuICAgIHJldHVybiB0aGlzLndzckZvcm0uY29udHJvbHNbJ2VtcGxveWVyRW1haWwnXTtcclxuICB9XHJcblxyXG4gIGdldCBlbXBsb3llcldlYnNpdGUoKXtcclxuICAgIHJldHVybiB0aGlzLndzckZvcm0uY29udHJvbHNbJ2VtcGxveWVyV2Vic2l0ZSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGVtcGxveWVyRmF4KCl7XHJcbiAgICByZXR1cm4gdGhpcy53c3JGb3JtLmNvbnRyb2xzWydlbXBsb3llckZheCddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHBvc2l0aW9uQXBwbGllZEZvcigpe1xyXG4gICAgcmV0dXJuIHRoaXMud3NyRm9ybS5jb250cm9sc1sncG9zaXRpb25BcHBsaWVkRm9yJ107XHJcbiAgfVxyXG5cclxuICBnZXQgc2VhcmNoUmVzdWx0KCl7XHJcbiAgICByZXR1cm4gdGhpcy53c3JGb3JtLmNvbnRyb2xzWydzZWFyY2hSZXN1bHQnXTtcclxuICB9XHJcblxyXG4gIGdldCB3aW5nc1JlZmVycmFsV29ya1NlYXJjaElkKCl7XHJcbiAgICByZXR1cm4gdGhpcy53c3JGb3JtLmNvbnRyb2xzWyd3aW5nc1JlZmVycmFsV29ya1NlYXJjaElkJ107XHJcbiAgfVxyXG5cclxuICBnZXQgY2xhaW1hbnRXb3JrU2VhcmNoSm91cm5hbElkKCl7XHJcbiAgICByZXR1cm4gdGhpcy53c3JGb3JtLmNvbnRyb2xzWydjbGFpbWFudFdvcmtTZWFyY2hKb3VybmFsSWQnXTtcclxuICB9XHJcblxyXG4gIGdldCB3c3JJZCgpe1xyXG4gICAgcmV0dXJuIHRoaXMud3NyRm9ybS5jb250cm9sc1snd3NySWQnXTtcclxuICB9XHJcblxyXG4gIGFkZCgpe1xyXG4gICAgaWYodGhpcy53c3JGb3JtLnZhbGlkKXtcclxuICAgICAgdGhpcy5zdWNjZXNzLmVtaXQodGhpcy53c3JGb3JtLnZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNsb3NlKCkge1xyXG4gICAgdGhpcy5vbkNsb3NlLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIHNldEVtcGxveWVyKGVtcGxveWVyOiBFbXBsb3llclNlYXJjaFJlc3VsdCkge1xyXG4gICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB7XHJcbiAgICAgIHRoaXMuZW1wbG95ZXJOYW1lLnNldFZhbHVlKGVtcGxveWVyLmVtcGxveWVyTmFtZSk7XHJcbiAgICAgIHRoaXMubGluZTEuc2V0VmFsdWUoZW1wbG95ZXIuYWRkcmVzc0xpbmUxKTtcclxuICAgICAgdGhpcy5saW5lMi5zZXRWYWx1ZShlbXBsb3llci5hZGRyZXNzTGluZTIpO1xyXG4gICAgICB0aGlzLmNpdHkuc2V0VmFsdWUoZW1wbG95ZXIuY2l0eSk7XHJcbiAgICAgIHRoaXMuc3RhdGUuc2V0VmFsdWUoZW1wbG95ZXIuc3RhdGUudmFsdWUpO1xyXG4gICAgICB0aGlzLnppcC5zZXRWYWx1ZShlbXBsb3llci56aXApO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxwLWRpYWxvZyB2aXNpYmxlPVwidHJ1ZVwiIG1vZGFsPVwidHJ1ZVwiIGFwcGVuZFRvPVwiYm9keVwiIHBvc2l0aW9uPVwidG9wXCIgW3Nob3dIZWFkZXJdPVwiZmFsc2VcIlxyXG4gIFticmVha3BvaW50c109XCJ7JzEyMDBweCc6ICc2NjBweCcsICc5OTJweCc6ICc2NjBweCcsICc3NjhweCc6ICc2NjBweCcsICc1NzZweCc6ICcxMDB2dyd9XCI+XHJcbiAgPGg0IHN0eWxlPVwiY29sb3I6IHZhcigtLWlvbi1jb2xvci1ncmV5KTsgcGFkZGluZy1sZWZ0OiAyMHB4O1wiPnt7J3dvcmsuc2VhcmNoLmpvdXJuYWwuYWN0aXZpdHkuaGVhZGluZycgfFxyXG4gICAgdHJhbnNsYXRlOmR5bmFtaWNQYXJhbSB9fTwvaDQ+XHJcbiAgPGZvcm0gW2Zvcm1Hcm91cF09XCJ3c3JGb3JtXCIgI3dzckZvcm1EaXJlY3RpdmU9XCJuZ0Zvcm1cIj5cclxuICAgIDxpb24tZ3JpZD5cclxuICAgICAgPGlvbi1yb3c+XHJcbiAgICAgICAgPGlvbi1jb2wgY2xhc3M9XCJpb24tcGFkZGluZ1wiIHNpemU9XCIxMlwiIHNpemVTbT1cIjEyXCIgc2l6ZVhzPVwiMTJcIiBzaXplTWQ9XCI2XCIgc2l6ZUxnPVwiNlwiIHNpemVYbD1cIjZcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWZsdWlkIHAtZm9ybWdyaWRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImFjdGl2aXR5VHlwZVwiPnt7J3dvcmsuc2VhcmNoLmpvdXJuYWwuYWN0aXZpdHkudHlwZScgfCB0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGFwcC1kcm9wZG93biBbb3B0aW9uc109XCJhY3Rpdml0eVR5cGVDb21ib01zXCIgb3B0aW9uTGFiZWw9XCJERVNDXCIgb3B0aW9uVmFsdWU9XCJOQU1FXCJcclxuICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJhY3Rpdml0eVR5cGVcIiBhcHBlbmRUbz1cImJvZHlcIiBpbnB1dElkPVwiYWN0aXZpdHlUeXBlXCI+PC9hcHAtZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2FjdGl2aXR5VHlwZScgW2Zvcm1dPVwid3NyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAnUmVxdWlyZWQuJ1xyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8c2VjdGlvbiAqbmdJZj1cImRpc3BsYXlKb2JBcHBsaWNhdGlvblF1ZXN0aW9ucyB8fCBkaXNwbGF5Sm9iU2VhcmNoUXVlc3Rpb25zXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZW1wbG95ZXJOYW1lXCI+e3snd29yay5zZWFyY2guam91cm5hbC5lbXBsb3llck5hbWUnIHwgdHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1zZWFyY2gtZW1wbG95ZXIgW2Zvcm1Db250cm9sXT1cImVtcGxveWVyTmFtZVwiIChvbkZvdW5kKT1cInNldEVtcGxveWVyKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICBbZW1wVHlwZV09XCInUkVHJ1wiPjwvYXBwLXNlYXJjaC1lbXBsb3llcj5cclxuICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdlbXBsb3llck5hbWUnIFtmb3JtXT1cIndzckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAnUmVxdWlyZWQuJywgcGF0dGVybjogJyUsIDwsID4sIF4sIF8sIHssIH0gYXJlIG5vdCBhbGxvd2VkJ1xyXG4gICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJsaW5lMVwiPnt7J3dvcmsuc2VhcmNoLmpvdXJuYWwuc3RyZWV0QWRkcmVzcycgfCB0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJsaW5lMVwiIHR5cGU9XCJpbnB1dFwiIHBJbnB1dFRleHQgW2Zvcm1Db250cm9sXT1cImxpbmUxXCIgYXBwU3RyaXBJbnZpc2libGVDaGFycy8+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nbGluZTEnIFtmb3JtXT1cIndzckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAnUmVxdWlyZWQuJywgcGF0dGVybjogJ09ubHkgbGV0dGVycywgbnVtYmVycywgc3BhY2VzLCBjb21tYXMsIHBlcmlvZHMsIGFwb3N0cm9waGVzLCBoeXBoZW5zLCAjIGFuZCAvIGFsbG93ZWQnLFxyXG4gICAgICAgICAgICAgICAgICBtYXhsZW5ndGg6ICdjYW5ub3QgZXhjZWVkIDQwIGNoYXJhY3RlcnMnXHJcbiAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImNpdHlcIj57eyd3b3JrLnNlYXJjaC5qb3VybmFsLmNpdHknIHwgdHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IGlkPVwiY2l0eVwiIHR5cGU9XCJpbnB1dFwiIHBJbnB1dFRleHQgW2Zvcm1Db250cm9sXT1cImNpdHlcIiBhcHBTdHJpcEludmlzaWJsZUNoYXJzLz5cclxuICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdjaXR5JyBbZm9ybV09XCJ3c3JGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ1JlcXVpcmVkLicsXHJcbiAgICAgICAgICAgICAgICAgIGludmFsaWR3c0NpdHlMZW5ndGg6ICdDaXR5IHNob3VsZCBub3QgZXhjZWVkIGEgbGVuZ3RoIG9mIDMwIGNoYXJhY3RlcnMnLFxyXG4gICAgICAgICAgICAgICAgICAgcGF0dGVybjogJ0NpdHkgbmFtZSBjYW4gb25seSBjb250YWluIGxldHRlcnMsIHNwYWNlcywgYW5kIGh5cGhlbnMnLFxyXG4gICAgICAgICAgICAgICAgICAgbWF4bGVuZ3RoOiAnY2Fubm90IGV4Y2VlZCAzMCBjaGFyYWN0ZXJzJ1xyXG4gICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICA8aW9uLXJvdz5cclxuICAgICAgICAgICAgICAgIDxpb24tY29sIHN0eWxlPVwicGFkZGluZzogMHB4O1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwic3RhdGVcIj57eyd3b3JrLnNlYXJjaC5qb3VybmFsLnN0YXRlJ3wgdHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxhcHAtZHJvcGRvd24gaW5wdXRJZD1cInN0YXRlXCIgW29wdGlvbnNdPVwic3RhdGVzQ29tYm9cIiBvcHRpb25MYWJlbD1cIkRFU0NcIiBvcHRpb25WYWx1ZT1cIk5BTUVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgYXBwZW5kVG89XCJib2R5XCIgW2Zvcm1Db250cm9sXT1cInN0YXRlXCIgaW5wdXRJZD1cInN0YXRlXCI+PC9hcHAtZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3N0YXRlJyBbZm9ybV09XCJ3c3JGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdSZXF1aXJlZC4nXHJcbiAgICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICAgIDxpb24tY29sIHNpemU9XCIxXCI+PC9pb24tY29sPlxyXG4gICAgICAgICAgICAgICAgPGlvbi1jb2wgc3R5bGU9XCJwYWRkaW5nOiAwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJ6aXBcIj57eyd3b3JrLnNlYXJjaC5qb3VybmFsLnppcCd8IHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJ6aXBcIiB0eXBlPVwiaW5wdXRcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbF09XCJ6aXBcIiBtaW5sZW5ndGg9XCI1XCIgbWF4bGVuZ3RoPVwiOVwiIGFwcFN0cmlwSW52aXNpYmxlQ2hhcnMvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSd6aXAnIFtmb3JtXT1cIndzckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ1JlcXVpcmVkLicsXHJcbiAgICAgICAgICAgICAgICAgICAgICBpbnZhbGlkTGVuZ3RoOiAnWmlwIGNvZGUgc2hvdWxkIGJlIG9mIDUgb3IgOSBkaWdpdHMuJyxcclxuICAgICAgICAgICAgICAgICAgICAgIGludmFsaWROdW1iZXI6ICdaaXAgY29kZSBzaG91bGQgb25seSBoYXZlIG51bWJlcnMuJ1xyXG4gICAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgPC9pb24tcm93PlxyXG5cclxuICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgIDxpb24tY29sIGNsYXNzPVwiaW9uLXBhZGRpbmdcIiBzaXplPVwiMTJcIiBzaXplU209XCIxMlwiIHNpemVYcz1cIjEyXCIgc2l6ZU1kPVwiNlwiIHNpemVMZz1cIjZcIiBzaXplWGw9XCI2XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicC1mbHVpZCBwLWZvcm1ncmlkXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiZGlzcGxheUpvYkFwcGxpY2F0aW9uUXVlc3Rpb25zIHx8IGRpc3BsYXlKb2JTZWFyY2hRdWVzdGlvbnNcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwid29ya1NlYXJjaERhdGVcIj57eyd3b3JrLnNlYXJjaC5qb3VybmFsLmFwcGxpY2F0aW9uRGF0ZSd8IHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8cC1jYWxlbmRhciBbc2hvd0ljb25dPVwidHJ1ZVwiIGlucHV0SWQ9XCJ3b3JrU2VhcmNoRGF0ZVwiIGFwcGVuZFRvPVwiYm9keVwiIFtmb3JtQ29udHJvbF09XCJ3b3JrU2VhcmNoRGF0ZVwiIGRhdGVGb3JtYXQ9XCJtbS9kZC95eVwiXHJcbiAgICAgICAgICAgICAgICBbbWluRGF0ZV09XCJzdW5EYXRlXCIgW21heERhdGVdPVwic2F0RGF0ZVwiIFtkZWZhdWx0RGF0ZV09XCJzdW5EYXRlXCIgW3NlbGVjdE90aGVyTW9udGhzXT1cInRydWVcIiBwbGFjZWhvbGRlcj1cIm1tL2RkL3l5eXlcIiBcclxuICAgICAgICAgICAgICAgIFttb250aE5hdmlnYXRvcl09XCJ0cnVlXCIgW3llYXJOYXZpZ2F0b3JdPVwidHJ1ZVwiIHllYXJSYW5nZT1cIjE5MDE6MjA1MFwiIChvbklucHV0KT1cImRhdGVJbnB1dCgkZXZlbnQpXCI+PC9wLWNhbGVuZGFyPiAgXHJcbiAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3dvcmtTZWFyY2hEYXRlJyBbZm9ybV09XCJ3c3JGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdSZXF1aXJlZC4nLFxyXG4gICAgICAgICAgICAgICAgZGF0ZU5vdEJldHdlZW46ICdEYXRlIHNob3VsZCBiZSBiZXR3ZWVuICcgKyBzdW5EYXRlU3RyaW5nICsgJyBhbmQgJyArIGN1cnJlbnREYXRlU3RyaW5nICsgJy4nXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPHNlY3Rpb24gKm5nSWY9XCJkaXNwbGF5Sm9iQXBwbGljYXRpb25RdWVzdGlvbnMgfHwgZGlzcGxheUpvYlNlYXJjaFF1ZXN0aW9uc1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInBvc2l0aW9uQXBwbGllZEZvclwiPnt7J3dvcmsuc2VhcmNoLmpvdXJuYWwuam9iVGl0bGUnfCB0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJwb3NpdGlvbkFwcGxpZWRGb3JcIiB0eXBlPVwiaW5wdXRcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbF09XCJwb3NpdGlvbkFwcGxpZWRGb3JcIiAgYXBwU3RyaXBJbnZpc2libGVDaGFycy8+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0ncG9zaXRpb25BcHBsaWVkRm9yJyBbZm9ybV09XCJ3c3JGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ1JlcXVpcmVkLicsXHJcbiAgICAgICAgICAgICAgICAgIHBhdHRlcm46ICdKb2IgVGl0bGUgY2FuIG9ubHkgY29udGFpbiBsZXR0ZXJzLCBzcGFjZXMsIGFuZCBoeXBoZW5zJyxcclxuICAgICAgICAgICAgICAgICAgbWF4bGVuZ3RoOiAnY2Fubm90IGV4Y2VlZCA1MCBjaGFyYWN0ZXJzJ1xyXG4gICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZGlzcGxheUpvYkFwcGxpY2F0aW9uUXVlc3Rpb25zXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImNvbnRhY3RNZXRob2RcIj57eyd3b3JrLnNlYXJjaC5qb3VybmFsLmNvbnRhY3RNZXRob2QnfCB0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxwLXNlbGVjdEJ1dHRvbiBbb3B0aW9uc109XCJ3b3JrU2VhcmNoTWV0aG9kQ29udGFjdE1zXCIgb3B0aW9uTGFiZWw9XCJERVNDXCIgb3B0aW9uVmFsdWU9XCJOQU1FXCJcclxuICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiY29udGFjdE1ldGhvZFwiPjwvcC1zZWxlY3RCdXR0b24+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdjb250YWN0TWV0aG9kJyBbZm9ybV09XCJ3c3JGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAnUmVxdWlyZWQuJ1xyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImRpc3BsYXlKb2JTZWFyY2hRdWVzdGlvbnNcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiY29udGFjdE1ldGhvZFwiPnt7J3dvcmsuc2VhcmNoLmpvdXJuYWwuY29udGFjdE1ldGhvZEpvYlNlYXJjaCd8IHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPHAtc2VsZWN0QnV0dG9uIFtvcHRpb25zXT1cIndvcmtTZWFyY2hNZXRob2RDb250YWN0TXNcIiBvcHRpb25MYWJlbD1cIkRFU0NcIiBvcHRpb25WYWx1ZT1cIk5BTUVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJjb250YWN0TWV0aG9kXCI+PC9wLXNlbGVjdEJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2NvbnRhY3RNZXRob2QnIFtmb3JtXT1cIndzckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdSZXF1aXJlZC4nXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cImNvbnRhY3RNZXRob2QudmFsdWUgPT0gJ1RFTEUnXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZW1wbG95ZXJQaG9uZVwiPnt7J3dvcmsuc2VhcmNoLmpvdXJuYWwucGhvbmVObycgfCB0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8cC1pbnB1dE1hc2sgaW5wdXRJZD1cImVtcGxveWVyUGhvbmVcIiBbZm9ybUNvbnRyb2xdPVwiZW1wbG95ZXJQaG9uZVwiIG1hc2s9XCIoOTk5KSA5OTktOTk5OVwiXHJcbiAgICAgICAgICAgICAgICAgIHVubWFzaz1cInRydWVcIj48L3AtaW5wdXRNYXNrPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2VtcGxveWVyUGhvbmUnIFtmb3JtXT1cIndzckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdSZXF1aXJlZC4nXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCJjb250YWN0TWV0aG9kLnZhbHVlID09ICdFTUFMJ1wiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImVtcGxveWVyRW1haWxcIj57eyd3b3JrLnNlYXJjaC5qb3VybmFsLmVtYWlsJyB8IHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cImVtcGxveWVyRW1haWxcIiB0eXBlPVwiaW5wdXRcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbF09XCJlbXBsb3llckVtYWlsXCJcclxuICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJlbWFpbGlkQGV4YW1wbGUuY29tXCIgYXBwU3RyaXBJbnZpc2libGVDaGFycy8+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nZW1wbG95ZXJFbWFpbCcgW2Zvcm1dPVwid3NyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdSZXF1aXJlZC4nLFxyXG4gICAgICAgICAgICAgICAgICBlbXBsb3llckVtYWlsOiAnSW52YWxpZCBlbWFpbCBhZGRyZXNzLicsXHJcbiAgICAgICAgICAgICAgICAgIG1heGxlbmd0aDogJ2Nhbm5vdCBleGNlZWQgNDAgY2hhcmFjdGVycydcclxuICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCJjb250YWN0TWV0aG9kLnZhbHVlID09ICdPTkxJJ1wiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImVtcGxveWVyV2Vic2l0ZVwiPnt7J3dvcmsuc2VhcmNoLmpvdXJuYWwud2Vic2l0ZScgfCB0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJlbXBsb3llcldlYnNpdGVcIiB0eXBlPVwiaW5wdXRcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbF09XCJlbXBsb3llcldlYnNpdGVcIiBhcHBTdHJpcEludmlzaWJsZUNoYXJzIC8+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nZW1wbG95ZXJXZWJzaXRlJyBbZm9ybV09XCJ3c3JGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ1JlcXVpcmVkLicsXHJcbiAgICAgICAgICAgICAgICAgIGludmFsaWRXZWJzaXRlOiAnUGxlYXNlIGVudGVyIGEgdmFsaWQgd2Vic2l0ZSBhZGRyZXNzJyxcclxuICAgICAgICAgICAgICAgICAgbWF4bGVuZ3RoOiAnY2Fubm90IGV4Y2VlZCA0MCBjaGFyYWN0ZXJzJ1xyXG4gICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cImNvbnRhY3RNZXRob2QudmFsdWUgPT0nUFJTTidcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJlbXBDb250YWN0UGVyc29uTmFtZVwiPnt7J3dvcmsuc2VhcmNoLmpvdXJuYWwuY29udGFjdE5hbWUnIHwgdHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IGlkPVwiZW1wQ29udGFjdFBlcnNvbk5hbWVcIiB0eXBlPVwiaW5wdXRcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbF09XCJlbXBDb250YWN0UGVyc29uTmFtZVwiIGFwcFN0cmlwSW52aXNpYmxlQ2hhcnMvPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2VtcENvbnRhY3RQZXJzb25OYW1lJyBbZm9ybV09XCJ3c3JGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ1JlcXVpcmVkLicsXHJcbiAgICAgICAgICAgICAgICAgIG1heGxlbmd0aDogJ2Nhbm5vdCBleGNlZWQgNTAgY2hhcmFjdGVycydcclxuICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCJjb250YWN0TWV0aG9kLnZhbHVlID09J1BSU04nXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZW1wQ29udGFjdFBlcnNvblRpdGxlXCI+e3snd29yay5zZWFyY2guam91cm5hbC5jb250YWN0VGl0bGUnIHwgdHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IGlkPVwiZW1wQ29udGFjdFBlcnNvblRpdGxlXCIgdHlwZT1cImlucHV0XCIgcElucHV0VGV4dCBbZm9ybUNvbnRyb2xdPVwiZW1wQ29udGFjdFBlcnNvblRpdGxlXCIgYXBwU3RyaXBJbnZpc2libGVDaGFycy8+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nZW1wQ29udGFjdFBlcnNvblRpdGxlJyBbZm9ybV09XCJ3c3JGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ1JlcXVpcmVkLicsXHJcbiAgICAgICAgICAgICAgICAgIG1heGxlbmd0aDogJ2Nhbm5vdCBleGNlZWQgNTAgY2hhcmFjdGVycydcclxuICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwic2VhcmNoUmVzdWx0XCI+e3snd29yay5zZWFyY2guam91cm5hbC5yZXN1bHQnIHwgdHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImFjdGl2aXR5VHlwZS52YWx1ZSA9PSdKT0FQJ1wiPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWRyb3Bkb3duIFtvcHRpb25zXT1cIndvcmtTZWFyY2hSZXN1bHRDb21ib0pvYkFwcGxpY2F0aW9uTXNcIiBvcHRpb25MYWJlbD1cIkRFU0NcIiBvcHRpb25WYWx1ZT1cIk5BTUVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJzZWFyY2hSZXN1bHRcIiBhcHBlbmRUbz1cImJvZHlcIiBpbnB1dElkPVwic2VhcmNoUmVzdWx0XCI+PC9hcHAtZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdzZWFyY2hSZXN1bHQnIFtmb3JtXT1cIndzckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAnUmVxdWlyZWQuJ1xyXG4gICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiYWN0aXZpdHlUeXBlLnZhbHVlID09J0pPU0UnXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZHJvcGRvd24gW29wdGlvbnNdPVwid29ya1NlYXJjaFJlc3VsdENvbWJvSm9iU2VhcmNoTXNcIiBvcHRpb25MYWJlbD1cIkRFU0NcIiBvcHRpb25WYWx1ZT1cIk5BTUVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJzZWFyY2hSZXN1bHRcIiBhcHBlbmRUbz1cImJvZHlcIiBpbnB1dElkPVwic2VhcmNoUmVzdWx0XCI+PC9hcHAtZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdzZWFyY2hSZXN1bHQnIFtmb3JtXT1cIndzckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAnUmVxdWlyZWQuJ1xyXG4gICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgPC9pb24tcm93PlxyXG4gICAgICA8aW9uLXJvdz5cclxuICAgICAgICA8aW9uLWNvbCBjbGFzcz1cImlvbi10ZXh0LXJpZ2h0XCI+XHJcbiAgICAgICAgICA8aW9uLWJ1dHRvbiBzaGFwZT1cInJvdW5kXCIgZmlsbD1cIm91dGxpbmVcIiAoY2xpY2spPVwiY2xvc2UoKVwiIHR5cGU9XCJyZXNldFwiPnt7J2J1dHRvbi5jYW5jZWwnIHxcclxuICAgICAgICAgICAgdHJhbnNsYXRlfX08L2lvbi1idXR0b24+XHJcbiAgICAgICAgICA8aW9uLWJ1dHRvbiBzaGFwZT1cInJvdW5kXCIgKGNsaWNrKT1cImFkZCgpXCIgdHlwZT1cInN1Ym1pdFwiPnt7J2J1dHRvbi5hZGQnIHwgdHJhbnNsYXRlfX08L2lvbi1idXR0b24+XHJcbiAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICA8L2lvbi1yb3c+XHJcbiAgICA8L2lvbi1ncmlkPlxyXG4gIDwvZm9ybT5cclxuPC9wLWRpYWxvZz4iXX0=
690
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29yay1zZWFyY2gtZW1wbG95ZXItbXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJldXNhLWFwcC1saWIvc3JjL2xpYi9jb21wb25lbnRzL3dlZWtseS13b3JrLXNlYXJjaC1lbXBsb3llci1tcy93b3JrLXNlYXJjaC1lbXBsb3llci1tcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmV1c2EtYXBwLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvd2Vla2x5LXdvcmstc2VhcmNoLWVtcGxveWVyLW1zL3dvcmstc2VhcmNoLWVtcGxveWVyLW1zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RyxPQUFPLEVBQWdELFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTFGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFdkQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFFN0YsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lDVzdDLCtCQUE2RSxhQUFBLGdCQUFBO0lBRS9DLFlBQWtEOztJQUFBLGlCQUFRO0lBQ3BGLCtDQUNvQjtJQUQ4QixzTUFBVyxlQUFBLDBCQUFtQixDQUFBLElBQUM7SUFDN0QsaUJBQXNCO0lBQzFDLGdDQUVlO0lBQ2pCLGlCQUFNO0lBRU4sOEJBQW1CLGdCQUFBO0lB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MERBQTRCOzs7aUZEbkxqRiw2QkFBNkI7Y0FOekMsU0FBUzsyQkFDRSw2QkFBNkI7K0dBUWhDLGdCQUFnQjtrQkFEdEIsU0FBUzttQkFBQyxrQkFBa0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7WUFJaEQsT0FBTztrQkFETixNQUFNO1lBSVAsT0FBTztrQkFETixNQUFNO1lBSUEsaUJBQWlCO2tCQUR2QixLQUFLO1lBSUMsSUFBSTtrQkFEVixLQUFLO1lBSUMsT0FBTztrQkFEYixLQUFLO1lBSUMsT0FBTztrQkFEYixLQUFLO1lBSUMsYUFBYTtrQkFEbkIsS0FBSztZQUlDLGFBQWE7a0JBRG5CLEtBQUs7WUFJQyxPQUFPO2tCQURiLEtBQUs7O2tGQTdCSyw2QkFBNkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5nRm9ybSwgVW50eXBlZEZvcm1CdWlsZGVyLCBVbnR5cGVkRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBVdGlsU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3V0aWwvdXRpbC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQmFzZVBhZ2UgfSBmcm9tICcuLi8uLi9wYWdlcy9CYXNlUGFnZSc7XHJcbmltcG9ydCB7IENvbWJvT3B0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2NvbWJvLW1vZGVsJztcclxuaW1wb3J0IHsgRW1wbG95ZXJTZWFyY2hSZXN1bHQgfSBmcm9tICcuLi8uLi9tb2RlbHMvRW1wbG95ZXJEZXRhaWxTZWFyY2hSZXN1bHQnO1xyXG5pbXBvcnQgeyBXb3JrU2VhcmNoUmVjb3JkTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvd2Vla2x5LWNlcnQvd29yay1zZWFyY2gtcmVjb3JkLXYyLW1vZGVsJztcclxuaW1wb3J0IHsgV2Vla2x5Q2VydFNlcnZpY2VWMiB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3dlZWtseS1jZXJ0L3dlZWtseS1jZXJ0LXYyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBcHBWYWxpZGF0b3JzIH0gZnJvbSAnLi4vLi4vdmFsaWRhdGlvbnMvQXBwVmFsaWRhdG9ycyc7XHJcbmltcG9ydCB7IExpYkNvbnN0YW50cyB9IGZyb20gJy4uLy4uL21vZGVscy9MaWJDb25zdGFudHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtd29yay1zZWFyY2gtZW1wbG95ZXItbXMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi93b3JrLXNlYXJjaC1lbXBsb3llci1tcy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vd29yay1zZWFyY2gtZW1wbG95ZXItbXMuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBXb3JrU2VhcmNoRW1wbG95ZXJDb21wb25lbnRNUyBleHRlbmRzIEJhc2VQYWdlIGltcGxlbWVudHMgT25Jbml0ICB7XHJcbiAgIFxyXG4gIEBWaWV3Q2hpbGQoJ3dzckZvcm1EaXJlY3RpdmUnLCB7IHN0YXRpYzogZmFsc2UgfSlcclxuICBwdWJsaWMgd3NyRm9ybURpcmVjdGl2ZTogTmdGb3JtO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBzdWNjZXNzOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgb25DbG9zZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHJlY29yZEluZGV4VG9FZGl0OiBudW1iZXI7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGRhdGE6IFdvcmtTZWFyY2hSZWNvcmRNb2RlbDtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2F0RGF0ZTogRGF0ZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc3VuRGF0ZTogRGF0ZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2F0RGF0ZVN0cmluZztcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc3VuRGF0ZVN0cmluZztcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgam91cm5hbDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwdWJsaWMgYWN0aXZpdHlUeXBlQ29tYm9NcyA9IENvbWJvT3B0aW9uLkFjdGl2aXR5VHlwZUNvbWJvTXM7XHJcbiAgcHVibGljIHdvcmtTZWFyY2hNZXRob2RDb250YWN0TXMgPSBDb21ib09wdGlvbi5Xb3JrU2VhcmNoTWV0aG9kQ29udGFjdE1zO1xyXG4gIHB1YmxpYyB3b3JrU2VhcmNoUmVzdWx0Q29tYm9Kb2JBcHBsaWNhdGlvbk1zID0gQ29tYm9PcHRpb24uV29ya1NlYXJjaFJlc3VsdENvbWJvSm9iQXBwbGljYXRpb25NcztcclxuICBwdWJsaWMgd29ya1NlYXJjaFJlc3VsdENvbWJvSm9iU2VhcmNoTXMgPSBDb21ib09wdGlvbi5Xb3JrU2VhcmNoUmVzdWx0Q29tYm9Kb2JTZWFyY2hNcztcclxuICBwdWJsaWMgc3RhdGVzQ29tYm8gPSBDb21ib09wdGlvbi5TdGF0ZXNDb21ibztcclxuICBwdWJsaWMgd29ya1NlYXJjaFJlY29yZERhdGEgOiBXb3JrU2VhcmNoUmVjb3JkTW9kZWwgPSBudWxsO1xyXG5cclxuICBkeW5hbWljUGFyYW06IGFueTtcclxuICBwdWJsaWMgd3NyRm9ybSA6IFVudHlwZWRGb3JtR3JvdXA7XHJcbiAgcHVibGljIGlzUmVhZE9ubHkgOiBib29sZWFuID0gZmFsc2U7XHJcbiAgZGlzcGxheUpvYlNlYXJjaFF1ZXN0aW9ucyA6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBkaXNwbGF5Sm9iQXBwbGljYXRpb25RdWVzdGlvbnMgOiBib29sZWFuID0gZmFsc2U7XHJcbiAgY3VycmVudERhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gIGN1cnJlbnREYXRlU3RyaW5nID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoJ2VuLVVTJykuZm9ybWF0KHRoaXMuY3VycmVudERhdGUpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgd2NTZXJ2aWNlOiBXZWVrbHlDZXJ0U2VydmljZVYyLCBwdWJsaWMgZm9ybUJ1aWxkZXI6IFVudHlwZWRGb3JtQnVpbGRlciwgcHVibGljIHV0aWw6IFV0aWxTZXJ2aWNlKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBpZiAoIXRoaXMuam91cm5hbCkge1xyXG4gICAgICB0aGlzLnNhdERhdGUgPSB0aGlzLnV0aWwuZ2V0RW50ZXJlZERhdGUodGhpcy53Y1NlcnZpY2UuZ2V0U2F0dXJkYXlEYXRlKCkpXHJcbiAgICAgIHRoaXMuc3VuRGF0ZSA9IHRoaXMudXRpbC5nZXRFbnRlcmVkRGF0ZSh0aGlzLndjU2VydmljZS5nZXRTdW5kYXlEYXRlKCkpO1xyXG4gICAgICB0aGlzLnNhdERhdGVTdHJpbmcgPSB0aGlzLndjU2VydmljZS5nZXRTYXR1cmRheURhdGVBc1N0cmluZygpO1xyXG4gICAgICB0aGlzLnN1bkRhdGVTdHJpbmcgPSB0aGlzLndjU2VydmljZS5nZXRTdW5kYXlEYXRlQXNTdHJpbmcoKTtcclxuICAgIH1cclxuICAgIHRoaXMuZHluYW1pY1BhcmFtID0ge1xyXG4gICAgICAnc2F0dXJkYXlfZGF0ZSc6IHRoaXMuc2F0RGF0ZVN0cmluZyxcclxuICAgICAgJ3N1bmRheV9kYXRlJzogdGhpcy5zdW5EYXRlU3RyaW5nLFxyXG4gICAgfTtcclxuXHJcbiAgICB0aGlzLmluaXRpbGl6ZVdvcmtTZWFyY2hGb3JtKCk7XHJcbiAgICB0aGlzLnRyaW1JbnB1dEhlbHBlcigpO1xyXG4gIH1cclxuXHJcbiAgZGF0ZUlucHV0KGV2ZW50KXtcclxuICAgIGxldCBjdXJyZW50VmFsdWUgOiBzdHJpbmcgPSBldmVudC5zcmNFbGVtZW50LnZhbHVlO1xyXG4gICAgaWYoY3VycmVudFZhbHVlKXtcclxuICAgICAgICBpZihjdXJyZW50VmFsdWUubGVuZ3RoID09IDIgJiYgY3VycmVudFZhbHVlLmNoYXJBdCgyKSAhPSAnLycpe1xyXG4gICAgICAgICAgICBldmVudC50YXJnZXQudmFsdWUgPSBjdXJyZW50VmFsdWUgKyBcIi9cIjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYoY3VycmVudFZhbHVlLmxlbmd0aCA9PSA1ICYmIGN1cnJlbnRWYWx1ZS5jaGFyQXQoNSkgIT0gJy8nKXtcclxuICAgICAgICAgICAgZXZlbnQudGFyZ2V0LnZhbHVlID0gY3VycmVudFZhbHVlICsgXCIvXCI7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdHJpbUlucHV0SGVscGVyKCkge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuZW1wbG95ZXJFbWFpbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbCA9PiB7XHJcbiAgICAgICAgaWYgKHZhbCkge1xyXG4gICAgICAgICAgY29uc3Qgc2FuaXRpemVkID0gdmFsLnJlcGxhY2UoL1xccysvZywgJycpO1xyXG4gICAgICAgICAgaWYgKHZhbCAhPT0gc2FuaXRpemVkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZW1wbG95ZXJFbWFpbC5zZXRWYWx1ZShzYW5pdGl6ZWQsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSwgMCk7XHJcbiAgfVxyXG5cclxuICBpbml0aWxpemVXb3JrU2VhcmNoRm9ybSgpIHtcclxuICAgIGxldCB3c3I6IFdvcmtTZWFyY2hSZWNvcmRNb2RlbDtcclxuICAgIGlmICh0aGlzLmRhdGEpIHtcclxuICAgICAgd3NyID0gdGhpcy5kYXRhO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnJlY29yZEluZGV4VG9FZGl0ID09IHVuZGVmaW5lZCB8fCB0aGlzLnJlY29yZEluZGV4VG9FZGl0ID09IG51bGwpIHtcclxuICAgICAgd3NyID0gbmV3IFdvcmtTZWFyY2hSZWNvcmRNb2RlbCgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgd3NyID0gdGhpcy53Y1NlcnZpY2UuZ2V0V29ya1NlYXJjaFJlY29yZHMoKVt0aGlzLnJlY29yZEluZGV4VG9FZGl0XTtcclxuICAgIH1cclxuICAgIHRoaXMud3NyRm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xyXG4gICAgICAnYWN0aXZpdHlUeXBlJzogW3dzci5hY3Rpdml0eVR5cGUsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgICAnd29ya1NlYXJjaERhdGUnOiBbd3NyLndvcmtTZWFyY2hEYXRlICE9IG51bGwgPyB0aGlzLmdldERhdGUod3NyLndvcmtTZWFyY2hEYXRlKSA6ICcnLCBWYWxpZGF0b3JzLmNvbXBvc2UoW1ZhbGlkYXRvcnMucmVxdWlyZWQsIEFwcFZhbGlkYXRvcnMuaXNCZXR3ZWVuKHRoaXMuc3VuRGF0ZSwgdGhpcy5jdXJyZW50RGF0ZSldKV0sXHJcbiAgICAgICdlbXBsb3llck5hbWUnOiBbd3NyLmVtcGxveWVyTmFtZV0sXHJcbiAgICAgICdjaXR5JzogW3dzci5jaXR5XSxcclxuICAgICAgJ2xpbmUxJzogW3dzci5saW5lMV0sXHJcbiAgICAgICdsaW5lMic6IFt3c3IubGluZTJdLFxyXG4gICAgICAnc3RhdGUnOiBbd3NyLnN0YXRlICE9IG51bGwgPyB3c3Iuc3RhdGUgOiBMaWJDb25zdGFudHMuU1RBVEVdLFxyXG4gICAgICAnY29udGFjdE1ldGhvZCc6IFt3c3IuY29udGFjdE1ldGhvZCAhPSBudWxsID8gd3NyLmNvbnRhY3RNZXRob2QgOiAnJ10sXHJcbiAgICAgICdlbXBDb250YWN0UGVyc29uTmFtZSc6IFt3c3IuZW1wQ29udGFjdFBlcnNvbk5hbWVdLFxyXG4gICAgICAnZW1wQ29udGFjdFBlcnNvblRpdGxlJzogW3dzci5lbXBDb250YWN0UGVyc29uVGl0bGVdLFxyXG4gICAgICAnemlwJzogW3dzci56aXBdLFxyXG4gICAgICAnZW1wbG95ZXJQaG9uZSc6IFt3c3IuZW1wbG95ZXJQaG9uZSAhPSBudWxsID8gd3NyLmVtcGxveWVyUGhvbmUgOiAnJ10sXHJcbiAgICAgICdlbXBsb3llckVtYWlsJzogW3dzci5lbXBsb3llckVtYWlsXSxcclxuICAgICAgJ2VtcGxveWVyV2Vic2l0ZSc6IFt3c3IuZW1wbG95ZXJXZWJzaXRlXSxcclxuICAgICAgJ2VtcGxveWVyRmF4JzogW3dzci5lbXBsb3llckZheCAhPSBudWxsID8gd3NyLmVtcGxveWVyRmF4IDogJyddLFxyXG4gICAgICAncG9zaXRpb25BcHBsaWVkRm9yJzogW3dzci5wb3NpdGlvbkFwcGxpZWRGb3JdLFxyXG4gICAgICAnc2VhcmNoUmVzdWx0JzogW3dzci5zZWFyY2hSZXN1bHRdLFxyXG4gICAgICAnd2luZ3NSZWZlcnJhbFdvcmtTZWFyY2hJZCc6IFt3c3Iud2luZ3NSZWZlcnJhbFdvcmtTZWFyY2hJZF0sXHJcbiAgICAgICdjbGFpbWFudFdvcmtTZWFyY2hKb3VybmFsSWQnOiBbd3NyLmNsYWltYW50V29ya1NlYXJjaEpvdXJuYWxJZF0sXHJcbiAgICAgICd3c3JJZCc6IFt3c3Iud3NySWRdXHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAod3NyLmFjdGl2aXR5VHlwZSA9PSAnSk9BUCcpIHtcclxuICAgICAgdGhpcy5kaXNwbGF5Sm9iQXBwbGljYXRpb25RdWVzdGlvbnMgPSB0cnVlO1xyXG4gICAgfSBlbHNlIGlmICh3c3IuYWN0aXZpdHlUeXBlID09ICdKT1NFJykge1xyXG4gICAgICB0aGlzLmRpc3BsYXlKb2JTZWFyY2hRdWVzdGlvbnMgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh3c3Iud2luZ3NSZWZlcnJhbFdvcmtTZWFyY2hJZCAhPSBudWxsICYmIHdzci53aW5nc1JlZmVycmFsV29ya1NlYXJjaElkICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLmlzUmVhZE9ubHkgPSB0cnVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5pc1JlYWRPbmx5ID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB7XHJcbiAgICAgIHRoaXMuY29udGFjdE1ldGhvZC5zZXRWYWx1ZSh3c3IuY29udGFjdE1ldGhvZCAhPSBudWxsID8gd3NyLmNvbnRhY3RNZXRob2QgOiAnJyk7XHJcblxyXG4gICAgICB0aGlzLmNvbnRhY3RNZXRob2QudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2YWwgPT4ge1xyXG4gICAgICAgIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4gdGhpcy5zZXRDb250YWN0SW5mb1ZhbGlkYXRpb24odmFsKSk7XHJcbiAgICAgICAgXHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLmFjdGl2aXR5VHlwZS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbCA9PiB7XHJcbiAgICAgICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB0aGlzLnNldEFjdGl2aXR5VHlwZVZhbGlkYXRpb24odmFsKSk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgdGhpcy5zZXRDb250YWN0SW5mb1ZhbGlkYXRpb24odGhpcy5jb250YWN0TWV0aG9kLnZhbHVlKTtcclxuICAgICAgdGhpcy5zZXRBY3Rpdml0eVR5cGVWYWxpZGF0aW9uKHRoaXMuYWN0aXZpdHlUeXBlLnZhbHVlKTtcclxuXHJcbiAgICB9KTtcclxuXHJcbiAgfVxyXG5cclxuICBzZXRBY3Rpdml0eVR5cGVWYWxpZGF0aW9uKHZhbDogYW55KSB7XHJcbiAgICB0aGlzLmRpc3BsYXlKb2JBcHBsaWNhdGlvblF1ZXN0aW9ucyA9IGZhbHNlO1xyXG4gICAgdGhpcy5kaXNwbGF5Sm9iU2VhcmNoUXVlc3Rpb25zID0gZmFsc2U7XHJcbiAgICBpZih2YWwgPT0gJ0pPQVAnICl7XHJcbiAgICAgIHRoaXMuZGlzcGxheUpvYkFwcGxpY2F0aW9uUXVlc3Rpb25zID0gdHJ1ZTtcclxuICAgICAgdGhpcy5kaXNwbGF5Sm9iU2VhcmNoUXVlc3Rpb25zID0gZmFsc2U7XHJcblxyXG4gICAgICB0aGlzLmVtcGxveWVyTmFtZS5hZGRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLnBhdHRlcm4oL14oPyEuKlslPD5cXF5fe31dKVtBLVphLXowLTlcXHNcXC4sJicoKSMhQDokXFwvXFxcXFxcLVxcKz9cIl0rJC8pXSk7XHJcbiAgICAgIHRoaXMuZW1wbG95ZXJOYW1lLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgICAgdGhpcy5saW5lMS5hZGRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLnBhdHRlcm4oL15bMC05QS1aYS16XFxzLCdcXC1cXC4jXFwvXSskLyksVmFsaWRhdG9ycy5tYXhMZW5ndGgoNDApXSk7XHJcbiAgICAgIHRoaXMubGluZTEudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgICB0aGlzLmNpdHkuYWRkVmFsaWRhdG9ycyhbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5wYXR0ZXJuKC9eKD8hLSlbQS1aYS16IC1dKiQvKSxWYWxpZGF0b3JzLm1heExlbmd0aCgzMCldKTtcclxuICAgICAgdGhpcy5jaXR5LnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuc3RhdGUpO1xyXG4gICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy56aXApO1xyXG4gICAgICB0aGlzLnBvc2l0aW9uQXBwbGllZEZvci5hZGRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLnBhdHRlcm4oL14oPyEtKVtBLVphLXowLTkgLV0qJC8pLFZhbGlkYXRvcnMubWF4TGVuZ3RoKDUwKV0pO1xyXG4gICAgICB0aGlzLnBvc2l0aW9uQXBwbGllZEZvci51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLmNvbnRhY3RNZXRob2QpO1xyXG4gICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5zZWFyY2hSZXN1bHQpO1xyXG4gICAgfVxyXG4gICAgaWYodmFsID09ICdKT1NFJyl7XHJcbiAgICAgIHRoaXMuZGlzcGxheUpvYlNlYXJjaFF1ZXN0aW9ucyA9IHRydWU7XHJcbiAgICAgIHRoaXMuZGlzcGxheUpvYkFwcGxpY2F0aW9uUXVlc3Rpb25zID0gZmFsc2U7XHJcblxyXG4gICAgICB0aGlzLmVtcGxveWVyTmFtZS5hZGRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLnBhdHRlcm4oL14oPyEuKlslPD5cXF5fe31dKVtBLVphLXowLTlcXHNcXC4sJicoKSMhQDokXFwvXFxcXFxcLVxcKz9cIl0rJC8pXSk7XHJcbiAgICAgIHRoaXMuZW1wbG95ZXJOYW1lLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgICAgdGhpcy5saW5lMS5hZGRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLnBhdHRlcm4oL15bMC05QS1aYS16XFxzLCdcXC1cXC4jXFwvXSskLyksVmFsaWRhdG9ycy5tYXhMZW5ndGgoNDApXSk7XHJcbiAgICAgIHRoaXMubGluZTEudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgICB0aGlzLmNpdHkuYWRkVmFsaWRhdG9ycyhbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5wYXR0ZXJuKC9eKD8hLSlbQS1aYS16IC1dKiQvKSxWYWxpZGF0b3JzLm1heExlbmd0aCgzMCldKTtcclxuICAgICAgdGhpcy5jaXR5LnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuc3RhdGUpO1xyXG4gICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy56aXApO1xyXG4gICAgICB0aGlzLnBvc2l0aW9uQXBwbGllZEZvci5hZGRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLnBhdHRlcm4oL14oPyEtKVtBLVphLXowLTkgLV0qJC8pLFZhbGlkYXRvcnMubWF4TGVuZ3RoKDUwKV0pO1xyXG4gICAgICB0aGlzLnBvc2l0aW9uQXBwbGllZEZvci51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLmNvbnRhY3RNZXRob2QpO1xyXG4gICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5zZWFyY2hSZXN1bHQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0Q29udGFjdEluZm9WYWxpZGF0aW9uKHZhbDogYW55KSB7XHJcbiAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHtcclxuICAgICAgaWYgKHZhbCA9PSAnVEVMRScpIHtcclxuICAgICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5lbXBsb3llclBob25lKTtcclxuICAgICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuZW1wQ29udGFjdFBlcnNvbk5hbWUpO1xyXG4gICAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5lbXBDb250YWN0UGVyc29uVGl0bGUpO1xyXG4gICAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5lbXBsb3llckVtYWlsKTtcclxuICAgICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuZW1wbG95ZXJXZWJzaXRlKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodmFsID09ICdFTUFMJykge1xyXG4gICAgICAgIHRoaXMudXRpbC5zZXRWYWxpZGF0aW9uKHRoaXMuZW1wbG95ZXJFbWFpbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMuZW1haWwsIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDQwKV0pO1xyXG4gICAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5lbXBsb3llclBob25lKTtcclxuICAgICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuZW1wQ29udGFjdFBlcnNvbk5hbWUpO1xyXG4gICAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5lbXBDb250YWN0UGVyc29uVGl0bGUpO1xyXG4gICAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5lbXBsb3llcldlYnNpdGUpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh2YWwgPT0gJ09OTEknKSB7XHJcbiAgICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuZW1wbG95ZXJXZWJzaXRlKTtcclxuICAgICAgICB0aGlzLnV0aWwuc2V0VmFsaWRhdGlvbih0aGlzLmVtcGxveWVyV2Vic2l0ZSwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIEFwcFZhbGlkYXRvcnMuaXNWYWxpZFdlYnNpdGUsIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDQwKV0pXHJcbiAgICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLmVtcGxveWVyRW1haWwpO1xyXG4gICAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5lbXBsb3llclBob25lKTtcclxuICAgICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuZW1wQ29udGFjdFBlcnNvbk5hbWUpO1xyXG4gICAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5lbXBDb250YWN0UGVyc29uVGl0bGUpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh2YWwgPT0gJ1BSU04nKSB7XHJcbiAgICAgICAgdGhpcy51dGlsLnNldFZhbGlkYXRpb24odGhpcy5lbXBDb250YWN0UGVyc29uTmFtZSwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDUwKV0pO1xyXG4gICAgICAgIHRoaXMudXRpbC5zZXRWYWxpZGF0aW9uKHRoaXMuZW1wQ29udGFjdFBlcnNvblRpdGxlLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoNTApXSk7XHJcbiAgICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLmVtcGxveWVyV2Vic2l0ZSk7XHJcbiAgICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLmVtcGxveWVyRW1haWwpO1xyXG4gICAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5lbXBsb3llclBob25lKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXREYXRlKHdzRGF0ZSk6IERhdGUge1xyXG4gICAgaWYoISh3c0RhdGUgaW5zdGFuY2VvZiBEYXRlKSl7XHJcbiAgICAgIHJldHVybiB0aGlzLnV0aWwuZ2V0RW50ZXJlZERhdGUod3NEYXRlKTtcclxuICAgIH1cclxuICAgIHJldHVybiB3c0RhdGU7XHJcbiAgfVxyXG5cclxuICBnZXQgYWN0aXZpdHlUeXBlKCl7XHJcbiAgICByZXR1cm4gdGhpcy53c3JGb3JtLmNvbnRyb2xzWydhY3Rpdml0eVR5cGUnXTtcclxuICB9XHJcblxyXG4gIGdldCB3b3JrU2VhcmNoRGF0ZSgpe1xyXG4gICAgcmV0dXJuIHRoaXMud3NyRm9ybS5jb250cm9sc1snd29ya1NlYXJjaERhdGUnXTtcclxuICB9XHJcblxyXG4gIGdldCBlbXBsb3llck5hbWUoKXtcclxuICAgIHJldHVybiB0aGlzLndzckZvcm0uY29udHJvbHNbJ2VtcGxveWVyTmFtZSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGNpdHkoKXtcclxuICAgIHJldHVybiB0aGlzLndzckZvcm0uY29udHJvbHNbJ2NpdHknXTtcclxuICB9XHJcblxyXG4gIGdldCBsaW5lMSgpe1xyXG4gICAgcmV0dXJuIHRoaXMud3NyRm9ybS5jb250cm9sc1snbGluZTEnXTtcclxuICB9XHJcblxyXG4gIGdldCBsaW5lMigpe1xyXG4gICAgcmV0dXJuIHRoaXMud3NyRm9ybS5jb250cm9sc1snbGluZTInXTtcclxuICB9XHJcblxyXG4gIGdldCBzdGF0ZSgpe1xyXG4gICAgcmV0dXJuIHRoaXMud3NyRm9ybS5jb250cm9sc1snc3RhdGUnXTtcclxuICB9XHJcblxyXG4gIGdldCBjb250YWN0TWV0aG9kKCl7XHJcbiAgICByZXR1cm4gdGhpcy53c3JGb3JtLmNvbnRyb2xzWydjb250YWN0TWV0aG9kJ107XHJcbiAgfVxyXG5cclxuICBnZXQgZW1wQ29udGFjdFBlcnNvbk5hbWUoKXtcclxuICAgIHJldHVybiB0aGlzLndzckZvcm0uY29udHJvbHNbJ2VtcENvbnRhY3RQZXJzb25OYW1lJ107XHJcbiAgfVxyXG5cclxuICBnZXQgZW1wQ29udGFjdFBlcnNvblRpdGxlKCl7XHJcbiAgICByZXR1cm4gdGhpcy53c3JGb3JtLmNvbnRyb2xzWydlbXBDb250YWN0UGVyc29uVGl0bGUnXTtcclxuICB9XHJcblxyXG4gIGdldCB6aXAoKXtcclxuICAgIHJldHVybiB0aGlzLndzckZvcm0uY29udHJvbHNbJ3ppcCddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGVtcGxveWVyUGhvbmUoKXtcclxuICAgIHJldHVybiB0aGlzLndzckZvcm0uY29udHJvbHNbJ2VtcGxveWVyUGhvbmUnXTtcclxuICB9XHJcblxyXG4gIGdldCBlbXBsb3llckVtYWlsKCl7XHJcbiAgICByZXR1cm4gdGhpcy53c3JGb3JtLmNvbnRyb2xzWydlbXBsb3llckVtYWlsJ107XHJcbiAgfVxyXG5cclxuICBnZXQgZW1wbG95ZXJXZWJzaXRlKCl7XHJcbiAgICByZXR1cm4gdGhpcy53c3JGb3JtLmNvbnRyb2xzWydlbXBsb3llcldlYnNpdGUnXTtcclxuICB9XHJcblxyXG4gIGdldCBlbXBsb3llckZheCgpe1xyXG4gICAgcmV0dXJuIHRoaXMud3NyRm9ybS5jb250cm9sc1snZW1wbG95ZXJGYXgnXTtcclxuICB9XHJcblxyXG4gIGdldCBwb3NpdGlvbkFwcGxpZWRGb3IoKXtcclxuICAgIHJldHVybiB0aGlzLndzckZvcm0uY29udHJvbHNbJ3Bvc2l0aW9uQXBwbGllZEZvciddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNlYXJjaFJlc3VsdCgpe1xyXG4gICAgcmV0dXJuIHRoaXMud3NyRm9ybS5jb250cm9sc1snc2VhcmNoUmVzdWx0J107XHJcbiAgfVxyXG5cclxuICBnZXQgd2luZ3NSZWZlcnJhbFdvcmtTZWFyY2hJZCgpe1xyXG4gICAgcmV0dXJuIHRoaXMud3NyRm9ybS5jb250cm9sc1snd2luZ3NSZWZlcnJhbFdvcmtTZWFyY2hJZCddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGNsYWltYW50V29ya1NlYXJjaEpvdXJuYWxJZCgpe1xyXG4gICAgcmV0dXJuIHRoaXMud3NyRm9ybS5jb250cm9sc1snY2xhaW1hbnRXb3JrU2VhcmNoSm91cm5hbElkJ107XHJcbiAgfVxyXG5cclxuICBnZXQgd3NySWQoKXtcclxuICAgIHJldHVybiB0aGlzLndzckZvcm0uY29udHJvbHNbJ3dzcklkJ107XHJcbiAgfVxyXG5cclxuICBhZGQoKXtcclxuICAgIGlmKHRoaXMud3NyRm9ybS52YWxpZCl7XHJcbiAgICAgIHRoaXMuc3VjY2Vzcy5lbWl0KHRoaXMud3NyRm9ybS52YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjbG9zZSgpIHtcclxuICAgIHRoaXMub25DbG9zZS5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBzZXRFbXBsb3llcihlbXBsb3llcjogRW1wbG95ZXJTZWFyY2hSZXN1bHQpIHtcclxuICAgIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4ge1xyXG4gICAgICB0aGlzLmVtcGxveWVyTmFtZS5zZXRWYWx1ZShlbXBsb3llci5lbXBsb3llck5hbWUpO1xyXG4gICAgICB0aGlzLmxpbmUxLnNldFZhbHVlKGVtcGxveWVyLmFkZHJlc3NMaW5lMSk7XHJcbiAgICAgIHRoaXMubGluZTIuc2V0VmFsdWUoZW1wbG95ZXIuYWRkcmVzc0xpbmUyKTtcclxuICAgICAgdGhpcy5jaXR5LnNldFZhbHVlKGVtcGxveWVyLmNpdHkpO1xyXG4gICAgICB0aGlzLnN0YXRlLnNldFZhbHVlKGVtcGxveWVyLnN0YXRlLnZhbHVlKTtcclxuICAgICAgdGhpcy56aXAuc2V0VmFsdWUoZW1wbG95ZXIuemlwKTtcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iLCI8cC1kaWFsb2cgdmlzaWJsZT1cInRydWVcIiBtb2RhbD1cInRydWVcIiBhcHBlbmRUbz1cImJvZHlcIiBwb3NpdGlvbj1cInRvcFwiIFtzaG93SGVhZGVyXT1cImZhbHNlXCJcclxuICBbYnJlYWtwb2ludHNdPVwieycxMjAwcHgnOiAnNjYwcHgnLCAnOTkycHgnOiAnNjYwcHgnLCAnNzY4cHgnOiAnNjYwcHgnLCAnNTc2cHgnOiAnMTAwdncnfVwiPlxyXG4gIDxoNCBzdHlsZT1cImNvbG9yOiB2YXIoLS1pb24tY29sb3ItZ3JleSk7IHBhZGRpbmctbGVmdDogMjBweDtcIj57eyd3b3JrLnNlYXJjaC5qb3VybmFsLmFjdGl2aXR5LmhlYWRpbmcnIHxcclxuICAgIHRyYW5zbGF0ZTpkeW5hbWljUGFyYW0gfX08L2g0PlxyXG4gICAgPGg2IHN0eWxlPVwicGFkZGluZy1sZWZ0OiAyMHB4O1wiIFtpbm5lckhUTUxdPVwiWyd3b3JrLnNlYXJjaC5qb3VybmFsLmFjdGl2aXR5LmRldGFpbHMnIHwgdHJhbnNsYXRlXVwiPlxyXG4gICAgPC9oNj5cclxuICA8Zm9ybSBbZm9ybUdyb3VwXT1cIndzckZvcm1cIiAjd3NyRm9ybURpcmVjdGl2ZT1cIm5nRm9ybVwiPlxyXG4gICAgPGlvbi1ncmlkPlxyXG4gICAgICA8aW9uLXJvdz5cclxuICAgICAgICA8aW9uLWNvbCBjbGFzcz1cImlvbi1wYWRkaW5nXCIgc2l6ZT1cIjEyXCIgc2l6ZVNtPVwiMTJcIiBzaXplWHM9XCIxMlwiIHNpemVNZD1cIjZcIiBzaXplTGc9XCI2XCIgc2l6ZVhsPVwiNlwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInAtZmx1aWQgcC1mb3JtZ3JpZFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiYWN0aXZpdHlUeXBlXCI+e3snd29yay5zZWFyY2guam91cm5hbC5hY3Rpdml0eS50eXBlJyB8IHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8YXBwLWRyb3Bkb3duIFtvcHRpb25zXT1cImFjdGl2aXR5VHlwZUNvbWJvTXNcIiBvcHRpb25MYWJlbD1cIkRFU0NcIiBvcHRpb25WYWx1ZT1cIk5BTUVcIlxyXG4gICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImFjdGl2aXR5VHlwZVwiIGFwcGVuZFRvPVwiYm9keVwiIGlucHV0SWQ9XCJhY3Rpdml0eVR5cGVcIj48L2FwcC1kcm9wZG93bj5cclxuICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nYWN0aXZpdHlUeXBlJyBbZm9ybV09XCJ3c3JGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdSZXF1aXJlZC4nXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxzZWN0aW9uICpuZ0lmPVwiZGlzcGxheUpvYkFwcGxpY2F0aW9uUXVlc3Rpb25zIHx8IGRpc3BsYXlKb2JTZWFyY2hRdWVzdGlvbnNcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJlbXBsb3llck5hbWVcIj57eyd3b3JrLnNlYXJjaC5qb3VybmFsLmVtcGxveWVyTmFtZScgfCB0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8YXBwLXNlYXJjaC1lbXBsb3llciBbZm9ybUNvbnRyb2xdPVwiZW1wbG95ZXJOYW1lXCIgKG9uRm91bmQpPVwic2V0RW1wbG95ZXIoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgIFtlbXBUeXBlXT1cIidSRUcnXCI+PC9hcHAtc2VhcmNoLWVtcGxveWVyPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2VtcGxveWVyTmFtZScgW2Zvcm1dPVwid3NyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdSZXF1aXJlZC4nLCBwYXR0ZXJuOiAnJSwgPCwgPiwgXiwgXywgeywgfSBhcmUgbm90IGFsbG93ZWQnXHJcbiAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImxpbmUxXCI+e3snd29yay5zZWFyY2guam91cm5hbC5zdHJlZXRBZGRyZXNzJyB8IHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cImxpbmUxXCIgdHlwZT1cImlucHV0XCIgcElucHV0VGV4dCBbZm9ybUNvbnRyb2xdPVwibGluZTFcIiBhcHBTdHJpcEludmlzaWJsZUNoYXJzLz5cclxuICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdsaW5lMScgW2Zvcm1dPVwid3NyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdSZXF1aXJlZC4nLCBwYXR0ZXJuOiAnT25seSBsZXR0ZXJzLCBudW1iZXJzLCBzcGFjZXMsIGNvbW1hcywgcGVyaW9kcywgYXBvc3Ryb3BoZXMsIGh5cGhlbnMsICMgYW5kIC8gYWxsb3dlZCcsXHJcbiAgICAgICAgICAgICAgICAgIG1heGxlbmd0aDogJ2Nhbm5vdCBleGNlZWQgNDAgY2hhcmFjdGVycydcclxuICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiY2l0eVwiPnt7J3dvcmsuc2VhcmNoLmpvdXJuYWwuY2l0eScgfCB0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJjaXR5XCIgdHlwZT1cImlucHV0XCIgcElucHV0VGV4dCBbZm9ybUNvbnRyb2xdPVwiY2l0eVwiIGFwcFN0cmlwSW52aXNpYmxlQ2hhcnMvPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2NpdHknIFtmb3JtXT1cIndzckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAnUmVxdWlyZWQuJyxcclxuICAgICAgICAgICAgICAgICAgaW52YWxpZHdzQ2l0eUxlbmd0aDogJ0NpdHkgc2hvdWxkIG5vdCBleGNlZWQgYSBsZW5ndGggb2YgMzAgY2hhcmFjdGVycycsXHJcbiAgICAgICAgICAgICAgICAgICBwYXR0ZXJuOiAnQ2l0eSBuYW1lIGNhbiBvbmx5IGNvbnRhaW4gbGV0dGVycywgc3BhY2VzLCBhbmQgaHlwaGVucycsXHJcbiAgICAgICAgICAgICAgICAgICBtYXhsZW5ndGg6ICdjYW5ub3QgZXhjZWVkIDMwIGNoYXJhY3RlcnMnXHJcbiAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDxpb24tcm93PlxyXG4gICAgICAgICAgICAgICAgPGlvbi1jb2wgc3R5bGU9XCJwYWRkaW5nOiAwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJzdGF0ZVwiPnt7J3dvcmsuc2VhcmNoLmpvdXJuYWwuc3RhdGUnfCB0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPGFwcC1kcm9wZG93biBpbnB1dElkPVwic3RhdGVcIiBbb3B0aW9uc109XCJzdGF0ZXNDb21ib1wiIG9wdGlvbkxhYmVsPVwiREVTQ1wiIG9wdGlvblZhbHVlPVwiTkFNRVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBhcHBlbmRUbz1cImJvZHlcIiBbZm9ybUNvbnRyb2xdPVwic3RhdGVcIiBpbnB1dElkPVwic3RhdGVcIj48L2FwcC1kcm9wZG93bj5cclxuICAgICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nc3RhdGUnIFtmb3JtXT1cIndzckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ1JlcXVpcmVkLidcclxuICAgICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICAgICAgPGlvbi1jb2wgc2l6ZT1cIjFcIj48L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgICA8aW9uLWNvbCBzdHlsZT1cInBhZGRpbmc6IDBweDtcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInppcFwiPnt7J3dvcmsuc2VhcmNoLmpvdXJuYWwuemlwJ3wgdHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cInppcFwiIHR5cGU9XCJpbnB1dFwiIHBJbnB1dFRleHQgW2Zvcm1Db250cm9sXT1cInppcFwiIG1pbmxlbmd0aD1cIjVcIiBtYXhsZW5ndGg9XCI5XCIgYXBwU3RyaXBJbnZpc2libGVDaGFycy8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3ppcCcgW2Zvcm1dPVwid3NyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAnUmVxdWlyZWQuJyxcclxuICAgICAgICAgICAgICAgICAgICAgIGludmFsaWRMZW5ndGg6ICdaaXAgY29kZSBzaG91bGQgYmUgb2YgNSBvciA5IGRpZ2l0cy4nLFxyXG4gICAgICAgICAgICAgICAgICAgICAgaW52YWxpZE51bWJlcjogJ1ppcCBjb2RlIHNob3VsZCBvbmx5IGhhdmUgbnVtYmVycy4nXHJcbiAgICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICA8L2lvbi1yb3c+XHJcblxyXG4gICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgPGlvbi1jb2wgY2xhc3M9XCJpb24tcGFkZGluZ1wiIHNpemU9XCIxMlwiIHNpemVTbT1cIjEyXCIgc2l6ZVhzPVwiMTJcIiBzaXplTWQ9XCI2XCIgc2l6ZUxnPVwiNlwiIHNpemVYbD1cIjZcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWZsdWlkIHAtZm9ybWdyaWRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCJkaXNwbGF5Sm9iQXBwbGljYXRpb25RdWVzdGlvbnMgfHwgZGlzcGxheUpvYlNlYXJjaFF1ZXN0aW9uc1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJ3b3JrU2VhcmNoRGF0ZVwiPnt7J3dvcmsuc2VhcmNoLmpvdXJuYWwuYXBwbGljYXRpb25EYXRlJ3wgdHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxwLWNhbGVuZGFyIFtzaG93SWNvbl09XCJ0cnVlXCIgaW5wdXRJZD1cIndvcmtTZWFyY2hEYXRlXCIgYXBwZW5kVG89XCJib2R5XCIgW2Zvcm1Db250cm9sXT1cIndvcmtTZWFyY2hEYXRlXCIgZGF0ZUZvcm1hdD1cIm1tL2RkL3l5XCJcclxuICAgICAgICAgICAgICAgIFttaW5EYXRlXT1cInN1bkRhdGVcIiBbbWF4RGF0ZV09XCJzYXREYXRlXCIgW2RlZmF1bHREYXRlXT1cInN1bkRhdGVcIiBbc2VsZWN0T3RoZXJNb250aHNdPVwidHJ1ZVwiIHBsYWNlaG9sZGVyPVwibW0vZGQveXl5eVwiIFxyXG4gICAgICAgICAgICAgICAgW21vbnRoTmF2aWdhdG9yXT1cInRydWVcIiBbeWVhck5hdmlnYXRvcl09XCJ0cnVlXCIgeWVhclJhbmdlPVwiMTkwMToyMDUwXCIgKG9uSW5wdXQpPVwiZGF0ZUlucHV0KCRldmVudClcIj48L3AtY2FsZW5kYXI+ICBcclxuICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nd29ya1NlYXJjaERhdGUnIFtmb3JtXT1cIndzckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogJ1JlcXVpcmVkLicsXHJcbiAgICAgICAgICAgICAgICBkYXRlTm90QmV0d2VlbjogJ0RhdGUgc2hvdWxkIGJlIGJldHdlZW4gJyArIHN1bkRhdGVTdHJpbmcgKyAnIGFuZCAnICsgY3VycmVudERhdGVTdHJpbmcgKyAnLidcclxuICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8c2VjdGlvbiAqbmdJZj1cImRpc3BsYXlKb2JBcHBsaWNhdGlvblF1ZXN0aW9ucyB8fCBkaXNwbGF5Sm9iU2VhcmNoUXVlc3Rpb25zXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwicG9zaXRpb25BcHBsaWVkRm9yXCI+e3snd29yay5zZWFyY2guam91cm5hbC5qb2JUaXRsZSd8IHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cInBvc2l0aW9uQXBwbGllZEZvclwiIHR5cGU9XCJpbnB1dFwiIHBJbnB1dFRleHQgW2Zvcm1Db250cm9sXT1cInBvc2l0aW9uQXBwbGllZEZvclwiICBhcHBTdHJpcEludmlzaWJsZUNoYXJzLz5cclxuICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdwb3NpdGlvbkFwcGxpZWRGb3InIFtmb3JtXT1cIndzckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAnUmVxdWlyZWQuJyxcclxuICAgICAgICAgICAgICAgICAgcGF0dGVybjogJ0pvYiBUaXRsZSBjYW4gb25seSBjb250YWluIGxldHRlcnMsIHNwYWNlcywgYW5kIGh5cGhlbnMnLFxyXG4gICAgICAgICAgICAgICAgICBtYXhsZW5ndGg6ICdjYW5ub3QgZXhjZWVkIDUwIGNoYXJhY3RlcnMnXHJcbiAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJkaXNwbGF5Sm9iQXBwbGljYXRpb25RdWVzdGlvbnNcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiY29udGFjdE1ldGhvZFwiPnt7J3dvcmsuc2VhcmNoLmpvdXJuYWwuY29udGFjdE1ldGhvZCd8IHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPHAtc2VsZWN0QnV0dG9uIFtvcHRpb25zXT1cIndvcmtTZWFyY2hNZXRob2RDb250YWN0TXNcIiBvcHRpb25MYWJlbD1cIkRFU0NcIiBvcHRpb25WYWx1ZT1cIk5BTUVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJjb250YWN0TWV0aG9kXCI+PC9wLXNlbGVjdEJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2NvbnRhY3RNZXRob2QnIFtmb3JtXT1cIndzckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdSZXF1aXJlZC4nXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZGlzcGxheUpvYlNlYXJjaFF1ZXN0aW9uc1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJjb250YWN0TWV0aG9kXCI+e3snd29yay5zZWFyY2guam91cm5hbC5jb250YWN0TWV0aG9kSm9iU2VhcmNoJ3wgdHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8cC1zZWxlY3RCdXR0b24gW29wdGlvbnNdPVwid29ya1NlYXJjaE1ldGhvZENvbnRhY3RNc1wiIG9wdGlvbkxhYmVsPVwiREVTQ1wiIG9wdGlvblZhbHVlPVwiTkFNRVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImNvbnRhY3RNZXRob2RcIj48L3Atc2VsZWN0QnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nY29udGFjdE1ldGhvZCcgW2Zvcm1dPVwid3NyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ1JlcXVpcmVkLidcclxuICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiY29udGFjdE1ldGhvZC52YWx1ZSA9PSAnVEVMRSdcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJlbXBsb3llclBob25lXCI+e3snd29yay5zZWFyY2guam91cm5hbC5waG9uZU5vJyB8IHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxwLWlucHV0TWFzayBpbnB1dElkPVwiZW1wbG95ZXJQaG9uZVwiIFtmb3JtQ29udHJvbF09XCJlbXBsb3llclBob25lXCIgbWFzaz1cIig5OTkpIDk5OS05OTk5XCJcclxuICAgICAgICAgICAgICAgICAgdW5tYXNrPVwidHJ1ZVwiPjwvcC1pbnB1dE1hc2s+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nZW1wbG95ZXJQaG9uZScgW2Zvcm1dPVwid3NyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ1JlcXVpcmVkLidcclxuICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cImNvbnRhY3RNZXRob2QudmFsdWUgPT0gJ0VNQUwnXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZW1wbG95ZXJFbWFpbFwiPnt7J3dvcmsuc2VhcmNoLmpvdXJuYWwuZW1haWwnIHwgdHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IGlkPVwiZW1wbG95ZXJFbWFpbFwiIHR5cGU9XCJpbnB1dFwiIHBJbnB1dFRleHQgW2Zvcm1Db250cm9sXT1cImVtcGxveWVyRW1haWxcIlxyXG4gICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cImVtYWlsaWRAZXhhbXBsZS5jb21cIiBhcHBTdHJpcEludmlzaWJsZUNoYXJzLz5cclxuICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdlbXBsb3llckVtYWlsJyBbZm9ybV09XCJ3c3JGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ1JlcXVpcmVkLicsXHJcbiAgICAgICAgICAgICAgICAgIGVtcGxveWVyRW1haWw6ICdJbnZhbGlkIGVtYWlsIGFkZHJlc3MuJyxcclxuICAgICAgICAgICAgICAgICAgbWF4bGVuZ3RoOiAnY2Fubm90IGV4Y2VlZCA0MCBjaGFyYWN0ZXJzJ1xyXG4gICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cImNvbnRhY3RNZXRob2QudmFsdWUgPT0gJ09OTEknXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZW1wbG95ZXJXZWJzaXRlXCI+e3snd29yay5zZWFyY2guam91cm5hbC53ZWJzaXRlJyB8IHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cImVtcGxveWVyV2Vic2l0ZVwiIHR5cGU9XCJpbnB1dFwiIHBJbnB1dFRleHQgW2Zvcm1Db250cm9sXT1cImVtcGxveWVyV2Vic2l0ZVwiIGFwcFN0cmlwSW52aXNpYmxlQ2hhcnMgLz5cclxuICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdlbXBsb3llcldlYnNpdGUnIFtmb3JtXT1cIndzckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAnUmVxdWlyZWQuJyxcclxuICAgICAgICAgICAgICAgICAgaW52YWxpZFdlYnNpdGU6ICdQbGVhc2UgZW50ZXIgYSB2YWxpZCB3ZWJzaXRlIGFkZHJlc3MnLFxyXG4gICAgICAgICAgICAgICAgICBtYXhsZW5ndGg6ICdjYW5ub3QgZXhjZWVkIDQwIGNoYXJhY3RlcnMnXHJcbiAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiY29udGFjdE1ldGhvZC52YWx1ZSA9PSdQUlNOJ1wiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImVtcENvbnRhY3RQZXJzb25OYW1lXCI+e3snd29yay5zZWFyY2guam91cm5hbC5jb250YWN0TmFtZScgfCB0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJlbXBDb250YWN0UGVyc29uTmFtZVwiIHR5cGU9XCJpbnB1dFwiIHBJbnB1dFRleHQgW2Zvcm1Db250cm9sXT1cImVtcENvbnRhY3RQZXJzb25OYW1lXCIgYXBwU3RyaXBJbnZpc2libGVDaGFycy8+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nZW1wQ29udGFjdFBlcnNvbk5hbWUnIFtmb3JtXT1cIndzckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAnUmVxdWlyZWQuJyxcclxuICAgICAgICAgICAgICAgICAgbWF4bGVuZ3RoOiAnY2Fubm90IGV4Y2VlZCA1MCBjaGFyYWN0ZXJzJ1xyXG4gICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cImNvbnRhY3RNZXRob2QudmFsdWUgPT0nUFJTTidcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJlbXBDb250YWN0UGVyc29uVGl0bGVcIj57eyd3b3JrLnNlYXJjaC5qb3VybmFsLmNvbnRhY3RUaXRsZScgfCB0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJlbXBDb250YWN0UGVyc29uVGl0bGVcIiB0eXBlPVwiaW5wdXRcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbF09XCJlbXBDb250YWN0UGVyc29uVGl0bGVcIiBhcHBTdHJpcEludmlzaWJsZUNoYXJzLz5cclxuICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdlbXBDb250YWN0UGVyc29uVGl0bGUnIFtmb3JtXT1cIndzckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAnUmVxdWlyZWQuJyxcclxuICAgICAgICAgICAgICAgICAgbWF4bGVuZ3RoOiAnY2Fubm90IGV4Y2VlZCA1MCBjaGFyYWN0ZXJzJ1xyXG4gICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJzZWFyY2hSZXN1bHRcIj57eyd3b3JrLnNlYXJjaC5qb3VybmFsLnJlc3VsdCcgfCB0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiYWN0aXZpdHlUeXBlLnZhbHVlID09J0pPQVAnXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZHJvcGRvd24gW29wdGlvbnNdPVwid29ya1NlYXJjaFJlc3VsdENvbWJvSm9iQXBwbGljYXRpb25Nc1wiIG9wdGlvbkxhYmVsPVwiREVTQ1wiIG9wdGlvblZhbHVlPVwiTkFNRVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cInNlYXJjaFJlc3VsdFwiIGFwcGVuZFRvPVwiYm9keVwiIGlucHV0SWQ9XCJzZWFyY2hSZXN1bHRcIj48L2FwcC1kcm9wZG93bj5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3NlYXJjaFJlc3VsdCcgW2Zvcm1dPVwid3NyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdSZXF1aXJlZC4nXHJcbiAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJhY3Rpdml0eVR5cGUudmFsdWUgPT0nSk9TRSdcIj5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1kcm9wZG93biBbb3B0aW9uc109XCJ3b3JrU2VhcmNoUmVzdWx0Q29tYm9Kb2JTZWFyY2hNc1wiIG9wdGlvbkxhYmVsPVwiREVTQ1wiIG9wdGlvblZhbHVlPVwiTkFNRVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cInNlYXJjaFJlc3VsdFwiIGFwcGVuZFRvPVwiYm9keVwiIGlucHV0SWQ9XCJzZWFyY2hSZXN1bHRcIj48L2FwcC1kcm9wZG93bj5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3NlYXJjaFJlc3VsdCcgW2Zvcm1dPVwid3NyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdSZXF1aXJlZC4nXHJcbiAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICA8L2lvbi1yb3c+XHJcbiAgICAgIDxpb24tcm93PlxyXG4gICAgICAgIDxpb24tY29sIGNsYXNzPVwiaW9uLXRleHQtcmlnaHRcIj5cclxuICAgICAgICAgIDxpb24tYnV0dG9uIHNoYXBlPVwicm91bmRcIiBmaWxsPVwib3V0bGluZVwiIChjbGljayk9XCJjbG9zZSgpXCIgdHlwZT1cInJlc2V0XCI+e3snYnV0dG9uLmNhbmNlbCcgfFxyXG4gICAgICAgICAgICB0cmFuc2xhdGV9fTwvaW9uLWJ1dHRvbj5cclxuICAgICAgICAgIDxpb24tYnV0dG9uIHNoYXBlPVwicm91bmRcIiAoY2xpY2spPVwiYWRkKClcIiB0eXBlPVwic3VibWl0XCI+e3snYnV0dG9uLmFkZCcgfCB0cmFuc2xhdGV9fTwvaW9uLWJ1dHRvbj5cclxuICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgIDwvaW9uLXJvdz5cclxuICAgIDwvaW9uLWdyaWQ+XHJcbiAgPC9mb3JtPlxyXG48L3AtZGlhbG9nPiJdfQ==